Created
August 1, 2013 04:02
-
-
Save gaethug/6128323 to your computer and use it in GitHub Desktop.
TTWR PLAYER
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TTWR_Player |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project version="4"> | |
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" /> | |
</project> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project version="4"> | |
<component name="ProjectRootManager" version="2" /> | |
<component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false" SSL_PROTOCOLS="sslv3"> | |
<option name="USER" value="" /> | |
<option name="PASSWORD" value="" /> | |
<option name="mySSHConnectionTimeout" value="30000" /> | |
<option name="mySSHReadTimeout" value="30000" /> | |
<option name="LAST_MERGED_REVISION" /> | |
<option name="MERGE_DRY_RUN" value="false" /> | |
<option name="MERGE_DIFF_USE_ANCESTRY" value="true" /> | |
<option name="UPDATE_LOCK_ON_DEMAND" value="false" /> | |
<option name="IGNORE_SPACES_IN_MERGE" value="false" /> | |
<option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" /> | |
<option name="IGNORE_SPACES_IN_ANNOTATE" value="true" /> | |
<option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" /> | |
<option name="FORCE_UPDATE" value="false" /> | |
<option name="IGNORE_EXTERNALS" value="false" /> | |
<configuration useDefault="false">$USER_HOME$/.subversion</configuration> | |
<myIsUseDefaultProxy>false</myIsUseDefaultProxy> | |
</component> | |
</project> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project version="4"> | |
<component name="ProjectModuleManager"> | |
<modules> | |
<module fileurl="file://$PROJECT_DIR$/.idea/TTWR_Player.iml" filepath="$PROJECT_DIR$/.idea/TTWR_Player.iml" /> | |
</modules> | |
</component> | |
</project> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<component name="DependencyValidationManager"> | |
<state> | |
<option name="SKIP_IMPORT_STATEMENTS" value="false" /> | |
</state> | |
</component> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<module type="WEB_MODULE" version="4"> | |
<component name="NewModuleRootManager"> | |
<content url="file://$MODULE_DIR$" /> | |
<orderEntry type="inheritedJdk" /> | |
<orderEntry type="sourceFolder" forTests="false" /> | |
</component> | |
</module> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project version="4"> | |
<component name="VcsDirectoryMappings"> | |
<mapping directory="" vcs="" /> | |
</component> | |
</project> | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* Bootstrap v3.0.0 | |
* | |
* Copyright 2013 Twitter, Inc | |
* Licensed under the Apache License v2.0 | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Designed and built with all the love in the world by @mdo and @fat. | |
*/ | |
/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ | |
article, | |
aside, | |
details, | |
figcaption, | |
figure, | |
footer, | |
header, | |
hgroup, | |
main, | |
nav, | |
section, | |
summary { | |
display: block; | |
} | |
audio, | |
canvas, | |
video { | |
display: inline-block; | |
} | |
audio:not([controls]) { | |
display: none; | |
height: 0; | |
} | |
[hidden] { | |
display: none; | |
} | |
html { | |
font-family: sans-serif; | |
-webkit-text-size-adjust: 100%; | |
-ms-text-size-adjust: 100%; | |
} | |
body { | |
margin: 0; | |
} | |
a:focus { | |
outline: thin dotted; | |
} | |
a:active, | |
a:hover { | |
outline: 0; | |
} | |
h1 { | |
margin: 0.67em 0; | |
font-size: 2em; | |
} | |
abbr[title] { | |
border-bottom: 1px dotted; | |
} | |
b, | |
strong { | |
font-weight: bold; | |
} | |
dfn { | |
font-style: italic; | |
} | |
hr { | |
height: 0; | |
-moz-box-sizing: content-box; | |
box-sizing: content-box; | |
} | |
mark { | |
color: #000; | |
background: #ff0; | |
} | |
code, | |
kbd, | |
pre, | |
samp { | |
font-family: monospace, serif; | |
font-size: 1em; | |
} | |
pre { | |
white-space: pre-wrap; | |
} | |
q { | |
quotes: "\201C" "\201D" "\2018" "\2019"; | |
} | |
small { | |
font-size: 80%; | |
} | |
sub, | |
sup { | |
position: relative; | |
font-size: 75%; | |
line-height: 0; | |
vertical-align: baseline; | |
} | |
sup { | |
top: -0.5em; | |
} | |
sub { | |
bottom: -0.25em; | |
} | |
img { | |
border: 0; | |
} | |
svg:not(:root) { | |
overflow: hidden; | |
} | |
figure { | |
margin: 0; | |
} | |
fieldset { | |
padding: 0.35em 0.625em 0.75em; | |
margin: 0 2px; | |
border: 1px solid #c0c0c0; | |
} | |
legend { | |
padding: 0; | |
border: 0; | |
} | |
button, | |
input, | |
select, | |
textarea { | |
margin: 0; | |
font-family: inherit; | |
font-size: 100%; | |
} | |
button, | |
input { | |
line-height: normal; | |
} | |
button, | |
select { | |
text-transform: none; | |
} | |
button, | |
html input[type="button"], | |
input[type="reset"], | |
input[type="submit"] { | |
cursor: pointer; | |
-webkit-appearance: button; | |
} | |
button[disabled], | |
html input[disabled] { | |
cursor: default; | |
} | |
input[type="checkbox"], | |
input[type="radio"] { | |
padding: 0; | |
box-sizing: border-box; | |
} | |
input[type="search"] { | |
-webkit-box-sizing: content-box; | |
-moz-box-sizing: content-box; | |
box-sizing: content-box; | |
-webkit-appearance: textfield; | |
} | |
input[type="search"]::-webkit-search-cancel-button, | |
input[type="search"]::-webkit-search-decoration { | |
-webkit-appearance: none; | |
} | |
button::-moz-focus-inner, | |
input::-moz-focus-inner { | |
padding: 0; | |
border: 0; | |
} | |
textarea { | |
overflow: auto; | |
vertical-align: top; | |
} | |
table { | |
border-collapse: collapse; | |
border-spacing: 0; | |
} | |
@media print { | |
* { | |
color: #000 !important; | |
text-shadow: none !important; | |
background: transparent !important; | |
box-shadow: none !important; | |
} | |
a, | |
a:visited { | |
text-decoration: underline; | |
} | |
a[href]:after { | |
content: " (" attr(href) ")"; | |
} | |
abbr[title]:after { | |
content: " (" attr(title) ")"; | |
} | |
.ir a:after, | |
a[href^="javascript:"]:after, | |
a[href^="#"]:after { | |
content: ""; | |
} | |
pre, | |
blockquote { | |
border: 1px solid #999; | |
page-break-inside: avoid; | |
} | |
thead { | |
display: table-header-group; | |
} | |
tr, | |
img { | |
page-break-inside: avoid; | |
} | |
img { | |
max-width: 100% !important; | |
} | |
@page { | |
margin: 2cm .5cm; | |
} | |
p, | |
h2, | |
h3 { | |
orphans: 3; | |
widows: 3; | |
} | |
h2, | |
h3 { | |
page-break-after: avoid; | |
} | |
.navbar { | |
display: none; | |
} | |
.table td, | |
.table th { | |
background-color: #fff !important; | |
} | |
.btn > .caret, | |
.dropup > .btn > .caret { | |
border-top-color: #000 !important; | |
} | |
.label { | |
border: 1px solid #000; | |
} | |
.table { | |
border-collapse: collapse !important; | |
} | |
.table-bordered th, | |
.table-bordered td { | |
border: 1px solid #ddd !important; | |
} | |
} | |
* { | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
html { | |
font-size: 62.5%; | |
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); | |
} | |
body { | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
font-size: 14px; | |
line-height: 1.428571429; | |
color: #333333; | |
background-color: #ffffff; | |
} | |
input, | |
button, | |
select, | |
textarea { | |
font-family: inherit; | |
font-size: inherit; | |
line-height: inherit; | |
} | |
a { | |
color: #428bca; | |
text-decoration: none; | |
} | |
a:hover, | |
a:focus { | |
color: #2a6496; | |
text-decoration: underline; | |
} | |
a:focus { | |
outline: thin dotted #333; | |
outline: 5px auto -webkit-focus-ring-color; | |
outline-offset: -2px; | |
} | |
img { | |
vertical-align: middle; | |
} | |
.img-responsive { | |
display: inline-block; | |
height: auto; | |
max-width: 100%; | |
} | |
.img-rounded { | |
border-radius: 6px; | |
} | |
.img-circle { | |
border-radius: 500px; | |
} | |
hr { | |
margin-top: 20px; | |
margin-bottom: 20px; | |
border: 0; | |
border-top: 1px solid #eeeeee; | |
} | |
p { | |
margin: 0 0 10px; | |
} | |
.lead { | |
margin-bottom: 20px; | |
font-size: 16.099999999999998px; | |
font-weight: 200; | |
line-height: 1.4; | |
} | |
@media (min-width: 768px) { | |
.lead { | |
font-size: 21px; | |
} | |
} | |
small { | |
font-size: 85%; | |
} | |
cite { | |
font-style: normal; | |
} | |
.text-muted { | |
color: #999999; | |
} | |
.text-primary { | |
color: #428bca; | |
} | |
.text-warning { | |
color: #c09853; | |
} | |
.text-danger { | |
color: #b94a48; | |
} | |
.text-success { | |
color: #468847; | |
} | |
.text-info { | |
color: #3a87ad; | |
} | |
.text-left { | |
text-align: left; | |
} | |
.text-right { | |
text-align: right; | |
} | |
.text-center { | |
text-align: center; | |
} | |
h1, | |
h2, | |
h3, | |
h4, | |
h5, | |
h6, | |
.h1, | |
.h2, | |
.h3, | |
.h4, | |
.h5, | |
.h6 { | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
font-weight: 500; | |
line-height: 1.1; | |
} | |
h1 small, | |
h2 small, | |
h3 small, | |
h4 small, | |
h5 small, | |
h6 small, | |
.h1 small, | |
.h2 small, | |
.h3 small, | |
.h4 small, | |
.h5 small, | |
.h6 small { | |
font-weight: normal; | |
line-height: 1; | |
color: #999999; | |
} | |
h1, | |
h2, | |
h3 { | |
margin-top: 20px; | |
margin-bottom: 10px; | |
} | |
h4, | |
h5, | |
h6 { | |
margin-top: 10px; | |
margin-bottom: 10px; | |
} | |
h1, | |
.h1 { | |
font-size: 38px; | |
} | |
h2, | |
.h2 { | |
font-size: 32px; | |
} | |
h3, | |
.h3 { | |
font-size: 24px; | |
} | |
h4, | |
.h4 { | |
font-size: 18px; | |
} | |
h5, | |
.h5 { | |
font-size: 14px; | |
} | |
h6, | |
.h6 { | |
font-size: 12px; | |
} | |
h1 small, | |
.h1 small { | |
font-size: 24px; | |
} | |
h2 small, | |
.h2 small { | |
font-size: 18px; | |
} | |
h3 small, | |
.h3 small, | |
h4 small, | |
.h4 small { | |
font-size: 14px; | |
} | |
.page-header { | |
padding-bottom: 9px; | |
margin: 40px 0 20px; | |
border-bottom: 1px solid #eeeeee; | |
} | |
ul, | |
ol { | |
margin-top: 0; | |
margin-bottom: 10px; | |
} | |
ul ul, | |
ol ul, | |
ul ol, | |
ol ol { | |
margin-bottom: 0; | |
} | |
.list-unstyled { | |
padding-left: 0; | |
list-style: none; | |
} | |
.list-inline { | |
padding-left: 0; | |
list-style: none; | |
} | |
.list-inline > li { | |
display: inline-block; | |
padding-right: 5px; | |
padding-left: 5px; | |
} | |
dl { | |
margin-bottom: 20px; | |
} | |
dt, | |
dd { | |
line-height: 1.428571429; | |
} | |
dt { | |
font-weight: bold; | |
} | |
dd { | |
margin-left: 0; | |
} | |
.dl-horizontal dt { | |
float: left; | |
width: 160px; | |
overflow: hidden; | |
clear: left; | |
text-align: right; | |
text-overflow: ellipsis; | |
white-space: nowrap; | |
} | |
.dl-horizontal dd { | |
margin-left: 180px; | |
} | |
.dl-horizontal dd:before, | |
.dl-horizontal dd:after { | |
display: table; | |
content: " "; | |
} | |
.dl-horizontal dd:after { | |
clear: both; | |
} | |
.dl-horizontal dd:before, | |
.dl-horizontal dd:after { | |
display: table; | |
content: " "; | |
} | |
.dl-horizontal dd:after { | |
clear: both; | |
} | |
abbr[title], | |
abbr[data-original-title] { | |
cursor: help; | |
border-bottom: 1px dotted #999999; | |
} | |
abbr.initialism { | |
font-size: 90%; | |
text-transform: uppercase; | |
} | |
blockquote { | |
padding: 10px 20px; | |
margin: 0 0 20px; | |
border-left: 5px solid #eeeeee; | |
} | |
blockquote p { | |
font-size: 17.5px; | |
font-weight: 300; | |
line-height: 1.25; | |
} | |
blockquote p:last-child { | |
margin-bottom: 0; | |
} | |
blockquote small { | |
display: block; | |
line-height: 1.428571429; | |
color: #999999; | |
} | |
blockquote small:before { | |
content: '\2014 \00A0'; | |
} | |
blockquote.pull-right { | |
float: right; | |
padding-right: 15px; | |
padding-left: 0; | |
border-right: 5px solid #eeeeee; | |
border-left: 0; | |
} | |
blockquote.pull-right p, | |
blockquote.pull-right small { | |
text-align: right; | |
} | |
blockquote.pull-right small:before { | |
content: ''; | |
} | |
blockquote.pull-right small:after { | |
content: '\00A0 \2014'; | |
} | |
q:before, | |
q:after, | |
blockquote:before, | |
blockquote:after { | |
content: ""; | |
} | |
address { | |
display: block; | |
margin-bottom: 20px; | |
font-style: normal; | |
line-height: 1.428571429; | |
} | |
code, | |
pre { | |
font-family: Monaco, Menlo, Consolas, "Courier New", monospace; | |
} | |
code { | |
padding: 2px 4px; | |
font-size: 90%; | |
color: #c7254e; | |
white-space: nowrap; | |
background-color: #f9f2f4; | |
border-radius: 4px; | |
} | |
pre { | |
display: block; | |
padding: 9.5px; | |
margin: 0 0 10px; | |
font-size: 13px; | |
line-height: 1.428571429; | |
color: #333333; | |
word-break: break-all; | |
word-wrap: break-word; | |
background-color: #f5f5f5; | |
border: 1px solid #cccccc; | |
border-radius: 4px; | |
} | |
pre.prettyprint { | |
margin-bottom: 20px; | |
} | |
pre code { | |
padding: 0; | |
color: inherit; | |
white-space: pre-wrap; | |
background-color: transparent; | |
border: 0; | |
} | |
.pre-scrollable { | |
max-height: 340px; | |
overflow-y: scroll; | |
} | |
.container { | |
margin-right: auto; | |
margin-left: auto; | |
} | |
.container:before, | |
.container:after { | |
display: table; | |
content: " "; | |
} | |
.container:after { | |
clear: both; | |
} | |
.container:before, | |
.container:after { | |
display: table; | |
content: " "; | |
} | |
.container:after { | |
clear: both; | |
} | |
.row:before, | |
.row:after { | |
display: table; | |
content: " "; | |
} | |
.row:after { | |
clear: both; | |
} | |
.row:before, | |
.row:after { | |
display: table; | |
content: " "; | |
} | |
.row:after { | |
clear: both; | |
} | |
@media (min-width: 768px) { | |
.row { | |
margin-right: -15px; | |
margin-left: -15px; | |
} | |
} | |
.row .row { | |
margin-right: -15px; | |
margin-left: -15px; | |
} | |
.col-1, | |
.col-2, | |
.col-3, | |
.col-4, | |
.col-5, | |
.col-6, | |
.col-7, | |
.col-8, | |
.col-9, | |
.col-10, | |
.col-11, | |
.col-12, | |
.col-sm-1, | |
.col-sm-2, | |
.col-sm-3, | |
.col-sm-4, | |
.col-sm-5, | |
.col-sm-6, | |
.col-sm-7, | |
.col-sm-8, | |
.col-sm-9, | |
.col-sm-10, | |
.col-sm-11, | |
.col-sm-12, | |
.col-lg-1, | |
.col-lg-2, | |
.col-lg-3, | |
.col-lg-4, | |
.col-lg-5, | |
.col-lg-6, | |
.col-lg-7, | |
.col-lg-8, | |
.col-lg-9, | |
.col-lg-10, | |
.col-lg-11, | |
.col-lg-12 { | |
position: relative; | |
min-height: 1px; | |
padding-right: 15px; | |
padding-left: 15px; | |
} | |
.col-1, | |
.col-2, | |
.col-3, | |
.col-4, | |
.col-5, | |
.col-6, | |
.col-7, | |
.col-8, | |
.col-9, | |
.col-10, | |
.col-11, | |
.col-12 { | |
float: left; | |
} | |
.col-1 { | |
width: 8.333333333333332%; | |
} | |
.col-2 { | |
width: 16.666666666666664%; | |
} | |
.col-3 { | |
width: 25%; | |
} | |
.col-4 { | |
width: 33.33333333333333%; | |
} | |
.col-5 { | |
width: 41.66666666666667%; | |
} | |
.col-6 { | |
width: 50%; | |
} | |
.col-7 { | |
width: 58.333333333333336%; | |
} | |
.col-8 { | |
width: 66.66666666666666%; | |
} | |
.col-9 { | |
width: 75%; | |
} | |
.col-10 { | |
width: 83.33333333333334%; | |
} | |
.col-11 { | |
width: 91.66666666666666%; | |
} | |
.col-12 { | |
width: 100%; | |
} | |
@media (min-width: 768px) { | |
.container { | |
max-width: 728px; | |
} | |
.col-sm-1, | |
.col-sm-2, | |
.col-sm-3, | |
.col-sm-4, | |
.col-sm-5, | |
.col-sm-6, | |
.col-sm-7, | |
.col-sm-8, | |
.col-sm-9, | |
.col-sm-10, | |
.col-sm-11, | |
.col-sm-12 { | |
float: left; | |
} | |
.col-sm-1 { | |
width: 8.333333333333332%; | |
} | |
.col-sm-2 { | |
width: 16.666666666666664%; | |
} | |
.col-sm-3 { | |
width: 25%; | |
} | |
.col-sm-4 { | |
width: 33.33333333333333%; | |
} | |
.col-sm-5 { | |
width: 41.66666666666667%; | |
} | |
.col-sm-6 { | |
width: 50%; | |
} | |
.col-sm-7 { | |
width: 58.333333333333336%; | |
} | |
.col-sm-8 { | |
width: 66.66666666666666%; | |
} | |
.col-sm-9 { | |
width: 75%; | |
} | |
.col-sm-10 { | |
width: 83.33333333333334%; | |
} | |
.col-sm-11 { | |
width: 91.66666666666666%; | |
} | |
.col-sm-12 { | |
width: 100%; | |
} | |
.col-push-1 { | |
left: 8.333333333333332%; | |
} | |
.col-push-2 { | |
left: 16.666666666666664%; | |
} | |
.col-push-3 { | |
left: 25%; | |
} | |
.col-push-4 { | |
left: 33.33333333333333%; | |
} | |
.col-push-5 { | |
left: 41.66666666666667%; | |
} | |
.col-push-6 { | |
left: 50%; | |
} | |
.col-push-7 { | |
left: 58.333333333333336%; | |
} | |
.col-push-8 { | |
left: 66.66666666666666%; | |
} | |
.col-push-9 { | |
left: 75%; | |
} | |
.col-push-10 { | |
left: 83.33333333333334%; | |
} | |
.col-push-11 { | |
left: 91.66666666666666%; | |
} | |
.col-pull-1 { | |
right: 8.333333333333332%; | |
} | |
.col-pull-2 { | |
right: 16.666666666666664%; | |
} | |
.col-pull-3 { | |
right: 25%; | |
} | |
.col-pull-4 { | |
right: 33.33333333333333%; | |
} | |
.col-pull-5 { | |
right: 41.66666666666667%; | |
} | |
.col-pull-6 { | |
right: 50%; | |
} | |
.col-pull-7 { | |
right: 58.333333333333336%; | |
} | |
.col-pull-8 { | |
right: 66.66666666666666%; | |
} | |
.col-pull-9 { | |
right: 75%; | |
} | |
.col-pull-10 { | |
right: 83.33333333333334%; | |
} | |
.col-pull-11 { | |
right: 91.66666666666666%; | |
} | |
} | |
@media (min-width: 992px) { | |
.container { | |
max-width: 940px; | |
} | |
.col-lg-1, | |
.col-lg-2, | |
.col-lg-3, | |
.col-lg-4, | |
.col-lg-5, | |
.col-lg-6, | |
.col-lg-7, | |
.col-lg-8, | |
.col-lg-9, | |
.col-lg-10, | |
.col-lg-11, | |
.col-lg-12 { | |
float: left; | |
} | |
.col-lg-1 { | |
width: 8.333333333333332%; | |
} | |
.col-lg-2 { | |
width: 16.666666666666664%; | |
} | |
.col-lg-3 { | |
width: 25%; | |
} | |
.col-lg-4 { | |
width: 33.33333333333333%; | |
} | |
.col-lg-5 { | |
width: 41.66666666666667%; | |
} | |
.col-lg-6 { | |
width: 50%; | |
} | |
.col-lg-7 { | |
width: 58.333333333333336%; | |
} | |
.col-lg-8 { | |
width: 66.66666666666666%; | |
} | |
.col-lg-9 { | |
width: 75%; | |
} | |
.col-lg-10 { | |
width: 83.33333333333334%; | |
} | |
.col-lg-11 { | |
width: 91.66666666666666%; | |
} | |
.col-lg-12 { | |
width: 100%; | |
} | |
.col-offset-1 { | |
margin-left: 8.333333333333332%; | |
} | |
.col-offset-2 { | |
margin-left: 16.666666666666664%; | |
} | |
.col-offset-3 { | |
margin-left: 25%; | |
} | |
.col-offset-4 { | |
margin-left: 33.33333333333333%; | |
} | |
.col-offset-5 { | |
margin-left: 41.66666666666667%; | |
} | |
.col-offset-6 { | |
margin-left: 50%; | |
} | |
.col-offset-7 { | |
margin-left: 58.333333333333336%; | |
} | |
.col-offset-8 { | |
margin-left: 66.66666666666666%; | |
} | |
.col-offset-9 { | |
margin-left: 75%; | |
} | |
.col-offset-10 { | |
margin-left: 83.33333333333334%; | |
} | |
.col-offset-11 { | |
margin-left: 91.66666666666666%; | |
} | |
} | |
@media (min-width: 1200px) { | |
.container { | |
max-width: 1170px; | |
} | |
} | |
table { | |
max-width: 100%; | |
background-color: transparent; | |
} | |
th { | |
text-align: left; | |
} | |
.table { | |
width: 100%; | |
margin-bottom: 20px; | |
} | |
.table thead > tr > th, | |
.table tbody > tr > th, | |
.table tfoot > tr > th, | |
.table thead > tr > td, | |
.table tbody > tr > td, | |
.table tfoot > tr > td { | |
padding: 8px; | |
line-height: 1.428571429; | |
vertical-align: top; | |
border-top: 1px solid #dddddd; | |
} | |
.table thead > tr > th { | |
vertical-align: bottom; | |
} | |
.table caption + thead tr:first-child th, | |
.table colgroup + thead tr:first-child th, | |
.table thead:first-child tr:first-child th, | |
.table caption + thead tr:first-child td, | |
.table colgroup + thead tr:first-child td, | |
.table thead:first-child tr:first-child td { | |
border-top: 0; | |
} | |
.table tbody + tbody { | |
border-top: 2px solid #dddddd; | |
} | |
.table .table { | |
background-color: #ffffff; | |
} | |
.table-condensed thead > tr > th, | |
.table-condensed tbody > tr > th, | |
.table-condensed tfoot > tr > th, | |
.table-condensed thead > tr > td, | |
.table-condensed tbody > tr > td, | |
.table-condensed tfoot > tr > td { | |
padding: 5px; | |
} | |
.table-bordered { | |
border: 1px solid #dddddd; | |
} | |
.table-bordered > thead > tr > th, | |
.table-bordered > tbody > tr > th, | |
.table-bordered > tfoot > tr > th, | |
.table-bordered > thead > tr > td, | |
.table-bordered > tbody > tr > td, | |
.table-bordered > tfoot > tr > td { | |
border: 1px solid #dddddd; | |
} | |
.table-striped > tbody > tr:nth-child(odd) > td, | |
.table-striped > tbody > tr:nth-child(odd) > th { | |
background-color: #f9f9f9; | |
} | |
.table-hover > tbody > tr:hover > td, | |
.table-hover > tbody > tr:hover > th { | |
background-color: #f5f5f5; | |
} | |
table col[class^="col-"] { | |
display: table-column; | |
float: none; | |
} | |
table td[class^="col-"], | |
table th[class^="col-"] { | |
display: table-cell; | |
float: none; | |
} | |
.table > thead > tr > td.active, | |
.table > tbody > tr > td.active, | |
.table > tfoot > tr > td.active, | |
.table > thead > tr > th.active, | |
.table > tbody > tr > th.active, | |
.table > tfoot > tr > th.active, | |
.table > thead > tr.active > td, | |
.table > tbody > tr.active > td, | |
.table > tfoot > tr.active > td, | |
.table > thead > tr.active > th, | |
.table > tbody > tr.active > th, | |
.table > tfoot > tr.active > th { | |
background-color: #f5f5f5; | |
} | |
.table > thead > tr > td.success, | |
.table > tbody > tr > td.success, | |
.table > tfoot > tr > td.success, | |
.table > thead > tr > th.success, | |
.table > tbody > tr > th.success, | |
.table > tfoot > tr > th.success, | |
.table > thead > tr.success > td, | |
.table > tbody > tr.success > td, | |
.table > tfoot > tr.success > td, | |
.table > thead > tr.success > th, | |
.table > tbody > tr.success > th, | |
.table > tfoot > tr.success > th { | |
background-color: #dff0d8; | |
border-color: #d6e9c6; | |
} | |
.table > thead > tr > td.danger, | |
.table > tbody > tr > td.danger, | |
.table > tfoot > tr > td.danger, | |
.table > thead > tr > th.danger, | |
.table > tbody > tr > th.danger, | |
.table > tfoot > tr > th.danger, | |
.table > thead > tr.danger > td, | |
.table > tbody > tr.danger > td, | |
.table > tfoot > tr.danger > td, | |
.table > thead > tr.danger > th, | |
.table > tbody > tr.danger > th, | |
.table > tfoot > tr.danger > th { | |
background-color: #f2dede; | |
border-color: #eed3d7; | |
} | |
.table > thead > tr > td.warning, | |
.table > tbody > tr > td.warning, | |
.table > tfoot > tr > td.warning, | |
.table > thead > tr > th.warning, | |
.table > tbody > tr > th.warning, | |
.table > tfoot > tr > th.warning, | |
.table > thead > tr.warning > td, | |
.table > tbody > tr.warning > td, | |
.table > tfoot > tr.warning > td, | |
.table > thead > tr.warning > th, | |
.table > tbody > tr.warning > th, | |
.table > tfoot > tr.warning > th { | |
background-color: #fcf8e3; | |
border-color: #fbeed5; | |
} | |
.table-hover > tbody > tr > td.success:hover, | |
.table-hover > tbody > tr > th.success:hover, | |
.table-hover > tbody > tr.success:hover > td { | |
background-color: #d0e9c6; | |
border-color: #c9e2b3; | |
} | |
.table-hover > tbody > tr > td.danger:hover, | |
.table-hover > tbody > tr > th.danger:hover, | |
.table-hover > tbody > tr.danger:hover > td { | |
background-color: #ebcccc; | |
border-color: #e6c1c7; | |
} | |
.table-hover > tbody > tr > td.warning:hover, | |
.table-hover > tbody > tr > th.warning:hover, | |
.table-hover > tbody > tr.warning:hover > td { | |
background-color: #faf2cc; | |
border-color: #f8e5be; | |
} | |
fieldset { | |
padding: 0; | |
margin: 0; | |
border: 0; | |
} | |
legend { | |
display: block; | |
width: 100%; | |
padding: 0; | |
margin-bottom: 20px; | |
font-size: 21px; | |
line-height: inherit; | |
color: #333333; | |
border: 0; | |
border-bottom: 1px solid #e5e5e5; | |
} | |
label { | |
display: inline-block; | |
margin-bottom: 5px; | |
font-weight: bold; | |
} | |
input[type="search"] { | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
input[type="radio"], | |
input[type="checkbox"] { | |
margin: 4px 0 0; | |
margin-top: 1px \9; | |
/* IE8-9 */ | |
line-height: normal; | |
} | |
input[type="file"] { | |
display: block; | |
} | |
select[multiple], | |
select[size] { | |
height: auto; | |
} | |
select optgroup { | |
font-family: inherit; | |
font-size: inherit; | |
font-style: inherit; | |
} | |
input[type="file"]:focus, | |
input[type="radio"]:focus, | |
input[type="checkbox"]:focus { | |
outline: thin dotted #333; | |
outline: 5px auto -webkit-focus-ring-color; | |
outline-offset: -2px; | |
} | |
input[type="number"]::-webkit-outer-spin-button, | |
input[type="number"]::-webkit-inner-spin-button { | |
height: auto; | |
} | |
.form-control:-moz-placeholder { | |
color: #999999; | |
} | |
.form-control::-moz-placeholder { | |
color: #999999; | |
} | |
.form-control:-ms-input-placeholder { | |
color: #999999; | |
} | |
.form-control::-webkit-input-placeholder { | |
color: #999999; | |
} | |
.form-control { | |
display: block; | |
width: 100%; | |
height: 38px; | |
padding: 8px 12px; | |
font-size: 14px; | |
line-height: 1.428571429; | |
color: #555555; | |
vertical-align: middle; | |
background-color: #ffffff; | |
border: 1px solid #cccccc; | |
border-radius: 4px; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
-webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; | |
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; | |
} | |
.form-control:focus { | |
border-color: rgba(82, 168, 236, 0.8); | |
outline: 0; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); | |
} | |
.form-control[disabled], | |
.form-control[readonly], | |
fieldset[disabled] .form-control { | |
cursor: not-allowed; | |
background-color: #eeeeee; | |
} | |
textarea.form-control { | |
height: auto; | |
} | |
.form-group { | |
margin-bottom: 15px; | |
} | |
.radio, | |
.checkbox { | |
display: block; | |
min-height: 20px; | |
padding-left: 20px; | |
margin-top: 10px; | |
margin-bottom: 10px; | |
vertical-align: middle; | |
} | |
.radio label, | |
.checkbox label { | |
display: inline; | |
margin-bottom: 0; | |
font-weight: normal; | |
cursor: pointer; | |
} | |
.radio input[type="radio"], | |
.radio-inline input[type="radio"], | |
.checkbox input[type="checkbox"], | |
.checkbox-inline input[type="checkbox"] { | |
float: left; | |
margin-left: -20px; | |
} | |
.radio + .radio, | |
.checkbox + .checkbox { | |
margin-top: -5px; | |
} | |
.radio-inline, | |
.checkbox-inline { | |
display: inline-block; | |
padding-left: 20px; | |
margin-bottom: 0; | |
font-weight: normal; | |
vertical-align: middle; | |
cursor: pointer; | |
} | |
.radio-inline + .radio-inline, | |
.checkbox-inline + .checkbox-inline { | |
margin-top: 0; | |
margin-left: 10px; | |
} | |
.input-large { | |
height: 56px; | |
padding: 14px 16px; | |
font-size: 18px; | |
border-radius: 6px; | |
} | |
.input-small { | |
height: 30px; | |
padding: 5px 10px; | |
font-size: 12px; | |
border-radius: 3px; | |
} | |
select.input-large { | |
height: 56px; | |
line-height: 56px; | |
} | |
select.input-small { | |
height: 30px; | |
line-height: 30px; | |
} | |
textarea.input-large, | |
textarea.input-small { | |
height: auto; | |
} | |
.has-warning .help-block, | |
.has-warning .control-label { | |
color: #c09853; | |
} | |
.has-warning .form-control { | |
padding-right: 32px; | |
border-color: #c09853; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
} | |
.has-warning .form-control:focus { | |
border-color: #a47e3c; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; | |
} | |
.has-warning .input-group-addon { | |
color: #c09853; | |
background-color: #fcf8e3; | |
border-color: #c09853; | |
} | |
.has-error .help-block, | |
.has-error .control-label { | |
color: #b94a48; | |
} | |
.has-error .form-control { | |
padding-right: 32px; | |
border-color: #b94a48; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
} | |
.has-error .form-control:focus { | |
border-color: #953b39; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; | |
} | |
.has-error .input-group-addon { | |
color: #b94a48; | |
background-color: #f2dede; | |
border-color: #b94a48; | |
} | |
.has-success .help-block, | |
.has-success .control-label { | |
color: #468847; | |
} | |
.has-success .form-control { | |
padding-right: 32px; | |
border-color: #468847; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); | |
} | |
.has-success .form-control:focus { | |
border-color: #356635; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; | |
} | |
.has-success .input-group-addon { | |
color: #468847; | |
background-color: #dff0d8; | |
border-color: #468847; | |
} | |
.help-block { | |
display: block; | |
margin-top: 5px; | |
margin-bottom: 10px; | |
color: #737373; | |
} | |
.btn { | |
display: inline-block; | |
padding: 8px 12px; | |
margin-bottom: 0; | |
font-size: 14px; | |
font-weight: 500; | |
line-height: 1.428571429; | |
text-align: center; | |
white-space: nowrap; | |
vertical-align: middle; | |
cursor: pointer; | |
border: 1px solid transparent; | |
border-radius: 4px; | |
-webkit-user-select: none; | |
-moz-user-select: none; | |
-ms-user-select: none; | |
-o-user-select: none; | |
user-select: none; | |
} | |
.btn:focus { | |
outline: thin dotted #333; | |
outline: 5px auto -webkit-focus-ring-color; | |
outline-offset: -2px; | |
} | |
.btn:hover, | |
.btn:focus { | |
color: #ffffff; | |
text-decoration: none; | |
} | |
.btn:active, | |
.btn.active { | |
outline: 0; | |
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
} | |
.btn.disabled, | |
.btn[disabled], | |
fieldset[disabled] .btn { | |
pointer-events: none; | |
cursor: default; | |
opacity: 0.65; | |
filter: alpha(opacity=65); | |
-webkit-box-shadow: none; | |
box-shadow: none; | |
} | |
.btn-default { | |
color: #ffffff; | |
background-color: #474949; | |
border-color: #474949; | |
} | |
.btn-default:hover, | |
.btn-default:focus, | |
.btn-default:active, | |
.btn-default.active { | |
background-color: #3a3c3c; | |
border-color: #2e2f2f; | |
} | |
.btn-default.disabled, | |
.btn-default[disabled], | |
fieldset[disabled] .btn-default, | |
.btn-default.disabled:hover, | |
.btn-default[disabled]:hover, | |
fieldset[disabled] .btn-default:hover, | |
.btn-default.disabled:focus, | |
.btn-default[disabled]:focus, | |
fieldset[disabled] .btn-default:focus, | |
.btn-default.disabled:active, | |
.btn-default[disabled]:active, | |
fieldset[disabled] .btn-default:active, | |
.btn-default.disabled.active, | |
.btn-default[disabled].active, | |
fieldset[disabled] .btn-default.active { | |
background-color: #474949; | |
border-color: #474949; | |
} | |
.btn-primary { | |
color: #ffffff; | |
background-color: #428bca; | |
border-color: #428bca; | |
} | |
.btn-primary:hover, | |
.btn-primary:focus, | |
.btn-primary:active, | |
.btn-primary.active { | |
background-color: #357ebd; | |
border-color: #3071a9; | |
} | |
.btn-primary.disabled, | |
.btn-primary[disabled], | |
fieldset[disabled] .btn-primary, | |
.btn-primary.disabled:hover, | |
.btn-primary[disabled]:hover, | |
fieldset[disabled] .btn-primary:hover, | |
.btn-primary.disabled:focus, | |
.btn-primary[disabled]:focus, | |
fieldset[disabled] .btn-primary:focus, | |
.btn-primary.disabled:active, | |
.btn-primary[disabled]:active, | |
fieldset[disabled] .btn-primary:active, | |
.btn-primary.disabled.active, | |
.btn-primary[disabled].active, | |
fieldset[disabled] .btn-primary.active { | |
background-color: #428bca; | |
border-color: #428bca; | |
} | |
.btn-warning { | |
color: #ffffff; | |
background-color: #f0ad4e; | |
border-color: #f0ad4e; | |
} | |
.btn-warning:hover, | |
.btn-warning:focus, | |
.btn-warning:active, | |
.btn-warning.active { | |
background-color: #eea236; | |
border-color: #ec971f; | |
} | |
.btn-warning.disabled, | |
.btn-warning[disabled], | |
fieldset[disabled] .btn-warning, | |
.btn-warning.disabled:hover, | |
.btn-warning[disabled]:hover, | |
fieldset[disabled] .btn-warning:hover, | |
.btn-warning.disabled:focus, | |
.btn-warning[disabled]:focus, | |
fieldset[disabled] .btn-warning:focus, | |
.btn-warning.disabled:active, | |
.btn-warning[disabled]:active, | |
fieldset[disabled] .btn-warning:active, | |
.btn-warning.disabled.active, | |
.btn-warning[disabled].active, | |
fieldset[disabled] .btn-warning.active { | |
background-color: #f0ad4e; | |
border-color: #f0ad4e; | |
} | |
.btn-danger { | |
color: #ffffff; | |
background-color: #d9534f; | |
border-color: #d9534f; | |
} | |
.btn-danger:hover, | |
.btn-danger:focus, | |
.btn-danger:active, | |
.btn-danger.active { | |
background-color: #d43f3a; | |
border-color: #c9302c; | |
} | |
.btn-danger.disabled, | |
.btn-danger[disabled], | |
fieldset[disabled] .btn-danger, | |
.btn-danger.disabled:hover, | |
.btn-danger[disabled]:hover, | |
fieldset[disabled] .btn-danger:hover, | |
.btn-danger.disabled:focus, | |
.btn-danger[disabled]:focus, | |
fieldset[disabled] .btn-danger:focus, | |
.btn-danger.disabled:active, | |
.btn-danger[disabled]:active, | |
fieldset[disabled] .btn-danger:active, | |
.btn-danger.disabled.active, | |
.btn-danger[disabled].active, | |
fieldset[disabled] .btn-danger.active { | |
background-color: #d9534f; | |
border-color: #d9534f; | |
} | |
.btn-success { | |
color: #ffffff; | |
background-color: #5cb85c; | |
border-color: #5cb85c; | |
} | |
.btn-success:hover, | |
.btn-success:focus, | |
.btn-success:active, | |
.btn-success.active { | |
background-color: #4cae4c; | |
border-color: #449d44; | |
} | |
.btn-success.disabled, | |
.btn-success[disabled], | |
fieldset[disabled] .btn-success, | |
.btn-success.disabled:hover, | |
.btn-success[disabled]:hover, | |
fieldset[disabled] .btn-success:hover, | |
.btn-success.disabled:focus, | |
.btn-success[disabled]:focus, | |
fieldset[disabled] .btn-success:focus, | |
.btn-success.disabled:active, | |
.btn-success[disabled]:active, | |
fieldset[disabled] .btn-success:active, | |
.btn-success.disabled.active, | |
.btn-success[disabled].active, | |
fieldset[disabled] .btn-success.active { | |
background-color: #5cb85c; | |
border-color: #5cb85c; | |
} | |
.btn-info { | |
color: #ffffff; | |
background-color: #5bc0de; | |
border-color: #5bc0de; | |
} | |
.btn-info:hover, | |
.btn-info:focus, | |
.btn-info:active, | |
.btn-info.active { | |
background-color: #46b8da; | |
border-color: #31b0d5; | |
} | |
.btn-info.disabled, | |
.btn-info[disabled], | |
fieldset[disabled] .btn-info, | |
.btn-info.disabled:hover, | |
.btn-info[disabled]:hover, | |
fieldset[disabled] .btn-info:hover, | |
.btn-info.disabled:focus, | |
.btn-info[disabled]:focus, | |
fieldset[disabled] .btn-info:focus, | |
.btn-info.disabled:active, | |
.btn-info[disabled]:active, | |
fieldset[disabled] .btn-info:active, | |
.btn-info.disabled.active, | |
.btn-info[disabled].active, | |
fieldset[disabled] .btn-info.active { | |
background-color: #5bc0de; | |
border-color: #5bc0de; | |
} | |
.btn-link { | |
font-weight: normal; | |
color: #428bca; | |
cursor: pointer; | |
border-radius: 0; | |
} | |
.btn-link, | |
.btn-link:active, | |
.btn-link[disabled], | |
fieldset[disabled] .btn-link { | |
background-color: transparent; | |
-webkit-box-shadow: none; | |
box-shadow: none; | |
} | |
.btn-link, | |
.btn-link:hover, | |
.btn-link:focus, | |
.btn-link:active { | |
border-color: transparent; | |
} | |
.btn-link:hover, | |
.btn-link:focus { | |
color: #2a6496; | |
text-decoration: underline; | |
background-color: transparent; | |
} | |
.btn-link[disabled]:hover, | |
fieldset[disabled] .btn-link:hover, | |
.btn-link[disabled]:focus, | |
fieldset[disabled] .btn-link:focus { | |
color: #333333; | |
text-decoration: none; | |
} | |
.btn-large { | |
padding: 14px 16px; | |
font-size: 18px; | |
border-radius: 6px; | |
} | |
.btn-small, | |
.btn-mini { | |
padding: 5px 10px; | |
font-size: 12px; | |
line-height: 1.5; | |
border-radius: 3px; | |
} | |
.btn-mini { | |
padding: 3px 5px; | |
} | |
.btn-block { | |
display: block; | |
width: 100%; | |
padding-right: 0; | |
padding-left: 0; | |
} | |
.btn-block + .btn-block { | |
margin-top: 5px; | |
} | |
input[type="submit"].btn-block, | |
input[type="reset"].btn-block, | |
input[type="button"].btn-block { | |
width: 100%; | |
} | |
.fade { | |
opacity: 0; | |
-webkit-transition: opacity 0.15s linear; | |
transition: opacity 0.15s linear; | |
} | |
.fade.in { | |
opacity: 1; | |
} | |
.collapse { | |
display: none; | |
} | |
.collapse.in { | |
display: block; | |
} | |
.collapsing { | |
position: relative; | |
height: 0; | |
overflow: hidden; | |
-webkit-transition: height 0.35s ease; | |
transition: height 0.35s ease; | |
} | |
.input-group { | |
display: table; | |
border-collapse: separate; | |
} | |
.input-group.col { | |
float: none; | |
padding-right: 0; | |
padding-left: 0; | |
} | |
.input-group .form-control { | |
width: 100%; | |
margin-bottom: 0; | |
} | |
.input-group-addon, | |
.input-group-btn, | |
.input-group .form-control { | |
display: table-cell; | |
} | |
.input-group-addon:not(:first-child):not(:last-child), | |
.input-group-btn:not(:first-child):not(:last-child), | |
.input-group .form-control:not(:first-child):not(:last-child) { | |
border-radius: 0; | |
} | |
.input-group-addon, | |
.input-group-btn { | |
width: 1%; | |
white-space: nowrap; | |
vertical-align: middle; | |
} | |
.input-group-addon { | |
padding: 8px 12px; | |
font-size: 14px; | |
font-weight: normal; | |
line-height: 1.428571429; | |
text-align: center; | |
background-color: #eeeeee; | |
border: 1px solid #cccccc; | |
border-radius: 4px; | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
} | |
.input-group-addon.input-small { | |
padding: 5px 10px; | |
font-size: 12px; | |
border-radius: 3px; | |
} | |
.input-group-addon.input-large { | |
padding: 14px 16px; | |
font-size: 18px; | |
border-radius: 6px; | |
} | |
.input-group-addon input[type="radio"], | |
.input-group-addon input[type="checkbox"] { | |
margin-top: 0; | |
} | |
.input-group .form-control:first-child, | |
.input-group-addon:first-child, | |
.input-group-btn:first-child > .btn, | |
.input-group-btn:first-child > .dropdown-toggle, | |
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { | |
border-top-right-radius: 0; | |
border-bottom-right-radius: 0; | |
} | |
.input-group-addon:first-child { | |
border-right: 0; | |
} | |
.input-group .form-control:last-child, | |
.input-group-addon:last-child, | |
.input-group-btn:last-child > .btn, | |
.input-group-btn:last-child > .dropdown-toggle, | |
.input-group-btn:first-child > .btn:not(:first-child) { | |
border-bottom-left-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.input-group-addon:last-child { | |
border-left: 0; | |
} | |
.input-group-btn { | |
position: relative; | |
white-space: nowrap; | |
} | |
.input-group-btn > .btn { | |
position: relative; | |
} | |
.input-group-btn > .btn + .btn { | |
margin-left: -4px; | |
} | |
.input-group-btn > .btn:hover, | |
.input-group-btn > .btn:active { | |
z-index: 2; | |
} | |
.form-inline .form-control, | |
.form-inline .radio, | |
.form-inline .checkbox { | |
display: inline-block; | |
} | |
.form-inline .radio, | |
.form-inline .checkbox { | |
margin-top: 0; | |
margin-bottom: 0; | |
} | |
.form-horizontal .control-label { | |
padding-top: 9px; | |
} | |
.form-horizontal .form-group:before, | |
.form-horizontal .form-group:after { | |
display: table; | |
content: " "; | |
} | |
.form-horizontal .form-group:after { | |
clear: both; | |
} | |
.form-horizontal .form-group:before, | |
.form-horizontal .form-group:after { | |
display: table; | |
content: " "; | |
} | |
.form-horizontal .form-group:after { | |
clear: both; | |
} | |
@media (min-width: 768px) { | |
.form-horizontal .form-group { | |
margin-right: -15px; | |
margin-left: -15px; | |
} | |
} | |
.form-horizontal .form-group .row { | |
margin-right: -15px; | |
margin-left: -15px; | |
} | |
@media (min-width: 768px) { | |
.form-horizontal .control-label { | |
text-align: right; | |
} | |
} | |
.caret { | |
display: inline-block; | |
width: 0; | |
height: 0; | |
margin-left: 2px; | |
vertical-align: middle; | |
border-top: 4px solid #000000; | |
border-right: 4px solid transparent; | |
border-left: 4px solid transparent; | |
content: ""; | |
} | |
.dropdown-menu { | |
position: absolute; | |
top: 100%; | |
left: 0; | |
z-index: 1000; | |
display: none; | |
float: left; | |
min-width: 160px; | |
padding: 5px 0; | |
margin: 2px 0 0; | |
list-style: none; | |
background-color: #ffffff; | |
border: 1px solid #cccccc; | |
border: 1px solid rgba(0, 0, 0, 0.15); | |
border-radius: 4px; | |
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); | |
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); | |
background-clip: padding-box; | |
} | |
.dropdown-menu.pull-right { | |
right: 0; | |
left: auto; | |
} | |
.dropdown-menu .divider { | |
height: 1px; | |
margin: 9px 0; | |
overflow: hidden; | |
background-color: #e5e5e5; | |
} | |
.dropdown-menu > li > a { | |
display: block; | |
padding: 3px 20px; | |
clear: both; | |
font-weight: normal; | |
line-height: 1.428571429; | |
color: #333333; | |
white-space: nowrap; | |
} | |
.dropdown-menu > li > a:hover, | |
.dropdown-menu > li > a:focus { | |
color: #ffffff; | |
text-decoration: none; | |
background-color: #357ebd; | |
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); | |
background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); | |
background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); | |
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); | |
} | |
.dropdown-menu > .active > a, | |
.dropdown-menu > .active > a:hover, | |
.dropdown-menu > .active > a:focus { | |
color: #ffffff; | |
text-decoration: none; | |
background-color: #357ebd; | |
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); | |
background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); | |
background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); | |
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); | |
background-repeat: repeat-x; | |
outline: 0; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); | |
} | |
.dropdown-menu > .disabled > a, | |
.dropdown-menu > .disabled > a:hover, | |
.dropdown-menu > .disabled > a:focus { | |
color: #999999; | |
} | |
.dropdown-menu > .disabled > a:hover, | |
.dropdown-menu > .disabled > a:focus { | |
text-decoration: none; | |
cursor: not-allowed; | |
background-color: transparent; | |
background-image: none; | |
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); | |
} | |
.open > .dropdown-menu { | |
display: block; | |
} | |
.open > a { | |
outline: 0; | |
} | |
.dropdown-header { | |
display: block; | |
padding: 3px 20px; | |
font-size: 12px; | |
line-height: 1.428571429; | |
color: #999999; | |
} | |
.dropdown-backdrop { | |
position: fixed; | |
top: 0; | |
right: 0; | |
bottom: 0; | |
left: 0; | |
z-index: 990; | |
} | |
.pull-right > .dropdown-menu { | |
right: 0; | |
left: auto; | |
} | |
.dropup .caret, | |
.navbar-fixed-bottom .dropdown .caret { | |
border-top: 0; | |
border-bottom: 4px solid #000000; | |
content: ""; | |
} | |
.dropup .dropdown-menu, | |
.navbar-fixed-bottom .dropdown .dropdown-menu { | |
top: auto; | |
bottom: 100%; | |
margin-bottom: 1px; | |
} | |
.list-group { | |
padding-left: 0; | |
margin-bottom: 20px; | |
} | |
.list-group-item { | |
position: relative; | |
display: block; | |
padding: 10px 30px 10px 15px; | |
margin-bottom: -1px; | |
background-color: #ffffff; | |
border: 1px solid #dddddd; | |
} | |
.list-group-item:first-child { | |
border-top-right-radius: 4px; | |
border-top-left-radius: 4px; | |
} | |
.list-group-item:last-child { | |
margin-bottom: 0; | |
border-bottom-right-radius: 4px; | |
border-bottom-left-radius: 4px; | |
} | |
.list-group-item > .badge { | |
float: right; | |
margin-right: -15px; | |
} | |
.list-group-item-heading { | |
margin-top: 0; | |
margin-bottom: 5px; | |
} | |
.list-group-item-text { | |
margin-bottom: 0; | |
line-height: 1.3; | |
} | |
a.list-group-item .list-group-item-heading { | |
color: #333333; | |
} | |
a.list-group-item .list-group-item-text { | |
color: #555555; | |
} | |
a.list-group-item:hover, | |
a.list-group-item:focus { | |
text-decoration: none; | |
background-color: #f5f5f5; | |
} | |
a.list-group-item.active { | |
z-index: 2; | |
color: #ffffff; | |
background-color: #428bca; | |
border-color: #428bca; | |
} | |
a.list-group-item.active .list-group-item-heading { | |
color: inherit; | |
} | |
a.list-group-item.active .list-group-item-text { | |
color: #e1edf7; | |
} | |
.panel { | |
padding: 15px; | |
margin-bottom: 20px; | |
background-color: #ffffff; | |
border: 1px solid #dddddd; | |
border-radius: 4px; | |
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); | |
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); | |
} | |
.panel-heading { | |
padding: 10px 15px; | |
margin: -15px -15px 15px; | |
background-color: #f5f5f5; | |
border-bottom: 1px solid #dddddd; | |
border-top-right-radius: 3px; | |
border-top-left-radius: 3px; | |
} | |
.panel-title { | |
margin-top: 0; | |
margin-bottom: 0; | |
font-size: 17.5px; | |
font-weight: 500; | |
} | |
.panel-footer { | |
padding: 10px 15px; | |
margin: 15px -15px -15px; | |
background-color: #f5f5f5; | |
border-top: 1px solid #dddddd; | |
border-bottom-right-radius: 3px; | |
border-bottom-left-radius: 3px; | |
} | |
.panel-primary { | |
border-color: #428bca; | |
} | |
.panel-primary .panel-heading { | |
color: #ffffff; | |
background-color: #428bca; | |
border-color: #428bca; | |
} | |
.panel-success { | |
border-color: #d6e9c6; | |
} | |
.panel-success .panel-heading { | |
color: #468847; | |
background-color: #dff0d8; | |
border-color: #d6e9c6; | |
} | |
.panel-warning { | |
border-color: #fbeed5; | |
} | |
.panel-warning .panel-heading { | |
color: #c09853; | |
background-color: #fcf8e3; | |
border-color: #fbeed5; | |
} | |
.panel-danger { | |
border-color: #eed3d7; | |
} | |
.panel-danger .panel-heading { | |
color: #b94a48; | |
background-color: #f2dede; | |
border-color: #eed3d7; | |
} | |
.panel-info { | |
border-color: #bce8f1; | |
} | |
.panel-info .panel-heading { | |
color: #3a87ad; | |
background-color: #d9edf7; | |
border-color: #bce8f1; | |
} | |
.list-group-flush { | |
margin: 15px -15px -15px; | |
} | |
.list-group-flush .list-group-item { | |
border-width: 1px 0; | |
} | |
.list-group-flush .list-group-item:first-child { | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.list-group-flush .list-group-item:last-child { | |
border-bottom: 0; | |
} | |
.well { | |
min-height: 20px; | |
padding: 19px; | |
margin-bottom: 20px; | |
background-color: #f5f5f5; | |
border: 1px solid #e3e3e3; | |
border-radius: 4px; | |
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); | |
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); | |
} | |
.well blockquote { | |
border-color: #ddd; | |
border-color: rgba(0, 0, 0, 0.15); | |
} | |
.well-large { | |
padding: 24px; | |
border-radius: 6px; | |
} | |
.well-small { | |
padding: 9px; | |
border-radius: 3px; | |
} | |
.close { | |
float: right; | |
font-size: 21px; | |
font-weight: bold; | |
line-height: 1; | |
color: #000000; | |
text-shadow: 0 1px 0 #ffffff; | |
opacity: 0.2; | |
filter: alpha(opacity=20); | |
} | |
.close:hover, | |
.close:focus { | |
color: #000000; | |
text-decoration: none; | |
cursor: pointer; | |
opacity: 0.5; | |
filter: alpha(opacity=50); | |
} | |
button.close { | |
padding: 0; | |
cursor: pointer; | |
background: transparent; | |
border: 0; | |
-webkit-appearance: none; | |
} | |
.nav { | |
padding-left: 0; | |
margin-bottom: 0; | |
list-style: none; | |
} | |
.nav:before, | |
.nav:after { | |
display: table; | |
content: " "; | |
} | |
.nav:after { | |
clear: both; | |
} | |
.nav:before, | |
.nav:after { | |
display: table; | |
content: " "; | |
} | |
.nav:after { | |
clear: both; | |
} | |
.nav > li { | |
position: relative; | |
display: block; | |
} | |
.nav > li > a { | |
position: relative; | |
display: block; | |
padding: 10px 15px; | |
} | |
.nav > li > a:hover, | |
.nav > li > a:focus { | |
text-decoration: none; | |
background-color: #eeeeee; | |
} | |
.nav > li.disabled > a { | |
color: #999999; | |
} | |
.nav > li.disabled > a:hover, | |
.nav > li.disabled > a:focus { | |
color: #999999; | |
text-decoration: none; | |
cursor: not-allowed; | |
background-color: transparent; | |
} | |
.nav.open > a, | |
.nav.open > a:hover, | |
.nav.open > a:focus { | |
color: #ffffff; | |
background-color: #428bca; | |
border-color: #428bca; | |
} | |
.nav.open > a .caret, | |
.nav.open > a:hover .caret, | |
.nav.open > a:focus .caret { | |
border-top-color: #ffffff; | |
border-bottom-color: #ffffff; | |
} | |
.nav > .pull-right { | |
float: right; | |
} | |
.nav .nav-divider { | |
height: 1px; | |
margin: 9px 0; | |
overflow: hidden; | |
background-color: #e5e5e5; | |
} | |
.nav-tabs { | |
border-bottom: 1px solid #dddddd; | |
} | |
.nav-tabs > li { | |
float: left; | |
margin-bottom: -1px; | |
} | |
.nav-tabs > li > a { | |
margin-right: 2px; | |
line-height: 1.428571429; | |
border: 1px solid transparent; | |
border-radius: 4px 4px 0 0; | |
} | |
.nav-tabs > li > a:hover { | |
border-color: #eeeeee; | |
} | |
.nav-tabs > li.active > a, | |
.nav-tabs > li.active > a:hover, | |
.nav-tabs > li.active > a:focus { | |
color: #555555; | |
cursor: default; | |
background-color: #ffffff; | |
border: 1px solid #dddddd; | |
border-bottom-color: transparent; | |
} | |
.nav-tabs.nav-justified { | |
width: 100%; | |
border-bottom: 0; | |
} | |
.nav-tabs.nav-justified > li { | |
display: table-cell; | |
float: none; | |
width: 1%; | |
} | |
.nav-tabs.nav-justified > li > a { | |
text-align: center; | |
} | |
.nav-tabs.nav-justified > li > a { | |
margin-right: 0; | |
border-bottom: 1px solid #dddddd; | |
} | |
.nav-tabs.nav-justified > .active > a { | |
border-bottom-color: #ffffff; | |
} | |
.nav-pills > li { | |
float: left; | |
} | |
.nav-pills > li > a { | |
border-radius: 5px; | |
} | |
.nav-pills > li + li { | |
margin-left: 2px; | |
} | |
.nav-pills > li.active > a, | |
.nav-pills > li.active > a:hover, | |
.nav-pills > li.active > a:focus { | |
color: #ffffff; | |
background-color: #428bca; | |
} | |
.nav-stacked > li { | |
float: none; | |
} | |
.nav-stacked > li + li { | |
margin-top: 2px; | |
margin-left: 0; | |
} | |
.nav-justified { | |
width: 100%; | |
} | |
.nav-justified > li { | |
display: table-cell; | |
float: none; | |
width: 1%; | |
} | |
.nav-justified > li > a { | |
text-align: center; | |
} | |
.nav-tabs-justified { | |
border-bottom: 0; | |
} | |
.nav-tabs-justified > li > a { | |
margin-right: 0; | |
border-bottom: 1px solid #dddddd; | |
} | |
.nav-tabs-justified > .active > a { | |
border-bottom-color: #ffffff; | |
} | |
.tabbable:before, | |
.tabbable:after { | |
display: table; | |
content: " "; | |
} | |
.tabbable:after { | |
clear: both; | |
} | |
.tabbable:before, | |
.tabbable:after { | |
display: table; | |
content: " "; | |
} | |
.tabbable:after { | |
clear: both; | |
} | |
.tab-content > .tab-pane, | |
.pill-content > .pill-pane { | |
display: none; | |
} | |
.tab-content > .active, | |
.pill-content > .active { | |
display: block; | |
} | |
.nav .caret { | |
border-top-color: #428bca; | |
border-bottom-color: #428bca; | |
} | |
.nav a:hover .caret { | |
border-top-color: #2a6496; | |
border-bottom-color: #2a6496; | |
} | |
.nav-tabs .dropdown-menu { | |
margin-top: -1px; | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.navbar { | |
position: relative; | |
min-height: 50px; | |
padding-right: 15px; | |
padding-left: 15px; | |
margin-bottom: 20px; | |
background-color: #eeeeee; | |
border-radius: 4px; | |
} | |
.navbar:before, | |
.navbar:after { | |
display: table; | |
content: " "; | |
} | |
.navbar:after { | |
clear: both; | |
} | |
.navbar:before, | |
.navbar:after { | |
display: table; | |
content: " "; | |
} | |
.navbar:after { | |
clear: both; | |
} | |
.navbar-nav { | |
margin-top: 10px; | |
margin-bottom: 15px; | |
} | |
.navbar-nav > li > a { | |
padding-top: 15px; | |
padding-bottom: 15px; | |
line-height: 20px; | |
color: #777777; | |
border-radius: 4px; | |
} | |
.navbar-nav > li > a:hover, | |
.navbar-nav > li > a:focus { | |
color: #333333; | |
background-color: transparent; | |
} | |
.navbar-nav > .active > a, | |
.navbar-nav > .active > a:hover, | |
.navbar-nav > .active > a:focus { | |
color: #555555; | |
background-color: #d5d5d5; | |
} | |
.navbar-nav > .disabled > a, | |
.navbar-nav > .disabled > a:hover, | |
.navbar-nav > .disabled > a:focus { | |
color: #cccccc; | |
background-color: transparent; | |
} | |
.navbar-nav.pull-right { | |
width: 100%; | |
} | |
.navbar-static-top { | |
border-radius: 0; | |
} | |
.navbar-fixed-top, | |
.navbar-fixed-bottom { | |
position: fixed; | |
right: 0; | |
left: 0; | |
z-index: 1030; | |
border-radius: 0; | |
} | |
.navbar-fixed-top { | |
top: 0; | |
} | |
.navbar-fixed-bottom { | |
bottom: 0; | |
margin-bottom: 0; | |
} | |
.navbar-brand { | |
display: block; | |
max-width: 200px; | |
padding: 15px 15px; | |
margin-right: auto; | |
margin-left: auto; | |
font-size: 18px; | |
font-weight: 500; | |
line-height: 20px; | |
color: #777777; | |
text-align: center; | |
} | |
.navbar-brand:hover, | |
.navbar-brand:focus { | |
color: #5e5e5e; | |
text-decoration: none; | |
background-color: transparent; | |
} | |
.navbar-toggle { | |
position: absolute; | |
top: 9px; | |
right: 10px; | |
width: 48px; | |
height: 32px; | |
padding: 8px 12px; | |
background-color: transparent; | |
border: 1px solid #dddddd; | |
border-radius: 4px; | |
} | |
.navbar-toggle:hover, | |
.navbar-toggle:focus { | |
background-color: #dddddd; | |
} | |
.navbar-toggle .icon-bar { | |
display: block; | |
width: 22px; | |
height: 2px; | |
background-color: #cccccc; | |
border-radius: 1px; | |
} | |
.navbar-toggle .icon-bar + .icon-bar { | |
margin-top: 4px; | |
} | |
.navbar-form { | |
margin-top: 6px; | |
margin-bottom: 6px; | |
} | |
.navbar-form .form-control, | |
.navbar-form .radio, | |
.navbar-form .checkbox { | |
display: inline-block; | |
} | |
.navbar-form .radio, | |
.navbar-form .checkbox { | |
margin-top: 0; | |
margin-bottom: 0; | |
} | |
.navbar-nav > li > .dropdown-menu { | |
margin-top: 0; | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { | |
border-bottom-right-radius: 0; | |
border-bottom-left-radius: 0; | |
} | |
.navbar-nav > .dropdown > a:hover .caret, | |
.navbar-nav > .dropdown > a:focus .caret { | |
border-top-color: #333333; | |
border-bottom-color: #333333; | |
} | |
.navbar-nav > .open > a, | |
.navbar-nav > .open > a:hover, | |
.navbar-nav > .open > a:focus { | |
color: #555555; | |
background-color: #d5d5d5; | |
} | |
.navbar-nav > .open > a .caret, | |
.navbar-nav > .open > a:hover .caret, | |
.navbar-nav > .open > a:focus .caret { | |
border-top-color: #555555; | |
border-bottom-color: #555555; | |
} | |
.navbar-nav > .dropdown > a .caret { | |
border-top-color: #777777; | |
border-bottom-color: #777777; | |
} | |
.navbar-nav.pull-right > li > .dropdown-menu, | |
.navbar-nav > li > .dropdown-menu.pull-right { | |
right: 0; | |
left: auto; | |
} | |
.navbar-inverse { | |
background-color: #222222; | |
} | |
.navbar-inverse .navbar-brand { | |
color: #999999; | |
} | |
.navbar-inverse .navbar-brand:hover, | |
.navbar-inverse .navbar-brand:focus { | |
color: #ffffff; | |
background-color: transparent; | |
} | |
.navbar-inverse .navbar-text { | |
color: #999999; | |
} | |
.navbar-inverse .navbar-nav > li > a { | |
color: #999999; | |
} | |
.navbar-inverse .navbar-nav > li > a:hover, | |
.navbar-inverse .navbar-nav > li > a:focus { | |
color: #ffffff; | |
background-color: transparent; | |
} | |
.navbar-inverse .navbar-nav > .active > a, | |
.navbar-inverse .navbar-nav > .active > a:hover, | |
.navbar-inverse .navbar-nav > .active > a:focus { | |
color: #ffffff; | |
background-color: #080808; | |
} | |
.navbar-inverse .navbar-nav > .disabled > a, | |
.navbar-inverse .navbar-nav > .disabled > a:hover, | |
.navbar-inverse .navbar-nav > .disabled > a:focus { | |
color: #444444; | |
background-color: transparent; | |
} | |
.navbar-inverse .navbar-toggle { | |
border-color: #333333; | |
} | |
.navbar-inverse .navbar-toggle:hover, | |
.navbar-inverse .navbar-toggle:focus { | |
background-color: #333333; | |
} | |
.navbar-inverse .navbar-toggle .icon-bar { | |
background-color: #ffffff; | |
} | |
.navbar-inverse .navbar-nav > .open > a, | |
.navbar-inverse .navbar-nav > .open > a:hover, | |
.navbar-inverse .navbar-nav > .open > a:focus { | |
color: #ffffff; | |
background-color: #080808; | |
} | |
.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { | |
border-top-color: #ffffff; | |
border-bottom-color: #ffffff; | |
} | |
.navbar-inverse .navbar-nav > .dropdown > a .caret { | |
border-top-color: #999999; | |
border-bottom-color: #999999; | |
} | |
.navbar-inverse .navbar-nav > .open > a .caret, | |
.navbar-inverse .navbar-nav > .open > a:hover .caret, | |
.navbar-inverse .navbar-nav > .open > a:focus .caret { | |
border-top-color: #ffffff; | |
border-bottom-color: #ffffff; | |
} | |
@media screen and (min-width: 768px) { | |
.navbar-brand { | |
float: left; | |
margin-right: 5px; | |
margin-left: -15px; | |
} | |
.navbar-nav { | |
float: left; | |
margin-top: 0; | |
margin-bottom: 0; | |
} | |
.navbar-nav > li { | |
float: left; | |
} | |
.navbar-nav > li > a { | |
border-radius: 0; | |
} | |
.navbar-nav.pull-right { | |
float: right; | |
width: auto; | |
} | |
.navbar-toggle { | |
position: relative; | |
top: auto; | |
left: auto; | |
display: none; | |
} | |
.nav-collapse.collapse { | |
display: block !important; | |
height: auto !important; | |
overflow: visible !important; | |
} | |
} | |
.navbar-btn { | |
margin-top: 6px; | |
} | |
.navbar-text { | |
margin-top: 15px; | |
margin-bottom: 15px; | |
} | |
.navbar-link { | |
color: #777777; | |
} | |
.navbar-link:hover { | |
color: #333333; | |
} | |
.navbar-inverse .navbar-link { | |
color: #999999; | |
} | |
.navbar-inverse .navbar-link:hover { | |
color: #ffffff; | |
} | |
.btn .caret { | |
border-top-color: #ffffff; | |
} | |
.dropup .btn .caret { | |
border-bottom-color: #ffffff; | |
} | |
.btn-group, | |
.btn-group-vertical { | |
position: relative; | |
display: inline-block; | |
vertical-align: middle; | |
} | |
.btn-group > .btn, | |
.btn-group-vertical > .btn { | |
position: relative; | |
float: left; | |
} | |
.btn-group > .btn:hover, | |
.btn-group-vertical > .btn:hover, | |
.btn-group > .btn:focus, | |
.btn-group-vertical > .btn:focus, | |
.btn-group > .btn:active, | |
.btn-group-vertical > .btn:active { | |
z-index: 2; | |
} | |
.btn-group .btn + .btn { | |
margin-left: -1px; | |
} | |
.btn-toolbar:before, | |
.btn-toolbar:after { | |
display: table; | |
content: " "; | |
} | |
.btn-toolbar:after { | |
clear: both; | |
} | |
.btn-toolbar:before, | |
.btn-toolbar:after { | |
display: table; | |
content: " "; | |
} | |
.btn-toolbar:after { | |
clear: both; | |
} | |
.btn-toolbar .btn-group { | |
float: left; | |
} | |
.btn-toolbar > .btn + .btn, | |
.btn-toolbar > .btn-group + .btn, | |
.btn-toolbar > .btn + .btn-group, | |
.btn-toolbar > .btn-group + .btn-group { | |
margin-left: 5px; | |
} | |
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { | |
border-radius: 0; | |
} | |
.btn-group > .btn:first-child { | |
margin-left: 0; | |
} | |
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { | |
border-top-right-radius: 0; | |
border-bottom-right-radius: 0; | |
} | |
.btn-group > .btn:last-child:not(:first-child), | |
.btn-group > .dropdown-toggle:not(:first-child) { | |
border-bottom-left-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.btn-group > .btn-group { | |
float: left; | |
} | |
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { | |
border-radius: 0; | |
} | |
.btn-group > .btn-group:first-child > .btn:last-child, | |
.btn-group > .btn-group:first-child > .dropdown-toggle { | |
border-top-right-radius: 0; | |
border-bottom-right-radius: 0; | |
} | |
.btn-group > .btn-group:last-child > .btn:first-child { | |
border-bottom-left-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.btn-group .dropdown-toggle:active, | |
.btn-group.open .dropdown-toggle { | |
outline: 0; | |
} | |
.btn-group > .btn + .dropdown-toggle { | |
padding-right: 8px; | |
padding-left: 8px; | |
} | |
.btn-group > .btn-large + .dropdown-toggle { | |
padding-right: 12px; | |
padding-left: 12px; | |
} | |
.btn-group.open .dropdown-toggle { | |
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | |
} | |
.btn .caret { | |
margin-left: 0; | |
} | |
.btn-large .caret { | |
border-width: 5px; | |
} | |
.dropup .btn-large .caret { | |
border-bottom-width: 5px; | |
} | |
.btn-group-vertical > .btn { | |
display: block; | |
float: none; | |
width: 100%; | |
max-width: 100%; | |
} | |
.btn-group-vertical > .btn + .btn { | |
margin-top: -1px; | |
} | |
.btn-group-vertical .btn:not(:first-child):not(:last-child) { | |
border-radius: 0; | |
} | |
.btn-group-vertical .btn:first-child { | |
border-bottom-right-radius: 0; | |
border-bottom-left-radius: 0; | |
} | |
.btn-group-vertical .btn:last-child { | |
border-top-right-radius: 0; | |
border-top-left-radius: 0; | |
} | |
.btn-group-justified { | |
display: table; | |
width: 100%; | |
} | |
.btn-group-justified .btn { | |
display: table-cell; | |
float: none; | |
width: 1%; | |
} | |
.btn-group[data-toggle="buttons"] > .btn > input[type="radio"], | |
.btn-group[data-toggle="buttons"] > .btn > input[type="checkbox"] { | |
display: none; | |
} | |
.breadcrumb { | |
padding: 8px 15px; | |
margin-bottom: 20px; | |
list-style: none; | |
background-color: #f5f5f5; | |
border-radius: 4px; | |
} | |
.breadcrumb > li { | |
display: inline-block; | |
} | |
.breadcrumb > li + li:before { | |
padding: 0 5px; | |
color: #cccccc; | |
content: "/\00a0"; | |
} | |
.breadcrumb > .active { | |
color: #999999; | |
} | |
.pagination { | |
display: inline-block; | |
padding-left: 0; | |
margin: 20px 0; | |
border-radius: 4px; | |
} | |
.pagination > li { | |
display: inline; | |
} | |
.pagination > li > a, | |
.pagination > li > span { | |
float: left; | |
padding: 4px 12px; | |
line-height: 1.428571429; | |
text-decoration: none; | |
background-color: #ffffff; | |
border: 1px solid #dddddd; | |
border-left-width: 0; | |
} | |
.pagination > li:first-child > a, | |
.pagination > li:first-child > span { | |
border-left-width: 1px; | |
border-bottom-left-radius: 4px; | |
border-top-left-radius: 4px; | |
} | |
.pagination > li:last-child > a, | |
.pagination > li:last-child > span { | |
border-top-right-radius: 4px; | |
border-bottom-right-radius: 4px; | |
} | |
.pagination > li > a:hover, | |
.pagination > li > a:focus, | |
.pagination > .active > a, | |
.pagination > .active > span { | |
background-color: #f5f5f5; | |
} | |
.pagination > .active > a, | |
.pagination > .active > span { | |
color: #999999; | |
cursor: default; | |
} | |
.pagination > .disabled > span, | |
.pagination > .disabled > a, | |
.pagination > .disabled > a:hover, | |
.pagination > .disabled > a:focus { | |
color: #999999; | |
cursor: not-allowed; | |
background-color: #ffffff; | |
} | |
.pagination-large > li > a, | |
.pagination-large > li > span { | |
padding: 14px 16px; | |
font-size: 18px; | |
} | |
.pagination-large > li:first-child > a, | |
.pagination-large > li:first-child > span { | |
border-bottom-left-radius: 6px; | |
border-top-left-radius: 6px; | |
} | |
.pagination-large > li:last-child > a, | |
.pagination-large > li:last-child > span { | |
border-top-right-radius: 6px; | |
border-bottom-right-radius: 6px; | |
} | |
.pagination-small > li > a, | |
.pagination-small > li > span { | |
padding: 5px 10px; | |
font-size: 12px; | |
} | |
.pagination-small > li:first-child > a, | |
.pagination-small > li:first-child > span { | |
border-bottom-left-radius: 3px; | |
border-top-left-radius: 3px; | |
} | |
.pagination-small > li:last-child > a, | |
.pagination-small > li:last-child > span { | |
border-top-right-radius: 3px; | |
border-bottom-right-radius: 3px; | |
} | |
.pager { | |
padding-left: 0; | |
margin: 20px 0; | |
text-align: center; | |
list-style: none; | |
} | |
.pager:before, | |
.pager:after { | |
display: table; | |
content: " "; | |
} | |
.pager:after { | |
clear: both; | |
} | |
.pager:before, | |
.pager:after { | |
display: table; | |
content: " "; | |
} | |
.pager:after { | |
clear: both; | |
} | |
.pager li { | |
display: inline; | |
} | |
.pager li > a, | |
.pager li > span { | |
display: inline-block; | |
padding: 5px 14px; | |
background-color: #ffffff; | |
border: 1px solid #dddddd; | |
border-radius: 15px; | |
} | |
.pager li > a:hover, | |
.pager li > a:focus { | |
text-decoration: none; | |
background-color: #f5f5f5; | |
} | |
.pager .next > a, | |
.pager .next > span { | |
float: right; | |
} | |
.pager .previous > a, | |
.pager .previous > span { | |
float: left; | |
} | |
.pager .disabled > a, | |
.pager .disabled > a:hover, | |
.pager .disabled > a:focus, | |
.pager .disabled > span { | |
color: #999999; | |
cursor: not-allowed; | |
background-color: #ffffff; | |
} | |
.modal-open { | |
overflow: hidden; | |
} | |
.modal { | |
position: fixed; | |
top: 0; | |
right: 0; | |
bottom: 0; | |
left: 0; | |
z-index: 1040; | |
display: none; | |
overflow: auto; | |
overflow-y: scroll; | |
} | |
.modal.fade .modal-dialog { | |
-webkit-transform: translate(0, -25%); | |
-ms-transform: translate(0, -25%); | |
transform: translate(0, -25%); | |
-webkit-transition: -webkit-transform 0.3s ease-out; | |
-moz-transition: -moz-transform 0.3s ease-out; | |
-o-transition: -o-transform 0.3s ease-out; | |
transition: transform 0.3s ease-out; | |
} | |
.modal.fade.in .modal-dialog { | |
-webkit-transform: translate(0, 0); | |
-ms-transform: translate(0, 0); | |
transform: translate(0, 0); | |
} | |
.modal-dialog { | |
z-index: 1050; | |
width: auto; | |
padding: 10px; | |
margin-right: auto; | |
margin-left: auto; | |
} | |
.modal-content { | |
position: relative; | |
background-color: #ffffff; | |
border: 1px solid #999999; | |
border: 1px solid rgba(0, 0, 0, 0.2); | |
border-radius: 6px; | |
outline: none; | |
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); | |
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); | |
background-clip: padding-box; | |
} | |
.modal-backdrop { | |
position: fixed; | |
top: 0; | |
right: 0; | |
bottom: 0; | |
left: 0; | |
z-index: 1030; | |
background-color: #000000; | |
} | |
.modal-backdrop.fade { | |
opacity: 0; | |
filter: alpha(opacity=0); | |
} | |
.modal-backdrop.fade.in { | |
opacity: 0.5; | |
filter: alpha(opacity=50); | |
} | |
.modal-header { | |
min-height: 16.428571429px; | |
padding: 15px; | |
border-bottom: 1px solid #e5e5e5; | |
} | |
.modal-header .close { | |
margin-top: -2px; | |
} | |
.modal-title { | |
margin: 0; | |
line-height: 1.428571429; | |
} | |
.modal-body { | |
position: relative; | |
padding: 20px; | |
} | |
.modal-footer { | |
padding: 19px 20px 20px; | |
margin-top: 15px; | |
text-align: right; | |
border-top: 1px solid #e5e5e5; | |
} | |
.modal-footer:before, | |
.modal-footer:after { | |
display: table; | |
content: " "; | |
} | |
.modal-footer:after { | |
clear: both; | |
} | |
.modal-footer:before, | |
.modal-footer:after { | |
display: table; | |
content: " "; | |
} | |
.modal-footer:after { | |
clear: both; | |
} | |
.modal-footer .btn + .btn { | |
margin-bottom: 0; | |
margin-left: 5px; | |
} | |
.modal-footer .btn-group .btn + .btn { | |
margin-left: -1px; | |
} | |
.modal-footer .btn-block + .btn-block { | |
margin-left: 0; | |
} | |
@media screen and (min-width: 768px) { | |
.modal-dialog { | |
right: auto; | |
left: 50%; | |
width: 600px; | |
padding-top: 30px; | |
padding-bottom: 30px; | |
} | |
.modal-content { | |
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); | |
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); | |
} | |
} | |
.tooltip { | |
position: absolute; | |
z-index: 1030; | |
display: block; | |
font-size: 12px; | |
line-height: 1.4; | |
opacity: 0; | |
filter: alpha(opacity=0); | |
visibility: visible; | |
} | |
.tooltip.in { | |
opacity: 1; | |
filter: alpha(opacity=100); | |
} | |
.tooltip.top { | |
padding: 5px 0; | |
margin-top: -3px; | |
} | |
.tooltip.right { | |
padding: 0 5px; | |
margin-left: 3px; | |
} | |
.tooltip.bottom { | |
padding: 5px 0; | |
margin-top: 3px; | |
} | |
.tooltip.left { | |
padding: 0 5px; | |
margin-left: -3px; | |
} | |
.tooltip-inner { | |
max-width: 200px; | |
padding: 3px 8px; | |
color: #ffffff; | |
text-align: center; | |
text-decoration: none; | |
background-color: rgba(0, 0, 0, 0.9); | |
border-radius: 4px; | |
} | |
.tooltip-arrow { | |
position: absolute; | |
width: 0; | |
height: 0; | |
border-color: transparent; | |
border-style: solid; | |
} | |
.tooltip.top .tooltip-arrow { | |
bottom: 0; | |
left: 50%; | |
margin-left: -5px; | |
border-top-color: rgba(0, 0, 0, 0.9); | |
border-width: 5px 5px 0; | |
} | |
.tooltip.top-left .tooltip-arrow { | |
bottom: 0; | |
left: 5px; | |
border-top-color: rgba(0, 0, 0, 0.9); | |
border-width: 5px 5px 0; | |
} | |
.tooltip.top-right .tooltip-arrow { | |
right: 5px; | |
bottom: 0; | |
border-top-color: rgba(0, 0, 0, 0.9); | |
border-width: 5px 5px 0; | |
} | |
.tooltip.right .tooltip-arrow { | |
top: 50%; | |
left: 0; | |
margin-top: -5px; | |
border-right-color: rgba(0, 0, 0, 0.9); | |
border-width: 5px 5px 5px 0; | |
} | |
.tooltip.left .tooltip-arrow { | |
top: 50%; | |
right: 0; | |
margin-top: -5px; | |
border-left-color: rgba(0, 0, 0, 0.9); | |
border-width: 5px 0 5px 5px; | |
} | |
.tooltip.bottom .tooltip-arrow { | |
top: 0; | |
left: 50%; | |
margin-left: -5px; | |
border-bottom-color: rgba(0, 0, 0, 0.9); | |
border-width: 0 5px 5px; | |
} | |
.tooltip.bottom-left .tooltip-arrow { | |
top: 0; | |
left: 5px; | |
border-bottom-color: rgba(0, 0, 0, 0.9); | |
border-width: 0 5px 5px; | |
} | |
.tooltip.bottom-right .tooltip-arrow { | |
top: 0; | |
right: 5px; | |
border-bottom-color: rgba(0, 0, 0, 0.9); | |
border-width: 0 5px 5px; | |
} | |
.popover { | |
position: absolute; | |
top: 0; | |
left: 0; | |
z-index: 1010; | |
display: none; | |
max-width: 276px; | |
padding: 1px; | |
text-align: left; | |
white-space: normal; | |
background-color: #ffffff; | |
border: 1px solid #cccccc; | |
border: 1px solid rgba(0, 0, 0, 0.2); | |
border-radius: 6px; | |
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); | |
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); | |
background-clip: padding-box; | |
-webkit-bg-clip: padding-box; | |
-moz-bg-clip: padding; | |
} | |
.popover.top { | |
margin-top: -10px; | |
} | |
.popover.right { | |
margin-left: 10px; | |
} | |
.popover.bottom { | |
margin-top: 10px; | |
} | |
.popover.left { | |
margin-left: -10px; | |
} | |
.popover-title { | |
padding: 8px 14px; | |
margin: 0; | |
font-size: 14px; | |
font-weight: normal; | |
line-height: 18px; | |
background-color: #f7f7f7; | |
border-bottom: 1px solid #ebebeb; | |
border-radius: 5px 5px 0 0; | |
} | |
.popover-content { | |
padding: 9px 14px; | |
} | |
.popover .arrow, | |
.popover .arrow:after { | |
position: absolute; | |
display: block; | |
width: 0; | |
height: 0; | |
border-color: transparent; | |
border-style: solid; | |
} | |
.popover .arrow { | |
border-width: 11px; | |
} | |
.popover .arrow:after { | |
border-width: 10px; | |
content: ""; | |
} | |
.popover.top .arrow { | |
bottom: -11px; | |
left: 50%; | |
margin-left: -11px; | |
border-top-color: #999999; | |
border-top-color: rgba(0, 0, 0, 0.25); | |
border-bottom-width: 0; | |
} | |
.popover.top .arrow:after { | |
bottom: 1px; | |
margin-left: -10px; | |
border-top-color: #ffffff; | |
border-bottom-width: 0; | |
content: " "; | |
} | |
.popover.right .arrow { | |
top: 50%; | |
left: -11px; | |
margin-top: -11px; | |
border-right-color: #999999; | |
border-right-color: rgba(0, 0, 0, 0.25); | |
border-left-width: 0; | |
} | |
.popover.right .arrow:after { | |
bottom: -10px; | |
left: 1px; | |
border-right-color: #ffffff; | |
border-left-width: 0; | |
content: " "; | |
} | |
.popover.bottom .arrow { | |
top: -11px; | |
left: 50%; | |
margin-left: -11px; | |
border-bottom-color: #999999; | |
border-bottom-color: rgba(0, 0, 0, 0.25); | |
border-top-width: 0; | |
} | |
.popover.bottom .arrow:after { | |
top: 1px; | |
margin-left: -10px; | |
border-bottom-color: #ffffff; | |
border-top-width: 0; | |
content: " "; | |
} | |
.popover.left .arrow { | |
top: 50%; | |
right: -11px; | |
margin-top: -11px; | |
border-left-color: #999999; | |
border-left-color: rgba(0, 0, 0, 0.25); | |
border-right-width: 0; | |
} | |
.popover.left .arrow:after { | |
right: 1px; | |
bottom: -10px; | |
border-left-color: #ffffff; | |
border-right-width: 0; | |
content: " "; | |
} | |
.alert { | |
padding: 10px 35px 10px 15px; | |
margin-bottom: 20px; | |
color: #c09853; | |
background-color: #fcf8e3; | |
border: 1px solid #fbeed5; | |
border-radius: 4px; | |
} | |
.alert h4 { | |
margin-top: 0; | |
color: inherit; | |
} | |
.alert hr { | |
border-top-color: #f8e5be; | |
} | |
.alert .alert-link { | |
font-weight: 500; | |
color: #a47e3c; | |
} | |
.alert .close { | |
position: relative; | |
top: -2px; | |
right: -21px; | |
color: inherit; | |
} | |
.alert-success { | |
color: #468847; | |
background-color: #dff0d8; | |
border-color: #d6e9c6; | |
} | |
.alert-success hr { | |
border-top-color: #c9e2b3; | |
} | |
.alert-success .alert-link { | |
color: #356635; | |
} | |
.alert-danger { | |
color: #b94a48; | |
background-color: #f2dede; | |
border-color: #eed3d7; | |
} | |
.alert-danger hr { | |
border-top-color: #e6c1c7; | |
} | |
.alert-danger .alert-link { | |
color: #953b39; | |
} | |
.alert-info { | |
color: #3a87ad; | |
background-color: #d9edf7; | |
border-color: #bce8f1; | |
} | |
.alert-info hr { | |
border-top-color: #a6e1ec; | |
} | |
.alert-info .alert-link { | |
color: #2d6987; | |
} | |
.alert-block { | |
padding-top: 15px; | |
padding-bottom: 15px; | |
} | |
.alert-block > p, | |
.alert-block > ul { | |
margin-bottom: 0; | |
} | |
.alert-block p + p { | |
margin-top: 5px; | |
} | |
.thumbnail, | |
.img-thumbnail { | |
padding: 4px; | |
line-height: 1.428571429; | |
background-color: #ffffff; | |
border: 1px solid #dddddd; | |
border-radius: 4px; | |
-webkit-transition: all 0.2s ease-in-out; | |
transition: all 0.2s ease-in-out; | |
} | |
.thumbnail { | |
display: block; | |
} | |
.thumbnail > img, | |
.img-thumbnail { | |
display: inline-block; | |
height: auto; | |
max-width: 100%; | |
} | |
a.thumbnail:hover, | |
a.thumbnail:focus { | |
border-color: #428bca; | |
} | |
.thumbnail > img { | |
margin-right: auto; | |
margin-left: auto; | |
} | |
.thumbnail .caption { | |
padding: 9px; | |
color: #333333; | |
} | |
.media, | |
.media-body { | |
overflow: hidden; | |
zoom: 1; | |
} | |
.media, | |
.media .media { | |
margin-top: 15px; | |
} | |
.media:first-child { | |
margin-top: 0; | |
} | |
.media-object { | |
display: block; | |
} | |
.media-heading { | |
margin: 0 0 5px; | |
} | |
.media > .pull-left { | |
margin-right: 10px; | |
} | |
.media > .pull-right { | |
margin-left: 10px; | |
} | |
.media-list { | |
padding-left: 0; | |
list-style: none; | |
} | |
.label { | |
display: inline; | |
padding: .25em .6em; | |
font-size: 75%; | |
font-weight: 500; | |
line-height: 1; | |
color: #ffffff; | |
text-align: center; | |
white-space: nowrap; | |
vertical-align: middle; | |
background-color: #999999; | |
border-radius: .25em; | |
} | |
.label[href]:hover, | |
.label[href]:focus { | |
color: #ffffff; | |
text-decoration: none; | |
cursor: pointer; | |
background-color: #808080; | |
} | |
.label-danger { | |
background-color: #d9534f; | |
} | |
.label-danger[href]:hover, | |
.label-danger[href]:focus { | |
background-color: #c9302c; | |
} | |
.label-success { | |
background-color: #5cb85c; | |
} | |
.label-success[href]:hover, | |
.label-success[href]:focus { | |
background-color: #449d44; | |
} | |
.label-warning { | |
background-color: #f0ad4e; | |
} | |
.label-warning[href]:hover, | |
.label-warning[href]:focus { | |
background-color: #ec971f; | |
} | |
.label-info { | |
background-color: #5bc0de; | |
} | |
.label-info[href]:hover, | |
.label-info[href]:focus { | |
background-color: #31b0d5; | |
} | |
.badge { | |
display: inline-block; | |
min-width: 10px; | |
padding: 3px 7px; | |
font-size: 12px; | |
font-weight: bold; | |
line-height: 1; | |
color: #ffffff; | |
text-align: center; | |
white-space: nowrap; | |
vertical-align: middle; | |
background-color: #999999; | |
border-radius: 10px; | |
} | |
.badge:empty { | |
display: none; | |
} | |
a.badge:hover, | |
a.badge:focus { | |
color: #ffffff; | |
text-decoration: none; | |
cursor: pointer; | |
} | |
.btn .badge { | |
position: relative; | |
top: -1px; | |
} | |
a.list-group-item.active > .badge, | |
.nav-pills > .active > a > .badge { | |
color: #428bca; | |
background-color: #ffffff; | |
} | |
.nav-pills > li > a > .badge { | |
margin-left: 3px; | |
} | |
@-webkit-keyframes progress-bar-stripes { | |
from { | |
background-position: 40px 0; | |
} | |
to { | |
background-position: 0 0; | |
} | |
} | |
@-moz-keyframes progress-bar-stripes { | |
from { | |
background-position: 40px 0; | |
} | |
to { | |
background-position: 0 0; | |
} | |
} | |
@-ms-keyframes progress-bar-stripes { | |
from { | |
background-position: 40px 0; | |
} | |
to { | |
background-position: 0 0; | |
} | |
} | |
@-o-keyframes progress-bar-stripes { | |
from { | |
background-position: 0 0; | |
} | |
to { | |
background-position: 40px 0; | |
} | |
} | |
@keyframes progress-bar-stripes { | |
from { | |
background-position: 40px 0; | |
} | |
to { | |
background-position: 0 0; | |
} | |
} | |
.progress { | |
height: 20px; | |
margin-bottom: 20px; | |
overflow: hidden; | |
background-color: #f5f5f5; | |
border-radius: 4px; | |
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); | |
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); | |
} | |
.progress-bar { | |
float: left; | |
width: 0; | |
height: 100%; | |
font-size: 12px; | |
color: #ffffff; | |
text-align: center; | |
background-color: #428bca; | |
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); | |
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); | |
-webkit-transition: width 0.6s ease; | |
transition: width 0.6s ease; | |
} | |
.progress-striped .progress-bar { | |
background-color: #428bca; | |
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); | |
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-size: 40px 40px; | |
} | |
.progress.active .progress-bar { | |
-webkit-animation: progress-bar-stripes 2s linear infinite; | |
-moz-animation: progress-bar-stripes 2s linear infinite; | |
-ms-animation: progress-bar-stripes 2s linear infinite; | |
-o-animation: progress-bar-stripes 2s linear infinite; | |
animation: progress-bar-stripes 2s linear infinite; | |
} | |
.progress-bar-danger { | |
background-color: #d9534f; | |
} | |
.progress-striped .progress-bar-danger { | |
background-color: #d9534f; | |
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); | |
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
} | |
.progress-bar-success { | |
background-color: #5cb85c; | |
} | |
.progress-striped .progress-bar-success { | |
background-color: #5cb85c; | |
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); | |
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
} | |
.progress-bar-warning { | |
background-color: #f0ad4e; | |
} | |
.progress-striped .progress-bar-warning { | |
background-color: #f0ad4e; | |
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); | |
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
} | |
.progress-bar-info { | |
background-color: #5bc0de; | |
} | |
.progress-striped .progress-bar-info { | |
background-color: #5bc0de; | |
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); | |
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | |
} | |
.accordion { | |
margin-bottom: 20px; | |
} | |
.accordion-group { | |
margin-bottom: 2px; | |
border: 1px solid #e5e5e5; | |
border-radius: 4px; | |
} | |
.accordion-heading { | |
border-bottom: 0; | |
} | |
.accordion-heading .accordion-toggle { | |
display: block; | |
padding: 8px 15px; | |
cursor: pointer; | |
} | |
.accordion-inner { | |
padding: 9px 15px; | |
border-top: 1px solid #e5e5e5; | |
} | |
.carousel { | |
position: relative; | |
} | |
.carousel-inner { | |
position: relative; | |
width: 100%; | |
overflow: hidden; | |
} | |
.carousel-inner > .item { | |
position: relative; | |
display: none; | |
-webkit-transition: 0.6s ease-in-out left; | |
transition: 0.6s ease-in-out left; | |
} | |
.carousel-inner > .item > img, | |
.carousel-inner > .item > a > img { | |
display: inline-block; | |
height: auto; | |
max-width: 100%; | |
line-height: 1; | |
} | |
.carousel-inner > .active, | |
.carousel-inner > .next, | |
.carousel-inner > .prev { | |
display: block; | |
} | |
.carousel-inner > .active { | |
left: 0; | |
} | |
.carousel-inner > .next, | |
.carousel-inner > .prev { | |
position: absolute; | |
top: 0; | |
width: 100%; | |
} | |
.carousel-inner > .next { | |
left: 100%; | |
} | |
.carousel-inner > .prev { | |
left: -100%; | |
} | |
.carousel-inner > .next.left, | |
.carousel-inner > .prev.right { | |
left: 0; | |
} | |
.carousel-inner > .active.left { | |
left: -100%; | |
} | |
.carousel-inner > .active.right { | |
left: 100%; | |
} | |
.carousel-control { | |
position: absolute; | |
top: 0; | |
bottom: 0; | |
left: 0; | |
width: 15%; | |
font-size: 20px; | |
color: #ffffff; | |
text-align: center; | |
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); | |
opacity: 0.5; | |
filter: alpha(opacity=50); | |
} | |
.carousel-control.left { | |
background-color: rgba(0, 0, 0, 0.0001); | |
background-color: transparent; | |
background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); | |
background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); | |
background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); | |
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); | |
} | |
.carousel-control.right { | |
right: 0; | |
left: auto; | |
background-color: rgba(0, 0, 0, 0.5); | |
background-color: transparent; | |
background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); | |
background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); | |
background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); | |
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); | |
} | |
.carousel-control:hover, | |
.carousel-control:focus { | |
color: #ffffff; | |
text-decoration: none; | |
opacity: 0.9; | |
filter: alpha(opacity=90); | |
} | |
.carousel-control .glyphicon, | |
.carousel-control .icon-prev, | |
.carousel-control .icon-next { | |
position: absolute; | |
top: 50%; | |
left: 50%; | |
z-index: 5; | |
display: inline-block; | |
width: 20px; | |
height: 20px; | |
margin-top: -10px; | |
margin-left: -10px; | |
font-family: serif; | |
} | |
.carousel-control .icon-prev:before { | |
content: '\2039'; | |
} | |
.carousel-control .icon-next:before { | |
content: '\203a'; | |
} | |
.carousel-indicators { | |
position: absolute; | |
bottom: 10px; | |
left: 50%; | |
z-index: 15; | |
width: 120px; | |
padding-left: 0; | |
margin-left: -60px; | |
text-align: center; | |
list-style: none; | |
} | |
.carousel-indicators li { | |
display: inline-block; | |
width: 10px; | |
height: 10px; | |
margin: 1px; | |
text-indent: -999px; | |
cursor: pointer; | |
border: 1px solid #ffffff; | |
border-radius: 10px; | |
} | |
.carousel-indicators .active { | |
width: 12px; | |
height: 12px; | |
margin: 0; | |
background-color: #ffffff; | |
} | |
.carousel-caption { | |
position: absolute; | |
right: 15%; | |
bottom: 20px; | |
left: 15%; | |
z-index: 10; | |
padding-top: 20px; | |
padding-bottom: 20px; | |
color: #ffffff; | |
text-align: center; | |
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); | |
} | |
.carousel-caption .btn { | |
text-shadow: none; | |
} | |
@media screen and (min-width: 768px) { | |
.carousel-control .glyphicon, | |
.carousel-control .icon-prev, | |
.carousel-control .icon-next { | |
width: 30px; | |
height: 30px; | |
margin-top: -15px; | |
margin-left: -15px; | |
font-size: 30px; | |
} | |
.carousel-caption { | |
right: 20%; | |
left: 20%; | |
padding-bottom: 30px; | |
} | |
.carousel-indicators { | |
bottom: 20px; | |
} | |
} | |
.jumbotron { | |
padding: 30px; | |
margin-bottom: 30px; | |
font-size: 21px; | |
font-weight: 200; | |
line-height: 2.1428571435; | |
color: inherit; | |
background-color: #eeeeee; | |
} | |
.jumbotron h1 { | |
line-height: 1; | |
color: inherit; | |
} | |
.jumbotron p { | |
line-height: 1.4; | |
} | |
@media screen and (min-width: 768px) { | |
.jumbotron { | |
padding: 50px 60px; | |
border-radius: 6px; | |
} | |
.jumbotron h1 { | |
font-size: 63px; | |
} | |
} | |
.clearfix:before, | |
.clearfix:after { | |
display: table; | |
content: " "; | |
} | |
.clearfix:after { | |
clear: both; | |
} | |
.pull-right { | |
float: right; | |
} | |
.pull-left { | |
float: left; | |
} | |
.hide { | |
display: none !important; | |
} | |
.show { | |
display: block !important; | |
} | |
.invisible { | |
visibility: hidden; | |
} | |
.text-hide { | |
font: 0/0 a; | |
color: transparent; | |
text-shadow: none; | |
background-color: transparent; | |
border: 0; | |
} | |
.affix { | |
position: fixed; | |
} | |
@-ms-viewport { | |
width: device-width; | |
} | |
@media screen and (max-width: 400px) { | |
@-ms-viewport { | |
width: 320px; | |
} | |
} | |
.hidden { | |
display: none !important; | |
visibility: hidden !important; | |
} | |
.visible-sm { | |
display: block !important; | |
} | |
tr.visible-sm { | |
display: table-row !important; | |
} | |
th.visible-sm, | |
td.visible-sm { | |
display: table-cell !important; | |
} | |
.visible-md { | |
display: none !important; | |
} | |
tr.visible-md { | |
display: none !important; | |
} | |
th.visible-md, | |
td.visible-md { | |
display: none !important; | |
} | |
.visible-lg { | |
display: none !important; | |
} | |
tr.visible-lg { | |
display: none !important; | |
} | |
th.visible-lg, | |
td.visible-lg { | |
display: none !important; | |
} | |
.hidden-sm { | |
display: none !important; | |
} | |
tr.hidden-sm { | |
display: none !important; | |
} | |
th.hidden-sm, | |
td.hidden-sm { | |
display: none !important; | |
} | |
.hidden-md { | |
display: block !important; | |
} | |
tr.hidden-md { | |
display: table-row !important; | |
} | |
th.hidden-md, | |
td.hidden-md { | |
display: table-cell !important; | |
} | |
.hidden-lg { | |
display: block !important; | |
} | |
tr.hidden-lg { | |
display: table-row !important; | |
} | |
th.hidden-lg, | |
td.hidden-lg { | |
display: table-cell !important; | |
} | |
@media (min-width: 768px) and (max-width: 991px) { | |
.visible-sm { | |
display: none !important; | |
} | |
tr.visible-sm { | |
display: none !important; | |
} | |
th.visible-sm, | |
td.visible-sm { | |
display: none !important; | |
} | |
.visible-md { | |
display: block !important; | |
} | |
tr.visible-md { | |
display: table-row !important; | |
} | |
th.visible-md, | |
td.visible-md { | |
display: table-cell !important; | |
} | |
.visible-lg { | |
display: none !important; | |
} | |
tr.visible-lg { | |
display: none !important; | |
} | |
th.visible-lg, | |
td.visible-lg { | |
display: none !important; | |
} | |
.hidden-sm { | |
display: block !important; | |
} | |
tr.hidden-sm { | |
display: table-row !important; | |
} | |
th.hidden-sm, | |
td.hidden-sm { | |
display: table-cell !important; | |
} | |
.hidden-md { | |
display: none !important; | |
} | |
tr.hidden-md { | |
display: none !important; | |
} | |
th.hidden-md, | |
td.hidden-md { | |
display: none !important; | |
} | |
.hidden-lg { | |
display: block !important; | |
} | |
tr.hidden-lg { | |
display: table-row !important; | |
} | |
th.hidden-lg, | |
td.hidden-lg { | |
display: table-cell !important; | |
} | |
} | |
@media (min-width: 992px) { | |
.visible-sm { | |
display: none !important; | |
} | |
tr.visible-sm { | |
display: none !important; | |
} | |
th.visible-sm, | |
td.visible-sm { | |
display: none !important; | |
} | |
.visible-md { | |
display: none !important; | |
} | |
tr.visible-md { | |
display: none !important; | |
} | |
th.visible-md, | |
td.visible-md { | |
display: none !important; | |
} | |
.visible-lg { | |
display: block !important; | |
} | |
tr.visible-lg { | |
display: table-row !important; | |
} | |
th.visible-lg, | |
td.visible-lg { | |
display: table-cell !important; | |
} | |
.hidden-sm { | |
display: block !important; | |
} | |
tr.hidden-sm { | |
display: table-row !important; | |
} | |
th.hidden-sm, | |
td.hidden-sm { | |
display: table-cell !important; | |
} | |
.hidden-md { | |
display: block !important; | |
} | |
tr.hidden-md { | |
display: table-row !important; | |
} | |
th.hidden-md, | |
td.hidden-md { | |
display: table-cell !important; | |
} | |
.hidden-lg { | |
display: none !important; | |
} | |
tr.hidden-lg { | |
display: none !important; | |
} | |
th.hidden-lg, | |
td.hidden-lg { | |
display: none !important; | |
} | |
} | |
.visible-print { | |
display: none !important; | |
} | |
tr.visible-print { | |
display: none !important; | |
} | |
th.visible-print, | |
td.visible-print { | |
display: none !important; | |
} | |
@media print { | |
.visible-print { | |
display: block !important; | |
} | |
tr.visible-print { | |
display: table-row !important; | |
} | |
th.visible-print, | |
td.visible-print { | |
display: table-cell !important; | |
} | |
.hidden-print { | |
display: none !important; | |
} | |
tr.hidden-print { | |
display: none !important; | |
} | |
th.hidden-print, | |
td.hidden-print { | |
display: none !important; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
<html> | |
<head> | |
<title></title> | |
<link href="css/bootstrap.css" rel="stylesheet" type="text/css" /> | |
<script src="js/jquery-2.0.3.min.js"></script> | |
<script src="js/bootstrap.js"></script> | |
<script src="js/angular.min.js"></script> | |
<script src="js/ui-bootstrap-0.4.0.min.js"></script> | |
<script src="js/filer.js"></script> | |
<script src="js/ttwr.js"></script> | |
<script src="js/filesystem.js"></script> | |
</head> | |
<body id="ng-app" ng-app="TTWR" onunload=""> | |
<div class="container" ng-controller="MainCtrl"> | |
<h1>Hello</h1> | |
</div> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
AngularJS v1.0.7 | |
(c) 2010-2012 Google, Inc. http://angularjs.org | |
License: MIT | |
*/ | |
(function(P,T,q){'use strict';function m(b,a,c){var d;if(b)if(H(b))for(d in b)d!="prototype"&&d!="length"&&d!="name"&&b.hasOwnProperty(d)&&a.call(c,b[d],d);else if(b.forEach&&b.forEach!==m)b.forEach(a,c);else if(!b||typeof b.length!=="number"?0:typeof b.hasOwnProperty!="function"&&typeof b.constructor!="function"||b instanceof K||ca&&b instanceof ca||wa.call(b)!=="[object Object]"||typeof b.callee==="function")for(d=0;d<b.length;d++)a.call(c,b[d],d);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d], | |
d);return b}function mb(b){var a=[],c;for(c in b)b.hasOwnProperty(c)&&a.push(c);return a.sort()}function fc(b,a,c){for(var d=mb(b),e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function nb(b){return function(a,c){b(c,a)}}function xa(){for(var b=aa.length,a;b;){b--;a=aa[b].charCodeAt(0);if(a==57)return aa[b]="A",aa.join("");if(a==90)aa[b]="0";else return aa[b]=String.fromCharCode(a+1),aa.join("")}aa.unshift("0");return aa.join("")}function ob(b,a){a?b.$$hashKey=a:delete b.$$hashKey}function v(b){var a= | |
b.$$hashKey;m(arguments,function(a){a!==b&&m(a,function(a,c){b[c]=a})});ob(b,a);return b}function G(b){return parseInt(b,10)}function ya(b,a){return v(new (v(function(){},{prototype:b})),a)}function C(){}function ma(b){return b}function I(b){return function(){return b}}function w(b){return typeof b=="undefined"}function y(b){return typeof b!="undefined"}function L(b){return b!=null&&typeof b=="object"}function B(b){return typeof b=="string"}function Qa(b){return typeof b=="number"}function na(b){return wa.apply(b)== | |
"[object Date]"}function E(b){return wa.apply(b)=="[object Array]"}function H(b){return typeof b=="function"}function oa(b){return b&&b.document&&b.location&&b.alert&&b.setInterval}function Q(b){return B(b)?b.replace(/^\s*/,"").replace(/\s*$/,""):b}function gc(b){return b&&(b.nodeName||b.bind&&b.find)}function Ra(b,a,c){var d=[];m(b,function(b,g,h){d.push(a.call(c,b,g,h))});return d}function za(b,a){if(b.indexOf)return b.indexOf(a);for(var c=0;c<b.length;c++)if(a===b[c])return c;return-1}function Sa(b, | |
a){var c=za(b,a);c>=0&&b.splice(c,1);return a}function U(b,a){if(oa(b)||b&&b.$evalAsync&&b.$watch)throw Error("Can't copy Window or Scope");if(a){if(b===a)throw Error("Can't copy equivalent objects or arrays");if(E(b))for(var c=a.length=0;c<b.length;c++)a.push(U(b[c]));else{c=a.$$hashKey;m(a,function(b,c){delete a[c]});for(var d in b)a[d]=U(b[d]);ob(a,c)}}else(a=b)&&(E(b)?a=U(b,[]):na(b)?a=new Date(b.getTime()):L(b)&&(a=U(b,{})));return a}function hc(b,a){var a=a||{},c;for(c in b)b.hasOwnProperty(c)&& | |
c.substr(0,2)!=="$$"&&(a[c]=b[c]);return a}function fa(b,a){if(b===a)return!0;if(b===null||a===null)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&c=="object")if(E(b)){if((c=b.length)==a.length){for(d=0;d<c;d++)if(!fa(b[d],a[d]))return!1;return!0}}else if(na(b))return na(a)&&b.getTime()==a.getTime();else{if(b&&b.$evalAsync&&b.$watch||a&&a.$evalAsync&&a.$watch||oa(b)||oa(a))return!1;c={};for(d in b)if(!(d.charAt(0)==="$"||H(b[d]))){if(!fa(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c[d]&& | |
d.charAt(0)!=="$"&&a[d]!==q&&!H(a[d]))return!1;return!0}return!1}function Ta(b,a){var c=arguments.length>2?ha.call(arguments,2):[];return H(a)&&!(a instanceof RegExp)?c.length?function(){return arguments.length?a.apply(b,c.concat(ha.call(arguments,0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}:a}function ic(b,a){var c=a;/^\$+/.test(b)?c=q:oa(a)?c="$WINDOW":a&&T===a?c="$DOCUMENT":a&&a.$evalAsync&&a.$watch&&(c="$SCOPE");return c}function da(b,a){return JSON.stringify(b, | |
ic,a?" ":null)}function pb(b){return B(b)?JSON.parse(b):b}function Ua(b){b&&b.length!==0?(b=z(""+b),b=!(b=="f"||b=="0"||b=="false"||b=="no"||b=="n"||b=="[]")):b=!1;return b}function pa(b){b=u(b).clone();try{b.html("")}catch(a){}var c=u("<div>").append(b).html();try{return b[0].nodeType===3?z(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+z(b)})}catch(d){return z(c)}}function Va(b){var a={},c,d;m((b||"").split("&"),function(b){b&&(c=b.split("="),d=decodeURIComponent(c[0]), | |
a[d]=y(c[1])?decodeURIComponent(c[1]):!0)});return a}function qb(b){var a=[];m(b,function(b,d){a.push(Wa(d,!0)+(b===!0?"":"="+Wa(b,!0)))});return a.length?a.join("&"):""}function Xa(b){return Wa(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Wa(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,a?"%20":"+")}function jc(b,a){function c(a){a&&d.push(a)}var d=[b],e,g,h=["ng:app","ng-app","x-ng-app", | |
"data-ng-app"],f=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;m(h,function(a){h[a]=!0;c(T.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(m(b.querySelectorAll("."+a),c),m(b.querySelectorAll("."+a+"\\:"),c),m(b.querySelectorAll("["+a+"]"),c))});m(d,function(a){if(!e){var b=f.exec(" "+a.className+" ");b?(e=a,g=(b[2]||"").replace(/\s+/g,",")):m(a.attributes,function(b){if(!e&&h[b.name])e=a,g=b.value})}});e&&a(e,g?[g]:[])}function rb(b,a){var c=function(){b=u(b);a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement", | |
b)}]);a.unshift("ng");var c=sb(a);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},d=/^NG_DEFER_BOOTSTRAP!/;if(P&&!d.test(P.name))return c();P.name=P.name.replace(d,"");Ya.resumeBootstrap=function(b){m(b,function(b){a.push(b)});c()}}function Za(b,a){a=a||"_";return b.replace(kc,function(b,d){return(d?a:"")+b.toLowerCase()})}function $a(b,a,c){if(!b)throw Error("Argument '"+(a||"?")+"' is "+(c||"required")); | |
return b}function qa(b,a,c){c&&E(b)&&(b=b[b.length-1]);$a(H(b),a,"not a function, got "+(b&&typeof b=="object"?b.constructor.name||"Object":typeof b));return b}function lc(b){function a(a,b,e){return a[b]||(a[b]=e())}return a(a(b,"angular",Object),"module",function(){var b={};return function(d,e,g){e&&b.hasOwnProperty(d)&&(b[d]=null);return a(b,d,function(){function a(c,d,e){return function(){b[e||"push"]([c,d,arguments]);return k}}if(!e)throw Error("No module: "+d);var b=[],c=[],j=a("$injector", | |
"invoke"),k={_invokeQueue:b,_runBlocks:c,requires:e,name:d,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:j,run:function(a){c.push(a);return this}};g&&j(g);return k})}})}function tb(b){return b.replace(mc,function(a,b,d,e){return e?d.toUpperCase(): | |
d}).replace(nc,"Moz$1")}function ab(b,a){function c(){var e;for(var b=[this],c=a,h,f,i,j,k,l;b.length;){h=b.shift();f=0;for(i=h.length;f<i;f++){j=u(h[f]);c?j.triggerHandler("$destroy"):c=!c;k=0;for(e=(l=j.children()).length,j=e;k<j;k++)b.push(ca(l[k]))}}return d.apply(this,arguments)}var d=ca.fn[b],d=d.$original||d;c.$original=d;ca.fn[b]=c}function K(b){if(b instanceof K)return b;if(!(this instanceof K)){if(B(b)&&b.charAt(0)!="<")throw Error("selectors not implemented");return new K(b)}if(B(b)){var a= | |
T.createElement("div");a.innerHTML="<div> </div>"+b;a.removeChild(a.firstChild);bb(this,a.childNodes);this.remove()}else bb(this,b)}function cb(b){return b.cloneNode(!0)}function ra(b){ub(b);for(var a=0,b=b.childNodes||[];a<b.length;a++)ra(b[a])}function vb(b,a,c){var d=ba(b,"events");ba(b,"handle")&&(w(a)?m(d,function(a,c){db(b,c,a);delete d[c]}):w(c)?(db(b,a,d[a]),delete d[a]):Sa(d[a],c))}function ub(b){var a=b[Aa],c=Ba[a];c&&(c.handle&&(c.events.$destroy&&c.handle({},"$destroy"),vb(b)),delete Ba[a], | |
b[Aa]=q)}function ba(b,a,c){var d=b[Aa],d=Ba[d||-1];if(y(c))d||(b[Aa]=d=++oc,d=Ba[d]={}),d[a]=c;else return d&&d[a]}function wb(b,a,c){var d=ba(b,"data"),e=y(c),g=!e&&y(a),h=g&&!L(a);!d&&!h&&ba(b,"data",d={});if(e)d[a]=c;else if(g)if(h)return d&&d[a];else v(d,a);else return d}function Ca(b,a){return(" "+b.className+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" ")>-1}function xb(b,a){a&&m(a.split(" "),function(a){b.className=Q((" "+b.className+" ").replace(/[\n\t]/g," ").replace(" "+Q(a)+" "," "))})} | |
function yb(b,a){a&&m(a.split(" "),function(a){if(!Ca(b,a))b.className=Q(b.className+" "+Q(a))})}function bb(b,a){if(a)for(var a=!a.nodeName&&y(a.length)&&!oa(a)?a:[a],c=0;c<a.length;c++)b.push(a[c])}function zb(b,a){return Da(b,"$"+(a||"ngController")+"Controller")}function Da(b,a,c){b=u(b);for(b[0].nodeType==9&&(b=b.find("html"));b.length;){if(c=b.data(a))return c;b=b.parent()}}function Ab(b,a){var c=Ea[a.toLowerCase()];return c&&Bb[b.nodeName]&&c}function pc(b,a){var c=function(c,e){if(!c.preventDefault)c.preventDefault= | |
function(){c.returnValue=!1};if(!c.stopPropagation)c.stopPropagation=function(){c.cancelBubble=!0};if(!c.target)c.target=c.srcElement||T;if(w(c.defaultPrevented)){var g=c.preventDefault;c.preventDefault=function(){c.defaultPrevented=!0;g.call(c)};c.defaultPrevented=!1}c.isDefaultPrevented=function(){return c.defaultPrevented};m(a[e||c.type],function(a){a.call(b,c)});Z<=8?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)}; | |
c.elem=b;return c}function ga(b){var a=typeof b,c;if(a=="object"&&b!==null)if(typeof(c=b.$$hashKey)=="function")c=b.$$hashKey();else{if(c===q)c=b.$$hashKey=xa()}else c=b;return a+":"+c}function Fa(b){m(b,this.put,this)}function eb(){}function Cb(b){var a,c;if(typeof b=="function"){if(!(a=b.$inject))a=[],c=b.toString().replace(qc,""),c=c.match(rc),m(c[1].split(sc),function(b){b.replace(tc,function(b,c,d){a.push(d)})}),b.$inject=a}else E(b)?(c=b.length-1,qa(b[c],"fn"),a=b.slice(0,c)):qa(b,"fn",!0); | |
return a}function sb(b){function a(a){return function(b,c){if(L(b))m(b,nb(a));else return a(b,c)}}function c(a,b){if(H(b)||E(b))b=l.instantiate(b);if(!b.$get)throw Error("Provider "+a+" must define $get factory method.");return k[a+f]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[];m(a,function(a){if(!j.get(a))if(j.put(a,!0),B(a)){var c=sa(a);b=b.concat(e(c.requires)).concat(c._runBlocks);try{for(var d=c._invokeQueue,c=0,f=d.length;c<f;c++){var g=d[c],h=g[0]=="$injector"?l:l.get(g[0]); | |
h[g[1]].apply(h,g[2])}}catch(p){throw p.message&&(p.message+=" from "+a),p;}}else if(H(a))try{b.push(l.invoke(a))}catch(i){throw i.message&&(i.message+=" from "+a),i;}else if(E(a))try{b.push(l.invoke(a))}catch(o){throw o.message&&(o.message+=" from "+String(a[a.length-1])),o;}else qa(a,"module")});return b}function g(a,b){function c(d){if(typeof d!=="string")throw Error("Service name expected");if(a.hasOwnProperty(d)){if(a[d]===h)throw Error("Circular dependency: "+i.join(" <- "));return a[d]}else try{return i.unshift(d), | |
a[d]=h,a[d]=b(d)}finally{i.shift()}}function d(a,b,e){var f=[],j=Cb(a),g,h,i;h=0;for(g=j.length;h<g;h++)i=j[h],f.push(e&&e.hasOwnProperty(i)?e[i]:c(i));a.$inject||(a=a[g]);switch(b?-1:f.length){case 0:return a();case 1:return a(f[0]);case 2:return a(f[0],f[1]);case 3:return a(f[0],f[1],f[2]);case 4:return a(f[0],f[1],f[2],f[3]);case 5:return a(f[0],f[1],f[2],f[3],f[4]);case 6:return a(f[0],f[1],f[2],f[3],f[4],f[5]);case 7:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6]);case 8:return a(f[0],f[1],f[2], | |
f[3],f[4],f[5],f[6],f[7]);case 9:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8]);case 10:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9]);default:return a.apply(b,f)}}return{invoke:d,instantiate:function(a,b){var c=function(){},e;c.prototype=(E(a)?a[a.length-1]:a).prototype;c=new c;e=d(a,c,b);return L(e)?e:c},get:c,annotate:Cb}}var h={},f="Provider",i=[],j=new Fa,k={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}), | |
value:a(function(a,b){return d(a,I(b))}),constant:a(function(a,b){k[a]=b;n[a]=b}),decorator:function(a,b){var c=l.get(a+f),d=c.$get;c.$get=function(){var a=o.invoke(d,c);return o.invoke(b,null,{$delegate:a})}}}},l=g(k,function(){throw Error("Unknown provider: "+i.join(" <- "));}),n={},o=n.$injector=g(n,function(a){a=l.get(a+f);return o.invoke(a.$get,a)});m(e(b),function(a){o.invoke(a||C)});return o}function uc(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location", | |
"$rootScope",function(a,c,d){function e(a){var b=null;m(a,function(a){!b&&z(a.nodeName)==="a"&&(b=a)});return b}function g(){var b=c.hash(),d;b?(d=h.getElementById(b))?d.scrollIntoView():(d=e(h.getElementsByName(b)))?d.scrollIntoView():b==="top"&&a.scrollTo(0,0):a.scrollTo(0,0)}var h=a.document;b&&d.$watch(function(){return c.hash()},function(){d.$evalAsync(g)});return g}]}function vc(b,a,c,d){function e(a){try{a.apply(null,ha.call(arguments,1))}finally{if(p--,p===0)for(;s.length;)try{s.pop()()}catch(b){c.error(b)}}} | |
function g(a,b){(function V(){m(t,function(a){a()});x=b(V,a)})()}function h(){M!=f.url()&&(M=f.url(),m(N,function(a){a(f.url())}))}var f=this,i=a[0],j=b.location,k=b.history,l=b.setTimeout,n=b.clearTimeout,o={};f.isMock=!1;var p=0,s=[];f.$$completeOutstandingRequest=e;f.$$incOutstandingRequestCount=function(){p++};f.notifyWhenNoOutstandingRequests=function(a){m(t,function(a){a()});p===0?a():s.push(a)};var t=[],x;f.addPollFn=function(a){w(x)&&g(100,l);t.push(a);return a};var M=j.href,A=a.find("base"); | |
f.url=function(a,b){if(a){if(M!=a)return M=a,d.history?b?k.replaceState(null,"",a):(k.pushState(null,"",a),A.attr("href",A.attr("href"))):b?j.replace(a):j.href=a,f}else return j.href.replace(/%27/g,"'")};var N=[],J=!1;f.onUrlChange=function(a){J||(d.history&&u(b).bind("popstate",h),d.hashchange?u(b).bind("hashchange",h):f.addPollFn(h),J=!0);N.push(a);return a};f.baseHref=function(){var a=A.attr("href");return a?a.replace(/^https?\:\/\/[^\/]*/,""):""};var r={},$="",R=f.baseHref();f.cookies=function(a, | |
b){var d,e,f,j;if(a)if(b===q)i.cookie=escape(a)+"=;path="+R+";expires=Thu, 01 Jan 1970 00:00:00 GMT";else{if(B(b))d=(i.cookie=escape(a)+"="+escape(b)+";path="+R).length+1,d>4096&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+d+" > 4096 bytes)!")}else{if(i.cookie!==$){$=i.cookie;d=$.split("; ");r={};for(f=0;f<d.length;f++)e=d[f],j=e.indexOf("="),j>0&&(a=unescape(e.substring(0,j)),r[a]===q&&(r[a]=unescape(e.substring(j+1))))}return r}};f.defer=function(a,b){var c; | |
p++;c=l(function(){delete o[c];e(a)},b||0);o[c]=!0;return c};f.defer.cancel=function(a){return o[a]?(delete o[a],n(a),e(C),!0):!1}}function wc(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new vc(b,d,a,c)}]}function xc(){this.$get=function(){function b(b,d){function e(a){if(a!=l){if(n){if(n==a)n=a.n}else n=a;g(a.n,a.p);g(a,l);l=a;l.n=null}}function g(a,b){if(a!=b){if(a)a.p=b;if(b)b.n=a}}if(b in a)throw Error("cacheId "+b+" taken");var h=0,f=v({},d,{id:b}),i={},j=d&& | |
d.capacity||Number.MAX_VALUE,k={},l=null,n=null;return a[b]={put:function(a,b){var c=k[a]||(k[a]={key:a});e(c);w(b)||(a in i||h++,i[a]=b,h>j&&this.remove(n.key))},get:function(a){var b=k[a];if(b)return e(b),i[a]},remove:function(a){var b=k[a];if(b){if(b==l)l=b.p;if(b==n)n=b.n;g(b.n,b.p);delete k[a];delete i[a];h--}},removeAll:function(){i={};h=0;k={};l=n=null},destroy:function(){k=f=i=null;delete a[b]},info:function(){return v({},f,{size:h})}}}var a={};b.info=function(){var b={};m(a,function(a,e){b[e]= | |
a.info()});return b};b.get=function(b){return a[b]};return b}}function yc(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function Db(b){var a={},c="Directive",d=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,e=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,g="Template must have exactly one root element. was: ",h=/^\s*(https?|ftp|mailto|file):/;this.directive=function i(d,e){B(d)?($a(e,"directive"),a.hasOwnProperty(d)||(a[d]=[],b.factory(d+c,["$injector","$exceptionHandler",function(b,c){var e=[];m(a[d], | |
function(a){try{var g=b.invoke(a);if(H(g))g={compile:I(g)};else if(!g.compile&&g.link)g.compile=I(g.link);g.priority=g.priority||0;g.name=g.name||d;g.require=g.require||g.controller&&g.name;g.restrict=g.restrict||"A";e.push(g)}catch(h){c(h)}});return e}])),a[d].push(e)):m(d,nb(i));return this};this.urlSanitizationWhitelist=function(a){return y(a)?(h=a,this):h};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document",function(b, | |
j,k,l,n,o,p,s,t){function x(a,b,c){a instanceof u||(a=u(a));m(a,function(b,c){b.nodeType==3&&b.nodeValue.match(/\S+/)&&(a[c]=u(b).wrap("<span></span>").parent()[0])});var d=A(a,b,a,c);return function(b,c){$a(b,"scope");for(var e=c?ua.clone.call(a):a,j=0,g=e.length;j<g;j++){var h=e[j];(h.nodeType==1||h.nodeType==9)&&e.eq(j).data("$scope",b)}M(e,"ng-scope");c&&c(e,b);d&&d(b,e,e);return e}}function M(a,b){try{a.addClass(b)}catch(c){}}function A(a,b,c,d){function e(a,c,d,g){var h,i,k,p,o,l,n,t=[];o=0; | |
for(l=c.length;o<l;o++)t.push(c[o]);n=o=0;for(l=j.length;o<l;n++)i=t[n],c=j[o++],h=j[o++],c?(c.scope?(k=a.$new(L(c.scope)),u(i).data("$scope",k)):k=a,(p=c.transclude)||!g&&b?c(h,k,i,d,function(b){return function(c){var d=a.$new();d.$$transcluded=!0;return b(d,c).bind("$destroy",Ta(d,d.$destroy))}}(p||b)):c(h,k,i,q,g)):h&&h(a,i.childNodes,q,g)}for(var j=[],g,h,i,k=0;k<a.length;k++)h=new ia,g=N(a[k],[],h,d),h=(g=g.length?J(g,a[k],h,b,c):null)&&g.terminal||!a[k].childNodes||!a[k].childNodes.length?null: | |
A(a[k].childNodes,g?g.transclude:b),j.push(g),j.push(h),i=i||g||h;return i?e:null}function N(a,b,c,g){var j=c.$attr,h;switch(a.nodeType){case 1:r(b,ea(fb(a).toLowerCase()),"E",g);var i,k,o;h=a.attributes;for(var p=0,l=h&&h.length;p<l;p++)if(i=h[p],i.specified)k=i.name,o=ea(k.toLowerCase()),j[o]=k,c[o]=i=Q(Z&&k=="href"?decodeURIComponent(a.getAttribute(k,2)):i.value),Ab(a,o)&&(c[o]=!0),V(a,b,i,o),r(b,o,"A",g);a=a.className;if(B(a)&&a!=="")for(;h=e.exec(a);)o=ea(h[2]),r(b,o,"C",g)&&(c[o]=Q(h[3])),a= | |
a.substr(h.index+h[0].length);break;case 3:y(b,a.nodeValue);break;case 8:try{if(h=d.exec(a.nodeValue))o=ea(h[1]),r(b,o,"M",g)&&(c[o]=Q(h[2]))}catch(n){}}b.sort(F);return b}function J(a,b,c,d,e){function j(a,b){if(a)a.require=r.require,n.push(a);if(b)b.require=r.require,t.push(b)}function h(a,b){var c,d="data",e=!1;if(B(a)){for(;(c=a.charAt(0))=="^"||c=="?";)a=a.substr(1),c=="^"&&(d="inheritedData"),e=e||c=="?";c=b[d]("$"+a+"Controller");if(!c&&!e)throw Error("No controller: "+a);}else E(a)&&(c=[], | |
m(a,function(a){c.push(h(a,b))}));return c}function i(a,d,e,g,j){var l,s,r,D,M;l=b===e?c:hc(c,new ia(u(e),c.$attr));s=l.$$element;if(J){var zc=/^\s*([@=&])\s*(\w*)\s*$/,x=d.$parent||d;m(J.scope,function(a,b){var c=a.match(zc)||[],e=c[2]||b,c=c[1],g,j,h;d.$$isolateBindings[b]=c+e;switch(c){case "@":l.$observe(e,function(a){d[b]=a});l.$$observers[e].$$scope=x;break;case "=":j=o(l[e]);h=j.assign||function(){g=d[b]=j(x);throw Error(Eb+l[e]+" (directive: "+J.name+")");};g=d[b]=j(x);d.$watch(function(){var a= | |
j(x);a!==d[b]&&(a!==g?g=d[b]=a:h(x,a=g=d[b]));return a});break;case "&":j=o(l[e]);d[b]=function(a){return j(x,a)};break;default:throw Error("Invalid isolate scope definition for directive "+J.name+": "+a);}})}y&&m(y,function(a){var b={$scope:d,$element:s,$attrs:l,$transclude:j};M=a.controller;M=="@"&&(M=l[a.name]);s.data("$"+a.name+"Controller",p(M,b))});g=0;for(r=n.length;g<r;g++)try{D=n[g],D(d,s,l,D.require&&h(D.require,s))}catch(A){k(A,pa(s))}a&&a(d,e.childNodes,q,j);g=0;for(r=t.length;g<r;g++)try{D= | |
t[g],D(d,s,l,D.require&&h(D.require,s))}catch(Ac){k(Ac,pa(s))}}for(var l=-Number.MAX_VALUE,n=[],t=[],s=null,J=null,A=null,D=c.$$element=u(b),r,F,W,ja,V=d,y,w,Y,v=0,z=a.length;v<z;v++){r=a[v];W=q;if(l>r.priority)break;if(Y=r.scope)ta("isolated scope",J,r,D),L(Y)&&(M(D,"ng-isolate-scope"),J=r),M(D,"ng-scope"),s=s||r;F=r.name;if(Y=r.controller)y=y||{},ta("'"+F+"' controller",y[F],r,D),y[F]=r;if(Y=r.transclude)ta("transclusion",ja,r,D),ja=r,l=r.priority,Y=="element"?(W=u(b),D=c.$$element=u(T.createComment(" "+ | |
F+": "+c[F]+" ")),b=D[0],C(e,u(W[0]),b),V=x(W,d,l)):(W=u(cb(b)).contents(),D.html(""),V=x(W,d));if(Y=r.template)if(ta("template",A,r,D),A=r,Y=Fb(Y),r.replace){W=u("<div>"+Q(Y)+"</div>").contents();b=W[0];if(W.length!=1||b.nodeType!==1)throw Error(g+Y);C(e,D,b);F={$attr:{}};a=a.concat(N(b,a.splice(v+1,a.length-(v+1)),F));$(c,F);z=a.length}else D.html(Y);if(r.templateUrl)ta("template",A,r,D),A=r,i=R(a.splice(v,a.length-v),i,D,c,e,r.replace,V),z=a.length;else if(r.compile)try{w=r.compile(D,c,V),H(w)? | |
j(null,w):w&&j(w.pre,w.post)}catch(G){k(G,pa(D))}if(r.terminal)i.terminal=!0,l=Math.max(l,r.priority)}i.scope=s&&s.scope;i.transclude=ja&&V;return i}function r(d,e,g,j){var h=!1;if(a.hasOwnProperty(e))for(var o,e=b.get(e+c),l=0,p=e.length;l<p;l++)try{if(o=e[l],(j===q||j>o.priority)&&o.restrict.indexOf(g)!=-1)d.push(o),h=!0}catch(n){k(n)}return h}function $(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;m(a,function(d,e){e.charAt(0)!="$"&&(b[e]&&(d+=(e==="style"?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});m(b, | |
function(b,g){g=="class"?(M(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):g=="style"?e.attr("style",e.attr("style")+";"+b):g.charAt(0)!="$"&&!a.hasOwnProperty(g)&&(a[g]=b,d[g]=c[g])})}function R(a,b,c,d,e,j,h){var i=[],k,o,p=c[0],t=a.shift(),s=v({},t,{controller:null,templateUrl:null,transclude:null,scope:null});c.html("");l.get(t.templateUrl,{cache:n}).success(function(l){var n,t,l=Fb(l);if(j){t=u("<div>"+Q(l)+"</div>").contents();n=t[0];if(t.length!=1||n.nodeType!==1)throw Error(g+l);l={$attr:{}}; | |
C(e,c,n);N(n,a,l);$(d,l)}else n=p,c.html(l);a.unshift(s);k=J(a,n,d,h);for(o=A(c[0].childNodes,h);i.length;){var r=i.pop(),l=i.pop();t=i.pop();var ia=i.pop(),D=n;t!==p&&(D=cb(n),C(l,u(t),D));k(function(){b(o,ia,D,e,r)},ia,D,e,r)}i=null}).error(function(a,b,c,d){throw Error("Failed to load template: "+d.url);});return function(a,c,d,e,g){i?(i.push(c),i.push(d),i.push(e),i.push(g)):k(function(){b(o,c,d,e,g)},c,d,e,g)}}function F(a,b){return b.priority-a.priority}function ta(a,b,c,d){if(b)throw Error("Multiple directives ["+ | |
b.name+", "+c.name+"] asking for "+a+" on: "+pa(d));}function y(a,b){var c=j(b,!0);c&&a.push({priority:0,compile:I(function(a,b){var d=b.parent(),e=d.data("$binding")||[];e.push(c);M(d.data("$binding",e),"ng-binding");a.$watch(c,function(a){b[0].nodeValue=a})})})}function V(a,b,c,d){var e=j(c,!0);e&&b.push({priority:100,compile:I(function(a,b,c){b=c.$$observers||(c.$$observers={});d==="class"&&(e=j(c[d],!0));c[d]=q;(b[d]||(b[d]=[])).$$inter=!0;(c.$$observers&&c.$$observers[d].$$scope||a).$watch(e, | |
function(a){c.$set(d,a)})})})}function C(a,b,c){var d=b[0],e=d.parentNode,g,j;if(a){g=0;for(j=a.length;g<j;g++)if(a[g]==d){a[g]=c;break}}e&&e.replaceChild(c,d);c[u.expando]=d[u.expando];b[0]=c}var ia=function(a,b){this.$$element=a;this.$attr=b||{}};ia.prototype={$normalize:ea,$set:function(a,b,c,d){var e=Ab(this.$$element[0],a),g=this.$$observers;e&&(this.$$element.prop(a,b),d=e);this[a]=b;d?this.$attr[a]=d:(d=this.$attr[a])||(this.$attr[a]=d=Za(a,"-"));if(fb(this.$$element[0])==="A"&&a==="href")D.setAttribute("href", | |
b),e=D.href,e.match(h)||(this[a]=b="unsafe:"+e);c!==!1&&(b===null||b===q?this.$$element.removeAttr(d):this.$$element.attr(d,b));g&&m(g[a],function(a){try{a(b)}catch(c){k(c)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers={}),e=d[a]||(d[a]=[]);e.push(b);s.$evalAsync(function(){e.$$inter||b(c[a])});return b}};var D=t[0].createElement("a"),W=j.startSymbol(),ja=j.endSymbol(),Fb=W=="{{"||ja=="}}"?ma:function(a){return a.replace(/\{\{/g,W).replace(/}}/g,ja)};return x}]}function ea(b){return tb(b.replace(Bc, | |
""))}function Cc(){var b={};this.register=function(a,c){L(a)?v(b,a):b[a]=c};this.$get=["$injector","$window",function(a,c){return function(d,e){if(B(d)){var g=d,d=b.hasOwnProperty(g)?b[g]:gb(e.$scope,g,!0)||gb(c,g,!0);qa(d,g,!0)}return a.instantiate(d,e)}}]}function Dc(){this.$get=["$window",function(b){return u(b.document)}]}function Ec(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Fc(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this): | |
b};this.endSymbol=function(b){return b?(a=b,this):a};this.$get=["$parse",function(c){function d(d,f){for(var i,j,k=0,l=[],n=d.length,o=!1,p=[];k<n;)(i=d.indexOf(b,k))!=-1&&(j=d.indexOf(a,i+e))!=-1?(k!=i&&l.push(d.substring(k,i)),l.push(k=c(o=d.substring(i+e,j))),k.exp=o,k=j+g,o=!0):(k!=n&&l.push(d.substring(k)),k=n);if(!(n=l.length))l.push(""),n=1;if(!f||o)return p.length=n,k=function(a){for(var b=0,c=n,d;b<c;b++){if(typeof(d=l[b])=="function")d=d(a),d==null||d==q?d="":typeof d!="string"&&(d=da(d)); | |
p[b]=d}return p.join("")},k.exp=d,k.parts=l,k}var e=b.length,g=a.length;d.startSymbol=function(){return b};d.endSymbol=function(){return a};return d}]}function Gb(b){for(var b=b.split("/"),a=b.length;a--;)b[a]=Xa(b[a]);return b.join("/")}function va(b,a){var c=Hb.exec(b),c={protocol:c[1],host:c[3],port:G(c[5])||Ib[c[1]]||null,path:c[6]||"/",search:c[8],hash:c[10]};if(a)a.$$protocol=c.protocol,a.$$host=c.host,a.$$port=c.port;return c}function ka(b,a,c){return b+"://"+a+(c==Ib[b]?"":":"+c)}function Gc(b, | |
a,c){var d=va(b);return decodeURIComponent(d.path)!=a||w(d.hash)||d.hash.indexOf(c)!==0?b:ka(d.protocol,d.host,d.port)+a.substr(0,a.lastIndexOf("/"))+d.hash.substr(c.length)}function Hc(b,a,c){var d=va(b);if(decodeURIComponent(d.path)==a&&!w(d.hash)&&d.hash.indexOf(c)===0)return b;else{var e=d.search&&"?"+d.search||"",g=d.hash&&"#"+d.hash||"",h=a.substr(0,a.lastIndexOf("/")),f=d.path.substr(h.length);if(d.path.indexOf(h)!==0)throw Error('Invalid url "'+b+'", missing path prefix "'+h+'" !');return ka(d.protocol, | |
d.host,d.port)+a+"#"+c+f+e+g}}function hb(b,a,c){a=a||"";this.$$parse=function(b){var c=va(b,this);if(c.path.indexOf(a)!==0)throw Error('Invalid url "'+b+'", missing path prefix "'+a+'" !');this.$$path=decodeURIComponent(c.path.substr(a.length));this.$$search=Va(c.search);this.$$hash=c.hash&&decodeURIComponent(c.hash)||"";this.$$compose()};this.$$compose=function(){var b=qb(this.$$search),c=this.$$hash?"#"+Xa(this.$$hash):"";this.$$url=Gb(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=ka(this.$$protocol, | |
this.$$host,this.$$port)+a+this.$$url};this.$$rewriteAppUrl=function(a){if(a.indexOf(c)==0)return a};this.$$parse(b)}function Ga(b,a,c){var d;this.$$parse=function(b){var c=va(b,this);if(c.hash&&c.hash.indexOf(a)!==0)throw Error('Invalid url "'+b+'", missing hash prefix "'+a+'" !');d=c.path+(c.search?"?"+c.search:"");c=Ic.exec((c.hash||"").substr(a.length));this.$$path=c[1]?(c[1].charAt(0)=="/"?"":"/")+decodeURIComponent(c[1]):"";this.$$search=Va(c[3]);this.$$hash=c[5]&&decodeURIComponent(c[5])|| | |
"";this.$$compose()};this.$$compose=function(){var b=qb(this.$$search),c=this.$$hash?"#"+Xa(this.$$hash):"";this.$$url=Gb(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=ka(this.$$protocol,this.$$host,this.$$port)+d+(this.$$url?"#"+a+this.$$url:"")};this.$$rewriteAppUrl=function(a){if(a.indexOf(c)==0)return a};this.$$parse(b)}function Jb(b,a,c,d){Ga.apply(this,arguments);this.$$rewriteAppUrl=function(b){if(b.indexOf(c)==0)return c+d+"#"+a+b.substr(c.length)}}function Ha(b){return function(){return this[b]}} | |
function Kb(b,a){return function(c){if(w(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Jc(){var b="",a=!1;this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return y(b)?(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,g){function h(a){c.$broadcast("$locationChangeSuccess",f.absUrl(),a)}var f,i,j,k=d.url(),l=va(k);a?(i=d.baseHref()||"/",j=i.substr(0,i.lastIndexOf("/")),l=ka(l.protocol,l.host,l.port)+j+"/", | |
f=e.history?new hb(Gc(k,i,b),j,l):new Jb(Hc(k,i,b),b,l,i.substr(j.length+1))):(l=ka(l.protocol,l.host,l.port)+(l.path||"")+(l.search?"?"+l.search:"")+"#"+b+"/",f=new Ga(k,b,l));g.bind("click",function(a){if(!a.ctrlKey&&!(a.metaKey||a.which==2)){for(var b=u(a.target);z(b[0].nodeName)!=="a";)if(b[0]===g[0]||!(b=b.parent())[0])return;var d=b.prop("href"),e=f.$$rewriteAppUrl(d);d&&!b.attr("target")&&e&&(f.$$parse(e),c.$apply(),a.preventDefault(),P.angular["ff-684208-preventDefault"]=!0)}});f.absUrl()!= | |
k&&d.url(f.absUrl(),!0);d.onUrlChange(function(a){f.absUrl()!=a&&(c.$broadcast("$locationChangeStart",a,f.absUrl()).defaultPrevented?d.url(f.absUrl()):(c.$evalAsync(function(){var b=f.absUrl();f.$$parse(a);h(b)}),c.$$phase||c.$digest()))});var n=0;c.$watch(function(){var a=d.url(),b=f.$$replace;if(!n||a!=f.absUrl())n++,c.$evalAsync(function(){c.$broadcast("$locationChangeStart",f.absUrl(),a).defaultPrevented?f.$$parse(a):(d.url(f.absUrl(),b),h(a))});f.$$replace=!1;return n});return f}]}function Kc(){this.$get= | |
["$window",function(b){function a(a){a instanceof Error&&(a.stack?a=a.message&&a.stack.indexOf(a.message)===-1?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function c(c){var e=b.console||{},g=e[c]||e.log||C;return g.apply?function(){var b=[];m(arguments,function(c){b.push(a(c))});return g.apply(e,b)}:function(a,b){g(a,b)}}return{log:c("log"),warn:c("warn"),info:c("info"),error:c("error")}}]}function Lc(b,a){function c(a){return a.indexOf(t)!= | |
-1}function d(){return p+1<b.length?b.charAt(p+1):!1}function e(a){return"0"<=a&&a<="9"}function g(a){return a==" "||a=="\r"||a=="\t"||a=="\n"||a=="\u000b"||a=="\u00a0"}function h(a){return"a"<=a&&a<="z"||"A"<=a&&a<="Z"||"_"==a||a=="$"}function f(a){return a=="-"||a=="+"||e(a)}function i(a,c,d){d=d||p;throw Error("Lexer Error: "+a+" at column"+(y(c)?"s "+c+"-"+p+" ["+b.substring(c,d)+"]":" "+d)+" in expression ["+b+"].");}function j(){for(var a="",c=p;p<b.length;){var g=z(b.charAt(p));if(g=="."|| | |
e(g))a+=g;else{var j=d();if(g=="e"&&f(j))a+=g;else if(f(g)&&j&&e(j)&&a.charAt(a.length-1)=="e")a+=g;else if(f(g)&&(!j||!e(j))&&a.charAt(a.length-1)=="e")i("Invalid exponent");else break}p++}a*=1;n.push({index:c,text:a,json:!0,fn:function(){return a}})}function k(){for(var c="",d=p,f,j,i,k;p<b.length;){k=b.charAt(p);if(k=="."||h(k)||e(k))k=="."&&(f=p),c+=k;else break;p++}if(f)for(j=p;j<b.length;){k=b.charAt(j);if(k=="("){i=c.substr(f-d+1);c=c.substr(0,f-d);p=j;break}if(g(k))j++;else break}d={index:d, | |
text:c};if(Ia.hasOwnProperty(c))d.fn=d.json=Ia[c];else{var l=Lb(c,a);d.fn=v(function(a,b){return l(a,b)},{assign:function(a,b){return Mb(a,c,b)}})}n.push(d);i&&(n.push({index:f,text:".",json:!1}),n.push({index:f+1,text:i,json:!1}))}function l(a){var c=p;p++;for(var d="",e=a,f=!1;p<b.length;){var g=b.charAt(p);e+=g;if(f)g=="u"?(g=b.substring(p+1,p+5),g.match(/[\da-f]{4}/i)||i("Invalid unicode escape [\\u"+g+"]"),p+=4,d+=String.fromCharCode(parseInt(g,16))):(f=Mc[g],d+=f?f:g),f=!1;else if(g=="\\")f= | |
!0;else if(g==a){p++;n.push({index:c,text:e,string:d,json:!0,fn:function(){return d}});return}else d+=g;p++}i("Unterminated quote",c)}for(var n=[],o,p=0,s=[],t,x=":";p<b.length;){t=b.charAt(p);if(c("\"'"))l(t);else if(e(t)||c(".")&&e(d()))j();else if(h(t)){if(k(),"{,".indexOf(x)!=-1&&s[0]=="{"&&(o=n[n.length-1]))o.json=o.text.indexOf(".")==-1}else if(c("(){}[].,;:"))n.push({index:p,text:t,json:":[,".indexOf(x)!=-1&&c("{[")||c("}]:,")}),c("{[")&&s.unshift(t),c("}]")&&s.shift(),p++;else if(g(t)){p++; | |
continue}else{var m=t+d(),A=Ia[t],N=Ia[m];N?(n.push({index:p,text:m,fn:N}),p+=2):A?(n.push({index:p,text:t,fn:A,json:"[,:".indexOf(x)!=-1&&c("+-")}),p+=1):i("Unexpected next character ",p,p+1)}x=t}return n}function Nc(b,a,c,d){function e(a,c){throw Error("Syntax Error: Token '"+c.text+"' "+a+" at column "+(c.index+1)+" of the expression ["+b+"] starting at ["+b.substring(c.index)+"].");}function g(){if(R.length===0)throw Error("Unexpected end of expression: "+b);return R[0]}function h(a,b,c,d){if(R.length> | |
0){var e=R[0],f=e.text;if(f==a||f==b||f==c||f==d||!a&&!b&&!c&&!d)return e}return!1}function f(b,c,d,f){return(b=h(b,c,d,f))?(a&&!b.json&&e("is not valid json",b),R.shift(),b):!1}function i(a){f(a)||e("is unexpected, expecting ["+a+"]",h())}function j(a,b){return function(c,d){return a(c,d,b)}}function k(a,b,c){return function(d,e){return b(d,e,a,c)}}function l(){for(var a=[];;)if(R.length>0&&!h("}",")",";","]")&&a.push(w()),!f(";"))return a.length==1?a[0]:function(b,c){for(var d,e=0;e<a.length;e++){var f= | |
a[e];f&&(d=f(b,c))}return d}}function n(){for(var a=f(),b=c(a.text),d=[];;)if(a=f(":"))d.push(F());else{var e=function(a,c,e){for(var e=[e],f=0;f<d.length;f++)e.push(d[f](a,c));return b.apply(a,e)};return function(){return e}}}function o(){for(var a=p(),b;;)if(b=f("||"))a=k(a,b.fn,p());else return a}function p(){var a=s(),b;if(b=f("&&"))a=k(a,b.fn,p());return a}function s(){var a=t(),b;if(b=f("==","!="))a=k(a,b.fn,s());return a}function t(){var a;a=x();for(var b;b=f("+","-");)a=k(a,b.fn,x());if(b= | |
f("<",">","<=",">="))a=k(a,b.fn,t());return a}function x(){for(var a=m(),b;b=f("*","/","%");)a=k(a,b.fn,m());return a}function m(){var a;return f("+")?A():(a=f("-"))?k(r,a.fn,m()):(a=f("!"))?j(a.fn,m()):A()}function A(){var a;if(f("("))a=w(),i(")");else if(f("["))a=N();else if(f("{"))a=J();else{var b=f();(a=b.fn)||e("not a primary expression",b)}for(var c;b=f("(","[",".");)b.text==="("?(a=y(a,c),c=null):b.text==="["?(c=a,a=V(a)):b.text==="."?(c=a,a=u(a)):e("IMPOSSIBLE");return a}function N(){var a= | |
[];if(g().text!="]"){do a.push(F());while(f(","))}i("]");return function(b,c){for(var d=[],e=0;e<a.length;e++)d.push(a[e](b,c));return d}}function J(){var a=[];if(g().text!="}"){do{var b=f(),b=b.string||b.text;i(":");var c=F();a.push({key:b,value:c})}while(f(","))}i("}");return function(b,c){for(var d={},e=0;e<a.length;e++){var f=a[e];d[f.key]=f.value(b,c)}return d}}var r=I(0),$,R=Lc(b,d),F=function(){var a=o(),c,d;return(d=f("="))?(a.assign||e("implies assignment but ["+b.substring(0,d.index)+"] can not be assigned to", | |
d),c=o(),function(b,d){return a.assign(b,c(b,d),d)}):a},y=function(a,b){var c=[];if(g().text!=")"){do c.push(F());while(f(","))}i(")");return function(d,e){for(var f=[],g=b?b(d,e):d,j=0;j<c.length;j++)f.push(c[j](d,e));j=a(d,e,g)||C;return j.apply?j.apply(g,f):j(f[0],f[1],f[2],f[3],f[4])}},u=function(a){var b=f().text,c=Lb(b,d);return v(function(b,d,e){return c(e||a(b,d),d)},{assign:function(c,d,e){return Mb(a(c,e),b,d)}})},V=function(a){var b=F();i("]");return v(function(c,d){var e=a(c,d),f=b(c, | |
d),g;if(!e)return q;if((e=e[f])&&e.then){g=e;if(!("$$v"in e))g.$$v=q,g.then(function(a){g.$$v=a});e=e.$$v}return e},{assign:function(c,d,e){return a(c,e)[b(c,e)]=d}})},w=function(){for(var a=F(),b;;)if(b=f("|"))a=k(a,b.fn,n());else return a};a?(F=o,y=u=V=w=function(){e("is not valid json",{text:b,index:0})},$=A()):$=l();R.length!==0&&e("is an unexpected token",R[0]);return $}function Mb(b,a,c){for(var a=a.split("."),d=0;a.length>1;d++){var e=a.shift(),g=b[e];g||(g={},b[e]=g);b=g}return b[a.shift()]= | |
c}function gb(b,a,c){if(!a)return b;for(var a=a.split("."),d,e=b,g=a.length,h=0;h<g;h++)d=a[h],b&&(b=(e=b)[d]);return!c&&H(b)?Ta(e,b):b}function Nb(b,a,c,d,e){return function(g,h){var f=h&&h.hasOwnProperty(b)?h:g,i;if(f===null||f===q)return f;if((f=f[b])&&f.then){if(!("$$v"in f))i=f,i.$$v=q,i.then(function(a){i.$$v=a});f=f.$$v}if(!a||f===null||f===q)return f;if((f=f[a])&&f.then){if(!("$$v"in f))i=f,i.$$v=q,i.then(function(a){i.$$v=a});f=f.$$v}if(!c||f===null||f===q)return f;if((f=f[c])&&f.then){if(!("$$v"in | |
f))i=f,i.$$v=q,i.then(function(a){i.$$v=a});f=f.$$v}if(!d||f===null||f===q)return f;if((f=f[d])&&f.then){if(!("$$v"in f))i=f,i.$$v=q,i.then(function(a){i.$$v=a});f=f.$$v}if(!e||f===null||f===q)return f;if((f=f[e])&&f.then){if(!("$$v"in f))i=f,i.$$v=q,i.then(function(a){i.$$v=a});f=f.$$v}return f}}function Lb(b,a){if(ib.hasOwnProperty(b))return ib[b];var c=b.split("."),d=c.length,e;if(a)e=d<6?Nb(c[0],c[1],c[2],c[3],c[4]):function(a,b){var e=0,g;do g=Nb(c[e++],c[e++],c[e++],c[e++],c[e++])(a,b),b=q, | |
a=g;while(e<d);return g};else{var g="var l, fn, p;\n";m(c,function(a,b){g+="if(s === null || s === undefined) return s;\nl=s;\ns="+(b?"s":'((k&&k.hasOwnProperty("'+a+'"))?k:s)')+'["'+a+'"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'});g+="return s;";e=Function("s","k",g);e.toString=function(){return g}}return ib[b]=e}function Oc(){var b={};this.$get=["$filter","$sniffer",function(a,c){return function(d){switch(typeof d){case "string":return b.hasOwnProperty(d)? | |
b[d]:b[d]=Nc(d,!1,a,c.csp);case "function":return d;default:return C}}}]}function Pc(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return Qc(function(a){b.$evalAsync(a)},a)}]}function Qc(b,a){function c(a){return a}function d(a){return h(a)}var e=function(){var f=[],i,j;return j={resolve:function(a){if(f){var c=f;f=q;i=g(a);c.length&&b(function(){for(var a,b=0,d=c.length;b<d;b++)a=c[b],i.then(a[0],a[1])})}},reject:function(a){j.resolve(h(a))},promise:{then:function(b,g){var j=e(),h= | |
function(d){try{j.resolve((b||c)(d))}catch(e){a(e),j.reject(e)}},p=function(b){try{j.resolve((g||d)(b))}catch(c){a(c),j.reject(c)}};f?f.push([h,p]):i.then(h,p);return j.promise}}}},g=function(a){return a&&a.then?a:{then:function(c){var d=e();b(function(){d.resolve(c(a))});return d.promise}}},h=function(a){return{then:function(c,g){var h=e();b(function(){h.resolve((g||d)(a))});return h.promise}}};return{defer:e,reject:h,when:function(f,i,j){var k=e(),l,n=function(b){try{return(i||c)(b)}catch(d){return a(d), | |
h(d)}},o=function(b){try{return(j||d)(b)}catch(c){return a(c),h(c)}};b(function(){g(f).then(function(a){l||(l=!0,k.resolve(g(a).then(n,o)))},function(a){l||(l=!0,k.resolve(o(a)))})});return k.promise},all:function(a){var b=e(),c=a.length,d=[];c?m(a,function(a,e){g(a).then(function(a){e in d||(d[e]=a,--c||b.resolve(d))},function(a){e in d||b.reject(a)})}):b.resolve(d);return b.promise}}}function Rc(){var b={};this.when=function(a,c){b[a]=v({reloadOnSearch:!0},c);if(a){var d=a[a.length-1]=="/"?a.substr(0, | |
a.length-1):a+"/";b[d]={redirectTo:a}}return this};this.otherwise=function(a){this.when(null,a);return this};this.$get=["$rootScope","$location","$routeParams","$q","$injector","$http","$templateCache",function(a,c,d,e,g,h,f){function i(a,b){for(var b="^"+b.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"$",c="",d=[],e={},f=/:(\w+)/g,g,j=0;(g=f.exec(b))!==null;)c+=b.slice(j,g.index),c+="([^\\/]*)",d.push(g[1]),j=f.lastIndex;c+=b.substr(j);var h=a.match(RegExp(c));h&&m(d,function(a,b){e[a]=h[b+1]});return h? | |
e:null}function j(){var b=k(),j=o.current;if(b&&j&&b.$$route===j.$$route&&fa(b.pathParams,j.pathParams)&&!b.reloadOnSearch&&!n)j.params=b.params,U(j.params,d),a.$broadcast("$routeUpdate",j);else if(b||j)n=!1,a.$broadcast("$routeChangeStart",b,j),(o.current=b)&&b.redirectTo&&(B(b.redirectTo)?c.path(l(b.redirectTo,b.params)).search(b.params).replace():c.url(b.redirectTo(b.pathParams,c.path(),c.search())).replace()),e.when(b).then(function(){if(b){var a=[],c=[],d;m(b.resolve||{},function(b,d){a.push(d); | |
c.push(B(b)?g.get(b):g.invoke(b))});if(!y(d=b.template))if(y(d=b.templateUrl))d=h.get(d,{cache:f}).then(function(a){return a.data});y(d)&&(a.push("$template"),c.push(d));return e.all(c).then(function(b){var c={};m(b,function(b,d){c[a[d]]=b});return c})}}).then(function(c){if(b==o.current){if(b)b.locals=c,U(b.params,d);a.$broadcast("$routeChangeSuccess",b,j)}},function(c){b==o.current&&a.$broadcast("$routeChangeError",b,j,c)})}function k(){var a,d;m(b,function(b,e){if(!d&&(a=i(c.path(),e)))d=ya(b, | |
{params:v({},c.search(),a),pathParams:a}),d.$$route=b});return d||b[null]&&ya(b[null],{params:{},pathParams:{}})}function l(a,b){var c=[];m((a||"").split(":"),function(a,d){if(d==0)c.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];c.push(b[f]);c.push(e[2]||"");delete b[f]}});return c.join("")}var n=!1,o={routes:b,reload:function(){n=!0;a.$evalAsync(j)}};a.$on("$locationChangeSuccess",j);return o}]}function Sc(){this.$get=I({})}function Tc(){var b=10;this.digestTtl=function(a){arguments.length&&(b= | |
a);return b};this.$get=["$injector","$exceptionHandler","$parse",function(a,c,d){function e(){this.$id=xa();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this["this"]=this.$root=this;this.$$destroyed=!1;this.$$asyncQueue=[];this.$$listeners={};this.$$isolateBindings={}}function g(a){if(i.$$phase)throw Error(i.$$phase+" already in progress");i.$$phase=a}function h(a,b){var c=d(a);qa(c,b);return c}function f(){}e.prototype={$new:function(a){if(H(a))throw Error("API-CHANGE: Use $controller to instantiate controllers."); | |
a?(a=new e,a.$root=this.$root):(a=function(){},a.prototype=this,a=new a,a.$id=xa());a["this"]=a;a.$$listeners={};a.$parent=this;a.$$asyncQueue=[];a.$$watchers=a.$$nextSibling=a.$$childHead=a.$$childTail=null;a.$$prevSibling=this.$$childTail;this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=a:this.$$childHead=this.$$childTail=a;return a},$watch:function(a,b,c){var d=h(a,"watch"),e=this.$$watchers,g={fn:b,last:f,get:d,exp:a,eq:!!c};if(!H(b)){var i=h(b||C,"listener");g.fn=function(a,b, | |
c){i(c)}}if(!e)e=this.$$watchers=[];e.unshift(g);return function(){Sa(e,g)}},$digest:function(){var a,d,e,h,o,p,m,t=b,x,q=[],A,N;g("$digest");do{m=!1;x=this;do{for(o=x.$$asyncQueue;o.length;)try{x.$eval(o.shift())}catch(J){c(J)}if(h=x.$$watchers)for(p=h.length;p--;)try{if(a=h[p],(d=a.get(x))!==(e=a.last)&&!(a.eq?fa(d,e):typeof d=="number"&&typeof e=="number"&&isNaN(d)&&isNaN(e)))m=!0,a.last=a.eq?U(d):d,a.fn(d,e===f?d:e,x),t<5&&(A=4-t,q[A]||(q[A]=[]),N=H(a.exp)?"fn: "+(a.exp.name||a.exp.toString()): | |
a.exp,N+="; newVal: "+da(d)+"; oldVal: "+da(e),q[A].push(N))}catch(r){c(r)}if(!(h=x.$$childHead||x!==this&&x.$$nextSibling))for(;x!==this&&!(h=x.$$nextSibling);)x=x.$parent}while(x=h);if(m&&!t--)throw i.$$phase=null,Error(b+" $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: "+da(q));}while(m||o.length);i.$$phase=null},$destroy:function(){if(!(i==this||this.$$destroyed)){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(a.$$childHead==this)a.$$childHead= | |
this.$$nextSibling;if(a.$$childTail==this)a.$$childTail=this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling=this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling=this.$$prevSibling;this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null}},$eval:function(a,b){return d(a)(this,b)},$evalAsync:function(a){this.$$asyncQueue.push(a)},$apply:function(a){try{return g("$apply"),this.$eval(a)}catch(b){c(b)}finally{i.$$phase=null;try{i.$digest()}catch(d){throw c(d), | |
d;}}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);return function(){c[za(c,b)]=null}},$emit:function(a,b){var d=[],e,f=this,g=!1,h={name:a,targetScope:f,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},i=[h].concat(ha.call(arguments,1)),m,q;do{e=f.$$listeners[a]||d;h.currentScope=f;m=0;for(q=e.length;m<q;m++)if(e[m])try{if(e[m].apply(null,i),g)return h}catch(A){c(A)}else e.splice(m,1),m--,q--;f=f.$parent}while(f); | |
return h},$broadcast:function(a,b){var d=this,e=this,f={name:a,targetScope:this,preventDefault:function(){f.defaultPrevented=!0},defaultPrevented:!1},g=[f].concat(ha.call(arguments,1)),h,i;do{d=e;f.currentScope=d;e=d.$$listeners[a]||[];h=0;for(i=e.length;h<i;h++)if(e[h])try{e[h].apply(null,g)}catch(m){c(m)}else e.splice(h,1),h--,i--;if(!(e=d.$$childHead||d!==this&&d.$$nextSibling))for(;d!==this&&!(e=d.$$nextSibling);)d=d.$parent}while(d=e);return f}};var i=new e;return i}]}function Uc(){this.$get= | |
["$window",function(b){var a={},c=G((/android (\d+)/.exec(z(b.navigator.userAgent))||[])[1]);return{history:!(!b.history||!b.history.pushState||c<4),hashchange:"onhashchange"in b&&(!b.document.documentMode||b.document.documentMode>7),hasEvent:function(c){if(c=="input"&&Z==9)return!1;if(w(a[c])){var e=b.document.createElement("div");a[c]="on"+c in e}return a[c]},csp:!1}}]}function Vc(){this.$get=I(P)}function Ob(b){var a={},c,d,e;if(!b)return a;m(b.split("\n"),function(b){e=b.indexOf(":");c=z(Q(b.substr(0, | |
e)));d=Q(b.substr(e+1));c&&(a[c]?a[c]+=", "+d:a[c]=d)});return a}function Pb(b){var a=L(b)?b:q;return function(c){a||(a=Ob(b));return c?a[z(c)]||null:a}}function Qb(b,a,c){if(H(c))return c(b,a);m(c,function(c){b=c(b,a)});return b}function Wc(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d=this.defaults={transformResponse:[function(d){B(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=pb(d,!0)));return d}],transformRequest:[function(a){return L(a)&&wa.apply(a)!=="[object File]"?da(a):a}], | |
headers:{common:{Accept:"application/json, text/plain, */*","X-Requested-With":"XMLHttpRequest"},post:{"Content-Type":"application/json;charset=utf-8"},put:{"Content-Type":"application/json;charset=utf-8"}}},e=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,i,j,k){function l(a){function c(a){var b=v({},a,{data:Qb(a.data,a.headers,f)});return 200<=a.status&&a.status<300?b:j.reject(b)}a.method=la(a.method);var e=a.transformRequest|| | |
d.transformRequest,f=a.transformResponse||d.transformResponse,g=d.headers,g=v({"X-XSRF-TOKEN":b.cookies()["XSRF-TOKEN"]},g.common,g[z(a.method)],a.headers),e=Qb(a.data,Pb(g),e),i;w(a.data)&&delete g["Content-Type"];i=n(a,e,g);i=i.then(c,c);m(s,function(a){i=a(i)});i.success=function(b){i.then(function(c){b(c.data,c.status,c.headers,a)});return i};i.error=function(b){i.then(null,function(c){b(c.data,c.status,c.headers,a)});return i};return i}function n(b,c,d){function e(a,b,c){m&&(200<=a&&a<300?m.put(q, | |
[a,b,Ob(c)]):m.remove(q));f(b,a,c);i.$apply()}function f(a,c,d){c=Math.max(c,0);(200<=c&&c<300?k.resolve:k.reject)({data:a,status:c,headers:Pb(d),config:b})}function h(){var a=za(l.pendingRequests,b);a!==-1&&l.pendingRequests.splice(a,1)}var k=j.defer(),n=k.promise,m,s,q=o(b.url,b.params);l.pendingRequests.push(b);n.then(h,h);b.cache&&b.method=="GET"&&(m=L(b.cache)?b.cache:p);if(m)if(s=m.get(q))if(s.then)return s.then(h,h),s;else E(s)?f(s[1],s[0],U(s[2])):f(s,200,{});else m.put(q,n);s||a(b.method, | |
q,c,e,d,b.timeout,b.withCredentials);return n}function o(a,b){if(!b)return a;var c=[];fc(b,function(a,b){a==null||a==q||(L(a)&&(a=da(a)),c.push(encodeURIComponent(b)+"="+encodeURIComponent(a)))});return a+(a.indexOf("?")==-1?"?":"&")+c.join("&")}var p=c("$http"),s=[];m(e,function(a){s.push(B(a)?k.get(a):k.invoke(a))});l.pendingRequests=[];(function(a){m(arguments,function(a){l[a]=function(b,c){return l(v(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){m(arguments,function(a){l[a]= | |
function(b,c,d){return l(v(d||{},{method:a,url:b,data:c}))}})})("post","put");l.defaults=d;return l}]}function Xc(){this.$get=["$browser","$window","$document",function(b,a,c){return Yc(b,Zc,b.defer,a.angular.callbacks,c[0],a.location.protocol.replace(":",""))}]}function Yc(b,a,c,d,e,g){function h(a,b){var c=e.createElement("script"),d=function(){e.body.removeChild(c);b&&b()};c.type="text/javascript";c.src=a;Z?c.onreadystatechange=function(){/loaded|complete/.test(c.readyState)&&d()}:c.onload=c.onerror= | |
d;e.body.appendChild(c)}return function(e,i,j,k,l,n,o){function p(a,c,d,e){c=(i.match(Hb)||["",g])[1]=="file"?d?200:404:c;a(c==1223?204:c,d,e);b.$$completeOutstandingRequest(C)}b.$$incOutstandingRequestCount();i=i||b.url();if(z(e)=="jsonp"){var s="_"+(d.counter++).toString(36);d[s]=function(a){d[s].data=a};h(i.replace("JSON_CALLBACK","angular.callbacks."+s),function(){d[s].data?p(k,200,d[s].data):p(k,-2);delete d[s]})}else{var t=new a;t.open(e,i,!0);m(l,function(a,b){a&&t.setRequestHeader(b,a)}); | |
var q;t.onreadystatechange=function(){if(t.readyState==4){var a=t.getAllResponseHeaders(),b=["Cache-Control","Content-Language","Content-Type","Expires","Last-Modified","Pragma"];a||(a="",m(b,function(b){var c=t.getResponseHeader(b);c&&(a+=b+": "+c+"\n")}));p(k,q||t.status,t.responseText,a)}};if(o)t.withCredentials=!0;t.send(j||"");n>0&&c(function(){q=-1;t.abort()},n)}}}function $c(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0, | |
maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","), | |
AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return b===1?"one":"other"}}}}function ad(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,f,i){var j=c.defer(),k=j.promise,l=y(i)&&!i,f=a.defer(function(){try{j.resolve(e())}catch(a){j.reject(a),d(a)}l||b.$apply()},f),i=function(){delete g[k.$$timeoutId]}; | |
k.$$timeoutId=f;g[f]=j;k.then(i,i);return k}var g={};e.cancel=function(b){return b&&b.$$timeoutId in g?(g[b.$$timeoutId].reject("canceled"),a.defer.cancel(b.$$timeoutId)):!1};return e}]}function Rb(b){function a(a,e){return b.factory(a+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",Sb);a("date",Tb);a("filter",bd);a("json",cd);a("limitTo",dd);a("lowercase",ed);a("number",Ub);a("orderBy",Vb);a("uppercase",fd)}function bd(){return function(b, | |
a){if(!E(b))return b;var c=[];c.check=function(a){for(var b=0;b<c.length;b++)if(!c[b](a))return!1;return!0};var d=function(a,b){if(b.charAt(0)==="!")return!d(a,b.substr(1));switch(typeof a){case "boolean":case "number":case "string":return(""+a).toLowerCase().indexOf(b)>-1;case "object":for(var c in a)if(c.charAt(0)!=="$"&&d(a[c],b))return!0;return!1;case "array":for(c=0;c<a.length;c++)if(d(a[c],b))return!0;return!1;default:return!1}};switch(typeof a){case "boolean":case "number":case "string":a= | |
{$:a};case "object":for(var e in a)e=="$"?function(){var b=(""+a[e]).toLowerCase();b&&c.push(function(a){return d(a,b)})}():function(){var b=e,f=(""+a[e]).toLowerCase();f&&c.push(function(a){return d(gb(a,b),f)})}();break;case "function":c.push(a);break;default:return b}for(var g=[],h=0;h<b.length;h++){var f=b[h];c.check(f)&&g.push(f)}return g}}function Sb(b){var a=b.NUMBER_FORMATS;return function(b,d){if(w(d))d=a.CURRENCY_SYM;return Wb(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,2).replace(/\u00A4/g, | |
d)}}function Ub(b){var a=b.NUMBER_FORMATS;return function(b,d){return Wb(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function Wb(b,a,c,d,e){if(isNaN(b)||!isFinite(b))return"";var g=b<0,b=Math.abs(b),h=b+"",f="",i=[],j=!1;if(h.indexOf("e")!==-1){var k=h.match(/([\d\.]+)e(-?)(\d+)/);k&&k[2]=="-"&&k[3]>e+1?h="0":(f=h,j=!0)}if(!j){h=(h.split(Xb)[1]||"").length;w(e)&&(e=Math.min(Math.max(a.minFrac,h),a.maxFrac));var h=Math.pow(10,e),b=Math.round(b*h)/h,b=(""+b).split(Xb),h=b[0],b=b[1]||"",j=0,k=a.lgSize, | |
l=a.gSize;if(h.length>=k+l)for(var j=h.length-k,n=0;n<j;n++)(j-n)%l===0&&n!==0&&(f+=c),f+=h.charAt(n);for(n=j;n<h.length;n++)(h.length-n)%k===0&&n!==0&&(f+=c),f+=h.charAt(n);for(;b.length<e;)b+="0";e&&e!=="0"&&(f+=d+b.substr(0,e))}i.push(g?a.negPre:a.posPre);i.push(f);i.push(g?a.negSuf:a.posSuf);return i.join("")}function jb(b,a,c){var d="";b<0&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function O(b,a,c,d){c=c||0;return function(e){e=e["get"+b]();if(c>0||e> | |
-c)e+=c;e===0&&c==-12&&(e=12);return jb(e,a,d)}}function Ja(b,a){return function(c,d){var e=c["get"+b](),g=la(a?"SHORT"+b:b);return d[g][e]}}function Tb(b){function a(a){var b;if(b=a.match(c)){var a=new Date(0),g=0,h=0;b[9]&&(g=G(b[9]+b[10]),h=G(b[9]+b[11]));a.setUTCFullYear(G(b[1]),G(b[2])-1,G(b[3]));a.setUTCHours(G(b[4]||0)-g,G(b[5]||0)-h,G(b[6]||0),G(b[7]||0))}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c, | |
e){var g="",h=[],f,i,e=e||"mediumDate",e=b.DATETIME_FORMATS[e]||e;B(c)&&(c=gd.test(c)?G(c):a(c));Qa(c)&&(c=new Date(c));if(!na(c))return c;for(;e;)(i=hd.exec(e))?(h=h.concat(ha.call(i,1)),e=h.pop()):(h.push(e),e=null);m(h,function(a){f=id[a];g+=f?f(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function cd(){return function(b){return da(b,!0)}}function dd(){return function(b,a){if(!(b instanceof Array))return b;var a=G(a),c=[],d,e;if(!b||!(b instanceof Array))return c; | |
a>b.length?a=b.length:a<-b.length&&(a=-b.length);a>0?(d=0,e=a):(d=b.length+a,e=b.length);for(;d<e;d++)c.push(b[d]);return c}}function Vb(b){return function(a,c,d){function e(a,b){return Ua(b)?function(b,c){return a(c,b)}:a}if(!E(a))return a;if(!c)return a;for(var c=E(c)?c:[c],c=Ra(c,function(a){var c=!1,d=a||ma;if(B(a)){if(a.charAt(0)=="+"||a.charAt(0)=="-")c=a.charAt(0)=="-",a=a.substring(1);d=b(a)}return e(function(a,b){var c;c=d(a);var e=d(b),f=typeof c,g=typeof e;f==g?(f=="string"&&(c=c.toLowerCase()), | |
f=="string"&&(e=e.toLowerCase()),c=c===e?0:c<e?-1:1):c=f<g?-1:1;return c},c)}),g=[],h=0;h<a.length;h++)g.push(a[h]);return g.sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(e!==0)return e}return 0},d))}}function S(b){H(b)&&(b={link:b});b.restrict=b.restrict||"AC";return I(b)}function Yb(b,a){function c(a,c){c=c?"-"+Za(c,"-"):"";b.removeClass((a?Ka:La)+c).addClass((a?La:Ka)+c)}var d=this,e=b.parent().controller("form")||Ma,g=0,h=d.$error={};d.$name=a.name;d.$dirty=!1;d.$pristine= | |
!0;d.$valid=!0;d.$invalid=!1;e.$addControl(d);b.addClass(Na);c(!0);d.$addControl=function(a){a.$name&&!d.hasOwnProperty(a.$name)&&(d[a.$name]=a)};d.$removeControl=function(a){a.$name&&d[a.$name]===a&&delete d[a.$name];m(h,function(b,c){d.$setValidity(c,!0,a)})};d.$setValidity=function(a,b,j){var k=h[a];if(b){if(k&&(Sa(k,j),!k.length)){g--;if(!g)c(b),d.$valid=!0,d.$invalid=!1;h[a]=!1;c(!0,a);e.$setValidity(a,!0,d)}}else{g||c(b);if(k){if(za(k,j)!=-1)return}else h[a]=k=[],g++,c(!1,a),e.$setValidity(a, | |
!1,d);k.push(j);d.$valid=!1;d.$invalid=!0}};d.$setDirty=function(){b.removeClass(Na).addClass(Zb);d.$dirty=!0;d.$pristine=!1;e.$setDirty()}}function X(b){return w(b)||b===""||b===null||b!==b}function Oa(b,a,c,d,e,g){var h=function(){var c=Q(a.val());d.$viewValue!==c&&b.$apply(function(){d.$setViewValue(c)})};if(e.hasEvent("input"))a.bind("input",h);else{var f,i=function(){f||(f=g.defer(function(){h();f=null}))};a.bind("keydown",function(a){a=a.keyCode;a===91||15<a&&a<19||37<=a&&a<=40||i()});a.bind("change", | |
h);e.hasEvent("paste")&&a.bind("paste cut",i)}d.$render=function(){a.val(X(d.$viewValue)?"":d.$viewValue)};var j=c.ngPattern,k=function(a,b){return X(b)||a.test(b)?(d.$setValidity("pattern",!0),b):(d.$setValidity("pattern",!1),q)};j&&(j.match(/^\/(.*)\/$/)?(j=RegExp(j.substr(1,j.length-2)),e=function(a){return k(j,a)}):e=function(a){var c=b.$eval(j);if(!c||!c.test)throw Error("Expected "+j+" to be a RegExp but was "+c);return k(c,a)},d.$formatters.push(e),d.$parsers.push(e));if(c.ngMinlength){var l= | |
G(c.ngMinlength),e=function(a){return!X(a)&&a.length<l?(d.$setValidity("minlength",!1),q):(d.$setValidity("minlength",!0),a)};d.$parsers.push(e);d.$formatters.push(e)}if(c.ngMaxlength){var n=G(c.ngMaxlength),c=function(a){return!X(a)&&a.length>n?(d.$setValidity("maxlength",!1),q):(d.$setValidity("maxlength",!0),a)};d.$parsers.push(c);d.$formatters.push(c)}}function kb(b,a){b="ngClass"+b;return S(function(c,d,e){function g(b){if(a===!0||c.$index%2===a)i&&!fa(b,i)&&h(i),f(b);i=U(b)}function h(a){L(a)&& | |
!E(a)&&(a=Ra(a,function(a,b){if(a)return b}));d.removeClass(E(a)?a.join(" "):a)}function f(a){L(a)&&!E(a)&&(a=Ra(a,function(a,b){if(a)return b}));a&&d.addClass(E(a)?a.join(" "):a)}var i=q;c.$watch(e[b],g,!0);e.$observe("class",function(){var a=c.$eval(e[b]);g(a,a)});b!=="ngClass"&&c.$watch("$index",function(d,g){var i=d&1;i!==g&1&&(i===a?f(c.$eval(e[b])):h(c.$eval(e[b])))})})}var z=function(b){return B(b)?b.toLowerCase():b},la=function(b){return B(b)?b.toUpperCase():b},Z=G((/msie (\d+)/.exec(z(navigator.userAgent))|| | |
[])[1]),u,ca,ha=[].slice,Pa=[].push,wa=Object.prototype.toString,Ya=P.angular||(P.angular={}),sa,fb,aa=["0","0","0"];C.$inject=[];ma.$inject=[];fb=Z<9?function(b){b=b.nodeName?b:b[0];return b.scopeName&&b.scopeName!="HTML"?la(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var kc=/[A-Z]/g,jd={full:"1.0.7",major:1,minor:0,dot:7,codeName:"monochromatic-rainbow"},Ba=K.cache={},Aa=K.expando="ng-"+(new Date).getTime(),oc=1,$b=P.document.addEventListener? | |
function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},db=P.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)},mc=/([\:\-\_]+(.))/g,nc=/^moz([A-Z])/,ua=K.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;this.bind("DOMContentLoaded",a);K(P).bind("load",a)},toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return b>=0?u(this[b]):u(this[this.length+ | |
b])},length:0,push:Pa,sort:[].sort,splice:[].splice},Ea={};m("multiple,selected,checked,disabled,readOnly,required".split(","),function(b){Ea[z(b)]=b});var Bb={};m("input,select,option,textarea,button,form".split(","),function(b){Bb[la(b)]=!0});m({data:wb,inheritedData:Da,scope:function(b){return Da(b,"$scope")},controller:zb,injector:function(b){return Da(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Ca,css:function(b,a,c){a=tb(a);if(y(c))b.style[a]=c;else{var d;Z<=8&&(d= | |
b.currentStyle&&b.currentStyle[a],d===""&&(d="auto"));d=d||b.style[a];Z<=8&&(d=d===""?q:d);return d}},attr:function(b,a,c){var d=z(a);if(Ea[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||C).specified?d:q;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),b===null?q:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:v(Z<9?function(b,a){if(b.nodeType==1){if(w(a))return b.innerText; | |
b.innerText=a}else{if(w(a))return b.nodeValue;b.nodeValue=a}}:function(b,a){if(w(a))return b.textContent;b.textContent=a},{$dv:""}),val:function(b,a){if(w(a))return b.value;b.value=a},html:function(b,a){if(w(a))return b.innerHTML;for(var c=0,d=b.childNodes;c<d.length;c++)ra(d[c]);b.innerHTML=a}},function(b,a){K.prototype[a]=function(a,d){var e,g;if((b.length==2&&b!==Ca&&b!==zb?a:d)===q)if(L(a)){for(e=0;e<this.length;e++)if(b===wb)b(this[e],a);else for(g in a)b(this[e],g,a[g]);return this}else{if(this.length)return b(this[0], | |
a,d)}else{for(e=0;e<this.length;e++)b(this[e],a,d);return this}return b.$dv}});m({removeData:ub,dealoc:ra,bind:function a(c,d,e){var g=ba(c,"events"),h=ba(c,"handle");g||ba(c,"events",g={});h||ba(c,"handle",h=pc(c,g));m(d.split(" "),function(d){var i=g[d];if(!i){if(d=="mouseenter"||d=="mouseleave"){var j=T.body.contains||T.body.compareDocumentPosition?function(a,c){var d=a.nodeType===9?a.documentElement:a,e=c&&c.parentNode;return a===e||!(!e||!(e.nodeType===1&&(d.contains?d.contains(e):a.compareDocumentPosition&& | |
a.compareDocumentPosition(e)&16)))}:function(a,c){if(c)for(;c=c.parentNode;)if(c===a)return!0;return!1};g[d]=[];a(c,{mouseleave:"mouseout",mouseenter:"mouseover"}[d],function(a){var c=a.relatedTarget;(!c||c!==this&&!j(this,c))&&h(a,d)})}else $b(c,d,h),g[d]=[];i=g[d]}i.push(e)})},unbind:vb,replaceWith:function(a,c){var d,e=a.parentNode;ra(a);m(new K(c),function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];m(a.childNodes,function(a){a.nodeType===1&&c.push(a)}); | |
return c},contents:function(a){return a.childNodes||[]},append:function(a,c){m(new K(c),function(c){a.nodeType===1&&a.appendChild(c)})},prepend:function(a,c){if(a.nodeType===1){var d=a.firstChild;m(new K(c),function(c){d?a.insertBefore(c,d):(a.appendChild(c),d=c)})}},wrap:function(a,c){var c=u(c)[0],d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:function(a){ra(a);var c=a.parentNode;c&&c.removeChild(a)},after:function(a,c){var d=a,e=a.parentNode;m(new K(c),function(a){e.insertBefore(a, | |
d.nextSibling);d=a})},addClass:yb,removeClass:xb,toggleClass:function(a,c,d){w(d)&&(d=!Ca(a,c));(d?yb:xb)(a,c)},parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},next:function(a){if(a.nextElementSibling)return a.nextElementSibling;for(a=a.nextSibling;a!=null&&a.nodeType!==1;)a=a.nextSibling;return a},find:function(a,c){return a.getElementsByTagName(c)},clone:cb,triggerHandler:function(a,c){var d=(ba(a,"events")||{})[c];m(d,function(c){c.call(a,null)})}},function(a,c){K.prototype[c]= | |
function(c,e){for(var g,h=0;h<this.length;h++)g==q?(g=a(this[h],c,e),g!==q&&(g=u(g))):bb(g,a(this[h],c,e));return g==q?this:g}});Fa.prototype={put:function(a,c){this[ga(a)]=c},get:function(a){return this[ga(a)]},remove:function(a){var c=this[a=ga(a)];delete this[a];return c}};eb.prototype={push:function(a,c){var d=this[a=ga(a)];d?d.push(c):this[a]=[c]},shift:function(a){var c=this[a=ga(a)];if(c)return c.length==1?(delete this[a],c[0]):c.shift()},peek:function(a){if(a=this[ga(a)])return a[0]}};var rc= | |
/^function\s*[^\(]*\(\s*([^\)]*)\)/m,sc=/,/,tc=/^\s*(_?)(\S+?)\1\s*$/,qc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Eb="Non-assignable model expression: ";Db.$inject=["$provide"];var Bc=/^(x[\:\-_]|data[\:\-_])/i,Hb=/^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,ac=/^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,Ic=ac,Ib={http:80,https:443,ftp:21};hb.prototype={$$replace:!1,absUrl:Ha("$$absUrl"),url:function(a,c){if(w(a))return this.$$url;var d=ac.exec(a);d[1]&&this.path(decodeURIComponent(d[1])); | |
if(d[2]||d[1])this.search(d[3]||"");this.hash(d[5]||"",c);return this},protocol:Ha("$$protocol"),host:Ha("$$host"),port:Ha("$$port"),path:Kb("$$path",function(a){return a.charAt(0)=="/"?a:"/"+a}),search:function(a,c){if(w(a))return this.$$search;y(c)?c===null?delete this.$$search[a]:this.$$search[a]=c:this.$$search=B(a)?Va(a):a;this.$$compose();return this},hash:Kb("$$hash",ma),replace:function(){this.$$replace=!0;return this}};Ga.prototype=ya(hb.prototype);Jb.prototype=ya(Ga.prototype);var Ia={"null":function(){return null}, | |
"true":function(){return!0},"false":function(){return!1},undefined:C,"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return y(d)?y(e)?d+e:d:y(e)?e:q},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(y(d)?d:0)-(y(e)?e:0)},"*":function(a,c,d,e){return d(a,c)*e(a,c)},"/":function(a,c,d,e){return d(a,c)/e(a,c)},"%":function(a,c,d,e){return d(a,c)%e(a,c)},"^":function(a,c,d,e){return d(a,c)^e(a,c)},"=":C,"==":function(a,c,d,e){return d(a,c)==e(a,c)},"!=":function(a,c,d,e){return d(a,c)!=e(a,c)},"<":function(a,c, | |
d,e){return d(a,c)<e(a,c)},">":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Mc={n:"\n",f:"\u000c",r:"\r",t:"\t",v:"\u000b","'":"'",'"':'"'},ib={},Zc=P.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest."); | |
};Rb.$inject=["$provide"];Sb.$inject=["$locale"];Ub.$inject=["$locale"];var Xb=".",id={yyyy:O("FullYear",4),yy:O("FullYear",2,0,!0),y:O("FullYear",1),MMMM:Ja("Month"),MMM:Ja("Month",!0),MM:O("Month",2,1),M:O("Month",1,1),dd:O("Date",2),d:O("Date",1),HH:O("Hours",2),H:O("Hours",1),hh:O("Hours",2,-12),h:O("Hours",1,-12),mm:O("Minutes",2),m:O("Minutes",1),ss:O("Seconds",2),s:O("Seconds",1),EEEE:Ja("Day"),EEE:Ja("Day",!0),a:function(a,c){return a.getHours()<12?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){var a= | |
-1*a.getTimezoneOffset(),c=a>=0?"+":"";c+=jb(Math[a>0?"floor":"ceil"](a/60),2)+jb(Math.abs(a%60),2);return c}},hd=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,gd=/^\d+$/;Tb.$inject=["$locale"];var ed=I(z),fd=I(la);Vb.$inject=["$parse"];var kd=I({restrict:"E",compile:function(a,c){Z<=8&&(!c.href&&!c.name&&c.$set("href",""),a.append(T.createComment("IE fix")));return function(a,c){c.bind("click",function(a){c.attr("href")||a.preventDefault()})}}}),lb={};m(Ea,function(a, | |
c){var d=ea("ng-"+c);lb[d]=function(){return{priority:100,compile:function(){return function(a,g,h){a.$watch(h[d],function(a){h.$set(c,!!a)})}}}}});m(["src","href"],function(a){var c=ea("ng-"+a);lb[c]=function(){return{priority:99,link:function(d,e,g){g.$observe(c,function(c){c&&(g.$set(a,c),Z&&e.prop(a,g[a]))})}}}});var Ma={$addControl:C,$removeControl:C,$setValidity:C,$setDirty:C};Yb.$inject=["$element","$attrs","$scope"];var Pa=function(a){return["$timeout",function(c){var d={name:"form",restrict:"E", | |
controller:Yb,compile:function(){return{pre:function(a,d,h,f){if(!h.action){var i=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};$b(d[0],"submit",i);d.bind("$destroy",function(){c(function(){db(d[0],"submit",i)},0,!1)})}var j=d.parent().controller("form"),k=h.name||h.ngForm;k&&(a[k]=f);j&&d.bind("$destroy",function(){j.$removeControl(f);k&&(a[k]=q);v(f,Ma)})}}}};return a?v(U(d),{restrict:"EAC"}):d}]},ld=Pa(),md=Pa(!0),nd=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/, | |
od=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,pd=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,bc={text:Oa,number:function(a,c,d,e,g,h){Oa(a,c,d,e,g,h);e.$parsers.push(function(a){var c=X(a);return c||pd.test(a)?(e.$setValidity("number",!0),a===""?null:c?a:parseFloat(a)):(e.$setValidity("number",!1),q)});e.$formatters.push(function(a){return X(a)?"":""+a});if(d.min){var f=parseFloat(d.min),a=function(a){return!X(a)&&a<f?(e.$setValidity("min",!1),q):(e.$setValidity("min",!0),a)};e.$parsers.push(a); | |
e.$formatters.push(a)}if(d.max){var i=parseFloat(d.max),d=function(a){return!X(a)&&a>i?(e.$setValidity("max",!1),q):(e.$setValidity("max",!0),a)};e.$parsers.push(d);e.$formatters.push(d)}e.$formatters.push(function(a){return X(a)||Qa(a)?(e.$setValidity("number",!0),a):(e.$setValidity("number",!1),q)})},url:function(a,c,d,e,g,h){Oa(a,c,d,e,g,h);a=function(a){return X(a)||nd.test(a)?(e.$setValidity("url",!0),a):(e.$setValidity("url",!1),q)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a, | |
c,d,e,g,h){Oa(a,c,d,e,g,h);a=function(a){return X(a)||od.test(a)?(e.$setValidity("email",!0),a):(e.$setValidity("email",!1),q)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){w(d.name)&&c.attr("name",xa());c.bind("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var g=d.ngTrueValue,h=d.ngFalseValue;B(g)||(g=!0);B(h)||(h=!1);c.bind("click", | |
function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});e.$render=function(){c[0].checked=e.$viewValue};e.$formatters.push(function(a){return a===g});e.$parsers.push(function(a){return a?g:h})},hidden:C,button:C,submit:C,reset:C},cc=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel",link:function(d,e,g,h){h&&(bc[z(g.type)]||bc.text)(d,e,g,h,c,a)}}}],La="ng-valid",Ka="ng-invalid",Na="ng-pristine",Zb="ng-dirty",qd=["$scope","$exceptionHandler","$attrs","$element","$parse", | |
function(a,c,d,e,g){function h(a,c){c=c?"-"+Za(c,"-"):"";e.removeClass((a?Ka:La)+c).addClass((a?La:Ka)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=d.name;var f=g(d.ngModel),i=f.assign;if(!i)throw Error(Eb+d.ngModel+" ("+pa(e)+")");this.$render=C;var j=e.inheritedData("$formController")||Ma,k=0,l=this.$error={};e.addClass(Na);h(!0);this.$setValidity=function(a, | |
c){if(l[a]!==!c){if(c){if(l[a]&&k--,!k)h(!0),this.$valid=!0,this.$invalid=!1}else h(!1),this.$invalid=!0,this.$valid=!1,k++;l[a]=!c;h(c,a);j.$setValidity(a,c,this)}};this.$setViewValue=function(d){this.$viewValue=d;if(this.$pristine)this.$dirty=!0,this.$pristine=!1,e.removeClass(Na).addClass(Zb),j.$setDirty();m(this.$parsers,function(a){d=a(d)});if(this.$modelValue!==d)this.$modelValue=d,i(a,d),m(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};var n=this;a.$watch(function(){var c= | |
f(a);if(n.$modelValue!==c){var d=n.$formatters,e=d.length;for(n.$modelValue=c;e--;)c=d[e](c);if(n.$viewValue!==c)n.$viewValue=c,n.$render()}})}],rd=function(){return{require:["ngModel","^?form"],controller:qd,link:function(a,c,d,e){var g=e[0],h=e[1]||Ma;h.$addControl(g);c.bind("$destroy",function(){h.$removeControl(g)})}}},sd=I({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),dc=function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){d.required= | |
!0;var g=function(a){if(d.required&&(X(a)||a===!1))e.$setValidity("required",!1);else return e.$setValidity("required",!0),a};e.$formatters.push(g);e.$parsers.unshift(g);d.$observe("required",function(){g(e.$viewValue)})}}}},td=function(){return{require:"ngModel",link:function(a,c,d,e){var g=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){var c=[];a&&m(a.split(g),function(a){a&&c.push(Q(a))});return c});e.$formatters.push(function(a){return E(a)?a.join(", "): | |
q})}}},ud=/^(true|false|\d+)$/,vd=function(){return{priority:100,compile:function(a,c){return ud.test(c.ngValue)?function(a,c,g){g.$set("value",a.$eval(g.ngValue))}:function(a,c,g){a.$watch(g.ngValue,function(a){g.$set("value",a,!1)})}}}},wd=S(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);a.$watch(d.ngBind,function(a){c.text(a==q?"":a)})}),xd=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate", | |
function(a){d.text(a)})}}],yd=[function(){return function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBindHtmlUnsafe);a.$watch(d.ngBindHtmlUnsafe,function(a){c.html(a||"")})}}],zd=kb("",!0),Ad=kb("Odd",0),Bd=kb("Even",1),Cd=S({compile:function(a,c){c.$set("ngCloak",q);a.removeClass("ng-cloak")}}),Dd=[function(){return{scope:!0,controller:"@"}}],Ed=["$sniffer",function(a){return{priority:1E3,compile:function(){a.csp=!0}}}],ec={};m("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave".split(" "), | |
function(a){var c=ea("ng-"+a);ec[c]=["$parse",function(d){return function(e,g,h){var f=d(h[c]);g.bind(z(a),function(a){e.$apply(function(){f(e,{$event:a})})})}}]});var Fd=S(function(a,c,d){c.bind("submit",function(){a.$apply(d.ngSubmit)})}),Gd=["$http","$templateCache","$anchorScroll","$compile",function(a,c,d,e){return{restrict:"ECA",terminal:!0,compile:function(g,h){var f=h.ngInclude||h.src,i=h.onload||"",j=h.autoscroll;return function(g,h){var n=0,o,p=function(){o&&(o.$destroy(),o=null);h.html("")}; | |
g.$watch(f,function(f){var m=++n;f?a.get(f,{cache:c}).success(function(a){m===n&&(o&&o.$destroy(),o=g.$new(),h.html(a),e(h.contents())(o),y(j)&&(!j||g.$eval(j))&&d(),o.$emit("$includeContentLoaded"),g.$eval(i))}).error(function(){m===n&&p()}):p()})}}}}],Hd=S({compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Id=S({terminal:!0,priority:1E3}),Jd=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,g,h){var f=h.count,i=g.attr(h.$attr.when),j=h.offset|| | |
0,k=e.$eval(i),l={},n=c.startSymbol(),o=c.endSymbol();m(k,function(a,e){l[e]=c(a.replace(d,n+f+"-"+j+o))});e.$watch(function(){var c=parseFloat(e.$eval(f));return isNaN(c)?"":(c in k||(c=a.pluralCat(c-j)),l[c](e,g,!0))},function(a){g.text(a)})}}}],Kd=S({transclude:"element",priority:1E3,terminal:!0,compile:function(a,c,d){return function(a,c,h){var f=h.ngRepeat,h=f.match(/^\s*(.+)\s+in\s+(.*)\s*$/),i,j,k;if(!h)throw Error("Expected ngRepeat in form of '_item_ in _collection_' but got '"+f+"'.");f= | |
h[1];i=h[2];h=f.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!h)throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '"+f+"'.");j=h[3]||h[1];k=h[2];var l=new eb;a.$watch(function(a){var e,f,h=a.$eval(i),m=c,q=new eb,y,A,u,w,r,v;if(E(h))r=h||[];else{r=[];for(u in h)h.hasOwnProperty(u)&&u.charAt(0)!="$"&&r.push(u);r.sort()}y=r.length-1;e=0;for(f=r.length;e<f;e++){u=h===r?e:r[e];w=h[u];if(v=l.shift(w)){A=v.scope;q.push(w,v);if(e!==v.index)v.index=e,m.after(v.element); | |
m=v.element}else A=a.$new();A[j]=w;k&&(A[k]=u);A.$index=e;A.$first=e===0;A.$last=e===y;A.$middle=!(A.$first||A.$last);v||d(A,function(a){m.after(a);v={scope:A,element:m=a,index:e};q.push(w,v)})}for(u in l)if(l.hasOwnProperty(u))for(r=l[u];r.length;)w=r.pop(),w.element.remove(),w.scope.$destroy();l=q})}}}),Ld=S(function(a,c,d){a.$watch(d.ngShow,function(a){c.css("display",Ua(a)?"":"none")})}),Md=S(function(a,c,d){a.$watch(d.ngHide,function(a){c.css("display",Ua(a)?"none":"")})}),Nd=S(function(a,c, | |
d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&m(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),Od=I({restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(a,c,d,e){var g,h,f;a.$watch(d.ngSwitch||d.on,function(i){h&&(f.$destroy(),h.remove(),h=f=null);if(g=e.cases["!"+i]||e.cases["?"])a.$eval(d.change),f=a.$new(),g(f,function(a){h=a;c.append(a)})})}}),Pd=S({transclude:"element",priority:500,require:"^ngSwitch",compile:function(a,c,d){return function(a,g,h, | |
f){f.cases["!"+c.ngSwitchWhen]=d}}}),Qd=S({transclude:"element",priority:500,require:"^ngSwitch",compile:function(a,c,d){return function(a,c,h,f){f.cases["?"]=d}}}),Rd=S({controller:["$transclude","$element",function(a,c){a(function(a){c.append(a)})}]}),Sd=["$http","$templateCache","$route","$anchorScroll","$compile","$controller",function(a,c,d,e,g,h){return{restrict:"ECA",terminal:!0,link:function(a,c,j){function k(){var j=d.current&&d.current.locals,k=j&&j.$template;if(k){c.html(k);l&&(l.$destroy(), | |
l=null);var k=g(c.contents()),m=d.current;l=m.scope=a.$new();if(m.controller)j.$scope=l,j=h(m.controller,j),c.children().data("$ngControllerController",j);k(l);l.$emit("$viewContentLoaded");l.$eval(n);e()}else c.html(""),l&&(l.$destroy(),l=null)}var l,n=j.onload||"";a.$on("$routeChangeSuccess",k);k()}}}],Td=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){d.type=="text/ng-template"&&a.put(d.id,c[0].text)}}}],Ud=I({terminal:!0}),Vd=["$compile","$parse",function(a, | |
c){var d=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*)$/,e={$setViewValue:C};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(a,c,d){var i=this,j={},k=e,l;i.databound=d.ngModel;i.init=function(a,c,d){k=a;l=d};i.addOption=function(c){j[c]=!0;k.$viewValue==c&&(a.val(c),l.parent()&&l.remove())};i.removeOption=function(a){this.hasOption(a)&&(delete j[a], | |
k.$viewValue==a&&this.renderUnknownOption(a))};i.renderUnknownOption=function(c){c="? "+ga(c)+" ?";l.val(c);a.prepend(l);a.val(c);l.prop("selected",!0)};i.hasOption=function(a){return j.hasOwnProperty(a)};c.$on("$destroy",function(){i.renderUnknownOption=C})}],link:function(e,h,f,i){function j(a,c,d,e){d.$render=function(){var a=d.$viewValue;e.hasOption(a)?(z.parent()&&z.remove(),c.val(a),a===""&&v.prop("selected",!0)):w(a)&&v?c.val(""):e.renderUnknownOption(a)};c.bind("change",function(){a.$apply(function(){z.parent()&& | |
z.remove();d.$setViewValue(c.val())})})}function k(a,c,d){var e;d.$render=function(){var a=new Fa(d.$viewValue);m(c.find("option"),function(c){c.selected=y(a.get(c.value))})};a.$watch(function(){fa(e,d.$viewValue)||(e=U(d.$viewValue),d.$render())});c.bind("change",function(){a.$apply(function(){var a=[];m(c.find("option"),function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function l(e,f,g){function h(){var a={"":[]},c=[""],d,i,s,u,v;s=g.$modelValue;u=o(e)||[];var w=l?mb(u):u,y,x,z;x= | |
{};v=!1;var B,E;p&&(v=new Fa(s));for(z=0;y=w.length,z<y;z++){x[k]=u[l?x[l]=w[z]:z];d=m(e,x)||"";if(!(i=a[d]))i=a[d]=[],c.push(d);p?d=v.remove(n(e,x))!=q:(d=s===n(e,x),v=v||d);B=j(e,x);B=B===q?"":B;i.push({id:l?w[z]:z,label:B,selected:d})}p||(t||s===null?a[""].unshift({id:"",label:"",selected:!v}):v||a[""].unshift({id:"?",label:"",selected:!0}));x=0;for(w=c.length;x<w;x++){d=c[x];i=a[d];if(r.length<=x)s={element:A.clone().attr("label",d),label:i.label},u=[s],r.push(u),f.append(s.element);else if(u= | |
r[x],s=u[0],s.label!=d)s.element.attr("label",s.label=d);B=null;z=0;for(y=i.length;z<y;z++)if(d=i[z],v=u[z+1]){B=v.element;if(v.label!==d.label)B.text(v.label=d.label);if(v.id!==d.id)B.val(v.id=d.id);if(B[0].selected!==d.selected)B.prop("selected",v.selected=d.selected)}else d.id===""&&t?E=t:(E=C.clone()).val(d.id).attr("selected",d.selected).text(d.label),u.push({element:E,label:d.label,id:d.id,selected:d.selected}),B?B.after(E):s.element.append(E),B=E;for(z++;u.length>z;)u.pop().element.remove()}for(;r.length> | |
x;)r.pop()[0].element.remove()}var i;if(!(i=s.match(d)))throw Error("Expected ngOptions in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '"+s+"'.");var j=c(i[2]||i[1]),k=i[4]||i[6],l=i[5],m=c(i[3]||""),n=c(i[2]?i[1]:k),o=c(i[7]),r=[[{element:f,label:""}]];t&&(a(t)(e),t.removeClass("ng-scope"),t.remove());f.html("");f.bind("change",function(){e.$apply(function(){var a,c=o(e)||[],d={},h,i,j,m,s,t;if(p){i=[];m=0;for(t=r.length;m<t;m++){a=r[m];j=1;for(s=a.length;j<s;j++)if((h= | |
a[j].element)[0].selected)h=h.val(),l&&(d[l]=h),d[k]=c[h],i.push(n(e,d))}}else h=f.val(),h=="?"?i=q:h==""?i=null:(d[k]=c[h],l&&(d[l]=h),i=n(e,d));g.$setViewValue(i)})});g.$render=h;e.$watch(h)}if(i[1]){for(var n=i[0],o=i[1],p=f.multiple,s=f.ngOptions,t=!1,v,C=u(T.createElement("option")),A=u(T.createElement("optgroup")),z=C.clone(),i=0,B=h.children(),r=B.length;i<r;i++)if(B[i].value==""){v=t=B.eq(i);break}n.init(o,t,z);if(p&&(f.required||f.ngRequired)){var E=function(a){o.$setValidity("required", | |
!f.required||a&&a.length);return a};o.$parsers.push(E);o.$formatters.unshift(E);f.$observe("required",function(){E(o.$viewValue)})}s?l(e,h,o):p?k(e,h,o):j(e,h,o,n)}}}}],Wd=["$interpolate",function(a){var c={addOption:C,removeOption:C};return{restrict:"E",priority:100,compile:function(d,e){if(w(e.value)){var g=a(d.text(),!0);g||e.$set("value",d.text())}return function(a,d,e){var j=d.parent(),k=j.data("$selectController")||j.parent().data("$selectController");k&&k.databound?d.prop("selected",!1):k= | |
c;g?a.$watch(g,function(a,c){e.$set("value",a);a!==c&&k.removeOption(c);k.addOption(a)}):k.addOption(e.value);d.bind("$destroy",function(){k.removeOption(e.value)})}}}}],Xd=I({restrict:"E",terminal:!0});(ca=P.jQuery)?(u=ca,v(ca.fn,{scope:ua.scope,controller:ua.controller,injector:ua.injector,inheritedData:ua.inheritedData}),ab("remove",!0),ab("empty"),ab("html")):u=K;Ya.element=u;(function(a){v(a,{bootstrap:rb,copy:U,extend:v,equals:fa,element:u,forEach:m,injector:sb,noop:C,bind:Ta,toJson:da,fromJson:pb, | |
identity:ma,isUndefined:w,isDefined:y,isString:B,isFunction:H,isObject:L,isNumber:Qa,isElement:gc,isArray:E,version:jd,isDate:na,lowercase:z,uppercase:la,callbacks:{counter:0}});sa=lc(P);try{sa("ngLocale")}catch(c){sa("ngLocale",[]).provider("$locale",$c)}sa("ng",["ngLocale"],["$provide",function(a){a.provider("$compile",Db).directive({a:kd,input:cc,textarea:cc,form:ld,script:Td,select:Vd,style:Xd,option:Wd,ngBind:wd,ngBindHtmlUnsafe:yd,ngBindTemplate:xd,ngClass:zd,ngClassEven:Bd,ngClassOdd:Ad,ngCsp:Ed, | |
ngCloak:Cd,ngController:Dd,ngForm:md,ngHide:Md,ngInclude:Gd,ngInit:Hd,ngNonBindable:Id,ngPluralize:Jd,ngRepeat:Kd,ngShow:Ld,ngSubmit:Fd,ngStyle:Nd,ngSwitch:Od,ngSwitchWhen:Pd,ngSwitchDefault:Qd,ngOptions:Ud,ngView:Sd,ngTransclude:Rd,ngModel:rd,ngList:td,ngChange:sd,required:dc,ngRequired:dc,ngValue:vd}).directive(lb).directive(ec);a.provider({$anchorScroll:uc,$browser:wc,$cacheFactory:xc,$controller:Cc,$document:Dc,$exceptionHandler:Ec,$filter:Rb,$interpolate:Fc,$http:Wc,$httpBackend:Xc,$location:Jc, | |
$log:Kc,$parse:Oc,$route:Rc,$routeParams:Sc,$rootScope:Tc,$q:Pc,$sniffer:Uc,$templateCache:yc,$timeout:ad,$window:Vc})}])})(Ya);u(T).ready(function(){jc(T,rb)})})(window,document);angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* bootstrap.js v3.0.0 by @fat and @mdo | |
* Copyright 2013 Twitter Inc. | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
*/ | |
if (!jQuery) { throw new Error("Bootstrap requires jQuery") } | |
/* ======================================================================== | |
* Bootstrap: transition.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#transitions | |
* ======================================================================== | |
* Copyright 2013 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) | |
// ============================================================ | |
function transitionEnd() { | |
var el = document.createElement('bootstrap') | |
var transEndEventNames = { | |
'WebkitTransition' : 'webkitTransitionEnd' | |
, 'MozTransition' : 'transitionend' | |
, 'OTransition' : 'oTransitionEnd otransitionend' | |
, 'transition' : 'transitionend' | |
} | |
for (var name in transEndEventNames) { | |
if (el.style[name] !== undefined) { | |
return { end: transEndEventNames[name] } | |
} | |
} | |
} | |
// http://blog.alexmaccaw.com/css-transitions | |
$.fn.emulateTransitionEnd = function (duration) { | |
var called = false, $el = this | |
$(this).one($.support.transition.end, function () { called = true }) | |
var callback = function () { if (!called) $($el).trigger($.support.transition.end) } | |
setTimeout(callback, duration) | |
return this | |
} | |
$(function () { | |
$.support.transition = transitionEnd() | |
}) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: alert.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#alerts | |
* ======================================================================== | |
* Copyright 2013 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// ALERT CLASS DEFINITION | |
// ====================== | |
var dismiss = '[data-dismiss="alert"]' | |
var Alert = function (el) { | |
$(el).on('click', dismiss, this.close) | |
} | |
Alert.prototype.close = function (e) { | |
var $this = $(this) | |
var selector = $this.attr('data-target') | |
if (!selector) { | |
selector = $this.attr('href') | |
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 | |
} | |
var $parent = $(selector) | |
if (e) e.preventDefault() | |
if (!$parent.length) { | |
$parent = $this.hasClass('alert') ? $this : $this.parent() | |
} | |
$parent.trigger(e = $.Event('close.bs.alert')) | |
if (e.isDefaultPrevented()) return | |
$parent.removeClass('in') | |
function removeElement() { | |
$parent.trigger('closed.bs.alert').remove() | |
} | |
$.support.transition && $parent.hasClass('fade') ? | |
$parent | |
.one($.support.transition.end, removeElement) | |
.emulateTransitionEnd(150) : | |
removeElement() | |
} | |
// ALERT PLUGIN DEFINITION | |
// ======================= | |
var old = $.fn.alert | |
$.fn.alert = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.alert') | |
if (!data) $this.data('bs.alert', (data = new Alert(this))) | |
if (typeof option == 'string') data[option].call($this) | |
}) | |
} | |
$.fn.alert.Constructor = Alert | |
// ALERT NO CONFLICT | |
// ================= | |
$.fn.alert.noConflict = function () { | |
$.fn.alert = old | |
return this | |
} | |
// ALERT DATA-API | |
// ============== | |
$(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: button.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#buttons | |
* ======================================================================== | |
* Copyright 2013 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// BUTTON PUBLIC CLASS DEFINITION | |
// ============================== | |
var Button = function (element, options) { | |
this.$element = $(element) | |
this.options = $.extend({}, Button.DEFAULTS, options) | |
} | |
Button.DEFAULTS = { | |
loadingText: 'loading...' | |
} | |
Button.prototype.setState = function (state) { | |
var d = 'disabled' | |
var $el = this.$element | |
var val = $el.is('input') ? 'val' : 'html' | |
var data = $el.data() | |
state = state + 'Text' | |
if (!data.resetText) $el.data('resetText', $el[val]()) | |
$el[val](data[state] || this.options[state]) | |
// push to event loop to allow forms to submit | |
setTimeout(function () { | |
state == 'loadingText' ? | |
$el.addClass(d).attr(d, d) : | |
$el.removeClass(d).removeAttr(d); | |
}, 0) | |
} | |
Button.prototype.toggle = function () { | |
var $parent = this.$element.closest('[data-toggle="buttons"]') | |
if ($parent.length) { | |
var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active')) | |
if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active') | |
} | |
this.$element.toggleClass('active') | |
} | |
// BUTTON PLUGIN DEFINITION | |
// ======================== | |
var old = $.fn.button | |
$.fn.button = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('button') | |
var options = typeof option == 'object' && option | |
if (!data) $this.data('bs.button', (data = new Button(this, options))) | |
if (option == 'toggle') data.toggle() | |
else if (option) data.setState(option) | |
}) | |
} | |
$.fn.button.Constructor = Button | |
// BUTTON NO CONFLICT | |
// ================== | |
$.fn.button.noConflict = function () { | |
$.fn.button = old | |
return this | |
} | |
// BUTTON DATA-API | |
// =============== | |
$(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) { | |
var $btn = $(e.target) | |
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') | |
$btn.button('toggle') | |
e.preventDefault() | |
}) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: carousel.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#carousel | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// CAROUSEL CLASS DEFINITION | |
// ========================= | |
var Carousel = function (element, options) { | |
this.$element = $(element) | |
this.$indicators = this.$element.find('.carousel-indicators') | |
this.options = options | |
this.paused = | |
this.sliding = | |
this.interval = | |
this.$active = | |
this.$items = null | |
this.options.pause == 'hover' && this.$element | |
.on('mouseenter', $.proxy(this.pause, this)) | |
.on('mouseleave', $.proxy(this.cycle, this)) | |
} | |
Carousel.DEFAULTS = { | |
interval: 5000 | |
, pause: 'hover' | |
} | |
Carousel.prototype.cycle = function (e) { | |
e || (this.paused = false) | |
this.interval && clearInterval(this.interval) | |
this.options.interval | |
&& !this.paused | |
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) | |
return this | |
} | |
Carousel.prototype.getActiveIndex = function () { | |
this.$active = this.$element.find('.item.active') | |
this.$items = this.$active.parent().children() | |
return this.$items.index(this.$active) | |
} | |
Carousel.prototype.to = function (pos) { | |
var that = this | |
var activeIndex = this.getActiveIndex() | |
if (pos > (this.$items.length - 1) || pos < 0) return | |
if (this.sliding) return this.$element.one('slid', function () { that.to(pos) }) | |
if (activeIndex == pos) return this.pause().cycle() | |
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) | |
} | |
Carousel.prototype.pause = function (e) { | |
e || (this.paused = true) | |
if (this.$element.find('.next, .prev').length && $.support.transition.end) { | |
this.$element.trigger($.support.transition.end) | |
this.cycle(true) | |
} | |
this.interval = clearInterval(this.interval) | |
return this | |
} | |
Carousel.prototype.next = function () { | |
if (this.sliding) return | |
return this.slide('next') | |
} | |
Carousel.prototype.prev = function () { | |
if (this.sliding) return | |
return this.slide('prev') | |
} | |
Carousel.prototype.slide = function (type, next) { | |
var $active = this.$element.find('.item.active') | |
var $next = next || $active[type]() | |
var isCycling = this.interval | |
var direction = type == 'next' ? 'left' : 'right' | |
var fallback = type == 'next' ? 'first' : 'last' | |
var that = this | |
this.sliding = true | |
isCycling && this.pause() | |
$next = $next.length ? $next : this.$element.find('.item')[fallback]() | |
var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction }) | |
if ($next.hasClass('active')) return | |
if (this.$indicators.length) { | |
this.$indicators.find('.active').removeClass('active') | |
this.$element.one('slid', function () { | |
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) | |
$nextIndicator && $nextIndicator.addClass('active') | |
}) | |
} | |
if ($.support.transition && this.$element.hasClass('slide')) { | |
this.$element.trigger(e) | |
if (e.isDefaultPrevented()) return | |
$next.addClass(type) | |
$next[0].offsetWidth // force reflow | |
$active.addClass(direction) | |
$next.addClass(direction) | |
$active | |
.one($.support.transition.end, function () { | |
$next.removeClass([type, direction].join(' ')).addClass('active') | |
$active.removeClass(['active', direction].join(' ')) | |
that.sliding = false | |
setTimeout(function () { that.$element.trigger('slid') }, 0) | |
}) | |
.emulateTransitionEnd(600) | |
} else { | |
this.$element.trigger(e) | |
if (e.isDefaultPrevented()) return | |
$active.removeClass('active') | |
$next.addClass('active') | |
this.sliding = false | |
this.$element.trigger('slid') | |
} | |
isCycling && this.cycle() | |
return this | |
} | |
// CAROUSEL PLUGIN DEFINITION | |
// ========================== | |
var old = $.fn.carousel | |
$.fn.carousel = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.carousel') | |
var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) | |
var action = typeof option == 'string' ? option : options.slide | |
if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) | |
if (typeof option == 'number') data.to(option) | |
else if (action) data[action]() | |
else if (options.interval) data.pause().cycle() | |
}) | |
} | |
$.fn.carousel.Constructor = Carousel | |
// CAROUSEL NO CONFLICT | |
// ==================== | |
$.fn.carousel.noConflict = function () { | |
$.fn.carousel = old | |
return this | |
} | |
// CAROUSEL DATA-API | |
// ================= | |
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { | |
var $this = $(this), href | |
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 | |
var options = $.extend({}, $target.data(), $this.data()) | |
var slideIndex = $this.attr('data-slide-to') | |
if (slideIndex) options.interval = false | |
$target.carousel(options) | |
if (slideIndex = $this.attr('data-slide-to')) { | |
$target.data('bs.carousel').to(slideIndex) | |
} | |
e.preventDefault() | |
}) | |
$(window).on('load', function () { | |
$('[data-ride="carousel"]').each(function () { | |
var $carousel = $(this) | |
$carousel.carousel($carousel.data()) | |
}) | |
}) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: collapse.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#collapse | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// COLLAPSE PUBLIC CLASS DEFINITION | |
// ================================ | |
var Collapse = function (element, options) { | |
this.$element = $(element) | |
this.options = $.extend({}, Collapse.DEFAULTS, options) | |
this.transitioning = null | |
if (this.options.parent) this.$parent = $(this.options.parent) | |
if (this.options.toggle) this.toggle() | |
} | |
Collapse.DEFAULTS = { | |
toggle: true | |
} | |
Collapse.prototype.dimension = function () { | |
var hasWidth = this.$element.hasClass('width') | |
return hasWidth ? 'width' : 'height' | |
} | |
Collapse.prototype.show = function () { | |
if (this.transitioning || this.$element.hasClass('in')) return | |
var startEvent = $.Event('show.bs.collapse') | |
this.$element.trigger(startEvent) | |
if (startEvent.isDefaultPrevented()) return | |
var actives = this.$parent && this.$parent.find('> .accordion-group > .in') | |
if (actives && actives.length) { | |
var hasData = actives.data('bs.collapse') | |
if (hasData && hasData.transitioning) return | |
actives.collapse('hide') | |
hasData || actives.data('bs.collapse', null) | |
} | |
var dimension = this.dimension() | |
this.$element | |
.removeClass('collapse') | |
.addClass('collapsing') | |
[dimension](0) | |
this.transitioning = 1 | |
var complete = function () { | |
this.$element | |
.removeClass('collapsing') | |
.addClass('in') | |
[dimension]('auto') | |
this.transitioning = 0 | |
this.$element.trigger('shown.bs.collapse') | |
} | |
if (!$.support.transition) return complete.call(this) | |
var scrollSize = $.camelCase(['scroll', dimension].join('-')) | |
this.$element | |
.one($.support.transition.end, $.proxy(complete, this)) | |
.emulateTransitionEnd(350) | |
[dimension](this.$element[0][scrollSize]) | |
} | |
Collapse.prototype.hide = function () { | |
if (this.transitioning || !this.$element.hasClass('in')) return | |
var startEvent = $.Event('hide.bs.collapse') | |
this.$element.trigger(startEvent) | |
if (startEvent.isDefaultPrevented()) return | |
var dimension = this.dimension() | |
this.$element | |
[dimension](this.$element[dimension]()) | |
[0].offsetHeight | |
this.$element | |
.addClass('collapsing') | |
.removeClass('collapse') | |
.removeClass('in') | |
this.transitioning = 1 | |
var complete = function () { | |
this.transitioning = 0 | |
this.$element | |
.trigger('hidden.bs.collapse') | |
.removeClass('collapsing') | |
.addClass('collapse') | |
} | |
if (!$.support.transition) return complete.call(this) | |
this.$element | |
[dimension](0) | |
.one($.support.transition.end, $.proxy(complete, this)) | |
.emulateTransitionEnd(350) | |
} | |
Collapse.prototype.toggle = function () { | |
this[this.$element.hasClass('in') ? 'hide' : 'show']() | |
} | |
// COLLAPSE PLUGIN DEFINITION | |
// ========================== | |
var old = $.fn.collapse | |
$.fn.collapse = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.collapse') | |
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) | |
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) | |
if (typeof option == 'string') data[option]() | |
}) | |
} | |
$.fn.collapse.Constructor = Collapse | |
// COLLAPSE NO CONFLICT | |
// ==================== | |
$.fn.collapse.noConflict = function () { | |
$.fn.collapse = old | |
return this | |
} | |
// COLLAPSE DATA-API | |
// ================= | |
$(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { | |
var $this = $(this), href | |
var target = $this.attr('data-target') | |
|| e.preventDefault() | |
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 | |
var $target = $(target) | |
var data = $target.data('bs.collapse') | |
var option = data ? 'toggle' : $this.data() | |
var parent = $this.attr('data-parent') | |
var $parent = parent && $(parent) | |
if (!data || !data.transitioning) { | |
if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed') | |
$this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') | |
} | |
$target.collapse(option) | |
}) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: dropdown.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#dropdowns | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// DROPDOWN CLASS DEFINITION | |
// ========================= | |
var backdrop = '.dropdown-backdrop' | |
var toggle = '[data-toggle=dropdown]' | |
var Dropdown = function (element) { | |
var $el = $(element).on('click.bs.dropdown', this.toggle) | |
} | |
Dropdown.prototype.toggle = function (e) { | |
var $this = $(this) | |
if ($this.is('.disabled, :disabled')) return | |
var $parent = getParent($this) | |
var isActive = $parent.hasClass('open') | |
clearMenus() | |
if (!isActive) { | |
if ('ontouchstart' in document.documentElement) { | |
// if mobile we we use a backdrop because click events don't delegate | |
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus) | |
} | |
$parent.trigger(e = $.Event('show.bs.dropdown')) | |
if (e.isDefaultPrevented()) return | |
$parent | |
.toggleClass('open') | |
.trigger('shown.bs.dropdown') | |
} | |
$this.focus() | |
return false | |
} | |
Dropdown.prototype.keydown = function (e) { | |
if (!/(38|40|27)/.test(e.keyCode)) return | |
var $this = $(this) | |
e.preventDefault() | |
e.stopPropagation() | |
if ($this.is('.disabled, :disabled')) return | |
var $parent = getParent($this) | |
var isActive = $parent.hasClass('open') | |
if (!isActive || (isActive && e.keyCode == 27)) { | |
if (e.which == 27) $parent.find(toggle).focus() | |
return $this.click() | |
} | |
var $items = $('[role=menu] li:not(.divider):visible a', $parent) | |
if (!$items.length) return | |
var index = $items.index($items.filter(':focus')) | |
if (e.keyCode == 38 && index > 0) index-- // up | |
if (e.keyCode == 40 && index < $items.length - 1) index++ // down | |
if (!~index) index=0 | |
$items.eq(index).focus() | |
} | |
function clearMenus() { | |
$(backdrop).remove() | |
$(toggle).each(function (e) { | |
var $parent = getParent($(this)) | |
if (!$parent.hasClass('open')) return | |
$parent.trigger(e = $.Event('hide.bs.dropdown')) | |
if (e.isDefaultPrevented()) return | |
$parent.removeClass('open').trigger('hidden.bs.dropdown') | |
}) | |
} | |
function getParent($this) { | |
var selector = $this.attr('data-target') | |
if (!selector) { | |
selector = $this.attr('href') | |
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 | |
} | |
var $parent = selector && $(selector) | |
return $parent && $parent.length ? $parent : $this.parent() | |
} | |
// DROPDOWN PLUGIN DEFINITION | |
// ========================== | |
var old = $.fn.dropdown | |
$.fn.dropdown = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('dropdown') | |
if (!data) $this.data('dropdown', (data = new Dropdown(this))) | |
if (typeof option == 'string') data[option].call($this) | |
}) | |
} | |
$.fn.dropdown.Constructor = Dropdown | |
// DROPDOWN NO CONFLICT | |
// ==================== | |
$.fn.dropdown.noConflict = function () { | |
$.fn.dropdown = old | |
return this | |
} | |
// APPLY TO STANDARD DROPDOWN ELEMENTS | |
// =================================== | |
$(document) | |
.on('click.bs.dropdown.data-api', clearMenus) | |
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) | |
.on('click.bs.dropdown.data-api' , toggle, Dropdown.prototype.toggle) | |
.on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: modal.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#modals | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// MODAL CLASS DEFINITION | |
// ====================== | |
var Modal = function (element, options) { | |
this.options = options | |
this.$element = $(element).on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) | |
this.$backdrop = | |
this.isShown = null | |
if (this.options.remote) this.$element.find('.modal-body').load(this.options.remote) | |
} | |
Modal.DEFAULTS = { | |
backdrop: true | |
, keyboard: true | |
, show: true | |
} | |
Modal.prototype.toggle = function () { | |
return this[!this.isShown ? 'show' : 'hide']() | |
} | |
Modal.prototype.show = function () { | |
var that = this | |
var e = $.Event('show.bs.modal') | |
this.$element.trigger(e) | |
if (this.isShown || e.isDefaultPrevented()) return | |
this.isShown = true | |
this.escape() | |
this.backdrop(function () { | |
var transition = $.support.transition && that.$element.hasClass('fade') | |
if (!that.$element.parent().length) { | |
that.$element.appendTo(document.body) // don't move modals dom position | |
} | |
that.$element.show() | |
if (transition) { | |
that.$element[0].offsetWidth // force reflow | |
} | |
that.$element | |
.addClass('in') | |
.attr('aria-hidden', false) | |
that.enforceFocus() | |
transition ? | |
that.$element | |
.one($.support.transition.end, function () { | |
that.$element.focus().trigger('shown.bs.modal') | |
}) | |
.emulateTransitionEnd(300) : | |
that.$element.focus().trigger('shown.bs.modal') | |
}) | |
} | |
Modal.prototype.hide = function (e) { | |
if (e) e.preventDefault() | |
e = $.Event('hide.bs.modal') | |
this.$element.trigger(e) | |
if (!this.isShown || e.isDefaultPrevented()) return | |
this.isShown = false | |
this.escape() | |
$(document).off('focusin.bs.modal') | |
this.$element | |
.removeClass('in') | |
.attr('aria-hidden', true) | |
$.support.transition && this.$element.hasClass('fade') ? | |
this.$element | |
.one($.support.transition.end, $.proxy(this.hideModal, this)) | |
.emulateTransitionEnd(300) : | |
this.hideModal() | |
} | |
Modal.prototype.enforceFocus = function () { | |
$(document) | |
.off('focusin.bs.modal') // guard against infinite focus loop | |
.on('focusin.bs.modal', $.proxy(function (e) { | |
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { | |
this.$element.focus() | |
} | |
}, this)) | |
} | |
Modal.prototype.escape = function () { | |
if (this.isShown && this.options.keyboard) { | |
this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) { | |
e.which == 27 && this.hide() | |
}, this)) | |
} else if (!this.isShown) { | |
this.$element.off('keyup.dismiss.bs.modal') | |
} | |
} | |
Modal.prototype.hideModal = function () { | |
var that = this | |
this.$element.hide() | |
this.backdrop(function () { | |
that.removeBackdrop() | |
that.$element.trigger('hidden.bs.modal') | |
}) | |
} | |
Modal.prototype.removeBackdrop = function () { | |
this.$backdrop && this.$backdrop.remove() | |
this.$backdrop = null | |
} | |
Modal.prototype.backdrop = function (callback) { | |
var that = this | |
var animate = this.$element.hasClass('fade') ? 'fade' : '' | |
if (this.isShown && this.options.backdrop) { | |
var doAnimate = $.support.transition && animate | |
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') | |
.appendTo(document.body) | |
this.$element.on('click', $.proxy(function (e) { | |
if (e.target !== e.currentTarget) return | |
this.options.backdrop == 'static' | |
? this.$element[0].focus.call(this.$element[0]) | |
: this.hide.call(this) | |
}, this)) | |
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow | |
this.$backdrop.addClass('in') | |
if (!callback) return | |
doAnimate ? | |
this.$backdrop | |
.one($.support.transition.end, callback) | |
.emulateTransitionEnd(150) : | |
callback() | |
} else if (!this.isShown && this.$backdrop) { | |
this.$backdrop.removeClass('in') | |
$.support.transition && this.$element.hasClass('fade')? | |
this.$backdrop | |
.one($.support.transition.end, callback) | |
.emulateTransitionEnd(150) : | |
callback() | |
} else if (callback) { | |
callback() | |
} | |
} | |
// MODAL PLUGIN DEFINITION | |
// ======================= | |
var old = $.fn.modal | |
$.fn.modal = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.modal') | |
var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) | |
if (!data) $this.data('bs.modal', (data = new Modal(this, options))) | |
if (typeof option == 'string') data[option]() | |
else if (options.show) data.show() | |
}) | |
} | |
$.fn.modal.Constructor = Modal | |
// MODAL NO CONFLICT | |
// ================= | |
$.fn.modal.noConflict = function () { | |
$.fn.modal = old | |
return this | |
} | |
// MODAL DATA-API | |
// ============== | |
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { | |
var $this = $(this) | |
var href = $this.attr('href') | |
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7 | |
var option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data()) | |
e.preventDefault() | |
$target | |
.modal(option) | |
.one('hide', function () { | |
$this.is(':visible') && $this.focus() | |
}) | |
}) | |
$(function () { | |
var $body = $(document.body) | |
.on('shown.bs.modal', '.modal', function () { $body.addClass('modal-open') }) | |
.on('hidden.bs.modal', '.modal', function () { $body.removeClass('modal-open') }) | |
}) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: tooltip.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#affix | |
* Inspired by the original jQuery.tipsy by Jason Frame | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// TOOLTIP PUBLIC CLASS DEFINITION | |
// =============================== | |
var Tooltip = function (element, options) { | |
this.type = | |
this.options = | |
this.enabled = | |
this.timeout = | |
this.hoverState = | |
this.$element = null | |
this.init('tooltip', element, options) | |
} | |
Tooltip.DEFAULTS = { | |
animation: true | |
, placement: 'top' | |
, selector: false | |
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' | |
, trigger: 'hover focus' | |
, title: '' | |
, delay: 0 | |
, html: false | |
, container: false | |
} | |
Tooltip.prototype.init = function (type, element, options) { | |
this.enabled = true | |
this.type = type | |
this.$element = $(element) | |
this.options = this.getOptions(options) | |
var triggers = this.options.trigger.split(' ') | |
for (var i = triggers.length; i--;) { | |
var trigger = triggers[i] | |
if (trigger == 'click') { | |
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) | |
} else if (trigger != 'manual') { | |
var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus' | |
var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur' | |
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) | |
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) | |
} | |
} | |
this.options.selector ? | |
(this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : | |
this.fixTitle() | |
} | |
Tooltip.prototype.getDefaults = function () { | |
return Tooltip.DEFAULTS | |
} | |
Tooltip.prototype.getOptions = function (options) { | |
options = $.extend({}, this.getDefaults(), this.$element.data(), options) | |
if (options.delay && typeof options.delay == 'number') { | |
options.delay = { | |
show: options.delay | |
, hide: options.delay | |
} | |
} | |
return options | |
} | |
Tooltip.prototype.enter = function (obj) { | |
var defaults = this.getDefaults() | |
var options = {} | |
this._options && $.each(this._options, function (key, value) { | |
if (defaults[key] != value) options[key] = value | |
}) | |
var self = obj instanceof this.constructor ? | |
obj : $(obj.currentTarget)[this.type](options).data('bs.' + this.type) | |
clearTimeout(self.timeout) | |
if (!self.options.delay || !self.options.delay.show) return self.show() | |
self.hoverState = 'in' | |
self.timeout = setTimeout(function () { | |
if (self.hoverState == 'in') self.show() | |
}, self.options.delay.show) | |
} | |
Tooltip.prototype.leave = function (obj) { | |
var self = obj instanceof this.constructor ? | |
obj : $(obj.currentTarget)[this.type](this._options).data('bs.' + this.type) | |
clearTimeout(self.timeout) | |
if (!self.options.delay || !self.options.delay.hide) return self.hide() | |
self.hoverState = 'out' | |
self.timeout = setTimeout(function () { | |
if (self.hoverState == 'out') self.hide() | |
}, self.options.delay.hide) | |
} | |
Tooltip.prototype.show = function () { | |
var e = $.Event('show.bs.'+ this.type) | |
if (this.hasContent() && this.enabled) { | |
this.$element.trigger(e) | |
if (e.isDefaultPrevented()) return | |
var $tip = this.tip() | |
this.setContent() | |
if (this.options.animation) $tip.addClass('fade') | |
var placement = typeof this.options.placement == 'function' ? | |
this.options.placement.call(this, $tip[0], this.$element[0]) : | |
this.options.placement | |
var autoToken = /\s?auto?\s?/i | |
var autoPlace = autoToken.test(placement) | |
if (autoPlace) placement = placement.replace(autoToken, '') || 'top' | |
$tip | |
.detach() | |
.css({ top: 0, left: 0, display: 'block' }) | |
.addClass(placement) | |
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) | |
var pos = this.getPosition() | |
var actualWidth = $tip[0].offsetWidth | |
var actualHeight = $tip[0].offsetHeight | |
if (autoPlace) { | |
var $parent = this.$element.parent() | |
var orgPlacement = placement | |
var docScroll = document.documentElement.scrollTop || document.body.scrollTop | |
var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth() | |
var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight() | |
var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left | |
placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' : | |
placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' : | |
placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' : | |
placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' : | |
placement | |
$tip | |
.removeClass(orgPlacement) | |
.addClass(placement) | |
} | |
var tp = placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : | |
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : | |
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : | |
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } | |
this.applyPlacement(tp, placement) | |
this.$element.trigger('shown.bs.' + this.type) | |
} | |
} | |
Tooltip.prototype.applyPlacement = function(offset, placement) { | |
var replace | |
var $tip = this.tip() | |
var width = $tip[0].offsetWidth | |
var height = $tip[0].offsetHeight | |
// manually read margins because getBoundingClientRect includes difference | |
offset.top = offset.top + parseInt($tip.css('margin-top'), 10) | |
offset.left = offset.left + parseInt($tip.css('margin-left'), 10) | |
$tip | |
.offset(offset) | |
.addClass('in') | |
var actualWidth = $tip[0].offsetWidth | |
var actualHeight = $tip[0].offsetHeight | |
if (placement == 'top' && actualHeight != height) { | |
replace = true | |
offset.top = offset.top + height - actualHeight | |
} | |
if (placement == 'bottom' || placement == 'top') { | |
var delta = 0 | |
if (offset.left < 0){ | |
delta = offset.left * -2 | |
offset.left = 0 | |
$tip.offset(offset) | |
actualWidth = $tip[0].offsetWidth | |
actualHeight = $tip[0].offsetHeight | |
} | |
this.replaceArrow(delta - width + actualWidth, actualWidth, 'left') | |
} else { | |
this.replaceArrow(actualHeight - height, actualHeight, 'top') | |
} | |
if (replace) $tip.offset(offset) | |
} | |
Tooltip.prototype.replaceArrow = function(delta, dimension, position) { | |
this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '') | |
} | |
Tooltip.prototype.setContent = function () { | |
var $tip = this.tip() | |
var title = this.getTitle() | |
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) | |
$tip.removeClass('fade in top bottom left right') | |
} | |
Tooltip.prototype.hide = function () { | |
var that = this | |
var $tip = this.tip() | |
var e = $.Event('hide.bs.' + this.type) | |
this.$element.trigger(e) | |
if (e.isDefaultPrevented()) return | |
$tip.removeClass('in') | |
$.support.transition && this.$tip.hasClass('fade') ? | |
$tip | |
.one($.support.transition.end, $tip.detach) | |
.emulateTransitionEnd(150) : | |
$tip.detach() | |
this.$element.trigger('hidden.bs.' + this.type) | |
return this | |
} | |
Tooltip.prototype.fixTitle = function () { | |
var $e = this.$element | |
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { | |
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '') | |
} | |
} | |
Tooltip.prototype.hasContent = function () { | |
return this.getTitle() | |
} | |
Tooltip.prototype.getPosition = function () { | |
var el = this.$element[0] | |
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : { | |
width: el.offsetWidth | |
, height: el.offsetHeight | |
}, this.$element.offset()) | |
} | |
Tooltip.prototype.getTitle = function () { | |
var title | |
var $e = this.$element | |
var o = this.options | |
title = $e.attr('data-original-title') | |
|| (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) | |
return title | |
} | |
Tooltip.prototype.tip = function () { | |
return this.$tip = this.$tip || $(this.options.template) | |
} | |
Tooltip.prototype.arrow =function(){ | |
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") | |
} | |
Tooltip.prototype.validate = function () { | |
if (!this.$element[0].parentNode) { | |
this.hide() | |
this.$element = null | |
this.options = null | |
} | |
} | |
Tooltip.prototype.enable = function () { | |
this.enabled = true | |
} | |
Tooltip.prototype.disable = function () { | |
this.enabled = false | |
} | |
Tooltip.prototype.toggleEnabled = function () { | |
this.enabled = !this.enabled | |
} | |
Tooltip.prototype.toggle = function (e) { | |
var self = e ? $(e.currentTarget)[this.type](this._options).data('bs.' + this.type) : this | |
self.tip().hasClass('in') ? self.leave(self) : self.enter(self) | |
} | |
Tooltip.prototype.destroy = function () { | |
this.hide().$element.off('.' + this.type).removeData('bs.' + this.type) | |
} | |
// TOOLTIP PLUGIN DEFINITION | |
// ========================= | |
var old = $.fn.tooltip | |
$.fn.tooltip = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.tooltip') | |
var options = typeof option == 'object' && option | |
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) | |
if (typeof option == 'string') data[option]() | |
}) | |
} | |
$.fn.tooltip.Constructor = Tooltip | |
// TOOLTIP NO CONFLICT | |
// =================== | |
$.fn.tooltip.noConflict = function () { | |
$.fn.tooltip = old | |
return this | |
} | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: popover.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#popovers | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// POPOVER PUBLIC CLASS DEFINITION | |
// =============================== | |
var Popover = function (element, options) { | |
this.init('popover', element, options) | |
} | |
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') | |
Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, { | |
placement: 'right' | |
, trigger: 'click' | |
, content: '' | |
, template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' | |
}) | |
// NOTE: POPOVER EXTENDS tooltip.js | |
// ================================ | |
Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) | |
Popover.prototype.constructor = Popover | |
Popover.prototype.getDefaults = function () { | |
return Popover.DEFAULTS | |
} | |
Popover.prototype.setContent = function () { | |
var $tip = this.tip() | |
var title = this.getTitle() | |
var content = this.getContent() | |
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) | |
$tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content) | |
$tip.removeClass('fade top bottom left right in') | |
$tip.find('.popover-title:empty').hide() | |
} | |
Popover.prototype.hasContent = function () { | |
return this.getTitle() || this.getContent() | |
} | |
Popover.prototype.getContent = function () { | |
var $e = this.$element | |
var o = this.options | |
return $e.attr('data-content') | |
|| (typeof o.content == 'function' ? | |
o.content.call($e[0]) : | |
o.content) | |
} | |
Popover.prototype.tip = function () { | |
if (!this.$tip) this.$tip = $(this.options.template) | |
return this.$tip | |
} | |
Popover.prototype.destroy = function () { | |
this.hide().$element.off('.' + this.type).removeData(this.type) | |
} | |
// POPOVER PLUGIN DEFINITION | |
// ========================= | |
var old = $.fn.popover | |
$.fn.popover = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.popover') | |
var options = typeof option == 'object' && option | |
if (!data) $this.data('bs.popover', (data = new Popover(this, options))) | |
if (typeof option == 'string') data[option]() | |
}) | |
} | |
$.fn.popover.Constructor = Popover | |
// POPOVER NO CONFLICT | |
// =================== | |
$.fn.popover.noConflict = function () { | |
$.fn.popover = old | |
return this | |
} | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: scrollspy.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#scrollspy | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// SCROLLSPY CLASS DEFINITION | |
// ========================== | |
function ScrollSpy(element, options) { | |
var href | |
var process = $.proxy(this.process, this) | |
this.$element = $(element).is('body') ? $(window) : $(element) | |
this.$body = $('body') | |
this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process) | |
this.options = $.extend({}, ScrollSpy.DEFAULTS, options) | |
this.selector = (this.options.target | |
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 | |
|| '') + ' .nav li > a' | |
this.offsets = $([]) | |
this.targets = $([]) | |
this.activeTarget = null | |
this.refresh() | |
this.process() | |
} | |
ScrollSpy.DEFAULTS = { | |
offset: 10 | |
} | |
ScrollSpy.prototype.refresh = function () { | |
var offsetMethod = this.$element[0] == window ? 'offset' : 'position' | |
this.offsets = $([]) | |
this.targets = $([]) | |
var self = this | |
var $targets = this.$body | |
.find(this.selector) | |
.map(function () { | |
var $el = $(this) | |
var href = $el.data('target') || $el.attr('href') | |
var $href = /^#\w/.test(href) && $(href) | |
return ($href | |
&& $href.length | |
&& [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null | |
}) | |
.sort(function (a, b) { return a[0] - b[0] }) | |
.each(function () { | |
self.offsets.push(this[0]) | |
self.targets.push(this[1]) | |
}) | |
} | |
ScrollSpy.prototype.process = function () { | |
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset | |
var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight | |
var maxScroll = scrollHeight - this.$scrollElement.height() | |
var offsets = this.offsets | |
var targets = this.targets | |
var activeTarget = this.activeTarget | |
var i | |
if (scrollTop >= maxScroll) { | |
return activeTarget != (i = targets.last()[0]) && this.activate(i) | |
} | |
for (i = offsets.length; i--;) { | |
activeTarget != targets[i] | |
&& scrollTop >= offsets[i] | |
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1]) | |
&& this.activate( targets[i] ) | |
} | |
} | |
ScrollSpy.prototype.activate = function (target) { | |
this.activeTarget = target | |
$(this.selector) | |
.parents('.active') | |
.removeClass('active') | |
var selector = this.selector | |
+ '[data-target="' + target + '"],' | |
+ this.selector + '[href="' + target + '"]' | |
var active = $(selector) | |
.parents('li') | |
.addClass('active') | |
if (active.parent('.dropdown-menu').length) { | |
active = active | |
.closest('li.dropdown') | |
.addClass('active') | |
} | |
active.trigger('activate') | |
} | |
// SCROLLSPY PLUGIN DEFINITION | |
// =========================== | |
var old = $.fn.scrollspy | |
$.fn.scrollspy = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.scrollspy') | |
var options = typeof option == 'object' && option | |
if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) | |
if (typeof option == 'string') data[option]() | |
}) | |
} | |
$.fn.scrollspy.Constructor = ScrollSpy | |
// SCROLLSPY NO CONFLICT | |
// ===================== | |
$.fn.scrollspy.noConflict = function () { | |
$.fn.scrollspy = old | |
return this | |
} | |
// SCROLLSPY DATA-API | |
// ================== | |
$(window).on('load', function () { | |
$('[data-spy="scroll"]').each(function () { | |
var $spy = $(this) | |
$spy.scrollspy($spy.data()) | |
}) | |
}) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: tab.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#tabs | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// TAB CLASS DEFINITION | |
// ==================== | |
var Tab = function (element) { | |
this.element = $(element) | |
} | |
Tab.prototype.show = function () { | |
var $this = this.element | |
var $ul = $this.closest('ul:not(.dropdown-menu)') | |
var selector = $this.attr('data-target') | |
if (!selector) { | |
selector = $this.attr('href') | |
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 | |
} | |
if ($this.parent('li').hasClass('active')) return | |
var previous = $ul.find('.active:last a')[0] | |
var e = $.Event('show.bs.tab', { | |
relatedTarget: previous | |
}) | |
$this.trigger(e) | |
if (e.isDefaultPrevented()) return | |
var $target = $(selector) | |
this.activate($this.parent('li'), $ul) | |
this.activate($target, $target.parent(), function () { | |
$this.trigger({ | |
type: 'shown.bs.tab' | |
, relatedTarget: previous | |
}) | |
}) | |
} | |
Tab.prototype.activate = function (element, container, callback) { | |
var $active = container.find('> .active') | |
var transition = callback | |
&& $.support.transition | |
&& $active.hasClass('fade') | |
function next() { | |
$active | |
.removeClass('active') | |
.find('> .dropdown-menu > .active') | |
.removeClass('active') | |
element.addClass('active') | |
if (transition) { | |
element[0].offsetWidth // reflow for transition | |
element.addClass('in') | |
} else { | |
element.removeClass('fade') | |
} | |
if (element.parent('.dropdown-menu')) { | |
element.closest('li.dropdown').addClass('active') | |
} | |
callback && callback() | |
} | |
transition ? | |
$active | |
.one($.support.transition.end, next) | |
.emulateTransitionEnd(150) : | |
next() | |
$active.removeClass('in') | |
} | |
// TAB PLUGIN DEFINITION | |
// ===================== | |
var old = $.fn.tab | |
$.fn.tab = function ( option ) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.tab') | |
if (!data) $this.data('bs.tab', (data = new Tab(this))) | |
if (typeof option == 'string') data[option]() | |
}) | |
} | |
$.fn.tab.Constructor = Tab | |
// TAB NO CONFLICT | |
// =============== | |
$.fn.tab.noConflict = function () { | |
$.fn.tab = old | |
return this | |
} | |
// TAB DATA-API | |
// ============ | |
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { | |
e.preventDefault() | |
$(this).tab('show') | |
}) | |
}(window.jQuery); | |
/* ======================================================================== | |
* Bootstrap: affix.js v3.0.0 | |
* http://twbs.github.com/bootstrap/javascript.html#affix | |
* ======================================================================== | |
* Copyright 2012 Twitter, Inc. | |
* | |
* 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. | |
* ======================================================================== */ | |
+function ($) { "use strict"; | |
// AFFIX CLASS DEFINITION | |
// ====================== | |
var Affix = function (element, options) { | |
this.options = $.extend({}, Affix.DEFAULTS, options) | |
this.$window = $(window) | |
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) | |
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) | |
this.$element = $(element) | |
this.affixed = | |
this.unpin = null | |
this.checkPosition() | |
} | |
Affix.RESET = 'affix affix-top affix-bottom' | |
Affix.DEFAULTS = { | |
offset: 0 | |
} | |
Affix.prototype.checkPositionWithEventLoop = function () { | |
setTimeout($.proxy(this.checkPosition, this), 1) | |
} | |
Affix.prototype.checkPosition = function () { | |
if (!this.$element.is(':visible')) return | |
var scrollHeight = $(document).height() | |
var scrollTop = this.$window.scrollTop() | |
var position = this.$element.offset() | |
var offset = this.options.offset | |
var offsetTop = offset.top | |
var offsetBottom = offset.bottom | |
if (typeof offset != 'object') offsetBottom = offsetTop = offset | |
if (typeof offsetTop == 'function') offsetTop = offset.top() | |
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom() | |
var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false : | |
offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' : | |
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false | |
if (this.affixed === affix) return | |
if (this.unpin) this.$element.css('top', '') | |
this.affixed = affix | |
this.unpin = affix == 'bottom' ? position.top - scrollTop : null | |
this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : '')) | |
if (affix == 'bottom') { | |
this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() }) | |
} | |
} | |
// AFFIX PLUGIN DEFINITION | |
// ======================= | |
var old = $.fn.affix | |
$.fn.affix = function (option) { | |
return this.each(function () { | |
var $this = $(this) | |
var data = $this.data('bs.affix') | |
var options = typeof option == 'object' && option | |
if (!data) $this.data('bs.affix', (data = new Affix(this, options))) | |
if (typeof option == 'string') data[option]() | |
}) | |
} | |
$.fn.affix.Constructor = Affix | |
// AFFIX NO CONFLICT | |
// ================= | |
$.fn.affix.noConflict = function () { | |
$.fn.affix = old | |
return this | |
} | |
// AFFIX DATA-API | |
// ============== | |
$(window).on('load', function () { | |
$('[data-spy="affix"]').each(function () { | |
var $spy = $(this) | |
var data = $spy.data() | |
data.offset = data.offset || {} | |
if (data.offsetBottom) data.offset.bottom = data.offsetBottom | |
if (data.offsetTop) data.offset.top = data.offsetTop | |
$spy.affix(data) | |
}) | |
}) | |
}(window.jQuery); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Copyright 2013 - Eric Bidelman | |
* | |
* 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. | |
* @fileoverview | |
* Convenient wrapper library for the HTML5 Filesystem API, implementing | |
* familiar UNIX commands (cp, mv, ls) for its API. | |
* | |
* @author Eric Bidelman ([email protected]) | |
* @version: 0.4.2 | |
*/ | |
'use strict'; | |
var self = this; // window or worker context. | |
self.URL = self.URL || self.webkitURL; | |
self.requestFileSystem = self.requestFileSystem || self.webkitRequestFileSystem; | |
self.resolveLocalFileSystemURL = self.resolveLocalFileSystemURL || | |
self.webkitResolveLocalFileSystemURL; | |
navigator.temporaryStorage = navigator.temporaryStorage || | |
navigator.webkitTemporaryStorage; | |
navigator.persistentStorage = navigator.persistentStorage || | |
navigator.webkitPersistentStorage; | |
self.BlobBuilder = self.BlobBuilder || self.MozBlobBuilder || | |
self.WebKitBlobBuilder; | |
// Prevent errors in browsers that don't support FileError. | |
if (self.FileError === undefined) { | |
var FileError = function() {}; | |
FileError.prototype.prototype = Error.prototype; | |
} | |
var Util = { | |
/** | |
* Turns a NodeList into an array. | |
* | |
* @param {NodeList} list The array-like object. | |
* @return {Array} The NodeList as an array. | |
*/ | |
toArray: function(list) { | |
return Array.prototype.slice.call(list || [], 0); | |
}, | |
/*toDataURL: function(contentType, uint8Array) { | |
return 'data:' + contentType + ';base64,' + | |
self.btoa(this.arrayToBinaryString(uint8Array)); | |
},*/ | |
/** | |
* Creates a data: URL from string data. | |
* | |
* @param {string} str The content to encode the data: URL from. | |
* @param {string} contentType The mimetype of the data str represents. | |
* @param {bool=} opt_isBinary Whether the string data is a binary string | |
* (and therefore should be base64 encoded). True by default. | |
* @return {string} The created data: URL. | |
*/ | |
strToDataURL: function(str, contentType, opt_isBinary) { | |
var isBinary = opt_isBinary != undefined ? opt_isBinary : true; | |
if (isBinary) { | |
return 'data:' + contentType + ';base64,' + self.btoa(str); | |
} else { | |
return 'data:' + contentType + ',' + str; | |
} | |
}, | |
/** | |
* Creates a blob: URL from a binary str. | |
* | |
* @param {string} binStr The content as a binary string. | |
* @param {string=} opt_contentType An optional mimetype of the data. | |
* @return {string} A new blob: URL. | |
*/ | |
strToObjectURL: function(binStr, opt_contentType) { | |
var ui8a = new Uint8Array(binStr.length); | |
for (var i = 0; i < ui8a.length; ++i) { | |
ui8a[i] = binStr.charCodeAt(i); | |
} | |
var blob = new Blob([ui8a], | |
opt_contentType ? {type: opt_contentType} : {}); | |
return self.URL.createObjectURL(blob); | |
}, | |
/** | |
* Creates a blob: URL from a File or Blob object. | |
* | |
* @param {Blob|File} blob The File or Blob data. | |
* @return {string} A new blob: URL. | |
*/ | |
fileToObjectURL: function(blob) { | |
return self.URL.createObjectURL(blob); | |
}, | |
/** | |
* Reads a File or Blob object and returns it as an ArrayBuffer. | |
* | |
* @param {Blob|File} blob The File or Blob data. | |
* @param {Function} callback Success callback passed the array buffer. | |
* @param {Function=} opt_error Optional error callback if the read fails. | |
*/ | |
fileToArrayBuffer: function(blob, callback, opt_errorCallback) { | |
var reader = new FileReader(); | |
reader.onload = function(e) { | |
callback(e.target.result); | |
}; | |
reader.onerror = function(e) { | |
if (opt_errorCallback) { | |
opt_errorCallback(e); | |
} | |
}; | |
reader.readAsArrayBuffer(blob); | |
}, | |
/** | |
* Creates and returns a blob from a data URL (either base64 encoded or not). | |
* | |
* @param {string} dataURL The data URL to convert. | |
* @return {Blob} A blob representing the array buffer data. | |
*/ | |
dataURLToBlob: function(dataURL) { | |
var BASE64_MARKER = ';base64,'; | |
if (dataURL.indexOf(BASE64_MARKER) == -1) { | |
var parts = dataURL.split(','); | |
var contentType = parts[0].split(':')[1]; | |
var raw = parts[1]; | |
return new Blob([raw], {type: contentType}); | |
} | |
var parts = dataURL.split(BASE64_MARKER); | |
var contentType = parts[0].split(':')[1]; | |
var raw = window.atob(parts[1]); | |
var rawLength = raw.length; | |
var uInt8Array = new Uint8Array(rawLength); | |
for (var i = 0; i < rawLength; ++i) { | |
uInt8Array[i] = raw.charCodeAt(i); | |
} | |
return new Blob([uInt8Array], {type: contentType}); | |
}, | |
/** | |
* Reads an ArrayBuffer as returns its contents as a binary string. | |
* | |
* @param {ArrayBuffer} buffer The buffer of data. | |
* @param {string=} opt_contentType An optional mimetype of the data. | |
* @return {Blob} A blob representing the array buffer data. | |
*/ | |
arrayBufferToBlob: function(buffer, opt_contentType) { | |
var uInt8Array = new Uint8Array(buffer); | |
return new Blob([uInt8Array], | |
opt_contentType ? {type: opt_contentType} : {}); | |
}, | |
/** | |
* Reads an ArrayBuffer as returns its contents as a binary string. | |
* | |
* @param {ArrayBuffer} buffer The buffer of data. | |
* @param {Function} callback Success callback passed the binary string. | |
* @param {Function=} opt_error Optional error callback if the read fails. | |
*/ | |
arrayBufferToBinaryString: function(buffer, callback, opt_errorCallback) { | |
var reader = new FileReader(); | |
reader.onload = function(e) { | |
callback(e.target.result); | |
}; | |
reader.onerror = function(e) { | |
if (opt_errorCallback) { | |
opt_errorCallback(e); | |
} | |
}; | |
var uInt8Array = new Uint8Array(buffer); | |
reader.readAsBinaryString(new Blob([uInt8Array])); | |
}, | |
/** | |
* Create a binary string out of an array of numbers (bytes), each varying | |
* from 0-255. | |
* | |
* @param {Array} bytes The array of numbers to transform into a binary str. | |
* @return {string} The byte array as a string. | |
*/ | |
arrayToBinaryString: function(bytes) { | |
if (typeof bytes != typeof []) { | |
return null; | |
} | |
var i = bytes.length; | |
var bstr = new Array(i); | |
while (i--) { | |
bstr[i] = String.fromCharCode(bytes[i]); | |
} | |
return bstr.join(''); | |
}, | |
/** | |
* Returns the file extension for a given filename. | |
* | |
* @param {string} filename The filename. | |
* @return {string} The file's extension. | |
*/ | |
getFileExtension: function(filename) { | |
var idx = filename.lastIndexOf('.'); | |
return idx != -1 ? filename.substring(idx) : ''; | |
} | |
}; | |
var MyFileError = function(obj) { | |
this.prototype = FileError.prototype; | |
this.code = obj.code; | |
this.name = obj.name; | |
}; | |
//MyFileError.prototype.__proto__ = FileError.prototype; | |
// Extend FileError with custom errors and a convenience method to get error | |
// code mnemonic. | |
FileError.BROWSER_NOT_SUPPORTED = 1000; | |
// TODO: remove when FileError.name is implemented (crbug.com/86014). | |
FileError.prototype.__defineGetter__('name', function() { | |
var keys = Object.keys(FileError); | |
for (var i = 0, key; key = keys[i]; ++i) { | |
if (FileError[key] == this.code) { | |
return key; | |
} | |
} | |
return 'Unknown Error'; | |
}); | |
var Filer = new function() { | |
var FS_INIT_ERROR_MSG = 'Filesystem has not been initialized.'; | |
var NOT_IMPLEMENTED_MSG = 'Not implemented.'; | |
var NOT_A_DIRECTORY = 'Path was not a directory.'; | |
var INCORRECT_ARGS = 'These method arguments are not supported.'; | |
var FS_URL_SCHEME = 'filesystem:'; | |
var DEFAULT_FS_SIZE = 1024 * 1024; // 1MB. | |
var fs_ = null; | |
var cwd_ = null; | |
var isOpen_ = false; | |
var isFsURL_ = function(path) { | |
return path.indexOf(FS_URL_SCHEME) == 0; | |
}; | |
// Path can be relative or absolute. If relative, it's taken from the cwd_. | |
// If a filesystem URL is passed it, it is simple returned | |
var pathToFsURL_ = function(path) { | |
if (!isFsURL_(path)) { | |
if (path[0] == '/') { | |
path = fs_.root.toURL() + path.substring(1); | |
} else if (path.indexOf('./') == 0 || path.indexOf('../') == 0) { | |
if (path == '../' && cwd_ != fs_.root) { | |
path = cwd_.toURL() + '/' + path; | |
} else { | |
path = cwd_.toURL() + path; | |
} | |
} else { | |
path = cwd_.toURL() + '/' + path; | |
} | |
} | |
return path; | |
}; | |
/** | |
* Looks up a FileEntry or DirectoryEntry for a given path. | |
* | |
* @param {function(...FileEntry|DirectorEntry)} callback A callback to be | |
* passed the entry/entries that were fetched. The ordering of the | |
* entries passed to the callback correspond to the same order passed | |
* to this method. | |
* @param {...string} var_args 1-2 paths to lookup and return entries for. | |
* These can be paths or filesystem: URLs. | |
*/ | |
var getEntry_ = function(callback, var_args) { | |
var srcStr = arguments[1]; | |
var destStr = arguments[2]; | |
var onError = function(e) { | |
if (e.code == FileError.NOT_FOUND_ERR) { | |
if (destStr) { | |
throw new Error('"' + srcStr + '" or "' + destStr + | |
'" does not exist.'); | |
} else { | |
throw new Error('"' + srcStr + '" does not exist.'); | |
} | |
} else { | |
throw new Error('Problem getting Entry for one or more paths.'); | |
} | |
}; | |
// Build a filesystem: URL manually if we need to. | |
var src = pathToFsURL_(srcStr); | |
if (arguments.length == 3) { | |
var dest = pathToFsURL_(destStr); | |
self.resolveLocalFileSystemURL(src, function(srcEntry) { | |
self.resolveLocalFileSystemURL(dest, function(destEntry) { | |
callback(srcEntry, destEntry); | |
}, onError); | |
}, onError); | |
} else { | |
self.resolveLocalFileSystemURL(src, callback, onError); | |
} | |
}; | |
/** | |
* Copy or moves a file or directory to a destination. | |
* | |
* See public method's description (Filer.cp()) for rest of params. | |
* @param {Boolean=} opt_deleteOrig True if the original entry should be | |
* deleted after the copy takes place, essentially making the operation | |
* a move instead of a copy. Defaults to false. | |
*/ | |
var copyOrMove_ = function(src, dest, opt_newName, opt_successCallback, | |
opt_errorHandler, opt_deleteOrig) { | |
var self = this; | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
if (typeof src != typeof dest) { | |
throw new Error(INCORRECT_ARGS); | |
} | |
var newName = opt_newName || null; | |
var deleteOrig = opt_deleteOrig != undefined ? opt_deleteOrig : false; | |
if ((src.isFile || dest.isDirectory) && dest.isDirectory) { | |
if (deleteOrig) { | |
src.moveTo(dest, newName, opt_successCallback, opt_errorHandler); | |
} else { | |
src.copyTo(dest, newName, opt_successCallback, opt_errorHandler); | |
} | |
} else { | |
getEntry_(function(srcEntry, destDir) { | |
if (!destDir.isDirectory) { | |
var e = new Error('Oops! "' + destDir.name + ' is not a directory!'); | |
if (opt_errorHandler) { | |
opt_errorHandler(e); | |
} else { | |
throw e; | |
} | |
return; | |
} | |
if (deleteOrig) { | |
srcEntry.moveTo(destDir, newName, opt_successCallback, opt_errorHandler); | |
} else { | |
srcEntry.copyTo(destDir, newName, opt_successCallback, opt_errorHandler); | |
} | |
}, src, dest); | |
} | |
} | |
function Filer(fs) { | |
fs_ = fs || null; | |
if (fs_) { | |
cwd_ = fs_.root; | |
isOpen_ = true; // TODO: this may not be the case. | |
} | |
} | |
Filer.DEFAULT_FS_SIZE = DEFAULT_FS_SIZE; | |
Filer.version = '0.4.1'; | |
Filer.prototype = { | |
get fs() { | |
return fs_; | |
}, | |
get isOpen() { | |
return isOpen_; | |
}, | |
get cwd() { | |
return cwd_; | |
} | |
} | |
/** | |
* Constructs and returns a filesystem: URL given a path. | |
* | |
* @param {string=} path The path to construct a URL for. | |
* size {int=} The storage size (in bytes) to open the filesystem with. | |
* Defaults to DEFAULT_FS_SIZE. | |
* @return {string} The filesystem: URL. | |
*/ | |
Filer.prototype.pathToFilesystemURL = function(path) { | |
return pathToFsURL_(path); | |
} | |
/** | |
* Initializes (opens) the file system. | |
* | |
* @param {object=} opt_initObj Optional object literal with the following | |
* properties. Note: If {} or null is passed, default values are used. | |
* persistent {Boolean=} Whether the browser should use persistent quota. | |
* Default is false. | |
* size {int=} The storage size (in bytes) to open the filesystem with. | |
* Defaults to DEFAULT_FS_SIZE. | |
* @param {Function=} opt_successCallback Optional success handler passed a | |
* DOMFileSystem object. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.init = function(opt_initObj, opt_successCallback, | |
opt_errorHandler) { | |
if (!self.requestFileSystem) { | |
throw new MyFileError({ | |
code: FileError.BROWSER_NOT_SUPPORTED, | |
name: 'BROWSER_NOT_SUPPORTED' | |
}); | |
} | |
var initObj = opt_initObj ? opt_initObj : {}; // Use defaults if obj is null. | |
var size = initObj.size || DEFAULT_FS_SIZE; | |
this.type = self.TEMPORARY; | |
if ('persistent' in initObj && initObj.persistent) { | |
this.type = self.PERSISTENT; | |
} | |
var init = function(fs) { | |
this.size = size; | |
fs_ = fs; | |
cwd_ = fs_.root; | |
isOpen_ = true; | |
opt_successCallback && opt_successCallback(fs); | |
}; | |
if (this.type == self.PERSISTENT && !!navigator.persistentStorage) { | |
navigator.persistentStorage.requestQuota(size, function(grantedBytes) { | |
self.requestFileSystem( | |
this.type, grantedBytes, init.bind(this), opt_errorHandler); | |
}.bind(this), opt_errorHandler); | |
} else { | |
self.requestFileSystem( | |
this.type, size, init.bind(this), opt_errorHandler); | |
} | |
}; | |
/** | |
* Reads the contents of a directory. | |
* | |
* @param {string|DirectoryEntry} dirEntryOrPath A path relative to the | |
* current working directory. In most cases that is the root entry, unless | |
* cd() has been called. A DirectoryEntry or filesystem URL can also be | |
* passed, in which case, the folder's contents will be returned. | |
* @param {Function} successCallback Success handler passed an Array<Entry>. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.ls = function(dirEntryOrPath, successCallback, | |
opt_errorHandler) { | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
var callback = function(dirEntry) { | |
cwd_ = dirEntry; | |
// Read contents of current working directory. According to spec, need to | |
// keep calling readEntries() until length of result array is 0. We're | |
// guarenteed the same entry won't be returned again. | |
var entries_ = []; | |
var reader = cwd_.createReader(); | |
var readEntries = function() { | |
reader.readEntries(function(results) { | |
if (!results.length) { | |
// By default, sort the list by name. | |
entries_.sort(function(a, b) { | |
return a.name < b.name ? -1 : b.name < a.name ? 1 : 0; | |
}); | |
successCallback(entries_); | |
} else { | |
entries_ = entries_.concat(Util.toArray(results)); | |
readEntries(); | |
} | |
}, opt_errorHandler); | |
}; | |
readEntries(); | |
}; | |
if (dirEntryOrPath.isDirectory) { // passed a DirectoryEntry. | |
callback(dirEntryOrPath); | |
} else if (isFsURL_(dirEntryOrPath)) { // passed a filesystem URL. | |
getEntry_(callback, pathToFsURL_(dirEntryOrPath)); | |
} else { // Passed a path. Look up DirectoryEntry and proceeed. | |
// TODO: Find way to use getEntry_(callback, dirEntryOrPath); with cwd_. | |
cwd_.getDirectory(dirEntryOrPath, {}, callback, opt_errorHandler); | |
} | |
}; | |
/** | |
* Creates a new directory. | |
* | |
* @param {string} path The name of the directory to create. If a path is | |
* given, each intermediate dir is created (e.g. similar to mkdir -p). | |
* @param {bool=} opt_exclusive True if an error should be thrown if | |
* one or more of the directories already exists. False by default. | |
* @param {Function} opt_successCallback Success handler passed the | |
* DirectoryEntry that was created. If we were passed a path, the last | |
* directory that was created is passed back. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.mkdir = function(path, opt_exclusive, opt_successCallback, | |
opt_errorHandler) { | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
var exclusive = opt_exclusive != null ? opt_exclusive : false; | |
var folderParts = path.split('/'); | |
var createDir = function(rootDir, folders) { | |
// Throw out './' or '/' and move on. Prevents: '/foo/.//bar'. | |
if (folders[0] == '.' || folders[0] == '') { | |
folders = folders.slice(1); | |
} | |
rootDir.getDirectory(folders[0], {create: true, exclusive: exclusive}, | |
function (dirEntry) { | |
if (dirEntry.isDirectory) { // TODO: check shouldn't be necessary. | |
// Recursively add the new subfolder if we have more to create and | |
// There was more than one folder to create. | |
if (folders.length && folderParts.length != 1) { | |
createDir(dirEntry, folders.slice(1)); | |
} else { | |
// Return the last directory that was created. | |
if (opt_successCallback) opt_successCallback(dirEntry); | |
} | |
} else { | |
var e = new Error(path + ' is not a directory'); | |
if (opt_errorHandler) { | |
opt_errorHandler(e); | |
} else { | |
throw e; | |
} | |
} | |
}, | |
function(e) { | |
if (e.code == FileError.INVALID_MODIFICATION_ERR) { | |
e.message = "'" + path + "' already exists"; | |
if (opt_errorHandler) { | |
opt_errorHandler(e); | |
} else { | |
throw e; | |
} | |
} | |
} | |
); | |
}; | |
createDir(cwd_, folderParts); | |
}; | |
/** | |
* Looks up and return a File for a given file entry. | |
* | |
* @param {string|FileEntry} entryOrPath A path, filesystem URL, or FileEntry | |
* of the file to lookup. | |
* @param {Function} successCallback Success callback passed the File object. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.open = function(entryOrPath, successCallback, opt_errorHandler) { | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
if (entryOrPath.isFile) { | |
entryOrPath.file(successCallback, opt_errorHandler); | |
} else { | |
getEntry_(function(fileEntry) { | |
fileEntry.file(successCallback, opt_errorHandler); | |
}, pathToFsURL_(entryOrPath)); | |
} | |
}; | |
/** | |
* Creates an empty file. | |
* | |
* @param {string} path The relative path of the file to create, from the | |
* current working directory. | |
* @param {bool=} opt_exclusive True (default) if an error should be thrown if | |
* the file already exists. | |
* @param {Function} successCallback A success callback, which is passed | |
* the new FileEntry. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.create = function(path, opt_exclusive, successCallback, | |
opt_errorHandler) { | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
var exclusive = opt_exclusive != null ? opt_exclusive : true; | |
cwd_.getFile(path, {create: true, exclusive: exclusive}, successCallback, | |
function(e) { | |
if (e.code == FileError.INVALID_MODIFICATION_ERR) { | |
e.message = "'" + path + "' already exists"; | |
} | |
if (opt_errorHandler) { | |
opt_errorHandler(e); | |
} else { | |
throw e; | |
} | |
} | |
); | |
}; | |
/** | |
* Moves a file or directory. | |
* | |
* @param {string|FileEntry|DirectoryEntry} src The file/directory | |
* to move. If src is a string, a path or filesystem: URL is accepted. | |
* @param {string|DirectoryEntry} dest The directory to move the src into. | |
* If dest is a string, a path or filesystem: URL is accepted. | |
* Note: dest needs to be the same type as src. | |
* @param {string=} opt_newName An optional new name for the moved entry. | |
* @param {Function=} opt_successCallback Optional callback passed the moved | |
* entry on a successful move. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.mv = function(src, dest, opt_newName, opt_successCallback, | |
opt_errorHandler) { | |
copyOrMove_.bind(this, src, dest, opt_newName, opt_successCallback, | |
opt_errorHandler, true)(); | |
}; | |
/** | |
* Deletes a file or directory entry. | |
* | |
* @param {string|FileEntry|DirectoryEntry} entryOrPath The file or directory | |
* to remove. If entry is a DirectoryEntry, its contents are removed | |
* recursively. If entryOrPath is a string, a path or filesystem: URL is | |
* accepted. | |
* @param {Function} successCallback Zero arg callback invoked on | |
* successful removal. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.rm = function(entryOrPath, successCallback, | |
opt_errorHandler) { | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
var removeIt = function(entry) { | |
if (entry.isFile) { | |
entry.remove(successCallback, opt_errorHandler); | |
} else if (entry.isDirectory) { | |
entry.removeRecursively(successCallback, opt_errorHandler); | |
} | |
}; | |
if (entryOrPath.isFile || entryOrPath.isDirectory) { | |
removeIt(entryOrPath); | |
} else { | |
getEntry_(removeIt, entryOrPath); | |
} | |
}; | |
/** | |
* Changes the current working directory. | |
* | |
* @param {string|DirectoryEntry} dirEntryOrPath A DirectoryEntry to move into | |
* or a path relative to the current working directory. A filesystem: URL | |
* is also accepted | |
* @param {Function=} opt_successCallback Optional success callback, which is | |
* passed the DirectoryEntry of the new current directory. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.cd = function(dirEntryOrPath, opt_successCallback, | |
opt_errorHandler) { | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
if (dirEntryOrPath.isDirectory) { | |
cwd_ = dirEntryOrPath; | |
opt_successCallback && opt_successCallback(cwd_); | |
} else { | |
// Build a filesystem: URL manually if we need to. | |
var dirEntryOrPath = pathToFsURL_(dirEntryOrPath); | |
getEntry_(function(dirEntry) { | |
if (dirEntry.isDirectory) { | |
cwd_ = dirEntry; | |
opt_successCallback && opt_successCallback(cwd_); | |
} else { | |
var e = new Error(NOT_A_DIRECTORY); | |
if (opt_errorHandler) { | |
opt_errorHandler(e); | |
} else { | |
throw e; | |
} | |
} | |
}, dirEntryOrPath); | |
} | |
}; | |
/** | |
* Copies a file or directory to a destination. | |
* | |
* @param {string|FileEntry|DirectoryEntry} src The file/directory | |
* to copy. If src is a string, a path or filesystem: URL is accepted. | |
* @param {string|DirectoryEntry} dest The directory to copy the src into. | |
* If dest is a string, a path or filesystem: URL is accepted. | |
* Note: dest needs to be the same type as src. | |
* @param {string=} opt_newName An optional name for the copied entry. | |
* @param {Function=} opt_successCallback Optional callback passed the moved | |
* entry on a successful copy. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.cp = function(src, dest, opt_newName, opt_successCallback, | |
opt_errorHandler) { | |
copyOrMove_.bind(this, src, dest, opt_newName, opt_successCallback, | |
opt_errorHandler)(); | |
}; | |
/** | |
* Writes data to a file. | |
* | |
* If the file already exists, its contents are overwritten. | |
* | |
* @param {string|FileEntry} entryOrPath A path, filesystem URL, or FileEntry | |
* of the file to lookup. | |
* @param {object} dataObj The data to write. Example: | |
* {data: string|Blob|File|ArrayBuffer, type: mimetype, append: true} | |
* If append is specified, data is appended to the end of the file. | |
* @param {Function} opt_successCallback Success callback, which is passed | |
* the created FileEntry and FileWriter object used to write the data. | |
* @param {Function=} opt_errorHandler Optional error callback. | |
*/ | |
Filer.prototype.write = function(entryOrPath, dataObj, opt_successCallback, | |
opt_errorHandler) { | |
if (!fs_) { | |
throw new Error(FS_INIT_ERROR_MSG); | |
} | |
var writeFile_ = function(fileEntry) { | |
fileEntry.createWriter(function(fileWriter) { | |
fileWriter.onerror = opt_errorHandler; | |
if (dataObj.append) { | |
fileWriter.onwriteend = function(e) { | |
if (opt_successCallback) opt_successCallback(fileEntry, this); | |
}; | |
fileWriter.seek(fileWriter.length); // Start write position at EOF. | |
} else { | |
var truncated = false; | |
fileWriter.onwriteend = function(e) { | |
// Truncate file to newly written file size. | |
if (!truncated) { | |
truncated = true; | |
this.truncate(this.position); | |
return; | |
} | |
if (opt_successCallback) opt_successCallback(fileEntry, this); | |
}; | |
} | |
// Blob() takes ArrayBufferView, not ArrayBuffer. | |
if (dataObj.data.__proto__ == ArrayBuffer.prototype) { | |
dataObj.data = new Uint8Array(dataObj.data); | |
} | |
var blob = new Blob([dataObj.data], | |
dataObj.type ? {type: dataObj.type} : {}); | |
fileWriter.write(blob); | |
}, opt_errorHandler); | |
}; | |
if (entryOrPath.isFile) { | |
writeFile_(entryOrPath); | |
} else if (isFsURL_(entryOrPath)) { | |
getEntry_(writeFile_, entryOrPath); | |
} else { | |
cwd_.getFile(entryOrPath, {create: true, exclusive: false}, writeFile_, | |
opt_errorHandler); | |
} | |
}; | |
return Filer; | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ttwr.factory('fileSystem', ['$q', '$timeout', function($q, $timeout) { | |
var fsDefer = $q.defer(); | |
var DEFAULT_QUOTA_MB = 0; | |
//wrap resolve/reject in an empty $timeout so it happens within the Angular call stack | |
//easier than .apply() since no scope is needed and doesn't error if already within an apply | |
function safeResolve(deferral, message) { | |
$timeout(function() { | |
deferral.resolve(message); | |
}); | |
} | |
function safeReject(deferral, message) { | |
$timeout(function() { | |
deferral.reject(message); | |
}); | |
} | |
window.webkitStorageInfo.requestQuota(window.PERSISTENT, DEFAULT_QUOTA_MB*1024*1024, function(grantedBytes) { | |
window.webkitRequestFileSystem(window.PERSISTENT, grantedBytes, function(fs) { | |
safeResolve(fsDefer, fs); | |
}, function(e){ | |
safeReject(fsDefer, {text: "Error requesting File System access", obj: e}); | |
}); | |
}, function(e) { | |
safeReject(fsDefer, {text: "Error requesting Quota", obj: e}); | |
}); | |
var fileSystem = { | |
getCurrentUsage: function() { | |
var def = $q.defer(); | |
webkitStorageInfo.queryUsageAndQuota(window.PERSISTENT, function(used, quota) { | |
safeResolve(def, {'used': used, 'quota': quota}); | |
}, function(e) { | |
safeReject(def, {text: "Error getting quota information", obj: e}); | |
}); | |
return def.promise; | |
}, | |
requestQuotaIncrease: function(newQuotaMB) { | |
var def = $q.defer(); | |
window.webkitStorageInfo.requestQuota(window.PERSISTENT, newQuotaMB*1024*1024, function(grantedBytes) { | |
safeResolve(def, grantedBytes); | |
}, function(e) { | |
safeReject(def, {text: "Error requesting quota increase", obj: e}); | |
}); | |
return def.promise; | |
}, | |
getFolderContents: function(dir) { | |
var def = $q.defer(); | |
fsDefer.promise.then(function(fs) { | |
fs.root.getDirectory(fs.root.fullPath + dir, {}, function(dirEntry) { | |
var dirReader = dirEntry.createReader(); | |
dirReader.readEntries(function(entries) { | |
safeResolve(def, entries); | |
}, function(e) { | |
safeReject(def, {text: "Error reading entries", obj: e}); | |
}); | |
}, function(e) { | |
safeReject(def, {text: "Error getting directory", obj: e}); | |
}); | |
}, function(err) { | |
def.reject(err); | |
}); | |
return def.promise; | |
}, | |
createFolder: function(path) { | |
//remove leading slash if present | |
path = path.replace(/^\//, ""); | |
var def = $q.defer(); | |
function createDir(rootDir, folders) { | |
rootDir.getDirectory(folders[0], {create: true}, function(dirEntry) { | |
if (folders.length) { | |
createDir(dirEntry, folders.slice(1)); | |
} else { | |
safeResolve(def, dirEntry); | |
} | |
}, function(e) { | |
safeReject(def, {text: "Error creating directory", obj: e}); | |
}); | |
} | |
fsDefer.promise.then(function(fs) { | |
createDir(fs.root, path.split('/')); | |
}, function(err) { | |
def.reject(err); | |
}); | |
return def.promise; | |
}, | |
deleteFolder: function(path, recursive) { | |
recursive = (typeof recursive == 'undefined' ? false : recursive); | |
var def = $q.defer(); | |
fsDefer.promise.then(function(fs) { | |
fs.root.getDirectory(path, {}, function(dirEntry) { | |
var success = function() { | |
safeResolve(def, ""); | |
}; | |
var err = function(e) { | |
safeReject(def, {text: "Error removing directory", obj: e}); | |
}; | |
if(recursive) { | |
dirEntry.removeRecursively(success, err); | |
} else { | |
dirEntry.remove(success, err); | |
} | |
}, function(e) { | |
safeReject(def, {text: "Error getting directory", obj: e}); | |
}); | |
}, function(err) { | |
def.reject(err); | |
}); | |
return def.promise; | |
}, | |
writeFileInput: function(filename, file, mimeString) { | |
var def = $q.defer(); | |
var reader = new FileReader(); | |
reader.onload = function(e) { | |
var buf = e.target.result; | |
$timeout(function() { | |
fileSystem.writeArrayBuffer(filename, buf, mimeString).then(function() { | |
safeResolve(def, ""); | |
}, function(e) { | |
safeReject(def, e); | |
}); | |
}); | |
}; | |
reader.readAsArrayBuffer(file); | |
return def.promise; | |
}, | |
writeText: function(fileName, contents, append) { | |
append = (typeof append == 'undefined' ? false : append); | |
//create text blob from string | |
var blob = new Blob([contents], {type: 'text/plain'}); | |
return fileSystem.writeBlob(fileName, blob, append); | |
}, | |
writeArrayBuffer: function(fileName, buf, mimeString, append) { | |
append = (typeof append == 'undefined' ? false : append); | |
var blob = new Blob([new Uint8Array(buf)], {type: mimeString}); | |
return fileSystem.writeBlob(fileName, blob, append); | |
}, | |
writeBlob: function(fileName, blob, append) { | |
append = (typeof append == 'undefined' ? false : append); | |
var def = $q.defer(); | |
fsDefer.promise.then(function(fs) { | |
fs.root.getFile(fileName, {create: true}, function(fileEntry) { | |
fileEntry.createWriter(function(fileWriter) { | |
if(append) { | |
fileWriter.seek(fileWriter.length); | |
} | |
var truncated = false; | |
fileWriter.onwriteend = function(e) { | |
//truncate all data after current position | |
if (!truncated) { | |
truncated = true; | |
this.truncate(this.position); | |
return; | |
} | |
safeResolve(def, ""); | |
}; | |
fileWriter.onerror = function(e) { | |
safeReject(def, {text: 'Write failed', obj: e}); | |
}; | |
fileWriter.write(blob); | |
}, function(e) { | |
safeReject(def, {text: "Error creating file", obj: e}); | |
}); | |
}, function(e) { | |
safeReject(def, {text: "Error getting file", obj: e}); | |
}); | |
}, function(err) { | |
def.reject(err); | |
}); | |
return def.promise; | |
}, | |
readFile: function(fileName, returnType) { | |
var def = $q.defer(); | |
returnType = returnType || "text"; | |
fsDefer.promise.then(function(fs) { | |
fs.root.getFile(fileName, {}, function(fileEntry) { | |
// Get a File object representing the file, | |
// then use FileReader to read its contents. | |
fileEntry.file(function(file) { | |
var reader = new FileReader(); | |
reader.onloadend = function() { | |
safeResolve(def, this.result); | |
}; | |
reader.onerror = function(e) { | |
safeReject(def, {text: "Error reading file", obj: e}); | |
}; | |
switch(returnType) { | |
case 'arraybuffer': | |
reader.readAsArrayBuffer(file); | |
break; | |
case 'binarystring': | |
reader.readAsBinaryString(file); | |
break; | |
case 'dataurl': | |
reader.readAsDataURL(file); | |
break; | |
default: | |
reader.readAsText(file); | |
} | |
}, function(e) { | |
safeReject(def, {text: "Error getting file", obj: e}); | |
}); | |
}, function(e) { | |
safeReject(def, {text: "Error getting file", obj: e}); | |
}); | |
}, function(err) { | |
def.reject(err); | |
}); | |
return def.promise; | |
}, | |
deleteFile: function(fullPath) { | |
var def = $q.defer(); | |
fsDefer.promise.then(function(fs) { | |
fs.root.getFile(fullPath, {create:false}, function(fileEntry) { | |
fileEntry.remove(function() { | |
safeResolve(def, ""); | |
}, function(e) { | |
safeReject(def, {text: "Error deleting file", obj: e}); | |
}); | |
}); | |
}, function(err) { | |
def.reject(err); | |
}); | |
return def.promise; | |
} | |
}; | |
return fileSystem; | |
}]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license | |
//@ sourceMappingURL=jquery-2.0.3.min.map | |
*/ | |
(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.attachEvent&&r!==r.top&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ut(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[v]&&(r=bt(r)),i&&!i[v]&&(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=yt(function(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return bt(l>1&&vt(f),l>1&&mt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&wt(e.slice(l,r)),o>r&&wt(e=e.slice(r)),o>r&&mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split("").sort(S).join("")===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||lt("type|href|height|width",function(e,t,n){return n?undefined:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||lt("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&&"string"==typeof t&&n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t) | |
};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ct={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1></$2>")+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[q.expando],o&&(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&&delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=q.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(xt[0].contentWindow||xt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=Mt(e,t),xt.detach()),Nt[e]=n),n}function Mt(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,t){x.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&bt.test(x.css(e,"display"))?x.swap(e,Et,function(){return Pt(e,t,r)}):Pt(e,t,r):undefined},set:function(e,n,r){var i=r&&qt(e);return Ot(e,n,r?Ft(e,t,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,t){return t?x.swap(e,{display:"inline-block"},vt,[e,"marginRight"]):undefined}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,t){x.cssHooks[t]={get:function(e,n){return n?(n=vt(e,t),Ct.test(n)?x(e).position()[t]+"px":n):undefined}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+jt[r]+t]=o[r]||o[r-2]||o[0];return i}},wt.test(e)||(x.cssHooks[e+t].set=Ot)});var Wt=/%20/g,$t=/\[\]$/,Bt=/\r?\n/g,It=/^(?:submit|button|image|reset|file)$/i,zt=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&zt.test(this.nodeName)&&!It.test(e)&&(this.checked||!ot.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(Bt,"\r\n")}}):{name:t.name,value:n.replace(Bt,"\r\n")}}).get()}}),x.param=function(e,t){var n,r=[],i=function(e,t){t=x.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(t===undefined&&(t=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){i(this.name,this.value)});else for(n in e)_t(n,e[n],t,i);return r.join("&").replace(Wt,"+")};function _t(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||$t.test(e)?r(e,i):_t(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)_t(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t) | |
},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Xt,Ut,Yt=x.now(),Vt=/\?/,Gt=/#.*$/,Jt=/([?&])_=[^&]*/,Qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Kt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Zt=/^(?:GET|HEAD)$/,en=/^\/\//,tn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,nn=x.fn.load,rn={},on={},sn="*/".concat("*");try{Ut=i.href}catch(an){Ut=o.createElement("a"),Ut.href="",Ut=Ut.href}Xt=tn.exec(Ut.toLowerCase())||[];function un(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function ln(e,t,n,r){var i={},o=e===on;function s(a){var u;return i[a]=!0,x.each(e[a]||[],function(e,a){var l=a(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):undefined:(t.dataTypes.unshift(l),s(l),!1)}),u}return s(t.dataTypes[0])||!i["*"]&&s("*")}function cn(e,t){var n,r,i=x.ajaxSettings.flatOptions||{};for(n in t)t[n]!==undefined&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,t,n){if("string"!=typeof e&&nn)return nn.apply(this,arguments);var r,i,o,s=this,a=e.indexOf(" ");return a>=0&&(r=e.slice(a),e=e.slice(0,a)),x.isFunction(t)?(n=t,t=undefined):t&&"object"==typeof t&&(i="POST"),s.length>0&&x.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){o=arguments,s.html(r?x("<div>").append(x.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){s.each(n,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ut,type:"GET",isLocal:Kt.test(Xt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":sn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?cn(cn(e,x.ajaxSettings),t):cn(x.ajaxSettings,e)},ajaxPrefilter:un(rn),ajaxTransport:un(on),ajax:function(e,t){"object"==typeof e&&(t=e,e=undefined),t=t||{};var n,r,i,o,s,a,u,l,c=x.ajaxSetup({},t),p=c.context||c,f=c.context&&(p.nodeType||p.jquery)?x(p):x.event,h=x.Deferred(),d=x.Callbacks("once memory"),g=c.statusCode||{},m={},y={},v=0,b="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===v){if(!o){o={};while(t=Qt.exec(i))o[t[1].toLowerCase()]=t[2]}t=o[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===v?i:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return v||(e=y[n]=y[n]||e,m[e]=t),this},overrideMimeType:function(e){return v||(c.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>v)for(t in e)g[t]=[g[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||b;return n&&n.abort(t),k(0,t),this}};if(h.promise(T).complete=d.add,T.success=T.done,T.error=T.fail,c.url=((e||c.url||Ut)+"").replace(Gt,"").replace(en,Xt[1]+"//"),c.type=t.method||t.type||c.method||c.type,c.dataTypes=x.trim(c.dataType||"*").toLowerCase().match(w)||[""],null==c.crossDomain&&(a=tn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===Xt[1]&&a[2]===Xt[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(Xt[3]||("http:"===Xt[1]?"80":"443")))),c.data&&c.processData&&"string"!=typeof c.data&&(c.data=x.param(c.data,c.traditional)),ln(rn,c,t,T),2===v)return T;u=c.global,u&&0===x.active++&&x.event.trigger("ajaxStart"),c.type=c.type.toUpperCase(),c.hasContent=!Zt.test(c.type),r=c.url,c.hasContent||(c.data&&(r=c.url+=(Vt.test(r)?"&":"?")+c.data,delete c.data),c.cache===!1&&(c.url=Jt.test(r)?r.replace(Jt,"$1_="+Yt++):r+(Vt.test(r)?"&":"?")+"_="+Yt++)),c.ifModified&&(x.lastModified[r]&&T.setRequestHeader("If-Modified-Since",x.lastModified[r]),x.etag[r]&&T.setRequestHeader("If-None-Match",x.etag[r])),(c.data&&c.hasContent&&c.contentType!==!1||t.contentType)&&T.setRequestHeader("Content-Type",c.contentType),T.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+("*"!==c.dataTypes[0]?", "+sn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)T.setRequestHeader(l,c.headers[l]);if(c.beforeSend&&(c.beforeSend.call(p,T,c)===!1||2===v))return T.abort();b="abort";for(l in{success:1,error:1,complete:1})T[l](c[l]);if(n=ln(on,c,t,T)){T.readyState=1,u&&f.trigger("ajaxSend",[T,c]),c.async&&c.timeout>0&&(s=setTimeout(function(){T.abort("timeout")},c.timeout));try{v=1,n.send(m,k)}catch(C){if(!(2>v))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,t,o,a){var l,m,y,b,w,C=t;2!==v&&(v=2,s&&clearTimeout(s),n=undefined,i=a||"",T.readyState=e>0?4:0,l=e>=200&&300>e||304===e,o&&(b=pn(c,T,o)),b=fn(c,b,T,l),l?(c.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(x.lastModified[r]=w),w=T.getResponseHeader("etag"),w&&(x.etag[r]=w)),204===e||"HEAD"===c.type?C="nocontent":304===e?C="notmodified":(C=b.state,m=b.data,y=b.error,l=!y)):(y=C,(e||!C)&&(C="error",0>e&&(e=0))),T.status=e,T.statusText=(t||C)+"",l?h.resolveWith(p,[m,C,T]):h.rejectWith(p,[T,C,y]),T.statusCode(g),g=undefined,u&&f.trigger(l?"ajaxSuccess":"ajaxError",[T,c,l?m:y]),d.fireWith(p,[T,C]),u&&(f.trigger("ajaxComplete",[T,c]),--x.active||x.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,t){return x.get(e,undefined,t,"script")}}),x.each(["get","post"],function(e,t){x[t]=function(e,n,r,i){return x.isFunction(n)&&(i=i||r,r=n,n=undefined),x.ajax({url:e,type:t,dataType:i,data:n,success:r})}});function pn(e,t,n){var r,i,o,s,a=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),r===undefined&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}s||(s=i)}o=o||s}return o?(o!==u[0]&&u.unshift(o),n[o]):undefined}function fn(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(s=l[u+" "+o]||l["* "+o],!s)for(i in l)if(a=i.split(" "),a[1]===o&&(s=l[u+" "+a[0]]||l["* "+a[0]])){s===!0?s=l[i]:l[i]!==!0&&(o=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&e["throws"])t=s(t);else try{t=s(t)}catch(p){return{state:"parsererror",error:s?p:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),x.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=x("<script>").prop({async:!0,charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),o.head.appendChild(t[0])},abort:function(){n&&n()}}}});var hn=[],dn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=hn.pop()||x.expando+"_"+Yt++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,s,a=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");return a||"jsonp"===t.dataTypes[0]?(i=t.jsonpCallback=x.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(Vt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return s||x.error(i+" was not called"),s[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){s=arguments},r.always(function(){e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,hn.push(i)),s&&x.isFunction(o)&&o(s[0]),s=o=undefined}),"script"):undefined}),x.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var gn=x.ajaxSettings.xhr(),mn={0:200,1223:204},yn=0,vn={};e.ActiveXObject&&x(e).on("unload",function(){for(var e in vn)vn[e]();vn=undefined}),x.support.cors=!!gn&&"withCredentials"in gn,x.support.ajax=gn=!!gn,x.ajaxTransport(function(e){var t;return x.support.cors||gn&&!e.crossDomain?{send:function(n,r){var i,o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)s[i]=e.xhrFields[i];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)s.setRequestHeader(i,n[i]);t=function(e){return function(){t&&(delete vn[o],t=s.onload=s.onerror=null,"abort"===e?s.abort():"error"===e?r(s.status||404,s.statusText):r(mn[s.status]||s.status,s.statusText,"string"==typeof s.responseText?{text:s.responseText}:undefined,s.getAllResponseHeaders()))}},s.onload=t(),s.onerror=t("error"),t=vn[o=yn++]=t("abort"),s.send(e.hasContent&&e.data||null)},abort:function(){t&&t()}}:undefined});var xn,bn,wn=/^(?:toggle|show|hide)$/,Tn=RegExp("^(?:([+-])=|)("+b+")([a-z%]*)$","i"),Cn=/queueHooks$/,kn=[An],Nn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Tn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),s=(x.cssNumber[e]||"px"!==o&&+r)&&Tn.exec(x.css(n.elem,e)),a=1,u=20;if(s&&s[3]!==o){o=o||s[3],i=i||[],s=+r||1;do a=a||".5",s/=a,x.style(n.elem,e,s+o);while(a!==(a=n.cur()/r)&&1!==a&&--u)}return i&&(s=n.start=+s||+r||0,n.unit=o,n.end=i[1]?s+(i[1]+1)*i[2]:+i[2]),n}]};function En(){return setTimeout(function(){xn=undefined}),xn=x.now()}function Sn(e,t,n){var r,i=(Nn[t]||[]).concat(Nn["*"]),o=0,s=i.length;for(;s>o;o++)if(r=i[o].call(n,t,e))return r}function jn(e,t,n){var r,i,o=0,s=kn.length,a=x.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=xn||En(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,s=0,u=l.tweens.length;for(;u>s;s++)l.tweens[s].run(o);return a.notifyWith(e,[l,o,n]),1>o&&u?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:xn||En(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),c=l.props;for(Dn(c,l.opts.specialEasing);s>o;o++)if(r=kn[o].call(l,e,c,l.opts))return r;return x.map(c,Sn,l),x.isFunction(l.opts.start)&&l.opts.start.call(e,l),x.fx.timer(x.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function Dn(e,t){var n,r,i,o,s;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),s=x.cssHooks[r],s&&"expand"in s){o=s.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(jn,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Nn[n]=Nn[n]||[],Nn[n].unshift(t)},prefilter:function(e,t){t?kn.unshift(e):kn.push(e)}});function An(e,t,n){var r,i,o,s,a,u,l=this,c={},p=e.style,f=e.nodeType&&Lt(e),h=q.get(e,"fxshow");n.queue||(a=x._queueHooks(e,"fx"),null==a.unqueued&&(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,l.always(function(){l.always(function(){a.unqueued--,x.queue(e,"fx").length||a.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(p.display="inline-block")),n.overflow&&(p.overflow="hidden",l.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],wn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show")){if("show"!==i||!h||h[r]===undefined)continue;f=!0}c[r]=h&&h[r]||x.style(e,r)}if(!x.isEmptyObject(c)){h?"hidden"in h&&(f=h.hidden):h=q.access(e,"fxshow",{}),o&&(h.hidden=!f),f?x(e).show():l.done(function(){x(e).hide()}),l.done(function(){var t;q.remove(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)s=Sn(f?h[r]:0,r,l),r in h||(h[r]=s.start,f&&(s.end=s.start,s.start="width"===r||"height"===r?1:0))}}function Ln(e,t,n,r,i){return new Ln.prototype.init(e,t,n,r,i)}x.Tween=Ln,Ln.prototype={constructor:Ln,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=Ln.propHooks[this.prop];return e&&e.get?e.get(this):Ln.propHooks._default.get(this)},run:function(e){var t,n=Ln.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ln.propHooks._default.set(this),this}},Ln.prototype.init.prototype=Ln.prototype,Ln.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Ln.propHooks.scrollTop=Ln.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(qn(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Lt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),s=function(){var t=jn(this,x.extend({},e),o);(i||q.get(this,"finish"))&&t.stop(!0)};return s.finish=s,i||o.queue===!1?this.each(s):this.queue(o.queue,s)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=undefined),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=x.timers,s=q.get(this);if(i)s[i]&&s[i].stop&&r(s[i]);else for(i in s)s[i]&&s[i].stop&&Cn.test(i)&&r(s[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=q.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,s=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;s>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function qn(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=jt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:qn("show"),slideUp:qn("hide"),slideToggle:qn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=Ln.prototype.init,x.fx.tick=function(){var e,t=x.timers,n=0;for(xn=x.now();t.length>n;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||x.fx.stop(),xn=undefined},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){bn||(bn=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(bn),bn=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===undefined?this:this.each(function(t){x.offset.setOffset(this,e,t)});var t,n,i=this[0],o={top:0,left:0},s=i&&i.ownerDocument;if(s)return t=s.documentElement,x.contains(t,i)?(typeof i.getBoundingClientRect!==r&&(o=i.getBoundingClientRect()),n=Hn(s),{top:o.top+n.pageYOffset-t.clientTop,left:o.left+n.pageXOffset-t.clientLeft}):o},x.offset={setOffset:function(e,t,n){var r,i,o,s,a,u,l,c=x.css(e,"position"),p=x(e),f={};"static"===c&&(e.style.position="relative"),a=p.offset(),o=x.css(e,"top"),u=x.css(e,"left"),l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1,l?(r=p.position(),s=r.top,i=r.left):(s=parseFloat(o)||0,i=parseFloat(u)||0),x.isFunction(t)&&(t=t.call(e,n,a)),null!=t.top&&(f.top=t.top-a.top+s),null!=t.left&&(f.left=t.left-a.left+i),"using"in t?t.using.call(e,f):p.css(f)}},x.fn.extend({position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===x.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(r=e.offset()),r.top+=x.css(e[0],"borderTopWidth",!0),r.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-x.css(n,"marginTop",!0),left:t.left-r.left-x.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,n){var r="pageYOffset"===n;x.fn[t]=function(i){return x.access(this,function(t,i,o){var s=Hn(t);return o===undefined?s?s[n]:t[i]:(s?s.scrollTo(r?e.pageXOffset:o,r?o:e.pageYOffset):t[i]=o,undefined)},t,i,arguments.length,null)}});function Hn(e){return x.isWindow(e)?e:9===e.nodeType&&e.defaultView}x.each({Height:"height",Width:"width"},function(e,t){x.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){x.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),s=n||(r===!0||i===!0?"margin":"border");return x.access(this,function(t,n,r){var i;return x.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):r===undefined?x.css(t,n,s):x.style(t,n,r,s)},t,o?r:undefined,o,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}),"object"==typeof e&&"object"==typeof e.document&&(e.jQuery=e.$=x)})(window); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created with JetBrains PhpStorm. | |
* User: hoho | |
* Date: 13. 7. 31. | |
* Time: 오후 7:38 | |
* To change this template use File | Settings | File Templates. | |
*/ | |
var ttwr = angular.module('TTWR',['ui.bootstrap']) | |
./*config(function($compileProvider){ | |
$compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|tel):/); | |
}).*/config(function($dialogProvider){ | |
$dialogProvider.options({backdropClick: false, dialogFade: true}); | |
}); | |
ttwr.controller('MainCtrl',function($scope,$timeout){ | |
//console.log(fileSystem.getFolderContents("~")); | |
$timeout(function(){ | |
var filer = new Filer(); | |
function onError(e) { | |
console.log('Error' + e.name); | |
} | |
filer.init({persistent: false, size: 1024 * 1024}, function(fs) { | |
filer.size == Filer.DEFAULT_FS_SIZE | |
filer.isOpen == true | |
filer.fs == fs | |
}, onError); | |
filer.ls('~/Desktop', function(entries) { | |
// entries in the current working directory. | |
console.log(entries); | |
}, onError); | |
},0); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
angular.module("ui.bootstrap",["ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.datepicker","ui.bootstrap.dialog","ui.bootstrap.dropdownToggle","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.position","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){function a(e){for(var t in e)if(void 0!==i.style[t])return e[t]}var o=function(a,i,r){r=r||{};var l=e.defer(),s=o[r.animation?"animationEndEventName":"transitionEndEventName"],u=function(){n.$apply(function(){a.unbind(s,u),l.resolve(a)})};return s&&a.bind(s,u),t(function(){angular.isString(i)?a.addClass(i):angular.isFunction(i)?i(a):angular.isObject(i)&&a.css(i),s||l.resolve(a)}),l.promise.cancel=function(){s&&a.unbind(s,u),l.reject("Transition cancelled")},l.promise},i=document.createElement("trans"),r={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},l={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return o.transitionEndEventName=a(r),o.animationEndEventName=a(l),o}]),angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(e){var t=function(e,t,n){t.removeClass("collapse"),t.css({height:n}),t[0].offsetWidth,t.addClass("collapse")};return{link:function(n,a,o){var i,r=!0;n.$watch(function(){return a[0].scrollHeight},function(){0!==a[0].scrollHeight&&(i||(r?t(n,a,a[0].scrollHeight+"px"):t(n,a,"auto")))}),n.$watch(o.collapse,function(e){e?c():u()});var l,s=function(t){return l&&l.cancel(),l=e(a,t),l.then(function(){l=void 0},function(){l=void 0}),l},u=function(){r?(r=!1,i||t(n,a,"auto")):s({height:a[0].scrollHeight+"px"}).then(function(){i||t(n,a,"auto")}),i=!1},c=function(){i=!0,r?(r=!1,t(n,a,0)):(t(n,a,a[0].scrollHeight+"px"),s({height:"0"}))}}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(e,t,n){this.groups=[],this.closeOthers=function(a){var o=angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers;o&&angular.forEach(this.groups,function(e){e!==a&&(e.isOpen=!1)})},this.addGroup=function(e){var t=this;this.groups.push(e),e.$on("$destroy",function(){t.removeGroup(e)})},this.removeGroup=function(e){var t=this.groups.indexOf(e);-1!==t&&this.groups.splice(this.groups.indexOf(e),1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",["$parse","$transition","$timeout",function(e){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@"},controller:["$scope",function(){this.setHeading=function(e){this.heading=e}}],link:function(t,n,a,o){var i,r;o.addGroup(t),t.isOpen=!1,a.isOpen&&(i=e(a.isOpen),r=i.assign,t.$watch(function(){return i(t.$parent)},function(e){t.isOpen=e}),t.isOpen=i?i(t.$parent):!1),t.$watch("isOpen",function(e){e&&o.closeOthers(t),r&&r(t.$parent,e)})}}}]).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",compile:function(e,t,n){return function(e,t,a,o){o.setHeading(n(e,function(){}))}}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(e,t,n,a){e.$watch(function(){return a[n.accordionTransclude]},function(e){e&&(t.html(""),t.append(e))})}}}),angular.module("ui.bootstrap.alert",[]).directive("alert",function(){return{restrict:"EA",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"=",close:"&"},link:function(e,t,n){e.closeable="close"in n}}}),angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).directive("btnRadio",["buttonConfig",function(e){var t=e.activeClass||"active",n=e.toggleEvent||"click";return{require:"ngModel",link:function(e,a,o,i){i.$render=function(){a.toggleClass(t,angular.equals(i.$modelValue,e.$eval(o.btnRadio)))},a.bind(n,function(){a.hasClass(t)||e.$apply(function(){i.$setViewValue(e.$eval(o.btnRadio)),i.$render()})})}}}]).directive("btnCheckbox",["buttonConfig",function(e){var t=e.activeClass||"active",n=e.toggleEvent||"click";return{require:"ngModel",link:function(e,a,o,i){var r=e.$eval(o.btnCheckboxTrue),l=e.$eval(o.btnCheckboxFalse);r=angular.isDefined(r)?r:!0,l=angular.isDefined(l)?l:!1,i.$render=function(){a.toggleClass(t,angular.equals(i.$modelValue,r))},a.bind(n,function(){e.$apply(function(){i.$setViewValue(a.hasClass(t)?l:r),i.$render()})})}}}]),angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition","$q",function(e,t,n){function a(){function n(){i?(e.next(),a()):e.pause()}o&&t.cancel(o);var r=+e.interval;!isNaN(r)&&r>=0&&(o=t(n,r))}var o,i,r=this,l=r.slides=[],s=-1;r.currentSlide=null,r.select=function(o,i){function u(){r.currentSlide&&angular.isString(i)&&!e.noTransition&&o.$element?(o.$element.addClass(i),o.$element[0].offsetWidth=o.$element[0].offsetWidth,angular.forEach(l,function(e){angular.extend(e,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(o,{direction:i,active:!0,entering:!0}),angular.extend(r.currentSlide||{},{direction:i,leaving:!0}),e.$currentTransition=n(o.$element,{}),function(t,n){e.$currentTransition.then(function(){c(t,n)},function(){c(t,n)})}(o,r.currentSlide)):c(o,r.currentSlide),r.currentSlide=o,s=p,a()}function c(t,n){angular.extend(t,{direction:"",active:!0,leaving:!1,entering:!1}),angular.extend(n||{},{direction:"",active:!1,leaving:!1,entering:!1}),e.$currentTransition=null}var p=l.indexOf(o);void 0===i&&(i=p>s?"next":"prev"),o&&o!==r.currentSlide&&(e.$currentTransition?(e.$currentTransition.cancel(),t(u)):u())},r.indexOfSlide=function(e){return l.indexOf(e)},e.next=function(){var t=(s+1)%l.length;return e.$currentTransition?void 0:r.select(l[t],"next")},e.prev=function(){var t=0>s-1?l.length-1:s-1;return e.$currentTransition?void 0:r.select(l[t],"prev")},e.select=function(e){r.select(e)},e.isActive=function(e){return r.currentSlide===e},e.slides=function(){return l},e.$watch("interval",a),e.play=function(){i||(i=!0,a())},e.pause=function(){e.noPause||(i=!1,o&&t.cancel(o))},r.addSlide=function(t,n){t.$element=n,l.push(t),1===l.length||t.active?(r.select(l[l.length-1]),1==l.length&&e.play()):t.active=!1},r.removeSlide=function(e){var t=l.indexOf(e);l.splice(t,1),l.length>0&&e.active?t>=l.length?r.select(l[t-1]):r.select(l[t]):s>t&&s--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",["$parse",function(e){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{},link:function(t,n,a,o){if(a.active){var i=e(a.active),r=i.assign,l=t.active=i(t.$parent);t.$watch(function(){var e=i(t.$parent);return e!==t.active&&(e!==l?l=t.active=e:r(t.$parent,e=l=t.active)),e})}o.addSlide(t,n),t.$on("$destroy",function(){o.removeSlide(t)}),t.$watch("active",function(e){e&&o.select(t)})}}}]),angular.module("ui.bootstrap.datepicker",[]).constant("datepickerConfig",{dayFormat:"dd",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEE",dayTitleFormat:"MMMM yyyy",monthTitleFormat:"yyyy",showWeeks:!0,startingDay:0,yearRange:20}).directive("datepicker",["dateFilter","$parse","datepickerConfig",function(e,t,n){return{restrict:"EA",replace:!0,scope:{model:"=ngModel",dateDisabled:"&"},templateUrl:"template/datepicker/datepicker.html",link:function(a,o,r){function l(e,t,n){a.rows=e,a.labels=t,a.title=n}function s(){a.showWeekNumbers="day"===a.mode&&p}function u(e,t){return"year"===a.mode?t.getFullYear()-e.getFullYear():"month"===a.mode?new Date(t.getFullYear(),t.getMonth())-new Date(e.getFullYear(),e.getMonth()):"day"===a.mode?new Date(t.getFullYear(),t.getMonth(),t.getDate())-new Date(e.getFullYear(),e.getMonth(),e.getDate()):void 0}function c(e){return d&&u(e,d)>0||f&&0>u(e,f)||a.dateDisabled&&a.dateDisabled({date:e,mode:a.mode})}a.mode="day";var p,d,f,m=new Date,g={};g.day=angular.isDefined(r.dayFormat)?a.$eval(r.dayFormat):n.dayFormat,g.month=angular.isDefined(r.monthFormat)?a.$eval(r.monthFormat):n.monthFormat,g.year=angular.isDefined(r.yearFormat)?a.$eval(r.yearFormat):n.yearFormat,g.dayHeader=angular.isDefined(r.dayHeaderFormat)?a.$eval(r.dayHeaderFormat):n.dayHeaderFormat,g.dayTitle=angular.isDefined(r.dayTitleFormat)?a.$eval(r.dayTitleFormat):n.dayTitleFormat,g.monthTitle=angular.isDefined(r.monthTitleFormat)?a.$eval(r.monthTitleFormat):n.monthTitleFormat;var h=angular.isDefined(r.startingDay)?a.$eval(r.startingDay):n.startingDay,v=angular.isDefined(r.yearRange)?a.$eval(r.yearRange):n.yearRange;r.showWeeks?a.$parent.$watch(t(r.showWeeks),function(e){p=!!e,s()}):(p=n.showWeeks,s()),r.min&&a.$parent.$watch(t(r.min),function(e){d=new Date(e),w()}),r.max&&a.$parent.$watch(t(r.max),function(e){f=new Date(e),w()});var $=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},b=function(e,t){return new Date(e,t+1,0).getDate()},y={day:function(){function t(t,a,i){for(var r=0;a>r;r++)n.push({date:new Date(t),isCurrent:i,isSelected:k(t),label:e(t,g.day),disabled:c(t)}),t.setDate(t.getDate()+1);o=t}var n=[],a=[],o=null,r=new Date(m);r.setDate(1);var s=h-r.getDay(),u=s>0?7-s:-s;for(u>0&&(r.setDate(-u+1),t(r,u,!1)),t(o||r,b(m.getFullYear(),m.getMonth()),!0),t(o,(7-n.length%7)%7,!1),i=0;7>i;i++)a.push(e(n[i].date,g.dayHeader));l($(n,7),a,e(m,g.dayTitle))},month:function(){for(var t=[],n=0,a=m.getFullYear();12>n;){var o=new Date(a,n++,1);t.push({date:o,isCurrent:!0,isSelected:k(o),label:e(o,g.month),disabled:c(o)})}l($(t,3),[],e(m,g.monthTitle))},year:function(){for(var t=[],n=parseInt((m.getFullYear()-1)/v,10)*v+1,a=0;v>a;a++){var o=new Date(n+a,0,1);t.push({date:o,isCurrent:!0,isSelected:k(o),label:e(o,g.year),disabled:c(o)})}var i=t[0].label+" - "+t[t.length-1].label;l($(t,5),[],i)}},w=function(){y[a.mode]()},k=function(e){if(a.model&&a.model.getFullYear()===e.getFullYear()){if("year"===a.mode)return!0;if(a.model.getMonth()===e.getMonth())return"month"===a.mode||"day"===a.mode&&a.model.getDate()===e.getDate()}return!1};a.$watch("model",function(e,t){angular.isDate(e)&&(m=angular.copy(e)),angular.equals(e,t)||w()}),a.$watch("mode",function(){s(),w()}),a.select=function(e){m=new Date(e),"year"===a.mode?(a.mode="month",m.setFullYear(e.getFullYear())):"month"===a.mode?(a.mode="day",m.setMonth(e.getMonth())):"day"===a.mode&&(a.model=new Date(m))},a.move=function(e){"day"===a.mode?m.setMonth(m.getMonth()+e):"month"===a.mode?m.setFullYear(m.getFullYear()+e):"year"===a.mode&&m.setFullYear(m.getFullYear()+e*v),w()},a.toggleMode=function(){a.mode="day"===a.mode?"month":"month"===a.mode?"year":"day"},a.getWeekNumber=function(e){if("day"===a.mode&&a.showWeekNumbers&&7===e.length){var t=h>4?11-h:4-h,n=new Date(e[t].date);return n.setHours(0,0,0),Math.ceil(((n-new Date(n.getFullYear(),0,1))/864e5+1)/7)}}}}}]);var dialogModule=angular.module("ui.bootstrap.dialog",["ui.bootstrap.transition"]);dialogModule.controller("MessageBoxController",["$scope","dialog","model",function(e,t,n){e.title=n.title,e.message=n.message,e.buttons=n.buttons,e.close=function(e){t.close(e)}}]),dialogModule.provider("$dialog",function(){var e={backdrop:!0,dialogClass:"modal",backdropClass:"modal-backdrop",transitionClass:"fade",triggerClass:"in",resolve:{},backdropFade:!1,dialogFade:!1,keyboard:!0,backdropClick:!0},t={},n={value:0};this.options=function(e){t=e},this.$get=["$http","$document","$compile","$rootScope","$controller","$templateCache","$q","$transition","$injector",function(a,o,i,r,l,s,u,c,p){function d(e){var t=angular.element("<div>");return t.addClass(e),t}function f(n){var a=this,o=this.options=angular.extend({},e,t,n);this._open=!1,this.backdropEl=d(o.backdropClass),o.backdropFade&&(this.backdropEl.addClass(o.transitionClass),this.backdropEl.removeClass(o.triggerClass)),this.modalEl=d(o.dialogClass),o.dialogFade&&(this.modalEl.addClass(o.transitionClass),this.modalEl.removeClass(o.triggerClass)),this.handledEscapeKey=function(e){27===e.which&&(a.close(),e.preventDefault(),a.$scope.$apply())},this.handleBackDropClick=function(e){a.close(),e.preventDefault(),a.$scope.$apply()},this.handleLocationChange=function(){a.close()}}var m=o.find("body");return f.prototype.isOpen=function(){return this._open},f.prototype.open=function(e,t){var n=this,a=this.options;if(e&&(a.templateUrl=e),t&&(a.controller=t),!a.template&&!a.templateUrl)throw Error("Dialog.open expected template or templateUrl, neither found. Use options or open method to specify them.");return this._loadResolves().then(function(e){var t=e.$scope=n.$scope=e.$scope?e.$scope:r.$new();if(n.modalEl.html(e.$template),n.options.controller){var a=l(n.options.controller,e);n.modalEl.children().data("ngControllerController",a)}i(n.modalEl)(t),n._addElementsToDom(),setTimeout(function(){n.options.dialogFade&&n.modalEl.addClass(n.options.triggerClass),n.options.backdropFade&&n.backdropEl.addClass(n.options.triggerClass)}),n._bindEvents()}),this.deferred=u.defer(),this.deferred.promise},f.prototype.close=function(e){function t(e){e.removeClass(a.options.triggerClass)}function n(){a._open&&a._onCloseComplete(e)}var a=this,o=this._getFadingElements();if(o.length>0)for(var i=o.length-1;i>=0;i--)c(o[i],t).then(n);else this._onCloseComplete(e)},f.prototype._getFadingElements=function(){var e=[];return this.options.dialogFade&&e.push(this.modalEl),this.options.backdropFade&&e.push(this.backdropEl),e},f.prototype._bindEvents=function(){this.options.keyboard&&m.bind("keydown",this.handledEscapeKey),this.options.backdrop&&this.options.backdropClick&&this.backdropEl.bind("click",this.handleBackDropClick)},f.prototype._unbindEvents=function(){this.options.keyboard&&m.unbind("keydown",this.handledEscapeKey),this.options.backdrop&&this.options.backdropClick&&this.backdropEl.unbind("click",this.handleBackDropClick)},f.prototype._onCloseComplete=function(e){this._removeElementsFromDom(),this._unbindEvents(),this.deferred.resolve(e)},f.prototype._addElementsToDom=function(){m.append(this.modalEl),this.options.backdrop&&(0===n.value&&m.append(this.backdropEl),n.value++),this._open=!0},f.prototype._removeElementsFromDom=function(){this.modalEl.remove(),this.options.backdrop&&(n.value--,0===n.value&&this.backdropEl.remove()),this._open=!1},f.prototype._loadResolves=function(){var e,t=[],n=[],o=this;return this.options.template?e=u.when(this.options.template):this.options.templateUrl&&(e=a.get(this.options.templateUrl,{cache:s}).then(function(e){return e.data})),angular.forEach(this.options.resolve||[],function(e,a){n.push(a),t.push(angular.isString(e)?p.get(e):p.invoke(e))}),n.push("$template"),t.push(e),u.all(t).then(function(e){var t={};return angular.forEach(e,function(e,a){t[n[a]]=e}),t.dialog=o,t})},{dialog:function(e){return new f(e)},messageBox:function(e,t,n){return new f({templateUrl:"template/dialog/message.html",controller:"MessageBoxController",resolve:{model:function(){return{title:e,message:t,buttons:n}}}})}}}]}),angular.module("ui.bootstrap.dropdownToggle",[]).directive("dropdownToggle",["$document","$location",function(e){var t=null,n=angular.noop;return{restrict:"CA",link:function(a,o){a.$watch("$location.path",function(){n()}),o.parent().bind("click",function(){n()}),o.bind("click",function(a){var i=o===t;a.preventDefault(),a.stopPropagation(),t&&n(),i||(o.parent().addClass("open"),t=o,n=function(a){a&&(a.preventDefault(),a.stopPropagation()),e.unbind("click",n),o.parent().removeClass("open"),n=angular.noop,t=null},e.bind("click",n))})}}}]),angular.module("ui.bootstrap.modal",["ui.bootstrap.dialog"]).directive("modal",["$parse","$dialog",function(e,t){return{restrict:"EA",terminal:!0,link:function(n,a,o){var i,r=angular.extend({},n.$eval(o.uiOptions||o.bsOptions||o.options)),l=o.modal||o.show;r=angular.extend(r,{template:a.html(),resolve:{$scope:function(){return n}}});var s=t.dialog(r);a.remove(),i=o.close?function(){e(o.close)(n)}:function(){angular.isFunction(e(l).assign)&&e(l).assign(n,!1)},n.$watch(l,function(e){e?s.open().then(function(){i()}):s.isOpen()&&s.close()})}}}]),angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope",function(e){e.noPrevious=function(){return 1===e.currentPage},e.noNext=function(){return e.currentPage===e.numPages},e.isActive=function(t){return e.currentPage===t},e.selectPage=function(t){!e.isActive(t)&&t>0&&e.numPages>=t&&(e.currentPage=t,e.onSelectPage({page:t}))}}]).constant("paginationConfig",{boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["paginationConfig",function(e){return{restrict:"EA",scope:{numPages:"=",currentPage:"=",maxSize:"=",onSelectPage:"&"},controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(t,n,a){function o(e,t,n,a){return{number:e,text:t,active:n,disabled:a}}var i=angular.isDefined(a.boundaryLinks)?t.$eval(a.boundaryLinks):e.boundaryLinks,r=angular.isDefined(a.directionLinks)?t.$eval(a.directionLinks):e.directionLinks,l=angular.isDefined(a.firstText)?t.$parent.$eval(a.firstText):e.firstText,s=angular.isDefined(a.previousText)?t.$parent.$eval(a.previousText):e.previousText,u=angular.isDefined(a.nextText)?t.$parent.$eval(a.nextText):e.nextText,c=angular.isDefined(a.lastText)?t.$parent.$eval(a.lastText):e.lastText,p=angular.isDefined(a.rotate)?t.$eval(a.rotate):e.rotate;t.$watch("numPages + currentPage + maxSize",function(){t.pages=[];var e=1,n=t.numPages,a=angular.isDefined(t.maxSize)&&t.maxSize<t.numPages;a&&(p?(e=Math.max(t.currentPage-Math.floor(t.maxSize/2),1),n=e+t.maxSize-1,n>t.numPages&&(n=t.numPages,e=n-t.maxSize+1)):(e=(Math.ceil(t.currentPage/t.maxSize)-1)*t.maxSize+1,n=Math.min(e+t.maxSize-1,t.numPages)));for(var d=e;n>=d;d++){var f=o(d,d,t.isActive(d),!1);t.pages.push(f)}if(a&&!p){if(e>1){var m=o(e-1,"...",!1,!1);t.pages.unshift(m)}if(t.numPages>n){var g=o(n+1,"...",!1,!1);t.pages.push(g)}}if(r){var h=o(t.currentPage-1,s,!1,t.noPrevious());t.pages.unshift(h);var v=o(t.currentPage+1,u,!1,t.noNext());t.pages.push(v)}if(i){var $=o(1,l,!1,t.noPrevious());t.pages.unshift($);var b=o(t.numPages,c,!1,t.noNext());t.pages.push(b)}t.currentPage>t.numPages&&t.selectPage(t.numPages)})}}}]).constant("pagerConfig",{previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(e){return{restrict:"EA",scope:{numPages:"=",currentPage:"=",onSelectPage:"&"},controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,n,a){function o(e,t,n,a,o){return{number:e,text:t,disabled:n,previous:l&&a,next:l&&o}}var i=angular.isDefined(a.previousText)?t.$parent.$eval(a.previousText):e.previousText,r=angular.isDefined(a.nextText)?t.$parent.$eval(a.nextText):e.nextText,l=angular.isDefined(a.align)?t.$parent.$eval(a.align):e.align;t.$watch("numPages + currentPage",function(){t.pages=[];var e=o(t.currentPage-1,i,t.noPrevious(),!0,!1);t.pages.unshift(e);var n=o(t.currentPage+1,r,t.noNext(),!1,!0);t.pages.push(n),t.currentPage>t.numPages&&t.selectPage(t.numPages)})}}}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function a(e){return"static"===(n(e,"position")||"static")}var o,i;e.bind("mousemove",function(e){o=e.pageX,i=e.pageY});var r=function(t){for(var n=e[0],o=t.offsetParent||n;o&&o!==n&&a(o);)o=o.offsetParent;return o||n};return{position:function(t){var n=this.offset(t),a={top:0,left:0},o=r(t[0]);return o!=e[0]&&(a=this.offset(angular.element(o)),a.top+=o.clientTop,a.left+=o.clientLeft),{width:t.prop("offsetWidth"),height:t.prop("offsetHeight"),top:n.top-a.top,left:n.left-a.left}},offset:function(n){var a=n[0].getBoundingClientRect();return{width:n.prop("offsetWidth"),height:n.prop("offsetHeight"),top:a.top+(t.pageYOffset||e[0].body.scrollTop),left:a.left+(t.pageXOffset||e[0].body.scrollLeft)}},mouse:function(){return{x:o,y:i}}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position"]).provider("$tooltip",function(){function e(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var t={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},a={};this.options=function(e){angular.extend(a,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(o,i,r,l,s,u,c){return function(o,p,d){function f(e){var t,a;return t=e||m.trigger||d,a=angular.isDefined(m.trigger)?n[m.trigger]||t:n[t]||t,{show:t,hide:a}}var m=angular.extend({},t,a),g=e(o),h=f(void 0),v=c.startSymbol(),$=c.endSymbol(),b="<"+g+"-popup "+'title="'+v+"tt_title"+$+'" '+'content="'+v+"tt_content"+$+'" '+'placement="'+v+"tt_placement"+$+'" '+'animation="tt_animation()" '+'is-open="tt_isOpen"'+">"+"</"+g+"-popup>";return{restrict:"EA",scope:!0,link:function(e,t,n){function a(){e.tt_isOpen?d():c()}function c(){e.tt_popupDelay?y=r(g,e.tt_popupDelay):e.$apply(g)}function d(){e.$apply(function(){v()})}function g(){var n,a,o,i;if(e.tt_content){switch($&&r.cancel($),k.css({top:0,left:0,display:"block"}),x?(w=w||s.find("body"),w.append(k)):t.after(k),n=m.appendToBody?u.offset(t):u.position(t),a=k.prop("offsetWidth"),o=k.prop("offsetHeight"),e.tt_placement){case"mouse":var l=u.mouse();i={top:l.y,left:l.x};break;case"right":i={top:n.top+n.height/2-o/2,left:n.left+n.width};break;case"bottom":i={top:n.top+n.height,left:n.left+n.width/2-a/2};break;case"left":i={top:n.top+n.height/2-o/2,left:n.left-a};break;default:i={top:n.top-o,left:n.left+n.width/2-a/2}}i.top+="px",i.left+="px",k.css(i),e.tt_isOpen=!0}}function v(){e.tt_isOpen=!1,r.cancel(y),angular.isDefined(e.tt_animation)&&e.tt_animation()?$=r(function(){k.remove()},500):k.remove()}var $,y,w,k=i(b)(e),x=angular.isDefined(m.appendToBody)?m.appendToBody:!1;e.tt_isOpen=!1,n.$observe(o,function(t){e.tt_content=t}),n.$observe(p+"Title",function(t){e.tt_title=t}),n.$observe(p+"Placement",function(t){e.tt_placement=angular.isDefined(t)?t:m.placement}),n.$observe(p+"Animation",function(t){e.tt_animation=angular.isDefined(t)?l(t):function(){return m.animation}}),n.$observe(p+"PopupDelay",function(t){var n=parseInt(t,10);e.tt_popupDelay=isNaN(n)?m.popupDelay:n}),n.$observe(p+"Trigger",function(e){t.unbind(h.show),t.unbind(h.hide),h=f(e),h.show===h.hide?t.bind(h.show,a):(t.bind(h.show,c),t.bind(h.hide,d))}),n.$observe(p+"AppendToBody",function(t){x=angular.isDefined(t)?l(t)(e):x}),x&&e.$on("$locationChangeSuccess",function(){e.tt_isOpen&&v()}),e.$on("$destroy",function(){e.tt_isOpen?v():k.remove()})}}}}]}).directive("tooltipPopup",function(){return{restrict:"E",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"E",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(e){return e("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$compile","$timeout","$parse","$window","$tooltip",function(e,t,n,a,o){return o("popover","popover","click")}]),angular.module("ui.bootstrap.progressbar",["ui.bootstrap.transition"]).constant("progressConfig",{animate:!0,autoType:!1,stackedTypes:["success","info","warning","danger"]}).controller("ProgressBarController",["$scope","$attrs","progressConfig",function(e,t,n){function a(e){return r[e]}var o=angular.isDefined(t.animate)?e.$eval(t.animate):n.animate,i=angular.isDefined(t.autoType)?e.$eval(t.autoType):n.autoType,r=angular.isDefined(t.stackedTypes)?e.$eval("["+t.stackedTypes+"]"):n.stackedTypes;this.makeBar=function(e,t,n){var r=angular.isObject(e)?e.value:e||0,l=angular.isObject(t)?t.value:t||0,s=angular.isObject(e)&&angular.isDefined(e.type)?e.type:i?a(n||0):null;return{from:l,to:r,type:s,animate:o}},this.addBar=function(t){e.bars.push(t),e.totalPercent+=t.to},this.clearBars=function(){e.bars=[],e.totalPercent=0},this.clearBars()}]).directive("progress",function(){return{restrict:"EA",replace:!0,controller:"ProgressBarController",scope:{value:"=percent",onFull:"&",onEmpty:"&"},templateUrl:"template/progressbar/progress.html",link:function(e,t,n,a){e.$watch("value",function(e,t){if(a.clearBars(),angular.isArray(e))for(var n=0,o=e.length;o>n;n++)a.addBar(a.makeBar(e[n],t[n],n));else a.addBar(a.makeBar(e,t))},!0),e.$watch("totalPercent",function(t){t>=100?e.onFull():0>=t&&e.onEmpty()},!0)}}}).directive("progressbar",["$transition",function(e){return{restrict:"EA",replace:!0,scope:{width:"=",old:"=",type:"=",animate:"="},templateUrl:"template/progressbar/bar.html",link:function(t,n){t.$watch("width",function(a){t.animate?(n.css("width",t.old+"%"),e(n,{width:a+"%"})):n.css("width",a+"%")})}}}]),angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5}).directive("rating",["ratingConfig","$parse",function(e,t){return{restrict:"EA",scope:{value:"="},templateUrl:"template/rating/rating.html",replace:!0,link:function(n,a,o){var i=angular.isDefined(o.max)?n.$eval(o.max):e.max;n.range=[];for(var r=1;i>=r;r++)n.range.push(r);n.rate=function(e){n.readonly||(n.value=e)},n.enter=function(e){n.readonly||(n.val=e)},n.reset=function(){n.val=angular.copy(n.value)},n.reset(),n.$watch("value",function(e){n.val=e}),n.readonly=!1,o.readonly&&n.$parent.$watch(t(o.readonly),function(e){n.readonly=!!e})}}}]),angular.module("ui.bootstrap.tabs",[]).directive("tabs",function(){return function(){throw Error("The `tabs` directive is deprecated, please migrate to `tabset`. Instructions can be found at http://github.com/angular-ui/bootstrap/tree/master/CHANGELOG.md")}}).controller("TabsetController",["$scope","$element",function(e){var t=this,n=t.tabs=e.tabs=[];t.select=function(e){angular.forEach(n,function(e){e.active=!1}),e.active=!0},t.addTab=function(e){n.push(e),1==n.length&&t.select(e)},t.removeTab=function(e){var a=n.indexOf(e);if(e.active&&n.length>1){var o=a==n.length-1?a-1:a+1;t.select(n[o])}n.splice(a,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,scope:{},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(e,t,n){e.vertical=angular.isDefined(n.vertical)?e.$eval(n.vertical):!1,e.type=angular.isDefined(n.type)?e.$parent.$eval(n.type):"tabs"}}}).directive("tab",["$parse","$http","$templateCache","$compile",function(e){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{heading:"@",onSelect:"&select"},controller:function(){},compile:function(t,n,a){return function(t,n,o,i){var r,l;t.active=!1,o.active?(r=e(o.active),l=r.assign,t.$parent.$watch(r,function(e){e&&t.disabled?l(t.$parent,!1):t.active=!!e})):l=r=angular.noop,t.$watch("active",function(e){l(t.$parent,e),e&&(i.select(t),t.onSelect())}),t.disabled=!1,o.disabled&&t.$parent.$watch(e(o.disabled),function(e){t.disabled=!!e}),t.select=function(){t.disabled||(t.active=!0)},i.addTab(t),t.$on("$destroy",function(){i.removeTab(t)}),t.active&&l(t.$parent,!0),a(t.$parent,function(e){var n,a=[];angular.forEach(e,function(e){e.tagName&&(e.hasAttribute("tab-heading")||e.hasAttribute("data-tab-heading")||"tab-heading"==e.tagName.toLowerCase()||"data-tab-heading"==e.tagName.toLowerCase())?n=e:a.push(e)}),n&&(t.headingElement=angular.element(n)),t.contentElement=angular.element(a)})}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(e,t){e.$watch("headingElement",function(e){e&&(t.html(""),t.append(e))})}}}]).directive("tabContentTransclude",["$parse",function(e){return{restrict:"A",require:"^tabset",link:function(t,n,a){t.$watch(e(a.tabContentTransclude),function(e){n.html(""),e&&n.append(e.contentElement)})}}}]),angular.module("ui.bootstrap.timepicker",[]).filter("pad",function(){return function(e){return angular.isDefined(e)&&2>(""+e).length&&(e="0"+e),e}}).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:["AM","PM"],readonlyInput:!1,mousewheel:!0}).directive("timepicker",["padFilter","$parse","timepickerConfig",function(e,t,n){return{restrict:"EA",require:"ngModel",replace:!0,templateUrl:"template/timepicker/timepicker.html",scope:{model:"=ngModel"},link:function(a,o,i){function r(){var e=parseInt(a.hours,10),t=a.showMeridian?e>0&&13>e:e>=0&&24>e;return t?(a.showMeridian&&(12===e&&(e=0),a.meridian===c[1]&&(e+=12)),e):void 0}function l(){var t=u.getHours();a.showMeridian&&(t=0===t||12===t?12:t%12),a.hours="h"===$?t:e(t),a.validHours=!0;var n=u.getMinutes();a.minutes="m"===$?n:e(n),a.validMinutes=!0,a.meridian=a.showMeridian?12>u.getHours()?c[0]:c[1]:"",$=!1}function s(e){var t=new Date(u.getTime()+6e4*e);t.getDate()!==u.getDate()&&t.setDate(t.getDate()-1),u.setTime(t.getTime()),a.model=new Date(u)}var u=new Date,c=n.meridians,p=n.hourStep;i.hourStep&&a.$parent.$watch(t(i.hourStep),function(e){p=parseInt(e,10)});var d=n.minuteStep;i.minuteStep&&a.$parent.$watch(t(i.minuteStep),function(e){d=parseInt(e,10)}),a.showMeridian=n.showMeridian,i.showMeridian&&a.$parent.$watch(t(i.showMeridian),function(e){if(a.showMeridian=!!e,a.model)l();else{var t=new Date(u),n=r();angular.isDefined(n)&&t.setHours(n),a.model=new Date(t)}});var f=o.find("input"),m=f.eq(0),g=f.eq(1),h=angular.isDefined(i.mousewheel)?a.$eval(i.mousewheel):n.mousewheel;if(h){var v=function(e){return e.originalEvent&&(e=e.originalEvent),e.detail||e.wheelDelta>0};m.bind("mousewheel",function(e){a.$apply(v(e)?a.incrementHours():a.decrementHours()),e.preventDefault()}),g.bind("mousewheel",function(e){a.$apply(v(e)?a.incrementMinutes():a.decrementMinutes()),e.preventDefault()})}var $=!1;a.readonlyInput=angular.isDefined(i.readonlyInput)?a.$eval(i.readonlyInput):n.readonlyInput,a.readonlyInput?(a.updateHours=angular.noop,a.updateMinutes=angular.noop):(a.updateHours=function(){var e=r();angular.isDefined(e)?($="h",null===a.model&&(a.model=new Date(u)),a.model.setHours(e)):(a.model=null,a.validHours=!1)},m.bind("blur",function(){a.validHours&&10>a.hours&&a.$apply(function(){a.hours=e(a.hours)})}),a.updateMinutes=function(){var e=parseInt(a.minutes,10);e>=0&&60>e?($="m",null===a.model&&(a.model=new Date(u)),a.model.setMinutes(e)):(a.model=null,a.validMinutes=!1)},g.bind("blur",function(){a.validMinutes&&10>a.minutes&&a.$apply(function(){a.minutes=e(a.minutes)})})),a.$watch(function(){return+a.model},function(e){!isNaN(e)&&e>0&&(u=new Date(e),l())}),a.incrementHours=function(){s(60*p)},a.decrementHours=function(){s(60*-p)},a.incrementMinutes=function(){s(d)},a.decrementMinutes=function(){s(-d)},a.toggleMeridian=function(){s(720*(12>u.getHours()?1:-1))}}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position"]).factory("typeaheadParser",["$parse",function(e){var t=/^\s*(.*?)(?:\s+as\s+(.*?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+(.*)$/; | |
return{parse:function(n){var a=n.match(t);if(!a)throw Error("Expected typeahead specification in form of '_modelValue_ (as _label_)? for _item_ in _collection_' but got '"+n+"'.");return{itemName:a[3],source:e(a[4]),viewMapper:e(a[2]||a[1]),modelMapper:e(a[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(e,t,n,a,o,i,r){var l=[9,13,27,38,40];return{require:"ngModel",link:function(s,u,c,p){var d,f=s.$eval(c.typeaheadMinLength)||1,m=s.$eval(c.typeaheadWaitMs)||0,g=r.parse(c.typeahead),h=s.$eval(c.typeaheadEditable)!==!1,v=t(c.typeaheadLoading).assign||angular.noop,$=t(c.typeaheadOnSelect),b=angular.element("<typeahead-popup></typeahead-popup>");b.attr({matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});var y=s.$new();s.$on("$destroy",function(){y.$destroy()});var w=function(){y.matches=[],y.activeIdx=-1},k=function(e){var t={$viewValue:e};v(s,!0),n.when(g.source(y,t)).then(function(n){if(e===p.$viewValue){if(n.length>0){y.activeIdx=0,y.matches.length=0;for(var a=0;n.length>a;a++)t[g.itemName]=n[a],y.matches.push({label:g.viewMapper(y,t),model:n[a]});y.query=e,y.position=i.position(u),y.position.top=y.position.top+u.prop("offsetHeight")}else w();v(s,!1)}},function(){w(),v(s,!1)})};w(),y.query=void 0,p.$parsers.push(function(e){var t;return w(),d?e:(e&&e.length>=f&&(m>0?(t&&a.cancel(t),t=a(function(){k(e)},m)):k(e)),h?e:void 0)}),p.$render=function(){var e={};e[g.itemName]=d||p.$viewValue,u.val(g.viewMapper(y,e)||p.$viewValue),d=void 0},y.select=function(e){var t,n,a={};a[g.itemName]=n=d=y.matches[e].model,t=g.modelMapper(y,a),p.$setViewValue(t),p.$render(),$(y,{$item:n,$model:t,$label:g.viewMapper(y,a)}),u[0].focus()},u.bind("keydown",function(e){0!==y.matches.length&&-1!==l.indexOf(e.which)&&(e.preventDefault(),40===e.which?(y.activeIdx=(y.activeIdx+1)%y.matches.length,y.$digest()):38===e.which?(y.activeIdx=(y.activeIdx?y.activeIdx:y.matches.length)-1,y.$digest()):13===e.which||9===e.which?y.$apply(function(){y.select(y.activeIdx)}):27===e.which&&(e.stopPropagation(),w(),y.$digest()))}),o.bind("click",function(){w(),y.$digest()}),u.after(e(b)(y))}}}]).directive("typeaheadPopup",function(){return{restrict:"E",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead.html",link:function(e){e.isOpen=function(){return e.matches.length>0},e.isActive=function(t){return e.active==t},e.selectActive=function(t){e.active=t},e.selectMatch=function(t){e.select({activeIdx:t})}}}}).filter("typeaheadHighlight",function(){function e(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,n){return n?t.replace(RegExp(e(n),"gi"),"<strong>$&</strong>"):n}}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment