diff --git a/.gitignore b/.gitignore
index 21a52a85..a30550ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,4 +51,7 @@ Thumbs.db
**/build/**/*
.vscode
-*/test/playground/dist
\ No newline at end of file
+*/test/playground/dist
+
+# visual code local workspaces
+wisemapping-frontend.code-workspace
diff --git a/.prettierrc.json b/.prettierrc.json
index 0c45137e..2c9ca384 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -1,6 +1,6 @@
{
- "trailingComma": "es5",
- "tabWidth": 4,
+ "trailingComma": "all",
+ "tabWidth": 2,
"semi": true,
"singleQuote": true,
"printWidth": 100
diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml
index 68df3d68..f8860a36 100644
--- a/bitbucket-pipelines.yml
+++ b/bitbucket-pipelines.yml
@@ -21,6 +21,7 @@ pipelines:
- yarn bootstrap
- yarn build
- yarn lint
+ - yarn test:unit
# - yarn test
artifacts:
- packages/**/cypress/snapshots/**/__diff_output__/*.diff.png
diff --git a/dist/src_components_editor-page_index_tsx.bundle.js b/dist/src_components_editor-page_index_tsx.bundle.js
new file mode 120000
index 00000000..230e06d8
--- /dev/null
+++ b/dist/src_components_editor-page_index_tsx.bundle.js
@@ -0,0 +1 @@
+../packages/webapp/dist/src_components_editor-page_index_tsx.bundle.js
\ No newline at end of file
diff --git a/dist/src_components_editor-page_index_tsx.bundle.js.map b/dist/src_components_editor-page_index_tsx.bundle.js.map
new file mode 120000
index 00000000..1ea220b6
--- /dev/null
+++ b/dist/src_components_editor-page_index_tsx.bundle.js.map
@@ -0,0 +1 @@
+../packages/webapp/dist/src_components_editor-page_index_tsx.bundle.js.map
\ No newline at end of file
diff --git a/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js b/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js
new file mode 120000
index 00000000..3123bfed
--- /dev/null
+++ b/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js
@@ -0,0 +1 @@
+../packages/webapp/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js
\ No newline at end of file
diff --git a/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js.map b/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js.map
new file mode 120000
index 00000000..a5b67457
--- /dev/null
+++ b/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js.map
@@ -0,0 +1 @@
+../packages/webapp/dist/src_components_maps-page_action-dispatcher_index_tsx.bundle.js.map
\ No newline at end of file
diff --git a/dist/src_components_maps-page_index_tsx.bundle.js b/dist/src_components_maps-page_index_tsx.bundle.js
new file mode 120000
index 00000000..c2f64267
--- /dev/null
+++ b/dist/src_components_maps-page_index_tsx.bundle.js
@@ -0,0 +1 @@
+../packages/webapp/dist/src_components_maps-page_index_tsx.bundle.js
\ No newline at end of file
diff --git a/dist/src_components_maps-page_index_tsx.bundle.js.map b/dist/src_components_maps-page_index_tsx.bundle.js.map
new file mode 120000
index 00000000..e9a85c32
--- /dev/null
+++ b/dist/src_components_maps-page_index_tsx.bundle.js.map
@@ -0,0 +1 @@
+../packages/webapp/dist/src_components_maps-page_index_tsx.bundle.js.map
\ No newline at end of file
diff --git a/docker-compose.snapshots.update.yml b/docker-compose.snapshots.update.yml
index 8eab2a22..b4875132 100644
--- a/docker-compose.snapshots.update.yml
+++ b/docker-compose.snapshots.update.yml
@@ -1,7 +1,7 @@
version: '3'
services:
e2e:
- image: cypress/included:8.4.1
+ image: cypress/included:10.7.0
container_name: wisemapping-integration-tests
entrypoint: '/bin/sh -c "yarn install && yarn bootstrap && yarn build && yarn test:integration"'
working_dir: /e2e
diff --git a/docker-compose.snapshots.yml b/docker-compose.snapshots.yml
index 2f498c27..bcb72d81 100644
--- a/docker-compose.snapshots.yml
+++ b/docker-compose.snapshots.yml
@@ -1,7 +1,7 @@
version: '3'
services:
e2e:
- image: cypress/included:8.4.1
+ image: cypress/included:10.7.0
container_name: wisemapping-integration-tests
entrypoint: '/bin/sh -c "yarn bootstrap && yarn build && yarn test:integration"'
working_dir: /e2e
diff --git a/lerna.json b/lerna.json
index dabb023c..d9f270f3 100644
--- a/lerna.json
+++ b/lerna.json
@@ -4,5 +4,6 @@
],
"version": "1.0.0",
"npmClient": "yarn",
- "useWorkspaces": true
+ "useWorkspaces": true,
+ "useNx": false
}
diff --git a/libraries/bootstrap/css/bootstrap-colorpicker.css b/libraries/bootstrap/css/bootstrap-colorpicker.css
index 28d2bca7..7b9113fd 100644
--- a/libraries/bootstrap/css/bootstrap-colorpicker.css
+++ b/libraries/bootstrap/css/bootstrap-colorpicker.css
@@ -13,7 +13,7 @@
width: 100px;
height: 100px;
cursor: crosshair;
- background-image: url("../img/bootstrap-colorpicker/saturation.png");
+ background-image: url('../img/bootstrap-colorpicker/saturation.png');
}
.colorpicker-saturation i {
@@ -26,8 +26,8 @@
margin: -4px 0 0 -4px;
border: 1px solid #000;
-webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
}
.colorpicker-saturation i b {
@@ -36,8 +36,8 @@
height: 5px;
border: 1px solid #fff;
-webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
}
.colorpicker-hue,
@@ -64,12 +64,12 @@
}
.colorpicker-hue {
- background-image: url("../img/bootstrap-colorpicker/hue.png");
+ background-image: url('../img/bootstrap-colorpicker/hue.png');
}
.colorpicker-alpha {
display: none;
- background-image: url("../img/bootstrap-colorpicker/alpha.png");
+ background-image: url('../img/bootstrap-colorpicker/alpha.png');
}
.colorpicker {
@@ -80,8 +80,8 @@
padding: 4px;
margin-top: 1px;
-webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
*zoom: 1;
}
@@ -89,7 +89,7 @@
.colorpicker:after {
display: table;
line-height: 0;
- content: "";
+ content: '';
}
.colorpicker:after {
@@ -135,7 +135,7 @@
height: 10px;
margin-top: 5px;
clear: both;
- background-image: url("../img/bootstrap-colorpicker/alpha.png");
+ background-image: url('../img/bootstrap-colorpicker/alpha.png');
background-position: 0 100%;
}
@@ -194,11 +194,11 @@
}
.colorpicker.colorpicker-horizontal .colorpicker-hue {
- background-image: url("../img/bootstrap-colorpicker/hue-horizontal.png");
+ background-image: url('../img/bootstrap-colorpicker/hue-horizontal.png');
}
.colorpicker.colorpicker-horizontal .colorpicker-alpha {
- background-image: url("../img/bootstrap-colorpicker/alpha-horizontal.png");
+ background-image: url('../img/bootstrap-colorpicker/alpha-horizontal.png');
}
.colorpicker.colorpicker-hidden {
@@ -211,4 +211,4 @@
.colorpicker-inline.colorpicker-visible {
display: inline-block;
-}
\ No newline at end of file
+}
diff --git a/libraries/bootstrap/css/bootstrap-colorpicker.min.css b/libraries/bootstrap/css/bootstrap-colorpicker.min.css
index d48417fa..c5d05fe0 100644
--- a/libraries/bootstrap/css/bootstrap-colorpicker.min.css
+++ b/libraries/bootstrap/css/bootstrap-colorpicker.min.css
@@ -6,4 +6,180 @@
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
- */.colorpicker-saturation{float:left;width:100px;height:100px;cursor:crosshair;background-image:url("../img/bootstrap-colorpicker/saturation.png")}.colorpicker-saturation i{position:absolute;top:0;left:0;display:block;width:5px;height:5px;margin:-4px 0 0 -4px;border:1px solid #000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-saturation i b{display:block;width:5px;height:5px;border:1px solid #fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-hue,.colorpicker-alpha{float:left;width:15px;height:100px;margin-bottom:4px;margin-left:4px;cursor:row-resize}.colorpicker-hue i,.colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:100%;height:1px;margin-top:-1px;background:#000;border-top:1px solid #fff}.colorpicker-hue{background-image:url("../img/bootstrap-colorpicker/hue.png")}.colorpicker-alpha{display:none;background-image:url("../img/bootstrap-colorpicker/alpha.png")}.colorpicker{top:0;left:0;z-index:2500;min-width:130px;padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1}.colorpicker:before,.colorpicker:after{display:table;line-height:0;content:""}.colorpicker:after{clear:both}.colorpicker:before{position:absolute;top:-7px;left:6px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.colorpicker:after{position:absolute;top:-6px;left:7px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.colorpicker div{position:relative}.colorpicker.colorpicker-with-alpha{min-width:140px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-color{height:10px;margin-top:5px;clear:both;background-image:url("../img/bootstrap-colorpicker/alpha.png");background-position:0 100%}.colorpicker-color div{height:10px}.colorpicker-element .input-group-addon i{display:block;width:16px;height:16px;cursor:pointer}.colorpicker.colorpicker-inline{position:relative;display:inline-block;float:none}.colorpicker.colorpicker-horizontal{width:110px;height:auto;min-width:110px}.colorpicker.colorpicker-horizontal .colorpicker-saturation{margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-color{width:100px}.colorpicker.colorpicker-horizontal .colorpicker-hue,.colorpicker.colorpicker-horizontal .colorpicker-alpha{float:left;width:100px;height:15px;margin-bottom:4px;margin-left:0;cursor:col-resize}.colorpicker.colorpicker-horizontal .colorpicker-hue i,.colorpicker.colorpicker-horizontal .colorpicker-alpha i{position:absolute;top:0;left:0;display:block;width:1px;height:15px;margin-top:0;background:#fff;border:0}.colorpicker.colorpicker-horizontal .colorpicker-hue{background-image:url("../img/bootstrap-colorpicker/hue-horizontal.png")}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background-image:url("../img/bootstrap-colorpicker/alpha-horizontal.png")}.colorpicker.colorpicker-hidden{display:none}.colorpicker.colorpicker-visible{display:block}.colorpicker-inline.colorpicker-visible{display:inline-block}
\ No newline at end of file
+ */
+.colorpicker-saturation {
+ float: left;
+ width: 100px;
+ height: 100px;
+ cursor: crosshair;
+ background-image: url('../img/bootstrap-colorpicker/saturation.png');
+}
+.colorpicker-saturation i {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 5px;
+ height: 5px;
+ margin: -4px 0 0 -4px;
+ border: 1px solid #000;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.colorpicker-saturation i b {
+ display: block;
+ width: 5px;
+ height: 5px;
+ border: 1px solid #fff;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.colorpicker-hue,
+.colorpicker-alpha {
+ float: left;
+ width: 15px;
+ height: 100px;
+ margin-bottom: 4px;
+ margin-left: 4px;
+ cursor: row-resize;
+}
+.colorpicker-hue i,
+.colorpicker-alpha i {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 100%;
+ height: 1px;
+ margin-top: -1px;
+ background: #000;
+ border-top: 1px solid #fff;
+}
+.colorpicker-hue {
+ background-image: url('../img/bootstrap-colorpicker/hue.png');
+}
+.colorpicker-alpha {
+ display: none;
+ background-image: url('../img/bootstrap-colorpicker/alpha.png');
+}
+.colorpicker {
+ top: 0;
+ left: 0;
+ z-index: 2500;
+ min-width: 130px;
+ padding: 4px;
+ margin-top: 1px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ *zoom: 1;
+}
+.colorpicker:before,
+.colorpicker:after {
+ display: table;
+ line-height: 0;
+ content: '';
+}
+.colorpicker:after {
+ clear: both;
+}
+.colorpicker:before {
+ position: absolute;
+ top: -7px;
+ left: 6px;
+ display: inline-block;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-left: 7px solid transparent;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ content: '';
+}
+.colorpicker:after {
+ position: absolute;
+ top: -6px;
+ left: 7px;
+ display: inline-block;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid #fff;
+ border-left: 6px solid transparent;
+ content: '';
+}
+.colorpicker div {
+ position: relative;
+}
+.colorpicker.colorpicker-with-alpha {
+ min-width: 140px;
+}
+.colorpicker.colorpicker-with-alpha .colorpicker-alpha {
+ display: block;
+}
+.colorpicker-color {
+ height: 10px;
+ margin-top: 5px;
+ clear: both;
+ background-image: url('../img/bootstrap-colorpicker/alpha.png');
+ background-position: 0 100%;
+}
+.colorpicker-color div {
+ height: 10px;
+}
+.colorpicker-element .input-group-addon i {
+ display: block;
+ width: 16px;
+ height: 16px;
+ cursor: pointer;
+}
+.colorpicker.colorpicker-inline {
+ position: relative;
+ display: inline-block;
+ float: none;
+}
+.colorpicker.colorpicker-horizontal {
+ width: 110px;
+ height: auto;
+ min-width: 110px;
+}
+.colorpicker.colorpicker-horizontal .colorpicker-saturation {
+ margin-bottom: 4px;
+}
+.colorpicker.colorpicker-horizontal .colorpicker-color {
+ width: 100px;
+}
+.colorpicker.colorpicker-horizontal .colorpicker-hue,
+.colorpicker.colorpicker-horizontal .colorpicker-alpha {
+ float: left;
+ width: 100px;
+ height: 15px;
+ margin-bottom: 4px;
+ margin-left: 0;
+ cursor: col-resize;
+}
+.colorpicker.colorpicker-horizontal .colorpicker-hue i,
+.colorpicker.colorpicker-horizontal .colorpicker-alpha i {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 1px;
+ height: 15px;
+ margin-top: 0;
+ background: #fff;
+ border: 0;
+}
+.colorpicker.colorpicker-horizontal .colorpicker-hue {
+ background-image: url('../img/bootstrap-colorpicker/hue-horizontal.png');
+}
+.colorpicker.colorpicker-horizontal .colorpicker-alpha {
+ background-image: url('../img/bootstrap-colorpicker/alpha-horizontal.png');
+}
+.colorpicker.colorpicker-hidden {
+ display: none;
+}
+.colorpicker.colorpicker-visible {
+ display: block;
+}
+.colorpicker-inline.colorpicker-visible {
+ display: inline-block;
+}
diff --git a/libraries/bootstrap/css/bootstrap-theme.css b/libraries/bootstrap/css/bootstrap-theme.css
index a4069929..6152605b 100644
--- a/libraries/bootstrap/css/bootstrap-theme.css
+++ b/libraries/bootstrap/css/bootstrap-theme.css
@@ -10,9 +10,9 @@
.btn-info,
.btn-warning,
.btn-danger {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
}
.btn-default:active,
.btn-primary:active,
@@ -26,8 +26,8 @@
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn:active,
.btn.active {
@@ -36,7 +36,7 @@
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
- background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
+ background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
@@ -55,7 +55,7 @@
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
@@ -73,7 +73,7 @@
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
- background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
@@ -91,7 +91,7 @@
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
- background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
@@ -109,7 +109,7 @@
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
@@ -127,7 +127,7 @@
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
- background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
@@ -145,14 +145,14 @@
}
.thumbnail,
.img-thumbnail {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
@@ -161,50 +161,50 @@
.dropdown-menu > .active > a:focus {
background-color: #357ebd;
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
- background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
+ background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
}
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
}
.navbar-brand,
.navbar-nav > li > a {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
- background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
+ background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
}
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
- background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
+ background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.navbar-static-top,
.navbar-fixed-top,
@@ -212,136 +212,136 @@
border-radius: 0;
}
.alert {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
- background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
- background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
- background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+ background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
- background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
- background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
- background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.list-group {
border-radius: 4px;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #3071a9;
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
background-repeat: repeat-x;
border-color: #3278b3;
}
.panel {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+ background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
- background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
- background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
- background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
+ background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
- background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
- -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */
diff --git a/libraries/bootstrap/css/bootstrap-theme.min.css b/libraries/bootstrap/css/bootstrap-theme.min.css
index ba4bd28a..72f38b89 100644
--- a/libraries/bootstrap/css/bootstrap-theme.min.css
+++ b/libraries/bootstrap/css/bootstrap-theme.min.css
@@ -4,4 +4,343 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
\ No newline at end of file
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn:active,
+.btn.active {
+ background-image: none;
+}
+.btn-default {
+ background-image: -webkit-linear-gradient(top, #fff 0, #e0e0e0 100%);
+ background-image: linear-gradient(to bottom, #fff 0, #e0e0e0 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ background-repeat: repeat-x;
+ border-color: #dbdbdb;
+ text-shadow: 0 1px 0 #fff;
+ border-color: #ccc;
+}
+.btn-default:hover,
+.btn-default:focus {
+ background-color: #e0e0e0;
+ background-position: 0 -15px;
+}
+.btn-default:active,
+.btn-default.active {
+ background-color: #e0e0e0;
+ border-color: #dbdbdb;
+}
+.btn-primary {
+ background-image: -webkit-linear-gradient(top, #428bca 0, #2d6ca2 100%);
+ background-image: linear-gradient(to bottom, #428bca 0, #2d6ca2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ background-repeat: repeat-x;
+ border-color: #2b669a;
+}
+.btn-primary:hover,
+.btn-primary:focus {
+ background-color: #2d6ca2;
+ background-position: 0 -15px;
+}
+.btn-primary:active,
+.btn-primary.active {
+ background-color: #2d6ca2;
+ border-color: #2b669a;
+}
+.btn-success {
+ background-image: -webkit-linear-gradient(top, #5cb85c 0, #419641 100%);
+ background-image: linear-gradient(to bottom, #5cb85c 0, #419641 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ background-repeat: repeat-x;
+ border-color: #3e8f3e;
+}
+.btn-success:hover,
+.btn-success:focus {
+ background-color: #419641;
+ background-position: 0 -15px;
+}
+.btn-success:active,
+.btn-success.active {
+ background-color: #419641;
+ border-color: #3e8f3e;
+}
+.btn-info {
+ background-image: -webkit-linear-gradient(top, #5bc0de 0, #2aabd2 100%);
+ background-image: linear-gradient(to bottom, #5bc0de 0, #2aabd2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ background-repeat: repeat-x;
+ border-color: #28a4c9;
+}
+.btn-info:hover,
+.btn-info:focus {
+ background-color: #2aabd2;
+ background-position: 0 -15px;
+}
+.btn-info:active,
+.btn-info.active {
+ background-color: #2aabd2;
+ border-color: #28a4c9;
+}
+.btn-warning {
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0, #eb9316 100%);
+ background-image: linear-gradient(to bottom, #f0ad4e 0, #eb9316 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ background-repeat: repeat-x;
+ border-color: #e38d13;
+}
+.btn-warning:hover,
+.btn-warning:focus {
+ background-color: #eb9316;
+ background-position: 0 -15px;
+}
+.btn-warning:active,
+.btn-warning.active {
+ background-color: #eb9316;
+ border-color: #e38d13;
+}
+.btn-danger {
+ background-image: -webkit-linear-gradient(top, #d9534f 0, #c12e2a 100%);
+ background-image: linear-gradient(to bottom, #d9534f 0, #c12e2a 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ background-repeat: repeat-x;
+ border-color: #b92c28;
+}
+.btn-danger:hover,
+.btn-danger:focus {
+ background-color: #c12e2a;
+ background-position: 0 -15px;
+}
+.btn-danger:active,
+.btn-danger.active {
+ background-color: #c12e2a;
+ border-color: #b92c28;
+}
+.thumbnail,
+.img-thumbnail {
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);
+ background-image: linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+ background-color: #e8e8e8;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ background-image: -webkit-linear-gradient(top, #428bca 0, #357ebd 100%);
+ background-image: linear-gradient(to bottom, #428bca 0, #357ebd 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+ background-color: #357ebd;
+}
+.navbar-default {
+ background-image: -webkit-linear-gradient(top, #fff 0, #f8f8f8 100%);
+ background-image: linear-gradient(to bottom, #fff 0, #f8f8f8 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+}
+.navbar-default .navbar-nav > .active > a {
+ background-image: -webkit-linear-gradient(top, #ebebeb 0, #f3f3f3 100%);
+ background-image: linear-gradient(to bottom, #ebebeb 0, #f3f3f3 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+}
+.navbar-brand,
+.navbar-nav > li > a {
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
+}
+.navbar-inverse {
+ background-image: -webkit-linear-gradient(top, #3c3c3c 0, #222 100%);
+ background-image: linear-gradient(to bottom, #3c3c3c 0, #222 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+.navbar-inverse .navbar-nav > .active > a {
+ background-image: -webkit-linear-gradient(top, #222 0, #282828 100%);
+ background-image: linear-gradient(to bottom, #222 0, #282828 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+}
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+}
+.alert {
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+.alert-success {
+ background-image: -webkit-linear-gradient(top, #dff0d8 0, #c8e5bc 100%);
+ background-image: linear-gradient(to bottom, #dff0d8 0, #c8e5bc 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
+ border-color: #b2dba1;
+}
+.alert-info {
+ background-image: -webkit-linear-gradient(top, #d9edf7 0, #b9def0 100%);
+ background-image: linear-gradient(to bottom, #d9edf7 0, #b9def0 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
+ border-color: #9acfea;
+}
+.alert-warning {
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0, #f8efc0 100%);
+ background-image: linear-gradient(to bottom, #fcf8e3 0, #f8efc0 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
+ border-color: #f5e79e;
+}
+.alert-danger {
+ background-image: -webkit-linear-gradient(top, #f2dede 0, #e7c3c3 100%);
+ background-image: linear-gradient(to bottom, #f2dede 0, #e7c3c3 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
+ border-color: #dca7a7;
+}
+.progress {
+ background-image: -webkit-linear-gradient(top, #ebebeb 0, #f5f5f5 100%);
+ background-image: linear-gradient(to bottom, #ebebeb 0, #f5f5f5 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
+}
+.progress-bar {
+ background-image: -webkit-linear-gradient(top, #428bca 0, #3071a9 100%);
+ background-image: linear-gradient(to bottom, #428bca 0, #3071a9 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+}
+.progress-bar-success {
+ background-image: -webkit-linear-gradient(top, #5cb85c 0, #449d44 100%);
+ background-image: linear-gradient(to bottom, #5cb85c 0, #449d44 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+}
+.progress-bar-info {
+ background-image: -webkit-linear-gradient(top, #5bc0de 0, #31b0d5 100%);
+ background-image: linear-gradient(to bottom, #5bc0de 0, #31b0d5 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+}
+.progress-bar-warning {
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0, #ec971f 100%);
+ background-image: linear-gradient(to bottom, #f0ad4e 0, #ec971f 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+}
+.progress-bar-danger {
+ background-image: -webkit-linear-gradient(top, #d9534f 0, #c9302c 100%);
+ background-image: linear-gradient(to bottom, #d9534f 0, #c9302c 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+}
+.list-group {
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ text-shadow: 0 -1px 0 #3071a9;
+ background-image: -webkit-linear-gradient(top, #428bca 0, #3278b3 100%);
+ background-image: linear-gradient(to bottom, #428bca 0, #3278b3 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
+ border-color: #3278b3;
+}
+.panel {
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+.panel-default > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);
+ background-image: linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+}
+.panel-primary > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #428bca 0, #357ebd 100%);
+ background-image: linear-gradient(to bottom, #428bca 0, #357ebd 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+}
+.panel-success > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #dff0d8 0, #d0e9c6 100%);
+ background-image: linear-gradient(to bottom, #dff0d8 0, #d0e9c6 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
+}
+.panel-info > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #d9edf7 0, #c4e3f3 100%);
+ background-image: linear-gradient(to bottom, #d9edf7 0, #c4e3f3 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
+}
+.panel-warning > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0, #faf2cc 100%);
+ background-image: linear-gradient(to bottom, #fcf8e3 0, #faf2cc 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
+}
+.panel-danger > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #f2dede 0, #ebcccc 100%);
+ background-image: linear-gradient(to bottom, #f2dede 0, #ebcccc 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
+}
+.well {
+ background-image: -webkit-linear-gradient(top, #e8e8e8 0, #f5f5f5 100%);
+ background-image: linear-gradient(to bottom, #e8e8e8 0, #f5f5f5 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
+ border-color: #dcdcdc;
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+}
diff --git a/libraries/bootstrap/css/bootstrap.css b/libraries/bootstrap/css/bootstrap.css
index 5cfaeec9..b254b7af 100644
--- a/libraries/bootstrap/css/bootstrap.css
+++ b/libraries/bootstrap/css/bootstrap.css
@@ -8,7 +8,7 @@
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
}
body {
margin: 0;
@@ -60,7 +60,7 @@ dfn {
font-style: italic;
}
h1 {
- margin: .67em 0;
+ margin: 0.67em 0;
font-size: 2em;
}
mark {
@@ -78,10 +78,10 @@ sup {
vertical-align: baseline;
}
sup {
- top: -.5em;
+ top: -0.5em;
}
sub {
- bottom: -.25em;
+ bottom: -0.25em;
}
img {
border: 0;
@@ -95,7 +95,7 @@ figure {
hr {
height: 0;
-moz-box-sizing: content-box;
- box-sizing: content-box;
+ box-sizing: content-box;
}
pre {
overflow: auto;
@@ -124,9 +124,9 @@ select {
text-transform: none;
}
button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
+html input[type='button'],
+input[type='reset'],
+input[type='submit'] {
-webkit-appearance: button;
cursor: pointer;
}
@@ -142,27 +142,27 @@ input::-moz-focus-inner {
input {
line-height: normal;
}
-input[type="checkbox"],
-input[type="radio"] {
+input[type='checkbox'],
+input[type='radio'] {
box-sizing: border-box;
padding: 0;
}
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
+input[type='number']::-webkit-inner-spin-button,
+input[type='number']::-webkit-outer-spin-button {
height: auto;
}
-input[type="search"] {
+input[type='search'] {
-webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
-webkit-appearance: textfield;
}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
+input[type='search']::-webkit-search-cancel-button,
+input[type='search']::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
- padding: .35em .625em .75em;
+ padding: 0.35em 0.625em 0.75em;
margin: 0 2px;
border: 1px solid #c0c0c0;
}
@@ -196,14 +196,14 @@ th {
text-decoration: underline;
}
a[href]:after {
- content: " (" attr(href) ")";
+ content: ' (' attr(href) ')';
}
abbr[title]:after {
- content: " (" attr(title) ")";
+ content: ' (' attr(title) ')';
}
- a[href^="javascript:"]:after,
- a[href^="#"]:after {
- content: "";
+ a[href^='javascript:']:after,
+ a[href^='#']:after {
+ content: '';
}
pre,
blockquote {
@@ -258,14 +258,14 @@ th {
}
* {
-webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
*:before,
*:after {
-webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
html {
font-size: 62.5%;
@@ -273,7 +273,7 @@ html {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 1.42857143;
color: #333;
@@ -328,8 +328,8 @@ img {
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
- -webkit-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
}
.img-circle {
border-radius: 50%;
@@ -679,7 +679,7 @@ blockquote.pull-right .small:after {
}
blockquote:before,
blockquote:after {
- content: "";
+ content: '';
}
address {
margin-bottom: 18px;
@@ -690,7 +690,7 @@ code,
kbd,
pre,
samp {
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
}
code {
padding: 2px 4px;
@@ -706,7 +706,7 @@ kbd {
color: #fff;
background-color: #333;
border-radius: 3px;
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
pre {
display: block;
@@ -764,13 +764,71 @@ pre code {
margin-right: -15px;
margin-left: -15px;
}
-.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+.col-xs-1,
+.col-sm-1,
+.col-md-1,
+.col-lg-1,
+.col-xs-2,
+.col-sm-2,
+.col-md-2,
+.col-lg-2,
+.col-xs-3,
+.col-sm-3,
+.col-md-3,
+.col-lg-3,
+.col-xs-4,
+.col-sm-4,
+.col-md-4,
+.col-lg-4,
+.col-xs-5,
+.col-sm-5,
+.col-md-5,
+.col-lg-5,
+.col-xs-6,
+.col-sm-6,
+.col-md-6,
+.col-lg-6,
+.col-xs-7,
+.col-sm-7,
+.col-md-7,
+.col-lg-7,
+.col-xs-8,
+.col-sm-8,
+.col-md-8,
+.col-lg-8,
+.col-xs-9,
+.col-sm-9,
+.col-md-9,
+.col-lg-9,
+.col-xs-10,
+.col-sm-10,
+.col-md-10,
+.col-lg-10,
+.col-xs-11,
+.col-sm-11,
+.col-md-11,
+.col-lg-11,
+.col-xs-12,
+.col-sm-12,
+.col-md-12,
+.col-lg-12 {
position: relative;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
}
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+.col-xs-1,
+.col-xs-2,
+.col-xs-3,
+.col-xs-4,
+.col-xs-5,
+.col-xs-6,
+.col-xs-7,
+.col-xs-8,
+.col-xs-9,
+.col-xs-10,
+.col-xs-11,
+.col-xs-12 {
float: left;
}
.col-xs-12 {
@@ -927,7 +985,18 @@ pre code {
margin-left: 0;
}
@media (min-width: 768px) {
- .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ .col-sm-1,
+ .col-sm-2,
+ .col-sm-3,
+ .col-sm-4,
+ .col-sm-5,
+ .col-sm-6,
+ .col-sm-7,
+ .col-sm-8,
+ .col-sm-9,
+ .col-sm-10,
+ .col-sm-11,
+ .col-sm-12 {
float: left;
}
.col-sm-12 {
@@ -1085,7 +1154,18 @@ pre code {
}
}
@media (min-width: 992px) {
- .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ .col-md-1,
+ .col-md-2,
+ .col-md-3,
+ .col-md-4,
+ .col-md-5,
+ .col-md-6,
+ .col-md-7,
+ .col-md-8,
+ .col-md-9,
+ .col-md-10,
+ .col-md-11,
+ .col-md-12 {
float: left;
}
.col-md-12 {
@@ -1243,7 +1323,18 @@ pre code {
}
}
@media (min-width: 1200px) {
- .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ .col-lg-1,
+ .col-lg-2,
+ .col-lg-3,
+ .col-lg-4,
+ .col-lg-5,
+ .col-lg-6,
+ .col-lg-7,
+ .col-lg-8,
+ .col-lg-9,
+ .col-lg-10,
+ .col-lg-11,
+ .col-lg-12 {
float: left;
}
.col-lg-12 {
@@ -1471,13 +1562,13 @@ th {
.table-hover > tbody > tr:hover > th {
background-color: #f5f5f5;
}
-table col[class*="col-"] {
+table col[class*='col-'] {
position: static;
display: table-column;
float: none;
}
-table td[class*="col-"],
-table th[class*="col-"] {
+table td[class*='col-'],
+table th[class*='col-'] {
position: static;
display: table-cell;
float: none;
@@ -1651,22 +1742,22 @@ label {
margin-bottom: 5px;
font-weight: bold;
}
-input[type="search"] {
+input[type='search'] {
-webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-input[type="radio"],
-input[type="checkbox"] {
+input[type='radio'],
+input[type='checkbox'] {
margin: 4px 0 0;
margin-top: 1px \9;
/* IE8-9 */
line-height: normal;
}
-input[type="file"] {
+input[type='file'] {
display: block;
}
-input[type="range"] {
+input[type='range'] {
display: block;
width: 100%;
}
@@ -1674,9 +1765,9 @@ select[multiple],
select[size] {
height: auto;
}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
+input[type='file']:focus,
+input[type='radio']:focus,
+input[type='checkbox']:focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
@@ -1700,16 +1791,16 @@ output {
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
- transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.form-control:focus {
border-color: #66afe9;
outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
color: #999;
@@ -1731,10 +1822,10 @@ fieldset[disabled] .form-control {
textarea.form-control {
height: auto;
}
-input[type="search"] {
+input[type='search'] {
-webkit-appearance: none;
}
-input[type="date"] {
+input[type='date'] {
line-height: 32px;
}
.form-group {
@@ -1754,10 +1845,10 @@ input[type="date"] {
font-weight: normal;
cursor: pointer;
}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
+.radio input[type='radio'],
+.radio-inline input[type='radio'],
+.checkbox input[type='checkbox'],
+.checkbox-inline input[type='checkbox'] {
float: left;
margin-left: -20px;
}
@@ -1779,14 +1870,14 @@ input[type="date"] {
margin-top: 0;
margin-left: 10px;
}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
+input[type='radio'][disabled],
+input[type='checkbox'][disabled],
.radio[disabled],
.radio-inline[disabled],
.checkbox[disabled],
.checkbox-inline[disabled],
-fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"],
+fieldset[disabled] input[type='radio'],
+fieldset[disabled] input[type='checkbox'],
fieldset[disabled] .radio,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox,
@@ -1849,13 +1940,13 @@ select[multiple].input-lg {
}
.has-success .form-control {
border-color: #3c763d;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
border-color: #2b542c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
color: #3c763d;
@@ -1875,13 +1966,13 @@ select[multiple].input-lg {
}
.has-warning .form-control {
border-color: #8a6d3b;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
border-color: #66512c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
color: #8a6d3b;
@@ -1901,13 +1992,13 @@ select[multiple].input-lg {
}
.has-error .form-control {
border-color: #a94442;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
border-color: #843534;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
color: #a94442;
@@ -1952,8 +2043,8 @@ select[multiple].input-lg {
margin-bottom: 0;
vertical-align: middle;
}
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
+ .form-inline .radio input[type='radio'],
+ .form-inline .checkbox input[type='checkbox'] {
float: none;
margin-left: 0;
}
@@ -2002,9 +2093,9 @@ select[multiple].input-lg {
vertical-align: middle;
cursor: pointer;
-webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
@@ -2025,8 +2116,8 @@ select[multiple].input-lg {
.btn.active {
background-image: none;
outline: 0;
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
@@ -2035,8 +2126,8 @@ fieldset[disabled] .btn {
cursor: not-allowed;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
- box-shadow: none;
- opacity: .65;
+ box-shadow: none;
+ opacity: 0.65;
}
.btn-default {
color: #333;
@@ -2296,7 +2387,7 @@ fieldset[disabled] .btn-danger.active {
fieldset[disabled] .btn-link {
background-color: transparent;
-webkit-box-shadow: none;
- box-shadow: none;
+ box-shadow: none;
}
.btn-link,
.btn-link:hover,
@@ -2347,15 +2438,15 @@ fieldset[disabled] .btn-link:focus {
.btn-block + .btn-block {
margin-top: 5px;
}
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
+input[type='submit'].btn-block,
+input[type='reset'].btn-block,
+input[type='button'].btn-block {
width: 100%;
}
.fade {
opacity: 0;
- -webkit-transition: opacity .15s linear;
- transition: opacity .15s linear;
+ -webkit-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
}
.fade.in {
opacity: 1;
@@ -2370,14 +2461,17 @@ input[type="button"].btn-block {
position: relative;
height: 0;
overflow: hidden;
- -webkit-transition: height .35s ease;
- transition: height .35s ease;
+ -webkit-transition: height 0.35s ease;
+ transition: height 0.35s ease;
}
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/glyphicons-halflings-regular.woff') format('woff'),
+ url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),
+ url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
position: relative;
@@ -2392,604 +2486,604 @@ input[type="button"].btn-block {
-moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
- content: "\2a";
+ content: '\2a';
}
.glyphicon-plus:before {
- content: "\2b";
+ content: '\2b';
}
.glyphicon-euro:before {
- content: "\20ac";
+ content: '\20ac';
}
.glyphicon-minus:before {
- content: "\2212";
+ content: '\2212';
}
.glyphicon-cloud:before {
- content: "\2601";
+ content: '\2601';
}
.glyphicon-envelope:before {
- content: "\2709";
+ content: '\2709';
}
.glyphicon-pencil:before {
- content: "\270f";
+ content: '\270f';
}
.glyphicon-glass:before {
- content: "\e001";
+ content: '\e001';
}
.glyphicon-music:before {
- content: "\e002";
+ content: '\e002';
}
.glyphicon-search:before {
- content: "\e003";
+ content: '\e003';
}
.glyphicon-heart:before {
- content: "\e005";
+ content: '\e005';
}
.glyphicon-star:before {
- content: "\e006";
+ content: '\e006';
}
.glyphicon-star-empty:before {
- content: "\e007";
+ content: '\e007';
}
.glyphicon-user:before {
- content: "\e008";
+ content: '\e008';
}
.glyphicon-film:before {
- content: "\e009";
+ content: '\e009';
}
.glyphicon-th-large:before {
- content: "\e010";
+ content: '\e010';
}
.glyphicon-th:before {
- content: "\e011";
+ content: '\e011';
}
.glyphicon-th-list:before {
- content: "\e012";
+ content: '\e012';
}
.glyphicon-ok:before {
- content: "\e013";
+ content: '\e013';
}
.glyphicon-remove:before {
- content: "\e014";
+ content: '\e014';
}
.glyphicon-zoom-in:before {
- content: "\e015";
+ content: '\e015';
}
.glyphicon-zoom-out:before {
- content: "\e016";
+ content: '\e016';
}
.glyphicon-off:before {
- content: "\e017";
+ content: '\e017';
}
.glyphicon-signal:before {
- content: "\e018";
+ content: '\e018';
}
.glyphicon-cog:before {
- content: "\e019";
+ content: '\e019';
}
.glyphicon-trash:before {
- content: "\e020";
+ content: '\e020';
}
.glyphicon-home:before {
- content: "\e021";
+ content: '\e021';
}
.glyphicon-file:before {
- content: "\e022";
+ content: '\e022';
}
.glyphicon-time:before {
- content: "\e023";
+ content: '\e023';
}
.glyphicon-road:before {
- content: "\e024";
+ content: '\e024';
}
.glyphicon-download-alt:before {
- content: "\e025";
+ content: '\e025';
}
.glyphicon-download:before {
- content: "\e026";
+ content: '\e026';
}
.glyphicon-upload:before {
- content: "\e027";
+ content: '\e027';
}
.glyphicon-inbox:before {
- content: "\e028";
+ content: '\e028';
}
.glyphicon-play-circle:before {
- content: "\e029";
+ content: '\e029';
}
.glyphicon-repeat:before {
- content: "\e030";
+ content: '\e030';
}
.glyphicon-refresh:before {
- content: "\e031";
+ content: '\e031';
}
.glyphicon-list-alt:before {
- content: "\e032";
+ content: '\e032';
}
.glyphicon-lock:before {
- content: "\e033";
+ content: '\e033';
}
.glyphicon-flag:before {
- content: "\e034";
+ content: '\e034';
}
.glyphicon-headphones:before {
- content: "\e035";
+ content: '\e035';
}
.glyphicon-volume-off:before {
- content: "\e036";
+ content: '\e036';
}
.glyphicon-volume-down:before {
- content: "\e037";
+ content: '\e037';
}
.glyphicon-volume-up:before {
- content: "\e038";
+ content: '\e038';
}
.glyphicon-qrcode:before {
- content: "\e039";
+ content: '\e039';
}
.glyphicon-barcode:before {
- content: "\e040";
+ content: '\e040';
}
.glyphicon-tag:before {
- content: "\e041";
+ content: '\e041';
}
.glyphicon-tags:before {
- content: "\e042";
+ content: '\e042';
}
.glyphicon-book:before {
- content: "\e043";
+ content: '\e043';
}
.glyphicon-bookmark:before {
- content: "\e044";
+ content: '\e044';
}
.glyphicon-print:before {
- content: "\e045";
+ content: '\e045';
}
.glyphicon-camera:before {
- content: "\e046";
+ content: '\e046';
}
.glyphicon-font:before {
- content: "\e047";
+ content: '\e047';
}
.glyphicon-bold:before {
- content: "\e048";
+ content: '\e048';
}
.glyphicon-italic:before {
- content: "\e049";
+ content: '\e049';
}
.glyphicon-text-height:before {
- content: "\e050";
+ content: '\e050';
}
.glyphicon-text-width:before {
- content: "\e051";
+ content: '\e051';
}
.glyphicon-align-left:before {
- content: "\e052";
+ content: '\e052';
}
.glyphicon-align-center:before {
- content: "\e053";
+ content: '\e053';
}
.glyphicon-align-right:before {
- content: "\e054";
+ content: '\e054';
}
.glyphicon-align-justify:before {
- content: "\e055";
+ content: '\e055';
}
.glyphicon-list:before {
- content: "\e056";
+ content: '\e056';
}
.glyphicon-indent-left:before {
- content: "\e057";
+ content: '\e057';
}
.glyphicon-indent-right:before {
- content: "\e058";
+ content: '\e058';
}
.glyphicon-facetime-video:before {
- content: "\e059";
+ content: '\e059';
}
.glyphicon-picture:before {
- content: "\e060";
+ content: '\e060';
}
.glyphicon-map-marker:before {
- content: "\e062";
+ content: '\e062';
}
.glyphicon-adjust:before {
- content: "\e063";
+ content: '\e063';
}
.glyphicon-tint:before {
- content: "\e064";
+ content: '\e064';
}
.glyphicon-edit:before {
- content: "\e065";
+ content: '\e065';
}
.glyphicon-share:before {
- content: "\e066";
+ content: '\e066';
}
.glyphicon-check:before {
- content: "\e067";
+ content: '\e067';
}
.glyphicon-move:before {
- content: "\e068";
+ content: '\e068';
}
.glyphicon-step-backward:before {
- content: "\e069";
+ content: '\e069';
}
.glyphicon-fast-backward:before {
- content: "\e070";
+ content: '\e070';
}
.glyphicon-backward:before {
- content: "\e071";
+ content: '\e071';
}
.glyphicon-play:before {
- content: "\e072";
+ content: '\e072';
}
.glyphicon-pause:before {
- content: "\e073";
+ content: '\e073';
}
.glyphicon-stop:before {
- content: "\e074";
+ content: '\e074';
}
.glyphicon-forward:before {
- content: "\e075";
+ content: '\e075';
}
.glyphicon-fast-forward:before {
- content: "\e076";
+ content: '\e076';
}
.glyphicon-step-forward:before {
- content: "\e077";
+ content: '\e077';
}
.glyphicon-eject:before {
- content: "\e078";
+ content: '\e078';
}
.glyphicon-chevron-left:before {
- content: "\e079";
+ content: '\e079';
}
.glyphicon-chevron-right:before {
- content: "\e080";
+ content: '\e080';
}
.glyphicon-plus-sign:before {
- content: "\e081";
+ content: '\e081';
}
.glyphicon-minus-sign:before {
- content: "\e082";
+ content: '\e082';
}
.glyphicon-remove-sign:before {
- content: "\e083";
+ content: '\e083';
}
.glyphicon-ok-sign:before {
- content: "\e084";
+ content: '\e084';
}
.glyphicon-question-sign:before {
- content: "\e085";
+ content: '\e085';
}
.glyphicon-info-sign:before {
- content: "\e086";
+ content: '\e086';
}
.glyphicon-screenshot:before {
- content: "\e087";
+ content: '\e087';
}
.glyphicon-remove-circle:before {
- content: "\e088";
+ content: '\e088';
}
.glyphicon-ok-circle:before {
- content: "\e089";
+ content: '\e089';
}
.glyphicon-ban-circle:before {
- content: "\e090";
+ content: '\e090';
}
.glyphicon-arrow-left:before {
- content: "\e091";
+ content: '\e091';
}
.glyphicon-arrow-right:before {
- content: "\e092";
+ content: '\e092';
}
.glyphicon-arrow-up:before {
- content: "\e093";
+ content: '\e093';
}
.glyphicon-arrow-down:before {
- content: "\e094";
+ content: '\e094';
}
.glyphicon-share-alt:before {
- content: "\e095";
+ content: '\e095';
}
.glyphicon-resize-full:before {
- content: "\e096";
+ content: '\e096';
}
.glyphicon-resize-small:before {
- content: "\e097";
+ content: '\e097';
}
.glyphicon-exclamation-sign:before {
- content: "\e101";
+ content: '\e101';
}
.glyphicon-gift:before {
- content: "\e102";
+ content: '\e102';
}
.glyphicon-leaf:before {
- content: "\e103";
+ content: '\e103';
}
.glyphicon-fire:before {
- content: "\e104";
+ content: '\e104';
}
.glyphicon-eye-open:before {
- content: "\e105";
+ content: '\e105';
}
.glyphicon-eye-close:before {
- content: "\e106";
+ content: '\e106';
}
.glyphicon-warning-sign:before {
- content: "\e107";
+ content: '\e107';
}
.glyphicon-plane:before {
- content: "\e108";
+ content: '\e108';
}
.glyphicon-calendar:before {
- content: "\e109";
+ content: '\e109';
}
.glyphicon-random:before {
- content: "\e110";
+ content: '\e110';
}
.glyphicon-comment:before {
- content: "\e111";
+ content: '\e111';
}
.glyphicon-magnet:before {
- content: "\e112";
+ content: '\e112';
}
.glyphicon-chevron-up:before {
- content: "\e113";
+ content: '\e113';
}
.glyphicon-chevron-down:before {
- content: "\e114";
+ content: '\e114';
}
.glyphicon-retweet:before {
- content: "\e115";
+ content: '\e115';
}
.glyphicon-shopping-cart:before {
- content: "\e116";
+ content: '\e116';
}
.glyphicon-folder-close:before {
- content: "\e117";
+ content: '\e117';
}
.glyphicon-folder-open:before {
- content: "\e118";
+ content: '\e118';
}
.glyphicon-resize-vertical:before {
- content: "\e119";
+ content: '\e119';
}
.glyphicon-resize-horizontal:before {
- content: "\e120";
+ content: '\e120';
}
.glyphicon-hdd:before {
- content: "\e121";
+ content: '\e121';
}
.glyphicon-bullhorn:before {
- content: "\e122";
+ content: '\e122';
}
.glyphicon-bell:before {
- content: "\e123";
+ content: '\e123';
}
.glyphicon-certificate:before {
- content: "\e124";
+ content: '\e124';
}
.glyphicon-thumbs-up:before {
- content: "\e125";
+ content: '\e125';
}
.glyphicon-thumbs-down:before {
- content: "\e126";
+ content: '\e126';
}
.glyphicon-hand-right:before {
- content: "\e127";
+ content: '\e127';
}
.glyphicon-hand-left:before {
- content: "\e128";
+ content: '\e128';
}
.glyphicon-hand-up:before {
- content: "\e129";
+ content: '\e129';
}
.glyphicon-hand-down:before {
- content: "\e130";
+ content: '\e130';
}
.glyphicon-circle-arrow-right:before {
- content: "\e131";
+ content: '\e131';
}
.glyphicon-circle-arrow-left:before {
- content: "\e132";
+ content: '\e132';
}
.glyphicon-circle-arrow-up:before {
- content: "\e133";
+ content: '\e133';
}
.glyphicon-circle-arrow-down:before {
- content: "\e134";
+ content: '\e134';
}
.glyphicon-globe:before {
- content: "\e135";
+ content: '\e135';
}
.glyphicon-wrench:before {
- content: "\e136";
+ content: '\e136';
}
.glyphicon-tasks:before {
- content: "\e137";
+ content: '\e137';
}
.glyphicon-filter:before {
- content: "\e138";
+ content: '\e138';
}
.glyphicon-briefcase:before {
- content: "\e139";
+ content: '\e139';
}
.glyphicon-fullscreen:before {
- content: "\e140";
+ content: '\e140';
}
.glyphicon-dashboard:before {
- content: "\e141";
+ content: '\e141';
}
.glyphicon-paperclip:before {
- content: "\e142";
+ content: '\e142';
}
.glyphicon-heart-empty:before {
- content: "\e143";
+ content: '\e143';
}
.glyphicon-link:before {
- content: "\e144";
+ content: '\e144';
}
.glyphicon-phone:before {
- content: "\e145";
+ content: '\e145';
}
.glyphicon-pushpin:before {
- content: "\e146";
+ content: '\e146';
}
.glyphicon-usd:before {
- content: "\e148";
+ content: '\e148';
}
.glyphicon-gbp:before {
- content: "\e149";
+ content: '\e149';
}
.glyphicon-sort:before {
- content: "\e150";
+ content: '\e150';
}
.glyphicon-sort-by-alphabet:before {
- content: "\e151";
+ content: '\e151';
}
.glyphicon-sort-by-alphabet-alt:before {
- content: "\e152";
+ content: '\e152';
}
.glyphicon-sort-by-order:before {
- content: "\e153";
+ content: '\e153';
}
.glyphicon-sort-by-order-alt:before {
- content: "\e154";
+ content: '\e154';
}
.glyphicon-sort-by-attributes:before {
- content: "\e155";
+ content: '\e155';
}
.glyphicon-sort-by-attributes-alt:before {
- content: "\e156";
+ content: '\e156';
}
.glyphicon-unchecked:before {
- content: "\e157";
+ content: '\e157';
}
.glyphicon-expand:before {
- content: "\e158";
+ content: '\e158';
}
.glyphicon-collapse-down:before {
- content: "\e159";
+ content: '\e159';
}
.glyphicon-collapse-up:before {
- content: "\e160";
+ content: '\e160';
}
.glyphicon-log-in:before {
- content: "\e161";
+ content: '\e161';
}
.glyphicon-flash:before {
- content: "\e162";
+ content: '\e162';
}
.glyphicon-log-out:before {
- content: "\e163";
+ content: '\e163';
}
.glyphicon-new-window:before {
- content: "\e164";
+ content: '\e164';
}
.glyphicon-record:before {
- content: "\e165";
+ content: '\e165';
}
.glyphicon-save:before {
- content: "\e166";
+ content: '\e166';
}
.glyphicon-open:before {
- content: "\e167";
+ content: '\e167';
}
.glyphicon-saved:before {
- content: "\e168";
+ content: '\e168';
}
.glyphicon-import:before {
- content: "\e169";
+ content: '\e169';
}
.glyphicon-export:before {
- content: "\e170";
+ content: '\e170';
}
.glyphicon-send:before {
- content: "\e171";
+ content: '\e171';
}
.glyphicon-floppy-disk:before {
- content: "\e172";
+ content: '\e172';
}
.glyphicon-floppy-saved:before {
- content: "\e173";
+ content: '\e173';
}
.glyphicon-floppy-remove:before {
- content: "\e174";
+ content: '\e174';
}
.glyphicon-floppy-save:before {
- content: "\e175";
+ content: '\e175';
}
.glyphicon-floppy-open:before {
- content: "\e176";
+ content: '\e176';
}
.glyphicon-credit-card:before {
- content: "\e177";
+ content: '\e177';
}
.glyphicon-transfer:before {
- content: "\e178";
+ content: '\e178';
}
.glyphicon-cutlery:before {
- content: "\e179";
+ content: '\e179';
}
.glyphicon-header:before {
- content: "\e180";
+ content: '\e180';
}
.glyphicon-compressed:before {
- content: "\e181";
+ content: '\e181';
}
.glyphicon-earphone:before {
- content: "\e182";
+ content: '\e182';
}
.glyphicon-phone-alt:before {
- content: "\e183";
+ content: '\e183';
}
.glyphicon-tower:before {
- content: "\e184";
+ content: '\e184';
}
.glyphicon-stats:before {
- content: "\e185";
+ content: '\e185';
}
.glyphicon-sd-video:before {
- content: "\e186";
+ content: '\e186';
}
.glyphicon-hd-video:before {
- content: "\e187";
+ content: '\e187';
}
.glyphicon-subtitles:before {
- content: "\e188";
+ content: '\e188';
}
.glyphicon-sound-stereo:before {
- content: "\e189";
+ content: '\e189';
}
.glyphicon-sound-dolby:before {
- content: "\e190";
+ content: '\e190';
}
.glyphicon-sound-5-1:before {
- content: "\e191";
+ content: '\e191';
}
.glyphicon-sound-6-1:before {
- content: "\e192";
+ content: '\e192';
}
.glyphicon-sound-7-1:before {
- content: "\e193";
+ content: '\e193';
}
.glyphicon-copyright-mark:before {
- content: "\e194";
+ content: '\e194';
}
.glyphicon-registration-mark:before {
- content: "\e195";
+ content: '\e195';
}
.glyphicon-cloud-download:before {
- content: "\e197";
+ content: '\e197';
}
.glyphicon-cloud-upload:before {
- content: "\e198";
+ content: '\e198';
}
.glyphicon-tree-conifer:before {
- content: "\e199";
+ content: '\e199';
}
.glyphicon-tree-deciduous:before {
- content: "\e200";
+ content: '\e200';
}
.caret {
display: inline-block;
@@ -3022,10 +3116,10 @@ input[type="button"].btn-block {
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, .15);
+ border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
- -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
- box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}
.dropdown-menu.pull-right {
right: 0;
@@ -3108,7 +3202,7 @@ input[type="button"].btn-block {
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
- content: "";
+ content: '';
border-top: 0;
border-bottom: 4px solid;
}
@@ -3214,12 +3308,12 @@ input[type="button"].btn-block {
padding-left: 12px;
}
.btn-group.open .dropdown-toggle {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
-webkit-box-shadow: none;
- box-shadow: none;
+ box-shadow: none;
}
.btn .caret {
margin-left: 0;
@@ -3289,8 +3383,8 @@ input[type="button"].btn-block {
.btn-group-justified > .btn-group .btn {
width: 100%;
}
-[data-toggle="buttons"] > .btn > input[type="radio"],
-[data-toggle="buttons"] > .btn > input[type="checkbox"] {
+[data-toggle='buttons'] > .btn > input[type='radio'],
+[data-toggle='buttons'] > .btn > input[type='checkbox'] {
display: none;
}
.input-group {
@@ -3298,7 +3392,7 @@ input[type="button"].btn-block {
display: table;
border-collapse: separate;
}
-.input-group[class*="col-"] {
+.input-group[class*='col-'] {
float: none;
padding-right: 0;
padding-left: 0;
@@ -3393,8 +3487,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
font-size: 17px;
border-radius: 6px;
}
-.input-group-addon input[type="radio"],
-.input-group-addon input[type="checkbox"] {
+.input-group-addon input[type='radio'],
+.input-group-addon input[type='checkbox'] {
margin-top: 0;
}
.input-group .form-control:first-child,
@@ -3662,7 +3756,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
overflow-x: visible;
-webkit-overflow-scrolling: touch;
border-top: 1px solid transparent;
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.navbar-collapse.in {
overflow-y: auto;
@@ -3844,8 +3938,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
margin-left: -15px;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
}
@media (min-width: 768px) {
.navbar-form .form-group {
@@ -3873,8 +3967,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
margin-bottom: 0;
vertical-align: middle;
}
- .navbar-form .radio input[type="radio"],
- .navbar-form .checkbox input[type="checkbox"] {
+ .navbar-form .radio input[type='radio'],
+ .navbar-form .checkbox input[type='checkbox'] {
float: none;
margin-left: 0;
}
@@ -3896,7 +3990,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
margin-left: 0;
border: 0;
-webkit-box-shadow: none;
- box-shadow: none;
+ box-shadow: none;
}
.navbar-form.navbar-right:last-child {
margin-right: -15px;
@@ -4122,7 +4216,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.breadcrumb > li + li:before {
padding: 0 5px;
color: #ccc;
- content: "/\00a0";
+ content: '/\00a0';
}
.breadcrumb > .active {
color: #999;
@@ -4260,7 +4354,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.label {
display: inline;
- padding: .2em .6em .3em;
+ padding: 0.2em 0.6em 0.3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
@@ -4268,7 +4362,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
text-align: center;
white-space: nowrap;
vertical-align: baseline;
- border-radius: .25em;
+ border-radius: 0.25em;
}
.label[href]:hover,
.label[href]:focus {
@@ -4407,8 +4501,8 @@ a.list-group-item.active > .badge,
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
- -webkit-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
@@ -4519,8 +4613,8 @@ a.thumbnail.active {
overflow: hidden;
background-color: #f5f5f5;
border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
float: left;
@@ -4531,47 +4625,137 @@ a.thumbnail.active {
color: #fff;
text-align: center;
background-color: #428bca;
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
- -webkit-transition: width .6s ease;
- transition: width .6s ease;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ transition: width 0.6s ease;
}
.progress-striped .progress-bar {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
background-size: 40px 40px;
}
.progress.active .progress-bar {
-webkit-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
}
.progress-bar-info {
background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
}
.progress-bar-warning {
background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
}
.progress-bar-danger {
background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
}
.media,
.media-body {
@@ -4758,8 +4942,8 @@ a.list-group-item-danger.active:focus {
background-color: #fff;
border: 1px solid transparent;
border-radius: 4px;
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
- box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
padding: 15px;
@@ -4819,23 +5003,63 @@ a.list-group-item-danger.active:focus {
border-top-right-radius: 3px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:first-child {
border-top-left-radius: 3px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:last-child {
border-top-right-radius: 3px;
}
.panel > .table:last-child,
@@ -4844,23 +5068,63 @@ a.list-group-item-danger.active:focus {
border-bottom-left-radius: 3px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:first-child {
border-bottom-left-radius: 3px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:last-child {
border-bottom-right-radius: 3px;
}
.panel > .panel-body + .table,
@@ -5041,12 +5305,12 @@ a.list-group-item-danger.active:focus {
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
border-color: #ddd;
- border-color: rgba(0, 0, 0, .15);
+ border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
padding: 24px;
@@ -5064,7 +5328,7 @@ a.list-group-item-danger.active:focus {
color: #000;
text-shadow: 0 1px 0 #fff;
filter: alpha(opacity=20);
- opacity: .2;
+ opacity: 0.2;
}
.close:hover,
.close:focus {
@@ -5072,7 +5336,7 @@ a.list-group-item-danger.active:focus {
text-decoration: none;
cursor: pointer;
filter: alpha(opacity=50);
- opacity: .5;
+ opacity: 0.5;
}
button.close {
-webkit-appearance: none;
@@ -5098,18 +5362,18 @@ button.close {
outline: 0;
}
.modal.fade .modal-dialog {
- -webkit-transition: -webkit-transform .3s ease-out;
- -moz-transition: -moz-transform .3s ease-out;
- -o-transition: -o-transform .3s ease-out;
- transition: transform .3s ease-out;
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
-webkit-transform: translate(0, -25%);
- -ms-transform: translate(0, -25%);
- transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ transform: translate(0, -25%);
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0);
}
.modal-dialog {
position: relative;
@@ -5121,11 +5385,11 @@ button.close {
background-color: #fff;
background-clip: padding-box;
border: 1px solid #999;
- border: 1px solid rgba(0, 0, 0, .2);
+ border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
outline: none;
- -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
- box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
}
.modal-backdrop {
position: fixed;
@@ -5142,7 +5406,7 @@ button.close {
}
.modal-backdrop.in {
filter: alpha(opacity=50);
- opacity: .5;
+ opacity: 0.5;
}
.modal-header {
min-height: 16.42857143px;
@@ -5182,8 +5446,8 @@ button.close {
margin: 30px auto;
}
.modal-content {
- -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
- box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.modal-sm {
width: 300px;
@@ -5206,7 +5470,7 @@ button.close {
}
.tooltip.in {
filter: alpha(opacity=90);
- opacity: .9;
+ opacity: 0.9;
}
.tooltip.top {
padding: 5px 0;
@@ -5305,10 +5569,10 @@ button.close {
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, .2);
+ border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
- box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
margin-top: -10px;
@@ -5348,7 +5612,7 @@ button.close {
border-width: 11px;
}
.popover > .arrow:after {
- content: "";
+ content: '';
border-width: 10px;
}
.popover.top > .arrow {
@@ -5356,13 +5620,13 @@ button.close {
left: 50%;
margin-left: -11px;
border-top-color: #999;
- border-top-color: rgba(0, 0, 0, .25);
+ border-top-color: rgba(0, 0, 0, 0.25);
border-bottom-width: 0;
}
.popover.top > .arrow:after {
bottom: 1px;
margin-left: -10px;
- content: " ";
+ content: ' ';
border-top-color: #fff;
border-bottom-width: 0;
}
@@ -5371,13 +5635,13 @@ button.close {
left: -11px;
margin-top: -11px;
border-right-color: #999;
- border-right-color: rgba(0, 0, 0, .25);
+ border-right-color: rgba(0, 0, 0, 0.25);
border-left-width: 0;
}
.popover.right > .arrow:after {
bottom: -10px;
left: 1px;
- content: " ";
+ content: ' ';
border-right-color: #fff;
border-left-width: 0;
}
@@ -5387,12 +5651,12 @@ button.close {
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999;
- border-bottom-color: rgba(0, 0, 0, .25);
+ border-bottom-color: rgba(0, 0, 0, 0.25);
}
.popover.bottom > .arrow:after {
top: 1px;
margin-left: -10px;
- content: " ";
+ content: ' ';
border-top-width: 0;
border-bottom-color: #fff;
}
@@ -5402,12 +5666,12 @@ button.close {
margin-top: -11px;
border-right-width: 0;
border-left-color: #999;
- border-left-color: rgba(0, 0, 0, .25);
+ border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
right: 1px;
bottom: -10px;
- content: " ";
+ content: ' ';
border-right-width: 0;
border-left-color: #fff;
}
@@ -5422,8 +5686,8 @@ button.close {
.carousel-inner > .item {
position: relative;
display: none;
- -webkit-transition: .6s ease-in-out left;
- transition: .6s ease-in-out left;
+ -webkit-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
@@ -5468,21 +5732,29 @@ button.close {
font-size: 20px;
color: #fff;
text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
filter: alpha(opacity=50);
- opacity: .5;
+ opacity: 0.5;
}
.carousel-control.left {
- background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%));
- background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.5) 0%),
+ color-stop(rgba(0, 0, 0, 0.0001) 100%)
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
background-repeat: repeat-x;
}
.carousel-control.right {
right: 0;
left: auto;
- background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%));
- background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.0001) 0%),
+ color-stop(rgba(0, 0, 0, 0.5) 100%)
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
background-repeat: repeat-x;
}
@@ -5492,7 +5764,7 @@ button.close {
text-decoration: none;
filter: alpha(opacity=90);
outline: none;
- opacity: .9;
+ opacity: 0.9;
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
@@ -5564,7 +5836,7 @@ button.close {
padding-bottom: 20px;
color: #fff;
text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
text-shadow: none;
@@ -5618,7 +5890,7 @@ button.close {
.modal-footer:before,
.modal-footer:after {
display: table;
- content: " ";
+ content: ' ';
}
.clearfix:after,
.container:after,
diff --git a/libraries/bootstrap/css/bootstrap.min.css b/libraries/bootstrap/css/bootstrap.min.css
index 07f12ea8..ca80c654 100644
--- a/libraries/bootstrap/css/bootstrap.min.css
+++ b/libraries/bootstrap/css/bootstrap.min.css
@@ -4,4 +4,6048 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:18px;margin-bottom:9px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:9px;margin-bottom:9px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:33px}h2,.h2{font-size:27px}h3,.h3{font-size:23px}h4,.h4{font-size:17px}h5,.h5{font-size:13px}h6,.h6{font-size:12px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:14px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:9px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:16.25px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:18px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:18px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:13px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:32px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:18px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:40px}.has-feedback .form-control-feedback{position:absolute;top:23px;right:0;display:block;width:32px;height:32px;line-height:32px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:25px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:13px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:13px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:18px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:16px 15px;font-size:17px;line-height:18px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:8px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:16px;padding-bottom:16px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:9px;margin-bottom:9px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:9px;margin-bottom:9px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:16px;margin-bottom:16px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:58.5px}}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:18px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:19.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:4px 6px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
+/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+[hidden],
+template {
+ display: none;
+}
+a {
+ background: 0 0;
+}
+a:active,
+a:hover {
+ outline: 0;
+}
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+b,
+strong {
+ font-weight: 700;
+}
+dfn {
+ font-style: italic;
+}
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+mark {
+ background: #ff0;
+ color: #000;
+}
+small {
+ font-size: 80%;
+}
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+img {
+ border: 0;
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+figure {
+ margin: 1em 40px;
+}
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+pre {
+ overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+button {
+ overflow: visible;
+}
+button,
+select {
+ text-transform: none;
+}
+button,
+html input[type='button'],
+input[type='reset'],
+input[type='submit'] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+input {
+ line-height: normal;
+}
+input[type='checkbox'],
+input[type='radio'] {
+ box-sizing: border-box;
+ padding: 0;
+}
+input[type='number']::-webkit-inner-spin-button,
+input[type='number']::-webkit-outer-spin-button {
+ height: auto;
+}
+input[type='search'] {
+ -webkit-appearance: textfield;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+}
+input[type='search']::-webkit-search-cancel-button,
+input[type='search']::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+fieldset {
+ border: 1px solid silver;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+legend {
+ border: 0;
+ padding: 0;
+}
+textarea {
+ overflow: auto;
+}
+optgroup {
+ font-weight: 700;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+td,
+th {
+ padding: 0;
+}
+@media print {
+ * {
+ text-shadow: none !important;
+ color: #000 !important;
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: ' (' attr(href) ')';
+ }
+ abbr[title]:after {
+ content: ' (' attr(title) ')';
+ }
+ a[href^='javascript:']:after,
+ a[href^='#']:after {
+ content: '';
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ select {
+ background: #fff !important;
+ }
+ .navbar {
+ display: none;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .label {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+:before,
+:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+html {
+ font-size: 62.5%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
+}
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+a {
+ color: #428bca;
+ text-decoration: none;
+}
+a:hover,
+a:focus {
+ color: #2a6496;
+ text-decoration: underline;
+}
+a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+figure {
+ margin: 0;
+}
+img {
+ vertical-align: middle;
+}
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.img-rounded {
+ border-radius: 6px;
+}
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+.img-circle {
+ border-radius: 50%;
+}
+hr {
+ margin-top: 18px;
+ margin-bottom: 18px;
+ border: 0;
+ border-top: 1px solid #eee;
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+ font-weight: 400;
+ line-height: 1;
+ color: #999;
+}
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ margin-top: 18px;
+ margin-bottom: 9px;
+}
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+ font-size: 65%;
+}
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+ font-size: 75%;
+}
+h1,
+.h1 {
+ font-size: 33px;
+}
+h2,
+.h2 {
+ font-size: 27px;
+}
+h3,
+.h3 {
+ font-size: 23px;
+}
+h4,
+.h4 {
+ font-size: 17px;
+}
+h5,
+.h5 {
+ font-size: 13px;
+}
+h6,
+.h6 {
+ font-size: 12px;
+}
+p {
+ margin: 0 0 9px;
+}
+.lead {
+ margin-bottom: 18px;
+ font-size: 14px;
+ font-weight: 200;
+ line-height: 1.4;
+}
+@media (min-width: 768px) {
+ .lead {
+ font-size: 19.5px;
+ }
+}
+small,
+.small {
+ font-size: 85%;
+}
+cite {
+ font-style: normal;
+}
+.text-left {
+ text-align: left;
+}
+.text-right {
+ text-align: right;
+}
+.text-center {
+ text-align: center;
+}
+.text-justify {
+ text-align: justify;
+}
+.text-muted {
+ color: #999;
+}
+.text-primary {
+ color: #428bca;
+}
+a.text-primary:hover {
+ color: #3071a9;
+}
+.text-success {
+ color: #3c763d;
+}
+a.text-success:hover {
+ color: #2b542c;
+}
+.text-info {
+ color: #31708f;
+}
+a.text-info:hover {
+ color: #245269;
+}
+.text-warning {
+ color: #8a6d3b;
+}
+a.text-warning:hover {
+ color: #66512c;
+}
+.text-danger {
+ color: #a94442;
+}
+a.text-danger:hover {
+ color: #843534;
+}
+.bg-primary {
+ color: #fff;
+ background-color: #428bca;
+}
+a.bg-primary:hover {
+ background-color: #3071a9;
+}
+.bg-success {
+ background-color: #dff0d8;
+}
+a.bg-success:hover {
+ background-color: #c1e2b3;
+}
+.bg-info {
+ background-color: #d9edf7;
+}
+a.bg-info:hover {
+ background-color: #afd9ee;
+}
+.bg-warning {
+ background-color: #fcf8e3;
+}
+a.bg-warning:hover {
+ background-color: #f7ecb5;
+}
+.bg-danger {
+ background-color: #f2dede;
+}
+a.bg-danger:hover {
+ background-color: #e4b9b9;
+}
+.page-header {
+ padding-bottom: 8px;
+ margin: 36px 0 18px;
+ border-bottom: 1px solid #eee;
+}
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 9px;
+}
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-bottom: 0;
+}
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+ margin-left: -5px;
+}
+.list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+dl {
+ margin-top: 0;
+ margin-bottom: 18px;
+}
+dt,
+dd {
+ line-height: 1.42857143;
+}
+dt {
+ font-weight: 700;
+}
+dd {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
+}
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #999;
+}
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+blockquote {
+ padding: 9px 18px;
+ margin: 0 0 18px;
+ font-size: 16.25px;
+ border-left: 5px solid #eee;
+}
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
+}
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #999;
+}
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: '\2014 \00A0';
+}
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eee;
+ border-left: 0;
+ text-align: right;
+}
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+ content: '';
+}
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+ content: '\00A0 \2014';
+}
+blockquote:before,
+blockquote:after {
+ content: '';
+}
+address {
+ margin-bottom: 18px;
+ font-style: normal;
+ line-height: 1.42857143;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
+}
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ white-space: nowrap;
+ border-radius: 4px;
+}
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+pre {
+ display: block;
+ padding: 8.5px;
+ margin: 0 0 9px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #333;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+}
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+@media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
+}
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.row {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.col-xs-1,
+.col-sm-1,
+.col-md-1,
+.col-lg-1,
+.col-xs-2,
+.col-sm-2,
+.col-md-2,
+.col-lg-2,
+.col-xs-3,
+.col-sm-3,
+.col-md-3,
+.col-lg-3,
+.col-xs-4,
+.col-sm-4,
+.col-md-4,
+.col-lg-4,
+.col-xs-5,
+.col-sm-5,
+.col-md-5,
+.col-lg-5,
+.col-xs-6,
+.col-sm-6,
+.col-md-6,
+.col-lg-6,
+.col-xs-7,
+.col-sm-7,
+.col-md-7,
+.col-lg-7,
+.col-xs-8,
+.col-sm-8,
+.col-md-8,
+.col-lg-8,
+.col-xs-9,
+.col-sm-9,
+.col-md-9,
+.col-lg-9,
+.col-xs-10,
+.col-sm-10,
+.col-md-10,
+.col-lg-10,
+.col-xs-11,
+.col-sm-11,
+.col-md-11,
+.col-lg-11,
+.col-xs-12,
+.col-sm-12,
+.col-md-12,
+.col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.col-xs-1,
+.col-xs-2,
+.col-xs-3,
+.col-xs-4,
+.col-xs-5,
+.col-xs-6,
+.col-xs-7,
+.col-xs-8,
+.col-xs-9,
+.col-xs-10,
+.col-xs-11,
+.col-xs-12 {
+ float: left;
+}
+.col-xs-12 {
+ width: 100%;
+}
+.col-xs-11 {
+ width: 91.66666667%;
+}
+.col-xs-10 {
+ width: 83.33333333%;
+}
+.col-xs-9 {
+ width: 75%;
+}
+.col-xs-8 {
+ width: 66.66666667%;
+}
+.col-xs-7 {
+ width: 58.33333333%;
+}
+.col-xs-6 {
+ width: 50%;
+}
+.col-xs-5 {
+ width: 41.66666667%;
+}
+.col-xs-4 {
+ width: 33.33333333%;
+}
+.col-xs-3 {
+ width: 25%;
+}
+.col-xs-2 {
+ width: 16.66666667%;
+}
+.col-xs-1 {
+ width: 8.33333333%;
+}
+.col-xs-pull-12 {
+ right: 100%;
+}
+.col-xs-pull-11 {
+ right: 91.66666667%;
+}
+.col-xs-pull-10 {
+ right: 83.33333333%;
+}
+.col-xs-pull-9 {
+ right: 75%;
+}
+.col-xs-pull-8 {
+ right: 66.66666667%;
+}
+.col-xs-pull-7 {
+ right: 58.33333333%;
+}
+.col-xs-pull-6 {
+ right: 50%;
+}
+.col-xs-pull-5 {
+ right: 41.66666667%;
+}
+.col-xs-pull-4 {
+ right: 33.33333333%;
+}
+.col-xs-pull-3 {
+ right: 25%;
+}
+.col-xs-pull-2 {
+ right: 16.66666667%;
+}
+.col-xs-pull-1 {
+ right: 8.33333333%;
+}
+.col-xs-pull-0 {
+ right: 0;
+}
+.col-xs-push-12 {
+ left: 100%;
+}
+.col-xs-push-11 {
+ left: 91.66666667%;
+}
+.col-xs-push-10 {
+ left: 83.33333333%;
+}
+.col-xs-push-9 {
+ left: 75%;
+}
+.col-xs-push-8 {
+ left: 66.66666667%;
+}
+.col-xs-push-7 {
+ left: 58.33333333%;
+}
+.col-xs-push-6 {
+ left: 50%;
+}
+.col-xs-push-5 {
+ left: 41.66666667%;
+}
+.col-xs-push-4 {
+ left: 33.33333333%;
+}
+.col-xs-push-3 {
+ left: 25%;
+}
+.col-xs-push-2 {
+ left: 16.66666667%;
+}
+.col-xs-push-1 {
+ left: 8.33333333%;
+}
+.col-xs-push-0 {
+ left: 0;
+}
+.col-xs-offset-12 {
+ margin-left: 100%;
+}
+.col-xs-offset-11 {
+ margin-left: 91.66666667%;
+}
+.col-xs-offset-10 {
+ margin-left: 83.33333333%;
+}
+.col-xs-offset-9 {
+ margin-left: 75%;
+}
+.col-xs-offset-8 {
+ margin-left: 66.66666667%;
+}
+.col-xs-offset-7 {
+ margin-left: 58.33333333%;
+}
+.col-xs-offset-6 {
+ margin-left: 50%;
+}
+.col-xs-offset-5 {
+ margin-left: 41.66666667%;
+}
+.col-xs-offset-4 {
+ margin-left: 33.33333333%;
+}
+.col-xs-offset-3 {
+ margin-left: 25%;
+}
+.col-xs-offset-2 {
+ margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+ margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .col-sm-1,
+ .col-sm-2,
+ .col-sm-3,
+ .col-sm-4,
+ .col-sm-5,
+ .col-sm-6,
+ .col-sm-7,
+ .col-sm-8,
+ .col-sm-9,
+ .col-sm-10,
+ .col-sm-11,
+ .col-sm-12 {
+ float: left;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-sm-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-sm-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-sm-pull-0 {
+ right: 0;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-push-11 {
+ left: 91.66666667%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333333%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-8 {
+ left: 66.66666667%;
+ }
+ .col-sm-push-7 {
+ left: 58.33333333%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-5 {
+ left: 41.66666667%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333333%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-2 {
+ left: 16.66666667%;
+ }
+ .col-sm-push-1 {
+ left: 8.33333333%;
+ }
+ .col-sm-push-0 {
+ left: 0;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 992px) {
+ .col-md-1,
+ .col-md-2,
+ .col-md-3,
+ .col-md-4,
+ .col-md-5,
+ .col-md-6,
+ .col-md-7,
+ .col-md-8,
+ .col-md-9,
+ .col-md-10,
+ .col-md-11,
+ .col-md-12 {
+ float: left;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666667%;
+ }
+ .col-md-10 {
+ width: 83.33333333%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666667%;
+ }
+ .col-md-7 {
+ width: 58.33333333%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.66666667%;
+ }
+ .col-md-1 {
+ width: 8.33333333%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-md-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-md-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-md-pull-0 {
+ right: 0;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-push-11 {
+ left: 91.66666667%;
+ }
+ .col-md-push-10 {
+ left: 83.33333333%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-8 {
+ left: 66.66666667%;
+ }
+ .col-md-push-7 {
+ left: 58.33333333%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-5 {
+ left: 41.66666667%;
+ }
+ .col-md-push-4 {
+ left: 33.33333333%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-2 {
+ left: 16.66666667%;
+ }
+ .col-md-push-1 {
+ left: 8.33333333%;
+ }
+ .col-md-push-0 {
+ left: 0;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 1200px) {
+ .col-lg-1,
+ .col-lg-2,
+ .col-lg-3,
+ .col-lg-4,
+ .col-lg-5,
+ .col-lg-6,
+ .col-lg-7,
+ .col-lg-8,
+ .col-lg-9,
+ .col-lg-10,
+ .col-lg-11,
+ .col-lg-12 {
+ float: left;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-lg-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-lg-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-lg-pull-0 {
+ right: 0;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-push-11 {
+ left: 91.66666667%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333333%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-8 {
+ left: 66.66666667%;
+ }
+ .col-lg-push-7 {
+ left: 58.33333333%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-5 {
+ left: 41.66666667%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333333%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-2 {
+ left: 16.66666667%;
+ }
+ .col-lg-push-1 {
+ left: 8.33333333%;
+ }
+ .col-lg-push-0 {
+ left: 0;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0;
+ }
+}
+table {
+ max-width: 100%;
+ background-color: transparent;
+}
+th {
+ text-align: left;
+}
+.table {
+ width: 100%;
+ margin-bottom: 18px;
+}
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
+}
+.table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
+}
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+}
+.table > tbody + tbody {
+ border-top: 2px solid #ddd;
+}
+.table .table {
+ background-color: #fff;
+}
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+ padding: 5px;
+}
+.table-bordered {
+ border: 1px solid #ddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+.table-striped > tbody > tr:nth-child(odd) > td,
+.table-striped > tbody > tr:nth-child(odd) > th {
+ background-color: #f9f9f9;
+}
+.table-hover > tbody > tr:hover > td,
+.table-hover > tbody > tr:hover > th {
+ background-color: #f5f5f5;
+}
+table col[class*='col-'] {
+ position: static;
+ float: none;
+ display: table-column;
+}
+table td[class*='col-'],
+table th[class*='col-'] {
+ position: static;
+ float: none;
+ display: table-cell;
+}
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+}
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
+}
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+}
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
+}
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+}
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+}
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
+}
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+}
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+}
+@media (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 13.5px;
+ overflow-y: hidden;
+ overflow-x: scroll;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ -webkit-overflow-scrolling: touch;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ min-width: 0;
+}
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 18px;
+ font-size: 19.5px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+label {
+ display: inline-block;
+ margin-bottom: 5px;
+ font-weight: 700;
+}
+input[type='search'] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+input[type='radio'],
+input[type='checkbox'] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
+}
+input[type='file'] {
+ display: block;
+}
+input[type='range'] {
+ display: block;
+ width: 100%;
+}
+select[multiple],
+select[size] {
+ height: auto;
+}
+input[type='file']:focus,
+input[type='radio']:focus,
+input[type='checkbox']:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #555;
+}
+.form-control {
+ display: block;
+ width: 100%;
+ height: 32px;
+ padding: 6px 12px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+}
+.form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1;
+}
+.form-control:-ms-input-placeholder {
+ color: #999;
+}
+.form-control::-webkit-input-placeholder {
+ color: #999;
+}
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+ cursor: not-allowed;
+ background-color: #eee;
+ opacity: 1;
+}
+textarea.form-control {
+ height: auto;
+}
+input[type='search'] {
+ -webkit-appearance: none;
+}
+input[type='date'] {
+ line-height: 32px;
+}
+.form-group {
+ margin-bottom: 15px;
+}
+.radio,
+.checkbox {
+ display: block;
+ min-height: 18px;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding-left: 20px;
+}
+.radio label,
+.checkbox label {
+ display: inline;
+ font-weight: 400;
+ cursor: pointer;
+}
+.radio input[type='radio'],
+.radio-inline input[type='radio'],
+.checkbox input[type='checkbox'],
+.checkbox-inline input[type='checkbox'] {
+ float: left;
+ margin-left: -20px;
+}
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px;
+}
+.radio-inline,
+.checkbox-inline {
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: 400;
+ cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+input[type='radio'][disabled],
+input[type='checkbox'][disabled],
+.radio[disabled],
+.radio-inline[disabled],
+.checkbox[disabled],
+.checkbox-inline[disabled],
+fieldset[disabled] input[type='radio'],
+fieldset[disabled] input[type='checkbox'],
+fieldset[disabled] .radio,
+fieldset[disabled] .radio-inline,
+fieldset[disabled] .checkbox,
+fieldset[disabled] .checkbox-inline {
+ cursor: not-allowed;
+}
+.input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-sm,
+select[multiple].input-sm {
+ height: auto;
+}
+.input-lg {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+select.input-lg {
+ height: 45px;
+ line-height: 45px;
+}
+textarea.input-lg,
+select[multiple].input-lg {
+ height: auto;
+}
+.has-feedback {
+ position: relative;
+}
+.has-feedback .form-control {
+ padding-right: 40px;
+}
+.has-feedback .form-control-feedback {
+ position: absolute;
+ top: 23px;
+ right: 0;
+ display: block;
+ width: 32px;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+}
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline {
+ color: #3c763d;
+}
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+}
+.has-success .input-group-addon {
+ color: #3c763d;
+ border-color: #3c763d;
+ background-color: #dff0d8;
+}
+.has-success .form-control-feedback {
+ color: #3c763d;
+}
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline {
+ color: #8a6d3b;
+}
+.has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+}
+.has-warning .input-group-addon {
+ color: #8a6d3b;
+ border-color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+.has-warning .form-control-feedback {
+ color: #8a6d3b;
+}
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline {
+ color: #a94442;
+}
+.has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+}
+.has-error .input-group-addon {
+ color: #a94442;
+ border-color: #a94442;
+ background-color: #f2dede;
+}
+.has-error .form-control-feedback {
+ color: #a94442;
+}
+.form-control-static {
+ margin-bottom: 0;
+}
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373;
+}
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio input[type='radio'],
+ .form-inline .checkbox input[type='checkbox'] {
+ float: none;
+ margin-left: 0;
+ }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+.form-horizontal .control-label,
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 25px;
+}
+.form-horizontal .form-group {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.form-horizontal .form-control-static {
+ padding-top: 7px;
+}
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ text-align: right;
+ }
+}
+.form-horizontal .has-feedback .form-control-feedback {
+ top: 0;
+ right: 15px;
+}
+.btn {
+ display: inline-block;
+ margin-bottom: 0;
+ font-weight: 400;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ background-image: none;
+ border: 1px solid transparent;
+ white-space: nowrap;
+ padding: 6px 12px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ border-radius: 4px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.btn:focus,
+.btn:active:focus,
+.btn.active:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.btn:hover,
+.btn:focus {
+ color: #333;
+ text-decoration: none;
+}
+.btn:active,
+.btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn.disabled,
+.btn[disabled],
+fieldset[disabled] .btn {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc;
+}
+.btn-default:hover,
+.btn-default:focus,
+.btn-default:active,
+.btn-default.active,
+.open .dropdown-toggle.btn-default {
+ color: #333;
+ background-color: #ebebeb;
+ border-color: #adadad;
+}
+.btn-default:active,
+.btn-default.active,
+.open .dropdown-toggle.btn-default {
+ background-image: none;
+}
+.btn-default.disabled,
+.btn-default[disabled],
+fieldset[disabled] .btn-default,
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+fieldset[disabled] .btn-default:focus,
+.btn-default.disabled:active,
+.btn-default[disabled]:active,
+fieldset[disabled] .btn-default:active,
+.btn-default.disabled.active,
+.btn-default[disabled].active,
+fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc;
+}
+.btn-default .badge {
+ color: #fff;
+ background-color: #333;
+}
+.btn-primary {
+ color: #fff;
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.btn-primary:hover,
+.btn-primary:focus,
+.btn-primary:active,
+.btn-primary.active,
+.open .dropdown-toggle.btn-primary {
+ color: #fff;
+ background-color: #3276b1;
+ border-color: #285e8e;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open .dropdown-toggle.btn-primary {
+ background-image: none;
+}
+.btn-primary.disabled,
+.btn-primary[disabled],
+fieldset[disabled] .btn-primary,
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled:active,
+.btn-primary[disabled]:active,
+fieldset[disabled] .btn-primary:active,
+.btn-primary.disabled.active,
+.btn-primary[disabled].active,
+fieldset[disabled] .btn-primary.active {
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.btn-primary .badge {
+ color: #428bca;
+ background-color: #fff;
+}
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success:hover,
+.btn-success:focus,
+.btn-success:active,
+.btn-success.active,
+.open .dropdown-toggle.btn-success {
+ color: #fff;
+ background-color: #47a447;
+ border-color: #398439;
+}
+.btn-success:active,
+.btn-success.active,
+.open .dropdown-toggle.btn-success {
+ background-image: none;
+}
+.btn-success.disabled,
+.btn-success[disabled],
+fieldset[disabled] .btn-success,
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+fieldset[disabled] .btn-success:focus,
+.btn-success.disabled:active,
+.btn-success[disabled]:active,
+fieldset[disabled] .btn-success:active,
+.btn-success.disabled.active,
+.btn-success[disabled].active,
+fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff;
+}
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info:hover,
+.btn-info:focus,
+.btn-info:active,
+.btn-info.active,
+.open .dropdown-toggle.btn-info {
+ color: #fff;
+ background-color: #39b3d7;
+ border-color: #269abc;
+}
+.btn-info:active,
+.btn-info.active,
+.open .dropdown-toggle.btn-info {
+ background-image: none;
+}
+.btn-info.disabled,
+.btn-info[disabled],
+fieldset[disabled] .btn-info,
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+fieldset[disabled] .btn-info:focus,
+.btn-info.disabled:active,
+.btn-info[disabled]:active,
+fieldset[disabled] .btn-info:active,
+.btn-info.disabled.active,
+.btn-info[disabled].active,
+fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff;
+}
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ed9c28;
+ border-color: #d58512;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+ background-image: none;
+}
+.btn-warning.disabled,
+.btn-warning[disabled],
+fieldset[disabled] .btn-warning,
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled:active,
+.btn-warning[disabled]:active,
+fieldset[disabled] .btn-warning:active,
+.btn-warning.disabled.active,
+.btn-warning[disabled].active,
+fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+}
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #d2322d;
+ border-color: #ac2925;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+ background-image: none;
+}
+.btn-danger.disabled,
+.btn-danger[disabled],
+fieldset[disabled] .btn-danger,
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled:active,
+.btn-danger[disabled]:active,
+fieldset[disabled] .btn-danger:active,
+.btn-danger.disabled.active,
+.btn-danger[disabled].active,
+fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+}
+.btn-link {
+ color: #428bca;
+ font-weight: 400;
+ cursor: pointer;
+ border-radius: 0;
+}
+.btn-link,
+.btn-link:active,
+.btn-link[disabled],
+fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn-link,
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active {
+ border-color: transparent;
+}
+.btn-link:hover,
+.btn-link:focus {
+ color: #2a6496;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.btn-link[disabled]:hover,
+fieldset[disabled] .btn-link:hover,
+.btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:focus {
+ color: #999;
+ text-decoration: none;
+}
+.btn-lg,
+.btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.btn-sm,
+.btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-xs,
+.btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+}
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+input[type='submit'].btn-block,
+input[type='reset'].btn-block,
+input[type='button'].btn-block {
+ width: 100%;
+}
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+.fade.in {
+ opacity: 1;
+}
+.collapse {
+ display: none;
+}
+.collapse.in {
+ display: block;
+}
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition: height 0.35s ease;
+ transition: height 0.35s ease;
+}
+@font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url(../fonts/glyphicons-halflings-regular.eot);
+ src: url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),
+ url(../fonts/glyphicons-halflings-regular.woff) format('woff'),
+ url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),
+ url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg');
+}
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.glyphicon-asterisk:before {
+ content: '\2a';
+}
+.glyphicon-plus:before {
+ content: '\2b';
+}
+.glyphicon-euro:before {
+ content: '\20ac';
+}
+.glyphicon-minus:before {
+ content: '\2212';
+}
+.glyphicon-cloud:before {
+ content: '\2601';
+}
+.glyphicon-envelope:before {
+ content: '\2709';
+}
+.glyphicon-pencil:before {
+ content: '\270f';
+}
+.glyphicon-glass:before {
+ content: '\e001';
+}
+.glyphicon-music:before {
+ content: '\e002';
+}
+.glyphicon-search:before {
+ content: '\e003';
+}
+.glyphicon-heart:before {
+ content: '\e005';
+}
+.glyphicon-star:before {
+ content: '\e006';
+}
+.glyphicon-star-empty:before {
+ content: '\e007';
+}
+.glyphicon-user:before {
+ content: '\e008';
+}
+.glyphicon-film:before {
+ content: '\e009';
+}
+.glyphicon-th-large:before {
+ content: '\e010';
+}
+.glyphicon-th:before {
+ content: '\e011';
+}
+.glyphicon-th-list:before {
+ content: '\e012';
+}
+.glyphicon-ok:before {
+ content: '\e013';
+}
+.glyphicon-remove:before {
+ content: '\e014';
+}
+.glyphicon-zoom-in:before {
+ content: '\e015';
+}
+.glyphicon-zoom-out:before {
+ content: '\e016';
+}
+.glyphicon-off:before {
+ content: '\e017';
+}
+.glyphicon-signal:before {
+ content: '\e018';
+}
+.glyphicon-cog:before {
+ content: '\e019';
+}
+.glyphicon-trash:before {
+ content: '\e020';
+}
+.glyphicon-home:before {
+ content: '\e021';
+}
+.glyphicon-file:before {
+ content: '\e022';
+}
+.glyphicon-time:before {
+ content: '\e023';
+}
+.glyphicon-road:before {
+ content: '\e024';
+}
+.glyphicon-download-alt:before {
+ content: '\e025';
+}
+.glyphicon-download:before {
+ content: '\e026';
+}
+.glyphicon-upload:before {
+ content: '\e027';
+}
+.glyphicon-inbox:before {
+ content: '\e028';
+}
+.glyphicon-play-circle:before {
+ content: '\e029';
+}
+.glyphicon-repeat:before {
+ content: '\e030';
+}
+.glyphicon-refresh:before {
+ content: '\e031';
+}
+.glyphicon-list-alt:before {
+ content: '\e032';
+}
+.glyphicon-lock:before {
+ content: '\e033';
+}
+.glyphicon-flag:before {
+ content: '\e034';
+}
+.glyphicon-headphones:before {
+ content: '\e035';
+}
+.glyphicon-volume-off:before {
+ content: '\e036';
+}
+.glyphicon-volume-down:before {
+ content: '\e037';
+}
+.glyphicon-volume-up:before {
+ content: '\e038';
+}
+.glyphicon-qrcode:before {
+ content: '\e039';
+}
+.glyphicon-barcode:before {
+ content: '\e040';
+}
+.glyphicon-tag:before {
+ content: '\e041';
+}
+.glyphicon-tags:before {
+ content: '\e042';
+}
+.glyphicon-book:before {
+ content: '\e043';
+}
+.glyphicon-bookmark:before {
+ content: '\e044';
+}
+.glyphicon-print:before {
+ content: '\e045';
+}
+.glyphicon-camera:before {
+ content: '\e046';
+}
+.glyphicon-font:before {
+ content: '\e047';
+}
+.glyphicon-bold:before {
+ content: '\e048';
+}
+.glyphicon-italic:before {
+ content: '\e049';
+}
+.glyphicon-text-height:before {
+ content: '\e050';
+}
+.glyphicon-text-width:before {
+ content: '\e051';
+}
+.glyphicon-align-left:before {
+ content: '\e052';
+}
+.glyphicon-align-center:before {
+ content: '\e053';
+}
+.glyphicon-align-right:before {
+ content: '\e054';
+}
+.glyphicon-align-justify:before {
+ content: '\e055';
+}
+.glyphicon-list:before {
+ content: '\e056';
+}
+.glyphicon-indent-left:before {
+ content: '\e057';
+}
+.glyphicon-indent-right:before {
+ content: '\e058';
+}
+.glyphicon-facetime-video:before {
+ content: '\e059';
+}
+.glyphicon-picture:before {
+ content: '\e060';
+}
+.glyphicon-map-marker:before {
+ content: '\e062';
+}
+.glyphicon-adjust:before {
+ content: '\e063';
+}
+.glyphicon-tint:before {
+ content: '\e064';
+}
+.glyphicon-edit:before {
+ content: '\e065';
+}
+.glyphicon-share:before {
+ content: '\e066';
+}
+.glyphicon-check:before {
+ content: '\e067';
+}
+.glyphicon-move:before {
+ content: '\e068';
+}
+.glyphicon-step-backward:before {
+ content: '\e069';
+}
+.glyphicon-fast-backward:before {
+ content: '\e070';
+}
+.glyphicon-backward:before {
+ content: '\e071';
+}
+.glyphicon-play:before {
+ content: '\e072';
+}
+.glyphicon-pause:before {
+ content: '\e073';
+}
+.glyphicon-stop:before {
+ content: '\e074';
+}
+.glyphicon-forward:before {
+ content: '\e075';
+}
+.glyphicon-fast-forward:before {
+ content: '\e076';
+}
+.glyphicon-step-forward:before {
+ content: '\e077';
+}
+.glyphicon-eject:before {
+ content: '\e078';
+}
+.glyphicon-chevron-left:before {
+ content: '\e079';
+}
+.glyphicon-chevron-right:before {
+ content: '\e080';
+}
+.glyphicon-plus-sign:before {
+ content: '\e081';
+}
+.glyphicon-minus-sign:before {
+ content: '\e082';
+}
+.glyphicon-remove-sign:before {
+ content: '\e083';
+}
+.glyphicon-ok-sign:before {
+ content: '\e084';
+}
+.glyphicon-question-sign:before {
+ content: '\e085';
+}
+.glyphicon-info-sign:before {
+ content: '\e086';
+}
+.glyphicon-screenshot:before {
+ content: '\e087';
+}
+.glyphicon-remove-circle:before {
+ content: '\e088';
+}
+.glyphicon-ok-circle:before {
+ content: '\e089';
+}
+.glyphicon-ban-circle:before {
+ content: '\e090';
+}
+.glyphicon-arrow-left:before {
+ content: '\e091';
+}
+.glyphicon-arrow-right:before {
+ content: '\e092';
+}
+.glyphicon-arrow-up:before {
+ content: '\e093';
+}
+.glyphicon-arrow-down:before {
+ content: '\e094';
+}
+.glyphicon-share-alt:before {
+ content: '\e095';
+}
+.glyphicon-resize-full:before {
+ content: '\e096';
+}
+.glyphicon-resize-small:before {
+ content: '\e097';
+}
+.glyphicon-exclamation-sign:before {
+ content: '\e101';
+}
+.glyphicon-gift:before {
+ content: '\e102';
+}
+.glyphicon-leaf:before {
+ content: '\e103';
+}
+.glyphicon-fire:before {
+ content: '\e104';
+}
+.glyphicon-eye-open:before {
+ content: '\e105';
+}
+.glyphicon-eye-close:before {
+ content: '\e106';
+}
+.glyphicon-warning-sign:before {
+ content: '\e107';
+}
+.glyphicon-plane:before {
+ content: '\e108';
+}
+.glyphicon-calendar:before {
+ content: '\e109';
+}
+.glyphicon-random:before {
+ content: '\e110';
+}
+.glyphicon-comment:before {
+ content: '\e111';
+}
+.glyphicon-magnet:before {
+ content: '\e112';
+}
+.glyphicon-chevron-up:before {
+ content: '\e113';
+}
+.glyphicon-chevron-down:before {
+ content: '\e114';
+}
+.glyphicon-retweet:before {
+ content: '\e115';
+}
+.glyphicon-shopping-cart:before {
+ content: '\e116';
+}
+.glyphicon-folder-close:before {
+ content: '\e117';
+}
+.glyphicon-folder-open:before {
+ content: '\e118';
+}
+.glyphicon-resize-vertical:before {
+ content: '\e119';
+}
+.glyphicon-resize-horizontal:before {
+ content: '\e120';
+}
+.glyphicon-hdd:before {
+ content: '\e121';
+}
+.glyphicon-bullhorn:before {
+ content: '\e122';
+}
+.glyphicon-bell:before {
+ content: '\e123';
+}
+.glyphicon-certificate:before {
+ content: '\e124';
+}
+.glyphicon-thumbs-up:before {
+ content: '\e125';
+}
+.glyphicon-thumbs-down:before {
+ content: '\e126';
+}
+.glyphicon-hand-right:before {
+ content: '\e127';
+}
+.glyphicon-hand-left:before {
+ content: '\e128';
+}
+.glyphicon-hand-up:before {
+ content: '\e129';
+}
+.glyphicon-hand-down:before {
+ content: '\e130';
+}
+.glyphicon-circle-arrow-right:before {
+ content: '\e131';
+}
+.glyphicon-circle-arrow-left:before {
+ content: '\e132';
+}
+.glyphicon-circle-arrow-up:before {
+ content: '\e133';
+}
+.glyphicon-circle-arrow-down:before {
+ content: '\e134';
+}
+.glyphicon-globe:before {
+ content: '\e135';
+}
+.glyphicon-wrench:before {
+ content: '\e136';
+}
+.glyphicon-tasks:before {
+ content: '\e137';
+}
+.glyphicon-filter:before {
+ content: '\e138';
+}
+.glyphicon-briefcase:before {
+ content: '\e139';
+}
+.glyphicon-fullscreen:before {
+ content: '\e140';
+}
+.glyphicon-dashboard:before {
+ content: '\e141';
+}
+.glyphicon-paperclip:before {
+ content: '\e142';
+}
+.glyphicon-heart-empty:before {
+ content: '\e143';
+}
+.glyphicon-link:before {
+ content: '\e144';
+}
+.glyphicon-phone:before {
+ content: '\e145';
+}
+.glyphicon-pushpin:before {
+ content: '\e146';
+}
+.glyphicon-usd:before {
+ content: '\e148';
+}
+.glyphicon-gbp:before {
+ content: '\e149';
+}
+.glyphicon-sort:before {
+ content: '\e150';
+}
+.glyphicon-sort-by-alphabet:before {
+ content: '\e151';
+}
+.glyphicon-sort-by-alphabet-alt:before {
+ content: '\e152';
+}
+.glyphicon-sort-by-order:before {
+ content: '\e153';
+}
+.glyphicon-sort-by-order-alt:before {
+ content: '\e154';
+}
+.glyphicon-sort-by-attributes:before {
+ content: '\e155';
+}
+.glyphicon-sort-by-attributes-alt:before {
+ content: '\e156';
+}
+.glyphicon-unchecked:before {
+ content: '\e157';
+}
+.glyphicon-expand:before {
+ content: '\e158';
+}
+.glyphicon-collapse-down:before {
+ content: '\e159';
+}
+.glyphicon-collapse-up:before {
+ content: '\e160';
+}
+.glyphicon-log-in:before {
+ content: '\e161';
+}
+.glyphicon-flash:before {
+ content: '\e162';
+}
+.glyphicon-log-out:before {
+ content: '\e163';
+}
+.glyphicon-new-window:before {
+ content: '\e164';
+}
+.glyphicon-record:before {
+ content: '\e165';
+}
+.glyphicon-save:before {
+ content: '\e166';
+}
+.glyphicon-open:before {
+ content: '\e167';
+}
+.glyphicon-saved:before {
+ content: '\e168';
+}
+.glyphicon-import:before {
+ content: '\e169';
+}
+.glyphicon-export:before {
+ content: '\e170';
+}
+.glyphicon-send:before {
+ content: '\e171';
+}
+.glyphicon-floppy-disk:before {
+ content: '\e172';
+}
+.glyphicon-floppy-saved:before {
+ content: '\e173';
+}
+.glyphicon-floppy-remove:before {
+ content: '\e174';
+}
+.glyphicon-floppy-save:before {
+ content: '\e175';
+}
+.glyphicon-floppy-open:before {
+ content: '\e176';
+}
+.glyphicon-credit-card:before {
+ content: '\e177';
+}
+.glyphicon-transfer:before {
+ content: '\e178';
+}
+.glyphicon-cutlery:before {
+ content: '\e179';
+}
+.glyphicon-header:before {
+ content: '\e180';
+}
+.glyphicon-compressed:before {
+ content: '\e181';
+}
+.glyphicon-earphone:before {
+ content: '\e182';
+}
+.glyphicon-phone-alt:before {
+ content: '\e183';
+}
+.glyphicon-tower:before {
+ content: '\e184';
+}
+.glyphicon-stats:before {
+ content: '\e185';
+}
+.glyphicon-sd-video:before {
+ content: '\e186';
+}
+.glyphicon-hd-video:before {
+ content: '\e187';
+}
+.glyphicon-subtitles:before {
+ content: '\e188';
+}
+.glyphicon-sound-stereo:before {
+ content: '\e189';
+}
+.glyphicon-sound-dolby:before {
+ content: '\e190';
+}
+.glyphicon-sound-5-1:before {
+ content: '\e191';
+}
+.glyphicon-sound-6-1:before {
+ content: '\e192';
+}
+.glyphicon-sound-7-1:before {
+ content: '\e193';
+}
+.glyphicon-copyright-mark:before {
+ content: '\e194';
+}
+.glyphicon-registration-mark:before {
+ content: '\e195';
+}
+.glyphicon-cloud-download:before {
+ content: '\e197';
+}
+.glyphicon-cloud-upload:before {
+ content: '\e198';
+}
+.glyphicon-tree-conifer:before {
+ content: '\e199';
+}
+.glyphicon-tree-deciduous:before {
+ content: '\e200';
+}
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px solid;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+}
+.dropdown {
+ position: relative;
+}
+.dropdown-toggle:focus {
+ outline: 0;
+}
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 13px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box;
+}
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+.dropdown-menu .divider {
+ height: 1px;
+ margin: 8px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: 400;
+ line-height: 1.42857143;
+ color: #333;
+ white-space: nowrap;
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #262626;
+ background-color: #f5f5f5;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #428bca;
+}
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: #999;
+}
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ cursor: not-allowed;
+}
+.open > .dropdown-menu {
+ display: block;
+}
+.open > a {
+ outline: 0;
+}
+.dropdown-menu-right {
+ left: auto;
+ right: 0;
+}
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ color: #999;
+}
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990;
+}
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px solid;
+ content: '';
+}
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+}
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ left: auto;
+ right: 0;
+ }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+}
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus,
+.btn-group > .btn:active,
+.btn-group-vertical > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus {
+ outline: 0;
+}
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+.btn-toolbar {
+ margin-left: -5px;
+}
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+ float: left;
+}
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+ margin-left: 5px;
+}
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+.btn-group > .btn:first-child {
+ margin-left: 0;
+}
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group > .btn-group {
+ float: left;
+}
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group > .btn-group:first-child > .btn:last-child,
+.btn-group > .btn-group:first-child > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.btn-group > .btn-group:last-child > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn .caret {
+ margin-left: 0;
+}
+.btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+.dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+.btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-bottom-left-radius: 4px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+}
+.btn-group-justified > .btn-group .btn {
+ width: 100%;
+}
+[data-toggle='buttons'] > .btn > input[type='radio'],
+[data-toggle='buttons'] > .btn > input[type='checkbox'] {
+ display: none;
+}
+.input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+.input-group[class*='col-'] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+}
+.input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+select.input-group-lg > .form-control,
+select.input-group-lg > .input-group-addon,
+select.input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ line-height: 45px;
+}
+textarea.input-group-lg > .form-control,
+textarea.input-group-lg > .input-group-addon,
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.input-group-sm > .form-control,
+select.input-group-sm > .input-group-addon,
+select.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-group-sm > .form-control,
+textarea.input-group-sm > .input-group-addon,
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+}
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+.input-group-addon {
+ padding: 6px 12px;
+ font-size: 13px;
+ font-weight: 400;
+ line-height: 1;
+ color: #555;
+ text-align: center;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+.input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+.input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 17px;
+ border-radius: 6px;
+}
+.input-group-addon input[type='radio'],
+.input-group-addon input[type='checkbox'] {
+ margin-top: 0;
+}
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.input-group-addon:first-child {
+ border-right: 0;
+}
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.input-group-addon:last-child {
+ border-left: 0;
+}
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+.input-group-btn > .btn {
+ position: relative;
+}
+.input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+ z-index: 2;
+}
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+ margin-left: -1px;
+}
+.nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+}
+.nav > li {
+ position: relative;
+ display: block;
+}
+.nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.nav > li.disabled > a {
+ color: #999;
+}
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+ color: #999;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed;
+}
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+ background-color: #eee;
+ border-color: #428bca;
+}
+.nav .nav-divider {
+ height: 1px;
+ margin: 8px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.nav > li > a > img {
+ max-width: none;
+}
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+.nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+.nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857143;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+.nav-tabs > li > a:hover {
+ border-color: #eee #eee #ddd;
+}
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+ color: #555;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+.nav-tabs.nav-justified > li {
+ float: none;
+}
+.nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs.nav-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.nav-pills > li {
+ float: left;
+}
+.nav-pills > li > a {
+ border-radius: 4px;
+}
+.nav-pills > li + li {
+ margin-left: 2px;
+}
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #428bca;
+}
+.nav-stacked > li {
+ float: none;
+}
+.nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+.nav-justified {
+ width: 100%;
+}
+.nav-justified > li {
+ float: none;
+}
+.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs-justified {
+ border-bottom: 0;
+}
+.nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 18px;
+ border: 1px solid transparent;
+}
+@media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-header {
+ float: left;
+ }
+}
+.navbar-collapse {
+ max-height: 340px;
+ overflow-x: visible;
+ padding-right: 15px;
+ padding-left: 15px;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-overflow-scrolling: touch;
+}
+.navbar-collapse.in {
+ overflow-y: auto;
+}
+@media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+ }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+.container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+@media (min-width: 768px) {
+ .container > .navbar-header,
+ .container-fluid > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+}
+@media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+@media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+}
+.navbar-brand {
+ float: left;
+ padding: 16px 15px;
+ font-size: 17px;
+ line-height: 18px;
+ height: 50px;
+}
+.navbar-brand:hover,
+.navbar-brand:focus {
+ text-decoration: none;
+}
+@media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-left: -15px;
+ }
+}
+.navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: 15px;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.navbar-toggle:focus {
+ outline: 0;
+}
+.navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+.navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+@media (min-width: 768px) {
+ .navbar-toggle {
+ display: none;
+ }
+}
+.navbar-nav {
+ margin: 8px -15px;
+}
+.navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 18px;
+}
+@media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 18px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .navbar-nav > li {
+ float: left;
+ }
+ .navbar-nav > li > a {
+ padding-top: 16px;
+ padding-bottom: 16px;
+ }
+ .navbar-nav.navbar-right:last-child {
+ margin-right: -15px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-left {
+ float: left !important;
+ }
+ .navbar-right {
+ float: right !important;
+ }
+}
+.navbar-form {
+ margin-left: -15px;
+ margin-right: -15px;
+ padding: 10px 15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+@media (min-width: 768px) {
+ .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio input[type='radio'],
+ .navbar-form .checkbox input[type='checkbox'] {
+ float: none;
+ margin-left: 0;
+ }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+@media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar-form.navbar-right:last-child {
+ margin-right: -15px;
+ }
+}
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.navbar-btn {
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+.navbar-btn.btn-sm {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.navbar-btn.btn-xs {
+ margin-top: 14px;
+ margin-bottom: 14px;
+}
+.navbar-text {
+ margin-top: 16px;
+ margin-bottom: 16px;
+}
+@media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-left: 15px;
+ margin-right: 15px;
+ }
+ .navbar-text.navbar-right:last-child {
+ margin-right: 0;
+ }
+}
+.navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-brand {
+ color: #777;
+}
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+}
+.navbar-default .navbar-text {
+ color: #777;
+}
+.navbar-default .navbar-nav > li > a {
+ color: #777;
+}
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+}
+.navbar-default .navbar-toggle {
+ border-color: #ddd;
+}
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+ background-color: #ddd;
+}
+.navbar-default .navbar-toggle .icon-bar {
+ background-color: #888;
+}
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+ background-color: #e7e7e7;
+ color: #555;
+}
+@media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+ }
+}
+.navbar-default .navbar-link {
+ color: #777;
+}
+.navbar-default .navbar-link:hover {
+ color: #333;
+}
+.navbar-inverse {
+ background-color: #222;
+ border-color: #080808;
+}
+.navbar-inverse .navbar-brand {
+ color: #999;
+}
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-text {
+ color: #999;
+}
+.navbar-inverse .navbar-nav > li > a {
+ color: #999;
+}
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+}
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-toggle {
+ border-color: #333;
+}
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+ background-color: #333;
+}
+.navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff;
+}
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: #080808;
+ color: #fff;
+}
+@media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #999;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+ }
+}
+.navbar-inverse .navbar-link {
+ color: #999;
+}
+.navbar-inverse .navbar-link:hover {
+ color: #fff;
+}
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 18px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+}
+.breadcrumb > li {
+ display: inline-block;
+}
+.breadcrumb > li + li:before {
+ content: '/\00a0';
+ padding: 0 5px;
+ color: #ccc;
+}
+.breadcrumb > .active {
+ color: #999;
+}
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 18px 0;
+ border-radius: 4px;
+}
+.pagination > li {
+ display: inline;
+}
+.pagination > li > a,
+.pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.42857143;
+ text-decoration: none;
+ color: #428bca;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ margin-left: -1px;
+}
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+ color: #2a6496;
+ background-color: #eee;
+ border-color: #ddd;
+}
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+ cursor: default;
+}
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #999;
+ background-color: #fff;
+ border-color: #ddd;
+ cursor: not-allowed;
+}
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 17px;
+}
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 6px;
+ border-top-left-radius: 6px;
+}
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 6px;
+ border-top-right-radius: 6px;
+}
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+}
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.pager {
+ padding-left: 0;
+ margin: 18px 0;
+ list-style: none;
+ text-align: center;
+}
+.pager li {
+ display: inline;
+}
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px;
+}
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: #999;
+ background-color: #fff;
+ cursor: not-allowed;
+}
+.label {
+ display: inline;
+ padding: 0.2em 0.6em 0.3em;
+ font-size: 75%;
+ font-weight: 700;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25em;
+}
+.label[href]:hover,
+.label[href]:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.label:empty {
+ display: none;
+}
+.btn .label {
+ position: relative;
+ top: -1px;
+}
+.label-default {
+ background-color: #999;
+}
+.label-default[href]:hover,
+.label-default[href]:focus {
+ background-color: gray;
+}
+.label-primary {
+ background-color: #428bca;
+}
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+ background-color: #3071a9;
+}
+.label-success {
+ background-color: #5cb85c;
+}
+.label-success[href]:hover,
+.label-success[href]:focus {
+ background-color: #449d44;
+}
+.label-info {
+ background-color: #5bc0de;
+}
+.label-info[href]:hover,
+.label-info[href]:focus {
+ background-color: #31b0d5;
+}
+.label-warning {
+ background-color: #f0ad4e;
+}
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+ background-color: #ec971f;
+}
+.label-danger {
+ background-color: #d9534f;
+}
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+ background-color: #c9302c;
+}
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: 700;
+ color: #fff;
+ line-height: 1;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #999;
+ border-radius: 10px;
+}
+.badge:empty {
+ display: none;
+}
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+.btn-xs .badge {
+ top: 0;
+ padding: 1px 5px;
+}
+a.badge:hover,
+a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+a.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+ color: #428bca;
+ background-color: #fff;
+}
+.nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+.jumbotron {
+ padding: 30px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eee;
+}
+.jumbotron h1,
+.jumbotron .h1 {
+ color: inherit;
+}
+.jumbotron p {
+ margin-bottom: 15px;
+ font-size: 20px;
+ font-weight: 200;
+}
+.container .jumbotron {
+ border-radius: 6px;
+}
+.jumbotron .container {
+ max-width: 100%;
+}
+@media screen and (min-width: 768px) {
+ .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px;
+ }
+ .container .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px;
+ }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 58.5px;
+ }
+}
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 18px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+}
+.thumbnail > img,
+.thumbnail a > img {
+ margin-left: auto;
+ margin-right: auto;
+}
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #428bca;
+}
+.thumbnail .caption {
+ padding: 9px;
+ color: #333;
+}
+.alert {
+ padding: 15px;
+ margin-bottom: 18px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+.alert .alert-link {
+ font-weight: 700;
+}
+.alert > p,
+.alert > ul {
+ margin-bottom: 0;
+}
+.alert > p + p {
+ margin-top: 5px;
+}
+.alert-dismissable {
+ padding-right: 35px;
+}
+.alert-dismissable .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+}
+.alert-success {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #3c763d;
+}
+.alert-success hr {
+ border-top-color: #c9e2b3;
+}
+.alert-success .alert-link {
+ color: #2b542c;
+}
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ color: #31708f;
+}
+.alert-info hr {
+ border-top-color: #a6e1ec;
+}
+.alert-info .alert-link {
+ color: #245269;
+}
+.alert-warning {
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ color: #8a6d3b;
+}
+.alert-warning hr {
+ border-top-color: #f7e1b5;
+}
+.alert-warning .alert-link {
+ color: #66512c;
+}
+.alert-danger {
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ color: #a94442;
+}
+.alert-danger hr {
+ border-top-color: #e4b9c0;
+}
+.alert-danger .alert-link {
+ color: #843534;
+}
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+.progress {
+ overflow: hidden;
+ height: 18px;
+ margin-bottom: 18px;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+.progress-bar {
+ float: left;
+ width: 0;
+ height: 100%;
+ font-size: 12px;
+ line-height: 18px;
+ color: #fff;
+ text-align: center;
+ background-color: #428bca;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ transition: width 0.6s ease;
+}
+.progress-striped .progress-bar {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-size: 40px 40px;
+}
+.progress.active .progress-bar {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+.progress-bar-success {
+ background-color: #5cb85c;
+}
+.progress-striped .progress-bar-success {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.progress-bar-info {
+ background-color: #5bc0de;
+}
+.progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.progress-bar-warning {
+ background-color: #f0ad4e;
+}
+.progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.progress-bar-danger {
+ background-color: #d9534f;
+}
+.progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.media,
+.media-body {
+ overflow: hidden;
+ zoom: 1;
+}
+.media,
+.media .media {
+ margin-top: 15px;
+}
+.media:first-child {
+ margin-top: 0;
+}
+.media-object {
+ display: block;
+}
+.media-heading {
+ margin: 0 0 5px;
+}
+.media > .pull-left {
+ margin-right: 10px;
+}
+.media > .pull-right {
+ margin-left: 10px;
+}
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
+.list-group {
+ margin-bottom: 20px;
+ padding-left: 0;
+}
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+.list-group-item:first-child {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.list-group-item > .badge {
+ float: right;
+}
+.list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+a.list-group-item {
+ color: #555;
+}
+a.list-group-item .list-group-item-heading {
+ color: #333;
+}
+a.list-group-item:hover,
+a.list-group-item:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+a.list-group-item.active,
+a.list-group-item.active:hover,
+a.list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+a.list-group-item.active .list-group-item-heading,
+a.list-group-item.active:hover .list-group-item-heading,
+a.list-group-item.active:focus .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item.active .list-group-item-text,
+a.list-group-item.active:hover .list-group-item-text,
+a.list-group-item.active:focus .list-group-item-text {
+ color: #e1edf7;
+}
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+a.list-group-item-success {
+ color: #3c763d;
+}
+a.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-success:hover,
+a.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+a.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+a.list-group-item-info {
+ color: #31708f;
+}
+a.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-info:hover,
+a.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+a.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+a.list-group-item-warning {
+ color: #8a6d3b;
+}
+a.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-warning:hover,
+a.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+a.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+a.list-group-item-danger {
+ color: #a94442;
+}
+a.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-danger:hover,
+a.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+a.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+.panel {
+ margin-bottom: 18px;
+ background-color: #fff;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.panel-body {
+ padding: 15px;
+}
+.panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+}
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 15px;
+ color: inherit;
+}
+.panel-title > a {
+ color: inherit;
+}
+.panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel > .list-group {
+ margin-bottom: 0;
+}
+.panel > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+}
+.panel > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.panel > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+.panel > .table,
+.panel > .table-responsive > .table {
+ margin-bottom: 0;
+}
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:first-child {
+ border-top-left-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:last-child {
+ border-top-right-radius: 3px;
+}
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:first-child {
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:last-child {
+ border-bottom-right-radius: 3px;
+}
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive {
+ border-top: 1px solid #ddd;
+}
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+}
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+ border: 0;
+}
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+}
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+}
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+}
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0;
+}
+.panel > .table-responsive {
+ border: 0;
+ margin-bottom: 0;
+}
+.panel-group {
+ margin-bottom: 18px;
+}
+.panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px;
+ overflow: hidden;
+}
+.panel-group .panel + .panel {
+ margin-top: 5px;
+}
+.panel-group .panel-heading {
+ border-bottom: 0;
+}
+.panel-group .panel-heading + .panel-collapse .panel-body {
+ border-top: 1px solid #ddd;
+}
+.panel-group .panel-footer {
+ border-top: 0;
+}
+.panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd;
+}
+.panel-default {
+ border-color: #ddd;
+}
+.panel-default > .panel-heading {
+ color: #333;
+ background-color: #f5f5f5;
+ border-color: #ddd;
+}
+.panel-default > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #ddd;
+}
+.panel-default > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #ddd;
+}
+.panel-primary {
+ border-color: #428bca;
+}
+.panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+.panel-primary > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #428bca;
+}
+.panel-primary > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #428bca;
+}
+.panel-success {
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #d6e9c6;
+}
+.panel-success > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #d6e9c6;
+}
+.panel-info {
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #bce8f1;
+}
+.panel-info > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #bce8f1;
+}
+.panel-warning {
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #faebcc;
+}
+.panel-warning > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #faebcc;
+}
+.panel-danger {
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #ebccd1;
+}
+.panel-danger > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #ebccd1;
+}
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.well-lg {
+ padding: 24px;
+ border-radius: 6px;
+}
+.well-sm {
+ padding: 9px;
+ border-radius: 3px;
+}
+.close {
+ float: right;
+ font-size: 19.5px;
+ font-weight: 700;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
+}
+.close:hover,
+.close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: 0 0;
+ border: 0;
+ -webkit-appearance: none;
+}
+.modal-open {
+ overflow: hidden;
+}
+.modal {
+ display: none;
+ overflow: auto;
+ overflow-y: scroll;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+}
+.modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+}
+.modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+.modal-content {
+ position: relative;
+ background-color: #fff;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-clip: padding-box;
+ outline: 0;
+}
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+.modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+ min-height: 16.42857143px;
+}
+.modal-header .close {
+ margin-top: -2px;
+}
+.modal-title {
+ margin: 0;
+ line-height: 1.42857143;
+}
+.modal-body {
+ position: relative;
+ padding: 20px;
+}
+.modal-footer {
+ margin-top: 15px;
+ padding: 19px 20px 20px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+.modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0;
+}
+.modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+.modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .modal-dialog {
+ width: 600px;
+ margin: 30px auto;
+ }
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+ .modal-sm {
+ width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 900px;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1030;
+ display: block;
+ visibility: visible;
+ font-size: 12px;
+ line-height: 1.4;
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0;
+}
+.tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px;
+}
+.tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0;
+}
+.tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px;
+}
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ text-decoration: none;
+ background-color: #000;
+ border-radius: 4px;
+}
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.top-left .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ right: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+}
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+}
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1010;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ text-align: left;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ white-space: normal;
+}
+.popover.top {
+ margin-top: -10px;
+}
+.popover.right {
+ margin-left: 10px;
+}
+.popover.bottom {
+ margin-top: 10px;
+}
+.popover.left {
+ margin-left: -10px;
+}
+.popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 13px;
+ font-weight: 400;
+ line-height: 18px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0;
+}
+.popover-content {
+ padding: 4px 6px;
+}
+.popover > .arrow,
+.popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.popover > .arrow {
+ border-width: 11px;
+}
+.popover > .arrow:after {
+ border-width: 10px;
+ content: '';
+}
+.popover.top > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+}
+.popover.top > .arrow:after {
+ content: ' ';
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #fff;
+}
+.popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.popover.right > .arrow:after {
+ content: ' ';
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #fff;
+}
+.popover.bottom > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px;
+}
+.popover.bottom > .arrow:after {
+ content: ' ';
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+.popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.popover.left > .arrow:after {
+ content: ' ';
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #fff;
+ bottom: -10px;
+}
+.carousel {
+ position: relative;
+}
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+}
+.carousel-inner > .item {
+ display: none;
+ position: relative;
+ -webkit-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+}
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ line-height: 1;
+}
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ display: block;
+}
+.carousel-inner > .active {
+ left: 0;
+}
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.carousel-inner > .next {
+ left: 100%;
+}
+.carousel-inner > .prev {
+ left: -100%;
+}
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+ left: 0;
+}
+.carousel-inner > .active.left {
+ left: -100%;
+}
+.carousel-inner > .active.right {
+ left: 100%;
+}
+.carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 15%;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.carousel-control.left {
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.5) 0),
+ color-stop(rgba(0, 0, 0, 0.0001) 100%)
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+.carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.0001) 0),
+ color-stop(rgba(0, 0, 0, 0.5) 100%)
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+.carousel-control:hover,
+.carousel-control:focus {
+ outline: 0;
+ color: #fff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+}
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+ left: 50%;
+}
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+ right: 50%;
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ margin-left: -10px;
+ font-family: serif;
+}
+.carousel-control .icon-prev:before {
+ content: '\2039';
+}
+.carousel-control .icon-next:before {
+ content: '\203a';
+}
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center;
+}
+.carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #fff;
+ border-radius: 10px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: rgba(0, 0, 0, 0);
+}
+.carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #fff;
+}
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.carousel-caption .btn {
+ text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ margin-left: -15px;
+ font-size: 30px;
+ }
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
+.clearfix:before,
+.clearfix:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-footer:before,
+.modal-footer:after {
+ content: ' ';
+ display: table;
+}
+.clearfix:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-footer:after {
+ clear: both;
+}
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.hidden {
+ display: none !important;
+ visibility: hidden !important;
+}
+.affix {
+ position: fixed;
+}
+@-ms-viewport {
+ width: device-width;
+}
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+ table.visible-xs {
+ display: table;
+ }
+ tr.visible-xs {
+ display: table-row !important;
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+ table.visible-sm {
+ display: table;
+ }
+ tr.visible-sm {
+ display: table-row !important;
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+ table.visible-md {
+ display: table;
+ }
+ tr.visible-md {
+ display: table-row !important;
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+ table.visible-lg {
+ display: table;
+ }
+ tr.visible-lg {
+ display: table-row !important;
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important;
+ }
+}
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important;
+ }
+}
+.visible-print {
+ display: none !important;
+}
+@media print {
+ .visible-print {
+ display: block !important;
+ }
+ table.visible-print {
+ display: table;
+ }
+ tr.visible-print {
+ display: table-row !important;
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important;
+ }
+}
+@media print {
+ .hidden-print {
+ display: none !important;
+ }
+}
diff --git a/libraries/bootstrap/js/bootstrap.js b/libraries/bootstrap/js/bootstrap.js
index bf5287cc..4bfa9d29 100644
--- a/libraries/bootstrap/js/bootstrap.js
+++ b/libraries/bootstrap/js/bootstrap.js
@@ -4,7 +4,9 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery'); }
+if (typeof jQuery === 'undefined') {
+ throw new Error("Bootstrap's JavaScript requires jQuery");
+}
/* ========================================================================
* Bootstrap: transition.js v3.1.1
@@ -39,10 +41,14 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) {
- let called = false; const
- $el = this;
- $(this).one($.support.transition.end, () => { called = true; });
- const callback = function () { if (!called) $($el).trigger($.support.transition.end); };
+ let called = false;
+ const $el = this;
+ $(this).one($.support.transition.end, () => {
+ called = true;
+ });
+ const callback = function () {
+ if (!called) $($el).trigger($.support.transition.end);
+ };
setTimeout(callback, duration);
return this;
};
@@ -50,7 +56,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$(() => {
$.support.transition = transitionEnd();
});
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: alert.js v3.1.1
@@ -86,7 +92,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$parent = $this.hasClass('alert') ? $this : $this.parent();
}
- $parent.trigger(e = $.Event('close.bs.alert'));
+ $parent.trigger((e = $.Event('close.bs.alert')));
if (e.isDefaultPrevented()) return;
@@ -97,9 +103,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
$.support.transition && $parent.hasClass('fade')
- ? $parent
- .one($.support.transition.end, removeElement)
- .emulateTransitionEnd(150)
+ ? $parent.one($.support.transition.end, removeElement).emulateTransitionEnd(150)
: removeElement();
};
@@ -132,7 +136,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// ==============
$(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close);
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: button.js v3.1.1
@@ -169,15 +173,18 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$el[val](data[state] || this.options[state]);
// push to event loop to allow forms to submit
- setTimeout($.proxy(function () {
- if (state == 'loadingText') {
- this.isLoading = true;
- $el.addClass(d).attr(d, d);
- } else if (this.isLoading) {
- this.isLoading = false;
- $el.removeClass(d).removeAttr(d);
- }
- }, this), 0);
+ setTimeout(
+ $.proxy(function () {
+ if (state == 'loadingText') {
+ this.isLoading = true;
+ $el.addClass(d).attr(d, d);
+ } else if (this.isLoading) {
+ this.isLoading = false;
+ $el.removeClass(d).removeAttr(d);
+ }
+ }, this),
+ 0,
+ );
};
Button.prototype.toggle = function () {
@@ -233,7 +240,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$btn.button('toggle');
e.preventDefault();
});
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: carousel.js v3.1.1
@@ -253,9 +260,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.options = options;
this.paused = this.sliding = this.interval = this.$active = this.$items = null;
- this.options.pause == 'hover' && this.$element
- .on('mouseenter', $.proxy(this.pause, this))
- .on('mouseleave', $.proxy(this.cycle, this));
+ this.options.pause == 'hover' &&
+ this.$element
+ .on('mouseenter', $.proxy(this.pause, this))
+ .on('mouseleave', $.proxy(this.cycle, this));
};
Carousel.DEFAULTS = {
@@ -269,9 +277,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.interval && clearInterval(this.interval);
- this.options.interval
- && !this.paused
- && (this.interval = setInterval($.proxy(this.next, this), this.options.interval));
+ this.options.interval &&
+ !this.paused &&
+ (this.interval = setInterval($.proxy(this.next, this), this.options.interval));
return this;
};
@@ -287,9 +295,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const that = this;
const activeIndex = this.getActiveIndex();
- if (pos > (this.$items.length - 1) || pos < 0) return;
+ if (pos > this.$items.length - 1 || pos < 0) return;
- if (this.sliding) return this.$element.one('slid.bs.carousel', () => { that.to(pos); });
+ if (this.sliding)
+ return this.$element.one('slid.bs.carousel', () => {
+ that.to(pos);
+ });
if (activeIndex == pos) return this.pause().cycle();
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]));
@@ -331,7 +342,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$next = this.$element.find('.item')[fallback]();
}
- if ($next.hasClass('active')) return this.sliding = false;
+ if ($next.hasClass('active')) return (this.sliding = false);
const e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction });
this.$element.trigger(e);
@@ -359,7 +370,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$next.removeClass([type, direction].join(' ')).addClass('active');
$active.removeClass(['active', direction].join(' '));
that.sliding = false;
- setTimeout(() => { that.$element.trigger('slid.bs.carousel'); }, 0);
+ setTimeout(() => {
+ that.$element.trigger('slid.bs.carousel');
+ }, 0);
})
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000);
} else {
@@ -383,7 +396,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
return this.each(function () {
const $this = $(this);
let data = $this.data('bs.carousel');
- const options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option === 'object' && option);
+ const options = $.extend(
+ {},
+ Carousel.DEFAULTS,
+ $this.data(),
+ typeof option === 'object' && option,
+ );
const action = typeof option === 'string' ? option : options.slide;
if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)));
@@ -407,16 +425,19 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// =================
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
- const $this = $(this); let
- href;
- const $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')); // strip for ie7
+ const $this = $(this);
+ let href;
+ const $target = $(
+ $this.attr('data-target') ||
+ ((href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')),
+ ); // strip for ie7
const options = $.extend({}, $target.data(), $this.data());
let slideIndex = $this.attr('data-slide-to');
if (slideIndex) options.interval = false;
$target.carousel(options);
- if (slideIndex = $this.attr('data-slide-to')) {
+ if ((slideIndex = $this.attr('data-slide-to'))) {
$target.data('bs.carousel').to(slideIndex);
}
@@ -429,7 +450,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$carousel.carousel($carousel.data());
});
});
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: collapse.js v3.1.1
@@ -479,18 +500,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const dimension = this.dimension();
- this.$element
- .removeClass('collapse')
- .addClass('collapsing')
- [dimension](0);
+ this.$element.removeClass('collapse').addClass('collapsing')[dimension](0);
this.transitioning = 1;
const complete = function () {
- this.$element
- .removeClass('collapsing')
- .addClass('collapse in')
- [dimension]('auto');
+ this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('auto');
this.transitioning = 0;
this.$element.trigger('shown.bs.collapse');
};
@@ -514,29 +529,20 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const dimension = this.dimension();
- this.$element
- [dimension](this.$element[dimension]())
- [0].offsetHeight;
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight;
- this.$element
- .addClass('collapsing')
- .removeClass('collapse')
- .removeClass('in');
+ this.$element.addClass('collapsing').removeClass('collapse').removeClass('in');
this.transitioning = 1;
const complete = function () {
this.transitioning = 0;
- this.$element
- .trigger('hidden.bs.collapse')
- .removeClass('collapsing')
- .addClass('collapse');
+ this.$element.trigger('hidden.bs.collapse').removeClass('collapsing').addClass('collapse');
};
if (!$.support.transition) return complete.call(this);
- this.$element
- [dimension](0)
+ this.$element[dimension](0)
.one($.support.transition.end, $.proxy(complete, this))
.emulateTransitionEnd(350);
};
@@ -554,7 +560,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
return this.each(function () {
const $this = $(this);
let data = $this.data('bs.collapse');
- const options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option === 'object' && option);
+ const options = $.extend(
+ {},
+ Collapse.DEFAULTS,
+ $this.data(),
+ typeof option === 'object' && option,
+ );
if (!data && options.toggle && option == 'show') option = !option;
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)));
@@ -576,11 +587,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// =================
$(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
- const $this = $(this); let
- href;
- const target = $this.attr('data-target')
- || e.preventDefault()
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); // strip for ie7
+ const $this = $(this);
+ let href;
+ const target =
+ $this.attr('data-target') ||
+ e.preventDefault() ||
+ ((href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')); // strip for ie7
const $target = $(target);
const data = $target.data('bs.collapse');
const option = data ? 'toggle' : $this.data();
@@ -588,13 +600,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const $parent = parent && $(parent);
if (!data || !data.transitioning) {
- if ($parent) $parent.find(`[data-toggle=collapse][data-parent="${parent}"]`).not($this).addClass('collapsed');
+ if ($parent)
+ $parent
+ .find(`[data-toggle=collapse][data-parent="${parent}"]`)
+ .not($this)
+ .addClass('collapsed');
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed');
}
$target.collapse(option);
});
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: dropdown.js v3.1.1
@@ -631,13 +647,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
}
const relatedTarget = { relatedTarget: this };
- $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget));
+ $parent.trigger((e = $.Event('show.bs.dropdown', relatedTarget)));
if (e.isDefaultPrevented()) return;
- $parent
- .toggleClass('open')
- .trigger('shown.bs.dropdown', relatedTarget);
+ $parent.toggleClass('open').trigger('shown.bs.dropdown', relatedTarget);
$this.focus();
}
@@ -683,7 +697,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const $parent = getParent($(this));
const relatedTarget = { relatedTarget: this };
if (!$parent.hasClass('open')) return;
- $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget));
+ $parent.trigger((e = $.Event('hide.bs.dropdown', relatedTarget)));
if (e.isDefaultPrevented()) return;
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget);
});
@@ -732,10 +746,16 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$(document)
.on('click.bs.dropdown.data-api', clearMenus)
- .on('click.bs.dropdown.data-api', '.dropdown form', (e) => { e.stopPropagation(); })
+ .on('click.bs.dropdown.data-api', '.dropdown form', (e) => {
+ e.stopPropagation();
+ })
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
- .on('keydown.bs.dropdown.data-api', `${toggle}, [role=menu], [role=listbox]`, Dropdown.prototype.keydown);
-}(jQuery));
+ .on(
+ 'keydown.bs.dropdown.data-api',
+ `${toggle}, [role=menu], [role=listbox]`,
+ Dropdown.prototype.keydown,
+ );
+})(jQuery);
/* ========================================================================
* Bootstrap: modal.js v3.1.1
@@ -755,11 +775,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.$backdrop = this.isShown = null;
if (this.options.remote) {
- this.$element
- .find('.modal-content')
- .load(this.options.remote, $.proxy(function () {
+ this.$element.find('.modal-content').load(
+ this.options.remote,
+ $.proxy(function () {
this.$element.trigger('loaded.bs.modal');
- }, this));
+ }, this),
+ );
}
};
@@ -794,28 +815,25 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
that.$element.appendTo(document.body); // don't move modals dom position
}
- that.$element
- .show()
- .scrollTop(0);
+ that.$element.show().scrollTop(0);
if (transition) {
that.$element[0].offsetWidth; // force reflow
}
- that.$element
- .addClass('in')
- .attr('aria-hidden', false);
+ that.$element.addClass('in').attr('aria-hidden', false);
that.enforceFocus();
const e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget });
transition
- ? that.$element.find('.modal-dialog') // wait for modal to slide in
- .one($.support.transition.end, () => {
- that.$element.focus().trigger(e);
- })
- .emulateTransitionEnd(300)
+ ? that.$element
+ .find('.modal-dialog') // wait for modal to slide in
+ .one($.support.transition.end, () => {
+ that.$element.focus().trigger(e);
+ })
+ .emulateTransitionEnd(300)
: that.$element.focus().trigger(e);
});
};
@@ -835,33 +853,36 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$(document).off('focusin.bs.modal');
- this.$element
- .removeClass('in')
- .attr('aria-hidden', true)
- .off('click.dismiss.bs.modal');
+ this.$element.removeClass('in').attr('aria-hidden', true).off('click.dismiss.bs.modal');
$.support.transition && this.$element.hasClass('fade')
? this.$element
- .one($.support.transition.end, $.proxy(this.hideModal, this))
- .emulateTransitionEnd(300)
+ .one($.support.transition.end, $.proxy(this.hideModal, this))
+ .emulateTransitionEnd(300)
: this.hideModal();
};
Modal.prototype.enforceFocus = function () {
$(document)
.off('focusin.bs.modal') // guard against infinite focus loop
- .on('focusin.bs.modal', $.proxy(function (e) {
- if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
- this.$element.focus();
- }
- }, this));
+ .on(
+ 'focusin.bs.modal',
+ $.proxy(function (e) {
+ if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
+ this.$element.focus();
+ }
+ }, this),
+ );
};
Modal.prototype.escape = function () {
if (this.isShown && this.options.keyboard) {
- this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
- e.which == 27 && this.hide();
- }, this));
+ this.$element.on(
+ 'keyup.dismiss.bs.modal',
+ $.proxy(function (e) {
+ e.which == 27 && this.hide();
+ }, this),
+ );
} else if (!this.isShown) {
this.$element.off('keyup.dismiss.bs.modal');
}
@@ -887,15 +908,17 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (this.isShown && this.options.backdrop) {
const doAnimate = $.support.transition && animate;
- this.$backdrop = $(`
`)
- .appendTo(document.body);
+ this.$backdrop = $(``).appendTo(document.body);
- this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
- if (e.target !== e.currentTarget) return;
- this.options.backdrop == 'static'
- ? this.$element[0].focus.call(this.$element[0])
- : this.hide.call(this);
- }, this));
+ this.$element.on(
+ 'click.dismiss.bs.modal',
+ $.proxy(function (e) {
+ if (e.target !== e.currentTarget) return;
+ this.options.backdrop == 'static'
+ ? this.$element[0].focus.call(this.$element[0])
+ : this.hide.call(this);
+ }, this),
+ );
if (doAnimate) this.$backdrop[0].offsetWidth; // force reflow
@@ -904,17 +927,13 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (!callback) return;
doAnimate
- ? this.$backdrop
- .one($.support.transition.end, callback)
- .emulateTransitionEnd(150)
+ ? this.$backdrop.one($.support.transition.end, callback).emulateTransitionEnd(150)
: callback();
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in');
$.support.transition && this.$element.hasClass('fade')
- ? this.$backdrop
- .one($.support.transition.end, callback)
- .emulateTransitionEnd(150)
+ ? this.$backdrop.one($.support.transition.end, callback).emulateTransitionEnd(150)
: callback();
} else if (callback) {
callback();
@@ -930,7 +949,12 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
return this.each(function () {
const $this = $(this);
let data = $this.data('bs.modal');
- const options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option === 'object' && option);
+ const options = $.extend(
+ {},
+ Modal.DEFAULTS,
+ $this.data(),
+ typeof option === 'object' && option,
+ );
if (!data) $this.data('bs.modal', (data = new Modal(this, options)));
if (typeof option === 'string') data[option](_relatedTarget);
@@ -955,21 +979,25 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const $this = $(this);
const href = $this.attr('href');
const $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))); // strip for ie7
- const option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data());
+ const option = $target.data('bs.modal')
+ ? 'toggle'
+ : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data());
if ($this.is('a')) e.preventDefault();
- $target
- .modal(option, this)
- .one('hide', () => {
- $this.is(':visible') && $this.focus();
- });
+ $target.modal(option, this).one('hide', () => {
+ $this.is(':visible') && $this.focus();
+ });
});
$(document)
- .on('show.bs.modal', '.modal', () => { $(document.body).addClass('modal-open'); })
- .on('hidden.bs.modal', '.modal', () => { $(document.body).removeClass('modal-open'); });
-}(jQuery));
+ .on('show.bs.modal', '.modal', () => {
+ $(document.body).addClass('modal-open');
+ })
+ .on('hidden.bs.modal', '.modal', () => {
+ $(document.body).removeClass('modal-open');
+ });
+})(jQuery);
/* ========================================================================
* Bootstrap: tooltip.js v3.1.1
@@ -994,7 +1022,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
animation: true,
placement: 'top',
selector: false,
- template: '',
+ template:
+ '',
trigger: 'hover focus',
title: '',
delay: 0,
@@ -1010,7 +1039,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const triggers = this.options.trigger.split(' ');
- for (let i = triggers.length; i--;) {
+ for (let i = triggers.length; i--; ) {
const trigger = triggers[i];
if (trigger == 'click') {
@@ -1019,8 +1048,16 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin';
const eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout';
- this.$element.on(`${eventIn}.${this.type}`, this.options.selector, $.proxy(this.enter, this));
- this.$element.on(`${eventOut}.${this.type}`, this.options.selector, $.proxy(this.leave, this));
+ this.$element.on(
+ `${eventIn}.${this.type}`,
+ this.options.selector,
+ $.proxy(this.enter, this),
+ );
+ this.$element.on(
+ `${eventOut}.${this.type}`,
+ this.options.selector,
+ $.proxy(this.leave, this),
+ );
}
}
@@ -1050,16 +1087,19 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const options = {};
const defaults = this.getDefaults();
- this._options && $.each(this._options, (key, value) => {
- if (defaults[key] != value) options[key] = value;
- });
+ this._options &&
+ $.each(this._options, (key, value) => {
+ if (defaults[key] != value) options[key] = value;
+ });
return options;
};
Tooltip.prototype.enter = function (obj) {
- const self = obj instanceof this.constructor
- ? obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
+ const self =
+ obj instanceof this.constructor
+ ? obj
+ : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
clearTimeout(self.timeout);
@@ -1073,8 +1113,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
};
Tooltip.prototype.leave = function (obj) {
- const self = obj instanceof this.constructor
- ? obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
+ const self =
+ obj instanceof this.constructor
+ ? obj
+ : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
clearTimeout(self.timeout);
@@ -1102,20 +1144,20 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (this.options.animation) $tip.addClass('fade');
- let placement = typeof this.options.placement === 'function'
- ? this.options.placement.call(this, $tip[0], this.$element[0])
- : this.options.placement;
+ let placement =
+ typeof this.options.placement === 'function'
+ ? this.options.placement.call(this, $tip[0], this.$element[0])
+ : this.options.placement;
const autoToken = /\s?auto?\s?/i;
const autoPlace = autoToken.test(placement);
if (autoPlace) placement = placement.replace(autoToken, '') || 'top';
- $tip
- .detach()
- .css({ top: 0, left: 0, display: 'block' })
- .addClass(placement);
+ $tip.detach().css({ top: 0, left: 0, display: 'block' }).addClass(placement);
- this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element);
+ this.options.container
+ ? $tip.appendTo(this.options.container)
+ : $tip.insertAfter(this.$element);
const pos = this.getPosition();
const actualWidth = $tip[0].offsetWidth;
@@ -1126,19 +1168,24 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const orgPlacement = placement;
const docScroll = document.documentElement.scrollTop || document.body.scrollTop;
- const parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth();
- const parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight();
+ const parentWidth =
+ this.options.container == 'body' ? window.innerWidth : $parent.outerWidth();
+ const parentHeight =
+ this.options.container == 'body' ? window.innerHeight : $parent.outerHeight();
const parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left;
- placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top'
- : placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom'
- : placement == 'right' && pos.right + actualWidth > parentWidth ? 'left'
- : placement == 'left' && pos.left - actualWidth < parentLeft ? 'right'
- : placement;
+ placement =
+ placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight
+ ? 'top'
+ : placement == 'top' && pos.top - docScroll - actualHeight < 0
+ ? 'bottom'
+ : placement == 'right' && pos.right + actualWidth > parentWidth
+ ? 'left'
+ : placement == 'left' && pos.left - actualWidth < parentLeft
+ ? 'right'
+ : placement;
- $tip
- .removeClass(orgPlacement)
- .addClass(placement);
+ $tip.removeClass(orgPlacement).addClass(placement);
}
const calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight);
@@ -1151,9 +1198,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
};
$.support.transition && this.$tip.hasClass('fade')
- ? $tip
- .one($.support.transition.end, complete)
- .emulateTransitionEnd(150)
+ ? $tip.one($.support.transition.end, complete).emulateTransitionEnd(150)
: complete();
}
};
@@ -1177,14 +1222,21 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// $.fn.offset doesn't round pixel values
// so we use setOffset directly with our own function B-0
- $.offset.setOffset($tip[0], $.extend({
- using(props) {
- $tip.css({
- top: Math.round(props.top),
- left: Math.round(props.left),
- });
- },
- }, offset), 0);
+ $.offset.setOffset(
+ $tip[0],
+ $.extend(
+ {
+ using(props) {
+ $tip.css({
+ top: Math.round(props.top),
+ left: Math.round(props.left),
+ });
+ },
+ },
+ offset,
+ ),
+ 0,
+ );
$tip.addClass('in');
@@ -1219,7 +1271,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
};
Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
- this.arrow().css(position, delta ? (`${50 * (1 - delta / dimension)}%`) : '');
+ this.arrow().css(position, delta ? `${50 * (1 - delta / dimension)}%` : '');
};
Tooltip.prototype.setContent = function () {
@@ -1247,9 +1299,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$tip.removeClass('in');
$.support.transition && this.$tip.hasClass('fade')
- ? $tip
- .one($.support.transition.end, complete)
- .emulateTransitionEnd(150)
+ ? $tip.one($.support.transition.end, complete).emulateTransitionEnd(150)
: complete();
this.hoverState = null;
@@ -1259,7 +1309,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Tooltip.prototype.fixTitle = function () {
const $e = this.$element;
- if ($e.attr('title') || typeof ($e.attr('data-original-title')) !== 'string') {
+ if ($e.attr('title') || typeof $e.attr('data-original-title') !== 'string') {
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '');
}
};
@@ -1270,17 +1320,29 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Tooltip.prototype.getPosition = function () {
const el = this.$element[0];
- return $.extend({}, (typeof el.getBoundingClientRect === 'function') ? el.getBoundingClientRect() : {
- width: el.offsetWidth,
- height: el.offsetHeight,
- }, this.$element.offset());
+ return $.extend(
+ {},
+ typeof el.getBoundingClientRect === 'function'
+ ? el.getBoundingClientRect()
+ : {
+ width: el.offsetWidth,
+ height: el.offsetHeight,
+ },
+ this.$element.offset(),
+ );
};
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
- return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 }
- : placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 }
- : placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth }
- /* placement == 'right' */ : { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width };
+ return placement == 'bottom'
+ ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 }
+ : placement == 'top'
+ ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 }
+ : placement == 'left'
+ ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth }
+ : /* placement == 'right' */ {
+ top: pos.top + pos.height / 2 - actualHeight / 2,
+ left: pos.left + pos.width,
+ };
};
Tooltip.prototype.getTitle = function () {
@@ -1288,18 +1350,19 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const $e = this.$element;
const o = this.options;
- title = $e.attr('data-original-title')
- || (typeof o.title === 'function' ? o.title.call($e[0]) : o.title);
+ title =
+ $e.attr('data-original-title') ||
+ (typeof o.title === 'function' ? o.title.call($e[0]) : o.title);
return title;
};
Tooltip.prototype.tip = function () {
- return this.$tip = this.$tip || $(this.options.template);
+ return (this.$tip = this.$tip || $(this.options.template));
};
Tooltip.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow');
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'));
};
Tooltip.prototype.validate = function () {
@@ -1323,7 +1386,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
};
Tooltip.prototype.toggle = function (e) {
- const self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`) : this;
+ const self = e
+ ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`)
+ : this;
self.tip().hasClass('in') ? self.leave(self) : self.enter(self);
};
@@ -1358,7 +1423,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$.fn.tooltip = old;
return this;
};
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: popover.js v3.1.1
@@ -1382,7 +1447,8 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
placement: 'right',
trigger: 'click',
content: '',
- template: '',
+ template:
+ '',
});
// NOTE: POPOVER EXTENDS tooltip.js
@@ -1402,9 +1468,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const content = this.getContent();
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title);
- $tip.find('.popover-content')[// we use append for html objects to maintain js events
- this.options.html ? (typeof content === 'string' ? 'html' : 'append') : 'text'
- ](content);
+ $tip
+ .find('.popover-content') // we use append for html objects to maintain js events
+ [this.options.html ? (typeof content === 'string' ? 'html' : 'append') : 'text'](content);
$tip.removeClass('fade top bottom left right in');
@@ -1421,14 +1487,14 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const $e = this.$element;
const o = this.options;
- return $e.attr('data-content')
- || (typeof o.content === 'function'
- ? o.content.call($e[0])
- : o.content);
+ return (
+ $e.attr('data-content') ||
+ (typeof o.content === 'function' ? o.content.call($e[0]) : o.content)
+ );
};
Popover.prototype.arrow = function () {
- return this.$arrow = this.$arrow || this.tip().find('.arrow');
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'));
};
Popover.prototype.tip = function () {
@@ -1462,7 +1528,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$.fn.popover = old;
return this;
};
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: scrollspy.js v3.1.1
@@ -1484,9 +1550,11 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
this.$body = $('body');
this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process);
this.options = $.extend({}, ScrollSpy.DEFAULTS, options);
- this.selector = `${this.options.target
- || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
- || ''} .nav li > a`;
+ this.selector = `${
+ this.options.target ||
+ ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) || // strip for ie7
+ ''
+ } .nav li > a`;
this.offsets = $([]);
this.targets = $([]);
this.activeTarget = null;
@@ -1513,10 +1581,18 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
const href = $el.data('target') || $el.attr('href');
const $href = /^#./.test(href) && $(href);
- return ($href
- && $href.length
- && $href.is(':visible')
- && [[$href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href]]) || null;
+ return (
+ ($href &&
+ $href.length &&
+ $href.is(':visible') && [
+ [
+ $href[offsetMethod]().top +
+ (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()),
+ href,
+ ],
+ ]) ||
+ null
+ );
})
.sort((a, b) => a[0] - b[0])
.each(function () {
@@ -1542,33 +1618,25 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
return activeTarget != (i = targets[0]) && this.activate(i);
}
- for (i = offsets.length; i--;) {
- activeTarget != targets[i]
- && scrollTop >= offsets[i]
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
- && this.activate(targets[i]);
+ for (i = offsets.length; i--; ) {
+ activeTarget != targets[i] &&
+ scrollTop >= offsets[i] &&
+ (!offsets[i + 1] || scrollTop <= offsets[i + 1]) &&
+ this.activate(targets[i]);
}
};
ScrollSpy.prototype.activate = function (target) {
this.activeTarget = target;
- $(this.selector)
- .parentsUntil(this.options.target, '.active')
- .removeClass('active');
+ $(this.selector).parentsUntil(this.options.target, '.active').removeClass('active');
- const selector = `${this.selector
- }[data-target="${target}"],${
- this.selector}[href="${target}"]`;
+ const selector = `${this.selector}[data-target="${target}"],${this.selector}[href="${target}"]`;
- let active = $(selector)
- .parents('li')
- .addClass('active');
+ let active = $(selector).parents('li').addClass('active');
if (active.parent('.dropdown-menu').length) {
- active = active
- .closest('li.dropdown')
- .addClass('active');
+ active = active.closest('li.dropdown').addClass('active');
}
active.trigger('activate.bs.scrollspy');
@@ -1609,7 +1677,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$spy.scrollspy($spy.data());
});
});
-}(jQuery));
+})(jQuery);
/* ========================================================================
* Bootstrap: tab.js v3.1.1
@@ -1661,15 +1729,10 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
Tab.prototype.activate = function (element, container, callback) {
const $active = container.find('> .active');
- const transition = callback
- && $.support.transition
- && $active.hasClass('fade');
+ const transition = callback && $.support.transition && $active.hasClass('fade');
function next() {
- $active
- .removeClass('active')
- .find('> .dropdown-menu > .active')
- .removeClass('active');
+ $active.removeClass('active').find('> .dropdown-menu > .active').removeClass('active');
element.addClass('active');
@@ -1687,11 +1750,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
callback && callback();
}
- transition
- ? $active
- .one($.support.transition.end, next)
- .emulateTransitionEnd(150)
- : next();
+ transition ? $active.one($.support.transition.end, next).emulateTransitionEnd(150) : next();
$active.removeClass('in');
};
@@ -1724,11 +1783,15 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
// TAB DATA-API
// ============
- $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
- e.preventDefault();
- $(this).tab('show');
- });
-}(jQuery));
+ $(document).on(
+ 'click.bs.tab.data-api',
+ '[data-toggle="tab"], [data-toggle="pill"]',
+ function (e) {
+ e.preventDefault();
+ $(this).tab('show');
+ },
+ );
+})(jQuery);
/* ========================================================================
* Bootstrap: affix.js v3.1.1
@@ -1788,9 +1851,15 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
if (typeof offsetTop === 'function') offsetTop = offset.top(this.$element);
if (typeof offsetBottom === 'function') offsetBottom = offset.bottom(this.$element);
- const affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false
- : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom'
- : offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false;
+ const affix =
+ this.unpin != null && scrollTop + this.unpin <= position.top
+ ? false
+ : offsetBottom != null &&
+ position.top + this.$element.height() >= scrollHeight - offsetBottom
+ ? 'bottom'
+ : offsetTop != null && scrollTop <= offsetTop
+ ? 'top'
+ : false;
if (this.affixed === affix) return;
if (this.unpin) this.$element.css('top', '');
@@ -1857,4 +1926,4 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$spy.affix(data);
});
});
-}(jQuery));
+})(jQuery);
diff --git a/libraries/bootstrap/js/bootstrap.min.js b/libraries/bootstrap/js/bootstrap.min.js
index 9e121935..c82d735f 100644
--- a/libraries/bootstrap/js/bootstrap.min.js
+++ b/libraries/bootstrap/js/bootstrap.min.js
@@ -3,37 +3,1184 @@
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-if (typeof jQuery === 'undefined') throw new Error("Bootstrap's JavaScript requires jQuery"); +(function (a) {
+if (typeof jQuery === 'undefined') throw new Error("Bootstrap's JavaScript requires jQuery");
++(function (a) {
function b() {
- const a = document.createElement('bootstrap'); const b = {
- WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'oTransitionEnd otransitionend', transition: 'transitionend',
- }; for (const c in b) if (void 0 !== a.style[c]) return { end: b[c] }; return !1;
- }a.fn.emulateTransitionEnd = function (b) { let c = !1; const d = this; a(this).one(a.support.transition.end, () => { c = !0; }); const e = function () { c || a(d).trigger(a.support.transition.end); }; return setTimeout(e, b), this; }, a(() => { a.support.transition = b(); });
-}(jQuery)), +(function (a) {
- const b = '[data-dismiss="alert"]'; const c = function (c) { a(c).on('click', b, this.close); }; c.prototype.close = function (b) { function c() { f.trigger('closed.bs.alert').remove(); } const d = a(this); let e = d.attr('data-target'); e || (e = d.attr('href'), e = e && e.replace(/.*(?=#[^\s]*$)/, '')); var f = a(e); b && b.preventDefault(), f.length || (f = d.hasClass('alert') ? d : d.parent()), f.trigger(b = a.Event('close.bs.alert')), b.isDefaultPrevented() || (f.removeClass('in'), a.support.transition && f.hasClass('fade') ? f.one(a.support.transition.end, c).emulateTransitionEnd(150) : c()); }; const d = a.fn.alert; a.fn.alert = function (b) { return this.each(function () { const d = a(this); let e = d.data('bs.alert'); e || d.data('bs.alert', e = new c(this)), typeof b === 'string' && e[b].call(d); }); }, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function () { return a.fn.alert = d, this; }, a(document).on('click.bs.alert.data-api', b, c.prototype.close);
-}(jQuery)), +(function (a) {
- var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.isLoading = !1; }; b.DEFAULTS = { loadingText: 'loading...' }, b.prototype.setState = function (b) { const c = 'disabled'; const d = this.$element; const e = d.is('input') ? 'val' : 'html'; const f = d.data(); b += 'Text', f.resetText || d.data('resetText', d[e]()), d[e](f[b] || this.options[b]), setTimeout(a.proxy(function () { b == 'loadingText' ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)); }, this), 0); }, b.prototype.toggle = function () { let a = !0; const b = this.$element.closest('[data-toggle="buttons"]'); if (b.length) { const c = this.$element.find('input'); c.prop('type') == 'radio' && (c.prop('checked') && this.$element.hasClass('active') ? a = !1 : b.find('.active').removeClass('active')), a && c.prop('checked', !this.$element.hasClass('active')).trigger('change'); }a && this.$element.toggleClass('active'); }; const c = a.fn.button; a.fn.button = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.button'); const f = typeof c === 'object' && c; e || d.data('bs.button', e = new b(this, f)), c == 'toggle' ? e.toggle() : c && e.setState(c); }); }, a.fn.button.Constructor = b, a.fn.button.noConflict = function () { return a.fn.button = c, this; }, a(document).on('click.bs.button.data-api', '[data-toggle^=button]', (b) => { let c = a(b.target); c.hasClass('btn') || (c = c.closest('.btn')), c.button('toggle'), b.preventDefault(); });
-}(jQuery)), +(function (a) {
- const b = function (b, c) { this.$element = a(b), this.$indicators = this.$element.find('.carousel-indicators'), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, this.options.pause == 'hover' && this.$element.on('mouseenter', a.proxy(this.pause, this)).on('mouseleave', a.proxy(this.cycle, this)); }; b.DEFAULTS = { interval: 5e3, pause: 'hover', wrap: !0 }, b.prototype.cycle = function (b) { return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this; }, b.prototype.getActiveIndex = function () { return this.$active = this.$element.find('.item.active'), this.$items = this.$active.parent().children(), this.$items.index(this.$active); }, b.prototype.to = function (b) { const c = this; const d = this.getActiveIndex(); return b > this.$items.length - 1 || b < 0 ? void 0 : this.sliding ? this.$element.one('slid.bs.carousel', () => { c.to(b); }) : d == b ? this.pause().cycle() : this.slide(b > d ? 'next' : 'prev', a(this.$items[b])); }, b.prototype.pause = function (b) { return b || (this.paused = !0), this.$element.find('.next, .prev').length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this; }, b.prototype.next = function () { return this.sliding ? void 0 : this.slide('next'); }, b.prototype.prev = function () { return this.sliding ? void 0 : this.slide('prev'); }, b.prototype.slide = function (b, c) { const d = this.$element.find('.item.active'); let e = c || d[b](); const f = this.interval; const g = b == 'next' ? 'left' : 'right'; const h = b == 'next' ? 'first' : 'last'; const i = this; if (!e.length) { if (!this.options.wrap) return; e = this.$element.find('.item')[h](); } if (e.hasClass('active')) return this.sliding = !1; const j = a.Event('slide.bs.carousel', { relatedTarget: e[0], direction: g }); return this.$element.trigger(j), j.isDefaultPrevented() ? void 0 : (this.sliding = !0, f && this.pause(), this.$indicators.length && (this.$indicators.find('.active').removeClass('active'), this.$element.one('slid.bs.carousel', () => { const b = a(i.$indicators.children()[i.getActiveIndex()]); b && b.addClass('active'); })), a.support.transition && this.$element.hasClass('slide') ? (e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one(a.support.transition.end, () => { e.removeClass([b, g].join(' ')).addClass('active'), d.removeClass(['active', g].join(' ')), i.sliding = !1, setTimeout(() => { i.$element.trigger('slid.bs.carousel'); }, 0); }).emulateTransitionEnd(1e3 * d.css('transition-duration').slice(0, -1))) : (d.removeClass('active'), e.addClass('active'), this.sliding = !1, this.$element.trigger('slid.bs.carousel')), f && this.cycle(), this); }; const c = a.fn.carousel; a.fn.carousel = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.carousel'); const f = a.extend({}, b.DEFAULTS, d.data(), typeof c === 'object' && c); const g = typeof c === 'string' ? c : f.slide; e || d.data('bs.carousel', e = new b(this, f)), typeof c === 'number' ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle(); }); }, a.fn.carousel.Constructor = b, a.fn.carousel.noConflict = function () { return a.fn.carousel = c, this; }, a(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (b) { let c; const d = a(this); const e = a(d.attr('data-target') || (c = d.attr('href')) && c.replace(/.*(?=#[^\s]+$)/, '')); const f = a.extend({}, e.data(), d.data()); let g = d.attr('data-slide-to'); g && (f.interval = !1), e.carousel(f), (g = d.attr('data-slide-to')) && e.data('bs.carousel').to(g), b.preventDefault(); }), a(window).on('load', () => { a('[data-ride="carousel"]').each(function () { const b = a(this); b.carousel(b.data()); }); });
-}(jQuery)), +(function (a) {
- var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle(); }; b.DEFAULTS = { toggle: !0 }, b.prototype.dimension = function () { const a = this.$element.hasClass('width'); return a ? 'width' : 'height'; }, b.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass('in')) { const b = a.Event('show.bs.collapse'); if (this.$element.trigger(b), !b.isDefaultPrevented()) { const c = this.$parent && this.$parent.find('> .panel > .in'); if (c && c.length) { const d = c.data('bs.collapse'); if (d && d.transitioning) return; c.collapse('hide'), d || c.data('bs.collapse', null); } const e = this.dimension(); this.$element.removeClass('collapse').addClass('collapsing')[e](0), this.transitioning = 1; const f = function () { this.$element.removeClass('collapsing').addClass('collapse in')[e]('auto'), this.transitioning = 0, this.$element.trigger('shown.bs.collapse'); }; if (!a.support.transition) return f.call(this); const g = a.camelCase(['scroll', e].join('-')); this.$element.one(a.support.transition.end, a.proxy(f, this)).emulateTransitionEnd(350)[e](this.$element[0][g]); } } }, b.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass('in')) { const b = a.Event('hide.bs.collapse'); if (this.$element.trigger(b), !b.isDefaultPrevented()) { const c = this.dimension(); this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass('collapsing').removeClass('collapse').removeClass('in'), this.transitioning = 1; const d = function () { this.transitioning = 0, this.$element.trigger('hidden.bs.collapse').removeClass('collapsing').addClass('collapse'); }; return a.support.transition ? void this.$element[c](0).one(a.support.transition.end, a.proxy(d, this)).emulateTransitionEnd(350) : d.call(this); } } }, b.prototype.toggle = function () { this[this.$element.hasClass('in') ? 'hide' : 'show'](); }; const c = a.fn.collapse; a.fn.collapse = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.collapse'); const f = a.extend({}, b.DEFAULTS, d.data(), typeof c === 'object' && c); !e && f.toggle && c == 'show' && (c = !c), e || d.data('bs.collapse', e = new b(this, f)), typeof c === 'string' && e[c](); }); }, a.fn.collapse.Constructor = b, a.fn.collapse.noConflict = function () { return a.fn.collapse = c, this; }, a(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (b) { let c; const d = a(this); const e = d.attr('data-target') || b.preventDefault() || (c = d.attr('href')) && c.replace(/.*(?=#[^\s]+$)/, ''); const f = a(e); const g = f.data('bs.collapse'); const h = g ? 'toggle' : d.data(); const i = d.attr('data-parent'); const j = i && a(i); g && g.transitioning || (j && j.find(`[data-toggle=collapse][data-parent="${i}"]`).not(d).addClass('collapsed'), d[f.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')), f.collapse(h); });
-}(jQuery)), +(function (a) {
- function b(b) { a(d).remove(), a(e).each(function () { const d = c(a(this)); const e = { relatedTarget: this }; d.hasClass('open') && (d.trigger(b = a.Event('hide.bs.dropdown', e)), b.isDefaultPrevented() || d.removeClass('open').trigger('hidden.bs.dropdown', e)); }); } function c(b) { let c = b.attr('data-target'); c || (c = b.attr('href'), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, '')); const d = c && a(c); return d && d.length ? d : b.parent(); } var d = '.dropdown-backdrop'; var e = '[data-toggle=dropdown]'; const f = function (b) { a(b).on('click.bs.dropdown', this.toggle); }; f.prototype.toggle = function (d) { const e = a(this); if (!e.is('.disabled, :disabled')) { const f = c(e); const g = f.hasClass('open'); if (b(), !g) { 'ontouchstart' in document.documentElement && !f.closest('.navbar-nav').length && a('').insertAfter(a(this)).on('click', b); const h = { relatedTarget: this }; if (f.trigger(d = a.Event('show.bs.dropdown', h)), d.isDefaultPrevented()) return; f.toggleClass('open').trigger('shown.bs.dropdown', h), e.focus(); } return !1; } }, f.prototype.keydown = function (b) { if (/(38|40|27)/.test(b.keyCode)) { const d = a(this); if (b.preventDefault(), b.stopPropagation(), !d.is('.disabled, :disabled')) { const f = c(d); const g = f.hasClass('open'); if (!g || g && b.keyCode == 27) return b.which == 27 && f.find(e).focus(), d.click(); const h = ' li:not(.divider):visible a'; const i = f.find(`[role=menu]${h}, [role=listbox]${h}`); if (i.length) { let j = i.index(i.filter(':focus')); b.keyCode == 38 && j > 0 && j--, b.keyCode == 40 && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).focus(); } } } }; const g = a.fn.dropdown; a.fn.dropdown = function (b) { return this.each(function () { const c = a(this); let d = c.data('bs.dropdown'); d || c.data('bs.dropdown', d = new f(this)), typeof b === 'string' && d[b].call(c); }); }, a.fn.dropdown.Constructor = f, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = g, this; }, a(document).on('click.bs.dropdown.data-api', b).on('click.bs.dropdown.data-api', '.dropdown form', (a) => { a.stopPropagation(); }).on('click.bs.dropdown.data-api', e, f.prototype.toggle)
- .on('keydown.bs.dropdown.data-api', `${e}, [role=menu], [role=listbox]`, f.prototype.keydown);
-}(jQuery)), +(function (a) {
- const b = function (b, c) { this.options = c, this.$element = a(b), this.$backdrop = this.isShown = null, this.options.remote && this.$element.find('.modal-content').load(this.options.remote, a.proxy(function () { this.$element.trigger('loaded.bs.modal'); }, this)); }; b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, b.prototype.toggle = function (a) { return this[this.isShown ? 'hide' : 'show'](a); }, b.prototype.show = function (b) { const c = this; const d = a.Event('show.bs.modal', { relatedTarget: b }); this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(() => { const d = a.support.transition && c.$element.hasClass('fade'); c.$element.parent().length || c.$element.appendTo(document.body), c.$element.show().scrollTop(0), d && c.$element[0].offsetWidth, c.$element.addClass('in').attr('aria-hidden', !1), c.enforceFocus(); const e = a.Event('shown.bs.modal', { relatedTarget: b }); d ? c.$element.find('.modal-dialog').one(a.support.transition.end, () => { c.$element.focus().trigger(e); }).emulateTransitionEnd(300) : c.$element.focus().trigger(e); })); }, b.prototype.hide = function (b) { b && b.preventDefault(), b = a.Event('hide.bs.modal'), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), a(document).off('focusin.bs.modal'), this.$element.removeClass('in').attr('aria-hidden', !0).off('click.dismiss.bs.modal'), a.support.transition && this.$element.hasClass('fade') ? this.$element.one(a.support.transition.end, a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal()); }, b.prototype.enforceFocus = function () { a(document).off('focusin.bs.modal').on('focusin.bs.modal', a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.focus(); }, this)); }, b.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on('keyup.dismiss.bs.modal', a.proxy(function (a) { a.which == 27 && this.hide(); }, this)) : this.isShown || this.$element.off('keyup.dismiss.bs.modal'); }, b.prototype.hideModal = function () { const a = this; this.$element.hide(), this.backdrop(() => { a.removeBackdrop(), a.$element.trigger('hidden.bs.modal'); }); }, b.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null; }, b.prototype.backdrop = function (b) { const c = this.$element.hasClass('fade') ? 'fade' : ''; if (this.isShown && this.options.backdrop) { const d = a.support.transition && c; if (this.$backdrop = a(``).appendTo(document.body), this.$element.on('click.dismiss.bs.modal', a.proxy(function (a) { a.target === a.currentTarget && (this.options.backdrop == 'static' ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this)); }, this)), d && this.$backdrop[0].offsetWidth, this.$backdrop.addClass('in'), !b) return; d ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b(); } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass('in'), a.support.transition && this.$element.hasClass('fade') ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b()) : b && b(); }; const c = a.fn.modal; a.fn.modal = function (c, d) { return this.each(function () { const e = a(this); let f = e.data('bs.modal'); const g = a.extend({}, b.DEFAULTS, e.data(), typeof c === 'object' && c); f || e.data('bs.modal', f = new b(this, g)), typeof c === 'string' ? f[c](d) : g.show && f.show(d); }); }, a.fn.modal.Constructor = b, a.fn.modal.noConflict = function () { return a.fn.modal = c, this; }, a(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (b) { const c = a(this); const d = c.attr('href'); const e = a(c.attr('data-target') || d && d.replace(/.*(?=#[^\s]+$)/, '')); const f = e.data('bs.modal') ? 'toggle' : a.extend({ remote: !/#/.test(d) && d }, e.data(), c.data()); c.is('a') && b.preventDefault(), e.modal(f, this).one('hide', () => { c.is(':visible') && c.focus(); }); }), a(document).on('show.bs.modal', '.modal', () => { a(document.body).addClass('modal-open'); }).on('hidden.bs.modal', '.modal', () => { a(document.body).removeClass('modal-open'); });
-}(jQuery)), +(function (a) {
- const b = function (a, b) { this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init('tooltip', a, b); }; b.DEFAULTS = {
- animation: !0, placement: 'top', selector: !1, template: '', trigger: 'hover focus', title: '', delay: 0, html: !1, container: !1,
- }, b.prototype.init = function (b, c, d) { this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d); for (let e = this.options.trigger.split(' '), f = e.length; f--;) { const g = e[f]; if (g == 'click') this.$element.on(`click.${this.type}`, this.options.selector, a.proxy(this.toggle, this)); else if (g != 'manual') { const h = g == 'hover' ? 'mouseenter' : 'focusin'; const i = g == 'hover' ? 'mouseleave' : 'focusout'; this.$element.on(`${h}.${this.type}`, this.options.selector, a.proxy(this.enter, this)), this.$element.on(`${i}.${this.type}`, this.options.selector, a.proxy(this.leave, this)); } } this.options.selector ? this._options = a.extend({}, this.options, { trigger: 'manual', selector: '' }) : this.fixTitle(); }, b.prototype.getDefaults = function () { return b.DEFAULTS; }, b.prototype.getOptions = function (b) { return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && typeof b.delay === 'number' && (b.delay = { show: b.delay, hide: b.delay }), b; }, b.prototype.getDelegateOptions = function () { const b = {}; const c = this.getDefaults(); return this._options && a.each(this._options, (a, d) => { c[a] != d && (b[a] = d); }), b; }, b.prototype.enter = function (b) { const c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`); return clearTimeout(c.timeout), c.hoverState = 'in', c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(() => { c.hoverState == 'in' && c.show(); }, c.options.delay.show)) : c.show(); }, b.prototype.leave = function (b) { const c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`); return clearTimeout(c.timeout), c.hoverState = 'out', c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(() => { c.hoverState == 'out' && c.hide(); }, c.options.delay.hide)) : c.hide(); }, b.prototype.show = function () { const b = a.Event(`show.bs.${this.type}`); if (this.hasContent() && this.enabled) { if (this.$element.trigger(b), b.isDefaultPrevented()) return; const c = this; const d = this.tip(); this.setContent(), this.options.animation && d.addClass('fade'); let e = typeof this.options.placement === 'function' ? this.options.placement.call(this, d[0], this.$element[0]) : this.options.placement; const f = /\s?auto?\s?/i; const g = f.test(e); g && (e = e.replace(f, '') || 'top'), d.detach().css({ top: 0, left: 0, display: 'block' }).addClass(e), this.options.container ? d.appendTo(this.options.container) : d.insertAfter(this.$element); const h = this.getPosition(); const i = d[0].offsetWidth; const j = d[0].offsetHeight; if (g) { const k = this.$element.parent(); const l = e; const m = document.documentElement.scrollTop || document.body.scrollTop; const n = this.options.container == 'body' ? window.innerWidth : k.outerWidth(); const o = this.options.container == 'body' ? window.innerHeight : k.outerHeight(); const p = this.options.container == 'body' ? 0 : k.offset().left; e = e == 'bottom' && h.top + h.height + j - m > o ? 'top' : e == 'top' && h.top - m - j < 0 ? 'bottom' : e == 'right' && h.right + i > n ? 'left' : e == 'left' && h.left - i < p ? 'right' : e, d.removeClass(l).addClass(e); } const q = this.getCalculatedOffset(e, h, i, j); this.applyPlacement(q, e), this.hoverState = null; const r = function () { c.$element.trigger(`shown.bs.${c.type}`); }; a.support.transition && this.$tip.hasClass('fade') ? d.one(a.support.transition.end, r).emulateTransitionEnd(150) : r(); } }, b.prototype.applyPlacement = function (b, c) { let d; const e = this.tip(); const f = e[0].offsetWidth; const g = e[0].offsetHeight; let h = parseInt(e.css('margin-top'), 10); let i = parseInt(e.css('margin-left'), 10); isNaN(h) && (h = 0), isNaN(i) && (i = 0), b.top += h, b.left += i, a.offset.setOffset(e[0], a.extend({ using(a) { e.css({ top: Math.round(a.top), left: Math.round(a.left) }); } }, b), 0), e.addClass('in'); let j = e[0].offsetWidth; let k = e[0].offsetHeight; if (c == 'top' && k != g && (d = !0, b.top = b.top + g - k), /bottom|top/.test(c)) { let l = 0; b.left < 0 && (l = -2 * b.left, b.left = 0, e.offset(b), j = e[0].offsetWidth, k = e[0].offsetHeight), this.replaceArrow(l - f + j, j, 'left'); } else this.replaceArrow(k - g, k, 'top'); d && e.offset(b); }, b.prototype.replaceArrow = function (a, b, c) { this.arrow().css(c, a ? `${50 * (1 - a / b)}%` : ''); }, b.prototype.setContent = function () { const a = this.tip(); const b = this.getTitle(); a.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](b), a.removeClass('fade in top bottom left right'); }, b.prototype.hide = function () { function b() { c.hoverState != 'in' && d.detach(), c.$element.trigger(`hidden.bs.${c.type}`); } var c = this; var d = this.tip(); const e = a.Event(`hide.bs.${this.type}`); return this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (d.removeClass('in'), a.support.transition && this.$tip.hasClass('fade') ? d.one(a.support.transition.end, b).emulateTransitionEnd(150) : b(), this.hoverState = null, this); }, b.prototype.fixTitle = function () { const a = this.$element; (a.attr('title') || typeof a.attr('data-original-title') !== 'string') && a.attr('data-original-title', a.attr('title') || '').attr('title', ''); }, b.prototype.hasContent = function () { return this.getTitle(); }, b.prototype.getPosition = function () { const b = this.$element[0]; return a.extend({}, typeof b.getBoundingClientRect === 'function' ? b.getBoundingClientRect() : { width: b.offsetWidth, height: b.offsetHeight }, this.$element.offset()); }, b.prototype.getCalculatedOffset = function (a, b, c, d) { return a == 'bottom' ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : a == 'top' ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : a == 'left' ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width }; }, b.prototype.getTitle = function () { let a; const b = this.$element; const c = this.options; return a = b.attr('data-original-title') || (typeof c.title === 'function' ? c.title.call(b[0]) : c.title); }, b.prototype.tip = function () { return this.$tip = this.$tip || a(this.options.template); }, b.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'); }, b.prototype.validate = function () { this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null); }, b.prototype.enable = function () { this.enabled = !0; }, b.prototype.disable = function () { this.enabled = !1; }, b.prototype.toggleEnabled = function () { this.enabled = !this.enabled; }, b.prototype.toggle = function (b) { const c = b ? a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`) : this; c.tip().hasClass('in') ? c.leave(c) : c.enter(c); }, b.prototype.destroy = function () { clearTimeout(this.timeout), this.hide().$element.off(`.${this.type}`).removeData(`bs.${this.type}`); }; const c = a.fn.tooltip; a.fn.tooltip = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.tooltip'); const f = typeof c === 'object' && c; (e || c != 'destroy') && (e || d.data('bs.tooltip', e = new b(this, f)), typeof c === 'string' && e[c]()); }); }, a.fn.tooltip.Constructor = b, a.fn.tooltip.noConflict = function () { return a.fn.tooltip = c, this; };
-}(jQuery)), +(function (a) {
- const b = function (a, b) { this.init('popover', a, b); }; if (!a.fn.tooltip) throw new Error('Popover requires tooltip.js'); b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
- placement: 'right', trigger: 'click', content: '', template: '',
- }), b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), b.prototype.constructor = b, b.prototype.getDefaults = function () { return b.DEFAULTS; }, b.prototype.setContent = function () { const a = this.tip(); const b = this.getTitle(); const c = this.getContent(); a.find('.popover-title')[this.options.html ? 'html' : 'text'](b), a.find('.popover-content')[this.options.html ? typeof c === 'string' ? 'html' : 'append' : 'text'](c), a.removeClass('fade top bottom left right in'), a.find('.popover-title').html() || a.find('.popover-title').hide(); }, b.prototype.hasContent = function () { return this.getTitle() || this.getContent(); }, b.prototype.getContent = function () { const a = this.$element; const b = this.options; return a.attr('data-content') || (typeof b.content === 'function' ? b.content.call(a[0]) : b.content); }, b.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find('.arrow'); }, b.prototype.tip = function () { return this.$tip || (this.$tip = a(this.options.template)), this.$tip; }; const c = a.fn.popover; a.fn.popover = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.popover'); const f = typeof c === 'object' && c; (e || c != 'destroy') && (e || d.data('bs.popover', e = new b(this, f)), typeof c === 'string' && e[c]()); }); }, a.fn.popover.Constructor = b, a.fn.popover.noConflict = function () { return a.fn.popover = c, this; };
-}(jQuery)), +(function (a) {
- function b(c, d) { let e; const f = a.proxy(this.process, this); this.$element = a(a(c).is('body') ? window : c), this.$body = a('body'), this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', f), this.options = a.extend({}, b.DEFAULTS, d), this.selector = `${this.options.target || (e = a(c).attr('href')) && e.replace(/.*(?=#[^\s]+$)/, '') || ''} .nav li > a`, this.offsets = a([]), this.targets = a([]), this.activeTarget = null, this.refresh(), this.process(); }b.DEFAULTS = { offset: 10 }, b.prototype.refresh = function () { const b = this.$element[0] == window ? 'offset' : 'position'; this.offsets = a([]), this.targets = a([]); { const c = this; this.$body.find(this.selector).map(function () { const d = a(this); const e = d.data('target') || d.attr('href'); const f = /^#./.test(e) && a(e); return f && f.length && f.is(':visible') && [[f[b]().top + (!a.isWindow(c.$scrollElement.get(0)) && c.$scrollElement.scrollTop()), e]] || null; }).sort((a, b) => a[0] - b[0]).each(function () { c.offsets.push(this[0]), c.targets.push(this[1]); }); } }, b.prototype.process = function () { let a; const b = this.$scrollElement.scrollTop() + this.options.offset; const c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight; const d = c - this.$scrollElement.height(); const e = this.offsets; const f = this.targets; const g = this.activeTarget; if (b >= d) return g != (a = f.last()[0]) && this.activate(a); if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a); for (a = e.length; a--;)g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a]); }, b.prototype.activate = function (b) { this.activeTarget = b, a(this.selector).parentsUntil(this.options.target, '.active').removeClass('active'); const c = `${this.selector}[data-target="${b}"],${this.selector}[href="${b}"]`; let d = a(c).parents('li').addClass('active'); d.parent('.dropdown-menu').length && (d = d.closest('li.dropdown').addClass('active')), d.trigger('activate.bs.scrollspy'); }; const c = a.fn.scrollspy; a.fn.scrollspy = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.scrollspy'); const f = typeof c === 'object' && c; e || d.data('bs.scrollspy', e = new b(this, f)), typeof c === 'string' && e[c](); }); }, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () { return a.fn.scrollspy = c, this; }, a(window).on('load', () => { a('[data-spy="scroll"]').each(function () { const b = a(this); b.scrollspy(b.data()); }); });
-}(jQuery)), +(function (a) {
- const b = function (b) { this.element = a(b); }; b.prototype.show = function () { const b = this.element; const c = b.closest('ul:not(.dropdown-menu)'); let d = b.data('target'); if (d || (d = b.attr('href'), d = d && d.replace(/.*(?=#[^\s]*$)/, '')), !b.parent('li').hasClass('active')) { const e = c.find('.active:last a')[0]; const f = a.Event('show.bs.tab', { relatedTarget: e }); if (b.trigger(f), !f.isDefaultPrevented()) { const g = a(d); this.activate(b.parent('li'), c), this.activate(g, g.parent(), () => { b.trigger({ type: 'shown.bs.tab', relatedTarget: e }); }); } } }, b.prototype.activate = function (b, c, d) { function e() { f.removeClass('active').find('> .dropdown-menu > .active').removeClass('active'), b.addClass('active'), g ? (b[0].offsetWidth, b.addClass('in')) : b.removeClass('fade'), b.parent('.dropdown-menu') && b.closest('li.dropdown').addClass('active'), d && d(); } var f = c.find('> .active'); var g = d && a.support.transition && f.hasClass('fade'); g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(), f.removeClass('in'); }; const c = a.fn.tab; a.fn.tab = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.tab'); e || d.data('bs.tab', e = new b(this)), typeof c === 'string' && e[c](); }); }, a.fn.tab.Constructor = b, a.fn.tab.noConflict = function () { return a.fn.tab = c, this; }, a(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (b) { b.preventDefault(), a(this).tab('show'); });
-}(jQuery)), +(function (a) {
- var b = function (c, d) { this.options = a.extend({}, b.DEFAULTS, d), this.$window = a(window).on('scroll.bs.affix.data-api', a.proxy(this.checkPosition, this)).on('click.bs.affix.data-api', a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(c), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition(); }; b.RESET = 'affix affix-top affix-bottom', b.DEFAULTS = { offset: 0 }, b.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset; this.$element.removeClass(b.RESET).addClass('affix'); const a = this.$window.scrollTop(); const c = this.$element.offset(); return this.pinnedOffset = c.top - a; }, b.prototype.checkPositionWithEventLoop = function () { setTimeout(a.proxy(this.checkPosition, this), 1); }, b.prototype.checkPosition = function () { if (this.$element.is(':visible')) { const c = a(document).height(); const d = this.$window.scrollTop(); const e = this.$element.offset(); const f = this.options.offset; let g = f.top; let h = f.bottom; this.affixed == 'top' && (e.top += d), typeof f !== 'object' && (h = g = f), typeof g === 'function' && (g = f.top(this.$element)), typeof h === 'function' && (h = f.bottom(this.$element)); const i = this.unpin != null && d + this.unpin <= e.top ? !1 : h != null && e.top + this.$element.height() >= c - h ? 'bottom' : g != null && g >= d ? 'top' : !1; if (this.affixed !== i) { this.unpin && this.$element.css('top', ''); const j = `affix${i ? `-${i}` : ''}`; const k = a.Event(`${j}.bs.affix`); this.$element.trigger(k), k.isDefaultPrevented() || (this.affixed = i, this.unpin = i == 'bottom' ? this.getPinnedOffset() : null, this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace('affix', 'affixed'))), i == 'bottom' && this.$element.offset({ top: c - h - this.$element.height() })); } } }; const c = a.fn.affix; a.fn.affix = function (c) { return this.each(function () { const d = a(this); let e = d.data('bs.affix'); const f = typeof c === 'object' && c; e || d.data('bs.affix', e = new b(this, f)), typeof c === 'string' && e[c](); }); }, a.fn.affix.Constructor = b, a.fn.affix.noConflict = function () { return a.fn.affix = c, this; }, a(window).on('load', () => { a('[data-spy="affix"]').each(function () { const b = a(this); const c = b.data(); c.offset = c.offset || {}, c.offsetBottom && (c.offset.bottom = c.offsetBottom), c.offsetTop && (c.offset.top = c.offsetTop), b.affix(c); }); });
-}(jQuery));
+ const a = document.createElement('bootstrap');
+ const b = {
+ WebkitTransition: 'webkitTransitionEnd',
+ MozTransition: 'transitionend',
+ OTransition: 'oTransitionEnd otransitionend',
+ transition: 'transitionend',
+ };
+ for (const c in b) if (void 0 !== a.style[c]) return { end: b[c] };
+ return !1;
+ }
+ (a.fn.emulateTransitionEnd = function (b) {
+ let c = !1;
+ const d = this;
+ a(this).one(a.support.transition.end, () => {
+ c = !0;
+ });
+ const e = function () {
+ c || a(d).trigger(a.support.transition.end);
+ };
+ return setTimeout(e, b), this;
+ }),
+ a(() => {
+ a.support.transition = b();
+ });
+})(jQuery),
+ +(function (a) {
+ const b = '[data-dismiss="alert"]';
+ const c = function (c) {
+ a(c).on('click', b, this.close);
+ };
+ c.prototype.close = function (b) {
+ function c() {
+ f.trigger('closed.bs.alert').remove();
+ }
+ const d = a(this);
+ let e = d.attr('data-target');
+ e || ((e = d.attr('href')), (e = e && e.replace(/.*(?=#[^\s]*$)/, '')));
+ var f = a(e);
+ b && b.preventDefault(),
+ f.length || (f = d.hasClass('alert') ? d : d.parent()),
+ f.trigger((b = a.Event('close.bs.alert'))),
+ b.isDefaultPrevented() ||
+ (f.removeClass('in'),
+ a.support.transition && f.hasClass('fade')
+ ? f.one(a.support.transition.end, c).emulateTransitionEnd(150)
+ : c());
+ };
+ const d = a.fn.alert;
+ (a.fn.alert = function (b) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.alert');
+ e || d.data('bs.alert', (e = new c(this))), typeof b === 'string' && e[b].call(d);
+ });
+ }),
+ (a.fn.alert.Constructor = c),
+ (a.fn.alert.noConflict = function () {
+ return (a.fn.alert = d), this;
+ }),
+ a(document).on('click.bs.alert.data-api', b, c.prototype.close);
+ })(jQuery),
+ +(function (a) {
+ var b = function (c, d) {
+ (this.$element = a(c)), (this.options = a.extend({}, b.DEFAULTS, d)), (this.isLoading = !1);
+ };
+ (b.DEFAULTS = { loadingText: 'loading...' }),
+ (b.prototype.setState = function (b) {
+ const c = 'disabled';
+ const d = this.$element;
+ const e = d.is('input') ? 'val' : 'html';
+ const f = d.data();
+ (b += 'Text'),
+ f.resetText || d.data('resetText', d[e]()),
+ d[e](f[b] || this.options[b]),
+ setTimeout(
+ a.proxy(function () {
+ b == 'loadingText'
+ ? ((this.isLoading = !0), d.addClass(c).attr(c, c))
+ : this.isLoading && ((this.isLoading = !1), d.removeClass(c).removeAttr(c));
+ }, this),
+ 0,
+ );
+ }),
+ (b.prototype.toggle = function () {
+ let a = !0;
+ const b = this.$element.closest('[data-toggle="buttons"]');
+ if (b.length) {
+ const c = this.$element.find('input');
+ c.prop('type') == 'radio' &&
+ (c.prop('checked') && this.$element.hasClass('active')
+ ? (a = !1)
+ : b.find('.active').removeClass('active')),
+ a && c.prop('checked', !this.$element.hasClass('active')).trigger('change');
+ }
+ a && this.$element.toggleClass('active');
+ });
+ const c = a.fn.button;
+ (a.fn.button = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.button');
+ const f = typeof c === 'object' && c;
+ e || d.data('bs.button', (e = new b(this, f))),
+ c == 'toggle' ? e.toggle() : c && e.setState(c);
+ });
+ }),
+ (a.fn.button.Constructor = b),
+ (a.fn.button.noConflict = function () {
+ return (a.fn.button = c), this;
+ }),
+ a(document).on('click.bs.button.data-api', '[data-toggle^=button]', (b) => {
+ let c = a(b.target);
+ c.hasClass('btn') || (c = c.closest('.btn')), c.button('toggle'), b.preventDefault();
+ });
+ })(jQuery),
+ +(function (a) {
+ const b = function (b, c) {
+ (this.$element = a(b)),
+ (this.$indicators = this.$element.find('.carousel-indicators')),
+ (this.options = c),
+ (this.paused = this.sliding = this.interval = this.$active = this.$items = null),
+ this.options.pause == 'hover' &&
+ this.$element
+ .on('mouseenter', a.proxy(this.pause, this))
+ .on('mouseleave', a.proxy(this.cycle, this));
+ };
+ (b.DEFAULTS = { interval: 5e3, pause: 'hover', wrap: !0 }),
+ (b.prototype.cycle = function (b) {
+ return (
+ b || (this.paused = !1),
+ this.interval && clearInterval(this.interval),
+ this.options.interval &&
+ !this.paused &&
+ (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)),
+ this
+ );
+ }),
+ (b.prototype.getActiveIndex = function () {
+ return (
+ (this.$active = this.$element.find('.item.active')),
+ (this.$items = this.$active.parent().children()),
+ this.$items.index(this.$active)
+ );
+ }),
+ (b.prototype.to = function (b) {
+ const c = this;
+ const d = this.getActiveIndex();
+ return b > this.$items.length - 1 || b < 0
+ ? void 0
+ : this.sliding
+ ? this.$element.one('slid.bs.carousel', () => {
+ c.to(b);
+ })
+ : d == b
+ ? this.pause().cycle()
+ : this.slide(b > d ? 'next' : 'prev', a(this.$items[b]));
+ }),
+ (b.prototype.pause = function (b) {
+ return (
+ b || (this.paused = !0),
+ this.$element.find('.next, .prev').length &&
+ a.support.transition &&
+ (this.$element.trigger(a.support.transition.end), this.cycle(!0)),
+ (this.interval = clearInterval(this.interval)),
+ this
+ );
+ }),
+ (b.prototype.next = function () {
+ return this.sliding ? void 0 : this.slide('next');
+ }),
+ (b.prototype.prev = function () {
+ return this.sliding ? void 0 : this.slide('prev');
+ }),
+ (b.prototype.slide = function (b, c) {
+ const d = this.$element.find('.item.active');
+ let e = c || d[b]();
+ const f = this.interval;
+ const g = b == 'next' ? 'left' : 'right';
+ const h = b == 'next' ? 'first' : 'last';
+ const i = this;
+ if (!e.length) {
+ if (!this.options.wrap) return;
+ e = this.$element.find('.item')[h]();
+ }
+ if (e.hasClass('active')) return (this.sliding = !1);
+ const j = a.Event('slide.bs.carousel', { relatedTarget: e[0], direction: g });
+ return (
+ this.$element.trigger(j),
+ j.isDefaultPrevented()
+ ? void 0
+ : ((this.sliding = !0),
+ f && this.pause(),
+ this.$indicators.length &&
+ (this.$indicators.find('.active').removeClass('active'),
+ this.$element.one('slid.bs.carousel', () => {
+ const b = a(i.$indicators.children()[i.getActiveIndex()]);
+ b && b.addClass('active');
+ })),
+ a.support.transition && this.$element.hasClass('slide')
+ ? (e.addClass(b),
+ e[0].offsetWidth,
+ d.addClass(g),
+ e.addClass(g),
+ d
+ .one(a.support.transition.end, () => {
+ e.removeClass([b, g].join(' ')).addClass('active'),
+ d.removeClass(['active', g].join(' ')),
+ (i.sliding = !1),
+ setTimeout(() => {
+ i.$element.trigger('slid.bs.carousel');
+ }, 0);
+ })
+ .emulateTransitionEnd(1e3 * d.css('transition-duration').slice(0, -1)))
+ : (d.removeClass('active'),
+ e.addClass('active'),
+ (this.sliding = !1),
+ this.$element.trigger('slid.bs.carousel')),
+ f && this.cycle(),
+ this)
+ );
+ });
+ const c = a.fn.carousel;
+ (a.fn.carousel = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.carousel');
+ const f = a.extend({}, b.DEFAULTS, d.data(), typeof c === 'object' && c);
+ const g = typeof c === 'string' ? c : f.slide;
+ e || d.data('bs.carousel', (e = new b(this, f))),
+ typeof c === 'number' ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle();
+ });
+ }),
+ (a.fn.carousel.Constructor = b),
+ (a.fn.carousel.noConflict = function () {
+ return (a.fn.carousel = c), this;
+ }),
+ a(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (b) {
+ let c;
+ const d = a(this);
+ const e = a(
+ d.attr('data-target') || ((c = d.attr('href')) && c.replace(/.*(?=#[^\s]+$)/, '')),
+ );
+ const f = a.extend({}, e.data(), d.data());
+ let g = d.attr('data-slide-to');
+ g && (f.interval = !1),
+ e.carousel(f),
+ (g = d.attr('data-slide-to')) && e.data('bs.carousel').to(g),
+ b.preventDefault();
+ }),
+ a(window).on('load', () => {
+ a('[data-ride="carousel"]').each(function () {
+ const b = a(this);
+ b.carousel(b.data());
+ });
+ });
+ })(jQuery),
+ +(function (a) {
+ var b = function (c, d) {
+ (this.$element = a(c)),
+ (this.options = a.extend({}, b.DEFAULTS, d)),
+ (this.transitioning = null),
+ this.options.parent && (this.$parent = a(this.options.parent)),
+ this.options.toggle && this.toggle();
+ };
+ (b.DEFAULTS = { toggle: !0 }),
+ (b.prototype.dimension = function () {
+ const a = this.$element.hasClass('width');
+ return a ? 'width' : 'height';
+ }),
+ (b.prototype.show = function () {
+ if (!this.transitioning && !this.$element.hasClass('in')) {
+ const b = a.Event('show.bs.collapse');
+ if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
+ const c = this.$parent && this.$parent.find('> .panel > .in');
+ if (c && c.length) {
+ const d = c.data('bs.collapse');
+ if (d && d.transitioning) return;
+ c.collapse('hide'), d || c.data('bs.collapse', null);
+ }
+ const e = this.dimension();
+ this.$element.removeClass('collapse').addClass('collapsing')[e](0),
+ (this.transitioning = 1);
+ const f = function () {
+ this.$element.removeClass('collapsing').addClass('collapse in')[e]('auto'),
+ (this.transitioning = 0),
+ this.$element.trigger('shown.bs.collapse');
+ };
+ if (!a.support.transition) return f.call(this);
+ const g = a.camelCase(['scroll', e].join('-'));
+ this.$element
+ .one(a.support.transition.end, a.proxy(f, this))
+ .emulateTransitionEnd(350)
+ [e](this.$element[0][g]);
+ }
+ }
+ }),
+ (b.prototype.hide = function () {
+ if (!this.transitioning && this.$element.hasClass('in')) {
+ const b = a.Event('hide.bs.collapse');
+ if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
+ const c = this.dimension();
+ this.$element[c](this.$element[c]())[0].offsetHeight,
+ this.$element.addClass('collapsing').removeClass('collapse').removeClass('in'),
+ (this.transitioning = 1);
+ const d = function () {
+ (this.transitioning = 0),
+ this.$element
+ .trigger('hidden.bs.collapse')
+ .removeClass('collapsing')
+ .addClass('collapse');
+ };
+ return a.support.transition
+ ? void this.$element[c](0)
+ .one(a.support.transition.end, a.proxy(d, this))
+ .emulateTransitionEnd(350)
+ : d.call(this);
+ }
+ }
+ }),
+ (b.prototype.toggle = function () {
+ this[this.$element.hasClass('in') ? 'hide' : 'show']();
+ });
+ const c = a.fn.collapse;
+ (a.fn.collapse = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.collapse');
+ const f = a.extend({}, b.DEFAULTS, d.data(), typeof c === 'object' && c);
+ !e && f.toggle && c == 'show' && (c = !c),
+ e || d.data('bs.collapse', (e = new b(this, f))),
+ typeof c === 'string' && e[c]();
+ });
+ }),
+ (a.fn.collapse.Constructor = b),
+ (a.fn.collapse.noConflict = function () {
+ return (a.fn.collapse = c), this;
+ }),
+ a(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (b) {
+ let c;
+ const d = a(this);
+ const e =
+ d.attr('data-target') ||
+ b.preventDefault() ||
+ ((c = d.attr('href')) && c.replace(/.*(?=#[^\s]+$)/, ''));
+ const f = a(e);
+ const g = f.data('bs.collapse');
+ const h = g ? 'toggle' : d.data();
+ const i = d.attr('data-parent');
+ const j = i && a(i);
+ (g && g.transitioning) ||
+ (j && j.find(`[data-toggle=collapse][data-parent="${i}"]`).not(d).addClass('collapsed'),
+ d[f.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')),
+ f.collapse(h);
+ });
+ })(jQuery),
+ +(function (a) {
+ function b(b) {
+ a(d).remove(),
+ a(e).each(function () {
+ const d = c(a(this));
+ const e = { relatedTarget: this };
+ d.hasClass('open') &&
+ (d.trigger((b = a.Event('hide.bs.dropdown', e))),
+ b.isDefaultPrevented() || d.removeClass('open').trigger('hidden.bs.dropdown', e));
+ });
+ }
+ function c(b) {
+ let c = b.attr('data-target');
+ c ||
+ ((c = b.attr('href')), (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, '')));
+ const d = c && a(c);
+ return d && d.length ? d : b.parent();
+ }
+ var d = '.dropdown-backdrop';
+ var e = '[data-toggle=dropdown]';
+ const f = function (b) {
+ a(b).on('click.bs.dropdown', this.toggle);
+ };
+ (f.prototype.toggle = function (d) {
+ const e = a(this);
+ if (!e.is('.disabled, :disabled')) {
+ const f = c(e);
+ const g = f.hasClass('open');
+ if ((b(), !g)) {
+ 'ontouchstart' in document.documentElement &&
+ !f.closest('.navbar-nav').length &&
+ a('').insertAfter(a(this)).on('click', b);
+ const h = { relatedTarget: this };
+ if ((f.trigger((d = a.Event('show.bs.dropdown', h))), d.isDefaultPrevented())) return;
+ f.toggleClass('open').trigger('shown.bs.dropdown', h), e.focus();
+ }
+ return !1;
+ }
+ }),
+ (f.prototype.keydown = function (b) {
+ if (/(38|40|27)/.test(b.keyCode)) {
+ const d = a(this);
+ if ((b.preventDefault(), b.stopPropagation(), !d.is('.disabled, :disabled'))) {
+ const f = c(d);
+ const g = f.hasClass('open');
+ if (!g || (g && b.keyCode == 27)) return b.which == 27 && f.find(e).focus(), d.click();
+ const h = ' li:not(.divider):visible a';
+ const i = f.find(`[role=menu]${h}, [role=listbox]${h}`);
+ if (i.length) {
+ let j = i.index(i.filter(':focus'));
+ b.keyCode == 38 && j > 0 && j--,
+ b.keyCode == 40 && j < i.length - 1 && j++,
+ ~j || (j = 0),
+ i.eq(j).focus();
+ }
+ }
+ }
+ });
+ const g = a.fn.dropdown;
+ (a.fn.dropdown = function (b) {
+ return this.each(function () {
+ const c = a(this);
+ let d = c.data('bs.dropdown');
+ d || c.data('bs.dropdown', (d = new f(this))), typeof b === 'string' && d[b].call(c);
+ });
+ }),
+ (a.fn.dropdown.Constructor = f),
+ (a.fn.dropdown.noConflict = function () {
+ return (a.fn.dropdown = g), this;
+ }),
+ a(document)
+ .on('click.bs.dropdown.data-api', b)
+ .on('click.bs.dropdown.data-api', '.dropdown form', (a) => {
+ a.stopPropagation();
+ })
+ .on('click.bs.dropdown.data-api', e, f.prototype.toggle)
+ .on(
+ 'keydown.bs.dropdown.data-api',
+ `${e}, [role=menu], [role=listbox]`,
+ f.prototype.keydown,
+ );
+ })(jQuery),
+ +(function (a) {
+ const b = function (b, c) {
+ (this.options = c),
+ (this.$element = a(b)),
+ (this.$backdrop = this.isShown = null),
+ this.options.remote &&
+ this.$element.find('.modal-content').load(
+ this.options.remote,
+ a.proxy(function () {
+ this.$element.trigger('loaded.bs.modal');
+ }, this),
+ );
+ };
+ (b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }),
+ (b.prototype.toggle = function (a) {
+ return this[this.isShown ? 'hide' : 'show'](a);
+ }),
+ (b.prototype.show = function (b) {
+ const c = this;
+ const d = a.Event('show.bs.modal', { relatedTarget: b });
+ this.$element.trigger(d),
+ this.isShown ||
+ d.isDefaultPrevented() ||
+ ((this.isShown = !0),
+ this.escape(),
+ this.$element.on(
+ 'click.dismiss.bs.modal',
+ '[data-dismiss="modal"]',
+ a.proxy(this.hide, this),
+ ),
+ this.backdrop(() => {
+ const d = a.support.transition && c.$element.hasClass('fade');
+ c.$element.parent().length || c.$element.appendTo(document.body),
+ c.$element.show().scrollTop(0),
+ d && c.$element[0].offsetWidth,
+ c.$element.addClass('in').attr('aria-hidden', !1),
+ c.enforceFocus();
+ const e = a.Event('shown.bs.modal', { relatedTarget: b });
+ d
+ ? c.$element
+ .find('.modal-dialog')
+ .one(a.support.transition.end, () => {
+ c.$element.focus().trigger(e);
+ })
+ .emulateTransitionEnd(300)
+ : c.$element.focus().trigger(e);
+ }));
+ }),
+ (b.prototype.hide = function (b) {
+ b && b.preventDefault(),
+ (b = a.Event('hide.bs.modal')),
+ this.$element.trigger(b),
+ this.isShown &&
+ !b.isDefaultPrevented() &&
+ ((this.isShown = !1),
+ this.escape(),
+ a(document).off('focusin.bs.modal'),
+ this.$element.removeClass('in').attr('aria-hidden', !0).off('click.dismiss.bs.modal'),
+ a.support.transition && this.$element.hasClass('fade')
+ ? this.$element
+ .one(a.support.transition.end, a.proxy(this.hideModal, this))
+ .emulateTransitionEnd(300)
+ : this.hideModal());
+ }),
+ (b.prototype.enforceFocus = function () {
+ a(document)
+ .off('focusin.bs.modal')
+ .on(
+ 'focusin.bs.modal',
+ a.proxy(function (a) {
+ this.$element[0] === a.target ||
+ this.$element.has(a.target).length ||
+ this.$element.focus();
+ }, this),
+ );
+ }),
+ (b.prototype.escape = function () {
+ this.isShown && this.options.keyboard
+ ? this.$element.on(
+ 'keyup.dismiss.bs.modal',
+ a.proxy(function (a) {
+ a.which == 27 && this.hide();
+ }, this),
+ )
+ : this.isShown || this.$element.off('keyup.dismiss.bs.modal');
+ }),
+ (b.prototype.hideModal = function () {
+ const a = this;
+ this.$element.hide(),
+ this.backdrop(() => {
+ a.removeBackdrop(), a.$element.trigger('hidden.bs.modal');
+ });
+ }),
+ (b.prototype.removeBackdrop = function () {
+ this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null);
+ }),
+ (b.prototype.backdrop = function (b) {
+ const c = this.$element.hasClass('fade') ? 'fade' : '';
+ if (this.isShown && this.options.backdrop) {
+ const d = a.support.transition && c;
+ if (
+ ((this.$backdrop = a(``).appendTo(document.body)),
+ this.$element.on(
+ 'click.dismiss.bs.modal',
+ a.proxy(function (a) {
+ a.target === a.currentTarget &&
+ (this.options.backdrop == 'static'
+ ? this.$element[0].focus.call(this.$element[0])
+ : this.hide.call(this));
+ }, this),
+ ),
+ d && this.$backdrop[0].offsetWidth,
+ this.$backdrop.addClass('in'),
+ !b)
+ )
+ return;
+ d ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b();
+ } else
+ !this.isShown && this.$backdrop
+ ? (this.$backdrop.removeClass('in'),
+ a.support.transition && this.$element.hasClass('fade')
+ ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150)
+ : b())
+ : b && b();
+ });
+ const c = a.fn.modal;
+ (a.fn.modal = function (c, d) {
+ return this.each(function () {
+ const e = a(this);
+ let f = e.data('bs.modal');
+ const g = a.extend({}, b.DEFAULTS, e.data(), typeof c === 'object' && c);
+ f || e.data('bs.modal', (f = new b(this, g))),
+ typeof c === 'string' ? f[c](d) : g.show && f.show(d);
+ });
+ }),
+ (a.fn.modal.Constructor = b),
+ (a.fn.modal.noConflict = function () {
+ return (a.fn.modal = c), this;
+ }),
+ a(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (b) {
+ const c = a(this);
+ const d = c.attr('href');
+ const e = a(c.attr('data-target') || (d && d.replace(/.*(?=#[^\s]+$)/, '')));
+ const f = e.data('bs.modal')
+ ? 'toggle'
+ : a.extend({ remote: !/#/.test(d) && d }, e.data(), c.data());
+ c.is('a') && b.preventDefault(),
+ e.modal(f, this).one('hide', () => {
+ c.is(':visible') && c.focus();
+ });
+ }),
+ a(document)
+ .on('show.bs.modal', '.modal', () => {
+ a(document.body).addClass('modal-open');
+ })
+ .on('hidden.bs.modal', '.modal', () => {
+ a(document.body).removeClass('modal-open');
+ });
+ })(jQuery),
+ +(function (a) {
+ const b = function (a, b) {
+ (this.type =
+ this.options =
+ this.enabled =
+ this.timeout =
+ this.hoverState =
+ this.$element =
+ null),
+ this.init('tooltip', a, b);
+ };
+ (b.DEFAULTS = {
+ animation: !0,
+ placement: 'top',
+ selector: !1,
+ template:
+ '',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: !1,
+ container: !1,
+ }),
+ (b.prototype.init = function (b, c, d) {
+ (this.enabled = !0),
+ (this.type = b),
+ (this.$element = a(c)),
+ (this.options = this.getOptions(d));
+ for (let e = this.options.trigger.split(' '), f = e.length; f--; ) {
+ const g = e[f];
+ if (g == 'click')
+ this.$element.on(
+ `click.${this.type}`,
+ this.options.selector,
+ a.proxy(this.toggle, this),
+ );
+ else if (g != 'manual') {
+ const h = g == 'hover' ? 'mouseenter' : 'focusin';
+ const i = g == 'hover' ? 'mouseleave' : 'focusout';
+ this.$element.on(`${h}.${this.type}`, this.options.selector, a.proxy(this.enter, this)),
+ this.$element.on(
+ `${i}.${this.type}`,
+ this.options.selector,
+ a.proxy(this.leave, this),
+ );
+ }
+ }
+ this.options.selector
+ ? (this._options = a.extend({}, this.options, { trigger: 'manual', selector: '' }))
+ : this.fixTitle();
+ }),
+ (b.prototype.getDefaults = function () {
+ return b.DEFAULTS;
+ }),
+ (b.prototype.getOptions = function (b) {
+ return (
+ (b = a.extend({}, this.getDefaults(), this.$element.data(), b)),
+ b.delay && typeof b.delay === 'number' && (b.delay = { show: b.delay, hide: b.delay }),
+ b
+ );
+ }),
+ (b.prototype.getDelegateOptions = function () {
+ const b = {};
+ const c = this.getDefaults();
+ return (
+ this._options &&
+ a.each(this._options, (a, d) => {
+ c[a] != d && (b[a] = d);
+ }),
+ b
+ );
+ }),
+ (b.prototype.enter = function (b) {
+ const c =
+ b instanceof this.constructor
+ ? b
+ : a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
+ return (
+ clearTimeout(c.timeout),
+ (c.hoverState = 'in'),
+ c.options.delay && c.options.delay.show
+ ? void (c.timeout = setTimeout(() => {
+ c.hoverState == 'in' && c.show();
+ }, c.options.delay.show))
+ : c.show()
+ );
+ }),
+ (b.prototype.leave = function (b) {
+ const c =
+ b instanceof this.constructor
+ ? b
+ : a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
+ return (
+ clearTimeout(c.timeout),
+ (c.hoverState = 'out'),
+ c.options.delay && c.options.delay.hide
+ ? void (c.timeout = setTimeout(() => {
+ c.hoverState == 'out' && c.hide();
+ }, c.options.delay.hide))
+ : c.hide()
+ );
+ }),
+ (b.prototype.show = function () {
+ const b = a.Event(`show.bs.${this.type}`);
+ if (this.hasContent() && this.enabled) {
+ if ((this.$element.trigger(b), b.isDefaultPrevented())) return;
+ const c = this;
+ const d = this.tip();
+ this.setContent(), this.options.animation && d.addClass('fade');
+ let e =
+ typeof this.options.placement === 'function'
+ ? this.options.placement.call(this, d[0], this.$element[0])
+ : this.options.placement;
+ const f = /\s?auto?\s?/i;
+ const g = f.test(e);
+ g && (e = e.replace(f, '') || 'top'),
+ d.detach().css({ top: 0, left: 0, display: 'block' }).addClass(e),
+ this.options.container
+ ? d.appendTo(this.options.container)
+ : d.insertAfter(this.$element);
+ const h = this.getPosition();
+ const i = d[0].offsetWidth;
+ const j = d[0].offsetHeight;
+ if (g) {
+ const k = this.$element.parent();
+ const l = e;
+ const m = document.documentElement.scrollTop || document.body.scrollTop;
+ const n = this.options.container == 'body' ? window.innerWidth : k.outerWidth();
+ const o = this.options.container == 'body' ? window.innerHeight : k.outerHeight();
+ const p = this.options.container == 'body' ? 0 : k.offset().left;
+ (e =
+ e == 'bottom' && h.top + h.height + j - m > o
+ ? 'top'
+ : e == 'top' && h.top - m - j < 0
+ ? 'bottom'
+ : e == 'right' && h.right + i > n
+ ? 'left'
+ : e == 'left' && h.left - i < p
+ ? 'right'
+ : e),
+ d.removeClass(l).addClass(e);
+ }
+ const q = this.getCalculatedOffset(e, h, i, j);
+ this.applyPlacement(q, e), (this.hoverState = null);
+ const r = function () {
+ c.$element.trigger(`shown.bs.${c.type}`);
+ };
+ a.support.transition && this.$tip.hasClass('fade')
+ ? d.one(a.support.transition.end, r).emulateTransitionEnd(150)
+ : r();
+ }
+ }),
+ (b.prototype.applyPlacement = function (b, c) {
+ let d;
+ const e = this.tip();
+ const f = e[0].offsetWidth;
+ const g = e[0].offsetHeight;
+ let h = parseInt(e.css('margin-top'), 10);
+ let i = parseInt(e.css('margin-left'), 10);
+ isNaN(h) && (h = 0),
+ isNaN(i) && (i = 0),
+ (b.top += h),
+ (b.left += i),
+ a.offset.setOffset(
+ e[0],
+ a.extend(
+ {
+ using(a) {
+ e.css({ top: Math.round(a.top), left: Math.round(a.left) });
+ },
+ },
+ b,
+ ),
+ 0,
+ ),
+ e.addClass('in');
+ let j = e[0].offsetWidth;
+ let k = e[0].offsetHeight;
+ if ((c == 'top' && k != g && ((d = !0), (b.top = b.top + g - k)), /bottom|top/.test(c))) {
+ let l = 0;
+ b.left < 0 &&
+ ((l = -2 * b.left),
+ (b.left = 0),
+ e.offset(b),
+ (j = e[0].offsetWidth),
+ (k = e[0].offsetHeight)),
+ this.replaceArrow(l - f + j, j, 'left');
+ } else this.replaceArrow(k - g, k, 'top');
+ d && e.offset(b);
+ }),
+ (b.prototype.replaceArrow = function (a, b, c) {
+ this.arrow().css(c, a ? `${50 * (1 - a / b)}%` : '');
+ }),
+ (b.prototype.setContent = function () {
+ const a = this.tip();
+ const b = this.getTitle();
+ a.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](b),
+ a.removeClass('fade in top bottom left right');
+ }),
+ (b.prototype.hide = function () {
+ function b() {
+ c.hoverState != 'in' && d.detach(), c.$element.trigger(`hidden.bs.${c.type}`);
+ }
+ var c = this;
+ var d = this.tip();
+ const e = a.Event(`hide.bs.${this.type}`);
+ return (
+ this.$element.trigger(e),
+ e.isDefaultPrevented()
+ ? void 0
+ : (d.removeClass('in'),
+ a.support.transition && this.$tip.hasClass('fade')
+ ? d.one(a.support.transition.end, b).emulateTransitionEnd(150)
+ : b(),
+ (this.hoverState = null),
+ this)
+ );
+ }),
+ (b.prototype.fixTitle = function () {
+ const a = this.$element;
+ (a.attr('title') || typeof a.attr('data-original-title') !== 'string') &&
+ a.attr('data-original-title', a.attr('title') || '').attr('title', '');
+ }),
+ (b.prototype.hasContent = function () {
+ return this.getTitle();
+ }),
+ (b.prototype.getPosition = function () {
+ const b = this.$element[0];
+ return a.extend(
+ {},
+ typeof b.getBoundingClientRect === 'function'
+ ? b.getBoundingClientRect()
+ : { width: b.offsetWidth, height: b.offsetHeight },
+ this.$element.offset(),
+ );
+ }),
+ (b.prototype.getCalculatedOffset = function (a, b, c, d) {
+ return a == 'bottom'
+ ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 }
+ : a == 'top'
+ ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 }
+ : a == 'left'
+ ? { top: b.top + b.height / 2 - d / 2, left: b.left - c }
+ : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width };
+ }),
+ (b.prototype.getTitle = function () {
+ let a;
+ const b = this.$element;
+ const c = this.options;
+ return (a =
+ b.attr('data-original-title') ||
+ (typeof c.title === 'function' ? c.title.call(b[0]) : c.title));
+ }),
+ (b.prototype.tip = function () {
+ return (this.$tip = this.$tip || a(this.options.template));
+ }),
+ (b.prototype.arrow = function () {
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'));
+ }),
+ (b.prototype.validate = function () {
+ this.$element[0].parentNode || (this.hide(), (this.$element = null), (this.options = null));
+ }),
+ (b.prototype.enable = function () {
+ this.enabled = !0;
+ }),
+ (b.prototype.disable = function () {
+ this.enabled = !1;
+ }),
+ (b.prototype.toggleEnabled = function () {
+ this.enabled = !this.enabled;
+ }),
+ (b.prototype.toggle = function (b) {
+ const c = b
+ ? a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`)
+ : this;
+ c.tip().hasClass('in') ? c.leave(c) : c.enter(c);
+ }),
+ (b.prototype.destroy = function () {
+ clearTimeout(this.timeout),
+ this.hide().$element.off(`.${this.type}`).removeData(`bs.${this.type}`);
+ });
+ const c = a.fn.tooltip;
+ (a.fn.tooltip = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.tooltip');
+ const f = typeof c === 'object' && c;
+ (e || c != 'destroy') &&
+ (e || d.data('bs.tooltip', (e = new b(this, f))), typeof c === 'string' && e[c]());
+ });
+ }),
+ (a.fn.tooltip.Constructor = b),
+ (a.fn.tooltip.noConflict = function () {
+ return (a.fn.tooltip = c), this;
+ });
+ })(jQuery),
+ +(function (a) {
+ const b = function (a, b) {
+ this.init('popover', a, b);
+ };
+ if (!a.fn.tooltip) throw new Error('Popover requires tooltip.js');
+ (b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template:
+ '',
+ })),
+ (b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)),
+ (b.prototype.constructor = b),
+ (b.prototype.getDefaults = function () {
+ return b.DEFAULTS;
+ }),
+ (b.prototype.setContent = function () {
+ const a = this.tip();
+ const b = this.getTitle();
+ const c = this.getContent();
+ a.find('.popover-title')[this.options.html ? 'html' : 'text'](b),
+ a
+ .find('.popover-content')
+ [this.options.html ? (typeof c === 'string' ? 'html' : 'append') : 'text'](c),
+ a.removeClass('fade top bottom left right in'),
+ a.find('.popover-title').html() || a.find('.popover-title').hide();
+ }),
+ (b.prototype.hasContent = function () {
+ return this.getTitle() || this.getContent();
+ }),
+ (b.prototype.getContent = function () {
+ const a = this.$element;
+ const b = this.options;
+ return (
+ a.attr('data-content') ||
+ (typeof b.content === 'function' ? b.content.call(a[0]) : b.content)
+ );
+ }),
+ (b.prototype.arrow = function () {
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'));
+ }),
+ (b.prototype.tip = function () {
+ return this.$tip || (this.$tip = a(this.options.template)), this.$tip;
+ });
+ const c = a.fn.popover;
+ (a.fn.popover = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.popover');
+ const f = typeof c === 'object' && c;
+ (e || c != 'destroy') &&
+ (e || d.data('bs.popover', (e = new b(this, f))), typeof c === 'string' && e[c]());
+ });
+ }),
+ (a.fn.popover.Constructor = b),
+ (a.fn.popover.noConflict = function () {
+ return (a.fn.popover = c), this;
+ });
+ })(jQuery),
+ +(function (a) {
+ function b(c, d) {
+ let e;
+ const f = a.proxy(this.process, this);
+ (this.$element = a(a(c).is('body') ? window : c)),
+ (this.$body = a('body')),
+ (this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', f)),
+ (this.options = a.extend({}, b.DEFAULTS, d)),
+ (this.selector = `${
+ this.options.target || ((e = a(c).attr('href')) && e.replace(/.*(?=#[^\s]+$)/, '')) || ''
+ } .nav li > a`),
+ (this.offsets = a([])),
+ (this.targets = a([])),
+ (this.activeTarget = null),
+ this.refresh(),
+ this.process();
+ }
+ (b.DEFAULTS = { offset: 10 }),
+ (b.prototype.refresh = function () {
+ const b = this.$element[0] == window ? 'offset' : 'position';
+ (this.offsets = a([])), (this.targets = a([]));
+ {
+ const c = this;
+ this.$body
+ .find(this.selector)
+ .map(function () {
+ const d = a(this);
+ const e = d.data('target') || d.attr('href');
+ const f = /^#./.test(e) && a(e);
+ return (
+ (f &&
+ f.length &&
+ f.is(':visible') && [
+ [
+ f[b]().top +
+ (!a.isWindow(c.$scrollElement.get(0)) && c.$scrollElement.scrollTop()),
+ e,
+ ],
+ ]) ||
+ null
+ );
+ })
+ .sort((a, b) => a[0] - b[0])
+ .each(function () {
+ c.offsets.push(this[0]), c.targets.push(this[1]);
+ });
+ }
+ }),
+ (b.prototype.process = function () {
+ let a;
+ const b = this.$scrollElement.scrollTop() + this.options.offset;
+ const c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight;
+ const d = c - this.$scrollElement.height();
+ const e = this.offsets;
+ const f = this.targets;
+ const g = this.activeTarget;
+ if (b >= d) return g != (a = f.last()[0]) && this.activate(a);
+ if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a);
+ for (a = e.length; a--; )
+ g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a]);
+ }),
+ (b.prototype.activate = function (b) {
+ (this.activeTarget = b),
+ a(this.selector).parentsUntil(this.options.target, '.active').removeClass('active');
+ const c = `${this.selector}[data-target="${b}"],${this.selector}[href="${b}"]`;
+ let d = a(c).parents('li').addClass('active');
+ d.parent('.dropdown-menu').length && (d = d.closest('li.dropdown').addClass('active')),
+ d.trigger('activate.bs.scrollspy');
+ });
+ const c = a.fn.scrollspy;
+ (a.fn.scrollspy = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.scrollspy');
+ const f = typeof c === 'object' && c;
+ e || d.data('bs.scrollspy', (e = new b(this, f))), typeof c === 'string' && e[c]();
+ });
+ }),
+ (a.fn.scrollspy.Constructor = b),
+ (a.fn.scrollspy.noConflict = function () {
+ return (a.fn.scrollspy = c), this;
+ }),
+ a(window).on('load', () => {
+ a('[data-spy="scroll"]').each(function () {
+ const b = a(this);
+ b.scrollspy(b.data());
+ });
+ });
+ })(jQuery),
+ +(function (a) {
+ const b = function (b) {
+ this.element = a(b);
+ };
+ (b.prototype.show = function () {
+ const b = this.element;
+ const c = b.closest('ul:not(.dropdown-menu)');
+ let d = b.data('target');
+ if (
+ (d || ((d = b.attr('href')), (d = d && d.replace(/.*(?=#[^\s]*$)/, ''))),
+ !b.parent('li').hasClass('active'))
+ ) {
+ const e = c.find('.active:last a')[0];
+ const f = a.Event('show.bs.tab', { relatedTarget: e });
+ if ((b.trigger(f), !f.isDefaultPrevented())) {
+ const g = a(d);
+ this.activate(b.parent('li'), c),
+ this.activate(g, g.parent(), () => {
+ b.trigger({ type: 'shown.bs.tab', relatedTarget: e });
+ });
+ }
+ }
+ }),
+ (b.prototype.activate = function (b, c, d) {
+ function e() {
+ f.removeClass('active').find('> .dropdown-menu > .active').removeClass('active'),
+ b.addClass('active'),
+ g ? (b[0].offsetWidth, b.addClass('in')) : b.removeClass('fade'),
+ b.parent('.dropdown-menu') && b.closest('li.dropdown').addClass('active'),
+ d && d();
+ }
+ var f = c.find('> .active');
+ var g = d && a.support.transition && f.hasClass('fade');
+ g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(), f.removeClass('in');
+ });
+ const c = a.fn.tab;
+ (a.fn.tab = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.tab');
+ e || d.data('bs.tab', (e = new b(this))), typeof c === 'string' && e[c]();
+ });
+ }),
+ (a.fn.tab.Constructor = b),
+ (a.fn.tab.noConflict = function () {
+ return (a.fn.tab = c), this;
+ }),
+ a(document).on(
+ 'click.bs.tab.data-api',
+ '[data-toggle="tab"], [data-toggle="pill"]',
+ function (b) {
+ b.preventDefault(), a(this).tab('show');
+ },
+ );
+ })(jQuery),
+ +(function (a) {
+ var b = function (c, d) {
+ (this.options = a.extend({}, b.DEFAULTS, d)),
+ (this.$window = a(window)
+ .on('scroll.bs.affix.data-api', a.proxy(this.checkPosition, this))
+ .on('click.bs.affix.data-api', a.proxy(this.checkPositionWithEventLoop, this))),
+ (this.$element = a(c)),
+ (this.affixed = this.unpin = this.pinnedOffset = null),
+ this.checkPosition();
+ };
+ (b.RESET = 'affix affix-top affix-bottom'),
+ (b.DEFAULTS = { offset: 0 }),
+ (b.prototype.getPinnedOffset = function () {
+ if (this.pinnedOffset) return this.pinnedOffset;
+ this.$element.removeClass(b.RESET).addClass('affix');
+ const a = this.$window.scrollTop();
+ const c = this.$element.offset();
+ return (this.pinnedOffset = c.top - a);
+ }),
+ (b.prototype.checkPositionWithEventLoop = function () {
+ setTimeout(a.proxy(this.checkPosition, this), 1);
+ }),
+ (b.prototype.checkPosition = function () {
+ if (this.$element.is(':visible')) {
+ const c = a(document).height();
+ const d = this.$window.scrollTop();
+ const e = this.$element.offset();
+ const f = this.options.offset;
+ let g = f.top;
+ let h = f.bottom;
+ this.affixed == 'top' && (e.top += d),
+ typeof f !== 'object' && (h = g = f),
+ typeof g === 'function' && (g = f.top(this.$element)),
+ typeof h === 'function' && (h = f.bottom(this.$element));
+ const i =
+ this.unpin != null && d + this.unpin <= e.top
+ ? !1
+ : h != null && e.top + this.$element.height() >= c - h
+ ? 'bottom'
+ : g != null && g >= d
+ ? 'top'
+ : !1;
+ if (this.affixed !== i) {
+ this.unpin && this.$element.css('top', '');
+ const j = `affix${i ? `-${i}` : ''}`;
+ const k = a.Event(`${j}.bs.affix`);
+ this.$element.trigger(k),
+ k.isDefaultPrevented() ||
+ ((this.affixed = i),
+ (this.unpin = i == 'bottom' ? this.getPinnedOffset() : null),
+ this.$element
+ .removeClass(b.RESET)
+ .addClass(j)
+ .trigger(a.Event(j.replace('affix', 'affixed'))),
+ i == 'bottom' && this.$element.offset({ top: c - h - this.$element.height() }));
+ }
+ }
+ });
+ const c = a.fn.affix;
+ (a.fn.affix = function (c) {
+ return this.each(function () {
+ const d = a(this);
+ let e = d.data('bs.affix');
+ const f = typeof c === 'object' && c;
+ e || d.data('bs.affix', (e = new b(this, f))), typeof c === 'string' && e[c]();
+ });
+ }),
+ (a.fn.affix.Constructor = b),
+ (a.fn.affix.noConflict = function () {
+ return (a.fn.affix = c), this;
+ }),
+ a(window).on('load', () => {
+ a('[data-spy="affix"]').each(function () {
+ const b = a(this);
+ const c = b.data();
+ (c.offset = c.offset || {}),
+ c.offsetBottom && (c.offset.bottom = c.offsetBottom),
+ c.offsetTop && (c.offset.top = c.offsetTop),
+ b.affix(c);
+ });
+ });
+ })(jQuery);
diff --git a/libraries/jquery.hotkeys.js b/libraries/jquery.hotkeys.js
index 5a174313..49567f5f 100644
--- a/libraries/jquery.hotkeys.js
+++ b/libraries/jquery.hotkeys.js
@@ -8,105 +8,186 @@
*
* Original idea by:
* Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
-*/
+ */
/*
* One small change is: now keys are passed by object { keys: '...' }
* Might be useful, when you want to pass some other data to your handler
*/
-function initHotKeyPluggin(jQuery){
-
- jQuery.hotkeys = {
- version: "0.8",
+function initHotKeyPluggin(jQuery) {
+ jQuery.hotkeys = {
+ version: '0.8',
- specialKeys: {
- 8: "backspace", 9: "tab", 10: "return", 13: "enter", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
- 20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
- 37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del",
- 96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
- 104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/",
- 112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8",
- 120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll", 186: ";", 191: "/",
- 220: "\\", 222: "'", 224: "meta"
- },
-
- shiftNums: {
- "`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&",
- "8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<",
- ".": ">", "/": "?", "\\": "|"
- }
- };
+ specialKeys: {
+ 8: 'backspace',
+ 9: 'tab',
+ 10: 'return',
+ 13: 'enter',
+ 16: 'shift',
+ 17: 'ctrl',
+ 18: 'alt',
+ 19: 'pause',
+ 20: 'capslock',
+ 27: 'esc',
+ 32: 'space',
+ 33: 'pageup',
+ 34: 'pagedown',
+ 35: 'end',
+ 36: 'home',
+ 37: 'left',
+ 38: 'up',
+ 39: 'right',
+ 40: 'down',
+ 45: 'insert',
+ 46: 'del',
+ 96: '0',
+ 97: '1',
+ 98: '2',
+ 99: '3',
+ 100: '4',
+ 101: '5',
+ 102: '6',
+ 103: '7',
+ 104: '8',
+ 105: '9',
+ 106: '*',
+ 107: '+',
+ 109: '-',
+ 110: '.',
+ 111: '/',
+ 112: 'f1',
+ 113: 'f2',
+ 114: 'f3',
+ 115: 'f4',
+ 116: 'f5',
+ 117: 'f6',
+ 118: 'f7',
+ 119: 'f8',
+ 120: 'f9',
+ 121: 'f10',
+ 122: 'f11',
+ 123: 'f12',
+ 144: 'numlock',
+ 145: 'scroll',
+ 186: ';',
+ 191: '/',
+ 220: '\\',
+ 222: "'",
+ 224: 'meta',
+ },
- function keyHandler( handleObj ) {
- if ( typeof handleObj.data === "string" ) {
- handleObj.data = { keys: handleObj.data };
- }
+ shiftNums: {
+ '`': '~',
+ 1: '!',
+ 2: '@',
+ 3: '#',
+ 4: '$',
+ 5: '%',
+ 6: '^',
+ 7: '&',
+ 8: '*',
+ 9: '(',
+ 0: ')',
+ '-': '_',
+ '=': '+',
+ ';': ': ',
+ "'": '"',
+ ',': '<',
+ '.': '>',
+ '/': '?',
+ '\\': '|',
+ },
+ };
- // Only care when a possible input has been specified
- if ( !handleObj.data || !handleObj.data.keys || typeof handleObj.data.keys !== "string" ) {
- return;
- }
+ function keyHandler(handleObj) {
+ if (typeof handleObj.data === 'string') {
+ handleObj.data = { keys: handleObj.data };
+ }
- var origHandler = handleObj.handler,
- keys = handleObj.data.keys.toLowerCase().split(" "),
- textAcceptingInputTypes = ["text", "password", "number", "email", "url", "range", "date", "month", "week", "time", "datetime", "datetime-local", "search", "color", "tel"];
-
- handleObj.handler = function( event ) {
- // Don't fire in text-accepting inputs that we didn't directly bind to
- if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
- jQuery.inArray(event.target.type, textAcceptingInputTypes) > -1 ) ) {
- return;
- }
+ // Only care when a possible input has been specified
+ if (!handleObj.data || !handleObj.data.keys || typeof handleObj.data.keys !== 'string') {
+ return;
+ }
- var special = jQuery.hotkeys.specialKeys[ event.keyCode ],
- character = String.fromCharCode( event.which ).toLowerCase(),
- modif = "", possible = {};
+ var origHandler = handleObj.handler,
+ keys = handleObj.data.keys.toLowerCase().split(' '),
+ textAcceptingInputTypes = [
+ 'text',
+ 'password',
+ 'number',
+ 'email',
+ 'url',
+ 'range',
+ 'date',
+ 'month',
+ 'week',
+ 'time',
+ 'datetime',
+ 'datetime-local',
+ 'search',
+ 'color',
+ 'tel',
+ ];
- // check combinations (alt|ctrl|shift+anything)
- if ( event.altKey && special !== "alt" ) {
- modif += "alt+";
- }
+ handleObj.handler = function (event) {
+ // Don't fire in text-accepting inputs that we didn't directly bind to
+ if (
+ this !== event.target &&
+ (/textarea|select/i.test(event.target.nodeName) ||
+ jQuery.inArray(event.target.type, textAcceptingInputTypes) > -1)
+ ) {
+ return;
+ }
- if ( event.ctrlKey && special !== "ctrl" ) {
- modif += "ctrl+";
- }
-
- // TODO: Need to make sure this works consistently across platforms
- if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
- modif += "meta+";
- }
+ var special = jQuery.hotkeys.specialKeys[event.keyCode],
+ character = String.fromCharCode(event.which).toLowerCase(),
+ modif = '',
+ possible = {};
- if ( event.shiftKey && special !== "shift" ) {
- modif += "shift+";
- }
+ // check combinations (alt|ctrl|shift+anything)
+ if (event.altKey && special !== 'alt') {
+ modif += 'alt+';
+ }
- if ( special ) {
- possible[ modif + special ] = true;
- }
+ if (event.ctrlKey && special !== 'ctrl') {
+ modif += 'ctrl+';
+ }
- if ( character ) {
- possible[ modif + character ] = true;
- possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;
+ // TODO: Need to make sure this works consistently across platforms
+ if (event.metaKey && !event.ctrlKey && special !== 'meta') {
+ modif += 'meta+';
+ }
- // "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
- if ( modif === "shift+" ) {
- possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
- }
- }
+ if (event.shiftKey && special !== 'shift') {
+ modif += 'shift+';
+ }
- for ( var i = 0, l = keys.length; i < l; i++ ) {
- if ( possible[ keys[i] ] ) {
- return origHandler.apply( this, arguments );
- }
- }
- };
- }
+ if (special) {
+ possible[modif + special] = true;
+ }
- jQuery.each([ "keydown", "keyup", "keypress" ], function() {
- jQuery.event.special[ this ] = { add: keyHandler };
- });
+ if (character) {
+ possible[modif + character] = true;
+ possible[modif + jQuery.hotkeys.shiftNums[character]] = true;
-};
+ // "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
+ if (modif === 'shift+') {
+ possible[jQuery.hotkeys.shiftNums[character]] = true;
+ }
+ }
-export default initHotKeyPluggin;
\ No newline at end of file
+ for (var i = 0, l = keys.length; i < l; i++) {
+ if (possible[keys[i]]) {
+ return origHandler.apply(this, arguments);
+ }
+ }
+ };
+ }
+
+ jQuery.each(['keydown', 'keyup', 'keypress'], function () {
+ jQuery.event.special[this] = { add: keyHandler };
+ });
+}
+
+export default initHotKeyPluggin;
diff --git a/libraries/jquery.touchevent.js b/libraries/jquery.touchevent.js
new file mode 100644
index 00000000..a6ec242d
--- /dev/null
+++ b/libraries/jquery.touchevent.js
@@ -0,0 +1,15 @@
+// Passive event listeners
+function registerTouchHandler(jQuery) {
+
+ jQuery.event.special.touchstart = {
+ setup: function (_, ns, handle) {
+ this.addEventListener("touchstart", handle, { passive: true });
+ }
+ };
+ jQuery.event.special.touchmove = {
+ setup: function (_, ns, handle) {
+ this.addEventListener("touchmove", handle, { passive: true });
+ }
+ };
+}
+export default registerTouchHandler;
\ No newline at end of file
diff --git a/package.json b/package.json
index 0a6cd91b..0c75a662 100644
--- a/package.json
+++ b/package.json
@@ -45,5 +45,20 @@
"homepage": "http://localhost:8080/react",
"license": "https://wisemapping.atlassian.net/wiki/spaces/WS/pages/524357/WiseMapping+Public+License+Version+1.0+WPL",
"version": "0.4.0",
- "dependencies": {}
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged",
+ "pre-push": "yarn lint && yarn test:unit"
+ }
+ },
+ "lint-staged": {
+ "**/*.{ts,tsx}": [
+ "prettier --write"
+ ]
+ },
+ "eslintConfig": {
+ "rules": {
+ "implicit-arrow-linebreak": "off"
+ }
+ }
}
diff --git a/packages/core-js/__tests__/core.test.js b/packages/core-js/__tests__/core.test.js
index 4f505c57..0b6cf80b 100644
--- a/packages/core-js/__tests__/core.test.js
+++ b/packages/core-js/__tests__/core.test.js
@@ -3,5 +3,5 @@
import coreJs from '..';
describe('core-js', () => {
- it('needs tests');
+ it('needs tests');
});
diff --git a/packages/core-js/package.json b/packages/core-js/package.json
index 8210331c..45af2a91 100644
--- a/packages/core-js/package.json
+++ b/packages/core-js/package.json
@@ -1,6 +1,6 @@
{
"name": "@wisemapping/core-js",
- "version": "0.4.0",
+ "version": "0.4.1",
"description": "WiseMapping - Core Common Libraries",
"homepage": "http://www.wisemapping.org/",
"license": "MIT",
@@ -21,14 +21,14 @@
},
"private": false,
"devDependencies": {
- "@babel/core": "^7.14.6",
+ "@babel/core": "^7.18.13",
"@babel/preset-env": "^7.14.7",
"babel-loader": "^8.2.2",
"clean-webpack-plugin": "^4.0.0-alpha.0",
"core-js": "^3.15.2",
- "webpack": "^5.44.0",
+ "webpack": "^5.74.0",
"webpack-cli": "^4.7.2",
"webpack-merge": "^5.8.0"
},
"dependencies": {}
-}
\ No newline at end of file
+}
diff --git a/packages/core-js/src/index.js b/packages/core-js/src/index.js
index 1cbb3ff5..b0db20c1 100644
--- a/packages/core-js/src/index.js
+++ b/packages/core-js/src/index.js
@@ -20,22 +20,22 @@
* Cross-browser implementation of creating an XML document object.
*/
export const createDocument = function () {
- var doc = null;
- if ($defined(window.ActiveXObject)) {
- //http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
- var progIDs = ['Msxml2.DOMDocument.6.0', 'Msxml2.DOMDocument.3.0'];
- for (var i = 0; i < progIDs.length; i++) {
- try {
- doc = new ActiveXObject(progIDs[i]);
- break;
- } catch (ex) {}
- }
- } else if (window.document.implementation && window.document.implementation.createDocument) {
- doc = window.document.implementation.createDocument('', '', null);
+ var doc = null;
+ if ($defined(window.ActiveXObject)) {
+ //http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
+ var progIDs = ['Msxml2.DOMDocument.6.0', 'Msxml2.DOMDocument.3.0'];
+ for (var i = 0; i < progIDs.length; i++) {
+ try {
+ doc = new ActiveXObject(progIDs[i]);
+ break;
+ } catch (ex) {}
}
- $assert(doc, 'Parser could not be instantiated');
+ } else if (window.document.implementation && window.document.implementation.createDocument) {
+ doc = window.document.implementation.createDocument('', '', null);
+ }
+ $assert(doc, 'Parser could not be instantiated');
- return doc;
+ return doc;
};
/*
@@ -47,47 +47,47 @@ export const createDocument = function () {
*/
export const $defined = function (obj) {
- return obj != undefined;
+ return obj != undefined;
};
export const $assert = function (assert, message) {
- if (!$defined(assert) || !assert) {
- logStackTrace();
- console.log(message);
- throw new Error(message);
- }
+ if (!$defined(assert) || !assert) {
+ logStackTrace();
+ console.log(message);
+ throw new Error(message);
+ }
};
export const sign = function (value) {
- return value >= 0 ? 1 : -1;
+ return value >= 0 ? 1 : -1;
};
export function logStackTrace(exception) {
- if (!$defined(exception)) {
- try {
- throw Error('Unexpected Exception');
- } catch (e) {
- exception = e;
- }
+ if (!$defined(exception)) {
+ try {
+ throw Error('Unexpected Exception');
+ } catch (e) {
+ exception = e;
}
- var result = '';
- if (exception.stack) {
- //Firefox and Chrome...
- result = exception.stack;
- } else if (window.opera && exception.message) {
- //Opera
- result = exception.message;
- } else {
- //IE and Safari
- result = exception.sourceURL + ': ' + exception.line + '\n\n';
+ }
+ var result = '';
+ if (exception.stack) {
+ //Firefox and Chrome...
+ result = exception.stack;
+ } else if (window.opera && exception.message) {
+ //Opera
+ result = exception.message;
+ } else {
+ //IE and Safari
+ result = exception.sourceURL + ': ' + exception.line + '\n\n';
- var currentFunction = arguments.callee.caller;
- while (currentFunction) {
- var fn = currentFunction.toString();
- result = result + '\n' + fn;
- currentFunction = currentFunction.caller;
- }
+ var currentFunction = arguments.callee.caller;
+ while (currentFunction) {
+ var fn = currentFunction.toString();
+ result = result + '\n' + fn;
+ currentFunction = currentFunction.caller;
}
- window.errorStack = result;
- return result;
+ }
+ window.errorStack = result;
+ return result;
}
diff --git a/packages/core-js/webpack.common.js b/packages/core-js/webpack.common.js
index d8837887..00626af1 100644
--- a/packages/core-js/webpack.common.js
+++ b/packages/core-js/webpack.common.js
@@ -2,34 +2,34 @@ const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
- output: {
- path: path.resolve(__dirname, 'dist'),
- filename: 'core.js',
- publicPath: '',
- library: {
- type: 'umd',
- }
+ output: {
+ path: path.resolve(__dirname, 'dist'),
+ filename: 'core.js',
+ publicPath: '',
+ library: {
+ type: 'umd',
},
- target: 'web',
- optimization: {
- usedExports: true,
- },
- module: {
- rules: [
- {
- use: 'babel-loader',
- test: /.js$/,
- exclude: [
- /node_modules/,
- ]
- },
- ],
- },
- resolve: {
- extensions: ['.js'],
- },
- plugins: [new CleanWebpackPlugin({
- dangerouslyAllowCleanPatternsOutsideProject: true,
- dry: false,
- })],
+ },
+ target: 'web',
+ optimization: {
+ usedExports: true,
+ },
+ module: {
+ rules: [
+ {
+ use: 'babel-loader',
+ test: /.js$/,
+ exclude: [/node_modules/],
+ },
+ ],
+ },
+ resolve: {
+ extensions: ['.js'],
+ },
+ plugins: [
+ new CleanWebpackPlugin({
+ dangerouslyAllowCleanPatternsOutsideProject: true,
+ dry: false,
+ }),
+ ],
};
diff --git a/packages/core-js/webpack.dev.js b/packages/core-js/webpack.dev.js
index 990418e1..d803f888 100644
--- a/packages/core-js/webpack.dev.js
+++ b/packages/core-js/webpack.dev.js
@@ -3,9 +3,9 @@ const { merge } = require('webpack-merge');
const common = require('./webpack.common');
const devConfig = {
- mode: 'development',
- plugins: [new HotModuleReplacementPlugin()],
- devtool: 'eval-source-map'
+ mode: 'development',
+ plugins: [new HotModuleReplacementPlugin()],
+ devtool: 'eval-source-map',
};
module.exports = merge(common, devConfig);
diff --git a/packages/core-js/webpack.prod.js b/packages/core-js/webpack.prod.js
index b9f51a89..5ea37bf1 100644
--- a/packages/core-js/webpack.prod.js
+++ b/packages/core-js/webpack.prod.js
@@ -2,13 +2,13 @@ const { merge } = require('webpack-merge');
const common = require('./webpack.common');
const prodConfig = {
- mode: 'production',
- devtool: 'source-map',
- optimization: {
- splitChunks: {
- chunks: 'all',
- },
+ mode: 'production',
+ devtool: 'source-map',
+ optimization: {
+ splitChunks: {
+ chunks: 'all',
},
+ },
};
module.exports = merge(common, prodConfig);
diff --git a/packages/editor/cypress.json b/packages/editor/cypress.json
index eb4dad54..48846f2a 100644
--- a/packages/editor/cypress.json
+++ b/packages/editor/cypress.json
@@ -1,6 +1,7 @@
{
"video": false,
"videoUploadOnPasses": false,
- "baseUrl": "http://localhost:8081"
+ "baseUrl": "http://localhost:8081",
+ "includeShadowDom": true
}
\ No newline at end of file
diff --git a/packages/editor/cypress/integration/playground.test.js b/packages/editor/cypress/integration/playground.test.js
index 34e19eb8..d8cd143b 100644
--- a/packages/editor/cypress/integration/playground.test.js
+++ b/packages/editor/cypress/integration/playground.test.js
@@ -1,21 +1,30 @@
context('Playground', () => {
it('viewmode page should match its snapshot', () => {
- ['welcome', 'sample1', 'sample2', 'sample3', 'sample4', 'sample5', 'sample6', 'complex', 'img-support', 'icon-sample'].forEach((mapId) => {
+ [
+ 'welcome',
+ 'sample1',
+ 'sample2',
+ 'sample3',
+ 'sample4',
+ 'sample5',
+ 'sample6',
+ 'complex',
+ 'img-support',
+ 'icon-sample',
+ ].forEach((mapId) => {
cy.visit(`/viewmode.html?id=${mapId}`);
- cy.get('#mindplot.ready').should('exist');
+ cy.get('#mindmap-comp.ready').should('exist');
cy.matchImageSnapshot(`viewmode-${mapId}`);
});
});
- it('the playground container.html page should match its snapshot', () => {
- cy.visit('/container.html');
- cy.getIframeBody()
- .find('#mindplot.ready')
- .should('exist');
+ it('the playground showcase.html page should match its snapshot', () => {
+ cy.visit('/showcase.html');
+ cy.getIframeBody().find('#mindmap-comp.ready').should('exist');
cy.matchImageSnapshot('container');
});
it('the playground editor.html page should match its snapshot', () => {
cy.visit('/editor.html');
- cy.get('#mindplot.ready').should('exist');
+ cy.get('#mindmap-comp.ready').should('exist');
// TODO: why is the editor appearing twice in the snapshot?
cy.matchImageSnapshot('editor');
});
diff --git a/packages/editor/cypress/integration/relationship.test.js b/packages/editor/cypress/integration/relationship.test.js
index fc567502..a0deb93c 100644
--- a/packages/editor/cypress/integration/relationship.test.js
+++ b/packages/editor/cypress/integration/relationship.test.js
@@ -1,16 +1,16 @@
context('Relationship Topics', () => {
- beforeEach(() => {
- cy.visit('/editor.html');
- cy.reload();
- cy.get('[test-id="30-11-relationship"]').click({ force: true });
- });
+ beforeEach(() => {
+ cy.visit('/editor.html');
+ cy.reload();
+ cy.get('[test-id="30-11-relationship"]').click({ force: true });
+ });
- it('Change shape relationship', () => {
- cy.get('[test-id="control-56"]').trigger('mousedown', { force: true });
- cy.get('body').trigger('mousemove', { clientX: 500, clientY: 200 });
- cy.get('body').trigger('mouseup');
- cy.matchImageSnapshot('changeShapeRealtionship');
+ it('Change shape relationship', () => {
+ cy.get('[test-id="control-56"]').trigger('mousedown', { force: true });
+ cy.get('body').trigger('mousemove', { clientX: 500, clientY: 200 });
+ cy.get('body').trigger('mouseup');
+ cy.matchImageSnapshot('changeShapeRealtionship');
- cy.get('[test-id="control-56"]').invoke('attr', 'cy').should('eq', '-131.75');
- });
+ cy.get('[test-id="control-56"]').invoke('attr', 'cy').should('eq', '-131.75');
+ });
});
diff --git a/packages/editor/cypress/support/commands.js b/packages/editor/cypress/support/commands.js
index 85cef3a6..01a233cb 100644
--- a/packages/editor/cypress/support/commands.js
+++ b/packages/editor/cypress/support/commands.js
@@ -18,7 +18,6 @@ if (Cypress.env('imageSnaphots')) {
}
// https://www.cypress.io/blog/2020/02/12/working-with-iframes-in-cypress/
-Cypress.Commands.add('getIframeBody', () => cy
- .get('iframe')
- .its('0.contentDocument.body').should('not.be.empty')
- .then(cy.wrap));
+Cypress.Commands.add('getIframeBody', () =>
+ cy.get('iframe').its('0.contentDocument.body').should('not.be.empty').then(cy.wrap),
+);
diff --git a/packages/editor/images/close-dialog-icon.svg b/packages/editor/images/close-dialog-icon.svg
new file mode 100644
index 00000000..3b57389c
--- /dev/null
+++ b/packages/editor/images/close-dialog-icon.svg
@@ -0,0 +1,43 @@
+
+
+
diff --git a/packages/editor/lang/de.json b/packages/editor/lang/de.json
index bf777ed4..928a15bf 100644
--- a/packages/editor/lang/de.json
+++ b/packages/editor/lang/de.json
@@ -4,6 +4,18 @@
},
"editor.try-welcome-description": {
"defaultMessage": "Melden Sie sich an, um kostenlos eine unbegrenzte Anzahl von Mindmaps zu erstellen, zu teilen und zu veröffentlichen."
+ },
+ "editor.try-welcome-mobile": {
+ "defaultMessage": "Diese Edition zeigt einige der Mindmap-Funktionen!"
+ },
+ "editor.try-welcome-description-mobile": {
+ "defaultMessage": "Melden Sie sich an, um kostenlos eine unbegrenzte Anzahl von Mindmaps zu erstellen, zu teilen und zu veröffentlichen. Eingeschränkte Funktionen der Mindmap-Edition werden auf Mobilgeräten unterstützt. Verwenden Sie den Desktop-Browser für vollständige Editorfunktionen."
+ },
+ "editor.edit-mobile": {
+ "defaultMessage": "Hinweis für Mobilgeräte."
+ },
+ "editor.edit-description-mobile": {
+ "defaultMessage": "Eingeschränkte Funktionen der Mindmap-Edition werden auf Mobilgeräten unterstützt. Verwenden Sie den Desktop-Browser für vollständige Editorfunktionen."
},
"login.signup": {
"defaultMessage": "Anmeldung"
diff --git a/packages/editor/lang/en.json b/packages/editor/lang/en.json
index c1eaa0bd..233007e1 100644
--- a/packages/editor/lang/en.json
+++ b/packages/editor/lang/en.json
@@ -1,9 +1,21 @@
{
"editor.try-welcome": {
- "defaultMessage": "This edition space showcases some of the mindmap editor capabilities !"
+ "defaultMessage": "This edition space showcases some of the mindmap editor capabilities!"
},
"editor.try-welcome-description": {
- "defaultMessage": "Sign Up to start creating, sharing and publishing unlimited number of mindmaps for free."
+ "defaultMessage": "Sign Up to start creating, sharing and publishing unlimited number of mindmaps for free."
+ },
+ "editor.try-welcome-mobile": {
+ "defaultMessage": "This edition space showcases some of the mindmap capabilities!"
+ },
+ "editor.try-welcome-description-mobile": {
+ "defaultMessage": "Sign Up to start creating, sharing and publishing unlimited number of mindmaps for free. Limited mindmap edition capabilties are supported in Mobile devices. Use Desktop browser for full editor capabilies."
+ },
+ "editor.edit-mobile": {
+ "defaultMessage": "Note for mobile devices."
+ },
+ "editor.edit-description-mobile": {
+ "defaultMessage": "Limited mindmap edition capabilities are supported in Mobile devices. Use Desktop browser for full editor capabilities."
},
"login.signup": {
"defaultMessage": "Sign Up"
diff --git a/packages/editor/lang/es.json b/packages/editor/lang/es.json
index df4a128a..0707cc4e 100644
--- a/packages/editor/lang/es.json
+++ b/packages/editor/lang/es.json
@@ -4,6 +4,18 @@
},
"editor.try-welcome-description": {
"defaultMessage": "Registrate para comenzar a crear, compartir y publicar una cantidad ilimitada de mapas mentales de forma gratuita."
+ },
+ "editor.try-welcome-mobile": {
+ "defaultMessage": "¡Este espacio de edición muestra algunas de las capacidades de mapas mentales!"
+ },
+ "editor.try-welcome-description-mobile": {
+ "defaultMessage": "Registrate para comenzar a crear, compartir y publicar una cantidad ilimitada de mapas mentales de forma gratuita. En dispositivos móbiles las funciones son limitadas. Use la versión de escritorio para tener las funciones completas."
+ },
+ "editor.edit-mobile": {
+ "defaultMessage": "Nota para dispositivos móbiles."
+ },
+ "editor.edit-description-mobile": {
+ "defaultMessage": "En dispositivos móbiles las funciones son limitadas. Use la versión de escritorio para tener las funciones completas."
},
"login.signup": {
"defaultMessage": "Crear cuenta"
diff --git a/packages/editor/lang/fr.json b/packages/editor/lang/fr.json
index ce7af6f5..4832052b 100644
--- a/packages/editor/lang/fr.json
+++ b/packages/editor/lang/fr.json
@@ -1,9 +1,21 @@
{
"editor.try-welcome": {
- "defaultMessage": "Cet espace d'édition présente certaines des fonctionnalités de l'éditeur de cartes mentales !"
+ "defaultMessage": "Cet espace d'édition présente certaines des fonctionnalités de l'éditeur de cartes mentales!"
},
"editor.try-welcome-description": {
"defaultMessage": "Inscrivez-vous pour commencer à créer, partager et publier gratuitement un nombre illimité de cartes mentales."
+ },
+ "editor.try-welcome-mobile": {
+ "defaultMessage": "Cet espace d'édition présente certaines des fonctionnalités des cartes mentales!"
+ },
+ "editor.try-welcome-description-mobile": {
+ "defaultMessage": "Inscrivez-vous pour commencer à créer, partager et publier gratuitement un nombre illimité de cartes mentales. Les capacités d'édition limitées de mindmap sont prises en charge dans les appareils mobiles. Utilisez le navigateur de bureau pour bénéficier de toutes les fonctionnalités de l'éditeur."
+ },
+ "editor.edit-mobile": {
+ "defaultMessage": "Remarque pour les appareils mobiles."
+ },
+ "editor.edit-description-mobile": {
+ "defaultMessage": "Les capacités d'édition limitées de mindmap sont prises en charge dans les appareils mobiles. Utilisez le navigateur de bureau pour bénéficier de toutes les fonctionnalités de l'éditeur."
},
"login.signup": {
"defaultMessage": "S'inscrire"
diff --git a/packages/editor/lang/ru.json b/packages/editor/lang/ru.json
index e954afb0..72e549b5 100644
--- a/packages/editor/lang/ru.json
+++ b/packages/editor/lang/ru.json
@@ -4,6 +4,18 @@
},
"editor.try-welcome-description": {
"defaultMessage": "Чтобы получить бесплатный неограниченный доступ — нужна только регистрация."
+ },
+ "editor.try-welcome-mobile": {
+ "defaultMessage": "В этом издании демонстрируются некоторые возможности ментальных карт!"
+ },
+ "editor.try-welcome-description-mobile": {
+ "defaultMessage": "Зарегистрируйтесь, чтобы начать создавать, делиться и публиковать неограниченное количество ментальных карт бесплатно. Возможности ограниченной версии Mindmap поддерживаются на мобильных устройствах. Используйте настольный браузер для полных возможностей редактора."
+ },
+ "editor.edit-mobile": {
+ "defaultMessage": "Примечание для мобильных устройств."
+ },
+ "editor.edit-description-mobile": {
+ "defaultMessage": "Возможности ограниченной версии Mindmap поддерживаются на мобильных устройствах. Используйте настольный браузер для полных возможностей редактора."
},
"login.signup": {
"defaultMessage": "Регистрация"
diff --git a/packages/editor/lang/zh.json b/packages/editor/lang/zh.json
index ecea81dc..cfc1a00f 100644
--- a/packages/editor/lang/zh.json
+++ b/packages/editor/lang/zh.json
@@ -1,14 +1,26 @@
{
- "editor.try-welcome": {
- "defaultMessage": "这个编辑区域展示了一些思维导图编辑器的功能!"
- },
- "editor.try-welcome-description": {
- "defaultMessage": "注册后可以免费创建、分享和发布无限数量的思维导图。"
- },
- "login.signup": {
- "defaultMessage": "注册"
- },
- "action.share": {
- "defaultMessage": "分享"
- }
+ "editor.try-welcome": {
+ "defaultMessage": "这个编辑区域展示了一些思维导图编辑器的功能!"
+ },
+ "editor.try-welcome-description": {
+ "defaultMessage": "注册后可以免费创建、分享和发布无限数量的思维导图。"
+ },
+ "editor.try-welcome-mobile": {
+ "defaultMessage": "这个版本空间展示了一些思维导图功能!"
+ },
+ "editor.try-welcome-description-mobile": {
+ "defaultMessage": "注册以开始免费创建、共享和发布无限数量的思维导图。 移动设备支持有限的思维导图编辑功能。 使用桌面浏览器获得完整的编辑器功能。"
+ },
+ "editor.edit-mobile": {
+ "defaultMessage": "移动设备注意事项."
+ },
+ "editor.edit-description-mobile": {
+ "defaultMessage": "移动设备支持有限的思维导图编辑功能。 使用桌面浏览器获得完整的编辑器功能。"
+ },
+ "login.signup": {
+ "defaultMessage": "注册"
+ },
+ "action.share": {
+ "defaultMessage": "分享"
+ }
}
\ No newline at end of file
diff --git a/packages/editor/package.json b/packages/editor/package.json
index d26d9a64..97094a94 100644
--- a/packages/editor/package.json
+++ b/packages/editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@wisemapping/editor",
- "version": "0.4.1",
+ "version": "0.4.2",
"main": "dist/editor.bundle.js",
"scripts": {
"build": "webpack --config webpack.prod.js",
@@ -16,11 +16,9 @@
"license": "MIT",
"private": false,
"devDependencies": {
- "@babel/preset-env": "^7.16.11",
- "@babel/preset-react": "^7.16.7",
+ "@babel/preset-env": "^7.18.6",
+ "@babel/preset-react": "^7.18.6",
"@formatjs/cli": "^4.8.1",
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
"@typescript-eslint/eslint-plugin": "^4.8.1",
"@typescript-eslint/parser": "^4.8.1",
"clean-webpack-plugin": "^4.0.0",
@@ -38,18 +36,18 @@
"ts-loader": "^8.0.11",
"ts-node": "^9.0.0",
"typescript": "^4.1.2",
- "webpack": "^5.67.0",
+ "webpack": "^5.74.0",
"webpack-dev-server": "^4.7.3",
"webpack-merge": "^5.8.0"
},
"dependencies": {
- "@types/styled-components": "^5.1.4",
- "@wisemapping/mindplot": "^5.0.1",
- "styled-components": "^5.2.1"
+ "@wisemapping/mindplot": "^5.0.1"
},
"peerDependencies": {
+ "@types/styled-components": "^5.1.26",
"react": "^17.0.2",
"react-dom": "^17.0.2",
- "react-intl": "^5.24.3"
+ "react-intl": "^5.24.3",
+ "styled-components": "^5.3.5"
}
-}
\ No newline at end of file
+}
diff --git a/packages/editor/src/@types/index.d.ts b/packages/editor/src/@types/index.d.ts
index 79579dba..091d25e2 100644
--- a/packages/editor/src/@types/index.d.ts
+++ b/packages/editor/src/@types/index.d.ts
@@ -1,4 +1,4 @@
-declare module "*.svg" {
+declare module '*.svg' {
const content: any;
export default content;
-}
\ No newline at end of file
+}
diff --git a/packages/editor/src/bootstrap-fixes.css b/packages/editor/src/bootstrap-fixes.css
index 9e1d5cdf..25cef6b4 100644
--- a/packages/editor/src/bootstrap-fixes.css
+++ b/packages/editor/src/bootstrap-fixes.css
@@ -1,20 +1,20 @@
/*
These are patches or hacks to avoid boostrap interfering with Mui styles
This file is meant to be removed when removing bootstrap
-*/
+*/
/*
/* bootstrap modal */
.wise-editor .modal {
- overflow: hidden;
+ overflow: hidden;
}
.modal-backdrop {
- position: fixed;
- left: 0;
- top: 0;
- width: 100vw;
- height: 100vh;
- background: rgba(0,0,0,0.5);
- z-index: 1000;
-}
\ No newline at end of file
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100vw;
+ height: 100vh;
+ background: rgba(0, 0, 0, 0.5);
+ z-index: 1000;
+}
diff --git a/packages/editor/src/bootstrap-prefix.min.css b/packages/editor/src/bootstrap-prefix.min.css
index cfd4ef9f..d8f89168 100644
--- a/packages/editor/src/bootstrap-prefix.min.css
+++ b/packages/editor/src/bootstrap-prefix.min.css
@@ -7,4 +7,6055 @@
Custom-generated to include .wise-editor as prefix for all rules so scoping to that section is possible
based on https://stackoverflow.com/a/20051649/58128
*/
-.wise-editor{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}.wise-editor{margin:0;}.wise-editor article,.wise-editor aside,.wise-editor details,.wise-editor figcaption,.wise-editor figure,.wise-editor footer,.wise-editor header,.wise-editor hgroup,.wise-editor main,.wise-editor nav,.wise-editor section,.wise-editor summary{display:block;}.wise-editor audio,.wise-editor canvas,.wise-editor progress,.wise-editor video{display:inline-block;vertical-align:baseline;}.wise-editor audio:not([controls]){display:none;height:0;}.wise-editor [hidden],.wise-editor template{display:none;}.wise-editor a{background:0 0;}.wise-editor a:active,.wise-editor a:hover{outline:0;}.wise-editor abbr[title]{border-bottom:1px dotted;}.wise-editor b,.wise-editor strong{font-weight:700;}.wise-editor dfn{font-style:italic;}.wise-editor h1{font-size:2em;margin:.67em 0;}.wise-editor mark{background:#ff0;color:#000;}.wise-editor small{font-size:80%;}.wise-editor sub,.wise-editor sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}.wise-editor sup{top:-.5em;}.wise-editor sub{bottom:-.25em;}.wise-editor img{border:0;}.wise-editor svg:not(:root){overflow:hidden;}.wise-editor figure{margin:1em 40px;}.wise-editor hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}.wise-editor pre{overflow:auto;}.wise-editor code,.wise-editor kbd,.wise-editor pre,.wise-editor samp{font-family:monospace,monospace;font-size:1em;}.wise-editor button,.wise-editor input,.wise-editor optgroup,.wise-editor select,.wise-editor textarea{color:inherit;font:inherit;margin:0;}.wise-editor button{overflow:visible;}.wise-editor button,.wise-editor select{text-transform:none;}.wise-editor button,.wise-editor input[type=button],.wise-editor input[type=reset],.wise-editor input[type=submit]{-webkit-appearance:button;cursor:pointer;}.wise-editor button[disabled],.wise-editor input[disabled]{cursor:default;}.wise-editor button::-moz-focus-inner,.wise-editor input::-moz-focus-inner{border:0;padding:0;}.wise-editor input{line-height:normal;}.wise-editor input[type=checkbox],.wise-editor input[type=radio]{box-sizing:border-box;padding:0;}.wise-editor input[type=number]::-webkit-inner-spin-button,.wise-editor input[type=number]::-webkit-outer-spin-button{height:auto;}.wise-editor input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}.wise-editor input[type=search]::-webkit-search-cancel-button,.wise-editor input[type=search]::-webkit-search-decoration{-webkit-appearance:none;}.wise-editor fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em;}.wise-editor legend{border:0;padding:0;}.wise-editor textarea{overflow:auto;}.wise-editor optgroup{font-weight:700;}.wise-editor table{border-collapse:collapse;border-spacing:0;}.wise-editor td,.wise-editor th{padding:0;}@media print{.wise-editor *{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important;}.wise-editor a,.wise-editor a:visited{text-decoration:underline;}.wise-editor a[href]:after{content:" (" attr(href) ")";}.wise-editor abbr[title]:after{content:" (" attr(title) ")";}.wise-editor a[href^="javascript:"]:after,.wise-editor a[href^="#"]:after{content:"";}.wise-editor pre,.wise-editor blockquote{border:1px solid #999;page-break-inside:avoid;}.wise-editor thead{display:table-header-group;}.wise-editor tr,.wise-editor img{page-break-inside:avoid;}.wise-editor img{max-width:100%!important;}.wise-editor p,.wise-editor h2,.wise-editor h3{orphans:3;widows:3;}.wise-editor h2,.wise-editor h3{page-break-after:avoid;}.wise-editor select{background:#fff!important;}.wise-editor .navbar{display:none;}.wise-editor .table td,.wise-editor .table th{background-color:#fff!important;}.wise-editor .btn>.caret,.wise-editor .dropup>.btn>.caret{border-top-color:#000!important;}.wise-editor .label{border:1px solid #000;}.wise-editor .table{border-collapse:collapse!important;}.wise-editor .table-bordered th,.wise-editor .table-bordered td{border:1px solid #ddd!important;}}.wise-editor *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.wise-editor :before,.wise-editor :after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.wise-editor{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0);}.wise-editor{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#333;background-color:#fff;}.wise-editor input,.wise-editor button,.wise-editor select,.wise-editor textarea{font-family:inherit;font-size:inherit;line-height:inherit;}.wise-editor a{color:#428bca;text-decoration:none;}.wise-editor a:hover,.wise-editor a:focus{color:#2a6496;text-decoration:underline;}.wise-editor a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}.wise-editor figure{margin:0;}.wise-editor img{vertical-align:middle;}.wise-editor .img-responsive,.wise-editor .thumbnail>img,.wise-editor .thumbnail a>img,.wise-editor .carousel-inner>.item>img,.wise-editor .carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;}.wise-editor .img-rounded{border-radius:6px;}.wise-editor .img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto;}.wise-editor .img-circle{border-radius:50%;}.wise-editor hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #eee;}.wise-editor .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;}.wise-editor h1,.wise-editor h2,.wise-editor h3,.wise-editor h4,.wise-editor h5,.wise-editor h6,.wise-editor .h1,.wise-editor .h2,.wise-editor .h3,.wise-editor .h4,.wise-editor .h5,.wise-editor .h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;}.wise-editor h1 small,.wise-editor h2 small,.wise-editor h3 small,.wise-editor h4 small,.wise-editor h5 small,.wise-editor h6 small,.wise-editor .h1 small,.wise-editor .h2 small,.wise-editor .h3 small,.wise-editor .h4 small,.wise-editor .h5 small,.wise-editor .h6 small,.wise-editor h1 .small,.wise-editor h2 .small,.wise-editor h3 .small,.wise-editor h4 .small,.wise-editor h5 .small,.wise-editor h6 .small,.wise-editor .h1 .small,.wise-editor .h2 .small,.wise-editor .h3 .small,.wise-editor .h4 .small,.wise-editor .h5 .small,.wise-editor .h6 .small{font-weight:400;line-height:1;color:#999;}.wise-editor h1,.wise-editor .h1,.wise-editor h2,.wise-editor .h2,.wise-editor h3,.wise-editor .h3{margin-top:18px;margin-bottom:9px;}.wise-editor h1 small,.wise-editor .h1 small,.wise-editor h2 small,.wise-editor .h2 small,.wise-editor h3 small,.wise-editor .h3 small,.wise-editor h1 .small,.wise-editor .h1 .small,.wise-editor h2 .small,.wise-editor .h2 .small,.wise-editor h3 .small,.wise-editor .h3 .small{font-size:65%;}.wise-editor h4,.wise-editor .h4,.wise-editor h5,.wise-editor .h5,.wise-editor h6,.wise-editor .h6{margin-top:9px;margin-bottom:9px;}.wise-editor h4 small,.wise-editor .h4 small,.wise-editor h5 small,.wise-editor .h5 small,.wise-editor h6 small,.wise-editor .h6 small,.wise-editor h4 .small,.wise-editor .h4 .small,.wise-editor h5 .small,.wise-editor .h5 .small,.wise-editor h6 .small,.wise-editor .h6 .small{font-size:75%;}.wise-editor h1,.wise-editor .h1{font-size:33px;}.wise-editor h2,.wise-editor .h2{font-size:27px;}.wise-editor h3,.wise-editor .h3{font-size:23px;}.wise-editor h4,.wise-editor .h4{font-size:17px;}.wise-editor h5,.wise-editor .h5{font-size:13px;}.wise-editor h6,.wise-editor .h6{font-size:12px;}.wise-editor p{margin:0 0 9px;}.wise-editor .lead{margin-bottom:18px;font-size:14px;font-weight:200;line-height:1.4;}@media (min-width:768px){.wise-editor .lead{font-size:19.5px;}}.wise-editor small,.wise-editor .small{font-size:85%;}.wise-editor cite{font-style:normal;}.wise-editor .text-left{text-align:left;}.wise-editor .text-right{text-align:right;}.wise-editor .text-center{text-align:center;}.wise-editor .text-justify{text-align:justify;}.wise-editor .text-muted{color:#999;}.wise-editor .text-primary{color:#428bca;}.wise-editor a.text-primary:hover{color:#3071a9;}.wise-editor .text-success{color:#3c763d;}.wise-editor a.text-success:hover{color:#2b542c;}.wise-editor .text-info{color:#31708f;}.wise-editor a.text-info:hover{color:#245269;}.wise-editor .text-warning{color:#8a6d3b;}.wise-editor a.text-warning:hover{color:#66512c;}.wise-editor .text-danger{color:#a94442;}.wise-editor a.text-danger:hover{color:#843534;}.wise-editor .bg-primary{color:#fff;background-color:#428bca;}.wise-editor a.bg-primary:hover{background-color:#3071a9;}.wise-editor .bg-success{background-color:#dff0d8;}.wise-editor a.bg-success:hover{background-color:#c1e2b3;}.wise-editor .bg-info{background-color:#d9edf7;}.wise-editor a.bg-info:hover{background-color:#afd9ee;}.wise-editor .bg-warning{background-color:#fcf8e3;}.wise-editor a.bg-warning:hover{background-color:#f7ecb5;}.wise-editor .bg-danger{background-color:#f2dede;}.wise-editor a.bg-danger:hover{background-color:#e4b9b9;}.wise-editor .page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #eee;}.wise-editor ul,.wise-editor ol{margin-top:0;margin-bottom:9px;}.wise-editor ul ul,.wise-editor ol ul,.wise-editor ul ol,.wise-editor ol ol{margin-bottom:0;}.wise-editor .list-unstyled{padding-left:0;list-style:none;}.wise-editor .list-inline{padding-left:0;list-style:none;margin-left:-5px;}.wise-editor .list-inline>li{display:inline-block;padding-left:5px;padding-right:5px;}.wise-editor dl{margin-top:0;margin-bottom:18px;}.wise-editor dt,.wise-editor dd{line-height:1.42857143;}.wise-editor dt{font-weight:700;}.wise-editor dd{margin-left:0;}@media (min-width:768px){.wise-editor .dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.wise-editor .dl-horizontal dd{margin-left:180px;}}.wise-editor abbr[title],.wise-editor abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999;}.wise-editor .initialism{font-size:90%;text-transform:uppercase;}.wise-editor blockquote{padding:9px 18px;margin:0 0 18px;font-size:16.25px;border-left:5px solid #eee;}.wise-editor blockquote p:last-child,.wise-editor blockquote ul:last-child,.wise-editor blockquote ol:last-child{margin-bottom:0;}.wise-editor blockquote footer,.wise-editor blockquote small,.wise-editor blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999;}.wise-editor blockquote footer:before,.wise-editor blockquote small:before,.wise-editor blockquote .small:before{content:'\2014 \00A0';}.wise-editor .blockquote-reverse,.wise-editor blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right;}.wise-editor .blockquote-reverse footer:before,.wise-editor blockquote.pull-right footer:before,.wise-editor .blockquote-reverse small:before,.wise-editor blockquote.pull-right small:before,.wise-editor .blockquote-reverse .small:before,.wise-editor blockquote.pull-right .small:before{content:'';}.wise-editor .blockquote-reverse footer:after,.wise-editor blockquote.pull-right footer:after,.wise-editor .blockquote-reverse small:after,.wise-editor blockquote.pull-right small:after,.wise-editor .blockquote-reverse .small:after,.wise-editor blockquote.pull-right .small:after{content:'\00A0 \2014';}.wise-editor blockquote:before,.wise-editor blockquote:after{content:"";}.wise-editor address{margin-bottom:18px;font-style:normal;line-height:1.42857143;}.wise-editor code,.wise-editor kbd,.wise-editor pre,.wise-editor samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;}.wise-editor code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px;}.wise-editor kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);}.wise-editor pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px;}.wise-editor pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0;}.wise-editor .pre-scrollable{max-height:340px;overflow-y:scroll;}.wise-editor .container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;}@media (min-width:768px){.wise-editor .container{width:750px;}}@media (min-width:992px){.wise-editor .container{width:970px;}}@media (min-width:1200px){.wise-editor .container{width:1170px;}}.wise-editor .container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;}.wise-editor .row{margin-left:-15px;margin-right:-15px;}.wise-editor .col-xs-1,.wise-editor .col-sm-1,.wise-editor .col-md-1,.wise-editor .col-lg-1,.wise-editor .col-xs-2,.wise-editor .col-sm-2,.wise-editor .col-md-2,.wise-editor .col-lg-2,.wise-editor .col-xs-3,.wise-editor .col-sm-3,.wise-editor .col-md-3,.wise-editor .col-lg-3,.wise-editor .col-xs-4,.wise-editor .col-sm-4,.wise-editor .col-md-4,.wise-editor .col-lg-4,.wise-editor .col-xs-5,.wise-editor .col-sm-5,.wise-editor .col-md-5,.wise-editor .col-lg-5,.wise-editor .col-xs-6,.wise-editor .col-sm-6,.wise-editor .col-md-6,.wise-editor .col-lg-6,.wise-editor .col-xs-7,.wise-editor .col-sm-7,.wise-editor .col-md-7,.wise-editor .col-lg-7,.wise-editor .col-xs-8,.wise-editor .col-sm-8,.wise-editor .col-md-8,.wise-editor .col-lg-8,.wise-editor .col-xs-9,.wise-editor .col-sm-9,.wise-editor .col-md-9,.wise-editor .col-lg-9,.wise-editor .col-xs-10,.wise-editor .col-sm-10,.wise-editor .col-md-10,.wise-editor .col-lg-10,.wise-editor .col-xs-11,.wise-editor .col-sm-11,.wise-editor .col-md-11,.wise-editor .col-lg-11,.wise-editor .col-xs-12,.wise-editor .col-sm-12,.wise-editor .col-md-12,.wise-editor .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px;}.wise-editor .col-xs-1,.wise-editor .col-xs-2,.wise-editor .col-xs-3,.wise-editor .col-xs-4,.wise-editor .col-xs-5,.wise-editor .col-xs-6,.wise-editor .col-xs-7,.wise-editor .col-xs-8,.wise-editor .col-xs-9,.wise-editor .col-xs-10,.wise-editor .col-xs-11,.wise-editor .col-xs-12{float:left;}.wise-editor .col-xs-12{width:100%;}.wise-editor .col-xs-11{width:91.66666667%;}.wise-editor .col-xs-10{width:83.33333333%;}.wise-editor .col-xs-9{width:75%;}.wise-editor .col-xs-8{width:66.66666667%;}.wise-editor .col-xs-7{width:58.33333333%;}.wise-editor .col-xs-6{width:50%;}.wise-editor .col-xs-5{width:41.66666667%;}.wise-editor .col-xs-4{width:33.33333333%;}.wise-editor .col-xs-3{width:25%;}.wise-editor .col-xs-2{width:16.66666667%;}.wise-editor .col-xs-1{width:8.33333333%;}.wise-editor .col-xs-pull-12{right:100%;}.wise-editor .col-xs-pull-11{right:91.66666667%;}.wise-editor .col-xs-pull-10{right:83.33333333%;}.wise-editor .col-xs-pull-9{right:75%;}.wise-editor .col-xs-pull-8{right:66.66666667%;}.wise-editor .col-xs-pull-7{right:58.33333333%;}.wise-editor .col-xs-pull-6{right:50%;}.wise-editor .col-xs-pull-5{right:41.66666667%;}.wise-editor .col-xs-pull-4{right:33.33333333%;}.wise-editor .col-xs-pull-3{right:25%;}.wise-editor .col-xs-pull-2{right:16.66666667%;}.wise-editor .col-xs-pull-1{right:8.33333333%;}.wise-editor .col-xs-pull-0{right:0;}.wise-editor .col-xs-push-12{left:100%;}.wise-editor .col-xs-push-11{left:91.66666667%;}.wise-editor .col-xs-push-10{left:83.33333333%;}.wise-editor .col-xs-push-9{left:75%;}.wise-editor .col-xs-push-8{left:66.66666667%;}.wise-editor .col-xs-push-7{left:58.33333333%;}.wise-editor .col-xs-push-6{left:50%;}.wise-editor .col-xs-push-5{left:41.66666667%;}.wise-editor .col-xs-push-4{left:33.33333333%;}.wise-editor .col-xs-push-3{left:25%;}.wise-editor .col-xs-push-2{left:16.66666667%;}.wise-editor .col-xs-push-1{left:8.33333333%;}.wise-editor .col-xs-push-0{left:0;}.wise-editor .col-xs-offset-12{margin-left:100%;}.wise-editor .col-xs-offset-11{margin-left:91.66666667%;}.wise-editor .col-xs-offset-10{margin-left:83.33333333%;}.wise-editor .col-xs-offset-9{margin-left:75%;}.wise-editor .col-xs-offset-8{margin-left:66.66666667%;}.wise-editor .col-xs-offset-7{margin-left:58.33333333%;}.wise-editor .col-xs-offset-6{margin-left:50%;}.wise-editor .col-xs-offset-5{margin-left:41.66666667%;}.wise-editor .col-xs-offset-4{margin-left:33.33333333%;}.wise-editor .col-xs-offset-3{margin-left:25%;}.wise-editor .col-xs-offset-2{margin-left:16.66666667%;}.wise-editor .col-xs-offset-1{margin-left:8.33333333%;}.wise-editor .col-xs-offset-0{margin-left:0;}@media (min-width:768px){.wise-editor .col-sm-1,.wise-editor .col-sm-2,.wise-editor .col-sm-3,.wise-editor .col-sm-4,.wise-editor .col-sm-5,.wise-editor .col-sm-6,.wise-editor .col-sm-7,.wise-editor .col-sm-8,.wise-editor .col-sm-9,.wise-editor .col-sm-10,.wise-editor .col-sm-11,.wise-editor .col-sm-12{float:left;}.wise-editor .col-sm-12{width:100%;}.wise-editor .col-sm-11{width:91.66666667%;}.wise-editor .col-sm-10{width:83.33333333%;}.wise-editor .col-sm-9{width:75%;}.wise-editor .col-sm-8{width:66.66666667%;}.wise-editor .col-sm-7{width:58.33333333%;}.wise-editor .col-sm-6{width:50%;}.wise-editor .col-sm-5{width:41.66666667%;}.wise-editor .col-sm-4{width:33.33333333%;}.wise-editor .col-sm-3{width:25%;}.wise-editor .col-sm-2{width:16.66666667%;}.wise-editor .col-sm-1{width:8.33333333%;}.wise-editor .col-sm-pull-12{right:100%;}.wise-editor .col-sm-pull-11{right:91.66666667%;}.wise-editor .col-sm-pull-10{right:83.33333333%;}.wise-editor .col-sm-pull-9{right:75%;}.wise-editor .col-sm-pull-8{right:66.66666667%;}.wise-editor .col-sm-pull-7{right:58.33333333%;}.wise-editor .col-sm-pull-6{right:50%;}.wise-editor .col-sm-pull-5{right:41.66666667%;}.wise-editor .col-sm-pull-4{right:33.33333333%;}.wise-editor .col-sm-pull-3{right:25%;}.wise-editor .col-sm-pull-2{right:16.66666667%;}.wise-editor .col-sm-pull-1{right:8.33333333%;}.wise-editor .col-sm-pull-0{right:0;}.wise-editor .col-sm-push-12{left:100%;}.wise-editor .col-sm-push-11{left:91.66666667%;}.wise-editor .col-sm-push-10{left:83.33333333%;}.wise-editor .col-sm-push-9{left:75%;}.wise-editor .col-sm-push-8{left:66.66666667%;}.wise-editor .col-sm-push-7{left:58.33333333%;}.wise-editor .col-sm-push-6{left:50%;}.wise-editor .col-sm-push-5{left:41.66666667%;}.wise-editor .col-sm-push-4{left:33.33333333%;}.wise-editor .col-sm-push-3{left:25%;}.wise-editor .col-sm-push-2{left:16.66666667%;}.wise-editor .col-sm-push-1{left:8.33333333%;}.wise-editor .col-sm-push-0{left:0;}.wise-editor .col-sm-offset-12{margin-left:100%;}.wise-editor .col-sm-offset-11{margin-left:91.66666667%;}.wise-editor .col-sm-offset-10{margin-left:83.33333333%;}.wise-editor .col-sm-offset-9{margin-left:75%;}.wise-editor .col-sm-offset-8{margin-left:66.66666667%;}.wise-editor .col-sm-offset-7{margin-left:58.33333333%;}.wise-editor .col-sm-offset-6{margin-left:50%;}.wise-editor .col-sm-offset-5{margin-left:41.66666667%;}.wise-editor .col-sm-offset-4{margin-left:33.33333333%;}.wise-editor .col-sm-offset-3{margin-left:25%;}.wise-editor .col-sm-offset-2{margin-left:16.66666667%;}.wise-editor .col-sm-offset-1{margin-left:8.33333333%;}.wise-editor .col-sm-offset-0{margin-left:0;}}@media (min-width:992px){.wise-editor .col-md-1,.wise-editor .col-md-2,.wise-editor .col-md-3,.wise-editor .col-md-4,.wise-editor .col-md-5,.wise-editor .col-md-6,.wise-editor .col-md-7,.wise-editor .col-md-8,.wise-editor .col-md-9,.wise-editor .col-md-10,.wise-editor .col-md-11,.wise-editor .col-md-12{float:left;}.wise-editor .col-md-12{width:100%;}.wise-editor .col-md-11{width:91.66666667%;}.wise-editor .col-md-10{width:83.33333333%;}.wise-editor .col-md-9{width:75%;}.wise-editor .col-md-8{width:66.66666667%;}.wise-editor .col-md-7{width:58.33333333%;}.wise-editor .col-md-6{width:50%;}.wise-editor .col-md-5{width:41.66666667%;}.wise-editor .col-md-4{width:33.33333333%;}.wise-editor .col-md-3{width:25%;}.wise-editor .col-md-2{width:16.66666667%;}.wise-editor .col-md-1{width:8.33333333%;}.wise-editor .col-md-pull-12{right:100%;}.wise-editor .col-md-pull-11{right:91.66666667%;}.wise-editor .col-md-pull-10{right:83.33333333%;}.wise-editor .col-md-pull-9{right:75%;}.wise-editor .col-md-pull-8{right:66.66666667%;}.wise-editor .col-md-pull-7{right:58.33333333%;}.wise-editor .col-md-pull-6{right:50%;}.wise-editor .col-md-pull-5{right:41.66666667%;}.wise-editor .col-md-pull-4{right:33.33333333%;}.wise-editor .col-md-pull-3{right:25%;}.wise-editor .col-md-pull-2{right:16.66666667%;}.wise-editor .col-md-pull-1{right:8.33333333%;}.wise-editor .col-md-pull-0{right:0;}.wise-editor .col-md-push-12{left:100%;}.wise-editor .col-md-push-11{left:91.66666667%;}.wise-editor .col-md-push-10{left:83.33333333%;}.wise-editor .col-md-push-9{left:75%;}.wise-editor .col-md-push-8{left:66.66666667%;}.wise-editor .col-md-push-7{left:58.33333333%;}.wise-editor .col-md-push-6{left:50%;}.wise-editor .col-md-push-5{left:41.66666667%;}.wise-editor .col-md-push-4{left:33.33333333%;}.wise-editor .col-md-push-3{left:25%;}.wise-editor .col-md-push-2{left:16.66666667%;}.wise-editor .col-md-push-1{left:8.33333333%;}.wise-editor .col-md-push-0{left:0;}.wise-editor .col-md-offset-12{margin-left:100%;}.wise-editor .col-md-offset-11{margin-left:91.66666667%;}.wise-editor .col-md-offset-10{margin-left:83.33333333%;}.wise-editor .col-md-offset-9{margin-left:75%;}.wise-editor .col-md-offset-8{margin-left:66.66666667%;}.wise-editor .col-md-offset-7{margin-left:58.33333333%;}.wise-editor .col-md-offset-6{margin-left:50%;}.wise-editor .col-md-offset-5{margin-left:41.66666667%;}.wise-editor .col-md-offset-4{margin-left:33.33333333%;}.wise-editor .col-md-offset-3{margin-left:25%;}.wise-editor .col-md-offset-2{margin-left:16.66666667%;}.wise-editor .col-md-offset-1{margin-left:8.33333333%;}.wise-editor .col-md-offset-0{margin-left:0;}}@media (min-width:1200px){.wise-editor .col-lg-1,.wise-editor .col-lg-2,.wise-editor .col-lg-3,.wise-editor .col-lg-4,.wise-editor .col-lg-5,.wise-editor .col-lg-6,.wise-editor .col-lg-7,.wise-editor .col-lg-8,.wise-editor .col-lg-9,.wise-editor .col-lg-10,.wise-editor .col-lg-11,.wise-editor .col-lg-12{float:left;}.wise-editor .col-lg-12{width:100%;}.wise-editor .col-lg-11{width:91.66666667%;}.wise-editor .col-lg-10{width:83.33333333%;}.wise-editor .col-lg-9{width:75%;}.wise-editor .col-lg-8{width:66.66666667%;}.wise-editor .col-lg-7{width:58.33333333%;}.wise-editor .col-lg-6{width:50%;}.wise-editor .col-lg-5{width:41.66666667%;}.wise-editor .col-lg-4{width:33.33333333%;}.wise-editor .col-lg-3{width:25%;}.wise-editor .col-lg-2{width:16.66666667%;}.wise-editor .col-lg-1{width:8.33333333%;}.wise-editor .col-lg-pull-12{right:100%;}.wise-editor .col-lg-pull-11{right:91.66666667%;}.wise-editor .col-lg-pull-10{right:83.33333333%;}.wise-editor .col-lg-pull-9{right:75%;}.wise-editor .col-lg-pull-8{right:66.66666667%;}.wise-editor .col-lg-pull-7{right:58.33333333%;}.wise-editor .col-lg-pull-6{right:50%;}.wise-editor .col-lg-pull-5{right:41.66666667%;}.wise-editor .col-lg-pull-4{right:33.33333333%;}.wise-editor .col-lg-pull-3{right:25%;}.wise-editor .col-lg-pull-2{right:16.66666667%;}.wise-editor .col-lg-pull-1{right:8.33333333%;}.wise-editor .col-lg-pull-0{right:0;}.wise-editor .col-lg-push-12{left:100%;}.wise-editor .col-lg-push-11{left:91.66666667%;}.wise-editor .col-lg-push-10{left:83.33333333%;}.wise-editor .col-lg-push-9{left:75%;}.wise-editor .col-lg-push-8{left:66.66666667%;}.wise-editor .col-lg-push-7{left:58.33333333%;}.wise-editor .col-lg-push-6{left:50%;}.wise-editor .col-lg-push-5{left:41.66666667%;}.wise-editor .col-lg-push-4{left:33.33333333%;}.wise-editor .col-lg-push-3{left:25%;}.wise-editor .col-lg-push-2{left:16.66666667%;}.wise-editor .col-lg-push-1{left:8.33333333%;}.wise-editor .col-lg-push-0{left:0;}.wise-editor .col-lg-offset-12{margin-left:100%;}.wise-editor .col-lg-offset-11{margin-left:91.66666667%;}.wise-editor .col-lg-offset-10{margin-left:83.33333333%;}.wise-editor .col-lg-offset-9{margin-left:75%;}.wise-editor .col-lg-offset-8{margin-left:66.66666667%;}.wise-editor .col-lg-offset-7{margin-left:58.33333333%;}.wise-editor .col-lg-offset-6{margin-left:50%;}.wise-editor .col-lg-offset-5{margin-left:41.66666667%;}.wise-editor .col-lg-offset-4{margin-left:33.33333333%;}.wise-editor .col-lg-offset-3{margin-left:25%;}.wise-editor .col-lg-offset-2{margin-left:16.66666667%;}.wise-editor .col-lg-offset-1{margin-left:8.33333333%;}.wise-editor .col-lg-offset-0{margin-left:0;}}.wise-editor table{max-width:100%;background-color:transparent;}.wise-editor th{text-align:left;}.wise-editor .table{width:100%;margin-bottom:18px;}.wise-editor .table>thead>tr>th,.wise-editor .table>tbody>tr>th,.wise-editor .table>tfoot>tr>th,.wise-editor .table>thead>tr>td,.wise-editor .table>tbody>tr>td,.wise-editor .table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd;}.wise-editor .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd;}.wise-editor .table>caption+thead>tr:first-child>th,.wise-editor .table>colgroup+thead>tr:first-child>th,.wise-editor .table>thead:first-child>tr:first-child>th,.wise-editor .table>caption+thead>tr:first-child>td,.wise-editor .table>colgroup+thead>tr:first-child>td,.wise-editor .table>thead:first-child>tr:first-child>td{border-top:0;}.wise-editor .table>tbody+tbody{border-top:2px solid #ddd;}.wise-editor .table .table{background-color:#fff;}.wise-editor .table-condensed>thead>tr>th,.wise-editor .table-condensed>tbody>tr>th,.wise-editor .table-condensed>tfoot>tr>th,.wise-editor .table-condensed>thead>tr>td,.wise-editor .table-condensed>tbody>tr>td,.wise-editor .table-condensed>tfoot>tr>td{padding:5px;}.wise-editor .table-bordered{border:1px solid #ddd;}.wise-editor .table-bordered>thead>tr>th,.wise-editor .table-bordered>tbody>tr>th,.wise-editor .table-bordered>tfoot>tr>th,.wise-editor .table-bordered>thead>tr>td,.wise-editor .table-bordered>tbody>tr>td,.wise-editor .table-bordered>tfoot>tr>td{border:1px solid #ddd;}.wise-editor .table-bordered>thead>tr>th,.wise-editor .table-bordered>thead>tr>td{border-bottom-width:2px;}.wise-editor .table-striped>tbody>tr:nth-child(odd)>td,.wise-editor .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}.wise-editor .table-hover>tbody>tr:hover>td,.wise-editor .table-hover>tbody>tr:hover>th{background-color:#f5f5f5;}.wise-editor table col[class*=col-]{position:static;float:none;display:table-column;}.wise-editor table td[class*=col-],.wise-editor table th[class*=col-]{position:static;float:none;display:table-cell;}.wise-editor .table>thead>tr>td.active,.wise-editor .table>tbody>tr>td.active,.wise-editor .table>tfoot>tr>td.active,.wise-editor .table>thead>tr>th.active,.wise-editor .table>tbody>tr>th.active,.wise-editor .table>tfoot>tr>th.active,.wise-editor .table>thead>tr.active>td,.wise-editor .table>tbody>tr.active>td,.wise-editor .table>tfoot>tr.active>td,.wise-editor .table>thead>tr.active>th,.wise-editor .table>tbody>tr.active>th,.wise-editor .table>tfoot>tr.active>th{background-color:#f5f5f5;}.wise-editor .table-hover>tbody>tr>td.active:hover,.wise-editor .table-hover>tbody>tr>th.active:hover,.wise-editor .table-hover>tbody>tr.active:hover>td,.wise-editor .table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8;}.wise-editor .table>thead>tr>td.success,.wise-editor .table>tbody>tr>td.success,.wise-editor .table>tfoot>tr>td.success,.wise-editor .table>thead>tr>th.success,.wise-editor .table>tbody>tr>th.success,.wise-editor .table>tfoot>tr>th.success,.wise-editor .table>thead>tr.success>td,.wise-editor .table>tbody>tr.success>td,.wise-editor .table>tfoot>tr.success>td,.wise-editor .table>thead>tr.success>th,.wise-editor .table>tbody>tr.success>th,.wise-editor .table>tfoot>tr.success>th{background-color:#dff0d8;}.wise-editor .table-hover>tbody>tr>td.success:hover,.wise-editor .table-hover>tbody>tr>th.success:hover,.wise-editor .table-hover>tbody>tr.success:hover>td,.wise-editor .table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6;}.wise-editor .table>thead>tr>td.info,.wise-editor .table>tbody>tr>td.info,.wise-editor .table>tfoot>tr>td.info,.wise-editor .table>thead>tr>th.info,.wise-editor .table>tbody>tr>th.info,.wise-editor .table>tfoot>tr>th.info,.wise-editor .table>thead>tr.info>td,.wise-editor .table>tbody>tr.info>td,.wise-editor .table>tfoot>tr.info>td,.wise-editor .table>thead>tr.info>th,.wise-editor .table>tbody>tr.info>th,.wise-editor .table>tfoot>tr.info>th{background-color:#d9edf7;}.wise-editor .table-hover>tbody>tr>td.info:hover,.wise-editor .table-hover>tbody>tr>th.info:hover,.wise-editor .table-hover>tbody>tr.info:hover>td,.wise-editor .table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3;}.wise-editor .table>thead>tr>td.warning,.wise-editor .table>tbody>tr>td.warning,.wise-editor .table>tfoot>tr>td.warning,.wise-editor .table>thead>tr>th.warning,.wise-editor .table>tbody>tr>th.warning,.wise-editor .table>tfoot>tr>th.warning,.wise-editor .table>thead>tr.warning>td,.wise-editor .table>tbody>tr.warning>td,.wise-editor .table>tfoot>tr.warning>td,.wise-editor .table>thead>tr.warning>th,.wise-editor .table>tbody>tr.warning>th,.wise-editor .table>tfoot>tr.warning>th{background-color:#fcf8e3;}.wise-editor .table-hover>tbody>tr>td.warning:hover,.wise-editor .table-hover>tbody>tr>th.warning:hover,.wise-editor .table-hover>tbody>tr.warning:hover>td,.wise-editor .table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc;}.wise-editor .table>thead>tr>td.danger,.wise-editor .table>tbody>tr>td.danger,.wise-editor .table>tfoot>tr>td.danger,.wise-editor .table>thead>tr>th.danger,.wise-editor .table>tbody>tr>th.danger,.wise-editor .table>tfoot>tr>th.danger,.wise-editor .table>thead>tr.danger>td,.wise-editor .table>tbody>tr.danger>td,.wise-editor .table>tfoot>tr.danger>td,.wise-editor .table>thead>tr.danger>th,.wise-editor .table>tbody>tr.danger>th,.wise-editor .table>tfoot>tr.danger>th{background-color:#f2dede;}.wise-editor .table-hover>tbody>tr>td.danger:hover,.wise-editor .table-hover>tbody>tr>th.danger:hover,.wise-editor .table-hover>tbody>tr.danger:hover>td,.wise-editor .table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc;}@media (max-width:767px){.wise-editor .table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch;}.wise-editor .table-responsive>.table{margin-bottom:0;}.wise-editor .table-responsive>.table>thead>tr>th,.wise-editor .table-responsive>.table>tbody>tr>th,.wise-editor .table-responsive>.table>tfoot>tr>th,.wise-editor .table-responsive>.table>thead>tr>td,.wise-editor .table-responsive>.table>tbody>tr>td,.wise-editor .table-responsive>.table>tfoot>tr>td{white-space:nowrap;}.wise-editor .table-responsive>.table-bordered{border:0;}.wise-editor .table-responsive>.table-bordered>thead>tr>th:first-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>th:first-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>th:first-child,.wise-editor .table-responsive>.table-bordered>thead>tr>td:first-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>td:first-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;}.wise-editor .table-responsive>.table-bordered>thead>tr>th:last-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>th:last-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>th:last-child,.wise-editor .table-responsive>.table-bordered>thead>tr>td:last-child,.wise-editor .table-responsive>.table-bordered>tbody>tr>td:last-child,.wise-editor .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;}.wise-editor .table-responsive>.table-bordered>tbody>tr:last-child>th,.wise-editor .table-responsive>.table-bordered>tfoot>tr:last-child>th,.wise-editor .table-responsive>.table-bordered>tbody>tr:last-child>td,.wise-editor .table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0;}}.wise-editor fieldset{padding:0;margin:0;border:0;min-width:0;}.wise-editor legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;}.wise-editor label{display:inline-block;margin-bottom:5px;font-weight:700;}.wise-editor input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.wise-editor input[type=radio],.wise-editor input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal;}.wise-editor input[type=file]{display:block;}.wise-editor input[type=range]{display:block;width:100%;}.wise-editor select[multiple],.wise-editor select[size]{height:auto;}.wise-editor input[type=file]:focus,.wise-editor input[type=radio]:focus,.wise-editor input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}.wise-editor output{display:block;padding-top:7px;font-size:13px;line-height:1.42857143;color:#555;}.wise-editor .form-control{display:block;width:100%;height:32px;padding:6px 12px;font-size:13px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;}.wise-editor .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);}.wise-editor .form-control::-moz-placeholder{color:#999;opacity:1;}.wise-editor .form-control:-ms-input-placeholder{color:#999;}.wise-editor .form-control::-webkit-input-placeholder{color:#999;}.wise-editor .form-control[disabled],.wise-editor .form-control[readonly],.wise-editor fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1;}.wise-editor textarea.form-control{height:auto;}.wise-editor input[type=search]{-webkit-appearance:none;}.wise-editor input[type=date]{line-height:32px;}.wise-editor .form-group{margin-bottom:15px;}.wise-editor .radio,.wise-editor .checkbox{display:block;min-height:18px;margin-top:10px;margin-bottom:10px;padding-left:20px;}.wise-editor .radio label,.wise-editor .checkbox label{display:inline;font-weight:400;cursor:pointer;}.wise-editor .radio input[type=radio],.wise-editor .radio-inline input[type=radio],.wise-editor .checkbox input[type=checkbox],.wise-editor .checkbox-inline input[type=checkbox]{float:left;margin-left:-20px;}.wise-editor .radio+.radio,.wise-editor .checkbox+.checkbox{margin-top:-5px;}.wise-editor .radio-inline,.wise-editor .checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer;}.wise-editor .radio-inline+.radio-inline,.wise-editor .checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px;}.wise-editor input[type=radio][disabled],.wise-editor input[type=checkbox][disabled],.wise-editor .radio[disabled],.wise-editor .radio-inline[disabled],.wise-editor .checkbox[disabled],.wise-editor .checkbox-inline[disabled],.wise-editor fieldset[disabled] input[type=radio],.wise-editor fieldset[disabled] input[type=checkbox],.wise-editor fieldset[disabled] .radio,.wise-editor fieldset[disabled] .radio-inline,.wise-editor fieldset[disabled] .checkbox,.wise-editor fieldset[disabled] .checkbox-inline{cursor:not-allowed;}.wise-editor .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor select.input-sm{height:30px;line-height:30px;}.wise-editor textarea.input-sm,.wise-editor select[multiple].input-sm{height:auto;}.wise-editor .input-lg{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px;}.wise-editor select.input-lg{height:45px;line-height:45px;}.wise-editor textarea.input-lg,.wise-editor select[multiple].input-lg{height:auto;}.wise-editor .has-feedback{position:relative;}.wise-editor .has-feedback .form-control{padding-right:40px;}.wise-editor .has-feedback .form-control-feedback{position:absolute;top:23px;right:0;display:block;width:32px;height:32px;line-height:32px;text-align:center;}.wise-editor .has-success .help-block,.wise-editor .has-success .control-label,.wise-editor .has-success .radio,.wise-editor .has-success .checkbox,.wise-editor .has-success .radio-inline,.wise-editor .has-success .checkbox-inline{color:#3c763d;}.wise-editor .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.wise-editor .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;}.wise-editor .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8;}.wise-editor .has-success .form-control-feedback{color:#3c763d;}.wise-editor .has-warning .help-block,.wise-editor .has-warning .control-label,.wise-editor .has-warning .radio,.wise-editor .has-warning .checkbox,.wise-editor .has-warning .radio-inline,.wise-editor .has-warning .checkbox-inline{color:#8a6d3b;}.wise-editor .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.wise-editor .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;}.wise-editor .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3;}.wise-editor .has-warning .form-control-feedback{color:#8a6d3b;}.wise-editor .has-error .help-block,.wise-editor .has-error .control-label,.wise-editor .has-error .radio,.wise-editor .has-error .checkbox,.wise-editor .has-error .radio-inline,.wise-editor .has-error .checkbox-inline{color:#a94442;}.wise-editor .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.wise-editor .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;}.wise-editor .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede;}.wise-editor .has-error .form-control-feedback{color:#a94442;}.wise-editor .form-control-static{margin-bottom:0;}.wise-editor .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;}@media (min-width:768px){.wise-editor .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;}.wise-editor .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle;}.wise-editor .form-inline .input-group>.form-control{width:100%;}.wise-editor .form-inline .control-label{margin-bottom:0;vertical-align:middle;}.wise-editor .form-inline .radio,.wise-editor .form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle;}.wise-editor .form-inline .radio input[type=radio],.wise-editor .form-inline .checkbox input[type=checkbox]{float:none;margin-left:0;}.wise-editor .form-inline .has-feedback .form-control-feedback{top:0;}}.wise-editor .form-horizontal .control-label,.wise-editor .form-horizontal .radio,.wise-editor .form-horizontal .checkbox,.wise-editor .form-horizontal .radio-inline,.wise-editor .form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px;}.wise-editor .form-horizontal .radio,.wise-editor .form-horizontal .checkbox{min-height:25px;}.wise-editor .form-horizontal .form-group{margin-left:-15px;margin-right:-15px;}.wise-editor .form-horizontal .form-control-static{padding-top:7px;}@media (min-width:768px){.wise-editor .form-horizontal .control-label{text-align:right;}}.wise-editor .form-horizontal .has-feedback .form-control-feedback{top:0;right:15px;}.wise-editor .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:13px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.wise-editor .btn:focus,.wise-editor .btn:active:focus,.wise-editor .btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}.wise-editor .btn:hover,.wise-editor .btn:focus{color:#333;text-decoration:none;}.wise-editor .btn:active,.wise-editor .btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.wise-editor .btn.disabled,.wise-editor .btn[disabled],.wise-editor fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;}.wise-editor .btn-default{color:#333;background-color:#fff;border-color:#ccc;}.wise-editor .btn-default:hover,.wise-editor .btn-default:focus,.wise-editor .btn-default:active,.wise-editor .btn-default.active,.wise-editor .open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad;}.wise-editor .btn-default:active,.wise-editor .btn-default.active,.wise-editor .open .dropdown-toggle.btn-default{background-image:none;}.wise-editor .btn-default.disabled,.wise-editor .btn-default[disabled],.wise-editor fieldset[disabled] .btn-default,.wise-editor .btn-default.disabled:hover,.wise-editor .btn-default[disabled]:hover,.wise-editor fieldset[disabled] .btn-default:hover,.wise-editor .btn-default.disabled:focus,.wise-editor .btn-default[disabled]:focus,.wise-editor fieldset[disabled] .btn-default:focus,.wise-editor .btn-default.disabled:active,.wise-editor .btn-default[disabled]:active,.wise-editor fieldset[disabled] .btn-default:active,.wise-editor .btn-default.disabled.active,.wise-editor .btn-default[disabled].active,.wise-editor fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc;}.wise-editor .btn-default .badge{color:#fff;background-color:#333;}.wise-editor .btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd;}.wise-editor .btn-primary:hover,.wise-editor .btn-primary:focus,.wise-editor .btn-primary:active,.wise-editor .btn-primary.active,.wise-editor .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e;}.wise-editor .btn-primary:active,.wise-editor .btn-primary.active,.wise-editor .open .dropdown-toggle.btn-primary{background-image:none;}.wise-editor .btn-primary.disabled,.wise-editor .btn-primary[disabled],.wise-editor fieldset[disabled] .btn-primary,.wise-editor .btn-primary.disabled:hover,.wise-editor .btn-primary[disabled]:hover,.wise-editor fieldset[disabled] .btn-primary:hover,.wise-editor .btn-primary.disabled:focus,.wise-editor .btn-primary[disabled]:focus,.wise-editor fieldset[disabled] .btn-primary:focus,.wise-editor .btn-primary.disabled:active,.wise-editor .btn-primary[disabled]:active,.wise-editor fieldset[disabled] .btn-primary:active,.wise-editor .btn-primary.disabled.active,.wise-editor .btn-primary[disabled].active,.wise-editor fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd;}.wise-editor .btn-primary .badge{color:#428bca;background-color:#fff;}.wise-editor .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c;}.wise-editor .btn-success:hover,.wise-editor .btn-success:focus,.wise-editor .btn-success:active,.wise-editor .btn-success.active,.wise-editor .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439;}.wise-editor .btn-success:active,.wise-editor .btn-success.active,.wise-editor .open .dropdown-toggle.btn-success{background-image:none;}.wise-editor .btn-success.disabled,.wise-editor .btn-success[disabled],.wise-editor fieldset[disabled] .btn-success,.wise-editor .btn-success.disabled:hover,.wise-editor .btn-success[disabled]:hover,.wise-editor fieldset[disabled] .btn-success:hover,.wise-editor .btn-success.disabled:focus,.wise-editor .btn-success[disabled]:focus,.wise-editor fieldset[disabled] .btn-success:focus,.wise-editor .btn-success.disabled:active,.wise-editor .btn-success[disabled]:active,.wise-editor fieldset[disabled] .btn-success:active,.wise-editor .btn-success.disabled.active,.wise-editor .btn-success[disabled].active,.wise-editor fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c;}.wise-editor .btn-success .badge{color:#5cb85c;background-color:#fff;}.wise-editor .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da;}.wise-editor .btn-info:hover,.wise-editor .btn-info:focus,.wise-editor .btn-info:active,.wise-editor .btn-info.active,.wise-editor .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc;}.wise-editor .btn-info:active,.wise-editor .btn-info.active,.wise-editor .open .dropdown-toggle.btn-info{background-image:none;}.wise-editor .btn-info.disabled,.wise-editor .btn-info[disabled],.wise-editor fieldset[disabled] .btn-info,.wise-editor .btn-info.disabled:hover,.wise-editor .btn-info[disabled]:hover,.wise-editor fieldset[disabled] .btn-info:hover,.wise-editor .btn-info.disabled:focus,.wise-editor .btn-info[disabled]:focus,.wise-editor fieldset[disabled] .btn-info:focus,.wise-editor .btn-info.disabled:active,.wise-editor .btn-info[disabled]:active,.wise-editor fieldset[disabled] .btn-info:active,.wise-editor .btn-info.disabled.active,.wise-editor .btn-info[disabled].active,.wise-editor fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da;}.wise-editor .btn-info .badge{color:#5bc0de;background-color:#fff;}.wise-editor .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236;}.wise-editor .btn-warning:hover,.wise-editor .btn-warning:focus,.wise-editor .btn-warning:active,.wise-editor .btn-warning.active,.wise-editor .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512;}.wise-editor .btn-warning:active,.wise-editor .btn-warning.active,.wise-editor .open .dropdown-toggle.btn-warning{background-image:none;}.wise-editor .btn-warning.disabled,.wise-editor .btn-warning[disabled],.wise-editor fieldset[disabled] .btn-warning,.wise-editor .btn-warning.disabled:hover,.wise-editor .btn-warning[disabled]:hover,.wise-editor fieldset[disabled] .btn-warning:hover,.wise-editor .btn-warning.disabled:focus,.wise-editor .btn-warning[disabled]:focus,.wise-editor fieldset[disabled] .btn-warning:focus,.wise-editor .btn-warning.disabled:active,.wise-editor .btn-warning[disabled]:active,.wise-editor fieldset[disabled] .btn-warning:active,.wise-editor .btn-warning.disabled.active,.wise-editor .btn-warning[disabled].active,.wise-editor fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236;}.wise-editor .btn-warning .badge{color:#f0ad4e;background-color:#fff;}.wise-editor .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a;}.wise-editor .btn-danger:hover,.wise-editor .btn-danger:focus,.wise-editor .btn-danger:active,.wise-editor .btn-danger.active,.wise-editor .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925;}.wise-editor .btn-danger:active,.wise-editor .btn-danger.active,.wise-editor .open .dropdown-toggle.btn-danger{background-image:none;}.wise-editor .btn-danger.disabled,.wise-editor .btn-danger[disabled],.wise-editor fieldset[disabled] .btn-danger,.wise-editor .btn-danger.disabled:hover,.wise-editor .btn-danger[disabled]:hover,.wise-editor fieldset[disabled] .btn-danger:hover,.wise-editor .btn-danger.disabled:focus,.wise-editor .btn-danger[disabled]:focus,.wise-editor fieldset[disabled] .btn-danger:focus,.wise-editor .btn-danger.disabled:active,.wise-editor .btn-danger[disabled]:active,.wise-editor fieldset[disabled] .btn-danger:active,.wise-editor .btn-danger.disabled.active,.wise-editor .btn-danger[disabled].active,.wise-editor fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a;}.wise-editor .btn-danger .badge{color:#d9534f;background-color:#fff;}.wise-editor .btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0;}.wise-editor .btn-link,.wise-editor .btn-link:active,.wise-editor .btn-link[disabled],.wise-editor fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;}.wise-editor .btn-link,.wise-editor .btn-link:hover,.wise-editor .btn-link:focus,.wise-editor .btn-link:active{border-color:transparent;}.wise-editor .btn-link:hover,.wise-editor .btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent;}.wise-editor .btn-link[disabled]:hover,.wise-editor fieldset[disabled] .btn-link:hover,.wise-editor .btn-link[disabled]:focus,.wise-editor fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none;}.wise-editor .btn-lg,.wise-editor .btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px;}.wise-editor .btn-sm,.wise-editor .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor .btn-xs,.wise-editor .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor .btn-block{display:block;width:100%;padding-left:0;padding-right:0;}.wise-editor .btn-block+.btn-block{margin-top:5px;}.wise-editor input[type=submit].btn-block,.wise-editor input[type=reset].btn-block,.wise-editor input[type=button].btn-block{width:100%;}.wise-editor .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear;}.wise-editor .fade.in{opacity:1;}.wise-editor .collapse{display:none;}.wise-editor .collapse.in{display:block;}.wise-editor .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease;}.wise-editor .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.wise-editor .glyphicon-asterisk:before{content:"\2a";}.wise-editor .glyphicon-plus:before{content:"\2b";}.wise-editor .glyphicon-euro:before{content:"\20ac";}.wise-editor .glyphicon-minus:before{content:"\2212";}.wise-editor .glyphicon-cloud:before{content:"\2601";}.wise-editor .glyphicon-envelope:before{content:"\2709";}.wise-editor .glyphicon-pencil:before{content:"\270f";}.wise-editor .glyphicon-glass:before{content:"\e001";}.wise-editor .glyphicon-music:before{content:"\e002";}.wise-editor .glyphicon-search:before{content:"\e003";}.wise-editor .glyphicon-heart:before{content:"\e005";}.wise-editor .glyphicon-star:before{content:"\e006";}.wise-editor .glyphicon-star-empty:before{content:"\e007";}.wise-editor .glyphicon-user:before{content:"\e008";}.wise-editor .glyphicon-film:before{content:"\e009";}.wise-editor .glyphicon-th-large:before{content:"\e010";}.wise-editor .glyphicon-th:before{content:"\e011";}.wise-editor .glyphicon-th-list:before{content:"\e012";}.wise-editor .glyphicon-ok:before{content:"\e013";}.wise-editor .glyphicon-remove:before{content:"\e014";}.wise-editor .glyphicon-zoom-in:before{content:"\e015";}.wise-editor .glyphicon-zoom-out:before{content:"\e016";}.wise-editor .glyphicon-off:before{content:"\e017";}.wise-editor .glyphicon-signal:before{content:"\e018";}.wise-editor .glyphicon-cog:before{content:"\e019";}.wise-editor .glyphicon-trash:before{content:"\e020";}.wise-editor .glyphicon-home:before{content:"\e021";}.wise-editor .glyphicon-file:before{content:"\e022";}.wise-editor .glyphicon-time:before{content:"\e023";}.wise-editor .glyphicon-road:before{content:"\e024";}.wise-editor .glyphicon-download-alt:before{content:"\e025";}.wise-editor .glyphicon-download:before{content:"\e026";}.wise-editor .glyphicon-upload:before{content:"\e027";}.wise-editor .glyphicon-inbox:before{content:"\e028";}.wise-editor .glyphicon-play-circle:before{content:"\e029";}.wise-editor .glyphicon-repeat:before{content:"\e030";}.wise-editor .glyphicon-refresh:before{content:"\e031";}.wise-editor .glyphicon-list-alt:before{content:"\e032";}.wise-editor .glyphicon-lock:before{content:"\e033";}.wise-editor .glyphicon-flag:before{content:"\e034";}.wise-editor .glyphicon-headphones:before{content:"\e035";}.wise-editor .glyphicon-volume-off:before{content:"\e036";}.wise-editor .glyphicon-volume-down:before{content:"\e037";}.wise-editor .glyphicon-volume-up:before{content:"\e038";}.wise-editor .glyphicon-qrcode:before{content:"\e039";}.wise-editor .glyphicon-barcode:before{content:"\e040";}.wise-editor .glyphicon-tag:before{content:"\e041";}.wise-editor .glyphicon-tags:before{content:"\e042";}.wise-editor .glyphicon-book:before{content:"\e043";}.wise-editor .glyphicon-bookmark:before{content:"\e044";}.wise-editor .glyphicon-print:before{content:"\e045";}.wise-editor .glyphicon-camera:before{content:"\e046";}.wise-editor .glyphicon-font:before{content:"\e047";}.wise-editor .glyphicon-bold:before{content:"\e048";}.wise-editor .glyphicon-italic:before{content:"\e049";}.wise-editor .glyphicon-text-height:before{content:"\e050";}.wise-editor .glyphicon-text-width:before{content:"\e051";}.wise-editor .glyphicon-align-left:before{content:"\e052";}.wise-editor .glyphicon-align-center:before{content:"\e053";}.wise-editor .glyphicon-align-right:before{content:"\e054";}.wise-editor .glyphicon-align-justify:before{content:"\e055";}.wise-editor .glyphicon-list:before{content:"\e056";}.wise-editor .glyphicon-indent-left:before{content:"\e057";}.wise-editor .glyphicon-indent-right:before{content:"\e058";}.wise-editor .glyphicon-facetime-video:before{content:"\e059";}.wise-editor .glyphicon-picture:before{content:"\e060";}.wise-editor .glyphicon-map-marker:before{content:"\e062";}.wise-editor .glyphicon-adjust:before{content:"\e063";}.wise-editor .glyphicon-tint:before{content:"\e064";}.wise-editor .glyphicon-edit:before{content:"\e065";}.wise-editor .glyphicon-share:before{content:"\e066";}.wise-editor .glyphicon-check:before{content:"\e067";}.wise-editor .glyphicon-move:before{content:"\e068";}.wise-editor .glyphicon-step-backward:before{content:"\e069";}.wise-editor .glyphicon-fast-backward:before{content:"\e070";}.wise-editor .glyphicon-backward:before{content:"\e071";}.wise-editor .glyphicon-play:before{content:"\e072";}.wise-editor .glyphicon-pause:before{content:"\e073";}.wise-editor .glyphicon-stop:before{content:"\e074";}.wise-editor .glyphicon-forward:before{content:"\e075";}.wise-editor .glyphicon-fast-forward:before{content:"\e076";}.wise-editor .glyphicon-step-forward:before{content:"\e077";}.wise-editor .glyphicon-eject:before{content:"\e078";}.wise-editor .glyphicon-chevron-left:before{content:"\e079";}.wise-editor .glyphicon-chevron-right:before{content:"\e080";}.wise-editor .glyphicon-plus-sign:before{content:"\e081";}.wise-editor .glyphicon-minus-sign:before{content:"\e082";}.wise-editor .glyphicon-remove-sign:before{content:"\e083";}.wise-editor .glyphicon-ok-sign:before{content:"\e084";}.wise-editor .glyphicon-question-sign:before{content:"\e085";}.wise-editor .glyphicon-info-sign:before{content:"\e086";}.wise-editor .glyphicon-screenshot:before{content:"\e087";}.wise-editor .glyphicon-remove-circle:before{content:"\e088";}.wise-editor .glyphicon-ok-circle:before{content:"\e089";}.wise-editor .glyphicon-ban-circle:before{content:"\e090";}.wise-editor .glyphicon-arrow-left:before{content:"\e091";}.wise-editor .glyphicon-arrow-right:before{content:"\e092";}.wise-editor .glyphicon-arrow-up:before{content:"\e093";}.wise-editor .glyphicon-arrow-down:before{content:"\e094";}.wise-editor .glyphicon-share-alt:before{content:"\e095";}.wise-editor .glyphicon-resize-full:before{content:"\e096";}.wise-editor .glyphicon-resize-small:before{content:"\e097";}.wise-editor .glyphicon-exclamation-sign:before{content:"\e101";}.wise-editor .glyphicon-gift:before{content:"\e102";}.wise-editor .glyphicon-leaf:before{content:"\e103";}.wise-editor .glyphicon-fire:before{content:"\e104";}.wise-editor .glyphicon-eye-open:before{content:"\e105";}.wise-editor .glyphicon-eye-close:before{content:"\e106";}.wise-editor .glyphicon-warning-sign:before{content:"\e107";}.wise-editor .glyphicon-plane:before{content:"\e108";}.wise-editor .glyphicon-calendar:before{content:"\e109";}.wise-editor .glyphicon-random:before{content:"\e110";}.wise-editor .glyphicon-comment:before{content:"\e111";}.wise-editor .glyphicon-magnet:before{content:"\e112";}.wise-editor .glyphicon-chevron-up:before{content:"\e113";}.wise-editor .glyphicon-chevron-down:before{content:"\e114";}.wise-editor .glyphicon-retweet:before{content:"\e115";}.wise-editor .glyphicon-shopping-cart:before{content:"\e116";}.wise-editor .glyphicon-folder-close:before{content:"\e117";}.wise-editor .glyphicon-folder-open:before{content:"\e118";}.wise-editor .glyphicon-resize-vertical:before{content:"\e119";}.wise-editor .glyphicon-resize-horizontal:before{content:"\e120";}.wise-editor .glyphicon-hdd:before{content:"\e121";}.wise-editor .glyphicon-bullhorn:before{content:"\e122";}.wise-editor .glyphicon-bell:before{content:"\e123";}.wise-editor .glyphicon-certificate:before{content:"\e124";}.wise-editor .glyphicon-thumbs-up:before{content:"\e125";}.wise-editor .glyphicon-thumbs-down:before{content:"\e126";}.wise-editor .glyphicon-hand-right:before{content:"\e127";}.wise-editor .glyphicon-hand-left:before{content:"\e128";}.wise-editor .glyphicon-hand-up:before{content:"\e129";}.wise-editor .glyphicon-hand-down:before{content:"\e130";}.wise-editor .glyphicon-circle-arrow-right:before{content:"\e131";}.wise-editor .glyphicon-circle-arrow-left:before{content:"\e132";}.wise-editor .glyphicon-circle-arrow-up:before{content:"\e133";}.wise-editor .glyphicon-circle-arrow-down:before{content:"\e134";}.wise-editor .glyphicon-globe:before{content:"\e135";}.wise-editor .glyphicon-wrench:before{content:"\e136";}.wise-editor .glyphicon-tasks:before{content:"\e137";}.wise-editor .glyphicon-filter:before{content:"\e138";}.wise-editor .glyphicon-briefcase:before{content:"\e139";}.wise-editor .glyphicon-fullscreen:before{content:"\e140";}.wise-editor .glyphicon-dashboard:before{content:"\e141";}.wise-editor .glyphicon-paperclip:before{content:"\e142";}.wise-editor .glyphicon-heart-empty:before{content:"\e143";}.wise-editor .glyphicon-link:before{content:"\e144";}.wise-editor .glyphicon-phone:before{content:"\e145";}.wise-editor .glyphicon-pushpin:before{content:"\e146";}.wise-editor .glyphicon-usd:before{content:"\e148";}.wise-editor .glyphicon-gbp:before{content:"\e149";}.wise-editor .glyphicon-sort:before{content:"\e150";}.wise-editor .glyphicon-sort-by-alphabet:before{content:"\e151";}.wise-editor .glyphicon-sort-by-alphabet-alt:before{content:"\e152";}.wise-editor .glyphicon-sort-by-order:before{content:"\e153";}.wise-editor .glyphicon-sort-by-order-alt:before{content:"\e154";}.wise-editor .glyphicon-sort-by-attributes:before{content:"\e155";}.wise-editor .glyphicon-sort-by-attributes-alt:before{content:"\e156";}.wise-editor .glyphicon-unchecked:before{content:"\e157";}.wise-editor .glyphicon-expand:before{content:"\e158";}.wise-editor .glyphicon-collapse-down:before{content:"\e159";}.wise-editor .glyphicon-collapse-up:before{content:"\e160";}.wise-editor .glyphicon-log-in:before{content:"\e161";}.wise-editor .glyphicon-flash:before{content:"\e162";}.wise-editor .glyphicon-log-out:before{content:"\e163";}.wise-editor .glyphicon-new-window:before{content:"\e164";}.wise-editor .glyphicon-record:before{content:"\e165";}.wise-editor .glyphicon-save:before{content:"\e166";}.wise-editor .glyphicon-open:before{content:"\e167";}.wise-editor .glyphicon-saved:before{content:"\e168";}.wise-editor .glyphicon-import:before{content:"\e169";}.wise-editor .glyphicon-export:before{content:"\e170";}.wise-editor .glyphicon-send:before{content:"\e171";}.wise-editor .glyphicon-floppy-disk:before{content:"\e172";}.wise-editor .glyphicon-floppy-saved:before{content:"\e173";}.wise-editor .glyphicon-floppy-remove:before{content:"\e174";}.wise-editor .glyphicon-floppy-save:before{content:"\e175";}.wise-editor .glyphicon-floppy-open:before{content:"\e176";}.wise-editor .glyphicon-credit-card:before{content:"\e177";}.wise-editor .glyphicon-transfer:before{content:"\e178";}.wise-editor .glyphicon-cutlery:before{content:"\e179";}.wise-editor .glyphicon-header:before{content:"\e180";}.wise-editor .glyphicon-compressed:before{content:"\e181";}.wise-editor .glyphicon-earphone:before{content:"\e182";}.wise-editor .glyphicon-phone-alt:before{content:"\e183";}.wise-editor .glyphicon-tower:before{content:"\e184";}.wise-editor .glyphicon-stats:before{content:"\e185";}.wise-editor .glyphicon-sd-video:before{content:"\e186";}.wise-editor .glyphicon-hd-video:before{content:"\e187";}.wise-editor .glyphicon-subtitles:before{content:"\e188";}.wise-editor .glyphicon-sound-stereo:before{content:"\e189";}.wise-editor .glyphicon-sound-dolby:before{content:"\e190";}.wise-editor .glyphicon-sound-5-1:before{content:"\e191";}.wise-editor .glyphicon-sound-6-1:before{content:"\e192";}.wise-editor .glyphicon-sound-7-1:before{content:"\e193";}.wise-editor .glyphicon-copyright-mark:before{content:"\e194";}.wise-editor .glyphicon-registration-mark:before{content:"\e195";}.wise-editor .glyphicon-cloud-download:before{content:"\e197";}.wise-editor .glyphicon-cloud-upload:before{content:"\e198";}.wise-editor .glyphicon-tree-conifer:before{content:"\e199";}.wise-editor .glyphicon-tree-deciduous:before{content:"\e200";}.wise-editor .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent;}.wise-editor .dropdown{position:relative;}.wise-editor .dropdown-toggle:focus{outline:0;}.wise-editor .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box;}.wise-editor .dropdown-menu.pull-right{right:0;left:auto;}.wise-editor .dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5;}.wise-editor .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap;}.wise-editor .dropdown-menu>li>a:hover,.wise-editor .dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5;}.wise-editor .dropdown-menu>.active>a,.wise-editor .dropdown-menu>.active>a:hover,.wise-editor .dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca;}.wise-editor .dropdown-menu>.disabled>a,.wise-editor .dropdown-menu>.disabled>a:hover,.wise-editor .dropdown-menu>.disabled>a:focus{color:#999;}.wise-editor .dropdown-menu>.disabled>a:hover,.wise-editor .dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed;}.wise-editor .open>.dropdown-menu{display:block;}.wise-editor .open>a{outline:0;}.wise-editor .dropdown-menu-right{left:auto;right:0;}.wise-editor .dropdown-menu-left{left:0;right:auto;}.wise-editor .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999;}.wise-editor .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}.wise-editor .pull-right>.dropdown-menu{right:0;left:auto;}.wise-editor .dropup .caret,.wise-editor .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:"";}.wise-editor .dropup .dropdown-menu,.wise-editor .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}@media (min-width:768px){.wise-editor .navbar-right .dropdown-menu{left:auto;right:0;}.wise-editor .navbar-right .dropdown-menu-left{left:0;right:auto;}}.wise-editor .btn-group,.wise-editor .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;}.wise-editor .btn-group>.btn,.wise-editor .btn-group-vertical>.btn{position:relative;float:left;}.wise-editor .btn-group>.btn:hover,.wise-editor .btn-group-vertical>.btn:hover,.wise-editor .btn-group>.btn:focus,.wise-editor .btn-group-vertical>.btn:focus,.wise-editor .btn-group>.btn:active,.wise-editor .btn-group-vertical>.btn:active,.wise-editor .btn-group>.btn.active,.wise-editor .btn-group-vertical>.btn.active{z-index:2;}.wise-editor .btn-group>.btn:focus,.wise-editor .btn-group-vertical>.btn:focus{outline:0;}.wise-editor .btn-group .btn+.btn,.wise-editor .btn-group .btn+.btn-group,.wise-editor .btn-group .btn-group+.btn,.wise-editor .btn-group .btn-group+.btn-group{margin-left:-1px;}.wise-editor .btn-toolbar{margin-left:-5px;}.wise-editor .btn-toolbar .btn-group,.wise-editor .btn-toolbar .input-group{float:left;}.wise-editor .btn-toolbar>.btn,.wise-editor .btn-toolbar>.btn-group,.wise-editor .btn-toolbar>.input-group{margin-left:5px;}.wise-editor .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0;}.wise-editor .btn-group>.btn:first-child{margin-left:0;}.wise-editor .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;}.wise-editor .btn-group>.btn:last-child:not(:first-child),.wise-editor .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;}.wise-editor .btn-group>.btn-group{float:left;}.wise-editor .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}.wise-editor .btn-group>.btn-group:first-child>.btn:last-child,.wise-editor .btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0;}.wise-editor .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;}.wise-editor .btn-group .dropdown-toggle:active,.wise-editor .btn-group.open .dropdown-toggle{outline:0;}.wise-editor .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;}.wise-editor .btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px;}.wise-editor .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.wise-editor .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none;}.wise-editor .btn .caret{margin-left:0;}.wise-editor .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0;}.wise-editor .dropup .btn-lg .caret{border-width:0 5px 5px;}.wise-editor .btn-group-vertical>.btn,.wise-editor .btn-group-vertical>.btn-group,.wise-editor .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%;}.wise-editor .btn-group-vertical>.btn-group>.btn{float:none;}.wise-editor .btn-group-vertical>.btn+.btn,.wise-editor .btn-group-vertical>.btn+.btn-group,.wise-editor .btn-group-vertical>.btn-group+.btn,.wise-editor .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0;}.wise-editor .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0;}.wise-editor .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;}.wise-editor .btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}.wise-editor .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.wise-editor .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0;}.wise-editor .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate;}.wise-editor .btn-group-justified>.btn,.wise-editor .btn-group-justified>.btn-group{float:none;display:table-cell;width:1%;}.wise-editor .btn-group-justified>.btn-group .btn{width:100%;}.wise-editor [data-toggle=buttons]>.btn>input[type=radio],.wise-editor [data-toggle=buttons]>.btn>input[type=checkbox]{display:none;}.wise-editor .input-group{position:relative;display:table;border-collapse:separate;}.wise-editor .input-group[class*=col-]{float:none;padding-left:0;padding-right:0;}.wise-editor .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0;}.wise-editor .input-group-lg>.form-control,.wise-editor .input-group-lg>.input-group-addon,.wise-editor .input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.33;border-radius:6px;}.wise-editor select.input-group-lg>.form-control,.wise-editor select.input-group-lg>.input-group-addon,.wise-editor select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px;}.wise-editor textarea.input-group-lg>.form-control,.wise-editor textarea.input-group-lg>.input-group-addon,.wise-editor textarea.input-group-lg>.input-group-btn>.btn,.wise-editor select[multiple].input-group-lg>.form-control,.wise-editor select[multiple].input-group-lg>.input-group-addon,.wise-editor select[multiple].input-group-lg>.input-group-btn>.btn{height:auto;}.wise-editor .input-group-sm>.form-control,.wise-editor .input-group-sm>.input-group-addon,.wise-editor .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}.wise-editor select.input-group-sm>.form-control,.wise-editor select.input-group-sm>.input-group-addon,.wise-editor select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px;}.wise-editor textarea.input-group-sm>.form-control,.wise-editor textarea.input-group-sm>.input-group-addon,.wise-editor textarea.input-group-sm>.input-group-btn>.btn,.wise-editor select[multiple].input-group-sm>.form-control,.wise-editor select[multiple].input-group-sm>.input-group-addon,.wise-editor select[multiple].input-group-sm>.input-group-btn>.btn{height:auto;}.wise-editor .input-group-addon,.wise-editor .input-group-btn,.wise-editor .input-group .form-control{display:table-cell;}.wise-editor .input-group-addon:not(:first-child):not(:last-child),.wise-editor .input-group-btn:not(:first-child):not(:last-child),.wise-editor .input-group .form-control:not(:first-child):not(:last-child){border-radius:0;}.wise-editor .input-group-addon,.wise-editor .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle;}.wise-editor .input-group-addon{padding:6px 12px;font-size:13px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px;}.wise-editor .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px;}.wise-editor .input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:6px;}.wise-editor .input-group-addon input[type=radio],.wise-editor .input-group-addon input[type=checkbox]{margin-top:0;}.wise-editor .input-group .form-control:first-child,.wise-editor .input-group-addon:first-child,.wise-editor .input-group-btn:first-child>.btn,.wise-editor .input-group-btn:first-child>.btn-group>.btn,.wise-editor .input-group-btn:first-child>.dropdown-toggle,.wise-editor .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.wise-editor .input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0;}.wise-editor .input-group-addon:first-child{border-right:0;}.wise-editor .input-group .form-control:last-child,.wise-editor .input-group-addon:last-child,.wise-editor .input-group-btn:last-child>.btn,.wise-editor .input-group-btn:last-child>.btn-group>.btn,.wise-editor .input-group-btn:last-child>.dropdown-toggle,.wise-editor .input-group-btn:first-child>.btn:not(:first-child),.wise-editor .input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0;}.wise-editor .input-group-addon:last-child{border-left:0;}.wise-editor .input-group-btn{position:relative;font-size:0;white-space:nowrap;}.wise-editor .input-group-btn>.btn{position:relative;}.wise-editor .input-group-btn>.btn+.btn{margin-left:-1px;}.wise-editor .input-group-btn>.btn:hover,.wise-editor .input-group-btn>.btn:focus,.wise-editor .input-group-btn>.btn:active{z-index:2;}.wise-editor .input-group-btn:first-child>.btn,.wise-editor .input-group-btn:first-child>.btn-group{margin-right:-1px;}.wise-editor .input-group-btn:last-child>.btn,.wise-editor .input-group-btn:last-child>.btn-group{margin-left:-1px;}.wise-editor .nav{margin-bottom:0;padding-left:0;list-style:none;}.wise-editor .nav>li{position:relative;display:block;}.wise-editor .nav>li>a{position:relative;display:block;padding:10px 15px;}.wise-editor .nav>li>a:hover,.wise-editor .nav>li>a:focus{text-decoration:none;background-color:#eee;}.wise-editor .nav>li.disabled>a{color:#999;}.wise-editor .nav>li.disabled>a:hover,.wise-editor .nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed;}.wise-editor .nav .open>a,.wise-editor .nav .open>a:hover,.wise-editor .nav .open>a:focus{background-color:#eee;border-color:#428bca;}.wise-editor .nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5;}.wise-editor .nav>li>a>img{max-width:none;}.wise-editor .nav-tabs{border-bottom:1px solid #ddd;}.wise-editor .nav-tabs>li{float:left;margin-bottom:-1px;}.wise-editor .nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0;}.wise-editor .nav-tabs>li>a:hover{border-color:#eee #eee #ddd;}.wise-editor .nav-tabs>li.active>a,.wise-editor .nav-tabs>li.active>a:hover,.wise-editor .nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}.wise-editor .nav-tabs.nav-justified{width:100%;border-bottom:0;}.wise-editor .nav-tabs.nav-justified>li{float:none;}.wise-editor .nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;}.wise-editor .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto;}@media (min-width:768px){.wise-editor .nav-tabs.nav-justified>li{display:table-cell;width:1%;}.wise-editor .nav-tabs.nav-justified>li>a{margin-bottom:0;}}.wise-editor .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px;}.wise-editor .nav-tabs.nav-justified>.active>a,.wise-editor .nav-tabs.nav-justified>.active>a:hover,.wise-editor .nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd;}@media (min-width:768px){.wise-editor .nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0;}.wise-editor .nav-tabs.nav-justified>.active>a,.wise-editor .nav-tabs.nav-justified>.active>a:hover,.wise-editor .nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff;}}.wise-editor .nav-pills>li{float:left;}.wise-editor .nav-pills>li>a{border-radius:4px;}.wise-editor .nav-pills>li+li{margin-left:2px;}.wise-editor .nav-pills>li.active>a,.wise-editor .nav-pills>li.active>a:hover,.wise-editor .nav-pills>li.active>a:focus{color:#fff;background-color:#428bca;}.wise-editor .nav-stacked>li{float:none;}.wise-editor .nav-stacked>li+li{margin-top:2px;margin-left:0;}.wise-editor .nav-justified{width:100%;}.wise-editor .nav-justified>li{float:none;}.wise-editor .nav-justified>li>a{text-align:center;margin-bottom:5px;}.wise-editor .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto;}@media (min-width:768px){.wise-editor .nav-justified>li{display:table-cell;width:1%;}.wise-editor .nav-justified>li>a{margin-bottom:0;}}.wise-editor .nav-tabs-justified{border-bottom:0;}.wise-editor .nav-tabs-justified>li>a{margin-right:0;border-radius:4px;}.wise-editor .nav-tabs-justified>.active>a,.wise-editor .nav-tabs-justified>.active>a:hover,.wise-editor .nav-tabs-justified>.active>a:focus{border:1px solid #ddd;}@media (min-width:768px){.wise-editor .nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0;}.wise-editor .nav-tabs-justified>.active>a,.wise-editor .nav-tabs-justified>.active>a:hover,.wise-editor .nav-tabs-justified>.active>a:focus{border-bottom-color:#fff;}}.wise-editor .tab-content>.tab-pane{display:none;}.wise-editor .tab-content>.active{display:block;}.wise-editor .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .navbar{position:relative;min-height:50px;margin-bottom:18px;border:1px solid transparent;}@media (min-width:768px){.wise-editor .navbar{border-radius:4px;}}@media (min-width:768px){.wise-editor .navbar-header{float:left;}}.wise-editor .navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch;}.wise-editor .navbar-collapse.in{overflow-y:auto;}@media (min-width:768px){.wise-editor .navbar-collapse{width:auto;border-top:0;box-shadow:none;}.wise-editor .navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;}.wise-editor .navbar-collapse.in{overflow-y:visible;}.wise-editor .navbar-fixed-top .navbar-collapse,.wise-editor .navbar-static-top .navbar-collapse,.wise-editor .navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0;}}.wise-editor .container>.navbar-header,.wise-editor .container-fluid>.navbar-header,.wise-editor .container>.navbar-collapse,.wise-editor .container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px;}@media (min-width:768px){.wise-editor .container>.navbar-header,.wise-editor .container-fluid>.navbar-header,.wise-editor .container>.navbar-collapse,.wise-editor .container-fluid>.navbar-collapse{margin-right:0;margin-left:0;}}.wise-editor .navbar-static-top{z-index:1000;border-width:0 0 1px;}@media (min-width:768px){.wise-editor .navbar-static-top{border-radius:0;}}.wise-editor .navbar-fixed-top,.wise-editor .navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;}@media (min-width:768px){.wise-editor .navbar-fixed-top,.wise-editor .navbar-fixed-bottom{border-radius:0;}}.wise-editor .navbar-fixed-top{top:0;border-width:0 0 1px;}.wise-editor .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0;}.wise-editor .navbar-brand{float:left;padding:16px 15px;font-size:17px;line-height:18px;height:50px;}.wise-editor .navbar-brand:hover,.wise-editor .navbar-brand:focus{text-decoration:none;}@media (min-width:768px){.wise-editor .navbar>.container .navbar-brand,.wise-editor .navbar>.container-fluid .navbar-brand{margin-left:-15px;}}.wise-editor .navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px;}.wise-editor .navbar-toggle:focus{outline:0;}.wise-editor .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;}.wise-editor .navbar-toggle .icon-bar+.icon-bar{margin-top:4px;}@media (min-width:768px){.wise-editor .navbar-toggle{display:none;}}.wise-editor .navbar-nav{margin:8px -15px;}.wise-editor .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px;}@media (max-width:767px){.wise-editor .navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none;}.wise-editor .navbar-nav .open .dropdown-menu>li>a,.wise-editor .navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px;}.wise-editor .navbar-nav .open .dropdown-menu>li>a{line-height:18px;}.wise-editor .navbar-nav .open .dropdown-menu>li>a:hover,.wise-editor .navbar-nav .open .dropdown-menu>li>a:focus{background-image:none;}}@media (min-width:768px){.wise-editor .navbar-nav{float:left;margin:0;}.wise-editor .navbar-nav>li{float:left;}.wise-editor .navbar-nav>li>a{padding-top:16px;padding-bottom:16px;}.wise-editor .navbar-nav.navbar-right:last-child{margin-right:-15px;}}@media (min-width:768px){.wise-editor .navbar-left{float:left!important;}.wise-editor .navbar-right{float:right!important;}}.wise-editor .navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:9px;margin-bottom:9px;}@media (min-width:768px){.wise-editor .navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;}.wise-editor .navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle;}.wise-editor .navbar-form .input-group>.form-control{width:100%;}.wise-editor .navbar-form .control-label{margin-bottom:0;vertical-align:middle;}.wise-editor .navbar-form .radio,.wise-editor .navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle;}.wise-editor .navbar-form .radio input[type=radio],.wise-editor .navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0;}.wise-editor .navbar-form .has-feedback .form-control-feedback{top:0;}}@media (max-width:767px){.wise-editor .navbar-form .form-group{margin-bottom:5px;}}@media (min-width:768px){.wise-editor .navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none;}.wise-editor .navbar-form.navbar-right:last-child{margin-right:-15px;}}.wise-editor .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0;}.wise-editor .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0;}.wise-editor .navbar-btn{margin-top:9px;margin-bottom:9px;}.wise-editor .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px;}.wise-editor .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px;}.wise-editor .navbar-text{margin-top:16px;margin-bottom:16px;}@media (min-width:768px){.wise-editor .navbar-text{float:left;margin-left:15px;margin-right:15px;}.wise-editor .navbar-text.navbar-right:last-child{margin-right:0;}}.wise-editor .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7;}.wise-editor .navbar-default .navbar-brand{color:#777;}.wise-editor .navbar-default .navbar-brand:hover,.wise-editor .navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent;}.wise-editor .navbar-default .navbar-text{color:#777;}.wise-editor .navbar-default .navbar-nav>li>a{color:#777;}.wise-editor .navbar-default .navbar-nav>li>a:hover,.wise-editor .navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent;}.wise-editor .navbar-default .navbar-nav>.active>a,.wise-editor .navbar-default .navbar-nav>.active>a:hover,.wise-editor .navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7;}.wise-editor .navbar-default .navbar-nav>.disabled>a,.wise-editor .navbar-default .navbar-nav>.disabled>a:hover,.wise-editor .navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent;}.wise-editor .navbar-default .navbar-toggle{border-color:#ddd;}.wise-editor .navbar-default .navbar-toggle:hover,.wise-editor .navbar-default .navbar-toggle:focus{background-color:#ddd;}.wise-editor .navbar-default .navbar-toggle .icon-bar{background-color:#888;}.wise-editor .navbar-default .navbar-collapse,.wise-editor .navbar-default .navbar-form{border-color:#e7e7e7;}.wise-editor .navbar-default .navbar-nav>.open>a,.wise-editor .navbar-default .navbar-nav>.open>a:hover,.wise-editor .navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555;}@media (max-width:767px){.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777;}.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent;}.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7;}.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.wise-editor .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent;}}.wise-editor .navbar-default .navbar-link{color:#777;}.wise-editor .navbar-default .navbar-link:hover{color:#333;}.wise-editor .navbar-inverse{background-color:#222;border-color:#080808;}.wise-editor .navbar-inverse .navbar-brand{color:#999;}.wise-editor .navbar-inverse .navbar-brand:hover,.wise-editor .navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent;}.wise-editor .navbar-inverse .navbar-text{color:#999;}.wise-editor .navbar-inverse .navbar-nav>li>a{color:#999;}.wise-editor .navbar-inverse .navbar-nav>li>a:hover,.wise-editor .navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent;}.wise-editor .navbar-inverse .navbar-nav>.active>a,.wise-editor .navbar-inverse .navbar-nav>.active>a:hover,.wise-editor .navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808;}.wise-editor .navbar-inverse .navbar-nav>.disabled>a,.wise-editor .navbar-inverse .navbar-nav>.disabled>a:hover,.wise-editor .navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent;}.wise-editor .navbar-inverse .navbar-toggle{border-color:#333;}.wise-editor .navbar-inverse .navbar-toggle:hover,.wise-editor .navbar-inverse .navbar-toggle:focus{background-color:#333;}.wise-editor .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff;}.wise-editor .navbar-inverse .navbar-collapse,.wise-editor .navbar-inverse .navbar-form{border-color:#101010;}.wise-editor .navbar-inverse .navbar-nav>.open>a,.wise-editor .navbar-inverse .navbar-nav>.open>a:hover,.wise-editor .navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff;}@media (max-width:767px){.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808;}.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent;}}.wise-editor .navbar-inverse .navbar-link{color:#999;}.wise-editor .navbar-inverse .navbar-link:hover{color:#fff;}.wise-editor .breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:#f5f5f5;border-radius:4px;}.wise-editor .breadcrumb>li{display:inline-block;}.wise-editor .breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc;}.wise-editor .breadcrumb>.active{color:#999;}.wise-editor .pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:4px;}.wise-editor .pagination>li{display:inline;}.wise-editor .pagination>li>a,.wise-editor .pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px;}.wise-editor .pagination>li:first-child>a,.wise-editor .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px;}.wise-editor .pagination>li:last-child>a,.wise-editor .pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px;}.wise-editor .pagination>li>a:hover,.wise-editor .pagination>li>span:hover,.wise-editor .pagination>li>a:focus,.wise-editor .pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd;}.wise-editor .pagination>.active>a,.wise-editor .pagination>.active>span,.wise-editor .pagination>.active>a:hover,.wise-editor .pagination>.active>span:hover,.wise-editor .pagination>.active>a:focus,.wise-editor .pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default;}.wise-editor .pagination>.disabled>span,.wise-editor .pagination>.disabled>span:hover,.wise-editor .pagination>.disabled>span:focus,.wise-editor .pagination>.disabled>a,.wise-editor .pagination>.disabled>a:hover,.wise-editor .pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed;}.wise-editor .pagination-lg>li>a,.wise-editor .pagination-lg>li>span{padding:10px 16px;font-size:17px;}.wise-editor .pagination-lg>li:first-child>a,.wise-editor .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px;}.wise-editor .pagination-lg>li:last-child>a,.wise-editor .pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px;}.wise-editor .pagination-sm>li>a,.wise-editor .pagination-sm>li>span{padding:5px 10px;font-size:12px;}.wise-editor .pagination-sm>li:first-child>a,.wise-editor .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px;}.wise-editor .pagination-sm>li:last-child>a,.wise-editor .pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px;}.wise-editor .pager{padding-left:0;margin:18px 0;list-style:none;text-align:center;}.wise-editor .pager li{display:inline;}.wise-editor .pager li>a,.wise-editor .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px;}.wise-editor .pager li>a:hover,.wise-editor .pager li>a:focus{text-decoration:none;background-color:#eee;}.wise-editor .pager .next>a,.wise-editor .pager .next>span{float:right;}.wise-editor .pager .previous>a,.wise-editor .pager .previous>span{float:left;}.wise-editor .pager .disabled>a,.wise-editor .pager .disabled>a:hover,.wise-editor .pager .disabled>a:focus,.wise-editor .pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed;}.wise-editor .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;}.wise-editor .label[href]:hover,.wise-editor .label[href]:focus{color:#fff;text-decoration:none;cursor:pointer;}.wise-editor .label:empty{display:none;}.wise-editor .btn .label{position:relative;top:-1px;}.wise-editor .label-default{background-color:#999;}.wise-editor .label-default[href]:hover,.wise-editor .label-default[href]:focus{background-color:gray;}.wise-editor .label-primary{background-color:#428bca;}.wise-editor .label-primary[href]:hover,.wise-editor .label-primary[href]:focus{background-color:#3071a9;}.wise-editor .label-success{background-color:#5cb85c;}.wise-editor .label-success[href]:hover,.wise-editor .label-success[href]:focus{background-color:#449d44;}.wise-editor .label-info{background-color:#5bc0de;}.wise-editor .label-info[href]:hover,.wise-editor .label-info[href]:focus{background-color:#31b0d5;}.wise-editor .label-warning{background-color:#f0ad4e;}.wise-editor .label-warning[href]:hover,.wise-editor .label-warning[href]:focus{background-color:#ec971f;}.wise-editor .label-danger{background-color:#d9534f;}.wise-editor .label-danger[href]:hover,.wise-editor .label-danger[href]:focus{background-color:#c9302c;}.wise-editor .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px;}.wise-editor .badge:empty{display:none;}.wise-editor .btn .badge{position:relative;top:-1px;}.wise-editor .btn-xs .badge{top:0;padding:1px 5px;}.wise-editor a.badge:hover,.wise-editor a.badge:focus{color:#fff;text-decoration:none;cursor:pointer;}.wise-editor a.list-group-item.active>.badge,.wise-editor .nav-pills>.active>a>.badge{color:#428bca;background-color:#fff;}.wise-editor .nav-pills>li>a>.badge{margin-left:3px;}.wise-editor .jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee;}.wise-editor .jumbotron h1,.wise-editor .jumbotron .h1{color:inherit;}.wise-editor .jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200;}.wise-editor .container .jumbotron{border-radius:6px;}.wise-editor .jumbotron .container{max-width:100%;}@media screen and (min-width:768px){.wise-editor .jumbotron{padding-top:48px;padding-bottom:48px;}.wise-editor .container .jumbotron{padding-left:60px;padding-right:60px;}.wise-editor .jumbotron h1,.wise-editor .jumbotron .h1{font-size:58.5px;}}.wise-editor .thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;}.wise-editor .thumbnail>img,.wise-editor .thumbnail a>img{margin-left:auto;margin-right:auto;}.wise-editor a.thumbnail:hover,.wise-editor a.thumbnail:focus,.wise-editor a.thumbnail.active{border-color:#428bca;}.wise-editor .thumbnail .caption{padding:9px;color:#333;}.wise-editor .alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:4px;}.wise-editor .alert h4{margin-top:0;color:inherit;}.wise-editor .alert .alert-link{font-weight:700;}.wise-editor .alert>p,.wise-editor .alert>ul{margin-bottom:0;}.wise-editor .alert>p+p{margin-top:5px;}.wise-editor .alert-dismissable{padding-right:35px;}.wise-editor .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit;}.wise-editor .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d;}.wise-editor .alert-success hr{border-top-color:#c9e2b3;}.wise-editor .alert-success .alert-link{color:#2b542c;}.wise-editor .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f;}.wise-editor .alert-info hr{border-top-color:#a6e1ec;}.wise-editor .alert-info .alert-link{color:#245269;}.wise-editor .alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b;}.wise-editor .alert-warning hr{border-top-color:#f7e1b5;}.wise-editor .alert-warning .alert-link{color:#66512c;}.wise-editor .alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442;}.wise-editor .alert-danger hr{border-top-color:#e4b9c0;}.wise-editor .alert-danger .alert-link{color:#843534;}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;}to{background-position:0 0;}}.wise-editor .progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);}.wise-editor .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:18px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease;}.wise-editor .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px;}.wise-editor .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}.wise-editor .progress-bar-success{background-color:#5cb85c;}.wise-editor .progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .progress-bar-info{background-color:#5bc0de;}.wise-editor .progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .progress-bar-warning{background-color:#f0ad4e;}.wise-editor .progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .progress-bar-danger{background-color:#d9534f;}.wise-editor .progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);}.wise-editor .media,.wise-editor .media-body{overflow:hidden;zoom:1;}.wise-editor .media,.wise-editor .media .media{margin-top:15px;}.wise-editor .media:first-child{margin-top:0;}.wise-editor .media-object{display:block;}.wise-editor .media-heading{margin:0 0 5px;}.wise-editor .media>.pull-left{margin-right:10px;}.wise-editor .media>.pull-right{margin-left:10px;}.wise-editor .media-list{padding-left:0;list-style:none;}.wise-editor .list-group{margin-bottom:20px;padding-left:0;}.wise-editor .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd;}.wise-editor .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px;}.wise-editor .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}.wise-editor .list-group-item>.badge{float:right;}.wise-editor .list-group-item>.badge+.badge{margin-right:5px;}.wise-editor a.list-group-item{color:#555;}.wise-editor a.list-group-item .list-group-item-heading{color:#333;}.wise-editor a.list-group-item:hover,.wise-editor a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5;}.wise-editor a.list-group-item.active,.wise-editor a.list-group-item.active:hover,.wise-editor a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;}.wise-editor a.list-group-item.active .list-group-item-heading,.wise-editor a.list-group-item.active:hover .list-group-item-heading,.wise-editor a.list-group-item.active:focus .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item.active .list-group-item-text,.wise-editor a.list-group-item.active:hover .list-group-item-text,.wise-editor a.list-group-item.active:focus .list-group-item-text{color:#e1edf7;}.wise-editor .list-group-item-success{color:#3c763d;background-color:#dff0d8;}.wise-editor a.list-group-item-success{color:#3c763d;}.wise-editor a.list-group-item-success .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-success:hover,.wise-editor a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6;}.wise-editor a.list-group-item-success.active,.wise-editor a.list-group-item-success.active:hover,.wise-editor a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d;}.wise-editor .list-group-item-info{color:#31708f;background-color:#d9edf7;}.wise-editor a.list-group-item-info{color:#31708f;}.wise-editor a.list-group-item-info .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-info:hover,.wise-editor a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3;}.wise-editor a.list-group-item-info.active,.wise-editor a.list-group-item-info.active:hover,.wise-editor a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f;}.wise-editor .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3;}.wise-editor a.list-group-item-warning{color:#8a6d3b;}.wise-editor a.list-group-item-warning .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-warning:hover,.wise-editor a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc;}.wise-editor a.list-group-item-warning.active,.wise-editor a.list-group-item-warning.active:hover,.wise-editor a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b;}.wise-editor .list-group-item-danger{color:#a94442;background-color:#f2dede;}.wise-editor a.list-group-item-danger{color:#a94442;}.wise-editor a.list-group-item-danger .list-group-item-heading{color:inherit;}.wise-editor a.list-group-item-danger:hover,.wise-editor a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc;}.wise-editor a.list-group-item-danger.active,.wise-editor a.list-group-item-danger.active:hover,.wise-editor a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442;}.wise-editor .list-group-item-heading{margin-top:0;margin-bottom:5px;}.wise-editor .list-group-item-text{margin-bottom:0;line-height:1.3;}.wise-editor .panel{margin-bottom:18px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05);}.wise-editor .panel-body{padding:15px;}.wise-editor .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px;}.wise-editor .panel-heading>.dropdown .dropdown-toggle{color:inherit;}.wise-editor .panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit;}.wise-editor .panel-title>a{color:inherit;}.wise-editor .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px;}.wise-editor .panel>.list-group{margin-bottom:0;}.wise-editor .panel>.list-group .list-group-item{border-width:1px 0;border-radius:0;}.wise-editor .panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px;}.wise-editor .panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;}.wise-editor .panel-heading+.list-group .list-group-item:first-child{border-top-width:0;}.wise-editor .panel>.table,.wise-editor .panel>.table-responsive>.table{margin-bottom:0;}.wise-editor .panel>.table:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px;}.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px;}.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.wise-editor .panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.wise-editor .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.wise-editor .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px;}.wise-editor .panel>.table:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px;}.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px;}.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.wise-editor .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.wise-editor .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.wise-editor .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px;}.wise-editor .panel>.panel-body+.table,.wise-editor .panel>.panel-body+.table-responsive{border-top:1px solid #ddd;}.wise-editor .panel>.table>tbody:first-child>tr:first-child th,.wise-editor .panel>.table>tbody:first-child>tr:first-child td{border-top:0;}.wise-editor .panel>.table-bordered,.wise-editor .panel>.table-responsive>.table-bordered{border:0;}.wise-editor .panel>.table-bordered>thead>tr>th:first-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.wise-editor .panel>.table-bordered>tbody>tr>th:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.wise-editor .panel>.table-bordered>tfoot>tr>th:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.wise-editor .panel>.table-bordered>thead>tr>td:first-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.wise-editor .panel>.table-bordered>tbody>tr>td:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.wise-editor .panel>.table-bordered>tfoot>tr>td:first-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;}.wise-editor .panel>.table-bordered>thead>tr>th:last-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.wise-editor .panel>.table-bordered>tbody>tr>th:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.wise-editor .panel>.table-bordered>tfoot>tr>th:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.wise-editor .panel>.table-bordered>thead>tr>td:last-child,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.wise-editor .panel>.table-bordered>tbody>tr>td:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.wise-editor .panel>.table-bordered>tfoot>tr>td:last-child,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;}.wise-editor .panel>.table-bordered>thead>tr:first-child>td,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.wise-editor .panel>.table-bordered>tbody>tr:first-child>td,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.wise-editor .panel>.table-bordered>thead>tr:first-child>th,.wise-editor .panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.wise-editor .panel>.table-bordered>tbody>tr:first-child>th,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0;}.wise-editor .panel>.table-bordered>tbody>tr:last-child>td,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.wise-editor .panel>.table-bordered>tfoot>tr:last-child>td,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.wise-editor .panel>.table-bordered>tbody>tr:last-child>th,.wise-editor .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.wise-editor .panel>.table-bordered>tfoot>tr:last-child>th,.wise-editor .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0;}.wise-editor .panel>.table-responsive{border:0;margin-bottom:0;}.wise-editor .panel-group{margin-bottom:18px;}.wise-editor .panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden;}.wise-editor .panel-group .panel+.panel{margin-top:5px;}.wise-editor .panel-group .panel-heading{border-bottom:0;}.wise-editor .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd;}.wise-editor .panel-group .panel-footer{border-top:0;}.wise-editor .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd;}.wise-editor .panel-default{border-color:#ddd;}.wise-editor .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd;}.wise-editor .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd;}.wise-editor .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd;}.wise-editor .panel-primary{border-color:#428bca;}.wise-editor .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca;}.wise-editor .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca;}.wise-editor .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca;}.wise-editor .panel-success{border-color:#d6e9c6;}.wise-editor .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6;}.wise-editor .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6;}.wise-editor .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6;}.wise-editor .panel-info{border-color:#bce8f1;}.wise-editor .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1;}.wise-editor .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1;}.wise-editor .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1;}.wise-editor .panel-warning{border-color:#faebcc;}.wise-editor .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc;}.wise-editor .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc;}.wise-editor .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc;}.wise-editor .panel-danger{border-color:#ebccd1;}.wise-editor .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1;}.wise-editor .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1;}.wise-editor .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1;}.wise-editor .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);}.wise-editor .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15);}.wise-editor .well-lg{padding:24px;border-radius:6px;}.wise-editor .well-sm{padding:9px;border-radius:3px;}.wise-editor .close{float:right;font-size:19.5px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20);}.wise-editor .close:hover,.wise-editor .close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50);}.wise-editor button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;}.wise-editor .modal-open{overflow:hidden;}.wise-editor .modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;}.wise-editor .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;}.wise-editor .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0);}.wise-editor .modal-dialog{position:relative;width:auto;margin:10px;}.wise-editor .modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0;}.wise-editor .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;}.wise-editor .modal-backdrop.fade{opacity:0;filter:alpha(opacity=0);}.wise-editor .modal-backdrop.in{opacity:.5;filter:alpha(opacity=50);}.wise-editor .modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px;}.wise-editor .modal-header .close{margin-top:-2px;}.wise-editor .modal-title{margin:0;line-height:1.42857143;}.wise-editor .modal-body{position:relative;padding:20px;}.wise-editor .modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5;}.wise-editor .modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}.wise-editor .modal-footer .btn-group .btn+.btn{margin-left:-1px;}.wise-editor .modal-footer .btn-block+.btn-block{margin-left:0;}@media (min-width:768px){.wise-editor .modal-dialog{width:600px;margin:30px auto;}.wise-editor .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5);}.wise-editor .modal-sm{width:300px;}}@media (min-width:992px){.wise-editor .modal-lg{width:900px;}}.wise-editor .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.wise-editor .tooltip.in{opacity:.9;filter:alpha(opacity=90);}.wise-editor .tooltip.top{margin-top:-3px;padding:5px 0;}.wise-editor .tooltip.right{margin-left:3px;padding:0 5px;}.wise-editor .tooltip.bottom{margin-top:3px;padding:5px 0;}.wise-editor .tooltip.left{margin-left:-3px;padding:0 5px;}.wise-editor .tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px;}.wise-editor .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}.wise-editor .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000;}.wise-editor .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000;}.wise-editor .tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000;}.wise-editor .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000;}.wise-editor .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000;}.wise-editor .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;}.wise-editor .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000;}.wise-editor .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000;}.wise-editor .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal;}.wise-editor .popover.top{margin-top:-10px;}.wise-editor .popover.right{margin-left:10px;}.wise-editor .popover.bottom{margin-top:10px;}.wise-editor .popover.left{margin-left:-10px;}.wise-editor .popover-title{margin:0;padding:8px 14px;font-size:13px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0;}.wise-editor .popover-content{padding:4px 6px;}.wise-editor .popover>.arrow,.wise-editor .popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}.wise-editor .popover>.arrow{border-width:11px;}.wise-editor .popover>.arrow:after{border-width:10px;content:"";}.wise-editor .popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;}.wise-editor .popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff;}.wise-editor .popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25);}.wise-editor .popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff;}.wise-editor .popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;}.wise-editor .popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff;}.wise-editor .popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25);}.wise-editor .popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px;}.wise-editor .carousel{position:relative;}.wise-editor .carousel-inner{position:relative;overflow:hidden;width:100%;}.wise-editor .carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left;}.wise-editor .carousel-inner>.item>img,.wise-editor .carousel-inner>.item>a>img{line-height:1;}.wise-editor .carousel-inner>.active,.wise-editor .carousel-inner>.next,.wise-editor .carousel-inner>.prev{display:block;}.wise-editor .carousel-inner>.active{left:0;}.wise-editor .carousel-inner>.next,.wise-editor .carousel-inner>.prev{position:absolute;top:0;width:100%;}.wise-editor .carousel-inner>.next{left:100%;}.wise-editor .carousel-inner>.prev{left:-100%;}.wise-editor .carousel-inner>.next.left,.wise-editor .carousel-inner>.prev.right{left:0;}.wise-editor .carousel-inner>.active.left{left:-100%;}.wise-editor .carousel-inner>.active.right{left:100%;}.wise-editor .carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);}.wise-editor .carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);}.wise-editor .carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);}.wise-editor .carousel-control:hover,.wise-editor .carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90);}.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .icon-next,.wise-editor .carousel-control .glyphicon-chevron-left,.wise-editor .carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block;}.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .glyphicon-chevron-left{left:50%;}.wise-editor .carousel-control .icon-next,.wise-editor .carousel-control .glyphicon-chevron-right{right:50%;}.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif;}.wise-editor .carousel-control .icon-prev:before{content:'\2039';}.wise-editor .carousel-control .icon-next:before{content:'\203a';}.wise-editor .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center;}.wise-editor .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);}.wise-editor .carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff;}.wise-editor .carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);}.wise-editor .carousel-caption .btn{text-shadow:none;}@media screen and (min-width:768px){.wise-editor .carousel-control .glyphicon-chevron-left,.wise-editor .carousel-control .glyphicon-chevron-right,.wise-editor .carousel-control .icon-prev,.wise-editor .carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px;}.wise-editor .carousel-caption{left:20%;right:20%;padding-bottom:30px;}.wise-editor .carousel-indicators{bottom:20px;}}.wise-editor .clearfix:before,.wise-editor .clearfix:after,.wise-editor .container:before,.wise-editor .container:after,.wise-editor .container-fluid:before,.wise-editor .container-fluid:after,.wise-editor .row:before,.wise-editor .row:after,.wise-editor .form-horizontal .form-group:before,.wise-editor .form-horizontal .form-group:after,.wise-editor .btn-toolbar:before,.wise-editor .btn-toolbar:after,.wise-editor .btn-group-vertical>.btn-group:before,.wise-editor .btn-group-vertical>.btn-group:after,.wise-editor .nav:before,.wise-editor .nav:after,.wise-editor .navbar:before,.wise-editor .navbar:after,.wise-editor .navbar-header:before,.wise-editor .navbar-header:after,.wise-editor .navbar-collapse:before,.wise-editor .navbar-collapse:after,.wise-editor .pager:before,.wise-editor .pager:after,.wise-editor .panel-body:before,.wise-editor .panel-body:after,.wise-editor .modal-footer:before,.wise-editor .modal-footer:after{content:" ";display:table;}.wise-editor .clearfix:after,.wise-editor .container:after,.wise-editor .container-fluid:after,.wise-editor .row:after,.wise-editor .form-horizontal .form-group:after,.wise-editor .btn-toolbar:after,.wise-editor .btn-group-vertical>.btn-group:after,.wise-editor .nav:after,.wise-editor .navbar:after,.wise-editor .navbar-header:after,.wise-editor .navbar-collapse:after,.wise-editor .pager:after,.wise-editor .panel-body:after,.wise-editor .modal-footer:after{clear:both;}.wise-editor .center-block{display:block;margin-left:auto;margin-right:auto;}.wise-editor .pull-right{float:right!important;}.wise-editor .pull-left{float:left!important;}.wise-editor .hide{display:none!important;}.wise-editor .show{display:block!important;}.wise-editor .invisible{visibility:hidden;}.wise-editor .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}.wise-editor .hidden{display:none!important;visibility:hidden!important;}.wise-editor .affix{position:fixed;}@-ms-viewport{width:device-width;}.wise-editor .visible-xs,.wise-editor .visible-sm,.wise-editor .visible-md,.wise-editor .visible-lg{display:none!important;}@media (max-width:767px){.wise-editor .visible-xs{display:block!important;}.wise-editor table.visible-xs{display:table;}.wise-editor tr.visible-xs{display:table-row!important;}.wise-editor th.visible-xs,.wise-editor td.visible-xs{display:table-cell!important;}}@media (min-width:768px) and (max-width:991px){.wise-editor .visible-sm{display:block!important;}.wise-editor table.visible-sm{display:table;}.wise-editor tr.visible-sm{display:table-row!important;}.wise-editor th.visible-sm,.wise-editor td.visible-sm{display:table-cell!important;}}@media (min-width:992px) and (max-width:1199px){.wise-editor .visible-md{display:block!important;}.wise-editor table.visible-md{display:table;}.wise-editor tr.visible-md{display:table-row!important;}.wise-editor th.visible-md,.wise-editor td.visible-md{display:table-cell!important;}}@media (min-width:1200px){.wise-editor .visible-lg{display:block!important;}.wise-editor table.visible-lg{display:table;}.wise-editor tr.visible-lg{display:table-row!important;}.wise-editor th.visible-lg,.wise-editor td.visible-lg{display:table-cell!important;}}@media (max-width:767px){.wise-editor .hidden-xs{display:none!important;}}@media (min-width:768px) and (max-width:991px){.wise-editor .hidden-sm{display:none!important;}}@media (min-width:992px) and (max-width:1199px){.wise-editor .hidden-md{display:none!important;}}@media (min-width:1200px){.wise-editor .hidden-lg{display:none!important;}}.wise-editor .visible-print{display:none!important;}@media print{.wise-editor .visible-print{display:block!important;}.wise-editor table.visible-print{display:table;}.wise-editor tr.visible-print{display:table-row!important;}.wise-editor th.visible-print,.wise-editor td.visible-print{display:table-cell!important;}}@media print{.wise-editor .hidden-print{display:none!important;}}
+.wise-editor {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+.wise-editor {
+ margin: 0;
+}
+.wise-editor article,
+.wise-editor aside,
+.wise-editor details,
+.wise-editor figcaption,
+.wise-editor figure,
+.wise-editor footer,
+.wise-editor header,
+.wise-editor hgroup,
+.wise-editor main,
+.wise-editor nav,
+.wise-editor section,
+.wise-editor summary {
+ display: block;
+}
+.wise-editor audio,
+.wise-editor canvas,
+.wise-editor progress,
+.wise-editor video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+.wise-editor audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+.wise-editor [hidden],
+.wise-editor template {
+ display: none;
+}
+.wise-editor a {
+ background: 0 0;
+}
+.wise-editor a:active,
+.wise-editor a:hover {
+ outline: 0;
+}
+.wise-editor abbr[title] {
+ border-bottom: 1px dotted;
+}
+.wise-editor b,
+.wise-editor strong {
+ font-weight: 700;
+}
+.wise-editor dfn {
+ font-style: italic;
+}
+.wise-editor h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+.wise-editor mark {
+ background: #ff0;
+ color: #000;
+}
+.wise-editor small {
+ font-size: 80%;
+}
+.wise-editor sub,
+.wise-editor sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+.wise-editor sup {
+ top: -0.5em;
+}
+.wise-editor sub {
+ bottom: -0.25em;
+}
+.wise-editor img {
+ border: 0;
+}
+.wise-editor svg:not(:root) {
+ overflow: hidden;
+}
+.wise-editor figure {
+ margin: 1em 40px;
+}
+.wise-editor hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+.wise-editor pre {
+ overflow: auto;
+}
+.wise-editor code,
+.wise-editor kbd,
+.wise-editor pre,
+.wise-editor samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+.wise-editor button,
+.wise-editor input,
+.wise-editor optgroup,
+.wise-editor select,
+.wise-editor textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+.wise-editor button {
+ overflow: visible;
+}
+.wise-editor button,
+.wise-editor select {
+ text-transform: none;
+}
+.wise-editor button,
+.wise-editor input[type='button'],
+.wise-editor input[type='reset'],
+.wise-editor input[type='submit'] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+.wise-editor button[disabled],
+.wise-editor input[disabled] {
+ cursor: default;
+}
+.wise-editor button::-moz-focus-inner,
+.wise-editor input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+.wise-editor input {
+ line-height: normal;
+}
+.wise-editor input[type='checkbox'],
+.wise-editor input[type='radio'] {
+ box-sizing: border-box;
+ padding: 0;
+}
+.wise-editor input[type='number']::-webkit-inner-spin-button,
+.wise-editor input[type='number']::-webkit-outer-spin-button {
+ height: auto;
+}
+.wise-editor input[type='search'] {
+ -webkit-appearance: textfield;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.wise-editor input[type='search']::-webkit-search-cancel-button,
+.wise-editor input[type='search']::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+.wise-editor fieldset {
+ border: 1px solid silver;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+.wise-editor legend {
+ border: 0;
+ padding: 0;
+}
+.wise-editor textarea {
+ overflow: auto;
+}
+.wise-editor optgroup {
+ font-weight: 700;
+}
+.wise-editor table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+.wise-editor td,
+.wise-editor th {
+ padding: 0;
+}
+@media print {
+ .wise-editor * {
+ text-shadow: none !important;
+ color: #000 !important;
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+ .wise-editor a,
+ .wise-editor a:visited {
+ text-decoration: underline;
+ }
+ .wise-editor a[href]:after {
+ content: ' (' attr(href) ')';
+ }
+ .wise-editor abbr[title]:after {
+ content: ' (' attr(title) ')';
+ }
+ .wise-editor a[href^='javascript:']:after,
+ .wise-editor a[href^='#']:after {
+ content: '';
+ }
+ .wise-editor pre,
+ .wise-editor blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ .wise-editor thead {
+ display: table-header-group;
+ }
+ .wise-editor tr,
+ .wise-editor img {
+ page-break-inside: avoid;
+ }
+ .wise-editor img {
+ max-width: 100% !important;
+ }
+ .wise-editor p,
+ .wise-editor h2,
+ .wise-editor h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ .wise-editor h2,
+ .wise-editor h3 {
+ page-break-after: avoid;
+ }
+ .wise-editor select {
+ background: #fff !important;
+ }
+ .wise-editor .navbar {
+ display: none;
+ }
+ .wise-editor .table td,
+ .wise-editor .table th {
+ background-color: #fff !important;
+ }
+ .wise-editor .btn > .caret,
+ .wise-editor .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .wise-editor .label {
+ border: 1px solid #000;
+ }
+ .wise-editor .table {
+ border-collapse: collapse !important;
+ }
+ .wise-editor .table-bordered th,
+ .wise-editor .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+.wise-editor * {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.wise-editor :before,
+.wise-editor :after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.wise-editor {
+ font-size: 62.5%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+.wise-editor {
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
+}
+.wise-editor input,
+.wise-editor button,
+.wise-editor select,
+.wise-editor textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+.wise-editor a {
+ color: #428bca;
+ text-decoration: none;
+}
+.wise-editor a:hover,
+.wise-editor a:focus {
+ color: #2a6496;
+ text-decoration: underline;
+}
+.wise-editor a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.wise-editor figure {
+ margin: 0;
+}
+.wise-editor img {
+ vertical-align: middle;
+}
+.wise-editor .img-responsive,
+.wise-editor .thumbnail > img,
+.wise-editor .thumbnail a > img,
+.wise-editor .carousel-inner > .item > img,
+.wise-editor .carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.wise-editor .img-rounded {
+ border-radius: 6px;
+}
+.wise-editor .img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+.wise-editor .img-circle {
+ border-radius: 50%;
+}
+.wise-editor hr {
+ margin-top: 18px;
+ margin-bottom: 18px;
+ border: 0;
+ border-top: 1px solid #eee;
+}
+.wise-editor .sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.wise-editor h1,
+.wise-editor h2,
+.wise-editor h3,
+.wise-editor h4,
+.wise-editor h5,
+.wise-editor h6,
+.wise-editor .h1,
+.wise-editor .h2,
+.wise-editor .h3,
+.wise-editor .h4,
+.wise-editor .h5,
+.wise-editor .h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+.wise-editor h1 small,
+.wise-editor h2 small,
+.wise-editor h3 small,
+.wise-editor h4 small,
+.wise-editor h5 small,
+.wise-editor h6 small,
+.wise-editor .h1 small,
+.wise-editor .h2 small,
+.wise-editor .h3 small,
+.wise-editor .h4 small,
+.wise-editor .h5 small,
+.wise-editor .h6 small,
+.wise-editor h1 .small,
+.wise-editor h2 .small,
+.wise-editor h3 .small,
+.wise-editor h4 .small,
+.wise-editor h5 .small,
+.wise-editor h6 .small,
+.wise-editor .h1 .small,
+.wise-editor .h2 .small,
+.wise-editor .h3 .small,
+.wise-editor .h4 .small,
+.wise-editor .h5 .small,
+.wise-editor .h6 .small {
+ font-weight: 400;
+ line-height: 1;
+ color: #999;
+}
+.wise-editor h1,
+.wise-editor .h1,
+.wise-editor h2,
+.wise-editor .h2,
+.wise-editor h3,
+.wise-editor .h3 {
+ margin-top: 18px;
+ margin-bottom: 9px;
+}
+.wise-editor h1 small,
+.wise-editor .h1 small,
+.wise-editor h2 small,
+.wise-editor .h2 small,
+.wise-editor h3 small,
+.wise-editor .h3 small,
+.wise-editor h1 .small,
+.wise-editor .h1 .small,
+.wise-editor h2 .small,
+.wise-editor .h2 .small,
+.wise-editor h3 .small,
+.wise-editor .h3 .small {
+ font-size: 65%;
+}
+.wise-editor h4,
+.wise-editor .h4,
+.wise-editor h5,
+.wise-editor .h5,
+.wise-editor h6,
+.wise-editor .h6 {
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+.wise-editor h4 small,
+.wise-editor .h4 small,
+.wise-editor h5 small,
+.wise-editor .h5 small,
+.wise-editor h6 small,
+.wise-editor .h6 small,
+.wise-editor h4 .small,
+.wise-editor .h4 .small,
+.wise-editor h5 .small,
+.wise-editor .h5 .small,
+.wise-editor h6 .small,
+.wise-editor .h6 .small {
+ font-size: 75%;
+}
+.wise-editor h1,
+.wise-editor .h1 {
+ font-size: 33px;
+}
+.wise-editor h2,
+.wise-editor .h2 {
+ font-size: 27px;
+}
+.wise-editor h3,
+.wise-editor .h3 {
+ font-size: 23px;
+}
+.wise-editor h4,
+.wise-editor .h4 {
+ font-size: 17px;
+}
+.wise-editor h5,
+.wise-editor .h5 {
+ font-size: 13px;
+}
+.wise-editor h6,
+.wise-editor .h6 {
+ font-size: 12px;
+}
+.wise-editor p {
+ margin: 0 0 9px;
+}
+.wise-editor .lead {
+ margin-bottom: 18px;
+ font-size: 14px;
+ font-weight: 200;
+ line-height: 1.4;
+}
+@media (min-width: 768px) {
+ .wise-editor .lead {
+ font-size: 19.5px;
+ }
+}
+.wise-editor small,
+.wise-editor .small {
+ font-size: 85%;
+}
+.wise-editor cite {
+ font-style: normal;
+}
+.wise-editor .text-left {
+ text-align: left;
+}
+.wise-editor .text-right {
+ text-align: right;
+}
+.wise-editor .text-center {
+ text-align: center;
+}
+.wise-editor .text-justify {
+ text-align: justify;
+}
+.wise-editor .text-muted {
+ color: #999;
+}
+.wise-editor .text-primary {
+ color: #428bca;
+}
+.wise-editor a.text-primary:hover {
+ color: #3071a9;
+}
+.wise-editor .text-success {
+ color: #3c763d;
+}
+.wise-editor a.text-success:hover {
+ color: #2b542c;
+}
+.wise-editor .text-info {
+ color: #31708f;
+}
+.wise-editor a.text-info:hover {
+ color: #245269;
+}
+.wise-editor .text-warning {
+ color: #8a6d3b;
+}
+.wise-editor a.text-warning:hover {
+ color: #66512c;
+}
+.wise-editor .text-danger {
+ color: #a94442;
+}
+.wise-editor a.text-danger:hover {
+ color: #843534;
+}
+.wise-editor .bg-primary {
+ color: #fff;
+ background-color: #428bca;
+}
+.wise-editor a.bg-primary:hover {
+ background-color: #3071a9;
+}
+.wise-editor .bg-success {
+ background-color: #dff0d8;
+}
+.wise-editor a.bg-success:hover {
+ background-color: #c1e2b3;
+}
+.wise-editor .bg-info {
+ background-color: #d9edf7;
+}
+.wise-editor a.bg-info:hover {
+ background-color: #afd9ee;
+}
+.wise-editor .bg-warning {
+ background-color: #fcf8e3;
+}
+.wise-editor a.bg-warning:hover {
+ background-color: #f7ecb5;
+}
+.wise-editor .bg-danger {
+ background-color: #f2dede;
+}
+.wise-editor a.bg-danger:hover {
+ background-color: #e4b9b9;
+}
+.wise-editor .page-header {
+ padding-bottom: 8px;
+ margin: 36px 0 18px;
+ border-bottom: 1px solid #eee;
+}
+.wise-editor ul,
+.wise-editor ol {
+ margin-top: 0;
+ margin-bottom: 9px;
+}
+.wise-editor ul ul,
+.wise-editor ol ul,
+.wise-editor ul ol,
+.wise-editor ol ol {
+ margin-bottom: 0;
+}
+.wise-editor .list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.wise-editor .list-inline {
+ padding-left: 0;
+ list-style: none;
+ margin-left: -5px;
+}
+.wise-editor .list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.wise-editor dl {
+ margin-top: 0;
+ margin-bottom: 18px;
+}
+.wise-editor dt,
+.wise-editor dd {
+ line-height: 1.42857143;
+}
+.wise-editor dt {
+ font-weight: 700;
+}
+.wise-editor dd {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .wise-editor .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .wise-editor .dl-horizontal dd {
+ margin-left: 180px;
+ }
+}
+.wise-editor abbr[title],
+.wise-editor abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #999;
+}
+.wise-editor .initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+.wise-editor blockquote {
+ padding: 9px 18px;
+ margin: 0 0 18px;
+ font-size: 16.25px;
+ border-left: 5px solid #eee;
+}
+.wise-editor blockquote p:last-child,
+.wise-editor blockquote ul:last-child,
+.wise-editor blockquote ol:last-child {
+ margin-bottom: 0;
+}
+.wise-editor blockquote footer,
+.wise-editor blockquote small,
+.wise-editor blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #999;
+}
+.wise-editor blockquote footer:before,
+.wise-editor blockquote small:before,
+.wise-editor blockquote .small:before {
+ content: '\2014 \00A0';
+}
+.wise-editor .blockquote-reverse,
+.wise-editor blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eee;
+ border-left: 0;
+ text-align: right;
+}
+.wise-editor .blockquote-reverse footer:before,
+.wise-editor blockquote.pull-right footer:before,
+.wise-editor .blockquote-reverse small:before,
+.wise-editor blockquote.pull-right small:before,
+.wise-editor .blockquote-reverse .small:before,
+.wise-editor blockquote.pull-right .small:before {
+ content: '';
+}
+.wise-editor .blockquote-reverse footer:after,
+.wise-editor blockquote.pull-right footer:after,
+.wise-editor .blockquote-reverse small:after,
+.wise-editor blockquote.pull-right small:after,
+.wise-editor .blockquote-reverse .small:after,
+.wise-editor blockquote.pull-right .small:after {
+ content: '\00A0 \2014';
+}
+.wise-editor blockquote:before,
+.wise-editor blockquote:after {
+ content: '';
+}
+.wise-editor address {
+ margin-bottom: 18px;
+ font-style: normal;
+ line-height: 1.42857143;
+}
+.wise-editor code,
+.wise-editor kbd,
+.wise-editor pre,
+.wise-editor samp {
+ font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
+}
+.wise-editor code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ white-space: nowrap;
+ border-radius: 4px;
+}
+.wise-editor kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.wise-editor pre {
+ display: block;
+ padding: 8.5px;
+ margin: 0 0 9px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #333;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+.wise-editor pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+}
+.wise-editor .pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.wise-editor .container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+@media (min-width: 768px) {
+ .wise-editor .container {
+ width: 750px;
+ }
+}
+@media (min-width: 992px) {
+ .wise-editor .container {
+ width: 970px;
+ }
+}
+@media (min-width: 1200px) {
+ .wise-editor .container {
+ width: 1170px;
+ }
+}
+.wise-editor .container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.wise-editor .row {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.wise-editor .col-xs-1,
+.wise-editor .col-sm-1,
+.wise-editor .col-md-1,
+.wise-editor .col-lg-1,
+.wise-editor .col-xs-2,
+.wise-editor .col-sm-2,
+.wise-editor .col-md-2,
+.wise-editor .col-lg-2,
+.wise-editor .col-xs-3,
+.wise-editor .col-sm-3,
+.wise-editor .col-md-3,
+.wise-editor .col-lg-3,
+.wise-editor .col-xs-4,
+.wise-editor .col-sm-4,
+.wise-editor .col-md-4,
+.wise-editor .col-lg-4,
+.wise-editor .col-xs-5,
+.wise-editor .col-sm-5,
+.wise-editor .col-md-5,
+.wise-editor .col-lg-5,
+.wise-editor .col-xs-6,
+.wise-editor .col-sm-6,
+.wise-editor .col-md-6,
+.wise-editor .col-lg-6,
+.wise-editor .col-xs-7,
+.wise-editor .col-sm-7,
+.wise-editor .col-md-7,
+.wise-editor .col-lg-7,
+.wise-editor .col-xs-8,
+.wise-editor .col-sm-8,
+.wise-editor .col-md-8,
+.wise-editor .col-lg-8,
+.wise-editor .col-xs-9,
+.wise-editor .col-sm-9,
+.wise-editor .col-md-9,
+.wise-editor .col-lg-9,
+.wise-editor .col-xs-10,
+.wise-editor .col-sm-10,
+.wise-editor .col-md-10,
+.wise-editor .col-lg-10,
+.wise-editor .col-xs-11,
+.wise-editor .col-sm-11,
+.wise-editor .col-md-11,
+.wise-editor .col-lg-11,
+.wise-editor .col-xs-12,
+.wise-editor .col-sm-12,
+.wise-editor .col-md-12,
+.wise-editor .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.wise-editor .col-xs-1,
+.wise-editor .col-xs-2,
+.wise-editor .col-xs-3,
+.wise-editor .col-xs-4,
+.wise-editor .col-xs-5,
+.wise-editor .col-xs-6,
+.wise-editor .col-xs-7,
+.wise-editor .col-xs-8,
+.wise-editor .col-xs-9,
+.wise-editor .col-xs-10,
+.wise-editor .col-xs-11,
+.wise-editor .col-xs-12 {
+ float: left;
+}
+.wise-editor .col-xs-12 {
+ width: 100%;
+}
+.wise-editor .col-xs-11 {
+ width: 91.66666667%;
+}
+.wise-editor .col-xs-10 {
+ width: 83.33333333%;
+}
+.wise-editor .col-xs-9 {
+ width: 75%;
+}
+.wise-editor .col-xs-8 {
+ width: 66.66666667%;
+}
+.wise-editor .col-xs-7 {
+ width: 58.33333333%;
+}
+.wise-editor .col-xs-6 {
+ width: 50%;
+}
+.wise-editor .col-xs-5 {
+ width: 41.66666667%;
+}
+.wise-editor .col-xs-4 {
+ width: 33.33333333%;
+}
+.wise-editor .col-xs-3 {
+ width: 25%;
+}
+.wise-editor .col-xs-2 {
+ width: 16.66666667%;
+}
+.wise-editor .col-xs-1 {
+ width: 8.33333333%;
+}
+.wise-editor .col-xs-pull-12 {
+ right: 100%;
+}
+.wise-editor .col-xs-pull-11 {
+ right: 91.66666667%;
+}
+.wise-editor .col-xs-pull-10 {
+ right: 83.33333333%;
+}
+.wise-editor .col-xs-pull-9 {
+ right: 75%;
+}
+.wise-editor .col-xs-pull-8 {
+ right: 66.66666667%;
+}
+.wise-editor .col-xs-pull-7 {
+ right: 58.33333333%;
+}
+.wise-editor .col-xs-pull-6 {
+ right: 50%;
+}
+.wise-editor .col-xs-pull-5 {
+ right: 41.66666667%;
+}
+.wise-editor .col-xs-pull-4 {
+ right: 33.33333333%;
+}
+.wise-editor .col-xs-pull-3 {
+ right: 25%;
+}
+.wise-editor .col-xs-pull-2 {
+ right: 16.66666667%;
+}
+.wise-editor .col-xs-pull-1 {
+ right: 8.33333333%;
+}
+.wise-editor .col-xs-pull-0 {
+ right: 0;
+}
+.wise-editor .col-xs-push-12 {
+ left: 100%;
+}
+.wise-editor .col-xs-push-11 {
+ left: 91.66666667%;
+}
+.wise-editor .col-xs-push-10 {
+ left: 83.33333333%;
+}
+.wise-editor .col-xs-push-9 {
+ left: 75%;
+}
+.wise-editor .col-xs-push-8 {
+ left: 66.66666667%;
+}
+.wise-editor .col-xs-push-7 {
+ left: 58.33333333%;
+}
+.wise-editor .col-xs-push-6 {
+ left: 50%;
+}
+.wise-editor .col-xs-push-5 {
+ left: 41.66666667%;
+}
+.wise-editor .col-xs-push-4 {
+ left: 33.33333333%;
+}
+.wise-editor .col-xs-push-3 {
+ left: 25%;
+}
+.wise-editor .col-xs-push-2 {
+ left: 16.66666667%;
+}
+.wise-editor .col-xs-push-1 {
+ left: 8.33333333%;
+}
+.wise-editor .col-xs-push-0 {
+ left: 0;
+}
+.wise-editor .col-xs-offset-12 {
+ margin-left: 100%;
+}
+.wise-editor .col-xs-offset-11 {
+ margin-left: 91.66666667%;
+}
+.wise-editor .col-xs-offset-10 {
+ margin-left: 83.33333333%;
+}
+.wise-editor .col-xs-offset-9 {
+ margin-left: 75%;
+}
+.wise-editor .col-xs-offset-8 {
+ margin-left: 66.66666667%;
+}
+.wise-editor .col-xs-offset-7 {
+ margin-left: 58.33333333%;
+}
+.wise-editor .col-xs-offset-6 {
+ margin-left: 50%;
+}
+.wise-editor .col-xs-offset-5 {
+ margin-left: 41.66666667%;
+}
+.wise-editor .col-xs-offset-4 {
+ margin-left: 33.33333333%;
+}
+.wise-editor .col-xs-offset-3 {
+ margin-left: 25%;
+}
+.wise-editor .col-xs-offset-2 {
+ margin-left: 16.66666667%;
+}
+.wise-editor .col-xs-offset-1 {
+ margin-left: 8.33333333%;
+}
+.wise-editor .col-xs-offset-0 {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .wise-editor .col-sm-1,
+ .wise-editor .col-sm-2,
+ .wise-editor .col-sm-3,
+ .wise-editor .col-sm-4,
+ .wise-editor .col-sm-5,
+ .wise-editor .col-sm-6,
+ .wise-editor .col-sm-7,
+ .wise-editor .col-sm-8,
+ .wise-editor .col-sm-9,
+ .wise-editor .col-sm-10,
+ .wise-editor .col-sm-11,
+ .wise-editor .col-sm-12 {
+ float: left;
+ }
+ .wise-editor .col-sm-12 {
+ width: 100%;
+ }
+ .wise-editor .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .wise-editor .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .wise-editor .col-sm-9 {
+ width: 75%;
+ }
+ .wise-editor .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .wise-editor .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .wise-editor .col-sm-6 {
+ width: 50%;
+ }
+ .wise-editor .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .wise-editor .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .wise-editor .col-sm-3 {
+ width: 25%;
+ }
+ .wise-editor .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .wise-editor .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .wise-editor .col-sm-pull-12 {
+ right: 100%;
+ }
+ .wise-editor .col-sm-pull-11 {
+ right: 91.66666667%;
+ }
+ .wise-editor .col-sm-pull-10 {
+ right: 83.33333333%;
+ }
+ .wise-editor .col-sm-pull-9 {
+ right: 75%;
+ }
+ .wise-editor .col-sm-pull-8 {
+ right: 66.66666667%;
+ }
+ .wise-editor .col-sm-pull-7 {
+ right: 58.33333333%;
+ }
+ .wise-editor .col-sm-pull-6 {
+ right: 50%;
+ }
+ .wise-editor .col-sm-pull-5 {
+ right: 41.66666667%;
+ }
+ .wise-editor .col-sm-pull-4 {
+ right: 33.33333333%;
+ }
+ .wise-editor .col-sm-pull-3 {
+ right: 25%;
+ }
+ .wise-editor .col-sm-pull-2 {
+ right: 16.66666667%;
+ }
+ .wise-editor .col-sm-pull-1 {
+ right: 8.33333333%;
+ }
+ .wise-editor .col-sm-pull-0 {
+ right: 0;
+ }
+ .wise-editor .col-sm-push-12 {
+ left: 100%;
+ }
+ .wise-editor .col-sm-push-11 {
+ left: 91.66666667%;
+ }
+ .wise-editor .col-sm-push-10 {
+ left: 83.33333333%;
+ }
+ .wise-editor .col-sm-push-9 {
+ left: 75%;
+ }
+ .wise-editor .col-sm-push-8 {
+ left: 66.66666667%;
+ }
+ .wise-editor .col-sm-push-7 {
+ left: 58.33333333%;
+ }
+ .wise-editor .col-sm-push-6 {
+ left: 50%;
+ }
+ .wise-editor .col-sm-push-5 {
+ left: 41.66666667%;
+ }
+ .wise-editor .col-sm-push-4 {
+ left: 33.33333333%;
+ }
+ .wise-editor .col-sm-push-3 {
+ left: 25%;
+ }
+ .wise-editor .col-sm-push-2 {
+ left: 16.66666667%;
+ }
+ .wise-editor .col-sm-push-1 {
+ left: 8.33333333%;
+ }
+ .wise-editor .col-sm-push-0 {
+ left: 0;
+ }
+ .wise-editor .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .wise-editor .col-sm-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .wise-editor .col-sm-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .wise-editor .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .wise-editor .col-sm-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .wise-editor .col-sm-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .wise-editor .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .wise-editor .col-sm-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .wise-editor .col-sm-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .wise-editor .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .wise-editor .col-sm-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .wise-editor .col-sm-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .wise-editor .col-sm-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 992px) {
+ .wise-editor .col-md-1,
+ .wise-editor .col-md-2,
+ .wise-editor .col-md-3,
+ .wise-editor .col-md-4,
+ .wise-editor .col-md-5,
+ .wise-editor .col-md-6,
+ .wise-editor .col-md-7,
+ .wise-editor .col-md-8,
+ .wise-editor .col-md-9,
+ .wise-editor .col-md-10,
+ .wise-editor .col-md-11,
+ .wise-editor .col-md-12 {
+ float: left;
+ }
+ .wise-editor .col-md-12 {
+ width: 100%;
+ }
+ .wise-editor .col-md-11 {
+ width: 91.66666667%;
+ }
+ .wise-editor .col-md-10 {
+ width: 83.33333333%;
+ }
+ .wise-editor .col-md-9 {
+ width: 75%;
+ }
+ .wise-editor .col-md-8 {
+ width: 66.66666667%;
+ }
+ .wise-editor .col-md-7 {
+ width: 58.33333333%;
+ }
+ .wise-editor .col-md-6 {
+ width: 50%;
+ }
+ .wise-editor .col-md-5 {
+ width: 41.66666667%;
+ }
+ .wise-editor .col-md-4 {
+ width: 33.33333333%;
+ }
+ .wise-editor .col-md-3 {
+ width: 25%;
+ }
+ .wise-editor .col-md-2 {
+ width: 16.66666667%;
+ }
+ .wise-editor .col-md-1 {
+ width: 8.33333333%;
+ }
+ .wise-editor .col-md-pull-12 {
+ right: 100%;
+ }
+ .wise-editor .col-md-pull-11 {
+ right: 91.66666667%;
+ }
+ .wise-editor .col-md-pull-10 {
+ right: 83.33333333%;
+ }
+ .wise-editor .col-md-pull-9 {
+ right: 75%;
+ }
+ .wise-editor .col-md-pull-8 {
+ right: 66.66666667%;
+ }
+ .wise-editor .col-md-pull-7 {
+ right: 58.33333333%;
+ }
+ .wise-editor .col-md-pull-6 {
+ right: 50%;
+ }
+ .wise-editor .col-md-pull-5 {
+ right: 41.66666667%;
+ }
+ .wise-editor .col-md-pull-4 {
+ right: 33.33333333%;
+ }
+ .wise-editor .col-md-pull-3 {
+ right: 25%;
+ }
+ .wise-editor .col-md-pull-2 {
+ right: 16.66666667%;
+ }
+ .wise-editor .col-md-pull-1 {
+ right: 8.33333333%;
+ }
+ .wise-editor .col-md-pull-0 {
+ right: 0;
+ }
+ .wise-editor .col-md-push-12 {
+ left: 100%;
+ }
+ .wise-editor .col-md-push-11 {
+ left: 91.66666667%;
+ }
+ .wise-editor .col-md-push-10 {
+ left: 83.33333333%;
+ }
+ .wise-editor .col-md-push-9 {
+ left: 75%;
+ }
+ .wise-editor .col-md-push-8 {
+ left: 66.66666667%;
+ }
+ .wise-editor .col-md-push-7 {
+ left: 58.33333333%;
+ }
+ .wise-editor .col-md-push-6 {
+ left: 50%;
+ }
+ .wise-editor .col-md-push-5 {
+ left: 41.66666667%;
+ }
+ .wise-editor .col-md-push-4 {
+ left: 33.33333333%;
+ }
+ .wise-editor .col-md-push-3 {
+ left: 25%;
+ }
+ .wise-editor .col-md-push-2 {
+ left: 16.66666667%;
+ }
+ .wise-editor .col-md-push-1 {
+ left: 8.33333333%;
+ }
+ .wise-editor .col-md-push-0 {
+ left: 0;
+ }
+ .wise-editor .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .wise-editor .col-md-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .wise-editor .col-md-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .wise-editor .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .wise-editor .col-md-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .wise-editor .col-md-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .wise-editor .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .wise-editor .col-md-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .wise-editor .col-md-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .wise-editor .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .wise-editor .col-md-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .wise-editor .col-md-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .wise-editor .col-md-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 1200px) {
+ .wise-editor .col-lg-1,
+ .wise-editor .col-lg-2,
+ .wise-editor .col-lg-3,
+ .wise-editor .col-lg-4,
+ .wise-editor .col-lg-5,
+ .wise-editor .col-lg-6,
+ .wise-editor .col-lg-7,
+ .wise-editor .col-lg-8,
+ .wise-editor .col-lg-9,
+ .wise-editor .col-lg-10,
+ .wise-editor .col-lg-11,
+ .wise-editor .col-lg-12 {
+ float: left;
+ }
+ .wise-editor .col-lg-12 {
+ width: 100%;
+ }
+ .wise-editor .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .wise-editor .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .wise-editor .col-lg-9 {
+ width: 75%;
+ }
+ .wise-editor .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .wise-editor .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .wise-editor .col-lg-6 {
+ width: 50%;
+ }
+ .wise-editor .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .wise-editor .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .wise-editor .col-lg-3 {
+ width: 25%;
+ }
+ .wise-editor .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .wise-editor .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .wise-editor .col-lg-pull-12 {
+ right: 100%;
+ }
+ .wise-editor .col-lg-pull-11 {
+ right: 91.66666667%;
+ }
+ .wise-editor .col-lg-pull-10 {
+ right: 83.33333333%;
+ }
+ .wise-editor .col-lg-pull-9 {
+ right: 75%;
+ }
+ .wise-editor .col-lg-pull-8 {
+ right: 66.66666667%;
+ }
+ .wise-editor .col-lg-pull-7 {
+ right: 58.33333333%;
+ }
+ .wise-editor .col-lg-pull-6 {
+ right: 50%;
+ }
+ .wise-editor .col-lg-pull-5 {
+ right: 41.66666667%;
+ }
+ .wise-editor .col-lg-pull-4 {
+ right: 33.33333333%;
+ }
+ .wise-editor .col-lg-pull-3 {
+ right: 25%;
+ }
+ .wise-editor .col-lg-pull-2 {
+ right: 16.66666667%;
+ }
+ .wise-editor .col-lg-pull-1 {
+ right: 8.33333333%;
+ }
+ .wise-editor .col-lg-pull-0 {
+ right: 0;
+ }
+ .wise-editor .col-lg-push-12 {
+ left: 100%;
+ }
+ .wise-editor .col-lg-push-11 {
+ left: 91.66666667%;
+ }
+ .wise-editor .col-lg-push-10 {
+ left: 83.33333333%;
+ }
+ .wise-editor .col-lg-push-9 {
+ left: 75%;
+ }
+ .wise-editor .col-lg-push-8 {
+ left: 66.66666667%;
+ }
+ .wise-editor .col-lg-push-7 {
+ left: 58.33333333%;
+ }
+ .wise-editor .col-lg-push-6 {
+ left: 50%;
+ }
+ .wise-editor .col-lg-push-5 {
+ left: 41.66666667%;
+ }
+ .wise-editor .col-lg-push-4 {
+ left: 33.33333333%;
+ }
+ .wise-editor .col-lg-push-3 {
+ left: 25%;
+ }
+ .wise-editor .col-lg-push-2 {
+ left: 16.66666667%;
+ }
+ .wise-editor .col-lg-push-1 {
+ left: 8.33333333%;
+ }
+ .wise-editor .col-lg-push-0 {
+ left: 0;
+ }
+ .wise-editor .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .wise-editor .col-lg-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .wise-editor .col-lg-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .wise-editor .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .wise-editor .col-lg-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .wise-editor .col-lg-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .wise-editor .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .wise-editor .col-lg-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .wise-editor .col-lg-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .wise-editor .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .wise-editor .col-lg-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .wise-editor .col-lg-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .wise-editor .col-lg-offset-0 {
+ margin-left: 0;
+ }
+}
+.wise-editor table {
+ max-width: 100%;
+ background-color: transparent;
+}
+.wise-editor th {
+ text-align: left;
+}
+.wise-editor .table {
+ width: 100%;
+ margin-bottom: 18px;
+}
+.wise-editor .table > thead > tr > th,
+.wise-editor .table > tbody > tr > th,
+.wise-editor .table > tfoot > tr > th,
+.wise-editor .table > thead > tr > td,
+.wise-editor .table > tbody > tr > td,
+.wise-editor .table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
+}
+.wise-editor .table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
+}
+.wise-editor .table > caption + thead > tr:first-child > th,
+.wise-editor .table > colgroup + thead > tr:first-child > th,
+.wise-editor .table > thead:first-child > tr:first-child > th,
+.wise-editor .table > caption + thead > tr:first-child > td,
+.wise-editor .table > colgroup + thead > tr:first-child > td,
+.wise-editor .table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+}
+.wise-editor .table > tbody + tbody {
+ border-top: 2px solid #ddd;
+}
+.wise-editor .table .table {
+ background-color: #fff;
+}
+.wise-editor .table-condensed > thead > tr > th,
+.wise-editor .table-condensed > tbody > tr > th,
+.wise-editor .table-condensed > tfoot > tr > th,
+.wise-editor .table-condensed > thead > tr > td,
+.wise-editor .table-condensed > tbody > tr > td,
+.wise-editor .table-condensed > tfoot > tr > td {
+ padding: 5px;
+}
+.wise-editor .table-bordered {
+ border: 1px solid #ddd;
+}
+.wise-editor .table-bordered > thead > tr > th,
+.wise-editor .table-bordered > tbody > tr > th,
+.wise-editor .table-bordered > tfoot > tr > th,
+.wise-editor .table-bordered > thead > tr > td,
+.wise-editor .table-bordered > tbody > tr > td,
+.wise-editor .table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
+}
+.wise-editor .table-bordered > thead > tr > th,
+.wise-editor .table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+.wise-editor .table-striped > tbody > tr:nth-child(odd) > td,
+.wise-editor .table-striped > tbody > tr:nth-child(odd) > th {
+ background-color: #f9f9f9;
+}
+.wise-editor .table-hover > tbody > tr:hover > td,
+.wise-editor .table-hover > tbody > tr:hover > th {
+ background-color: #f5f5f5;
+}
+.wise-editor table col[class*='col-'] {
+ position: static;
+ float: none;
+ display: table-column;
+}
+.wise-editor table td[class*='col-'],
+.wise-editor table th[class*='col-'] {
+ position: static;
+ float: none;
+ display: table-cell;
+}
+.wise-editor .table > thead > tr > td.active,
+.wise-editor .table > tbody > tr > td.active,
+.wise-editor .table > tfoot > tr > td.active,
+.wise-editor .table > thead > tr > th.active,
+.wise-editor .table > tbody > tr > th.active,
+.wise-editor .table > tfoot > tr > th.active,
+.wise-editor .table > thead > tr.active > td,
+.wise-editor .table > tbody > tr.active > td,
+.wise-editor .table > tfoot > tr.active > td,
+.wise-editor .table > thead > tr.active > th,
+.wise-editor .table > tbody > tr.active > th,
+.wise-editor .table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+}
+.wise-editor .table-hover > tbody > tr > td.active:hover,
+.wise-editor .table-hover > tbody > tr > th.active:hover,
+.wise-editor .table-hover > tbody > tr.active:hover > td,
+.wise-editor .table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
+}
+.wise-editor .table > thead > tr > td.success,
+.wise-editor .table > tbody > tr > td.success,
+.wise-editor .table > tfoot > tr > td.success,
+.wise-editor .table > thead > tr > th.success,
+.wise-editor .table > tbody > tr > th.success,
+.wise-editor .table > tfoot > tr > th.success,
+.wise-editor .table > thead > tr.success > td,
+.wise-editor .table > tbody > tr.success > td,
+.wise-editor .table > tfoot > tr.success > td,
+.wise-editor .table > thead > tr.success > th,
+.wise-editor .table > tbody > tr.success > th,
+.wise-editor .table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+}
+.wise-editor .table-hover > tbody > tr > td.success:hover,
+.wise-editor .table-hover > tbody > tr > th.success:hover,
+.wise-editor .table-hover > tbody > tr.success:hover > td,
+.wise-editor .table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
+}
+.wise-editor .table > thead > tr > td.info,
+.wise-editor .table > tbody > tr > td.info,
+.wise-editor .table > tfoot > tr > td.info,
+.wise-editor .table > thead > tr > th.info,
+.wise-editor .table > tbody > tr > th.info,
+.wise-editor .table > tfoot > tr > th.info,
+.wise-editor .table > thead > tr.info > td,
+.wise-editor .table > tbody > tr.info > td,
+.wise-editor .table > tfoot > tr.info > td,
+.wise-editor .table > thead > tr.info > th,
+.wise-editor .table > tbody > tr.info > th,
+.wise-editor .table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+}
+.wise-editor .table-hover > tbody > tr > td.info:hover,
+.wise-editor .table-hover > tbody > tr > th.info:hover,
+.wise-editor .table-hover > tbody > tr.info:hover > td,
+.wise-editor .table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+.wise-editor .table > thead > tr > td.warning,
+.wise-editor .table > tbody > tr > td.warning,
+.wise-editor .table > tfoot > tr > td.warning,
+.wise-editor .table > thead > tr > th.warning,
+.wise-editor .table > tbody > tr > th.warning,
+.wise-editor .table > tfoot > tr > th.warning,
+.wise-editor .table > thead > tr.warning > td,
+.wise-editor .table > tbody > tr.warning > td,
+.wise-editor .table > tfoot > tr.warning > td,
+.wise-editor .table > thead > tr.warning > th,
+.wise-editor .table > tbody > tr.warning > th,
+.wise-editor .table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+}
+.wise-editor .table-hover > tbody > tr > td.warning:hover,
+.wise-editor .table-hover > tbody > tr > th.warning:hover,
+.wise-editor .table-hover > tbody > tr.warning:hover > td,
+.wise-editor .table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
+}
+.wise-editor .table > thead > tr > td.danger,
+.wise-editor .table > tbody > tr > td.danger,
+.wise-editor .table > tfoot > tr > td.danger,
+.wise-editor .table > thead > tr > th.danger,
+.wise-editor .table > tbody > tr > th.danger,
+.wise-editor .table > tfoot > tr > th.danger,
+.wise-editor .table > thead > tr.danger > td,
+.wise-editor .table > tbody > tr.danger > td,
+.wise-editor .table > tfoot > tr.danger > td,
+.wise-editor .table > thead > tr.danger > th,
+.wise-editor .table > tbody > tr.danger > th,
+.wise-editor .table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+}
+.wise-editor .table-hover > tbody > tr > td.danger:hover,
+.wise-editor .table-hover > tbody > tr > th.danger:hover,
+.wise-editor .table-hover > tbody > tr.danger:hover > td,
+.wise-editor .table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+}
+@media (max-width: 767px) {
+ .wise-editor .table-responsive {
+ width: 100%;
+ margin-bottom: 13.5px;
+ overflow-y: hidden;
+ overflow-x: scroll;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ -webkit-overflow-scrolling: touch;
+ }
+ .wise-editor .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .wise-editor .table-responsive > .table > thead > tr > th,
+ .wise-editor .table-responsive > .table > tbody > tr > th,
+ .wise-editor .table-responsive > .table > tfoot > tr > th,
+ .wise-editor .table-responsive > .table > thead > tr > td,
+ .wise-editor .table-responsive > .table > tbody > tr > td,
+ .wise-editor .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .wise-editor .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .wise-editor .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .wise-editor .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .wise-editor .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .wise-editor .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .wise-editor .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .wise-editor .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .wise-editor .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .wise-editor .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .wise-editor .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .wise-editor .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .wise-editor .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .wise-editor .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .wise-editor .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .wise-editor .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .wise-editor .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .wise-editor .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+.wise-editor fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ min-width: 0;
+}
+.wise-editor legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 18px;
+ font-size: 19.5px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+.wise-editor label {
+ display: inline-block;
+ margin-bottom: 5px;
+ font-weight: 700;
+}
+.wise-editor input[type='search'] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.wise-editor input[type='radio'],
+.wise-editor input[type='checkbox'] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
+}
+.wise-editor input[type='file'] {
+ display: block;
+}
+.wise-editor input[type='range'] {
+ display: block;
+ width: 100%;
+}
+.wise-editor select[multiple],
+.wise-editor select[size] {
+ height: auto;
+}
+.wise-editor input[type='file']:focus,
+.wise-editor input[type='radio']:focus,
+.wise-editor input[type='checkbox']:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.wise-editor output {
+ display: block;
+ padding-top: 7px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #555;
+}
+.wise-editor .form-control {
+ display: block;
+ width: 100%;
+ height: 32px;
+ padding: 6px 12px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+}
+.wise-editor .form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.wise-editor .form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1;
+}
+.wise-editor .form-control:-ms-input-placeholder {
+ color: #999;
+}
+.wise-editor .form-control::-webkit-input-placeholder {
+ color: #999;
+}
+.wise-editor .form-control[disabled],
+.wise-editor .form-control[readonly],
+.wise-editor fieldset[disabled] .form-control {
+ cursor: not-allowed;
+ background-color: #eee;
+ opacity: 1;
+}
+.wise-editor textarea.form-control {
+ height: auto;
+}
+.wise-editor input[type='search'] {
+ -webkit-appearance: none;
+}
+.wise-editor input[type='date'] {
+ line-height: 32px;
+}
+.wise-editor .form-group {
+ margin-bottom: 15px;
+}
+.wise-editor .radio,
+.wise-editor .checkbox {
+ display: block;
+ min-height: 18px;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding-left: 20px;
+}
+.wise-editor .radio label,
+.wise-editor .checkbox label {
+ display: inline;
+ font-weight: 400;
+ cursor: pointer;
+}
+.wise-editor .radio input[type='radio'],
+.wise-editor .radio-inline input[type='radio'],
+.wise-editor .checkbox input[type='checkbox'],
+.wise-editor .checkbox-inline input[type='checkbox'] {
+ float: left;
+ margin-left: -20px;
+}
+.wise-editor .radio + .radio,
+.wise-editor .checkbox + .checkbox {
+ margin-top: -5px;
+}
+.wise-editor .radio-inline,
+.wise-editor .checkbox-inline {
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: 400;
+ cursor: pointer;
+}
+.wise-editor .radio-inline + .radio-inline,
+.wise-editor .checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+.wise-editor input[type='radio'][disabled],
+.wise-editor input[type='checkbox'][disabled],
+.wise-editor .radio[disabled],
+.wise-editor .radio-inline[disabled],
+.wise-editor .checkbox[disabled],
+.wise-editor .checkbox-inline[disabled],
+.wise-editor fieldset[disabled] input[type='radio'],
+.wise-editor fieldset[disabled] input[type='checkbox'],
+.wise-editor fieldset[disabled] .radio,
+.wise-editor fieldset[disabled] .radio-inline,
+.wise-editor fieldset[disabled] .checkbox,
+.wise-editor fieldset[disabled] .checkbox-inline {
+ cursor: not-allowed;
+}
+.wise-editor .input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.wise-editor select.input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+.wise-editor textarea.input-sm,
+.wise-editor select[multiple].input-sm {
+ height: auto;
+}
+.wise-editor .input-lg {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.wise-editor select.input-lg {
+ height: 45px;
+ line-height: 45px;
+}
+.wise-editor textarea.input-lg,
+.wise-editor select[multiple].input-lg {
+ height: auto;
+}
+.wise-editor .has-feedback {
+ position: relative;
+}
+.wise-editor .has-feedback .form-control {
+ padding-right: 40px;
+}
+.wise-editor .has-feedback .form-control-feedback {
+ position: absolute;
+ top: 23px;
+ right: 0;
+ display: block;
+ width: 32px;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+}
+.wise-editor .has-success .help-block,
+.wise-editor .has-success .control-label,
+.wise-editor .has-success .radio,
+.wise-editor .has-success .checkbox,
+.wise-editor .has-success .radio-inline,
+.wise-editor .has-success .checkbox-inline {
+ color: #3c763d;
+}
+.wise-editor .has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.wise-editor .has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+}
+.wise-editor .has-success .input-group-addon {
+ color: #3c763d;
+ border-color: #3c763d;
+ background-color: #dff0d8;
+}
+.wise-editor .has-success .form-control-feedback {
+ color: #3c763d;
+}
+.wise-editor .has-warning .help-block,
+.wise-editor .has-warning .control-label,
+.wise-editor .has-warning .radio,
+.wise-editor .has-warning .checkbox,
+.wise-editor .has-warning .radio-inline,
+.wise-editor .has-warning .checkbox-inline {
+ color: #8a6d3b;
+}
+.wise-editor .has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.wise-editor .has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+}
+.wise-editor .has-warning .input-group-addon {
+ color: #8a6d3b;
+ border-color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+.wise-editor .has-warning .form-control-feedback {
+ color: #8a6d3b;
+}
+.wise-editor .has-error .help-block,
+.wise-editor .has-error .control-label,
+.wise-editor .has-error .radio,
+.wise-editor .has-error .checkbox,
+.wise-editor .has-error .radio-inline,
+.wise-editor .has-error .checkbox-inline {
+ color: #a94442;
+}
+.wise-editor .has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.wise-editor .has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+}
+.wise-editor .has-error .input-group-addon {
+ color: #a94442;
+ border-color: #a94442;
+ background-color: #f2dede;
+}
+.wise-editor .has-error .form-control-feedback {
+ color: #a94442;
+}
+.wise-editor .form-control-static {
+ margin-bottom: 0;
+}
+.wise-editor .help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373;
+}
+@media (min-width: 768px) {
+ .wise-editor .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .wise-editor .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .wise-editor .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .wise-editor .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .wise-editor .form-inline .radio,
+ .wise-editor .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ vertical-align: middle;
+ }
+ .wise-editor .form-inline .radio input[type='radio'],
+ .wise-editor .form-inline .checkbox input[type='checkbox'] {
+ float: none;
+ margin-left: 0;
+ }
+ .wise-editor .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+.wise-editor .form-horizontal .control-label,
+.wise-editor .form-horizontal .radio,
+.wise-editor .form-horizontal .checkbox,
+.wise-editor .form-horizontal .radio-inline,
+.wise-editor .form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
+.wise-editor .form-horizontal .radio,
+.wise-editor .form-horizontal .checkbox {
+ min-height: 25px;
+}
+.wise-editor .form-horizontal .form-group {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.wise-editor .form-horizontal .form-control-static {
+ padding-top: 7px;
+}
+@media (min-width: 768px) {
+ .wise-editor .form-horizontal .control-label {
+ text-align: right;
+ }
+}
+.wise-editor .form-horizontal .has-feedback .form-control-feedback {
+ top: 0;
+ right: 15px;
+}
+.wise-editor .btn {
+ display: inline-block;
+ margin-bottom: 0;
+ font-weight: 400;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ background-image: none;
+ border: 1px solid transparent;
+ white-space: nowrap;
+ padding: 6px 12px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ border-radius: 4px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.wise-editor .btn:focus,
+.wise-editor .btn:active:focus,
+.wise-editor .btn.active:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.wise-editor .btn:hover,
+.wise-editor .btn:focus {
+ color: #333;
+ text-decoration: none;
+}
+.wise-editor .btn:active,
+.wise-editor .btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.wise-editor .btn.disabled,
+.wise-editor .btn[disabled],
+.wise-editor fieldset[disabled] .btn {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.wise-editor .btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc;
+}
+.wise-editor .btn-default:hover,
+.wise-editor .btn-default:focus,
+.wise-editor .btn-default:active,
+.wise-editor .btn-default.active,
+.wise-editor .open .dropdown-toggle.btn-default {
+ color: #333;
+ background-color: #ebebeb;
+ border-color: #adadad;
+}
+.wise-editor .btn-default:active,
+.wise-editor .btn-default.active,
+.wise-editor .open .dropdown-toggle.btn-default {
+ background-image: none;
+}
+.wise-editor .btn-default.disabled,
+.wise-editor .btn-default[disabled],
+.wise-editor fieldset[disabled] .btn-default,
+.wise-editor .btn-default.disabled:hover,
+.wise-editor .btn-default[disabled]:hover,
+.wise-editor fieldset[disabled] .btn-default:hover,
+.wise-editor .btn-default.disabled:focus,
+.wise-editor .btn-default[disabled]:focus,
+.wise-editor fieldset[disabled] .btn-default:focus,
+.wise-editor .btn-default.disabled:active,
+.wise-editor .btn-default[disabled]:active,
+.wise-editor fieldset[disabled] .btn-default:active,
+.wise-editor .btn-default.disabled.active,
+.wise-editor .btn-default[disabled].active,
+.wise-editor fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc;
+}
+.wise-editor .btn-default .badge {
+ color: #fff;
+ background-color: #333;
+}
+.wise-editor .btn-primary {
+ color: #fff;
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.wise-editor .btn-primary:hover,
+.wise-editor .btn-primary:focus,
+.wise-editor .btn-primary:active,
+.wise-editor .btn-primary.active,
+.wise-editor .open .dropdown-toggle.btn-primary {
+ color: #fff;
+ background-color: #3276b1;
+ border-color: #285e8e;
+}
+.wise-editor .btn-primary:active,
+.wise-editor .btn-primary.active,
+.wise-editor .open .dropdown-toggle.btn-primary {
+ background-image: none;
+}
+.wise-editor .btn-primary.disabled,
+.wise-editor .btn-primary[disabled],
+.wise-editor fieldset[disabled] .btn-primary,
+.wise-editor .btn-primary.disabled:hover,
+.wise-editor .btn-primary[disabled]:hover,
+.wise-editor fieldset[disabled] .btn-primary:hover,
+.wise-editor .btn-primary.disabled:focus,
+.wise-editor .btn-primary[disabled]:focus,
+.wise-editor fieldset[disabled] .btn-primary:focus,
+.wise-editor .btn-primary.disabled:active,
+.wise-editor .btn-primary[disabled]:active,
+.wise-editor fieldset[disabled] .btn-primary:active,
+.wise-editor .btn-primary.disabled.active,
+.wise-editor .btn-primary[disabled].active,
+.wise-editor fieldset[disabled] .btn-primary.active {
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.wise-editor .btn-primary .badge {
+ color: #428bca;
+ background-color: #fff;
+}
+.wise-editor .btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.wise-editor .btn-success:hover,
+.wise-editor .btn-success:focus,
+.wise-editor .btn-success:active,
+.wise-editor .btn-success.active,
+.wise-editor .open .dropdown-toggle.btn-success {
+ color: #fff;
+ background-color: #47a447;
+ border-color: #398439;
+}
+.wise-editor .btn-success:active,
+.wise-editor .btn-success.active,
+.wise-editor .open .dropdown-toggle.btn-success {
+ background-image: none;
+}
+.wise-editor .btn-success.disabled,
+.wise-editor .btn-success[disabled],
+.wise-editor fieldset[disabled] .btn-success,
+.wise-editor .btn-success.disabled:hover,
+.wise-editor .btn-success[disabled]:hover,
+.wise-editor fieldset[disabled] .btn-success:hover,
+.wise-editor .btn-success.disabled:focus,
+.wise-editor .btn-success[disabled]:focus,
+.wise-editor fieldset[disabled] .btn-success:focus,
+.wise-editor .btn-success.disabled:active,
+.wise-editor .btn-success[disabled]:active,
+.wise-editor fieldset[disabled] .btn-success:active,
+.wise-editor .btn-success.disabled.active,
+.wise-editor .btn-success[disabled].active,
+.wise-editor fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.wise-editor .btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff;
+}
+.wise-editor .btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.wise-editor .btn-info:hover,
+.wise-editor .btn-info:focus,
+.wise-editor .btn-info:active,
+.wise-editor .btn-info.active,
+.wise-editor .open .dropdown-toggle.btn-info {
+ color: #fff;
+ background-color: #39b3d7;
+ border-color: #269abc;
+}
+.wise-editor .btn-info:active,
+.wise-editor .btn-info.active,
+.wise-editor .open .dropdown-toggle.btn-info {
+ background-image: none;
+}
+.wise-editor .btn-info.disabled,
+.wise-editor .btn-info[disabled],
+.wise-editor fieldset[disabled] .btn-info,
+.wise-editor .btn-info.disabled:hover,
+.wise-editor .btn-info[disabled]:hover,
+.wise-editor fieldset[disabled] .btn-info:hover,
+.wise-editor .btn-info.disabled:focus,
+.wise-editor .btn-info[disabled]:focus,
+.wise-editor fieldset[disabled] .btn-info:focus,
+.wise-editor .btn-info.disabled:active,
+.wise-editor .btn-info[disabled]:active,
+.wise-editor fieldset[disabled] .btn-info:active,
+.wise-editor .btn-info.disabled.active,
+.wise-editor .btn-info[disabled].active,
+.wise-editor fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.wise-editor .btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff;
+}
+.wise-editor .btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.wise-editor .btn-warning:hover,
+.wise-editor .btn-warning:focus,
+.wise-editor .btn-warning:active,
+.wise-editor .btn-warning.active,
+.wise-editor .open .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ed9c28;
+ border-color: #d58512;
+}
+.wise-editor .btn-warning:active,
+.wise-editor .btn-warning.active,
+.wise-editor .open .dropdown-toggle.btn-warning {
+ background-image: none;
+}
+.wise-editor .btn-warning.disabled,
+.wise-editor .btn-warning[disabled],
+.wise-editor fieldset[disabled] .btn-warning,
+.wise-editor .btn-warning.disabled:hover,
+.wise-editor .btn-warning[disabled]:hover,
+.wise-editor fieldset[disabled] .btn-warning:hover,
+.wise-editor .btn-warning.disabled:focus,
+.wise-editor .btn-warning[disabled]:focus,
+.wise-editor fieldset[disabled] .btn-warning:focus,
+.wise-editor .btn-warning.disabled:active,
+.wise-editor .btn-warning[disabled]:active,
+.wise-editor fieldset[disabled] .btn-warning:active,
+.wise-editor .btn-warning.disabled.active,
+.wise-editor .btn-warning[disabled].active,
+.wise-editor fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.wise-editor .btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+}
+.wise-editor .btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.wise-editor .btn-danger:hover,
+.wise-editor .btn-danger:focus,
+.wise-editor .btn-danger:active,
+.wise-editor .btn-danger.active,
+.wise-editor .open .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #d2322d;
+ border-color: #ac2925;
+}
+.wise-editor .btn-danger:active,
+.wise-editor .btn-danger.active,
+.wise-editor .open .dropdown-toggle.btn-danger {
+ background-image: none;
+}
+.wise-editor .btn-danger.disabled,
+.wise-editor .btn-danger[disabled],
+.wise-editor fieldset[disabled] .btn-danger,
+.wise-editor .btn-danger.disabled:hover,
+.wise-editor .btn-danger[disabled]:hover,
+.wise-editor fieldset[disabled] .btn-danger:hover,
+.wise-editor .btn-danger.disabled:focus,
+.wise-editor .btn-danger[disabled]:focus,
+.wise-editor fieldset[disabled] .btn-danger:focus,
+.wise-editor .btn-danger.disabled:active,
+.wise-editor .btn-danger[disabled]:active,
+.wise-editor fieldset[disabled] .btn-danger:active,
+.wise-editor .btn-danger.disabled.active,
+.wise-editor .btn-danger[disabled].active,
+.wise-editor fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.wise-editor .btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+}
+.wise-editor .btn-link {
+ color: #428bca;
+ font-weight: 400;
+ cursor: pointer;
+ border-radius: 0;
+}
+.wise-editor .btn-link,
+.wise-editor .btn-link:active,
+.wise-editor .btn-link[disabled],
+.wise-editor fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.wise-editor .btn-link,
+.wise-editor .btn-link:hover,
+.wise-editor .btn-link:focus,
+.wise-editor .btn-link:active {
+ border-color: transparent;
+}
+.wise-editor .btn-link:hover,
+.wise-editor .btn-link:focus {
+ color: #2a6496;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.wise-editor .btn-link[disabled]:hover,
+.wise-editor fieldset[disabled] .btn-link:hover,
+.wise-editor .btn-link[disabled]:focus,
+.wise-editor fieldset[disabled] .btn-link:focus {
+ color: #999;
+ text-decoration: none;
+}
+.wise-editor .btn-lg,
+.wise-editor .btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.wise-editor .btn-sm,
+.wise-editor .btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.wise-editor .btn-xs,
+.wise-editor .btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.wise-editor .btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+}
+.wise-editor .btn-block + .btn-block {
+ margin-top: 5px;
+}
+.wise-editor input[type='submit'].btn-block,
+.wise-editor input[type='reset'].btn-block,
+.wise-editor input[type='button'].btn-block {
+ width: 100%;
+}
+.wise-editor .fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+.wise-editor .fade.in {
+ opacity: 1;
+}
+.wise-editor .collapse {
+ display: none;
+}
+.wise-editor .collapse.in {
+ display: block;
+}
+.wise-editor .collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition: height 0.35s ease;
+ transition: height 0.35s ease;
+}
+.wise-editor .glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.wise-editor .glyphicon-asterisk:before {
+ content: '\2a';
+}
+.wise-editor .glyphicon-plus:before {
+ content: '\2b';
+}
+.wise-editor .glyphicon-euro:before {
+ content: '\20ac';
+}
+.wise-editor .glyphicon-minus:before {
+ content: '\2212';
+}
+.wise-editor .glyphicon-cloud:before {
+ content: '\2601';
+}
+.wise-editor .glyphicon-envelope:before {
+ content: '\2709';
+}
+.wise-editor .glyphicon-pencil:before {
+ content: '\270f';
+}
+.wise-editor .glyphicon-glass:before {
+ content: '\e001';
+}
+.wise-editor .glyphicon-music:before {
+ content: '\e002';
+}
+.wise-editor .glyphicon-search:before {
+ content: '\e003';
+}
+.wise-editor .glyphicon-heart:before {
+ content: '\e005';
+}
+.wise-editor .glyphicon-star:before {
+ content: '\e006';
+}
+.wise-editor .glyphicon-star-empty:before {
+ content: '\e007';
+}
+.wise-editor .glyphicon-user:before {
+ content: '\e008';
+}
+.wise-editor .glyphicon-film:before {
+ content: '\e009';
+}
+.wise-editor .glyphicon-th-large:before {
+ content: '\e010';
+}
+.wise-editor .glyphicon-th:before {
+ content: '\e011';
+}
+.wise-editor .glyphicon-th-list:before {
+ content: '\e012';
+}
+.wise-editor .glyphicon-ok:before {
+ content: '\e013';
+}
+.wise-editor .glyphicon-remove:before {
+ content: '\e014';
+}
+.wise-editor .glyphicon-zoom-in:before {
+ content: '\e015';
+}
+.wise-editor .glyphicon-zoom-out:before {
+ content: '\e016';
+}
+.wise-editor .glyphicon-off:before {
+ content: '\e017';
+}
+.wise-editor .glyphicon-signal:before {
+ content: '\e018';
+}
+.wise-editor .glyphicon-cog:before {
+ content: '\e019';
+}
+.wise-editor .glyphicon-trash:before {
+ content: '\e020';
+}
+.wise-editor .glyphicon-home:before {
+ content: '\e021';
+}
+.wise-editor .glyphicon-file:before {
+ content: '\e022';
+}
+.wise-editor .glyphicon-time:before {
+ content: '\e023';
+}
+.wise-editor .glyphicon-road:before {
+ content: '\e024';
+}
+.wise-editor .glyphicon-download-alt:before {
+ content: '\e025';
+}
+.wise-editor .glyphicon-download:before {
+ content: '\e026';
+}
+.wise-editor .glyphicon-upload:before {
+ content: '\e027';
+}
+.wise-editor .glyphicon-inbox:before {
+ content: '\e028';
+}
+.wise-editor .glyphicon-play-circle:before {
+ content: '\e029';
+}
+.wise-editor .glyphicon-repeat:before {
+ content: '\e030';
+}
+.wise-editor .glyphicon-refresh:before {
+ content: '\e031';
+}
+.wise-editor .glyphicon-list-alt:before {
+ content: '\e032';
+}
+.wise-editor .glyphicon-lock:before {
+ content: '\e033';
+}
+.wise-editor .glyphicon-flag:before {
+ content: '\e034';
+}
+.wise-editor .glyphicon-headphones:before {
+ content: '\e035';
+}
+.wise-editor .glyphicon-volume-off:before {
+ content: '\e036';
+}
+.wise-editor .glyphicon-volume-down:before {
+ content: '\e037';
+}
+.wise-editor .glyphicon-volume-up:before {
+ content: '\e038';
+}
+.wise-editor .glyphicon-qrcode:before {
+ content: '\e039';
+}
+.wise-editor .glyphicon-barcode:before {
+ content: '\e040';
+}
+.wise-editor .glyphicon-tag:before {
+ content: '\e041';
+}
+.wise-editor .glyphicon-tags:before {
+ content: '\e042';
+}
+.wise-editor .glyphicon-book:before {
+ content: '\e043';
+}
+.wise-editor .glyphicon-bookmark:before {
+ content: '\e044';
+}
+.wise-editor .glyphicon-print:before {
+ content: '\e045';
+}
+.wise-editor .glyphicon-camera:before {
+ content: '\e046';
+}
+.wise-editor .glyphicon-font:before {
+ content: '\e047';
+}
+.wise-editor .glyphicon-bold:before {
+ content: '\e048';
+}
+.wise-editor .glyphicon-italic:before {
+ content: '\e049';
+}
+.wise-editor .glyphicon-text-height:before {
+ content: '\e050';
+}
+.wise-editor .glyphicon-text-width:before {
+ content: '\e051';
+}
+.wise-editor .glyphicon-align-left:before {
+ content: '\e052';
+}
+.wise-editor .glyphicon-align-center:before {
+ content: '\e053';
+}
+.wise-editor .glyphicon-align-right:before {
+ content: '\e054';
+}
+.wise-editor .glyphicon-align-justify:before {
+ content: '\e055';
+}
+.wise-editor .glyphicon-list:before {
+ content: '\e056';
+}
+.wise-editor .glyphicon-indent-left:before {
+ content: '\e057';
+}
+.wise-editor .glyphicon-indent-right:before {
+ content: '\e058';
+}
+.wise-editor .glyphicon-facetime-video:before {
+ content: '\e059';
+}
+.wise-editor .glyphicon-picture:before {
+ content: '\e060';
+}
+.wise-editor .glyphicon-map-marker:before {
+ content: '\e062';
+}
+.wise-editor .glyphicon-adjust:before {
+ content: '\e063';
+}
+.wise-editor .glyphicon-tint:before {
+ content: '\e064';
+}
+.wise-editor .glyphicon-edit:before {
+ content: '\e065';
+}
+.wise-editor .glyphicon-share:before {
+ content: '\e066';
+}
+.wise-editor .glyphicon-check:before {
+ content: '\e067';
+}
+.wise-editor .glyphicon-move:before {
+ content: '\e068';
+}
+.wise-editor .glyphicon-step-backward:before {
+ content: '\e069';
+}
+.wise-editor .glyphicon-fast-backward:before {
+ content: '\e070';
+}
+.wise-editor .glyphicon-backward:before {
+ content: '\e071';
+}
+.wise-editor .glyphicon-play:before {
+ content: '\e072';
+}
+.wise-editor .glyphicon-pause:before {
+ content: '\e073';
+}
+.wise-editor .glyphicon-stop:before {
+ content: '\e074';
+}
+.wise-editor .glyphicon-forward:before {
+ content: '\e075';
+}
+.wise-editor .glyphicon-fast-forward:before {
+ content: '\e076';
+}
+.wise-editor .glyphicon-step-forward:before {
+ content: '\e077';
+}
+.wise-editor .glyphicon-eject:before {
+ content: '\e078';
+}
+.wise-editor .glyphicon-chevron-left:before {
+ content: '\e079';
+}
+.wise-editor .glyphicon-chevron-right:before {
+ content: '\e080';
+}
+.wise-editor .glyphicon-plus-sign:before {
+ content: '\e081';
+}
+.wise-editor .glyphicon-minus-sign:before {
+ content: '\e082';
+}
+.wise-editor .glyphicon-remove-sign:before {
+ content: '\e083';
+}
+.wise-editor .glyphicon-ok-sign:before {
+ content: '\e084';
+}
+.wise-editor .glyphicon-question-sign:before {
+ content: '\e085';
+}
+.wise-editor .glyphicon-info-sign:before {
+ content: '\e086';
+}
+.wise-editor .glyphicon-screenshot:before {
+ content: '\e087';
+}
+.wise-editor .glyphicon-remove-circle:before {
+ content: '\e088';
+}
+.wise-editor .glyphicon-ok-circle:before {
+ content: '\e089';
+}
+.wise-editor .glyphicon-ban-circle:before {
+ content: '\e090';
+}
+.wise-editor .glyphicon-arrow-left:before {
+ content: '\e091';
+}
+.wise-editor .glyphicon-arrow-right:before {
+ content: '\e092';
+}
+.wise-editor .glyphicon-arrow-up:before {
+ content: '\e093';
+}
+.wise-editor .glyphicon-arrow-down:before {
+ content: '\e094';
+}
+.wise-editor .glyphicon-share-alt:before {
+ content: '\e095';
+}
+.wise-editor .glyphicon-resize-full:before {
+ content: '\e096';
+}
+.wise-editor .glyphicon-resize-small:before {
+ content: '\e097';
+}
+.wise-editor .glyphicon-exclamation-sign:before {
+ content: '\e101';
+}
+.wise-editor .glyphicon-gift:before {
+ content: '\e102';
+}
+.wise-editor .glyphicon-leaf:before {
+ content: '\e103';
+}
+.wise-editor .glyphicon-fire:before {
+ content: '\e104';
+}
+.wise-editor .glyphicon-eye-open:before {
+ content: '\e105';
+}
+.wise-editor .glyphicon-eye-close:before {
+ content: '\e106';
+}
+.wise-editor .glyphicon-warning-sign:before {
+ content: '\e107';
+}
+.wise-editor .glyphicon-plane:before {
+ content: '\e108';
+}
+.wise-editor .glyphicon-calendar:before {
+ content: '\e109';
+}
+.wise-editor .glyphicon-random:before {
+ content: '\e110';
+}
+.wise-editor .glyphicon-comment:before {
+ content: '\e111';
+}
+.wise-editor .glyphicon-magnet:before {
+ content: '\e112';
+}
+.wise-editor .glyphicon-chevron-up:before {
+ content: '\e113';
+}
+.wise-editor .glyphicon-chevron-down:before {
+ content: '\e114';
+}
+.wise-editor .glyphicon-retweet:before {
+ content: '\e115';
+}
+.wise-editor .glyphicon-shopping-cart:before {
+ content: '\e116';
+}
+.wise-editor .glyphicon-folder-close:before {
+ content: '\e117';
+}
+.wise-editor .glyphicon-folder-open:before {
+ content: '\e118';
+}
+.wise-editor .glyphicon-resize-vertical:before {
+ content: '\e119';
+}
+.wise-editor .glyphicon-resize-horizontal:before {
+ content: '\e120';
+}
+.wise-editor .glyphicon-hdd:before {
+ content: '\e121';
+}
+.wise-editor .glyphicon-bullhorn:before {
+ content: '\e122';
+}
+.wise-editor .glyphicon-bell:before {
+ content: '\e123';
+}
+.wise-editor .glyphicon-certificate:before {
+ content: '\e124';
+}
+.wise-editor .glyphicon-thumbs-up:before {
+ content: '\e125';
+}
+.wise-editor .glyphicon-thumbs-down:before {
+ content: '\e126';
+}
+.wise-editor .glyphicon-hand-right:before {
+ content: '\e127';
+}
+.wise-editor .glyphicon-hand-left:before {
+ content: '\e128';
+}
+.wise-editor .glyphicon-hand-up:before {
+ content: '\e129';
+}
+.wise-editor .glyphicon-hand-down:before {
+ content: '\e130';
+}
+.wise-editor .glyphicon-circle-arrow-right:before {
+ content: '\e131';
+}
+.wise-editor .glyphicon-circle-arrow-left:before {
+ content: '\e132';
+}
+.wise-editor .glyphicon-circle-arrow-up:before {
+ content: '\e133';
+}
+.wise-editor .glyphicon-circle-arrow-down:before {
+ content: '\e134';
+}
+.wise-editor .glyphicon-globe:before {
+ content: '\e135';
+}
+.wise-editor .glyphicon-wrench:before {
+ content: '\e136';
+}
+.wise-editor .glyphicon-tasks:before {
+ content: '\e137';
+}
+.wise-editor .glyphicon-filter:before {
+ content: '\e138';
+}
+.wise-editor .glyphicon-briefcase:before {
+ content: '\e139';
+}
+.wise-editor .glyphicon-fullscreen:before {
+ content: '\e140';
+}
+.wise-editor .glyphicon-dashboard:before {
+ content: '\e141';
+}
+.wise-editor .glyphicon-paperclip:before {
+ content: '\e142';
+}
+.wise-editor .glyphicon-heart-empty:before {
+ content: '\e143';
+}
+.wise-editor .glyphicon-link:before {
+ content: '\e144';
+}
+.wise-editor .glyphicon-phone:before {
+ content: '\e145';
+}
+.wise-editor .glyphicon-pushpin:before {
+ content: '\e146';
+}
+.wise-editor .glyphicon-usd:before {
+ content: '\e148';
+}
+.wise-editor .glyphicon-gbp:before {
+ content: '\e149';
+}
+.wise-editor .glyphicon-sort:before {
+ content: '\e150';
+}
+.wise-editor .glyphicon-sort-by-alphabet:before {
+ content: '\e151';
+}
+.wise-editor .glyphicon-sort-by-alphabet-alt:before {
+ content: '\e152';
+}
+.wise-editor .glyphicon-sort-by-order:before {
+ content: '\e153';
+}
+.wise-editor .glyphicon-sort-by-order-alt:before {
+ content: '\e154';
+}
+.wise-editor .glyphicon-sort-by-attributes:before {
+ content: '\e155';
+}
+.wise-editor .glyphicon-sort-by-attributes-alt:before {
+ content: '\e156';
+}
+.wise-editor .glyphicon-unchecked:before {
+ content: '\e157';
+}
+.wise-editor .glyphicon-expand:before {
+ content: '\e158';
+}
+.wise-editor .glyphicon-collapse-down:before {
+ content: '\e159';
+}
+.wise-editor .glyphicon-collapse-up:before {
+ content: '\e160';
+}
+.wise-editor .glyphicon-log-in:before {
+ content: '\e161';
+}
+.wise-editor .glyphicon-flash:before {
+ content: '\e162';
+}
+.wise-editor .glyphicon-log-out:before {
+ content: '\e163';
+}
+.wise-editor .glyphicon-new-window:before {
+ content: '\e164';
+}
+.wise-editor .glyphicon-record:before {
+ content: '\e165';
+}
+.wise-editor .glyphicon-save:before {
+ content: '\e166';
+}
+.wise-editor .glyphicon-open:before {
+ content: '\e167';
+}
+.wise-editor .glyphicon-saved:before {
+ content: '\e168';
+}
+.wise-editor .glyphicon-import:before {
+ content: '\e169';
+}
+.wise-editor .glyphicon-export:before {
+ content: '\e170';
+}
+.wise-editor .glyphicon-send:before {
+ content: '\e171';
+}
+.wise-editor .glyphicon-floppy-disk:before {
+ content: '\e172';
+}
+.wise-editor .glyphicon-floppy-saved:before {
+ content: '\e173';
+}
+.wise-editor .glyphicon-floppy-remove:before {
+ content: '\e174';
+}
+.wise-editor .glyphicon-floppy-save:before {
+ content: '\e175';
+}
+.wise-editor .glyphicon-floppy-open:before {
+ content: '\e176';
+}
+.wise-editor .glyphicon-credit-card:before {
+ content: '\e177';
+}
+.wise-editor .glyphicon-transfer:before {
+ content: '\e178';
+}
+.wise-editor .glyphicon-cutlery:before {
+ content: '\e179';
+}
+.wise-editor .glyphicon-header:before {
+ content: '\e180';
+}
+.wise-editor .glyphicon-compressed:before {
+ content: '\e181';
+}
+.wise-editor .glyphicon-earphone:before {
+ content: '\e182';
+}
+.wise-editor .glyphicon-phone-alt:before {
+ content: '\e183';
+}
+.wise-editor .glyphicon-tower:before {
+ content: '\e184';
+}
+.wise-editor .glyphicon-stats:before {
+ content: '\e185';
+}
+.wise-editor .glyphicon-sd-video:before {
+ content: '\e186';
+}
+.wise-editor .glyphicon-hd-video:before {
+ content: '\e187';
+}
+.wise-editor .glyphicon-subtitles:before {
+ content: '\e188';
+}
+.wise-editor .glyphicon-sound-stereo:before {
+ content: '\e189';
+}
+.wise-editor .glyphicon-sound-dolby:before {
+ content: '\e190';
+}
+.wise-editor .glyphicon-sound-5-1:before {
+ content: '\e191';
+}
+.wise-editor .glyphicon-sound-6-1:before {
+ content: '\e192';
+}
+.wise-editor .glyphicon-sound-7-1:before {
+ content: '\e193';
+}
+.wise-editor .glyphicon-copyright-mark:before {
+ content: '\e194';
+}
+.wise-editor .glyphicon-registration-mark:before {
+ content: '\e195';
+}
+.wise-editor .glyphicon-cloud-download:before {
+ content: '\e197';
+}
+.wise-editor .glyphicon-cloud-upload:before {
+ content: '\e198';
+}
+.wise-editor .glyphicon-tree-conifer:before {
+ content: '\e199';
+}
+.wise-editor .glyphicon-tree-deciduous:before {
+ content: '\e200';
+}
+.wise-editor .caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px solid;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+}
+.wise-editor .dropdown {
+ position: relative;
+}
+.wise-editor .dropdown-toggle:focus {
+ outline: 0;
+}
+.wise-editor .dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 13px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box;
+}
+.wise-editor .dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+.wise-editor .dropdown-menu .divider {
+ height: 1px;
+ margin: 8px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.wise-editor .dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: 400;
+ line-height: 1.42857143;
+ color: #333;
+ white-space: nowrap;
+}
+.wise-editor .dropdown-menu > li > a:hover,
+.wise-editor .dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #262626;
+ background-color: #f5f5f5;
+}
+.wise-editor .dropdown-menu > .active > a,
+.wise-editor .dropdown-menu > .active > a:hover,
+.wise-editor .dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #428bca;
+}
+.wise-editor .dropdown-menu > .disabled > a,
+.wise-editor .dropdown-menu > .disabled > a:hover,
+.wise-editor .dropdown-menu > .disabled > a:focus {
+ color: #999;
+}
+.wise-editor .dropdown-menu > .disabled > a:hover,
+.wise-editor .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ cursor: not-allowed;
+}
+.wise-editor .open > .dropdown-menu {
+ display: block;
+}
+.wise-editor .open > a {
+ outline: 0;
+}
+.wise-editor .dropdown-menu-right {
+ left: auto;
+ right: 0;
+}
+.wise-editor .dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+.wise-editor .dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ color: #999;
+}
+.wise-editor .dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990;
+}
+.wise-editor .pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+.wise-editor .dropup .caret,
+.wise-editor .navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px solid;
+ content: '';
+}
+.wise-editor .dropup .dropdown-menu,
+.wise-editor .navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-right .dropdown-menu {
+ left: auto;
+ right: 0;
+ }
+ .wise-editor .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+}
+.wise-editor .btn-group,
+.wise-editor .btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+.wise-editor .btn-group > .btn,
+.wise-editor .btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+.wise-editor .btn-group > .btn:hover,
+.wise-editor .btn-group-vertical > .btn:hover,
+.wise-editor .btn-group > .btn:focus,
+.wise-editor .btn-group-vertical > .btn:focus,
+.wise-editor .btn-group > .btn:active,
+.wise-editor .btn-group-vertical > .btn:active,
+.wise-editor .btn-group > .btn.active,
+.wise-editor .btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+.wise-editor .btn-group > .btn:focus,
+.wise-editor .btn-group-vertical > .btn:focus {
+ outline: 0;
+}
+.wise-editor .btn-group .btn + .btn,
+.wise-editor .btn-group .btn + .btn-group,
+.wise-editor .btn-group .btn-group + .btn,
+.wise-editor .btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+.wise-editor .btn-toolbar {
+ margin-left: -5px;
+}
+.wise-editor .btn-toolbar .btn-group,
+.wise-editor .btn-toolbar .input-group {
+ float: left;
+}
+.wise-editor .btn-toolbar > .btn,
+.wise-editor .btn-toolbar > .btn-group,
+.wise-editor .btn-toolbar > .input-group {
+ margin-left: 5px;
+}
+.wise-editor .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+.wise-editor .btn-group > .btn:first-child {
+ margin-left: 0;
+}
+.wise-editor .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.wise-editor .btn-group > .btn:last-child:not(:first-child),
+.wise-editor .btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.wise-editor .btn-group > .btn-group {
+ float: left;
+}
+.wise-editor .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.wise-editor .btn-group > .btn-group:first-child > .btn:last-child,
+.wise-editor .btn-group > .btn-group:first-child > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.wise-editor .btn-group > .btn-group:last-child > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.wise-editor .btn-group .dropdown-toggle:active,
+.wise-editor .btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+.wise-editor .btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.wise-editor .btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+.wise-editor .btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.wise-editor .btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.wise-editor .btn .caret {
+ margin-left: 0;
+}
+.wise-editor .btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+.wise-editor .dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+}
+.wise-editor .btn-group-vertical > .btn,
+.wise-editor .btn-group-vertical > .btn-group,
+.wise-editor .btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+.wise-editor .btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+.wise-editor .btn-group-vertical > .btn + .btn,
+.wise-editor .btn-group-vertical > .btn + .btn-group,
+.wise-editor .btn-group-vertical > .btn-group + .btn,
+.wise-editor .btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+.wise-editor .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.wise-editor .btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.wise-editor .btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-bottom-left-radius: 4px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.wise-editor .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.wise-editor .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.wise-editor .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.wise-editor .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.wise-editor .btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+.wise-editor .btn-group-justified > .btn,
+.wise-editor .btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+}
+.wise-editor .btn-group-justified > .btn-group .btn {
+ width: 100%;
+}
+.wise-editor [data-toggle='buttons'] > .btn > input[type='radio'],
+.wise-editor [data-toggle='buttons'] > .btn > input[type='checkbox'] {
+ display: none;
+}
+.wise-editor .input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+.wise-editor .input-group[class*='col-'] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+}
+.wise-editor .input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+.wise-editor .input-group-lg > .form-control,
+.wise-editor .input-group-lg > .input-group-addon,
+.wise-editor .input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ padding: 10px 16px;
+ font-size: 17px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.wise-editor select.input-group-lg > .form-control,
+.wise-editor select.input-group-lg > .input-group-addon,
+.wise-editor select.input-group-lg > .input-group-btn > .btn {
+ height: 45px;
+ line-height: 45px;
+}
+.wise-editor textarea.input-group-lg > .form-control,
+.wise-editor textarea.input-group-lg > .input-group-addon,
+.wise-editor textarea.input-group-lg > .input-group-btn > .btn,
+.wise-editor select[multiple].input-group-lg > .form-control,
+.wise-editor select[multiple].input-group-lg > .input-group-addon,
+.wise-editor select[multiple].input-group-lg > .input-group-btn > .btn {
+ height: auto;
+}
+.wise-editor .input-group-sm > .form-control,
+.wise-editor .input-group-sm > .input-group-addon,
+.wise-editor .input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.wise-editor select.input-group-sm > .form-control,
+.wise-editor select.input-group-sm > .input-group-addon,
+.wise-editor select.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+}
+.wise-editor textarea.input-group-sm > .form-control,
+.wise-editor textarea.input-group-sm > .input-group-addon,
+.wise-editor textarea.input-group-sm > .input-group-btn > .btn,
+.wise-editor select[multiple].input-group-sm > .form-control,
+.wise-editor select[multiple].input-group-sm > .input-group-addon,
+.wise-editor select[multiple].input-group-sm > .input-group-btn > .btn {
+ height: auto;
+}
+.wise-editor .input-group-addon,
+.wise-editor .input-group-btn,
+.wise-editor .input-group .form-control {
+ display: table-cell;
+}
+.wise-editor .input-group-addon:not(:first-child):not(:last-child),
+.wise-editor .input-group-btn:not(:first-child):not(:last-child),
+.wise-editor .input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.wise-editor .input-group-addon,
+.wise-editor .input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+.wise-editor .input-group-addon {
+ padding: 6px 12px;
+ font-size: 13px;
+ font-weight: 400;
+ line-height: 1;
+ color: #555;
+ text-align: center;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+.wise-editor .input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+.wise-editor .input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 17px;
+ border-radius: 6px;
+}
+.wise-editor .input-group-addon input[type='radio'],
+.wise-editor .input-group-addon input[type='checkbox'] {
+ margin-top: 0;
+}
+.wise-editor .input-group .form-control:first-child,
+.wise-editor .input-group-addon:first-child,
+.wise-editor .input-group-btn:first-child > .btn,
+.wise-editor .input-group-btn:first-child > .btn-group > .btn,
+.wise-editor .input-group-btn:first-child > .dropdown-toggle,
+.wise-editor .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.wise-editor .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.wise-editor .input-group-addon:first-child {
+ border-right: 0;
+}
+.wise-editor .input-group .form-control:last-child,
+.wise-editor .input-group-addon:last-child,
+.wise-editor .input-group-btn:last-child > .btn,
+.wise-editor .input-group-btn:last-child > .btn-group > .btn,
+.wise-editor .input-group-btn:last-child > .dropdown-toggle,
+.wise-editor .input-group-btn:first-child > .btn:not(:first-child),
+.wise-editor .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.wise-editor .input-group-addon:last-child {
+ border-left: 0;
+}
+.wise-editor .input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+.wise-editor .input-group-btn > .btn {
+ position: relative;
+}
+.wise-editor .input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+.wise-editor .input-group-btn > .btn:hover,
+.wise-editor .input-group-btn > .btn:focus,
+.wise-editor .input-group-btn > .btn:active {
+ z-index: 2;
+}
+.wise-editor .input-group-btn:first-child > .btn,
+.wise-editor .input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+.wise-editor .input-group-btn:last-child > .btn,
+.wise-editor .input-group-btn:last-child > .btn-group {
+ margin-left: -1px;
+}
+.wise-editor .nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+}
+.wise-editor .nav > li {
+ position: relative;
+ display: block;
+}
+.wise-editor .nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+.wise-editor .nav > li > a:hover,
+.wise-editor .nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.wise-editor .nav > li.disabled > a {
+ color: #999;
+}
+.wise-editor .nav > li.disabled > a:hover,
+.wise-editor .nav > li.disabled > a:focus {
+ color: #999;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed;
+}
+.wise-editor .nav .open > a,
+.wise-editor .nav .open > a:hover,
+.wise-editor .nav .open > a:focus {
+ background-color: #eee;
+ border-color: #428bca;
+}
+.wise-editor .nav .nav-divider {
+ height: 1px;
+ margin: 8px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.wise-editor .nav > li > a > img {
+ max-width: none;
+}
+.wise-editor .nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+.wise-editor .nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+.wise-editor .nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857143;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+.wise-editor .nav-tabs > li > a:hover {
+ border-color: #eee #eee #ddd;
+}
+.wise-editor .nav-tabs > li.active > a,
+.wise-editor .nav-tabs > li.active > a:hover,
+.wise-editor .nav-tabs > li.active > a:focus {
+ color: #555;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.wise-editor .nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+.wise-editor .nav-tabs.nav-justified > li {
+ float: none;
+}
+.wise-editor .nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.wise-editor .nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .wise-editor .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .wise-editor .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.wise-editor .nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.wise-editor .nav-tabs.nav-justified > .active > a,
+.wise-editor .nav-tabs.nav-justified > .active > a:hover,
+.wise-editor .nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .wise-editor .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .wise-editor .nav-tabs.nav-justified > .active > a,
+ .wise-editor .nav-tabs.nav-justified > .active > a:hover,
+ .wise-editor .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.wise-editor .nav-pills > li {
+ float: left;
+}
+.wise-editor .nav-pills > li > a {
+ border-radius: 4px;
+}
+.wise-editor .nav-pills > li + li {
+ margin-left: 2px;
+}
+.wise-editor .nav-pills > li.active > a,
+.wise-editor .nav-pills > li.active > a:hover,
+.wise-editor .nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #428bca;
+}
+.wise-editor .nav-stacked > li {
+ float: none;
+}
+.wise-editor .nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+.wise-editor .nav-justified {
+ width: 100%;
+}
+.wise-editor .nav-justified > li {
+ float: none;
+}
+.wise-editor .nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.wise-editor .nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .wise-editor .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .wise-editor .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.wise-editor .nav-tabs-justified {
+ border-bottom: 0;
+}
+.wise-editor .nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.wise-editor .nav-tabs-justified > .active > a,
+.wise-editor .nav-tabs-justified > .active > a:hover,
+.wise-editor .nav-tabs-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .wise-editor .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .wise-editor .nav-tabs-justified > .active > a,
+ .wise-editor .nav-tabs-justified > .active > a:hover,
+ .wise-editor .nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.wise-editor .tab-content > .tab-pane {
+ display: none;
+}
+.wise-editor .tab-content > .active {
+ display: block;
+}
+.wise-editor .nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.wise-editor .navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 18px;
+ border: 1px solid transparent;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar {
+ border-radius: 4px;
+ }
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-header {
+ float: left;
+ }
+}
+.wise-editor .navbar-collapse {
+ max-height: 340px;
+ overflow-x: visible;
+ padding-right: 15px;
+ padding-left: 15px;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-overflow-scrolling: touch;
+}
+.wise-editor .navbar-collapse.in {
+ overflow-y: auto;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+ }
+ .wise-editor .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .wise-editor .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .wise-editor .navbar-fixed-top .navbar-collapse,
+ .wise-editor .navbar-static-top .navbar-collapse,
+ .wise-editor .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+.wise-editor .container > .navbar-header,
+.wise-editor .container-fluid > .navbar-header,
+.wise-editor .container > .navbar-collapse,
+.wise-editor .container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+@media (min-width: 768px) {
+ .wise-editor .container > .navbar-header,
+ .wise-editor .container-fluid > .navbar-header,
+ .wise-editor .container > .navbar-collapse,
+ .wise-editor .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.wise-editor .navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-static-top {
+ border-radius: 0;
+ }
+}
+.wise-editor .navbar-fixed-top,
+.wise-editor .navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-fixed-top,
+ .wise-editor .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+.wise-editor .navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+.wise-editor .navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+}
+.wise-editor .navbar-brand {
+ float: left;
+ padding: 16px 15px;
+ font-size: 17px;
+ line-height: 18px;
+ height: 50px;
+}
+.wise-editor .navbar-brand:hover,
+.wise-editor .navbar-brand:focus {
+ text-decoration: none;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar > .container .navbar-brand,
+ .wise-editor .navbar > .container-fluid .navbar-brand {
+ margin-left: -15px;
+ }
+}
+.wise-editor .navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: 15px;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.wise-editor .navbar-toggle:focus {
+ outline: 0;
+}
+.wise-editor .navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+.wise-editor .navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-toggle {
+ display: none;
+ }
+}
+.wise-editor .navbar-nav {
+ margin: 8px -15px;
+}
+.wise-editor .navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 18px;
+}
+@media (max-width: 767px) {
+ .wise-editor .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ }
+ .wise-editor .navbar-nav .open .dropdown-menu > li > a,
+ .wise-editor .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .wise-editor .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 18px;
+ }
+ .wise-editor .navbar-nav .open .dropdown-menu > li > a:hover,
+ .wise-editor .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .wise-editor .navbar-nav > li {
+ float: left;
+ }
+ .wise-editor .navbar-nav > li > a {
+ padding-top: 16px;
+ padding-bottom: 16px;
+ }
+ .wise-editor .navbar-nav.navbar-right:last-child {
+ margin-right: -15px;
+ }
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-left {
+ float: left !important;
+ }
+ .wise-editor .navbar-right {
+ float: right !important;
+ }
+}
+.wise-editor .navbar-form {
+ margin-left: -15px;
+ margin-right: -15px;
+ padding: 10px 15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .wise-editor .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .wise-editor .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+ .wise-editor .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .wise-editor .navbar-form .radio,
+ .wise-editor .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ vertical-align: middle;
+ }
+ .wise-editor .navbar-form .radio input[type='radio'],
+ .wise-editor .navbar-form .checkbox input[type='checkbox'] {
+ float: none;
+ margin-left: 0;
+ }
+ .wise-editor .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+@media (max-width: 767px) {
+ .wise-editor .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .wise-editor .navbar-form.navbar-right:last-child {
+ margin-right: -15px;
+ }
+}
+.wise-editor .navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.wise-editor .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.wise-editor .navbar-btn {
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+.wise-editor .navbar-btn.btn-sm {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.wise-editor .navbar-btn.btn-xs {
+ margin-top: 14px;
+ margin-bottom: 14px;
+}
+.wise-editor .navbar-text {
+ margin-top: 16px;
+ margin-bottom: 16px;
+}
+@media (min-width: 768px) {
+ .wise-editor .navbar-text {
+ float: left;
+ margin-left: 15px;
+ margin-right: 15px;
+ }
+ .wise-editor .navbar-text.navbar-right:last-child {
+ margin-right: 0;
+ }
+}
+.wise-editor .navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+}
+.wise-editor .navbar-default .navbar-brand {
+ color: #777;
+}
+.wise-editor .navbar-default .navbar-brand:hover,
+.wise-editor .navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+}
+.wise-editor .navbar-default .navbar-text {
+ color: #777;
+}
+.wise-editor .navbar-default .navbar-nav > li > a {
+ color: #777;
+}
+.wise-editor .navbar-default .navbar-nav > li > a:hover,
+.wise-editor .navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent;
+}
+.wise-editor .navbar-default .navbar-nav > .active > a,
+.wise-editor .navbar-default .navbar-nav > .active > a:hover,
+.wise-editor .navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+}
+.wise-editor .navbar-default .navbar-nav > .disabled > a,
+.wise-editor .navbar-default .navbar-nav > .disabled > a:hover,
+.wise-editor .navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+}
+.wise-editor .navbar-default .navbar-toggle {
+ border-color: #ddd;
+}
+.wise-editor .navbar-default .navbar-toggle:hover,
+.wise-editor .navbar-default .navbar-toggle:focus {
+ background-color: #ddd;
+}
+.wise-editor .navbar-default .navbar-toggle .icon-bar {
+ background-color: #888;
+}
+.wise-editor .navbar-default .navbar-collapse,
+.wise-editor .navbar-default .navbar-form {
+ border-color: #e7e7e7;
+}
+.wise-editor .navbar-default .navbar-nav > .open > a,
+.wise-editor .navbar-default .navbar-nav > .open > a:hover,
+.wise-editor .navbar-default .navbar-nav > .open > a:focus {
+ background-color: #e7e7e7;
+ color: #555;
+}
+@media (max-width: 767px) {
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777;
+ }
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent;
+ }
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .wise-editor .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+ }
+}
+.wise-editor .navbar-default .navbar-link {
+ color: #777;
+}
+.wise-editor .navbar-default .navbar-link:hover {
+ color: #333;
+}
+.wise-editor .navbar-inverse {
+ background-color: #222;
+ border-color: #080808;
+}
+.wise-editor .navbar-inverse .navbar-brand {
+ color: #999;
+}
+.wise-editor .navbar-inverse .navbar-brand:hover,
+.wise-editor .navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.wise-editor .navbar-inverse .navbar-text {
+ color: #999;
+}
+.wise-editor .navbar-inverse .navbar-nav > li > a {
+ color: #999;
+}
+.wise-editor .navbar-inverse .navbar-nav > li > a:hover,
+.wise-editor .navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.wise-editor .navbar-inverse .navbar-nav > .active > a,
+.wise-editor .navbar-inverse .navbar-nav > .active > a:hover,
+.wise-editor .navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+}
+.wise-editor .navbar-inverse .navbar-nav > .disabled > a,
+.wise-editor .navbar-inverse .navbar-nav > .disabled > a:hover,
+.wise-editor .navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+}
+.wise-editor .navbar-inverse .navbar-toggle {
+ border-color: #333;
+}
+.wise-editor .navbar-inverse .navbar-toggle:hover,
+.wise-editor .navbar-inverse .navbar-toggle:focus {
+ background-color: #333;
+}
+.wise-editor .navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff;
+}
+.wise-editor .navbar-inverse .navbar-collapse,
+.wise-editor .navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+.wise-editor .navbar-inverse .navbar-nav > .open > a,
+.wise-editor .navbar-inverse .navbar-nav > .open > a:hover,
+.wise-editor .navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: #080808;
+ color: #fff;
+}
+@media (max-width: 767px) {
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #080808;
+ }
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #999;
+ }
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .wise-editor .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+ }
+}
+.wise-editor .navbar-inverse .navbar-link {
+ color: #999;
+}
+.wise-editor .navbar-inverse .navbar-link:hover {
+ color: #fff;
+}
+.wise-editor .breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 18px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+}
+.wise-editor .breadcrumb > li {
+ display: inline-block;
+}
+.wise-editor .breadcrumb > li + li:before {
+ content: '/\00a0';
+ padding: 0 5px;
+ color: #ccc;
+}
+.wise-editor .breadcrumb > .active {
+ color: #999;
+}
+.wise-editor .pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 18px 0;
+ border-radius: 4px;
+}
+.wise-editor .pagination > li {
+ display: inline;
+}
+.wise-editor .pagination > li > a,
+.wise-editor .pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.42857143;
+ text-decoration: none;
+ color: #428bca;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ margin-left: -1px;
+}
+.wise-editor .pagination > li:first-child > a,
+.wise-editor .pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.wise-editor .pagination > li:last-child > a,
+.wise-editor .pagination > li:last-child > span {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.wise-editor .pagination > li > a:hover,
+.wise-editor .pagination > li > span:hover,
+.wise-editor .pagination > li > a:focus,
+.wise-editor .pagination > li > span:focus {
+ color: #2a6496;
+ background-color: #eee;
+ border-color: #ddd;
+}
+.wise-editor .pagination > .active > a,
+.wise-editor .pagination > .active > span,
+.wise-editor .pagination > .active > a:hover,
+.wise-editor .pagination > .active > span:hover,
+.wise-editor .pagination > .active > a:focus,
+.wise-editor .pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+ cursor: default;
+}
+.wise-editor .pagination > .disabled > span,
+.wise-editor .pagination > .disabled > span:hover,
+.wise-editor .pagination > .disabled > span:focus,
+.wise-editor .pagination > .disabled > a,
+.wise-editor .pagination > .disabled > a:hover,
+.wise-editor .pagination > .disabled > a:focus {
+ color: #999;
+ background-color: #fff;
+ border-color: #ddd;
+ cursor: not-allowed;
+}
+.wise-editor .pagination-lg > li > a,
+.wise-editor .pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 17px;
+}
+.wise-editor .pagination-lg > li:first-child > a,
+.wise-editor .pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 6px;
+ border-top-left-radius: 6px;
+}
+.wise-editor .pagination-lg > li:last-child > a,
+.wise-editor .pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 6px;
+ border-top-right-radius: 6px;
+}
+.wise-editor .pagination-sm > li > a,
+.wise-editor .pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+}
+.wise-editor .pagination-sm > li:first-child > a,
+.wise-editor .pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.wise-editor .pagination-sm > li:last-child > a,
+.wise-editor .pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.wise-editor .pager {
+ padding-left: 0;
+ margin: 18px 0;
+ list-style: none;
+ text-align: center;
+}
+.wise-editor .pager li {
+ display: inline;
+}
+.wise-editor .pager li > a,
+.wise-editor .pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px;
+}
+.wise-editor .pager li > a:hover,
+.wise-editor .pager li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.wise-editor .pager .next > a,
+.wise-editor .pager .next > span {
+ float: right;
+}
+.wise-editor .pager .previous > a,
+.wise-editor .pager .previous > span {
+ float: left;
+}
+.wise-editor .pager .disabled > a,
+.wise-editor .pager .disabled > a:hover,
+.wise-editor .pager .disabled > a:focus,
+.wise-editor .pager .disabled > span {
+ color: #999;
+ background-color: #fff;
+ cursor: not-allowed;
+}
+.wise-editor .label {
+ display: inline;
+ padding: 0.2em 0.6em 0.3em;
+ font-size: 75%;
+ font-weight: 700;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25em;
+}
+.wise-editor .label[href]:hover,
+.wise-editor .label[href]:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.wise-editor .label:empty {
+ display: none;
+}
+.wise-editor .btn .label {
+ position: relative;
+ top: -1px;
+}
+.wise-editor .label-default {
+ background-color: #999;
+}
+.wise-editor .label-default[href]:hover,
+.wise-editor .label-default[href]:focus {
+ background-color: gray;
+}
+.wise-editor .label-primary {
+ background-color: #428bca;
+}
+.wise-editor .label-primary[href]:hover,
+.wise-editor .label-primary[href]:focus {
+ background-color: #3071a9;
+}
+.wise-editor .label-success {
+ background-color: #5cb85c;
+}
+.wise-editor .label-success[href]:hover,
+.wise-editor .label-success[href]:focus {
+ background-color: #449d44;
+}
+.wise-editor .label-info {
+ background-color: #5bc0de;
+}
+.wise-editor .label-info[href]:hover,
+.wise-editor .label-info[href]:focus {
+ background-color: #31b0d5;
+}
+.wise-editor .label-warning {
+ background-color: #f0ad4e;
+}
+.wise-editor .label-warning[href]:hover,
+.wise-editor .label-warning[href]:focus {
+ background-color: #ec971f;
+}
+.wise-editor .label-danger {
+ background-color: #d9534f;
+}
+.wise-editor .label-danger[href]:hover,
+.wise-editor .label-danger[href]:focus {
+ background-color: #c9302c;
+}
+.wise-editor .badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: 700;
+ color: #fff;
+ line-height: 1;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #999;
+ border-radius: 10px;
+}
+.wise-editor .badge:empty {
+ display: none;
+}
+.wise-editor .btn .badge {
+ position: relative;
+ top: -1px;
+}
+.wise-editor .btn-xs .badge {
+ top: 0;
+ padding: 1px 5px;
+}
+.wise-editor a.badge:hover,
+.wise-editor a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.wise-editor a.list-group-item.active > .badge,
+.wise-editor .nav-pills > .active > a > .badge {
+ color: #428bca;
+ background-color: #fff;
+}
+.wise-editor .nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+.wise-editor .jumbotron {
+ padding: 30px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eee;
+}
+.wise-editor .jumbotron h1,
+.wise-editor .jumbotron .h1 {
+ color: inherit;
+}
+.wise-editor .jumbotron p {
+ margin-bottom: 15px;
+ font-size: 20px;
+ font-weight: 200;
+}
+.wise-editor .container .jumbotron {
+ border-radius: 6px;
+}
+.wise-editor .jumbotron .container {
+ max-width: 100%;
+}
+@media screen and (min-width: 768px) {
+ .wise-editor .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px;
+ }
+ .wise-editor .container .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px;
+ }
+ .wise-editor .jumbotron h1,
+ .wise-editor .jumbotron .h1 {
+ font-size: 58.5px;
+ }
+}
+.wise-editor .thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 18px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+}
+.wise-editor .thumbnail > img,
+.wise-editor .thumbnail a > img {
+ margin-left: auto;
+ margin-right: auto;
+}
+.wise-editor a.thumbnail:hover,
+.wise-editor a.thumbnail:focus,
+.wise-editor a.thumbnail.active {
+ border-color: #428bca;
+}
+.wise-editor .thumbnail .caption {
+ padding: 9px;
+ color: #333;
+}
+.wise-editor .alert {
+ padding: 15px;
+ margin-bottom: 18px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.wise-editor .alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+.wise-editor .alert .alert-link {
+ font-weight: 700;
+}
+.wise-editor .alert > p,
+.wise-editor .alert > ul {
+ margin-bottom: 0;
+}
+.wise-editor .alert > p + p {
+ margin-top: 5px;
+}
+.wise-editor .alert-dismissable {
+ padding-right: 35px;
+}
+.wise-editor .alert-dismissable .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+}
+.wise-editor .alert-success {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #3c763d;
+}
+.wise-editor .alert-success hr {
+ border-top-color: #c9e2b3;
+}
+.wise-editor .alert-success .alert-link {
+ color: #2b542c;
+}
+.wise-editor .alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ color: #31708f;
+}
+.wise-editor .alert-info hr {
+ border-top-color: #a6e1ec;
+}
+.wise-editor .alert-info .alert-link {
+ color: #245269;
+}
+.wise-editor .alert-warning {
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ color: #8a6d3b;
+}
+.wise-editor .alert-warning hr {
+ border-top-color: #f7e1b5;
+}
+.wise-editor .alert-warning .alert-link {
+ color: #66512c;
+}
+.wise-editor .alert-danger {
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ color: #a94442;
+}
+.wise-editor .alert-danger hr {
+ border-top-color: #e4b9c0;
+}
+.wise-editor .alert-danger .alert-link {
+ color: #843534;
+}
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+.wise-editor .progress {
+ overflow: hidden;
+ height: 18px;
+ margin-bottom: 18px;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+.wise-editor .progress-bar {
+ float: left;
+ width: 0;
+ height: 100%;
+ font-size: 12px;
+ line-height: 18px;
+ color: #fff;
+ text-align: center;
+ background-color: #428bca;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ transition: width 0.6s ease;
+}
+.wise-editor .progress-striped .progress-bar {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-size: 40px 40px;
+}
+.wise-editor .progress.active .progress-bar {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+.wise-editor .progress-bar-success {
+ background-color: #5cb85c;
+}
+.wise-editor .progress-striped .progress-bar-success {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.wise-editor .progress-bar-info {
+ background-color: #5bc0de;
+}
+.wise-editor .progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.wise-editor .progress-bar-warning {
+ background-color: #f0ad4e;
+}
+.wise-editor .progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.wise-editor .progress-bar-danger {
+ background-color: #d9534f;
+}
+.wise-editor .progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: 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
+ );
+}
+.wise-editor .media,
+.wise-editor .media-body {
+ overflow: hidden;
+ zoom: 1;
+}
+.wise-editor .media,
+.wise-editor .media .media {
+ margin-top: 15px;
+}
+.wise-editor .media:first-child {
+ margin-top: 0;
+}
+.wise-editor .media-object {
+ display: block;
+}
+.wise-editor .media-heading {
+ margin: 0 0 5px;
+}
+.wise-editor .media > .pull-left {
+ margin-right: 10px;
+}
+.wise-editor .media > .pull-right {
+ margin-left: 10px;
+}
+.wise-editor .media-list {
+ padding-left: 0;
+ list-style: none;
+}
+.wise-editor .list-group {
+ margin-bottom: 20px;
+ padding-left: 0;
+}
+.wise-editor .list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+.wise-editor .list-group-item:first-child {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.wise-editor .list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.wise-editor .list-group-item > .badge {
+ float: right;
+}
+.wise-editor .list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+.wise-editor a.list-group-item {
+ color: #555;
+}
+.wise-editor a.list-group-item .list-group-item-heading {
+ color: #333;
+}
+.wise-editor a.list-group-item:hover,
+.wise-editor a.list-group-item:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+.wise-editor a.list-group-item.active,
+.wise-editor a.list-group-item.active:hover,
+.wise-editor a.list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+.wise-editor a.list-group-item.active .list-group-item-heading,
+.wise-editor a.list-group-item.active:hover .list-group-item-heading,
+.wise-editor a.list-group-item.active:focus .list-group-item-heading {
+ color: inherit;
+}
+.wise-editor a.list-group-item.active .list-group-item-text,
+.wise-editor a.list-group-item.active:hover .list-group-item-text,
+.wise-editor a.list-group-item.active:focus .list-group-item-text {
+ color: #e1edf7;
+}
+.wise-editor .list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+.wise-editor a.list-group-item-success {
+ color: #3c763d;
+}
+.wise-editor a.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+.wise-editor a.list-group-item-success:hover,
+.wise-editor a.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+.wise-editor a.list-group-item-success.active,
+.wise-editor a.list-group-item-success.active:hover,
+.wise-editor a.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+.wise-editor .list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+.wise-editor a.list-group-item-info {
+ color: #31708f;
+}
+.wise-editor a.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+.wise-editor a.list-group-item-info:hover,
+.wise-editor a.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+.wise-editor a.list-group-item-info.active,
+.wise-editor a.list-group-item-info.active:hover,
+.wise-editor a.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+.wise-editor .list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+.wise-editor a.list-group-item-warning {
+ color: #8a6d3b;
+}
+.wise-editor a.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+.wise-editor a.list-group-item-warning:hover,
+.wise-editor a.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+.wise-editor a.list-group-item-warning.active,
+.wise-editor a.list-group-item-warning.active:hover,
+.wise-editor a.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+.wise-editor .list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+.wise-editor a.list-group-item-danger {
+ color: #a94442;
+}
+.wise-editor a.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+.wise-editor a.list-group-item-danger:hover,
+.wise-editor a.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+.wise-editor a.list-group-item-danger.active,
+.wise-editor a.list-group-item-danger.active:hover,
+.wise-editor a.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
+.wise-editor .list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.wise-editor .list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+.wise-editor .panel {
+ margin-bottom: 18px;
+ background-color: #fff;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.wise-editor .panel-body {
+ padding: 15px;
+}
+.wise-editor .panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.wise-editor .panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+}
+.wise-editor .panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 15px;
+ color: inherit;
+}
+.wise-editor .panel-title > a {
+ color: inherit;
+}
+.wise-editor .panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.wise-editor .panel > .list-group {
+ margin-bottom: 0;
+}
+.wise-editor .panel > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+}
+.wise-editor .panel > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.wise-editor .panel > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.wise-editor .panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+.wise-editor .panel > .table,
+.wise-editor .panel > .table-responsive > .table {
+ margin-bottom: 0;
+}
+.wise-editor .panel > .table:first-child,
+.wise-editor .panel > .table-responsive:first-child > .table:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.wise-editor .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:first-child,
+.wise-editor .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:first-child,
+.wise-editor .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:first-child,
+.wise-editor .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:first-child {
+ border-top-left-radius: 3px;
+}
+.wise-editor .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:last-child,
+.wise-editor .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:last-child,
+.wise-editor .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:last-child,
+.wise-editor .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:last-child {
+ border-top-right-radius: 3px;
+}
+.wise-editor .panel > .table:last-child,
+.wise-editor .panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.wise-editor .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:first-child,
+.wise-editor .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:first-child,
+.wise-editor .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:first-child,
+.wise-editor .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:first-child {
+ border-bottom-left-radius: 3px;
+}
+.wise-editor .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:last-child,
+.wise-editor .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:last-child,
+.wise-editor .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:last-child,
+.wise-editor .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.wise-editor
+ .panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:last-child {
+ border-bottom-right-radius: 3px;
+}
+.wise-editor .panel > .panel-body + .table,
+.wise-editor .panel > .panel-body + .table-responsive {
+ border-top: 1px solid #ddd;
+}
+.wise-editor .panel > .table > tbody:first-child > tr:first-child th,
+.wise-editor .panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+}
+.wise-editor .panel > .table-bordered,
+.wise-editor .panel > .table-responsive > .table-bordered {
+ border: 0;
+}
+.wise-editor .panel > .table-bordered > thead > tr > th:first-child,
+.wise-editor .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.wise-editor .panel > .table-bordered > tbody > tr > th:first-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.wise-editor .panel > .table-bordered > tfoot > tr > th:first-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.wise-editor .panel > .table-bordered > thead > tr > td:first-child,
+.wise-editor .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.wise-editor .panel > .table-bordered > tbody > tr > td:first-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.wise-editor .panel > .table-bordered > tfoot > tr > td:first-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+}
+.wise-editor .panel > .table-bordered > thead > tr > th:last-child,
+.wise-editor .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.wise-editor .panel > .table-bordered > tbody > tr > th:last-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.wise-editor .panel > .table-bordered > tfoot > tr > th:last-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.wise-editor .panel > .table-bordered > thead > tr > td:last-child,
+.wise-editor .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.wise-editor .panel > .table-bordered > tbody > tr > td:last-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.wise-editor .panel > .table-bordered > tfoot > tr > td:last-child,
+.wise-editor .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+}
+.wise-editor .panel > .table-bordered > thead > tr:first-child > td,
+.wise-editor .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.wise-editor .panel > .table-bordered > tbody > tr:first-child > td,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.wise-editor .panel > .table-bordered > thead > tr:first-child > th,
+.wise-editor .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.wise-editor .panel > .table-bordered > tbody > tr:first-child > th,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+}
+.wise-editor .panel > .table-bordered > tbody > tr:last-child > td,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.wise-editor .panel > .table-bordered > tfoot > tr:last-child > td,
+.wise-editor .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.wise-editor .panel > .table-bordered > tbody > tr:last-child > th,
+.wise-editor .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.wise-editor .panel > .table-bordered > tfoot > tr:last-child > th,
+.wise-editor .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0;
+}
+.wise-editor .panel > .table-responsive {
+ border: 0;
+ margin-bottom: 0;
+}
+.wise-editor .panel-group {
+ margin-bottom: 18px;
+}
+.wise-editor .panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px;
+ overflow: hidden;
+}
+.wise-editor .panel-group .panel + .panel {
+ margin-top: 5px;
+}
+.wise-editor .panel-group .panel-heading {
+ border-bottom: 0;
+}
+.wise-editor .panel-group .panel-heading + .panel-collapse .panel-body {
+ border-top: 1px solid #ddd;
+}
+.wise-editor .panel-group .panel-footer {
+ border-top: 0;
+}
+.wise-editor .panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd;
+}
+.wise-editor .panel-default {
+ border-color: #ddd;
+}
+.wise-editor .panel-default > .panel-heading {
+ color: #333;
+ background-color: #f5f5f5;
+ border-color: #ddd;
+}
+.wise-editor .panel-default > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #ddd;
+}
+.wise-editor .panel-default > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #ddd;
+}
+.wise-editor .panel-primary {
+ border-color: #428bca;
+}
+.wise-editor .panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+.wise-editor .panel-primary > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #428bca;
+}
+.wise-editor .panel-primary > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #428bca;
+}
+.wise-editor .panel-success {
+ border-color: #d6e9c6;
+}
+.wise-editor .panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.wise-editor .panel-success > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #d6e9c6;
+}
+.wise-editor .panel-success > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #d6e9c6;
+}
+.wise-editor .panel-info {
+ border-color: #bce8f1;
+}
+.wise-editor .panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.wise-editor .panel-info > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #bce8f1;
+}
+.wise-editor .panel-info > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #bce8f1;
+}
+.wise-editor .panel-warning {
+ border-color: #faebcc;
+}
+.wise-editor .panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+.wise-editor .panel-warning > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #faebcc;
+}
+.wise-editor .panel-warning > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #faebcc;
+}
+.wise-editor .panel-danger {
+ border-color: #ebccd1;
+}
+.wise-editor .panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+.wise-editor .panel-danger > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #ebccd1;
+}
+.wise-editor .panel-danger > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #ebccd1;
+}
+.wise-editor .well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.wise-editor .well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.wise-editor .well-lg {
+ padding: 24px;
+ border-radius: 6px;
+}
+.wise-editor .well-sm {
+ padding: 9px;
+ border-radius: 3px;
+}
+.wise-editor .close {
+ float: right;
+ font-size: 19.5px;
+ font-weight: 700;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
+}
+.wise-editor .close:hover,
+.wise-editor .close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+.wise-editor button.close {
+ padding: 0;
+ cursor: pointer;
+ background: 0 0;
+ border: 0;
+ -webkit-appearance: none;
+}
+.wise-editor .modal-open {
+ overflow: hidden;
+}
+.wise-editor .modal {
+ display: none;
+ overflow: auto;
+ overflow-y: scroll;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+}
+.wise-editor .modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+}
+.wise-editor .modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.wise-editor .modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+.wise-editor .modal-content {
+ position: relative;
+ background-color: #fff;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-clip: padding-box;
+ outline: 0;
+}
+.wise-editor .modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000;
+}
+.wise-editor .modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.wise-editor .modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+.wise-editor .modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+ min-height: 16.42857143px;
+}
+.wise-editor .modal-header .close {
+ margin-top: -2px;
+}
+.wise-editor .modal-title {
+ margin: 0;
+ line-height: 1.42857143;
+}
+.wise-editor .modal-body {
+ position: relative;
+ padding: 20px;
+}
+.wise-editor .modal-footer {
+ margin-top: 15px;
+ padding: 19px 20px 20px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+.wise-editor .modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0;
+}
+.wise-editor .modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+.wise-editor .modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .wise-editor .modal-dialog {
+ width: 600px;
+ margin: 30px auto;
+ }
+ .wise-editor .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+ .wise-editor .modal-sm {
+ width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .wise-editor .modal-lg {
+ width: 900px;
+ }
+}
+.wise-editor .tooltip {
+ position: absolute;
+ z-index: 1030;
+ display: block;
+ visibility: visible;
+ font-size: 12px;
+ line-height: 1.4;
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.wise-editor .tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.wise-editor .tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0;
+}
+.wise-editor .tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px;
+}
+.wise-editor .tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0;
+}
+.wise-editor .tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px;
+}
+.wise-editor .tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ text-decoration: none;
+ background-color: #000;
+ border-radius: 4px;
+}
+.wise-editor .tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.wise-editor .tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.wise-editor .tooltip.top-left .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.wise-editor .tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ right: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.wise-editor .tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+}
+.wise-editor .tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+}
+.wise-editor .tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.wise-editor .tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.wise-editor .tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.wise-editor .popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1010;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ text-align: left;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ white-space: normal;
+}
+.wise-editor .popover.top {
+ margin-top: -10px;
+}
+.wise-editor .popover.right {
+ margin-left: 10px;
+}
+.wise-editor .popover.bottom {
+ margin-top: 10px;
+}
+.wise-editor .popover.left {
+ margin-left: -10px;
+}
+.wise-editor .popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 13px;
+ font-weight: 400;
+ line-height: 18px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0;
+}
+.wise-editor .popover-content {
+ padding: 4px 6px;
+}
+.wise-editor .popover > .arrow,
+.wise-editor .popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.wise-editor .popover > .arrow {
+ border-width: 11px;
+}
+.wise-editor .popover > .arrow:after {
+ border-width: 10px;
+ content: '';
+}
+.wise-editor .popover.top > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+}
+.wise-editor .popover.top > .arrow:after {
+ content: ' ';
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #fff;
+}
+.wise-editor .popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.wise-editor .popover.right > .arrow:after {
+ content: ' ';
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #fff;
+}
+.wise-editor .popover.bottom > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px;
+}
+.wise-editor .popover.bottom > .arrow:after {
+ content: ' ';
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+.wise-editor .popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.wise-editor .popover.left > .arrow:after {
+ content: ' ';
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #fff;
+ bottom: -10px;
+}
+.wise-editor .carousel {
+ position: relative;
+}
+.wise-editor .carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+}
+.wise-editor .carousel-inner > .item {
+ display: none;
+ position: relative;
+ -webkit-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+}
+.wise-editor .carousel-inner > .item > img,
+.wise-editor .carousel-inner > .item > a > img {
+ line-height: 1;
+}
+.wise-editor .carousel-inner > .active,
+.wise-editor .carousel-inner > .next,
+.wise-editor .carousel-inner > .prev {
+ display: block;
+}
+.wise-editor .carousel-inner > .active {
+ left: 0;
+}
+.wise-editor .carousel-inner > .next,
+.wise-editor .carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.wise-editor .carousel-inner > .next {
+ left: 100%;
+}
+.wise-editor .carousel-inner > .prev {
+ left: -100%;
+}
+.wise-editor .carousel-inner > .next.left,
+.wise-editor .carousel-inner > .prev.right {
+ left: 0;
+}
+.wise-editor .carousel-inner > .active.left {
+ left: -100%;
+}
+.wise-editor .carousel-inner > .active.right {
+ left: 100%;
+}
+.wise-editor .carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 15%;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.wise-editor .carousel-control.left {
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.5) 0),
+ color-stop(rgba(0, 0, 0, 0.0001) 100%)
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+.wise-editor .carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.0001) 0),
+ color-stop(rgba(0, 0, 0, 0.5) 100%)
+ );
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+.wise-editor .carousel-control:hover,
+.wise-editor .carousel-control:focus {
+ outline: 0;
+ color: #fff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.wise-editor .carousel-control .icon-prev,
+.wise-editor .carousel-control .icon-next,
+.wise-editor .carousel-control .glyphicon-chevron-left,
+.wise-editor .carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+}
+.wise-editor .carousel-control .icon-prev,
+.wise-editor .carousel-control .glyphicon-chevron-left {
+ left: 50%;
+}
+.wise-editor .carousel-control .icon-next,
+.wise-editor .carousel-control .glyphicon-chevron-right {
+ right: 50%;
+}
+.wise-editor .carousel-control .icon-prev,
+.wise-editor .carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ margin-left: -10px;
+ font-family: serif;
+}
+.wise-editor .carousel-control .icon-prev:before {
+ content: '\2039';
+}
+.wise-editor .carousel-control .icon-next:before {
+ content: '\203a';
+}
+.wise-editor .carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center;
+}
+.wise-editor .carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #fff;
+ border-radius: 10px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: rgba(0, 0, 0, 0);
+}
+.wise-editor .carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #fff;
+}
+.wise-editor .carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.wise-editor .carousel-caption .btn {
+ text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+ .wise-editor .carousel-control .glyphicon-chevron-left,
+ .wise-editor .carousel-control .glyphicon-chevron-right,
+ .wise-editor .carousel-control .icon-prev,
+ .wise-editor .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ margin-left: -15px;
+ font-size: 30px;
+ }
+ .wise-editor .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+ .wise-editor .carousel-indicators {
+ bottom: 20px;
+ }
+}
+.wise-editor .clearfix:before,
+.wise-editor .clearfix:after,
+.wise-editor .container:before,
+.wise-editor .container:after,
+.wise-editor .container-fluid:before,
+.wise-editor .container-fluid:after,
+.wise-editor .row:before,
+.wise-editor .row:after,
+.wise-editor .form-horizontal .form-group:before,
+.wise-editor .form-horizontal .form-group:after,
+.wise-editor .btn-toolbar:before,
+.wise-editor .btn-toolbar:after,
+.wise-editor .btn-group-vertical > .btn-group:before,
+.wise-editor .btn-group-vertical > .btn-group:after,
+.wise-editor .nav:before,
+.wise-editor .nav:after,
+.wise-editor .navbar:before,
+.wise-editor .navbar:after,
+.wise-editor .navbar-header:before,
+.wise-editor .navbar-header:after,
+.wise-editor .navbar-collapse:before,
+.wise-editor .navbar-collapse:after,
+.wise-editor .pager:before,
+.wise-editor .pager:after,
+.wise-editor .panel-body:before,
+.wise-editor .panel-body:after,
+.wise-editor .modal-footer:before,
+.wise-editor .modal-footer:after {
+ content: ' ';
+ display: table;
+}
+.wise-editor .clearfix:after,
+.wise-editor .container:after,
+.wise-editor .container-fluid:after,
+.wise-editor .row:after,
+.wise-editor .form-horizontal .form-group:after,
+.wise-editor .btn-toolbar:after,
+.wise-editor .btn-group-vertical > .btn-group:after,
+.wise-editor .nav:after,
+.wise-editor .navbar:after,
+.wise-editor .navbar-header:after,
+.wise-editor .navbar-collapse:after,
+.wise-editor .pager:after,
+.wise-editor .panel-body:after,
+.wise-editor .modal-footer:after {
+ clear: both;
+}
+.wise-editor .center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.wise-editor .pull-right {
+ float: right !important;
+}
+.wise-editor .pull-left {
+ float: left !important;
+}
+.wise-editor .hide {
+ display: none !important;
+}
+.wise-editor .show {
+ display: block !important;
+}
+.wise-editor .invisible {
+ visibility: hidden;
+}
+.wise-editor .text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.wise-editor .hidden {
+ display: none !important;
+ visibility: hidden !important;
+}
+.wise-editor .affix {
+ position: fixed;
+}
+@-ms-viewport {
+ width: device-width;
+}
+.wise-editor .visible-xs,
+.wise-editor .visible-sm,
+.wise-editor .visible-md,
+.wise-editor .visible-lg {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .wise-editor .visible-xs {
+ display: block !important;
+ }
+ .wise-editor table.visible-xs {
+ display: table;
+ }
+ .wise-editor tr.visible-xs {
+ display: table-row !important;
+ }
+ .wise-editor th.visible-xs,
+ .wise-editor td.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .wise-editor .visible-sm {
+ display: block !important;
+ }
+ .wise-editor table.visible-sm {
+ display: table;
+ }
+ .wise-editor tr.visible-sm {
+ display: table-row !important;
+ }
+ .wise-editor th.visible-sm,
+ .wise-editor td.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .wise-editor .visible-md {
+ display: block !important;
+ }
+ .wise-editor table.visible-md {
+ display: table;
+ }
+ .wise-editor tr.visible-md {
+ display: table-row !important;
+ }
+ .wise-editor th.visible-md,
+ .wise-editor td.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .wise-editor .visible-lg {
+ display: block !important;
+ }
+ .wise-editor table.visible-lg {
+ display: table;
+ }
+ .wise-editor tr.visible-lg {
+ display: table-row !important;
+ }
+ .wise-editor th.visible-lg,
+ .wise-editor td.visible-lg {
+ display: table-cell !important;
+ }
+}
+@media (max-width: 767px) {
+ .wise-editor .hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .wise-editor .hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .wise-editor .hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .wise-editor .hidden-lg {
+ display: none !important;
+ }
+}
+.wise-editor .visible-print {
+ display: none !important;
+}
+@media print {
+ .wise-editor .visible-print {
+ display: block !important;
+ }
+ .wise-editor table.visible-print {
+ display: table;
+ }
+ .wise-editor tr.visible-print {
+ display: table-row !important;
+ }
+ .wise-editor th.visible-print,
+ .wise-editor td.visible-print {
+ display: table-cell !important;
+ }
+}
+@media print {
+ .wise-editor .hidden-print {
+ display: none !important;
+ }
+}
diff --git a/packages/editor/src/classes/bootstrap/BootstrapDialog.js b/packages/editor/src/classes/bootstrap/BootstrapDialog.js
index 33099fd5..30038208 100644
--- a/packages/editor/src/classes/bootstrap/BootstrapDialog.js
+++ b/packages/editor/src/classes/bootstrap/BootstrapDialog.js
@@ -75,9 +75,7 @@ class BootstrapDialog extends Options {
)}`,
);
footer.append(this.acceptButton);
- this.acceptButton
- .unbind('click')
- .on('click', this.options.onEventData, this.onAcceptClick);
+ this.acceptButton.unbind('click').on('click', this.options.onEventData, this.onAcceptClick);
}
if (this.options.removeButton) {
this.removeButton = $(
@@ -114,7 +112,7 @@ class BootstrapDialog extends Options {
return header;
}
- onAcceptClick() {
+ onAcceptClick(event) {
throw new Error('Unsupported operation');
}
@@ -122,7 +120,7 @@ class BootstrapDialog extends Options {
// Overwrite default behaviour ...
}
- onRemoveClick() {
+ onRemoveClick(event) {
throw new Error('Unsupported operation');
}
diff --git a/packages/editor/src/classes/bootstrap/BootstrapDialogRequest.js b/packages/editor/src/classes/bootstrap/BootstrapDialogRequest.js
index daab3b72..a743f5b4 100644
--- a/packages/editor/src/classes/bootstrap/BootstrapDialogRequest.js
+++ b/packages/editor/src/classes/bootstrap/BootstrapDialogRequest.js
@@ -49,10 +49,7 @@ class BootstrapDialogRequest extends BootstrapDialog {
this._native.find('.modal-body').load(url, () => {
me.acceptButton.unbind('click').click(() => {
- if (
- $defined(global.submitDialogForm)
- && typeof global.submitDialogForm === 'function'
- ) {
+ if ($defined(global.submitDialogForm) && typeof global.submitDialogForm === 'function') {
global.submitDialogForm();
}
});
diff --git a/packages/editor/src/classes/bootstrap/BootstrapWidgetManager.ts b/packages/editor/src/classes/bootstrap/BootstrapWidgetManager.ts
new file mode 100644
index 00000000..d3ce35a1
--- /dev/null
+++ b/packages/editor/src/classes/bootstrap/BootstrapWidgetManager.ts
@@ -0,0 +1,90 @@
+import {
+ WidgetManager,
+ Topic,
+ LinkModel,
+ LinkIcon,
+ NoteModel,
+ NoteIcon,
+ $msg,
+} from '@wisemapping/mindplot';
+import LinkIconTooltip from './LinkIconTooltip';
+import LinkEditor from './LinkEditor';
+import FloatingTip from './FloatingTip';
+import NoteEditor from './NoteEditor';
+import $ from 'jquery';
+
+export default class BootstrapWidgetManager extends WidgetManager {
+ createTooltipForLink(topic: Topic, linkModel: LinkModel, linkIcon: LinkIcon) {
+ const htmlImage = linkIcon.getImage().peer;
+ const toolTip = new LinkIconTooltip(linkIcon);
+ linkIcon.addEvent('mouseleave', (event) => {
+ setTimeout(() => {
+ if (!$('#linkPopover:hover').length) {
+ toolTip.hide();
+ }
+ event.stopPropagation();
+ }, 100);
+ });
+ $(htmlImage._native).mouseenter(() => {
+ toolTip.show();
+ });
+ }
+
+ showEditorForLink(topic: Topic, linkModel: LinkModel, linkIcon: LinkIcon) {
+ const editorModel = {
+ getValue(): string {
+ return topic.getLinkValue();
+ },
+ setValue(value: string) {
+ topic.setLinkValue(value);
+ },
+ };
+ topic.closeEditors();
+ const editor = new LinkEditor(editorModel);
+ editor.show();
+ }
+
+ private _buildTooltipContentForNote(noteModel: NoteModel): JQuery {
+ if ($('body').find('#textPopoverNote').length === 1) {
+ const text = $('body').find('#textPopoverNote');
+ text.text(noteModel.getText());
+ return text;
+ }
+ const result = $('').css({ padding: '5px' });
+
+ const text = $('').text(noteModel.getText()).css({
+ 'white-space': 'pre-wrap',
+ 'word-wrap': 'break-word',
+ });
+ result.append(text);
+ return result;
+ }
+
+ createTooltipForNote(topic: Topic, noteModel: NoteModel, noteIcon: NoteIcon) {
+ const htmlImage = noteIcon.getImage().peer;
+ const me = this;
+ const toolTip = new FloatingTip($(htmlImage._native), {
+ title: $msg('NOTE'),
+ content() {
+ return me._buildTooltipContentForNote(noteModel);
+ },
+ html: true,
+ placement: 'bottom',
+ destroyOnExit: true,
+ });
+ }
+
+ showEditorForNote(topic: Topic, noteModel: NoteModel, noteIcon: NoteIcon) {
+ const editorModel = {
+ getValue(): string {
+ return topic.getNoteValue();
+ },
+ setValue(value: string) {
+ topic.setNoteValue(value);
+ },
+ };
+ topic.closeEditors();
+ const editor = new NoteEditor(editorModel);
+ editor.show();
+ }
+}
diff --git a/packages/mindplot/src/components/widget/FloatingTip.ts b/packages/editor/src/classes/bootstrap/FloatingTip.ts
similarity index 94%
rename from packages/mindplot/src/components/widget/FloatingTip.ts
rename to packages/editor/src/classes/bootstrap/FloatingTip.ts
index 575b2a6d..54abfd01 100644
--- a/packages/mindplot/src/components/widget/FloatingTip.ts
+++ b/packages/editor/src/classes/bootstrap/FloatingTip.ts
@@ -16,7 +16,7 @@
* limitations under the License.
*/
import merge from 'lodash/merge';
-import Events from '../Events';
+import Events from '../menu/Events';
const defaultOptions = {
animation: true,
@@ -73,7 +73,7 @@ class FloatingTip extends Events {
if (this.addEvent) {
Object.keys(options).forEach((option) => {
- if (options[option] instanceof Function && (/^on[A-Z]/).test(option)) {
+ if (options[option] instanceof Function && /^on[A-Z]/.test(option)) {
this.addEvent(option, options[option]);
delete options[option];
}
diff --git a/packages/mindplot/src/components/widget/LinkEditor.js b/packages/editor/src/classes/bootstrap/LinkEditor.ts
similarity index 79%
rename from packages/mindplot/src/components/widget/LinkEditor.js
rename to packages/editor/src/classes/bootstrap/LinkEditor.ts
index f4dbcabc..8316e532 100644
--- a/packages/mindplot/src/components/widget/LinkEditor.js
+++ b/packages/editor/src/classes/bootstrap/LinkEditor.ts
@@ -17,17 +17,20 @@
*/
import $ from 'jquery';
import { $assert } from '@wisemapping/core-js';
-import { $msg } from '../Messages';
-import BootstrapDialog from './bootstrap/BootstrapDialog';
+import { $msg } from '@wisemapping/mindplot';
+import BootstrapDialog from './BootstrapDialog';
+
+interface LinkEditorModel {
+ getValue(): string;
+ setValue(value: string): void;
+}
class LinkEditor extends BootstrapDialog {
- /**
- * @constructs
- * @param model
- * @throws will throw an error if model is null or undefined
- * @extends BootstrapDialog
- */
- constructor(model) {
+ private form: JQuery;
+
+ private formSubmitted: boolean;
+
+ constructor(model: LinkEditorModel) {
$assert(model, 'model can not be null');
super($msg('LINK'), {
cancelButton: true,
@@ -37,13 +40,12 @@ class LinkEditor extends BootstrapDialog {
errorMessage: true,
onEventData: { model },
});
- this._model = model;
this.css({ margin: '150px auto' });
const panel = this._buildPanel(model);
this.setContent(panel);
}
- _buildPanel(model) {
+ protected _buildPanel(model: LinkEditorModel) {
const result = $('').css('padding-top', '5px');
this.form = $('').attr({
action: 'none',
@@ -80,8 +82,9 @@ class LinkEditor extends BootstrapDialog {
});
openButton.html($msg('OPEN_LINK')).css('margin-left', '0px');
- openButton.click(() => {
- window.open(input.val(), '_blank', 'status=1,width=700,height=450,resize=1');
+ openButton.on('click', () => {
+ const value = input.val() as string;
+ window.open(value, '_blank', 'status=1,width=700,height=450,resize=1');
});
const spanControl = $('').append(openButton);
@@ -90,13 +93,13 @@ class LinkEditor extends BootstrapDialog {
this.form.append(section);
const me = this;
- this.form.unbind('submit').submit((event) => {
+ this.form.off('submit').on('submit', (event) => {
event.preventDefault();
- let inputValue = input.val();
+ let inputValue = input.val() as string;
inputValue = this.hasProtocol(inputValue) ? inputValue : `https://${inputValue}`;
if (me.checkURL(inputValue)) {
me.cleanError();
- if (inputValue != null && $.trim(inputValue) !== '') {
+ if (inputValue !== null && inputValue.trim() !== '') {
model.setValue(inputValue);
}
me.close();
@@ -115,18 +118,19 @@ class LinkEditor extends BootstrapDialog {
* checks whether the input is a valid url
* @return {Boolean} true if the url is valid
*/
- checkURL(url) {
- const regex = /^(http|https):\/\/[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/i;
- return (regex.test(url));
+ private checkURL(url: string): boolean {
+ const regex =
+ /^(http|https):\/\/[a-z0-9]+([-.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/i;
+ return regex.test(url);
}
/**
* checks whether the input is a valid url
* @return {Boolean} true if the url is valid
*/
- hasProtocol(url) {
+ private hasProtocol(url: string): boolean {
const regex = /^(http|https):\/\//i;
- return (regex.test(url));
+ return regex.test(url);
}
/**
@@ -134,7 +138,7 @@ class LinkEditor extends BootstrapDialog {
* triggered when the user clicks the accept button - submits the url input
* @param event
*/
- onAcceptClick(event) {
+ onAcceptClick(event: Event): void {
this.formSubmitted = false;
$('#linkFormId').trigger('submit');
if (!this.formSubmitted) {
@@ -146,7 +150,7 @@ class LinkEditor extends BootstrapDialog {
* overrides parent method
* sets the url input on focus
*/
- onDialogShown() {
+ onDialogShown(): void {
$(this).find('#inputUrl').focus();
}
diff --git a/packages/mindplot/src/components/widget/LinkIconTooltip.js b/packages/editor/src/classes/bootstrap/LinkIconTooltip.ts
similarity index 60%
rename from packages/mindplot/src/components/widget/LinkIconTooltip.js
rename to packages/editor/src/classes/bootstrap/LinkIconTooltip.ts
index a40b56fc..047adcca 100644
--- a/packages/mindplot/src/components/widget/LinkIconTooltip.js
+++ b/packages/editor/src/classes/bootstrap/LinkIconTooltip.ts
@@ -17,11 +17,13 @@
*/
import { $assert } from '@wisemapping/core-js';
import $ from 'jquery';
-import { $msg } from '../Messages';
+import { LinkIcon } from '@wisemapping/mindplot';
+import { LinkModel } from '@wisemapping/mindplot';
+import { $msg } from '@wisemapping/mindplot';
import FloatingTip from './FloatingTip';
class LinkIconTooltip extends FloatingTip {
- constructor(linkIcon) {
+ constructor(linkIcon: LinkIcon) {
$assert(linkIcon, 'linkIcon can not be null');
const nativeElement = $(linkIcon.getImage().peer._native);
super(nativeElement, {
@@ -33,52 +35,29 @@ class LinkIconTooltip extends FloatingTip {
placement: 'bottom',
title: $msg('LINK'),
trigger: 'manual',
- template: '',
+ template:
+ '',
destroyOnExit: true,
});
}
- static _buildContent(linkIcon) {
- const url = linkIcon.getModel().getUrl();
+ private static _buildContent(linkIcon: LinkIcon): JQuery {
+ const model = linkIcon.getModel() as LinkModel;
+ const url = model.getUrl();
const linkText = `${url}`;
- const linkPreview = `https://free.pagepeeker.com/v2/thumbs.php?size=m&url=${url}`;
const result = $('').css({
padding: '5px',
width: '100%',
});
-
- const text = $('').text(linkText)
- .css({
- 'white-space': 'pre-wrap',
- 'word-wrap': 'break-word',
- });
- result.append(text);
-
- const imgContainer = $('')
- .css({
- width: '100%',
- textAlign: 'right',
- 'padding-bottom': '5px',
- 'padding-top': '5px',
- });
-
- const img = $('')
- .prop('src', linkPreview)
- .prop('img', url)
- .prop('alt', url);
-
- img.css('padding', '5px');
-
const link = $('').attr({
href: url,
alt: 'Open in new window ...',
target: '_blank',
});
- link.append(img);
- imgContainer.append(link);
- result.append(imgContainer);
+ link.html(linkText);
+ result.append(link);
return result;
}
}
diff --git a/packages/mindplot/src/components/widget/NoteEditor.js b/packages/editor/src/classes/bootstrap/NoteEditor.ts
similarity index 86%
rename from packages/mindplot/src/components/widget/NoteEditor.js
rename to packages/editor/src/classes/bootstrap/NoteEditor.ts
index 3d127996..765ce26d 100644
--- a/packages/mindplot/src/components/widget/NoteEditor.js
+++ b/packages/editor/src/classes/bootstrap/NoteEditor.ts
@@ -18,10 +18,15 @@
import { $assert } from '@wisemapping/core-js';
import $ from 'jquery';
import BootstrapDialog from '../../../../editor/src/classes/bootstrap/BootstrapDialog';
-import { $msg } from '../Messages';
+import { $msg } from '@wisemapping/mindplot';
+
+interface NoteEditorModel {
+ getValue(): string;
+ setValue(value: string): void;
+}
class NoteEditor extends BootstrapDialog {
- constructor(model) {
+ constructor(model: NoteEditorModel) {
$assert(model, 'model can not be null');
super($msg('NOTE'), {
cancelButton: true,
@@ -30,13 +35,12 @@ class NoteEditor extends BootstrapDialog {
removeButton: typeof model.getValue() !== 'undefined',
onEventData: { model },
});
- this._model = model;
this.css({ margin: '150px auto' });
const panel = this._buildPanel(model);
this.setContent(panel);
}
- _buildPanel(model) {
+ _buildPanel(model: NoteEditorModel) {
const result = $('').css('padding-top', '5px');
const form = $('').attr({
@@ -68,20 +72,20 @@ class NoteEditor extends BootstrapDialog {
return result;
}
- onAcceptClick(event) {
+ onAcceptClick(event): void {
event.data.dialog._submitForm(event.data.model);
}
- _submitForm(model) {
+ _submitForm(model: NoteEditorModel) {
const textarea = this._native.find('textarea');
if (textarea.val()) {
- model.setValue(textarea.val());
+ model.setValue(textarea.val() as string);
}
this.close();
}
onDialogShown() {
- $(this).find('textarea').focus();
+ $(this).find('textarea').trigger('focus');
}
onRemoveClick(event) {
diff --git a/packages/editor/src/classes/i18n-msg/index.ts b/packages/editor/src/classes/i18n-msg/index.ts
index 187bdc5d..029678ae 100644
--- a/packages/editor/src/classes/i18n-msg/index.ts
+++ b/packages/editor/src/classes/i18n-msg/index.ts
@@ -5,26 +5,25 @@ import DE from './../../compiled-lang/de.json';
import RU from './../../compiled-lang/ru.json';
import ZH from './../../compiled-lang/zh.json';
-
class I18nMsg {
- static loadLocaleData(locale: string) {
- switch (locale) {
- case 'fr':
- return FR;
- case 'en':
- return EN;
- case 'es':
- return ES;
- case 'de':
- return DE;
- case 'ru':
- return RU;
- case 'zh':
- return ZH;
- default:
- return EN;
- }
+ static loadLocaleData(locale: string) {
+ switch (locale) {
+ case 'fr':
+ return FR;
+ case 'en':
+ return EN;
+ case 'es':
+ return ES;
+ case 'de':
+ return DE;
+ case 'ru':
+ return RU;
+ case 'zh':
+ return ZH;
+ default:
+ return EN;
}
+ }
}
export default I18nMsg;
diff --git a/packages/editor/src/classes/menu/ColorPaletteHtml.js b/packages/editor/src/classes/menu/ColorPaletteHtml.js
index 3b3906d0..532f10d6 100644
--- a/packages/editor/src/classes/menu/ColorPaletteHtml.js
+++ b/packages/editor/src/classes/menu/ColorPaletteHtml.js
@@ -96,26 +96,113 @@ export const buildHtml = () => {
const palettes = [
{
id: ':3p',
- colors: [['(0, 0, 0)', '(68, 68, 68)', '(102, 102, 102)', '(153, 153, 153)', '(204, 204, 204)', '(238, 238, 238)', '(243, 243, 243)', '(254, 255, 255)']],
+ colors: [
+ [
+ '(0, 0, 0)',
+ '(68, 68, 68)',
+ '(102, 102, 102)',
+ '(153, 153, 153)',
+ '(204, 204, 204)',
+ '(238, 238, 238)',
+ '(243, 243, 243)',
+ '(254, 255, 255)',
+ ],
+ ],
},
{
id: '3q',
- colors: [['(255, 0, 0)', '(255, 153, 0)', '(255, 255, 0)', '(0, 255, 0)', '(0, 255, 255)', '(0, 0, 255)', '(153, 0, 255)', '(255, 0, 255)']],
+ colors: [
+ [
+ '(255, 0, 0)',
+ '(255, 153, 0)',
+ '(255, 255, 0)',
+ '(0, 255, 0)',
+ '(0, 255, 255)',
+ '(0, 0, 255)',
+ '(153, 0, 255)',
+ '(255, 0, 255)',
+ ],
+ ],
},
{
id: '3r',
colors: [
- ['(244, 204, 204)', '(252, 229, 205)', '(255, 242, 204)', '(217, 234, 211)', '(208, 224, 227)', '(207, 226, 243)', '(217, 210, 233)', '(234, 209, 220)'],
- ['(234, 153, 153)', '(249, 203, 156)', '(255, 229, 153)', '(182, 215, 168)', '(162, 196, 201)', '(159, 197, 232)', '(180, 167, 214)', '(213, 166, 189)'],
- ['(224, 102, 102)', '(246, 178, 107)', '(255, 217, 102)', '(147, 196, 125)', '(118, 165, 175)', '(111, 168, 220)', '(142, 124, 195)', '(194, 123, 160)'],
- ['(204, 0, 0)', '(230, 145, 56)', '(241, 194, 50)', '(106, 168, 79)', '(69, 129, 142)', '(61, 133, 198)', '(103, 78, 167)', '(166, 77, 121)'],
- ['(153, 0, 0)', '(180, 95, 6)', '(191, 144, 0)', '(56, 118, 29)', '(19, 79, 92)', '(11, 83, 148)', '(53, 28, 117)', '(116, 27, 71)'],
- ['(102, 0, 0)', '(120, 63, 4)', '(127, 96, 0)', '(39, 78, 19)', '(12, 52, 61)', '(7, 55, 99)', '(32, 18, 77)', '(76, 17, 48)'],
+ [
+ '(244, 204, 204)',
+ '(252, 229, 205)',
+ '(255, 242, 204)',
+ '(217, 234, 211)',
+ '(208, 224, 227)',
+ '(207, 226, 243)',
+ '(217, 210, 233)',
+ '(234, 209, 220)',
+ ],
+ [
+ '(234, 153, 153)',
+ '(249, 203, 156)',
+ '(255, 229, 153)',
+ '(182, 215, 168)',
+ '(162, 196, 201)',
+ '(159, 197, 232)',
+ '(180, 167, 214)',
+ '(213, 166, 189)',
+ ],
+ [
+ '(224, 102, 102)',
+ '(246, 178, 107)',
+ '(255, 217, 102)',
+ '(147, 196, 125)',
+ '(118, 165, 175)',
+ '(111, 168, 220)',
+ '(142, 124, 195)',
+ '(194, 123, 160)',
+ ],
+ [
+ '(204, 0, 0)',
+ '(230, 145, 56)',
+ '(241, 194, 50)',
+ '(106, 168, 79)',
+ '(69, 129, 142)',
+ '(61, 133, 198)',
+ '(103, 78, 167)',
+ '(166, 77, 121)',
+ ],
+ [
+ '(153, 0, 0)',
+ '(180, 95, 6)',
+ '(191, 144, 0)',
+ '(56, 118, 29)',
+ '(19, 79, 92)',
+ '(11, 83, 148)',
+ '(53, 28, 117)',
+ '(116, 27, 71)',
+ ],
+ [
+ '(102, 0, 0)',
+ '(120, 63, 4)',
+ '(127, 96, 0)',
+ '(39, 78, 19)',
+ '(12, 52, 61)',
+ '(7, 55, 99)',
+ '(32, 18, 77)',
+ '(76, 17, 48)',
+ ],
],
},
{
id: '2p',
- colors: [['(255, 255, 255)', '(224, 229, 239)', '(80, 157, 192)', '(57, 113, 177)', '(2, 59, 185)', '(244, 184, 45)', '(241, 163, 39)', '(82, 92, 97)']],
+ colors: [
+ [
+ '(255, 255, 255)',
+ '(224, 229, 239)',
+ '(80, 157, 192)',
+ '(57, 113, 177)',
+ '(2, 59, 185)',
+ '(244, 184, 45)',
+ '(241, 163, 39)',
+ '(82, 92, 97)',
+ ],
+ ],
},
];
diff --git a/packages/editor/src/classes/menu/ColorPalettePanel.js b/packages/editor/src/classes/menu/ColorPalettePanel.js
index 3a04b9de..f964327b 100644
--- a/packages/editor/src/classes/menu/ColorPalettePanel.js
+++ b/packages/editor/src/classes/menu/ColorPalettePanel.js
@@ -21,11 +21,12 @@ import ToolbarPaneItem from './ToolbarPaneItem';
import { buildHtml, css } from './ColorPaletteHtml';
// rgbToHex implementation from https://stackoverflow.com/a/3627747/58128
-export const rgb2hex = (rgb) => `#${rgb
- .match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/)
- .slice(1)
- .map((n) => parseInt(n, 10).toString(16).padStart(2, '0'))
- .join('')}`;
+export const rgb2hex = (rgb) =>
+ `#${rgb
+ .match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/)
+ .slice(1)
+ .map((n) => parseInt(n, 10).toString(16).padStart(2, '0'))
+ .join('')}`;
class ColorPalettePanel extends ToolbarPaneItem {
constructor(buttonId, model, baseUrl) {
@@ -71,9 +72,7 @@ class ColorPalettePanel extends ToolbarPaneItem {
const panelElem = this.getPanelElem();
// Clear selected cell based on the color ...
- panelElem
- .find("td[class='palette-cell palette-cell-selected']")
- .attr('class', 'palette-cell');
+ panelElem.find("td[class='palette-cell palette-cell-selected']").attr('class', 'palette-cell');
// Mark the cell as selected ...
const colorCells = panelElem.find('div[class=palette-colorswatch]');
diff --git a/packages/editor/src/classes/menu/Events.ts b/packages/editor/src/classes/menu/Events.ts
index 41cf1277..4c313089 100644
--- a/packages/editor/src/classes/menu/Events.ts
+++ b/packages/editor/src/classes/menu/Events.ts
@@ -48,9 +48,9 @@ class Events {
if (!events) return this;
const args = Array.isArray(eventArgs) ? eventArgs : [eventArgs];
- events.forEach(((fn) => {
+ events.forEach((fn) => {
fn.apply(this, args);
- }));
+ });
return this;
}
diff --git a/packages/editor/src/classes/menu/FontFamilyPanel.js b/packages/editor/src/classes/menu/FontFamilyPanel.js
index 2a56ce58..c8b12d05 100644
--- a/packages/editor/src/classes/menu/FontFamilyPanel.js
+++ b/packages/editor/src/classes/menu/FontFamilyPanel.js
@@ -22,7 +22,20 @@ class FontFamilyPanel extends ListToolbarPanel {
// eslint-disable-next-line class-methods-use-this
buildPanel() {
const content = $("");
- const list = ['Arial', 'Baskerville', 'Tahoma', 'Limunari', 'Brush Script MT', 'Verdana', 'Times', 'Cursive', 'Fantasy', 'Perpetua', 'Brush Script', 'Copperplate']
+ const list = [
+ 'Arial',
+ 'Baskerville',
+ 'Tahoma',
+ 'Limunari',
+ 'Brush Script MT',
+ 'Verdana',
+ 'Times',
+ 'Cursive',
+ 'Fantasy',
+ 'Perpetua',
+ 'Brush Script',
+ 'Copperplate',
+ ]
.sort()
.map((f) => `${f}
`)
.join('\n');
diff --git a/packages/editor/src/classes/menu/FontSizePanel.js b/packages/editor/src/classes/menu/FontSizePanel.js
index be7ad56f..00de973e 100644
--- a/packages/editor/src/classes/menu/FontSizePanel.js
+++ b/packages/editor/src/classes/menu/FontSizePanel.js
@@ -22,11 +22,12 @@ class FontSizePanel extends ListToolbarPanel {
// eslint-disable-next-line class-methods-use-this
buildPanel() {
const content = $("");
- content[0].innerHTML = ''
- + 'Small
'
- + 'Normal
'
- + 'Large
'
- + 'Huge
';
+ content[0].innerHTML =
+ '' +
+ 'Small
' +
+ 'Normal
' +
+ 'Large
' +
+ 'Huge
';
return content;
}
diff --git a/packages/editor/src/classes/menu/IconPanel.js b/packages/editor/src/classes/menu/IconPanel.js
index b1202f4a..3c9e3611 100644
--- a/packages/editor/src/classes/menu/IconPanel.js
+++ b/packages/editor/src/classes/menu/IconPanel.js
@@ -19,15 +19,16 @@ import $ from 'jquery';
import ToolbarPaneItem from './ToolbarPaneItem';
import { ImageIcon } from '@wisemapping/mindplot';
-
class IconPanel extends ToolbarPaneItem {
_updateSelectedItem() {
return this.getPanelElem();
}
buildPanel() {
- const content = $('')
- .css({ width: 295, height: 305 });
+ const content = $('').css({
+ width: 295,
+ height: 305,
+ });
content.on('click', (event) => {
event.stopPropagation();
});
@@ -37,7 +38,7 @@ class IconPanel extends ToolbarPaneItem {
for (let i = 0; i < ImageIcon.prototype.ICON_FAMILIES.length; i += 1) {
const familyIcons = ImageIcon.prototype.ICON_FAMILIES[i].icons;
for (let j = 0; j < familyIcons.length; j += 1) {
- if ((count % 12) === 0) {
+ if (count % 12 === 0) {
familyContent = $('');
content.append(familyContent);
}
@@ -52,10 +53,10 @@ class IconPanel extends ToolbarPaneItem {
const panel = this;
const model = this.getModel();
- img.on('click', ((event) => {
+ img.on('click', (event) => {
model.setValue($(event.target).attr('id'));
panel.hide();
- }));
+ });
count += 1;
}
diff --git a/packages/editor/src/classes/menu/KeyboardShortcutDialog.js b/packages/editor/src/classes/menu/KeyboardShortcutDialog.js
index dda05336..c4c19c11 100644
--- a/packages/editor/src/classes/menu/KeyboardShortcutDialog.js
+++ b/packages/editor/src/classes/menu/KeyboardShortcutDialog.js
@@ -18,14 +18,13 @@
import BootstrapDialog from '../bootstrap/BootstrapDialog';
import { $msg } from '@wisemapping/mindplot';
-
class KeyboardShortcutDialog extends BootstrapDialog {
- constructor() {
- super($msg('SHORTCUTS'), {
- closeButton: true,
- acceptButton: false,
- });
- this.setContent(`
+ constructor() {
+ super($msg('SHORTCUTS'), {
+ closeButton: true,
+ acceptButton: false,
+ });
+ this.setContent(`
@@ -42,8 +41,8 @@ class KeyboardShortcutDialog extends BootstrapDialog {
${$msg('SAVE_CHANGES')} |
- Ctrl + s |
- ⌘ + s |
+ ${$msg('CTRL')} + S |
+ ⌘ + S |
${$msg('CREATE_SIBLING_TOPIC')} |
@@ -52,12 +51,12 @@ class KeyboardShortcutDialog extends BootstrapDialog {
${$msg('CREATE_CHILD_TOPIC')} |
- Insert / Tab |
+ ${$msg('K_INSERT')} / Tab |
⌘ + Enter / Tab |
${$msg('DELETE_TOPIC')} |
- Delete |
+ ${$msg('K_DELETE')} |
Delete |
@@ -67,19 +66,19 @@ class KeyboardShortcutDialog extends BootstrapDialog {
${$msg('MULTIPLE_LINES')} |
- Ctrl + Enter |
+ ${$msg('CTRL')} + Enter |
⌘ + Enter |
${$msg('COPY_AND_PASTE_TOPICS')} |
- Ctrl + c/Ctrl + v |
- ⌘ + c/⌘ + v |
+ ${$msg('CTRL')} + C / ${$msg('CTRL')} + V |
+ ⌘ + C / ⌘ + V |
${$msg('COLLAPSE_CHILDREN')} |
- Space bar |
- Space bar |
+ ${$msg('SPACE_BAR')} |
+ ${$msg('SPACE_BAR')} |
${$msg('TOPIC_NAVIGATION')} |
@@ -88,23 +87,23 @@ class KeyboardShortcutDialog extends BootstrapDialog {
${$msg('SELECT_MULTIPLE_NODES')} |
- Ctrl + Mouse Click |
- Ctrl + Mouse Click |
+ ${$msg('CTRL')} + ${$msg('MOUSE_CLICK')} |
+ ${$msg('CTRL')} + ${$msg('MOUSE_CLICK')} |
${$msg('UNDO_EDITION')} |
- Ctrl + z |
- ⌘ + z |
+ ${$msg('CTRL')} + Z |
+ ⌘ + Z |
${$msg('REDO_EDITION')} |
- Ctrl + Shift + z |
- ⌘ + Shift + z |
+ ${$msg('CTRL')} + Shift + Z |
+ ⌘ + Shift + Z |
${$msg('SELECT_ALL_TOPIC')} |
- Ctrl + a |
- ⌘ + a |
+ ${$msg('CTRL')} + A |
+ ⌘ + A |
${$msg('CANCEL_TEXT_CHANGES')} |
@@ -113,34 +112,34 @@ class KeyboardShortcutDialog extends BootstrapDialog {
${$msg('DESELECT_ALL_TOPIC')} |
- Ctrl + Shift + a |
- ⌘ + Shift + a |
+ ${$msg('CTRL')} + Shift + A |
+ ⌘ + Shift + A |
${$msg('CHANGE_TEXT_ITALIC')} |
- Ctrl + i |
- ⌘ + i |
+ ${$msg('CTRL')} + I |
+ ⌘ + I |
${$msg('CHANGE_TEXT_BOLD')} |
- Ctrl + b |
- ⌘ + b |
+ ${$msg('CTRL')} + B |
+ ⌘ + B |
${$msg('TOPIC_NOTE')} |
- Ctrl + k |
- ⌘ + k |
+ ${$msg('CTRL')} + K |
+ ⌘ + K |
${$msg('TOPIC_LINK')} |
- Ctrl + l |
- ⌘ + l |
+ ${$msg('CTRL')} + L |
+ ⌘ + L |
`);
- this.show();
- }
+ this.show();
+ }
}
export default KeyboardShortcutDialog;
diff --git a/packages/editor/src/classes/menu/KeyboardShortcutTooltip.js b/packages/editor/src/classes/menu/KeyboardShortcutTooltip.js
index 415dc561..7c3ce051 100644
--- a/packages/editor/src/classes/menu/KeyboardShortcutTooltip.js
+++ b/packages/editor/src/classes/menu/KeyboardShortcutTooltip.js
@@ -17,7 +17,7 @@
*/
import $ from 'jquery';
import { $assert } from '@wisemapping/core-js';
-import FloatingTip from '@wisemapping/mindplot/src/components/widget/FloatingTip';
+import FloatingTip from '../bootstrap/FloatingTip';
class KeyboardShortcutTooltip extends FloatingTip {
constructor(buttonElem, text) {
@@ -36,7 +36,8 @@ class KeyboardShortcutTooltip extends FloatingTip {
html: true,
placement: 'bottom',
className: 'keyboardShortcutTip',
- template: '
',
+ template:
+ '
',
});
tipDiv.on('click', (e) => {
tipDiv.trigger('mouseleave', e);
diff --git a/packages/editor/src/classes/menu/ListToolbarPanel.js b/packages/editor/src/classes/menu/ListToolbarPanel.js
index 358c23e4..6847f68d 100644
--- a/packages/editor/src/classes/menu/ListToolbarPanel.js
+++ b/packages/editor/src/classes/menu/ListToolbarPanel.js
@@ -43,7 +43,9 @@ class ListToolbarPanel extends ToolbarPaneItem {
const menuElems = panelElem.find('div');
const value = this.getModel().getValue();
menuElems.each((index, elem) => {
- const elemValue = $defined($(elem).attr('model')) ? $(elem).attr('model') : $(elem).attr('id');
+ const elemValue = $defined($(elem).attr('model'))
+ ? $(elem).attr('model')
+ : $(elem).attr('id');
$assert(elemValue, 'elemValue can not be null');
if (elemValue === value) $(elem).attr('class', 'toolbarPanelLinkSelectedLink');
else $(elem).attr('class', 'toolbarPanelLink');
diff --git a/packages/editor/src/classes/menu/Menu.ts b/packages/editor/src/classes/menu/Menu.ts
index 57b7a035..1cd16a93 100644
--- a/packages/editor/src/classes/menu/Menu.ts
+++ b/packages/editor/src/classes/menu/Menu.ts
@@ -61,7 +61,9 @@ class Menu extends IMenu {
this._addButton('position', false, false, () => {
designer.zoomToFit();
});
- Menu._registerTooltip('position', $msg('CENTER_POSITION'));
+ // Disabled because this tooltip overflows the screen and makes the button un-clickeable
+ // This should be enabled when migrating to material-ui
+ //Menu._registerTooltip('position', $msg('CENTER_POSITION'));
// Edition actions ...
if (!readOnly) {
@@ -181,7 +183,9 @@ class Menu extends IMenu {
designer.changeBorderColor(hex);
},
};
- this._toolbarElems.push(new ColorPalettePanel('topicBorder', borderColorModel, widgetsBaseUrl));
+ this._toolbarElems.push(
+ new ColorPalettePanel('topicBorder', borderColorModel, widgetsBaseUrl),
+ );
Menu._registerTooltip('topicBorder', $msg('TOPIC_BORDER_COLOR'));
const fontColorModel = {
@@ -211,7 +215,7 @@ class Menu extends IMenu {
if (undoButton) {
undoButton.disable();
}
- Menu._registerTooltip('undoEdition', $msg('UNDO'));
+ Menu._registerTooltip('undoEdition', $msg('UNDO'), $msg('CTRL') + ' + Z');
const redoButton = this._addButton('redoEdition', false, false, () => {
designer.redo();
@@ -219,7 +223,7 @@ class Menu extends IMenu {
if (redoButton) {
redoButton.disable();
}
- Menu._registerTooltip('redoEdition', $msg('REDO'));
+ Menu._registerTooltip('redoEdition', $msg('REDO'), $msg('CTRL') + ' + Shift + Z');
if (redoButton && undoButton) {
designer.addEvent('modelUpdate', (event) => {
@@ -244,7 +248,7 @@ class Menu extends IMenu {
this._addButton('deleteTopic', true, true, () => {
designer.deleteSelectedEntities();
});
- Menu._registerTooltip('deleteTopic', $msg('TOPIC_DELETE'));
+ Menu._registerTooltip('deleteTopic', $msg('TOPIC_DELETE'), $msg('K_DELETE'));
this._addButton('topicLink', true, false, () => {
designer.addLink();
@@ -264,22 +268,20 @@ class Menu extends IMenu {
this._addButton('fontBold', true, false, () => {
designer.changeFontWeight();
});
- Menu._registerTooltip('fontBold', $msg('FONT_BOLD'), 'meta+B');
+ Menu._registerTooltip('fontBold', $msg('FONT_BOLD'), $msg('CTRL') + ' + B');
this._addButton('fontItalic', true, false, () => {
designer.changeFontStyle();
});
- Menu._registerTooltip('fontItalic', $msg('FONT_ITALIC'), 'meta+I');
-
+ Menu._registerTooltip('fontItalic', $msg('FONT_ITALIC'), $msg('CTRL') + ' + I');
if (!readOnly) {
// Register action on save ...
const saveElem = $('#save');
- this._addButton('save', false, false,
- () => {
- this.save(saveElem, designer, true);
- });
- Menu._registerTooltip('save', $msg('SAVE'));
+ this._addButton('save', false, false, () => {
+ this.save(saveElem, designer, true);
+ });
+ Menu._registerTooltip('save', $msg('SAVE'), $msg('CTRL') + ' + S');
// Register unload save ...
window.addEventListener('beforeunload', () => {
@@ -290,13 +292,11 @@ class Menu extends IMenu {
});
// Autosave on a fixed period of time ...
- setInterval(
- () => {
- if (this.isSaveRequired()) {
- this.save(saveElem, designer, false);
- }
- }, 10000,
- );
+ setInterval(() => {
+ if (this.isSaveRequired()) {
+ this.save(saveElem, designer, false);
+ }
+ }, 10000);
}
}
@@ -394,10 +394,14 @@ class Menu extends IMenu {
// Register Events ...
let result = null;
if ($(`#${buttonId}`)) {
- const button = new ToolbarItem(buttonId, ((event) => {
- fn(event);
- this.clear();
- }), { topicAction: isTopic, relAction: isRelationship });
+ const button = new ToolbarItem(
+ buttonId,
+ (event) => {
+ fn(event);
+ this.clear();
+ },
+ { topicAction: isTopic, relAction: isRelationship },
+ );
this._toolbarElems.push(button);
result = button;
@@ -409,9 +413,10 @@ class Menu extends IMenu {
if ($(`#${buttonId}`)) {
let tooltip = text;
if (shortcut) {
- const platformedShortcut = navigator.appVersion.indexOf('Mac') !== -1
- ? shortcut.replace('meta+', '⌘')
- : shortcut.replace('meta+', 'ctrl+');
+ const platformedShortcut =
+ navigator.appVersion.indexOf('Mac') !== -1
+ ? shortcut.replace('meta+', '⌘')
+ : shortcut.replace('meta+', 'ctrl+');
tooltip = `${tooltip} (${platformedShortcut})`;
}
return new KeyboardShortcutTooltip($(`#${buttonId}`), tooltip);
diff --git a/packages/editor/src/classes/menu/ToolbarPaneItem.js b/packages/editor/src/classes/menu/ToolbarPaneItem.js
index 97c0ba37..4dbb54f7 100644
--- a/packages/editor/src/classes/menu/ToolbarPaneItem.js
+++ b/packages/editor/src/classes/menu/ToolbarPaneItem.js
@@ -17,7 +17,7 @@
*/
import { $assert } from '@wisemapping/core-js';
import ToolbarItem from './ToolbarItem';
-import FloatingTip from '@wisemapping/mindplot/src/components/widget/FloatingTip';
+import FloatingTip from '../bootstrap/FloatingTip';
class ToolbarPaneItem extends ToolbarItem {
constructor(buttonId, model, delayInit) {
diff --git a/packages/editor/src/compiled-lang/de.json b/packages/editor/src/compiled-lang/de.json
index ac8ea4ac..a455e2a8 100644
--- a/packages/editor/src/compiled-lang/de.json
+++ b/packages/editor/src/compiled-lang/de.json
@@ -5,6 +5,18 @@
"value": "Teilen"
}
],
+ "editor.edit-description-mobile": [
+ {
+ "type": 0,
+ "value": "Eingeschränkte Funktionen der Mindmap-Edition werden auf Mobilgeräten unterstützt. Verwenden Sie den Desktop-Browser für vollständige Editorfunktionen."
+ }
+ ],
+ "editor.edit-mobile": [
+ {
+ "type": 0,
+ "value": "Hinweis für Mobilgeräte."
+ }
+ ],
"editor.try-welcome": [
{
"type": 0,
@@ -17,6 +29,18 @@
"value": "Melden Sie sich an, um kostenlos eine unbegrenzte Anzahl von Mindmaps zu erstellen, zu teilen und zu veröffentlichen."
}
],
+ "editor.try-welcome-description-mobile": [
+ {
+ "type": 0,
+ "value": "Melden Sie sich an, um kostenlos eine unbegrenzte Anzahl von Mindmaps zu erstellen, zu teilen und zu veröffentlichen. Eingeschränkte Funktionen der Mindmap-Edition werden auf Mobilgeräten unterstützt. Verwenden Sie den Desktop-Browser für vollständige Editorfunktionen."
+ }
+ ],
+ "editor.try-welcome-mobile": [
+ {
+ "type": 0,
+ "value": "Diese Edition zeigt einige der Mindmap-Funktionen!"
+ }
+ ],
"login.signup": [
{
"type": 0,
diff --git a/packages/editor/src/compiled-lang/en.json b/packages/editor/src/compiled-lang/en.json
index ab5c90b6..f466aad6 100644
--- a/packages/editor/src/compiled-lang/en.json
+++ b/packages/editor/src/compiled-lang/en.json
@@ -5,10 +5,22 @@
"value": "Share"
}
],
+ "editor.edit-description-mobile": [
+ {
+ "type": 0,
+ "value": "Limited mindmap edition capabilities are supported in Mobile devices. Use Desktop browser for full editor capabilities."
+ }
+ ],
+ "editor.edit-mobile": [
+ {
+ "type": 0,
+ "value": "Note for mobile devices."
+ }
+ ],
"editor.try-welcome": [
{
"type": 0,
- "value": "This edition space showcases some of the mindmap editor capabilities !"
+ "value": "This edition space showcases some of the mindmap editor capabilities!"
}
],
"editor.try-welcome-description": [
@@ -17,6 +29,18 @@
"value": "Sign Up to start creating, sharing and publishing unlimited number of mindmaps for free."
}
],
+ "editor.try-welcome-description-mobile": [
+ {
+ "type": 0,
+ "value": "Sign Up to start creating, sharing and publishing unlimited number of mindmaps for free. Limited mindmap edition capabilties are supported in Mobile devices. Use Desktop browser for full editor capabilies."
+ }
+ ],
+ "editor.try-welcome-mobile": [
+ {
+ "type": 0,
+ "value": "This edition space showcases some of the mindmap capabilities!"
+ }
+ ],
"login.signup": [
{
"type": 0,
diff --git a/packages/editor/src/compiled-lang/es.json b/packages/editor/src/compiled-lang/es.json
index 19ff2e8a..65e44628 100644
--- a/packages/editor/src/compiled-lang/es.json
+++ b/packages/editor/src/compiled-lang/es.json
@@ -5,6 +5,18 @@
"value": "Compartir"
}
],
+ "editor.edit-description-mobile": [
+ {
+ "type": 0,
+ "value": "En dispositivos móbiles las funciones son limitadas. Use la versión de escritorio para tener las funciones completas."
+ }
+ ],
+ "editor.edit-mobile": [
+ {
+ "type": 0,
+ "value": "Nota para dispositivos móbiles."
+ }
+ ],
"editor.try-welcome": [
{
"type": 0,
@@ -17,6 +29,18 @@
"value": "Registrate para comenzar a crear, compartir y publicar una cantidad ilimitada de mapas mentales de forma gratuita."
}
],
+ "editor.try-welcome-description-mobile": [
+ {
+ "type": 0,
+ "value": "Registrate para comenzar a crear, compartir y publicar una cantidad ilimitada de mapas mentales de forma gratuita. En dispositivos móbiles las funciones son limitadas. Use la versión de escritorio para tener las funciones completas."
+ }
+ ],
+ "editor.try-welcome-mobile": [
+ {
+ "type": 0,
+ "value": "¡Este espacio de edición muestra algunas de las capacidades de mapas mentales!"
+ }
+ ],
"login.signup": [
{
"type": 0,
diff --git a/packages/editor/src/compiled-lang/fr.json b/packages/editor/src/compiled-lang/fr.json
index a7f74b02..beab84d3 100644
--- a/packages/editor/src/compiled-lang/fr.json
+++ b/packages/editor/src/compiled-lang/fr.json
@@ -5,10 +5,22 @@
"value": "Partager"
}
],
+ "editor.edit-description-mobile": [
+ {
+ "type": 0,
+ "value": "Les capacités d'édition limitées de mindmap sont prises en charge dans les appareils mobiles. Utilisez le navigateur de bureau pour bénéficier de toutes les fonctionnalités de l'éditeur."
+ }
+ ],
+ "editor.edit-mobile": [
+ {
+ "type": 0,
+ "value": "Remarque pour les appareils mobiles."
+ }
+ ],
"editor.try-welcome": [
{
"type": 0,
- "value": "Cet espace d'édition présente certaines des fonctionnalités de l'éditeur de cartes mentales !"
+ "value": "Cet espace d'édition présente certaines des fonctionnalités de l'éditeur de cartes mentales!"
}
],
"editor.try-welcome-description": [
@@ -17,6 +29,18 @@
"value": "Inscrivez-vous pour commencer à créer, partager et publier gratuitement un nombre illimité de cartes mentales."
}
],
+ "editor.try-welcome-description-mobile": [
+ {
+ "type": 0,
+ "value": "Inscrivez-vous pour commencer à créer, partager et publier gratuitement un nombre illimité de cartes mentales. Les capacités d'édition limitées de mindmap sont prises en charge dans les appareils mobiles. Utilisez le navigateur de bureau pour bénéficier de toutes les fonctionnalités de l'éditeur."
+ }
+ ],
+ "editor.try-welcome-mobile": [
+ {
+ "type": 0,
+ "value": "Cet espace d'édition présente certaines des fonctionnalités des cartes mentales!"
+ }
+ ],
"login.signup": [
{
"type": 0,
diff --git a/packages/editor/src/compiled-lang/ru.json b/packages/editor/src/compiled-lang/ru.json
index 6a9236c3..716d0b29 100644
--- a/packages/editor/src/compiled-lang/ru.json
+++ b/packages/editor/src/compiled-lang/ru.json
@@ -5,6 +5,18 @@
"value": "Поделиться"
}
],
+ "editor.edit-description-mobile": [
+ {
+ "type": 0,
+ "value": "Возможности ограниченной версии Mindmap поддерживаются на мобильных устройствах. Используйте настольный браузер для полных возможностей редактора."
+ }
+ ],
+ "editor.edit-mobile": [
+ {
+ "type": 0,
+ "value": "Примечание для мобильных устройств."
+ }
+ ],
"editor.try-welcome": [
{
"type": 0,
@@ -17,6 +29,18 @@
"value": "Чтобы получить бесплатный неограниченный доступ — нужна только регистрация."
}
],
+ "editor.try-welcome-description-mobile": [
+ {
+ "type": 0,
+ "value": "Зарегистрируйтесь, чтобы начать создавать, делиться и публиковать неограниченное количество ментальных карт бесплатно. Возможности ограниченной версии Mindmap поддерживаются на мобильных устройствах. Используйте настольный браузер для полных возможностей редактора."
+ }
+ ],
+ "editor.try-welcome-mobile": [
+ {
+ "type": 0,
+ "value": "В этом издании демонстрируются некоторые возможности ментальных карт!"
+ }
+ ],
"login.signup": [
{
"type": 0,
diff --git a/packages/editor/src/compiled-lang/zh.json b/packages/editor/src/compiled-lang/zh.json
index e0ab537c..69e858e6 100644
--- a/packages/editor/src/compiled-lang/zh.json
+++ b/packages/editor/src/compiled-lang/zh.json
@@ -5,6 +5,18 @@
"value": "分享"
}
],
+ "editor.edit-description-mobile": [
+ {
+ "type": 0,
+ "value": "移动设备支持有限的思维导图编辑功能。 使用桌面浏览器获得完整的编辑器功能。"
+ }
+ ],
+ "editor.edit-mobile": [
+ {
+ "type": 0,
+ "value": "移动设备注意事项."
+ }
+ ],
"editor.try-welcome": [
{
"type": 0,
@@ -17,6 +29,18 @@
"value": "注册后可以免费创建、分享和发布无限数量的思维导图。"
}
],
+ "editor.try-welcome-description-mobile": [
+ {
+ "type": 0,
+ "value": "注册以开始免费创建、共享和发布无限数量的思维导图。 移动设备支持有限的思维导图编辑功能。 使用桌面浏览器获得完整的编辑器功能。"
+ }
+ ],
+ "editor.try-welcome-mobile": [
+ {
+ "type": 0,
+ "value": "这个版本空间展示了一些思维导图功能!"
+ }
+ ],
"login.signup": [
{
"type": 0,
diff --git a/packages/editor/src/components/action-button/index.ts b/packages/editor/src/components/action-button/index.ts
index 39c79067..e2247a9e 100644
--- a/packages/editor/src/components/action-button/index.ts
+++ b/packages/editor/src/components/action-button/index.ts
@@ -1,25 +1,27 @@
import styled from 'styled-components';
const ActionButton = styled.div`
- cursor: pointer;
- margin: 0px 10px;
- font-family: Arial, Helvetica, sans-serif;
- user-select: none;
- vertical-align: middle;
- justify-content: center;
- padding: 10px 25px;
- font-size: 15px;
- min-width: 64px;
- box-sizing: border-box;
- font-weight: 600;
- border-radius: 9px;
- color: white;
- background-color: #ffa800;
- display: inline-block;
-
- &:hover {
- transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
- }
+ cursor: pointer;
+ margin: 0px 10px;
+ font-family: Arial, Helvetica, sans-serif;
+ user-select: none;
+ vertical-align: middle;
+ justify-content: center;
+ padding: 10px 25px;
+ font-size: 15px;
+ min-width: 64px;
+ box-sizing: border-box;
+ font-weight: 600;
+ border-radius: 9px;
+ color: white;
+ background-color: #ffa800;
+ display: inline-block;
+
+ &:hover {
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
+ border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
+ }
`;
-export default ActionButton;
\ No newline at end of file
+export default ActionButton;
diff --git a/packages/editor/src/components/footer/index.tsx b/packages/editor/src/components/footer/index.tsx
index 1b10f9b0..dae9ba4d 100644
--- a/packages/editor/src/components/footer/index.tsx
+++ b/packages/editor/src/components/footer/index.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState } from 'react';
import { StyledLogo, Notifier } from './styled';
import { useIntl } from 'react-intl';
@@ -6,51 +6,99 @@ import KeyboardSvg from '../../../images/keyboard.svg';
import AddSvg from '../../../images/add.svg';
import MinusSvg from '../../../images/minus.svg';
import CenterFocusSvg from '../../../images/center_focus.svg';
+import CloseDialogSvg from '../../../images/close-dialog-icon.svg';
+
import ActionButton from '../action-button';
import { EditorRenderMode } from '@wisemapping/mindplot';
export type FooterPropsType = {
- editorMode: EditorRenderMode;
+ editorMode: EditorRenderMode;
+ isMobile: boolean;
};
-const Footer = ({ editorMode }: FooterPropsType): React.ReactElement => {
- const intl = useIntl();
+const Footer = ({ editorMode, isMobile }: FooterPropsType): React.ReactElement => {
+ const intl = useIntl();
+ const [dialogClass, setDialogClass] = useState('tryInfoPanel');
- return (
- <>
-
-
-
-
-
-
-
-
+ var titleKey = undefined;
+ var descriptionKey = undefined;
+ var showSignupButton = undefined;
+
+ if (editorMode !== 'viewonly' && editorMode !== 'showcase' && isMobile) {
+ titleKey = 'editor.edit-mobile';
+ descriptionKey = 'editor.edit-description-mobile';
+ showSignupButton = false;
+ }
+ if (editorMode === 'showcase' && isMobile) {
+ titleKey = 'editor.try-welcome-mobile';
+ descriptionKey = 'editor.edit-description-mobile';
+ showSignupButton = true;
+ }
+ if (editorMode === 'showcase' && !isMobile) {
+ titleKey = 'editor.try-welcome';
+ descriptionKey = 'editor.try-welcome-description';
+ showSignupButton = true;
+ }
+
+ // if the toolbar is present, the alert must not overlap
+ var alertTopAdjustmentStyle =
+ editorMode !== 'viewonly' && !isMobile
+ ? 'tryInfoPanelWithToolbar'
+ : 'tryInfoPanelWithoutToolbar';
+
+ return (
+ <>
+
+ {!isMobile && (
+
+
+
+ )}
+
+
+
+
+
+
+
+ {titleKey && (
+
+ )}
+ >
+ );
};
export default Footer;
diff --git a/packages/editor/src/components/footer/styled.ts b/packages/editor/src/components/footer/styled.ts
index ea900704..ce94b981 100644
--- a/packages/editor/src/components/footer/styled.ts
+++ b/packages/editor/src/components/footer/styled.ts
@@ -3,29 +3,29 @@ import { times } from '../../size';
import LogoTextBlackSvg from '../../../images/logo-text-black.svg';
export const StyledFooter = styled.div`
- height: ${times(10)};
- width: 100%;
- border: 1px solid black;
+ height: ${times(10)};
+ width: 100%;
+ border: 1px solid black;
`;
export const StyledLogo = styled.div`
- position: fixed;
- left: 20px;
- bottom: 10px;
- background: url(${LogoTextBlackSvg}) no-repeat;
- width: 90px;
- height: 40px;
+ position: fixed;
+ left: 20px;
+ bottom: 10px;
+ background: url(${LogoTextBlackSvg}) no-repeat;
+ width: 90px;
+ height: 40px;
`;
export const Notifier = styled.div`
- border: 1px solid rgb(241, 163, 39);
- background-color: rgb(252, 235, 192);
- border-radius: 3px;
- position: fixed;
- padding: 5px 9px;
- color: back;
- white-space: nowrap;
- margin-top: 5px;
- display: none;
- bottom: 10px;
+ border: 1px solid rgb(241, 163, 39);
+ background-color: rgb(252, 235, 192);
+ border-radius: 3px;
+ position: fixed;
+ padding: 5px 9px;
+ color: back;
+ white-space: nowrap;
+ margin-top: 5px;
+ display: none;
+ bottom: 10px;
`;
diff --git a/packages/editor/src/components/toolbar/global-styled.css b/packages/editor/src/components/toolbar/global-styled.css
index 0bd3f70f..690697a4 100644
--- a/packages/editor/src/components/toolbar/global-styled.css
+++ b/packages/editor/src/components/toolbar/global-styled.css
@@ -1,103 +1,104 @@
div#header {
- width: 100%;
- height:50px;
- position: absolute;
- top: 0;
- z-index:1000;
+ width: 100%;
+ height: 50px;
+ position: absolute;
+ top: 0;
+ z-index: 1000;
}
div#headerNotifier {
- border: 1px solid rgb(241, 163, 39);
- background-color: rgb(252, 235, 192);
- border-radius: 3px;
- position: fixed;
- padding: 5px 9px;
- color: back;
- white-space: nowrap;
- margin-top: 5px;
- display: none;
- bottom: 10px;
+ border: 1px solid rgb(241, 163, 39);
+ background-color: rgb(252, 235, 192);
+ border-radius: 3px;
+ position: fixed;
+ padding: 5px 9px;
+ color: back;
+ white-space: nowrap;
+ margin-top: 5px;
+ display: none;
+ bottom: 10px;
}
div#toolbarRight {
- float: right;
- white-space: nowrap;
- vertical-align: middle;
- justify-content: center;
- margin: 6px 10px;
- height: 100%;
+ float: right;
+ white-space: nowrap;
+ vertical-align: middle;
+ justify-content: center;
+ margin: 6px 10px;
+ height: 100%;
}
#account {
- float: right;
- display: inline;
+ float: right;
+ display: inline;
}
-#account >img {
- width: 36x;
- height: 36px;
+#account > img {
+ width: 36x;
+ height: 36px;
}
-#accountSettingsPanel{
- padding:10px 10px;
+#accountSettingsPanel {
+ padding: 10px 10px;
}
#share {
- margin: 0 30px;
- float: right;
+ margin: 0 30px;
+ float: right;
}
.actionButton {
- cursor: pointer;
- font-family: Arial, Helvetica, sans-serif;
- user-select: none;
- vertical-align: middle;
- justify-content: center;
- padding: 10px 25px;
- font-size: 15px;
- min-width: 64px;
- box-sizing: border-box;
- font-weight: 600;
- border-radius: 9px;
- color: white;
- background-color: #ffa800;
+ cursor: pointer;
+ font-family: Arial, Helvetica, sans-serif;
+ user-select: none;
+ vertical-align: middle;
+ justify-content: center;
+ padding: 10px 25px;
+ font-size: 15px;
+ min-width: 64px;
+ box-sizing: border-box;
+ font-weight: 600;
+ border-radius: 9px;
+ color: white;
+ background-color: #ffa800;
}
.actionButton:hover {
- transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}
div#toolbar {
- width: 100%;
- height: 50px;
- box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);
- background-color: #fff;
- min-width: 900px;
- overflow: hidden;
+ width: 100%;
+ height: 50px;
+ box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);
+ background-color: #fff;
+ min-width: 900px;
+ overflow: hidden;
}
div#toolbar .buttonContainer {
- height: 50px;
- padding-top: 8px;
- padding-right: 10px;
- padding-left: 10px;
- float: left;
- border-left: 1px solid lightgray;
+ height: 50px;
+ padding-top: 8px;
+ padding-right: 10px;
+ padding-left: 10px;
+ float: left;
+ border-left: 1px solid lightgray;
}
-div#mapName >span {
- border-radius: 4px;
- float: left;
- padding: 8px;
- min-width: 30px;
- font-weight: bold;
+div#mapName > span {
+ border-radius: 4px;
+ float: left;
+ padding: 8px;
+ min-width: 30px;
+ font-weight: bold;
}
div#backToList {
- height: 24px;
- width: 24px;
- float: left;
- margin: 13px 20px;
+ height: 24px;
+ width: 24px;
+ float: left;
+ margin: 13px 20px;
}
/******************************************************************************************/
@@ -108,120 +109,120 @@ div#toolbar .buttonOn,
div#toolbar .buttonOff,
div#toolbar .buttonActive,
div#toolbar .buttonOn:hover {
- width: 28px;
- height: 28px;
- float: left;
- text-align: center;
- z-index: 4;
- margin-top: 3px;
- padding-top: 2px;
- padding-left: 2px;
- margin-left: 3px;
+ width: 28px;
+ height: 28px;
+ float: left;
+ text-align: center;
+ z-index: 4;
+ margin-top: 3px;
+ padding-top: 2px;
+ padding-left: 2px;
+ margin-left: 3px;
}
div#toolbar .buttonOn:hover {
- cursor: pointer;
- opacity: 1;
+ cursor: pointer;
+ opacity: 1;
}
div#toolbar .buttonOn {
- opacity: 0.8;
+ opacity: 0.8;
}
div#toolbar .buttonOff {
- opacity: 0.4;
+ opacity: 0.4;
}
div#exportAnchor {
- position: absolute;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
}
div#toolbar .buttonExtOn,
div#toolbar .buttonExtOff,
div#toolbar .buttonExtActive,
div#toolbar .buttonExtOn:hover {
- width: 40px;
- height: 28px;
- float: left;
- text-align: left;
- z-index: 4;
- margin-top: 3px;
- padding-top: 2px;
- padding-left: 5px;
- margin-left: 3px;
+ width: 40px;
+ height: 28px;
+ float: left;
+ text-align: left;
+ z-index: 4;
+ margin-top: 3px;
+ padding-top: 2px;
+ padding-left: 5px;
+ margin-left: 3px;
}
div#toolbar .buttonExtOn:hover {
- opacity: 1;
+ opacity: 1;
}
div#toolbar .buttonExtActive {
- opacity: 1;
+ opacity: 1;
}
div#toolbar .buttonExtOn {
- opacity: 0.8;
- cursor: pointer
+ opacity: 0.8;
+ cursor: pointer;
}
div#toolbar .buttonExtOff {
- opacity: 0.4;
+ opacity: 0.4;
}
div#exportAnchor {
- position: absolute;
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
}
/***************************************************************************************************/
/* Other toolbar styles */
/***************************************************************************************************/
.toolbarTip {
- background-color: #000000;
- padding: 5px 5px;
- color: #f5f5f5;
- font-size: 11px;
+ background-color: #000000;
+ padding: 5px 5px;
+ color: #f5f5f5;
+ font-size: 11px;
}
div#colorPalette {
- border: 1px solid #bbb4d6;
- display: none;
- position: absolute;
- z-index: 4;
- width: 160px;
- top: 89px;
+ border: 1px solid #bbb4d6;
+ display: none;
+ position: absolute;
+ z-index: 4;
+ width: 160px;
+ top: 89px;
}
div.toolbarPanelLink,
div.toolbarPanelLinkSelectedLink {
- cursor: pointer;
- color: black;
- margin: 1px;
- cursor: pointer;
- font-size: 12px;
- padding: 5px 10px;
- font-weight: bold;
+ cursor: pointer;
+ color: black;
+ margin: 1px;
+ cursor: pointer;
+ font-size: 12px;
+ padding: 5px 10px;
+ font-weight: bold;
}
div.toolbarPanelLink:hover,
div.toolbarPanelLinkSelectedLink {
- cursor: pointer;
- background-color: #efefef;
+ cursor: pointer;
+ background-color: #efefef;
}
.toolbarPaneTip {
- background-color: rgb(228, 226, 210);
- padding: 5px 5px;
- color: #f5f5f5;
- font-size: 11px;
- border-radius: 6px;
- box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.2);
- border: 3px double rgb(190, 190, 190);
-}
\ No newline at end of file
+ background-color: rgb(228, 226, 210);
+ padding: 5px 5px;
+ color: #f5f5f5;
+ font-size: 11px;
+ border-radius: 6px;
+ box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.2);
+ border: 3px double rgb(190, 190, 190);
+}
diff --git a/packages/editor/src/components/toolbar/index.tsx b/packages/editor/src/components/toolbar/index.tsx
index 28340244..2997f7b6 100644
--- a/packages/editor/src/components/toolbar/index.tsx
+++ b/packages/editor/src/components/toolbar/index.tsx
@@ -34,144 +34,131 @@ import { EditorRenderMode } from '@wisemapping/mindplot';
export type ToolbarActionType = 'export' | 'publish' | 'history' | 'print' | 'share' | 'info';
export type ToolbarPropsType = {
- editorMode: EditorRenderMode;
- onAction: (action: ToolbarActionType) => void;
+ editorMode: EditorRenderMode;
+ onAction: (action: ToolbarActionType) => void;
};
export default function Toolbar({
- editorMode: editorMode,
- onAction,
+ editorMode: editorMode,
+ onAction,
}: ToolbarPropsType): React.ReactElement {
- const intl = useIntl();
- return (
-
-
-
-
-
- {(editorMode === 'edition-editor' || editorMode === 'edition-owner') && (
-
-
-
-
-
- )}
- {(editorMode === 'edition-editor' || editorMode === 'edition-owner' || editorMode === 'showcase') && (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- )}
-
- onAction('export')}
- >
-
-
- {(editorMode === 'edition-owner' || editorMode === 'edition-editor' || editorMode === 'edition-viewer') && (
- onAction('print')}
- >
-
-
- )}
- onAction('info')}
- >
-
-
- {editorMode === 'edition-owner' && (
- <>
- onAction('history')}
- >
-
-
- onAction('publish')}
- >
-
-
- >
- )}
- {(editorMode === 'edition-owner' || editorMode === 'edition-editor') && (
-
-
-
- )}
- {editorMode === 'edition-owner' && (
- onAction('share')}>
- {intl.formatMessage({ id: 'action.share', defaultMessage: 'Share' })}
-
-
- )}
-
+ const intl = useIntl();
+ return (
+
+
+
+ );
}
diff --git a/packages/editor/src/components/toolbar/styled.ts b/packages/editor/src/components/toolbar/styled.ts
index 9b49513a..28167d7c 100644
--- a/packages/editor/src/components/toolbar/styled.ts
+++ b/packages/editor/src/components/toolbar/styled.ts
@@ -1,50 +1,50 @@
import styled from 'styled-components';
export const HeaderContainer = styled.div`
- width: 100%;
- height: 0px;
- background: #202020;
- z-index: 1000;
- position: absolute;
- top: 0;
- display: flex;
+ width: 100%;
+ height: 0px;
+ background: #202020;
+ z-index: 1000;
+ position: absolute;
+ top: 0;
+ display: flex;
`;
export const ToolbarContainer = styled.div`
- display: flex;
- flex-direction: column;
- flex: 1;
+ display: flex;
+ flex-direction: column;
+ flex: 1;
`;
export const ToolbarButton = styled.div`
- width: 28px;
- height: 28px;
- text-align: center;
- z-index: 4;
- margin-top: 3px;
- padding-top: 2px;
- padding-left: 2px;
- margin-left: 3px;
- display: inline-block;
- `;
-
+ width: 28px;
+ height: 28px;
+ text-align: center;
+ z-index: 4;
+ margin-top: 3px;
+ padding-top: 2px;
+ padding-left: 2px;
+ margin-left: 3px;
+ display: inline-block;
+`;
+
export const ToolbarButtonExt = styled(ToolbarButton)`
- width: 40px;
- text-align: left;
- padding-left: 5px;
+ width: 40px;
+ text-align: left;
+ padding-left: 5px;
`;
export const AccountButton = styled.div`
- display: inline-block;
- margin-top: 3px;
+ display: inline-block;
+ margin-top: 3px;
`;
export const ToolbarRightContainer = styled.div`
- flex-shrink: 1;
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: flex-end;
- height: 100%;
- overflow: hidden;
-`;
\ No newline at end of file
+ flex-shrink: 1;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: flex-end;
+ height: 100%;
+ overflow: hidden;
+`;
diff --git a/packages/editor/src/global-styled.css b/packages/editor/src/global-styled.css
index 06d15195..81ba233a 100644
--- a/packages/editor/src/global-styled.css
+++ b/packages/editor/src/global-styled.css
@@ -1,221 +1,280 @@
/********************************************************************************/
/* Header & Toolbar Styles */
/********************************************************************************/
-@import "bootstrap-prefix.min.css";
-@import "bootstrap-fixes.css";
+@import 'bootstrap-prefix.min.css';
+@import 'bootstrap-fixes.css';
html {
- /* avoid bootstrap overriding font-size and breaking Mui */
- font-size: initial;
+ /* avoid bootstrap overriding font-size and breaking Mui */
+ font-size: initial;
}
-div#mindplot {
- position: relative;
- top: 50px;
- left: 0;
- width: 100%;
- height: 100%;
- border: 0;
- overflow: hidden;
- opacity: 1;
- background-color: #f2f2f2;
- background-image: linear-gradient(#ebe9e7 1px, transparent 1px), linear-gradient(to right, #ebe9e7 1px, #f2f2f2 1px);
- background-size: 50px 50px;
+body {
+ width: 100vw;
+ height: 100vh;
+ min-width: 100vw;
+ min-height: 100vh;
+ margin: 0px;
+}
+
+.mindplot-root {
+ width: 100%;
+ height: 100%;
}
.notesTip {
- background-color: #dfcf3c;
- padding: 5px 15px;
- color: #666666;
- /*font-weight: bold;*/
- /*width: 100px;*/
- font-size: 13px;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2);
+ background-color: #dfcf3c;
+ padding: 5px 15px;
+ color: #666666;
+ /*font-weight: bold;*/
+ /*width: 100px;*/
+ font-size: 13px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2);
}
.linkTip {
- background-color: #dfcf3c;
- padding: 5px 15px;
- color: #666666;
- /*font-weight: bold;*/
- /*width: 100px;*/
- font-size: 13px;
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2);
+ background-color: #dfcf3c;
+ padding: 5px 15px;
+ color: #666666;
+ /*font-weight: bold;*/
+ /*width: 100px;*/
+ font-size: 13px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2);
}
.keyboardShortcutTip {
- background-color: black;
- padding: 5px 15px;
- color: white;
- font-weight: bold;
- font-size: 11px;
+ background-color: black;
+ padding: 5px 15px;
+ color: white;
+ font-weight: bold;
+ font-size: 11px;
}
/** */
/* Modal dialogs definitions */
div.modalDialog {
- position: fixed;
- top: 50%;
- left: 50%;
- z-index: 11000;
- width: 500px;
- margin: -250px 0 0 -250px;
- background-color: #ffffff;
- border: 1px solid #999;
- padding: 10px;
- overflow: auto;
- -webkit-background-clip: padding-box;
- -moz-background-clip: padding-box;
- background-clip: padding-box;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ z-index: 11000;
+ width: 500px;
+ margin: -250px 0 0 -250px;
+ background-color: #ffffff;
+ border: 1px solid #999;
+ padding: 10px;
+ overflow: auto;
+ -webkit-background-clip: padding-box;
+ -moz-background-clip: padding-box;
+ background-clip: padding-box;
}
div.modalDialog .content {
- padding: 5px 5px;
+ padding: 5px 5px;
}
div.modalDialog .title {
- font-weight: bold;
- text-shadow: 1px 1px 0 #fff;
- border-bottom: 1px solid #eee;
- padding: 5px 15px;
- font-size: 18px;
+ font-weight: bold;
+ text-shadow: 1px 1px 0 #fff;
+ border-bottom: 1px solid #eee;
+ padding: 5px 15px;
+ font-size: 18px;
}
/*--- End Modal Dialog Form ---*/
.publishModalDialog .content {
- height: 420px;
+ height: 420px;
}
.exportModalDialog .content {
- height: 400px;
+ height: 400px;
}
.shareModalDialog .content {
- height: 440px;
+ height: 440px;
}
div.shareModalDialog {
- width: 550px;
+ width: 550px;
}
.panelIcon {
- width: 20px;
- height: 20px;
- margin-left: 4px;
- margin-top: 3px;
- cursor: pointer
+ width: 20px;
+ height: 20px;
+ margin-left: 4px;
+ margin-top: 3px;
+ cursor: pointer;
}
.panelIcon:hover {
- background-color: #efefef;
+ background-color: #efefef;
}
.wise-editor .popover {
- font-size: 13px;
- max-width: none;
+ font-size: 13px;
+ max-width: none;
}
#floating-panel {
- position: fixed;
- display: flex;
- flex-direction: column;
- align-items: flex-end;
- bottom: 20px;
- right: 20px;
- align-items: stretch;
+ position: fixed;
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ bottom: 20px;
+ right: 20px;
+ align-items: stretch;
}
div#position {
- margin-top: 5px;
+ margin-top: 5px;
}
#position-button {
- cursor: pointer;
- border: solid black 1px;
- width: 40px;
- height: 40px;
- background-position: center;
- background-repeat: no-repeat;
- background-size: 40px 40px;
- background-color: #FFF;
- border-radius: 8px;
+ cursor: pointer;
+ border: solid black 1px;
+ width: 40px;
+ height: 40px;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 40px 40px;
+ background-color: #fff;
+ border-radius: 8px;
+ padding: 0;
+}
+
+#position-button>img {
+ vertical-align: middle;
}
#zoom-button {
- width: 40px;
- border: 0;
+ width: 40px;
+ border: 0;
}
#zoom-plus,
#zoom-minus {
- border: solid black 1px;
- height: 40px;
- width: 40px;
- background-repeat: no-repeat;
- background-size: 40px 40px;
- background-position: center;
- cursor: pointer;
- background-color: #FFF;
+ border: solid black 1px;
+ height: 40px;
+ width: 40px;
+ background-repeat: no-repeat;
+ background-size: 40px 40px;
+ background-position: center;
+ cursor: pointer;
+ background-color: #fff;
+ padding: 0;
}
+#zoom-plus,
+#zoom-minus>img {
+ vertical-align: middle;
+}
+
+
#zoom-plus {
- border-radius: 8px 8px 0 0;
+ border-radius: 8px 8px 0 0;
}
#zoom-minus {
- border-radius: 0 0 8px 8px;
+ border-radius: 0 0 8px 8px;
}
-div#shotcuts > img{
- margin: 20px 0;
- width: 40px;
- height: 40px;
+div#shotcuts>img {
+ margin: 20px 0;
+ width: 40px;
+ height: 40px;
}
#keyboardTable {
- font-family: Arial, verdana, serif;
- font-size: 13px;
- width: 100%;
+ font-family: Arial, verdana, serif;
+ font-size: 13px;
+ width: 100%;
}
#keyboardTable td {
- padding: 3px;
- white-space: nowrap;
+ padding: 3px;
+ white-space: nowrap;
}
#keyboardTable th {
- padding: 5px;
- white-space: nowrap;
+ padding: 5px;
+ white-space: nowrap;
}
#keyboardTable th {
- background-color: #000000;
- color: #ffffff;
+ background-color: #000000;
+ color: #ffffff;
}
-div#tryInfoPanel {
- position: absolute;
- margin: auto;
- text-align: center;
- top: 80px;
- left: 20px;
- width: 200px;
- padding: 20px;
+.tryInfoPanel {
+ position: absolute;
+ text-align: center;
+ left: 0;
+ right: 0;
+ background-color: white;
+ border: solid 2px #ffa800;
+ margin: auto;
+ width: 99%;
+ border-radius: 9px;
+ width: 96%;
+}
+
+@media (min-width: 600px) {
+ .tryInfoPanel {
font-size: 15px;
- border-radius: 9px;
- background-color: white;
- border: solid 2px #ffa800;
+ }
}
-#tryInfoPanel > p {
- justify-content: center;
- padding-bottom: 20px;
+@media (max-width: 600px) {
+ .tryInfoPanel {
+ font-size: 13px;
+ }
+}
+
+.tryInfoPanel .tryInfoPanelInner {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.tryInfoPanel .tryInfoPanelInner .closeButton {
+ position: absolute;
+ top: 5px;
+ right: 5px;
+}
+
+.tryInfoPanel .tryInfoPanelInner .closeButton button {
+ cursor: pointer;
+ border-style: hidden;
+ background-color: transparent;
+ padding: 0px;
+}
+
+.tryInfoPanel .tryInfoPanelInner .closeButton button img {
+ width: 18px;
+ height: 18px;
+ filter: invert(73%) sepia(21%) saturate(4699%) hue-rotate(357deg) brightness(98%) contrast(108%);
+}
+
+.tryInfoPanelWithToolbar {
+ top: 55px;
+}
+
+.tryInfoPanelWithoutToolbar {
+ top: 5px;
+}
+
+.tryInfoPanelClosed {
+ display: none;
+}
+
+.tryInfoPanel>p {
+ justify-content: center;
}
\ No newline at end of file
diff --git a/packages/editor/src/index.tsx b/packages/editor/src/index.tsx
index eed9732f..84b9f4ac 100644
--- a/packages/editor/src/index.tsx
+++ b/packages/editor/src/index.tsx
@@ -1,122 +1,175 @@
-import React, { useEffect } from 'react';
+import React, { useEffect, useRef, useState } from 'react';
import Toolbar, { ToolbarActionType } from './components/toolbar';
import Footer from './components/footer';
import { IntlProvider } from 'react-intl';
import {
- $notify,
- buildDesigner,
- PersistenceManager,
- DesignerOptionsBuilder,
- Designer,
- DesignerKeyboard,
- EditorRenderMode,
+ $notify,
+ buildDesigner,
+ PersistenceManager,
+ DesignerOptionsBuilder,
+ Designer,
+ DesignerKeyboard,
+ EditorRenderMode,
+ MindplotWebComponentInterface,
+ Mindmap,
+ MockPersistenceManager,
+ LocalStorageManager,
+ RESTPersistenceManager,
+ TextExporterFactory,
+ ImageExporterFactory,
+ Exporter,
+ Importer,
+ TextImporterFactory,
} from '@wisemapping/mindplot';
import './global-styled.css';
import I18nMsg from './classes/i18n-msg';
import Menu from './classes/menu/Menu';
+import BootstrapWidgetManager from './classes/bootstrap/BootstrapWidgetManager';
+
+require('../../../libraries/bootstrap/js/bootstrap.min');
declare global {
- // used in mindplot
- var designer: Designer;
- var accountEmail: string;
+ // used in mindplot
+ var designer: Designer;
+ var accountEmail: string;
+}
+
+declare global {
+ namespace JSX {
+ interface IntrinsicElements {
+ ['mindplot-component']: MindplotWebComponentInterface;
+ }
+ }
}
export type EditorOptions = {
- mode: EditorRenderMode,
- locale: string,
- zoom?: number,
- locked?: boolean,
- lockedMsg?: string;
- mapTitle: string;
- enableKeyboardEvents: boolean;
-}
-
-export type EditorProps = {
- mapId: string;
- options: EditorOptions;
- persistenceManager: PersistenceManager;
- onAction: (action: ToolbarActionType) => void;
- onLoad?: (designer: Designer) => void;
+ mode: EditorRenderMode;
+ locale: string;
+ zoom?: number;
+ locked?: boolean;
+ lockedMsg?: string;
+ mapTitle: string;
+ enableKeyboardEvents: boolean;
};
-const Editor = ({
- mapId,
- options,
- persistenceManager,
- onAction,
- onLoad,
-}: EditorProps) => {
+export {
+ PersistenceManager,
+ DesignerOptionsBuilder,
+ Designer,
+ DesignerKeyboard,
+ EditorRenderMode,
+ Mindmap,
+ MockPersistenceManager,
+ LocalStorageManager,
+ RESTPersistenceManager,
+ TextExporterFactory,
+ ImageExporterFactory,
+ Exporter,
+ Importer,
+ TextImporterFactory,
+};
- useEffect(() => {
- // Change page title ...
- document.title = `${options.mapTitle} | WiseMapping `;
+export type EditorProps = {
+ mapId: string;
+ options: EditorOptions;
+ persistenceManager: PersistenceManager;
+ onAction: (action: ToolbarActionType) => void;
+ onLoad?: (designer: Designer) => void;
+};
- // Load mindmap ...
- const designer = onLoadDesigner(mapId, options, persistenceManager);
- // Has extended actions been customized ...
- if (onLoad) {
- onLoad(designer);
- }
+const Editor = ({ mapId, options, persistenceManager, onAction, onLoad }: EditorProps) => {
+ const [isMobile, setIsMobile] = useState(undefined);
+ const mindplotComponent: any = useRef();
- // Load mindmap ...
- const instance = PersistenceManager.getInstance();
- const mindmap = instance.load(mapId);
- designer.loadMap(mindmap);
+ useEffect(() => {
+ // Change page title ...
+ document.title = `${options.mapTitle} | WiseMapping `;
- if (options.locked) {
- $notify(options.lockedMsg, false);
- }
- }, []);
+ // Load mindmap ...
- useEffect(() => {
- if (options.enableKeyboardEvents) {
- DesignerKeyboard.resume();
- } else {
- DesignerKeyboard.pause();
- }
- }, [options.enableKeyboardEvents]);
+ const designer = onLoadDesigner(mapId, options, persistenceManager);
+ // Has extended actions been customized ...
+ if (onLoad) {
+ onLoad(designer);
+ }
- const onLoadDesigner = (mapId: string, options: EditorOptions, persistenceManager: PersistenceManager): Designer => {
- const buildOptions = DesignerOptionsBuilder.buildOptions({
- persistenceManager,
- mode: options.mode,
- mapId: mapId,
- container: 'mindplot',
- zoom: options.zoom,
- locale: options.locale,
- });
+ mindplotComponent.current.loadMap(mapId);
- // Build designer ...
- const result = buildDesigner(buildOptions);
+ setIsMobile(checkMobile());
- // Register toolbar event ...
- if (options.mode === 'edition-owner' || options.mode === 'edition-editor' || options.mode === 'edition-viewer' || options.mode === 'showcase') {
- const menu = new Menu(designer, 'toolbar');
+ if (options.locked) {
+ $notify(options.lockedMsg, false);
+ }
+ }, []);
- // If a node has focus, focus can be move to another node using the keys.
- designer.cleanScreen = () => {
- menu.clear();
- };
- }
- return result;
+ useEffect(() => {
+ if (options.enableKeyboardEvents) {
+ DesignerKeyboard.resume();
+ } else {
+ DesignerKeyboard.pause();
+ }
+ }, [options.enableKeyboardEvents]);
- };
+ const checkMobile = () => {
+ const check =
+ /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(
+ navigator.userAgent.toLowerCase(),
+ ) ||
+ /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
+ navigator.userAgent.toLowerCase().substring(0, 4),
+ );
+ return check;
+ };
- const locale = options.locale;
- const msg = I18nMsg.loadLocaleData(locale);
- const mindplotStyle = (options.mode === 'viewonly') ? { top: 0 } : { top: 'inherit' };
- return (
-
- {(options.mode !== 'viewonly') &&
-
- }
-
-
-
-
- );
-}
+ const onLoadDesigner = (
+ mapId: string,
+ options: EditorOptions,
+ persistenceManager: PersistenceManager,
+ ): Designer => {
+ mindplotComponent.current.buildDesigner(persistenceManager, new BootstrapWidgetManager());
+
+ // Build designer ...
+ const result = mindplotComponent.current && mindplotComponent.current.getDesigner();
+
+ // Register toolbar event ...
+ if (
+ options.mode === 'edition-owner' ||
+ options.mode === 'edition-editor' ||
+ options.mode === 'edition-viewer' ||
+ options.mode === 'showcase'
+ ) {
+ const menu = new Menu(designer, 'toolbar');
+
+ // If a node has focus, focus can be move to another node using the keys.
+ designer.cleanScreen = () => {
+ menu.clear();
+ };
+ }
+ return result;
+ };
+
+ const locale = options.locale;
+ const msg = I18nMsg.loadLocaleData(locale);
+ const mindplotStyle = options.mode === 'viewonly' ? { top: 0 } : { top: 'inherit' };
+ // if the Toolbar is not hidden before the variable 'isMobile' is defined, it appears intermittently when the page loads
+ // if the Toolbar is not rendered, Menu.ts cant find buttons for create event listeners
+ // so, with this hack the Toolbar is rendered but no visible until the variable 'isMobile' is defined
+ const toolbarContainerStyle = isMobile === undefined ? { display: 'none' } : { display: 'block' };
+ return (
+
+
+ {options.mode !== 'viewonly' && !isMobile && (
+
+ )}
+
+
+
+
+
+ );
+};
export default Editor;
diff --git a/packages/editor/test/playground/index.html b/packages/editor/test/playground/index.html
index ebe99995..bde08e82 100644
--- a/packages/editor/test/playground/index.html
+++ b/packages/editor/test/playground/index.html
@@ -2,31 +2,55 @@
-
-
-
@wisemapping/editor - Playground
-
+ .section {
+ font-weight: bold;
+ }
+
+ tbody tr td:first-child {
+ width: 20%;
+ }
+
-
@wisemapping/editor - Playground
-
You will find here a set of examples that shows how you can use integrate WiseMapping Editor
-
-
- - View mode: Simple integration to load and render mindaps in read
- only mode
- - Editor mode: Example on how mindplot can be used for mindmap edition. Browser local storage is used for persistance.
-
-
+
@wisemapping/editor - Playground
+
You will find here a set of examples that shows how you can use integrate WiseMapping Editor
+
+
View Mode:Simple integration to load and render mindaps in read only mode.
+
+
Editor Mode:Example on how mindplot can be used for mindmap edition. Browser local storage is used for persistance.
+
+
Showcase Mode:When an user wants to try the editor without creating an account.
+
+
\ No newline at end of file
diff --git a/packages/editor/test/playground/map-render/css/viewmode.css b/packages/editor/test/playground/map-render/css/viewmode.css
index a4f63a31..50b0d003 100644
--- a/packages/editor/test/playground/map-render/css/viewmode.css
+++ b/packages/editor/test/playground/map-render/css/viewmode.css
@@ -1,33 +1,33 @@
/* Overwrite some styles */
div#footer {
- width: 100%;
- padding: 20px 30px;
- height: 80px;
- position: absolute;
- bottom: 0;
- background-color: #ffa800;
+ width: 100%;
+ padding: 20px 30px;
+ height: 80px;
+ position: absolute;
+ bottom: 0;
+ background-color: #ffa800;
}
div#footer-desc {
- float: left;
- height: 100px;
- padding: 0px 10px;
+ float: left;
+ height: 100px;
+ padding: 0px 10px;
}
div#footer-logo {
- float: left;
- height: 100px;
+ float: left;
+ height: 100px;
}
#floating-panel {
- bottom: 80px;
- align-items: stretch;
+ bottom: 20px;
+ align-items: stretch;
}
div#mindplot {
- top:0;
+ top: 0;
}
#toolbar {
- display: none;
-}
\ No newline at end of file
+ display: none;
+}
diff --git a/packages/editor/test/playground/map-render/html/editor.html b/packages/editor/test/playground/map-render/html/editor.html
index 5f9fa974..dd6bd63d 100644
--- a/packages/editor/test/playground/map-render/html/editor.html
+++ b/packages/editor/test/playground/map-render/html/editor.html
@@ -10,8 +10,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/packages/editor/test/playground/map-render/html/showcase.html b/packages/editor/test/playground/map-render/html/showcase.html
new file mode 100644
index 00000000..dd6bd63d
--- /dev/null
+++ b/packages/editor/test/playground/map-render/html/showcase.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
WiseMapping - Editor
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/editor/test/playground/map-render/html/viewmode.html b/packages/editor/test/playground/map-render/html/viewmode.html
index d2351e79..6a1a2341 100644
--- a/packages/editor/test/playground/map-render/html/viewmode.html
+++ b/packages/editor/test/playground/map-render/html/viewmode.html
@@ -4,35 +4,14 @@
WiseMapping - View Mode
+
-
-
diff --git a/packages/editor/test/playground/map-render/js/editor.tsx b/packages/editor/test/playground/map-render/js/editor.tsx
index 5571beac..4dc1037c 100644
--- a/packages/editor/test/playground/map-render/js/editor.tsx
+++ b/packages/editor/test/playground/map-render/js/editor.tsx
@@ -21,9 +21,8 @@ import Editor, { EditorOptions } from '../../../../src/index';
import { LocalStorageManager, Designer } from '@wisemapping/mindplot';
const initialization = (designer: Designer) => {
-
designer.addEvent('loadSuccess', () => {
- const elem = document.getElementById('mindplot');
+ const elem = document.getElementById('mindmap-comp');
if (elem) {
elem.classList.add('ready');
}
@@ -35,10 +34,10 @@ const mapId = 'welcome';
const options: EditorOptions = {
zoom: 0.8,
locked: false,
- mapTitle: "Develop WiseMapping",
+ mapTitle: 'Develop WiseMapping',
mode: 'edition-owner',
locale: 'en',
- enableKeyboardEvents: true
+ enableKeyboardEvents: true,
};
ReactDOM.render(
diff --git a/packages/editor/test/playground/map-render/js/showcase.tsx b/packages/editor/test/playground/map-render/js/showcase.tsx
new file mode 100644
index 00000000..acd5de82
--- /dev/null
+++ b/packages/editor/test/playground/map-render/js/showcase.tsx
@@ -0,0 +1,52 @@
+/*
+ * Copyright [2021] [wisemapping]
+ *
+ * Licensed under WiseMapping Public License, Version 1.0 (the "License").
+ * It is basically the Apache License, Version 2.0 (the "License") plus the
+ * "powered by wisemapping" text requirement on every single page;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the license at
+ *
+ * http://www.wisemapping.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import React from 'react';
+import ReactDOM from 'react-dom';
+import Editor, { EditorOptions } from '../../../../src/index';
+import { LocalStorageManager, Designer } from '@wisemapping/mindplot';
+
+const initialization = (designer: Designer) => {
+ designer.addEvent('loadSuccess', () => {
+ const elem = document.getElementById('mindmap-comp');
+ if (elem) {
+ elem.classList.add('ready');
+ }
+ });
+};
+
+const persistence = new LocalStorageManager('samples/{id}.wxml', false, false);
+const mapId = 'welcome';
+const options: EditorOptions = {
+ zoom: 0.8,
+ locked: false,
+ mapTitle: 'Develop WiseMapping',
+ mode: 'showcase',
+ locale: 'en',
+ enableKeyboardEvents: true,
+};
+
+ReactDOM.render(
+
console.log('action called:', action)}
+ onLoad={initialization}
+ />,
+ document.getElementById('root'),
+);
diff --git a/packages/editor/test/playground/map-render/js/viewmode.tsx b/packages/editor/test/playground/map-render/js/viewmode.tsx
index af21be3c..bd338610 100644
--- a/packages/editor/test/playground/map-render/js/viewmode.tsx
+++ b/packages/editor/test/playground/map-render/js/viewmode.tsx
@@ -5,9 +5,8 @@ import Editor, { EditorOptions } from '../../../../src/index';
import { LocalStorageManager, Designer } from '@wisemapping/mindplot';
const initialization = (designer: Designer) => {
-
designer.addEvent('loadSuccess', () => {
- const elem = document.getElementById('mindplot');
+ const elem = document.getElementById('mindmap-comp');
if (elem) {
elem.classList.add('ready');
}
@@ -25,7 +24,6 @@ const initialization = (designer: Designer) => {
option.selected = option.value === mapId;
});
}
-
});
};
@@ -36,10 +34,10 @@ const persistence = new LocalStorageManager('samples/{id}.wxml', false);
const options: EditorOptions = {
zoom: 0.8,
locked: false,
- mapTitle: "Develop WiseMapping",
+ mapTitle: 'Develop WiseMapping',
mode: 'viewonly',
locale: 'en',
- enableKeyboardEvents: true
+ enableKeyboardEvents: true,
};
ReactDOM.render(
diff --git a/packages/editor/webpack.common.js b/packages/editor/webpack.common.js
index a5adedc2..7e8f60a3 100644
--- a/packages/editor/webpack.common.js
+++ b/packages/editor/webpack.common.js
@@ -10,23 +10,23 @@ module.exports = {
},
},
stats: {
- errorDetails: true
+ errorDetails: true,
},
entry: {
- "editor.bundle": path.join(__dirname, 'src', 'index.tsx')
+ 'editor.bundle': path.join(__dirname, 'src', 'index.tsx'),
},
mode: 'development',
devtool: 'source-map',
target: 'web',
resolve: {
- extensions: ['.ts', '.tsx', '.js', '.jsx']
+ extensions: ['.ts', '.tsx', '.js', '.jsx'],
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
- exclude: '/node_modules/'
+ exclude: '/node_modules/',
},
{
test: /\.(png|jpe?g|gif|svg)$/,
@@ -36,14 +36,15 @@ module.exports = {
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: ['babel-loader'],
- }, {
+ },
+ {
test: /\.css$/i,
- loader: 'style-loader'
+ loader: 'style-loader',
},
{
test: /\.css$/,
loader: 'css-loader',
- }
+ },
],
},
};
diff --git a/packages/editor/webpack.playground.js b/packages/editor/webpack.playground.js
index 3f4acdf5..a9d89046 100644
--- a/packages/editor/webpack.playground.js
+++ b/packages/editor/webpack.playground.js
@@ -10,6 +10,7 @@ const playgroundConfig = {
entry: {
viewmode: path.resolve(__dirname, './test/playground/map-render/js/viewmode'),
editor: path.resolve(__dirname, './test/playground/map-render/js/editor'),
+ showcase: path.resolve(__dirname, './test/playground/map-render/js/showcase'),
},
output: {
path: path.resolve(__dirname, 'test/playground/dist'),
@@ -47,6 +48,11 @@ const playgroundConfig = {
filename: 'editor.html',
template: 'test/playground/map-render/html/editor.html',
}),
+ new HtmlWebpackPlugin({
+ chunks: ['showcase'],
+ filename: 'showcase.html',
+ template: 'test/playground/map-render/html/showcase.html',
+ }),
],
};
diff --git a/packages/editor/webpack.prod.js b/packages/editor/webpack.prod.js
index 4978aaf5..d7d0a84f 100644
--- a/packages/editor/webpack.prod.js
+++ b/packages/editor/webpack.prod.js
@@ -9,12 +9,10 @@ const prodConfig = {
},
externals: {
react: 'react',
- "react-dom": 'react-dom',
- "react-intl": 'react-intl',
+ 'react-dom': 'react-dom',
+ 'react-intl': 'react-intl',
},
- plugins: [
- new CleanWebpackPlugin(),
- ]
+ plugins: [new CleanWebpackPlugin()],
};
module.exports = merge(common, prodConfig);
diff --git a/packages/mindplot/.eslintrc.json b/packages/mindplot/.eslintrc.json
index d812e4f8..3fae3a03 100644
--- a/packages/mindplot/.eslintrc.json
+++ b/packages/mindplot/.eslintrc.json
@@ -22,6 +22,23 @@
"@typescript-eslint"
],
"rules": {
+ // ignore errors when a line finishes with (setting this value to 0 ignores all errors)
+ "operator-linebreak": [
+ "error", "after", {
+ "overrides": {
+ "+": "ignore",
+ "-": "ignore",
+ ":": "ignore",
+ "*": "ignore",
+ "?": "ignore",
+ ">": "ignore",
+ "||": "ignore",
+ "&&": "ignore",
+ "(": "ignore"
+ }
+ }
+ ],
+ "object-curly-newline": "off",
"no-underscore-dangle": "off",
"no-plusplus": "off",
"no-param-reassign": "off",
@@ -44,7 +61,8 @@
"ts": "never",
"tsx": "never"
}
- ]
+ ],
+ "implicit-arrow-linebreak": "off"
},
"settings": {
"import/resolver": {
@@ -59,4 +77,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/mindplot/README.md b/packages/mindplot/README.md
index 28f360cb..fa6289d1 100644
--- a/packages/mindplot/README.md
+++ b/packages/mindplot/README.md
@@ -1,7 +1,78 @@
# WiseMapping Mindplot
-WiseMapping Mindplot module is the core mind map rerendering of WiseMapping. This lighway library allows eithe edition and visualization of saves mindmaps.
+WiseMapping Mindplot module is the core mind map rerendering of WiseMapping. This lighway library allows eithe edition and visualization of saved mindmaps.
## Usage
+A WebComponent implementation for mindplot designer is available.
+This component is registered as mindplot-component in customElements API. (see https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define)
+For use it you need to import minplot.js and put in your DOM a tag. In order to create a Designer on it you need to call its buildDesigner method. Maps can be loaded through loadMap method.
+
+#### Code example
+
+```
+
+
+
+
+
+
+
+
+
+
+```
+
+Optionaly you can use your own presistence manager and widget manager.
+If you don't have special requirements you can use the defaults.
+
+```
+var persistence = new LocalStorageManager(
+ 'map.xml',
+ false, false
+);
+var widget = new MyAwesomeWidgetManager();
+// then build the designer with these params
+webComponent.buildDesigner(persistence, widget);
+```
+
+## Usage with React framework
+
+To use the web component in your JSX code, first you need to register it in the IntrinsicElements interface using provided MindplotWebComponentInterface
+
+#### TypeScript example
+```
+import { MindplotWebComponentInterface } from '@wisemapping/mindplot';
+
+declare global {
+ namespace JSX {
+ interface IntrinsicElements {
+ ['mindplot-component']: MindplotWebComponentInterface;
+ }
+ }
+}
+
+const App = ()=>{
+ const mindplotComponent: any = useRef();
+
+ useEffect(()=>{
+ mindplotComponent.current.buildDesigner();
+ mindplotComponent.current.loadMap("map_id");
+ }, [])
+
+ return (
+
+
);
+}
+```
+
+
Check out the examples located in `test/playground/map-render/js` for some hints on high level usage. You can browse them by running `yarn playground`.
diff --git a/packages/mindplot/cypress/support/commands.js b/packages/mindplot/cypress/support/commands.js
index 85cef3a6..01a233cb 100644
--- a/packages/mindplot/cypress/support/commands.js
+++ b/packages/mindplot/cypress/support/commands.js
@@ -18,7 +18,6 @@ if (Cypress.env('imageSnaphots')) {
}
// https://www.cypress.io/blog/2020/02/12/working-with-iframes-in-cypress/
-Cypress.Commands.add('getIframeBody', () => cy
- .get('iframe')
- .its('0.contentDocument.body').should('not.be.empty')
- .then(cy.wrap));
+Cypress.Commands.add('getIframeBody', () =>
+ cy.get('iframe').its('0.contentDocument.body').should('not.be.empty').then(cy.wrap),
+);
diff --git a/packages/mindplot/package.json b/packages/mindplot/package.json
index 30285421..5623bdc4 100644
--- a/packages/mindplot/package.json
+++ b/packages/mindplot/package.json
@@ -1,6 +1,6 @@
{
"name": "@wisemapping/mindplot",
- "version": "5.0.12",
+ "version": "5.0.14",
"description": "WiseMapping - Mindplot Canvas Library",
"homepage": "http://www.wisemapping.org/",
"directories": {
@@ -41,7 +41,7 @@
"xml-formatter": "^2.6.1"
},
"devDependencies": {
- "@babel/core": "^7.14.6",
+ "@babel/core": "^7.18.13",
"@babel/preset-env": "^7.14.7",
"@babel/preset-typescript": "^7.16.5",
"@babel/register": "^7.16.0",
@@ -71,7 +71,7 @@
"ts-jest": "^27.1.2",
"ts-loader": "^9.2.6",
"ts-node": "^10.4.0",
- "webpack": "^5.44.0",
+ "webpack": "^5.74.0",
"webpack-bundle-analyzer": "^4.5.0",
"webpack-cli": "^4.7.2",
"webpack-dev-server": "^3.11.2",
diff --git a/packages/mindplot/src/@types/custom.d.ts b/packages/mindplot/src/@types/custom.d.ts
index 60bd434c..091d25e2 100644
--- a/packages/mindplot/src/@types/custom.d.ts
+++ b/packages/mindplot/src/@types/custom.d.ts
@@ -1,4 +1,4 @@
declare module '*.svg' {
- const content: any;
- export default content;
+ const content: any;
+ export default content;
}
diff --git a/packages/mindplot/src/components/Command.ts b/packages/mindplot/src/components/Command.ts
index c70584ad..46bf5a05 100644
--- a/packages/mindplot/src/components/Command.ts
+++ b/packages/mindplot/src/components/Command.ts
@@ -1,20 +1,20 @@
/*
-* Copyright [2021] [wisemapping]
-*
-* Licensed under WiseMapping Public License, Version 1.0 (the "License").
-* It is basically the Apache License, Version 2.0 (the "License") plus the
-* "powered by wisemapping" text requirement on every single page;
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the license at
-*
-* http://www.wisemapping.org/license
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Copyright [2021] [wisemapping]
+ *
+ * Licensed under WiseMapping Public License, Version 1.0 (the "License").
+ * It is basically the Apache License, Version 2.0 (the "License") plus the
+ * "powered by wisemapping" text requirement on every single page;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the license at
+ *
+ * http://www.wisemapping.org/license
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
import { $defined } from '@wisemapping/core-js';
import CommandContext from './CommandContext';
diff --git a/packages/mindplot/src/components/CommandContext.ts b/packages/mindplot/src/components/CommandContext.ts
index 054f491e..1e947b94 100644
--- a/packages/mindplot/src/components/CommandContext.ts
+++ b/packages/mindplot/src/components/CommandContext.ts
@@ -47,9 +47,9 @@ class CommandContext {
if (result.length !== topicsIds.length) {
const ids = designerTopics.map((topic) => topic.getId());
- throw new Error(`Could not find topic. Result:${result
- } Filter Criteria:${topicsIds
- } Current Topics: [${ids}])`);
+ throw new Error(
+ `Could not find topic. Result:${result} Filter Criteria:${topicsIds} Current Topics: [${ids}])`,
+ );
}
return result;
}
diff --git a/packages/mindplot/src/components/ConnectionLine.ts b/packages/mindplot/src/components/ConnectionLine.ts
index 40bdf7b3..cc223f4f 100644
--- a/packages/mindplot/src/components/ConnectionLine.ts
+++ b/packages/mindplot/src/components/ConnectionLine.ts
@@ -17,9 +17,7 @@
*/
import { $assert, $defined } from '@wisemapping/core-js';
-import {
- Point, CurvedLine, PolyLine, Line,
-} from '@wisemapping/web2d';
+import { Point, CurvedLine, PolyLine, Line } from '@wisemapping/web2d';
import { TopicShape } from './model/INodeModel';
import RelationshipModel from './model/RelationshipModel';
import Topic from './Topic';
diff --git a/packages/mindplot/src/components/Designer.ts b/packages/mindplot/src/components/Designer.ts
index a17b0189..262307c8 100644
--- a/packages/mindplot/src/components/Designer.ts
+++ b/packages/mindplot/src/components/Designer.ts
@@ -56,6 +56,7 @@ import { DesignerOptions } from './DesignerOptionsBuilder';
import DragTopic from './DragTopic';
import CentralTopic from './CentralTopic';
import FeatureType from './model/FeatureType';
+import WidgetManager from './WidgetManager';
class Designer extends Events {
private _mindmap: Mindmap;
@@ -82,7 +83,6 @@ class Designer extends Events {
super();
$assert(options, 'options must be defined');
$assert(options.zoom, 'zoom must be defined');
- $assert(options.containerSize, 'size must be defined');
$assert(divElement, 'divElement must be defined');
// Set up i18n location ...
@@ -91,10 +91,10 @@ class Designer extends Events {
this._options = options;
- // Set full div elem render area ...
- if (options.containerSize) {
- divElement.css(options.containerSize);
- }
+ // Set full div elem render area.The component must fill container size
+ // container is responsible for location and size
+ divElement.css('width', '100%');
+ divElement.css('height', '100%');
// Dispatcher manager ...
const commandContext = new CommandContext(this);
@@ -138,14 +138,18 @@ class Designer extends Events {
private _registerWheelEvents(): void {
const zoomFactor = 1.02;
- document.addEventListener('wheel', (event: WheelEvent) => {
- if (event.deltaX > 0 || event.deltaY > 0) {
- this.zoomOut(zoomFactor);
- } else {
- this.zoomIn(zoomFactor);
- }
- event.preventDefault();
- }, { passive: false });
+ document.addEventListener(
+ 'wheel',
+ (event: WheelEvent) => {
+ if (event.deltaX > 0 || event.deltaY > 0) {
+ this.zoomOut(zoomFactor);
+ } else {
+ this.zoomIn(zoomFactor);
+ }
+ event.preventDefault();
+ },
+ { passive: false },
+ );
}
getActionDispatcher(): StandaloneActionDispatcher {
@@ -187,8 +191,7 @@ class Designer extends Events {
screenManager.addEvent('dblclick', (event: MouseEvent) => {
if (workspace.isWorkspaceEventsEnabled()) {
const mousePos = screenManager.getWorkspaceMousePosition(event);
- const centralTopic: CentralTopic = me.getModel()
- .getCentralTopic();
+ const centralTopic: CentralTopic = me.getModel().getCentralTopic();
const model = me._createChildModel(centralTopic, mousePos);
this._actionDispatcher.addTopics([model], [centralTopic.getId()]);
@@ -568,9 +571,9 @@ class Designer extends Events {
}
/**
- * @param {mindplot.Mindmap} mindmap
- * @throws will throw an error if mindmapModel is null or undefined
- */
+ * @param {mindplot.Mindmap} mindmap
+ * @throws will throw an error if mindmapModel is null or undefined
+ */
loadMap(mindmap: Mindmap): void {
$assert(mindmap, 'mindmapModel can not be null');
this._mindmap = mindmap;
@@ -644,11 +647,11 @@ class Designer extends Events {
}
/**
- * @private
- * @param {mindplot.model.RelationshipModel} model
- * @return {mindplot.Relationship} the relationship created to the model
- * @throws will throw an error if model is null or undefined
- */
+ * @private
+ * @param {mindplot.model.RelationshipModel} model
+ * @return {mindplot.Relationship} the relationship created to the model
+ * @throws will throw an error if model is null or undefined
+ */
private _relationshipModelToRelationship(model: RelationshipModel): Relationship {
$assert(model, 'Node model can not be null');
@@ -667,9 +670,9 @@ class Designer extends Events {
}
/**
- * @param {mindplot.model.RelationshipModel} model
- * @return {mindplot.Relationship} the relationship added to the mindmap
- */
+ * @param {mindplot.model.RelationshipModel} model
+ * @return {mindplot.Relationship} the relationship added to the mindmap
+ */
addRelationship(model: RelationshipModel): Relationship {
const mindmap = this.getMindmap();
mindmap.addRelationship(model);
@@ -677,9 +680,9 @@ class Designer extends Events {
}
/**
- * deletes the relationship from the linked topics, DesignerModel, Workspace and Mindmap
- * @param {mindplot.Relationship} rel the relationship to delete
- */
+ * deletes the relationship from the linked topics, DesignerModel, Workspace and Mindmap
+ * @param {mindplot.Relationship} rel the relationship to delete
+ */
deleteRelationship(rel: Relationship): void {
const sourceTopic = rel.getSourceTopic();
sourceTopic.deleteRelationship(rel);
@@ -704,9 +707,7 @@ class Designer extends Events {
const targetTopic = dmodel.findTopicById(targetTopicId);
$assert(
targetTopic,
- `targetTopic could not be found:${targetTopicId},${dmodel
- .getTopics()
- .map((e) => e.getId())}`,
+ `targetTopic could not be found:${targetTopicId},${dmodel.getTopics().map((e) => e.getId())}`,
);
// Build relationship line ....
@@ -797,16 +798,14 @@ class Designer extends Events {
}
changeFontFamily(font: string) {
- const topicsIds = this.getModel()
- .filterTopicsIds();
+ const topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) {
this._actionDispatcher.changeFontFamilyToTopic(topicsIds, font);
}
}
changeFontStyle(): void {
- const topicsIds = this.getModel()
- .filterTopicsIds();
+ const topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) {
this._actionDispatcher.changeFontStyleToTopic(topicsIds);
}
@@ -815,8 +814,7 @@ class Designer extends Events {
changeFontColor(color: string) {
$assert(color, 'color can not be null');
- const topicsIds = this.getModel()
- .filterTopicsIds();
+ const topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) {
this._actionDispatcher.changeFontColorToTopic(topicsIds, color);
@@ -851,9 +849,8 @@ class Designer extends Events {
}
changeTopicShape(shape: string) {
- const validateFunc = (topic: Topic) => !(
- topic.getType() === 'CentralTopic' && shape === TopicShape.LINE
- );
+ const validateFunc = (topic: Topic) =>
+ !(topic.getType() === 'CentralTopic' && shape === TopicShape.LINE);
const validateError = 'Central Topic shape can not be changed to line figure.';
const topicsIds = this.getModel().filterTopicsIds(validateFunc, validateError);
@@ -872,9 +869,13 @@ class Designer extends Events {
addIconType(iconType: string): void {
const topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) {
- this._actionDispatcher.addFeatureToTopic(topicsIds[0], TopicFeatureFactory.Icon.id as FeatureType, {
- id: iconType,
- });
+ this._actionDispatcher.addFeatureToTopic(
+ topicsIds[0],
+ TopicFeatureFactory.Icon.id as FeatureType,
+ {
+ id: iconType,
+ },
+ );
}
}
@@ -882,7 +883,8 @@ class Designer extends Events {
const model = this.getModel();
const topic = model.selectedTopic();
if (topic) {
- topic.showLinkEditor();
+ const manager = WidgetManager.getInstance();
+ manager.showEditorForLink(topic, null, null);
this.onObjectFocusEvent();
}
}
@@ -891,7 +893,8 @@ class Designer extends Events {
const model = this.getModel();
const topic = model.selectedTopic();
if (topic) {
- topic.showNoteEditor();
+ const manager = WidgetManager.getInstance();
+ manager.showEditorForNote(topic, null, null);
this.onObjectFocusEvent();
}
}
diff --git a/packages/mindplot/src/components/DesignerBuilder.ts b/packages/mindplot/src/components/DesignerBuilder.ts
index c5ce43aa..e8160a61 100644
--- a/packages/mindplot/src/components/DesignerBuilder.ts
+++ b/packages/mindplot/src/components/DesignerBuilder.ts
@@ -20,11 +20,12 @@ import $ from 'jquery';
import PersistenceManager from './PersistenceManager';
import Designer from './Designer';
import { DesignerOptions } from './DesignerOptionsBuilder';
+import WidgetManager from './WidgetManager';
let designer: Designer;
export function buildDesigner(options: DesignerOptions): Designer {
- const divContainer = $(`#${options.container}`);
+ const divContainer = options.divContainer ? $(options.divContainer) : $(`#${options.container}`);
$assert(divContainer, 'container could not be null');
// Register load events ...
@@ -34,7 +35,8 @@ export function buildDesigner(options: DesignerOptions): Designer {
const persistence = options.persistenceManager;
$assert(persistence, 'persistence must be defined');
PersistenceManager.init(persistence);
-
+ const widgetManager = options.widgetManager ? options.widgetManager : new WidgetManager();
+ WidgetManager.init(widgetManager);
return designer;
}
diff --git a/packages/mindplot/src/components/DesignerKeyboard.ts b/packages/mindplot/src/components/DesignerKeyboard.ts
index 22dba459..6ed0e917 100644
--- a/packages/mindplot/src/components/DesignerKeyboard.ts
+++ b/packages/mindplot/src/components/DesignerKeyboard.ts
@@ -33,7 +33,22 @@ class DesignerKeyboard extends Keyboard {
private static _disabled: boolean;
- private static excludeFromEditor = ['Enter', 'CapsLock', 'Escape', 'F1', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12'];
+ private static excludeFromEditor = [
+ 'Enter',
+ 'CapsLock',
+ 'Escape',
+ 'F1',
+ 'F3',
+ 'F4',
+ 'F5',
+ 'F6',
+ 'F7',
+ 'F8',
+ 'F9',
+ 'F10',
+ 'F11',
+ 'F12',
+ ];
constructor(designer: Designer) {
super();
@@ -53,9 +68,13 @@ class DesignerKeyboard extends Keyboard {
private _registerEvents(designer: Designer) {
// Try with the keyboard ..
const model = designer.getModel();
- this.addShortcut(['backspace', 'del'], () => { designer.deleteSelectedEntities(); });
+ this.addShortcut(['backspace', 'del'], () => {
+ designer.deleteSelectedEntities();
+ });
- this.addShortcut('space', () => { designer.shrinkSelectedBranch(); });
+ this.addShortcut('space', () => {
+ designer.shrinkSelectedBranch();
+ });
this.addShortcut('f2', () => {
const node = model.selectedTopic();
@@ -64,103 +83,128 @@ class DesignerKeyboard extends Keyboard {
}
});
- this.addShortcut(['insert', 'tab', 'meta+enter'], () => { designer.createChildForSelectedNode(); });
+ this.addShortcut(['insert', 'tab', 'meta+enter'], () => {
+ designer.createChildForSelectedNode();
+ });
- this.addShortcut('enter', () => { designer.createSiblingForSelectedNode(); });
+ this.addShortcut('enter', () => {
+ designer.createSiblingForSelectedNode();
+ });
- this.addShortcut(['ctrl+z', 'meta+z'], () => { designer.undo(); });
+ this.addShortcut(['ctrl+z', 'meta+z'], () => {
+ designer.undo();
+ });
- this.addShortcut(['ctrl+shift+z', 'meta+shift+z'], () => { designer.redo(); });
+ this.addShortcut(['ctrl+shift+z', 'meta+shift+z'], () => {
+ designer.redo();
+ });
- this.addShortcut(['ctrl+c', 'meta+c'], () => { designer.copyToClipboard(); });
+ this.addShortcut(['ctrl+c', 'meta+c'], () => {
+ designer.copyToClipboard();
+ });
- this.addShortcut(['ctrl+l', 'meta+l'], () => { designer.addLink(); });
+ this.addShortcut(['ctrl+l', 'meta+l'], () => {
+ designer.addLink();
+ });
- this.addShortcut(['ctrl+k', 'meta+k'], () => { designer.addNote(); });
+ this.addShortcut(['ctrl+k', 'meta+k'], () => {
+ designer.addNote();
+ });
- this.addShortcut(['ctrl+v', 'meta+v'], () => { designer.pasteClipboard(); });
+ this.addShortcut(['ctrl+v', 'meta+v'], () => {
+ designer.pasteClipboard();
+ });
- this.addShortcut(['ctrl+a', 'meta+a'], () => { designer.selectAll(); });
+ this.addShortcut(['ctrl+a', 'meta+a'], () => {
+ designer.selectAll();
+ });
- this.addShortcut(['ctrl+b', 'meta+b'], () => { designer.changeFontWeight(); });
+ this.addShortcut(['ctrl+b', 'meta+b'], () => {
+ designer.changeFontWeight();
+ });
- this.addShortcut(['ctrl+s', 'meta+s'], () => { $(document).find('#save').trigger('click'); });
+ this.addShortcut(['ctrl+s', 'meta+s'], () => {
+ $(document).find('#save').trigger('click');
+ });
- this.addShortcut(['ctrl+i', 'meta+i'], () => { designer.changeFontStyle(); });
+ this.addShortcut(['ctrl+i', 'meta+i'], () => {
+ designer.changeFontStyle();
+ });
- this.addShortcut(['ctrl+shift+a', 'meta+shift+a'], () => { designer.deselectAll(); });
+ this.addShortcut(['ctrl+shift+a', 'meta+shift+a'], () => {
+ designer.deselectAll();
+ });
- this.addShortcut(['meta+=', 'ctrl+='], () => { designer.zoomIn(); });
+ this.addShortcut(['meta+=', 'ctrl+='], () => {
+ designer.zoomIn();
+ });
- this.addShortcut(['meta+-', 'ctrl+-'], () => { designer.zoomOut(); });
+ this.addShortcut(['meta+-', 'ctrl+-'], () => {
+ designer.zoomOut();
+ });
const me = this;
- this.addShortcut(
- 'right', () => {
- const node = model.selectedTopic();
- if (node) {
- if (node.isCentralTopic()) {
- me._goToSideChild(designer, node, 'RIGHT');
- } else if (node.getPosition().x < 0) {
- me._goToParent(designer, node);
- } else if (!node.areChildrenShrunken()) {
- me._goToChild(designer, node);
- }
- } else {
- const centralTopic = model.getCentralTopic();
- me._goToNode(designer, centralTopic);
+ this.addShortcut('right', () => {
+ const node = model.selectedTopic();
+ if (node) {
+ if (node.isCentralTopic()) {
+ me._goToSideChild(designer, node, 'RIGHT');
+ } else if (node.getPosition().x < 0) {
+ me._goToParent(designer, node);
+ } else if (!node.areChildrenShrunken()) {
+ me._goToChild(designer, node);
}
- },
- );
+ } else {
+ const centralTopic = model.getCentralTopic();
+ me._goToNode(designer, centralTopic);
+ }
+ });
- this.addShortcut(
- 'left', () => {
- const node = model.selectedTopic();
- if (node) {
- if (node.isCentralTopic()) {
- me._goToSideChild(designer, node, 'LEFT');
- } else if (node.getPosition().x > 0) {
- me._goToParent(designer, node);
- } else if (!node.areChildrenShrunken()) {
- me._goToChild(designer, node);
- }
- } else {
- const centralTopic = model.getCentralTopic();
- me._goToNode(designer, centralTopic);
+ this.addShortcut('left', () => {
+ const node = model.selectedTopic();
+ if (node) {
+ if (node.isCentralTopic()) {
+ me._goToSideChild(designer, node, 'LEFT');
+ } else if (node.getPosition().x > 0) {
+ me._goToParent(designer, node);
+ } else if (!node.areChildrenShrunken()) {
+ me._goToChild(designer, node);
}
- },
- );
+ } else {
+ const centralTopic = model.getCentralTopic();
+ me._goToNode(designer, centralTopic);
+ }
+ });
- this.addShortcut(
- 'up', () => {
- const node = model.selectedTopic();
- if (node) {
- if (!node.isCentralTopic()) {
- me._goToBrother(designer, node, 'UP');
- }
- } else {
- const centralTopic = model.getCentralTopic();
- me._goToNode(designer, centralTopic);
+ this.addShortcut('up', () => {
+ const node = model.selectedTopic();
+ if (node) {
+ if (!node.isCentralTopic()) {
+ me._goToBrother(designer, node, 'UP');
}
- },
- );
- this.addShortcut(
- 'down', () => {
- const node = model.selectedTopic();
- if (node) {
- if (!node.isCentralTopic()) {
- me._goToBrother(designer, node, 'DOWN');
- }
- } else {
- const centralTopic = model.getCentralTopic();
- me._goToNode(designer, centralTopic);
+ } else {
+ const centralTopic = model.getCentralTopic();
+ me._goToNode(designer, centralTopic);
+ }
+ });
+ this.addShortcut('down', () => {
+ const node = model.selectedTopic();
+ if (node) {
+ if (!node.isCentralTopic()) {
+ me._goToBrother(designer, node, 'DOWN');
}
- },
- );
+ } else {
+ const centralTopic = model.getCentralTopic();
+ me._goToNode(designer, centralTopic);
+ }
+ });
$(document).on('keypress', (event) => {
// Needs to be ignored ?
- if (DesignerKeyboard.isDisabled() || DesignerKeyboard.excludeFromEditor.includes(event.code)) {
+ if (
+ DesignerKeyboard.isDisabled() ||
+ DesignerKeyboard.excludeFromEditor.includes(event.code)
+ ) {
return;
}
@@ -189,14 +233,14 @@ class DesignerKeyboard extends Keyboard {
const { x } = node.getPosition();
let dist = null;
for (let i = 0; i < brothers.length; i++) {
- const sameSide = (x * brothers[i].getPosition().x) >= 0;
+ const sameSide = x * brothers[i].getPosition().x >= 0;
if (brothers[i] !== node && sameSide) {
const brother = brothers[i];
const brotherY = brother.getPosition().y;
if (direction === 'DOWN' && brotherY > y) {
let distancia = y - brotherY;
if (distancia < 0) {
- distancia *= (-1);
+ distancia *= -1;
}
if (dist == null || dist > distancia) {
dist = distancia;
@@ -205,7 +249,7 @@ class DesignerKeyboard extends Keyboard {
} else if (direction === 'UP' && brotherY < y) {
let distance = y - brotherY;
if (distance < 0) {
- distance *= (-1);
+ distance *= -1;
}
if (dist == null || dist > distance) {
dist = distance;
diff --git a/packages/mindplot/src/components/DesignerModel.ts b/packages/mindplot/src/components/DesignerModel.ts
index a3298aec..3b1ac42e 100644
--- a/packages/mindplot/src/components/DesignerModel.ts
+++ b/packages/mindplot/src/components/DesignerModel.ts
@@ -117,7 +117,7 @@ class DesignerModel extends Events {
selectedTopic(): Topic | undefined {
const topics = this.filterSelectedTopics();
- return (topics.length > 0) ? topics[0] : undefined;
+ return topics.length > 0 ? topics[0] : undefined;
}
findTopicById(id: number): Topic | undefined {
diff --git a/packages/mindplot/src/components/DesignerOptionsBuilder.ts b/packages/mindplot/src/components/DesignerOptionsBuilder.ts
index a4e0ac53..41fde211 100644
--- a/packages/mindplot/src/components/DesignerOptionsBuilder.ts
+++ b/packages/mindplot/src/components/DesignerOptionsBuilder.ts
@@ -17,38 +17,29 @@
*/
import { $assert } from '@wisemapping/core-js';
import EditorRenderMode from './EditorRenderMode';
+import WidgetManager from './WidgetManager';
import PersistenceManager from './PersistenceManager';
-import SizeType from './SizeType';
export type DesignerOptions = {
- zoom: number,
- containerSize?: SizeType,
- mode: EditorRenderMode,
- mapId?: string,
- container: string,
- persistenceManager?: PersistenceManager,
- saveOnLoad?: boolean,
- locale?: string,
+ zoom: number;
+ mode: EditorRenderMode;
+ mapId?: string;
+ divContainer?: HTMLElement;
+ container: string;
+ persistenceManager?: PersistenceManager;
+ widgetManager?: WidgetManager;
+ saveOnLoad?: boolean;
+ locale?: string;
};
class OptionsBuilder {
static buildOptions(options: DesignerOptions): DesignerOptions {
$assert(options.persistenceManager, 'persistence must be defined');
- let { containerSize } = options;
- if (options.containerSize == null) {
- // If it has not been defined, use browser size ...
- containerSize = {
- width: window.screen.width,
- height: window.screen.height,
- };
- }
-
const defaultOptions: DesignerOptions = {
mode: 'edition-owner',
zoom: 0.85,
saveOnLoad: true,
- containerSize,
container: 'mindplot',
locale: 'en',
};
diff --git a/packages/mindplot/src/components/DesignerUndoManager.ts b/packages/mindplot/src/components/DesignerUndoManager.ts
index bc26b3f2..7972b15a 100644
--- a/packages/mindplot/src/components/DesignerUndoManager.ts
+++ b/packages/mindplot/src/components/DesignerUndoManager.ts
@@ -85,7 +85,7 @@ class DesignerUndoManager {
result = false;
} else if (undoLength > 0) {
const command = this._undoQueue[undoLength - 1];
- result = (this._baseId !== command.getId());
+ result = this._baseId !== command.getId();
}
return result;
}
diff --git a/packages/mindplot/src/components/DragConnector.ts b/packages/mindplot/src/components/DragConnector.ts
index a2570c71..2690f869 100644
--- a/packages/mindplot/src/components/DragConnector.ts
+++ b/packages/mindplot/src/components/DragConnector.ts
@@ -83,7 +83,7 @@ class DragConnector {
// That's why i need to divide it by two...
const txborder = tpos.x + (topic.getSize().width / 2) * Math.sign(sPos.x);
const distance = (sPos.x - txborder) * Math.sign(sPos.x);
- return distance > 0 && (distance < DragConnector.MAX_VERTICAL_CONNECTION_TOLERANCE);
+ return distance > 0 && distance < DragConnector.MAX_VERTICAL_CONNECTION_TOLERANCE;
});
// Assign a priority based on the distance:
@@ -99,19 +99,34 @@ class DragConnector {
const av = me._isVerticallyAligned(a.getSize(), aPos, sPos);
const bv = me._isVerticallyAligned(b.getSize(), bPos, sPos);
- return me._proximityWeight(av, a, sPos, currentConnection)
- - me._proximityWeight(bv, b, sPos, currentConnection);
+ return (
+ me._proximityWeight(av, a, sPos, currentConnection) -
+ me._proximityWeight(bv, b, sPos, currentConnection)
+ );
});
return topics;
}
- private _proximityWeight(isAligned: boolean, target: Topic, sPos: Point, currentConnection: Topic): number {
+ private _proximityWeight(
+ isAligned: boolean,
+ target: Topic,
+ sPos: Point,
+ currentConnection: Topic,
+ ): number {
const tPos = target.getPosition();
- return (isAligned ? 0 : 200) + Math.abs(tPos.x - sPos.x)
- + Math.abs(tPos.y - sPos.y) + (currentConnection === target ? 0 : 100);
+ return (
+ (isAligned ? 0 : 200) +
+ Math.abs(tPos.x - sPos.x) +
+ Math.abs(tPos.y - sPos.y) +
+ (currentConnection === target ? 0 : 100)
+ );
}
- private _isVerticallyAligned(targetSize: SizeType, targetPosition: Point, sourcePosition: Point): boolean {
+ private _isVerticallyAligned(
+ targetSize: SizeType,
+ targetPosition: Point,
+ sourcePosition: Point,
+ ): boolean {
return Math.abs(sourcePosition.y - targetPosition.y) < targetSize.height / 2;
}
diff --git a/packages/mindplot/src/components/DragManager.ts b/packages/mindplot/src/components/DragManager.ts
index 41607fcd..c0ce6e2b 100644
--- a/packages/mindplot/src/components/DragManager.ts
+++ b/packages/mindplot/src/components/DragManager.ts
@@ -59,14 +59,14 @@ class DragManager {
// Register mouse move listener ...
const mouseMoveListener = dragManager._buildMouseMoveListener(
- workspace, dragNode, dragManager,
+ workspace,
+ dragNode,
+ dragManager,
);
screen.addEvent('mousemove', mouseMoveListener);
// Register mouse up listeners ...
- const mouseUpListener = dragManager._buildMouseUpListener(
- workspace, dragNode, dragManager,
- );
+ const mouseUpListener = dragManager._buildMouseUpListener(workspace, dragNode, dragManager);
screen.addEvent('mouseup', mouseUpListener);
// Change cursor.
diff --git a/packages/mindplot/src/components/EditorRenderMode.ts b/packages/mindplot/src/components/EditorRenderMode.ts
index 70696093..e96c76da 100644
--- a/packages/mindplot/src/components/EditorRenderMode.ts
+++ b/packages/mindplot/src/components/EditorRenderMode.ts
@@ -1,2 +1,7 @@
-type EditorRenderMode = 'viewonly' | 'edition-owner' | 'edition-editor' | 'edition-viewer' | 'showcase';
+type EditorRenderMode =
+ | 'viewonly'
+ | 'edition-owner'
+ | 'edition-editor'
+ | 'edition-viewer'
+ | 'showcase';
export default EditorRenderMode;
diff --git a/packages/mindplot/src/components/Events.ts b/packages/mindplot/src/components/Events.ts
index 41cf1277..977bc4d8 100644
--- a/packages/mindplot/src/components/Events.ts
+++ b/packages/mindplot/src/components/Events.ts
@@ -17,7 +17,7 @@
*/
class Events {
- private _handlerByType;
+ protected _handlerByType;
constructor() {
this._handlerByType = {};
@@ -48,9 +48,9 @@ class Events {
if (!events) return this;
const args = Array.isArray(eventArgs) ? eventArgs : [eventArgs];
- events.forEach(((fn) => {
+ events.forEach((fn) => {
fn.apply(this, args);
- }));
+ });
return this;
}
diff --git a/packages/mindplot/src/components/IconGroup.ts b/packages/mindplot/src/components/IconGroup.ts
index 3f0c506d..d7c62b12 100644
--- a/packages/mindplot/src/components/IconGroup.ts
+++ b/packages/mindplot/src/components/IconGroup.ts
@@ -16,15 +16,8 @@
* limitations under the License.
*/
-import {
- $assert,
- $defined,
-} from '@wisemapping/core-js';
-import {
- Group,
- ElementClass,
- Point,
-} from '@wisemapping/web2d';
+import { $assert, $defined } from '@wisemapping/core-js';
+import { Group, ElementClass, Point } from '@wisemapping/web2d';
import IconGroupRemoveTip from './IconGroupRemoveTip';
import Icon from './Icon';
import SizeType from './SizeType';
@@ -102,7 +95,10 @@ class IconGroup {
icon.setGroup(this);
icons.push(icon);
- this._icons = icons.sort((a, b) => ORDER_BY_TYPE.get(a.getModel().getType()) - ORDER_BY_TYPE.get(b.getModel().getType()));
+ this._icons = icons.sort(
+ (a, b) =>
+ ORDER_BY_TYPE.get(a.getModel().getType()) - ORDER_BY_TYPE.get(b.getModel().getType()),
+ );
// Add all the nodes back ...
this._resize(this._icons.length);
@@ -185,10 +181,7 @@ class IconGroup {
private _positionIcon(icon: Icon, order: number) {
const iconSize = Icon.SIZE + IconGroup.ICON_PADDING * 2;
- icon.getImage().setPosition(
- iconSize * order + IconGroup.ICON_PADDING,
- IconGroup.ICON_PADDING,
- );
+ icon.getImage().setPosition(iconSize * order + IconGroup.ICON_PADDING, IconGroup.ICON_PADDING);
}
static ICON_PADDING = 5;
diff --git a/packages/mindplot/src/components/IconGroupRemoveTip.js b/packages/mindplot/src/components/IconGroupRemoveTip.js
index ebfd287f..5b07664c 100644
--- a/packages/mindplot/src/components/IconGroupRemoveTip.js
+++ b/packages/mindplot/src/components/IconGroupRemoveTip.js
@@ -4,20 +4,20 @@ import { Group, Rect, Line } from '@wisemapping/web2d';
export default class RemoveTip {
/** @lends IconGroup.RemoveTip */
/**
- * @classdesc inner class of IconGroup
- * @constructs
- * @param container
- */
+ * @classdesc inner class of IconGroup
+ * @constructs
+ * @param container
+ */
constructor(container) {
$assert(container, 'group can not be null');
this._fadeElem = container;
}
/**
- * @param topicId
- * @param icon
- * @throws will throw an error if icon is null or undefined
- */
+ * @param topicId
+ * @param icon
+ * @throws will throw an error if icon is null or undefined
+ */
show(topicId, icon) {
$assert(icon, 'icon can not be null');
@@ -64,8 +64,8 @@ export default class RemoveTip {
}
/**
- * @param delay
- */
+ * @param delay
+ */
close(delay) {
// This is not ok, trying to close the same dialog twice ?
if (this._closeTimeoutId) {
@@ -145,9 +145,9 @@ export default class RemoveTip {
}
/**
- * @param topicId
- * @param icon
- */
+ * @param topicId
+ * @param icon
+ */
decorate(topicId, icon) {
const me = this;
diff --git a/packages/mindplot/src/components/ImageIcon.js b/packages/mindplot/src/components/ImageIcon.js
index 42c9269a..81113864 100644
--- a/packages/mindplot/src/components/ImageIcon.js
+++ b/packages/mindplot/src/components/ImageIcon.js
@@ -15,9 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import {
- $assert,
-} from '@wisemapping/core-js';
+import { $assert } from '@wisemapping/core-js';
import Icon from './Icon';
import ActionDispatcher from './ActionDispatcher';
@@ -85,7 +83,7 @@ class ImageIcon extends Icon {
for (let i = 0; i < familyIcons.length && result == null; i++) {
if (familyIcons[i] === iconId) {
// Is last one?
- if (i === (familyIcons.length - 1)) {
+ if (i === familyIcons.length - 1) {
[result] = familyIcons;
} else {
result = familyIcons[i + 1];
@@ -122,116 +120,219 @@ class ImageIcon extends Icon {
}
}
-ImageIcon.prototype.ICON_FAMILIES = [{
- id: 'face',
- icons: ['face_plain', 'face_sad', 'face_crying', 'face_smile', 'face_surprise', 'face_wink'],
-},
-{
- id: 'funy',
- icons: ['funy_angel', 'funy_devilish', 'funy_glasses', 'funy_grin', 'funy_kiss', 'funy_monkey'],
-},
-{
- id: 'sport',
- icons: ['sport_basketball', 'sport_football', 'sport_golf', 'sport_raquet', 'sport_shuttlecock', 'sport_soccer', 'sport_tennis'],
-},
-{
- id: 'bulb',
- icons: ['bulb_light_on', 'bulb_light_off'],
-},
-{
- id: 'thumb',
- icons: ['thumb_thumb_up', 'thumb_thumb_down'],
-},
-{
- id: 'tick',
- icons: ['tick_tick', 'tick_cross'],
-},
-{
- id: 'onoff',
- icons: ['onoff_clock', 'onoff_clock_red', 'onoff_add', 'onoff_delete', 'onoff_status_offline', 'onoff_status_online'],
-},
-{
- id: 'money',
- icons: ['money_money', 'money_dollar', 'money_euro', 'money_pound', 'money_yen', 'money_coins', 'money_ruby'],
-},
-{
- id: 'time',
- icons: ['time_calendar', 'time_clock', 'time_hourglass'],
-},
-{
- id: 'number',
- icons: ['number_1', 'number_2', 'number_3', 'number_4', 'number_5', 'number_6', 'number_7', 'number_8', 'number_9'],
-},
-{
- id: 'chart',
- icons: ['chart_bar', 'chart_line', 'chart_curve', 'chart_pie', 'chart_organisation'],
-},
-{
- id: 'sign',
- icons: ['sign_warning', 'sign_info', 'sign_stop', 'sign_help', 'sign_cancel'],
-},
-{
- id: 'hard',
- icons: ['hard_cd', 'hard_computer', 'hard_controller', 'hard_driver_disk', 'hard_ipod', 'hard_keyboard', 'hard_mouse', 'hard_printer', 'hard_webcam', 'hard_microphone'],
-},
-{
- id: 'things',
- icons: ['things_address_book', 'things_wrench', 'things_pin', 'things_window-layout', 'things_bubbles'],
-},
-{
- id: 'soft',
- icons: ['soft_bug', 'soft_cursor', 'soft_database_table', 'soft_database', 'soft_feed', 'soft_folder_explore', 'soft_rss', 'soft_penguin'],
-},
-{
- id: 'arrow',
- icons: ['arrow_up', 'arrow_down', 'arrow_left', 'arrow_right'],
-},
-{
- id: 'arrowc',
- icons: ['arrowc_rotate_anticlockwise', 'arrowc_rotate_clockwise', 'arrowc_turn_left', 'arrowc_turn_right'],
-},
-{
- id: 'people',
- icons: ['people_group', 'people_male1', 'people_male2', 'people_female1', 'people_female2'],
-},
-{
- id: 'mail',
- icons: ['mail_envelop', 'mail_mailbox', 'mail_edit', 'mail_list'],
-},
-{
- id: 'flag',
- icons: ['flag_blue', 'flag_green', 'flag_orange', 'flag_pink', 'flag_purple', 'flag_yellow'],
-},
-{
- id: 'social',
- icons: ['social_facebook', 'social_twitter', 'social_redit', 'social_instagram', 'social_google-plus'],
-},
-{
- id: 'meetapps',
- icons: ['meetapps_slack', 'meetapps_google-meet', 'meetapps_whatapp', 'meetapps_ms-teams', 'meetapps_zoom', 'meetapps_facebook-messenger'],
-},
-{
- id: 'appsgoogle',
- icons: ['appsgoogle_youtube', 'appsgoogle_gmail', 'appsgoogle_maps'],
-},
-{
- id: 'tag',
- icons: ['tag_blue', 'tag_green', 'tag_orange', 'tag_red', 'tag_pink', 'tag_yellow'],
-},
-{
- id: 'object',
- icons: ['object_bell', 'object_clanbomber', 'object_key', 'object_pencil', 'object_phone', 'object_magnifier', 'object_clip',
- 'object_music', 'object_star', 'object_wizard', 'object_house', 'object_cake', 'object_camera', 'object_palette', 'object_rainbow',
- ],
-},
-{
- id: 'weather',
- icons: ['weather_clear-night', 'weather_clear', 'weather_few-clouds-night', 'weather_few-clouds', 'weather_overcast', 'weather_severe-alert', 'weather_showers-scattered', 'weather_showers', 'weather_snow', 'weather_storm'],
-},
-{
- id: 'task',
- icons: ['task_0', 'task_25', 'task_50', 'task_75', 'task_100'],
-},
+ImageIcon.prototype.ICON_FAMILIES = [
+ {
+ id: 'face',
+ icons: ['face_plain', 'face_sad', 'face_crying', 'face_smile', 'face_surprise', 'face_wink'],
+ },
+ {
+ id: 'funy',
+ icons: ['funy_angel', 'funy_devilish', 'funy_glasses', 'funy_grin', 'funy_kiss', 'funy_monkey'],
+ },
+ {
+ id: 'sport',
+ icons: [
+ 'sport_basketball',
+ 'sport_football',
+ 'sport_golf',
+ 'sport_raquet',
+ 'sport_shuttlecock',
+ 'sport_soccer',
+ 'sport_tennis',
+ ],
+ },
+ {
+ id: 'bulb',
+ icons: ['bulb_light_on', 'bulb_light_off'],
+ },
+ {
+ id: 'thumb',
+ icons: ['thumb_thumb_up', 'thumb_thumb_down'],
+ },
+ {
+ id: 'tick',
+ icons: ['tick_tick', 'tick_cross'],
+ },
+ {
+ id: 'onoff',
+ icons: [
+ 'onoff_clock',
+ 'onoff_clock_red',
+ 'onoff_add',
+ 'onoff_delete',
+ 'onoff_status_offline',
+ 'onoff_status_online',
+ ],
+ },
+ {
+ id: 'money',
+ icons: [
+ 'money_money',
+ 'money_dollar',
+ 'money_euro',
+ 'money_pound',
+ 'money_yen',
+ 'money_coins',
+ 'money_ruby',
+ ],
+ },
+ {
+ id: 'time',
+ icons: ['time_calendar', 'time_clock', 'time_hourglass'],
+ },
+ {
+ id: 'number',
+ icons: [
+ 'number_1',
+ 'number_2',
+ 'number_3',
+ 'number_4',
+ 'number_5',
+ 'number_6',
+ 'number_7',
+ 'number_8',
+ 'number_9',
+ ],
+ },
+ {
+ id: 'chart',
+ icons: ['chart_bar', 'chart_line', 'chart_curve', 'chart_pie', 'chart_organisation'],
+ },
+ {
+ id: 'sign',
+ icons: ['sign_warning', 'sign_info', 'sign_stop', 'sign_help', 'sign_cancel'],
+ },
+ {
+ id: 'hard',
+ icons: [
+ 'hard_cd',
+ 'hard_computer',
+ 'hard_controller',
+ 'hard_driver_disk',
+ 'hard_ipod',
+ 'hard_keyboard',
+ 'hard_mouse',
+ 'hard_printer',
+ 'hard_webcam',
+ 'hard_microphone',
+ ],
+ },
+ {
+ id: 'things',
+ icons: [
+ 'things_address_book',
+ 'things_wrench',
+ 'things_pin',
+ 'things_window-layout',
+ 'things_bubbles',
+ ],
+ },
+ {
+ id: 'soft',
+ icons: [
+ 'soft_bug',
+ 'soft_cursor',
+ 'soft_database_table',
+ 'soft_database',
+ 'soft_feed',
+ 'soft_folder_explore',
+ 'soft_rss',
+ 'soft_penguin',
+ ],
+ },
+ {
+ id: 'arrow',
+ icons: ['arrow_up', 'arrow_down', 'arrow_left', 'arrow_right'],
+ },
+ {
+ id: 'arrowc',
+ icons: [
+ 'arrowc_rotate_anticlockwise',
+ 'arrowc_rotate_clockwise',
+ 'arrowc_turn_left',
+ 'arrowc_turn_right',
+ ],
+ },
+ {
+ id: 'people',
+ icons: ['people_group', 'people_male1', 'people_male2', 'people_female1', 'people_female2'],
+ },
+ {
+ id: 'mail',
+ icons: ['mail_envelop', 'mail_mailbox', 'mail_edit', 'mail_list'],
+ },
+ {
+ id: 'flag',
+ icons: ['flag_blue', 'flag_green', 'flag_orange', 'flag_pink', 'flag_purple', 'flag_yellow'],
+ },
+ {
+ id: 'social',
+ icons: [
+ 'social_facebook',
+ 'social_twitter',
+ 'social_redit',
+ 'social_instagram',
+ 'social_google-plus',
+ ],
+ },
+ {
+ id: 'meetapps',
+ icons: [
+ 'meetapps_slack',
+ 'meetapps_google-meet',
+ 'meetapps_whatapp',
+ 'meetapps_ms-teams',
+ 'meetapps_zoom',
+ 'meetapps_facebook-messenger',
+ ],
+ },
+ {
+ id: 'appsgoogle',
+ icons: ['appsgoogle_youtube', 'appsgoogle_gmail', 'appsgoogle_maps'],
+ },
+ {
+ id: 'tag',
+ icons: ['tag_blue', 'tag_green', 'tag_orange', 'tag_red', 'tag_pink', 'tag_yellow'],
+ },
+ {
+ id: 'object',
+ icons: [
+ 'object_bell',
+ 'object_clanbomber',
+ 'object_key',
+ 'object_pencil',
+ 'object_phone',
+ 'object_magnifier',
+ 'object_clip',
+ 'object_music',
+ 'object_star',
+ 'object_wizard',
+ 'object_house',
+ 'object_cake',
+ 'object_camera',
+ 'object_palette',
+ 'object_rainbow',
+ ],
+ },
+ {
+ id: 'weather',
+ icons: [
+ 'weather_clear-night',
+ 'weather_clear',
+ 'weather_few-clouds-night',
+ 'weather_few-clouds',
+ 'weather_overcast',
+ 'weather_severe-alert',
+ 'weather_showers-scattered',
+ 'weather_showers',
+ 'weather_snow',
+ 'weather_storm',
+ ],
+ },
+ {
+ id: 'task',
+ icons: ['task_0', 'task_25', 'task_50', 'task_75', 'task_100'],
+ },
];
export default ImageIcon;
diff --git a/packages/mindplot/src/components/Keyboard.ts b/packages/mindplot/src/components/Keyboard.ts
index 2680fc62..9d581b39 100644
--- a/packages/mindplot/src/components/Keyboard.ts
+++ b/packages/mindplot/src/components/Keyboard.ts
@@ -25,12 +25,11 @@ class Keyboard {
addShortcut(shortcuts: string[] | string, callback: () => void) {
const shortcutsArray = Array.isArray(shortcuts) ? shortcuts : [shortcuts];
shortcutsArray.forEach((shortcut) => {
- $(document).bind('keydown', shortcut,
- (e) => {
- e.stopPropagation();
- e.preventDefault();
- callback();
- });
+ $(document).bind('keydown', shortcut, (e) => {
+ e.stopPropagation();
+ e.preventDefault();
+ callback();
+ });
});
}
}
diff --git a/packages/mindplot/src/components/LinkIcon.ts b/packages/mindplot/src/components/LinkIcon.ts
index c47bba87..1765f93b 100644
--- a/packages/mindplot/src/components/LinkIcon.ts
+++ b/packages/mindplot/src/components/LinkIcon.ts
@@ -16,13 +16,12 @@
* limitations under the License.
*/
import { $assert } from '@wisemapping/core-js';
-import $ from 'jquery';
import Icon from './Icon';
-import LinkIconTooltip from './widget/LinkIconTooltip';
import LinksImage from '../../assets/icons/links.svg';
import LinkModel from './model/LinkModel';
import Topic from './Topic';
import FeatureModel from './model/FeatureModel';
+import WidgetManager from './WidgetManager';
class LinkIcon extends Icon {
private _linksModel: FeatureModel;
@@ -31,8 +30,6 @@ class LinkIcon extends Icon {
private _readOnly: boolean;
- private _tip: LinkIconTooltip;
-
constructor(topic: Topic, linkModel: LinkModel, readOnly: boolean) {
$assert(topic, 'topic can not be null');
$assert(linkModel, 'linkModel can not be null');
@@ -47,30 +44,12 @@ class LinkIcon extends Icon {
private _registerEvents() {
this._image.setCursor('pointer');
- this._tip = new LinkIconTooltip(this);
- const me = this;
+ const manager = WidgetManager.getInstance();
+ manager.createTooltipForLink(this._topic, this._linksModel as LinkModel, this);
if (!this._readOnly) {
- // Add on click event to open the editor ...
- this.addEvent('click', (event) => {
- me._tip.hide();
- me._topic.showLinkEditor();
- event.stopPropagation();
- });
- // FIXME: we shouldn't have timeout of that..
- this.addEvent('mouseleave', (event) => {
- setTimeout(() => {
- if (!$('#linkPopover:hover').length) {
- me._tip.hide();
- }
- event.stopPropagation();
- }, 100);
- });
+ manager.configureEditorForLink(this._topic, this._linksModel as LinkModel, this);
}
-
- $(this.getImage().peer._native).mouseenter(() => {
- me._tip.show();
- });
}
getModel(): FeatureModel {
diff --git a/packages/mindplot/src/components/LocalStorageManager.ts b/packages/mindplot/src/components/LocalStorageManager.ts
index 62ec4b5c..b53fceb3 100644
--- a/packages/mindplot/src/components/LocalStorageManager.ts
+++ b/packages/mindplot/src/components/LocalStorageManager.ts
@@ -55,7 +55,11 @@ class LocalStorageManager extends PersistenceManager {
if (xml == null || this.forceLoad) {
$.ajax({
url: this.documentUrl.replace('{id}', mapId),
- headers: { 'Content-Type': 'text/plain', Accept: 'application/xml', 'X-CSRF-Token': this.getCSRFToken() },
+ headers: {
+ 'Content-Type': 'text/plain',
+ Accept: 'application/xml',
+ 'X-CSRF-Token': this.getCSRFToken(),
+ },
type: 'get',
dataType: 'text',
async: false,
diff --git a/packages/mindplot/src/components/MainTopic.ts b/packages/mindplot/src/components/MainTopic.ts
index 329f87da..1d9c2be1 100644
--- a/packages/mindplot/src/components/MainTopic.ts
+++ b/packages/mindplot/src/components/MainTopic.ts
@@ -26,7 +26,7 @@ import Workspace from './Workspace';
import SizeType from './SizeType';
class MainTopic extends Topic {
- private INNER_RECT_ATTRIBUTES: { stroke: string; };
+ private INNER_RECT_ATTRIBUTES: { stroke: string };
constructor(model: NodeModel, options) {
super(model, options);
diff --git a/packages/mindplot/src/components/MindplotWebComponent.ts b/packages/mindplot/src/components/MindplotWebComponent.ts
new file mode 100644
index 00000000..3d03b000
--- /dev/null
+++ b/packages/mindplot/src/components/MindplotWebComponent.ts
@@ -0,0 +1,81 @@
+import Designer from './Designer';
+import buildDesigner from './DesignerBuilder';
+import DesignerOptionsBuilder from './DesignerOptionsBuilder';
+import EditorRenderMode from './EditorRenderMode';
+import LocalStorageManager from './LocalStorageManager';
+import Mindmap from './model/Mindmap';
+import PersistenceManager from './PersistenceManager';
+import WidgetManager from './WidgetManager';
+import mindplotStyles from './styles/mindplot-styles';
+
+const defaultPersistenceManager = () => new LocalStorageManager('map.xml', false, false);
+
+export type MindplotWebComponentInterface = {
+ id: string;
+ mode: string;
+ ref: any;
+};
+/**
+ * WebComponent implementation for minplot designer.
+ * This component is registered as mindplot-component in customElements api. (see https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define)
+ * For use it you need to import minplot.js and put in your DOM a tag. In order to create a Designer on it you need to call its buildDesigner method. Maps can be loaded throught loadMap method.
+ */
+class MindplotWebComponent extends HTMLElement {
+ private _shadowRoot: ShadowRoot;
+
+ private _mindmap: Mindmap;
+
+ private _designer: Designer;
+
+ constructor() {
+ super();
+ this._shadowRoot = this.attachShadow({ mode: 'open' });
+ const mindplotStylesElement = document.createElement('style');
+ mindplotStylesElement.innerHTML = mindplotStyles;
+ this._shadowRoot.appendChild(mindplotStylesElement);
+ const wrapper = document.createElement('div');
+ wrapper.setAttribute('class', 'wise-editor');
+ wrapper.setAttribute('id', 'mindplot');
+ this._shadowRoot.appendChild(wrapper);
+ }
+
+ /**
+ * @returns the designer
+ */
+ getDesigner(): Designer {
+ return this._designer;
+ }
+
+ /**
+ * Build the designer of the component
+ * @param {PersistenceManager} persistence the persistence manager to be used. By default a LocalStorageManager is created
+ * @param {UIManager} widgetManager an UI Manager to override default Designer option.
+ */
+ buildDesigner(persistence?: PersistenceManager, widgetManager?: WidgetManager) {
+ const editorRenderMode = this.getAttribute('mode') as EditorRenderMode;
+ const persistenceManager = persistence || defaultPersistenceManager();
+ const mode = editorRenderMode || 'viewonly';
+ const options = DesignerOptionsBuilder.buildOptions({
+ persistenceManager,
+ mode,
+ widgetManager,
+ divContainer: this._shadowRoot.getElementById('mindplot'),
+ container: 'mindplot',
+ zoom: 0.85,
+ locale: 'en',
+ });
+ this._designer = buildDesigner(options);
+ }
+
+ /**
+ * Load map in designer throught persistence manager instance
+ * @param id the map id to be loaded.
+ */
+ loadMap(id: string) {
+ const instance = PersistenceManager.getInstance();
+ this._mindmap = instance.load(id);
+ this._designer.loadMap(this._mindmap);
+ }
+}
+
+export default MindplotWebComponent;
diff --git a/packages/mindplot/src/components/MultilineTextEditor.ts b/packages/mindplot/src/components/MultilineTextEditor.ts
index fd4124d1..2dfc4540 100644
--- a/packages/mindplot/src/components/MultilineTextEditor.ts
+++ b/packages/mindplot/src/components/MultilineTextEditor.ts
@@ -33,23 +33,20 @@ class MultilineTextEditor extends Events {
}
private static _buildEditor() {
- const result = $('')
- .attr('id', 'textContainer')
- .css({
- display: 'none',
- zIndex: '8',
- border: '0 none',
- });
+ const result = $('').attr('id', 'textContainer').css({
+ display: 'none',
+ zIndex: '8',
+ border: '0 none',
+ });
- const textareaElem = $('')
- .css({
- border: '1px gray dashed',
- background: 'rgba(98, 135, 167, .4)',
- outline: '0 none',
- resize: 'none',
- overflow: 'hidden',
- padding: '2px 0px 2px 4px',
- });
+ const textareaElem = $('').css({
+ border: '1px gray dashed',
+ background: 'rgba(98, 135, 167, .4)',
+ outline: '0 none',
+ resize: 'none',
+ overflow: 'hidden',
+ padding: '2px 0px 2px 4px',
+ });
result.append(textareaElem);
return result;
diff --git a/packages/mindplot/src/components/NoteIcon.ts b/packages/mindplot/src/components/NoteIcon.ts
index ebf02ee7..9d030714 100644
--- a/packages/mindplot/src/components/NoteIcon.ts
+++ b/packages/mindplot/src/components/NoteIcon.ts
@@ -16,14 +16,12 @@
* limitations under the License.
*/
import { $assert } from '@wisemapping/core-js';
-import $ from 'jquery';
-import { $msg } from './Messages';
import Icon from './Icon';
import NotesImage from '../../assets/icons/notes.svg';
import Topic from './Topic';
import NoteModel from './model/NoteModel';
import FeatureModel from './model/FeatureModel';
-import FloatingTip from './widget/FloatingTip';
+import WidgetManager from './WidgetManager';
class NoteIcon extends Icon {
private _linksModel: NoteModel;
@@ -32,8 +30,6 @@ class NoteIcon extends Icon {
private _readOnly: boolean;
- private _tip: FloatingTip;
-
constructor(topic: Topic, noteModel: NoteModel, readOnly: boolean) {
$assert(topic, 'topic can not be null');
@@ -47,43 +43,12 @@ class NoteIcon extends Icon {
private _registerEvents(): void {
this._image.setCursor('pointer');
- const me = this;
+ const manager = WidgetManager.getInstance();
+ manager.createTooltipForNote(this._topic, this._linksModel as NoteModel, this);
if (!this._readOnly) {
- // Add on click event to open the editor ...
- this.addEvent('click', (event) => {
- me._topic.showNoteEditor();
- event.stopPropagation();
- });
+ manager.configureEditorForNote(this._topic, this._linksModel as NoteModel, this);
}
-
- this._tip = new FloatingTip($(me.getImage().peer._native), {
- title: $msg('NOTE'),
- // Content can also be a function of the target element!
- content() {
- return me._buildTooltipContent();
- },
- html: true,
- placement: 'bottom',
- destroyOnExit: true,
- });
- }
-
- private _buildTooltipContent(): JQuery {
- if ($('body').find('#textPopoverNote').length === 1) {
- const text = $('body').find('#textPopoverNote');
- text.text(this._linksModel.getText());
- return text;
- }
- const result = $('').css({ padding: '5px' });
-
- const text = $('').text(this._linksModel.getText())
- .css({
- 'white-space': 'pre-wrap',
- 'word-wrap': 'break-word',
- });
- result.append(text);
- return result;
}
getModel(): FeatureModel {
diff --git a/packages/mindplot/src/components/Options.js b/packages/mindplot/src/components/Options.js
index a22f1866..9b5b8ba7 100644
--- a/packages/mindplot/src/components/Options.js
+++ b/packages/mindplot/src/components/Options.js
@@ -9,7 +9,7 @@ class Options {
const optionsKeys = Object.keys(options);
for (let index = 0; index < optionsKeys.length; index++) {
const option = optionsKeys[index];
- if (typeof (options[option]) === 'function' && (/^on[A-Z]/).test(option)) {
+ if (typeof options[option] === 'function' && /^on[A-Z]/.test(option)) {
this.addEvent(option, options[option]);
delete options[option];
}
diff --git a/packages/mindplot/src/components/PositionType.ts b/packages/mindplot/src/components/PositionType.ts
index f25ae7bb..5a37237c 100644
--- a/packages/mindplot/src/components/PositionType.ts
+++ b/packages/mindplot/src/components/PositionType.ts
@@ -15,6 +15,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-type PositionType = { x: number, y: number };
+type PositionType = { x: number; y: number };
export default PositionType;
diff --git a/packages/mindplot/src/components/Relationship.ts b/packages/mindplot/src/components/Relationship.ts
index 624b67d6..f343a015 100644
--- a/packages/mindplot/src/components/Relationship.ts
+++ b/packages/mindplot/src/components/Relationship.ts
@@ -118,10 +118,7 @@ class Relationship extends ConnectionLine {
this._line2d.setStroke(2);
const ctrlPoints = this._line2d.getControlPoints();
if (!this._line2d.isDestControlPointCustom() && !this._line2d.isSrcControlPointCustom()) {
- const defaultPoints = Shape.calculateDefaultControlPoints(
- sourcePosition,
- targetPosition,
- );
+ const defaultPoints = Shape.calculateDefaultControlPoints(sourcePosition, targetPosition);
ctrlPoints[0].x = defaultPoints[0].x;
ctrlPoints[0].y = defaultPoints[0].y;
diff --git a/packages/mindplot/src/components/RestPersistenceManager.ts b/packages/mindplot/src/components/RestPersistenceManager.ts
index 514b4e41..4089c9df 100644
--- a/packages/mindplot/src/components/RestPersistenceManager.ts
+++ b/packages/mindplot/src/components/RestPersistenceManager.ts
@@ -31,7 +31,7 @@ class RESTPersistenceManager extends PersistenceManager {
private clearTimeout;
- constructor(options: { documentUrl: string, revertUrl: string, lockUrl: string }) {
+ constructor(options: { documentUrl: string; revertUrl: string; lockUrl: string }) {
$assert(options.documentUrl, 'documentUrl can not be null');
$assert(options.revertUrl, 'revertUrl can not be null');
$assert(options.lockUrl, 'lockUrl can not be null');
@@ -60,78 +60,87 @@ class RESTPersistenceManager extends PersistenceManager {
}, 10000);
const persistence = this;
- fetch(
- `${this.documentUrl.replace('{id}', mapId)}?${query}`,
- {
- method: 'PUT',
- // Blob helps to resuce the memory on large payload.
- body: new Blob([JSON.stringify(data)], { type: 'text/plain' }),
- headers: { 'Content-Type': 'application/json; charset=utf-8', Accept: 'application/json', 'X-CSRF-Token': this.getCSRFToken() },
+ fetch(`${this.documentUrl.replace('{id}', mapId)}?${query}`, {
+ method: 'PUT',
+ // Blob helps to resuce the memory on large payload.
+ body: new Blob([JSON.stringify(data)], { type: 'text/plain' }),
+ headers: {
+ 'Content-Type': 'application/json; charset=utf-8',
+ Accept: 'application/json',
+ 'X-CSRF-Token': this.getCSRFToken(),
},
- ).then(async (response: Response) => {
- if (response.ok) {
- events.onSuccess();
- } else {
- console.log(`Saving error: ${response.status}`);
- let userMsg;
- if (response.status === 405) {
- userMsg = { severity: 'SEVERE', message: $msg('SESSION_EXPIRED'), errorType: 'session-expired' };
+ })
+ .then(async (response: Response) => {
+ if (response.ok) {
+ events.onSuccess();
} else {
- const responseText = await response.text();
- const contentType = response.headers['Content-Type'];
- if (contentType != null && contentType.indexOf('application/json') !== -1) {
- let serverMsg = null;
- try {
- serverMsg = JSON.parse(responseText);
- serverMsg = serverMsg.globalSeverity ? serverMsg : null;
- } catch (e) {
- // Message could not be decoded ...
+ console.log(`Saving error: ${response.status}`);
+ let userMsg;
+ if (response.status === 405) {
+ userMsg = {
+ severity: 'SEVERE',
+ message: $msg('SESSION_EXPIRED'),
+ errorType: 'session-expired',
+ };
+ } else {
+ const responseText = await response.text();
+ const contentType = response.headers['Content-Type'];
+ if (contentType != null && contentType.indexOf('application/json') !== -1) {
+ let serverMsg = null;
+ try {
+ serverMsg = JSON.parse(responseText);
+ serverMsg = serverMsg.globalSeverity ? serverMsg : null;
+ } catch (e) {
+ // Message could not be decoded ...
+ }
+ userMsg = persistence._buildError(serverMsg);
}
- userMsg = persistence._buildError(serverMsg);
}
+ this.triggerError(userMsg);
+ events.onError(userMsg);
}
+
+ // Clear event timeout ...
+ if (persistence.clearTimeout) {
+ clearTimeout(persistence.clearTimeout);
+ }
+ persistence.onSave = false;
+ })
+ .catch(() => {
+ const userMsg: PersistenceError = {
+ severity: 'SEVERE',
+ message: $msg('SAVE_COULD_NOT_BE_COMPLETED'),
+ errorType: 'generic',
+ };
this.triggerError(userMsg);
events.onError(userMsg);
- }
- // Clear event timeout ...
- if (persistence.clearTimeout) {
- clearTimeout(persistence.clearTimeout);
- }
- persistence.onSave = false;
- }).catch(() => {
- const userMsg: PersistenceError = {
- severity: 'SEVERE', message: $msg('SAVE_COULD_NOT_BE_COMPLETED'), errorType: 'generic',
- };
- this.triggerError(userMsg);
- events.onError(userMsg);
-
- // Clear event timeout ...
- if (persistence.clearTimeout) {
- clearTimeout(persistence.clearTimeout);
- }
- persistence.onSave = false;
- });
+ // Clear event timeout ...
+ if (persistence.clearTimeout) {
+ clearTimeout(persistence.clearTimeout);
+ }
+ persistence.onSave = false;
+ });
}
}
discardChanges(mapId: string) {
- fetch(this.revertUrl.replace('{id}', mapId),
- {
- method: 'POST',
- headers: { 'Content-Type': 'application/json; charset=utf-8', Accept: 'application/json', 'X-CSRF-Token': this.getCSRFToken() },
- });
+ fetch(this.revertUrl.replace('{id}', mapId), {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json; charset=utf-8',
+ Accept: 'application/json',
+ 'X-CSRF-Token': this.getCSRFToken(),
+ },
+ });
}
unlockMap(mapId: string): void {
- fetch(
- this.lockUrl.replace('{id}', mapId),
- {
- method: 'PUT',
- headers: { 'Content-Type': 'text/plain', 'X-CSRF-Token': this.getCSRFToken() },
- body: 'false',
- },
- );
+ fetch(this.lockUrl.replace('{id}', mapId), {
+ method: 'PUT',
+ headers: { 'Content-Type': 'text/plain', 'X-CSRF-Token': this.getCSRFToken() },
+ body: 'false',
+ });
}
private _buildError(jsonSeverResponse) {
@@ -154,7 +163,11 @@ class RESTPersistenceManager extends PersistenceManager {
url: `${this.documentUrl.replace('{id}', mapId)}/xml`,
method: 'get',
async: false,
- headers: { 'Content-Type': 'text/plain', Accept: 'application/xml', 'X-CSRF-Token': this.getCSRFToken() },
+ headers: {
+ 'Content-Type': 'text/plain',
+ Accept: 'application/xml',
+ 'X-CSRF-Token': this.getCSRFToken(),
+ },
success(responseText) {
xml = responseText;
},
diff --git a/packages/mindplot/src/components/ScreenManager.ts b/packages/mindplot/src/components/ScreenManager.ts
index 88e80d0c..ba790d03 100644
--- a/packages/mindplot/src/components/ScreenManager.ts
+++ b/packages/mindplot/src/components/ScreenManager.ts
@@ -15,13 +15,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+import $ from 'jquery';
import { $assert } from '@wisemapping/core-js';
import { Point } from '@wisemapping/web2d';
+// https://stackoverflow.com/questions/60357083/does-not-use-passive-listeners-to-improve-scrolling-performance-lighthouse-repo
+// https://web.dev/uses-passive-event-listeners/?utm_source=lighthouse&utm_medium=lr
+// eslint-disable-next-line import/extensions
+import registerTouchHandler from '../../../../libraries/jquery.touchevent';
+
+registerTouchHandler($);
class ScreenManager {
private _divContainer: JQuery;
- private _padding: { x: number; y: number; };
+ private _padding: { x: number; y: number };
private _clickEvents;
@@ -34,20 +41,23 @@ class ScreenManager {
// Ignore default click event propagation. Prevent 'click' event on drag.
this._clickEvents = [];
- this._divContainer.bind('click', (event: { stopPropagation: () => void; }) => {
+ this._divContainer.bind('click', (event: { stopPropagation: () => void }) => {
event.stopPropagation();
});
- this._divContainer.bind('dblclick', (event: { stopPropagation: () => void; preventDefault: () => void; }) => {
- event.stopPropagation();
- event.preventDefault();
- });
+ this._divContainer.bind(
+ 'dblclick',
+ (event: { stopPropagation: () => void; preventDefault: () => void }) => {
+ event.stopPropagation();
+ event.preventDefault();
+ },
+ );
}
/**
* Return the current visibile area in the browser.
*/
- getVisibleBrowserSize(): { width: number, height: number } {
+ getVisibleBrowserSize(): { width: number; height: number } {
return {
width: window.innerWidth,
height: window.innerHeight - Number.parseInt(this._divContainer.css('top'), 10),
@@ -60,8 +70,11 @@ class ScreenManager {
}
addEvent(eventType: string, listener) {
- if (eventType === 'click') this._clickEvents.push(listener);
- else this._divContainer.bind(eventType, listener);
+ if (eventType === 'click') {
+ this._clickEvents.push(listener);
+ } else {
+ this._divContainer.bind(eventType, listener);
+ }
}
removeEvent(event: string, listener) {
@@ -82,10 +95,31 @@ class ScreenManager {
}
}
- getWorkspaceMousePosition(event: MouseEvent) {
- // Retrieve current mouse position.
- let x = event.clientX;
- let y = event.clientY;
+ private mouseEvents = ['mousedown', 'mouseup', 'mousemove', 'dblclick', 'click'];
+
+ private tocuchEvents = ['touchstart', 'touchend', 'touchmove'];
+
+ // the received type was changed from MouseEvent to "any", because we must support touch events
+ getWorkspaceMousePosition(event: any) {
+ let x;
+ let y;
+
+ if (this.mouseEvents.includes(event.type)) {
+ // Retrieve current mouse position.
+ x = event.clientX;
+ y = event.clientY;
+ } else if (this.tocuchEvents.includes(event.type)) {
+ x = event.touches[0].clientX;
+ y = event.touches[0].clientY;
+ }
+
+ // if value is zero assert throws error
+ if (x !== 0) {
+ $assert(x, `clientX can not be null, eventType= ${event.type}`);
+ }
+ if (y !== 0) {
+ $assert(y, `clientY can not be null, eventType= ${event.type}`);
+ }
// Adjust the deviation of the container positioning ...
const containerPosition = this.getContainer().position();
diff --git a/packages/mindplot/src/components/Topic.ts b/packages/mindplot/src/components/Topic.ts
index 7e56bd3e..6ee96713 100644
--- a/packages/mindplot/src/components/Topic.ts
+++ b/packages/mindplot/src/components/Topic.ts
@@ -18,9 +18,7 @@
import $ from 'jquery';
import { $assert, $defined } from '@wisemapping/core-js';
-import {
- Rect, Image, Line, Text, Group, ElementClass, Point,
-} from '@wisemapping/web2d';
+import { Rect, Image, Line, Text, Group, ElementClass, Point } from '@wisemapping/web2d';
import NodeGraph from './NodeGraph';
import TopicConfig from './TopicConfig';
@@ -30,9 +28,7 @@ import ConnectionLine from './ConnectionLine';
import IconGroup from './IconGroup';
import EventBus from './layout/EventBus';
import ShirinkConnector from './ShrinkConnector';
-import NoteEditor from './widget/NoteEditor';
import ActionDispatcher from './ActionDispatcher';
-import LinkEditor from './widget/LinkEditor';
import TopicEventDispatcher, { TopicEvent } from './TopicEventDispatcher';
import { TopicShape } from './model/INodeModel';
@@ -177,10 +173,7 @@ abstract class Topic extends NodeGraph {
getInnerShape(): ElementClass {
if (!$defined(this._innerShape)) {
// Create inner box.
- this._innerShape = this._buildShape(
- TopicConfig.INNER_RECT_ATTRIBUTES,
- this.getShapeType(),
- );
+ this._innerShape = this._buildShape(TopicConfig.INNER_RECT_ATTRIBUTES, this.getShapeType());
// Update bgcolor ...
const bgColor = this.getBackgroundColor();
@@ -246,7 +239,9 @@ abstract class Topic extends NodeGraph {
result.setStroke(1, 'solid', stokeColor);
};
- result.getSize = function getSize() { return this.size; };
+ result.getSize = function getSize() {
+ return this.size;
+ };
result.setPosition = () => {
// Overwrite behaviour ...
@@ -279,10 +274,7 @@ abstract class Topic extends NodeGraph {
getOuterShape(): ElementClass {
if (!$defined(this._outerShape)) {
- const rect = this._buildShape(
- TopicConfig.OUTER_SHAPE_ATTRIBUTES,
- TopicShape.ROUNDED_RECT,
- );
+ const rect = this._buildShape(TopicConfig.OUTER_SHAPE_ATTRIBUTES, TopicShape.ROUNDED_RECT);
rect.setPosition(-2, -3);
rect.setOpacity(0);
this._outerShape = rect;
@@ -738,79 +730,65 @@ abstract class Topic extends NodeGraph {
});
}
- showNoteEditor(): void {
- const topicId = this.getId();
+ getNoteValue(): string {
const model = this.getModel();
- const editorModel = {
- getValue(): string {
- const notes = model.findFeatureByType(TopicFeatureFactory.Note.id);
- let result;
- if (notes.length > 0) {
- result = (notes[0] as NoteModel).getText();
- }
+ const notes = model.findFeatureByType(TopicFeatureFactory.Note.id);
+ let result;
+ if (notes.length > 0) {
+ result = (notes[0] as NoteModel).getText();
+ }
- return result;
- },
-
- setValue(value: string) {
- const dispatcher = ActionDispatcher.getInstance();
- const notes = model.findFeatureByType(TopicFeatureFactory.Note.id);
- if (!$defined(value)) {
- const featureId = notes[0].getId();
- dispatcher.removeFeatureFromTopic(topicId, featureId);
- } else if (notes.length > 0) {
- dispatcher.changeFeatureToTopic(topicId, notes[0].getId(), {
- text: value,
- });
- } else {
- dispatcher.addFeatureToTopic(topicId, TopicFeatureFactory.Note.id, {
- text: value,
- });
- }
- },
- };
- const editor = new NoteEditor(editorModel);
- this.closeEditors();
- editor.show();
+ return result;
}
- /** opens a dialog where the user can enter or edit an existing link associated with this topic */
- showLinkEditor() {
+ setNoteValue(value: string) {
const topicId = this.getId();
const model = this.getModel();
- const editorModel = {
- getValue(): string {
- // @param {mindplot.model.LinkModel[]} links
- const links = model.findFeatureByType(TopicFeatureFactory.Link.id);
- let result;
- if (links.length > 0) {
- result = (links[0] as LinkModel).getUrl();
- }
+ const dispatcher = ActionDispatcher.getInstance();
+ const notes = model.findFeatureByType(TopicFeatureFactory.Note.id);
+ if (!$defined(value)) {
+ const featureId = notes[0].getId();
+ dispatcher.removeFeatureFromTopic(topicId, featureId);
+ } else if (notes.length > 0) {
+ dispatcher.changeFeatureToTopic(topicId, notes[0].getId(), {
+ text: value,
+ });
+ } else {
+ dispatcher.addFeatureToTopic(topicId, TopicFeatureFactory.Note.id, {
+ text: value,
+ });
+ }
+ }
- return result;
- },
+ getLinkValue(): string {
+ const model = this.getModel();
+ // @param {mindplot.model.LinkModel[]} links
+ const links = model.findFeatureByType(TopicFeatureFactory.Link.id);
+ let result;
+ if (links.length > 0) {
+ result = (links[0] as LinkModel).getUrl();
+ }
- setValue(value: string) {
- const dispatcher = ActionDispatcher.getInstance();
- const links = model.findFeatureByType(TopicFeatureFactory.Link.id);
- if (!$defined(value)) {
- const featureId = links[0].getId();
- dispatcher.removeFeatureFromTopic(topicId, featureId);
- } else if (links.length > 0) {
- dispatcher.changeFeatureToTopic(topicId, links[0].getId(), {
- url: value,
- });
- } else {
- dispatcher.addFeatureToTopic(topicId, TopicFeatureFactory.Link.id, {
- url: value,
- });
- }
- },
- };
+ return result;
+ }
- this.closeEditors();
- const editor = new LinkEditor(editorModel);
- editor.show();
+ setLinkValue(value: string) {
+ const topicId = this.getId();
+ const model = this.getModel();
+ const dispatcher = ActionDispatcher.getInstance();
+ const links = model.findFeatureByType(TopicFeatureFactory.Link.id);
+ if (!$defined(value)) {
+ const featureId = links[0].getId();
+ dispatcher.removeFeatureFromTopic(topicId, featureId);
+ } else if (links.length > 0) {
+ dispatcher.changeFeatureToTopic(topicId, links[0].getId(), {
+ url: value,
+ });
+ } else {
+ dispatcher.addFeatureToTopic(topicId, TopicFeatureFactory.Link.id, {
+ url: value,
+ });
+ }
}
closeEditors() {
@@ -822,8 +800,8 @@ abstract class Topic extends NodeGraph {
}
/**
- * Point: references the center of the rect shape.!!!
- */
+ * Point: references the center of the rect shape.!!!
+ */
setPosition(point: Point) {
$assert(point, 'position can not be null');
// allowed param reassign to avoid risks of existing code relying in this side-effect
@@ -953,9 +931,9 @@ abstract class Topic extends NodeGraph {
const targetParent = targetTopic.getModel().getParent();
const sourceParent = sourceTopic.getModel().getParent();
relationship.setVisibility(
- value
- && (targetParent == null || !targetParent.areChildrenShrunken())
- && (sourceParent == null || !sourceParent.areChildrenShrunken()),
+ value &&
+ (targetParent == null || !targetParent.areChildrenShrunken()) &&
+ (sourceParent == null || !sourceParent.areChildrenShrunken()),
fade,
);
});
@@ -1027,7 +1005,8 @@ abstract class Topic extends NodeGraph {
};
const oldSize = this.getSize();
- const hasSizeChanged = oldSize.width !== roundedSize.width || oldSize.height !== roundedSize.height;
+ const hasSizeChanged =
+ oldSize.width !== roundedSize.width || oldSize.height !== roundedSize.height;
if (hasSizeChanged || force) {
NodeGraph.prototype.setSize.call(this, roundedSize);
@@ -1259,10 +1238,13 @@ abstract class Topic extends NodeGraph {
const iconGroupWith = iconGroup.getSize().width;
const topicWith = iconGroupWith + 2 * textIconSpacing + textWidth + padding * 2;
- this.setSize({
- width: topicWith,
- height: topicHeight,
- }, false);
+ this.setSize(
+ {
+ width: topicWith,
+ height: topicHeight,
+ },
+ false,
+ );
// Adjust all topic elements positions ...
const yPosition = Math.round((topicHeight - textHeight) / 2);
diff --git a/packages/mindplot/src/components/TopicEventDispatcher.ts b/packages/mindplot/src/components/TopicEventDispatcher.ts
index 7ed00151..2ba2c826 100644
--- a/packages/mindplot/src/components/TopicEventDispatcher.ts
+++ b/packages/mindplot/src/components/TopicEventDispatcher.ts
@@ -65,9 +65,9 @@ class TopicEventDispatcher extends Events {
// Open the new editor ...
const model = topic.getModel();
if (
- model.getShapeType() !== TopicShape.IMAGE
- && !this._readOnly
- && eventType === TopicEvent.EDIT
+ model.getShapeType() !== TopicShape.IMAGE &&
+ !this._readOnly &&
+ eventType === TopicEvent.EDIT
) {
this._multilineEditor.show(topic, options ? options.text : null);
this._activeEditor = this._multilineEditor;
diff --git a/packages/mindplot/src/components/TopicFeature.js b/packages/mindplot/src/components/TopicFeature.js
index 96c3e3a6..cee5f151 100644
--- a/packages/mindplot/src/components/TopicFeature.js
+++ b/packages/mindplot/src/components/TopicFeature.js
@@ -44,12 +44,17 @@ const TopicFeatureFactory = {
$assert(topic, 'topic can not be null');
$assert(model, 'model can not be null');
- const { icon: Icon } = TopicFeatureFactory._featuresMetadataById
- .filter((elem) => elem.id === model.getType())[0];
+ const { icon: Icon } = TopicFeatureFactory._featuresMetadataById.filter(
+ (elem) => elem.id === model.getType(),
+ )[0];
return new Icon(topic, model, readOnly);
},
};
-TopicFeatureFactory._featuresMetadataById = [TopicFeatureFactory.Icon, TopicFeatureFactory.Link, TopicFeatureFactory.Note];
+TopicFeatureFactory._featuresMetadataById = [
+ TopicFeatureFactory.Icon,
+ TopicFeatureFactory.Link,
+ TopicFeatureFactory.Note,
+];
export default TopicFeatureFactory;
diff --git a/packages/mindplot/src/components/TopicStyle.js b/packages/mindplot/src/components/TopicStyle.js
index 22bb7d5f..37cb4beb 100644
--- a/packages/mindplot/src/components/TopicStyle.js
+++ b/packages/mindplot/src/components/TopicStyle.js
@@ -15,16 +15,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import {
- $assert,
- $defined,
-} from '@wisemapping/core-js';
-import {
- $msg,
-} from './Messages';
-import {
- TopicShape,
-} from './model/INodeModel';
+import { $assert, $defined } from '@wisemapping/core-js';
+import { $msg } from './Messages';
+import { TopicShape } from './model/INodeModel';
class TopicStyle {
static _getStyles(topic) {
@@ -49,9 +42,7 @@ class TopicStyle {
}
static defaultText(topic) {
- const {
- msgKey,
- } = this._getStyles(topic);
+ const { msgKey } = this._getStyles(topic);
return $msg(msgKey);
}
diff --git a/packages/mindplot/src/components/WidgetManager.ts b/packages/mindplot/src/components/WidgetManager.ts
new file mode 100644
index 00000000..983240b2
--- /dev/null
+++ b/packages/mindplot/src/components/WidgetManager.ts
@@ -0,0 +1,107 @@
+import $ from 'jquery';
+import LinkIcon from './LinkIcon';
+import LinkModel from './model/LinkModel';
+import NoteModel from './model/NoteModel';
+import NoteIcon from './NoteIcon';
+import Topic from './Topic';
+import { $msg } from './Messages';
+
+class WidgetManager {
+ // eslint-disable-next-line no-use-before-define
+ static _instance: WidgetManager;
+
+ static init = (instance: WidgetManager) => {
+ this._instance = instance;
+ };
+
+ static getInstance(): WidgetManager {
+ return this._instance;
+ }
+
+ private createTooltip(mindmapElement, title, linkModel: LinkModel, noteModel: NoteModel) {
+ const webcomponentShadowRoot = $($('#mindmap-comp')[0].shadowRoot);
+ let tooltip = webcomponentShadowRoot.find('#mindplot-svg-tooltip');
+ if (!tooltip.length) {
+ webcomponentShadowRoot.append(
+ '',
+ );
+ tooltip = webcomponentShadowRoot.find('#mindplot-svg-tooltip');
+
+ tooltip.on('mouseover', (evt) => {
+ tooltip.css({ display: 'block' });
+ evt.stopPropagation();
+ });
+ tooltip.on('mouseleave', (evt) => {
+ tooltip.css({ display: 'none' });
+ evt.stopPropagation();
+ });
+ }
+
+ mindmapElement.addEvent('mouseenter', (evt) => {
+ webcomponentShadowRoot.find('#mindplot-svg-tooltip-title').html(title);
+ if (linkModel) {
+ webcomponentShadowRoot
+ .find('#mindplot-svg-tooltip-content-link')
+ .attr('href', linkModel.getUrl());
+ webcomponentShadowRoot.find('#mindplot-svg-tooltip-content-link').html(linkModel.getUrl());
+ webcomponentShadowRoot.find('#mindplot-svg-tooltip-content-link').css({ display: 'block' });
+ webcomponentShadowRoot.find('#mindplot-svg-tooltip-content-note').css({ display: 'none' });
+ }
+ if (noteModel) {
+ webcomponentShadowRoot.find('#mindplot-svg-tooltip-content-note').html(noteModel.getText());
+ webcomponentShadowRoot.find('#mindplot-svg-tooltip-content-note').css({ display: 'block' });
+ webcomponentShadowRoot.find('#mindplot-svg-tooltip-content-link').css({ display: 'none' });
+ }
+ const targetRect = evt.target.getBoundingClientRect();
+ const newX = Math.max(0, targetRect.left + targetRect.width / 2 - tooltip.width() / 2);
+ const newY = Math.max(0, targetRect.bottom + 10);
+ tooltip.css({ top: newY, left: newX, position: 'absolute' });
+ tooltip.css({ display: 'block' });
+ evt.stopPropagation();
+ });
+ mindmapElement.addEvent('mouseleave', (evt) => {
+ tooltip.css({ display: 'none' });
+ evt.stopPropagation();
+ });
+ }
+
+ createTooltipForLink(topic: Topic, linkModel: LinkModel, linkIcon: LinkIcon) {
+ this.createTooltip(linkIcon.getImage().peer, $msg('LINK'), linkModel, undefined);
+ }
+
+ createTooltipForNote(topic: Topic, noteModel: NoteModel, noteIcon: NoteIcon) {
+ this.createTooltip(noteIcon.getImage().peer, $msg('NOTE'), undefined, noteModel);
+ }
+
+ configureEditorForLink(topic: Topic, linkModel: LinkModel, linkIcon: LinkIcon) {
+ const htmlImage = linkIcon.getImage().peer;
+ htmlImage.addEvent('click', (evt) => {
+ this.showEditorForLink(topic, linkModel, linkIcon);
+ evt.stopPropagation();
+ });
+ }
+
+ configureEditorForNote(topic: Topic, noteModel: NoteModel, noteIcon: NoteIcon) {
+ const htmlImage = noteIcon.getImage().peer;
+ htmlImage.addEvent('click', (evt) => {
+ this.showEditorForNote(topic, noteModel, noteIcon);
+ evt.stopPropagation();
+ });
+ }
+
+ showEditorForLink(topic: Topic, linkModel: LinkModel, linkIcon: LinkIcon) {
+ console.log('Show link editor not yet implemented');
+ }
+
+ showEditorForNote(topic: Topic, noteModel: NoteModel, noteIcon: NoteIcon) {
+ console.log('Show note editor not yet implemented');
+ }
+}
+
+export default WidgetManager;
diff --git a/packages/mindplot/src/components/Workspace.ts b/packages/mindplot/src/components/Workspace.ts
index b764c1f9..3d1d3c31 100644
--- a/packages/mindplot/src/components/Workspace.ts
+++ b/packages/mindplot/src/components/Workspace.ts
@@ -130,11 +130,19 @@ class Workspace {
setZoom(zoom: number, center = false): void {
this._zoom = zoom;
const workspace = this._workspace;
- const newVisibleAreaSize = this._screenManager.getVisibleBrowserSize();
- // Update coord scale...
- const newCoordWidth = zoom * this._containerSize.width;
- const newCoordHeight = zoom * this._containerSize.height;
+ const divContainer = this._screenManager.getContainer();
+ const containerWidth = divContainer.width();
+ const containerHeight = divContainer.height();
+ const newVisibleAreaSize = { width: containerWidth, height: containerHeight };
+
+ // - svg must fit container size
+ const svgElement = divContainer.find('svg');
+ svgElement.attr('width', containerWidth);
+ svgElement.attr('height', containerHeight);
+ // - svg viewPort must fit container size with zoom adjustment
+ const newCoordWidth = containerWidth * this._zoom;
+ const newCoordHeight = containerHeight * this._zoom;
let coordOriginX: number;
let coordOriginY: number;
@@ -215,18 +223,23 @@ class Workspace {
// Change cursor.
window.document.body.style.cursor = 'move';
- mouseMoveEvent.preventDefault();
+ // If I dont ignore touchmove events, browser console shows a lot of errors:
+ // Unable to preventDefault inside passive event listener invocation.
+ if (mouseMoveEvent.type !== 'touchmove') mouseMoveEvent.preventDefault();
// Fire drag event ...
screenManager.fireEvent('update');
wasDragged = true;
};
screenManager.addEvent('mousemove', workspace._mouseMoveListener);
+ screenManager.addEvent('touchmove', workspace._mouseMoveListener);
// Register mouse up listeners ...
workspace._mouseUpListener = () => {
screenManager.removeEvent('mousemove', workspace._mouseMoveListener);
screenManager.removeEvent('mouseup', workspace._mouseUpListener);
+ screenManager.removeEvent('touchmove', workspace._mouseUpListener);
+ screenManager.removeEvent('touchend', workspace._mouseMoveListener);
workspace._mouseUpListener = null;
workspace._mouseMoveListener = null;
window.document.body.style.cursor = 'default';
@@ -241,12 +254,14 @@ class Workspace {
}
};
screenManager.addEvent('mouseup', workspace._mouseUpListener);
+ screenManager.addEvent('touchend', workspace._mouseUpListener);
}
} else {
workspace._mouseUpListener();
}
};
screenManager.addEvent('mousedown', mouseDownListener);
+ screenManager.addEvent('touchstart', mouseDownListener);
}
}
diff --git a/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts b/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts
index 539edf5a..8aea8d7b 100644
--- a/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts
+++ b/packages/mindplot/src/components/commands/AddFeatureToTopicCommand.ts
@@ -31,15 +31,15 @@ class AddFeatureToTopicCommand extends Command {
private _featureModel: FeatureModel;
/*
- * @classdesc This command class handles do/undo of adding features to topics, e.g. an
- * icon or a note. For a reference of existing features, refer to {@link mindplot.TopicFeature}
- * @constructs
- * @param {String} topicId the id of the topic
- * @param {String} featureType the id of the feature type to add, e.g. "icon"
- * @param {Object} attributes the attribute(s) of the respective feature model
- * @extends mindplot.Command
- * @see mindplot.model.FeatureModel and subclasses
- */
+ * @classdesc This command class handles do/undo of adding features to topics, e.g. an
+ * icon or a note. For a reference of existing features, refer to {@link mindplot.TopicFeature}
+ * @constructs
+ * @param {String} topicId the id of the topic
+ * @param {String} featureType the id of the feature type to add, e.g. "icon"
+ * @param {Object} attributes the attribute(s) of the respective feature model
+ * @extends mindplot.Command
+ * @see mindplot.model.FeatureModel and subclasses
+ */
constructor(topicId: number, featureType: FeatureType, attributes: object) {
$assert($defined(topicId), 'topicId can not be null');
$assert(featureType, 'featureType can not be null');
diff --git a/packages/mindplot/src/components/commands/AddRelationshipCommand.ts b/packages/mindplot/src/components/commands/AddRelationshipCommand.ts
index b32273d7..696b93a3 100644
--- a/packages/mindplot/src/components/commands/AddRelationshipCommand.ts
+++ b/packages/mindplot/src/components/commands/AddRelationshipCommand.ts
@@ -24,8 +24,8 @@ class AddRelationshipCommand extends Command {
private _model: RelationshipModel;
/**
- * @classdesc This command class handles do/undo of adding a relationship to a topic.
- */
+ * @classdesc This command class handles do/undo of adding a relationship to a topic.
+ */
constructor(model: RelationshipModel) {
$assert(model, 'Relationship model can not be null');
diff --git a/packages/mindplot/src/components/commands/AddTopicCommand.ts b/packages/mindplot/src/components/commands/AddTopicCommand.ts
index 2208a495..0e405a09 100644
--- a/packages/mindplot/src/components/commands/AddTopicCommand.ts
+++ b/packages/mindplot/src/components/commands/AddTopicCommand.ts
@@ -31,7 +31,10 @@ class AddTopicCommand extends Command {
*/
constructor(models: NodeModel[], parentTopicsId: number[]) {
$assert(models, 'models can not be null');
- $assert(parentTopicsId == null || parentTopicsId.length === models.length, 'parents and models must have the same size');
+ $assert(
+ parentTopicsId == null || parentTopicsId.length === models.length,
+ 'parents and models must have the same size',
+ );
super();
this._models = models;
diff --git a/packages/mindplot/src/components/commands/DeleteCommand.ts b/packages/mindplot/src/components/commands/DeleteCommand.ts
index c8019603..76ef0723 100644
--- a/packages/mindplot/src/components/commands/DeleteCommand.ts
+++ b/packages/mindplot/src/components/commands/DeleteCommand.ts
@@ -46,14 +46,14 @@ class DeleteCommand extends Command {
}
/**
- * Overrides abstract parent method
- */
+ * Overrides abstract parent method
+ */
execute(commandContext: CommandContext) {
// If a parent has been selected for deletion, the children must be excluded from the delete ...
const topics = this._filterChildren(this._topicIds, commandContext);
if (topics.length > 0) {
- topics.forEach(((topic) => {
+ topics.forEach((topic) => {
// In case that it's editing text node, force close without update ...
topic.closeEditors();
@@ -81,22 +81,22 @@ class DeleteCommand extends Command {
// Finally, delete the topic from the workspace...
commandContext.deleteTopic(topic);
- }));
+ });
}
const rels = commandContext.findRelationships(this._relIds);
if (rels.length > 0) {
- rels.forEach(((rel) => {
+ rels.forEach((rel) => {
this._deletedRelModel.push(rel.getModel().clone());
commandContext.deleteRelationship(rel);
- }));
+ });
}
}
/**
- * Overrides abstract parent method
- * @see {@link mindplot.Command.undoExecute}
- */
+ * Overrides abstract parent method
+ * @see {@link mindplot.Command.undoExecute}
+ */
undoExecute(commandContext: CommandContext) {
// Add all the topics ...
this._deletedTopicModels.forEach((model) => {
@@ -104,7 +104,7 @@ class DeleteCommand extends Command {
});
// Do they need to be connected ?
- this._deletedTopicModels.forEach(((topicModel, index) => {
+ this._deletedTopicModels.forEach((topicModel, index) => {
const topics = commandContext.findTopics([topicModel.getId()]);
const parentId = this._parentTopicIds[index];
@@ -112,7 +112,7 @@ class DeleteCommand extends Command {
const parentTopics = commandContext.findTopics([parentId]);
commandContext.connect(topics[0], parentTopics[0]);
}
- }));
+ });
// Add rebuild relationships ...
this._deletedRelModel.forEach((model) => {
@@ -165,11 +165,10 @@ class DeleteCommand extends Command {
result = result.concat(topic.getRelationships());
const children = topic.getChildren();
- const rels: (Relationship[])[] = children
- .map(((t: Topic) => this._collectInDepthRelationships(t)));
+ const rels: Relationship[][] = children.map((t: Topic) => this._collectInDepthRelationships(t));
// flatten and concact
- result = result.concat(([].concat(...rels)));
+ result = result.concat([].concat(...rels));
if (result.length > 0) {
// Filter for unique ...
diff --git a/packages/mindplot/src/components/commands/DragTopicCommand.ts b/packages/mindplot/src/components/commands/DragTopicCommand.ts
index d8cf4d38..8c97c250 100644
--- a/packages/mindplot/src/components/commands/DragTopicCommand.ts
+++ b/packages/mindplot/src/components/commands/DragTopicCommand.ts
@@ -31,9 +31,9 @@ class DragTopicCommand extends Command {
private _order: number;
/**
- * @classdesc This command class handles do/undo of dragging a topic to a new position.
- * @constructs
- */
+ * @classdesc This command class handles do/undo of dragging a topic to a new position.
+ * @constructs
+ */
constructor(topicId: number, position: Point, order: number, parentTopic: Topic) {
$assert(topicId, 'topicId must be defined');
super();
diff --git a/packages/mindplot/src/components/commands/GenericFunctionCommand.ts b/packages/mindplot/src/components/commands/GenericFunctionCommand.ts
index ab198609..17751212 100644
--- a/packages/mindplot/src/components/commands/GenericFunctionCommand.ts
+++ b/packages/mindplot/src/components/commands/GenericFunctionCommand.ts
@@ -29,11 +29,15 @@ class GenericFunctionCommand extends Command {
private _commandFunc: (topic: Topic, value: CommandTypes) => CommandTypes;
- private _oldValues: (CommandTypes)[];
+ private _oldValues: CommandTypes[];
private _applied: boolean;
- constructor(commandFunc: (topic: Topic, value: CommandTypes) => CommandTypes, topicsIds: number[], value: CommandTypes = undefined) {
+ constructor(
+ commandFunc: (topic: Topic, value: CommandTypes) => CommandTypes,
+ topicsIds: number[],
+ value: CommandTypes = undefined,
+ ) {
$assert(commandFunc, 'commandFunc must be defined');
$assert($defined(topicsIds), 'topicsIds must be defined');
@@ -45,8 +49,8 @@ class GenericFunctionCommand extends Command {
}
/**
- * Overrides abstract parent method
- */
+ * Overrides abstract parent method
+ */
execute(commandContext: CommandContext) {
if (!this._applied) {
const topics = commandContext.findTopics(this._topicsIds);
@@ -68,9 +72,9 @@ class GenericFunctionCommand extends Command {
if (this._applied) {
const topics = commandContext.findTopics(this._topicsIds);
- topics.forEach(((topic: Topic, index: number) => {
+ topics.forEach((topic: Topic, index: number) => {
this._commandFunc(topic, this._oldValues[index]);
- }));
+ });
this._applied = false;
this._oldValues = [];
diff --git a/packages/mindplot/src/components/commands/MoveControlPointCommand.ts b/packages/mindplot/src/components/commands/MoveControlPointCommand.ts
index 2856c6e5..33523cf9 100644
--- a/packages/mindplot/src/components/commands/MoveControlPointCommand.ts
+++ b/packages/mindplot/src/components/commands/MoveControlPointCommand.ts
@@ -42,8 +42,8 @@ class MoveControlPointCommand extends Command {
* @classdesc This command handles do/undo of changing the control points of a relationship
* arrow. These are the two points that appear when the relationship is on focus. They
* influence how the arrow is drawn (not the source or the destination topic nor the arrow
- * direction)
- */
+ * direction)
+ */
constructor(ctrlPointController: ControlPoint, point: number) {
$assert(ctrlPointController, 'line can not be null');
$assert($defined(point), 'point can not be null');
diff --git a/packages/mindplot/src/components/commands/RemoveFeatureFromTopicCommand.ts b/packages/mindplot/src/components/commands/RemoveFeatureFromTopicCommand.ts
index 8a791cc8..234c24b9 100644
--- a/packages/mindplot/src/components/commands/RemoveFeatureFromTopicCommand.ts
+++ b/packages/mindplot/src/components/commands/RemoveFeatureFromTopicCommand.ts
@@ -28,9 +28,9 @@ class RemoveFeatureFromTopicCommand extends Command {
private _oldFeature: FeatureModel;
/**
- * @classdesc This command handles do/undo of removing a feature from a topic, e.g. an icon or
- * a note. For a reference of existing features, refer to {@link mindplot.TopicFeature}.
- */
+ * @classdesc This command handles do/undo of removing a feature from a topic, e.g. an icon or
+ * a note. For a reference of existing features, refer to {@link mindplot.TopicFeature}.
+ */
constructor(topicId: number, featureId: number) {
$assert($defined(topicId), 'topicId can not be null');
$assert(featureId, 'iconModel can not be null');
@@ -42,8 +42,8 @@ class RemoveFeatureFromTopicCommand extends Command {
}
/**
- * Overrides abstract parent method
- */
+ * Overrides abstract parent method
+ */
execute(commandContext: CommandContext): void {
const topic = commandContext.findTopics([this._topicId])[0];
const feature = topic.findFeatureById(this._featureId);
@@ -52,9 +52,9 @@ class RemoveFeatureFromTopicCommand extends Command {
}
/**
- * Overrides abstract parent method
- * @see {@link mindplot.Command.undoExecute}
- */
+ * Overrides abstract parent method
+ * @see {@link mindplot.Command.undoExecute}
+ */
undoExecute(commandContext: CommandContext) {
const topic = commandContext.findTopics([this._topicId])[0];
topic.addFeature(this._oldFeature);
diff --git a/packages/mindplot/src/components/export/BinaryImageExporter.ts b/packages/mindplot/src/components/export/BinaryImageExporter.ts
index c7805ad3..b573a40b 100644
--- a/packages/mindplot/src/components/export/BinaryImageExporter.ts
+++ b/packages/mindplot/src/components/export/BinaryImageExporter.ts
@@ -29,7 +29,13 @@ class BinaryImageExporter extends Exporter {
private adjustToFit: boolean;
- constructor(svgElement: Element, width: number, height: number, imgFormat: 'image/png' | 'image/jpeg', adjustToFit = true) {
+ constructor(
+ svgElement: Element,
+ width: number,
+ height: number,
+ imgFormat: 'image/png' | 'image/jpeg',
+ adjustToFit = true,
+ ) {
super(imgFormat.split('/')[0], imgFormat);
this.svgElement = svgElement;
this.adjustToFit = adjustToFit;
@@ -55,12 +61,12 @@ class BinaryImageExporter extends Exporter {
if (this.adjustToFit) {
// Size must match with SVG image size ...
const size = svgExporter.getImgSize();
- width = (size.width * dpr);
- height = (size.height * dpr);
+ width = size.width * dpr;
+ height = size.height * dpr;
} else {
// Use screensize as size ..
- width = (this.width * dpr);
- height = (this.height * dpr);
+ width = this.width * dpr;
+ height = this.height * dpr;
}
console.log(`Export size: ${width}:${height}`);
diff --git a/packages/mindplot/src/components/export/FreemindExporter.ts b/packages/mindplot/src/components/export/FreemindExporter.ts
index d52f1d95..954a0301 100644
--- a/packages/mindplot/src/components/export/FreemindExporter.ts
+++ b/packages/mindplot/src/components/export/FreemindExporter.ts
@@ -77,7 +77,11 @@ class FreemindExporter extends Exporter {
if (centralTopic) {
this.nodeMap.set(centralTopic.getId(), main);
- this.setTopicPropertiesToNode({ freemindNode: main, mindmapTopic: centralTopic, isRoot: true });
+ this.setTopicPropertiesToNode({
+ freemindNode: main,
+ mindmapTopic: centralTopic,
+ isRoot: true,
+ });
this.addNodeFromTopic(centralTopic, main);
}
@@ -91,9 +95,13 @@ class FreemindExporter extends Exporter {
arrowlink.setDestination(destNode.getId());
- if (relationship.getEndArrow() && relationship.getEndArrow()) arrowlink.setEndarrow('Default');
+ if (relationship.getEndArrow() && relationship.getEndArrow()) {
+ arrowlink.setEndarrow('Default');
+ }
- if (relationship.getStartArrow() && relationship.getStartArrow()) arrowlink.setStartarrow('Default');
+ if (relationship.getStartArrow() && relationship.getStartArrow()) {
+ arrowlink.setStartarrow('Default');
+ }
srcNode.setArrowlinkOrCloudOrEdge(arrowlink);
}
@@ -110,7 +118,15 @@ class FreemindExporter extends Exporter {
return Promise.resolve(formatXml);
}
- private setTopicPropertiesToNode({ freemindNode, mindmapTopic, isRoot }: { freemindNode: FreeminNode; mindmapTopic: INodeModel; isRoot: boolean; }): void {
+ private setTopicPropertiesToNode({
+ freemindNode,
+ mindmapTopic,
+ isRoot,
+ }: {
+ freemindNode: FreeminNode;
+ mindmapTopic: INodeModel;
+ isRoot: boolean;
+ }): void {
freemindNode.setId(`ID_${mindmapTopic.getId()}`);
const text = mindmapTopic.getText();
@@ -154,7 +170,11 @@ class FreemindExporter extends Exporter {
const newNode: FreeminNode = this.objectFactory.createNode();
this.nodeMap.set(currentTopic.getId(), newNode);
- this.setTopicPropertiesToNode({ freemindNode: newNode, mindmapTopic: currentTopic, isRoot: false });
+ this.setTopicPropertiesToNode({
+ freemindNode: newNode,
+ mindmapTopic: currentTopic,
+ isRoot: false,
+ });
destNode.setArrowlinkOrCloudOrEdge(newNode);
@@ -163,7 +183,7 @@ class FreemindExporter extends Exporter {
const position: PositionNodeType = currentTopic.getPosition();
if (position) {
const xPos: number = position.x;
- newNode.setPosition((xPos < 0 ? 'left' : 'right'));
+ newNode.setPosition(xPos < 0 ? 'left' : 'right');
} else newNode.setPosition('left');
});
}
@@ -193,28 +213,27 @@ class FreemindExporter extends Exporter {
private addFeautreNode(freemindNode: FreeminNode, mindmapTopic: INodeModel): void {
const branches: Array = mindmapTopic.getFeatures();
- branches
- .forEach((feature: FeatureModel) => {
- const type = feature.getType();
+ branches.forEach((feature: FeatureModel) => {
+ const type = feature.getType();
- if (type === 'link') {
- const link = feature as LinkModel;
- freemindNode.setLink(link.getUrl());
- }
+ if (type === 'link') {
+ const link = feature as LinkModel;
+ freemindNode.setLink(link.getUrl());
+ }
- if (type === 'note') {
- const note = feature as NoteModel;
- const richcontent: Richcontent = this.buildRichcontent(note.getText(), 'NOTE');
- freemindNode.setArrowlinkOrCloudOrEdge(richcontent);
- }
+ if (type === 'note') {
+ const note = feature as NoteModel;
+ const richcontent: Richcontent = this.buildRichcontent(note.getText(), 'NOTE');
+ freemindNode.setArrowlinkOrCloudOrEdge(richcontent);
+ }
- if (type === 'icon') {
- const icon = feature as IconModel;
- const freemindIcon: Icon = new Icon();
- freemindIcon.setBuiltin(icon.getIconType());
- freemindNode.setArrowlinkOrCloudOrEdge(freemindIcon);
- }
- });
+ if (type === 'icon') {
+ const icon = feature as IconModel;
+ const freemindIcon: Icon = new Icon();
+ freemindIcon.setBuiltin(icon.getIconType());
+ freemindNode.setArrowlinkOrCloudOrEdge(freemindIcon);
+ }
+ });
}
private addEdgeNode(freemainMap: FreeminNode, mindmapTopic: INodeModel): void {
@@ -286,7 +305,9 @@ class FreemindExporter extends Exporter {
const g: string = rgb[1].trim();
const b: string = rgb[2].trim();
- result = `#${r.length === 1 ? `0${r}` : r}${g.length === 1 ? `0${g}` : g}${b.length === 1 ? `0${b}` : b}`;
+ result = `#${r.length === 1 ? `0${r}` : r}${g.length === 1 ? `0${g}` : g}${
+ b.length === 1 ? `0${b}` : b
+ }`;
}
}
return result;
diff --git a/packages/mindplot/src/components/export/ImageExporterFactory.ts b/packages/mindplot/src/components/export/ImageExporterFactory.ts
index 54111437..7d95d61a 100644
--- a/packages/mindplot/src/components/export/ImageExporterFactory.ts
+++ b/packages/mindplot/src/components/export/ImageExporterFactory.ts
@@ -21,7 +21,13 @@ import SVGExporter from './SVGExporter';
type imageType = 'svg' | 'png' | 'jpg';
class ImageExpoterFactory {
- static create(type: imageType, svgElement: Element, width: number, height: number, adjustToFit = true): Exporter {
+ static create(
+ type: imageType,
+ svgElement: Element,
+ width: number,
+ height: number,
+ adjustToFit = true,
+ ): Exporter {
let result: Exporter;
switch (type) {
case 'svg': {
diff --git a/packages/mindplot/src/components/export/SVGExporter.ts b/packages/mindplot/src/components/export/SVGExporter.ts
index 8613f9da..f72de06c 100644
--- a/packages/mindplot/src/components/export/SVGExporter.ts
+++ b/packages/mindplot/src/components/export/SVGExporter.ts
@@ -39,8 +39,7 @@ class SVGExporter extends Exporter {
export(): Promise {
// Replace all images for in-line images ...
- let svgTxt: string = new XMLSerializer()
- .serializeToString(this.svgElement);
+ let svgTxt: string = new XMLSerializer().serializeToString(this.svgElement);
svgTxt = SVGExporter.prolog + svgTxt;
// Are namespace declared ?. Otherwise, force the declaration ...
@@ -59,39 +58,37 @@ class SVGExporter extends Exporter {
svgDoc = this._normalizeToFit(svgDoc);
}
- const result = new XMLSerializer()
- .serializeToString(svgDoc);
+ const result = new XMLSerializer().serializeToString(svgDoc);
return Promise.resolve(result);
}
- private _calcualteDimensions(): { minX: number, maxX: number, minY: number, maxY: number } {
+ private _calcualteDimensions(): { minX: number; maxX: number; minY: number; maxY: number } {
// Collect all group elements ...
- const rectElems = Array.from(document.querySelectorAll('g>rect'));
- const translates: SizeType[] = rectElems
- .map((rect: Element) => {
- const g = rect.parentElement;
- const transformStr = g.getAttribute('transform');
+ const rectElems = Array.from(this.svgElement.querySelectorAll('g>rect'));
+ const translates: SizeType[] = rectElems.map((rect: Element) => {
+ const g = rect.parentElement;
+ const transformStr = g.getAttribute('transform');
- // Looking to parse translate(220.00000,279.00000) scale(1.00000,1.00000)
- const match = transformStr.match(SVGExporter.regexpTranslate);
- let result: SizeType = { width: 0, height: 0 };
- if (match !== null) {
- result = { width: Number.parseFloat(match[1]), height: Number.parseFloat(match[2]) };
+ // Looking to parse translate(220.00000,279.00000) scale(1.00000,1.00000)
+ const match = transformStr.match(SVGExporter.regexpTranslate);
+ let result: SizeType = { width: 0, height: 0 };
+ if (match !== null) {
+ result = { width: Number.parseFloat(match[1]), height: Number.parseFloat(match[2]) };
- // Add rect size ...
- if (result.width > 0) {
- const rectWidth = Number.parseFloat(rect.getAttribute('width'));
- result.width += rectWidth;
- }
-
- if (result.height > 0) {
- const rectHeight = Number.parseFloat(rect.getAttribute('height'));
- result.height += rectHeight;
- }
+ // Add rect size ...
+ if (result.width > 0) {
+ const rectWidth = Number.parseFloat(rect.getAttribute('width'));
+ result.width += rectWidth;
}
- return result;
- });
+
+ if (result.height > 0) {
+ const rectHeight = Number.parseFloat(rect.getAttribute('height'));
+ result.height += rectHeight;
+ }
+ }
+ return result;
+ });
// Find max and mins ...
const widths = translates.map((t) => t.width).sort((a, b) => a - b);
@@ -104,14 +101,15 @@ class SVGExporter extends Exporter {
const maxY = heights[heights.length - 1] + SVGExporter.padding;
return {
- minX, maxX, minY, maxY,
+ minX,
+ maxX,
+ minY,
+ maxY,
};
}
getImgSize(): SizeType {
- const {
- minX, maxX, minY, maxY,
- } = this._calcualteDimensions();
+ const { minX, maxX, minY, maxY } = this._calcualteDimensions();
let width: number = maxX + Math.abs(minX);
let height: number = maxY + Math.abs(minY);
@@ -127,9 +125,7 @@ class SVGExporter extends Exporter {
}
private _normalizeToFit(document: Document): Document {
- const {
- minX, maxX, minY, maxY,
- } = this._calcualteDimensions();
+ const { minX, maxX, minY, maxY } = this._calcualteDimensions();
const svgElem = document.firstChild as Element;
const width = maxX + Math.abs(minX);
diff --git a/packages/mindplot/src/components/export/TxtExporter.ts b/packages/mindplot/src/components/export/TxtExporter.ts
index 3356faec..5f02d63b 100644
--- a/packages/mindplot/src/components/export/TxtExporter.ts
+++ b/packages/mindplot/src/components/export/TxtExporter.ts
@@ -39,22 +39,23 @@ class TxtExporter extends Exporter {
private traverseBranch(indent: string, prefix: string, branches: INodeModel[]) {
let result = '';
- branches
- .forEach((node, index) => {
- result = `${result}${indent}${prefix}${index + 1} ${node.getText() !== undefined ? node.getText() : ''}`;
- node.getFeatures().forEach((f) => {
- const type = f.getType();
- if (type === 'link') {
- result = `${result}\n ${indent} [Link: ${(f as LinkModel).getUrl()}]`;
- }
- if (type === 'note') {
- result = `${result}\n${indent} [Note: ${(f as NoteModel).getText()}]`;
- }
- });
- result = `${result}\n`;
-
- result += this.traverseBranch(`\t${indent}`, `${prefix}${index + 1}.`, node.getChildren());
+ branches.forEach((node, index) => {
+ result = `${result}${indent}${prefix}${index + 1} ${
+ node.getText() !== undefined ? node.getText() : ''
+ }`;
+ node.getFeatures().forEach((f) => {
+ const type = f.getType();
+ if (type === 'link') {
+ result = `${result}\n ${indent} [Link: ${(f as LinkModel).getUrl()}]`;
+ }
+ if (type === 'note') {
+ result = `${result}\n${indent} [Note: ${(f as NoteModel).getText()}]`;
+ }
});
+ result = `${result}\n`;
+
+ result += this.traverseBranch(`\t${indent}`, `${prefix}${index + 1}.`, node.getChildren());
+ });
return result;
}
}
diff --git a/packages/mindplot/src/components/export/WiseXMLExporter.ts b/packages/mindplot/src/components/export/WiseXMLExporter.ts
index 1298a520..8b62010a 100644
--- a/packages/mindplot/src/components/export/WiseXMLExporter.ts
+++ b/packages/mindplot/src/components/export/WiseXMLExporter.ts
@@ -29,12 +29,10 @@ class WiseXMLExporter extends Exporter {
export(): Promise {
const { mindmap } = this;
- const serializer = XMLSerializerFactory
- .createInstanceFromMindmap(mindmap);
+ const serializer = XMLSerializerFactory.createInstanceFromMindmap(mindmap);
const document: Document = serializer.toXML(mindmap);
- const xmlStr: string = new XMLSerializer()
- .serializeToString(document);
+ const xmlStr: string = new XMLSerializer().serializeToString(document);
return Promise.resolve(xmlStr);
}
}
diff --git a/packages/mindplot/src/components/export/freemind/Arrowlink.ts b/packages/mindplot/src/components/export/freemind/Arrowlink.ts
index 69bf4874..1acae11c 100644
--- a/packages/mindplot/src/components/export/freemind/Arrowlink.ts
+++ b/packages/mindplot/src/components/export/freemind/Arrowlink.ts
@@ -75,11 +75,21 @@ export default class Arrowlink {
arrowlinkElem.setAttribute('DESTINATION', this.DESTINATION);
arrowlinkElem.setAttribute('STARTARROW', this.STARTARROW);
- if (this.COLOR) arrowlinkElem.setAttribute('COLOR', this.COLOR);
- if (this.ENDINCLINATION) arrowlinkElem.setAttribute('ENDINCLINATION', this.ENDINCLINATION);
- if (this.ENDARROW) arrowlinkElem.setAttribute('ENDARROW', this.ENDARROW);
- if (this.ID) arrowlinkElem.setAttribute('ID', this.ID);
- if (this.STARTINCLINATION) arrowlinkElem.setAttribute('STARTINCLINATION', this.STARTINCLINATION);
+ if (this.COLOR) {
+ arrowlinkElem.setAttribute('COLOR', this.COLOR);
+ }
+ if (this.ENDINCLINATION) {
+ arrowlinkElem.setAttribute('ENDINCLINATION', this.ENDINCLINATION);
+ }
+ if (this.ENDARROW) {
+ arrowlinkElem.setAttribute('ENDARROW', this.ENDARROW);
+ }
+ if (this.ID) {
+ arrowlinkElem.setAttribute('ID', this.ID);
+ }
+ if (this.STARTINCLINATION) {
+ arrowlinkElem.setAttribute('STARTINCLINATION', this.STARTINCLINATION);
+ }
return arrowlinkElem;
}
diff --git a/packages/mindplot/src/components/export/freemind/Map.ts b/packages/mindplot/src/components/export/freemind/Map.ts
index a64a0be0..0f7c21d5 100644
--- a/packages/mindplot/src/components/export/freemind/Map.ts
+++ b/packages/mindplot/src/components/export/freemind/Map.ts
@@ -65,10 +65,7 @@ export default class Freemap {
// Verify that the version attribute exists
console.log(rootElem.getAttribute('version'));
- $assert(
- rootElem.getAttribute('version') !== null,
- 'Freemind version not found',
- );
+ $assert(rootElem.getAttribute('version') !== null, 'Freemind version not found');
// Start the loading process...
const version = rootElem.getAttribute('version') || '1.0.1';
@@ -81,9 +78,7 @@ export default class Freemap {
const childNodes = Array.from(mainTopicElement.childNodes);
const childsNodes = childNodes
- .filter(
- (child: ChildNode) => child.nodeType === 1 && (child as Element).tagName === 'node',
- )
+ .filter((child: ChildNode) => child.nodeType === 1 && (child as Element).tagName === 'node')
.map((c) => c as Element);
childsNodes.forEach((child: Element) => {
@@ -98,14 +93,16 @@ export default class Freemap {
let element: Element;
if (child.nodeType === 1) {
if (
- (child as Element).tagName === 'node'
- || (child as Element).tagName === 'richcontent'
- || (child as Element).tagName === 'font'
- || (child as Element).tagName === 'edge'
- || (child as Element).tagName === 'arrowlink'
- || (child as Element).tagName === 'clud'
- || (child as Element).tagName === 'icon'
- ) element = child as Element;
+ (child as Element).tagName === 'node' ||
+ (child as Element).tagName === 'richcontent' ||
+ (child as Element).tagName === 'font' ||
+ (child as Element).tagName === 'edge' ||
+ (child as Element).tagName === 'arrowlink' ||
+ (child as Element).tagName === 'clud' ||
+ (child as Element).tagName === 'icon'
+ ) {
+ element = child as Element;
+ }
}
return element;
@@ -132,44 +129,78 @@ export default class Freemap {
if (nodeElem.tagName === 'font') {
node = new Font();
- if (nodeElem.getAttribute('NAME')) node.setName(nodeElem.getAttribute('NAME'));
- if (nodeElem.getAttribute('BOLD')) node.setBold(nodeElem.getAttribute('BOLD'));
- if (nodeElem.getAttribute('ITALIC')) node.setItalic(nodeElem.getAttribute('ITALIC'));
- if (nodeElem.getAttribute('SIZE')) node.setSize(nodeElem.getAttribute('SIZE'));
+ if (nodeElem.getAttribute('NAME')) {
+ node.setName(nodeElem.getAttribute('NAME'));
+ }
+ if (nodeElem.getAttribute('BOLD')) {
+ node.setBold(nodeElem.getAttribute('BOLD'));
+ }
+ if (nodeElem.getAttribute('ITALIC')) {
+ node.setItalic(nodeElem.getAttribute('ITALIC'));
+ }
+ if (nodeElem.getAttribute('SIZE')) {
+ node.setSize(nodeElem.getAttribute('SIZE'));
+ }
}
if (nodeElem.tagName === 'edge') {
node = new Edge();
- if (nodeElem.getAttribute('COLOR')) node.setColor(nodeElem.getAttribute('COLOR'));
- if (nodeElem.getAttribute('STYLE')) node.setStyle(nodeElem.getAttribute('STYLE'));
- if (nodeElem.getAttribute('WIDTH')) node.setWidth(nodeElem.getAttribute('WIDTH'));
+ if (nodeElem.getAttribute('COLOR')) {
+ node.setColor(nodeElem.getAttribute('COLOR'));
+ }
+ if (nodeElem.getAttribute('STYLE')) {
+ node.setStyle(nodeElem.getAttribute('STYLE'));
+ }
+ if (nodeElem.getAttribute('WIDTH')) {
+ node.setWidth(nodeElem.getAttribute('WIDTH'));
+ }
}
if (nodeElem.tagName === 'arrowlink') {
node = new Arrowlink();
- if (nodeElem.getAttribute('COLOR')) node.setColor(nodeElem.getAttribute('COLOR'));
- if (nodeElem.getAttribute('DESTINATION')) node.setDestination(nodeElem.getAttribute('DESTINATION'));
- if (nodeElem.getAttribute('ENDARROW')) node.setEndarrow(nodeElem.getAttribute('ENDARROW'));
- if (nodeElem.getAttribute('ENDINCLINATION')) node.setEndinclination(nodeElem.getAttribute('ENDINCLINATION'));
- if (nodeElem.getAttribute('ID')) node.setId(nodeElem.getAttribute('ID'));
- if (nodeElem.getAttribute('STARTARROW')) node.setStartarrow(nodeElem.getAttribute('STARTARROW'));
- if (nodeElem.getAttribute('STARTINCLINATION')) node.setStartinclination(nodeElem.getAttribute('STARTINCLINATION'));
+ if (nodeElem.getAttribute('COLOR')) {
+ node.setColor(nodeElem.getAttribute('COLOR'));
+ }
+ if (nodeElem.getAttribute('DESTINATION')) {
+ node.setDestination(nodeElem.getAttribute('DESTINATION'));
+ }
+ if (nodeElem.getAttribute('ENDARROW')) {
+ node.setEndarrow(nodeElem.getAttribute('ENDARROW'));
+ }
+ if (nodeElem.getAttribute('ENDINCLINATION')) {
+ node.setEndinclination(nodeElem.getAttribute('ENDINCLINATION'));
+ }
+ if (nodeElem.getAttribute('ID')) {
+ node.setId(nodeElem.getAttribute('ID'));
+ }
+ if (nodeElem.getAttribute('STARTARROW')) {
+ node.setStartarrow(nodeElem.getAttribute('STARTARROW'));
+ }
+ if (nodeElem.getAttribute('STARTINCLINATION')) {
+ node.setStartinclination(nodeElem.getAttribute('STARTINCLINATION'));
+ }
}
if (nodeElem.tagName === 'cloud') {
node = new Cloud();
- if (nodeElem.getAttribute('COLOR')) node.setColor(nodeElem.getAttribute('COLOR'));
+ if (nodeElem.getAttribute('COLOR')) {
+ node.setColor(nodeElem.getAttribute('COLOR'));
+ }
}
if (nodeElem.tagName === 'icon') {
node = new Icon();
- if (nodeElem.getAttribute('BUILTIN')) node.setBuiltin(nodeElem.getAttribute('BUILTIN'));
+ if (nodeElem.getAttribute('BUILTIN')) {
+ node.setBuiltin(nodeElem.getAttribute('BUILTIN'));
+ }
}
if (nodeElem.tagName === 'richcontent') {
node = new Richcontent();
- if (nodeElem.getAttribute('TYPE')) node.setType(nodeElem.getAttribute('TYPE'));
+ if (nodeElem.getAttribute('TYPE')) {
+ node.setType(nodeElem.getAttribute('TYPE'));
+ }
if (nodeElem.firstChild && nodeElem.getElementsByTagName('html')) {
const content = nodeElem.getElementsByTagName('html');
const html = content[0] ? content[0].outerHTML : '';
diff --git a/packages/mindplot/src/components/export/freemind/Node.ts b/packages/mindplot/src/components/export/freemind/Node.ts
index 68e7e295..bc889e1d 100644
--- a/packages/mindplot/src/components/export/freemind/Node.ts
+++ b/packages/mindplot/src/components/export/freemind/Node.ts
@@ -7,7 +7,9 @@ import Icon from './Icon';
import Richcontent from './Richcontent';
class Node {
- protected arrowlinkOrCloudOrEdge: Array;
+ protected arrowlinkOrCloudOrEdge: Array<
+ Arrowlink | Cloud | Edge | Font | Hook | Icon | Richcontent | this
+ >;
protected BACKGROUND_COLOR: string;
@@ -43,9 +45,14 @@ class Node {
private centralTopic: boolean;
- getArrowlinkOrCloudOrEdge(): Array {
+ getArrowlinkOrCloudOrEdge(): Array<
+ /* eslint-disable */
+ Arrowlink | Cloud | Edge | Font | Hook | Icon | Richcontent | Node
+ > {
if (!this.arrowlinkOrCloudOrEdge) {
- this.arrowlinkOrCloudOrEdge = new Array();
+ this.arrowlinkOrCloudOrEdge = new Array<
+ Arrowlink | Cloud | Edge | Font | Hook | Icon | Richcontent | this
+ >();
}
return this.arrowlinkOrCloudOrEdge;
}
@@ -118,7 +125,9 @@ class Node {
return this.centralTopic;
}
- setArrowlinkOrCloudOrEdge(value: Arrowlink | Cloud | Edge | Font | Hook | Icon | Richcontent | this): void {
+ setArrowlinkOrCloudOrEdge(
+ value: Arrowlink | Cloud | Edge | Font | Hook | Icon | Richcontent | this,
+ ): void {
this.getArrowlinkOrCloudOrEdge().push(value);
}
@@ -268,6 +277,6 @@ class Node {
}
}
-export type Choise = Arrowlink | Cloud | Edge | Font | Hook | Icon | Richcontent | Node
+export type Choise = Arrowlink | Cloud | Edge | Font | Hook | Icon | Richcontent | Node;
export default Node;
diff --git a/packages/mindplot/src/components/export/freemind/Richcontent.ts b/packages/mindplot/src/components/export/freemind/Richcontent.ts
index 63a8c07f..9f041762 100644
--- a/packages/mindplot/src/components/export/freemind/Richcontent.ts
+++ b/packages/mindplot/src/components/export/freemind/Richcontent.ts
@@ -26,7 +26,9 @@ export default class Richcontent {
richcontentElem.setAttribute('TYPE', this.type);
if (this.html) {
- const htmlElement: DocumentFragment = document.createRange().createContextualFragment(this.html);
+ const htmlElement: DocumentFragment = document
+ .createRange()
+ .createContextualFragment(this.html);
richcontentElem.appendChild(htmlElement);
}
diff --git a/packages/mindplot/src/components/import/FreemindImporter.ts b/packages/mindplot/src/components/import/FreemindImporter.ts
index 1d19542f..1bb6e209 100644
--- a/packages/mindplot/src/components/import/FreemindImporter.ts
+++ b/packages/mindplot/src/components/import/FreemindImporter.ts
@@ -50,7 +50,9 @@ export default class FreemindImporter extends Importer {
const version: string = this.freemindMap.getVersion();
if (!version || version.startsWith('freeplane')) {
- throw new Error('You seems to be be trying to import a Freeplane map. FreePlane is not supported format.');
+ throw new Error(
+ 'You seems to be be trying to import a Freeplane map. FreePlane is not supported format.',
+ );
} else {
const mapVersion: VersionNumber = new VersionNumber(version);
if (mapVersion.isGreaterThan(FreemindConstant.SUPPORTED_FREEMIND_VERSION)) {
@@ -144,7 +146,11 @@ export default class FreemindImporter extends Importer {
}
}
- private convertNodeProperties(freeNode: FreemindNode, wiseTopic: NodeModel, centralTopic: boolean): void {
+ private convertNodeProperties(
+ freeNode: FreemindNode,
+ wiseTopic: NodeModel,
+ centralTopic: boolean,
+ ): void {
const text: string = freeNode.getText();
if (text) {
if (!centralTopic && text.length > 100) {
@@ -177,7 +183,12 @@ export default class FreemindImporter extends Importer {
if (folded) wiseTopic.setChildrenShrunken(folded);
}
- private convertChildNodes(freeParent: FreemindNode, wiseParent: NodeModel, mindmap: Mindmap, depth: number): void {
+ private convertChildNodes(
+ freeParent: FreemindNode,
+ wiseParent: NodeModel,
+ mindmap: Mindmap,
+ depth: number,
+ ): void {
const freeChilden = freeParent.getArrowlinkOrCloudOrEdge();
let currentWiseTopic: NodeModel = wiseParent;
let order = 0;
@@ -206,7 +217,13 @@ export default class FreemindImporter extends Importer {
// Convert node position...
const childrenCountSameSide = this.getChildrenCountSameSide(freeChilden, child);
- const position: {x: number, y: number} = this.convertPosition(wiseParent, child, depth, norder, childrenCountSameSide);
+ const position: { x: number; y: number } = this.convertPosition(
+ wiseParent,
+ child,
+ depth,
+ norder,
+ childrenCountSameSide,
+ );
wiseChild.setPosition(position.x, position.y);
// Convert the rest of the node properties...
@@ -239,7 +256,9 @@ export default class FreemindImporter extends Importer {
const iconId: string = freeIcon.getBuiltin();
const wiseIconId = FreemindIconConverter.toWiseId(iconId);
if (wiseIconId) {
- const mindmapIcon: FeatureModel = FeatureModelFactory.createModel('icon', { id: wiseIconId });
+ const mindmapIcon: FeatureModel = FeatureModelFactory.createModel('icon', {
+ id: wiseIconId,
+ });
currentWiseTopic.addFeature(mindmapIcon);
}
}
@@ -263,7 +282,9 @@ export default class FreemindImporter extends Importer {
switch (type) {
case 'NOTE': {
- const noteModel: FeatureModel = FeatureModelFactory.createModel('note', { text: text || FreemindConstant.EMPTY_NOTE });
+ const noteModel: FeatureModel = FeatureModelFactory.createModel('note', {
+ text: text || FreemindConstant.EMPTY_NOTE,
+ });
currentWiseTopic.addFeature(noteModel);
break;
}
@@ -274,7 +295,9 @@ export default class FreemindImporter extends Importer {
}
default: {
- const noteModel: FeatureModel = FeatureModelFactory.createModel('note', { text: text || FreemindConstant.EMPTY_NOTE });
+ const noteModel: FeatureModel = FeatureModelFactory.createModel('note', {
+ text: text || FreemindConstant.EMPTY_NOTE,
+ });
currentWiseTopic.addFeature(noteModel);
}
}
@@ -381,7 +404,10 @@ export default class FreemindImporter extends Importer {
// Font Size
if (font) {
- const fontSize: number = ((!font.getSize() || parseInt(font.getSize(), 10) < 8) ? FreemindConstant.FONT_SIZE_NORMAL : parseInt(font.getSize(), 10));
+ const fontSize: number =
+ !font.getSize() || parseInt(font.getSize(), 10) < 8
+ ? FreemindConstant.FONT_SIZE_NORMAL
+ : parseInt(font.getSize(), 10);
let wiseFontSize: number = FreemindConstant.FONT_SIZE_SMALL;
if (fontSize >= 24) {
wiseFontSize = FreemindConstant.FONT_SIZE_HUGE;
@@ -414,11 +440,19 @@ export default class FreemindImporter extends Importer {
return result;
}
- private convertPosition(wiseParent: NodeModel, freeChild: FreemindNode, depth: number, order: number, childrenCount: number): {x: number, y: number} {
- let x: number = FreemindConstant.CENTRAL_TO_TOPIC_DISTANCE + ((depth - 1) * FreemindConstant.TOPIC_TO_TOPIC_DISTANCE);
+ private convertPosition(
+ wiseParent: NodeModel,
+ freeChild: FreemindNode,
+ depth: number,
+ order: number,
+ childrenCount: number,
+ ): { x: number; y: number } {
+ let x: number =
+ FreemindConstant.CENTRAL_TO_TOPIC_DISTANCE +
+ (depth - 1) * FreemindConstant.TOPIC_TO_TOPIC_DISTANCE;
if (depth === 1) {
const side: string = freeChild.getPosition();
- x *= (side && FreemindConstant.POSITION_LEFT === side ? -1 : 1);
+ x *= side && FreemindConstant.POSITION_LEFT === side ? -1 : 1;
} else {
const position = wiseParent.getPosition();
x *= position.x < 0 ? 1 : -1;
@@ -427,7 +461,7 @@ export default class FreemindImporter extends Importer {
let y: number;
if (depth === 1) {
if (order % 2 === 0) {
- const multiplier = ((order + 1) - childrenCount) * 2;
+ const multiplier = (order + 1 - childrenCount) * 2;
y = multiplier * FreemindConstant.ROOT_LEVEL_TOPIC_HEIGHT;
} else {
const multiplier = (order - childrenCount) * 2;
@@ -435,7 +469,11 @@ export default class FreemindImporter extends Importer {
}
} else {
const position = wiseParent.getPosition();
- y = Math.round(position.y - ((childrenCount / 2) * FreemindConstant.SECOND_LEVEL_TOPIC_HEIGHT - (order * FreemindConstant.SECOND_LEVEL_TOPIC_HEIGHT)));
+ y = Math.round(
+ position.y -
+ ((childrenCount / 2) * FreemindConstant.SECOND_LEVEL_TOPIC_HEIGHT -
+ order * FreemindConstant.SECOND_LEVEL_TOPIC_HEIGHT),
+ );
}
return {
diff --git a/packages/mindplot/src/components/import/Importer.ts b/packages/mindplot/src/components/import/Importer.ts
index 249a0a7a..c3806a8a 100644
--- a/packages/mindplot/src/components/import/Importer.ts
+++ b/packages/mindplot/src/components/import/Importer.ts
@@ -1,3 +1,3 @@
export default abstract class Importer {
- abstract import(nameMap: string, description: string): Promise;
+ abstract import(nameMap: string, description: string): Promise;
}
diff --git a/packages/mindplot/src/components/lang/de.js b/packages/mindplot/src/components/lang/de.js
index c2cb2111..535e673c 100644
--- a/packages/mindplot/src/components/lang/de.js
+++ b/packages/mindplot/src/components/lang/de.js
@@ -10,28 +10,28 @@ const DE = {
TOPIC_COLOR: 'Themenfarbe',
TOPIC_BORDER_COLOR: 'Thema Randfarbe',
TOPIC_NOTE: 'Notiz hinzufügen',
- FONT_FAMILY: 'Schrifttyp',
+ FONT_FAMILY: 'Schriftart',
FONT_SIZE: 'Schriftgröße',
- FONT_BOLD: 'Fette Schrift',
- FONT_ITALIC: 'Kursive Schrift',
- UNDO: 'Rückgängig machen',
+ FONT_BOLD: 'Fett',
+ FONT_ITALIC: 'Kursiv',
+ UNDO: 'Rückgängig',
REDO: 'Wiederholen',
INSERT: 'Einfügen',
- SAVE: 'Sichern',
+ SAVE: 'Speichern',
NOTE: 'Notiz',
ADD_TOPIC: 'Thema hinzufügen',
- LOADING: 'Laden ...',
+ LOADING: 'Lädt ...',
EXPORT: 'Exportieren',
PRINT: 'Drucken',
- PUBLISH: 'Publizieren',
+ PUBLISH: 'Veröffentlichen',
COLLABORATE: 'Mitbenutzen',
HISTORY: 'Historie',
DISCARD_CHANGES: 'Änderungen verwerfen',
FONT_COLOR: 'Textfarbe',
- SAVING: 'Sichern ...',
- SAVE_COMPLETE: 'Sichern abgeschlossen',
+ SAVING: 'Speichern ...',
+ SAVE_COMPLETE: 'Speichern abgeschlossen',
ZOOM_IN_ERROR: 'Zoom zu hoch.',
- ZOOM_ERROR: 'Es kann nicht weiter vergrößert bzw. verkelinert werden.',
+ ZOOM_ERROR: 'Es kann nicht weiter vergrößert bzw. verkleinert werden.',
ONLY_ONE_TOPIC_MUST_BE_SELECTED: 'Thema konnte nicht angelegt werden. Bitte wählen Sie nur ein Thema aus.',
ONE_TOPIC_MUST_BE_SELECTED: 'Thema konnte nicht angelegt werden. Es muss ein Thema ausgewählt werden.',
ONLY_ONE_TOPIC_MUST_BE_SELECTED_COLLAPSE: 'Kinderknoten können nicht eingefaltet werden. Es muss ein Thema ausgewäht werden.',
@@ -41,45 +41,51 @@ const DE = {
SUB_TOPIC: 'Unterthema',
ISOLATED_TOPIC: 'Isoliertes Thema',
CENTRAL_TOPIC: 'Zentrales Thema',
- SHORTCUTS: 'Tastaturkürzel',
+ SHORTCUTS: 'Tastenkombinationen',
ENTITIES_COULD_NOT_BE_DELETED: 'Konnte das Thema oder die Beziehung nicht löschen. Es muss mindest ein Eintrag ausgewählt sein.',
AT_LEAST_ONE_TOPIC_MUST_BE_SELECTED: 'Es muss mindestens ein Thema ausgewählt sein.',
CLIPBOARD_IS_EMPTY: 'Es gibt nichts zu kopieren. Die Zwischenablage ist leer.',
CENTRAL_TOPIC_CAN_NOT_BE_DELETED: 'Das zentrale Thema kann nicht gelöscht werden.',
RELATIONSHIP_COULD_NOT_BE_CREATED: 'Die Beziehung konnte nicht angelegt werden. Es muss erst ein Vater-Thema ausgewählt werden, um die Beziehung herzustellen.',
SELECTION_COPIED_TO_CLIPBOARD: 'Themen in der Zwischenablage',
- WRITE_YOUR_TEXT_HERE: 'Schreiben Sie ihre Notiz hier ...',
+ WRITE_YOUR_TEXT_HERE: 'Schreibe deine Notiz hier ...',
REMOVE: 'Entfernen',
ACCEPT: 'Akzeptieren',
CANCEL: 'Abbrechen',
LINK: 'Verbindung',
OPEN_LINK: 'Öffne URL',
- SESSION_EXPIRED: 'Ihre Sitzung ist abgelaufen, bitte melden Sie sich erneut an.',
+ SESSION_EXPIRED: 'Deine Sitzung ist abgelaufen, bitte melde dich erneut an.',
URL_ERROR: 'URL nicht gültig',
ACTION: 'Aktion',
- CREATE_SIBLING_TOPIC: 'Erzeuge ein Schwester Thema',
- CREATE_CHILD_TOPIC: 'Eryeuge ein Unterthema',
- DELETE_TOPIC: 'Lösche Thema',
- EDIT_TOPIC_TEXT: 'Editiere Thematext',
- JUST_START_TYPING: 'Einfach mit der Eingabe beginnen',
+ CREATE_SIBLING_TOPIC: 'Thema hinzufügen',
+ CREATE_CHILD_TOPIC: 'Unterthema hinzufügen',
+ DELETE_TOPIC: 'Thema löschen',
+ EDIT_TOPIC_TEXT: 'Thematext bearbeiten',
+ JUST_START_TYPING: 'Eingabe beginnen',
CANCEL_TEXT_CHANGES: 'Textänderungen abbrechen',
- TOPIC_NAVIGATION: 'Themen Navigation',
+ TOPIC_NAVIGATION: 'Navigieren',
ARROW_KEYS: 'Pfeiltasten',
- SELECT_MULTIPLE_NODES: 'Wähle mehrfache Knoten aus',
- UNDO_EDITION: 'Änderungen rückgängig machen',
- REDO_EDITION: 'Änderung nochmal ausführen',
- SELECT_ALL_TOPIC: 'Wähle alle Themen aus',
- CHANGE_TEXT_BOLD: 'Ändere Text in fette Schrift',
- SAVE_CHANGES: 'Änderungen sichern',
- CHANGE_TEXT_ITALIC: 'Ändere Text in kursive Schrift',
- DESELECT_ALL_TOPIC: 'Deselektiere alle Themen',
- COLLAPSE_CHILDREN: 'Kindknoten zusammenklappen',
- KEYBOARD_SHORTCUTS_MSG: 'Tastenkürzel helfen Zeit zu sparen und erlauben die Arbeit nur mit der Tatstatur, s.d. Sie niemals die Hand von der Tastatur nehmen müßen, um die Maus zu bedienen.',
- COPY_AND_PASTE_TOPICS: 'Kopieren und Einsetzen von Themen',
- MULTIPLE_LINES: 'Füge mehrer Textzeilen hinzu',
- BACK_TO_MAP_LIST: 'Zurück zur Kartenliste',
- KEYBOARD_SHOTCUTS: 'Tastaturkürzel',
- PASTE_URL_HERE: 'Fügen Sie hier die gewünschte URL-Adresse ein:',
+ SELECT_MULTIPLE_NODES: 'Wähle Themen markieren',
+ UNDO_EDITION: 'Rückgängig',
+ REDO_EDITION: 'Wiederholen',
+ SELECT_ALL_TOPIC: 'Alles markieren',
+ CHANGE_TEXT_BOLD: 'Fett',
+ SAVE_CHANGES: 'Speichern',
+ CHANGE_TEXT_ITALIC: 'Kursiv',
+ DESELECT_ALL_TOPIC: 'Markierung aufheben',
+ COLLAPSE_CHILDREN: 'Unterthemen einklappen',
+ KEYBOARD_SHORTCUTS_MSG: 'Tastenkombinationen helfen Zeit zu sparen und erlauben die Arbeit nur mit der Tatstatur, s.d. du niemals die Hand von der Tastatur nehmen musst, um die Maus zu bedienen.',
+ COPY_AND_PASTE_TOPICS: 'Thema kopieren / einfügen',
+ MULTIPLE_LINES: 'Absatz hinzufügen',
+ BACK_TO_MAP_LIST: 'Zurück zur Mindmap Liste',
+ KEYBOARD_SHOTCUTS: 'Tastenkombinationen',
+ PASTE_URL_HERE: 'Füge hier die gewünschte URL ein:',
+ CTRL: 'Strg',
+ SPACE_BAR: 'Leertaste',
+ K_INSERT: 'Insert',
+ MOUSE_CLICK: 'Mausklick',
+ K_DELETE: 'Entf',
+ BACKSPACE: 'Backspace',
};
export default DE;
diff --git a/packages/mindplot/src/components/lang/en.js b/packages/mindplot/src/components/lang/en.js
index 0ebe385f..cbd11e1b 100644
--- a/packages/mindplot/src/components/lang/en.js
+++ b/packages/mindplot/src/components/lang/en.js
@@ -80,6 +80,12 @@ const EN = {
BACK_TO_MAP_LIST: 'Back to Maps List',
KEYBOARD_SHOTCUTS: 'Keyboard Shorcuts',
PASTE_URL_HERE: 'Paste your url address here:',
+ CTRL: 'Ctrl',
+ SPACE_BAR: 'Space Bar',
+ K_INSERT: 'Insert',
+ MOUSE_CLICK: 'Mouse Click',
+ K_DELETE: 'Delete',
+ BACKSPACE: 'Backspace',
};
export default EN;
diff --git a/packages/mindplot/src/components/lang/es.js b/packages/mindplot/src/components/lang/es.js
index 87f65188..9121f1c0 100644
--- a/packages/mindplot/src/components/lang/es.js
+++ b/packages/mindplot/src/components/lang/es.js
@@ -80,6 +80,12 @@ const ES = {
BACK_TO_MAP_LIST: 'Volver a la lista de mapas',
KEYBOARD_SHOTCUTS: 'Métodos abreviados de teclado',
PASTE_URL_HERE: 'Copie la URL que desea aca:',
+ CTRL: 'Ctrl',
+ SPACE_BAR: 'Space Bar',
+ K_INSERT: 'Insert',
+ MOUSE_CLICK: 'Mouse Click',
+ K_DELETE: 'Delete',
+ BACKSPACE: 'Backspace',
};
export default ES;
diff --git a/packages/mindplot/src/components/lang/fr.js b/packages/mindplot/src/components/lang/fr.js
index f8a90848..cf9a3e44 100644
--- a/packages/mindplot/src/components/lang/fr.js
+++ b/packages/mindplot/src/components/lang/fr.js
@@ -80,6 +80,12 @@ const FR = {
BACK_TO_MAP_LIST: 'Retour à la liste des cartes',
KEYBOARD_SHOTCUTS: 'Raccourcis clavier',
PASTE_URL_HERE: 'Collez l\'adresse URL souhaitée ici :',
+ CTRL: 'Ctrl',
+ SPACE_BAR: 'Space Bar',
+ K_INSERT: 'Insert',
+ MOUSE_CLICK: 'Clic de Souris',
+ K_DELETE: 'Delete',
+ BACKSPACE: 'Backspace',
};
export default FR;
diff --git a/packages/mindplot/src/components/lang/ru.js b/packages/mindplot/src/components/lang/ru.js
index d962cd26..d1106d33 100644
--- a/packages/mindplot/src/components/lang/ru.js
+++ b/packages/mindplot/src/components/lang/ru.js
@@ -80,6 +80,12 @@ const EN = {
BACK_TO_MAP_LIST: 'Back to Maps List',
KEYBOARD_SHOTCUTS: 'Keyboard Shorcuts',
PASTE_URL_HERE: 'Вставьте нужный URL-адрес здесь:',
+ CTRL: 'Ctrl',
+ SPACE_BAR: 'Space Bar',
+ K_INSERT: 'Insert',
+ MOUSE_CLICK: 'Mouse Click',
+ K_DELETE: 'Delete',
+ BACKSPACE: 'Backspace',
};
export default EN;
diff --git a/packages/mindplot/src/components/lang/zh.js b/packages/mindplot/src/components/lang/zh.js
index ef262eef..2cc5bb20 100644
--- a/packages/mindplot/src/components/lang/zh.js
+++ b/packages/mindplot/src/components/lang/zh.js
@@ -80,7 +80,12 @@ const ZH = {
BACK_TO_MAP_LIST: '回到脑图列表',
KEYBOARD_SHOTCUTS: '键盘快捷键',
PASTE_URL_HERE: '在此处粘贴所需的 URL 地址:',
-
+ CTRL: 'Ctrl',
+ SPACE_BAR: 'Space Bar',
+ K_INSERT: 'Insert',
+ MOUSE_CLICK: 'Mouse Click',
+ K_DELETE: 'Delete',
+ BACKSPACE: 'Backspace',
};
export default ZH;
diff --git a/packages/mindplot/src/components/layout/AbstractBasicSorter.js b/packages/mindplot/src/components/layout/AbstractBasicSorter.ts
similarity index 73%
rename from packages/mindplot/src/components/layout/AbstractBasicSorter.js
rename to packages/mindplot/src/components/layout/AbstractBasicSorter.ts
index c0f3ede0..8ccce86d 100644
--- a/packages/mindplot/src/components/layout/AbstractBasicSorter.js
+++ b/packages/mindplot/src/components/layout/AbstractBasicSorter.ts
@@ -16,24 +16,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+import PositionType from '../PositionType';
import ChildrenSorterStrategy from './ChildrenSorterStrategy';
+import Node from './Node';
+import RootedTreeSet from './RootedTreeSet';
-/**
- * @class
- * @extends mindplot.layout.ChildrenSorterStrategy
- */
-class AbstractBasicSorter extends ChildrenSorterStrategy {
- computeChildrenIdByHeights(treeSet, node) {
+abstract class AbstractBasicSorter extends ChildrenSorterStrategy {
+ private INTERNODE_VERTICAL_PADDING = 5;
+
+ computeChildrenIdByHeights(treeSet: RootedTreeSet, node: Node) {
const result = {};
this._computeChildrenHeight(treeSet, node, result);
return result;
}
- _getVerticalPadding() {
- return AbstractBasicSorter.INTERNODE_VERTICAL_PADDING;
+ protected _getVerticalPadding() {
+ return this.INTERNODE_VERTICAL_PADDING;
}
- _computeChildrenHeight(treeSet, node, heightCache) {
+ protected _computeChildrenHeight(treeSet: RootedTreeSet, node: Node, heightCache?) {
// 2* Top and down padding;
const height = node.getSize().height + this._getVerticalPadding() * 2;
@@ -44,9 +45,9 @@ class AbstractBasicSorter extends ChildrenSorterStrategy {
} else {
let childrenHeight = 0;
- children.forEach(((child) => {
+ children.forEach((child) => {
childrenHeight += this._computeChildrenHeight(treeSet, child, heightCache);
- }));
+ });
result = Math.max(height, childrenHeight);
}
@@ -59,29 +60,16 @@ class AbstractBasicSorter extends ChildrenSorterStrategy {
return result;
}
- _getSortedChildren(treeSet, node) {
+ protected _getSortedChildren(treeSet: RootedTreeSet, node: Node) {
const result = treeSet.getChildren(node);
result.sort((a, b) => a.getOrder() - b.getOrder());
return result;
}
- _getRelativeDirection(reference, position) {
+ protected _getRelativeDirection(reference: PositionType, position: PositionType): 1 | -1 {
const offset = position.x - reference.x;
return offset >= 0 ? 1 : -1;
}
}
-/**
- * @constant
- * @type {Number}
- * @default
- */
-AbstractBasicSorter.INTERNODE_VERTICAL_PADDING = 5;
-/**
- * @constant
- * @type {Number}
- * @default
- */
-AbstractBasicSorter.INTERNODE_HORIZONTAL_PADDING = 30;
-
export default AbstractBasicSorter;
diff --git a/packages/mindplot/src/components/layout/BalancedSorter.js b/packages/mindplot/src/components/layout/BalancedSorter.ts
similarity index 62%
rename from packages/mindplot/src/components/layout/BalancedSorter.js
rename to packages/mindplot/src/components/layout/BalancedSorter.ts
index 7195f84d..2e67db7b 100644
--- a/packages/mindplot/src/components/layout/BalancedSorter.js
+++ b/packages/mindplot/src/components/layout/BalancedSorter.ts
@@ -18,56 +18,24 @@
* limitations under the License.
*/
import { $assert, $defined } from '@wisemapping/core-js';
+import PositionType from '../PositionType';
import AbstractBasicSorter from './AbstractBasicSorter';
+import Node from './Node';
+import RootedTreeSet from './RootedTreeSet';
class BalancedSorter extends AbstractBasicSorter {
- predict(graph, parent, node, position, free) {
- // If its a free node...
- if (free) {
- $assert(
- $defined(position),
- 'position cannot be null for predict in free positioning',
- );
- $assert($defined(node), 'node cannot be null for predict in free positioning');
+ private static INTERNODE_VERTICAL_PADDING = 5;
- const rootNode = graph.getRootNode(parent);
- const direction = this._getRelativeDirection(
- rootNode.getPosition(),
- node.getPosition(),
- );
-
- const limitXPos = parent.getPosition().x
- + direction
- * (parent.getSize().width / 2
- + node.getSize().width / 2
- + BalancedSorter.INTERNODE_HORIZONTAL_PADDING);
-
- let xPos;
- if (direction > 0) {
- xPos = position.x >= limitXPos
- ? position.x
- : limitXPos;
- } else {
- xPos = position.x <= limitXPos
- ? position.x
- : limitXPos;
- }
- return [0, { x: xPos, y: position.y }];
- }
+ private static INTERNODE_HORIZONTAL_PADDING = 30;
+ predict(graph, parent, node: Node, position: PositionType) {
const rootNode = graph.getRootNode(parent);
// If it is a dragged node...
if (node) {
$assert($defined(position), 'position cannot be null for predict in dragging');
- const nodeDirection = this._getRelativeDirection(
- rootNode.getPosition(),
- node.getPosition(),
- );
- const positionDirection = this._getRelativeDirection(
- rootNode.getPosition(),
- position,
- );
+ const nodeDirection = this._getRelativeDirection(rootNode.getPosition(), node.getPosition());
+ const positionDirection = this._getRelativeDirection(rootNode.getPosition(), position);
const siblings = graph.getSiblings(node);
const sameParent = parent === graph.getParent(node);
@@ -76,7 +44,8 @@ class BalancedSorter extends AbstractBasicSorter {
}
}
- let right; let left;
+ let right;
+ let left;
if (!position) {
right = this._getChildrenForOrder(parent, graph, 0);
left = this._getChildrenForOrder(parent, graph, 1);
@@ -84,19 +53,16 @@ class BalancedSorter extends AbstractBasicSorter {
// Filter nodes on one side..
let order;
if (position) {
- order = position.x > rootNode.getPosition().x
- ? 0
- : 1;
+ order = position.x > rootNode.getPosition().x ? 0 : 1;
} else {
- order = right.length - left.length > 0
- ? 1
- : 0;
+ order = right.length - left.length > 0 ? 1 : 0;
}
const direction = order % 2 === 0 ? 1 : -1;
// Exclude the dragged node (if set)
- const children = this._getChildrenForOrder(parent, graph, order)
- .filter((child) => child !== node);
+ const children = this._getChildrenForOrder(parent, graph, order).filter(
+ (child) => child !== node,
+ );
// No children?
if (children.length === 0) {
@@ -104,10 +70,9 @@ class BalancedSorter extends AbstractBasicSorter {
order,
{
x:
- parent.getPosition().x
- + direction
- * (parent.getSize().width / 2
- + BalancedSorter.INTERNODE_HORIZONTAL_PADDING * 2),
+ parent.getPosition().x +
+ direction *
+ (parent.getSize().width / 2 + BalancedSorter.INTERNODE_HORIZONTAL_PADDING * 2),
y: parent.getPosition().y,
},
];
@@ -120,9 +85,10 @@ class BalancedSorter extends AbstractBasicSorter {
children.forEach((child, index) => {
const cpos = child.getPosition();
if (newestPosition.y > cpos.y) {
- const yOffset = child === last
- ? child.getSize().height + BalancedSorter.INTERNODE_VERTICAL_PADDING * 2
- : (children[index + 1].getPosition().y - child.getPosition().y) / 2;
+ const yOffset =
+ child === last
+ ? child.getSize().height + BalancedSorter.INTERNODE_VERTICAL_PADDING * 2
+ : (children[index + 1].getPosition().y - child.getPosition().y) / 2;
result = [child.getOrder() + 2, { x: cpos.x, y: cpos.y + yOffset }];
}
});
@@ -135,9 +101,9 @@ class BalancedSorter extends AbstractBasicSorter {
{
x: first.getPosition().x,
y:
- first.getPosition().y
- - first.getSize().height
- - BalancedSorter.INTERNODE_VERTICAL_PADDING * 2,
+ first.getPosition().y -
+ first.getSize().height -
+ BalancedSorter.INTERNODE_VERTICAL_PADDING * 2,
},
];
}
@@ -145,13 +111,7 @@ class BalancedSorter extends AbstractBasicSorter {
return result;
}
- /**
- * @param {} treeSet
- * @param {} parent
- * @param {} child
- * @param {} order
- */
- insert(treeSet, parent, child, order) {
+ insert(treeSet: RootedTreeSet, parent: Node, child: Node, order: number) {
const children = this._getChildrenForOrder(parent, treeSet, order);
// If no children, return 0 or 1 depending on the side
@@ -176,11 +136,7 @@ class BalancedSorter extends AbstractBasicSorter {
child.setOrder(newOrder);
}
- /**
- * @param {} treeSet
- * @param {} node
- */
- detach(treeSet, node) {
+ detach(treeSet: RootedTreeSet, node: Node): void {
const parent = treeSet.getParent(node);
// Filter nodes on one side..
const children = this._getChildrenForOrder(parent, treeSet, node.getOrder());
@@ -193,12 +149,7 @@ class BalancedSorter extends AbstractBasicSorter {
node.setOrder(node.getOrder() % 2 === 0 ? 0 : 1);
}
- /**
- * @param {} treeSet
- * @param {} node
- * @return offsets
- */
- computeOffsets(treeSet, node) {
+ computeOffsets(treeSet: RootedTreeSet, node: Node) {
$assert(treeSet, 'treeSet can no be null.');
$assert(node, 'node can no be null.');
@@ -243,10 +194,11 @@ class BalancedSorter extends AbstractBasicSorter {
}
const yOffset = ysum + heights[i].height / 2;
- const xOffset = direction
- * (node.getSize().width / 2
- + heights[i].width / 2
- + +BalancedSorter.INTERNODE_HORIZONTAL_PADDING);
+ const xOffset =
+ direction *
+ (node.getSize().width / 2 +
+ heights[i].width / 2 +
+ +BalancedSorter.INTERNODE_HORIZONTAL_PADDING);
$assert(!Number.isNaN(xOffset), 'xOffset can not be null');
$assert(!Number.isNaN(yOffset), 'yOffset can not be null');
@@ -256,12 +208,7 @@ class BalancedSorter extends AbstractBasicSorter {
return result;
}
- /**
- * @param {} treeSet
- * @param {} node
- * @throw will throw an error if order elements are missing
- */
- verify(treeSet, node) {
+ verify(treeSet: RootedTreeSet, node: Node): void {
// Check that all is consistent ...
const children = this._getChildrenForOrder(node, treeSet, node.getOrder());
@@ -272,50 +219,30 @@ class BalancedSorter extends AbstractBasicSorter {
const order = i === 0 && factor === 1 ? 1 : factor * i;
$assert(
children[i].getOrder() === order,
- `Missing order elements. Missing order: ${i * factor
- }. Parent:${node.getId()
- },Node:${children[i].getId()}`,
+ `Missing order elements. Missing order: ${
+ i * factor
+ }. Parent:${node.getId()},Node:${children[i].getId()}`,
);
}
}
- /**
- * @param {} treeSet
- * @param {} child
- * @return the direction of the child within the treeSet
- */
- getChildDirection(treeSet, child) {
+ getChildDirection(treeSet: RootedTreeSet, child: Node): 1 | -1 {
return child.getOrder() % 2 === 0 ? 1 : -1;
}
- /**
- * @return {String} the print name of this class
- */
- toString() {
+ toString(): string {
return 'Balanced Sorter';
}
- _getChildrenForOrder(parent, graph, order) {
- return this._getSortedChildren(graph, parent)
- .filter((child) => child.getOrder() % 2 === order % 2);
+ protected _getChildrenForOrder(parent: Node, graph: RootedTreeSet, order: number) {
+ return this._getSortedChildren(graph, parent).filter(
+ (child) => child.getOrder() % 2 === order % 2,
+ );
}
- _getVerticalPadding() {
+ protected _getVerticalPadding(): number {
return BalancedSorter.INTERNODE_VERTICAL_PADDING;
}
}
-/**
- * @constant
- * @type {Number}
- * @default
- */
-BalancedSorter.INTERNODE_VERTICAL_PADDING = 5;
-/**
- * @constant
- * @type {Number}
- * @default
- */
-BalancedSorter.INTERNODE_HORIZONTAL_PADDING = 30;
-
export default BalancedSorter;
diff --git a/packages/mindplot/src/components/layout/ChangeEvent.js b/packages/mindplot/src/components/layout/ChangeEvent.js
index 8b859509..c71b5118 100644
--- a/packages/mindplot/src/components/layout/ChangeEvent.js
+++ b/packages/mindplot/src/components/layout/ChangeEvent.js
@@ -41,17 +41,17 @@ class ChangeEvent {
}
/**
- * @param {} value the order to set
- * @throws will throw an error if the given parameter is not/cannot be converted to a numerical
- * value
- */
+ * @param {} value the order to set
+ * @throws will throw an error if the given parameter is not/cannot be converted to a numerical
+ * value
+ */
setOrder(value) {
$assert(!Number.isNaN(value), 'value can not be null');
this._order = value;
}
/** @param {} value
- * @throws will throw an error if the value is null or undefined */
+ * @throws will throw an error if the value is null or undefined */
setPosition(value) {
$assert(value, 'value can not be null');
this._position = value;
@@ -59,7 +59,9 @@ class ChangeEvent {
/** @return {String} order and position */
toString() {
- return `[order:${this.getOrder()}, position: {${this.getPosition().x},${this.getPosition().y}}]`;
+ return `[order:${this.getOrder()}, position: {${this.getPosition().x},${
+ this.getPosition().y
+ }}]`;
}
}
diff --git a/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts b/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts
index fbf2cb25..85396b4c 100644
--- a/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts
+++ b/packages/mindplot/src/components/layout/ChildrenSorterStrategy.ts
@@ -24,15 +24,15 @@ abstract class ChildrenSorterStrategy {
abstract computeOffsets(treeSet: RootedTreeSet, node: Node);
- abstract insert(treeSet: RootedTreeSet, parent: Node, child: Node, order: number);
+ abstract insert(treeSet: RootedTreeSet, parent: Node, child: Node, order: number): void;
- abstract detach(treeSet: RootedTreeSet, node: Node);
+ abstract detach(treeSet: RootedTreeSet, node: Node): void;
abstract predict(treeSet: RootedTreeSet, parent, node: Node, position: PositionType);
abstract verify(treeSet: RootedTreeSet, node: Node);
- abstract getChildDirection(treeSet: RootedTreeSet, node: Node);
+ abstract getChildDirection(treeSet: RootedTreeSet, node: Node): 1 | -1;
abstract toString(): string;
}
diff --git a/packages/mindplot/src/components/layout/EventBus.ts b/packages/mindplot/src/components/layout/EventBus.ts
index efb5c202..f5727e36 100644
--- a/packages/mindplot/src/components/layout/EventBus.ts
+++ b/packages/mindplot/src/components/layout/EventBus.ts
@@ -17,7 +17,15 @@
*/
import Events from '../Events';
-export type EventType = 'topicResize' | 'topicMoved' | 'childShrinked' | 'topicConnected' | 'topicAdded' | 'topicRemoved' | 'forceLayout' | 'topicDisconect';
+export type EventType =
+ | 'topicResize'
+ | 'topicMoved'
+ | 'childShrinked'
+ | 'topicConnected'
+ | 'topicAdded'
+ | 'topicRemoved'
+ | 'forceLayout'
+ | 'topicDisconect';
class EventBus extends Events {
// eslint-disable-next-line no-use-before-define
static _instance: EventBus = new EventBus();
diff --git a/packages/mindplot/src/components/layout/EventBusDispatcher.ts b/packages/mindplot/src/components/layout/EventBusDispatcher.ts
index 81b83ef9..2285bbe7 100644
--- a/packages/mindplot/src/components/layout/EventBusDispatcher.ts
+++ b/packages/mindplot/src/components/layout/EventBusDispatcher.ts
@@ -43,11 +43,11 @@ class EventBusDispatcher {
EventBus.instance.addEvent('forceLayout', this._forceLayout.bind(this));
}
- private _topicResizeEvent(args: { node: Topic, size: SizeType }) {
+ private _topicResizeEvent(args: { node: Topic; size: SizeType }) {
this._layoutManager.updateNodeSize(args.node.getId(), args.size);
}
- private _topicMoved(args: { node: Topic, position: PositionType }) {
+ private _topicMoved(args: { node: Topic; position: PositionType }) {
this._layoutManager.moveNode(args.node.getId(), args.position);
}
@@ -55,9 +55,11 @@ class EventBusDispatcher {
this._layoutManager.disconnectNode(node.getId());
}
- private _topicConnected(args: { parentNode: Topic, childNode: Topic }) {
+ private _topicConnected(args: { parentNode: Topic; childNode: Topic }) {
this._layoutManager.connectNode(
- args.parentNode.getId(), args.childNode.getId(), args.childNode.getOrder(),
+ args.parentNode.getId(),
+ args.childNode.getId(),
+ args.childNode.getOrder(),
);
}
diff --git a/packages/mindplot/src/components/layout/GridSorter.js b/packages/mindplot/src/components/layout/GridSorter.js
index c631fdd8..abe89473 100644
--- a/packages/mindplot/src/components/layout/GridSorter.js
+++ b/packages/mindplot/src/components/layout/GridSorter.js
@@ -42,12 +42,12 @@ class GridSorter extends AbstractBasicSorter {
for (let i = 0; i < heights.length; i++) {
const even = i % 2 === 0 ? 1 : -1;
- const zeroHeight = i === 0 ? 0 : ((heights[0].height / 2) * even);
+ const zeroHeight = i === 0 ? 0 : (heights[0].height / 2) * even;
let middleHeight = 0;
for (let j = i - 2; j > 0; j -= 2) {
middleHeight += heights[j].height * even;
}
- const finalHeight = i === 0 ? 0 : ((heights[i].height / 2) * even);
+ const finalHeight = i === 0 ? 0 : (heights[i].height / 2) * even;
const yOffset = zeroHeight + middleHeight + finalHeight;
const xOffset = node.getSize().width + GridSorter.GRID_HORIZONTAR_SIZE;
@@ -61,8 +61,8 @@ class GridSorter extends AbstractBasicSorter {
}
/**
- * @return {String} the print name of this class
- */
+ * @return {String} the print name of this class
+ */
toString() {
return 'Grid Sorter';
}
diff --git a/packages/mindplot/src/components/layout/LayoutManager.ts b/packages/mindplot/src/components/layout/LayoutManager.ts
index 94c6964c..310d4f61 100644
--- a/packages/mindplot/src/components/layout/LayoutManager.ts
+++ b/packages/mindplot/src/components/layout/LayoutManager.ts
@@ -64,13 +64,13 @@ class LayoutManager extends Events {
}
/**
- * @param id
- * @param position
- * @throws will throw an error if id is null or undefined
- * @throws will throw an error if position is null or undefined
- * @throws will throw an error if the position's x property is null or undefined
- * @throws will throw an error if the position's y property is null or undefined
- */
+ * @param id
+ * @param position
+ * @throws will throw an error if id is null or undefined
+ * @throws will throw an error if position is null or undefined
+ * @throws will throw an error if the position's x property is null or undefined
+ * @throws will throw an error if the position's y property is null or undefined
+ */
moveNode(id: number, position: PositionType) {
$assert($defined(id), 'id cannot be null');
$assert($defined(position), 'position cannot be null');
@@ -97,12 +97,12 @@ class LayoutManager extends Events {
}
/**
- * @param id
- * @param size
- * @param position
- * @throws will throw an error if id is null or undefined
- * @return this
- */
+ * @param id
+ * @param size
+ * @param position
+ * @throws will throw an error if id is null or undefined
+ * @return this
+ */
addNode(id: number, size: SizeType, position: PositionType) {
$assert($defined(id), 'id can not be null');
const result = this._layout.createNode(id, size, position, 'topic');
@@ -126,7 +126,11 @@ class LayoutManager extends Events {
return this;
}
- predict(parentId: number, nodeId: number, position: PositionType): { order: number, position: PositionType } {
+ predict(
+ parentId: number,
+ nodeId: number,
+ position: PositionType,
+ ): { order: number; position: PositionType } {
$assert($defined(parentId), 'parentId can not be null');
const parent = this._treeSet.find(parentId);
@@ -179,14 +183,14 @@ class LayoutManager extends Events {
}
private _flushEvents() {
- this._events.forEach(((event) => {
+ this._events.forEach((event) => {
this.fireEvent('change', event);
- }));
+ });
this._events = [];
}
private _collectChanges(nodes: Node[]) {
- nodes.forEach(((node) => {
+ nodes.forEach((node) => {
if (node.hasOrderChanged() || node.hasPositionChanged()) {
// Find or create a event ...
const id = node.getId();
@@ -205,7 +209,7 @@ class LayoutManager extends Events {
this._events.push(event);
}
this._collectChanges(this._treeSet.getChildren(node));
- }));
+ });
}
}
diff --git a/packages/mindplot/src/components/layout/Node.ts b/packages/mindplot/src/components/layout/Node.ts
index b307e070..7eb364cd 100644
--- a/packages/mindplot/src/components/layout/Node.ts
+++ b/packages/mindplot/src/components/layout/Node.ts
@@ -186,10 +186,12 @@ class Node {
// This is a performance improvement to avoid movements that really could be avoided.
const currentPos = this.getPosition();
if (
- currentPos == null
- || Math.abs(currentPos.x - position.x) > 2
- || Math.abs(currentPos.y - position.y) > 2
- ) this._setProperty('position', position);
+ currentPos == null ||
+ Math.abs(currentPos.x - position.x) > 2 ||
+ Math.abs(currentPos.y - position.y) > 2
+ ) {
+ this._setProperty('position', position);
+ }
}
_setProperty(key: string, value) {
@@ -228,16 +230,11 @@ class Node {
/** @return {String} returns id, order, position, size and shrink information */
toString() {
- return (
- `[id:${this.getId()
- }, order:${this.getOrder()
- }, position: {${this.getPosition().x
- },${this.getPosition().y
- }}, size: {${this.getSize().width
- },${this.getSize().height
- }}, shrink:${this.areChildrenShrunken()
- }]`
- );
+ return `[id:${this.getId()}, order:${this.getOrder()}, position: {${this.getPosition().x},${
+ this.getPosition().y
+ }}, size: {${this.getSize().width},${
+ this.getSize().height
+ }}, shrink:${this.areChildrenShrunken()}]`;
}
}
diff --git a/packages/mindplot/src/components/layout/OriginalLayout.js b/packages/mindplot/src/components/layout/OriginalLayout.js
index 95043a9f..61df0be7 100644
--- a/packages/mindplot/src/components/layout/OriginalLayout.js
+++ b/packages/mindplot/src/components/layout/OriginalLayout.js
@@ -33,7 +33,8 @@ class OriginalLayout {
$assert(position, 'position can not be null');
$assert(type, 'type can not be null');
- const strategy = type === 'root' ? OriginalLayout.BALANCED_SORTER : OriginalLayout.SYMMETRIC_SORTER;
+ const strategy =
+ type === 'root' ? OriginalLayout.BALANCED_SORTER : OriginalLayout.SYMMETRIC_SORTER;
return new Node(id, size, position, strategy);
}
@@ -77,7 +78,7 @@ class OriginalLayout {
/** */
layout() {
const roots = this._treeSet.getTreeRoots();
- roots.forEach(((node) => {
+ roots.forEach((node) => {
// Calculate all node heights ...
const sorter = node.getSorter();
@@ -85,7 +86,7 @@ class OriginalLayout {
this._layoutChildren(node, heightById);
this._fixOverlapping(node, heightById);
- }));
+ });
}
_layoutChildren(node, heightById) {
@@ -117,8 +118,8 @@ class OriginalLayout {
const direction = node.getSorter().getChildDirection(me._treeSet, child);
if (
- (direction > 0 && childFreeDisplacement.x < 0)
- || (direction < 0 && childFreeDisplacement.x > 0)
+ (direction > 0 && childFreeDisplacement.x < 0) ||
+ (direction < 0 && childFreeDisplacement.x > 0)
) {
child.resetFreeDisplacement();
child.setFreeDisplacement({
@@ -145,9 +146,9 @@ class OriginalLayout {
}
// Continue reordering the children nodes ...
- children.forEach(((child) => {
+ children.forEach((child) => {
this._layoutChildren(child, heightById);
- }));
+ });
}
_calculateAlignOffset(node, child, heightById) {
@@ -161,12 +162,13 @@ class OriginalLayout {
const childHeight = child.getSize().height;
if (
- this._treeSet.isStartOfSubBranch(child)
- && OriginalLayout._branchIsTaller(child, heightById)
+ this._treeSet.isStartOfSubBranch(child) &&
+ OriginalLayout._branchIsTaller(child, heightById)
) {
if (this._treeSet.hasSinglePathToSingleLeaf(child)) {
- offset = heightById[child.getId()] / 2
- - (childHeight + child.getSorter()._getVerticalPadding() * 2) / 2;
+ offset =
+ heightById[child.getId()] / 2 -
+ (childHeight + child.getSorter()._getVerticalPadding() * 2) / 2;
} else {
offset = this._treeSet.isLeaf(child) ? 0 : -(childHeight - nodeHeight) / 2;
}
@@ -189,8 +191,7 @@ class OriginalLayout {
static _branchIsTaller(node, heightById) {
return (
- heightById[node.getId()]
- > node.getSize().height + node.getSorter()._getVerticalPadding() * 2
+ heightById[node.getId()] > node.getSize().height + node.getSorter()._getVerticalPadding() * 2
);
}
@@ -200,9 +201,9 @@ class OriginalLayout {
if (node.isFree()) {
this._shiftBranches(node, heightById);
}
- children.forEach(((child) => {
+ children.forEach((child) => {
this._fixOverlapping(child, heightById);
- }));
+ });
}
_shiftBranches(node, heightById) {
@@ -213,27 +214,28 @@ class OriginalLayout {
node.getFreeDisplacement().y,
);
- siblingsToShift.forEach(((sibling) => {
- const overlappingOccurs = shiftedBranches.some(
- ((shiftedBranch) => OriginalLayout._branchesOverlap(shiftedBranch, sibling, heightById)),
+ siblingsToShift.forEach((sibling) => {
+ /* eslint-disable */
+ const overlappingOccurs = shiftedBranches.some((shiftedBranch) =>
+ OriginalLayout._branchesOverlap(shiftedBranch, sibling, heightById),
);
-
+ /* eslint-enable */
if (!sibling.isFree() || overlappingOccurs) {
const sAmount = node.getFreeDisplacement().y;
this._treeSet.shiftBranchPosition(sibling, 0, sAmount);
shiftedBranches.push(sibling);
}
- }));
+ });
const branchesToShift = this._treeSet
.getBranchesInVerticalDirection(node, node.getFreeDisplacement().y)
.filter((branch) => !shiftedBranches.includes(branch));
- branchesToShift.forEach(((branch) => {
+ branchesToShift.forEach((branch) => {
const bAmount = node.getFreeDisplacement().y;
this._treeSet.shiftBranchPosition(branch, 0, bAmount);
shiftedBranches.push(branch);
- }));
+ });
}
static _branchesOverlap(branchA, branchB, heightById) {
diff --git a/packages/mindplot/src/components/layout/RootedTreeSet.ts b/packages/mindplot/src/components/layout/RootedTreeSet.ts
index 4637fe96..efc7c3fb 100644
--- a/packages/mindplot/src/components/layout/RootedTreeSet.ts
+++ b/packages/mindplot/src/components/layout/RootedTreeSet.ts
@@ -62,12 +62,12 @@ class RootedTreeSet {
}
/**
- * @param parentId
- * @param childId
- * @throws will throw an error if parentId is null or undefined
- * @throws will throw an error if childId is null or undefined
- * @throws will throw an error if node with id childId is already a child of parent
- */
+ * @param parentId
+ * @param childId
+ * @throws will throw an error if parentId is null or undefined
+ * @throws will throw an error if childId is null or undefined
+ * @throws will throw an error if node with id childId is already a child of parent
+ */
connect(parentId: number, childId: number) {
$assert($defined(parentId), 'parent can not be null');
$assert($defined(childId), 'child can not be null');
@@ -85,10 +85,10 @@ class RootedTreeSet {
}
/**
- * @param nodeId
- * @throws will throw an error if nodeId is null or undefined
- * @throws will throw an error if node is not connected
- */
+ * @param nodeId
+ * @throws will throw an error if nodeId is null or undefined
+ * @throws will throw an error if node is not connected
+ */
disconnect(nodeId: number) {
$assert($defined(nodeId), 'nodeId can not be null');
const node = this.find(nodeId);
@@ -100,12 +100,12 @@ class RootedTreeSet {
}
/**
- * @param id
- * @param validate
- * @throws will throw an error if id is null or undefined
- * @throws will throw an error if node cannot be found
- * @return node
- */
+ * @param id
+ * @param validate
+ * @throws will throw an error if id is null or undefined
+ * @throws will throw an error if node cannot be found
+ * @return node
+ */
find(id: number, validate = true): Node {
$assert($defined(id), 'id can not be null');
@@ -143,20 +143,20 @@ class RootedTreeSet {
}
/**
- * @param node
- * @throws will throw an error if nodeId is null or undefined
- * @return children
- */
+ * @param node
+ * @throws will throw an error if nodeId is null or undefined
+ * @return children
+ */
getChildren(node: Node): Node[] {
$assert(node, 'node cannot be null');
return node._children;
}
/**
- * @param node
- * @throws will throw an error if node is null or undefined
- * @return root node or the provided node, if it has no parent
- */
+ * @param node
+ * @throws will throw an error if node is null or undefined
+ * @return root node or the provided node, if it has no parent
+ */
getRootNode(node: Node) {
$assert(node, 'node cannot be null');
const parent = this.getParent(node);
@@ -168,9 +168,9 @@ class RootedTreeSet {
}
/**
- * @param node
- * @throws will throw an error if node is null or undefined
- * @return {Array} ancestors */
+ * @param node
+ * @throws will throw an error if node is null or undefined
+ * @return {Array} ancestors */
getAncestors(node: Node): Node[] {
$assert(node, 'node cannot be null');
return this._getAncestors(this.getParent(node), []);
@@ -186,10 +186,10 @@ class RootedTreeSet {
}
/**
- * @param node
- * @throws will throw an error if node is null or undefined
- * @return {Array} siblings
- */
+ * @param node
+ * @throws will throw an error if node is null or undefined
+ * @return {Array} siblings
+ */
getSiblings(node: Node): Node[] {
$assert(node, 'node cannot be null');
if (!$defined(node._parent)) {
@@ -200,10 +200,10 @@ class RootedTreeSet {
}
/**
- * @param node
- * @throws will throw an error if node is null or undefined
- * @return {Boolean} whether the node has a single path to a single leaf (no branching)
- */
+ * @param node
+ * @throws will throw an error if node is null or undefined
+ * @return {Boolean} whether the node has a single path to a single leaf (no branching)
+ */
hasSinglePathToSingleLeaf(node: Node): boolean {
$assert(node, 'node cannot be null');
return this._hasSinglePathToSingleLeaf(node);
@@ -220,27 +220,27 @@ class RootedTreeSet {
}
/**
- * @param node
- * @return {Boolean} whether the node is the start of a subbranch */
+ * @param node
+ * @return {Boolean} whether the node is the start of a subbranch */
isStartOfSubBranch(node: Node): boolean {
return this.getSiblings(node).length > 0 && this.getChildren(node).length === 1;
}
/**
- * @param node
- * @throws will throw an error if node is null or undefined
- * @return {Boolean} whether the node is a leaf
- */
+ * @param node
+ * @throws will throw an error if node is null or undefined
+ * @return {Boolean} whether the node is a leaf
+ */
isLeaf(node: Node): boolean {
$assert(node, 'node cannot be null');
return this.getChildren(node).length === 0;
}
/**
- * @param node
- * @throws will throw an error if node is null or undefined
- * @return parent
- */
+ * @param node
+ * @throws will throw an error if node is null or undefined
+ * @return parent
+ */
getParent(node: Node): Node {
$assert(node, 'node cannot be null');
return node._parent;
@@ -271,8 +271,8 @@ class RootedTreeSet {
}
/**
- * @param canvas
- */
+ * @param canvas
+ */
plot(canvas) {
const branches = this._rootNodes;
for (let i = 0; i < branches.length; i++) {
@@ -297,9 +297,7 @@ class RootedTreeSet {
if (this._rootNodes.includes(node)) {
fillColor = '#000';
} else {
- fillColor = node.isFree()
- ? '#abc'
- : '#c00';
+ fillColor = node.isFree() ? '#abc' : '#c00';
}
rect.attr('fill', fillColor);
@@ -310,28 +308,20 @@ class RootedTreeSet {
const rectSize = { width: rect.attr('width'), height: rect.attr('height') };
rect.click(() => {
console.log(
- `[id:${node.getId()
- }, order:${node.getOrder()
- }, position:(${rectPosition.x
- }, ${rectPosition.y
- }), size:${rectSize.width
- },${rectSize.height
- }, freeDisplacement:(${node.getFreeDisplacement().x
- },${node.getFreeDisplacement().y
- })]`,
+ `[id:${node.getId()}, order:${node.getOrder()}, position:(${rectPosition.x}, ${
+ rectPosition.y
+ }), size:${rectSize.width},${rectSize.height}, freeDisplacement:(${
+ node.getFreeDisplacement().x
+ },${node.getFreeDisplacement().y})]`,
);
});
text.click(() => {
console.log(
- `[id:${node.getId()
- }, order:${node.getOrder()
- }, position:(${rectPosition.x
- },${rectPosition.y
- }), size:${rectSize.width
- }x${rectSize.height
- }, freeDisplacement:(${node.getFreeDisplacement().x
- },${node.getFreeDisplacement().y
- })]`,
+ `[id:${node.getId()}, order:${node.getOrder()}, position:(${rectPosition.x},${
+ rectPosition.y
+ }), size:${rectSize.width}x${rectSize.height}, freeDisplacement:(${
+ node.getFreeDisplacement().x
+ },${node.getFreeDisplacement().y})]`,
);
});
@@ -342,9 +332,9 @@ class RootedTreeSet {
}
/**
- * @param node
- * @param position
- */
+ * @param node
+ * @param position
+ */
updateBranchPosition(node: Node, position: PositionType): void {
const oldPos = node.getPosition();
node.setPosition(position);
@@ -360,10 +350,10 @@ class RootedTreeSet {
}
/**
- * @param node
- * @param xOffset
- * @param yOffset
- */
+ * @param node
+ * @param xOffset
+ * @param yOffset
+ */
shiftBranchPosition(node: Node, xOffset: number, yOffset: number): void {
const position = node.getPosition();
node.setPosition({ x: position.x + xOffset, y: position.y + yOffset });
@@ -376,21 +366,21 @@ class RootedTreeSet {
}
/**
- * @param node
- * @param yOffset
- * @return siblings in the offset (vertical) direction, i.e. with lower or higher order
- */
+ * @param node
+ * @param yOffset
+ * @return siblings in the offset (vertical) direction, i.e. with lower or higher order
+ */
getSiblingsInVerticalDirection(node: Node, yOffset: number): Node[] {
// siblings with lower or higher order
// (depending on the direction of the offset and on the same side as their parent)
const parent = this.getParent(node);
const siblings = this.getSiblings(node).filter((sibling) => {
- const sameSide = node.getPosition().x > parent.getPosition().x
- ? sibling.getPosition().x > parent.getPosition().x
- : sibling.getPosition().x < parent.getPosition().x;
- const orderOK = yOffset < 0
- ? sibling.getOrder() < node.getOrder()
- : sibling.getOrder() > node.getOrder();
+ const sameSide =
+ node.getPosition().x > parent.getPosition().x
+ ? sibling.getPosition().x > parent.getPosition().x
+ : sibling.getPosition().x < parent.getPosition().x;
+ const orderOK =
+ yOffset < 0 ? sibling.getOrder() < node.getOrder() : sibling.getOrder() > node.getOrder();
return orderOK && sameSide;
});
@@ -402,26 +392,27 @@ class RootedTreeSet {
}
/**
- * @param node
- * @param yOffset
- * @return branches of the root node on the same side as the given node's, in the given
- * vertical direction
- */
+ * @param node
+ * @param yOffset
+ * @return branches of the root node on the same side as the given node's, in the given
+ * vertical direction
+ */
getBranchesInVerticalDirection(node: Node, yOffset: number): Node[] {
// direct descendants of the root that do not contain the node and are on the same side
// and on the direction of the offset
const rootNode = this.getRootNode(node);
- const branches = this.getChildren(rootNode)
- .filter(((child) => this._find(node.getId(), child)));
+ const branches = this.getChildren(rootNode).filter((child) => this._find(node.getId(), child));
const branch = branches[0];
const result = this.getSiblings(branch).filter((sibling) => {
- const sameSide = node.getPosition().x > rootNode.getPosition().x
- ? sibling.getPosition().x > rootNode.getPosition().x
- : sibling.getPosition().x < rootNode.getPosition().x;
- const sameDirection = yOffset < 0
- ? sibling.getOrder() < branch.getOrder()
- : sibling.getOrder() > branch.getOrder();
+ const sameSide =
+ node.getPosition().x > rootNode.getPosition().x
+ ? sibling.getPosition().x > rootNode.getPosition().x
+ : sibling.getPosition().x < rootNode.getPosition().x;
+ const sameDirection =
+ yOffset < 0
+ ? sibling.getOrder() < branch.getOrder()
+ : sibling.getOrder() > branch.getOrder();
return sameSide && sameDirection;
}, this);
diff --git a/packages/mindplot/src/components/layout/SymmetricSorter.js b/packages/mindplot/src/components/layout/SymmetricSorter.js
index 0fa82bcb..5a4e7326 100644
--- a/packages/mindplot/src/components/layout/SymmetricSorter.js
+++ b/packages/mindplot/src/components/layout/SymmetricSorter.js
@@ -20,44 +20,37 @@ import AbstractBasicSorter from './AbstractBasicSorter';
class SymmetricSorter extends AbstractBasicSorter {
/**
- * Predict the order and position of a dragged node.
- *
- * @param graph The tree set
- * @param parent The parent of the node
- * @param node The node
- * @param position The position of the drag
- * @param free Free drag or not
- * @return {*}
- */
+ * Predict the order and position of a dragged node.
+ *
+ * @param graph The tree set
+ * @param parent The parent of the node
+ * @param node The node
+ * @param position The position of the drag
+ * @param free Free drag or not
+ * @return {*}
+ */
predict(graph, parent, node, position, free) {
const self = this;
const rootNode = graph.getRootNode(parent);
// If its a free node...
if (free) {
- $assert($defined(position),
- 'position cannot be null for predict in free positioning');
+ $assert($defined(position), 'position cannot be null for predict in free positioning');
$assert($defined(node), 'node cannot be null for predict in free positioning');
- const direction = this._getRelativeDirection(
- rootNode.getPosition(),
- parent.getPosition(),
- );
- const limitXPos = parent.getPosition().x
- + direction
- * (parent.getSize().width / 2
- + node.getSize().width / 2
- + SymmetricSorter.INTERNODE_HORIZONTAL_PADDING);
+ const direction = this._getRelativeDirection(rootNode.getPosition(), parent.getPosition());
+ const limitXPos =
+ parent.getPosition().x +
+ direction *
+ (parent.getSize().width / 2 +
+ node.getSize().width / 2 +
+ SymmetricSorter.INTERNODE_HORIZONTAL_PADDING);
let xPos;
if (direction > 0) {
- xPos = position.x >= limitXPos
- ? position.x
- : limitXPos;
+ xPos = position.x >= limitXPos ? position.x : limitXPos;
} else {
- xPos = position.x <= limitXPos
- ? position.x
- : limitXPos;
+ xPos = position.x <= limitXPos ? position.x : limitXPos;
}
return [0, { x: xPos, y: position.y }];
}
@@ -71,9 +64,8 @@ class SymmetricSorter extends AbstractBasicSorter {
const result = {
x:
- parent.getPosition().x
- + parentDirection
- * (parent.getSize().width + SymmetricSorter.INTERNODE_HORIZONTAL_PADDING),
+ parent.getPosition().x +
+ parentDirection * (parent.getSize().width + SymmetricSorter.INTERNODE_HORIZONTAL_PADDING),
y: parent.getPosition().y,
};
return [graph.getChildren(parent).length, result];
@@ -81,10 +73,7 @@ class SymmetricSorter extends AbstractBasicSorter {
// If it is a dragged node...
$assert($defined(position), 'position cannot be null for predict in dragging');
- const nodeDirection = this._getRelativeDirection(
- rootNode.getPosition(),
- node.getPosition(),
- );
+ const nodeDirection = this._getRelativeDirection(rootNode.getPosition(), node.getPosition());
const positionDirection = this._getRelativeDirection(rootNode.getPosition(), position);
const siblings = graph.getSiblings(node);
@@ -98,9 +87,10 @@ class SymmetricSorter extends AbstractBasicSorter {
if (parentChildren.length === 0) {
// Fit as a child of the parent node...
const result = {
- x: parent.getPosition().x
- + positionDirection
- * (parent.getSize().width + SymmetricSorter.INTERNODE_HORIZONTAL_PADDING),
+ x:
+ parent.getPosition().x +
+ positionDirection *
+ (parent.getSize().width + SymmetricSorter.INTERNODE_HORIZONTAL_PADDING),
y: parent.getPosition().y,
};
@@ -115,41 +105,38 @@ class SymmetricSorter extends AbstractBasicSorter {
// Fit at the bottom
if (!nodeAfter && position.y > parentChild.getPosition().y) {
- const order = graph.getParent(node) && graph.getParent(node).getId() === parent.getId()
- ? last.getOrder()
- : last.getOrder() + 1;
+ const order =
+ graph.getParent(node) && graph.getParent(node).getId() === parent.getId()
+ ? last.getOrder()
+ : last.getOrder() + 1;
const result = {
x: parentChild.getPosition().x,
y:
- parentChild.getPosition().y
- + parentChild.getSize().height
- + SymmetricSorter.INTERNODE_VERTICAL_PADDING * 2,
+ parentChild.getPosition().y +
+ parentChild.getSize().height +
+ SymmetricSorter.INTERNODE_VERTICAL_PADDING * 2,
};
return [order, result];
}
// Fit after this node
if (
- nodeAfter
- && position.y > parentChild.getPosition().y
- && position.y < nodeAfter.getPosition().y
+ nodeAfter &&
+ position.y > parentChild.getPosition().y &&
+ position.y < nodeAfter.getPosition().y
) {
- if (
- nodeAfter.getId() === node.getId()
- || parentChild.getId() === node.getId()
- ) {
+ if (nodeAfter.getId() === node.getId() || parentChild.getId() === node.getId()) {
return [node.getOrder(), node.getPosition()];
}
- const orderResult = position.y > node.getPosition().y
- ? nodeAfter.getOrder() - 1
- : parentChild.getOrder() + 1;
+ const orderResult =
+ position.y > node.getPosition().y ? nodeAfter.getOrder() - 1 : parentChild.getOrder() + 1;
const positionResult = {
x: parentChild.getPosition().x,
y:
- parentChild.getPosition().y
- + (nodeAfter.getPosition().y - parentChild.getPosition().y) / 2,
+ parentChild.getPosition().y +
+ (nodeAfter.getPosition().y - parentChild.getPosition().y) / 2,
};
return [orderResult, positionResult];
@@ -161,20 +148,20 @@ class SymmetricSorter extends AbstractBasicSorter {
const resultPosition = {
x: first.getPosition().x,
y:
- first.getPosition().y
- - first.getSize().height
- - SymmetricSorter.INTERNODE_VERTICAL_PADDING * 2,
+ first.getPosition().y -
+ first.getSize().height -
+ SymmetricSorter.INTERNODE_VERTICAL_PADDING * 2,
};
return [0, resultPosition];
}
/**
- * @param treeSet
- * @param parent
- * @param child
- * @param order
- * @throws will throw an error if the order is not strictly continuous
- */
+ * @param treeSet
+ * @param parent
+ * @param child
+ * @param order
+ * @throws will throw an error if the order is not strictly continuous
+ */
insert(treeSet, parent, child, order) {
const children = this._getSortedChildren(treeSet, parent);
$assert(
@@ -191,9 +178,9 @@ class SymmetricSorter extends AbstractBasicSorter {
}
/**
- * @param treeSet
- * @param node
- * @throws will throw an error if the node is in the wrong position */
+ * @param treeSet
+ * @param node
+ * @throws will throw an error if the node is in the wrong position */
detach(treeSet, node) {
const parent = treeSet.getParent(node);
const children = this._getSortedChildren(treeSet, parent);
@@ -227,13 +214,14 @@ class SymmetricSorter extends AbstractBasicSorter {
// Compute heights ...
const heights = children
- .map(((child) => ({
+ .map((child) => ({
id: child.getId(),
order: child.getOrder(),
position: child.getPosition(),
width: child.getSize().width,
height: this._computeChildrenHeight(treeSet, child),
- }))).reverse();
+ }))
+ .reverse();
// Compute the center of the branch ...
let totalHeight = 0;
@@ -250,10 +238,11 @@ class SymmetricSorter extends AbstractBasicSorter {
const direction = this.getChildDirection(treeSet, childNode);
const yOffset = ysum + heights[i].height / 2;
- const xOffset = direction
- * (heights[i].width / 2
- + node.getSize().width / 2
- + SymmetricSorter.INTERNODE_HORIZONTAL_PADDING);
+ const xOffset =
+ direction *
+ (heights[i].width / 2 +
+ node.getSize().width / 2 +
+ SymmetricSorter.INTERNODE_HORIZONTAL_PADDING);
$assert(!Number.isNaN(xOffset), 'xOffset can not be null');
$assert(!Number.isNaN(yOffset), 'yOffset can not be null');
@@ -264,10 +253,10 @@ class SymmetricSorter extends AbstractBasicSorter {
}
/**
- * @param treeSet
- * @param node
- * @throws will throw an error if order elements are missing
- */
+ * @param treeSet
+ * @param node
+ * @throws will throw an error if order elements are missing
+ */
verify(treeSet, node) {
// Check that all is consistent ...
const children = this._getSortedChildren(treeSet, node);
diff --git a/packages/mindplot/src/components/model/FeatureModel.ts b/packages/mindplot/src/components/model/FeatureModel.ts
index 8fb14a55..27a32afd 100644
--- a/packages/mindplot/src/components/model/FeatureModel.ts
+++ b/packages/mindplot/src/components/model/FeatureModel.ts
@@ -28,11 +28,11 @@ class FeatureModel {
private _attributes;
/**
- * @constructs
- * @param type
- * @throws will throw an exception if type is null or undefined
- * assigns a unique id and the given type to the new model
- */
+ * @constructs
+ * @param type
+ * @throws will throw an exception if type is null or undefined
+ * assigns a unique id and the given type to the new model
+ */
constructor(type: FeatureType) {
$assert(type, 'type can not be null');
this._id = FeatureModel._nextUUID();
diff --git a/packages/mindplot/src/components/model/FeatureModelFactory.ts b/packages/mindplot/src/components/model/FeatureModelFactory.ts
index 95fb9649..2fb7487a 100644
--- a/packages/mindplot/src/components/model/FeatureModelFactory.ts
+++ b/packages/mindplot/src/components/model/FeatureModelFactory.ts
@@ -6,35 +6,38 @@ import FeatureModel from './FeatureModel';
import FeatureType from './FeatureType';
interface NodeById {
- id: FeatureType,
+ id: FeatureType;
model: typeof FeatureModel;
}
class FeatureModelFactory {
- static modelById: Array = [{
- id: 'icon',
- model: IconModel,
- }, {
- id: 'link',
- model: LinkModel,
- }, {
- id: 'note',
- model: NoteModel,
- }];
+ static modelById: Array = [
+ {
+ id: 'icon',
+ model: IconModel,
+ },
+ {
+ id: 'link',
+ model: LinkModel,
+ },
+ {
+ id: 'note',
+ model: NoteModel,
+ },
+ ];
static createModel(type: FeatureType, attributes): FeatureModel {
$assert(type, 'type can not be null');
$assert(attributes, 'attributes can not be null');
- const { model: Model } = FeatureModelFactory.modelById
- .filter((elem) => elem.id === type)[0];
+ const { model: Model } = FeatureModelFactory.modelById.filter((elem) => elem.id === type)[0];
return new Model(attributes);
}
/**
- * @param id the feature metadata id
- * @return {Boolean} returns true if the given id is contained in the metadata array
- */
+ * @param id the feature metadata id
+ * @return {Boolean} returns true if the given id is contained in the metadata array
+ */
static isSupported(type: string): boolean {
return FeatureModelFactory.modelById.some((elem) => elem.id === type);
}
diff --git a/packages/mindplot/src/components/model/IMindmap.ts b/packages/mindplot/src/components/model/IMindmap.ts
index fa119af0..95a15e59 100644
--- a/packages/mindplot/src/components/model/IMindmap.ts
+++ b/packages/mindplot/src/components/model/IMindmap.ts
@@ -30,7 +30,7 @@ abstract class IMindmap {
abstract setDescription(value: string): void;
- abstract getId(): string
+ abstract getId(): string;
abstract setId(id: string): void;
@@ -58,10 +58,10 @@ abstract class IMindmap {
}
/**
- * @param child
- * @throws will throw an error if child is null or undefined
- * @throws will throw an error if child's parent cannot be found
- */
+ * @param child
+ * @throws will throw an error if child is null or undefined
+ * @throws will throw an error if child's parent cannot be found
+ */
disconnect(child: INodeModel): void {
const parent = child.getParent();
$assert(child, 'Child can not be null.');
@@ -73,7 +73,7 @@ abstract class IMindmap {
abstract hasAlreadyAdded(node): boolean;
- abstract createNode(type: NodeType, id: number)
+ abstract createNode(type: NodeType, id: number);
abstract createRelationship(fromNodeId: number, toNodeId: number): void;
@@ -81,7 +81,7 @@ abstract class IMindmap {
abstract deleteRelationship(relationship: RelationshipModel): void;
- inspect():string {
+ inspect(): string {
let result = '';
result = '{ ';
@@ -102,7 +102,7 @@ abstract class IMindmap {
return result;
}
- copyTo(target:IMindmap) {
+ copyTo(target: IMindmap) {
const version = this.getVersion();
target.setVersion(version);
diff --git a/packages/mindplot/src/components/model/INodeModel.ts b/packages/mindplot/src/components/model/INodeModel.ts
index 46bb9e3a..214ff9fd 100644
--- a/packages/mindplot/src/components/model/INodeModel.ts
+++ b/packages/mindplot/src/components/model/INodeModel.ts
@@ -24,7 +24,8 @@ import Mindmap from './Mindmap';
export type NodeModelType = 'CentralTopic' | 'MainTopic';
// regex taken from https://stackoverflow.com/a/34763398/58128
-const parseJsObject = (str: string) => JSON.parse(str.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"$2": '));
+const parseJsObject = (str: string) =>
+ JSON.parse(str.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"$2": '));
abstract class INodeModel {
static MAIN_TOPIC_TO_MAIN_TOPIC_DISTANCE = 220;
@@ -90,7 +91,7 @@ abstract class INodeModel {
this.putProperty('imageSize', `{width:${width},height:${height}}`);
}
- getImageSize(): { width: number, height: number } {
+ getImageSize(): { width: number; height: number } {
const value = this.getProperty('imageSize') as string;
let result;
if (value != null) {
@@ -120,9 +121,9 @@ abstract class INodeModel {
}
/**
- * lets the mindmap handle the disconnect node operation
- * @see mindplot.model.IMindmap.disconnect
- */
+ * lets the mindmap handle the disconnect node operation
+ * @see mindplot.model.IMindmap.disconnect
+ */
disconnect(): void {
const mindmap = this.getMindmap();
mindmap.disconnect(this);
@@ -233,10 +234,10 @@ abstract class INodeModel {
abstract append(node): void;
/**
- * lets the mindmap handle the connect node operation
- * @throws will throw an error if parent is null or undefined
- * @see mindplot.model.IMindmap.connect
- */
+ * lets the mindmap handle the connect node operation
+ * @throws will throw an error if parent is null or undefined
+ * @see mindplot.model.IMindmap.connect
+ */
connectTo(parent: INodeModel) {
$assert(parent, 'parent can not be null');
const mindmap = this.getMindmap();
@@ -244,9 +245,9 @@ abstract class INodeModel {
}
/**
- * @param target
- * @return target
- */
+ * @param target
+ * @return target
+ */
copyTo(target: INodeModel): INodeModel {
const source = this;
// Copy properties ...
@@ -270,9 +271,9 @@ abstract class INodeModel {
}
/**
- * lets parent handle the delete node operation, or, if none defined, calls the mindmap to
- * remove the respective branch
- */
+ * lets parent handle the delete node operation, or, if none defined, calls the mindmap to
+ * remove the respective branch
+ */
deleteNode(): void {
const mindmap = this.getMindmap();
diff --git a/packages/mindplot/src/components/model/IconModel.ts b/packages/mindplot/src/components/model/IconModel.ts
index 7f0d6058..58b35370 100644
--- a/packages/mindplot/src/components/model/IconModel.ts
+++ b/packages/mindplot/src/components/model/IconModel.ts
@@ -28,7 +28,7 @@ class IconModel extends FeatureModel {
return this.getAttribute('id') as string;
}
- setIconType(iconType: string):void {
+ setIconType(iconType: string): void {
$assert(iconType, 'iconType id can not be null');
this.setAttribute('id', iconType);
}
diff --git a/packages/mindplot/src/components/model/LinkModel.ts b/packages/mindplot/src/components/model/LinkModel.ts
index ac22f946..02647e3e 100644
--- a/packages/mindplot/src/components/model/LinkModel.ts
+++ b/packages/mindplot/src/components/model/LinkModel.ts
@@ -41,16 +41,20 @@ class LinkModel extends FeatureModel {
// url format is already checked in LinkEditor.checkUrl
static _fixUrl(url: string): string {
let result = url;
- if (!result.includes('http://') && !result.includes('https://') && !result.includes('mailto://')) {
+ if (
+ !result.includes('http://') &&
+ !result.includes('https://') &&
+ !result.includes('mailto://')
+ ) {
result = `http://${result}`;
}
return result;
}
/**
- * @param {String} urlType the url type, either 'mail' or 'url'
- * @throws will throw an error if urlType is null or undefined
- */
+ * @param {String} urlType the url type, either 'mail' or 'url'
+ * @throws will throw an error if urlType is null or undefined
+ */
setUrlType(urlType) {
$assert(urlType, 'urlType can not be null');
this.setAttribute('urlType', urlType);
diff --git a/packages/mindplot/src/components/model/Mindmap.ts b/packages/mindplot/src/components/model/Mindmap.ts
index 1363afef..0d3b40fb 100644
--- a/packages/mindplot/src/components/model/Mindmap.ts
+++ b/packages/mindplot/src/components/model/Mindmap.ts
@@ -75,10 +75,10 @@ class Mindmap extends IMindmap {
}
/**
- * @param {mindplot.model.NodeModel} nodeModel
- * @throws will throw an error if nodeModel is null, undefined or not a node model object
- * @throws will throw an error if
- */
+ * @param {mindplot.model.NodeModel} nodeModel
+ * @throws will throw an error if nodeModel is null, undefined or not a node model object
+ * @throws will throw an error if
+ */
addBranch(nodeModel: INodeModel): void {
$assert(nodeModel && nodeModel.isNodeModel(), 'Add node must be invoked with model objects');
const branches = this.getBranches();
@@ -93,14 +93,14 @@ class Mindmap extends IMindmap {
}
/**
- * @param nodeModel
- */
+ * @param nodeModel
+ */
removeBranch(nodeModel: INodeModel): void {
$assert(nodeModel && nodeModel.isNodeModel(), 'Remove node must be invoked with model objects');
this._branches = this._branches.filter((b) => b !== nodeModel);
}
- getBranches():NodeModel[] {
+ getBranches(): NodeModel[] {
return this._branches;
}
@@ -122,7 +122,7 @@ class Mindmap extends IMindmap {
return result;
}
- createNode(type: NodeModelType = 'MainTopic', id?: number):NodeModel {
+ createNode(type: NodeModelType = 'MainTopic', id?: number): NodeModel {
return new NodeModel(type, this, id);
}
@@ -141,8 +141,8 @@ class Mindmap extends IMindmap {
}
/**
- * @param relationship
- */
+ * @param relationship
+ */
deleteRelationship(relationship: RelationshipModel) {
this._relationships = this._relationships.filter((r) => r !== relationship);
}
diff --git a/packages/mindplot/src/components/model/NodeModel.ts b/packages/mindplot/src/components/model/NodeModel.ts
index cabd914a..32cd2957 100644
--- a/packages/mindplot/src/components/model/NodeModel.ts
+++ b/packages/mindplot/src/components/model/NodeModel.ts
@@ -49,18 +49,18 @@ class NodeModel extends INodeModel {
}
/**
- * @param type
- * @param attributes
- * @return {mindplot.model.FeatureModel} the created feature model
- */
+ * @param type
+ * @param attributes
+ * @return {mindplot.model.FeatureModel} the created feature model
+ */
createFeature(type: FeatureType, attributes): FeatureModel {
return FeatureModelFactory.createModel(type, attributes);
}
/**
- * @param feature
- * @throws will throw an error if feature is null or undefined
- */
+ * @param feature
+ * @throws will throw an error if feature is null or undefined
+ */
addFeature(feature: FeatureModel) {
$assert(feature, 'feature can not be null');
this._features.push(feature);
@@ -78,20 +78,20 @@ class NodeModel extends INodeModel {
}
/**
- * @param {String} type the feature type, e.g. icon or link
- * @throws will throw an error if type is null or undefined
- */
+ * @param {String} type the feature type, e.g. icon or link
+ * @throws will throw an error if type is null or undefined
+ */
findFeatureByType(type: string): FeatureModel[] {
$assert(type, 'type can not be null');
return this._features.filter((feature) => feature.getType() === type);
}
/**
- * @param {String} id
- * @throws will throw an error if id is null or undefined
- * @throws will throw an error if feature could not be found
- * @return the feature with the given id
- */
+ * @param {String} id
+ * @throws will throw an error if id is null or undefined
+ * @throws will throw an error if feature could not be found
+ * @return the feature with the given id
+ */
findFeatureById(id: number): FeatureModel {
$assert($defined(id), 'id can not be null');
const result = this._features.filter((feature) => feature.getId() === id);
@@ -104,10 +104,10 @@ class NodeModel extends INodeModel {
}
/**
- * @param key
- * @param value
- * @throws will throw an error if key is null or undefined
- */
+ * @param key
+ * @param value
+ * @throws will throw an error if key is null or undefined
+ */
putProperty(key: string, value: string | number | boolean) {
$defined(key, 'key can not be null');
this._properties[key] = value;
diff --git a/packages/mindplot/src/components/model/RelationshipModel.ts b/packages/mindplot/src/components/model/RelationshipModel.ts
index ddf34d7d..3fb8686c 100644
--- a/packages/mindplot/src/components/model/RelationshipModel.ts
+++ b/packages/mindplot/src/components/model/RelationshipModel.ts
@@ -108,8 +108,8 @@ class RelationshipModel {
}
/**
- * @return a clone of the relationship model
- */
+ * @return a clone of the relationship model
+ */
clone() {
const result = new RelationshipModel(this._sourceTargetId, this._targetTopicId);
result._id = this._id;
@@ -122,14 +122,10 @@ class RelationshipModel {
}
/**
- * @return {String} textual information about the relationship's source and target node
- */
+ * @return {String} textual information about the relationship's source and target node
+ */
inspect(): string {
- return (
- `(fromNode:${this.getFromNode()
- } , toNode: ${this.getToNode()
- })`
- );
+ return `(fromNode:${this.getFromNode()} , toNode: ${this.getToNode()})`;
}
static _nextUUID() {
diff --git a/packages/mindplot/src/components/persistence/Pela2TangoMigrator.ts b/packages/mindplot/src/components/persistence/Pela2TangoMigrator.ts
index 40ce6134..62262978 100644
--- a/packages/mindplot/src/components/persistence/Pela2TangoMigrator.ts
+++ b/packages/mindplot/src/components/persistence/Pela2TangoMigrator.ts
@@ -83,7 +83,7 @@ class Pela2TangoMigrator implements XMLMindmapSerializer {
}
}
- private _fixNodePosition(node: NodeModel, parentPosition: { x: number, y: number }): void {
+ private _fixNodePosition(node: NodeModel, parentPosition: { x: number; y: number }): void {
// Position was not required in previous versions. Try to synthesize one .
let position = node.getPosition();
if (!position) {
diff --git a/packages/mindplot/src/components/persistence/XMLMindmapSerializer.ts b/packages/mindplot/src/components/persistence/XMLMindmapSerializer.ts
index bb5f5ca6..39f146c3 100644
--- a/packages/mindplot/src/components/persistence/XMLMindmapSerializer.ts
+++ b/packages/mindplot/src/components/persistence/XMLMindmapSerializer.ts
@@ -19,7 +19,7 @@
import Mindmap from '../model/Mindmap';
interface XMLMindmapSerializer {
- toXML(mindmap: Mindmap): Document;
- loadFromDom(dom: Document, mapId: string): Mindmap;
+ toXML(mindmap: Mindmap): Document;
+ loadFromDom(dom: Document, mapId: string): Mindmap;
}
export default XMLMindmapSerializer;
diff --git a/packages/mindplot/src/components/persistence/XMLSerializerBeta.ts b/packages/mindplot/src/components/persistence/XMLSerializerBeta.ts
index 16e90335..3b9e8744 100644
--- a/packages/mindplot/src/components/persistence/XMLSerializerBeta.ts
+++ b/packages/mindplot/src/components/persistence/XMLSerializerBeta.ts
@@ -14,9 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import {
- $defined, $assert, createDocument,
-} from '@wisemapping/core-js';
+import { $defined, $assert, createDocument } from '@wisemapping/core-js';
import ModelCodeName from './ModelCodeName';
import Mindmap from '../model/Mindmap';
import FeatureModelFactory from '../model/FeatureModelFactory';
@@ -99,11 +97,11 @@ class XMLSerializerBeta implements XMLMindmapSerializer {
font += `${fontStyle || ''};`;
if (
- $defined(fontFamily)
- || $defined(fontSize)
- || $defined(fontColor)
- || $defined(fontWeight)
- || $defined(fontStyle)
+ $defined(fontFamily) ||
+ $defined(fontSize) ||
+ $defined(fontColor) ||
+ $defined(fontWeight) ||
+ $defined(fontStyle)
) {
parentTopic.setAttribute('fontStyle', font);
}
@@ -180,7 +178,8 @@ class XMLSerializerBeta implements XMLMindmapSerializer {
// Is a wisemap?.
$assert(
documentElement.tagName === XMLSerializerBeta.MAP_ROOT_NODE,
- `This seem not to be a map document. Root Tag: '${documentElement.tagName}',HTML:${dom.innerHTML
+ `This seem not to be a map document. Root Tag: '${documentElement.tagName}',HTML:${
+ dom.innerHTML
}, XML:,${new XMLSerializer().serializeToString(dom)}`,
);
@@ -202,9 +201,7 @@ class XMLSerializerBeta implements XMLMindmapSerializer {
}
_deserializeNode(domElem, mindmap) {
- const type = domElem.getAttribute('central') != null
- ? 'CentralTopic'
- : 'MainTopic';
+ const type = domElem.getAttribute('central') != null ? 'CentralTopic' : 'MainTopic';
const topic = mindmap.createNode(type);
// Load attributes...
@@ -275,10 +272,10 @@ class XMLSerializerBeta implements XMLMindmapSerializer {
const child = children[i];
if (child.nodeType === 1) {
$assert(
- child.tagName === 'topic'
- || child.tagName === 'icon'
- || child.tagName === 'link'
- || child.tagName === 'note',
+ child.tagName === 'topic' ||
+ child.tagName === 'icon' ||
+ child.tagName === 'link' ||
+ child.tagName === 'note',
`Illegal node type:${child.tagName}`,
);
if (child.tagName === 'topic') {
diff --git a/packages/mindplot/src/components/persistence/XMLSerializerFactory.ts b/packages/mindplot/src/components/persistence/XMLSerializerFactory.ts
index 0919bc63..a6c43b55 100644
--- a/packages/mindplot/src/components/persistence/XMLSerializerFactory.ts
+++ b/packages/mindplot/src/components/persistence/XMLSerializerFactory.ts
@@ -24,7 +24,7 @@ import XMLSerializerTango from './XMLSerializerTango';
import Mindmap from '../model/Mindmap';
import XMLMindmapSerializer from './XMLMindmapSerializer';
-const codeToSerializer: { codeName: string, serializer, migrator }[] = [
+const codeToSerializer: { codeName: string; serializer; migrator }[] = [
{
codeName: ModelCodeName.BETA,
serializer: XMLSerializerBeta,
@@ -51,8 +51,7 @@ class XMLSerializerFactory {
* mindplot.persistence.XMLSerializer_Tango} serializer corresponding to the mindmap's version
*/
static createInstanceFromMindmap(mindmap: Mindmap) {
- return XMLSerializerFactory
- .getSerializer(mindmap.getVersion());
+ return XMLSerializerFactory.getSerializer(mindmap.getVersion());
}
/**
@@ -83,7 +82,7 @@ class XMLSerializerFactory {
if (!found) {
found = codeToSerializer[i].codeName === version;
// eslint-disable-next-line new-cap
- if (found) result = new (codeToSerializer[i].serializer)();
+ if (found) result = new codeToSerializer[i].serializer();
} else {
const { migrator } = codeToSerializer[i];
// eslint-disable-next-line new-cap
diff --git a/packages/mindplot/src/components/persistence/XMLSerializerTango.ts b/packages/mindplot/src/components/persistence/XMLSerializerTango.ts
index e8e7b719..ecc68706 100644
--- a/packages/mindplot/src/components/persistence/XMLSerializerTango.ts
+++ b/packages/mindplot/src/components/persistence/XMLSerializerTango.ts
@@ -60,8 +60,8 @@ class XMLSerializerTango implements XMLMindmapSerializer {
const relationships = mindmap.getRelationships();
relationships.forEach((relationship) => {
if (
- mindmap.findNodeById(relationship.getFromNode()) !== null
- && mindmap.findNodeById(relationship.getToNode()) !== null
+ mindmap.findNodeById(relationship.getFromNode()) !== null &&
+ mindmap.findNodeById(relationship.getToNode()) !== null
) {
// Isolated relationships are not persisted ....
const relationDom = XMLSerializerTango._relationshipToXML(document, relationship);
@@ -99,14 +99,15 @@ class XMLSerializerTango implements XMLMindmapSerializer {
if (shape === TopicShape.IMAGE) {
const size = topic.getImageSize();
- parentTopic.setAttribute(
- 'image',
- `${size.width},${size.height}:${topic.getImageUrl()}`,
- );
+ parentTopic.setAttribute('image', `${size.width},${size.height}:${topic.getImageUrl()}`);
}
}
- if ((topic.areChildrenShrunken() && topic.getChildren().length > 0) && topic.getType() !== 'CentralTopic') {
+ if (
+ topic.areChildrenShrunken() &&
+ topic.getChildren().length > 0 &&
+ topic.getType() !== 'CentralTopic'
+ ) {
parentTopic.setAttribute('shrink', 'true');
}
@@ -132,11 +133,11 @@ class XMLSerializerTango implements XMLMindmapSerializer {
font += `${fontStyle || ''};`;
if (
- $defined(fontFamily)
- || $defined(fontSize)
- || $defined(fontColor)
- || $defined(fontWeight)
- || $defined(fontStyle)
+ $defined(fontFamily) ||
+ $defined(fontSize) ||
+ $defined(fontColor) ||
+ $defined(fontWeight) ||
+ $defined(fontStyle)
) {
parentTopic.setAttribute('fontStyle', font);
}
@@ -208,10 +209,7 @@ class XMLSerializerTango implements XMLMindmapSerializer {
if (lineType === ConnectionLine.CURVED || lineType === ConnectionLine.SIMPLE_CURVED) {
if ($defined(relationship.getSrcCtrlPoint())) {
const srcPoint = relationship.getSrcCtrlPoint();
- result.setAttribute(
- 'srcCtrlPoint',
- `${Math.round(srcPoint.x)},${Math.round(srcPoint.y)}`,
- );
+ result.setAttribute('srcCtrlPoint', `${Math.round(srcPoint.x)},${Math.round(srcPoint.y)}`);
}
if ($defined(relationship.getDestCtrlPoint())) {
const destPoint = relationship.getDestCtrlPoint();
@@ -246,9 +244,7 @@ class XMLSerializerTango implements XMLMindmapSerializer {
// Add all the topics nodes ...
const childNodes = Array.from(rootElem.childNodes);
const topicsNodes = childNodes
- .filter(
- (child: ChildNode) => child.nodeType === 1 && (child as Element).tagName === 'topic',
- )
+ .filter((child: ChildNode) => child.nodeType === 1 && (child as Element).tagName === 'topic')
.map((c) => c as Element);
topicsNodes.forEach((child) => {
const topic = this._deserializeNode(child, mindmap);
@@ -488,16 +484,16 @@ class XMLSerializerTango implements XMLMindmapSerializer {
}
/**
- * This method ensures that the output String has only
- * valid XML unicode characters as specified by the
- * XML 1.0 standard. For reference, please see
- * the
- * standard. This method will return an empty
- * String if the input is null or empty.
- *
- * @param in The String whose non-valid characters we want to remove.
- * @return The in String, stripped of non-valid characters.
- */
+ * This method ensures that the output String has only
+ * valid XML unicode characters as specified by the
+ * XML 1.0 standard. For reference, please see
+ * the
+ * standard. This method will return an empty
+ * String if the input is null or empty.
+ *
+ * @param in The String whose non-valid characters we want to remove.
+ * @return The in String, stripped of non-valid characters.
+ */
protected _rmXmlInv(str: string) {
if (str == null || str === undefined) return null;
@@ -505,12 +501,12 @@ class XMLSerializerTango implements XMLMindmapSerializer {
for (let i = 0; i < str.length; i++) {
const c = str.charCodeAt(i);
if (
- c === 0x9
- || c === 0xa
- || c === 0xd
- || (c >= 0x20 && c <= 0xd7ff)
- || (c >= 0xe000 && c <= 0xfffd)
- || (c >= 0x10000 && c <= 0x10ffff)
+ c === 0x9 ||
+ c === 0xa ||
+ c === 0xd ||
+ (c >= 0x20 && c <= 0xd7ff) ||
+ (c >= 0xe000 && c <= 0xfffd) ||
+ (c >= 0x10000 && c <= 0x10ffff)
) {
result += str.charAt(i);
}
diff --git a/packages/mindplot/src/components/styles/mindplot-styles.js b/packages/mindplot/src/components/styles/mindplot-styles.js
new file mode 100644
index 00000000..d5e26f73
--- /dev/null
+++ b/packages/mindplot/src/components/styles/mindplot-styles.js
@@ -0,0 +1,132 @@
+const mindplotStyles = `
+
+ div#mindplot {
+ position: relative;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+ overflow: hidden;
+ opacity: 1;
+ background-color: #f2f2f2;
+ background-image: linear-gradient(#ebe9e7 1px, transparent 1px),
+ linear-gradient(to right, #ebe9e7 1px, #f2f2f2 1px);
+ background-size: 50px 50px;
+ }
+
+ .mindplot-svg-tooltip {
+ display: none;
+ color: rgb(51, 51, 51);
+ text-align: center;
+ padding: 1px;
+ border-radius: 6px;
+ position: absolute;
+ z-index: 999;
+ background-color: rgb(255, 255, 255);
+ animation: fadeIn 0.4s;
+ }
+
+ .fade-in {
+ animation: fadeIn ease 0.4s;
+ -webkit-animation: fadeIn ease 0.4s;
+ -moz-animation: fadeIn ease 0.4s;
+ -o-animation: fadeIn ease 0.4s;
+ -ms-animation: fadeIn ease 0.4s;
+ }
+
+ @keyframes fadeIn {
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+ }
+
+ @-moz-keyframes fadeIn {
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+ }
+
+ @-webkit-keyframes fadeIn {
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+ }
+
+ @-o-keyframes fadeIn {
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+ }
+
+ @-ms-keyframes fadeIn {
+ 0% { opacity: 0; }
+ 100% { opacity: 1; }
+ }
+
+.mindplot-svg-tooltip-title {
+ background-color: rgb(247, 247, 247);
+ border-bottom-color: rgb(235, 235, 235);
+ border-bottom-left-radius: 0px;
+ border-bottom-right-radius: 0px;
+ border-bottom-style: solid;
+ border-bottom-width: 1px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ box-sizing: border-box;
+ color: rgb(51, 51, 51);
+ cursor: default;
+ display: block;
+ padding: 8px 14px;
+ text-align: left;
+ font-family: Arial;
+ font-size: small;
+}
+
+.mindplot-svg-tooltip-content {
+ background-color: rgb(255, 255, 255);
+ padding: 6px 4px;
+ max-width: 250px;
+}
+
+.mindplot-svg-tooltip-content-link {
+ padding: 3px 5px;
+ overflow: hidden;
+ font-size: smaller;
+ text-decoration: none;
+ font-family: Arial;
+ font-size: small;
+ color: #428bca;
+}
+
+.mindplot-svg-tooltip-content-note {
+ text-align: left;
+ font-family: Arial;
+ font-size: small;
+}
+
+.mindplot-svg-tooltip:before {
+ content: "";
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-bottom: 10px solid #fff;
+ bottom: 100%;
+ right: 50%;
+ transform: translateX(50%);
+ z-index: 5;
+ }
+
+ .mindplot-svg-tooltip:after {
+ content: "";
+ display: block;
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-left: 10px solid transparent;
+ border-right: 10px solid transparent;
+ border-bottom: 10px solid rgb(247, 247, 247);
+ bottom: calc(1px + 100%);
+ right: 50%;
+ transform: translateX(50%);
+ }
+`;
+
+export default mindplotStyles;
diff --git a/packages/mindplot/src/components/util/Shape.js b/packages/mindplot/src/components/util/Shape.js
index f5f42f20..2feefc04 100644
--- a/packages/mindplot/src/components/util/Shape.js
+++ b/packages/mindplot/src/components/util/Shape.js
@@ -106,10 +106,7 @@ const Shape = {
const x2 = tarPos.x + Math.sqrt((l * l) / (1 + m * m)) * fix * -1;
const y2 = m * (x2 - tarPos.x) + tarPos.y;
- return [
- new Point(-srcPos.x + x1, -srcPos.y + y1),
- new Point(-tarPos.x + x2, -tarPos.y + y2),
- ];
+ return [new Point(-srcPos.x + x1, -srcPos.y + y1), new Point(-tarPos.x + x2, -tarPos.y + y2)];
},
workoutIncomingConnectionPoint(targetNode, sourcePosition) {
diff --git a/packages/mindplot/src/components/widget/bootstrap/BootstrapDialog.js b/packages/mindplot/src/components/widget/bootstrap/BootstrapDialog.js
deleted file mode 100644
index 3ba59482..00000000
--- a/packages/mindplot/src/components/widget/bootstrap/BootstrapDialog.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright [2021] [wisemapping]
- *
- * Licensed under WiseMapping Public License, Version 1.0 (the "License").
- * It is basically the Apache License, Version 2.0 (the "License") plus the
- * "powered by wisemapping" text requirement on every single page;
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the license at
- *
- * http://www.wisemapping.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import $ from 'jquery';
-import Options from '../../Options';
-import { $msg } from '../../Messages';
-
-class BootstrapDialog extends Options {
- constructor(title, options) {
- super();
- this.options = {
- cancelButton: false,
- closeButton: false,
- acceptButton: true,
- removeButton: false,
- errorMessage: false,
- onEventData: {},
- };
-
- this.setOptions(options);
- this.options.onEventData.dialog = this;
- this._native = $('').append(
- '',
- );
- const content = $('');
- const header = this._buildHeader(title);
-
- if (header) {
- content.append(header);
- }
- const body = $('');
- if (this.options.errorMessage) {
- const error = $('');
- error.hide();
- body.append(error);
- }
- content.append(body);
- const footer = this._buildFooter();
- if (footer) {
- content.append(footer);
- }
- this._native.find('.modal-dialog').append(content);
- this._native.on('hidden.bs.modal', function remove() {
- $(this).remove();
- });
- this._native.on('shown.bs.modal', this.onDialogShown);
-
- this._native.appendTo('#mindplot-tooltips');
- }
-
- _buildFooter() {
- let footer = null;
- if (this.options.acceptButton || this.options.removeButton || this.options.cancelButton) {
- footer = $('}>
+
+
+
+
+ }>
+
+
+
+
+ }>
+
+
+
+
+
+
+
+
+
+
+ ) : (
+
Loading ...
+ );
};
export default App;
diff --git a/packages/webapp/src/classes/app-config/index.ts b/packages/webapp/src/classes/app-config/index.ts
index 9c9be003..18265653 100644
--- a/packages/webapp/src/classes/app-config/index.ts
+++ b/packages/webapp/src/classes/app-config/index.ts
@@ -1,73 +1,80 @@
-import Client from "../client";
-import CacheDecoratorClient from "../client/cache-decorator-client";
-import MockClient from "../client/mock-client";
-import RestClient from "../client/rest-client";
-
+import Client from '../client';
+import CacheDecoratorClient from '../client/cache-decorator-client';
+import MockClient from '../client/mock-client';
+import RestClient from '../client/rest-client';
interface Config {
- apiBaseUrl: string;
- analyticsAccount?: string;
- recaptcha2Enabled: boolean;
- recaptcha2SiteKey?: string;
- clientType: 'mock' | 'rest';
+ apiBaseUrl: string;
+ analyticsAccount?: string;
+ recaptcha2Enabled: boolean;
+ recaptcha2SiteKey?: string;
+ clientType: 'mock' | 'rest';
}
class _AppConfig {
+ private defaultInstance: Config = {
+ apiBaseUrl: `${window.location.protocol}//${window.location.hostname}:${window.location.port}`,
+ clientType: 'mock',
+ recaptcha2Enabled: true,
+ recaptcha2SiteKey: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI',
+ };
- private defaultInstance: Config = {
- apiBaseUrl: '/',
- clientType: 'mock',
- recaptcha2Enabled: true,
- recaptcha2SiteKey: '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI'
+ isDevelopEnv(): boolean {
+ const config = this.getInstance();
+ return config.clientType === 'mock';
+ }
+
+ private getInstance(): Config {
+ // Config can be inserted in the html page to define the global properties ...
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ let result = (window as any).serverconfig;
+ if (!result) {
+ result = this.defaultInstance;
}
- isDevelopEnv(): boolean {
- const config = this.getInstance();
- return config.clientType === 'mock';
+ return result;
+ }
+
+ isRestClient(): boolean {
+ const config = this.getInstance();
+ return config.clientType === 'rest';
+ }
+
+ isRecaptcha2Enabled(): boolean {
+ const config = this.getInstance();
+ return config.recaptcha2Enabled;
+ }
+
+ getRecaptcha2SiteKey(): string | undefined {
+ const config = this.getInstance();
+ return config.recaptcha2SiteKey;
+ }
+
+ getGoogleAnalyticsAccount(): string | undefined {
+ const config = this.getInstance();
+ return config.analyticsAccount;
+ }
+
+ buildClient(): Client {
+ const config = this.getInstance();
+ let result: Client;
+ if (config.clientType == 'rest') {
+ result = new RestClient(this.getBaseUrl());
+ console.log('Service using rest client. ' + JSON.stringify(config));
+ } else {
+ console.log('Warning:Service using mockservice client');
+ result = new MockClient();
}
- private getInstance(): Config {
- // Config can be inserted in the html page to define the global properties ...
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- let result = (window as any).serverconfig;
- if (!result) {
- result = this.defaultInstance;
- }
+ // Wrap with a cache decorator ...
+ return new CacheDecoratorClient(result);
+ }
- return result;
- }
-
- isRecaptcha2Enabled(): boolean {
- const config = this.getInstance();
- return config.recaptcha2Enabled;
- }
-
- getRecaptcha2SiteKey(): string | undefined {
- const config = this.getInstance();
- return config.recaptcha2SiteKey;
- }
-
- getGoogleAnalyticsAccount(): string | undefined {
- const config = this.getInstance();
- return config.analyticsAccount;
- }
-
- buildClient(): Client {
-
- const config = this.getInstance();
- let result: Client;
- if (config.clientType == 'rest') {
- result = new RestClient(config.apiBaseUrl);
- console.log('Service using rest client. ' + JSON.stringify(config));
- } else {
- console.log('Warning:Service using mockservice client');
- result = new MockClient();
- }
-
- // Wrap with a cache decorator ...
- return new CacheDecoratorClient(result);
- }
+ getBaseUrl(): string {
+ const config = this.getInstance();
+ return config.apiBaseUrl;
+ }
}
const AppConfig = new _AppConfig();
-export default AppConfig;
\ No newline at end of file
+export default AppConfig;
diff --git a/packages/webapp/src/classes/app-i18n/index.ts b/packages/webapp/src/classes/app-i18n/index.ts
index 3019ea71..86a5f59e 100644
--- a/packages/webapp/src/classes/app-i18n/index.ts
+++ b/packages/webapp/src/classes/app-i18n/index.ts
@@ -7,91 +7,89 @@ import 'dayjs/locale/ru';
import 'dayjs/locale/zh';
export class Locale {
- code: LocaleCode;
- label: string;
- message: Record
;
+ code: LocaleCode;
+ label: string;
+ message: Record;
- constructor(code: LocaleCode, label: string, message: unknown) {
- this.code = code;
- this.label = label;
- this.message = message as Record;
- }
+ constructor(code: LocaleCode, label: string, message: unknown) {
+ this.code = code;
+ this.label = label;
+ this.message = message as Record;
+ }
}
export default abstract class AppI18n {
- private static LOCAL_STORAGE_KEY = 'user.locale';
+ private static LOCAL_STORAGE_KEY = 'user.locale';
- public static getUserLocale(): Locale {
- // @Todo Hack: Try page must not account info. Add this to avoid 403 errors.
- const isTryPage = window.location.href.endsWith('/try');
- let result: Locale;
- if (!isTryPage) {
- const account = fetchAccount();
- result = account?.locale ? account.locale : this.getDefaultLocale();
+ public static getUserLocale(): Locale {
+ // @Todo Hack: Try page must not account info. Add this to avoid 403 errors.
+ const isTryPage = window.location.href.endsWith('/try');
+ let result: Locale;
+ if (!isTryPage) {
+ const account = fetchAccount();
+ result = account?.locale ? account.locale : this.getDefaultLocale();
- // If the local storage value is different, update ...
- if (account?.locale && result.code !== localStorage.getItem(AppI18n.LOCAL_STORAGE_KEY)) {
- localStorage.setItem(AppI18n.LOCAL_STORAGE_KEY, result.code);
- }
+ // If the local storage value is different, update ...
+ if (account?.locale && result.code !== localStorage.getItem(AppI18n.LOCAL_STORAGE_KEY)) {
+ localStorage.setItem(AppI18n.LOCAL_STORAGE_KEY, result.code);
+ }
+ } else {
+ result = this.getDefaultLocale();
+ }
+ return result;
+ }
- } else {
- result = this.getDefaultLocale();
- }
- return result;
+ public static getBrowserLocale(): Locale {
+ let localeCode = (navigator.languages && navigator.languages[0]) || navigator.language;
+
+ // Just remove the variant ...
+ localeCode = localeCode.split('-')[0];
+
+ let result = Locales.EN;
+ try {
+ result = localeFromStr(localeCode);
+ } catch {
+ console.warn(`Unsupported languange code ${localeCode}`);
}
- public static getBrowserLocale(): Locale {
- let localeCode = (navigator.languages && navigator.languages[0]) || navigator.language;
+ return result;
+ }
- // Just remove the variant ...
- localeCode = localeCode.split('-')[0];
-
- let result = Locales.EN;
- try {
- result = localeFromStr(localeCode);
- } catch {
- console.warn(`Unsupported languange code ${localeCode}`);
- }
-
- return result;
+ public static getDefaultLocale(): Locale {
+ // Fetch local from local storage ...
+ let result: Locale;
+ const userLocaleCode: string = localStorage.getItem(AppI18n.LOCAL_STORAGE_KEY);
+ if (userLocaleCode) {
+ result = localeFromStr(userLocaleCode);
}
- public static getDefaultLocale(): Locale {
- // Fetch local from local storage ...
- let result: Locale;
- const userLocaleCode: string = localStorage.getItem(AppI18n.LOCAL_STORAGE_KEY);
- if (userLocaleCode) {
- result = localeFromStr(userLocaleCode);
- }
-
- // Ok, use browser default ...
- if (!result) {
- result = this.getBrowserLocale();
- }
- return result;
+ // Ok, use browser default ...
+ if (!result) {
+ result = this.getBrowserLocale();
}
+ return result;
+ }
}
export type LocaleCode = 'en' | 'es' | 'fr' | 'de' | 'ru' | 'zh';
export const Locales = {
- EN: new Locale('en', 'English', require('./../../compiled-lang/en.json')), // eslint-disable-line
- ES: new Locale('es', 'Español', require('./../../compiled-lang/es.json')), // eslint-disable-line
- DE: new Locale('fr', 'Français', require('./../../compiled-lang/fr.json')), // eslint-disable-line
- FR: new Locale('de', 'Deutsch', require('./../../compiled-lang/de.json')), // eslint-disable-line
- RU: new Locale('ru', 'Pусский', require('./../../compiled-lang/ru.json')), // eslint-disable-line
- ZH: new Locale('zh', '中文 (简体)', require('./../../compiled-lang/zh.json')), // eslint-disable-line
-
+ EN: new Locale('en', 'English', require('./../../compiled-lang/en.json')), // eslint-disable-line
+ ES: new Locale('es', 'Español', require('./../../compiled-lang/es.json')), // eslint-disable-line
+ DE: new Locale('fr', 'Français', require('./../../compiled-lang/fr.json')), // eslint-disable-line
+ FR: new Locale('de', 'Deutsch', require('./../../compiled-lang/de.json')), // eslint-disable-line
+ RU: new Locale('ru', 'Pусский', require('./../../compiled-lang/ru.json')), // eslint-disable-line
+ ZH: new Locale('zh', '中文 (简体)', require('./../../compiled-lang/zh.json')), // eslint-disable-line
};
export const localeFromStr = (code: string): Locale => {
- const locales: Locale[] = Object.values(Locales);
+ const locales: Locale[] = Object.values(Locales);
- const result = locales.find((l) => l.code == code);
+ const result = locales.find((l) => l.code == code);
- if (!result) {
- throw `Language code could not be found in list of default supported: + ${code}`;
- }
+ if (!result) {
+ throw `Language code could not be found in list of default supported: + ${code}`;
+ }
- return result;
+ return result;
};
diff --git a/packages/webapp/src/classes/client/cache-decorator-client/index.ts b/packages/webapp/src/classes/client/cache-decorator-client/index.ts
index 6cfa3735..4a1b3bee 100644
--- a/packages/webapp/src/classes/client/cache-decorator-client/index.ts
+++ b/packages/webapp/src/classes/client/cache-decorator-client/index.ts
@@ -1,143 +1,129 @@
-import { EditorRenderMode, Mindmap, PersistenceManager } from '@wisemapping/mindplot';
import Client, {
- AccountInfo,
- BasicMapInfo,
- ChangeHistory,
- ImportMapInfo,
- Label,
- MapInfo,
- NewUser,
- Permission,
+ AccountInfo,
+ BasicMapInfo,
+ ChangeHistory,
+ ImportMapInfo,
+ Label,
+ MapInfo,
+ NewUser,
+ Permission,
} from '..';
import { LocaleCode } from '../../app-i18n';
class CacheDecoratorClient implements Client {
- private client: Client;
+ private client: Client;
- constructor(client: Client) {
- this.client = client;
- }
+ constructor(client: Client) {
+ this.client = client;
+ }
- onSessionExpired(callback?: () => void): () => void {
- return this.client.onSessionExpired(callback);
- }
+ onSessionExpired(callback?: () => void): () => void {
+ return this.client.onSessionExpired(callback);
+ }
- fetchMindmap(id: number): Mindmap {
- return this.client.fetchMindmap(id);
- }
+ deleteAccount(): Promise {
+ return this.client.deleteAccount();
+ }
- deleteAccount(): Promise {
- return this.client.deleteAccount();
- }
+ importMap(model: ImportMapInfo): Promise {
+ return this.client.importMap(model);
+ }
- importMap(model: ImportMapInfo): Promise {
- return this.client.importMap(model);
- }
+ createMap(map: BasicMapInfo): Promise {
+ return this.client.createMap(map);
+ }
- createMap(map: BasicMapInfo): Promise {
- return this.client.createMap(map);
- }
+ deleteMaps(ids: number[]): Promise {
+ return this.client.deleteMaps(ids);
+ }
- deleteMaps(ids: number[]): Promise {
- return this.client.deleteMaps(ids);
- }
+ deleteMap(id: number): Promise {
+ return this.client.deleteMap(id);
+ }
- deleteMap(id: number): Promise {
- return this.client.deleteMap(id);
- }
+ renameMap(id: number, basicInfo: BasicMapInfo): Promise {
+ return this.client.renameMap(id, basicInfo);
+ }
- renameMap(id: number, basicInfo: BasicMapInfo): Promise {
- return this.client.renameMap(id, basicInfo);
- }
+ fetchAllMaps(): Promise {
+ return this.client.fetchAllMaps();
+ }
- fetchAllMaps(): Promise {
- return this.client.fetchAllMaps();
- }
+ fetchMapPermissions(id: number): Promise {
+ return this.client.fetchMapPermissions(id);
+ }
- fetchMapPermissions(id: number): Promise {
- return this.client.fetchMapPermissions(id);
- }
+ addMapPermissions(id: number, message: string, permissions: Permission[]): Promise {
+ return this.client.addMapPermissions(id, message, permissions);
+ }
- addMapPermissions(id: number, message: string, permissions: Permission[]): Promise {
- return this.client.addMapPermissions(id, message, permissions);
- }
+ deleteMapPermission(id: number, email: string): Promise {
+ return this.client.deleteMapPermission(id, email);
+ }
- deleteMapPermission(id: number, email: string): Promise {
- return this.client.deleteMapPermission(id, email);
- }
+ duplicateMap(id: number, basicInfo: BasicMapInfo): Promise {
+ return this.client.duplicateMap(id, basicInfo);
+ }
- duplicateMap(id: number, basicInfo: BasicMapInfo): Promise {
- return this.client.duplicateMap(id, basicInfo);
- }
+ updateAccountLanguage(locale: LocaleCode): Promise {
+ return this.client.updateAccountLanguage(locale);
+ }
- updateAccountLanguage(locale: LocaleCode): Promise {
- return this.client.updateAccountLanguage(locale);
- }
+ updateAccountPassword(pasword: string): Promise {
+ return this.client.updateAccountPassword(pasword);
+ }
- updateAccountPassword(pasword: string): Promise {
- return this.client.updateAccountPassword(pasword);
- }
+ updateAccountInfo(firstname: string, lastname: string): Promise {
+ return this.client.updateAccountInfo(firstname, lastname);
+ }
- updateAccountInfo(firstname: string, lastname: string): Promise {
- return this.client.updateAccountInfo(firstname, lastname);
- }
+ updateStarred(id: number, starred: boolean): Promise {
+ return this.client.updateStarred(id, starred);
+ }
- updateStarred(id: number, starred: boolean): Promise {
- return this.client.updateStarred(id, starred);
- }
+ updateMapToPublic(id: number, isPublic: boolean): Promise {
+ return this.client.updateMapToPublic(id, isPublic);
+ }
- updateMapToPublic(id: number, isPublic: boolean): Promise {
- return this.client.updateMapToPublic(id, isPublic);
- }
+ fetchLabels(): Promise