Shinobi CE officially lands on Gitlab
1
web/libs/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
demo
|
BIN
web/libs/audio/alert.mp3
Normal file
BIN
web/libs/audio/pop.mp3
Normal file
1
web/libs/css/bootstrap-table.min.css
vendored
Normal file
587
web/libs/css/bootstrap-theme.css
vendored
Normal file
|
@ -0,0 +1,587 @@
|
|||
/*!
|
||||
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* 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-default.disabled,
|
||||
.btn-primary.disabled,
|
||||
.btn-success.disabled,
|
||||
.btn-info.disabled,
|
||||
.btn-warning.disabled,
|
||||
.btn-danger.disabled,
|
||||
.btn-default[disabled],
|
||||
.btn-primary[disabled],
|
||||
.btn-success[disabled],
|
||||
.btn-info[disabled],
|
||||
.btn-warning[disabled],
|
||||
.btn-danger[disabled],
|
||||
fieldset[disabled] .btn-default,
|
||||
fieldset[disabled] .btn-primary,
|
||||
fieldset[disabled] .btn-success,
|
||||
fieldset[disabled] .btn-info,
|
||||
fieldset[disabled] .btn-warning,
|
||||
fieldset[disabled] .btn-danger {
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.btn-default .badge,
|
||||
.btn-primary .badge,
|
||||
.btn-success .badge,
|
||||
.btn-info .badge,
|
||||
.btn-warning .badge,
|
||||
.btn-danger .badge {
|
||||
text-shadow: none;
|
||||
}
|
||||
.btn:active,
|
||||
.btn.active {
|
||||
background-image: none;
|
||||
}
|
||||
.btn-default {
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
||||
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
|
||||
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #dbdbdb;
|
||||
border-color: #ccc;
|
||||
}
|
||||
.btn-default:hover,
|
||||
.btn-default:focus {
|
||||
background-color: #e0e0e0;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-default:active,
|
||||
.btn-default.active {
|
||||
background-color: #e0e0e0;
|
||||
border-color: #dbdbdb;
|
||||
}
|
||||
.btn-default.disabled,
|
||||
.btn-default[disabled],
|
||||
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.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: #e0e0e0;
|
||||
background-image: none;
|
||||
}
|
||||
.btn-primary {
|
||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
||||
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
|
||||
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #245580;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus {
|
||||
background-color: #265a88;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-primary:active,
|
||||
.btn-primary.active {
|
||||
background-color: #265a88;
|
||||
border-color: #245580;
|
||||
}
|
||||
.btn-primary.disabled,
|
||||
.btn-primary[disabled],
|
||||
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.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: #265a88;
|
||||
background-image: none;
|
||||
}
|
||||
.btn-success {
|
||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
|
||||
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #3e8f3e;
|
||||
}
|
||||
.btn-success:hover,
|
||||
.btn-success:focus {
|
||||
background-color: #419641;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-success:active,
|
||||
.btn-success.active {
|
||||
background-color: #419641;
|
||||
border-color: #3e8f3e;
|
||||
}
|
||||
.btn-success.disabled,
|
||||
.btn-success[disabled],
|
||||
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.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: #419641;
|
||||
background-image: none;
|
||||
}
|
||||
.btn-info {
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
|
||||
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #28a4c9;
|
||||
}
|
||||
.btn-info:hover,
|
||||
.btn-info:focus {
|
||||
background-color: #2aabd2;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-info:active,
|
||||
.btn-info.active {
|
||||
background-color: #2aabd2;
|
||||
border-color: #28a4c9;
|
||||
}
|
||||
.btn-info.disabled,
|
||||
.btn-info[disabled],
|
||||
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.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: #2aabd2;
|
||||
background-image: none;
|
||||
}
|
||||
.btn-warning {
|
||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
|
||||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #e38d13;
|
||||
}
|
||||
.btn-warning:hover,
|
||||
.btn-warning:focus {
|
||||
background-color: #eb9316;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-warning:active,
|
||||
.btn-warning.active {
|
||||
background-color: #eb9316;
|
||||
border-color: #e38d13;
|
||||
}
|
||||
.btn-warning.disabled,
|
||||
.btn-warning[disabled],
|
||||
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.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: #eb9316;
|
||||
background-image: none;
|
||||
}
|
||||
.btn-danger {
|
||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
|
||||
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #b92c28;
|
||||
}
|
||||
.btn-danger:hover,
|
||||
.btn-danger:focus {
|
||||
background-color: #c12e2a;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-danger:active,
|
||||
.btn-danger.active {
|
||||
background-color: #c12e2a;
|
||||
border-color: #b92c28;
|
||||
}
|
||||
.btn-danger.disabled,
|
||||
.btn-danger[disabled],
|
||||
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.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: #c12e2a;
|
||||
background-image: none;
|
||||
}
|
||||
.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-color: #e8e8e8;
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.dropdown-menu > .active > a,
|
||||
.dropdown-menu > .active > a:hover,
|
||||
.dropdown-menu > .active > a:focus {
|
||||
background-color: #2e6da4;
|
||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.navbar-default {
|
||||
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
|
||||
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
|
||||
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.navbar-default .navbar-nav > .open > a,
|
||||
.navbar-default .navbar-nav > .active > a {
|
||||
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
||||
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
|
||||
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.navbar-brand,
|
||||
.navbar-nav > li > a {
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
|
||||
}
|
||||
.navbar-inverse {
|
||||
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
||||
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
|
||||
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.navbar-inverse .navbar-nav > .open > a,
|
||||
.navbar-inverse .navbar-nav > .active > a {
|
||||
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
||||
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
|
||||
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||
}
|
||||
.navbar-inverse .navbar-brand,
|
||||
.navbar-inverse .navbar-nav > li > a {
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
|
||||
}
|
||||
.navbar-static-top,
|
||||
.navbar-fixed-top,
|
||||
.navbar-fixed-bottom {
|
||||
border-radius: 0;
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.navbar .navbar-nav .open .dropdown-menu > .active > a,
|
||||
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
|
||||
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
|
||||
color: #fff;
|
||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
}
|
||||
.alert {
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||
}
|
||||
.alert-success {
|
||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
|
||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #b2dba1;
|
||||
}
|
||||
.alert-info {
|
||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
|
||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #9acfea;
|
||||
}
|
||||
.alert-warning {
|
||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
|
||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #f5e79e;
|
||||
}
|
||||
.alert-danger {
|
||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
|
||||
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #dca7a7;
|
||||
}
|
||||
.progress {
|
||||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
|
||||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar {
|
||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
|
||||
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
|
||||
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-success {
|
||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
|
||||
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-info {
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
|
||||
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-warning {
|
||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
|
||||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-danger {
|
||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
|
||||
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-striped {
|
||||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
|
||||
}
|
||||
.list-group {
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.list-group-item.active,
|
||||
.list-group-item.active:hover,
|
||||
.list-group-item.active:focus {
|
||||
text-shadow: 0 -1px 0 #286090;
|
||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
|
||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #2b669a;
|
||||
}
|
||||
.list-group-item.active .badge,
|
||||
.list-group-item.active:hover .badge,
|
||||
.list-group-item.active:focus .badge {
|
||||
text-shadow: none;
|
||||
}
|
||||
.panel {
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||
}
|
||||
.panel-default > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-primary > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-success > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
|
||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-info > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
|
||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-warning > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
|
||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-danger > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
|
||||
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.well {
|
||||
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
|
||||
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #dcdcdc;
|
||||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-theme.css.map */
|
1
web/libs/css/bootstrap-theme.css.map
Normal file
6
web/libs/css/bootstrap-theme.min.css
vendored
Normal file
1
web/libs/css/bootstrap-theme.min.css.map
Normal file
6757
web/libs/css/bootstrap.css
vendored
Normal file
1
web/libs/css/bootstrap.css.map
Normal file
6
web/libs/css/bootstrap.min.css
vendored
Normal file
1
web/libs/css/bootstrap.min.css.map
Normal file
174
web/libs/css/c3.css
Normal file
|
@ -0,0 +1,174 @@
|
|||
/*-- Chart --*/
|
||||
.c3 svg {
|
||||
font: 10px sans-serif;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
|
||||
.c3 path, .c3 line {
|
||||
fill: none;
|
||||
stroke: #000; }
|
||||
|
||||
.c3 text {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.c3-legend-item-tile,
|
||||
.c3-xgrid-focus,
|
||||
.c3-ygrid,
|
||||
.c3-event-rect,
|
||||
.c3-bars path {
|
||||
shape-rendering: crispEdges; }
|
||||
|
||||
.c3-chart-arc path {
|
||||
stroke: #fff; }
|
||||
|
||||
.c3-chart-arc text {
|
||||
fill: #fff;
|
||||
font-size: 13px; }
|
||||
|
||||
/*-- Axis --*/
|
||||
/*-- Grid --*/
|
||||
.c3-grid line {
|
||||
stroke: #aaa; }
|
||||
|
||||
.c3-grid text {
|
||||
fill: #aaa; }
|
||||
|
||||
.c3-xgrid, .c3-ygrid {
|
||||
stroke-dasharray: 3 3; }
|
||||
|
||||
/*-- Text on Chart --*/
|
||||
.c3-text.c3-empty {
|
||||
fill: #808080;
|
||||
font-size: 2em; }
|
||||
|
||||
/*-- Line --*/
|
||||
.c3-line {
|
||||
stroke-width: 1px; }
|
||||
|
||||
/*-- Point --*/
|
||||
.c3-circle._expanded_ {
|
||||
stroke-width: 1px;
|
||||
stroke: white; }
|
||||
|
||||
.c3-selected-circle {
|
||||
fill: white;
|
||||
stroke-width: 2px; }
|
||||
|
||||
/*-- Bar --*/
|
||||
.c3-bar {
|
||||
stroke-width: 0; }
|
||||
|
||||
.c3-bar._expanded_ {
|
||||
fill-opacity: 1;
|
||||
fill-opacity: 0.75; }
|
||||
|
||||
/*-- Focus --*/
|
||||
.c3-target.c3-focused {
|
||||
opacity: 1; }
|
||||
|
||||
.c3-target.c3-focused path.c3-line, .c3-target.c3-focused path.c3-step {
|
||||
stroke-width: 2px; }
|
||||
|
||||
.c3-target.c3-defocused {
|
||||
opacity: 0.3 !important; }
|
||||
|
||||
/*-- Region --*/
|
||||
.c3-region {
|
||||
fill: steelblue;
|
||||
fill-opacity: .1; }
|
||||
|
||||
/*-- Brush --*/
|
||||
.c3-brush .extent {
|
||||
fill-opacity: .1; }
|
||||
|
||||
/*-- Select - Drag --*/
|
||||
/*-- Legend --*/
|
||||
.c3-legend-item {
|
||||
font-size: 12px; }
|
||||
|
||||
.c3-legend-item-hidden {
|
||||
opacity: 0.15; }
|
||||
|
||||
.c3-legend-background {
|
||||
opacity: 0.75;
|
||||
fill: white;
|
||||
stroke: lightgray;
|
||||
stroke-width: 1; }
|
||||
|
||||
/*-- Title --*/
|
||||
.c3-title {
|
||||
font: 14px sans-serif; }
|
||||
|
||||
/*-- Tooltip --*/
|
||||
.c3-tooltip-container {
|
||||
z-index: 10; }
|
||||
|
||||
.c3-tooltip {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
background-color: #fff;
|
||||
empty-cells: show;
|
||||
-webkit-box-shadow: 7px 7px 12px -9px #777777;
|
||||
-moz-box-shadow: 7px 7px 12px -9px #777777;
|
||||
box-shadow: 7px 7px 12px -9px #777777;
|
||||
opacity: 0.9; }
|
||||
|
||||
.c3-tooltip tr {
|
||||
border: 1px solid #CCC; }
|
||||
|
||||
.c3-tooltip th {
|
||||
background-color: #aaa;
|
||||
font-size: 14px;
|
||||
padding: 2px 5px;
|
||||
text-align: left;
|
||||
color: #FFF; }
|
||||
|
||||
.c3-tooltip td {
|
||||
font-size: 13px;
|
||||
padding: 3px 6px;
|
||||
background-color: #fff;
|
||||
border-left: 1px dotted #999; }
|
||||
|
||||
.c3-tooltip td > span {
|
||||
display: inline-block;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-right: 6px; }
|
||||
|
||||
.c3-tooltip td.value {
|
||||
text-align: right; }
|
||||
|
||||
/*-- Area --*/
|
||||
.c3-area {
|
||||
stroke-width: 0;
|
||||
opacity: 0.2; }
|
||||
|
||||
/*-- Arc --*/
|
||||
.c3-chart-arcs-title {
|
||||
dominant-baseline: middle;
|
||||
font-size: 1.3em; }
|
||||
|
||||
.c3-chart-arcs .c3-chart-arcs-background {
|
||||
fill: #e0e0e0;
|
||||
stroke: none; }
|
||||
|
||||
.c3-chart-arcs .c3-chart-arcs-gauge-unit {
|
||||
fill: #000;
|
||||
font-size: 16px; }
|
||||
|
||||
.c3-chart-arcs .c3-chart-arcs-gauge-max {
|
||||
fill: #777; }
|
||||
|
||||
.c3-chart-arcs .c3-chart-arcs-gauge-min {
|
||||
fill: #777; }
|
||||
|
||||
.c3-chart-arc .c3-gauge-value {
|
||||
fill: #000;
|
||||
/* font-size: 28px !important;*/ }
|
||||
|
||||
.c3-chart-arc.c3-target g path {
|
||||
opacity: 1; }
|
||||
|
||||
.c3-chart-arc.c3-target.c3-focused g path {
|
||||
opacity: 1; }
|
463
web/libs/css/circles.css
Normal file
|
@ -0,0 +1,463 @@
|
|||
:root{
|
||||
--color-progress-circle-number: #fff;
|
||||
--color-progress-circle: #f0f0f0;
|
||||
--color-progress-idicator: #b59f00;
|
||||
--color-progress-number: #8b8b8b;
|
||||
}
|
||||
|
||||
.progress-circle {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: 1rem;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
border-radius: 50%;
|
||||
background-color: --color-progress-circle;
|
||||
}
|
||||
|
||||
.progress-circle:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
-webkit-animation: colorload 2s;
|
||||
}
|
||||
|
||||
.progress-circle span {
|
||||
color: var(--color-progress-number);
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
display: block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
margin-left: -15px;
|
||||
margin-top: -15px;
|
||||
text-align: center;
|
||||
border-radius: 50%;
|
||||
background: var(--color-progress-circle-number);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.progress-circle span:after {
|
||||
content: "%";
|
||||
font-weight: 600;
|
||||
color: var(--color-progress-number);
|
||||
}
|
||||
|
||||
.progress-circle.progress-0:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(90deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-1:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(93.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-2:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(97.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-3:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(100.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-4:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(104.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-5:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(108deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-6:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(111.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-7:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(115.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-8:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(118.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-9:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(122.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-10:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(126deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-11:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(129.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-12:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(133.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-13:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(136.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-14:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(140.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-15:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(129.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-16:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(133.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-17:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(136.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-18:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(140.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-19:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(144deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-20:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(151.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-21:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(158.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-22:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(161.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-23:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 165.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-24:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 169.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-25:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(180deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-26:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 183.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-27:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 187.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-28:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 190.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-29:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 194.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-30:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(198deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-31:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 201.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-32:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 205.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-33:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 208.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-34:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 212.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-35:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(216deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-40:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(234deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-36:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 219.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-37:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 223.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-38:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 226.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-39:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 230.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-41:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 237.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-42:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 241.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-43:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 244.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-44:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 248.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-45:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient(252deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-46:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 255.6deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-47:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 259.2deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-48:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 262.8deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-49:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-circle) 50%, transparent 50%, transparent), linear-gradient( 266.4deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-50:after {
|
||||
background-image: linear-gradient(-90deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-51:after {
|
||||
background-image: linear-gradient(-86.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-52:after {
|
||||
background-image: linear-gradient(-82.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-53:after {
|
||||
background-image: linear-gradient(-79.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-54:after {
|
||||
background-image: linear-gradient(-75.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-55:after {
|
||||
background-image: linear-gradient(-72deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-56:after {
|
||||
background-image: linear-gradient(-68.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-57:after {
|
||||
background-image: linear-gradient(-64.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-58:after {
|
||||
background-image: linear-gradient(-61.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-59:after {
|
||||
background-image: linear-gradient(-57.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-60:after {
|
||||
background-image: linear-gradient(-54deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-61:after {
|
||||
background-image: linear-gradient(-50.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-62:after {
|
||||
background-image: linear-gradient(-46.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-63:after {
|
||||
background-image: linear-gradient(-43.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-64:after {
|
||||
background-image: linear-gradient(-39.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-65:after {
|
||||
background-image: linear-gradient(-36deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-66:after {
|
||||
background-image: linear-gradient(-32.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-67:after {
|
||||
background-image: linear-gradient(-28.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-68:after {
|
||||
background-image: linear-gradient(-25.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-69:after {
|
||||
background-image: linear-gradient(-21.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-70:after {
|
||||
background-image: linear-gradient(-18deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-71:after {
|
||||
background-image: linear-gradient(-14.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-72:after {
|
||||
background-image: linear-gradient(-10.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-73:after {
|
||||
background-image: linear-gradient(-7.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-74:after {
|
||||
background-image: linear-gradient(-3.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-75:after {
|
||||
background-image: linear-gradient(0deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-76:after {
|
||||
background-image: linear-gradient(3.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-77:after {
|
||||
background-image: linear-gradient(7.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-78:after {
|
||||
background-image: linear-gradient(10.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-79:after {
|
||||
background-image: linear-gradient(14.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-80:after {
|
||||
background-image: linear-gradient(18deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-81:after {
|
||||
background-image: linear-gradient(21.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-82:after {
|
||||
background-image: linear-gradient(25.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-83:after {
|
||||
background-image: linear-gradient(28.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-84:after {
|
||||
background-image: linear-gradient(32.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-85:after {
|
||||
background-image: linear-gradient(36deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-86:after {
|
||||
background-image: linear-gradient(39.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-87:after {
|
||||
background-image: linear-gradient(43.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-88:after {
|
||||
background-image: linear-gradient(46.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-89:after {
|
||||
background-image: linear-gradient(50.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-90:after {
|
||||
background-image: linear-gradient(54deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-91:after {
|
||||
background-image: linear-gradient(57.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-92:after {
|
||||
background-image: linear-gradient(61.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-93:after {
|
||||
background-image: linear-gradient(64.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-94:after {
|
||||
background-image: linear-gradient(68.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-95:after {
|
||||
background-image: linear-gradient(72deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-96:after {
|
||||
background-image: linear-gradient(75.6deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-97:after {
|
||||
background-image: linear-gradient(79.2deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-98:after {
|
||||
background-image: linear-gradient(82.8deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-99:after {
|
||||
background-image: linear-gradient(86.4deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
.progress-circle.progress-100:after {
|
||||
background-image: linear-gradient(90deg, var(--color-progress-idicator) 50%, transparent 50%, transparent), linear-gradient(270deg, var(--color-progress-idicator) 50%, var(--color-progress-circle) 50%, var(--color-progress-circle));
|
||||
}
|
||||
|
||||
@-webkit-keyframes colorload {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: rotate(0deg)
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: rotate(360deg)
|
||||
}
|
||||
}
|
269
web/libs/css/daterangepicker.css
Normal file
|
@ -0,0 +1,269 @@
|
|||
.daterangepicker {
|
||||
position: absolute;
|
||||
color: inherit;
|
||||
background-color: #fff;
|
||||
border-radius: 4px;
|
||||
width: 278px;
|
||||
padding: 4px;
|
||||
margin-top: 1px;
|
||||
top: 100px;
|
||||
left: 20px;
|
||||
/* Calendars */ }
|
||||
.daterangepicker:before, .daterangepicker:after {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
content: ''; }
|
||||
.daterangepicker:before {
|
||||
top: -7px;
|
||||
border-right: 7px solid transparent;
|
||||
border-left: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc; }
|
||||
.daterangepicker:after {
|
||||
top: -6px;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #fff;
|
||||
border-left: 6px solid transparent; }
|
||||
.daterangepicker.opensleft:before {
|
||||
right: 9px; }
|
||||
.daterangepicker.opensleft:after {
|
||||
right: 10px; }
|
||||
.daterangepicker.openscenter:before {
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto; }
|
||||
.daterangepicker.openscenter:after {
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto; }
|
||||
.daterangepicker.opensright:before {
|
||||
left: 9px; }
|
||||
.daterangepicker.opensright:after {
|
||||
left: 10px; }
|
||||
.daterangepicker.dropup {
|
||||
margin-top: -5px; }
|
||||
.daterangepicker.dropup:before {
|
||||
top: initial;
|
||||
bottom: -7px;
|
||||
border-bottom: initial;
|
||||
border-top: 7px solid #ccc; }
|
||||
.daterangepicker.dropup:after {
|
||||
top: initial;
|
||||
bottom: -6px;
|
||||
border-bottom: initial;
|
||||
border-top: 6px solid #fff; }
|
||||
.daterangepicker.dropdown-menu {
|
||||
max-width: none;
|
||||
z-index: 3001; }
|
||||
.daterangepicker.single .ranges, .daterangepicker.single .calendar {
|
||||
float: none; }
|
||||
.daterangepicker.show-calendar .calendar {
|
||||
display: block; }
|
||||
.daterangepicker .calendar {
|
||||
display: none;
|
||||
max-width: 270px;
|
||||
margin: 4px; }
|
||||
.daterangepicker .calendar.single .calendar-table {
|
||||
border: none; }
|
||||
.daterangepicker .calendar th, .daterangepicker .calendar td {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
min-width: 32px; }
|
||||
.daterangepicker .calendar-table {
|
||||
border: 1px solid #fff;
|
||||
padding: 4px;
|
||||
border-radius: 4px;
|
||||
background-color: #fff; }
|
||||
.daterangepicker table {
|
||||
width: 100%;
|
||||
margin: 0; }
|
||||
.daterangepicker td, .daterangepicker th {
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid transparent;
|
||||
white-space: nowrap;
|
||||
cursor: pointer; }
|
||||
.daterangepicker td.available:hover, .daterangepicker th.available:hover {
|
||||
background-color: #eee;
|
||||
border-color: transparent;
|
||||
color: inherit; }
|
||||
.daterangepicker td.week, .daterangepicker th.week {
|
||||
font-size: 80%;
|
||||
color: #ccc; }
|
||||
.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {
|
||||
background-color: #fff;
|
||||
border-color: transparent;
|
||||
color: #999; }
|
||||
.daterangepicker td.in-range {
|
||||
background-color: #ebf4f8;
|
||||
border-color: transparent;
|
||||
color: #000;
|
||||
border-radius: 0; }
|
||||
.daterangepicker td.start-date {
|
||||
border-radius: 4px 0 0 4px; }
|
||||
.daterangepicker td.end-date {
|
||||
border-radius: 0 4px 4px 0; }
|
||||
.daterangepicker td.start-date.end-date {
|
||||
border-radius: 4px; }
|
||||
.daterangepicker td.active, .daterangepicker td.active:hover {
|
||||
background-color: #357ebd;
|
||||
border-color: transparent;
|
||||
color: #fff; }
|
||||
.daterangepicker th.month {
|
||||
width: auto; }
|
||||
.daterangepicker td.disabled, .daterangepicker option.disabled {
|
||||
color: #999;
|
||||
cursor: not-allowed;
|
||||
text-decoration: line-through; }
|
||||
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
|
||||
font-size: 12px;
|
||||
padding: 1px;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
cursor: default; }
|
||||
.daterangepicker select.monthselect {
|
||||
margin-right: 2%;
|
||||
width: 56%; }
|
||||
.daterangepicker select.yearselect {
|
||||
width: 40%; }
|
||||
.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {
|
||||
width: 50px;
|
||||
margin-bottom: 0; }
|
||||
.daterangepicker .input-mini {
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
color: #555;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: block;
|
||||
vertical-align: middle;
|
||||
margin: 0 0 5px 0;
|
||||
padding: 0 6px 0 28px;
|
||||
width: 100%; }
|
||||
.daterangepicker .input-mini.active {
|
||||
border: 1px solid #08c;
|
||||
border-radius: 4px; }
|
||||
.daterangepicker .daterangepicker_input {
|
||||
position: relative; }
|
||||
.daterangepicker .daterangepicker_input i {
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: 8px; }
|
||||
.daterangepicker.rtl .input-mini {
|
||||
padding-right: 28px;
|
||||
padding-left: 6px; }
|
||||
.daterangepicker.rtl .daterangepicker_input i {
|
||||
left: auto;
|
||||
right: 8px; }
|
||||
.daterangepicker .calendar-time {
|
||||
text-align: center;
|
||||
margin: 5px auto;
|
||||
line-height: 30px;
|
||||
position: relative;
|
||||
padding-left: 28px; }
|
||||
.daterangepicker .calendar-time select.disabled {
|
||||
color: #ccc;
|
||||
cursor: not-allowed; }
|
||||
|
||||
.ranges {
|
||||
font-size: 11px;
|
||||
float: none;
|
||||
margin: 4px;
|
||||
text-align: left; }
|
||||
.ranges ul {
|
||||
list-style: none;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
width: 100%; }
|
||||
.ranges li {
|
||||
font-size: 13px;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #f5f5f5;
|
||||
border-radius: 4px;
|
||||
color: #08c;
|
||||
padding: 3px 12px;
|
||||
margin-bottom: 8px;
|
||||
cursor: pointer; }
|
||||
.ranges li:hover {
|
||||
background-color: #08c;
|
||||
border: 1px solid #08c;
|
||||
color: #fff; }
|
||||
.ranges li.active {
|
||||
background-color: #08c;
|
||||
border: 1px solid #08c;
|
||||
color: #fff; }
|
||||
|
||||
/* Larger Screen Styling */
|
||||
@media (min-width: 564px) {
|
||||
.daterangepicker {
|
||||
width: auto; }
|
||||
.daterangepicker .ranges ul {
|
||||
width: 160px; }
|
||||
.daterangepicker.single .ranges ul {
|
||||
width: 100%; }
|
||||
.daterangepicker.single .calendar.left {
|
||||
clear: none; }
|
||||
.daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .calendar {
|
||||
float: left; }
|
||||
.daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .calendar {
|
||||
float: right; }
|
||||
.daterangepicker.ltr {
|
||||
direction: ltr;
|
||||
text-align: left; }
|
||||
.daterangepicker.ltr .calendar.left {
|
||||
clear: left;
|
||||
margin-right: 0; }
|
||||
.daterangepicker.ltr .calendar.left .calendar-table {
|
||||
border-right: none;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0; }
|
||||
.daterangepicker.ltr .calendar.right {
|
||||
margin-left: 0; }
|
||||
.daterangepicker.ltr .calendar.right .calendar-table {
|
||||
border-left: none;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0; }
|
||||
.daterangepicker.ltr .left .daterangepicker_input {
|
||||
padding-right: 12px; }
|
||||
.daterangepicker.ltr .calendar.left .calendar-table {
|
||||
padding-right: 12px; }
|
||||
.daterangepicker.ltr .ranges, .daterangepicker.ltr .calendar {
|
||||
float: left; }
|
||||
.daterangepicker.rtl {
|
||||
direction: rtl;
|
||||
text-align: right; }
|
||||
.daterangepicker.rtl .calendar.left {
|
||||
clear: right;
|
||||
margin-left: 0; }
|
||||
.daterangepicker.rtl .calendar.left .calendar-table {
|
||||
border-left: none;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0; }
|
||||
.daterangepicker.rtl .calendar.right {
|
||||
margin-right: 0; }
|
||||
.daterangepicker.rtl .calendar.right .calendar-table {
|
||||
border-right: none;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0; }
|
||||
.daterangepicker.rtl .left .daterangepicker_input {
|
||||
padding-left: 12px; }
|
||||
.daterangepicker.rtl .calendar.left .calendar-table {
|
||||
padding-left: 12px; }
|
||||
.daterangepicker.rtl .ranges, .daterangepicker.rtl .calendar {
|
||||
text-align: right;
|
||||
float: right; } }
|
||||
@media (min-width: 730px) {
|
||||
.daterangepicker .ranges {
|
||||
width: auto; }
|
||||
.daterangepicker.ltr .ranges {
|
||||
float: left; }
|
||||
.daterangepicker.rtl .ranges {
|
||||
float: right; }
|
||||
.daterangepicker .calendar.left {
|
||||
clear: none !important; } }
|
611
web/libs/css/daterangepicker.scss
Normal file
|
@ -0,0 +1,611 @@
|
|||
//
|
||||
// A stylesheet for use with Bootstrap 3.x
|
||||
// @author: Dan Grossman http://www.dangrossman.info/
|
||||
// @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved.
|
||||
// @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
|
||||
// @website: https://www.improvely.com/
|
||||
//
|
||||
|
||||
//
|
||||
// VARIABLES
|
||||
//
|
||||
|
||||
//
|
||||
// Settings
|
||||
|
||||
// The class name to contain everything within.
|
||||
$prefix-class: daterangepicker;
|
||||
$arrow-size: 7px !default;
|
||||
|
||||
//
|
||||
// Colors
|
||||
$daterangepicker-color: inherit !default;
|
||||
$daterangepicker-bg-color: #fff !default;
|
||||
|
||||
$daterangepicker-cell-color: $daterangepicker-color !default;
|
||||
$daterangepicker-cell-border-color: transparent !default;
|
||||
$daterangepicker-cell-bg-color: $daterangepicker-bg-color !default;
|
||||
|
||||
$daterangepicker-cell-hover-color: $daterangepicker-color !default;
|
||||
$daterangepicker-cell-hover-border-color: $daterangepicker-cell-border-color !default;
|
||||
$daterangepicker-cell-hover-bg-color: #eee !default;
|
||||
|
||||
$daterangepicker-in-range-color: #000 !default;
|
||||
$daterangepicker-in-range-border-color: transparent !default;
|
||||
$daterangepicker-in-range-bg-color: #ebf4f8 !default;
|
||||
|
||||
$daterangepicker-active-color: #fff !default;
|
||||
$daterangepicker-active-bg-color: #357ebd !default;
|
||||
$daterangepicker-active-border-color: transparent !default;
|
||||
|
||||
$daterangepicker-unselected-color: #999 !default;
|
||||
$daterangepicker-unselected-border-color: transparent !default;
|
||||
$daterangepicker-unselected-bg-color: #fff !default;
|
||||
|
||||
//
|
||||
// daterangepicker
|
||||
$daterangepicker-width: 278px !default;
|
||||
$daterangepicker-padding: 4px !default;
|
||||
$daterangepicker-z-index: 3000 !default;
|
||||
|
||||
$daterangepicker-border-size: 1px !default;
|
||||
$daterangepicker-border-color: #ccc !default;
|
||||
$daterangepicker-border-radius: 4px !default;
|
||||
|
||||
|
||||
//
|
||||
// Calendar
|
||||
$daterangepicker-calendar-margin: $daterangepicker-padding !default;
|
||||
$daterangepicker-calendar-bg-color: $daterangepicker-bg-color !default;
|
||||
|
||||
$daterangepicker-calendar-border-size: 1px !default;
|
||||
$daterangepicker-calendar-border-color: $daterangepicker-bg-color !default;
|
||||
$daterangepicker-calendar-border-radius: $daterangepicker-border-radius !default;
|
||||
|
||||
//
|
||||
// Calendar Cells
|
||||
$daterangepicker-cell-size: 20px !default;
|
||||
$daterangepicker-cell-width: $daterangepicker-cell-size !default;
|
||||
$daterangepicker-cell-height: $daterangepicker-cell-size !default;
|
||||
|
||||
$daterangepicker-cell-border-radius: $daterangepicker-calendar-border-radius !default;
|
||||
$daterangepicker-cell-border-size: 1px !default;
|
||||
|
||||
//
|
||||
// Dropdowns
|
||||
$daterangepicker-dropdown-z-index: $daterangepicker-z-index + 1 !default;
|
||||
|
||||
//
|
||||
// Controls
|
||||
$daterangepicker-control-height: 30px !default;
|
||||
$daterangepicker-control-line-height: $daterangepicker-control-height !default;
|
||||
$daterangepicker-control-color: #555 !default;
|
||||
|
||||
$daterangepicker-control-border-size: 1px !default;
|
||||
$daterangepicker-control-border-color: #ccc !default;
|
||||
$daterangepicker-control-border-radius: 4px !default;
|
||||
|
||||
$daterangepicker-control-active-border-size: 1px !default;
|
||||
$daterangepicker-control-active-border-color: #08c !default;
|
||||
$daterangepicker-control-active-border-radius: $daterangepicker-control-border-radius !default;
|
||||
|
||||
$daterangepicker-control-disabled-color: #ccc !default;
|
||||
|
||||
//
|
||||
// Ranges
|
||||
$daterangepicker-ranges-color: #08c !default;
|
||||
$daterangepicker-ranges-bg-color: #f5f5f5 !default;
|
||||
|
||||
$daterangepicker-ranges-border-size: 1px !default;
|
||||
$daterangepicker-ranges-border-color: $daterangepicker-ranges-bg-color !default;
|
||||
$daterangepicker-ranges-border-radius: $daterangepicker-border-radius !default;
|
||||
|
||||
$daterangepicker-ranges-hover-color: #fff !default;
|
||||
$daterangepicker-ranges-hover-bg-color: $daterangepicker-ranges-color !default;
|
||||
$daterangepicker-ranges-hover-border-size: $daterangepicker-ranges-border-size !default;
|
||||
$daterangepicker-ranges-hover-border-color: $daterangepicker-ranges-hover-bg-color !default;
|
||||
$daterangepicker-ranges-hover-border-radius: $daterangepicker-border-radius !default;
|
||||
|
||||
$daterangepicker-ranges-active-border-size: $daterangepicker-ranges-border-size !default;
|
||||
$daterangepicker-ranges-active-border-color: $daterangepicker-ranges-bg-color !default;
|
||||
$daterangepicker-ranges-active-border-radius: $daterangepicker-border-radius !default;
|
||||
|
||||
//
|
||||
// STYLESHEETS
|
||||
//
|
||||
.#{$prefix-class} {
|
||||
position: absolute;
|
||||
color: $daterangepicker-color;
|
||||
background-color: $daterangepicker-bg-color;
|
||||
border-radius: $daterangepicker-border-radius;
|
||||
width: $daterangepicker-width;
|
||||
padding: $daterangepicker-padding;
|
||||
margin-top: $daterangepicker-border-size;
|
||||
|
||||
// TODO: Should these be parameterized??
|
||||
top: 100px;
|
||||
left: 20px;
|
||||
|
||||
$arrow-prefix-size: $arrow-size;
|
||||
$arrow-suffix-size: ($arrow-size - $daterangepicker-border-size);
|
||||
|
||||
&:before, &:after {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
content: '';
|
||||
}
|
||||
|
||||
&:before {
|
||||
top: -$arrow-prefix-size;
|
||||
|
||||
border-right: $arrow-prefix-size solid transparent;
|
||||
border-left: $arrow-prefix-size solid transparent;
|
||||
border-bottom: $arrow-prefix-size solid $daterangepicker-border-color;
|
||||
}
|
||||
|
||||
&:after {
|
||||
top: -$arrow-suffix-size;
|
||||
|
||||
border-right: $arrow-suffix-size solid transparent;
|
||||
border-bottom: $arrow-suffix-size solid $daterangepicker-bg-color;
|
||||
border-left: $arrow-suffix-size solid transparent;
|
||||
}
|
||||
|
||||
&.opensleft {
|
||||
&:before {
|
||||
// TODO: Make this relative to prefix size.
|
||||
right: $arrow-prefix-size + 2px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
// TODO: Make this relative to suffix size.
|
||||
right: $arrow-suffix-size + 4px;
|
||||
}
|
||||
}
|
||||
|
||||
&.openscenter {
|
||||
&:before {
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
&:after {
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
|
||||
&.opensright {
|
||||
&:before {
|
||||
// TODO: Make this relative to prefix size.
|
||||
left: $arrow-prefix-size + 2px;
|
||||
}
|
||||
|
||||
&:after {
|
||||
// TODO: Make this relative to suffix size.
|
||||
left: $arrow-suffix-size + 4px;
|
||||
}
|
||||
}
|
||||
|
||||
&.dropup {
|
||||
margin-top: -5px;
|
||||
|
||||
// NOTE: Note sure why these are special-cased.
|
||||
&:before {
|
||||
top: initial;
|
||||
bottom: -$arrow-prefix-size;
|
||||
border-bottom: initial;
|
||||
border-top: $arrow-prefix-size solid $daterangepicker-border-color;
|
||||
}
|
||||
|
||||
&:after {
|
||||
top: initial;
|
||||
bottom:-$arrow-suffix-size;
|
||||
border-bottom: initial;
|
||||
border-top: $arrow-suffix-size solid $daterangepicker-bg-color;
|
||||
}
|
||||
}
|
||||
|
||||
&.dropdown-menu {
|
||||
max-width: none;
|
||||
z-index: $daterangepicker-dropdown-z-index;
|
||||
}
|
||||
|
||||
&.single {
|
||||
.ranges, .calendar {
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Calendars */
|
||||
&.show-calendar {
|
||||
.calendar {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.calendar {
|
||||
display: none;
|
||||
max-width: $daterangepicker-width - ($daterangepicker-calendar-margin * 2);
|
||||
margin: $daterangepicker-calendar-margin;
|
||||
|
||||
&.single {
|
||||
.calendar-table {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
th, td {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
|
||||
// TODO: Should this actually be hard-coded?
|
||||
min-width: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
.calendar-table {
|
||||
border: $daterangepicker-calendar-border-size solid $daterangepicker-calendar-border-color;
|
||||
padding: $daterangepicker-calendar-margin;
|
||||
border-radius: $daterangepicker-calendar-border-radius;
|
||||
background-color: $daterangepicker-calendar-bg-color;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
td, th {
|
||||
text-align: center;
|
||||
width: $daterangepicker-cell-width;
|
||||
height: $daterangepicker-cell-height;
|
||||
border-radius: $daterangepicker-cell-border-radius;
|
||||
border: $daterangepicker-cell-border-size solid $daterangepicker-cell-border-color;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
|
||||
&.available {
|
||||
&:hover {
|
||||
background-color: $daterangepicker-cell-hover-bg-color;
|
||||
border-color: $daterangepicker-cell-hover-border-color;
|
||||
color: $daterangepicker-cell-hover-color;
|
||||
}
|
||||
}
|
||||
|
||||
&.week {
|
||||
font-size: 80%;
|
||||
color: #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
&.off {
|
||||
&, &.in-range, &.start-date, &.end-date {
|
||||
background-color: $daterangepicker-unselected-bg-color;
|
||||
border-color: $daterangepicker-unselected-border-color;
|
||||
color: $daterangepicker-unselected-color;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Date Range
|
||||
&.in-range {
|
||||
background-color: $daterangepicker-in-range-bg-color;
|
||||
border-color: $daterangepicker-in-range-border-color;
|
||||
color: $daterangepicker-in-range-color;
|
||||
|
||||
// TODO: Should this be static or should it be parameterized?
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
&.start-date {
|
||||
border-radius: $daterangepicker-cell-border-radius 0 0 $daterangepicker-cell-border-radius;
|
||||
}
|
||||
|
||||
&.end-date {
|
||||
border-radius: 0 $daterangepicker-cell-border-radius $daterangepicker-cell-border-radius 0;
|
||||
}
|
||||
|
||||
&.start-date.end-date {
|
||||
border-radius: $daterangepicker-cell-border-radius;
|
||||
}
|
||||
|
||||
&.active {
|
||||
&, &:hover {
|
||||
background-color: $daterangepicker-active-bg-color;
|
||||
border-color: $daterangepicker-active-border-color;
|
||||
color: $daterangepicker-active-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
&.month {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Disabled Controls
|
||||
//
|
||||
td, option {
|
||||
&.disabled {
|
||||
color: #999;
|
||||
cursor: not-allowed;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
&.monthselect, &.yearselect {
|
||||
font-size: 12px;
|
||||
padding: 1px;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
&.monthselect {
|
||||
margin-right: 2%;
|
||||
width: 56%;
|
||||
}
|
||||
|
||||
&.yearselect {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
&.hourselect, &.minuteselect, &.secondselect, &.ampmselect {
|
||||
width: 50px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Text Input Controls (above calendar)
|
||||
//
|
||||
.input-mini {
|
||||
border: $daterangepicker-control-border-size solid $daterangepicker-control-border-color;
|
||||
border-radius: $daterangepicker-control-border-radius;
|
||||
color: $daterangepicker-control-color;
|
||||
height: $daterangepicker-control-line-height;
|
||||
line-height: $daterangepicker-control-height;
|
||||
display: block;
|
||||
vertical-align: middle;
|
||||
|
||||
// TODO: Should these all be static, too??
|
||||
margin: 0 0 5px 0;
|
||||
padding: 0 6px 0 28px;
|
||||
width: 100%;
|
||||
|
||||
&.active {
|
||||
border: $daterangepicker-control-active-border-size solid $daterangepicker-control-active-border-color;
|
||||
border-radius: $daterangepicker-control-active-border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker_input {
|
||||
position: relative;
|
||||
|
||||
i {
|
||||
position: absolute;
|
||||
|
||||
// NOTE: These appear to be eyeballed to me...
|
||||
left: 8px;
|
||||
top: 8px;
|
||||
}
|
||||
}
|
||||
&.rtl {
|
||||
.input-mini {
|
||||
padding-right: 28px;
|
||||
padding-left: 6px;
|
||||
}
|
||||
.daterangepicker_input i {
|
||||
left: auto;
|
||||
right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Time Picker
|
||||
//
|
||||
.calendar-time {
|
||||
text-align: center;
|
||||
margin: 5px auto;
|
||||
line-height: $daterangepicker-control-line-height;
|
||||
position: relative;
|
||||
padding-left: 28px;
|
||||
|
||||
select {
|
||||
&.disabled {
|
||||
color: $daterangepicker-control-disabled-color;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Predefined Ranges
|
||||
//
|
||||
|
||||
.ranges {
|
||||
font-size: 11px;
|
||||
float: none;
|
||||
margin: 4px;
|
||||
text-align: left;
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: 13px;
|
||||
background-color: $daterangepicker-ranges-bg-color;
|
||||
border: $daterangepicker-ranges-border-size solid $daterangepicker-ranges-border-color;
|
||||
border-radius: $daterangepicker-ranges-border-radius;
|
||||
color: $daterangepicker-ranges-color;
|
||||
padding: 3px 12px;
|
||||
margin-bottom: 8px;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: $daterangepicker-ranges-hover-bg-color;
|
||||
border: $daterangepicker-ranges-hover-border-size solid $daterangepicker-ranges-hover-border-color;
|
||||
color: $daterangepicker-ranges-hover-color;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: $daterangepicker-ranges-hover-bg-color;
|
||||
border: $daterangepicker-ranges-hover-border-size solid $daterangepicker-ranges-hover-border-color;
|
||||
color: $daterangepicker-ranges-hover-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Larger Screen Styling */
|
||||
@media (min-width: 564px) {
|
||||
.#{$prefix-class} {
|
||||
width: auto;
|
||||
|
||||
.ranges {
|
||||
ul {
|
||||
width: 160px;
|
||||
}
|
||||
}
|
||||
|
||||
&.single {
|
||||
.ranges {
|
||||
ul {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.calendar.left {
|
||||
clear: none;
|
||||
}
|
||||
|
||||
&.ltr {
|
||||
.ranges, .calendar {
|
||||
float:left;
|
||||
}
|
||||
}
|
||||
&.rtl {
|
||||
.ranges, .calendar {
|
||||
float:right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.ltr {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
.calendar{
|
||||
&.left {
|
||||
clear: left;
|
||||
margin-right: 0;
|
||||
|
||||
.calendar-table {
|
||||
border-right: none;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.right {
|
||||
margin-left: 0;
|
||||
|
||||
.calendar-table {
|
||||
border-left: none;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.left .daterangepicker_input {
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
.calendar.left .calendar-table {
|
||||
padding-right: 12px;
|
||||
}
|
||||
|
||||
.ranges, .calendar {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
&.rtl {
|
||||
direction: rtl;
|
||||
text-align: right;
|
||||
.calendar{
|
||||
&.left {
|
||||
clear: right;
|
||||
margin-left: 0;
|
||||
|
||||
.calendar-table {
|
||||
border-left: none;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.right {
|
||||
margin-right: 0;
|
||||
|
||||
.calendar-table {
|
||||
border-right: none;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.left .daterangepicker_input {
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.calendar.left .calendar-table {
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.ranges, .calendar {
|
||||
text-align: right;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 730px) {
|
||||
.#{$prefix-class} {
|
||||
.ranges {
|
||||
width: auto;
|
||||
}
|
||||
&.ltr {
|
||||
.ranges {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
&.rtl {
|
||||
.ranges {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
.calendar.left {
|
||||
clear: none !important;
|
||||
}
|
||||
}
|
||||
}
|
2337
web/libs/css/font-awesome.css
vendored
Normal file
4
web/libs/css/font-awesome.min.css
vendored
Normal file
5
web/libs/css/fullcalendar.min.css
vendored
Normal file
208
web/libs/css/fullcalendar.print.css
Normal file
|
@ -0,0 +1,208 @@
|
|||
/*!
|
||||
* FullCalendar v3.0.1 Print Stylesheet
|
||||
* Docs & License: http://fullcalendar.io/
|
||||
* (c) 2016 Adam Shaw
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include this stylesheet on your page to get a more printer-friendly calendar.
|
||||
* When including this stylesheet, use the media='print' attribute of the <link> tag.
|
||||
* Make sure to include this stylesheet IN ADDITION to the regular fullcalendar.css.
|
||||
*/
|
||||
|
||||
.fc {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
|
||||
/* Global Event Restyling
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-event {
|
||||
background: #fff !important;
|
||||
color: #000 !important;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
.fc-event .fc-resizer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Table & Day-Row Restyling
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc th,
|
||||
.fc td,
|
||||
.fc hr,
|
||||
.fc thead,
|
||||
.fc tbody,
|
||||
.fc-row {
|
||||
border-color: #ccc !important;
|
||||
background: #fff !important;
|
||||
}
|
||||
|
||||
/* kill the overlaid, absolutely-positioned components */
|
||||
/* common... */
|
||||
.fc-bg,
|
||||
.fc-bgevent-skeleton,
|
||||
.fc-highlight-skeleton,
|
||||
.fc-helper-skeleton,
|
||||
/* for timegrid. within cells within table skeletons... */
|
||||
.fc-bgevent-container,
|
||||
.fc-business-container,
|
||||
.fc-highlight-container,
|
||||
.fc-helper-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* don't force a min-height on rows (for DayGrid) */
|
||||
.fc tbody .fc-row {
|
||||
height: auto !important; /* undo height that JS set in distributeHeight */
|
||||
min-height: 0 !important; /* undo the min-height from each view's specific stylesheet */
|
||||
}
|
||||
|
||||
.fc tbody .fc-row .fc-content-skeleton {
|
||||
position: static; /* undo .fc-rigid */
|
||||
padding-bottom: 0 !important; /* use a more border-friendly method for this... */
|
||||
}
|
||||
|
||||
.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td { /* only works in newer browsers */
|
||||
padding-bottom: 1em; /* ...gives space within the skeleton. also ensures min height in a way */
|
||||
}
|
||||
|
||||
.fc tbody .fc-row .fc-content-skeleton table {
|
||||
/* provides a min-height for the row, but only effective for IE, which exaggerates this value,
|
||||
making it look more like 3em. for other browers, it will already be this tall */
|
||||
height: 1em;
|
||||
}
|
||||
|
||||
|
||||
/* Undo month-view event limiting. Display all events and hide the "more" links
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-more-cell,
|
||||
.fc-more {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.fc tr.fc-limited {
|
||||
display: table-row !important;
|
||||
}
|
||||
|
||||
.fc td.fc-limited {
|
||||
display: table-cell !important;
|
||||
}
|
||||
|
||||
.fc-popover {
|
||||
display: none; /* never display the "more.." popover in print mode */
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid Restyling
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* undo the min-height 100% trick used to fill the container's height */
|
||||
.fc-time-grid {
|
||||
min-height: 0 !important;
|
||||
}
|
||||
|
||||
/* don't display the side axis at all ("all-day" and time cells) */
|
||||
.fc-agenda-view .fc-axis {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* don't display the horizontal lines */
|
||||
.fc-slats,
|
||||
.fc-time-grid hr { /* this hr is used when height is underused and needs to be filled */
|
||||
display: none !important; /* important overrides inline declaration */
|
||||
}
|
||||
|
||||
/* let the container that holds the events be naturally positioned and create real height */
|
||||
.fc-time-grid .fc-content-skeleton {
|
||||
position: static;
|
||||
}
|
||||
|
||||
/* in case there are no events, we still want some height */
|
||||
.fc-time-grid .fc-content-skeleton table {
|
||||
height: 4em;
|
||||
}
|
||||
|
||||
/* kill the horizontal spacing made by the event container. event margins will be done below */
|
||||
.fc-time-grid .fc-event-container {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
/* TimeGrid *Event* Restyling
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* naturally position events, vertically stacking them */
|
||||
.fc-time-grid .fc-event {
|
||||
position: static !important;
|
||||
margin: 3px 2px !important;
|
||||
}
|
||||
|
||||
/* for events that continue to a future day, give the bottom border back */
|
||||
.fc-time-grid .fc-event.fc-not-end {
|
||||
border-bottom-width: 1px !important;
|
||||
}
|
||||
|
||||
/* indicate the event continues via "..." text */
|
||||
.fc-time-grid .fc-event.fc-not-end:after {
|
||||
content: "...";
|
||||
}
|
||||
|
||||
/* for events that are continuations from previous days, give the top border back */
|
||||
.fc-time-grid .fc-event.fc-not-start {
|
||||
border-top-width: 1px !important;
|
||||
}
|
||||
|
||||
/* indicate the event is a continuation via "..." text */
|
||||
.fc-time-grid .fc-event.fc-not-start:before {
|
||||
content: "...";
|
||||
}
|
||||
|
||||
/* time */
|
||||
|
||||
/* undo a previous declaration and let the time text span to a second line */
|
||||
.fc-time-grid .fc-event .fc-time {
|
||||
white-space: normal !important;
|
||||
}
|
||||
|
||||
/* hide the the time that is normally displayed... */
|
||||
.fc-time-grid .fc-event .fc-time span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ...replace it with a more verbose version (includes AM/PM) stored in an html attribute */
|
||||
.fc-time-grid .fc-event .fc-time:after {
|
||||
content: attr(data-full);
|
||||
}
|
||||
|
||||
|
||||
/* Vertical Scroller & Containers
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
/* kill the scrollbars and allow natural height */
|
||||
.fc-scroller,
|
||||
.fc-day-grid-container, /* these divs might be assigned height, which we need to cleared */
|
||||
.fc-time-grid-container { /* */
|
||||
overflow: visible !important;
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
/* kill the horizontal border/padding used to compensate for scrollbars */
|
||||
.fc-row {
|
||||
border: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
/* Button Controls
|
||||
--------------------------------------------------------------------------------------------------*/
|
||||
|
||||
.fc-button-group,
|
||||
.fc button {
|
||||
display: none; /* don't display any button-related controls */
|
||||
}
|
1
web/libs/css/gridstack-extra.min.css
vendored
Normal file
1
web/libs/css/gridstack.min.css
vendored
Normal file
105
web/libs/css/login.css
Normal file
|
@ -0,0 +1,105 @@
|
|||
#register-msg:empty{display:none}
|
||||
.shinobi-bg{background:url(/libs/img/bg.jpg);background-size:cover;background-position:center;position:relative}
|
||||
.shinobi-bg{background:#333}
|
||||
.shinobi-bg-shade{position:absolute;height:100%;width:100%;background:rgba(0,0,0,0.5)}
|
||||
.panel-login {
|
||||
background:#343434;
|
||||
color:#ddd;
|
||||
margin-top:90px;
|
||||
border-color: #444;
|
||||
-webkit-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);
|
||||
-moz-box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);
|
||||
box-shadow: 0px 2px 3px 0px rgba(0,0,0,0.2);
|
||||
}
|
||||
.panel-login>.panel-heading {
|
||||
color: #00415d;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
border-color: #444;
|
||||
text-align:center;
|
||||
}
|
||||
.panel-login>.panel-heading a{
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
font-weight: bold;
|
||||
font-size: 15px;
|
||||
-webkit-transition: all 0.1s linear;
|
||||
-moz-transition: all 0.1s linear;
|
||||
transition: all 0.1s linear;
|
||||
}
|
||||
.panel-login>.panel-heading a.active{
|
||||
color: #3b75b4;
|
||||
}
|
||||
.panel-login>.panel-heading hr{
|
||||
margin-top: 10px;
|
||||
margin-bottom: 0px;
|
||||
clear: both;
|
||||
border: 0;
|
||||
height: 1px;
|
||||
background-image: -webkit-linear-gradient(left,rgba(0, 0, 0, 0),rgba(0, 0, 0, 0.15),rgba(0, 0, 0, 0));
|
||||
background-image: -moz-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0));
|
||||
background-image: -ms-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0));
|
||||
background-image: -o-linear-gradient(left,rgba(0,0,0,0),rgba(0,0,0,0.15),rgba(0,0,0,0));
|
||||
}
|
||||
.panel-login input[type="text"],.panel-login input[type="email"],.panel-login input[type="password"] {
|
||||
height: 45px;
|
||||
border: 1px solid #ddd;
|
||||
font-size: 16px;
|
||||
-webkit-transition: all 0.1s linear;
|
||||
-moz-transition: all 0.1s linear;
|
||||
transition: all 0.1s linear;
|
||||
}
|
||||
.panel-login input:hover,
|
||||
.panel-login input:focus {
|
||||
outline:none;
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border-color: #ccc;
|
||||
}
|
||||
.btn-login {
|
||||
background-color: #59B2E0;
|
||||
outline: none;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
height: auto;
|
||||
font-weight: normal;
|
||||
padding: 14px 0;
|
||||
text-transform: uppercase;
|
||||
border-color: #59B2E6;
|
||||
}
|
||||
.btn-login:hover,
|
||||
.btn-login:focus {
|
||||
color: #fff;
|
||||
background-color: #53A3CD;
|
||||
border-color: #53A3CD;
|
||||
}
|
||||
.forgot-password {
|
||||
text-decoration: underline;
|
||||
color: #888;
|
||||
}
|
||||
.forgot-password:hover,
|
||||
.forgot-password:focus {
|
||||
text-decoration: underline;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.btn-register {
|
||||
background-color: #1CB94E;
|
||||
outline: none;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
height: auto;
|
||||
font-weight: normal;
|
||||
padding: 14px 0;
|
||||
text-transform: uppercase;
|
||||
border-color: #1CB94A;
|
||||
}
|
||||
.btn-register:hover,
|
||||
.btn-register:focus {
|
||||
color: #fff;
|
||||
background-color: #1CA347;
|
||||
border-color: #1CA347;
|
||||
}
|
||||
|
||||
.monospace{font-family: monospace;}
|
716
web/libs/css/main.dash2.css
Normal file
|
@ -0,0 +1,716 @@
|
|||
/*Cusotm Bootstrap*/
|
||||
.col-5ths,
|
||||
.col-sm-5ths,
|
||||
.col-md-5ths,
|
||||
.col-lg-5ths {
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.col-5ths {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 20%;
|
||||
-ms-flex: 0 0 20%;
|
||||
flex: 0 0 20%;
|
||||
max-width: 20%;
|
||||
}
|
||||
|
||||
@media (min-width: 576px) {
|
||||
.col-sm-5ths {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 20%;
|
||||
-ms-flex: 0 0 20%;
|
||||
flex: 0 0 20%;
|
||||
max-width: 20%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.col-md-5ths {
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 20%;
|
||||
-ms-flex: 0 0 20%;
|
||||
flex: 0 0 20%;
|
||||
max-width: 20%;
|
||||
}
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background-color:#bd9565;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color:#bd9565;
|
||||
border: 2px solid transparent;
|
||||
border-radius: 10px;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
/**/
|
||||
.flex{display:flex}
|
||||
.flex>div{flex:1}
|
||||
.flex-block{display:inline-flex;width:100%;flex-flow: row wrap;}
|
||||
.flex-unit-3{flex:3}
|
||||
.flex-inline{display: inline-flex;position:relative}
|
||||
@import (less) "../less/pie.less";
|
||||
ul{list-style:none}
|
||||
*{transition:0.2s;box-sizing:border-box}
|
||||
.affix-top{position:fixed}
|
||||
.no-padding{padding:0!important}
|
||||
.no-margin{margin:0!important}
|
||||
.pre-inline{white-space: normal;word-break: normal}
|
||||
.pre-inline>ul{margin:0;padding:0}
|
||||
a{cursor:pointer}
|
||||
nav h4{cursor:default;font-size:95%;padding:16px 40px;font-weight:100;text-transform:uppercase;letter-spacing:2px}
|
||||
.m-r{margin-right:10px}
|
||||
.m-b{margin-bottom:10px}
|
||||
.m-t{margin-top:10px}
|
||||
.m-l{margin-left:10px}
|
||||
.list-inline{list-style:none}
|
||||
.list-inline li{display:inline-block;vertical-align: top;margin:0;}
|
||||
.truncate{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
|
||||
img{max-width:100%}
|
||||
.display-table{display:table;width:100%}
|
||||
.display-table-cell{display:table-cell}
|
||||
.small{font-size:80%}
|
||||
.super-center{position:absolute;left:0;top:0;right:0;bottom:0;margin:auto;width: 4em;height: 1em;}
|
||||
.jpegMode .cpu_load .progress-bar,.jpegMode .ram_load .progress-bar{background-color:#5cb85c}
|
||||
.jpegMode [system="jpegToggle"],[system].text-success{color:#5cb85c!important}
|
||||
.permission_monitor_edit{display:none}
|
||||
.permission_video_delete{display:none}
|
||||
.nodata .divider{margin:5px 0}
|
||||
.loading .divider{margin:5px 0}
|
||||
|
||||
.monitor_item .stream-hud{opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}
|
||||
.monitor_item .stream-hud .controls{position:absolute;top:10px;left:10px;}
|
||||
.monitor_item .stream-hud:hover{opacity:1}
|
||||
.monitor_item .stream-hud .bottom-text{position:absolute;bottom:0;left:0;width:100%;padding:5px;text-shadow: 0 0 10px #333;}
|
||||
.monitor_item .stream-hud .bottom-text .detector-fade{background: rgba(0,0,0,0.4);padding:10px 20px;border-radius:10px}
|
||||
.monitor_item .stream-hud .lamp{position:absolute;top:5px;right:5px;z-index:1;text-shadow: 0 0 15px #333;}
|
||||
.monitor_item[mode="Disabled"] .stream-hud .lamp{color:#5d5d5d}
|
||||
.monitor_item[mode="Watch Only"] .stream-hud .lamp{color:#5da8e8}
|
||||
.monitor_item[mode="Idle"] .stream-hud .lamp{color:#fff}
|
||||
.monitor_item[mode="Record"] .stream-hud .lamp{color:#d9534f}
|
||||
/*.monitor_item .data-menu{max-height:700px}*/
|
||||
.monitor_item .data-menu:not(:last-child){border-right:1px solid #fff;}
|
||||
.monitor_item .data-menu.logs{list-style:none;}
|
||||
.monitor_item .motionVision{display:none}
|
||||
|
||||
.monitor_item .grid-stack-item-content{width:100%!important;left:0;right:0}
|
||||
.monitor_item .stream-block{position: relative;text-align: center}
|
||||
.monitor_item .mdl-data_window{overflow-x: auto;background:rgba(0,0,0,0.7);color:#fff;height:100%}
|
||||
.monitor_item .mdl-data_window:not(.col-md-6){width:0;min-width:0;height:0px;min-height:0}
|
||||
|
||||
|
||||
.monitor_item.fullscreen img.stream-element{height:100%;width:auto}
|
||||
.monitor_item.fullscreen canvas.stream-element{height:auto;width:auto;background-color:black;}
|
||||
.monitor_item .stream-element{border: 0;object-fit: fill;height: 100%;width:100%}
|
||||
.monitor_item{position:relative;padding:0;}
|
||||
.monitor_item{transition:none;}
|
||||
.monitor_item .mdl-card{min-height:auto;border:1px solid #272727;border-radius:0px;overflow:hidden}
|
||||
.monitor_item .mdl-card__media{position:relative;padding:0!important;display:block!important;background:#000;min-height:250px;}
|
||||
.monitor_item.selected .stream-element{height:600px}
|
||||
.monitor_item.selected .fa-expand:before{content:"\f066"}
|
||||
.monitor_item .mdl-card__supporting-text{background:#222;color:#fff!important;display:block;min-height:auto!important}
|
||||
.monitor_item.detector_triggered .detector-fade{opacity:1}
|
||||
.monitor_item .detector-fade{opacity:0}
|
||||
.monitor_item .indifference{position:absolute;width:100%;left:0;top:0;transition:0.2s;}
|
||||
.monitor_item .indifference .progress{width:100%;background:#333;box-shadow:0;}
|
||||
.monitor_item .indifference:hover .progress{height:20px;transition:0.2s}
|
||||
.hide_indifference .indifference{display:none!important}
|
||||
.hide_indifference [class_toggle="hide_indifference"]{color:#d9534f!important}
|
||||
.monitor_item .mdl-card:not(.mdl-cell--4-col-desktop) .mdl-card__supporting-text .monitor_details{display:none;font-size:90%;margin-bottom:10px}
|
||||
.monitor_item[mode="Record"] [mode="record"]{display:none}
|
||||
.monitor_item[mode="Watch Only"] [mode="start"]{display:none}
|
||||
.monitor_item .stream-hud .controls .btn{opacity:0.7}
|
||||
.monitor_item.doObjectDetection .progress-bar{background-color: #57d94f}
|
||||
|
||||
@media screen and (max-width:1500px){
|
||||
.monitor_item .mdl-card__supporting-text .btn{
|
||||
padding: 5px 10px;
|
||||
font-size: 11px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
#monitors_live .monitor_item [class_toggle="show_logs"]{display:none}
|
||||
#monitors_live .monitor_item .indifference{top:-5px}
|
||||
#monitors_live .monitor_item .mdl-cell--8-col{width:100%;border:0;border-radius:0;margin:0;position:relative}
|
||||
#monitors_live .monitor_item .mdl-cell--4-col-desktop,.monitor_item .mdl-card__supporting-text{display:none}
|
||||
#monitors_live .monitor_item .mdl-card__supporting-text .monitor_details,#monitors_live .monitor_item .mdl-card__supporting-text .btn-group{display:none;text-align:center}
|
||||
#monitors_live .monitor_item .mdl-card__supporting-text:not(.meta){display:block;position:absolute;bottom:0;left:0;height:0;padding:0;}
|
||||
#monitors_live .monitor_item.show_data .mdl-card__supporting-text:not(.meta){width:50%}
|
||||
#monitors_live .monitor_item.detector_triggered .mdl-card__supporting-text:not(.meta) .indifference{opacity:0.5;}
|
||||
#monitors_live .monitor_item:hover .mdl-card__supporting-text:not(.meta){padding:15px;z-index:15;height:auto;}
|
||||
#monitors_live .monitor_item:hover .mdl-card__supporting-text .monitor_details{display:block}
|
||||
#monitors_live .monitor_item:hover .mdl-card__supporting-text .btn-group{display:inline-block}
|
||||
|
||||
|
||||
|
||||
#vis_pwrvideo{height:250px}
|
||||
#monSectionStreamChannels,#monSectionInputMaps{margin-bottom: 15px;}
|
||||
#monSectionStreamChannels:empty,#monSectionInputMaps:empty{display:none}
|
||||
#region_editor_live iframe,.canvas_holder canvas{border:0;position:absolute;left:0;top:0}
|
||||
.canvas_holder canvas{z-index:11}
|
||||
|
||||
.demo-blog .mdl-card__media ~ .mdl-card__supporting-text{position:relative;overflow:initial;cursor:move}
|
||||
.demo-blog .mdl-card__media ~ .mdl-card__supporting-text .btn-group{cursor: default}
|
||||
|
||||
.demo-blog .demo-blog__posts.montage{max-width:100%}
|
||||
|
||||
|
||||
.mdl-layout__header-row{padding-left:10!important}
|
||||
.mdl-layout__header-row .nav>li>a{border-radius:50%;}
|
||||
.mdl-layout__drawer-button i{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;height:1em;color:#fff}
|
||||
.data-menu{text-align:left}
|
||||
.data-menu ul,.side-menu ul{list-style:none;margin:0;padding:0;}
|
||||
.data-menu li,.side-menu li{
|
||||
border-bottom:1px solid #54502d;padding:10px;
|
||||
}
|
||||
.data-menu .progress-circle{margin:0 10px 0 0;position:relative;height:40px;width:40px;float:left}
|
||||
.data-menu .progress-circle span:after{content:''}
|
||||
img.circle-img,div.circle-img{border-radius:50%;height:50px;width:50px}
|
||||
.circle-img.sm{height:25px;width:25px}
|
||||
|
||||
.video_video{margin:auto;max-width:100%;max-height:600px;}
|
||||
#confirm_window .video_video{margin-top:15px}
|
||||
#confirm_window .info-table{margin-top:15px}
|
||||
@media (max-width: 768px){
|
||||
.full.modal .modal-body,.medium.modal .modal-body{max-height:400px;overflow:auto}
|
||||
}
|
||||
@media (min-width: 768px){
|
||||
.modal.full,.modal.medium{padding-left:0!important;}
|
||||
.modal.full .modal-dialog{width:calc(100% - 10px)!important;margin: 30px auto;}
|
||||
.modal.medium .modal-dialog{width:calc(70% - 10px)!important;margin: 30px auto;}
|
||||
.full.modal .modal-body,.medium.modal .modal-body{height:calc(100% - 200px);overflow:auto}
|
||||
}
|
||||
|
||||
.flex-container-modal-body{overflow: auto}
|
||||
.flex-container-modal-body .flex-block>div{flex:1;float:none}
|
||||
|
||||
.modal{overflow:auto!important}
|
||||
form.modal-body{margin:0}
|
||||
#region_editor .modal-body{text-align:center;overflow:auto;max-height:800px}
|
||||
#region_editor .canvas_holder{position:relative;display:inline-block;overflow:auto;min-height:450px}
|
||||
#region_editor .cord_element{position:absolute;background:rgba(221, 221, 221, 0.8);z-index:11;padding:5px;}
|
||||
#region_editor .cord_element.selected{z-index:12;}
|
||||
#region_editor .cord_element .controls{margin-bottom:5px;}
|
||||
.form-group label span{padding:5px;font-weight: 400;color: #2d2d2d;display:block;border-bottom: 1px dotted #ddd;font-size: 10pt;}
|
||||
.form-group label{display:table}
|
||||
.form-group label>div{display:table-cell}
|
||||
.form-group label>div:nth-child(2n-1){width:30%}
|
||||
.form-group label>div:nth-child(2){width:70%;padding:5px;border:1px solid #dedede;border-radius:5px}
|
||||
.dark .form-group label>div,.dark .form-group label>div>span{border-color:#454545;color:#fff}
|
||||
.important.form-group label>div:nth-child(2),.important.form-group label>div>span{border-color:red}
|
||||
.form-group label span small{margin-left: 2px;display:block;font-weight: 600;}
|
||||
.form-group-group .round-left{border-radius: 50px 0 0 50px;margin-left:10px}
|
||||
.form-group-group blockquote:before,.form-group-group blockquote:after{display:none!important}
|
||||
.form-group-group blockquote{letter-spacing:normal;font-style:normal}
|
||||
.form-group-group blockquote p:empty{display:none}
|
||||
.form-group-group blockquote p{font-size:inherit}
|
||||
.form-group-group blockquote p:last-child{margin-bottom:0}
|
||||
.form-group-group-group>div,.form-group-group-group .h_us_advanced>div{margin-bottom:15px;}
|
||||
.form-group-group{padding:0 10px 10px 10px;overflow:hidden;margin-bottom:15px;border-radius:5px;border:1px solid #ddd;background:#fff}
|
||||
.form-group-group table{width:100%}
|
||||
.form-group-group table tr td{padding:10px 5px}
|
||||
.form-group-group table tr:not(:last-child) td{border-bottom:1px dotted #eee}
|
||||
.form-group-group .mdl-list__item{border-bottom:1px solid #eee;}
|
||||
.form-group-group .mdl-list__item:hover{background:#e6e6e6;border-radius:4px;}
|
||||
.dark .form-group-group .mdl-list__item{color:#fff;border-bottom:1px solid #444;}
|
||||
.dark .form-group-group .mdl-list__item:hover{background:#555;}
|
||||
.form-group-group:last-child,.form-group-group > .form-group:last-child{margin-bottom:0}
|
||||
.form-group-group h4{margin:0 -10px 15px -10px;padding:15px;background:#ddd;}
|
||||
.form-group-group h4 small{color:#fff;}
|
||||
.form-group-group.red{border-color:#d9534f}
|
||||
.form-group-group.red h4{background:#d9534f;color:#fff}
|
||||
.form-group-group.purple{border-color:#3f51b5}
|
||||
.form-group-group.purple h4{background:#3f51b5;color:#fff}
|
||||
.form-group-group.blue{border-color:#337ab7}
|
||||
.form-group-group.blue h4{background:#337ab7;color:#fff}
|
||||
.form-group-group.navy{border-color:#31708f}
|
||||
.form-group-group.navy h4{background:#31708f;color:#fff}
|
||||
.form-group-group.green{border-color:#449d44}
|
||||
.form-group-group.green h4{background:#449d44;color:#fff}
|
||||
.form-group-group.forestgreen{border-color:#1e4046}
|
||||
.form-group-group.forestgreen h4{background:#1e4046;color:#fff}
|
||||
.form-group-group.orange{border-color:#c49a68}
|
||||
.form-group-group.orange h4{background:#c49a68;color:#fff}
|
||||
.form-group-group.grey{border-color:#777}
|
||||
.form-group-group.grey h4{background:#777;color:#fff}
|
||||
.dark .form-group-group{background:#222}
|
||||
.videos_list .title{font-size:12pt;padding:0 10px}
|
||||
[status="1"] .btn[video="launch"],[data-status="1"] .btn[video="launch"]{background:#337ab7;border-color:#337ab7}
|
||||
[status="2"] .btn[launch="video"],[status="2"] .btn[video="launch"],[data-status="2"] .btn[video="launch"]{background:#a59100;border-color:#a59100}
|
||||
.signal.red{background:#c9302c}
|
||||
.signal.green{background:#5cb85c}
|
||||
.demo-drawer{background:#2b2a2a;color:#fff;}
|
||||
.demo-drawer.mdl-layout__drawer .mdl-navigation{padding-top:0;}
|
||||
.demo-drawer::-webkit-scrollbar{display:none;}
|
||||
.small-square-img{height:40px;width:40px;border-radius:5px}
|
||||
|
||||
.side-menu .monitor_block{padding:0;position:relative}
|
||||
.side-menu .monitor_block img{width:100%;height:75px;cursor:pointer;border: 0.5px inset #263238;}
|
||||
@media screen and (max-width:1025px){
|
||||
.side-menu .monitor_block img{height:175px;}
|
||||
}
|
||||
.side-menu .monitor_block:hover .icons{opacity:1}
|
||||
.side-menu .monitor_block:hover .title{opacity:1}
|
||||
.side-menu .monitor_block .icons,.side-menu .monitor_block .title{opacity:0;width:100%;bottom:0;left:0;background:rgba(0,0,0,0.6);position:absolute;padding:2.5px;z-index:11;cursor:move}
|
||||
.side-menu .monitor_block .title{bottom:auto;top:0;color:#fff}
|
||||
.nav-xs.side-menu .monitor_block{width:100%}
|
||||
.side-menu .monitor_block .list-data{display:none}
|
||||
.output_data:empty{display:none}
|
||||
.output_data{max-height:500px;font-family:monospace;padding:10px;border-radius:5px;background:#f3f3f3;overflow:auto}
|
||||
.dark .output_data{background:#222;}
|
||||
#probe .output_data div>div{margin-left:10px}
|
||||
.side-menu.list-blocks .monitor_block .icons,.side-menu.list-blocks .monitor_block .title{position:inherit;opacity:1;background:none}
|
||||
.side-menu.list-blocks .monitor_block .title{padding:5px;border-radius:5px;background:#222;}
|
||||
.side-menu.list-blocks .monitor_block:not(:last-child){border-bottom: 1px solid #54502d;}
|
||||
.side-menu.list-blocks .monitor_block:first-child{border-top: 1px solid #54502d;}
|
||||
.side-menu.list-blocks .monitor_block{float:none;width:100%;padding: 10px}
|
||||
.side-menu.list-blocks .monitor_block.ui-sortable-helper{background:rgba(0,0,0,0.6);border-radius:5px;padding:5px;border:0}
|
||||
.side-menu.list-blocks .monitor_block .list-data{display:block}
|
||||
.side-menu.list-blocks .monitor_block img{width:60px;height:60px;cursor:pointer;display:inline-block;margin-right:10px;border-radius:50%;vertical-align:top;border:0}
|
||||
.nav-xs.side-menu.list-blocks .monitor_block img{width:40px;height:40px;}
|
||||
.side-menu.list-blocks .monitor_block .box{width:calc(100% - 70px);display:inline-block}
|
||||
.nav-xs.side-menu.list-blocks .monitor_block .list-data{display:none}
|
||||
#monitors_list .monitor_block{transition:none}
|
||||
.dropdown-menu.scrollable{max-height:300px}
|
||||
.upload_file input{display:none}
|
||||
#video_preview .stream-objects{right:0;margin:auto;display:inline-block;position:relative;width:auto}
|
||||
.stream-objects{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}
|
||||
.stream-objects .tag{position:absolute;bottom:100%;left:0;background:red;color:#fff;font-family:monospace;font-size:80%;border-radius:5px 5px 0 0 ;padding:3px 5px;}
|
||||
.stream-objects .stream-detected-object{position:absolute;top:0;left:0;border:3px solid red;background:transparent;border-radius:5px}
|
||||
.stream-objects .stream-detected-point{position:absolute;top:0;left:0;border:3px solid yellow;background:transparent;border-radius:5px}
|
||||
.stream-objects .point{position:absolute;top:0;left:0;border:3px solid red;border-radius:50%}
|
||||
|
||||
|
||||
#side_menu_right.nav-xs{width:0!important;overflow:hidden}
|
||||
.side-menu table{color:#fff;}
|
||||
#main_canvas{background:#333;color:#fff;padding-top:0}
|
||||
#main_header{background:#222;color:#fff;}
|
||||
#logs_modal table tr td:first-child{width:10%}
|
||||
[class_toggle]{cursor:pointer}
|
||||
|
||||
.form-group label{width:100%}
|
||||
|
||||
#pvideo_viewer iframe{border:0;width:100%;height:350px;margin-bottom:10px;overflow:hidden}
|
||||
#pvideo_viewer video{max-height:300px;max-width:100%;}
|
||||
#pvideo_viewer .holder{height:300px;}
|
||||
#pvideo_viewer h3{margin-top:0}
|
||||
#pvideo_viewer .progressBar{position:relative;}
|
||||
#pvideo_viewer .bufferBar{position:absolute;left:0;top:0;opacity:0.4}
|
||||
#pvideo_viewer .timeBar{position:relative;z-index: 222;background:transparent}
|
||||
#pvideo_viewer h3{font-family:monospace}
|
||||
|
||||
#vis_monitors{overflow:auto;max-height:400px}
|
||||
#vis_monitors .btn-group-vertical{width:100%}
|
||||
|
||||
/*timeline*/
|
||||
#timelapse_video_line{overflow-y:scroll;overflow-x:hidden;max-height:400px;margin:0;text-align:left}
|
||||
#timelapse_video_display .videoBefore,#timelapse_video_display .videoAfter{display:none}
|
||||
.timelapse_video:not(:last-child){border-bottom:1px solid #444;}
|
||||
.timelapse_video .frame{width:50px;height:50px;background-size:cover;background-position:center;border-radius:5px}
|
||||
.timelapse_video>div>div:not(:last-child){padding-right:10px}
|
||||
.timelapse_video .flex-block:not(:last-child){padding-bottom:10px}
|
||||
.timelapse_video.list-group-item{padding:10px}
|
||||
.timelapse_hud{position: relative;background:#000}
|
||||
.timelapse_hud .timelapse_playRate{position: absolute;font-family: monospace;top:10px;right:0;left:0;margin:auto;font-size:23px}
|
||||
#timelapse .progress-bar{transition:0.5s!important}
|
||||
.timelapse_hud .controlBar{position: absolute;background:rgba(22,22,22,0.8);width:100%;left:0;bottom:0;}
|
||||
.timelapse_hud .hover-hide{opacity:0}
|
||||
.timelapse_hud:hover .hover-hide{opacity:1;z-index:5}
|
||||
|
||||
|
||||
.table-striped>tbody>tr>td{vertical-align:middle}
|
||||
#motion_list{height:155px;overflow:auto;border-radius:5px;border:1px solid #444;position:relative;background: #222;margin:0}
|
||||
.dark .list-group-item{border-color: #444;background:#222}
|
||||
.dark .list-group-item.active{background:#c49a68;border-color:#a7865f}
|
||||
.novideos{text-transform: uppercase;text-align: center;border-bottom:0!important;padding-top: 55%!important;letter-spacing:2px}
|
||||
|
||||
.btn-warning {
|
||||
color: #fff;
|
||||
background-color: #c49a68;
|
||||
border-color: #c49a68;
|
||||
}
|
||||
|
||||
.dark.modal .modal-header,.dark.modal .modal-footer{background:#333;border-color:#444;}
|
||||
.dark.modal .modal-header{color:#fff;}
|
||||
.dark.modal .modal-footer>*:not(.btn){color:#fff;}
|
||||
.dark.modal .modal-body{background:#333;}
|
||||
.dark.modal .close{color:#fff;}
|
||||
.dark.modal{color:#fff;}
|
||||
.dark .table-striped>tbody>tr:nth-of-type(even){background:#616161}
|
||||
.dark .table-striped>tbody>tr>td{border-color:#222;color:#fff}
|
||||
.dark .table-striped>thead>tr>th{border-color:#222;color:#fff;background:#616161;vertical-align:middle;}
|
||||
.dark .table-striped>tbody>tr:nth-of-type(odd){background-color: #4c4747;}
|
||||
.dark .table>tbody>tr.active>td{background:inherit;border:0}
|
||||
.dark code{color: #c49a68;background-color: #36333d;}
|
||||
.dark a:not(.btn){color: #c49a68;}
|
||||
.follow-list ul{padding:0;margin:0;font-family:"Roboto","Helvetica","Arial",sans-serif;}
|
||||
.follow-list ul a:not(.btn){color:#fff}
|
||||
.os_bars{width:600px;display:inline-block;padding:5px 0 0 10px}
|
||||
@media screen and (max-width: 600px){
|
||||
.os_bars{width:200px;}
|
||||
.os_bars label{padding:2.5px 0;margin:0;font-size:8pt}
|
||||
}
|
||||
.os_bars .display-table .display-table-cell{padding:5px;vertical-align:center;width:33%}
|
||||
.progress{height:5px;margin:0;}
|
||||
.os_bars label,.os_bars .percent{padding:2.5px 0;margin:0;font-size:7.5pt}
|
||||
.ui-pnotify-hide .ui-pnotify{display:none!important}
|
||||
/*cool dropdown thing*/
|
||||
ul.msg_list li {
|
||||
background: #f7f7f7;color:#333;
|
||||
padding: 5px;
|
||||
display: list-item;
|
||||
margin: 6px 6px 0;
|
||||
width: 96% !important
|
||||
}
|
||||
|
||||
ul.msg_list li div{display:block}
|
||||
|
||||
ul.msg_list li:last-child {
|
||||
margin-bottom: 6px;
|
||||
padding: 10px
|
||||
}
|
||||
|
||||
ul.msg_list li a {
|
||||
padding: 3px 5px !important
|
||||
}
|
||||
ul.msg_list li .progress {
|
||||
height:5px;margin:10px 0 0 0;
|
||||
}
|
||||
|
||||
ul.msg_list li .image img {
|
||||
border-radius: 2px 2px 2px 2px;
|
||||
-webkit-border-radius: 2px 2px 2px 2px;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
width: 11%
|
||||
}
|
||||
|
||||
ul.msg_list li .time {
|
||||
font-size: 11px;
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
ul.msg_list li .message {
|
||||
display: block !important;
|
||||
font-size: 11px
|
||||
}
|
||||
|
||||
.dropdown-menu.msg_list span {
|
||||
white-space: normal
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
border: medium none;
|
||||
box-shadow: none;
|
||||
display: none;
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
left: 0;
|
||||
list-style: none outside none;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
text-shadow: none;
|
||||
top: 100%;
|
||||
z-index: 9998;
|
||||
border: 1px solid #D9DEE4;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0
|
||||
}
|
||||
|
||||
.dropdown-menu>li>a {
|
||||
color: #5A738E
|
||||
}
|
||||
|
||||
.navbar-nav .open .dropdown-menu {
|
||||
position: absolute;
|
||||
background: #fff;
|
||||
margin-top: 0;
|
||||
border: 1px solid #D9DEE4;
|
||||
-webkit-box-shadow: none;
|
||||
right: 0;
|
||||
left: auto;
|
||||
width: 220px
|
||||
}
|
||||
.is-small-screen .nav>li{display:inline-block}
|
||||
.navbar-nav .open .dropdown-menu li a{padding:7px 15px}
|
||||
.navbar-nav .open .dropdown-menu.msg_list {
|
||||
width: 300px
|
||||
}
|
||||
.nav>li>a{color:#fff}
|
||||
.nav>li>a:focus, .nav>li>a:hover,.nav .open>a, .nav .open>a:focus, .nav .open>a:hover{background:#867560}
|
||||
|
||||
.mdl-js-layout.hide-side:not(.is-small-screen){
|
||||
|
||||
}
|
||||
@media screen and (min-width: 1025px){
|
||||
.mdl-js-layout.hide-side:not(.is-small-screen)>.mdl-layout__drawer {
|
||||
width: 0px;transition:0.2s
|
||||
}
|
||||
}
|
||||
.mdl-js-layout.hide-side:not(.is-small-screen) .mdl-layout__header .mdl-layout__drawer-button{
|
||||
display:none;
|
||||
}
|
||||
.mdl-js-layout.hide-side:not(.is-small-screen)>.mdl-layout__content{
|
||||
margin-left: 0px;transition:0.2s
|
||||
}
|
||||
.mdl-js-layout.hide-side:not(.is-small-screen)>.mdl-layout__header{
|
||||
margin-left: 0px;width:100%;transition:0.2s
|
||||
}
|
||||
/*Control Pad*/
|
||||
.PTZ_controls {
|
||||
z-index: 111;
|
||||
position: absolute;
|
||||
left: 20px;
|
||||
top: 20px;
|
||||
margin:0;
|
||||
display: inline-block;
|
||||
width: 120px;
|
||||
}
|
||||
.PTZ_controls .btn-group{margin-top:10px}
|
||||
.PTZ_controls .pad {
|
||||
position: relative;
|
||||
height: 120px;
|
||||
width: 120px;
|
||||
background: #b7b7b7;
|
||||
border-radius: 50%;
|
||||
box-shadow: inset 0 0 1px rgba(120, 120, 120, 0.6), inset 0 2px 2px rgba(0, 0, 0, 0.1), 0 2px 2px rgba(240, 240, 240, 0.4);
|
||||
}
|
||||
.PTZ_controls .control {
|
||||
position: absolute;
|
||||
}
|
||||
.PTZ_controls .pad .control {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
background: #636363;
|
||||
box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.6), 0 0 0 3px rgba(60, 60, 60, 0.2), 0 0 0 4px rgba(60, 60, 60, 0.2);
|
||||
border-radius: 2px;
|
||||
}
|
||||
.PTZ_controls .zoom_in{
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.PTZ_controls .zoom_out{
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.PTZ_controls .nv_enabled{
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.PTZ_controls .nv_disable{
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
.PTZ_controls .pad .top {
|
||||
top: 15px;
|
||||
left: 50%;
|
||||
margin: 0 0 0 -15px;
|
||||
}
|
||||
.PTZ_controls .pad .left {
|
||||
top: 45px;
|
||||
left: 15px;
|
||||
}
|
||||
.PTZ_controls .pad .right {
|
||||
top: 45px;
|
||||
right: 15px;
|
||||
}
|
||||
.PTZ_controls .pad .control.right:before {
|
||||
transform: rotate(90deg) translate(-3px, -5px);
|
||||
}
|
||||
.PTZ_controls .pad .bottom {
|
||||
bottom: 15px;
|
||||
left: 50%;
|
||||
margin: 0 0 0 -15px;
|
||||
}
|
||||
/* Overlap the other controls to hide box-shadow */
|
||||
.PTZ_controls .pad .middle {
|
||||
height: 34px;
|
||||
width: 34px;
|
||||
z-index: 5;
|
||||
top: 43px;
|
||||
left: 50%;
|
||||
margin: 0 0 0 -17px;
|
||||
box-shadow: none;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.PTZ_controls .pad .middle:after {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin: -35% 0 0 -35%;
|
||||
content: '';
|
||||
background: #636363;
|
||||
height: 70%;
|
||||
width: 70%;
|
||||
border-radius: 100%;
|
||||
box-shadow: inset 0 0 2px rgba(120, 120, 120, 0.6), inset 0 2px 8px rgba(0, 0, 0, 0.1), 0 2px 2px rgba(240, 240, 240, 0.2);
|
||||
}
|
||||
/*Digital Zoom*/
|
||||
.stream-block{
|
||||
position: relative;
|
||||
overflow: auto;
|
||||
}
|
||||
.zoomGlass {
|
||||
overflow: hidden;
|
||||
transition: none;
|
||||
width: 175px; height: 175px;
|
||||
position: absolute;
|
||||
border-radius: 15px;
|
||||
border: 3px solid #ddd;
|
||||
z-index:9999;
|
||||
}
|
||||
.zoomGlass iframe,.zoomGlass canvas{position:absolute;transition: none;}
|
||||
.zoomGlass .hoverShade{position:absolute;width:100%;height:100%}
|
||||
|
||||
.dark.form-control,.dark .form-control {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
padding: 6px 12px;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
color: #eee;
|
||||
background-color: #36333d;
|
||||
background-image: none;
|
||||
border: 1px solid #444;
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
||||
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||
}
|
||||
|
||||
.dark.form-control:focus,.dark .form-control:focus {
|
||||
color: #ddd;
|
||||
background-color: #333;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
|
||||
/*** custom checkboxes ***/
|
||||
|
||||
.checkbox input[type=checkbox] { display:none; } /* to hide the checkbox itself */
|
||||
.checkbox input[type=checkbox] + label:before {
|
||||
font-family: FontAwesome;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.checkbox input[type=checkbox] + label:before { content: "\f096"; } /* unchecked icon */
|
||||
.checkbox input[type=checkbox] + label:before { letter-spacing: 10px; } /* space between checkbox and label */
|
||||
|
||||
.checkbox input[type=checkbox]:checked + label:before { content: "\f046"; } /* checked icon */
|
||||
.checkbox input[type=checkbox]:checked + label:before { letter-spacing: 5px; } /* allow space for check mark */
|
||||
|
||||
/*Clock*/
|
||||
#time-date {font-size:12px; text-align:center;}
|
||||
@media screen and (min-width:1025px){
|
||||
#clock {padding-right:35px}
|
||||
}
|
||||
#clock ul { width:150px; margin:0 auto; padding:0px; list-style:none; text-align:center; }
|
||||
#clock ul li { display:inline; font-size:1.6em; text-align:center;font-family:monospace;}
|
||||
|
||||
#clock .point { position:relative; -moz-animation:mymove 1s ease infinite; -webkit-animation:mymove 1s ease infinite; }
|
||||
|
||||
/*custom vis.js css*/
|
||||
.vis-timeline{background:#212121;color:#fff;border-color:#444}
|
||||
.vis-time-axis .vis-text{color: #dedede}
|
||||
.vis-item.vis-range .vis-item-content{background:#333;color:#fff}
|
||||
.vis-time-axis .vis-grid.vis-minor{border-color:#444}
|
||||
|
||||
|
||||
@-moz-document url-prefix() {
|
||||
.full.modal .modal-body, .medium.modal .modal-body {
|
||||
height:70%
|
||||
}
|
||||
}
|
||||
|
||||
/*animations*/
|
||||
@keyframes blink {
|
||||
0% { opacity:1 }
|
||||
50% { opacity:0 }
|
||||
100% { opacity:1 }
|
||||
}
|
||||
@-webkit-keyframes blink {
|
||||
0% { opacity:1 }
|
||||
50% { opacity:0 }
|
||||
100% { opacity:1 }
|
||||
}
|
||||
.blink,[mode="Record"] .lamp {
|
||||
-webkit-animation: blink 1s linear infinite;
|
||||
-moz-animation: blink 1s linear infinite;
|
||||
animation: blink 1s linear infinite;
|
||||
}
|
||||
.mdl-menu__item>div{display:flex;align-items: center;width:100%}
|
||||
.mdl-menu__item>div>i{margin-right:5px}
|
||||
/*For languages that are right to left*/
|
||||
.right-to-left {text-align:right}
|
||||
.right-to-left select{direction: rtl;}
|
||||
.right-to-left input,.right-to-left textarea{direction: rtl;text-align:right}
|
||||
.right-to-left .form-group label span{padding-right:10px}
|
||||
.right-to-left .modal-footer{text-align:left}
|
||||
.right-to-left .mdl-menu__item>div>*{flex:1}
|
||||
.right-to-left .mdl-menu__item>div>i{margin-right:0;margin-left:5px}
|
||||
.right-to-left .mdl-menu__item{text-align:right}
|
||||
.right-to-left .mdl-menu__item i{float:right}
|
||||
.right-to-left .pull-right,.right-to-left .close{float:left!important}
|
||||
.right-to-left .pull-left,.right-to-left .mdl-menu__item span{float:right!important}
|
||||
/* All-CSS Toggle Switch (Checkbox Hack) by Marcus Burnette - https://codepen.io/mburnette/pen/LxNxNg */
|
||||
.marc-toggle {
|
||||
width: 50px;
|
||||
height: 25px;
|
||||
}
|
||||
.marc-toggle.abs-bot-left {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
left: 10px;
|
||||
}
|
||||
.marc-toggle.abs-bot-right {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
.marc-toggle input[type=checkbox]{
|
||||
height: 0;
|
||||
width: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.marc-toggle label {
|
||||
cursor: pointer;
|
||||
text-indent: -9999px;
|
||||
width: 100px;
|
||||
height: 20px;
|
||||
background: grey;
|
||||
display: block;
|
||||
border-radius: 100px;
|
||||
margin-bottom: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.marc-toggle label:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #fff;
|
||||
border-radius: 90px;
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
.marc-toggle input:checked + label {
|
||||
background: #00118c;
|
||||
}
|
||||
|
||||
.marc-toggle input:checked + label:after {
|
||||
left: calc(100% - 5px);
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
|
||||
.marc-toggle label:active:after {
|
||||
width: 10px;
|
||||
}
|
9
web/libs/css/material.min.css
vendored
Normal file
1
web/libs/css/material.min.css.map
Normal file
634
web/libs/css/material.style.css
Normal file
|
@ -0,0 +1,634 @@
|
|||
/**
|
||||
* Copyright 2015 Google Inc. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
html, body {
|
||||
font-family: 'Roboto', 'Helvetica', sans-serif;
|
||||
}
|
||||
.demo-avatar {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 24px;
|
||||
}
|
||||
.demo-layout .mdl-layout__header .mdl-layout__drawer-button {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
}
|
||||
.mdl-layout__drawer .avatar {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.demo-drawer {
|
||||
border: none;
|
||||
}
|
||||
/* iOS Safari specific workaround */
|
||||
.demo-drawer .mdl-menu__container {
|
||||
z-index: -1;
|
||||
}
|
||||
.demo-drawer .demo-navigation {
|
||||
z-index: -2;
|
||||
}
|
||||
/* END iOS Safari specific workaround */
|
||||
.demo-drawer .mdl-menu .mdl-menu__item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.demo-drawer-header {
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
padding: 16px;
|
||||
}
|
||||
.demo-avatar-dropdown {
|
||||
display: flex;
|
||||
position: relative;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.demo-navigation {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.demo-layout .demo-navigation .mdl-navigation__link {
|
||||
display: flex !important;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
color: rgb(255, 255, 255);
|
||||
font-weight: 500;
|
||||
}
|
||||
.demo-layout .demo-navigation .mdl-navigation__link:hover {
|
||||
background-color: #bd7200;
|
||||
}
|
||||
.demo-navigation .mdl-navigation__link .material-icons {
|
||||
font-size: 24px;
|
||||
color: rgba(255, 255, 255, 0.56);
|
||||
margin-right: 32px;
|
||||
}
|
||||
|
||||
.demo-content {
|
||||
max-width: 1080px;
|
||||
}
|
||||
|
||||
.demo-charts {
|
||||
align-items: center;
|
||||
}
|
||||
.demo-chart:nth-child(1) {
|
||||
color: #ACEC00;
|
||||
}
|
||||
.demo-chart:nth-child(2) {
|
||||
color: #00BBD6;
|
||||
}
|
||||
.demo-chart:nth-child(3) {
|
||||
color: #BA65C9;
|
||||
}
|
||||
.demo-chart:nth-child(4) {
|
||||
color: #EF3C79;
|
||||
}
|
||||
.demo-graphs {
|
||||
padding: 16px 32px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
/* TODO: Find a proper solution to have the graphs
|
||||
* not float around outside their container in IE10/11.
|
||||
* Using a browserhacks.com solution for now.
|
||||
*/
|
||||
_:-ms-input-placeholder, :root .demo-graphs {
|
||||
min-height: 664px;
|
||||
}
|
||||
_:-ms-input-placeholder, :root .demo-graph {
|
||||
max-height: 300px;
|
||||
}
|
||||
/* TODO end */
|
||||
.demo-graph:nth-child(1) {
|
||||
color: #00b9d8;
|
||||
}
|
||||
.demo-graph:nth-child(2) {
|
||||
color: #d9006e;
|
||||
}
|
||||
|
||||
.demo-cards {
|
||||
align-items: flex-start;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.demo-cards .demo-separator {
|
||||
height: 32px;
|
||||
}
|
||||
.demo-cards .mdl-card__title.mdl-card__title {
|
||||
color: white;
|
||||
font-size: 24px;
|
||||
font-weight: 400;
|
||||
}
|
||||
.demo-cards ul {
|
||||
padding: 0;
|
||||
}
|
||||
.demo-cards h3 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.demo-updates .mdl-card__title {
|
||||
min-height: 200px;
|
||||
background-image: url('images/dog.png');
|
||||
background-position: 90% 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.demo-cards .mdl-card__actions a {
|
||||
color: #00BCD4;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.demo-options h3 {
|
||||
margin: 0;
|
||||
}
|
||||
.demo-options .mdl-checkbox__box-outline {
|
||||
border-color: rgba(255, 255, 255, 0.89);
|
||||
}
|
||||
.demo-options ul {
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
.demo-options li {
|
||||
margin: 4px 0;
|
||||
}
|
||||
.demo-options .material-icons {
|
||||
color: rgba(255, 255, 255, 0.89);
|
||||
}
|
||||
.demo-options .mdl-card__actions {
|
||||
height: 64px;
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.demo-blog .demo-blog__posts {
|
||||
padding: 0;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
-webkit-flex-shrink: 0;
|
||||
-ms-flex-negative: 0;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.demo-blog.mdl-layout .mdl-layout__content {
|
||||
padding-top: 20px;
|
||||
position: relative;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
.demo-blog.mdl-layout .mdl-layout__content:not(.selected) {
|
||||
display: none;
|
||||
}
|
||||
.demo-blog .mdl-card {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-align-items: stretch;
|
||||
-ms-flex-align: stretch;
|
||||
align-items: stretch;
|
||||
min-height: 360px;
|
||||
}
|
||||
.demo-blog .mdl-card__title {
|
||||
padding: 16px;
|
||||
-webkit-flex-grow: 1;
|
||||
-ms-flex-positive: 1;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.demo-blog .mdl-card__media {
|
||||
box-sizing: border-box;
|
||||
background-size: cover;
|
||||
padding: 24px;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-grow: 1;
|
||||
-ms-flex-positive: 1;
|
||||
flex-grow: 1;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-align-items: flex-end;
|
||||
-ms-flex-align: end;
|
||||
align-items: flex-end;
|
||||
}
|
||||
.demo-blog .mdl-card__title a {
|
||||
color: inherit;
|
||||
}
|
||||
.demo-blog .mdl-card__supporting-text {
|
||||
width: 100%;
|
||||
padding: 16px;
|
||||
min-height: 64px;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
.demo-blog .mdl-card__supporting-text strong {
|
||||
font-weight: 400;
|
||||
}
|
||||
.demo-blog .mdl-card__media ~ .mdl-card__supporting-text {
|
||||
min-height: 64px;
|
||||
}
|
||||
.demo-blog .mdl-card__supporting-text:not(:last-child) {
|
||||
box-sizing: border-box;
|
||||
padding:10px 16px;min-height:auto;
|
||||
}
|
||||
.demo-blog:not(.demo-blog--blogpost) .mdl-card__supporting-text ~ .mdl-card__supporting-text {
|
||||
border-top: 1px solid #54502d;
|
||||
}
|
||||
|
||||
.demo-blog .mdl-card__actions:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
.demo-blog .meta {
|
||||
box-sizing: border-box;
|
||||
padding: 16px;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-justify-content: flex-start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
height: auto;
|
||||
}
|
||||
.demo-blog .meta > .meta__favorites{
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
margin: 0 8px;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.demo-blog .meta > .meta__favorites .material-icons {
|
||||
font-size: 2em;
|
||||
cursor: pointer;
|
||||
margin-left: 12px;
|
||||
}
|
||||
.demo-blog .mdl-card .meta.meta--fill {
|
||||
-webkit-justify-content: space-between;
|
||||
-ms-flex-pack: justify;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.demo-blog .meta > *:first-child {
|
||||
margin-right: 16px;
|
||||
}
|
||||
.demo-blog .meta > * {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
.demo-blog.is-small-screen .demo-blog__posts > .mdl-card.coffee-pic {
|
||||
-webkit-order: 0;
|
||||
-ms-flex-order: 0;
|
||||
order: 0;
|
||||
}
|
||||
.demo-blog.is-small-screen .demo-blog__posts > .mdl-card.something-else {
|
||||
-webkit-order: -1;
|
||||
-ms-flex-order: -1;
|
||||
order: -1;
|
||||
}
|
||||
.demo-blog .coffee-pic .mdl-card__media {
|
||||
background-image: url('images/coffee.jpg');
|
||||
}
|
||||
.demo-blog .something-else .mdl-card__media {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-justify-content: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
.demo-blog .something-else > button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 28px;
|
||||
-webkit-transform: translate(0px, -28px);
|
||||
transform: translate(0px, -28px);
|
||||
}
|
||||
.demo-blog .something-else .mdl-card__media {
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
border-top-left-radius: 2px;
|
||||
border-top-right-radius: 2px;
|
||||
}
|
||||
.demo-blog .something-else .mdl-card__media img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.demo-blog .something-else .mdl-card__supporting-text {
|
||||
background-color: #F5F5F5;
|
||||
border-bottom-left-radius: 2px;
|
||||
border-bottom-right-radius: 2px;
|
||||
}
|
||||
.demo-blog .on-the-road-again .mdl-card__media {
|
||||
background-image: url('images/road.jpg');
|
||||
}
|
||||
.demo-blog .shopping .mdl-card__media {
|
||||
background-image: url('images/shopping.jpg');
|
||||
}
|
||||
.demo-blog .demo-blog__posts > .demo-nav {
|
||||
margin: 12px 15px;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-justify-content: space-between;
|
||||
-ms-flex-pack: justify;
|
||||
justify-content: space-between;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
color: white;
|
||||
font-weight: 500;
|
||||
}
|
||||
.demo-blog .demo-blog__posts > .demo-nav > .demo-nav__button {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
.demo-blog .demo-blog__posts > .demo-nav .mdl-button {
|
||||
color: rgba(0,0,0,0.54);
|
||||
background-color: white;
|
||||
}
|
||||
.demo-blog .demo-blog__posts > .demo-nav > .demo-nav__button:first-child .mdl-button {
|
||||
margin-right: 16px;
|
||||
}
|
||||
.demo-blog .demo-blog__posts > .demo-nav > .demo-nav__button:last-child .mdl-button {
|
||||
margin-left: 16px;
|
||||
}
|
||||
.demo-blog .mdl-card > a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
font-weight: inherit;
|
||||
}
|
||||
.demo-blog .mdl-card h3 {
|
||||
margin: 0;
|
||||
}
|
||||
.demo-blog .mdl-card h3 a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.demo-blog .mdl-card h3.quote:before, .demo-blog .mdl-card h3.quote:after {
|
||||
display: block;
|
||||
font-size: 3em;
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
.demo-blog .mdl-card h3.quote:before {
|
||||
content: '“';
|
||||
}
|
||||
.demo-blog .mdl-card h3.quote:after {
|
||||
content: '”';
|
||||
}
|
||||
.demo-blog--blogpost .custom-header {
|
||||
background-color: transparent;
|
||||
}
|
||||
.demo-blog--blogpost .demo-blog__posts > .mdl-card .mdl-card__media {
|
||||
background-image: url('images/road_big.jpg');
|
||||
height: 280px;
|
||||
}
|
||||
.demo-blog--blogpost .comments {
|
||||
background-color: #EEE;
|
||||
}
|
||||
.demo-blog--blogpost .meta > * {
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
.demo-blog--blogpost .meta + .mdl-card__supporting-text {
|
||||
border: 0;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
.demo-blog--blogpost .meta + .mdl-card__supporting-text p {
|
||||
max-width: 512px;
|
||||
margin: 16px auto;
|
||||
font-size: 16px;
|
||||
line-height: 28px;
|
||||
}
|
||||
|
||||
.demo-blog--blogpost .comments {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-justify-content: flex-start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
-webkit-align-items: stretch;
|
||||
-ms-flex-align: stretch;
|
||||
align-items: stretch;
|
||||
padding: 32px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.demo-blog--blogpost .comments > form {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.demo-blog--blogpost .comments > form .mdl-textfield {
|
||||
-webkit-flex-grow: 1;
|
||||
-ms-flex-positive: 1;
|
||||
flex-grow: 1;
|
||||
margin-right: 16px;
|
||||
color: rgb(97, 97, 97);
|
||||
}
|
||||
/* Workaround for Firefox.
|
||||
* User agent stylesheet kept overwriting the font in FF only.
|
||||
*/
|
||||
.demo-blog--blogpost .comments > form .mdl-textfield .mdl-textfield__input {
|
||||
font-family: 'Roboto', 'Helvetica', sans-serif;
|
||||
}
|
||||
.demo-blog--blogpost .comments > form .mdl-textfield input,
|
||||
.demo-blog--blogpost .comments > form .mdl-textfield textarea {
|
||||
resize: none;
|
||||
}
|
||||
.demo-blog--blogpost .comments > form button {
|
||||
margin-top: 20px;
|
||||
background-color: rgba(0, 0, 0, 0.24);
|
||||
color: white;
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-align-items: stretch;
|
||||
-ms-flex-align: stretch;
|
||||
align-items: stretch;
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment > .comment__header {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment > .comment__header > .comment__avatar {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 24px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment > .comment__header > .comment__author {
|
||||
-webkit-flex-grow: 1;
|
||||
-ms-flex-positive: 1;
|
||||
flex-grow: 1;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: column;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment > .comment__text {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment > .comment__actions {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-flex-direction: row;
|
||||
-ms-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-justify-content: flex-start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
font-size: 0.8em;
|
||||
margin-top: 16px;
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment > .comment__actions button {
|
||||
margin-right: 16px;
|
||||
color: rgba(0, 0, 0, 0.24);
|
||||
}
|
||||
.demo-blog--blogpost .comments .comment > .comment__answers {
|
||||
padding-top: 32px;
|
||||
padding-left: 48px;
|
||||
}
|
||||
|
||||
.demo-blog--blogpost .demo-back {
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
left: 16px;
|
||||
color: white;
|
||||
z-index: 9999;
|
||||
}
|
||||
.demo-blog .section-spacer {
|
||||
-webkit-flex-grow: 1;
|
||||
-ms-flex-positive: 1;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.demo-blog .something-else {
|
||||
overflow: visible;
|
||||
z-index: 10;
|
||||
}
|
||||
.demo-blog .amazing .mdl-card__title {
|
||||
background-color: #263238;
|
||||
}
|
||||
.demo-blog .minilogo {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
background-image: url('images/avatar.png');
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 50%;
|
||||
border-radius: 22px;
|
||||
background-color: #F5F5F5;
|
||||
}
|
||||
|
||||
/* Fixes for IE 10 */
|
||||
.mdl-grid {
|
||||
display: -webkit-flex !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
.social-btn {
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-color: transparent;
|
||||
margin: 0 16px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
cursor: pointer;
|
||||
opacity: 0.46;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.social-btn__twitter {
|
||||
background-image: url('https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png');
|
||||
}
|
||||
.social-btn__blogger {
|
||||
background-image: url('https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png');
|
||||
}
|
||||
.social-btn__gplus {
|
||||
background-image: url('https://www.gstatic.com/images/icons/material/system/2x/post_gplus_black_24dp.png');
|
||||
}
|
||||
.social-btn__share {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.demo-blog .mdl-mini-footer {
|
||||
margin-top: 80px;
|
||||
height: 120px;
|
||||
padding: 40px;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
background-color: white;
|
||||
box-sizing: border-box;
|
||||
}
|
1
web/libs/css/pnotify.custom.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.ui-pnotify{top:36px;right:36px;position:absolute;height:auto;z-index:2}body>.ui-pnotify{position:fixed;z-index:100040}.ui-pnotify-modal-overlay{background-color:rgba(0,0,0,.4);top:0;left:0;position:absolute;height:100%;width:100%;z-index:1}body>.ui-pnotify-modal-overlay{position:fixed;z-index:100039}.ui-pnotify.ui-pnotify-in{display:block!important}.ui-pnotify.ui-pnotify-move{transition:left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-slow{transition:opacity .6s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-slow.ui-pnotify.ui-pnotify-move{transition:opacity .6s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-normal{transition:opacity .4s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-normal.ui-pnotify.ui-pnotify-move{transition:opacity .4s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-fast{transition:opacity .2s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-fast.ui-pnotify.ui-pnotify-move{transition:opacity .2s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-in{opacity:1}.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:0 6px 28px 0 rgba(0,0,0,.1);-moz-box-shadow:0 6px 28px 0 rgba(0,0,0,.1);box-shadow:0 6px 28px 0 rgba(0,0,0,.1)}.ui-pnotify-container{background-position:0 0;padding:.8em;height:100%;margin:0}.ui-pnotify-container:after{content:" ";visibility:hidden;display:block;height:0;clear:both}.ui-pnotify-container.ui-pnotify-sharp{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-title{display:block;margin-bottom:.4em;margin-top:0}.ui-pnotify-text{display:block}.ui-pnotify-icon,.ui-pnotify-icon span{display:block;float:left;margin-right:.2em}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-topleft{left:25px;right:auto}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-bottomright{bottom:25px;top:auto}.ui-pnotify.stack-modal{left:50%;right:auto;margin-left:-150px}.ui-pnotify-closer,.ui-pnotify-sticker{float:right;margin-left:.2em}.ui-pnotify-history-container{position:absolute;top:0;right:18px;width:70px;border-top:none;padding:0;-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0;-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0;z-index:10000}.ui-pnotify-history-container.ui-pnotify-history-fixed{position:fixed}.ui-pnotify-history-container .ui-pnotify-history-header{padding:2px;text-align:center}.ui-pnotify-history-container button{cursor:pointer;display:block;width:100%}.ui-pnotify-history-container .ui-pnotify-history-pulldown{display:block;margin:0 auto}.ui-pnotify-container{position:relative;left:0}@media (max-width:480px){.ui-pnotify-mobile-able.ui-pnotify{position:fixed;top:0;right:0;left:0;width:auto!important;font-size:1.2em;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;-ms-font-smoothing:antialiased;font-smoothing:antialiased}.ui-pnotify-mobile-able.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-bottom-width:5px}.ui-pnotify-mobile-able .ui-pnotify-container{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft,.ui-pnotify-mobile-able.ui-pnotify.stack-topleft{left:0;right:0}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft,.ui-pnotify-mobile-able.ui-pnotify.stack-bottomright{left:0;right:0;bottom:0;top:auto}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft .ui-pnotify-shadow,.ui-pnotify-mobile-able.ui-pnotify.stack-bottomright .ui-pnotify-shadow{border-top-width:5px;border-bottom-width:1px}}
|
246
web/libs/css/poseidon.css
Normal file
|
@ -0,0 +1,246 @@
|
|||
/* bug: pseudo selectors for :fullscreen, :-moz-full-screen, and :-webkit-full-screen cannot be grouped together */
|
||||
|
||||
/* styles for container div */
|
||||
|
||||
div.mse-container {
|
||||
position: relative;
|
||||
float: left;
|
||||
display: inline-block;
|
||||
background: linear-gradient(black, grey, black);
|
||||
border: 1px solid white;
|
||||
}
|
||||
|
||||
div.mse-container:fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.mse-container:-ms-fullscreen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.mse-container:-moz-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.mse-container:-webkit-full-screen {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.mse-container.disabled {
|
||||
pointer-events: none;
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
/* styles for video */
|
||||
|
||||
video.mse-video {
|
||||
pointer-events: none;
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
div.mse-container:fullscreen video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.mse-container:-ms-fullscreen video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.mse-container:-moz-full-screen video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
div.mse-container:-webkit-full-screen video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* styles for controls div */
|
||||
|
||||
div.mse-controls {
|
||||
position: absolute;
|
||||
background: black;
|
||||
border: 1px solid white;
|
||||
left: 5px;
|
||||
right: 5px;
|
||||
bottom: 5px;
|
||||
padding: 3px;
|
||||
border-radius: 5px;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
div.mse-controls:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
div.mse-container:fullscreen div {
|
||||
border: 2px solid white;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
padding: 6px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
div.mse-container:-ms-fullscreen div {
|
||||
border: 2px solid white;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
padding: 6px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
div.mse-container:-moz-full-screen div {
|
||||
border: 2px solid white;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
padding: 6px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
div.mse-container:-webkit-full-screen div {
|
||||
border: 2px solid white;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
bottom: 10px;
|
||||
padding: 6px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* styles for buttons */
|
||||
|
||||
div.mse-container button {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
outline: none;
|
||||
opacity: 0.8;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
font-size: 16px;
|
||||
margin: 1px;
|
||||
}
|
||||
|
||||
div.mse-container button:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
div.mse-container button:active {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
div.mse-container:fullscreen button {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
div.mse-container:-ms-fullscreen button {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
div.mse-container:-moz-full-screen button {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
div.mse-container:-webkit-full-screen button {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
button.mse-start, button.mse-stop, button.mse-snapshot {
|
||||
float: left;
|
||||
}
|
||||
|
||||
button.mse-fullscreen, button.mse-cycle {
|
||||
float: right;
|
||||
}
|
||||
|
||||
button.mse-start:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f04b";
|
||||
}
|
||||
|
||||
button.mse-stop:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f04d";
|
||||
}
|
||||
|
||||
button.mse-snapshot:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f030";
|
||||
}
|
||||
|
||||
button.mse-fullscreen:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f065";
|
||||
}
|
||||
|
||||
button.mse-stop.cycling {
|
||||
pointer-events: none;
|
||||
cursor: none;
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
div.mse-container:fullscreen button.mse-fullscreen:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f066";
|
||||
}
|
||||
|
||||
div.mse-container:-ms-fullscreen button.mse-fullscreen:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f066";
|
||||
}
|
||||
|
||||
div.mse-container:-moz-full-screen button.mse-fullscreen:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f066";
|
||||
}
|
||||
|
||||
div.mse-container:-webkit-full-screen button.mse-fullscreen:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f066";
|
||||
}
|
||||
|
||||
button.mse-cycle:before {
|
||||
font-family: FontAwesome;
|
||||
content: "\f021";/* other cycle icon options : f021 f110 f01e f1ce */
|
||||
}
|
||||
|
||||
button.mse-cycle.animated {
|
||||
-webkit-animation: spin 5s linear infinite;
|
||||
animation: spin 5s linear infinite;
|
||||
}
|
||||
|
||||
/* SPIN animation for cycle button */
|
||||
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
-ms-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
-ms-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
1233
web/libs/css/vbox.css
Normal file
BIN
web/libs/fonts/FontAwesome.otf
Normal file
BIN
web/libs/fonts/fontawesome-webfont.eot
Normal file
2671
web/libs/fonts/fontawesome-webfont.svg
Normal file
After Width: | Height: | Size: 434 KiB |
BIN
web/libs/fonts/fontawesome-webfont.ttf
Normal file
BIN
web/libs/fonts/fontawesome-webfont.woff
Normal file
BIN
web/libs/fonts/fontawesome-webfont.woff2
Normal file
BIN
web/libs/img/bg.jpg
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
web/libs/img/demo.jpg
Normal file
After Width: | Height: | Size: 211 KiB |
7
web/libs/img/icon/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# How do I make this Icon Set?
|
||||
|
||||
Go to http://www.favicomatic.com/ , upload your image and let it do the magic.
|
||||
|
||||
Remember! if you use favicomatic.com and it helps you, please consider donating to them.
|
||||
|
||||
- Moe Alam
|
BIN
web/libs/img/icon/apple-touch-icon-114x114.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
web/libs/img/icon/apple-touch-icon-120x120.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
web/libs/img/icon/apple-touch-icon-144x144.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
web/libs/img/icon/apple-touch-icon-152x152.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
web/libs/img/icon/apple-touch-icon-57x57.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
web/libs/img/icon/apple-touch-icon-60x60.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
web/libs/img/icon/apple-touch-icon-72x72.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
web/libs/img/icon/apple-touch-icon-76x76.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
web/libs/img/icon/circle-text.png
Normal file
After Width: | Height: | Size: 222 KiB |
BIN
web/libs/img/icon/favicon-128.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
web/libs/img/icon/favicon-16x16.png
Normal file
After Width: | Height: | Size: 852 B |
BIN
web/libs/img/icon/favicon-196x196.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
web/libs/img/icon/favicon-32x32.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
web/libs/img/icon/favicon-96x96.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
web/libs/img/icon/favicon.ico
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
web/libs/img/icon/mstile-144x144.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
web/libs/img/icon/mstile-150x150.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
web/libs/img/icon/mstile-310x150.png
Normal file
After Width: | Height: | Size: 151 KiB |
BIN
web/libs/img/icon/mstile-310x310-circle.png
Normal file
After Width: | Height: | Size: 218 KiB |
BIN
web/libs/img/icon/mstile-310x310.png
Normal file
After Width: | Height: | Size: 267 KiB |
BIN
web/libs/img/icon/mstile-70x70.png
Normal file
After Width: | Height: | Size: 19 KiB |
12757
web/libs/js/Chart.js
vendored
Normal file
7
web/libs/js/bootstrap-table-locale-all.min.js
vendored
Normal file
8
web/libs/js/bootstrap-table.min.js
vendored
Normal file
2377
web/libs/js/bootstrap.js
vendored
Normal file
7
web/libs/js/bootstrap.min.js
vendored
Normal file
9236
web/libs/js/c3.js
Normal file
26
web/libs/js/clock.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
$(document).ready(function() {
|
||||
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
|
||||
var dayNames= ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
|
||||
|
||||
var newDate = new Date();
|
||||
newDate.setDate(newDate.getDate());
|
||||
$('#time-date').html(dayNames[newDate.getDay()] + " " + newDate.getDate() + ' ' + monthNames[newDate.getMonth()] + ' ' + newDate.getFullYear());
|
||||
|
||||
var second=function() {
|
||||
var seconds = new Date().getSeconds();
|
||||
document.getElementById("time-sec").innerHTML=( seconds < 10 ? "0" : "" ) + seconds;
|
||||
}
|
||||
var minute=function() {
|
||||
var minutes = new Date().getMinutes();
|
||||
document.getElementById("time-min").innerHTML=(( minutes < 10 ? "0" : "" ) + minutes);
|
||||
}
|
||||
var hour=function() {
|
||||
var hours = new Date().getHours();
|
||||
var element=$("#time-hours");
|
||||
hours = ( hours < 10 ? "0" : "" ) + hours;
|
||||
if(element.hasClass('twentyfour')&&hours>12){hours=hours-12}
|
||||
element.html(hours);
|
||||
}
|
||||
setInterval(function(){second(),minute(),hour();},1000);
|
||||
second(),minute(),hour();
|
||||
});
|
119
web/libs/js/clusterPoints.js
Normal file
|
@ -0,0 +1,119 @@
|
|||
// Original is by Nathan Epstein and found at https://github.com/NathanEpstein/clusters/blob/master/clusters.js
|
||||
// Modified for browser
|
||||
|
||||
var Cluster = {
|
||||
|
||||
data: getterSetter([], function(arrayOfArrays) {
|
||||
if(!arrayOfArrays[0]){
|
||||
arrayOfArrays[0]=[0,0]
|
||||
}
|
||||
var n = arrayOfArrays[0].length;
|
||||
return (arrayOfArrays.map(function(array) {
|
||||
return array.length == n;
|
||||
}).reduce(function(boolA, boolB) { return (boolA & boolB) }, true));
|
||||
}),
|
||||
|
||||
clusters: function() {
|
||||
var pointsAndCentroids = kmeans(this.data(), {k: this.k(), iterations: this.iterations() });
|
||||
var points = pointsAndCentroids.points;
|
||||
var centroids = pointsAndCentroids.centroids;
|
||||
|
||||
return centroids.map(function(centroid) {
|
||||
return {
|
||||
centroid: centroid.location(),
|
||||
points: points.filter(function(point) { return point.label() == centroid.label() }).map(function(point) { return point.location() }),
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
k: getterSetter(undefined, function(value) { return ((value % 1 == 0) & (value > 0)) }),
|
||||
|
||||
iterations: getterSetter(Math.pow(10, 3), function(value) { return ((value % 1 == 0) & (value > 0)) }),
|
||||
|
||||
};
|
||||
|
||||
function kmeans(data, config) {
|
||||
// default k
|
||||
var k = config.k || Math.round(Math.sqrt(data.length / 2));
|
||||
var iterations = config.iterations;
|
||||
|
||||
// initialize point objects with data
|
||||
var points = data.map(function(vector) { return new Point(vector) });
|
||||
|
||||
// intialize centroids randomly
|
||||
var centroids = [];
|
||||
for (var i = 0; i < k; i++) {
|
||||
centroids.push(new Centroid(points[i % points.length].location(), i));
|
||||
};
|
||||
|
||||
// update labels and centroid locations until convergence
|
||||
for (var iter = 0; iter < iterations; iter++) {
|
||||
points.forEach(function(point) { point.updateLabel(centroids) });
|
||||
centroids.forEach(function(centroid) { centroid.updateLocation(points) });
|
||||
};
|
||||
|
||||
// return points and centroids
|
||||
return {
|
||||
points: points,
|
||||
centroids: centroids
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
// objects
|
||||
function Point(location) {
|
||||
var self = this;
|
||||
this.location = getterSetter(location);
|
||||
this.label = getterSetter();
|
||||
this.updateLabel = function(centroids) {
|
||||
var distancesSquared = centroids.map(function(centroid) {
|
||||
return sumOfSquareDiffs(self.location(), centroid.location());
|
||||
});
|
||||
self.label(mindex(distancesSquared));
|
||||
};
|
||||
};
|
||||
|
||||
function Centroid(initialLocation, label) {
|
||||
var self = this;
|
||||
this.location = getterSetter(initialLocation);
|
||||
this.label = getterSetter(label);
|
||||
this.updateLocation = function(points) {
|
||||
var pointsWithThisCentroid = points.filter(function(point) { return point.label() == self.label() });
|
||||
if (pointsWithThisCentroid.length > 0) self.location(averageLocation(pointsWithThisCentroid));
|
||||
};
|
||||
};
|
||||
|
||||
// convenience functions
|
||||
function getterSetter(initialValue, validator) {
|
||||
var thingToGetSet = initialValue;
|
||||
var isValid = validator || function(val) { return true };
|
||||
return function(newValue) {
|
||||
if (typeof newValue === 'undefined') return thingToGetSet;
|
||||
if (isValid(newValue)) thingToGetSet = newValue;
|
||||
};
|
||||
};
|
||||
|
||||
function sumOfSquareDiffs(oneVector, anotherVector) {
|
||||
var squareDiffs = oneVector.map(function(component, i) {
|
||||
return Math.pow(component - anotherVector[i], 2);
|
||||
});
|
||||
return squareDiffs.reduce(function(a, b) { return a + b }, 0);
|
||||
};
|
||||
|
||||
function mindex(array) {
|
||||
var min = array.reduce(function(a, b) {
|
||||
return Math.min(a, b);
|
||||
});
|
||||
return array.indexOf(min);
|
||||
};
|
||||
|
||||
function sumVectors(a, b) {
|
||||
return a.map(function(val, i) { return val + b[i] });
|
||||
};
|
||||
|
||||
function averageLocation(points) {
|
||||
var zeroVector = points[0].location().map(function() { return 0 });
|
||||
var locations = points.map(function(point) { return point.location() });
|
||||
var vectorSum = locations.reduce(function(a, b) { return sumVectors(a, b) }, zeroVector);
|
||||
return vectorSum.map(function(val) { return val / points.length });
|
||||
};
|
5
web/libs/js/d3.v3.min.js
vendored
Normal file
28
web/libs/js/dash.mediaplayer.min.js
vendored
Normal file
1627
web/libs/js/daterangepicker.js
Normal file
7
web/libs/js/flv.min.js
vendored
Normal file
1
web/libs/js/flv.min.js.map
Normal file
6280
web/libs/js/flv.shinobi.js
Normal file
9
web/libs/js/fullcalendar.min.js
vendored
Normal file
180
web/libs/js/gcal.js
Normal file
|
@ -0,0 +1,180 @@
|
|||
/*!
|
||||
* FullCalendar v3.0.1 Google Calendar Plugin
|
||||
* Docs & License: http://fullcalendar.io/
|
||||
* (c) 2016 Adam Shaw
|
||||
*/
|
||||
|
||||
(function(factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define([ 'jquery' ], factory);
|
||||
}
|
||||
else if (typeof exports === 'object') { // Node/CommonJS
|
||||
module.exports = factory(require('jquery'));
|
||||
}
|
||||
else {
|
||||
factory(jQuery);
|
||||
}
|
||||
})(function($) {
|
||||
|
||||
|
||||
var API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';
|
||||
var FC = $.fullCalendar;
|
||||
var applyAll = FC.applyAll;
|
||||
|
||||
|
||||
FC.sourceNormalizers.push(function(sourceOptions) {
|
||||
var googleCalendarId = sourceOptions.googleCalendarId;
|
||||
var url = sourceOptions.url;
|
||||
var match;
|
||||
|
||||
// if the Google Calendar ID hasn't been explicitly defined
|
||||
if (!googleCalendarId && url) {
|
||||
|
||||
// detect if the ID was specified as a single string.
|
||||
// will match calendars like "asdf1234@calendar.google.com" in addition to person email calendars.
|
||||
if (/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(url)) {
|
||||
googleCalendarId = url;
|
||||
}
|
||||
// try to scrape it out of a V1 or V3 API feed URL
|
||||
else if (
|
||||
(match = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(url)) ||
|
||||
(match = /^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(url))
|
||||
) {
|
||||
googleCalendarId = decodeURIComponent(match[1]);
|
||||
}
|
||||
|
||||
if (googleCalendarId) {
|
||||
sourceOptions.googleCalendarId = googleCalendarId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (googleCalendarId) { // is this a Google Calendar?
|
||||
|
||||
// make each Google Calendar source uneditable by default
|
||||
if (sourceOptions.editable == null) {
|
||||
sourceOptions.editable = false;
|
||||
}
|
||||
|
||||
// We want removeEventSource to work, but it won't know about the googleCalendarId primitive.
|
||||
// Shoehorn it into the url, which will function as the unique primitive. Won't cause side effects.
|
||||
// This hack is obsolete since 2.2.3, but keep it so this plugin file is compatible with old versions.
|
||||
sourceOptions.url = googleCalendarId;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
FC.sourceFetchers.push(function(sourceOptions, start, end, timezone) {
|
||||
if (sourceOptions.googleCalendarId) {
|
||||
return transformOptions(sourceOptions, start, end, timezone, this); // `this` is the calendar
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function transformOptions(sourceOptions, start, end, timezone, calendar) {
|
||||
var url = API_BASE + '/' + encodeURIComponent(sourceOptions.googleCalendarId) + '/events?callback=?'; // jsonp
|
||||
var apiKey = sourceOptions.googleCalendarApiKey || calendar.options.googleCalendarApiKey;
|
||||
var success = sourceOptions.success;
|
||||
var data;
|
||||
var timezoneArg; // populated when a specific timezone. escaped to Google's liking
|
||||
|
||||
function reportError(message, apiErrorObjs) {
|
||||
var errorObjs = apiErrorObjs || [ { message: message } ]; // to be passed into error handlers
|
||||
|
||||
// call error handlers
|
||||
(sourceOptions.googleCalendarError || $.noop).apply(calendar, errorObjs);
|
||||
(calendar.options.googleCalendarError || $.noop).apply(calendar, errorObjs);
|
||||
|
||||
// print error to debug console
|
||||
FC.warn.apply(null, [ message ].concat(apiErrorObjs || []));
|
||||
}
|
||||
|
||||
if (!apiKey) {
|
||||
reportError("Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/");
|
||||
return {}; // an empty source to use instead. won't fetch anything.
|
||||
}
|
||||
|
||||
// The API expects an ISO8601 datetime with a time and timezone part.
|
||||
// Since the calendar's timezone offset isn't always known, request the date in UTC and pad it by a day on each
|
||||
// side, guaranteeing we will receive all events in the desired range, albeit a superset.
|
||||
// .utc() will set a zone and give it a 00:00:00 time.
|
||||
if (!start.hasZone()) {
|
||||
start = start.clone().utc().add(-1, 'day');
|
||||
}
|
||||
if (!end.hasZone()) {
|
||||
end = end.clone().utc().add(1, 'day');
|
||||
}
|
||||
|
||||
// when sending timezone names to Google, only accepts underscores, not spaces
|
||||
if (timezone && timezone != 'local') {
|
||||
timezoneArg = timezone.replace(' ', '_');
|
||||
}
|
||||
|
||||
data = $.extend({}, sourceOptions.data || {}, {
|
||||
key: apiKey,
|
||||
timeMin: start.format(),
|
||||
timeMax: end.format(),
|
||||
timeZone: timezoneArg,
|
||||
singleEvents: true,
|
||||
maxResults: 9999
|
||||
});
|
||||
|
||||
return $.extend({}, sourceOptions, {
|
||||
googleCalendarId: null, // prevents source-normalizing from happening again
|
||||
url: url,
|
||||
data: data,
|
||||
startParam: false, // `false` omits this parameter. we already included it above
|
||||
endParam: false, // same
|
||||
timezoneParam: false, // same
|
||||
success: function(data) {
|
||||
var events = [];
|
||||
var successArgs;
|
||||
var successRes;
|
||||
|
||||
if (data.error) {
|
||||
reportError('Google Calendar API: ' + data.error.message, data.error.errors);
|
||||
}
|
||||
else if (data.items) {
|
||||
$.each(data.items, function(i, entry) {
|
||||
var url = entry.htmlLink || null;
|
||||
|
||||
// make the URLs for each event show times in the correct timezone
|
||||
if (timezoneArg && url !== null) {
|
||||
url = injectQsComponent(url, 'ctz=' + timezoneArg);
|
||||
}
|
||||
|
||||
events.push({
|
||||
id: entry.id,
|
||||
title: entry.summary,
|
||||
start: entry.start.dateTime || entry.start.date, // try timed. will fall back to all-day
|
||||
end: entry.end.dateTime || entry.end.date, // same
|
||||
url: url,
|
||||
location: entry.location,
|
||||
description: entry.description
|
||||
});
|
||||
});
|
||||
|
||||
// call the success handler(s) and allow it to return a new events array
|
||||
successArgs = [ events ].concat(Array.prototype.slice.call(arguments, 1)); // forward other jq args
|
||||
successRes = applyAll(success, this, successArgs);
|
||||
if ($.isArray(successRes)) {
|
||||
return successRes;
|
||||
}
|
||||
}
|
||||
|
||||
return events;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// Injects a string like "arg=value" into the querystring of a URL
|
||||
function injectQsComponent(url, component) {
|
||||
// inject it after the querystring but before the fragment
|
||||
return url.replace(/(\?.*?)?(#|$)/, function(whole, qs, hash) {
|
||||
return (qs ? qs + '&' : '?') + component + hash;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
});
|
9
web/libs/js/gridstack.jQueryUI.min.js
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* gridstack.js 0.3.0
|
||||
* http://troolee.github.io/gridstack.js/
|
||||
* (c) 2014-2016 Pavel Reznikov, Dylan Weiss
|
||||
* gridstack.js may be freely distributed under the MIT license.
|
||||
* @preserve
|
||||
*/
|
||||
!function(a){if("function"==typeof define&&define.amd)define(["jquery","lodash","gridstack","jquery-ui/data","jquery-ui/disable-selection","jquery-ui/focusable","jquery-ui/form","jquery-ui/ie","jquery-ui/keycode","jquery-ui/labels","jquery-ui/jquery-1-7","jquery-ui/plugin","jquery-ui/safe-active-element","jquery-ui/safe-blur","jquery-ui/scroll-parent","jquery-ui/tabbable","jquery-ui/unique-id","jquery-ui/version","jquery-ui/widget","jquery-ui/widgets/mouse","jquery-ui/widgets/draggable","jquery-ui/widgets/droppable","jquery-ui/widgets/resizable"],a);else if("undefined"!=typeof exports){try{jQuery=require("jquery")}catch(a){}try{_=require("lodash")}catch(a){}try{GridStackUI=require("gridstack")}catch(a){}a(jQuery,_,GridStackUI)}else a(jQuery,_,GridStackUI)}(function(a,b,c){function d(a){c.GridStackDragDropPlugin.call(this,a)}window;return c.GridStackDragDropPlugin.registerPlugin(d),d.prototype=Object.create(c.GridStackDragDropPlugin.prototype),d.prototype.constructor=d,d.prototype.resizable=function(c,d){if(c=a(c),"disable"===d||"enable"===d)c.resizable(d);else if("option"===d){var e=arguments[2],f=arguments[3];c.resizable(d,e,f)}else c.resizable(b.extend({},this.grid.opts.resizable,{start:d.start||function(){},stop:d.stop||function(){},resize:d.resize||function(){}}));return this},d.prototype.draggable=function(c,d){return c=a(c),"disable"===d||"enable"===d?c.draggable(d):c.draggable(b.extend({},this.grid.opts.draggable,{containment:this.grid.opts.isNested?this.grid.container.parent():null,start:d.start||function(){},stop:d.stop||function(){},drag:d.drag||function(){}})),this},d.prototype.droppable=function(b,c){return b=a(b),"disable"===c||"enable"===c?b.droppable(c):b.droppable({accept:c.accept}),this},d.prototype.isDroppable=function(b,c){return b=a(b),Boolean(b.data("droppable"))},d.prototype.on=function(b,c,d){return a(b).on(c,d),this},d});
|
||||
//# sourceMappingURL=gridstack.min.map
|
10
web/libs/js/gridstack.min.js
vendored
Normal file
1
web/libs/js/gridstack.min.map
Normal file
7
web/libs/js/hls.min.js
vendored
Normal file
8
web/libs/js/jquery-ui.min.js
vendored
Normal file
263
web/libs/js/jquery.canvasAreaDraw.js
Normal file
|
@ -0,0 +1,263 @@
|
|||
(function ($) {
|
||||
|
||||
$.fn.canvasAreaDraw = function (options) {
|
||||
|
||||
this.each(function (index, element) {
|
||||
init.apply(element, [index, element, options]);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
var init = function (index, input, options) {
|
||||
|
||||
var points, activePoint, settings;
|
||||
var $canvas, ctx, image;
|
||||
var draw, mousedown, stopdrag, move, moveall, resize, reset, rightclick, record;
|
||||
var dragpoint;
|
||||
var startpoint = false;
|
||||
|
||||
settings = $.extend({
|
||||
imageUrl: $(this).attr('data-image-url')
|
||||
}, options);
|
||||
|
||||
var v = $(input).val().replace(/[^0-9\,]/ig, '');
|
||||
if (v.length) {
|
||||
points = v.split(',').map(function (point) {
|
||||
return parseInt(point, 10);
|
||||
});
|
||||
} else {
|
||||
points = [];
|
||||
}
|
||||
|
||||
$canvas = $('<canvas>');
|
||||
ctx = $canvas[0].getContext('2d');
|
||||
|
||||
image = new Image();
|
||||
resize = function () {
|
||||
$canvas.attr('height', image.height).attr('width', image.width);
|
||||
draw();
|
||||
};
|
||||
$(image).load(resize);
|
||||
image.src = settings.imageUrl;
|
||||
if (image.loaded) {
|
||||
resize();
|
||||
}
|
||||
$canvas.css({background: 'url(' + image.src + ')'});
|
||||
|
||||
$(input).after($canvas);
|
||||
|
||||
reset = function () {
|
||||
points = [];
|
||||
draw();
|
||||
};
|
||||
|
||||
move = function (e) {
|
||||
if (!e.offsetX) {
|
||||
e.offsetX = (e.pageX - $(e.target).offset().left);
|
||||
e.offsetY = (e.pageY - $(e.target).offset().top);
|
||||
}
|
||||
points[activePoint] = Math.round(e.offsetX);
|
||||
points[activePoint + 1] = Math.round(e.offsetY);
|
||||
draw();
|
||||
};
|
||||
|
||||
moveall = function (e) {
|
||||
if (!e.offsetX) {
|
||||
e.offsetX = (e.pageX - $(e.target).offset().left);
|
||||
e.offsetY = (e.pageY - $(e.target).offset().top);
|
||||
}
|
||||
if (!startpoint) {
|
||||
startpoint = {x: Math.round(e.offsetX), y: Math.round(e.offsetY)};
|
||||
}
|
||||
var sdvpoint = {x: Math.round(e.offsetX), y: Math.round(e.offsetY)};
|
||||
for (var i = 0; i < points.length; i++) {
|
||||
points[i] = (sdvpoint.x - startpoint.x) + points[i];
|
||||
points[++i] = (sdvpoint.y - startpoint.y) + points[i];
|
||||
}
|
||||
startpoint = sdvpoint;
|
||||
draw();
|
||||
};
|
||||
|
||||
stopdrag = function () {
|
||||
$(this).off('mousemove');
|
||||
record();
|
||||
activePoint = null;
|
||||
};
|
||||
|
||||
rightclick = function (e) {
|
||||
e.preventDefault();
|
||||
if (!e.offsetX) {
|
||||
e.offsetX = (e.pageX - $(e.target).offset().left);
|
||||
e.offsetY = (e.pageY - $(e.target).offset().top);
|
||||
}
|
||||
var x = e.offsetX, y = e.offsetY;
|
||||
for (var i = 0; i < points.length; i += 2) {
|
||||
dis = Math.sqrt(Math.pow(x - points[i], 2) + Math.pow(y - points[i + 1], 2));
|
||||
if (dis < 6) {
|
||||
points.splice(i, 2);
|
||||
draw();
|
||||
record();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
mousedown = function (e) {
|
||||
var x, y, dis, lineDis, insertAt = points.length;
|
||||
|
||||
if (e.which === 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
if (!e.offsetX) {
|
||||
e.offsetX = (e.pageX - $(e.target).offset().left);
|
||||
e.offsetY = (e.pageY - $(e.target).offset().top);
|
||||
}
|
||||
x = e.offsetX;
|
||||
y = e.offsetY;
|
||||
|
||||
if (points.length >= 6) {
|
||||
var c = getCenter();
|
||||
ctx.fillRect(c.x - 4, c.y - 4, 8, 8);
|
||||
dis = Math.sqrt(Math.pow(x - c.x, 2) + Math.pow(y - c.y, 2));
|
||||
if (dis < 6) {
|
||||
startpoint = false;
|
||||
$(this).on('mousemove', moveall);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < points.length; i += 2) {
|
||||
dis = Math.sqrt(Math.pow(x - points[i], 2) + Math.pow(y - points[i + 1], 2));
|
||||
if (dis < 6) {
|
||||
activePoint = i;
|
||||
$(this).on('mousemove', move);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < points.length; i += 2) {
|
||||
if (i > 1) {
|
||||
lineDis = dotLineLength(
|
||||
x, y,
|
||||
points[i], points[i + 1],
|
||||
points[i - 2], points[i - 1],
|
||||
true
|
||||
);
|
||||
if (lineDis < 6) {
|
||||
insertAt = i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
points.splice(insertAt, 0, Math.round(x), Math.round(y));
|
||||
activePoint = insertAt;
|
||||
$(this).on('mousemove', move);
|
||||
|
||||
draw();
|
||||
record();
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
draw = function () {
|
||||
ctx.canvas.width = ctx.canvas.width;
|
||||
|
||||
record();
|
||||
if (points.length < 2) {
|
||||
return;
|
||||
}
|
||||
ctx.globalCompositeOperation = 'destination-over';
|
||||
ctx.fillStyle = 'rgb(255,255,255)';
|
||||
ctx.strokeStyle = 'rgb(255,20,20)';
|
||||
ctx.lineWidth = 1;
|
||||
if (points.length >= 6) {
|
||||
var c = getCenter();
|
||||
ctx.fillRect(c.x - 4, c.y - 4, 8, 8);
|
||||
}
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(points[0], points[1]);
|
||||
for (var i = 0; i < points.length; i += 2) {
|
||||
ctx.fillRect(points[i] - 2, points[i + 1] - 2, 4, 4);
|
||||
ctx.strokeRect(points[i] - 2, points[i + 1] - 2, 4, 4);
|
||||
if (points.length > 2 && i > 1) {
|
||||
ctx.lineTo(points[i], points[i + 1]);
|
||||
}
|
||||
}
|
||||
ctx.closePath();
|
||||
ctx.fillStyle = 'rgba(255,0,0,0.3)';
|
||||
ctx.fill();
|
||||
ctx.stroke();
|
||||
|
||||
};
|
||||
|
||||
record = function () {
|
||||
$(input).val(points.join(',')).trigger('changed');
|
||||
};
|
||||
|
||||
getCenter = function () {
|
||||
var ptc = [];
|
||||
for (i = 0; i < points.length; i++) {
|
||||
ptc.push({x: points[i], y: points[++i]});
|
||||
}
|
||||
var first = ptc[0], last = ptc[ptc.length - 1];
|
||||
if (first.x != last.x || first.y != last.y) ptc.push(first);
|
||||
var twicearea = 0,
|
||||
x = 0, y = 0,
|
||||
nptc = ptc.length,
|
||||
p1, p2, f;
|
||||
for (var i = 0, j = nptc - 1; i < nptc; j = i++) {
|
||||
p1 = ptc[i];
|
||||
p2 = ptc[j];
|
||||
f = p1.x * p2.y - p2.x * p1.y;
|
||||
twicearea += f;
|
||||
x += ( p1.x + p2.x ) * f;
|
||||
y += ( p1.y + p2.y ) * f;
|
||||
}
|
||||
f = twicearea * 3;
|
||||
return {x: x / f, y: y / f};
|
||||
};
|
||||
|
||||
$(input).on('change', function () {
|
||||
var v = $(input).val().replace(/[^0-9\,]/ig, '');
|
||||
if (v.length) {
|
||||
points = v.split(',').map(function (point) {
|
||||
return parseInt(point, 10);
|
||||
});
|
||||
} else {
|
||||
points = [];
|
||||
}
|
||||
draw();
|
||||
});
|
||||
|
||||
$(document).find($canvas).on('mousedown', mousedown);
|
||||
$(document).find($canvas).on('contextmenu', rightclick);
|
||||
$(document).find($canvas).on('mouseup', stopdrag);
|
||||
|
||||
};
|
||||
|
||||
var dotLineLength = function (x, y, x0, y0, x1, y1, o) {
|
||||
function lineLength(x, y, x0, y0) {
|
||||
return Math.sqrt((x -= x0) * x + (y -= y0) * y);
|
||||
}
|
||||
|
||||
if (o && !(o = function (x, y, x0, y0, x1, y1) {
|
||||
if (!(x1 - x0)) return {x: x0, y: y};
|
||||
else if (!(y1 - y0)) return {x: x, y: y0};
|
||||
var left, tg = -1 / ((y1 - y0) / (x1 - x0));
|
||||
return {
|
||||
x: left = (x1 * (x * tg - y + y0) + x0 * (x * -tg + y - y1)) / (tg * (x1 - x0) + y0 - y1),
|
||||
y: tg * left - tg * x + y
|
||||
};
|
||||
}(x, y, x0, y0, x1, y1), o.x >= Math.min(x0, x1) && o.x <= Math.max(x0, x1) && o.y >= Math.min(y0, y1) && o.y <= Math.max(y0, y1))) {
|
||||
var l1 = lineLength(x, y, x0, y0), l2 = lineLength(x, y, x1, y1);
|
||||
return l1 > l2 ? l2 : l1;
|
||||
}
|
||||
else {
|
||||
var a = y0 - y1, b = x1 - x0, c = x0 * y1 - y0 * x1;
|
||||
return Math.abs(a * x + b * y + c) / Math.sqrt(a * a + b * b);
|
||||
}
|
||||
};
|
||||
})(jQuery);
|
6
web/libs/js/jquery.min.js
vendored
Normal file
1
web/libs/js/jquery.serialize.js
Normal file
|
@ -0,0 +1 @@
|
|||
jQuery.fn.serializeObject=function (){"use strict";var result={};var extend=function (i, element){var node=result[element.name];if ('undefined' !==typeof node && node !==null){if (jQuery.isArray(node)){node.push(element.value);}else{result[element.name]=[node, element.value];}}else{result[element.name]=element.value;}};jQuery.each(this.serializeArray(), extend);return result;};
|
4
web/libs/js/livestamp.min.js
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
// Livestamp.js / v1.1.2 / (c) 2012 Matt Bradley / MIT License
|
||||
(function(d,g){var h=1E3,i=!1,e=d([]),j=function(b,a){var c=b.data("livestampdata");"number"==typeof a&&(a*=1E3);b.removeAttr("data-livestamp").removeData("livestamp");a=g(a);g.isMoment(a)&&!isNaN(+a)&&(c=d.extend({},{original:b.contents()},c),c.moment=g(a),b.data("livestampdata",c).empty(),e.push(b[0]))},k=function(){i||(f.update(),setTimeout(k,h))},f={update:function(){d("[data-livestamp]").each(function(){var a=d(this);j(a,a.data("livestamp"))});var b=[];e.each(function(){var a=d(this),c=a.data("livestampdata");
|
||||
if(void 0===c)b.push(this);else if(g.isMoment(c.moment)){var e=a.html(),c=c.moment.fromNow();if(e!=c){var f=d.Event("change.livestamp");a.trigger(f,[e,c]);f.isDefaultPrevented()||a.html(c)}}});e=e.not(b)},pause:function(){i=!0},resume:function(){i=!1;k()},interval:function(b){if(void 0===b)return h;h=b}},l={add:function(b,a){"number"==typeof a&&(a*=1E3);a=g(a);g.isMoment(a)&&!isNaN(+a)&&(b.each(function(){j(d(this),a)}),f.update());return b},destroy:function(b){e=e.not(b);b.each(function(){var a=
|
||||
d(this),c=a.data("livestampdata");if(void 0===c)return b;a.html(c.original?c.original:"").removeData("livestampdata")});return b},isLivestamp:function(b){return void 0!==b.data("livestampdata")}};d.livestamp=f;d(function(){f.resume()});d.fn.livestamp=function(b,a){l[b]||(a=b,b="add");return l[b](this,a)}})(jQuery,moment);
|
5
web/libs/js/locale-all.js
Normal file
89
web/libs/js/lodash.min.js
vendored
Normal file
|
@ -0,0 +1,89 @@
|
|||
/**
|
||||
* @license
|
||||
* lodash 3.5.0 (Custom Build) lodash.com/license | Underscore.js 1.8.2 underscorejs.org/LICENSE
|
||||
* Build: `lodash modern -o ./lodash.js`
|
||||
*/
|
||||
;(function(){function n(n,t){if(n!==t){var r=n===n,e=t===t;if(n>t||!r||typeof n=="undefined"&&e)return 1;if(n<t||!e||typeof t=="undefined"&&r)return-1}return 0}function t(n,t,r){if(t!==t)return s(n,r);r-=1;for(var e=n.length;++r<e;)if(n[r]===t)return r;return-1}function r(n){return typeof n=="function"||false}function e(n){return typeof n=="string"?n:null==n?"":n+""}function u(n){return n.charCodeAt(0)}function o(n,t){for(var r=-1,e=n.length;++r<e&&-1<t.indexOf(n.charAt(r)););return r}function i(n,t){for(var r=n.length;r--&&-1<t.indexOf(n.charAt(r)););return r
|
||||
}function f(t,r){return n(t.a,r.a)||t.b-r.b}function a(n){return Tt[n]}function c(n){return St[n]}function l(n){return"\\"+Ft[n]}function s(n,t,r){var e=n.length;for(t+=r?0:-1;r?t--:++t<e;){var u=n[t];if(u!==u)return t}return-1}function p(n){return n&&typeof n=="object"||false}function h(n){return 160>=n&&9<=n&&13>=n||32==n||160==n||5760==n||6158==n||8192<=n&&(8202>=n||8232==n||8233==n||8239==n||8287==n||12288==n||65279==n)}function _(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;)n[r]===t&&(n[r]=L,o[++u]=r);
|
||||
return o}function g(n){for(var t=-1,r=n.length;++t<r&&h(n.charCodeAt(t)););return t}function v(n){for(var t=n.length;t--&&h(n.charCodeAt(t)););return t}function y(n){return Nt[n]}function d(h){function Tt(n){if(p(n)&&!(Uo(n)||n instanceof Ut)){if(n instanceof Nt)return n;if(Lu.call(n,"__chain__")&&Lu.call(n,"__wrapped__"))return ve(n)}return new Nt(n)}function St(){}function Nt(n,t,r){this.__wrapped__=n,this.__actions__=r||[],this.__chain__=!!t}function Ut(n){this.__wrapped__=n,this.__actions__=null,this.__dir__=1,this.__filtered__=false,this.__iteratees__=null,this.__takeCount__=_o,this.__views__=null
|
||||
}function Ft(){this.__data__={}}function $t(n){var t=n?n.length:0;for(this.data={hash:uo(null),set:new Xu};t--;)this.push(n[t])}function Lt(n,t){var r=n.data;return(typeof t=="string"||Qe(t)?r.set.has(t):r.hash[t])?0:-1}function Bt(n,t){var r=-1,e=n.length;for(t||(t=xu(e));++r<e;)t[r]=n[r];return t}function Mt(n,t){for(var r=-1,e=n.length;++r<e&&false!==t(n[r],r,n););return n}function qt(n,t){for(var r=-1,e=n.length;++r<e;)if(!t(n[r],r,n))return false;return true}function Pt(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;){var i=n[r];
|
||||
t(i,r,n)&&(o[++u]=i)}return o}function Kt(n,t){for(var r=-1,e=n.length,u=xu(e);++r<e;)u[r]=t(n[r],r,n);return u}function Vt(n){for(var t=-1,r=n.length,e=ho;++t<r;){var u=n[t];u>e&&(e=u)}return e}function Yt(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u<o;)r=t(r,n[u],u,n);return r}function Zt(n,t,r,e){var u=n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function Gt(n,t){for(var r=-1,e=n.length;++r<e;)if(t(n[r],r,n))return true;return false}function Jt(n,t){return typeof n=="undefined"?t:n
|
||||
}function Xt(n,t,r,e){return typeof n!="undefined"&&Lu.call(e,r)?n:t}function Ht(n,t,r){var e=zo(t);if(!r)return nr(t,n,e);for(var u=-1,o=e.length;++u<o;){var i=e[u],f=n[i],a=r(f,t[i],i,n,t);(a===a?a===f:f!==f)&&(typeof f!="undefined"||i in n)||(n[i]=a)}return n}function Qt(n,t){for(var r=-1,e=n.length,u=ae(e),o=t.length,i=xu(o);++r<o;){var f=t[r];u?(f=parseFloat(f),i[r]=ie(f,e)?n[f]:m):i[r]=n[f]}return i}function nr(n,t,r){r||(r=t,t={});for(var e=-1,u=r.length;++e<u;){var o=r[e];t[o]=n[o]}return t
|
||||
}function tr(n,t,r){var e=typeof n;if("function"==e){if(e=typeof t!="undefined"){var e=Tt.support,u=!(e.funcNames?n.name:e.funcDecomp);if(!u){var o=Fu.call(n);e.funcNames||(u=!yt.test(o)),u||(u=jt.test(o)||nu(n),jo(n,u))}e=u}n=e?Fr(n,t,r):n}else n=null==n?du:"object"==e?wr(n):typeof t=="undefined"?jr(n+""):xr(n+"",t);return n}function rr(n,t,r,e,u,o,i){var f;if(r&&(f=u?r(n,e,u):r(n)),typeof f!="undefined")return f;if(!Qe(n))return n;if(e=Uo(n)){if(f=ee(n),!t)return Bt(n,f)}else{var a=zu.call(n),c=a==P;
|
||||
if(a!=V&&a!=B&&(!c||u))return Ct[a]?oe(n,a,t):u?n:{};if(f=ue(c?{}:n),!t)return nr(n,f,zo(n))}for(o||(o=[]),i||(i=[]),u=o.length;u--;)if(o[u]==n)return i[u];return o.push(n),i.push(f),(e?Mt:_r)(n,function(e,u){f[u]=rr(e,t,r,u,n,o,i)}),f}function er(n,t,r,e){if(typeof n!="function")throw new Wu($);return Hu(function(){n.apply(m,Rr(r,e))},t)}function ur(n,r){var e=n?n.length:0,u=[];if(!e)return u;var o=-1,i=re(),f=i==t,a=f&&200<=r.length?ko(r):null,c=r.length;a&&(i=Lt,f=false,r=a);n:for(;++o<e;)if(a=n[o],f&&a===a){for(var l=c;l--;)if(r[l]===a)continue n;
|
||||
u.push(a)}else 0>i(r,a,0)&&u.push(a);return u}function or(n,t){var r=n?n.length:0;if(!ae(r))return _r(n,t);for(var e=-1,u=ge(n);++e<r&&false!==t(u[e],e,u););return n}function ir(n,t){var r=n?n.length:0;if(!ae(r))return gr(n,t);for(var e=ge(n);r--&&false!==t(e[r],r,e););return n}function fr(n,t){var r=true;return or(n,function(n,e,u){return r=!!t(n,e,u)}),r}function ar(n,t){var r=[];return or(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function cr(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,false):void 0
|
||||
}),u}function lr(n,t,r,e){e-=1;for(var u=n.length,o=-1,i=[];++e<u;){var f=n[e];if(p(f)&&ae(f.length)&&(Uo(f)||Je(f))){t&&(f=lr(f,t,r,0));var a=-1,c=f.length;for(i.length+=c;++a<c;)i[++o]=f[a]}else r||(i[++o]=f)}return i}function sr(n,t,r){var e=-1,u=ge(n);r=r(n);for(var o=r.length;++e<o;){var i=r[e];if(false===t(u[i],i,u))break}return n}function pr(n,t,r){var e=ge(n);r=r(n);for(var u=r.length;u--;){var o=r[u];if(false===t(e[o],o,e))break}return n}function hr(n,t){sr(n,t,fu)}function _r(n,t){return sr(n,t,zo)
|
||||
}function gr(n,t){return pr(n,t,zo)}function vr(n,t){for(var r=-1,e=t.length,u=-1,o=[];++r<e;){var i=t[r];$o(n[i])&&(o[++u]=i)}return o}function yr(n,t,r){var e=-1,u=typeof t=="function",o=n?n.length:0,i=ae(o)?xu(o):[];return or(n,function(n){var o=u?t:null!=n&&n[t];i[++e]=o?o.apply(n,r):m}),i}function dr(n,t,r,e,u,o){if(n===t)return 0!==n||1/n==1/t;var i=typeof n,f=typeof t;if("function"!=i&&"object"!=i&&"function"!=f&&"object"!=f||null==n||null==t)n=n!==n&&t!==t;else n:{var i=dr,f=Uo(n),a=Uo(t),c=z,l=z;
|
||||
f||(c=zu.call(n),c==B?c=V:c!=V&&(f=uu(n))),a||(l=zu.call(t),l==B?l=V:l!=V&&uu(t));var s=c==V,a=l==V,l=c==l;if(!l||f||s)if(c=s&&Lu.call(n,"__wrapped__"),a=a&&Lu.call(t,"__wrapped__"),c||a)n=i(c?n.value():n,a?t.value():t,r,e,u,o);else if(l){for(u||(u=[]),o||(o=[]),c=u.length;c--;)if(u[c]==n){n=o[c]==t;break n}u.push(n),o.push(t),n=(f?Xr:Qr)(n,t,i,r,e,u,o),u.pop(),o.pop()}else n=false;else n=Hr(n,t,c)}return n}function mr(n,t,r,e,u){var o=t.length;if(null==n)return!o;for(var i=-1,f=!u;++i<o;)if(f&&e[i]?r[i]!==n[t[i]]:!Lu.call(n,t[i]))return false;
|
||||
for(i=-1;++i<o;){var a=t[i];if(f&&e[i])a=Lu.call(n,a);else{var c=n[a],l=r[i],a=u?u(c,l,a):m;typeof a=="undefined"&&(a=dr(l,c,u,true))}if(!a)return false}return true}function br(n,t){var r=[];return or(n,function(n,e,u){r.push(t(n,e,u))}),r}function wr(n){var t=zo(n),r=t.length;if(1==r){var e=t[0],u=n[e];if(ce(u))return function(n){return null!=n&&n[e]===u&&Lu.call(n,e)}}for(var o=xu(r),i=xu(r);r--;)u=n[t[r]],o[r]=u,i[r]=ce(u);return function(n){return mr(n,t,o,i)}}function xr(n,t){return ce(t)?function(r){return null!=r&&r[n]===t
|
||||
}:function(r){return null!=r&&dr(t,r[n],null,true)}}function Ar(n,t,r,e,u){if(!Qe(n))return n;var o=ae(t.length)&&(Uo(t)||uu(t));return(o?Mt:_r)(t,function(t,i,f){if(p(t)){e||(e=[]),u||(u=[]);n:{t=e;for(var a=u,c=t.length,l=f[i];c--;)if(t[c]==l){n[i]=a[c],i=void 0;break n}c=n[i],f=r?r(c,l,i,n,f):m;var s=typeof f=="undefined";s&&(f=l,ae(l.length)&&(Uo(l)||uu(l))?f=Uo(c)?c:c?Bt(c):[]:Lo(l)||Je(l)?f=Je(c)?ou(c):Lo(c)?c:{}:s=false),t.push(l),a.push(f),s?n[i]=Ar(f,l,r,t,a):(f===f?f!==c:c===c)&&(n[i]=f),i=void 0
|
||||
}return i}a=n[i],f=r?r(a,t,i,n,f):m,(l=typeof f=="undefined")&&(f=t),!o&&typeof f=="undefined"||!l&&(f===f?f===a:a!==a)||(n[i]=f)}),n}function jr(n){return function(t){return null==t?m:t[n]}}function kr(n,t){return n+Yu(po()*(t-n+1))}function Er(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function Rr(n,t,r){var e=-1,u=n.length;for(t=null==t?0:+t||0,0>t&&(t=-t>u?0:u+t),r=typeof r=="undefined"||r>u?u:+r||0,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=xu(u);++e<u;)r[e]=n[e+t];return r}function Ir(n,t){var r;
|
||||
return or(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function Or(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function Cr(t,r,e){var u=-1,o=t.length,i=ae(o)?xu(o):[];return or(t,function(n){for(var t=r.length,e=xu(t);t--;)e[t]=null==n?m:n[r[t]];i[++u]={a:e,b:u,c:n}}),Or(i,function(t,r){var u;n:{u=-1;for(var o=t.a,i=r.a,f=o.length,a=e.length;++u<f;){var c=n(o[u],i[u]);if(c){u=u<a?c*(e[u]?1:-1):c;break n}}u=t.b-r.b}return u})}function Wr(n,r){var e=-1,u=re(),o=n.length,i=u==t,f=i&&200<=o,a=f?ko():null,c=[];
|
||||
a?(u=Lt,i=false):(f=false,a=r?[]:c);n:for(;++e<o;){var l=n[e],s=r?r(l,e,n):l;if(i&&l===l){for(var p=a.length;p--;)if(a[p]===s)continue n;r&&a.push(s),c.push(l)}else 0>u(a,s,0)&&((r||f)&&a.push(s),c.push(l))}return c}function Tr(n,t){for(var r=-1,e=t.length,u=xu(e);++r<e;)u[r]=n[t[r]];return u}function Sr(n,t){var r=n;r instanceof Ut&&(r=r.value());for(var e=-1,u=t.length;++e<u;){var r=[r],o=t[e];Gu.apply(r,o.args),r=o.func.apply(o.thisArg,r)}return r}function Nr(n,t,r){var e=0,u=n?n.length:e;if(typeof t=="number"&&t===t&&u<=yo){for(;e<u;){var o=e+u>>>1,i=n[o];
|
||||
(r?i<=t:i<t)?e=o+1:u=o}return u}return Ur(n,t,du,r)}function Ur(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,f=typeof t=="undefined";u<o;){var a=Yu((u+o)/2),c=r(n[a]),l=c===c;(i?l||e:f?l&&(e||typeof c!="undefined"):e?c<=t:c<t)?u=a+1:o=a}return ao(o,vo)}function Fr(n,t,r){if(typeof n!="function")return du;if(typeof t=="undefined")return n;switch(r){case 1:return function(r){return n.call(t,r)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,o){return n.call(t,r,e,u,o)
|
||||
};case 5:return function(r,e,u,o,i){return n.call(t,r,e,u,o,i)}}return function(){return n.apply(t,arguments)}}function $r(n){return Pu.call(n,0)}function Lr(n,t,r){for(var e=r.length,u=-1,o=fo(n.length-e,0),i=-1,f=t.length,a=xu(o+f);++i<f;)a[i]=t[i];for(;++u<e;)a[r[u]]=n[u];for(;o--;)a[i++]=n[u++];return a}function Br(n,t,r){for(var e=-1,u=r.length,o=-1,i=fo(n.length-u,0),f=-1,a=t.length,c=xu(i+a);++o<i;)c[o]=n[o];for(i=o;++f<a;)c[i+f]=t[f];for(;++e<u;)c[i+r[e]]=n[o++];return c}function zr(n,t){return function(r,e,u){var o=t?t():{};
|
||||
if(e=te(e,u,3),Uo(r)){u=-1;for(var i=r.length;++u<i;){var f=r[u];n(o,f,e(f,u,r),r)}}else or(r,function(t,r,u){n(o,t,e(t,r,u),u)});return o}}function Dr(n){return function(){var t=arguments,r=t.length,e=t[0];if(2>r||null==e)return e;var u=t[r-2],o=t[r-1],i=t[3];for(3<r&&typeof u=="function"?(u=Fr(u,o,5),r-=2):(u=2<r&&typeof o=="function"?o:null,r-=u?1:0),i&&fe(t[1],t[2],i)&&(u=3==r?null:u,r=2),o=0;++o<r;)(i=t[o])&&n(e,i,u);return e}}function Mr(n,t){function r(){return(this&&this!==zt&&this instanceof r?e:n).apply(t,arguments)
|
||||
}var e=Kr(n);return r}function qr(n){return function(){var t=arguments.length,r=t,e=n?t-1:0;if(!t)return function(n){return n};for(var u=xu(t);r--;)if(u[r]=arguments[r],"function"!=typeof u[r])throw new Wu($);return function(){for(var r=e,o=u[r].apply(this,arguments);n?r--:++r<t;)o=u[r].call(this,o);return o}}}function Pr(n){return function(t){var r=-1;t=_u(cu(t));for(var e=t.length,u="";++r<e;)u=n(u,t[r],r);return u}}function Kr(n){return function(){var t=Ao(n.prototype),r=n.apply(t,arguments);return Qe(r)?r:t
|
||||
}}function Vr(n,t){return function(r,e,o){o&&fe(r,e,o)&&(e=null);var i=te(),f=null==e;if(i===tr&&f||(f=false,e=i(e,o,3)),f){if(e=Uo(r),e||!eu(r))return n(e?r:_e(r));e=u}return ne(r,e,t)}}function Yr(n,t,r,e,u,o,i,f,a,c){function l(){for(var A=arguments.length,j=A,k=xu(A);j--;)k[j]=arguments[j];if(e&&(k=Lr(k,e,u)),o&&(k=Br(k,o,i)),g||y){var j=l.placeholder,I=_(k,j),A=A-I.length;if(A<c){var O=f?Bt(f):null,A=fo(c-A,0),C=g?I:null,I=g?null:I,W=g?k:null,k=g?null:k;return t|=g?E:R,t&=~(g?R:E),v||(t&=~(w|x)),k=Yr(n,t,r,W,C,k,I,O,a,A),k.placeholder=j,k
|
||||
}}if(j=p?r:this,h&&(n=j[b]),f)for(O=k.length,A=ao(f.length,O),C=Bt(k);A--;)I=f[A],k[A]=ie(I,O)?C[I]:m;return s&&a<k.length&&(k.length=a),(this&&this!==zt&&this instanceof l?d||Kr(n):n).apply(j,k)}var s=t&O,p=t&w,h=t&x,g=t&j,v=t&A,y=t&k,d=!h&&Kr(n),b=n;return l}function Zr(n,t,r){return n=n.length,t=+t,n<t&&oo(t)?(t-=n,r=null==r?" ":r+"",pu(r,Ku(t/r.length)).slice(0,t)):""}function Gr(n,t,r,e){function u(){for(var t=-1,f=arguments.length,a=-1,c=e.length,l=xu(f+c);++a<c;)l[a]=e[a];for(;f--;)l[a++]=arguments[++t];
|
||||
return(this&&this!==zt&&this instanceof u?i:n).apply(o?r:this,l)}var o=t&w,i=Kr(n);return u}function Jr(n,t,r,e,u,o,i,f){var a=t&x;if(!a&&typeof n!="function")throw new Wu($);var c=e?e.length:0;if(c||(t&=~(E|R),e=u=null),c-=u?u.length:0,t&R){var l=e,s=u;e=u=null}var p=!a&&Eo(n);if(r=[n,t,r,e,u,l,s,o,i,f],p&&true!==p){e=r[1],t=p[1],f=e|t,o=O|I,u=w|x,i=o|u|A|k;var l=e&O&&!(t&O),s=e&I&&!(t&I),h=(s?r:p)[7],g=(l?r:p)[8];o=f>=o&&f<=i&&(e<I||(s||l)&&h.length<=g),(!(e>=I&&t>u||e>u&&t>=I)||o)&&(t&w&&(r[2]=p[2],f|=e&w?0:A),(e=p[3])&&(u=r[3],r[3]=u?Lr(u,e,p[4]):Bt(e),r[4]=u?_(r[3],L):Bt(p[4])),(e=p[5])&&(u=r[5],r[5]=u?Br(u,e,p[6]):Bt(e),r[6]=u?_(r[5],L):Bt(p[6])),(e=p[7])&&(r[7]=Bt(e)),t&O&&(r[8]=null==r[8]?p[8]:ao(r[8],p[8])),null==r[9]&&(r[9]=p[9]),r[0]=p[0],r[1]=f),t=r[1],f=r[9]
|
||||
}return r[9]=null==f?a?0:n.length:fo(f-c,0)||0,(p?jo:Ro)(t==w?Mr(r[0],r[2]):t!=E&&t!=(w|E)||r[4].length?Yr.apply(m,r):Gr.apply(m,r),r)}function Xr(n,t,r,e,u,o,i){var f=-1,a=n.length,c=t.length,l=true;if(a!=c&&(!u||c<=a))return false;for(;l&&++f<a;){var s=n[f],p=t[f],l=m;if(e&&(l=u?e(p,s,f):e(s,p,f)),typeof l=="undefined")if(u)for(var h=c;h--&&(p=t[h],!(l=s&&s===p||r(s,p,e,u,o,i))););else l=s&&s===p||r(s,p,e,u,o,i)}return!!l}function Hr(n,t,r){switch(r){case D:case M:return+n==+t;case q:return n.name==t.name&&n.message==t.message;
|
||||
case K:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case Y:case Z:return n==t+""}return false}function Qr(n,t,r,e,u,o,i){var f=zo(n),a=f.length,c=zo(t).length;if(a!=c&&!u)return false;for(var l,c=-1;++c<a;){var s=f[c],p=Lu.call(t,s);if(p){var h=n[s],_=t[s],p=m;e&&(p=u?e(_,h,s):e(h,_,s)),typeof p=="undefined"&&(p=h&&h===_||r(h,_,e,u,o,i))}if(!p)return false;l||(l="constructor"==s)}return l||(r=n.constructor,e=t.constructor,!(r!=e&&"constructor"in n&&"constructor"in t)||typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)?true:false
|
||||
}function ne(n,t,r){var e=r?_o:ho,u=e,o=u;return or(n,function(n,i,f){i=t(n,i,f),((r?i<u:i>u)||i===e&&i===o)&&(u=i,o=n)}),o}function te(n,t,r){var e=Tt.callback||vu,e=e===vu?tr:e;return r?e(n,t,r):e}function re(n,r,e){var u=Tt.indexOf||we,u=u===we?t:u;return n?u(n,r,e):u}function ee(n){var t=n.length,r=new n.constructor(t);return t&&"string"==typeof n[0]&&Lu.call(n,"index")&&(r.index=n.index,r.input=n.input),r}function ue(n){return n=n.constructor,typeof n=="function"&&n instanceof n||(n=Iu),new n
|
||||
}function oe(n,t,r){var e=n.constructor;switch(t){case G:return $r(n);case D:case M:return new e(+n);case J:case X:case H:case Q:case nt:case tt:case rt:case et:case ut:return t=n.buffer,new e(r?$r(t):t,n.byteOffset,n.length);case K:case Z:return new e(n);case Y:var u=new e(n.source,vt.exec(n));u.lastIndex=n.lastIndex}return u}function ie(n,t){return n=+n,t=null==t?bo:t,-1<n&&0==n%1&&n<t}function fe(n,t,r){if(!Qe(r))return false;var e=typeof t;return"number"==e?(e=r.length,e=ae(e)&&ie(t,e)):e="string"==e&&t in r,e?(t=r[t],n===n?n===t:t!==t):false
|
||||
}function ae(n){return typeof n=="number"&&-1<n&&0==n%1&&n<=bo}function ce(n){return n===n&&(0===n?0<1/n:!Qe(n))}function le(n,t){n=ge(n);for(var r=-1,e=t.length,u={};++r<e;){var o=t[r];o in n&&(u[o]=n[o])}return u}function se(n,t){var r={};return hr(n,function(n,e,u){t(n,e,u)&&(r[e]=n)}),r}function pe(n){var t;if(!p(n)||zu.call(n)!=V||!(Lu.call(n,"constructor")||(t=n.constructor,typeof t!="function"||t instanceof t)))return false;var r;return hr(n,function(n,t){r=t}),typeof r=="undefined"||Lu.call(n,r)
|
||||
}function he(n){for(var t=fu(n),r=t.length,e=r&&n.length,u=Tt.support,u=e&&ae(e)&&(Uo(n)||u.nonEnumArgs&&Je(n)),o=-1,i=[];++o<r;){var f=t[o];(u&&ie(f,e)||Lu.call(n,f))&&i.push(f)}return i}function _e(n){return null==n?[]:ae(n.length)?Qe(n)?n:Iu(n):au(n)}function ge(n){return Qe(n)?n:Iu(n)}function ve(n){return n instanceof Ut?n.clone():new Nt(n.__wrapped__,n.__chain__,Bt(n.__actions__))}function ye(n,t,r){return n&&n.length?((r?fe(n,t,r):null==t)&&(t=1),Rr(n,0>t?0:t)):[]}function de(n,t,r){var e=n?n.length:0;
|
||||
return e?((r?fe(n,t,r):null==t)&&(t=1),t=e-(+t||0),Rr(n,0,0>t?0:t)):[]}function me(n,t,r){var e=-1,u=n?n.length:0;for(t=te(t,r,3);++e<u;)if(t(n[e],e,n))return e;return-1}function be(n){return n?n[0]:m}function we(n,r,e){var u=n?n.length:0;if(!u)return-1;if(typeof e=="number")e=0>e?fo(u+e,0):e;else if(e)return e=Nr(n,r),n=n[e],(r===r?r===n:n!==n)?e:-1;return t(n,r,e||0)}function xe(n){var t=n?n.length:0;return t?n[t-1]:m}function Ae(n){return ye(n,1)}function je(n,r,e,u){if(!n||!n.length)return[];
|
||||
null!=r&&typeof r!="boolean"&&(u=e,e=fe(n,r,u)?null:r,r=false);var o=te();if((o!==tr||null!=e)&&(e=o(e,u,3)),r&&re()==t){r=e;var i;e=-1,u=n.length;for(var o=-1,f=[];++e<u;){var a=n[e],c=r?r(a,e,n):a;e&&i===c||(i=c,f[++o]=a)}n=f}else n=Wr(n,e);return n}function ke(n){for(var t=-1,r=(n&&n.length&&Vt(Kt(n,$u)))>>>0,e=xu(r);++t<r;)e[t]=Kt(n,jr(t));return e}function Ee(n,t){var r=-1,e=n?n.length:0,u={};for(!e||t||Uo(n[0])||(t=[]);++r<e;){var o=n[r];t?u[o]=t[r]:o&&(u[o[0]]=o[1])}return u}function Re(n){return n=Tt(n),n.__chain__=true,n
|
||||
}function Ie(n,t,r){return t.call(r,n)}function Oe(n,t,r){var e=Uo(n)?qt:fr;return(typeof t!="function"||typeof r!="undefined")&&(t=te(t,r,3)),e(n,t)}function Ce(n,t,r){var e=Uo(n)?Pt:ar;return t=te(t,r,3),e(n,t)}function We(n,t,r){return Uo(n)?(t=me(n,t,r),-1<t?n[t]:m):(t=te(t,r,3),cr(n,t,or))}function Te(n,t,r){return typeof t=="function"&&typeof r=="undefined"&&Uo(n)?Mt(n,t):or(n,Fr(t,r,3))}function Se(n,t,r){if(typeof t=="function"&&typeof r=="undefined"&&Uo(n))for(r=n.length;r--&&false!==t(n[r],r,n););else n=ir(n,Fr(t,r,3));
|
||||
return n}function Ne(n,t,r){var e=n?n.length:0;return ae(e)||(n=au(n),e=n.length),e?(r=typeof r=="number"?0>r?fo(e+r,0):r||0:0,typeof n=="string"||!Uo(n)&&eu(n)?r<e&&-1<n.indexOf(t,r):-1<re(n,t,r)):false}function Ue(n,t,r){var e=Uo(n)?Kt:br;return t=te(t,r,3),e(n,t)}function Fe(n,t,r,e){return(Uo(n)?Yt:Er)(n,te(t,e,4),r,3>arguments.length,or)}function $e(n,t,r,e){return(Uo(n)?Zt:Er)(n,te(t,e,4),r,3>arguments.length,ir)}function Le(n,t,r){return(r?fe(n,t,r):null==t)?(n=_e(n),t=n.length,0<t?n[kr(0,t-1)]:m):(n=Be(n),n.length=ao(0>t?0:+t||0,n.length),n)
|
||||
}function Be(n){n=_e(n);for(var t=-1,r=n.length,e=xu(r);++t<r;){var u=kr(0,t);t!=u&&(e[t]=e[u]),e[u]=n[t]}return e}function ze(n,t,r){var e=Uo(n)?Gt:Ir;return(typeof t!="function"||typeof r!="undefined")&&(t=te(t,r,3)),e(n,t)}function De(n,t){var r;if(typeof t!="function"){if(typeof n!="function")throw new Wu($);var e=n;n=t,t=e}return function(){return 0<--n?r=t.apply(this,arguments):t=null,r}}function Me(n,t){var r=w;if(2<arguments.length)var e=Rr(arguments,2),u=_(e,Me.placeholder),r=r|E;return Jr(n,r,t,e,u)
|
||||
}function qe(n,t){var r=w|x;if(2<arguments.length)var e=Rr(arguments,2),u=_(e,qe.placeholder),r=r|E;return Jr(t,r,n,e,u)}function Pe(n,t,r){return r&&fe(n,t,r)&&(t=null),n=Jr(n,j,null,null,null,null,null,t),n.placeholder=Pe.placeholder,n}function Ke(n,t,r){return r&&fe(n,t,r)&&(t=null),n=Jr(n,k,null,null,null,null,null,t),n.placeholder=Ke.placeholder,n}function Ve(n,t,r){function e(){var r=t-(To()-c);0>=r||r>t?(f&&Vu(f),r=p,f=s=p=m,r&&(h=To(),a=n.apply(l,i),s||f||(i=l=null))):s=Hu(e,r)}function u(){s&&Vu(s),f=s=p=m,(g||_!==t)&&(h=To(),a=n.apply(l,i),s||f||(i=l=null))
|
||||
}function o(){if(i=arguments,c=To(),l=this,p=g&&(s||!v),false===_)var r=v&&!s;else{f||v||(h=c);var o=_-(c-h),y=0>=o||o>_;y?(f&&(f=Vu(f)),h=c,a=n.apply(l,i)):f||(f=Hu(u,o))}return y&&s?s=Vu(s):s||t===_||(s=Hu(e,t)),r&&(y=true,a=n.apply(l,i)),!y||s||f||(i=l=null),a}var i,f,a,c,l,s,p,h=0,_=false,g=true;if(typeof n!="function")throw new Wu($);if(t=0>t?0:+t||0,true===r)var v=true,g=false;else Qe(r)&&(v=r.leading,_="maxWait"in r&&fo(+r.maxWait||0,t),g="trailing"in r?r.trailing:g);return o.cancel=function(){s&&Vu(s),f&&Vu(f),f=s=p=m
|
||||
},o}function Ye(n,t){function r(){var e=arguments,u=r.cache,o=t?t.apply(this,e):e[0];return u.has(o)?u.get(o):(e=n.apply(this,e),u.set(o,e),e)}if(typeof n!="function"||t&&typeof t!="function")throw new Wu($);return r.cache=new Ye.Cache,r}function Ze(n){var t=Rr(arguments,1),r=_(t,Ze.placeholder);return Jr(n,E,null,t,r)}function Ge(n){var t=Rr(arguments,1),r=_(t,Ge.placeholder);return Jr(n,R,null,t,r)}function Je(n){return ae(p(n)?n.length:m)&&zu.call(n)==B||false}function Xe(n){return n&&1===n.nodeType&&p(n)&&-1<zu.call(n).indexOf("Element")||false
|
||||
}function He(n){return p(n)&&typeof n.message=="string"&&zu.call(n)==q||false}function Qe(n){var t=typeof n;return"function"==t||n&&"object"==t||false}function nu(n){return null==n?false:zu.call(n)==P?Mu.test(Fu.call(n)):p(n)&&mt.test(n)||false}function tu(n){return typeof n=="number"||p(n)&&zu.call(n)==K||false}function ru(n){return p(n)&&zu.call(n)==Y||false}function eu(n){return typeof n=="string"||p(n)&&zu.call(n)==Z||false}function uu(n){return p(n)&&ae(n.length)&&Ot[zu.call(n)]||false}function ou(n){return nr(n,fu(n))
|
||||
}function iu(n){return vr(n,fu(n))}function fu(n){if(null==n)return[];Qe(n)||(n=Iu(n));for(var t=n.length,t=t&&ae(t)&&(Uo(n)||xo.nonEnumArgs&&Je(n))&&t||0,r=n.constructor,e=-1,r=typeof r=="function"&&r.prototype===n,u=xu(t),o=0<t;++e<t;)u[e]=e+"";for(var i in n)o&&ie(i,t)||"constructor"==i&&(r||!Lu.call(n,i))||u.push(i);return u}function au(n){return Tr(n,zo(n))}function cu(n){return(n=e(n))&&n.replace(bt,a)}function lu(n){return(n=e(n))&&At.test(n)?n.replace(xt,"\\$&"):n}function su(n,t,r){return r&&fe(n,t,r)&&(t=0),so(n,t)
|
||||
}function pu(n,t){var r="";if(n=e(n),t=+t,1>t||!n||!oo(t))return r;do t%2&&(r+=n),t=Yu(t/2),n+=n;while(t);return r}function hu(n,t,r){var u=n;return(n=e(n))?(r?fe(u,t,r):null==t)?n.slice(g(n),v(n)+1):(t+="",n.slice(o(n,t),i(n,t)+1)):n}function _u(n,t,r){return r&&fe(n,t,r)&&(t=null),n=e(n),n.match(t||Et)||[]}function gu(){for(var n=arguments[0],t=arguments.length,r=xu(t?t-1:0);0<--t;)r[t-1]=arguments[t];try{return n.apply(m,r)}catch(e){return He(e)?e:new ju(e)}}function vu(n,t,r){return r&&fe(n,t,r)&&(t=null),p(n)?mu(n):tr(n,t)
|
||||
}function yu(n){return function(){return n}}function du(n){return n}function mu(n){return wr(rr(n,true))}function bu(n,t,r){if(null==r){var e=Qe(t),u=e&&zo(t);((u=u&&u.length&&vr(t,u))?u.length:e)||(u=false,r=t,t=n,n=this)}u||(u=vr(t,zo(t)));var o=true,e=-1,i=$o(n),f=u.length;false===r?o=false:Qe(r)&&"chain"in r&&(o=r.chain);for(;++e<f;){r=u[e];var a=t[r];n[r]=a,i&&(n.prototype[r]=function(t){return function(){var r=this.__chain__;if(o||r){var e=n(this.__wrapped__);return(e.__actions__=Bt(this.__actions__)).push({func:t,args:arguments,thisArg:n}),e.__chain__=r,e
|
||||
}return r=[this.value()],Gu.apply(r,arguments),t.apply(n,r)}}(a))}return n}function wu(){}h=h?Dt.defaults(zt.Object(),h,Dt.pick(zt,It)):zt;var xu=h.Array,Au=h.Date,ju=h.Error,ku=h.Function,Eu=h.Math,Ru=h.Number,Iu=h.Object,Ou=h.RegExp,Cu=h.String,Wu=h.TypeError,Tu=xu.prototype,Su=Iu.prototype,Nu=Cu.prototype,Uu=(Uu=h.window)&&Uu.document,Fu=ku.prototype.toString,$u=jr("length"),Lu=Su.hasOwnProperty,Bu=0,zu=Su.toString,Du=h._,Mu=Ou("^"+lu(zu).replace(/toString|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),qu=nu(qu=h.ArrayBuffer)&&qu,Pu=nu(Pu=qu&&new qu(0).slice)&&Pu,Ku=Eu.ceil,Vu=h.clearTimeout,Yu=Eu.floor,Zu=nu(Zu=Iu.getPrototypeOf)&&Zu,Gu=Tu.push,Ju=Su.propertyIsEnumerable,Xu=nu(Xu=h.Set)&&Xu,Hu=h.setTimeout,Qu=Tu.splice,no=nu(no=h.Uint8Array)&&no,to=nu(to=h.WeakMap)&&to,ro=function(){try{var n=nu(n=h.Float64Array)&&n,t=new n(new qu(10),0,1)&&n
|
||||
}catch(r){}return t}(),eo=nu(eo=xu.isArray)&&eo,uo=nu(uo=Iu.create)&&uo,oo=h.isFinite,io=nu(io=Iu.keys)&&io,fo=Eu.max,ao=Eu.min,co=nu(co=Au.now)&&co,lo=nu(lo=Ru.isFinite)&&lo,so=h.parseInt,po=Eu.random,ho=Ru.NEGATIVE_INFINITY,_o=Ru.POSITIVE_INFINITY,go=Eu.pow(2,32)-1,vo=go-1,yo=go>>>1,mo=ro?ro.BYTES_PER_ELEMENT:0,bo=Eu.pow(2,53)-1,wo=to&&new to,xo=Tt.support={};!function(n){xo.funcDecomp=!nu(h.WinRTError)&&jt.test(d),xo.funcNames=typeof ku.name=="string";try{xo.dom=11===Uu.createDocumentFragment().nodeType
|
||||
}catch(t){xo.dom=false}try{xo.nonEnumArgs=!Ju.call(arguments,1)}catch(r){xo.nonEnumArgs=true}}(0,0),Tt.templateSettings={escape:pt,evaluate:ht,interpolate:_t,variable:"",imports:{_:Tt}};var Ao=function(){function n(){}return function(t){if(Qe(t)){n.prototype=t;var r=new n;n.prototype=null}return r||h.Object()}}(),jo=wo?function(n,t){return wo.set(n,t),n}:du;Pu||($r=qu&&no?function(n){var t=n.byteLength,r=ro?Yu(t/mo):0,e=r*mo,u=new qu(t);if(r){var o=new ro(u,0,r);o.set(new ro(n,0,r))}return t!=e&&(o=new no(u,e),o.set(new no(n,e))),u
|
||||
}:yu(null));var ko=uo&&Xu?function(n){return new $t(n)}:yu(null),Eo=wo?function(n){return wo.get(n)}:wu,Ro=function(){var n=0,t=0;return function(r,e){var u=To(),o=S-(u-t);if(t=u,0<o){if(++n>=T)return r}else n=0;return jo(r,e)}}(),Io=zr(function(n,t,r){Lu.call(n,r)?++n[r]:n[r]=1}),Oo=zr(function(n,t,r){Lu.call(n,r)?n[r].push(t):n[r]=[t]}),Co=zr(function(n,t,r){n[r]=t}),Wo=zr(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),To=co||function(){return(new Au).getTime()},So=qr(),No=qr(true),Uo=eo||function(n){return p(n)&&ae(n.length)&&zu.call(n)==z||false
|
||||
};xo.dom||(Xe=function(n){return n&&1===n.nodeType&&p(n)&&!Lo(n)||false});var Fo=lo||function(n){return typeof n=="number"&&oo(n)},$o=r(/x/)||no&&!r(no)?function(n){return zu.call(n)==P}:r,Lo=Zu?function(n){if(!n||zu.call(n)!=V)return false;var t=n.valueOf,r=nu(t)&&(r=Zu(t))&&Zu(r);return r?n==r||Zu(n)==r:pe(n)}:pe,Bo=Dr(Ht),zo=io?function(n){if(n)var t=n.constructor,r=n.length;return typeof t=="function"&&t.prototype===n||typeof n!="function"&&r&&ae(r)?he(n):Qe(n)?io(n):[]}:he,Do=Dr(Ar),Mo=Pr(function(n,t,r){return t=t.toLowerCase(),n+(r?t.charAt(0).toUpperCase()+t.slice(1):t)
|
||||
}),qo=Pr(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()});8!=so(Rt+"08")&&(su=function(n,t,r){return(r?fe(n,t,r):null==t)?t=0:t&&(t=+t),n=hu(n),so(n,t||(dt.test(n)?16:10))});var Po=Pr(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),Ko=Pr(function(n,t,r){return n+(r?" ":"")+(t.charAt(0).toUpperCase()+t.slice(1))}),Vo=Vr(Vt),Yo=Vr(function(n){for(var t=-1,r=n.length,e=_o;++t<r;){var u=n[t];u<e&&(e=u)}return e},true);return Tt.prototype=St.prototype,Nt.prototype=Ao(St.prototype),Nt.prototype.constructor=Nt,Ut.prototype=Ao(St.prototype),Ut.prototype.constructor=Ut,Ft.prototype["delete"]=function(n){return this.has(n)&&delete this.__data__[n]
|
||||
},Ft.prototype.get=function(n){return"__proto__"==n?m:this.__data__[n]},Ft.prototype.has=function(n){return"__proto__"!=n&&Lu.call(this.__data__,n)},Ft.prototype.set=function(n,t){return"__proto__"!=n&&(this.__data__[n]=t),this},$t.prototype.push=function(n){var t=this.data;typeof n=="string"||Qe(n)?t.set.add(n):t.hash[n]=true},Ye.Cache=Ft,Tt.after=function(n,t){if(typeof t!="function"){if(typeof n!="function")throw new Wu($);var r=n;n=t,t=r}return n=oo(n=+n)?n:0,function(){return 1>--n?t.apply(this,arguments):void 0
|
||||
}},Tt.ary=function(n,t,r){return r&&fe(n,t,r)&&(t=null),t=n&&null==t?n.length:fo(+t||0,0),Jr(n,O,null,null,null,null,t)},Tt.assign=Bo,Tt.at=function(n){return ae(n?n.length:0)&&(n=_e(n)),Qt(n,lr(arguments,false,false,1))},Tt.before=De,Tt.bind=Me,Tt.bindAll=function(n){for(var t=n,r=1<arguments.length?lr(arguments,false,false,1):iu(n),e=-1,u=r.length;++e<u;){var o=r[e];t[o]=Jr(t[o],w,t)}return t},Tt.bindKey=qe,Tt.callback=vu,Tt.chain=Re,Tt.chunk=function(n,t,r){t=(r?fe(n,t,r):null==t)?1:fo(+t||1,1),r=0;for(var e=n?n.length:0,u=-1,o=xu(Ku(e/t));r<e;)o[++u]=Rr(n,r,r+=t);
|
||||
return o},Tt.compact=function(n){for(var t=-1,r=n?n.length:0,e=-1,u=[];++t<r;){var o=n[t];o&&(u[++e]=o)}return u},Tt.constant=yu,Tt.countBy=Io,Tt.create=function(n,t,r){var e=Ao(n);return r&&fe(n,t,r)&&(t=null),t?nr(t,e,zo(t)):e},Tt.curry=Pe,Tt.curryRight=Ke,Tt.debounce=Ve,Tt.defaults=function(n){if(null==n)return n;var t=Bt(arguments);return t.push(Jt),Bo.apply(m,t)},Tt.defer=function(n){return er(n,1,arguments,1)},Tt.delay=function(n,t){return er(n,t,arguments,2)},Tt.difference=function(){for(var n=arguments,t=-1,r=n.length;++t<r;){var e=n[t];
|
||||
if(Uo(e)||Je(e))break}return ur(e,lr(n,false,true,++t))},Tt.drop=ye,Tt.dropRight=de,Tt.dropRightWhile=function(n,t,r){var e=n?n.length:0;if(!e)return[];for(t=te(t,r,3);e--&&t(n[e],e,n););return Rr(n,0,e+1)},Tt.dropWhile=function(n,t,r){var e=n?n.length:0;if(!e)return[];var u=-1;for(t=te(t,r,3);++u<e&&t(n[u],u,n););return Rr(n,u)},Tt.fill=function(n,t,r,e){var u=n?n.length:0;if(!u)return[];for(r&&typeof r!="number"&&fe(n,t,r)&&(r=0,e=u),u=n.length,r=null==r?0:+r||0,0>r&&(r=-r>u?0:u+r),e=typeof e=="undefined"||e>u?u:+e||0,0>e&&(e+=u),u=r>e?0:e>>>0,r>>>=0;r<u;)n[r++]=t;
|
||||
return n},Tt.filter=Ce,Tt.flatten=function(n,t,r){var e=n?n.length:0;return r&&fe(n,t,r)&&(t=false),e?lr(n,t,false,0):[]},Tt.flattenDeep=function(n){return n&&n.length?lr(n,true,false,0):[]},Tt.flow=So,Tt.flowRight=No,Tt.forEach=Te,Tt.forEachRight=Se,Tt.forIn=function(n,t,r){return(typeof t!="function"||typeof r!="undefined")&&(t=Fr(t,r,3)),sr(n,t,fu)},Tt.forInRight=function(n,t,r){return t=Fr(t,r,3),pr(n,t,fu)},Tt.forOwn=function(n,t,r){return(typeof t!="function"||typeof r!="undefined")&&(t=Fr(t,r,3)),_r(n,t)
|
||||
},Tt.forOwnRight=function(n,t,r){return t=Fr(t,r,3),pr(n,t,zo)},Tt.functions=iu,Tt.groupBy=Oo,Tt.indexBy=Co,Tt.initial=function(n){return de(n,1)},Tt.intersection=function(){for(var n=[],r=-1,e=arguments.length,u=[],o=re(),i=o==t;++r<e;){var f=arguments[r];(Uo(f)||Je(f))&&(n.push(f),u.push(i&&120<=f.length?ko(r&&f):null))}var e=n.length,i=n[0],a=-1,c=i?i.length:0,l=[],s=u[0];n:for(;++a<c;)if(f=i[a],0>(s?Lt(s,f):o(l,f,0))){for(r=e;--r;){var p=u[r];if(0>(p?Lt(p,f):o(n[r],f,0)))continue n}s&&s.push(f),l.push(f)
|
||||
}return l},Tt.invert=function(n,t,r){r&&fe(n,t,r)&&(t=null),r=-1;for(var e=zo(n),u=e.length,o={};++r<u;){var i=e[r],f=n[i];t?Lu.call(o,f)?o[f].push(i):o[f]=[i]:o[f]=i}return o},Tt.invoke=function(n,t){return yr(n,t,Rr(arguments,2))},Tt.keys=zo,Tt.keysIn=fu,Tt.map=Ue,Tt.mapValues=function(n,t,r){var e={};return t=te(t,r,3),_r(n,function(n,r,u){e[r]=t(n,r,u)}),e},Tt.matches=mu,Tt.matchesProperty=function(n,t){return xr(n+"",rr(t,true))},Tt.memoize=Ye,Tt.merge=Do,Tt.mixin=bu,Tt.negate=function(n){if(typeof n!="function")throw new Wu($);
|
||||
return function(){return!n.apply(this,arguments)}},Tt.omit=function(n,t,r){if(null==n)return{};if(typeof t!="function"){var e=Kt(lr(arguments,false,false,1),Cu);return le(n,ur(fu(n),e))}return t=Fr(t,r,3),se(n,function(n,r,e){return!t(n,r,e)})},Tt.once=function(n){return De(n,2)},Tt.pairs=function(n){for(var t=-1,r=zo(n),e=r.length,u=xu(e);++t<e;){var o=r[t];u[t]=[o,n[o]]}return u},Tt.partial=Ze,Tt.partialRight=Ge,Tt.partition=Wo,Tt.pick=function(n,t,r){return null==n?{}:typeof t=="function"?se(n,Fr(t,r,3)):le(n,lr(arguments,false,false,1))
|
||||
},Tt.pluck=function(n,t){return Ue(n,jr(t))},Tt.property=function(n){return jr(n+"")},Tt.propertyOf=function(n){return function(t){return null==n?m:n[t]}},Tt.pull=function(){var n=arguments,t=n[0];if(!t||!t.length)return t;for(var r=0,e=re(),u=n.length;++r<u;)for(var o=0,i=n[r];-1<(o=e(t,i,o));)Qu.call(t,o,1);return t},Tt.pullAt=function(t){var r=t||[],e=lr(arguments,false,false,1),u=e.length,o=Qt(r,e);for(e.sort(n);u--;){var i=parseFloat(e[u]);if(i!=f&&ie(i)){var f=i;Qu.call(r,i,1)}}return o},Tt.range=function(n,t,r){r&&fe(n,t,r)&&(t=r=null),n=+n||0,r=null==r?1:+r||0,null==t?(t=n,n=0):t=+t||0;
|
||||
var e=-1;t=fo(Ku((t-n)/(r||1)),0);for(var u=xu(t);++e<t;)u[e]=n,n+=r;return u},Tt.rearg=function(n){var t=lr(arguments,false,false,1);return Jr(n,I,null,null,null,t)},Tt.reject=function(n,t,r){var e=Uo(n)?Pt:ar;return t=te(t,r,3),e(n,function(n,r,e){return!t(n,r,e)})},Tt.remove=function(n,t,r){var e=-1,u=n?n.length:0,o=[];for(t=te(t,r,3);++e<u;)r=n[e],t(r,e,n)&&(o.push(r),Qu.call(n,e--,1),u--);return o},Tt.rest=Ae,Tt.shuffle=Be,Tt.slice=function(n,t,r){var e=n?n.length:0;return e?(r&&typeof r!="number"&&fe(n,t,r)&&(t=0,r=e),Rr(n,t,r)):[]
|
||||
},Tt.sortBy=function(n,t,r){if(null==n)return[];var e=-1,u=n.length,o=ae(u)?xu(u):[];return r&&fe(n,t,r)&&(t=null),t=te(t,r,3),or(n,function(n,r,u){o[++e]={a:t(n,r,u),b:e,c:n}}),Or(o,f)},Tt.sortByAll=function(n){if(null==n)return[];var t=arguments,r=t[3];return r&&fe(t[1],t[2],r)&&(t=[n,t[1]]),Cr(n,lr(t,false,false,1),[])},Tt.sortByOrder=function(n,t,r,e){return null==n?[]:(e&&fe(t,r,e)&&(r=null),Uo(t)||(t=null==t?[]:[t]),Uo(r)||(r=null==r?[]:[r]),Cr(n,t,r))},Tt.spread=function(n){if(typeof n!="function")throw new Wu($);
|
||||
return function(t){return n.apply(this,t)}},Tt.take=function(n,t,r){return n&&n.length?((r?fe(n,t,r):null==t)&&(t=1),Rr(n,0,0>t?0:t)):[]},Tt.takeRight=function(n,t,r){var e=n?n.length:0;return e?((r?fe(n,t,r):null==t)&&(t=1),t=e-(+t||0),Rr(n,0>t?0:t)):[]},Tt.takeRightWhile=function(n,t,r){var e=n?n.length:0;if(!e)return[];for(t=te(t,r,3);e--&&t(n[e],e,n););return Rr(n,e+1)},Tt.takeWhile=function(n,t,r){var e=n?n.length:0;if(!e)return[];var u=-1;for(t=te(t,r,3);++u<e&&t(n[u],u,n););return Rr(n,0,u)
|
||||
},Tt.tap=function(n,t,r){return t.call(r,n),n},Tt.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new Wu($);return false===r?e=false:Qe(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),Wt.leading=e,Wt.maxWait=+t,Wt.trailing=u,Ve(n,t,Wt)},Tt.thru=Ie,Tt.times=function(n,t,r){if(n=+n,1>n||!oo(n))return[];var e=-1,u=xu(ao(n,go));for(t=Fr(t,r,1);++e<n;)e<go?u[e]=t(e):t(e);return u},Tt.toArray=function(n){var t=n?n.length:0;return ae(t)?t?Bt(n):[]:au(n)},Tt.toPlainObject=ou,Tt.transform=function(n,t,r,e){var u=Uo(n)||uu(n);
|
||||
return t=te(t,e,4),null==r&&(u||Qe(n)?(e=n.constructor,r=u?Uo(n)?new e:[]:Ao($o(e)&&e.prototype)):r={}),(u?Mt:_r)(n,function(n,e,u){return t(r,n,e,u)}),r},Tt.union=function(){return Wr(lr(arguments,false,true,0))},Tt.uniq=je,Tt.unzip=ke,Tt.values=au,Tt.valuesIn=function(n){return Tr(n,fu(n))},Tt.where=function(n,t){return Ce(n,wr(t))},Tt.without=function(n){return ur(n,Rr(arguments,1))},Tt.wrap=function(n,t){return t=null==t?du:t,Jr(t,E,null,[n],[])},Tt.xor=function(){for(var n=-1,t=arguments.length;++n<t;){var r=arguments[n];
|
||||
if(Uo(r)||Je(r))var e=e?ur(e,r).concat(ur(r,e)):r}return e?Wr(e):[]},Tt.zip=function(){for(var n=arguments.length,t=xu(n);n--;)t[n]=arguments[n];return ke(t)},Tt.zipObject=Ee,Tt.backflow=No,Tt.collect=Ue,Tt.compose=No,Tt.each=Te,Tt.eachRight=Se,Tt.extend=Bo,Tt.iteratee=vu,Tt.methods=iu,Tt.object=Ee,Tt.select=Ce,Tt.tail=Ae,Tt.unique=je,bu(Tt,Tt),Tt.add=function(n,t){return n+t},Tt.attempt=gu,Tt.camelCase=Mo,Tt.capitalize=function(n){return(n=e(n))&&n.charAt(0).toUpperCase()+n.slice(1)},Tt.clone=function(n,t,r,e){return t&&typeof t!="boolean"&&fe(n,t,r)?t=false:typeof t=="function"&&(e=r,r=t,t=false),r=typeof r=="function"&&Fr(r,e,1),rr(n,t,r)
|
||||
},Tt.cloneDeep=function(n,t,r){return t=typeof t=="function"&&Fr(t,r,1),rr(n,true,t)},Tt.deburr=cu,Tt.endsWith=function(n,t,r){n=e(n),t+="";var u=n.length;return r=typeof r=="undefined"?u:ao(0>r?0:+r||0,u),r-=t.length,0<=r&&n.indexOf(t,r)==r},Tt.escape=function(n){return(n=e(n))&&st.test(n)?n.replace(ct,c):n},Tt.escapeRegExp=lu,Tt.every=Oe,Tt.find=We,Tt.findIndex=me,Tt.findKey=function(n,t,r){return t=te(t,r,3),cr(n,t,_r,true)},Tt.findLast=function(n,t,r){return t=te(t,r,3),cr(n,t,ir)},Tt.findLastIndex=function(n,t,r){var e=n?n.length:0;
|
||||
for(t=te(t,r,3);e--;)if(t(n[e],e,n))return e;return-1},Tt.findLastKey=function(n,t,r){return t=te(t,r,3),cr(n,t,gr,true)},Tt.findWhere=function(n,t){return We(n,wr(t))},Tt.first=be,Tt.has=function(n,t){return n?Lu.call(n,t):false},Tt.identity=du,Tt.includes=Ne,Tt.indexOf=we,Tt.inRange=function(n,t,r){return t=+t||0,"undefined"===typeof r?(r=t,t=0):r=+r||0,n>=t&&n<r},Tt.isArguments=Je,Tt.isArray=Uo,Tt.isBoolean=function(n){return true===n||false===n||p(n)&&zu.call(n)==D||false},Tt.isDate=function(n){return p(n)&&zu.call(n)==M||false
|
||||
},Tt.isElement=Xe,Tt.isEmpty=function(n){if(null==n)return true;var t=n.length;return ae(t)&&(Uo(n)||eu(n)||Je(n)||p(n)&&$o(n.splice))?!t:!zo(n).length},Tt.isEqual=function(n,t,r,e){return r=typeof r=="function"&&Fr(r,e,3),!r&&ce(n)&&ce(t)?n===t:(e=r?r(n,t):m,typeof e=="undefined"?dr(n,t,r):!!e)},Tt.isError=He,Tt.isFinite=Fo,Tt.isFunction=$o,Tt.isMatch=function(n,t,r,e){var u=zo(t),o=u.length;if(r=typeof r=="function"&&Fr(r,e,3),!r&&1==o){var i=u[0];if(e=t[i],ce(e))return null!=n&&e===n[i]&&Lu.call(n,i)
|
||||
}for(var i=xu(o),f=xu(o);o--;)e=i[o]=t[u[o]],f[o]=ce(e);return mr(n,u,i,f,r)},Tt.isNaN=function(n){return tu(n)&&n!=+n},Tt.isNative=nu,Tt.isNull=function(n){return null===n},Tt.isNumber=tu,Tt.isObject=Qe,Tt.isPlainObject=Lo,Tt.isRegExp=ru,Tt.isString=eu,Tt.isTypedArray=uu,Tt.isUndefined=function(n){return typeof n=="undefined"},Tt.kebabCase=qo,Tt.last=xe,Tt.lastIndexOf=function(n,t,r){var e=n?n.length:0;if(!e)return-1;var u=e;if(typeof r=="number")u=(0>r?fo(e+r,0):ao(r||0,e-1))+1;else if(r)return u=Nr(n,t,true)-1,n=n[u],(t===t?t===n:n!==n)?u:-1;
|
||||
if(t!==t)return s(n,u,true);for(;u--;)if(n[u]===t)return u;return-1},Tt.max=Vo,Tt.min=Yo,Tt.noConflict=function(){return h._=Du,this},Tt.noop=wu,Tt.now=To,Tt.pad=function(n,t,r){n=e(n),t=+t;var u=n.length;return u<t&&oo(t)?(u=(t-u)/2,t=Yu(u),u=Ku(u),r=Zr("",u,r),r.slice(0,t)+n+r):n},Tt.padLeft=function(n,t,r){return(n=e(n))&&Zr(n,t,r)+n},Tt.padRight=function(n,t,r){return(n=e(n))&&n+Zr(n,t,r)},Tt.parseInt=su,Tt.random=function(n,t,r){r&&fe(n,t,r)&&(t=r=null);var e=null==n,u=null==t;return null==r&&(u&&typeof n=="boolean"?(r=n,n=1):typeof t=="boolean"&&(r=t,u=true)),e&&u&&(t=1,u=false),n=+n||0,u?(t=n,n=0):t=+t||0,r||n%1||t%1?(r=po(),ao(n+r*(t-n+parseFloat("1e-"+((r+"").length-1))),t)):kr(n,t)
|
||||
},Tt.reduce=Fe,Tt.reduceRight=$e,Tt.repeat=pu,Tt.result=function(n,t,r){return t=null==n?m:n[t],typeof t=="undefined"&&(t=r),$o(t)?t.call(n):t},Tt.runInContext=d,Tt.size=function(n){var t=n?n.length:0;return ae(t)?t:zo(n).length},Tt.snakeCase=Po,Tt.some=ze,Tt.sortedIndex=function(n,t,r,e){var u=te(r);return u===tr&&null==r?Nr(n,t):Ur(n,t,u(r,e,1))},Tt.sortedLastIndex=function(n,t,r,e){var u=te(r);return u===tr&&null==r?Nr(n,t,true):Ur(n,t,u(r,e,1),true)},Tt.startCase=Ko,Tt.startsWith=function(n,t,r){return n=e(n),r=null==r?0:ao(0>r?0:+r||0,n.length),n.lastIndexOf(t,r)==r
|
||||
},Tt.sum=function(n){Uo(n)||(n=_e(n));for(var t=n.length,r=0;t--;)r+=+n[t]||0;return r},Tt.template=function(n,t,r){var u=Tt.templateSettings;r&&fe(n,t,r)&&(t=r=null),n=e(n),t=Ht(Ht({},r||t),u,Xt),r=Ht(Ht({},t.imports),u.imports,Xt);var o,i,f=zo(r),a=Tr(r,f),c=0;r=t.interpolate||wt;var s="__p+='";r=Ou((t.escape||wt).source+"|"+r.source+"|"+(r===_t?gt:wt).source+"|"+(t.evaluate||wt).source+"|$","g");var p="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,u,f,a){return e||(e=u),s+=n.slice(c,a).replace(kt,l),r&&(o=true,s+="'+__e("+r+")+'"),f&&(i=true,s+="';"+f+";\n__p+='"),e&&(s+="'+((__t=("+e+"))==null?'':__t)+'"),c=a+t.length,t
|
||||
}),s+="';",(t=t.variable)||(s="with(obj){"+s+"}"),s=(i?s.replace(ot,""):s).replace(it,"$1").replace(ft,"$1;"),s="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(o?",__e=_.escape":"")+(i?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+s+"return __p}",t=gu(function(){return ku(f,p+"return "+s).apply(m,a)}),t.source=s,He(t))throw t;return t},Tt.trim=hu,Tt.trimLeft=function(n,t,r){var u=n;return(n=e(n))?n.slice((r?fe(u,t,r):null==t)?g(n):o(n,t+"")):n
|
||||
},Tt.trimRight=function(n,t,r){var u=n;return(n=e(n))?(r?fe(u,t,r):null==t)?n.slice(0,v(n)+1):n.slice(0,i(n,t+"")+1):n},Tt.trunc=function(n,t,r){r&&fe(n,t,r)&&(t=null);var u=C;if(r=W,null!=t)if(Qe(t)){var o="separator"in t?t.separator:o,u="length"in t?+t.length||0:u;r="omission"in t?e(t.omission):r}else u=+t||0;if(n=e(n),u>=n.length)return n;if(u-=r.length,1>u)return r;if(t=n.slice(0,u),null==o)return t+r;if(ru(o)){if(n.slice(u).search(o)){var i,f=n.slice(0,u);for(o.global||(o=Ou(o.source,(vt.exec(o)||"")+"g")),o.lastIndex=0;n=o.exec(f);)i=n.index;
|
||||
t=t.slice(0,null==i?u:i)}}else n.indexOf(o,u)!=u&&(o=t.lastIndexOf(o),-1<o&&(t=t.slice(0,o)));return t+r},Tt.unescape=function(n){return(n=e(n))&<.test(n)?n.replace(at,y):n},Tt.uniqueId=function(n){var t=++Bu;return e(n)+t},Tt.words=_u,Tt.all=Oe,Tt.any=ze,Tt.contains=Ne,Tt.detect=We,Tt.foldl=Fe,Tt.foldr=$e,Tt.head=be,Tt.include=Ne,Tt.inject=Fe,bu(Tt,function(){var n={};return _r(Tt,function(t,r){Tt.prototype[r]||(n[r]=t)}),n}(),false),Tt.sample=Le,Tt.prototype.sample=function(n){return this.__chain__||null!=n?this.thru(function(t){return Le(t,n)
|
||||
}):Le(this.value())},Tt.VERSION=b,Mt("bind bindKey curry curryRight partial partialRight".split(" "),function(n){Tt[n].placeholder=Tt}),Mt(["dropWhile","filter","map","takeWhile"],function(n,t){var r=t!=F,e=t==N;Ut.prototype[n]=function(n,u){var o=this.__filtered__,i=o&&e?new Ut(this):this.clone();return(i.__iteratees__||(i.__iteratees__=[])).push({done:false,count:0,index:0,iteratee:te(n,u,1),limit:-1,type:t}),i.__filtered__=o||r,i}}),Mt(["drop","take"],function(n,t){var r=n+"While";Ut.prototype[n]=function(r){var e=this.__filtered__,u=e&&!t?this.dropWhile():this.clone();
|
||||
return r=null==r?1:fo(Yu(r)||0,0),e?t?u.__takeCount__=ao(u.__takeCount__,r):xe(u.__iteratees__).limit=r:(u.__views__||(u.__views__=[])).push({size:r,type:n+(0>u.__dir__?"Right":"")}),u},Ut.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()},Ut.prototype[n+"RightWhile"]=function(n,t){return this.reverse()[r](n,t).reverse()}}),Mt(["first","last"],function(n,t){var r="take"+(t?"Right":"");Ut.prototype[n]=function(){return this[r](1).value()[0]}}),Mt(["initial","rest"],function(n,t){var r="drop"+(t?"":"Right");
|
||||
Ut.prototype[n]=function(){return this[r](1)}}),Mt(["pluck","where"],function(n,t){var r=t?"filter":"map",e=t?wr:jr;Ut.prototype[n]=function(n){return this[r](e(n))}}),Ut.prototype.compact=function(){return this.filter(du)},Ut.prototype.reject=function(n,t){return n=te(n,t,1),this.filter(function(t){return!n(t)})},Ut.prototype.slice=function(n,t){n=null==n?0:+n||0;var r=0>n?this.takeRight(-n):this.drop(n);return typeof t!="undefined"&&(t=+t||0,r=0>t?r.dropRight(-t):r.take(t-n)),r},Ut.prototype.toArray=function(){return this.drop(0)
|
||||
},_r(Ut.prototype,function(n,t){var r=Tt[t],e=/^(?:filter|map|reject)|While$/.test(t),u=/^(?:first|last)$/.test(t);Tt.prototype[t]=function(){function t(n){return n=[n],Gu.apply(n,o),r.apply(Tt,n)}var o=arguments,i=this.__chain__,f=this.__wrapped__,a=!!this.__actions__.length,c=f instanceof Ut,l=o[0],s=c||Uo(f);return s&&e&&typeof l=="function"&&1!=l.length&&(c=s=false),c=c&&!a,u&&!i?c?n.call(f):r.call(Tt,this.value()):s?(f=n.apply(c?f:new Ut(this),o),u||!a&&!f.__actions__||(f.__actions__||(f.__actions__=[])).push({func:Ie,args:[t],thisArg:Tt}),new Nt(f,i)):this.thru(t)
|
||||
}}),Mt("concat join pop push replace shift sort splice split unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?Nu:Tu)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:join|pop|replace|shift)$/.test(n);Tt.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),Ut.prototype.clone=function(){var n=this.__actions__,t=this.__iteratees__,r=this.__views__,e=new Ut(this.__wrapped__);return e.__actions__=n?Bt(n):null,e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=t?Bt(t):null,e.__takeCount__=this.__takeCount__,e.__views__=r?Bt(r):null,e
|
||||
},Ut.prototype.reverse=function(){if(this.__filtered__){var n=new Ut(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Ut.prototype.value=function(){var n=this.__wrapped__.value();if(!Uo(n))return Sr(n,this.__actions__);var t,r=this.__dir__,e=0>r;t=n.length;for(var u=this.__views__,o=0,i=-1,f=u?u.length:0;++i<f;){var a=u[i],c=a.size;switch(a.type){case"drop":o+=c;break;case"dropRight":t-=c;break;case"take":t=ao(t,o+c);break;case"takeRight":o=fo(o,t-c)}}t={start:o,end:t},u=t.start,o=t.end,t=o-u,u=e?o:u-1,o=ao(t,this.__takeCount__),f=(i=this.__iteratees__)?i.length:0,a=0,c=[];
|
||||
n:for(;t--&&a<o;){for(var u=u+r,l=-1,s=n[u];++l<f;){var p=i[l],h=p.iteratee,_=p.type;if(_==N){if(p.done&&(e?u>p.index:u<p.index)&&(p.count=0,p.done=false),p.index=u,!(p.done||(_=p.limit,p.done=-1<_?p.count++>=_:!h(s))))continue n}else if(p=h(s),_==F)s=p;else if(!p){if(_==U)continue n;break n}}c[a++]=s}return c},Tt.prototype.chain=function(){return Re(this)},Tt.prototype.commit=function(){return new Nt(this.value(),this.__chain__)},Tt.prototype.plant=function(n){for(var t,r=this;r instanceof St;){var e=ve(r);
|
||||
t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},Tt.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Ut?(this.__actions__.length&&(n=new Ut(this)),new Nt(n.reverse(),this.__chain__)):this.thru(function(n){return n.reverse()})},Tt.prototype.toString=function(){return this.value()+""},Tt.prototype.run=Tt.prototype.toJSON=Tt.prototype.valueOf=Tt.prototype.value=function(){return Sr(this.__wrapped__,this.__actions__)},Tt.prototype.collect=Tt.prototype.map,Tt.prototype.head=Tt.prototype.first,Tt.prototype.select=Tt.prototype.filter,Tt.prototype.tail=Tt.prototype.rest,Tt
|
||||
}var m,b="3.5.0",w=1,x=2,A=4,j=8,k=16,E=32,R=64,I=128,O=256,C=30,W="...",T=150,S=16,N=0,U=1,F=2,$="Expected a function",L="__lodash_placeholder__",B="[object Arguments]",z="[object Array]",D="[object Boolean]",M="[object Date]",q="[object Error]",P="[object Function]",K="[object Number]",V="[object Object]",Y="[object RegExp]",Z="[object String]",G="[object ArrayBuffer]",J="[object Float32Array]",X="[object Float64Array]",H="[object Int8Array]",Q="[object Int16Array]",nt="[object Int32Array]",tt="[object Uint8Array]",rt="[object Uint8ClampedArray]",et="[object Uint16Array]",ut="[object Uint32Array]",ot=/\b__p\+='';/g,it=/\b(__p\+=)''\+/g,ft=/(__e\(.*?\)|\b__t\))\+'';/g,at=/&(?:amp|lt|gt|quot|#39|#96);/g,ct=/[&<>"'`]/g,lt=RegExp(at.source),st=RegExp(ct.source),pt=/<%-([\s\S]+?)%>/g,ht=/<%([\s\S]+?)%>/g,_t=/<%=([\s\S]+?)%>/g,gt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,vt=/\w*$/,yt=/^\s*function[ \n\r\t]+\w/,dt=/^0[xX]/,mt=/^\[object .+?Constructor\]$/,bt=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,wt=/($^)/,xt=/[.*+?^${}()|[\]\/\\]/g,At=RegExp(xt.source),jt=/\bthis\b/,kt=/['\n\r\u2028\u2029\\]/g,Et=RegExp("[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+","g"),Rt=" \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",It="Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout document isFinite parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap window WinRTError".split(" "),Ot={};
|
||||
Ot[J]=Ot[X]=Ot[H]=Ot[Q]=Ot[nt]=Ot[tt]=Ot[rt]=Ot[et]=Ot[ut]=true,Ot[B]=Ot[z]=Ot[G]=Ot[D]=Ot[M]=Ot[q]=Ot[P]=Ot["[object Map]"]=Ot[K]=Ot[V]=Ot[Y]=Ot["[object Set]"]=Ot[Z]=Ot["[object WeakMap]"]=false;var Ct={};Ct[B]=Ct[z]=Ct[G]=Ct[D]=Ct[M]=Ct[J]=Ct[X]=Ct[H]=Ct[Q]=Ct[nt]=Ct[K]=Ct[V]=Ct[Y]=Ct[Z]=Ct[tt]=Ct[rt]=Ct[et]=Ct[ut]=true,Ct[q]=Ct[P]=Ct["[object Map]"]=Ct["[object Set]"]=Ct["[object WeakMap]"]=false;var Wt={leading:false,maxWait:0,trailing:false},Tt={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},St={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Nt={"&":"&","<":"<",">":">",""":'"',"'":"'","`":"`"},Ut={"function":true,object:true},Ft={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$t=Ut[typeof exports]&&exports&&!exports.nodeType&&exports,Lt=Ut[typeof module]&&module&&!module.nodeType&&module,Ut=Ut[typeof window]&&window,Bt=Lt&&Lt.exports===$t&&$t,zt=$t&&Lt&&typeof global=="object"&&global||Ut!==(this&&this.window)&&Ut||this,Dt=d();
|
||||
typeof define=="function"&&typeof define.amd=="object"&&define.amd?(zt._=Dt, define(function(){return Dt})):$t&&Lt?Bt?(Lt.exports=Dt)._=Dt:$t._=Dt:zt._=Dt}).call(this);
|
5346
web/libs/js/main.dash2.js
Normal file
10
web/libs/js/material.min.js
vendored
Normal file
1
web/libs/js/material.min.js.map
Normal file
17
web/libs/js/menu.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
jQuery(document).ready(function($){
|
||||
|
||||
var navigationContainer = $('#cd-nav').addClass('is-fixed'),
|
||||
mainNavigation = navigationContainer.find('#cd-main-nav ul');
|
||||
|
||||
//open or close the menu clicking on the bottom "menu" link
|
||||
$('#cd-nav li a').on('click', function(){
|
||||
$('.cd-nav-trigger').click();
|
||||
})
|
||||
$('.cd-nav-trigger').on('click', function(){
|
||||
$(this).toggleClass('menu-is-open');
|
||||
//we need to remove the transitionEnd event handler (we add it when scolling up with the menu open)
|
||||
mainNavigation.off('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend').toggleClass('is-visible');
|
||||
|
||||
});
|
||||
|
||||
});
|
4195
web/libs/js/moment.js
Normal file
7
web/libs/js/morris.min.js
vendored
Normal file
13
web/libs/js/npm.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
|
||||
require('../../js/transition.js')
|
||||
require('../../js/alert.js')
|
||||
require('../../js/button.js')
|
||||
require('../../js/carousel.js')
|
||||
require('../../js/collapse.js')
|
||||
require('../../js/dropdown.js')
|
||||
require('../../js/modal.js')
|
||||
require('../../js/tooltip.js')
|
||||
require('../../js/popover.js')
|
||||
require('../../js/scrollspy.js')
|
||||
require('../../js/tab.js')
|
||||
require('../../js/affix.js')
|
2
web/libs/js/placeholder.js
Normal file
|
@ -0,0 +1,2 @@
|
|||
(function($){!function(t,e){"object"==typeof module&&module.exports?module.exports=e(t):t.placeholder=e(t)}("undefined"!=typeof window?window:this,function(){function t(t){c&&u||(c=document.createElement("canvas"),u=c.getContext("2d"));var e=parseInt(t.a[0]),n=parseInt(t.a[1]);c.width=e,c.height=n,u.clearRect(0,0,e,n),u.fillStyle=t.c,u.fillRect(0,0,e,n),u.fillStyle=t.d,u.font=t.e+" normal "+t.f+" "+(t.g||100)+"px "+t.h;var r=1;if(""===t.g){var o=.7*e,l=.7*n,i=u.measureText(t.b).width,a=100;r=Math.min(o/i,l/a)}return u.translate(e/2,n/2),u.scale(r,r),u.textAlign="center",u.textBaseline="middle",u.fillText(t.b,0,0),c}function e(){return"#"+("00000"+(16777216*Math.random()<<0).toString(16)).slice(-6)}function n(t){t=t||{};var n=t.size||"128x128",r=t.text||n,o=t.bgcolor||e(),l=t.color||e(),i=t.fstyle||"normal",a=t.fweight||"bold",c=t.fsize||"",u=t.ffamily||"consolas",f={};return n=n.split("x"),2!==n.length&&(n=[128,128]),f.a=n,f.b=r,f.c=o,f.d=l,f.e=i,f.f=a,f.g=c,f.h=u,t=null,f}function r(e){return e=n(e),t(e)}function o(t){return r(t).toDataURL()}function l(t,e,n){return t.getAttribute(e)||n}function i(t){var e,n={},r=t.split("&");for(var o in r){e=r[o].split("=");try{n[e[0]]=decodeURIComponent(e[1])}catch(l){n[e[0]]=e[1]}}return n}function a(t){for(var e,n,r=document.querySelectorAll("img.placeholder"),a=0;a<r.length;a++)e=r[a],!t&&l(e,f,"")||(n=i(l(e,"options","")),e.setAttribute("src",o(n)),e.setAttribute(f,"1"))}var c,u,f="placeholder-rendered";return a(),{getData:o,getCanvas:r,render:a}});})(jQuery)
|
||||
placeholder.plcimg=function(k,o){o={size:'200x200',bgcolor:'#630303',color:'#fff',text:'CC',fsize:'40',ffamily:'Segoe UI'};if(typeof k==='string'){o.text=k;};if(typeof k==='object'){$.each(k,function(n,v){o[n]=v;})};return o;};
|
67
web/libs/js/pnotify.custom.min.js
vendored
Normal file
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
PNotify 3.0.0 sciactive.com/pnotify/
|
||||
(C) 2015 Hunter Perrin; Google, Inc.
|
||||
license Apache-2.0
|
||||
*/
|
||||
(function(b,k){"function"===typeof define&&define.amd?define("pnotify",["jquery"],function(q){return k(q,b)}):"object"===typeof exports&&"undefined"!==typeof module?module.exports=k(require("jquery"),global||b):b.PNotify=k(b.jQuery,b)})("undefined"!==typeof window?window:this,function(b,k){var q=function(l){var k={dir1:"down",dir2:"left",push:"bottom",spacing1:36,spacing2:36,context:b("body"),modal:!1},g,h,n=b(l),r=function(){h=b("body");d.prototype.options.stack.context=h;n=b(l);n.bind("resize",
|
||||
function(){g&&clearTimeout(g);g=setTimeout(function(){d.positionAll(!0)},10)})},s=function(c){var a=b("<div />",{"class":"ui-pnotify-modal-overlay"});a.prependTo(c.context);c.overlay_close&&a.click(function(){d.removeStack(c)});return a},d=function(c){this.parseOptions(c);this.init()};b.extend(d.prototype,{version:"3.0.0",options:{title:!1,title_escape:!1,text:!1,text_escape:!1,styling:"brighttheme",addclass:"",cornerclass:"",auto_display:!0,width:"300px",min_height:"16px",type:"notice",icon:!0,animation:"fade",
|
||||
animate_speed:"normal",shadow:!0,hide:!0,delay:8E3,mouse_reset:!0,remove:!0,insert_brs:!0,destroy:!0,stack:k},modules:{},runModules:function(c,a){var p,b;for(b in this.modules)p="object"===typeof a&&b in a?a[b]:a,"function"===typeof this.modules[b][c]&&(this.modules[b].notice=this,this.modules[b].options="object"===typeof this.options[b]?this.options[b]:{},this.modules[b][c](this,"object"===typeof this.options[b]?this.options[b]:{},p))},state:"initializing",timer:null,animTimer:null,styles:null,elem:null,
|
||||
container:null,title_container:null,text_container:null,animating:!1,timerHide:!1,init:function(){var c=this;this.modules={};b.extend(!0,this.modules,d.prototype.modules);this.styles="object"===typeof this.options.styling?this.options.styling:d.styling[this.options.styling];this.elem=b("<div />",{"class":"ui-pnotify "+this.options.addclass,css:{display:"none"},"aria-live":"assertive","aria-role":"alertdialog",mouseenter:function(a){if(c.options.mouse_reset&&"out"===c.animating){if(!c.timerHide)return;
|
||||
c.cancelRemove()}c.options.hide&&c.options.mouse_reset&&c.cancelRemove()},mouseleave:function(a){c.options.hide&&c.options.mouse_reset&&"out"!==c.animating&&c.queueRemove();d.positionAll()}});"fade"===this.options.animation&&this.elem.addClass("ui-pnotify-fade-"+this.options.animate_speed);this.container=b("<div />",{"class":this.styles.container+" ui-pnotify-container "+("error"===this.options.type?this.styles.error:"info"===this.options.type?this.styles.info:"success"===this.options.type?this.styles.success:
|
||||
this.styles.notice),role:"alert"}).appendTo(this.elem);""!==this.options.cornerclass&&this.container.removeClass("ui-corner-all").addClass(this.options.cornerclass);this.options.shadow&&this.container.addClass("ui-pnotify-shadow");!1!==this.options.icon&&b("<div />",{"class":"ui-pnotify-icon"}).append(b("<span />",{"class":!0===this.options.icon?"error"===this.options.type?this.styles.error_icon:"info"===this.options.type?this.styles.info_icon:"success"===this.options.type?this.styles.success_icon:
|
||||
this.styles.notice_icon:this.options.icon})).prependTo(this.container);this.title_container=b("<h4 />",{"class":"ui-pnotify-title"}).appendTo(this.container);!1===this.options.title?this.title_container.hide():this.options.title_escape?this.title_container.text(this.options.title):this.title_container.html(this.options.title);this.text_container=b("<div />",{"class":"ui-pnotify-text","aria-role":"alert"}).appendTo(this.container);!1===this.options.text?this.text_container.hide():this.options.text_escape?
|
||||
this.text_container.text(this.options.text):this.text_container.html(this.options.insert_brs?String(this.options.text).replace(/\n/g,"<br />"):this.options.text);"string"===typeof this.options.width&&this.elem.css("width",this.options.width);"string"===typeof this.options.min_height&&this.container.css("min-height",this.options.min_height);d.notices="top"===this.options.stack.push?b.merge([this],d.notices):b.merge(d.notices,[this]);"top"===this.options.stack.push&&this.queuePosition(!1,1);this.options.stack.animation=
|
||||
!1;this.runModules("init");this.options.auto_display&&this.open();return this},update:function(c){var a=this.options;this.parseOptions(a,c);this.elem.removeClass("ui-pnotify-fade-slow ui-pnotify-fade-normal ui-pnotify-fade-fast");"fade"===this.options.animation&&this.elem.addClass("ui-pnotify-fade-"+this.options.animate_speed);this.options.cornerclass!==a.cornerclass&&this.container.removeClass("ui-corner-all "+a.cornerclass).addClass(this.options.cornerclass);this.options.shadow!==a.shadow&&(this.options.shadow?
|
||||
this.container.addClass("ui-pnotify-shadow"):this.container.removeClass("ui-pnotify-shadow"));!1===this.options.addclass?this.elem.removeClass(a.addclass):this.options.addclass!==a.addclass&&this.elem.removeClass(a.addclass).addClass(this.options.addclass);!1===this.options.title?this.title_container.slideUp("fast"):this.options.title!==a.title&&(this.options.title_escape?this.title_container.text(this.options.title):this.title_container.html(this.options.title),!1===a.title&&this.title_container.slideDown(200));
|
||||
!1===this.options.text?this.text_container.slideUp("fast"):this.options.text!==a.text&&(this.options.text_escape?this.text_container.text(this.options.text):this.text_container.html(this.options.insert_brs?String(this.options.text).replace(/\n/g,"<br />"):this.options.text),!1===a.text&&this.text_container.slideDown(200));this.options.type!==a.type&&this.container.removeClass(this.styles.error+" "+this.styles.notice+" "+this.styles.success+" "+this.styles.info).addClass("error"===this.options.type?
|
||||
this.styles.error:"info"===this.options.type?this.styles.info:"success"===this.options.type?this.styles.success:this.styles.notice);if(this.options.icon!==a.icon||!0===this.options.icon&&this.options.type!==a.type)this.container.find("div.ui-pnotify-icon").remove(),!1!==this.options.icon&&b("<div />",{"class":"ui-pnotify-icon"}).append(b("<span />",{"class":!0===this.options.icon?"error"===this.options.type?this.styles.error_icon:"info"===this.options.type?this.styles.info_icon:"success"===this.options.type?
|
||||
this.styles.success_icon:this.styles.notice_icon:this.options.icon})).prependTo(this.container);this.options.width!==a.width&&this.elem.animate({width:this.options.width});this.options.min_height!==a.min_height&&this.container.animate({minHeight:this.options.min_height});this.options.hide?a.hide||this.queueRemove():this.cancelRemove();this.queuePosition(!0);this.runModules("update",a);return this},open:function(){this.state="opening";this.runModules("beforeOpen");var c=this;this.elem.parent().length||
|
||||
this.elem.appendTo(this.options.stack.context?this.options.stack.context:h);"top"!==this.options.stack.push&&this.position(!0);this.animateIn(function(){c.queuePosition(!0);c.options.hide&&c.queueRemove();c.state="open";c.runModules("afterOpen")});return this},remove:function(c){this.state="closing";this.timerHide=!!c;this.runModules("beforeClose");var a=this;this.timer&&(l.clearTimeout(this.timer),this.timer=null);this.animateOut(function(){a.state="closed";a.runModules("afterClose");a.queuePosition(!0);
|
||||
a.options.remove&&a.elem.detach();a.runModules("beforeDestroy");if(a.options.destroy&&null!==d.notices){var c=b.inArray(a,d.notices);-1!==c&&d.notices.splice(c,1)}a.runModules("afterDestroy")});return this},get:function(){return this.elem},parseOptions:function(c,a){this.options=b.extend(!0,{},d.prototype.options);this.options.stack=d.prototype.options.stack;for(var p=[c,a],m,f=0;f<p.length;f++){m=p[f];if("undefined"===typeof m)break;if("object"!==typeof m)this.options.text=m;else for(var e in m)this.modules[e]?
|
||||
b.extend(!0,this.options[e],m[e]):this.options[e]=m[e]}},animateIn:function(c){this.animating="in";var a=this;c=function(){a.animTimer&&clearTimeout(a.animTimer);"in"===a.animating&&(a.elem.is(":visible")?(this&&this.call(),a.animating=!1):a.animTimer=setTimeout(c,40))}.bind(c);"fade"===this.options.animation?(this.elem.one("webkitTransitionEnd mozTransitionEnd MSTransitionEnd oTransitionEnd transitionend",c).addClass("ui-pnotify-in"),this.elem.css("opacity"),this.elem.addClass("ui-pnotify-fade-in"),
|
||||
this.animTimer=setTimeout(c,650)):(this.elem.addClass("ui-pnotify-in"),c())},animateOut:function(c){this.animating="out";var a=this;c=function(){a.animTimer&&clearTimeout(a.animTimer);"out"===a.animating&&("0"!=a.elem.css("opacity")&&a.elem.is(":visible")?a.animTimer=setTimeout(c,40):(a.elem.removeClass("ui-pnotify-in"),this&&this.call(),a.animating=!1))}.bind(c);"fade"===this.options.animation?(this.elem.one("webkitTransitionEnd mozTransitionEnd MSTransitionEnd oTransitionEnd transitionend",c).removeClass("ui-pnotify-fade-in"),
|
||||
this.animTimer=setTimeout(c,650)):(this.elem.removeClass("ui-pnotify-in"),c())},position:function(c){var a=this.options.stack,b=this.elem;"undefined"===typeof a.context&&(a.context=h);if(a){"number"!==typeof a.nextpos1&&(a.nextpos1=a.firstpos1);"number"!==typeof a.nextpos2&&(a.nextpos2=a.firstpos2);"number"!==typeof a.addpos2&&(a.addpos2=0);var d=!b.hasClass("ui-pnotify-in");if(!d||c){a.modal&&(a.overlay?a.overlay.show():a.overlay=s(a));b.addClass("ui-pnotify-move");var f;switch(a.dir1){case "down":f=
|
||||
"top";break;case "up":f="bottom";break;case "left":f="right";break;case "right":f="left"}c=parseInt(b.css(f).replace(/(?:\..*|[^0-9.])/g,""));isNaN(c)&&(c=0);"undefined"!==typeof a.firstpos1||d||(a.firstpos1=c,a.nextpos1=a.firstpos1);var e;switch(a.dir2){case "down":e="top";break;case "up":e="bottom";break;case "left":e="right";break;case "right":e="left"}c=parseInt(b.css(e).replace(/(?:\..*|[^0-9.])/g,""));isNaN(c)&&(c=0);"undefined"!==typeof a.firstpos2||d||(a.firstpos2=c,a.nextpos2=a.firstpos2);
|
||||
if("down"===a.dir1&&a.nextpos1+b.height()>(a.context.is(h)?n.height():a.context.prop("scrollHeight"))||"up"===a.dir1&&a.nextpos1+b.height()>(a.context.is(h)?n.height():a.context.prop("scrollHeight"))||"left"===a.dir1&&a.nextpos1+b.width()>(a.context.is(h)?n.width():a.context.prop("scrollWidth"))||"right"===a.dir1&&a.nextpos1+b.width()>(a.context.is(h)?n.width():a.context.prop("scrollWidth")))a.nextpos1=a.firstpos1,a.nextpos2+=a.addpos2+("undefined"===typeof a.spacing2?25:a.spacing2),a.addpos2=0;"number"===
|
||||
typeof a.nextpos2&&(a.animation?b.css(e,a.nextpos2+"px"):(b.removeClass("ui-pnotify-move"),b.css(e,a.nextpos2+"px"),b.css(e),b.addClass("ui-pnotify-move")));switch(a.dir2){case "down":case "up":b.outerHeight(!0)>a.addpos2&&(a.addpos2=b.height());break;case "left":case "right":b.outerWidth(!0)>a.addpos2&&(a.addpos2=b.width())}"number"===typeof a.nextpos1&&(a.animation?b.css(f,a.nextpos1+"px"):(b.removeClass("ui-pnotify-move"),b.css(f,a.nextpos1+"px"),b.css(f),b.addClass("ui-pnotify-move")));switch(a.dir1){case "down":case "up":a.nextpos1+=
|
||||
b.height()+("undefined"===typeof a.spacing1?25:a.spacing1);break;case "left":case "right":a.nextpos1+=b.width()+("undefined"===typeof a.spacing1?25:a.spacing1)}}return this}},queuePosition:function(b,a){g&&clearTimeout(g);a||(a=10);g=setTimeout(function(){d.positionAll(b)},a);return this},cancelRemove:function(){this.timer&&l.clearTimeout(this.timer);this.animTimer&&l.clearTimeout(this.animTimer);"closing"===this.state&&(this.state="open",this.animating=!1,this.elem.addClass("ui-pnotify-in"),"fade"===
|
||||
this.options.animation&&this.elem.addClass("ui-pnotify-fade-in"));return this},queueRemove:function(){var b=this;this.cancelRemove();this.timer=l.setTimeout(function(){b.remove(!0)},isNaN(this.options.delay)?0:this.options.delay);return this}});b.extend(d,{notices:[],reload:q,removeAll:function(){b.each(d.notices,function(){this.remove&&this.remove(!1)})},removeStack:function(c){b.each(d.notices,function(){this.remove&&this.options.stack===c&&this.remove(!1)})},positionAll:function(c){g&&clearTimeout(g);
|
||||
g=null;if(d.notices&&d.notices.length)b.each(d.notices,function(){var a=this.options.stack;a&&(a.overlay&&a.overlay.hide(),a.nextpos1=a.firstpos1,a.nextpos2=a.firstpos2,a.addpos2=0,a.animation=c)}),b.each(d.notices,function(){this.position()});else{var a=d.prototype.options.stack;a&&(delete a.nextpos1,delete a.nextpos2)}},styling:{brighttheme:{container:"brighttheme",notice:"brighttheme-notice",notice_icon:"brighttheme-icon-notice",info:"brighttheme-info",info_icon:"brighttheme-icon-info",success:"brighttheme-success",
|
||||
success_icon:"brighttheme-icon-success",error:"brighttheme-error",error_icon:"brighttheme-icon-error"},jqueryui:{container:"ui-widget ui-widget-content ui-corner-all",notice:"ui-state-highlight",notice_icon:"ui-icon ui-icon-info",info:"",info_icon:"ui-icon ui-icon-info",success:"ui-state-default",success_icon:"ui-icon ui-icon-circle-check",error:"ui-state-error",error_icon:"ui-icon ui-icon-alert"},bootstrap3:{container:"alert",notice:"alert-warning",notice_icon:"glyphicon glyphicon-exclamation-sign",
|
||||
info:"alert-info",info_icon:"glyphicon glyphicon-info-sign",success:"alert-success",success_icon:"glyphicon glyphicon-ok-sign",error:"alert-danger",error_icon:"glyphicon glyphicon-warning-sign"}}});d.styling.fontawesome=b.extend({},d.styling.bootstrap3);b.extend(d.styling.fontawesome,{notice_icon:"fa fa-exclamation-circle",info_icon:"fa fa-info",success_icon:"fa fa-check",error_icon:"fa fa-warning"});l.document.body?r():b(r);return d};return q(k)});
|
||||
(function(e,d){"function"===typeof define&&define.amd?define("pnotify.animate",["jquery","pnotify"],d):"object"===typeof exports&&"undefined"!==typeof module?module.exports=d(require("jquery"),require("./pnotify")):d(e.jQuery,e.PNotify)})("undefined"!==typeof window?window:this,function(e,d){d.prototype.options.animate={animate:!1,in_class:"",out_class:""};d.prototype.modules.animate={init:function(a,b){this.setUpAnimations(a,b);a.attention=function(b,d){a.elem.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",
|
||||
function(){a.elem.removeClass(b);d&&d.call(a)}).addClass("animated "+b)}},update:function(a,b,c){b.animate!=c.animate&&this.setUpAnimations(a,b)},setUpAnimations:function(a,b){if(b.animate){a.options.animation="none";a.elem.removeClass("ui-pnotify-fade-slow ui-pnotify-fade-normal ui-pnotify-fade-fast");a._animateIn||(a._animateIn=a.animateIn);a._animateOut||(a._animateOut=a.animateOut);a.animateIn=this.animateIn.bind(this);a.animateOut=this.animateOut.bind(this);var c=400;"slow"===a.options.animate_speed?
|
||||
c=600:"fast"===a.options.animate_speed?c=200:0<a.options.animate_speed&&(c=a.options.animate_speed);c/=1E3;a.elem.addClass("animated").css({"-webkit-animation-duration":c+"s","-moz-animation-duration":c+"s","animation-duration":c+"s"})}else a._animateIn&&a._animateOut&&(a.animateIn=a._animateIn,delete a._animateIn,a.animateOut=a._animateOut,delete a._animateOut,a.elem.addClass("animated"))},animateIn:function(a){this.notice.animating="in";var b=this;a=function(){b.notice.elem.removeClass(b.options.in_class);
|
||||
this&&this.call();b.notice.animating=!1}.bind(a);this.notice.elem.show().one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",a).removeClass(this.options.out_class).addClass("ui-pnotify-in").addClass(this.options.in_class)},animateOut:function(a){this.notice.animating="out";var b=this;a=function(){b.notice.elem.removeClass("ui-pnotify-in "+b.options.out_class);this&&this.call();b.notice.animating=!1}.bind(a);this.notice.elem.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",
|
||||
a).removeClass(this.options.in_class).addClass(this.options.out_class)}}});
|
||||
(function(d,e){"function"===typeof define&&define.amd?define("pnotify.buttons",["jquery","pnotify"],e):"object"===typeof exports&&"undefined"!==typeof module?module.exports=e(require("jquery"),require("./pnotify")):e(d.jQuery,d.PNotify)})("undefined"!==typeof window?window:this,function(d,e){e.prototype.options.buttons={closer:!0,closer_hover:!0,sticker:!0,sticker_hover:!0,show_on_nonblock:!1,labels:{close:"Close",stick:"Stick",unstick:"Unstick"},classes:{closer:null,pin_up:null,pin_down:null}};e.prototype.modules.buttons=
|
||||
{closer:null,sticker:null,init:function(a,b){var c=this;a.elem.on({mouseenter:function(b){!c.options.sticker||a.options.nonblock&&a.options.nonblock.nonblock&&!c.options.show_on_nonblock||c.sticker.trigger("pnotify:buttons:toggleStick").css("visibility","visible");!c.options.closer||a.options.nonblock&&a.options.nonblock.nonblock&&!c.options.show_on_nonblock||c.closer.css("visibility","visible")},mouseleave:function(a){c.options.sticker_hover&&c.sticker.css("visibility","hidden");c.options.closer_hover&&
|
||||
c.closer.css("visibility","hidden")}});this.sticker=d("<div />",{"class":"ui-pnotify-sticker","aria-role":"button","aria-pressed":a.options.hide?"false":"true",tabindex:"0",title:a.options.hide?b.labels.stick:b.labels.unstick,css:{cursor:"pointer",visibility:b.sticker_hover?"hidden":"visible"},click:function(){a.options.hide=!a.options.hide;a.options.hide?a.queueRemove():a.cancelRemove();d(this).trigger("pnotify:buttons:toggleStick")}}).bind("pnotify:buttons:toggleStick",function(){var b=null===c.options.classes.pin_up?
|
||||
a.styles.pin_up:c.options.classes.pin_up,e=null===c.options.classes.pin_down?a.styles.pin_down:c.options.classes.pin_down;d(this).attr("title",a.options.hide?c.options.labels.stick:c.options.labels.unstick).children().attr("class","").addClass(a.options.hide?b:e).attr("aria-pressed",a.options.hide?"false":"true")}).append("<span />").trigger("pnotify:buttons:toggleStick").prependTo(a.container);(!b.sticker||a.options.nonblock&&a.options.nonblock.nonblock&&!b.show_on_nonblock)&&this.sticker.css("display",
|
||||
"none");this.closer=d("<div />",{"class":"ui-pnotify-closer","aria-role":"button",tabindex:"0",title:b.labels.close,css:{cursor:"pointer",visibility:b.closer_hover?"hidden":"visible"},click:function(){a.remove(!1);c.sticker.css("visibility","hidden");c.closer.css("visibility","hidden")}}).append(d("<span />",{"class":null===b.classes.closer?a.styles.closer:b.classes.closer})).prependTo(a.container);(!b.closer||a.options.nonblock&&a.options.nonblock.nonblock&&!b.show_on_nonblock)&&this.closer.css("display",
|
||||
"none")},update:function(a,b){!b.closer||a.options.nonblock&&a.options.nonblock.nonblock&&!b.show_on_nonblock?this.closer.css("display","none"):b.closer&&this.closer.css("display","block");!b.sticker||a.options.nonblock&&a.options.nonblock.nonblock&&!b.show_on_nonblock?this.sticker.css("display","none"):b.sticker&&this.sticker.css("display","block");this.sticker.trigger("pnotify:buttons:toggleStick");this.closer.find("span").attr("class","").addClass(null===b.classes.closer?a.styles.closer:b.classes.closer);
|
||||
b.sticker_hover?this.sticker.css("visibility","hidden"):a.options.nonblock&&a.options.nonblock.nonblock&&!b.show_on_nonblock||this.sticker.css("visibility","visible");b.closer_hover?this.closer.css("visibility","hidden"):a.options.nonblock&&a.options.nonblock.nonblock&&!b.show_on_nonblock||this.closer.css("visibility","visible")}};d.extend(e.styling.brighttheme,{closer:"brighttheme-icon-closer",pin_up:"brighttheme-icon-sticker",pin_down:"brighttheme-icon-sticker brighttheme-icon-stuck"});d.extend(e.styling.jqueryui,
|
||||
{closer:"ui-icon ui-icon-close",pin_up:"ui-icon ui-icon-pin-w",pin_down:"ui-icon ui-icon-pin-s"});d.extend(e.styling.bootstrap2,{closer:"icon-remove",pin_up:"icon-pause",pin_down:"icon-play"});d.extend(e.styling.bootstrap3,{closer:"glyphicon glyphicon-remove",pin_up:"glyphicon glyphicon-pause",pin_down:"glyphicon glyphicon-play"});d.extend(e.styling.fontawesome,{closer:"fa fa-times",pin_up:"fa fa-pause",pin_down:"fa fa-play"})});
|
||||
(function(e,c){"function"===typeof define&&define.amd?define("pnotify.confirm",["jquery","pnotify"],c):"object"===typeof exports&&"undefined"!==typeof module?module.exports=c(require("jquery"),require("./pnotify")):c(e.jQuery,e.PNotify)})("undefined"!==typeof window?window:this,function(e,c){c.prototype.options.confirm={confirm:!1,prompt:!1,prompt_class:"",prompt_default:"",prompt_multi_line:!1,align:"right",buttons:[{text:"Ok",addClass:"",promptTrigger:!0,click:function(b,a){b.remove();b.get().trigger("pnotify.confirm",
|
||||
[b,a])}},{text:"Cancel",addClass:"",click:function(b){b.remove();b.get().trigger("pnotify.cancel",b)}}]};c.prototype.modules.confirm={container:null,prompt:null,init:function(b,a){this.container=e('<div class="ui-pnotify-action-bar" style="margin-top:5px;clear:both;" />').css("text-align",a.align).appendTo(b.container);a.confirm||a.prompt?this.makeDialog(b,a):this.container.hide()},update:function(b,a){a.confirm?(this.makeDialog(b,a),this.container.show()):this.container.hide().empty()},afterOpen:function(b,
|
||||
a){a.prompt&&this.prompt.focus()},makeDialog:function(b,a){var h=!1,l=this,g,d;this.container.empty();a.prompt&&(this.prompt=e("<"+(a.prompt_multi_line?'textarea rows="5"':'input type="text"')+' style="margin-bottom:5px;clear:both;" />').addClass(("undefined"===typeof b.styles.input?"":b.styles.input)+" "+("undefined"===typeof a.prompt_class?"":a.prompt_class)).val(a.prompt_default).appendTo(this.container));for(var m=a.buttons[0]&&a.buttons[0]!==c.prototype.options.confirm.buttons[0],f=0;f<a.buttons.length;f++)if(!(null===
|
||||
a.buttons[f]||m&&c.prototype.options.confirm.buttons[f]&&c.prototype.options.confirm.buttons[f]===a.buttons[f])){g=a.buttons[f];h?this.container.append(" "):h=!0;d=e('<button type="button" class="ui-pnotify-action-button" />').addClass(("undefined"===typeof b.styles.btn?"":b.styles.btn)+" "+("undefined"===typeof g.addClass?"":g.addClass)).text(g.text).appendTo(this.container).on("click",function(k){return function(){"function"==typeof k.click&&k.click(b,a.prompt?l.prompt.val():null)}}(g));a.prompt&&
|
||||
!a.prompt_multi_line&&g.promptTrigger&&this.prompt.keypress(function(b){return function(a){13==a.keyCode&&b.click()}}(d));b.styles.text&&d.wrapInner('<span class="'+b.styles.text+'"></span>');b.styles.btnhover&&d.hover(function(a){return function(){a.addClass(b.styles.btnhover)}}(d),function(a){return function(){a.removeClass(b.styles.btnhover)}}(d));if(b.styles.btnactive)d.on("mousedown",function(a){return function(){a.addClass(b.styles.btnactive)}}(d)).on("mouseup",function(a){return function(){a.removeClass(b.styles.btnactive)}}(d));
|
||||
if(b.styles.btnfocus)d.on("focus",function(a){return function(){a.addClass(b.styles.btnfocus)}}(d)).on("blur",function(a){return function(){a.removeClass(b.styles.btnfocus)}}(d))}}};e.extend(c.styling.jqueryui,{btn:"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only",btnhover:"ui-state-hover",btnactive:"ui-state-active",btnfocus:"ui-state-focus",input:"",text:"ui-button-text"});e.extend(c.styling.bootstrap2,{btn:"btn",input:""});e.extend(c.styling.bootstrap3,{btn:"btn btn-default",
|
||||
input:"form-control"});e.extend(c.styling.fontawesome,{btn:"btn btn-default",input:"form-control"})});
|
||||
(function(e,c){"function"===typeof define&&define.amd?define("pnotify.desktop",["jquery","pnotify"],c):"object"===typeof exports&&"undefined"!==typeof module?module.exports=c(require("jquery"),require("./pnotify")):c(e.jQuery,e.PNotify)})("undefined"!==typeof window?window:this,function(e,c){var d,f=function(a,b){f="Notification"in window?function(a,b){return new Notification(a,b)}:"mozNotification"in navigator?function(a,b){return navigator.mozNotification.createNotification(a,b.body,b.icon).show()}:
|
||||
"webkitNotifications"in window?function(a,b){return window.webkitNotifications.createNotification(b.icon,a,b.body)}:function(a,b){return null};return f(a,b)};c.prototype.options.desktop={desktop:!1,fallback:!0,icon:null,tag:null};c.prototype.modules.desktop={tag:null,icon:null,genNotice:function(a,b){this.icon=null===b.icon?"http://sciactive.com/pnotify/includes/desktop/"+a.options.type+".png":!1===b.icon?null:b.icon;if(null===this.tag||null!==b.tag)this.tag=null===b.tag?"PNotify-"+Math.round(1E6*
|
||||
Math.random()):b.tag;a.desktop=f(a.options.title,{icon:this.icon,body:b.text||a.options.text,tag:this.tag});!("close"in a.desktop)&&"cancel"in a.desktop&&(a.desktop.close=function(){a.desktop.cancel()});a.desktop.onclick=function(){a.elem.trigger("click")};a.desktop.onclose=function(){"closing"!==a.state&&"closed"!==a.state&&a.remove()}},init:function(a,b){b.desktop&&(d=c.desktop.checkPermission(),0!==d?b.fallback||(a.options.auto_display=!1):this.genNotice(a,b))},update:function(a,b,c){0!==d&&b.fallback||
|
||||
!b.desktop||this.genNotice(a,b)},beforeOpen:function(a,b){0!==d&&b.fallback||!b.desktop||a.elem.css({left:"-10000px"}).removeClass("ui-pnotify-in")},afterOpen:function(a,b){0!==d&&b.fallback||!b.desktop||(a.elem.css({left:"-10000px"}).removeClass("ui-pnotify-in"),"show"in a.desktop&&a.desktop.show())},beforeClose:function(a,b){0!==d&&b.fallback||!b.desktop||a.elem.css({left:"-10000px"}).removeClass("ui-pnotify-in")},afterClose:function(a,b){0!==d&&b.fallback||!b.desktop||(a.elem.css({left:"-10000px"}).removeClass("ui-pnotify-in"),
|
||||
"close"in a.desktop&&a.desktop.close())}};c.desktop={permission:function(){"undefined"!==typeof Notification&&"requestPermission"in Notification?Notification.requestPermission():"webkitNotifications"in window&&window.webkitNotifications.requestPermission()},checkPermission:function(){return"undefined"!==typeof Notification&&"permission"in Notification?"granted"===Notification.permission?0:1:"webkitNotifications"in window?0==window.webkitNotifications.checkPermission()?0:1:1}};d=c.desktop.checkPermission()});
|
||||
(function(b,a){"function"===typeof define&&define.amd?define("pnotify.history",["jquery","pnotify"],a):"object"===typeof exports&&"undefined"!==typeof module?module.exports=a(require("jquery"),require("./pnotify")):a(b.jQuery,b.PNotify)})("undefined"!==typeof window?window:this,function(b,a){var c,e;b(function(){b("body").on("pnotify.history-all",function(){b.each(a.notices,function(){this.modules.history.inHistory&&(this.elem.is(":visible")?this.options.hide&&this.queueRemove():this.open&&this.open())})}).on("pnotify.history-last",
|
||||
function(){var b="top"===a.prototype.options.stack.push,d=b?0:-1,c;do{c=-1===d?a.notices.slice(d):a.notices.slice(d,d+1);if(!c[0])return!1;d=b?d+1:d-1}while(!c[0].modules.history.inHistory||c[0].elem.is(":visible"));c[0].open&&c[0].open()})});a.prototype.options.history={history:!0,menu:!1,fixed:!0,maxonscreen:Infinity,labels:{redisplay:"Redisplay",all:"All",last:"Last"}};a.prototype.modules.history={inHistory:!1,init:function(a,d){a.options.destroy=!1;this.inHistory=d.history;d.menu&&"undefined"===
|
||||
typeof c&&(c=b("<div />",{"class":"ui-pnotify-history-container "+a.styles.hi_menu,mouseleave:function(){c.animate({top:"-"+e+"px"},{duration:100,queue:!1})}}).append(b("<div />",{"class":"ui-pnotify-history-header",text:d.labels.redisplay})).append(b("<button />",{"class":"ui-pnotify-history-all "+a.styles.hi_btn,text:d.labels.all,mouseenter:function(){b(this).addClass(a.styles.hi_btnhov)},mouseleave:function(){b(this).removeClass(a.styles.hi_btnhov)},click:function(){b(this).trigger("pnotify.history-all");
|
||||
return!1}})).append(b("<button />",{"class":"ui-pnotify-history-last "+a.styles.hi_btn,text:d.labels.last,mouseenter:function(){b(this).addClass(a.styles.hi_btnhov)},mouseleave:function(){b(this).removeClass(a.styles.hi_btnhov)},click:function(){b(this).trigger("pnotify.history-last");return!1}})).appendTo("body"),e=b("<span />",{"class":"ui-pnotify-history-pulldown "+a.styles.hi_hnd,mouseenter:function(){c.animate({top:"0"},{duration:100,queue:!1})}}).appendTo(c).offset().top+2,c.css({top:"-"+e+
|
||||
"px"}),d.fixed&&c.addClass("ui-pnotify-history-fixed"))},update:function(a,b){this.inHistory=b.history;b.fixed&&c?c.addClass("ui-pnotify-history-fixed"):c&&c.removeClass("ui-pnotify-history-fixed")},beforeOpen:function(c,d){if(a.notices&&a.notices.length>d.maxonscreen){var e;e="top"!==c.options.stack.push?a.notices.slice(0,a.notices.length-d.maxonscreen):a.notices.slice(d.maxonscreen,a.notices.length);b.each(e,function(){this.remove&&this.remove()})}}};b.extend(a.styling.jqueryui,{hi_menu:"ui-state-default ui-corner-bottom",
|
||||
hi_btn:"ui-state-default ui-corner-all",hi_btnhov:"ui-state-hover",hi_hnd:"ui-icon ui-icon-grip-dotted-horizontal"});b.extend(a.styling.bootstrap2,{hi_menu:"well",hi_btn:"btn",hi_btnhov:"",hi_hnd:"icon-chevron-down"});b.extend(a.styling.bootstrap3,{hi_menu:"well",hi_btn:"btn btn-default",hi_btnhov:"",hi_hnd:"glyphicon glyphicon-chevron-down"});b.extend(a.styling.fontawesome,{hi_menu:"well",hi_btn:"btn btn-default",hi_btnhov:"",hi_hnd:"fa fa-chevron-down"})});
|
||||
(function(g,c){"function"===typeof define&&define.amd?define("pnotify.mobile",["jquery","pnotify"],c):"object"===typeof exports&&"undefined"!==typeof module?module.exports=c(require("jquery"),require("./pnotify")):c(g.jQuery,g.PNotify)})("undefined"!==typeof window?window:this,function(g,c){c.prototype.options.mobile={swipe_dismiss:!0,styling:!0};c.prototype.modules.mobile={swipe_dismiss:!0,init:function(a,b){var c=this,d=null,e=null,f=null;this.swipe_dismiss=b.swipe_dismiss;this.doMobileStyling(a,
|
||||
b);a.elem.on({touchstart:function(b){c.swipe_dismiss&&(d=b.originalEvent.touches[0].screenX,f=a.elem.width(),a.container.css("left","0"))},touchmove:function(b){d&&c.swipe_dismiss&&(e=b.originalEvent.touches[0].screenX-d,b=(1-Math.abs(e)/f)*a.options.opacity,a.elem.css("opacity",b),a.container.css("left",e))},touchend:function(){if(d&&c.swipe_dismiss){if(40<Math.abs(e)){var b=0>e?-2*f:2*f;a.elem.animate({opacity:0},100);a.container.animate({left:b},100);a.remove()}else a.elem.animate({opacity:a.options.opacity},
|
||||
100),a.container.animate({left:0},100);f=e=d=null}},touchcancel:function(){d&&c.swipe_dismiss&&(a.elem.animate({opacity:a.options.opacity},100),a.container.animate({left:0},100),f=e=d=null)}})},update:function(a,b){this.swipe_dismiss=b.swipe_dismiss;this.doMobileStyling(a,b)},doMobileStyling:function(a,b){if(b.styling)if(a.elem.addClass("ui-pnotify-mobile-able"),480>=g(window).width())a.options.stack.mobileOrigSpacing1||(a.options.stack.mobileOrigSpacing1=a.options.stack.spacing1,a.options.stack.mobileOrigSpacing2=
|
||||
a.options.stack.spacing2),a.options.stack.spacing1=0,a.options.stack.spacing2=0;else{if(a.options.stack.mobileOrigSpacing1||a.options.stack.mobileOrigSpacing2)a.options.stack.spacing1=a.options.stack.mobileOrigSpacing1,delete a.options.stack.mobileOrigSpacing1,a.options.stack.spacing2=a.options.stack.mobileOrigSpacing2,delete a.options.stack.mobileOrigSpacing2}else a.elem.removeClass("ui-pnotify-mobile-able"),a.options.stack.mobileOrigSpacing1&&(a.options.stack.spacing1=a.options.stack.mobileOrigSpacing1,
|
||||
delete a.options.stack.mobileOrigSpacing1),a.options.stack.mobileOrigSpacing2&&(a.options.stack.spacing2=a.options.stack.mobileOrigSpacing2,delete a.options.stack.mobileOrigSpacing2)}}});
|
608
web/libs/js/poseidon.js
Normal file
|
@ -0,0 +1,608 @@
|
|||
// jshint esversion: 6, globalstrict: true, strict: true, bitwise: true, browser: true, devel: true
|
||||
/*global MediaSource*/
|
||||
/*global URL*/
|
||||
/*global io*/
|
||||
'use strict';
|
||||
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
var Poseidon = function () {
|
||||
function Poseidon(options, callback) {
|
||||
var _this = this;
|
||||
this._namespace = options.ke+options.id;
|
||||
console.log('Poseidon Start: ' + options.id);
|
||||
var _monitor = {
|
||||
url: options.url,
|
||||
auth: options.auth_token,
|
||||
uid: options.uid,
|
||||
ke: options.ke,
|
||||
id: options.id,
|
||||
channel: options.channel
|
||||
};
|
||||
_classCallCheck(this, Poseidon);
|
||||
|
||||
if (typeof callback === 'function' && callback.length === 2) {
|
||||
this._callback = callback;
|
||||
} else {
|
||||
this._callback = function (err, msg) {
|
||||
if (err) {
|
||||
console.error('Poseidon Error: ' + err);
|
||||
return;
|
||||
}
|
||||
console.log('Poseidon Message: ' + msg);
|
||||
};
|
||||
}
|
||||
if (!options.video || !(options.video instanceof HTMLVideoElement)) {
|
||||
// this._callback('"options.video" is not a video element');
|
||||
return;
|
||||
}
|
||||
this._video = options.video;
|
||||
this._monitor = _monitor;
|
||||
if (options.controls) {
|
||||
var stb = options.controls.indexOf('startstop') !== -1;
|
||||
var fub = options.controls.indexOf('fullscreen') !== -1;
|
||||
var snb = options.controls.indexOf('snapshot') !== -1;
|
||||
var cyb = options.controls.indexOf('cycle') !== -1;
|
||||
//todo: mute and volume buttons will be determined automatically based on codec string
|
||||
if (stb || fub || snb || cyb) {
|
||||
var theVideo = $(this._video);
|
||||
this._container = theVideo.parent().addClass('mse-container')[0];
|
||||
theVideo.addClass('mse-video');
|
||||
this._video.controls = false;
|
||||
this._video.removeAttribute('controls');
|
||||
this._container.appendChild(this._video);
|
||||
this._controls = document.createElement('div');
|
||||
this._controls.className = 'mse-controls';
|
||||
this._container.appendChild(this._controls);
|
||||
if (stb) {
|
||||
this._startstop = document.createElement('button');
|
||||
this._startstop.className = 'mse-start';
|
||||
this._startstop.addEventListener('click', function (event) {
|
||||
_this.togglePlay();
|
||||
});
|
||||
this._controls.appendChild(this._startstop);
|
||||
}
|
||||
if (fub) {
|
||||
this._fullscreen = document.createElement('button');
|
||||
this._fullscreen.className = 'mse-fullscreen';
|
||||
this._fullscreen.addEventListener('click', function (event) {
|
||||
if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
|
||||
if (_this._container.requestFullscreen) {
|
||||
_this._container.requestFullscreen();
|
||||
} else if (_this._container.msRequestFullscreen) {
|
||||
_this._container.msRequestFullscreen();
|
||||
} else if (_this._container.mozRequestFullScreen) {
|
||||
_this._container.mozRequestFullScreen();
|
||||
} else if (_this._container.webkitRequestFullscreen) {
|
||||
_this._container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
|
||||
}
|
||||
} else {
|
||||
if (document.exitFullscreen) {
|
||||
document.exitFullscreen();
|
||||
} else if (document.msExitFullscreen) {
|
||||
document.msExitFullscreen();
|
||||
} else if (document.mozCancelFullScreen) {
|
||||
document.mozCancelFullScreen();
|
||||
} else if (document.webkitExitFullscreen) {
|
||||
document.webkitExitFullscreen();
|
||||
}
|
||||
}
|
||||
});
|
||||
this._controls.appendChild(this._fullscreen);
|
||||
}
|
||||
if (snb) {
|
||||
this._snapshot = document.createElement('button');
|
||||
this._snapshot.className = 'mse-snapshot';
|
||||
this._snapshot.addEventListener('click', function (event) {
|
||||
if (_this._video.readyState < 2) {
|
||||
_this._callback(null, 'readyState: ' + _this._video.readyState + ' < 2');
|
||||
return;
|
||||
}
|
||||
//safari bug, cannot use video as source for canvas drawImage when it is being used as media source extension (only works when using regular m3u8 playlist)
|
||||
//will hide icon until creating a server side response to deliver a snapshot
|
||||
var canvas = document.createElement("canvas");
|
||||
//this._container.appendChild(canvas);
|
||||
canvas.width = _this._video.videoWidth;
|
||||
canvas.height = _this._video.videoHeight;
|
||||
var ctx = canvas.getContext('2d');
|
||||
ctx.drawImage(_this._video, 0, 0, canvas.width, canvas.height);
|
||||
var href = canvas.toDataURL('image/jpeg', 1.0);
|
||||
var link = document.createElement('a');
|
||||
link.href = href;
|
||||
var date = new Date().getTime();
|
||||
link.download = _this._namespace + '-' + new Date().getTime() + '-snapshot.jpeg';
|
||||
//link must be added so that link.click() will work on firefox
|
||||
_this._container.appendChild(link);
|
||||
link.click();
|
||||
_this._container.removeChild(link);
|
||||
});
|
||||
this._controls.appendChild(this._snapshot);
|
||||
}
|
||||
if (cyb) {
|
||||
this._cycle = document.createElement('button');
|
||||
this._cycle.className = 'mse-cycle';
|
||||
this._cycling = false;
|
||||
if (options.cycleTime) {
|
||||
var int = parseInt(options.cycleTime);
|
||||
if (int < 2) {
|
||||
this._cycleTime = 2000;
|
||||
} else if (int > 10) {
|
||||
this._cycleTime = 10000;
|
||||
} else {
|
||||
this._cycleTime = int * 1000;
|
||||
}
|
||||
} else {
|
||||
this._cycleTime = 2000;
|
||||
}
|
||||
this._cycle.addEventListener('click', function (event) {
|
||||
if (!_this._cycling) {
|
||||
_this._namespaces = [];
|
||||
_this._cycleIndex = 0;
|
||||
var Poseidons = window.Poseidons;
|
||||
for (var i = 0; i < Poseidons.length; i++) {
|
||||
_this._namespaces.push(Poseidons[i].namespace);
|
||||
if (Poseidons[i] !== _this) {
|
||||
Poseidons[i].disabled = true;
|
||||
} else {
|
||||
_this._cycleIndex = i;
|
||||
}
|
||||
}
|
||||
if (_this._namespaces.length < 2) {
|
||||
_this._callback(null, 'unable to cycle because namespaces < 2');
|
||||
delete _this._namespaces;
|
||||
delete _this._cycleIndex;
|
||||
return;
|
||||
}
|
||||
if (!_this._playing) {
|
||||
_this.start();
|
||||
}
|
||||
if (_this._startstop) {
|
||||
_this._startstop.classList.add('cycling');
|
||||
}
|
||||
_this._cycle.classList.add('animated');
|
||||
_this._cycleInterval = setInterval(function () {
|
||||
_this._cycleIndex++;
|
||||
if (_this._cycleIndex === _this._namespaces.length) {
|
||||
_this._cycleIndex = 0;
|
||||
}
|
||||
_this.start();
|
||||
}, _this._cycleTime);
|
||||
_this._cycling = true;
|
||||
} else {
|
||||
clearInterval(_this._cycleInterval);
|
||||
_this._cycle.classList.remove('animated');
|
||||
if (_this._startstop) {
|
||||
_this._startstop.classList.remove('cycling');
|
||||
}
|
||||
_this.start();
|
||||
var _Poseidons = window.Poseidons;
|
||||
for (var _i = 0; _i < _Poseidons.length; _i++) {
|
||||
if (_Poseidons[_i] !== _this) {
|
||||
_Poseidons[_i].disabled = false;
|
||||
}
|
||||
}
|
||||
delete _this._namespaces;
|
||||
delete _this._cycleInterval;
|
||||
_this._cycling = false;
|
||||
}
|
||||
});
|
||||
this._controls.appendChild(this._cycle);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!window.Poseidons) {
|
||||
window.Poseidons = [];
|
||||
}
|
||||
window.Poseidons.push(this);
|
||||
return this;
|
||||
}
|
||||
|
||||
_createClass(Poseidon, [{
|
||||
key: 'mediaInfo',
|
||||
|
||||
|
||||
////////////////////////// public methods ////////////////////////////
|
||||
|
||||
value: function mediaInfo() {
|
||||
var str = '******************\n';
|
||||
str += 'namespace : ' + this._namespace + '\n';
|
||||
if (this._video) {
|
||||
str += 'video.paused : ' + this._video.paused + '\nvideo.currentTime : ' + this._video.currentTime + '\nvideo.src : ' + this._video.src + '\n';
|
||||
if (this._sourceBuffer.buffered.length) {
|
||||
str += 'buffered.length : ' + this._sourceBuffer.buffered.length + '\nbuffered.end(0) : ' + this._sourceBuffer.buffered.end(0) + '\nbuffered.start(0) : ' + this._sourceBuffer.buffered.start(0) + '\nbuffered size : ' + (this._sourceBuffer.buffered.end(0) - this._sourceBuffer.buffered.start(0)) + '\nlag : ' + (this._sourceBuffer.buffered.end(0) - this._video.currentTime) + '\n';
|
||||
}
|
||||
}
|
||||
str += '******************\n';
|
||||
console.info(str);
|
||||
}
|
||||
}, {
|
||||
key: 'togglePlay',
|
||||
value: function togglePlay() {
|
||||
if (this._playing === true) {
|
||||
this.stop();
|
||||
} else {
|
||||
this.start();
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}, {
|
||||
key: 'start',
|
||||
value: function start() {
|
||||
//todo maybe pass namespace as parameter to start(namespace) to accommodate cycling feature
|
||||
if (this._playing === true) {
|
||||
this.stop();
|
||||
}
|
||||
if (this._startstop) {
|
||||
this._startstop.classList.add('mse-stop');
|
||||
this._startstop.classList.remove('mse-start');
|
||||
this._startstop.disabled = true;
|
||||
}
|
||||
this._playing = true;
|
||||
var _this = this;
|
||||
this._socket = io(_this._monitor.url, { transports: ['websocket'], forceNew: false });
|
||||
this._addSocketEvents();
|
||||
if (this._startstop) {
|
||||
this._startstop.disabled = false;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}, {
|
||||
key: 'stop',
|
||||
value: function stop() {
|
||||
if (this._startstop) {
|
||||
this._startstop.classList.add('mse-start');
|
||||
this._startstop.classList.remove('mse-stop');
|
||||
this._startstop.disabled = true;
|
||||
}
|
||||
this._playing = false;
|
||||
if (this._video) {
|
||||
this._removeVideoEvents();
|
||||
this._video.pause();
|
||||
this._video.removeAttribute('src');
|
||||
//this._video.src = '';//todo: not sure if NOT removing this will cause memory leak
|
||||
this._video.load();
|
||||
}
|
||||
if (this._socket) {
|
||||
this._removeSocketEvents();
|
||||
if (this._socket.connected) {
|
||||
this._socket.disconnect();
|
||||
}
|
||||
delete this._socket;
|
||||
}
|
||||
if (this._mediaSource) {
|
||||
this._removeMediaSourceEvents();
|
||||
if (this._mediaSource.sourceBuffers && this._mediaSource.sourceBuffers.length) {
|
||||
this._mediaSource.removeSourceBuffer(this._sourceBuffer);
|
||||
}
|
||||
delete this._mediaSource;
|
||||
}
|
||||
if (this._sourceBuffer) {
|
||||
this._removeSourceBufferEvents();
|
||||
if (this._sourceBuffer.updating) {
|
||||
this._sourceBuffer.abort();
|
||||
}
|
||||
delete this._sourceBuffer;
|
||||
}
|
||||
if (this._startstop) {
|
||||
this._startstop.disabled = false;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}, {
|
||||
key: 'destroy',
|
||||
value: function destroy() {
|
||||
//todo: possibly strip control buttons and other layers added around video player
|
||||
return this;
|
||||
}
|
||||
|
||||
///////////////////// video element events /////////////////////////
|
||||
|
||||
}, {
|
||||
key: '_onVideoError',
|
||||
value: function _onVideoError(event) {
|
||||
this._callback('video error ' + event.type);
|
||||
}
|
||||
}, {
|
||||
key: '_onVideoLoadedData',
|
||||
value: function _onVideoLoadedData(event) {
|
||||
var _this2 = this;
|
||||
|
||||
this._callback(null, 'video loaded data ' + event.type);
|
||||
if ('Promise' in window) {
|
||||
this._video.play().then(function () {
|
||||
//this._callback(null, 'play promise fulfilled');
|
||||
//todo remove "click to play" poster
|
||||
}).catch(function (error) {
|
||||
_this2._callback(error);
|
||||
//todo add "click to play" poster
|
||||
});
|
||||
} else {
|
||||
this._video.play();
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: '_addVideoEvents',
|
||||
value: function _addVideoEvents() {
|
||||
if (!this._video) {
|
||||
return;
|
||||
}
|
||||
this.onVideoError = this._onVideoError.bind(this);
|
||||
this._video.addEventListener('error', this.onVideoError, { capture: true, passive: true, once: true });
|
||||
this.onVideoLoadedData = this._onVideoLoadedData.bind(this);
|
||||
this._video.addEventListener('loadeddata', this.onVideoLoadedData, { capture: true, passive: true, once: true });
|
||||
this._callback(null, 'added video events');
|
||||
}
|
||||
}, {
|
||||
key: '_removeVideoEvents',
|
||||
value: function _removeVideoEvents() {
|
||||
if (!this._video) {
|
||||
return;
|
||||
}
|
||||
this._video.removeEventListener('error', this.onVideoError, { capture: true, passive: true, once: true });
|
||||
delete this.onVideoError;
|
||||
this._video.removeEventListener('loadeddata', this.onVideoLoadedData, { capture: true, passive: true, once: true });
|
||||
delete this.onVideoLoadedData;
|
||||
this._callback(null, 'removed video events');
|
||||
}
|
||||
|
||||
///////////////////// media source events ///////////////////////////
|
||||
|
||||
}, {
|
||||
key: '_onMediaSourceClose',
|
||||
value: function _onMediaSourceClose(event) {
|
||||
this._callback(null, 'media source close ' + event.type);
|
||||
}
|
||||
}, {
|
||||
key: '_onMediaSourceOpen',
|
||||
value: function _onMediaSourceOpen(event) {
|
||||
URL.revokeObjectURL(this._video.src);
|
||||
this._mediaSource.duration = Number.POSITIVE_INFINITY;
|
||||
this._sourceBuffer = this._mediaSource.addSourceBuffer(this._mime);
|
||||
this._sourceBuffer.mode = 'sequence';
|
||||
this._addSourceBufferEvents();
|
||||
this._sourceBuffer.appendBuffer(this._init);
|
||||
//this._video.setAttribute('poster', 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQwIiBoZWlnaHQ9IjM0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnPjxyZWN0IHg9Ii0xIiB5PSItMSIgd2lkdGg9IjY0MiIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48dGV4dCBmaWxsPSIjMDAwIiBzdHJva2Utd2lkdGg9IjAiIHg9IjE2MCIgeT0iMjYiIGZvbnQtc2l6ZT0iMjYiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0cm9rZT0iIzAwMCI+cmVxdWVzdGluZyBtZWRpYSBzZWdtZW50czwvdGV4dD48L2c+PC9zdmc+');
|
||||
this.onSegment = this._onSegment.bind(this);
|
||||
this._socket.addEventListener('segment', this.onSegment, { capture: true, passive: true, once: false });
|
||||
this.Commander('segments');
|
||||
//this._video.muted = true;
|
||||
}
|
||||
}, {
|
||||
key: '_addMediaSourceEvents',
|
||||
value: function _addMediaSourceEvents() {
|
||||
if (!this._mediaSource) {
|
||||
return;
|
||||
}
|
||||
this.onMediaSourceClose = this._onMediaSourceClose.bind(this);
|
||||
this._mediaSource.addEventListener('sourceclose', this.onMediaSourceClose, { capture: true, passive: true, once: true });
|
||||
this.onMediaSourceOpen = this._onMediaSourceOpen.bind(this);
|
||||
this._mediaSource.addEventListener('sourceopen', this.onMediaSourceOpen, { capture: true, passive: true, once: true });
|
||||
}
|
||||
}, {
|
||||
key: '_removeMediaSourceEvents',
|
||||
value: function _removeMediaSourceEvents() {
|
||||
if (!this._mediaSource) {
|
||||
return;
|
||||
}
|
||||
this._mediaSource.removeEventListener('sourceclose', this.onMediaSourceClose, { capture: true, passive: true, once: true });
|
||||
delete this.onMediaSourceClose;
|
||||
this._mediaSource.removeEventListener('sourceopen', this.onMediaSourceOpen, { capture: true, passive: true, once: true });
|
||||
delete this.onMediaSourceOpen;
|
||||
}
|
||||
|
||||
///////////////////// source buffer events /////////////////////////
|
||||
|
||||
}, {
|
||||
key: '_onSourceBufferError',
|
||||
value: function _onSourceBufferError(event) {
|
||||
this._callback('sourceBufferError ' + event.type);
|
||||
}
|
||||
}, {
|
||||
key: '_onSourceBufferUpdateEnd',
|
||||
value: function _onSourceBufferUpdateEnd(event) {
|
||||
//cant do anything to sourceBuffer if it is updating
|
||||
if (this._sourceBuffer.updating) {
|
||||
return;
|
||||
}
|
||||
//if has last segment pending, append it
|
||||
if (this._lastSegment) {
|
||||
//this._callback(null, 'using this._lastSegment');
|
||||
this._sourceBuffer.appendBuffer(this._lastSegment);
|
||||
delete this._lastSegment;
|
||||
return;
|
||||
}
|
||||
//check if buffered media exists
|
||||
if (!this._sourceBuffer.buffered.length) {
|
||||
return;
|
||||
}
|
||||
var currentTime = this._video.currentTime;
|
||||
var start = this._sourceBuffer.buffered.start(0);
|
||||
var end = this._sourceBuffer.buffered.end(0);
|
||||
var past = currentTime - start;
|
||||
//todo play with numbers and make dynamic or user configurable
|
||||
if (past > 20 && currentTime < end) {
|
||||
this._sourceBuffer.remove(start, currentTime - 4);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: '_addSourceBufferEvents',
|
||||
value: function _addSourceBufferEvents() {
|
||||
if (!this._sourceBuffer) {
|
||||
return;
|
||||
}
|
||||
this.onSourceBufferError = this._onSourceBufferError.bind(this);
|
||||
this._sourceBuffer.addEventListener('error', this.onSourceBufferError, { capture: true, passive: true, once: true });
|
||||
this.onSourceBufferUpdateEnd = this._onSourceBufferUpdateEnd.bind(this);
|
||||
this._sourceBuffer.addEventListener('updateend', this.onSourceBufferUpdateEnd, { capture: true, passive: true, once: false });
|
||||
}
|
||||
}, {
|
||||
key: '_removeSourceBufferEvents',
|
||||
value: function _removeSourceBufferEvents() {
|
||||
if (!this._sourceBuffer) {
|
||||
return;
|
||||
}
|
||||
this._sourceBuffer.removeEventListener('error', this.onSourceBufferError, { capture: true, passive: true, once: true });
|
||||
delete this.onSourceBufferError;
|
||||
this._sourceBuffer.removeEventListener('updateend', this.onSourceBufferUpdateEnd, { capture: true, passive: true, once: false });
|
||||
delete this.onSourceBufferUpdateEnd;
|
||||
}
|
||||
|
||||
///////////////////// socket.io events //////////////////////////////
|
||||
|
||||
}, {
|
||||
key: '_onSocketConnect',
|
||||
value: function _onSocketConnect(event) {
|
||||
//this._callback(null, 'socket connect');
|
||||
//this._video.setAttribute('poster', 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQwIiBoZWlnaHQ9IjM0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnPjxyZWN0IHg9Ii0xIiB5PSItMSIgd2lkdGg9IjY0MiIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48dGV4dCBmaWxsPSIjMDAwIiBzdHJva2Utd2lkdGg9IjAiIHg9IjE5NiIgeT0iMjYiIGZvbnQtc2l6ZT0iMjYiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0cm9rZT0iIzAwMCI+cmVxdWVzdGluZyBtaW1lIHR5cGU8L3RleHQ+PC9nPjwvc3ZnPg==');
|
||||
this.onMime = this._onMime.bind(this);
|
||||
this._socket.addEventListener('mime', this.onMime, { capture: true, passive: true, once: true });
|
||||
this._socket.emit('MP4', this._monitor);
|
||||
this.Commander = function (cmd) {
|
||||
this._socket.emit('MP4Command', cmd);
|
||||
};
|
||||
this.Commander('mime');
|
||||
}
|
||||
}, {
|
||||
key: '_onSocketDisconnect',
|
||||
value: function _onSocketDisconnect(event) {
|
||||
this._callback(null, 'socket disconnect "' + event + '"');
|
||||
this.stop();
|
||||
}
|
||||
}, {
|
||||
key: '_onSocketError',
|
||||
value: function _onSocketError(event) {
|
||||
this._callback('socket error "' + event + '"');
|
||||
this.stop();
|
||||
}
|
||||
}, {
|
||||
key: '_onMime',
|
||||
value: function _onMime(data) {
|
||||
this._mime = data;
|
||||
if (!MediaSource.isTypeSupported(this._mime)) {
|
||||
this._video.setAttribute('poster', 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQwIiBoZWlnaHQ9IjM0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnPjxyZWN0IHg9Ii0xIiB5PSItMSIgd2lkdGg9IjY0MiIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48dGV4dCBmaWxsPSIjMDAwIiBzdHJva2Utd2lkdGg9IjAiIHg9IjE3NyIgeT0iMjYiIGZvbnQtc2l6ZT0iMjYiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0cm9rZT0iIzAwMCI+bWltZSB0eXBlIG5vdCBzdXBwb3J0ZWQ8L3RleHQ+PC9nPjwvc3ZnPg==');
|
||||
this._callback('unsupported mime "' + this._mime + '"');
|
||||
return;
|
||||
}
|
||||
//this._video.setAttribute('poster', 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQwIiBoZWlnaHQ9IjM0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnPjxyZWN0IHg9Ii0xIiB5PSItMSIgd2lkdGg9IjY0MiIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48dGV4dCBmaWxsPSIjMDAwIiBzdHJva2Utd2lkdGg9IjAiIHg9IjE4NiIgeT0iMjYiIGZvbnQtc2l6ZT0iMjYiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmIiB0ZXh0LWFuY2hvcj0ic3RhcnQiIHhtbDpzcGFjZT0icHJlc2VydmUiIHN0cm9rZT0iIzAwMCI+cmVxdWVzdGluZyBpbml0IHNlZ21lbnQ8L3RleHQ+PC9nPjwvc3ZnPg==');
|
||||
this.onInit = this._onInit.bind(this);
|
||||
this._socket.addEventListener('initialization', this.onInit, { capture: true, passive: true, once: true });
|
||||
this.Commander('initialization');
|
||||
}
|
||||
}, {
|
||||
key: '_onInit',
|
||||
value: function _onInit(data) {
|
||||
this._init = data;
|
||||
this._mediaSource = new MediaSource();
|
||||
this._addMediaSourceEvents();
|
||||
this._addVideoEvents();
|
||||
this._video.src = URL.createObjectURL(this._mediaSource);
|
||||
}
|
||||
}, {
|
||||
key: '_onSegment',
|
||||
value: function _onSegment(data) {
|
||||
if (this._sourceBuffer.buffered.length) {
|
||||
var lag = this._sourceBuffer.buffered.end(0) - this._video.currentTime;
|
||||
if (lag > 0.5) {
|
||||
this._video.currentTime = this._sourceBuffer.buffered.end(0) - 0.5;
|
||||
}
|
||||
}
|
||||
if (this._sourceBuffer.updating) {
|
||||
this._lastSegment = data;
|
||||
} else {
|
||||
delete this._lastSegment;
|
||||
this._sourceBuffer.appendBuffer(data);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: '_addSocketEvents',
|
||||
value: function _addSocketEvents() {
|
||||
if (!this._socket) {
|
||||
return;
|
||||
}
|
||||
this.onSocketConnect = this._onSocketConnect.bind(this);
|
||||
this._socket.addEventListener('connect', this.onSocketConnect, { capture: true, passive: true, once: true });
|
||||
this.onSocketDisconnect = this._onSocketDisconnect.bind(this);
|
||||
this._socket.addEventListener('disconnect', this.onSocketDisconnect, { capture: true, passive: true, once: true });
|
||||
this.onSocketError = this._onSocketError.bind(this);
|
||||
this._socket.addEventListener('error', this.onSocketError, { capture: true, passive: true, once: true });
|
||||
}
|
||||
}, {
|
||||
key: '_removeSocketEvents',
|
||||
value: function _removeSocketEvents() {
|
||||
if (!this._socket) {
|
||||
return;
|
||||
}
|
||||
this._socket.removeEventListener('connect', this.onSocketConnect, { capture: true, passive: true, once: true });
|
||||
delete this.onSocketConnect;
|
||||
this._socket.removeEventListener('disconnect', this.onSocketDisconnect, { capture: true, passive: true, once: true });
|
||||
delete this.onSocketDisconnect;
|
||||
this._socket.removeEventListener('error', this.onSocketError, { capture: true, passive: true, once: true });
|
||||
delete this.onSocketError;
|
||||
this._socket.removeEventListener('mime', this.onMime, { capture: true, passive: true, once: true });
|
||||
delete this.onMime;
|
||||
this._socket.removeEventListener('initialization', this.onInit, { capture: true, passive: true, once: true });
|
||||
delete this.onInit;
|
||||
this._socket.removeEventListener('segment', this.onSegment, { capture: true, passive: true, once: false });
|
||||
delete this.onSegment;
|
||||
}
|
||||
}, {
|
||||
key: 'namespace',
|
||||
get: function get() {
|
||||
return this._namespace || null;
|
||||
},
|
||||
set: function set(value) {
|
||||
this._namespace = value;
|
||||
}
|
||||
|
||||
/** @return {boolean}*/
|
||||
|
||||
}, {
|
||||
key: 'disabled',
|
||||
get: function get() {
|
||||
if (!this._container) {
|
||||
return false;
|
||||
}
|
||||
return this._container.classList.contains('disabled');
|
||||
}
|
||||
|
||||
/** @param {boolean} bool*/
|
||||
,
|
||||
set: function set(bool) {
|
||||
if (!this._container) {
|
||||
return;
|
||||
}
|
||||
if (bool === true) {
|
||||
if (this._container.classList.contains('disabled')) {
|
||||
return;
|
||||
}
|
||||
this._container.classList.add('disabled');
|
||||
this.stop();
|
||||
} else {
|
||||
if (!this._container.classList.contains('disabled')) {
|
||||
return;
|
||||
}
|
||||
this._container.classList.remove('disabled');
|
||||
this.start();
|
||||
}
|
||||
}
|
||||
}]);
|
||||
|
||||
return Poseidon;
|
||||
}();
|
||||
|
||||
(function mse(window) {
|
||||
//make Poseidons accessible
|
||||
//window.Poseidons = Poseidons;
|
||||
})(window);
|
||||
|
||||
//todo steps for creation of video player
|
||||
//script is loaded at footer so that it can run after html is ready on page
|
||||
//verify that socket.io is defined in window
|
||||
//iterate each video element that has custom data-namespace attributes that we need
|
||||
//initiate socket to get information from server
|
||||
//first request codec string to test against browser and then feed first into source
|
||||
//then request init-segment to feed
|
||||
//then request media segments until we run into pause, stop, close, error, buffer not ready, etc
|
||||
//change poster on video element based on current status, error, not ready, etc
|
7685
web/libs/js/socket.io.js
Normal file
34
web/libs/less/animated.less
Normal file
|
@ -0,0 +1,34 @@
|
|||
// Animated Icons
|
||||
// --------------------------
|
||||
|
||||
.@{fa-css-prefix}-spin {
|
||||
-webkit-animation: fa-spin 2s infinite linear;
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pulse {
|
||||
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@-webkit-keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
25
web/libs/less/bordered-pulled.less
Normal file
|
@ -0,0 +1,25 @@
|
|||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-border {
|
||||
padding: .2em .25em .15em;
|
||||
border: solid .08em @fa-border-color;
|
||||
border-radius: .1em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pull-left { float: left; }
|
||||
.@{fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.@{fa-css-prefix} {
|
||||
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
||||
|
||||
/* Deprecated as of 4.4.0 */
|
||||
.pull-right { float: right; }
|
||||
.pull-left { float: left; }
|
||||
|
||||
.@{fa-css-prefix} {
|
||||
&.pull-left { margin-right: .3em; }
|
||||
&.pull-right { margin-left: .3em; }
|
||||
}
|