Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bootstrap
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
bootstrap
Commits
3f512c92
Commit
3f512c92
authored
Oct 28, 2014
by
XhmikosR
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add AnchorJS for docs anchors.
parent
d5a2b27e
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
145 additions
and
9 deletions
+145
-9
Gruntfile.js
Gruntfile.js
+5
-3
docs/_includes/header.html
docs/_includes/header.html
+2
-1
docs/assets/css/docs.min.css
docs/assets/css/docs.min.css
+2
-2
docs/assets/css/src/anchor.css
docs/assets/css/src/anchor.css
+65
-0
docs/assets/css/src/docs.css
docs/assets/css/src/docs.css
+9
-0
docs/assets/js/docs.min.js
docs/assets/js/docs.min.js
+7
-2
docs/assets/js/src/application.js
docs/assets/js/src/application.js
+6
-1
docs/assets/js/vendor/anchor.js
docs/assets/js/vendor/anchor.js
+48
-0
grunt/configBridge.json
grunt/configBridge.json
+1
-0
No files found.
Gruntfile.js
View file @
3f512c92
...
@@ -191,7 +191,7 @@ module.exports = function (grunt) {
...
@@ -191,7 +191,7 @@ module.exports = function (grunt) {
src
:
'
dist/css/<%= pkg.name %>-theme.css
'
src
:
'
dist/css/<%= pkg.name %>-theme.css
'
},
},
docs
:
{
docs
:
{
src
:
'
docs/assets/css/src/docs.css
'
src
:
[
'
docs/assets/css/anchor.css
'
,
'
docs/assets/css/src/docs.css
'
]
},
},
examples
:
{
examples
:
{
expand
:
true
,
expand
:
true
,
...
@@ -237,8 +237,10 @@ module.exports = function (grunt) {
...
@@ -237,8 +237,10 @@ module.exports = function (grunt) {
},
},
docs
:
{
docs
:
{
src
:
[
src
:
[
'
docs/assets/css/src/docs.css
'
,
'
docs/assets/css/src/pygments-manni.css
'
,
'
docs/assets/css/src/pygments-manni.css
'
'
docs/assets/css/src/anchor.css
'
,
'
docs/assets/css/src/docs.css
'
],
],
dest
:
'
docs/assets/css/docs.min.css
'
dest
:
'
docs/assets/css/docs.min.css
'
}
}
...
...
docs/_includes/header.html
View file @
3f512c92
...
@@ -32,8 +32,9 @@
...
@@ -32,8 +32,9 @@
{% if site.github %}
{% if site.github %}
<link
href=
"../assets/css/docs.min.css"
rel=
"stylesheet"
>
<link
href=
"../assets/css/docs.min.css"
rel=
"stylesheet"
>
{% else %}
{% else %}
<link
href=
"../assets/css/src/docs.css"
rel=
"stylesheet"
>
<link
href=
"../assets/css/src/pygments-manni.css"
rel=
"stylesheet"
>
<link
href=
"../assets/css/src/pygments-manni.css"
rel=
"stylesheet"
>
<link
href=
"../assets/css/src/anchor.css"
rel=
"stylesheet"
>
<link
href=
"../assets/css/src/docs.css"
rel=
"stylesheet"
>
{% endif %}
{% endif %}
<!--[if lt IE 9]><script src="../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<!--[if lt IE 9]><script src="../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script
src=
"../assets/js/ie-emulation-modes-warning.js"
></script>
<script
src=
"../assets/js/ie-emulation-modes-warning.js"
></script>
...
...
docs/assets/css/docs.min.css
View file @
3f512c92
/*!
.hll
{
background-color
:
#ffc
}
.c
{
color
:
#999
}
.err
{
color
:
#A00
;
background-color
:
#FAA
}
.k
{
color
:
#069
}
.o
{
color
:
#555
}
.cm
{
color
:
#999
}
.cp
{
color
:
#099
}
.c1
{
color
:
#999
}
.cs
{
color
:
#999
}
.gd
{
background-color
:
#FCC
;
border
:
1px
solid
#C00
}
.ge
{
font-style
:
italic
}
.gr
{
color
:
red
}
.gh
{
color
:
#030
}
.gi
{
background-color
:
#CFC
;
border
:
1px
solid
#0C0
}
.go
{
color
:
#AAA
}
.gp
{
color
:
#009
}
.gu
{
color
:
#030
}
.gt
{
color
:
#9C6
}
.kc
{
color
:
#069
}
.kd
{
color
:
#069
}
.kn
{
color
:
#069
}
.kp
{
color
:
#069
}
.kr
{
color
:
#069
}
.kt
{
color
:
#078
}
.m
{
color
:
#F60
}
.s
{
color
:
#d44950
}
.na
{
color
:
#4f9fcf
}
.nb
{
color
:
#366
}
.nc
{
color
:
#0A8
}
.no
{
color
:
#360
}
.nd
{
color
:
#99F
}
.ni
{
color
:
#999
}
.ne
{
color
:
#C00
}
.nf
{
color
:
#C0F
}
.nl
{
color
:
#99F
}
.nn
{
color
:
#0CF
}
.nt
{
color
:
#2f6f9f
}
.nv
{
color
:
#033
}
.ow
{
color
:
#000
}
.w
{
color
:
#bbb
}
.mf
{
color
:
#F60
}
.mh
{
color
:
#F60
}
.mi
{
color
:
#F60
}
.mo
{
color
:
#F60
}
.sb
{
color
:
#C30
}
.sc
{
color
:
#C30
}
.sd
{
color
:
#C30
;
font-style
:
italic
}
.s2
{
color
:
#C30
}
.se
{
color
:
#C30
}
.sh
{
color
:
#C30
}
.si
{
color
:
#A00
}
.sx
{
color
:
#C30
}
.sr
{
color
:
#3AA
}
.s1
{
color
:
#C30
}
.ss
{
color
:
#FC3
}
.bp
{
color
:
#366
}
.vc
{
color
:
#033
}
.vg
{
color
:
#033
}
.vi
{
color
:
#033
}
.il
{
color
:
#F60
}
.css
.nt
+
.nt
,
.css
.o
,
.css
.o
+
.nt
{
color
:
#999
}
@font-face
{
font-family
:
anchorjs-icons
;
src
:
url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg6v8yoAAAC8AAAAYGNtYXDL8RqdAAABHAAAADxnYXNwAAAAEAAAAVgAAAAIZ2x5Zkm2oNUAAAFgAAABWGhlYWQAHd4cAAACuAAAADZoaGVhB3sECwAAAvAAAAAkaG10eAYAAEcAAAMUAAAADGxvY2EACgCsAAADIAAAAAhtYXhwAAYAcAAAAygAAAAgbmFtZUQXtNYAAANIAAABOXBvc3QAAwAAAAAEhAAAACAAAwQAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACDmAAPA/8D/wAPAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEACgAAAAGAAQAAQACACDmAP//AAAAIOYA////4RoCAAEAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAIARwAHA7kDeQA2AG0AAAEnLgEiBg8BDgEUFh8BHgMXNy4DLwEuATQ2PwE+ATIWHwEeARQGDwEeAxU3PgE0JicBLgMnBx4DHwEeARQGDwEOASImLwEuATQ2PwEuAzUHDgEUFh8BHgEyNj8BPgE0Ji8BA7kEI1ldWiPaIyQkIwQDBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMk/r4DBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMkBCNZXVoj2iMkJCMEA3UEJCMjJNojWV1aIwQDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkj/sYDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkjBCQjIyTaI1ldWiMEAAEAAAABAABR/4xQXw889QALBAAAAAAAzqNM0wAAAADOo0zTAAAAAAO5A3kAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAABHA7kAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAgAAAAQAAEcAAAAAAAoArAABAAAAAwBuAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoAKABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoAKABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADAALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
format
(
'truetype'
),
url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAATwAAsAAAAABKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDq/zKmNtYXAAAAFoAAAAPAAAADzL8RqdZ2FzcAAAAaQAAAAIAAAACAAAABBnbHlmAAABrAAAAVgAAAFYSbag1WhlYWQAAAMEAAAANgAAADYAHd4caGhlYQAAAzwAAAAkAAAAJAd7BAtobXR4AAADYAAAAAwAAAAMBgAAR2xvY2EAAANsAAAACAAAAAgACgCsbWF4cAAAA3QAAAAgAAAAIAAGAHBuYW1lAAADlAAAATkAAAE5RBe01nBvc3QAAATQAAAAIAAAACAAAwAAAAMEAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAg5gADwP/A/8ADwABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAAoAAAABgAEAAEAAgAg5gD//wAAACDmAP///+EaAgABAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAACAEcABwO5A3kANgBtAAABJy4BIgYPAQ4BFBYfAR4DFzcuAy8BLgE0Nj8BPgEyFh8BHgEUBg8BHgMVNz4BNCYnAS4DJwceAx8BHgEUBg8BDgEiJi8BLgE0Nj8BLgM1Bw4BFBYfAR4BMjY/AT4BNCYvAQO5BCNZXVoj2iMkJCMEAwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJP6+AwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJAQjWV1aI9ojJCQjBAN1BCQjIyTaI1ldWiMEAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZI/7GAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZIwQkIyMk2iNZXVojBAABAAAAAQAAUf+MUF8PPPUACwQAAAAAAM6jTNMAAAAAzqNM0wAAAAADuQN5AAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAARwO5AAEAAAAAAAAAAAAAAAAAAAADAAAAAAIAAAAEAABHAAAAAAAKAKwAAQAAAAMAbgACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAA4ARwABAAAAAAADAA4AJAABAAAAAAAEAA4AVQABAAAAAAAFABYADgABAAAAAAAGAAcAMgABAAAAAAAKACgAYwADAAEECQABAA4AAAADAAEECQACAA4ARwADAAEECQADAA4AJAADAAEECQAEAA4AVQADAAEECQAFABYADgADAAEECQAGAA4AOQADAAEECQAKACgAYwBpAGMAbwBtAG8AbwBuAFYAZQByAHMAaQBvAG4AIAAwAC4AMABpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuAFIAZQBnAHUAbABhAHIAaQBjAG8AbQBvAG8AbgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==)
format
(
'woff'
);
font-style
:
normal
;
font-weight
:
400
}
.anchorjs-icon
{
font-family
:
anchorjs-icons
;
font-style
:
normal
;
font-variant
:
normal
;
font-weight
:
400
;
line-height
:
1
;
speak
:
none
;
text-transform
:
none
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
}
.anchorjs-link
{
opacity
:
0
;
text-decoration
:
none
}
.anchorjs-link
:focus
,
:hover
>
.anchorjs-link
{
opacity
:
1
;
-webkit-transition
:
color
.16s
linear
;
-moz-transition
:
color
.16s
linear
;
-o-transition
:
color
.16s
linear
;
transition
:
color
.16s
linear
}
.anchorjs-link
:link
{
color
:
#DFD487
}
.anchorjs-link
:visited
{
color
:
#DFD487
}
.anchorjs-link
:hover
{
color
:
#EC7963
}
.anchorjs-link
:active
{
color
:
#EC7963
}
.anchorjs-icon
{
font-size
:
90%
;
padding-left
:
6px
}
.anchorjs-icon
:before
{
content
:
'\e600'
}
/*!
* Bootstrap Docs (http://getbootstrap.com)
* Bootstrap Docs (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Copyright 2011-2014 Twitter, Inc.
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see http://creativecommons.org/licenses/by/3.0/.
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
body
{
position
:
relative
}
.table
code
{
font-size
:
13px
;
font-weight
:
400
}
.btn-outline
{
color
:
#563d7c
;
background-color
:
transparent
;
border-color
:
#563d7c
}
.btn-outline
:active
,
.btn-outline
:focus
,
.btn-outline
:hover
{
color
:
#fff
;
background-color
:
#563d7c
;
border-color
:
#563d7c
}
.btn-outline-inverse
{
color
:
#fff
;
background-color
:
transparent
;
border-color
:
#cdbfe3
}
.btn-outline-inverse
:active
,
.btn-outline-inverse
:focus
,
.btn-outline-inverse
:hover
{
color
:
#563d7c
;
text-shadow
:
none
;
background-color
:
#fff
;
border-color
:
#fff
}
.bs-docs-booticon
{
display
:
block
;
font-weight
:
500
;
color
:
#fff
;
text-align
:
center
;
cursor
:
default
;
background-color
:
#563d7c
;
border-radius
:
15%
}
.bs-docs-booticon-sm
{
width
:
30px
;
height
:
30px
;
font-size
:
20px
;
line-height
:
28px
}
.bs-docs-booticon-lg
{
width
:
144px
;
height
:
144px
;
font-size
:
108px
;
line-height
:
140px
}
.bs-docs-booticon-inverse
{
color
:
#563d7c
;
background-color
:
#fff
}
.bs-docs-booticon-outline
{
background-color
:
transparent
;
border
:
1px
solid
#cdbfe3
}
#skippy
{
display
:
block
;
padding
:
1em
;
color
:
#fff
;
background-color
:
#6f5499
;
outline
:
0
}
#skippy
.skiplink-text
{
padding
:
.5em
;
outline
:
1px
dotted
}
.bs-docs-nav
{
margin-bottom
:
0
;
background-color
:
#fff
;
border-bottom
:
0
}
.bs-home-nav
.bs-nav-b
{
display
:
none
}
.bs-docs-nav
.navbar-brand
,
.bs-docs-nav
.navbar-nav
>
li
>
a
{
font-weight
:
500
;
color
:
#563d7c
}
.bs-docs-nav
.navbar-nav
>
.active
>
a
,
.bs-docs-nav
.navbar-nav
>
.active
>
a
:hover
,
.bs-docs-nav
.navbar-nav
>
li
>
a
:hover
{
color
:
#463265
;
background-color
:
#f9f9f9
}
.bs-docs-nav
.navbar-toggle
.icon-bar
{
background-color
:
#563d7c
}
.bs-docs-nav
.navbar-header
.navbar-toggle
{
border-color
:
#fff
}
.bs-docs-nav
.navbar-header
.navbar-toggle
:focus
,
.bs-docs-nav
.navbar-header
.navbar-toggle
:hover
{
background-color
:
#f9f9f9
;
border-color
:
#f9f9f9
}
.bs-docs-footer
{
padding-top
:
40px
;
padding-bottom
:
40px
;
margin-top
:
100px
;
color
:
#767676
;
text-align
:
center
;
border-top
:
1px
solid
#e5e5e5
}
.bs-docs-footer-links
{
padding-left
:
0
;
margin-top
:
20px
}
.bs-docs-footer-links
li
{
display
:
inline
;
padding
:
0
2px
}
.bs-docs-footer-links
li
:first-child
{
padding-left
:
0
}
@media
(
min-width
:
768px
){
.bs-docs-footer
p
{
margin-bottom
:
0
}}
.bs-docs-social
{
margin-bottom
:
20px
;
text-align
:
center
}
.bs-docs-social-buttons
{
display
:
inline-block
;
padding-left
:
0
;
margin-bottom
:
0
;
list-style
:
none
}
.bs-docs-social-buttons
li
{
display
:
inline-block
;
padding
:
5px
8px
;
line-height
:
1
}
.bs-docs-social-buttons
.twitter-follow-button
{
width
:
225px
!important
}
.bs-docs-social-buttons
.twitter-share-button
{
width
:
98px
!important
}
.github-btn
{
overflow
:
hidden
;
border
:
0
}
.bs-docs-header
,
.bs-docs-masthead
{
position
:
relative
;
padding
:
30px
15px
;
color
:
#cdbfe3
;
text-align
:
center
;
text-shadow
:
0
1px
0
rgba
(
0
,
0
,
0
,
.1
);
background-color
:
#6f5499
;
background-image
:
-webkit-gradient
(
linear
,
left
top
,
left
bottom
,
from
(
#563d7c
),
to
(
#6f5499
));
background-image
:
-webkit-linear-gradient
(
top
,
#563d7c
0
,
#6f5499
100%
);
background-image
:
-o-linear-gradient
(
top
,
#563d7c
0
,
#6f5499
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#563d7c
0
,
#6f5499
100%
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#563d7c'
,
endColorstr
=
'#6F5499'
,
GradientType
=
0
);
background-repeat
:
repeat-x
}
.bs-docs-masthead
.bs-docs-booticon
{
margin
:
0
auto
30px
}
.bs-docs-masthead
h1
{
font-weight
:
300
;
line-height
:
1
;
color
:
#fff
}
.bs-docs-masthead
.lead
{
margin
:
0
auto
30px
;
font-size
:
20px
;
color
:
#fff
}
.bs-docs-masthead
.version
{
margin-top
:
-15px
;
margin-bottom
:
30px
;
color
:
#9783b9
}
.bs-docs-masthead
.btn
{
width
:
100%
;
padding
:
15px
30px
;
font-size
:
20px
}
@media
(
min-width
:
480px
){
.bs-docs-masthead
.btn
{
width
:
auto
}}
@media
(
min-width
:
768px
){
.bs-docs-masthead
{
padding
:
80px
0
}
.bs-docs-masthead
h1
{
font-size
:
60px
}
.bs-docs-masthead
.lead
{
font-size
:
24px
}}
@media
(
min-width
:
992px
){
.bs-docs-masthead
.lead
{
width
:
80%
;
font-size
:
30px
}}
.bs-docs-header
{
margin-bottom
:
40px
;
font-size
:
20px
}
.bs-docs-header
h1
{
margin-top
:
0
;
color
:
#fff
}
.bs-docs-header
p
{
margin-bottom
:
0
;
font-weight
:
300
;
line-height
:
1.4
}
.bs-docs-header
.container
{
position
:
relative
}
@media
(
min-width
:
768px
){
.bs-docs-header
{
padding-top
:
60px
;
padding-bottom
:
60px
;
font-size
:
24px
;
text-align
:
left
}
.bs-docs-header
h1
{
font-size
:
60px
;
line-height
:
1
}}
@media
(
min-width
:
992px
){
.bs-docs-header
h1
,
.bs-docs-header
p
{
margin-right
:
380px
}}
.carbonad
{
width
:
auto
!important
;
height
:
auto
!important
;
padding
:
20px
!important
;
margin
:
30px
-30px
-31px
!important
;
overflow
:
hidden
;
font-size
:
13px
!important
;
line-height
:
16px
!important
;
text-align
:
left
;
background
:
0
0
!important
;
border
:
solid
#866ab3
!important
;
border-width
:
1px
0
!important
}
.carbonad-img
{
margin
:
0
!important
}
.carbonad-tag
,
.carbonad-text
{
display
:
block
!important
;
float
:
none
!important
;
width
:
auto
!important
;
height
:
auto
!important
;
margin-left
:
145px
!important
;
font-family
:
"Helvetica Neue"
,
Helvetica
,
Arial
,
sans-serif
!important
}
.carbonad-text
{
padding-top
:
0
!important
}
.carbonad-tag
{
color
:
inherit
!important
;
text-align
:
left
!important
}
.carbonad-tag
a
,
.carbonad-text
a
{
color
:
#fff
!important
}
.carbonad
#azcarbon
>
img
{
display
:
none
}
@media
(
min-width
:
480px
){
.carbonad
{
width
:
330px
!important
;
margin
:
20px
auto
!important
;
border-width
:
1px
!important
;
border-radius
:
4px
}
.bs-docs-masthead
.carbonad
{
margin
:
50px
auto
0
!important
}}
@media
(
min-width
:
768px
){
.carbonad
{
margin-right
:
0
!important
;
margin-left
:
0
!important
}}
@media
(
min-width
:
992px
){
.carbonad
{
position
:
absolute
;
top
:
0
;
right
:
15px
;
width
:
330px
!important
;
padding
:
15px
!important
;
margin
:
0
!important
}
.bs-docs-masthead
.carbonad
{
position
:
static
}}
.bs-docs-featurette
{
padding-top
:
40px
;
padding-bottom
:
40px
;
font-size
:
16px
;
line-height
:
1.5
;
color
:
#555
;
text-align
:
center
;
background-color
:
#fff
;
border-bottom
:
1px
solid
#e5e5e5
}
.bs-docs-featurette
+
.bs-docs-footer
{
margin-top
:
0
;
border-top
:
0
}
.bs-docs-featurette-title
{
margin-bottom
:
5px
;
font-size
:
30px
;
font-weight
:
400
;
color
:
#333
}
.half-rule
{
width
:
100px
;
margin
:
40px
auto
}
.bs-docs-featurette
h3
{
margin-bottom
:
5px
;
font-weight
:
400
;
color
:
#333
}
.bs-docs-featurette-img
{
display
:
block
;
margin-bottom
:
20px
;
color
:
#333
}
.bs-docs-featurette-img
:hover
{
color
:
#337ab7
;
text-decoration
:
none
}
.bs-docs-featurette-img
img
{
display
:
block
;
margin-bottom
:
15px
}
@media
(
min-width
:
480px
){
.bs-docs-featurette
.img-responsive
{
margin-top
:
30px
}}
@media
(
min-width
:
768px
){
.bs-docs-featurette
{
padding-top
:
100px
;
padding-bottom
:
100px
}
.bs-docs-featurette-title
{
font-size
:
40px
}
.bs-docs-featurette
.lead
{
max-width
:
80%
;
margin-right
:
auto
;
margin-left
:
auto
}
.bs-docs-featurette
.img-responsive
{
margin-top
:
0
}}
.bs-docs-featured-sites
{
margin-right
:
-1px
;
margin-left
:
-1px
}
.bs-docs-featured-sites
.col-xs-6
{
padding
:
1px
}
.bs-docs-featured-sites
.img-responsive
{
margin-top
:
0
}
@media
(
min-width
:
768px
){
.bs-docs-featured-sites
.col-sm-3
:first-child
img
{
border-top-left-radius
:
4px
;
border-bottom-left-radius
:
4px
}
.bs-docs-featured-sites
.col-sm-3
:last-child
img
{
border-top-right-radius
:
4px
;
border-bottom-right-radius
:
4px
}}
.bs-examples
.thumbnail
{
margin-bottom
:
10px
}
.bs-examples
h4
{
margin-bottom
:
5px
}
.bs-examples
p
{
margin-bottom
:
20px
}
@media
(
max-width
:
480px
){
.bs-examples
{
margin-right
:
-10px
;
margin-left
:
-10px
}
.bs-examples
>[
class
^=
col-
]
{
padding-right
:
10px
;
padding-left
:
10px
}}
.bs-docs-sidebar.affix
{
position
:
static
}
@media
(
min-width
:
768px
){
.bs-docs-sidebar
{
padding-left
:
20px
}}
.bs-docs-sidenav
{
margin-top
:
20px
;
margin-bottom
:
20px
}
.bs-docs-sidebar
.nav
>
li
>
a
{
display
:
block
;
padding
:
4px
20px
;
font-size
:
13px
;
font-weight
:
500
;
color
:
#767676
}
.bs-docs-sidebar
.nav
>
li
>
a
:focus
,
.bs-docs-sidebar
.nav
>
li
>
a
:hover
{
padding-left
:
19px
;
color
:
#563d7c
;
text-decoration
:
none
;
background-color
:
transparent
;
border-left
:
1px
solid
#563d7c
}
.bs-docs-sidebar
.nav
>
.active
:focus
>
a
,
.bs-docs-sidebar
.nav
>
.active
:hover
>
a
,
.bs-docs-sidebar
.nav
>
.active
>
a
{
padding-left
:
18px
;
font-weight
:
700
;
color
:
#563d7c
;
background-color
:
transparent
;
border-left
:
2px
solid
#563d7c
}
.bs-docs-sidebar
.nav
.nav
{
display
:
none
;
padding-bottom
:
10px
}
.bs-docs-sidebar
.nav
.nav
>
li
>
a
{
padding-top
:
1px
;
padding-bottom
:
1px
;
padding-left
:
30px
;
font-size
:
12px
;
font-weight
:
400
}
.bs-docs-sidebar
.nav
.nav
>
li
>
a
:focus
,
.bs-docs-sidebar
.nav
.nav
>
li
>
a
:hover
{
padding-left
:
29px
}
.bs-docs-sidebar
.nav
.nav
>
.active
:focus
>
a
,
.bs-docs-sidebar
.nav
.nav
>
.active
:hover
>
a
,
.bs-docs-sidebar
.nav
.nav
>
.active
>
a
{
padding-left
:
28px
;
font-weight
:
500
}
.back-to-top
,
.bs-docs-theme-toggle
{
display
:
none
;
padding
:
4px
10px
;
margin-top
:
10px
;
margin-left
:
10px
;
font-size
:
12px
;
font-weight
:
500
;
color
:
#999
}
.back-to-top
:hover
,
.bs-docs-theme-toggle
:hover
{
color
:
#563d7c
;
text-decoration
:
none
}
.bs-docs-theme-toggle
{
margin-top
:
0
}
@media
(
min-width
:
768px
){
.back-to-top
,
.bs-docs-theme-toggle
{
display
:
block
}}
@media
(
min-width
:
992px
){
.bs-docs-sidebar
.nav
>
.active
>
ul
{
display
:
block
}
.bs-docs-sidebar.affix
,
.bs-docs-sidebar.affix-bottom
{
width
:
213px
}
.bs-docs-sidebar.affix
{
position
:
fixed
;
top
:
20px
}
.bs-docs-sidebar.affix-bottom
{
position
:
absolute
}
.bs-docs-sidebar.affix
.bs-docs-sidenav
,
.bs-docs-sidebar.affix-bottom
.bs-docs-sidenav
{
margin-top
:
0
;
margin-bottom
:
0
}}
@media
(
min-width
:
1200px
){
.bs-docs-sidebar.affix
,
.bs-docs-sidebar.affix-bottom
{
width
:
263px
}}
.bs-docs-section
{
margin-bottom
:
60px
}
.bs-docs-section
:last-child
{
margin-bottom
:
0
}
h1
[
id
]
{
padding-top
:
20px
;
margin-top
:
0
}
.bs-callout
{
padding
:
20px
;
margin
:
20px
0
;
border
:
1px
solid
#eee
;
border-left-width
:
5px
;
border-radius
:
3px
}
.bs-callout
h4
{
margin-top
:
0
;
margin-bottom
:
5px
}
.bs-callout
p
:last-child
{
margin-bottom
:
0
}
.bs-callout
code
{
border-radius
:
3px
}
.bs-callout
+
.bs-callout
{
margin-top
:
-5px
}
.bs-callout-danger
{
border-left-color
:
#ce4844
}
.bs-callout-danger
h4
{
color
:
#ce4844
}
.bs-callout-warning
{
border-left-color
:
#aa6708
}
.bs-callout-warning
h4
{
color
:
#aa6708
}
.bs-callout-info
{
border-left-color
:
#1b809e
}
.bs-callout-info
h4
{
color
:
#1b809e
}
.color-swatches
{
margin
:
0
-5px
;
overflow
:
hidden
}
.color-swatch
{
float
:
left
;
width
:
60px
;
height
:
60px
;
margin
:
0
5px
;
border-radius
:
3px
}
@media
(
min-width
:
768px
){
.color-swatch
{
width
:
100px
;
height
:
100px
}}
.color-swatches
.gray-darker
{
background-color
:
#222
}
.color-swatches
.gray-dark
{
background-color
:
#333
}
.color-swatches
.gray
{
background-color
:
#555
}
.color-swatches
.gray-light
{
background-color
:
#999
}
.color-swatches
.gray-lighter
{
background-color
:
#eee
}
.color-swatches
.brand-primary
{
background-color
:
#337ab7
}
.color-swatches
.brand-success
{
background-color
:
#5cb85c
}
.color-swatches
.brand-warning
{
background-color
:
#f0ad4e
}
.color-swatches
.brand-danger
{
background-color
:
#d9534f
}
.color-swatches
.brand-info
{
background-color
:
#5bc0de
}
.color-swatches
.bs-purple
{
background-color
:
#563d7c
}
.color-swatches
.bs-purple-light
{
background-color
:
#c7bfd3
}
.color-swatches
.bs-purple-lighter
{
background-color
:
#e5e1ea
}
.color-swatches
.bs-gray
{
background-color
:
#f9f9f9
}
.bs-team
.team-member
{
line-height
:
32px
;
color
:
#555
}
.bs-team
.team-member
:hover
{
color
:
#333
;
text-decoration
:
none
}
.bs-team
.github-btn
{
float
:
right
;
width
:
180px
;
height
:
20px
;
margin-top
:
6px
}
.bs-team
img
{
float
:
left
;
width
:
32px
;
margin-right
:
10px
;
border-radius
:
4px
}
.bs-docs-browser-bugs
td
p
{
margin-bottom
:
0
}
.bs-docs-browser-bugs
th
:first-child
{
width
:
18%
}
.show-grid
{
margin-bottom
:
15px
}
.show-grid
[
class
^=
col-
]
{
padding-top
:
10px
;
padding-bottom
:
10px
;
background-color
:
#eee
;
background-color
:
rgba
(
86
,
61
,
124
,
.15
);
border
:
1px
solid
#ddd
;
border
:
1px
solid
rgba
(
86
,
61
,
124
,
.2
)}
.bs-example
{
position
:
relative
;
padding
:
45px
15px
15px
;
margin
:
0
-15px
15px
;
border-color
:
#e5e5e5
#eee
#eee
;
border-style
:
solid
;
border-width
:
1px
0
;
-webkit-box-shadow
:
inset
0
3px
6px
rgba
(
0
,
0
,
0
,
.05
);
box-shadow
:
inset
0
3px
6px
rgba
(
0
,
0
,
0
,
.05
)}
.bs-example
:after
{
position
:
absolute
;
top
:
15px
;
left
:
15px
;
font-size
:
12px
;
font-weight
:
700
;
color
:
#959595
;
text-transform
:
uppercase
;
letter-spacing
:
1px
;
content
:
"Example"
}
.bs-example
+
.highlight
,
.bs-example
+
.zero-clipboard
+
.highlight
{
margin
:
-15px
-15px
15px
;
border-width
:
0
0
1px
;
border-radius
:
0
}
@media
(
min-width
:
768px
){
.bs-example
{
margin-right
:
0
;
margin-left
:
0
;
background-color
:
#fff
;
border-color
:
#ddd
;
border-width
:
1px
;
border-radius
:
4px
4px
0
0
;
-webkit-box-shadow
:
none
;
box-shadow
:
none
}
.bs-example
+
.highlight
,
.bs-example
+
.zero-clipboard
+
.highlight
{
margin-top
:
-16px
;
margin-right
:
0
;
margin-left
:
0
;
border-width
:
1px
;
border-bottom-right-radius
:
4px
;
border-bottom-left-radius
:
4px
}
.bs-example-standalone
{
border-radius
:
4px
}}
.bs-example
.container
{
width
:
auto
}
.bs-example
>
.alert
:last-child
,
.bs-example
>
.form-control
:last-child
,
.bs-example
>
.jumbotron
:last-child
,
.bs-example
>
.list-group
:last-child
,
.bs-example
>
.navbar
:last-child
,
.bs-example
>
.panel
:last-child
,
.bs-example
>
.progress
:last-child
,
.bs-example
>
.table-responsive
:last-child
>
.table
,
.bs-example
>
.table
:last-child
,
.bs-example
>
.well
:last-child
,
.bs-example
>
blockquote
:last-child
,
.bs-example
>
ol
:last-child
,
.bs-example
>
p
:last-child
,
.bs-example
>
ul
:last-child
{
margin-bottom
:
0
}
.bs-example
>
p
>
.close
{
float
:
none
}
.bs-example-type
.table
.type-info
{
color
:
#767676
;
vertical-align
:
middle
}
.bs-example-type
.table
td
{
padding
:
15px
0
;
border-color
:
#eee
}
.bs-example-type
.table
tr
:first-child
td
{
border-top
:
0
}
.bs-example-type
h1
,
.bs-example-type
h2
,
.bs-example-type
h3
,
.bs-example-type
h4
,
.bs-example-type
h5
,
.bs-example-type
h6
{
margin
:
0
}
.bs-example-bg-classes
p
{
padding
:
15px
}
.bs-example
>
.img-circle
,
.bs-example
>
.img-rounded
,
.bs-example
>
.img-thumbnail
{
margin
:
5px
}
.bs-example
>
.table-responsive
>
.table
{
background-color
:
#fff
}
.bs-example
>
.btn
,
.bs-example
>
.btn-group
{
margin-top
:
5px
;
margin-bottom
:
5px
}
.bs-example
>
.btn-toolbar
+
.btn-toolbar
{
margin-top
:
10px
}
.bs-example-control-sizing
input
[
type
=
text
]+
input
[
type
=
text
],
.bs-example-control-sizing
select
{
margin-top
:
10px
}
.bs-example-form
.input-group
{
margin-bottom
:
10px
}
.bs-example
>
textarea
.form-control
{
resize
:
vertical
}
.bs-example
>
.list-group
{
max-width
:
400px
}
.bs-example
.navbar
:last-child
{
margin-bottom
:
0
}
.bs-navbar-bottom-example
,
.bs-navbar-top-example
{
z-index
:
1
;
padding
:
0
;
overflow
:
hidden
}
.bs-navbar-bottom-example
.navbar-header
,
.bs-navbar-top-example
.navbar-header
{
margin-left
:
0
}
.bs-navbar-bottom-example
.navbar-fixed-bottom
,
.bs-navbar-top-example
.navbar-fixed-top
{
position
:
relative
;
margin-right
:
0
;
margin-left
:
0
}
.bs-navbar-top-example
{
padding-bottom
:
45px
}
.bs-navbar-top-example
:after
{
top
:
auto
;
bottom
:
15px
}
.bs-navbar-top-example
.navbar-fixed-top
{
top
:
-1px
}
.bs-navbar-bottom-example
{
padding-top
:
45px
}
.bs-navbar-bottom-example
.navbar-fixed-bottom
{
bottom
:
-1px
}
.bs-navbar-bottom-example
.navbar
{
margin-bottom
:
0
}
@media
(
min-width
:
768px
){
.bs-navbar-bottom-example
.navbar-fixed-bottom
,
.bs-navbar-top-example
.navbar-fixed-top
{
position
:
absolute
}}
.bs-example
.pagination
{
margin-top
:
10px
;
margin-bottom
:
10px
}
.bs-example
>
.pager
{
margin-top
:
0
}
.bs-example-modal
{
background-color
:
#f5f5f5
}
.bs-example-modal
.modal
{
position
:
relative
;
top
:
auto
;
right
:
auto
;
bottom
:
auto
;
left
:
auto
;
z-index
:
1
;
display
:
block
}
.bs-example-modal
.modal-dialog
{
left
:
auto
;
margin-right
:
auto
;
margin-left
:
auto
}
.bs-example
>
.dropdown
>
.dropdown-toggle
{
float
:
left
}
.bs-example
>
.dropdown
>
.dropdown-menu
{
position
:
static
;
display
:
block
;
margin-bottom
:
5px
;
clear
:
left
}
.bs-example-tabs
.nav-tabs
{
margin-bottom
:
15px
}
.bs-example-tooltips
{
text-align
:
center
}
.bs-example-tooltips
>
.btn
{
margin-top
:
5px
;
margin-bottom
:
5px
}
.bs-example-tooltip
.tooltip
{
position
:
relative
;
display
:
inline-block
;
margin
:
10px
20px
;
opacity
:
1
}
.bs-example-popover
{
padding-bottom
:
24px
;
background-color
:
#f9f9f9
}
.bs-example-popover
.popover
{
position
:
relative
;
display
:
block
;
float
:
left
;
width
:
260px
;
margin
:
20px
}
.scrollspy-example
{
position
:
relative
;
height
:
200px
;
margin-top
:
10px
;
overflow
:
auto
}
#collapseExample
.well
{
margin-bottom
:
0
}
.bs-events-table
>
tbody
>
tr
>
td
:first-child
,
.bs-events-table
>
thead
>
tr
>
th
:first-child
{
white-space
:
nowrap
}
.highlight
{
padding
:
9px
14px
;
margin-bottom
:
14px
;
background-color
:
#f7f7f9
;
border
:
1px
solid
#e1e1e8
;
border-radius
:
4px
}
.highlight
pre
{
padding
:
0
;
margin-top
:
0
;
margin-bottom
:
0
;
word-break
:
normal
;
white-space
:
nowrap
;
background-color
:
transparent
;
border
:
0
}
.highlight
pre
code
{
font-size
:
inherit
;
color
:
#333
}
.highlight
pre
code
:first-child
{
display
:
inline-block
;
padding-right
:
45px
}
.table-responsive
.highlight
pre
{
white-space
:
normal
}
.bs-table
th
small
,
.responsive-utilities
th
small
{
display
:
block
;
font-weight
:
400
;
color
:
#999
}
.responsive-utilities
tbody
th
{
font-weight
:
400
}
.responsive-utilities
td
{
text-align
:
center
}
.responsive-utilities
td
.is-visible
{
color
:
#468847
;
background-color
:
#dff0d8
!important
}
.responsive-utilities
td
.is-hidden
{
color
:
#ccc
;
background-color
:
#f9f9f9
!important
}
.responsive-utilities-test
{
margin-top
:
5px
}
.responsive-utilities-test
.col-xs-6
{
margin-bottom
:
10px
}
.responsive-utilities-test
span
{
display
:
block
;
padding
:
15px
10px
;
font-size
:
14px
;
font-weight
:
700
;
line-height
:
1.1
;
text-align
:
center
;
border-radius
:
4px
}
.hidden-on
.col-xs-6
.hidden-lg
,
.hidden-on
.col-xs-6
.hidden-md
,
.hidden-on
.col-xs-6
.hidden-sm
,
.hidden-on
.col-xs-6
.hidden-xs
,
.visible-on
.col-xs-6
.hidden-lg
,
.visible-on
.col-xs-6
.hidden-md
,
.visible-on
.col-xs-6
.hidden-sm
,
.visible-on
.col-xs-6
.hidden-xs
{
color
:
#999
;
border
:
1px
solid
#ddd
}
.hidden-on
.col-xs-6
.visible-lg-block
,
.hidden-on
.col-xs-6
.visible-md-block
,
.hidden-on
.col-xs-6
.visible-sm-block
,
.hidden-on
.col-xs-6
.visible-xs-block
,
.visible-on
.col-xs-6
.visible-lg-block
,
.visible-on
.col-xs-6
.visible-md-block
,
.visible-on
.col-xs-6
.visible-sm-block
,
.visible-on
.col-xs-6
.visible-xs-block
{
color
:
#468847
;
background-color
:
#dff0d8
;
border
:
1px
solid
#d6e9c6
}
.bs-glyphicons
{
margin
:
0
-10px
20px
;
overflow
:
hidden
}
.bs-glyphicons-list
{
padding-left
:
0
;
list-style
:
none
}
.bs-glyphicons
li
{
float
:
left
;
width
:
25%
;
height
:
115px
;
padding
:
10px
;
font-size
:
10px
;
line-height
:
1.4
;
text-align
:
center
;
background-color
:
#f9f9f9
;
border
:
1px
solid
#fff
}
.bs-glyphicons
.glyphicon
{
margin-top
:
5px
;
margin-bottom
:
10px
;
font-size
:
24px
}
.bs-glyphicons
.glyphicon-class
{
display
:
block
;
text-align
:
center
;
word-wrap
:
break-word
}
.bs-glyphicons
li
:hover
{
color
:
#fff
;
background-color
:
#563d7c
}
@media
(
min-width
:
768px
){
.bs-glyphicons
{
margin-right
:
0
;
margin-left
:
0
}
.bs-glyphicons
li
{
width
:
12.5%
;
font-size
:
12px
}}
.bs-customizer
.toggle
{
float
:
right
;
margin-top
:
25px
}
.bs-customizer
label
{
margin-top
:
10px
;
font-weight
:
500
;
color
:
#555
}
.bs-customizer
h2
{
padding-top
:
30px
;
margin-top
:
0
;
margin-bottom
:
5px
}
.bs-customizer
h3
{
margin-bottom
:
0
}
.bs-customizer
h4
{
margin-top
:
15px
;
margin-bottom
:
0
}
.bs-customizer
.bs-callout
h4
{
margin-top
:
0
;
margin-bottom
:
5px
}
.bs-customizer
input
[
type
=
text
]
{
font-family
:
Menlo
,
Monaco
,
Consolas
,
"Courier New"
,
monospace
;
background-color
:
#fafafa
}
.bs-customizer
.help-block
{
margin-bottom
:
5px
;
font-size
:
12px
}
#less-section
label
{
font-weight
:
400
}
.bs-customize-download
.btn-outline
{
padding
:
20px
}
.bs-customizer-alert
{
position
:
fixed
;
top
:
0
;
right
:
0
;
left
:
0
;
z-index
:
1030
;
padding
:
15px
0
;
color
:
#fff
;
background-color
:
#d9534f
;
border-bottom
:
1px
solid
#b94441
;
-webkit-box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
.25
);
box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
.25
)}
.bs-customizer-alert
.close
{
margin-top
:
-4px
;
font-size
:
24px
}
.bs-customizer-alert
p
{
margin-bottom
:
0
}
.bs-customizer-alert
.glyphicon
{
margin-right
:
5px
}
.bs-customizer-alert
pre
{
margin
:
10px
0
0
;
color
:
#fff
;
background-color
:
#a83c3a
;
border-color
:
#973634
;
-webkit-box-shadow
:
inset
0
2px
4px
rgba
(
0
,
0
,
0
,
.05
),
0
1px
0
rgba
(
255
,
255
,
255
,
.1
);
box-shadow
:
inset
0
2px
4px
rgba
(
0
,
0
,
0
,
.05
),
0
1px
0
rgba
(
255
,
255
,
255
,
.1
)}
.bs-dropzone
{
position
:
relative
;
padding
:
20px
;
margin-bottom
:
20px
;
color
:
#777
;
text-align
:
center
;
border
:
2px
dashed
#eee
;
border-radius
:
4px
}
.bs-dropzone
.import-header
{
margin-bottom
:
5px
}
.bs-dropzone
.glyphicon-download-alt
{
font-size
:
40px
}
.bs-dropzone
hr
{
width
:
100px
}
.bs-dropzone
.lead
{
margin-bottom
:
10px
;
font-weight
:
400
;
color
:
#333
}
#import-manual-trigger
{
cursor
:
pointer
}
.bs-dropzone
p
:last-child
{
margin-bottom
:
0
}
.bs-brand-logos
{
display
:
table
;
width
:
100%
;
margin-bottom
:
15px
;
overflow
:
hidden
;
color
:
#563d7c
;
background-color
:
#f9f9f9
;
border-radius
:
4px
}
.bs-brand-item
{
padding
:
60px
0
;
text-align
:
center
}
.bs-brand-item
+
.bs-brand-item
{
border-top
:
1px
solid
#fff
}
.bs-brand-logos
.inverse
{
color
:
#fff
;
background-color
:
#563d7c
}
.bs-brand-item
h1
,
.bs-brand-item
h3
{
margin-top
:
0
;
margin-bottom
:
0
}
.bs-brand-item
.bs-docs-booticon
{
margin-right
:
auto
;
margin-left
:
auto
}
.bs-brand-item
.glyphicon
{
width
:
30px
;
height
:
30px
;
margin
:
10px
auto
-10px
;
line-height
:
30px
;
color
:
#fff
;
border-radius
:
50%
}
.bs-brand-item
.glyphicon-ok
{
background-color
:
#5cb85c
}
.bs-brand-item
.glyphicon-remove
{
background-color
:
#d9534f
}
@media
(
min-width
:
768px
){
.bs-brand-item
{
display
:
table-cell
;
width
:
1%
}
.bs-brand-item
+
.bs-brand-item
{
border-top
:
0
;
border-left
:
1px
solid
#fff
}
.bs-brand-item
h1
{
font-size
:
60px
}}
.zero-clipboard
{
position
:
relative
;
display
:
none
}
.btn-clipboard
{
position
:
absolute
;
top
:
0
;
right
:
0
;
z-index
:
10
;
display
:
block
;
padding
:
5px
8px
;
font-size
:
12px
;
color
:
#767676
;
cursor
:
pointer
;
background-color
:
#fff
;
border
:
1px
solid
#e1e1e8
;
border-radius
:
0
4px
0
4px
}
.btn-clipboard-hover
{
color
:
#fff
;
background-color
:
#563d7c
;
border-color
:
#563d7c
}
@media
(
min-width
:
768px
){
.zero-clipboard
{
display
:
block
}
.bs-example
+
.zero-clipboard
.btn-clipboard
{
top
:
-16px
;
border-top-right-radius
:
0
}}
#focusedInput
{
border-color
:
#ccc
;
border-color
:
rgba
(
82
,
168
,
236
,
.8
);
outline
:
0
;
outline
:
thin
dotted
\
9
;
-webkit-box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
);
box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
)}
.hll
{
background-color
:
#ffc
}
.c
{
color
:
#999
}
.err
{
color
:
#A00
;
background-color
:
#FAA
}
.k
{
color
:
#069
}
.o
{
color
:
#555
}
.cm
{
color
:
#999
}
.cp
{
color
:
#099
}
.c1
{
color
:
#999
}
.cs
{
color
:
#999
}
.gd
{
background-color
:
#FCC
;
border
:
1px
solid
#C00
}
.ge
{
font-style
:
italic
}
.gr
{
color
:
red
}
.gh
{
color
:
#030
}
.gi
{
background-color
:
#CFC
;
border
:
1px
solid
#0C0
}
.go
{
color
:
#AAA
}
.gp
{
color
:
#009
}
.gu
{
color
:
#030
}
.gt
{
color
:
#9C6
}
.kc
{
color
:
#069
}
.kd
{
color
:
#069
}
.kn
{
color
:
#069
}
.kp
{
color
:
#069
}
.kr
{
color
:
#069
}
.kt
{
color
:
#078
}
.m
{
color
:
#F60
}
.s
{
color
:
#d44950
}
.na
{
color
:
#4f9fcf
}
.nb
{
color
:
#366
}
.nc
{
color
:
#0A8
}
.no
{
color
:
#360
}
.nd
{
color
:
#99F
}
.ni
{
color
:
#999
}
.ne
{
color
:
#C00
}
.nf
{
color
:
#C0F
}
.nl
{
color
:
#99F
}
.nn
{
color
:
#0CF
}
.nt
{
color
:
#2f6f9f
}
.nv
{
color
:
#033
}
.ow
{
color
:
#000
}
.w
{
color
:
#bbb
}
.mf
{
color
:
#F60
}
.mh
{
color
:
#F60
}
.mi
{
color
:
#F60
}
.mo
{
color
:
#F60
}
.sb
{
color
:
#C30
}
.sc
{
color
:
#C30
}
.sd
{
color
:
#C30
;
font-style
:
italic
}
.s2
{
color
:
#C30
}
.se
{
color
:
#C30
}
.sh
{
color
:
#C30
}
.si
{
color
:
#A00
}
.sx
{
color
:
#C30
}
.sr
{
color
:
#3AA
}
.s1
{
color
:
#C30
}
.ss
{
color
:
#FC3
}
.bp
{
color
:
#366
}
.vc
{
color
:
#033
}
.vg
{
color
:
#033
}
.vi
{
color
:
#033
}
.il
{
color
:
#F60
}
.css
.nt
+
.nt
,
.css
.o
,
.css
.o
+
.nt
{
color
:
#999
}
*/
body
{
position
:
relative
}
.table
code
{
font-size
:
13px
;
font-weight
:
400
}
.btn-outline
{
color
:
#563d7c
;
background-color
:
transparent
;
border-color
:
#563d7c
}
.btn-outline
:active
,
.btn-outline
:focus
,
.btn-outline
:hover
{
color
:
#fff
;
background-color
:
#563d7c
;
border-color
:
#563d7c
}
.btn-outline-inverse
{
color
:
#fff
;
background-color
:
transparent
;
border-color
:
#cdbfe3
}
.btn-outline-inverse
:active
,
.btn-outline-inverse
:focus
,
.btn-outline-inverse
:hover
{
color
:
#563d7c
;
text-shadow
:
none
;
background-color
:
#fff
;
border-color
:
#fff
}
.bs-docs-booticon
{
display
:
block
;
font-weight
:
500
;
color
:
#fff
;
text-align
:
center
;
cursor
:
default
;
background-color
:
#563d7c
;
border-radius
:
15%
}
.bs-docs-booticon-sm
{
width
:
30px
;
height
:
30px
;
font-size
:
20px
;
line-height
:
28px
}
.bs-docs-booticon-lg
{
width
:
144px
;
height
:
144px
;
font-size
:
108px
;
line-height
:
140px
}
.bs-docs-booticon-inverse
{
color
:
#563d7c
;
background-color
:
#fff
}
.bs-docs-booticon-outline
{
background-color
:
transparent
;
border
:
1px
solid
#cdbfe3
}
#skippy
{
display
:
block
;
padding
:
1em
;
color
:
#fff
;
background-color
:
#6f5499
;
outline
:
0
}
#skippy
.skiplink-text
{
padding
:
.5em
;
outline
:
1px
dotted
}
.bs-docs-nav
{
margin-bottom
:
0
;
background-color
:
#fff
;
border-bottom
:
0
}
.bs-home-nav
.bs-nav-b
{
display
:
none
}
.bs-docs-nav
.navbar-brand
,
.bs-docs-nav
.navbar-nav
>
li
>
a
{
font-weight
:
500
;
color
:
#563d7c
}
.bs-docs-nav
.navbar-nav
>
.active
>
a
,
.bs-docs-nav
.navbar-nav
>
.active
>
a
:hover
,
.bs-docs-nav
.navbar-nav
>
li
>
a
:hover
{
color
:
#463265
;
background-color
:
#f9f9f9
}
.bs-docs-nav
.navbar-toggle
.icon-bar
{
background-color
:
#563d7c
}
.bs-docs-nav
.navbar-header
.navbar-toggle
{
border-color
:
#fff
}
.bs-docs-nav
.navbar-header
.navbar-toggle
:focus
,
.bs-docs-nav
.navbar-header
.navbar-toggle
:hover
{
background-color
:
#f9f9f9
;
border-color
:
#f9f9f9
}
.bs-docs-footer
{
padding-top
:
40px
;
padding-bottom
:
40px
;
margin-top
:
100px
;
color
:
#767676
;
text-align
:
center
;
border-top
:
1px
solid
#e5e5e5
}
.bs-docs-footer-links
{
padding-left
:
0
;
margin-top
:
20px
}
.bs-docs-footer-links
li
{
display
:
inline
;
padding
:
0
2px
}
.bs-docs-footer-links
li
:first-child
{
padding-left
:
0
}
@media
(
min-width
:
768px
){
.bs-docs-footer
p
{
margin-bottom
:
0
}}
.bs-docs-social
{
margin-bottom
:
20px
;
text-align
:
center
}
.bs-docs-social-buttons
{
display
:
inline-block
;
padding-left
:
0
;
margin-bottom
:
0
;
list-style
:
none
}
.bs-docs-social-buttons
li
{
display
:
inline-block
;
padding
:
5px
8px
;
line-height
:
1
}
.bs-docs-social-buttons
.twitter-follow-button
{
width
:
225px
!important
}
.bs-docs-social-buttons
.twitter-share-button
{
width
:
98px
!important
}
.github-btn
{
overflow
:
hidden
;
border
:
0
}
.bs-docs-header
,
.bs-docs-masthead
{
position
:
relative
;
padding
:
30px
15px
;
color
:
#cdbfe3
;
text-align
:
center
;
text-shadow
:
0
1px
0
rgba
(
0
,
0
,
0
,
.1
);
background-color
:
#6f5499
;
background-image
:
-webkit-gradient
(
linear
,
left
top
,
left
bottom
,
from
(
#563d7c
),
to
(
#6f5499
));
background-image
:
-webkit-linear-gradient
(
top
,
#563d7c
0
,
#6f5499
100%
);
background-image
:
-o-linear-gradient
(
top
,
#563d7c
0
,
#6f5499
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#563d7c
0
,
#6f5499
100%
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#563d7c'
,
endColorstr
=
'#6F5499'
,
GradientType
=
0
);
background-repeat
:
repeat-x
}
.bs-docs-masthead
.bs-docs-booticon
{
margin
:
0
auto
30px
}
.bs-docs-masthead
h1
{
font-weight
:
300
;
line-height
:
1
;
color
:
#fff
}
.bs-docs-masthead
.lead
{
margin
:
0
auto
30px
;
font-size
:
20px
;
color
:
#fff
}
.bs-docs-masthead
.version
{
margin-top
:
-15px
;
margin-bottom
:
30px
;
color
:
#9783b9
}
.bs-docs-masthead
.btn
{
width
:
100%
;
padding
:
15px
30px
;
font-size
:
20px
}
@media
(
min-width
:
480px
){
.bs-docs-masthead
.btn
{
width
:
auto
}}
@media
(
min-width
:
768px
){
.bs-docs-masthead
{
padding
:
80px
0
}
.bs-docs-masthead
h1
{
font-size
:
60px
}
.bs-docs-masthead
.lead
{
font-size
:
24px
}}
@media
(
min-width
:
992px
){
.bs-docs-masthead
.lead
{
width
:
80%
;
font-size
:
30px
}}
.bs-docs-header
{
margin-bottom
:
40px
;
font-size
:
20px
}
.bs-docs-header
h1
{
margin-top
:
0
;
color
:
#fff
}
.bs-docs-header
p
{
margin-bottom
:
0
;
font-weight
:
300
;
line-height
:
1.4
}
.bs-docs-header
.container
{
position
:
relative
}
@media
(
min-width
:
768px
){
.bs-docs-header
{
padding-top
:
60px
;
padding-bottom
:
60px
;
font-size
:
24px
;
text-align
:
left
}
.bs-docs-header
h1
{
font-size
:
60px
;
line-height
:
1
}}
@media
(
min-width
:
992px
){
.bs-docs-header
h1
,
.bs-docs-header
p
{
margin-right
:
380px
}}
.carbonad
{
width
:
auto
!important
;
height
:
auto
!important
;
padding
:
20px
!important
;
margin
:
30px
-30px
-31px
!important
;
overflow
:
hidden
;
font-size
:
13px
!important
;
line-height
:
16px
!important
;
text-align
:
left
;
background
:
0
0
!important
;
border
:
solid
#866ab3
!important
;
border-width
:
1px
0
!important
}
.carbonad-img
{
margin
:
0
!important
}
.carbonad-tag
,
.carbonad-text
{
display
:
block
!important
;
float
:
none
!important
;
width
:
auto
!important
;
height
:
auto
!important
;
margin-left
:
145px
!important
;
font-family
:
"Helvetica Neue"
,
Helvetica
,
Arial
,
sans-serif
!important
}
.carbonad-text
{
padding-top
:
0
!important
}
.carbonad-tag
{
color
:
inherit
!important
;
text-align
:
left
!important
}
.carbonad-tag
a
,
.carbonad-text
a
{
color
:
#fff
!important
}
.carbonad
#azcarbon
>
img
{
display
:
none
}
@media
(
min-width
:
480px
){
.carbonad
{
width
:
330px
!important
;
margin
:
20px
auto
!important
;
border-width
:
1px
!important
;
border-radius
:
4px
}
.bs-docs-masthead
.carbonad
{
margin
:
50px
auto
0
!important
}}
@media
(
min-width
:
768px
){
.carbonad
{
margin-right
:
0
!important
;
margin-left
:
0
!important
}}
@media
(
min-width
:
992px
){
.carbonad
{
position
:
absolute
;
top
:
0
;
right
:
15px
;
width
:
330px
!important
;
padding
:
15px
!important
;
margin
:
0
!important
}
.bs-docs-masthead
.carbonad
{
position
:
static
}}
.bs-docs-featurette
{
padding-top
:
40px
;
padding-bottom
:
40px
;
font-size
:
16px
;
line-height
:
1.5
;
color
:
#555
;
text-align
:
center
;
background-color
:
#fff
;
border-bottom
:
1px
solid
#e5e5e5
}
.bs-docs-featurette
+
.bs-docs-footer
{
margin-top
:
0
;
border-top
:
0
}
.bs-docs-featurette-title
{
margin-bottom
:
5px
;
font-size
:
30px
;
font-weight
:
400
;
color
:
#333
}
.half-rule
{
width
:
100px
;
margin
:
40px
auto
}
.bs-docs-featurette
h3
{
margin-bottom
:
5px
;
font-weight
:
400
;
color
:
#333
}
.bs-docs-featurette-img
{
display
:
block
;
margin-bottom
:
20px
;
color
:
#333
}
.bs-docs-featurette-img
:hover
{
color
:
#337ab7
;
text-decoration
:
none
}
.bs-docs-featurette-img
img
{
display
:
block
;
margin-bottom
:
15px
}
@media
(
min-width
:
480px
){
.bs-docs-featurette
.img-responsive
{
margin-top
:
30px
}}
@media
(
min-width
:
768px
){
.bs-docs-featurette
{
padding-top
:
100px
;
padding-bottom
:
100px
}
.bs-docs-featurette-title
{
font-size
:
40px
}
.bs-docs-featurette
.lead
{
max-width
:
80%
;
margin-right
:
auto
;
margin-left
:
auto
}
.bs-docs-featurette
.img-responsive
{
margin-top
:
0
}}
.bs-docs-featured-sites
{
margin-right
:
-1px
;
margin-left
:
-1px
}
.bs-docs-featured-sites
.col-xs-6
{
padding
:
1px
}
.bs-docs-featured-sites
.img-responsive
{
margin-top
:
0
}
@media
(
min-width
:
768px
){
.bs-docs-featured-sites
.col-sm-3
:first-child
img
{
border-top-left-radius
:
4px
;
border-bottom-left-radius
:
4px
}
.bs-docs-featured-sites
.col-sm-3
:last-child
img
{
border-top-right-radius
:
4px
;
border-bottom-right-radius
:
4px
}}
.bs-examples
.thumbnail
{
margin-bottom
:
10px
}
.bs-examples
h4
{
margin-bottom
:
5px
}
.bs-examples
p
{
margin-bottom
:
20px
}
@media
(
max-width
:
480px
){
.bs-examples
{
margin-right
:
-10px
;
margin-left
:
-10px
}
.bs-examples
>[
class
^=
col-
]
{
padding-right
:
10px
;
padding-left
:
10px
}}
.bs-docs-sidebar.affix
{
position
:
static
}
@media
(
min-width
:
768px
){
.bs-docs-sidebar
{
padding-left
:
20px
}}
.bs-docs-sidenav
{
margin-top
:
20px
;
margin-bottom
:
20px
}
.bs-docs-sidebar
.nav
>
li
>
a
{
display
:
block
;
padding
:
4px
20px
;
font-size
:
13px
;
font-weight
:
500
;
color
:
#767676
}
.bs-docs-sidebar
.nav
>
li
>
a
:focus
,
.bs-docs-sidebar
.nav
>
li
>
a
:hover
{
padding-left
:
19px
;
color
:
#563d7c
;
text-decoration
:
none
;
background-color
:
transparent
;
border-left
:
1px
solid
#563d7c
}
.bs-docs-sidebar
.nav
>
.active
:focus
>
a
,
.bs-docs-sidebar
.nav
>
.active
:hover
>
a
,
.bs-docs-sidebar
.nav
>
.active
>
a
{
padding-left
:
18px
;
font-weight
:
700
;
color
:
#563d7c
;
background-color
:
transparent
;
border-left
:
2px
solid
#563d7c
}
.bs-docs-sidebar
.nav
.nav
{
display
:
none
;
padding-bottom
:
10px
}
.bs-docs-sidebar
.nav
.nav
>
li
>
a
{
padding-top
:
1px
;
padding-bottom
:
1px
;
padding-left
:
30px
;
font-size
:
12px
;
font-weight
:
400
}
.bs-docs-sidebar
.nav
.nav
>
li
>
a
:focus
,
.bs-docs-sidebar
.nav
.nav
>
li
>
a
:hover
{
padding-left
:
29px
}
.bs-docs-sidebar
.nav
.nav
>
.active
:focus
>
a
,
.bs-docs-sidebar
.nav
.nav
>
.active
:hover
>
a
,
.bs-docs-sidebar
.nav
.nav
>
.active
>
a
{
padding-left
:
28px
;
font-weight
:
500
}
.back-to-top
,
.bs-docs-theme-toggle
{
display
:
none
;
padding
:
4px
10px
;
margin-top
:
10px
;
margin-left
:
10px
;
font-size
:
12px
;
font-weight
:
500
;
color
:
#999
}
.back-to-top
:hover
,
.bs-docs-theme-toggle
:hover
{
color
:
#563d7c
;
text-decoration
:
none
}
.bs-docs-theme-toggle
{
margin-top
:
0
}
@media
(
min-width
:
768px
){
.back-to-top
,
.bs-docs-theme-toggle
{
display
:
block
}}
@media
(
min-width
:
992px
){
.bs-docs-sidebar
.nav
>
.active
>
ul
{
display
:
block
}
.bs-docs-sidebar.affix
,
.bs-docs-sidebar.affix-bottom
{
width
:
213px
}
.bs-docs-sidebar.affix
{
position
:
fixed
;
top
:
20px
}
.bs-docs-sidebar.affix-bottom
{
position
:
absolute
}
.bs-docs-sidebar.affix
.bs-docs-sidenav
,
.bs-docs-sidebar.affix-bottom
.bs-docs-sidenav
{
margin-top
:
0
;
margin-bottom
:
0
}}
@media
(
min-width
:
1200px
){
.bs-docs-sidebar.affix
,
.bs-docs-sidebar.affix-bottom
{
width
:
263px
}}
.bs-docs-section
{
margin-bottom
:
60px
}
.bs-docs-section
:last-child
{
margin-bottom
:
0
}
h1
[
id
]
{
padding-top
:
20px
;
margin-top
:
0
}
.bs-callout
{
padding
:
20px
;
margin
:
20px
0
;
border
:
1px
solid
#eee
;
border-left-width
:
5px
;
border-radius
:
3px
}
.bs-callout
h4
{
margin-top
:
0
;
margin-bottom
:
5px
}
.bs-callout
p
:last-child
{
margin-bottom
:
0
}
.bs-callout
code
{
border-radius
:
3px
}
.bs-callout
+
.bs-callout
{
margin-top
:
-5px
}
.bs-callout-danger
{
border-left-color
:
#ce4844
}
.bs-callout-danger
h4
{
color
:
#ce4844
}
.bs-callout-warning
{
border-left-color
:
#aa6708
}
.bs-callout-warning
h4
{
color
:
#aa6708
}
.bs-callout-info
{
border-left-color
:
#1b809e
}
.bs-callout-info
h4
{
color
:
#1b809e
}
.color-swatches
{
margin
:
0
-5px
;
overflow
:
hidden
}
.color-swatch
{
float
:
left
;
width
:
60px
;
height
:
60px
;
margin
:
0
5px
;
border-radius
:
3px
}
@media
(
min-width
:
768px
){
.color-swatch
{
width
:
100px
;
height
:
100px
}}
.color-swatches
.gray-darker
{
background-color
:
#222
}
.color-swatches
.gray-dark
{
background-color
:
#333
}
.color-swatches
.gray
{
background-color
:
#555
}
.color-swatches
.gray-light
{
background-color
:
#999
}
.color-swatches
.gray-lighter
{
background-color
:
#eee
}
.color-swatches
.brand-primary
{
background-color
:
#337ab7
}
.color-swatches
.brand-success
{
background-color
:
#5cb85c
}
.color-swatches
.brand-warning
{
background-color
:
#f0ad4e
}
.color-swatches
.brand-danger
{
background-color
:
#d9534f
}
.color-swatches
.brand-info
{
background-color
:
#5bc0de
}
.color-swatches
.bs-purple
{
background-color
:
#563d7c
}
.color-swatches
.bs-purple-light
{
background-color
:
#c7bfd3
}
.color-swatches
.bs-purple-lighter
{
background-color
:
#e5e1ea
}
.color-swatches
.bs-gray
{
background-color
:
#f9f9f9
}
.bs-team
.team-member
{
line-height
:
32px
;
color
:
#555
}
.bs-team
.team-member
:hover
{
color
:
#333
;
text-decoration
:
none
}
.bs-team
.github-btn
{
float
:
right
;
width
:
180px
;
height
:
20px
;
margin-top
:
6px
}
.bs-team
img
{
float
:
left
;
width
:
32px
;
margin-right
:
10px
;
border-radius
:
4px
}
.bs-docs-browser-bugs
td
p
{
margin-bottom
:
0
}
.bs-docs-browser-bugs
th
:first-child
{
width
:
18%
}
.show-grid
{
margin-bottom
:
15px
}
.show-grid
[
class
^=
col-
]
{
padding-top
:
10px
;
padding-bottom
:
10px
;
background-color
:
#eee
;
background-color
:
rgba
(
86
,
61
,
124
,
.15
);
border
:
1px
solid
#ddd
;
border
:
1px
solid
rgba
(
86
,
61
,
124
,
.2
)}
.bs-example
{
position
:
relative
;
padding
:
45px
15px
15px
;
margin
:
0
-15px
15px
;
border-color
:
#e5e5e5
#eee
#eee
;
border-style
:
solid
;
border-width
:
1px
0
;
-webkit-box-shadow
:
inset
0
3px
6px
rgba
(
0
,
0
,
0
,
.05
);
box-shadow
:
inset
0
3px
6px
rgba
(
0
,
0
,
0
,
.05
)}
.bs-example
:after
{
position
:
absolute
;
top
:
15px
;
left
:
15px
;
font-size
:
12px
;
font-weight
:
700
;
color
:
#959595
;
text-transform
:
uppercase
;
letter-spacing
:
1px
;
content
:
"Example"
}
.bs-example
+
.highlight
,
.bs-example
+
.zero-clipboard
+
.highlight
{
margin
:
-15px
-15px
15px
;
border-width
:
0
0
1px
;
border-radius
:
0
}
@media
(
min-width
:
768px
){
.bs-example
{
margin-right
:
0
;
margin-left
:
0
;
background-color
:
#fff
;
border-color
:
#ddd
;
border-width
:
1px
;
border-radius
:
4px
4px
0
0
;
-webkit-box-shadow
:
none
;
box-shadow
:
none
}
.bs-example
+
.highlight
,
.bs-example
+
.zero-clipboard
+
.highlight
{
margin-top
:
-16px
;
margin-right
:
0
;
margin-left
:
0
;
border-width
:
1px
;
border-bottom-right-radius
:
4px
;
border-bottom-left-radius
:
4px
}
.bs-example-standalone
{
border-radius
:
4px
}}
.bs-example
.container
{
width
:
auto
}
.bs-example
>
.alert
:last-child
,
.bs-example
>
.form-control
:last-child
,
.bs-example
>
.jumbotron
:last-child
,
.bs-example
>
.list-group
:last-child
,
.bs-example
>
.navbar
:last-child
,
.bs-example
>
.panel
:last-child
,
.bs-example
>
.progress
:last-child
,
.bs-example
>
.table-responsive
:last-child
>
.table
,
.bs-example
>
.table
:last-child
,
.bs-example
>
.well
:last-child
,
.bs-example
>
blockquote
:last-child
,
.bs-example
>
ol
:last-child
,
.bs-example
>
p
:last-child
,
.bs-example
>
ul
:last-child
{
margin-bottom
:
0
}
.bs-example
>
p
>
.close
{
float
:
none
}
.bs-example-type
.table
.type-info
{
color
:
#767676
;
vertical-align
:
middle
}
.bs-example-type
.table
td
{
padding
:
15px
0
;
border-color
:
#eee
}
.bs-example-type
.table
tr
:first-child
td
{
border-top
:
0
}
.bs-example-type
h1
,
.bs-example-type
h2
,
.bs-example-type
h3
,
.bs-example-type
h4
,
.bs-example-type
h5
,
.bs-example-type
h6
{
margin
:
0
}
.bs-example-bg-classes
p
{
padding
:
15px
}
.bs-example
>
.img-circle
,
.bs-example
>
.img-rounded
,
.bs-example
>
.img-thumbnail
{
margin
:
5px
}
.bs-example
>
.table-responsive
>
.table
{
background-color
:
#fff
}
.bs-example
>
.btn
,
.bs-example
>
.btn-group
{
margin-top
:
5px
;
margin-bottom
:
5px
}
.bs-example
>
.btn-toolbar
+
.btn-toolbar
{
margin-top
:
10px
}
.bs-example-control-sizing
input
[
type
=
text
]+
input
[
type
=
text
],
.bs-example-control-sizing
select
{
margin-top
:
10px
}
.bs-example-form
.input-group
{
margin-bottom
:
10px
}
.bs-example
>
textarea
.form-control
{
resize
:
vertical
}
.bs-example
>
.list-group
{
max-width
:
400px
}
.bs-example
.navbar
:last-child
{
margin-bottom
:
0
}
.bs-navbar-bottom-example
,
.bs-navbar-top-example
{
z-index
:
1
;
padding
:
0
;
overflow
:
hidden
}
.bs-navbar-bottom-example
.navbar-header
,
.bs-navbar-top-example
.navbar-header
{
margin-left
:
0
}
.bs-navbar-bottom-example
.navbar-fixed-bottom
,
.bs-navbar-top-example
.navbar-fixed-top
{
position
:
relative
;
margin-right
:
0
;
margin-left
:
0
}
.bs-navbar-top-example
{
padding-bottom
:
45px
}
.bs-navbar-top-example
:after
{
top
:
auto
;
bottom
:
15px
}
.bs-navbar-top-example
.navbar-fixed-top
{
top
:
-1px
}
.bs-navbar-bottom-example
{
padding-top
:
45px
}
.bs-navbar-bottom-example
.navbar-fixed-bottom
{
bottom
:
-1px
}
.bs-navbar-bottom-example
.navbar
{
margin-bottom
:
0
}
@media
(
min-width
:
768px
){
.bs-navbar-bottom-example
.navbar-fixed-bottom
,
.bs-navbar-top-example
.navbar-fixed-top
{
position
:
absolute
}}
.bs-example
.pagination
{
margin-top
:
10px
;
margin-bottom
:
10px
}
.bs-example
>
.pager
{
margin-top
:
0
}
.bs-example-modal
{
background-color
:
#f5f5f5
}
.bs-example-modal
.modal
{
position
:
relative
;
top
:
auto
;
right
:
auto
;
bottom
:
auto
;
left
:
auto
;
z-index
:
1
;
display
:
block
}
.bs-example-modal
.modal-dialog
{
left
:
auto
;
margin-right
:
auto
;
margin-left
:
auto
}
.bs-example
>
.dropdown
>
.dropdown-toggle
{
float
:
left
}
.bs-example
>
.dropdown
>
.dropdown-menu
{
position
:
static
;
display
:
block
;
margin-bottom
:
5px
;
clear
:
left
}
.bs-example-tabs
.nav-tabs
{
margin-bottom
:
15px
}
.bs-example-tooltips
{
text-align
:
center
}
.bs-example-tooltips
>
.btn
{
margin-top
:
5px
;
margin-bottom
:
5px
}
.bs-example-tooltip
.tooltip
{
position
:
relative
;
display
:
inline-block
;
margin
:
10px
20px
;
opacity
:
1
}
.bs-example-popover
{
padding-bottom
:
24px
;
background-color
:
#f9f9f9
}
.bs-example-popover
.popover
{
position
:
relative
;
display
:
block
;
float
:
left
;
width
:
260px
;
margin
:
20px
}
.scrollspy-example
{
position
:
relative
;
height
:
200px
;
margin-top
:
10px
;
overflow
:
auto
}
#collapseExample
.well
{
margin-bottom
:
0
}
.bs-events-table
>
tbody
>
tr
>
td
:first-child
,
.bs-events-table
>
thead
>
tr
>
th
:first-child
{
white-space
:
nowrap
}
.highlight
{
padding
:
9px
14px
;
margin-bottom
:
14px
;
background-color
:
#f7f7f9
;
border
:
1px
solid
#e1e1e8
;
border-radius
:
4px
}
.highlight
pre
{
padding
:
0
;
margin-top
:
0
;
margin-bottom
:
0
;
word-break
:
normal
;
white-space
:
nowrap
;
background-color
:
transparent
;
border
:
0
}
.highlight
pre
code
{
font-size
:
inherit
;
color
:
#333
}
.highlight
pre
code
:first-child
{
display
:
inline-block
;
padding-right
:
45px
}
.table-responsive
.highlight
pre
{
white-space
:
normal
}
.bs-table
th
small
,
.responsive-utilities
th
small
{
display
:
block
;
font-weight
:
400
;
color
:
#999
}
.responsive-utilities
tbody
th
{
font-weight
:
400
}
.responsive-utilities
td
{
text-align
:
center
}
.responsive-utilities
td
.is-visible
{
color
:
#468847
;
background-color
:
#dff0d8
!important
}
.responsive-utilities
td
.is-hidden
{
color
:
#ccc
;
background-color
:
#f9f9f9
!important
}
.responsive-utilities-test
{
margin-top
:
5px
}
.responsive-utilities-test
.col-xs-6
{
margin-bottom
:
10px
}
.responsive-utilities-test
span
{
display
:
block
;
padding
:
15px
10px
;
font-size
:
14px
;
font-weight
:
700
;
line-height
:
1.1
;
text-align
:
center
;
border-radius
:
4px
}
.hidden-on
.col-xs-6
.hidden-lg
,
.hidden-on
.col-xs-6
.hidden-md
,
.hidden-on
.col-xs-6
.hidden-sm
,
.hidden-on
.col-xs-6
.hidden-xs
,
.visible-on
.col-xs-6
.hidden-lg
,
.visible-on
.col-xs-6
.hidden-md
,
.visible-on
.col-xs-6
.hidden-sm
,
.visible-on
.col-xs-6
.hidden-xs
{
color
:
#999
;
border
:
1px
solid
#ddd
}
.hidden-on
.col-xs-6
.visible-lg-block
,
.hidden-on
.col-xs-6
.visible-md-block
,
.hidden-on
.col-xs-6
.visible-sm-block
,
.hidden-on
.col-xs-6
.visible-xs-block
,
.visible-on
.col-xs-6
.visible-lg-block
,
.visible-on
.col-xs-6
.visible-md-block
,
.visible-on
.col-xs-6
.visible-sm-block
,
.visible-on
.col-xs-6
.visible-xs-block
{
color
:
#468847
;
background-color
:
#dff0d8
;
border
:
1px
solid
#d6e9c6
}
.bs-glyphicons
{
margin
:
0
-10px
20px
;
overflow
:
hidden
}
.bs-glyphicons-list
{
padding-left
:
0
;
list-style
:
none
}
.bs-glyphicons
li
{
float
:
left
;
width
:
25%
;
height
:
115px
;
padding
:
10px
;
font-size
:
10px
;
line-height
:
1.4
;
text-align
:
center
;
background-color
:
#f9f9f9
;
border
:
1px
solid
#fff
}
.bs-glyphicons
.glyphicon
{
margin-top
:
5px
;
margin-bottom
:
10px
;
font-size
:
24px
}
.bs-glyphicons
.glyphicon-class
{
display
:
block
;
text-align
:
center
;
word-wrap
:
break-word
}
.bs-glyphicons
li
:hover
{
color
:
#fff
;
background-color
:
#563d7c
}
@media
(
min-width
:
768px
){
.bs-glyphicons
{
margin-right
:
0
;
margin-left
:
0
}
.bs-glyphicons
li
{
width
:
12.5%
;
font-size
:
12px
}}
.bs-customizer
.toggle
{
float
:
right
;
margin-top
:
25px
}
.bs-customizer
label
{
margin-top
:
10px
;
font-weight
:
500
;
color
:
#555
}
.bs-customizer
h2
{
padding-top
:
30px
;
margin-top
:
0
;
margin-bottom
:
5px
}
.bs-customizer
h3
{
margin-bottom
:
0
}
.bs-customizer
h4
{
margin-top
:
15px
;
margin-bottom
:
0
}
.bs-customizer
.bs-callout
h4
{
margin-top
:
0
;
margin-bottom
:
5px
}
.bs-customizer
input
[
type
=
text
]
{
font-family
:
Menlo
,
Monaco
,
Consolas
,
"Courier New"
,
monospace
;
background-color
:
#fafafa
}
.bs-customizer
.help-block
{
margin-bottom
:
5px
;
font-size
:
12px
}
#less-section
label
{
font-weight
:
400
}
.bs-customize-download
.btn-outline
{
padding
:
20px
}
.bs-customizer-alert
{
position
:
fixed
;
top
:
0
;
right
:
0
;
left
:
0
;
z-index
:
1030
;
padding
:
15px
0
;
color
:
#fff
;
background-color
:
#d9534f
;
border-bottom
:
1px
solid
#b94441
;
-webkit-box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
.25
);
box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
.25
)}
.bs-customizer-alert
.close
{
margin-top
:
-4px
;
font-size
:
24px
}
.bs-customizer-alert
p
{
margin-bottom
:
0
}
.bs-customizer-alert
.glyphicon
{
margin-right
:
5px
}
.bs-customizer-alert
pre
{
margin
:
10px
0
0
;
color
:
#fff
;
background-color
:
#a83c3a
;
border-color
:
#973634
;
-webkit-box-shadow
:
inset
0
2px
4px
rgba
(
0
,
0
,
0
,
.05
),
0
1px
0
rgba
(
255
,
255
,
255
,
.1
);
box-shadow
:
inset
0
2px
4px
rgba
(
0
,
0
,
0
,
.05
),
0
1px
0
rgba
(
255
,
255
,
255
,
.1
)}
.bs-dropzone
{
position
:
relative
;
padding
:
20px
;
margin-bottom
:
20px
;
color
:
#777
;
text-align
:
center
;
border
:
2px
dashed
#eee
;
border-radius
:
4px
}
.bs-dropzone
.import-header
{
margin-bottom
:
5px
}
.bs-dropzone
.glyphicon-download-alt
{
font-size
:
40px
}
.bs-dropzone
hr
{
width
:
100px
}
.bs-dropzone
.lead
{
margin-bottom
:
10px
;
font-weight
:
400
;
color
:
#333
}
#import-manual-trigger
{
cursor
:
pointer
}
.bs-dropzone
p
:last-child
{
margin-bottom
:
0
}
.bs-brand-logos
{
display
:
table
;
width
:
100%
;
margin-bottom
:
15px
;
overflow
:
hidden
;
color
:
#563d7c
;
background-color
:
#f9f9f9
;
border-radius
:
4px
}
.bs-brand-item
{
padding
:
60px
0
;
text-align
:
center
}
.bs-brand-item
+
.bs-brand-item
{
border-top
:
1px
solid
#fff
}
.bs-brand-logos
.inverse
{
color
:
#fff
;
background-color
:
#563d7c
}
.bs-brand-item
h1
,
.bs-brand-item
h3
{
margin-top
:
0
;
margin-bottom
:
0
}
.bs-brand-item
.bs-docs-booticon
{
margin-right
:
auto
;
margin-left
:
auto
}
.bs-brand-item
.glyphicon
{
width
:
30px
;
height
:
30px
;
margin
:
10px
auto
-10px
;
line-height
:
30px
;
color
:
#fff
;
border-radius
:
50%
}
.bs-brand-item
.glyphicon-ok
{
background-color
:
#5cb85c
}
.bs-brand-item
.glyphicon-remove
{
background-color
:
#d9534f
}
@media
(
min-width
:
768px
){
.bs-brand-item
{
display
:
table-cell
;
width
:
1%
}
.bs-brand-item
+
.bs-brand-item
{
border-top
:
0
;
border-left
:
1px
solid
#fff
}
.bs-brand-item
h1
{
font-size
:
60px
}}
.zero-clipboard
{
position
:
relative
;
display
:
none
}
.btn-clipboard
{
position
:
absolute
;
top
:
0
;
right
:
0
;
z-index
:
10
;
display
:
block
;
padding
:
5px
8px
;
font-size
:
12px
;
color
:
#767676
;
cursor
:
pointer
;
background-color
:
#fff
;
border
:
1px
solid
#e1e1e8
;
border-radius
:
0
4px
0
4px
}
.btn-clipboard-hover
{
color
:
#fff
;
background-color
:
#563d7c
;
border-color
:
#563d7c
}
@media
(
min-width
:
768px
){
.zero-clipboard
{
display
:
block
}
.bs-example
+
.zero-clipboard
.btn-clipboard
{
top
:
-16px
;
border-top-right-radius
:
0
}}
#focusedInput
{
border-color
:
#ccc
;
border-color
:
rgba
(
82
,
168
,
236
,
.8
);
outline
:
0
;
outline
:
thin
dotted
\
9
;
-webkit-box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
);
box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
)}
.anchorjs-link
:active
,
.anchorjs-link
:hover
,
.anchorjs-link
:link
,
.anchorjs-link
:visited
{
color
:
#563d7c
;
text-decoration
:
none
}
\ No newline at end of file
\ No newline at end of file
docs/assets/css/src/anchor.css
0 → 100644
View file @
3f512c92
/**
* Store the link icon as a base64 embedded icon font.
*/
@font-face
{
font-family
:
'anchorjs-icons'
;
src
:
url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg6v8yoAAAC8AAAAYGNtYXDL8RqdAAABHAAAADxnYXNwAAAAEAAAAVgAAAAIZ2x5Zkm2oNUAAAFgAAABWGhlYWQAHd4cAAACuAAAADZoaGVhB3sECwAAAvAAAAAkaG10eAYAAEcAAAMUAAAADGxvY2EACgCsAAADIAAAAAhtYXhwAAYAcAAAAygAAAAgbmFtZUQXtNYAAANIAAABOXBvc3QAAwAAAAAEhAAAACAAAwQAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACDmAAPA/8D/wAPAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEACgAAAAGAAQAAQACACDmAP//AAAAIOYA////4RoCAAEAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAIARwAHA7kDeQA2AG0AAAEnLgEiBg8BDgEUFh8BHgMXNy4DLwEuATQ2PwE+ATIWHwEeARQGDwEeAxU3PgE0JicBLgMnBx4DHwEeARQGDwEOASImLwEuATQ2PwEuAzUHDgEUFh8BHgEyNj8BPgE0Ji8BA7kEI1ldWiPaIyQkIwQDBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMk/r4DBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMkBCNZXVoj2iMkJCMEA3UEJCMjJNojWV1aIwQDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkj/sYDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkjBCQjIyTaI1ldWiMEAAEAAAABAABR/4xQXw889QALBAAAAAAAzqNM0wAAAADOo0zTAAAAAAO5A3kAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAABHA7kAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAgAAAAQAAEcAAAAAAAoArAABAAAAAwBuAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoAKABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoAKABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADAALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
format
(
'truetype'
),
url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAATwAAsAAAAABKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDq/zKmNtYXAAAAFoAAAAPAAAADzL8RqdZ2FzcAAAAaQAAAAIAAAACAAAABBnbHlmAAABrAAAAVgAAAFYSbag1WhlYWQAAAMEAAAANgAAADYAHd4caGhlYQAAAzwAAAAkAAAAJAd7BAtobXR4AAADYAAAAAwAAAAMBgAAR2xvY2EAAANsAAAACAAAAAgACgCsbWF4cAAAA3QAAAAgAAAAIAAGAHBuYW1lAAADlAAAATkAAAE5RBe01nBvc3QAAATQAAAAIAAAACAAAwAAAAMEAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAg5gADwP/A/8ADwABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAAoAAAABgAEAAEAAgAg5gD//wAAACDmAP///+EaAgABAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAACAEcABwO5A3kANgBtAAABJy4BIgYPAQ4BFBYfAR4DFzcuAy8BLgE0Nj8BPgEyFh8BHgEUBg8BHgMVNz4BNCYnAS4DJwceAx8BHgEUBg8BDgEiJi8BLgE0Nj8BLgM1Bw4BFBYfAR4BMjY/AT4BNCYvAQO5BCNZXVoj2iMkJCMEAwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJP6+AwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJAQjWV1aI9ojJCQjBAN1BCQjIyTaI1ldWiMEAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZI/7GAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZIwQkIyMk2iNZXVojBAABAAAAAQAAUf+MUF8PPPUACwQAAAAAAM6jTNMAAAAAzqNM0wAAAAADuQN5AAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAARwO5AAEAAAAAAAAAAAAAAAAAAAADAAAAAAIAAAAEAABHAAAAAAAKAKwAAQAAAAMAbgACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAA4ARwABAAAAAAADAA4AJAABAAAAAAAEAA4AVQABAAAAAAAFABYADgABAAAAAAAGAAcAMgABAAAAAAAKACgAYwADAAEECQABAA4AAAADAAEECQACAA4ARwADAAEECQADAA4AJAADAAEECQAEAA4AVQADAAEECQAFABYADgADAAEECQAGAA4AOQADAAEECQAKACgAYwBpAGMAbwBtAG8AbwBuAFYAZQByAHMAaQBvAG4AIAAwAC4AMABpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuAFIAZQBnAHUAbABhAHIAaQBjAG8AbQBvAG8AbgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==)
format
(
'woff'
);
font-style
:
normal
;
font-weight
:
normal
;
}
.anchorjs-icon
{
font-family
:
'anchorjs-icons'
;
font-style
:
normal
;
font-variant
:
normal
;
font-weight
:
normal
;
line-height
:
1
;
speak
:
none
;
text-transform
:
none
;
/* Better Icon Rendering */
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
}
/**
* Link placement and hover behavior.
*/
.anchorjs-link
{
opacity
:
0
;
text-decoration
:
none
;
}
*
:hover
>
.anchorjs-link
,
.anchorjs-link
:focus
{
/* To fade links as they appear, change transition-property from 'color' to 'all' */
opacity
:
1
;
-webkit-transition
:
color
.16s
linear
;
-moz-transition
:
color
.16s
linear
;
-o-transition
:
color
.16s
linear
;
transition
:
color
.16s
linear
;
}
/**
* Reasonable default styles.
* Feel free to override or replace these with your own.
*/
.anchorjs-link
:link
{
color
:
#DFD487
;
}
.anchorjs-link
:visited
{
color
:
#DFD487
;
}
.anchorjs-link
:hover
{
color
:
#EC7963
;
}
.anchorjs-link
:active
{
color
:
#EC7963
;
}
.anchorjs-icon
{
font-size
:
90%
;
padding-left
:
6px
;
}
.anchorjs-icon
:before
{
content
:
'\e600'
;
/* alternative icons -- uncomment to use */
/*
content: '#';
content: '¶';
content: '❡';
content: '§';
*/
}
docs/assets/css/src/docs.css
View file @
3f512c92
...
@@ -1578,3 +1578,12 @@ h1[id] {
...
@@ -1578,3 +1578,12 @@ h1[id] {
-webkit-box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
);
-webkit-box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
);
box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
);
box-shadow
:
0
0
8px
rgba
(
82
,
168
,
236
,
.6
);
}
}
/* AnchorJS overrides */
.anchorjs-link
:link
,
.anchorjs-link
:visited
,
.anchorjs-link
:hover
,
.anchorjs-link
:active
{
color
:
#563d7c
;
text-decoration
:
none
;
}
docs/assets/js/docs.min.js
View file @
3f512c92
...
@@ -9,7 +9,12 @@ Issues: https://github.com/imsky/holder/issues
...
@@ -9,7 +9,12 @@ Issues: https://github.com/imsky/holder/issues
License: http://opensource.org/licenses/MIT
License: http://opensource.org/licenses/MIT
*/
*/
!
function
(
a
,
b
,
c
){
b
[
a
]
=
c
}(
"
onDomReady
"
,
this
,
function
(
a
){
"
use strict
"
;
function
b
(
a
){
if
(
!
v
){
if
(
!
g
.
body
)
return
e
(
b
);
for
(
v
=!
0
;
a
=
w
.
shift
();)
e
(
a
)}}
function
c
(
a
){(
t
||
a
.
type
===
i
||
g
[
m
]
===
l
)
&&
(
d
(),
b
())}
function
d
(){
t
?(
g
[
s
](
q
,
c
,
j
),
a
[
s
](
i
,
c
,
j
)):(
g
[
o
](
r
,
c
),
a
[
o
](
k
,
c
))}
function
e
(
a
,
b
){
setTimeout
(
a
,
+
b
>=
0
?
b
:
1
)}
function
f
(
a
){
v
?
e
(
a
):
w
.
push
(
a
)}
null
==
document
.
readyState
&&
document
.
addEventListener
&&
(
document
.
addEventListener
(
"
DOMContentLoaded
"
,
function
y
(){
document
.
removeEventListener
(
"
DOMContentLoaded
"
,
y
,
!
1
),
document
.
readyState
=
"
complete
"
},
!
1
),
document
.
readyState
=
"
loading
"
);
var
g
=
a
.
document
,
h
=
g
.
documentElement
,
i
=
"
load
"
,
j
=!
1
,
k
=
"
on
"
+
i
,
l
=
"
complete
"
,
m
=
"
readyState
"
,
n
=
"
attachEvent
"
,
o
=
"
detachEvent
"
,
p
=
"
addEventListener
"
,
q
=
"
DOMContentLoaded
"
,
r
=
"
onreadystatechange
"
,
s
=
"
removeEventListener
"
,
t
=
p
in
g
,
u
=
j
,
v
=
j
,
w
=
[];
if
(
g
[
m
]
===
l
)
e
(
b
);
else
if
(
t
)
g
[
p
](
q
,
c
,
j
),
a
[
p
](
i
,
c
,
j
);
else
{
g
[
n
](
r
,
c
),
a
[
n
](
k
,
c
);
try
{
u
=
null
==
a
.
frameElement
&&
h
}
catch
(
x
){}
u
&&
u
.
doScroll
&&!
function
z
(){
if
(
!
v
){
try
{
u
.
doScroll
(
"
left
"
)}
catch
(
a
){
return
e
(
z
,
50
)}
d
(),
b
()}}()}
return
f
.
version
=
"
1.4.0
"
,
f
.
isReady
=
function
(){
return
v
},
f
}(
this
)),
document
.
querySelectorAll
||
(
document
.
querySelectorAll
=
function
(
a
){
var
b
,
c
=
document
.
createElement
(
"
style
"
),
d
=
[];
for
(
document
.
documentElement
.
firstChild
.
appendChild
(
c
),
document
.
_qsa
=
[],
c
.
styleSheet
.
cssText
=
a
+
"
{x-qsa:expression(document._qsa && document._qsa.push(this))}
"
,
window
.
scrollBy
(
0
,
0
),
c
.
parentNode
.
removeChild
(
c
);
document
.
_qsa
.
length
;)
b
=
document
.
_qsa
.
shift
(),
b
.
style
.
removeAttribute
(
"
x-qsa
"
),
d
.
push
(
b
);
return
document
.
_qsa
=
null
,
d
}),
document
.
querySelector
||
(
document
.
querySelector
=
function
(
a
){
var
b
=
document
.
querySelectorAll
(
a
);
return
b
.
length
?
b
[
0
]:
null
}),
document
.
getElementsByClassName
||
(
document
.
getElementsByClassName
=
function
(
a
){
return
a
=
String
(
a
).
replace
(
/^|
\s
+/g
,
"
.
"
),
document
.
querySelectorAll
(
a
)}),
Object
.
keys
||
(
Object
.
keys
=
function
(
a
){
if
(
a
!==
Object
(
a
))
throw
TypeError
(
"
Object.keys called on non-object
"
);
var
b
,
c
=
[];
for
(
b
in
a
)
Object
.
prototype
.
hasOwnProperty
.
call
(
a
,
b
)
&&
c
.
push
(
b
);
return
c
}),
function
(
a
){
var
b
=
"
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
"
;
a
.
atob
=
a
.
atob
||
function
(
a
){
a
=
String
(
a
);
var
c
,
d
=
0
,
e
=
[],
f
=
0
,
g
=
0
;
if
(
a
=
a
.
replace
(
/
\s
/g
,
""
),
a
.
length
%
4
===
0
&&
(
a
=
a
.
replace
(
/=+$/
,
""
)),
a
.
length
%
4
===
1
)
throw
Error
(
"
InvalidCharacterError
"
);
if
(
/
[^
+
/
0-9A-Za-z
]
/
.
test
(
a
))
throw
Error
(
"
InvalidCharacterError
"
);
for
(;
d
<
a
.
length
;)
c
=
b
.
indexOf
(
a
.
charAt
(
d
)),
f
=
f
<<
6
|
c
,
g
+=
6
,
24
===
g
&&
(
e
.
push
(
String
.
fromCharCode
(
f
>>
16
&
255
)),
e
.
push
(
String
.
fromCharCode
(
f
>>
8
&
255
)),
e
.
push
(
String
.
fromCharCode
(
255
&
f
)),
g
=
0
,
f
=
0
),
d
+=
1
;
return
12
===
g
?(
f
>>=
4
,
e
.
push
(
String
.
fromCharCode
(
255
&
f
))):
18
===
g
&&
(
f
>>=
2
,
e
.
push
(
String
.
fromCharCode
(
f
>>
8
&
255
)),
e
.
push
(
String
.
fromCharCode
(
255
&
f
))),
e
.
join
(
""
)},
a
.
btoa
=
a
.
btoa
||
function
(
a
){
a
=
String
(
a
);
var
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
=
0
,
k
=
[];
if
(
/
[^\x
00-
\x
FF
]
/
.
test
(
a
))
throw
Error
(
"
InvalidCharacterError
"
);
for
(;
j
<
a
.
length
;)
c
=
a
.
charCodeAt
(
j
++
),
d
=
a
.
charCodeAt
(
j
++
),
e
=
a
.
charCodeAt
(
j
++
),
f
=
c
>>
2
,
g
=
(
3
&
c
)
<<
4
|
d
>>
4
,
h
=
(
15
&
d
)
<<
2
|
e
>>
6
,
i
=
63
&
e
,
j
===
a
.
length
+
2
?(
h
=
64
,
i
=
64
):
j
===
a
.
length
+
1
&&
(
i
=
64
),
k
.
push
(
b
.
charAt
(
f
),
b
.
charAt
(
g
),
b
.
charAt
(
h
),
b
.
charAt
(
i
));
return
k
.
join
(
""
)}}(
this
),
function
(){
function
a
(
b
,
c
,
d
){
b
.
document
;
var
e
,
f
=
b
.
currentStyle
[
c
].
match
(
/
([\d\.]
+
)(
%|cm|em|in|mm|pc|pt|
)
/
)
||
[
0
,
0
,
""
],
g
=
f
[
1
],
h
=
f
[
2
];
return
d
=
d
?
/%|em/
.
test
(
h
)
&&
b
.
parentElement
?
a
(
b
.
parentElement
,
"
fontSize
"
,
null
):
16
:
d
,
e
=
"
fontSize
"
==
c
?
d
:
/width/i
.
test
(
c
)?
b
.
clientWidth
:
b
.
clientHeight
,
"
%
"
==
h
?
g
/
100
*
e
:
"
cm
"
==
h
?.
3937
*
g
*
96
:
"
em
"
==
h
?
g
*
d
:
"
in
"
==
h
?
96
*
g
:
"
mm
"
==
h
?.
3937
*
g
*
96
/
10
:
"
pc
"
==
h
?
12
*
g
*
96
/
72
:
"
pt
"
==
h
?
96
*
g
/
72
:
g
}
function
b
(
a
,
b
){
var
c
=
"
border
"
==
b
?
"
Width
"
:
""
,
d
=
b
+
"
Top
"
+
c
,
e
=
b
+
"
Right
"
+
c
,
f
=
b
+
"
Bottom
"
+
c
,
g
=
b
+
"
Left
"
+
c
;
a
[
b
]
=
(
a
[
d
]
==
a
[
e
]
&&
a
[
d
]
==
a
[
f
]
&&
a
[
d
]
==
a
[
g
]?[
a
[
d
]]:
a
[
d
]
==
a
[
f
]
&&
a
[
g
]
==
a
[
e
]?[
a
[
d
],
a
[
e
]]:
a
[
g
]
==
a
[
e
]?[
a
[
d
],
a
[
e
],
a
[
f
]]:[
a
[
d
],
a
[
e
],
a
[
f
],
a
[
g
]]).
join
(
"
"
)}
function
c
(
c
){
var
d
,
e
=
this
,
f
=
c
.
currentStyle
,
g
=
a
(
c
,
"
fontSize
"
),
h
=
function
(
a
){
return
"
-
"
+
a
.
toLowerCase
()};
for
(
d
in
f
)
if
(
Array
.
prototype
.
push
.
call
(
e
,
"
styleFloat
"
==
d
?
"
float
"
:
d
.
replace
(
/
[
A-Z
]
/
,
h
)),
"
width
"
==
d
)
e
[
d
]
=
c
.
offsetWidth
+
"
px
"
;
else
if
(
"
height
"
==
d
)
e
[
d
]
=
c
.
offsetHeight
+
"
px
"
;
else
if
(
"
styleFloat
"
==
d
)
e
[
"
float
"
]
=
f
[
d
];
else
if
(
/margin.|padding.|border.+W/
.
test
(
d
)
&&
"
auto
"
!=
e
[
d
])
e
[
d
]
=
Math
.
round
(
a
(
c
,
d
,
g
))
+
"
px
"
;
else
if
(
/^outline/
.
test
(
d
))
try
{
e
[
d
]
=
f
[
d
]}
catch
(
i
){
e
.
outlineColor
=
f
.
color
,
e
.
outlineStyle
=
e
.
outlineStyle
||
"
none
"
,
e
.
outlineWidth
=
e
.
outlineWidth
||
"
0px
"
,
e
.
outline
=
[
e
.
outlineColor
,
e
.
outlineWidth
,
e
.
outlineStyle
].
join
(
"
"
)}
else
e
[
d
]
=
f
[
d
];
b
(
e
,
"
margin
"
),
b
(
e
,
"
padding
"
),
b
(
e
,
"
border
"
),
e
.
fontSize
=
Math
.
round
(
g
)
+
"
px
"
}
window
.
getComputedStyle
||
(
c
.
prototype
=
{
constructor
:
c
,
getPropertyPriority
:
function
(){
throw
new
Error
(
"
NotSupportedError: DOM Exception 9
"
)},
getPropertyValue
:
function
(
a
){
var
b
=
a
.
replace
(
/-
([
a-z
])
/g
,
function
(
a
){
return
a
=
a
.
charAt
?
a
.
split
(
""
):
a
,
a
[
1
].
toUpperCase
()}),
c
=
this
[
b
];
return
c
},
item
:
function
(
a
){
return
this
[
a
]},
removeProperty
:
function
(){
throw
new
Error
(
"
NoModificationAllowedError: DOM Exception 7
"
)},
setProperty
:
function
(){
throw
new
Error
(
"
NoModificationAllowedError: DOM Exception 7
"
)},
getPropertyCSSValue
:
function
(){
throw
new
Error
(
"
NotSupportedError: DOM Exception 9
"
)}},
window
.
getComputedStyle
=
function
(
a
){
return
new
c
(
a
)})}(),
Object
.
prototype
.
hasOwnProperty
||
(
Object
.
prototype
.
hasOwnProperty
=
function
(
a
){
var
b
=
this
.
__proto__
||
this
.
constructor
.
prototype
;
return
a
in
this
&&
(
!
(
a
in
b
)
||
b
[
a
]
!==
this
[
a
])}),
function
(
a
,
b
){
a
.
augment
=
b
()}(
this
,
function
(){
"
use strict
"
;
var
a
=
function
(){},
b
=
Array
.
prototype
.
slice
,
c
=
function
(
c
,
d
){
var
e
=
a
.
prototype
=
"
function
"
==
typeof
c
?
c
.
prototype
:
c
,
f
=
new
a
,
g
=
d
.
apply
(
f
,
b
.
call
(
arguments
,
2
).
concat
(
e
));
if
(
"
object
"
==
typeof
g
)
for
(
var
h
in
g
)
f
[
h
]
=
g
[
h
];
if
(
!
f
.
hasOwnProperty
(
"
constructor
"
))
return
f
;
var
i
=
f
.
constructor
;
return
i
.
prototype
=
f
,
i
};
return
c
.
defclass
=
function
(
a
){
var
b
=
a
.
constructor
;
return
b
.
prototype
=
a
,
b
},
c
.
extend
=
function
(
a
,
b
){
return
c
(
a
,
function
(
a
){
return
this
.
uber
=
a
,
b
})},
c
}),
function
(
a
,
b
){
function
c
(
a
,
b
,
c
,
f
){
var
g
=
d
(
c
.
substr
(
c
.
lastIndexOf
(
a
.
domain
)),
a
);
g
&&
e
(
null
,
f
,
g
,
b
)}
function
d
(
a
,
b
){
for
(
var
c
=
{
theme
:
p
(
A
.
settings
.
themes
.
gray
,
null
),
stylesheets
:
b
.
stylesheets
,
holderURL
:[]},
d
=!
1
,
e
=
String
.
fromCharCode
(
11
),
f
=
a
.
replace
(
/
([^\\])\/
/g
,
"
$1
"
+
e
).
split
(
e
),
g
=
/%
[
0-9a-f
]{2}
/gi
,
h
=
f
.
length
,
i
=
0
;
h
>
i
;
i
++
){
var
j
=
f
[
i
];
if
(
j
.
match
(
g
))
try
{
j
=
decodeURIComponent
(
j
)}
catch
(
k
){
j
=
f
[
i
]}
var
l
=!
1
;
if
(
A
.
flags
.
dimensions
.
match
(
j
))
d
=!
0
,
c
.
dimensions
=
A
.
flags
.
dimensions
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
fluid
.
match
(
j
))
d
=!
0
,
c
.
dimensions
=
A
.
flags
.
fluid
.
output
(
j
),
c
.
fluid
=!
0
,
l
=!
0
;
else
if
(
A
.
flags
.
textmode
.
match
(
j
))
c
.
textmode
=
A
.
flags
.
textmode
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
colors
.
match
(
j
)){
var
m
=
A
.
flags
.
colors
.
output
(
j
);
c
.
theme
=
p
(
c
.
theme
,
m
),
l
=!
0
}
else
if
(
b
.
themes
[
j
])
b
.
themes
.
hasOwnProperty
(
j
)
&&
(
c
.
theme
=
p
(
b
.
themes
[
j
],
null
)),
l
=!
0
;
else
if
(
A
.
flags
.
font
.
match
(
j
))
c
.
font
=
A
.
flags
.
font
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
auto
.
match
(
j
))
c
.
auto
=!
0
,
l
=!
0
;
else
if
(
A
.
flags
.
text
.
match
(
j
))
c
.
text
=
A
.
flags
.
text
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
random
.
match
(
j
)){
null
==
A
.
vars
.
cache
.
themeKeys
&&
(
A
.
vars
.
cache
.
themeKeys
=
Object
.
keys
(
b
.
themes
));
var
n
=
A
.
vars
.
cache
.
themeKeys
[
0
|
Math
.
random
()
*
A
.
vars
.
cache
.
themeKeys
.
length
];
c
.
theme
=
p
(
b
.
themes
[
n
],
null
),
l
=!
0
}
l
&&
c
.
holderURL
.
push
(
j
)}
return
c
.
holderURL
.
unshift
(
b
.
domain
),
c
.
holderURL
=
c
.
holderURL
.
join
(
"
/
"
),
d
?
c
:
!
1
}
function
e
(
a
,
b
,
c
,
d
){
var
e
=
c
.
dimensions
,
g
=
c
.
theme
,
h
=
e
.
width
+
"
x
"
+
e
.
height
;
if
(
a
=
null
==
a
?
c
.
fluid
?
"
fluid
"
:
"
image
"
:
a
,
null
!=
c
.
text
&&
(
g
.
text
=
c
.
text
,
"
object
"
===
b
.
nodeName
.
toLowerCase
())){
for
(
var
j
=
g
.
text
.
split
(
"
\\
n
"
),
l
=
0
;
l
<
j
.
length
;
l
++
)
j
[
l
]
=
v
(
j
[
l
]);
g
.
text
=
j
.
join
(
"
\\
n
"
)}
var
n
=
c
.
holderURL
,
o
=
p
(
d
,
null
);
c
.
font
&&
(
g
.
font
=
c
.
font
,
!
o
.
noFontFallback
&&
"
img
"
===
b
.
nodeName
.
toLowerCase
()
&&
A
.
setup
.
supportsCanvas
&&
"
svg
"
===
o
.
renderer
&&
(
o
=
p
(
o
,{
renderer
:
"
canvas
"
}))),
c
.
font
&&
"
canvas
"
==
o
.
renderer
&&
(
o
.
reRender
=!
0
),
"
background
"
==
a
?
null
==
b
.
getAttribute
(
"
data-background-src
"
)
&&
m
(
b
,{
"
data-background-src
"
:
n
}):
m
(
b
,{
"
data-src
"
:
n
}),
c
.
theme
=
g
,
b
.
holderData
=
{
flags
:
c
,
renderSettings
:
o
},(
"
image
"
==
a
||
"
fluid
"
==
a
)
&&
m
(
b
,{
alt
:
g
.
text
?(
g
.
text
.
length
>
16
?
g
.
text
.
substring
(
0
,
16
)
+
"
…
"
:
g
.
text
)
+
"
[
"
+
h
+
"
]
"
:
h
}),
"
image
"
==
a
?(
"
html
"
!=
o
.
renderer
&&
c
.
auto
||
(
b
.
style
.
width
=
e
.
width
+
"
px
"
,
b
.
style
.
height
=
e
.
height
+
"
px
"
),
"
html
"
==
o
.
renderer
?
b
.
style
.
backgroundColor
=
g
.
background
:(
f
(
a
,{
dimensions
:
e
,
theme
:
g
,
flags
:
c
},
b
,
o
),
c
.
textmode
&&
"
exact
"
==
c
.
textmode
&&
(
A
.
vars
.
resizableImages
.
push
(
b
),
i
(
b
)))):
"
background
"
==
a
&&
"
html
"
!=
o
.
renderer
?
f
(
a
,{
dimensions
:
e
,
theme
:
g
,
flags
:
c
},
b
,
o
):
"
fluid
"
==
a
&&
(
"
%
"
==
e
.
height
.
slice
(
-
1
)?
b
.
style
.
height
=
e
.
height
:
null
!=
c
.
auto
&&
c
.
auto
||
(
b
.
style
.
height
=
e
.
height
+
"
px
"
),
"
%
"
==
e
.
width
.
slice
(
-
1
)?
b
.
style
.
width
=
e
.
width
:
null
!=
c
.
auto
&&
c
.
auto
||
(
b
.
style
.
width
=
e
.
width
+
"
px
"
),(
"
inline
"
==
b
.
style
.
display
||
""
===
b
.
style
.
display
||
"
none
"
==
b
.
style
.
display
)
&&
(
b
.
style
.
display
=
"
block
"
),
k
(
b
),
"
html
"
==
o
.
renderer
?
b
.
style
.
backgroundColor
=
g
.
background
:(
A
.
vars
.
resizableImages
.
push
(
b
),
i
(
b
)))}
function
f
(
a
,
b
,
c
,
d
){
function
e
(){
var
a
=
null
;
switch
(
d
.
renderer
){
case
"
canvas
"
:
a
=
C
(
i
);
break
;
case
"
svg
"
:
a
=
D
(
i
,
d
);
break
;
default
:
throw
"
Holder: invalid renderer:
"
+
d
.
renderer
}
return
a
}
var
f
=
null
;
switch
(
d
.
renderer
){
case
"
svg
"
:
if
(
!
A
.
setup
.
supportsSVG
)
return
;
break
;
case
"
canvas
"
:
if
(
!
A
.
setup
.
supportsCanvas
)
return
;
break
;
default
:
return
}
var
h
=
{
width
:
b
.
dimensions
.
width
,
height
:
b
.
dimensions
.
height
,
theme
:
b
.
theme
,
flags
:
b
.
flags
},
i
=
g
(
h
);
if
({
text
:
h
.
text
,
width
:
h
.
width
,
height
:
h
.
height
,
textHeight
:
h
.
font
.
size
,
font
:
h
.
font
.
family
,
fontWeight
:
h
.
font
.
weight
,
template
:
h
.
theme
},
f
=
e
(),
null
==
f
)
throw
"
Holder: couldn't render placeholder
"
;
"
background
"
==
a
?(
c
.
style
.
backgroundImage
=
"
url(
"
+
f
+
"
)
"
,
c
.
style
.
backgroundSize
=
h
.
width
+
"
px
"
+
h
.
height
+
"
px
"
):(
"
img
"
===
c
.
nodeName
.
toLowerCase
()?
m
(
c
,{
src
:
f
}):
"
object
"
===
c
.
nodeName
.
toLowerCase
()
&&
(
m
(
c
,{
data
:
f
}),
m
(
c
,{
type
:
"
image/svg+xml
"
})),
d
.
reRender
&&
setTimeout
(
function
(){
var
a
=
e
();
if
(
null
==
a
)
throw
"
Holder: couldn't render placeholder
"
;
"
img
"
===
c
.
nodeName
.
toLowerCase
()?
m
(
c
,{
src
:
a
}):
"
object
"
===
c
.
nodeName
.
toLowerCase
()
&&
(
m
(
c
,{
data
:
a
}),
m
(
c
,{
type
:
"
image/svg+xml
"
}))},
100
)),
m
(
c
,{
"
data-holder-rendered
"
:
!
0
})}
function
g
(
a
){
function
b
(
a
,
b
,
c
,
d
){
b
.
width
=
c
,
b
.
height
=
d
,
a
.
width
=
Math
.
max
(
a
.
width
,
b
.
width
),
a
.
height
+=
b
.
height
,
a
.
add
(
b
)}
switch
(
a
.
font
=
{
family
:
a
.
theme
.
font
?
a
.
theme
.
font
:
"
Arial, Helvetica, Open Sans, sans-serif
"
,
size
:
h
(
a
.
width
,
a
.
height
,
a
.
theme
.
size
?
a
.
theme
.
size
:
A
.
defaults
.
size
),
units
:
a
.
theme
.
units
?
a
.
theme
.
units
:
A
.
defaults
.
units
,
weight
:
a
.
theme
.
fontweight
?
a
.
theme
.
fontweight
:
"
bold
"
},
a
.
text
=
a
.
theme
.
text
?
a
.
theme
.
text
:
Math
.
floor
(
a
.
width
)
+
"
x
"
+
Math
.
floor
(
a
.
height
),
a
.
flags
.
textmode
){
case
"
literal
"
:
a
.
text
=
a
.
flags
.
dimensions
.
width
+
"
x
"
+
a
.
flags
.
dimensions
.
height
;
break
;
case
"
exact
"
:
if
(
!
a
.
flags
.
exactDimensions
)
break
;
a
.
text
=
Math
.
floor
(
a
.
flags
.
exactDimensions
.
width
)
+
"
x
"
+
Math
.
floor
(
a
.
flags
.
exactDimensions
.
height
)}
var
c
=
new
E
({
width
:
a
.
width
,
height
:
a
.
height
}),
d
=
c
.
Shape
,
e
=
new
d
.
Rect
(
"
holderBg
"
,{
fill
:
a
.
theme
.
background
});
e
.
resize
(
a
.
width
,
a
.
height
),
c
.
root
.
add
(
e
);
var
f
=
new
d
.
Group
(
"
holderTextGroup
"
,{
text
:
a
.
text
,
align
:
"
center
"
,
font
:
a
.
font
,
fill
:
a
.
theme
.
foreground
});
f
.
moveTo
(
null
,
null
,
1
),
c
.
root
.
add
(
f
);
var
g
=
f
.
textPositionData
=
B
(
c
);
if
(
!
g
)
throw
"
Holder: staging fallback not supported yet.
"
;
f
.
properties
.
leading
=
g
.
boundingBox
.
height
;
var
i
=
null
,
j
=
null
;
if
(
g
.
lineCount
>
1
){
var
k
=
0
,
l
=
0
,
m
=
a
.
width
*
A
.
setup
.
lineWrapRatio
,
n
=
0
;
j
=
new
d
.
Group
(
"
line
"
+
n
);
for
(
var
o
=
0
;
o
<
g
.
words
.
length
;
o
++
){
var
p
=
g
.
words
[
o
];
i
=
new
d
.
Text
(
p
.
text
);
var
q
=
"
\\
n
"
==
p
.
text
;(
k
+
p
.
width
>=
m
||
q
===!
0
)
&&
(
b
(
f
,
j
,
k
,
f
.
properties
.
leading
),
k
=
0
,
l
+=
f
.
properties
.
leading
,
n
+=
1
,
j
=
new
d
.
Group
(
"
line
"
+
n
),
j
.
y
=
l
),
q
!==!
0
&&
(
i
.
moveTo
(
k
,
0
),
k
+=
g
.
spaceWidth
+
p
.
width
,
j
.
add
(
i
))}
b
(
f
,
j
,
k
,
f
.
properties
.
leading
);
for
(
var
r
in
f
.
children
)
j
=
f
.
children
[
r
],
j
.
moveTo
((
f
.
width
-
j
.
width
)
/
2
,
null
,
null
);
f
.
moveTo
((
a
.
width
-
f
.
width
)
/
2
,(
a
.
height
-
f
.
height
)
/
2
,
null
),(
a
.
height
-
f
.
height
)
/
2
<
0
&&
f
.
moveTo
(
null
,
0
,
null
)}
else
i
=
new
d
.
Text
(
a
.
text
),
j
=
new
d
.
Group
(
"
line0
"
),
j
.
add
(
i
),
f
.
add
(
j
),
f
.
moveTo
((
a
.
width
-
g
.
boundingBox
.
width
)
/
2
,(
a
.
height
-
g
.
boundingBox
.
height
)
/
2
,
null
);
return
c
}
function
h
(
a
,
b
,
c
){
b
=
parseInt
(
b
,
10
),
a
=
parseInt
(
a
,
10
);
var
d
=
Math
.
max
(
b
,
a
),
e
=
Math
.
min
(
b
,
a
),
f
=
A
.
defaults
.
scale
,
g
=
Math
.
min
(.
75
*
e
,.
75
*
d
*
f
);
return
Math
.
round
(
Math
.
max
(
c
,
g
))}
function
i
(
a
){
var
b
;
b
=
null
==
a
||
null
==
a
.
nodeType
?
A
.
vars
.
resizableImages
:[
a
];
for
(
var
c
in
b
)
if
(
b
.
hasOwnProperty
(
c
)){
var
d
=
b
[
c
];
if
(
d
.
holderData
){
var
e
=
d
.
holderData
.
flags
,
g
=
j
(
d
,
z
.
invisibleErrorFn
(
i
));
if
(
g
){
if
(
e
.
fluid
&&
e
.
auto
){
var
h
=
d
.
holderData
.
fluidConfig
;
switch
(
h
.
mode
){
case
"
width
"
:
g
.
height
=
g
.
width
/
h
.
ratio
;
break
;
case
"
height
"
:
g
.
width
=
g
.
height
*
h
.
ratio
}}
var
k
=
{
dimensions
:
g
,
theme
:
e
.
theme
,
flags
:
e
};
e
.
textmode
&&
"
exact
"
==
e
.
textmode
&&
(
e
.
exactDimensions
=
g
,
k
.
dimensions
=
e
.
dimensions
),
f
(
"
image
"
,
k
,
d
,
d
.
holderData
.
renderSettings
)}}}}
function
j
(
a
,
b
){
var
c
=
{
height
:
a
.
clientHeight
,
width
:
a
.
clientWidth
};
return
c
.
height
||
c
.
width
?(
a
.
removeAttribute
(
"
data-holder-invisible
"
),
c
):(
m
(
a
,{
"
data-holder-invisible
"
:
!
0
}),
void
b
.
call
(
this
,
a
))}
function
k
(
a
){
if
(
a
.
holderData
){
var
b
=
j
(
a
,
z
.
invisibleErrorFn
(
k
));
if
(
b
){
var
c
=
a
.
holderData
.
flags
,
d
=
{
fluidHeight
:
"
%
"
==
c
.
dimensions
.
height
.
slice
(
-
1
),
fluidWidth
:
"
%
"
==
c
.
dimensions
.
width
.
slice
(
-
1
),
mode
:
null
,
initialDimensions
:
b
};
d
.
fluidWidth
&&!
d
.
fluidHeight
?(
d
.
mode
=
"
width
"
,
d
.
ratio
=
d
.
initialDimensions
.
width
/
parseFloat
(
c
.
dimensions
.
height
)):
!
d
.
fluidWidth
&&
d
.
fluidHeight
&&
(
d
.
mode
=
"
height
"
,
d
.
ratio
=
parseFloat
(
c
.
dimensions
.
width
)
/
d
.
initialDimensions
.
height
),
a
.
holderData
.
fluidConfig
=
d
}}}
function
l
(
a
,
b
){
return
null
==
b
?
y
.
createElement
(
a
):
y
.
createElementNS
(
b
,
a
)}
function
m
(
a
,
b
){
for
(
var
c
in
b
)
a
.
setAttribute
(
c
,
b
[
c
])}
function
n
(
a
,
b
,
c
){
if
(
null
==
a
){
a
=
l
(
"
svg
"
,
x
);
var
d
=
l
(
"
defs
"
,
x
);
a
.
appendChild
(
d
)}
return
a
.
webkitMatchesSelector
&&
a
.
setAttribute
(
"
xmlns
"
,
x
),
m
(
a
,{
width
:
b
,
height
:
c
,
viewBox
:
"
0 0
"
+
b
+
"
"
+
c
,
preserveAspectRatio
:
"
none
"
}),
a
}
function
o
(
a
,
c
){
if
(
b
.
XMLSerializer
){
var
d
=
new
XMLSerializer
,
e
=
""
,
f
=
c
.
stylesheets
;
if
(
a
.
querySelector
(
"
defs
"
),
c
.
svgXMLStylesheet
){
for
(
var
g
=
(
new
DOMParser
).
parseFromString
(
"
<xml />
"
,
"
application/xml
"
),
h
=
f
.
length
-
1
;
h
>=
0
;
h
--
){
var
i
=
g
.
createProcessingInstruction
(
"
xml-stylesheet
"
,
'
href="
'
+
f
[
h
]
+
'
" rel="stylesheet"
'
);
g
.
insertBefore
(
i
,
g
.
firstChild
)}
var
j
=
g
.
createProcessingInstruction
(
"
xml
"
,
'
version="1.0" encoding="UTF-8" standalone="yes"
'
);
g
.
insertBefore
(
j
,
g
.
firstChild
),
g
.
removeChild
(
g
.
documentElement
),
e
=
d
.
serializeToString
(
g
)}
var
k
=
d
.
serializeToString
(
a
);
return
k
=
k
.
replace
(
/
\&
amp;
(\#[
0-9
]{2,}\;)
/g
,
"
&$1
"
),
e
+
k
}}
function
p
(
a
,
b
){
var
c
=
{};
for
(
var
d
in
a
)
a
.
hasOwnProperty
(
d
)
&&
(
c
[
d
]
=
a
[
d
]);
if
(
null
!=
b
)
for
(
var
e
in
b
)
b
.
hasOwnProperty
(
e
)
&&
(
c
[
e
]
=
b
[
e
]);
return
c
}
function
q
(
a
){
var
b
=
[];
for
(
var
c
in
a
)
a
.
hasOwnProperty
(
c
)
&&
b
.
push
(
c
+
"
:
"
+
a
[
c
]);
return
b
.
join
(
"
;
"
)}
function
r
(
a
){
A
.
vars
.
debounceTimer
||
a
.
call
(
this
),
A
.
vars
.
debounceTimer
&&
clearTimeout
(
A
.
vars
.
debounceTimer
),
A
.
vars
.
debounceTimer
=
setTimeout
(
function
(){
A
.
vars
.
debounceTimer
=
null
,
a
.
call
(
this
)},
A
.
setup
.
debounce
)}
function
s
(){
r
(
function
(){
i
(
null
)})}
function
t
(
a
){
var
c
=
null
;
return
"
string
"
==
typeof
a
?
c
=
y
.
querySelectorAll
(
a
):
b
.
NodeList
&&
a
instanceof
b
.
NodeList
?
c
=
a
:
b
.
Node
&&
a
instanceof
b
.
Node
?
c
=
[
a
]:
b
.
HTMLCollection
&&
a
instanceof
b
.
HTMLCollection
?
c
=
a
:
null
===
a
&&
(
c
=
[]),
c
}
function
u
(
a
,
b
){
var
c
=
new
Image
;
c
.
onerror
=
function
(){
b
.
call
(
this
,
!
1
)},
c
.
onload
=
function
(){
b
.
call
(
this
,
!
0
)},
c
.
src
=
a
}
function
v
(
a
){
for
(
var
b
=
[],
c
=
0
,
d
=
a
.
length
-
1
;
d
>=
0
;
d
--
)
c
=
a
.
charCodeAt
(
d
),
b
.
unshift
(
c
>
128
?[
"
&#
"
,
c
,
"
;
"
].
join
(
""
):
a
[
d
]);
return
b
.
join
(
""
)}
function
w
(
a
){
return
a
.
replace
(
/&#
(\d
+
)
;/g
,
function
(
a
,
b
){
return
String
.
fromCharCode
(
b
)})}
var
x
=
"
http://www.w3.org/2000/svg
"
,
y
=
b
.
document
,
z
=
{
addTheme
:
function
(
a
,
b
){
return
null
!=
a
&&
null
!=
b
&&
(
A
.
settings
.
themes
[
a
]
=
b
),
delete
A
.
vars
.
cache
.
themeKeys
,
this
},
addImage
:
function
(
a
,
b
){
var
c
=
y
.
querySelectorAll
(
b
);
if
(
c
.
length
)
for
(
var
d
=
0
,
e
=
c
.
length
;
e
>
d
;
d
++
){
var
f
=
l
(
"
img
"
);
m
(
f
,{
"
data-src
"
:
a
}),
c
[
d
].
appendChild
(
f
)}
return
this
},
run
:
function
(
a
){
a
=
a
||
{};
var
f
=
{};
A
.
vars
.
preempted
=!
0
;
var
g
=
p
(
A
.
settings
,
a
);
f
.
renderer
=
g
.
renderer
?
g
.
renderer
:
A
.
setup
.
renderer
,
-
1
===
A
.
setup
.
renderers
.
join
(
"
,
"
).
indexOf
(
f
.
renderer
)
&&
(
f
.
renderer
=
A
.
setup
.
supportsSVG
?
"
svg
"
:
A
.
setup
.
supportsCanvas
?
"
canvas
"
:
"
html
"
),
g
.
use_canvas
?
f
.
renderer
=
"
canvas
"
:
g
.
use_svg
&&
(
f
.
renderer
=
"
svg
"
);
var
h
=
t
(
g
.
images
),
i
=
t
(
g
.
bgnodes
),
j
=
t
(
g
.
stylenodes
),
k
=
t
(
g
.
objects
);
f
.
stylesheets
=
[],
f
.
svgXMLStylesheet
=!
0
,
f
.
noFontFallback
=
g
.
noFontFallback
?
g
.
noFontFallback
:
!
1
;
for
(
var
m
=
0
;
m
<
j
.
length
;
m
++
){
var
n
=
j
[
m
];
if
(
n
.
attributes
.
rel
&&
n
.
attributes
.
href
&&
"
stylesheet
"
==
n
.
attributes
.
rel
.
value
){
var
o
=
n
.
attributes
.
href
.
value
,
q
=
l
(
"
a
"
);
q
.
href
=
o
;
var
r
=
q
.
protocol
+
"
//
"
+
q
.
host
+
q
.
pathname
+
q
.
search
;
f
.
stylesheets
.
push
(
r
)}}
for
(
m
=
0
;
m
<
i
.
length
;
m
++
){
var
s
=
b
.
getComputedStyle
(
i
[
m
],
null
).
getPropertyValue
(
"
background-image
"
),
v
=
i
[
m
].
getAttribute
(
"
data-background-src
"
),
w
=
null
;
w
=
null
==
v
?
s
:
v
;
var
x
=
null
,
y
=
"
?
"
+
g
.
domain
+
"
/
"
;
if
(
0
===
w
.
indexOf
(
y
))
x
=
w
.
slice
(
1
);
else
if
(
-
1
!=
w
.
indexOf
(
y
)){
var
z
=
w
.
substr
(
w
.
indexOf
(
y
)).
slice
(
1
),
B
=
z
.
match
(
/
([^\"]
*
)
"
?\)
/
);
null
!=
B
&&
(
x
=
B
[
1
])}
if
(
null
!=
x
){
var
C
=
d
(
x
,
g
);
C
&&
e
(
"
background
"
,
i
[
m
],
C
,
f
)}}
for
(
m
=
0
;
m
<
k
.
length
;
m
++
){
var
D
=
k
[
m
],
E
=
{};
try
{
E
.
data
=
D
.
getAttribute
(
"
data
"
),
E
.
dataSrc
=
D
.
getAttribute
(
"
data-src
"
)}
catch
(
F
){}
var
G
=
null
!=
E
.
data
&&
0
===
E
.
data
.
indexOf
(
g
.
domain
),
H
=
null
!=
E
.
dataSrc
&&
0
===
E
.
dataSrc
.
indexOf
(
g
.
domain
);
G
?
c
(
g
,
f
,
E
.
data
,
D
):
H
&&
c
(
g
,
f
,
E
.
dataSrc
,
D
)}
for
(
m
=
0
;
m
<
h
.
length
;
m
++
){
var
I
=
h
[
m
],
J
=
{};
try
{
J
.
src
=
I
.
getAttribute
(
"
src
"
),
J
.
dataSrc
=
I
.
getAttribute
(
"
data-src
"
),
J
.
rendered
=
I
.
getAttribute
(
"
data-holder-rendered
"
)}
catch
(
F
){}
var
K
=
null
!=
J
.
src
,
L
=
null
!=
J
.
dataSrc
&&
0
===
J
.
dataSrc
.
indexOf
(
g
.
domain
),
M
=
null
!=
J
.
rendered
&&
"
true
"
==
J
.
rendered
;
K
?
0
===
J
.
src
.
indexOf
(
g
.
domain
)?
c
(
g
,
f
,
J
.
src
,
I
):
L
&&
(
M
?
c
(
g
,
f
,
J
.
dataSrc
,
I
):
!
function
(
a
,
b
,
d
,
e
,
f
){
u
(
a
,
function
(
a
){
a
||
c
(
b
,
d
,
e
,
f
)})}(
J
.
src
,
g
,
f
,
J
.
dataSrc
,
I
)):
L
&&
c
(
g
,
f
,
J
.
dataSrc
,
I
)}
return
this
},
invisibleErrorFn
:
function
(){
return
function
(
a
){
if
(
a
.
hasAttribute
(
"
data-holder-invisible
"
))
throw
"
Holder: invisible placeholder
"
}}};
z
.
add_theme
=
z
.
addTheme
,
z
.
add_image
=
z
.
addImage
,
z
.
invisible_error_fn
=
z
.
invisibleErrorFn
;
var
A
=
{
settings
:{
domain
:
"
holder.js
"
,
images
:
"
img
"
,
objects
:
"
object
"
,
bgnodes
:
"
body .holderjs
"
,
stylenodes
:
"
head link.holderjs
"
,
stylesheets
:[],
themes
:{
gray
:{
background
:
"
#EEEEEE
"
,
foreground
:
"
#AAAAAA
"
},
social
:{
background
:
"
#3a5a97
"
,
foreground
:
"
#FFFFFF
"
},
industrial
:{
background
:
"
#434A52
"
,
foreground
:
"
#C2F200
"
},
sky
:{
background
:
"
#0D8FDB
"
,
foreground
:
"
#FFFFFF
"
},
vine
:{
background
:
"
#39DBAC
"
,
foreground
:
"
#1E292C
"
},
lava
:{
background
:
"
#F8591A
"
,
foreground
:
"
#1C2846
"
}}},
defaults
:{
size
:
10
,
units
:
"
pt
"
,
scale
:
1
/
16
},
flags
:{
dimensions
:{
regex
:
/^
(\d
+
)
x
(\d
+
)
$/
,
output
:
function
(
a
){
var
b
=
this
.
regex
.
exec
(
a
);
return
{
width
:
+
b
[
1
],
height
:
+
b
[
2
]}}},
fluid
:{
regex
:
/^
([
0-9
]
+%
?)
x
([
0-9
]
+%
?)
$/
,
output
:
function
(
a
){
var
b
=
this
.
regex
.
exec
(
a
);
return
{
width
:
b
[
1
],
height
:
b
[
2
]}}},
colors
:{
regex
:
/
(?:
#|
\^)([
0-9a-f
]{3,})\:(?:
#|
\^)([
0-9a-f
]{3,})
/i
,
output
:
function
(
a
){
var
b
=
this
.
regex
.
exec
(
a
);
return
{
foreground
:
"
#
"
+
b
[
2
],
background
:
"
#
"
+
b
[
1
]}}},
text
:{
regex
:
/text
\:(
.*
)
/
,
output
:
function
(
a
){
return
this
.
regex
.
exec
(
a
)[
1
].
replace
(
"
\\
/
"
,
"
/
"
)}},
font
:{
regex
:
/font
\:(
.*
)
/
,
output
:
function
(
a
){
return
this
.
regex
.
exec
(
a
)[
1
]}},
auto
:{
regex
:
/^auto$/
},
textmode
:{
regex
:
/textmode
\:(
.*
)
/
,
output
:
function
(
a
){
return
this
.
regex
.
exec
(
a
)[
1
]}},
random
:{
regex
:
/^random$/
}}},
B
=
function
(){
var
a
=
null
,
b
=
null
,
c
=
null
;
return
function
(
d
){
var
e
=
d
.
root
;
if
(
A
.
setup
.
supportsSVG
){
var
f
=!
1
,
g
=
function
(
a
){
return
y
.
createTextNode
(
a
)};
null
==
a
&&
(
f
=!
0
),
a
=
n
(
a
,
e
.
properties
.
width
,
e
.
properties
.
height
),
f
&&
(
b
=
l
(
"
text
"
,
x
),
c
=
g
(
null
),
m
(
b
,{
x
:
0
}),
b
.
appendChild
(
c
),
a
.
appendChild
(
b
),
y
.
body
.
appendChild
(
a
),
a
.
style
.
visibility
=
"
hidden
"
,
a
.
style
.
position
=
"
absolute
"
,
a
.
style
.
top
=
"
-100%
"
,
a
.
style
.
left
=
"
-100%
"
);
var
h
=
e
.
children
.
holderTextGroup
,
i
=
h
.
properties
;
m
(
b
,{
y
:
i
.
font
.
size
,
style
:
q
({
"
font-weight
"
:
i
.
font
.
weight
,
"
font-size
"
:
i
.
font
.
size
+
i
.
font
.
units
,
"
font-family
"
:
i
.
font
.
family
,
"
dominant-baseline
"
:
"
middle
"
})}),
c
.
nodeValue
=
i
.
text
;
var
j
=
b
.
getBBox
(),
k
=
Math
.
ceil
(
j
.
width
/
(
e
.
properties
.
width
*
A
.
setup
.
lineWrapRatio
)),
o
=
i
.
text
.
split
(
"
"
),
p
=
i
.
text
.
match
(
/
\\
n/g
);
k
+=
null
==
p
?
0
:
p
.
length
,
c
.
nodeValue
=
i
.
text
.
replace
(
/
[
]
+/g
,
""
);
var
r
=
b
.
getComputedTextLength
(),
s
=
j
.
width
-
r
,
t
=
Math
.
round
(
s
/
Math
.
max
(
1
,
o
.
length
-
1
)),
u
=
[];
if
(
k
>
1
){
c
.
nodeValue
=
""
;
for
(
var
v
=
0
;
v
<
o
.
length
;
v
++
)
if
(
0
!==
o
[
v
].
length
){
c
.
nodeValue
=
w
(
o
[
v
]);
var
z
=
b
.
getBBox
();
u
.
push
({
text
:
o
[
v
],
width
:
z
.
width
})}}
return
{
spaceWidth
:
t
,
lineCount
:
k
,
boundingBox
:
j
,
words
:
u
}}
return
!
1
}}(),
C
=
function
(){
var
a
=
l
(
"
canvas
"
),
b
=
null
;
return
function
(
c
){
null
==
b
&&
(
b
=
a
.
getContext
(
"
2d
"
));
var
d
=
c
.
root
;
a
.
width
=
A
.
dpr
(
d
.
properties
.
width
),
a
.
height
=
A
.
dpr
(
d
.
properties
.
height
),
b
.
textBaseline
=
"
middle
"
,
b
.
fillStyle
=
d
.
children
.
holderBg
.
properties
.
fill
,
b
.
fillRect
(
0
,
0
,
A
.
dpr
(
d
.
children
.
holderBg
.
width
),
A
.
dpr
(
d
.
children
.
holderBg
.
height
));
var
e
=
d
.
children
.
holderTextGroup
;
e
.
properties
,
b
.
font
=
e
.
properties
.
font
.
weight
+
"
"
+
A
.
dpr
(
e
.
properties
.
font
.
size
)
+
e
.
properties
.
font
.
units
+
"
"
+
e
.
properties
.
font
.
family
+
"
, monospace
"
,
b
.
fillStyle
=
e
.
properties
.
fill
;
for
(
var
f
in
e
.
children
){
var
g
=
e
.
children
[
f
];
for
(
var
h
in
g
.
children
){
var
i
=
g
.
children
[
h
],
j
=
A
.
dpr
(
e
.
x
+
g
.
x
+
i
.
x
),
k
=
A
.
dpr
(
e
.
y
+
g
.
y
+
i
.
y
+
e
.
properties
.
leading
/
2
);
b
.
fillText
(
i
.
properties
.
text
,
j
,
k
)}}
return
a
.
toDataURL
(
"
image/png
"
)}}(),
D
=
function
(){
if
(
b
.
XMLSerializer
){
var
a
=
n
(
null
,
0
,
0
),
c
=
l
(
"
rect
"
,
x
);
return
a
.
appendChild
(
c
),
function
(
b
,
d
){
var
e
=
b
.
root
;
n
(
a
,
e
.
properties
.
width
,
e
.
properties
.
height
);
for
(
var
f
=
a
.
querySelectorAll
(
"
g
"
),
g
=
0
;
g
<
f
.
length
;
g
++
)
f
[
g
].
parentNode
.
removeChild
(
f
[
g
]);
m
(
c
,{
width
:
e
.
children
.
holderBg
.
width
,
height
:
e
.
children
.
holderBg
.
height
,
fill
:
e
.
children
.
holderBg
.
properties
.
fill
});
var
h
=
e
.
children
.
holderTextGroup
,
i
=
h
.
properties
,
j
=
l
(
"
g
"
,
x
);
a
.
appendChild
(
j
);
for
(
var
k
in
h
.
children
){
var
p
=
h
.
children
[
k
];
for
(
var
r
in
p
.
children
){
var
s
=
p
.
children
[
r
],
t
=
h
.
x
+
p
.
x
+
s
.
x
,
u
=
h
.
y
+
p
.
y
+
s
.
y
+
h
.
properties
.
leading
/
2
,
v
=
l
(
"
text
"
,
x
),
w
=
y
.
createTextNode
(
null
);
m
(
v
,{
x
:
t
,
y
:
u
,
style
:
q
({
fill
:
i
.
fill
,
"
font-weight
"
:
i
.
font
.
weight
,
"
font-family
"
:
i
.
font
.
family
+
"
, monospace
"
,
"
font-size
"
:
i
.
font
.
size
+
i
.
font
.
units
,
"
dominant-baseline
"
:
"
central
"
})}),
w
.
nodeValue
=
s
.
properties
.
text
,
v
.
appendChild
(
w
),
j
.
appendChild
(
v
)}}
var
z
=
"
data:image/svg+xml;base64,
"
+
btoa
(
unescape
(
encodeURIComponent
(
o
(
a
,
d
))));
return
z
}}}(),
E
=
function
(
a
){
function
b
(
a
,
b
){
for
(
var
c
in
b
)
a
[
c
]
=
b
[
c
];
return
a
}
var
c
=
1
,
d
=
augment
.
defclass
({
constructor
:
function
(
a
){
c
++
,
this
.
parent
=
null
,
this
.
children
=
{},
this
.
id
=
c
,
this
.
name
=
"
n
"
+
c
,
null
!=
a
&&
(
this
.
name
=
a
),
this
.
x
=
0
,
this
.
y
=
0
,
this
.
z
=
0
,
this
.
width
=
0
,
this
.
height
=
0
},
resize
:
function
(
a
,
b
){
null
!=
a
&&
(
this
.
width
=
a
),
null
!=
b
&&
(
this
.
height
=
b
)},
moveTo
:
function
(
a
,
b
,
c
){
this
.
x
=
null
!=
a
?
a
:
this
.
x
,
this
.
y
=
null
!=
b
?
b
:
this
.
y
,
this
.
z
=
null
!=
c
?
c
:
this
.
z
},
add
:
function
(
a
){
var
b
=
a
.
name
;
if
(
null
!=
this
.
children
[
b
])
throw
"
SceneGraph: child with that name already exists:
"
+
b
;
this
.
children
[
b
]
=
a
,
a
.
parent
=
this
}}),
e
=
augment
(
d
,
function
(
b
){
this
.
constructor
=
function
(){
b
.
constructor
.
call
(
this
,
"
root
"
),
this
.
properties
=
a
}}),
f
=
augment
(
d
,
function
(
a
){
function
c
(
c
,
d
){
if
(
a
.
constructor
.
call
(
this
,
c
),
this
.
properties
=
{
fill
:
"
#000
"
},
null
!=
d
)
b
(
this
.
properties
,
d
);
else
if
(
null
!=
c
&&
"
string
"
!=
typeof
c
)
throw
"
SceneGraph: invalid node name
"
}
this
.
Group
=
augment
.
extend
(
this
,{
constructor
:
c
,
type
:
"
group
"
}),
this
.
Rect
=
augment
.
extend
(
this
,{
constructor
:
c
,
type
:
"
rect
"
}),
this
.
Text
=
augment
.
extend
(
this
,{
constructor
:
function
(
a
){
c
.
call
(
this
),
this
.
properties
.
text
=
a
},
type
:
"
text
"
})}),
g
=
new
e
;
return
this
.
Shape
=
f
,
this
.
root
=
g
,
this
};
for
(
var
F
in
A
.
flags
)
A
.
flags
.
hasOwnProperty
(
F
)
&&
(
A
.
flags
[
F
].
match
=
function
(
a
){
return
a
.
match
(
this
.
regex
)});
A
.
setup
=
{
renderer
:
"
html
"
,
debounce
:
100
,
ratio
:
1
,
supportsCanvas
:
!
1
,
supportsSVG
:
!
1
,
lineWrapRatio
:.
9
,
renderers
:[
"
html
"
,
"
canvas
"
,
"
svg
"
]},
A
.
dpr
=
function
(
a
){
return
a
*
A
.
setup
.
ratio
},
A
.
vars
=
{
preempted
:
!
1
,
resizableImages
:[],
debounceTimer
:
null
,
cache
:{}},
function
(){
var
a
=
1
,
c
=
1
,
d
=
l
(
"
canvas
"
),
e
=
null
;
d
.
getContext
&&-
1
!=
d
.
toDataURL
(
"
image/png
"
).
indexOf
(
"
data:image/png
"
)
&&
(
A
.
setup
.
renderer
=
"
canvas
"
,
e
=
d
.
getContext
(
"
2d
"
),
A
.
setup
.
supportsCanvas
=!
0
),
A
.
setup
.
supportsCanvas
&&
(
a
=
b
.
devicePixelRatio
||
1
,
c
=
e
.
webkitBackingStorePixelRatio
||
e
.
mozBackingStorePixelRatio
||
e
.
msBackingStorePixelRatio
||
e
.
oBackingStorePixelRatio
||
e
.
backingStorePixelRatio
||
1
),
A
.
setup
.
ratio
=
a
/
c
,
y
.
createElementNS
&&
y
.
createElementNS
(
x
,
"
svg
"
).
createSVGRect
&&
(
A
.
setup
.
renderer
=
"
svg
"
,
A
.
setup
.
supportsSVG
=!
0
)}(),
a
(
z
,
"
Holder
"
,
b
),
b
.
onDomReady
&&
b
.
onDomReady
(
function
(){
A
.
vars
.
preempted
||
z
.
run
(),
b
.
addEventListener
?(
b
.
addEventListener
(
"
resize
"
,
s
,
!
1
),
b
.
addEventListener
(
"
orientationchange
"
,
s
,
!
1
)):
b
.
attachEvent
(
"
onresize
"
,
s
),
"
object
"
==
typeof
b
.
Turbolinks
&&
b
.
document
.
addEventListener
(
"
page:change
"
,
function
(){
z
.
run
()})})}(
function
(
a
,
b
,
c
){
var
d
=
"
function
"
==
typeof
define
&&
define
.
amd
;
d
?
define
(
a
):
c
[
b
]
=
a
},
this
),
/*!
/*!
* AnchorJS - v0.1.0 - 2014-08-17
* https://github.com/bryanbraun/anchorjs
* Copyright (c) 2014 Bryan Braun; Licensed MIT
*/
function
addAnchors
(
a
){
"
use strict
"
;
if
(
a
){
if
(
"
string
"
!=
typeof
a
)
throw
new
Error
(
"
AnchorJS accepts only strings; you used a
"
+
typeof
a
)}
else
a
=
"
h1, h2, h3, h4, h5, h6
"
;
for
(
var
b
=
document
.
querySelectorAll
(
a
),
c
=
0
;
c
<
b
.
length
;
c
++
){
var
d
;
if
(
b
[
c
].
hasAttribute
(
"
id
"
))
d
=
b
[
c
].
getAttribute
(
"
id
"
);
else
{
var
e
=
document
.
body
.
textContent
?
"
textContent
"
:
"
innerText
"
,
f
=
b
[
c
][
e
],
g
=
f
.
replace
(
/
\s
+/g
,
"
-
"
).
toLowerCase
();
b
[
c
].
setAttribute
(
"
id
"
,
g
),
d
=
g
}
var
h
=
'
<a class="anchorjs-link" href="#
'
+
d
+
'
"><span class="anchorjs-icon"></span></a>
'
;
b
[
c
].
innerHTML
+=
h
}}
!
function
(
a
,
b
,
c
){
b
[
a
]
=
c
}(
"
onDomReady
"
,
this
,
function
(
a
){
"
use strict
"
;
function
b
(
a
){
if
(
!
v
){
if
(
!
g
.
body
)
return
e
(
b
);
for
(
v
=!
0
;
a
=
w
.
shift
();)
e
(
a
)}}
function
c
(
a
){(
t
||
a
.
type
===
i
||
g
[
m
]
===
l
)
&&
(
d
(),
b
())}
function
d
(){
t
?(
g
[
s
](
q
,
c
,
j
),
a
[
s
](
i
,
c
,
j
)):(
g
[
o
](
r
,
c
),
a
[
o
](
k
,
c
))}
function
e
(
a
,
b
){
setTimeout
(
a
,
+
b
>=
0
?
b
:
1
)}
function
f
(
a
){
v
?
e
(
a
):
w
.
push
(
a
)}
null
==
document
.
readyState
&&
document
.
addEventListener
&&
(
document
.
addEventListener
(
"
DOMContentLoaded
"
,
function
y
(){
document
.
removeEventListener
(
"
DOMContentLoaded
"
,
y
,
!
1
),
document
.
readyState
=
"
complete
"
},
!
1
),
document
.
readyState
=
"
loading
"
);
var
g
=
a
.
document
,
h
=
g
.
documentElement
,
i
=
"
load
"
,
j
=!
1
,
k
=
"
on
"
+
i
,
l
=
"
complete
"
,
m
=
"
readyState
"
,
n
=
"
attachEvent
"
,
o
=
"
detachEvent
"
,
p
=
"
addEventListener
"
,
q
=
"
DOMContentLoaded
"
,
r
=
"
onreadystatechange
"
,
s
=
"
removeEventListener
"
,
t
=
p
in
g
,
u
=
j
,
v
=
j
,
w
=
[];
if
(
g
[
m
]
===
l
)
e
(
b
);
else
if
(
t
)
g
[
p
](
q
,
c
,
j
),
a
[
p
](
i
,
c
,
j
);
else
{
g
[
n
](
r
,
c
),
a
[
n
](
k
,
c
);
try
{
u
=
null
==
a
.
frameElement
&&
h
}
catch
(
x
){}
u
&&
u
.
doScroll
&&!
function
z
(){
if
(
!
v
){
try
{
u
.
doScroll
(
"
left
"
)}
catch
(
a
){
return
e
(
z
,
50
)}
d
(),
b
()}}()}
return
f
.
version
=
"
1.4.0
"
,
f
.
isReady
=
function
(){
return
v
},
f
}(
this
)),
document
.
querySelectorAll
||
(
document
.
querySelectorAll
=
function
(
a
){
var
b
,
c
=
document
.
createElement
(
"
style
"
),
d
=
[];
for
(
document
.
documentElement
.
firstChild
.
appendChild
(
c
),
document
.
_qsa
=
[],
c
.
styleSheet
.
cssText
=
a
+
"
{x-qsa:expression(document._qsa && document._qsa.push(this))}
"
,
window
.
scrollBy
(
0
,
0
),
c
.
parentNode
.
removeChild
(
c
);
document
.
_qsa
.
length
;)
b
=
document
.
_qsa
.
shift
(),
b
.
style
.
removeAttribute
(
"
x-qsa
"
),
d
.
push
(
b
);
return
document
.
_qsa
=
null
,
d
}),
document
.
querySelector
||
(
document
.
querySelector
=
function
(
a
){
var
b
=
document
.
querySelectorAll
(
a
);
return
b
.
length
?
b
[
0
]:
null
}),
document
.
getElementsByClassName
||
(
document
.
getElementsByClassName
=
function
(
a
){
return
a
=
String
(
a
).
replace
(
/^|
\s
+/g
,
"
.
"
),
document
.
querySelectorAll
(
a
)}),
Object
.
keys
||
(
Object
.
keys
=
function
(
a
){
if
(
a
!==
Object
(
a
))
throw
TypeError
(
"
Object.keys called on non-object
"
);
var
b
,
c
=
[];
for
(
b
in
a
)
Object
.
prototype
.
hasOwnProperty
.
call
(
a
,
b
)
&&
c
.
push
(
b
);
return
c
}),
function
(
a
){
var
b
=
"
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
"
;
a
.
atob
=
a
.
atob
||
function
(
a
){
a
=
String
(
a
);
var
c
,
d
=
0
,
e
=
[],
f
=
0
,
g
=
0
;
if
(
a
=
a
.
replace
(
/
\s
/g
,
""
),
a
.
length
%
4
===
0
&&
(
a
=
a
.
replace
(
/=+$/
,
""
)),
a
.
length
%
4
===
1
)
throw
Error
(
"
InvalidCharacterError
"
);
if
(
/
[^
+
/
0-9A-Za-z
]
/
.
test
(
a
))
throw
Error
(
"
InvalidCharacterError
"
);
for
(;
d
<
a
.
length
;)
c
=
b
.
indexOf
(
a
.
charAt
(
d
)),
f
=
f
<<
6
|
c
,
g
+=
6
,
24
===
g
&&
(
e
.
push
(
String
.
fromCharCode
(
f
>>
16
&
255
)),
e
.
push
(
String
.
fromCharCode
(
f
>>
8
&
255
)),
e
.
push
(
String
.
fromCharCode
(
255
&
f
)),
g
=
0
,
f
=
0
),
d
+=
1
;
return
12
===
g
?(
f
>>=
4
,
e
.
push
(
String
.
fromCharCode
(
255
&
f
))):
18
===
g
&&
(
f
>>=
2
,
e
.
push
(
String
.
fromCharCode
(
f
>>
8
&
255
)),
e
.
push
(
String
.
fromCharCode
(
255
&
f
))),
e
.
join
(
""
)},
a
.
btoa
=
a
.
btoa
||
function
(
a
){
a
=
String
(
a
);
var
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
=
0
,
k
=
[];
if
(
/
[^\x
00-
\x
FF
]
/
.
test
(
a
))
throw
Error
(
"
InvalidCharacterError
"
);
for
(;
j
<
a
.
length
;)
c
=
a
.
charCodeAt
(
j
++
),
d
=
a
.
charCodeAt
(
j
++
),
e
=
a
.
charCodeAt
(
j
++
),
f
=
c
>>
2
,
g
=
(
3
&
c
)
<<
4
|
d
>>
4
,
h
=
(
15
&
d
)
<<
2
|
e
>>
6
,
i
=
63
&
e
,
j
===
a
.
length
+
2
?(
h
=
64
,
i
=
64
):
j
===
a
.
length
+
1
&&
(
i
=
64
),
k
.
push
(
b
.
charAt
(
f
),
b
.
charAt
(
g
),
b
.
charAt
(
h
),
b
.
charAt
(
i
));
return
k
.
join
(
""
)}}(
this
),
function
(){
function
a
(
b
,
c
,
d
){
b
.
document
;
var
e
,
f
=
b
.
currentStyle
[
c
].
match
(
/
([\d\.]
+
)(
%|cm|em|in|mm|pc|pt|
)
/
)
||
[
0
,
0
,
""
],
g
=
f
[
1
],
h
=
f
[
2
];
return
d
=
d
?
/%|em/
.
test
(
h
)
&&
b
.
parentElement
?
a
(
b
.
parentElement
,
"
fontSize
"
,
null
):
16
:
d
,
e
=
"
fontSize
"
==
c
?
d
:
/width/i
.
test
(
c
)?
b
.
clientWidth
:
b
.
clientHeight
,
"
%
"
==
h
?
g
/
100
*
e
:
"
cm
"
==
h
?.
3937
*
g
*
96
:
"
em
"
==
h
?
g
*
d
:
"
in
"
==
h
?
96
*
g
:
"
mm
"
==
h
?.
3937
*
g
*
96
/
10
:
"
pc
"
==
h
?
12
*
g
*
96
/
72
:
"
pt
"
==
h
?
96
*
g
/
72
:
g
}
function
b
(
a
,
b
){
var
c
=
"
border
"
==
b
?
"
Width
"
:
""
,
d
=
b
+
"
Top
"
+
c
,
e
=
b
+
"
Right
"
+
c
,
f
=
b
+
"
Bottom
"
+
c
,
g
=
b
+
"
Left
"
+
c
;
a
[
b
]
=
(
a
[
d
]
==
a
[
e
]
&&
a
[
d
]
==
a
[
f
]
&&
a
[
d
]
==
a
[
g
]?[
a
[
d
]]:
a
[
d
]
==
a
[
f
]
&&
a
[
g
]
==
a
[
e
]?[
a
[
d
],
a
[
e
]]:
a
[
g
]
==
a
[
e
]?[
a
[
d
],
a
[
e
],
a
[
f
]]:[
a
[
d
],
a
[
e
],
a
[
f
],
a
[
g
]]).
join
(
"
"
)}
function
c
(
c
){
var
d
,
e
=
this
,
f
=
c
.
currentStyle
,
g
=
a
(
c
,
"
fontSize
"
),
h
=
function
(
a
){
return
"
-
"
+
a
.
toLowerCase
()};
for
(
d
in
f
)
if
(
Array
.
prototype
.
push
.
call
(
e
,
"
styleFloat
"
==
d
?
"
float
"
:
d
.
replace
(
/
[
A-Z
]
/
,
h
)),
"
width
"
==
d
)
e
[
d
]
=
c
.
offsetWidth
+
"
px
"
;
else
if
(
"
height
"
==
d
)
e
[
d
]
=
c
.
offsetHeight
+
"
px
"
;
else
if
(
"
styleFloat
"
==
d
)
e
[
"
float
"
]
=
f
[
d
];
else
if
(
/margin.|padding.|border.+W/
.
test
(
d
)
&&
"
auto
"
!=
e
[
d
])
e
[
d
]
=
Math
.
round
(
a
(
c
,
d
,
g
))
+
"
px
"
;
else
if
(
/^outline/
.
test
(
d
))
try
{
e
[
d
]
=
f
[
d
]}
catch
(
i
){
e
.
outlineColor
=
f
.
color
,
e
.
outlineStyle
=
e
.
outlineStyle
||
"
none
"
,
e
.
outlineWidth
=
e
.
outlineWidth
||
"
0px
"
,
e
.
outline
=
[
e
.
outlineColor
,
e
.
outlineWidth
,
e
.
outlineStyle
].
join
(
"
"
)}
else
e
[
d
]
=
f
[
d
];
b
(
e
,
"
margin
"
),
b
(
e
,
"
padding
"
),
b
(
e
,
"
border
"
),
e
.
fontSize
=
Math
.
round
(
g
)
+
"
px
"
}
window
.
getComputedStyle
||
(
c
.
prototype
=
{
constructor
:
c
,
getPropertyPriority
:
function
(){
throw
new
Error
(
"
NotSupportedError: DOM Exception 9
"
)},
getPropertyValue
:
function
(
a
){
var
b
=
a
.
replace
(
/-
([
a-z
])
/g
,
function
(
a
){
return
a
=
a
.
charAt
?
a
.
split
(
""
):
a
,
a
[
1
].
toUpperCase
()}),
c
=
this
[
b
];
return
c
},
item
:
function
(
a
){
return
this
[
a
]},
removeProperty
:
function
(){
throw
new
Error
(
"
NoModificationAllowedError: DOM Exception 7
"
)},
setProperty
:
function
(){
throw
new
Error
(
"
NoModificationAllowedError: DOM Exception 7
"
)},
getPropertyCSSValue
:
function
(){
throw
new
Error
(
"
NotSupportedError: DOM Exception 9
"
)}},
window
.
getComputedStyle
=
function
(
a
){
return
new
c
(
a
)})}(),
Object
.
prototype
.
hasOwnProperty
||
(
Object
.
prototype
.
hasOwnProperty
=
function
(
a
){
var
b
=
this
.
__proto__
||
this
.
constructor
.
prototype
;
return
a
in
this
&&
(
!
(
a
in
b
)
||
b
[
a
]
!==
this
[
a
])}),
function
(
a
,
b
){
a
.
augment
=
b
()}(
this
,
function
(){
"
use strict
"
;
var
a
=
function
(){},
b
=
Array
.
prototype
.
slice
,
c
=
function
(
c
,
d
){
var
e
=
a
.
prototype
=
"
function
"
==
typeof
c
?
c
.
prototype
:
c
,
f
=
new
a
,
g
=
d
.
apply
(
f
,
b
.
call
(
arguments
,
2
).
concat
(
e
));
if
(
"
object
"
==
typeof
g
)
for
(
var
h
in
g
)
f
[
h
]
=
g
[
h
];
if
(
!
f
.
hasOwnProperty
(
"
constructor
"
))
return
f
;
var
i
=
f
.
constructor
;
return
i
.
prototype
=
f
,
i
};
return
c
.
defclass
=
function
(
a
){
var
b
=
a
.
constructor
;
return
b
.
prototype
=
a
,
b
},
c
.
extend
=
function
(
a
,
b
){
return
c
(
a
,
function
(
a
){
return
this
.
uber
=
a
,
b
})},
c
}),
function
(
a
,
b
){
function
c
(
a
,
b
,
c
,
f
){
var
g
=
d
(
c
.
substr
(
c
.
lastIndexOf
(
a
.
domain
)),
a
);
g
&&
e
(
null
,
f
,
g
,
b
)}
function
d
(
a
,
b
){
for
(
var
c
=
{
theme
:
p
(
A
.
settings
.
themes
.
gray
,
null
),
stylesheets
:
b
.
stylesheets
,
holderURL
:[]},
d
=!
1
,
e
=
String
.
fromCharCode
(
11
),
f
=
a
.
replace
(
/
([^\\])\/
/g
,
"
$1
"
+
e
).
split
(
e
),
g
=
/%
[
0-9a-f
]{2}
/gi
,
h
=
f
.
length
,
i
=
0
;
h
>
i
;
i
++
){
var
j
=
f
[
i
];
if
(
j
.
match
(
g
))
try
{
j
=
decodeURIComponent
(
j
)}
catch
(
k
){
j
=
f
[
i
]}
var
l
=!
1
;
if
(
A
.
flags
.
dimensions
.
match
(
j
))
d
=!
0
,
c
.
dimensions
=
A
.
flags
.
dimensions
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
fluid
.
match
(
j
))
d
=!
0
,
c
.
dimensions
=
A
.
flags
.
fluid
.
output
(
j
),
c
.
fluid
=!
0
,
l
=!
0
;
else
if
(
A
.
flags
.
textmode
.
match
(
j
))
c
.
textmode
=
A
.
flags
.
textmode
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
colors
.
match
(
j
)){
var
m
=
A
.
flags
.
colors
.
output
(
j
);
c
.
theme
=
p
(
c
.
theme
,
m
),
l
=!
0
}
else
if
(
b
.
themes
[
j
])
b
.
themes
.
hasOwnProperty
(
j
)
&&
(
c
.
theme
=
p
(
b
.
themes
[
j
],
null
)),
l
=!
0
;
else
if
(
A
.
flags
.
font
.
match
(
j
))
c
.
font
=
A
.
flags
.
font
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
auto
.
match
(
j
))
c
.
auto
=!
0
,
l
=!
0
;
else
if
(
A
.
flags
.
text
.
match
(
j
))
c
.
text
=
A
.
flags
.
text
.
output
(
j
),
l
=!
0
;
else
if
(
A
.
flags
.
random
.
match
(
j
)){
null
==
A
.
vars
.
cache
.
themeKeys
&&
(
A
.
vars
.
cache
.
themeKeys
=
Object
.
keys
(
b
.
themes
));
var
n
=
A
.
vars
.
cache
.
themeKeys
[
0
|
Math
.
random
()
*
A
.
vars
.
cache
.
themeKeys
.
length
];
c
.
theme
=
p
(
b
.
themes
[
n
],
null
),
l
=!
0
}
l
&&
c
.
holderURL
.
push
(
j
)}
return
c
.
holderURL
.
unshift
(
b
.
domain
),
c
.
holderURL
=
c
.
holderURL
.
join
(
"
/
"
),
d
?
c
:
!
1
}
function
e
(
a
,
b
,
c
,
d
){
var
e
=
c
.
dimensions
,
g
=
c
.
theme
,
h
=
e
.
width
+
"
x
"
+
e
.
height
;
if
(
a
=
null
==
a
?
c
.
fluid
?
"
fluid
"
:
"
image
"
:
a
,
null
!=
c
.
text
&&
(
g
.
text
=
c
.
text
,
"
object
"
===
b
.
nodeName
.
toLowerCase
())){
for
(
var
j
=
g
.
text
.
split
(
"
\\
n
"
),
l
=
0
;
l
<
j
.
length
;
l
++
)
j
[
l
]
=
v
(
j
[
l
]);
g
.
text
=
j
.
join
(
"
\\
n
"
)}
var
n
=
c
.
holderURL
,
o
=
p
(
d
,
null
);
c
.
font
&&
(
g
.
font
=
c
.
font
,
!
o
.
noFontFallback
&&
"
img
"
===
b
.
nodeName
.
toLowerCase
()
&&
A
.
setup
.
supportsCanvas
&&
"
svg
"
===
o
.
renderer
&&
(
o
=
p
(
o
,{
renderer
:
"
canvas
"
}))),
c
.
font
&&
"
canvas
"
==
o
.
renderer
&&
(
o
.
reRender
=!
0
),
"
background
"
==
a
?
null
==
b
.
getAttribute
(
"
data-background-src
"
)
&&
m
(
b
,{
"
data-background-src
"
:
n
}):
m
(
b
,{
"
data-src
"
:
n
}),
c
.
theme
=
g
,
b
.
holderData
=
{
flags
:
c
,
renderSettings
:
o
},(
"
image
"
==
a
||
"
fluid
"
==
a
)
&&
m
(
b
,{
alt
:
g
.
text
?(
g
.
text
.
length
>
16
?
g
.
text
.
substring
(
0
,
16
)
+
"
…
"
:
g
.
text
)
+
"
[
"
+
h
+
"
]
"
:
h
}),
"
image
"
==
a
?(
"
html
"
!=
o
.
renderer
&&
c
.
auto
||
(
b
.
style
.
width
=
e
.
width
+
"
px
"
,
b
.
style
.
height
=
e
.
height
+
"
px
"
),
"
html
"
==
o
.
renderer
?
b
.
style
.
backgroundColor
=
g
.
background
:(
f
(
a
,{
dimensions
:
e
,
theme
:
g
,
flags
:
c
},
b
,
o
),
c
.
textmode
&&
"
exact
"
==
c
.
textmode
&&
(
A
.
vars
.
resizableImages
.
push
(
b
),
i
(
b
)))):
"
background
"
==
a
&&
"
html
"
!=
o
.
renderer
?
f
(
a
,{
dimensions
:
e
,
theme
:
g
,
flags
:
c
},
b
,
o
):
"
fluid
"
==
a
&&
(
"
%
"
==
e
.
height
.
slice
(
-
1
)?
b
.
style
.
height
=
e
.
height
:
null
!=
c
.
auto
&&
c
.
auto
||
(
b
.
style
.
height
=
e
.
height
+
"
px
"
),
"
%
"
==
e
.
width
.
slice
(
-
1
)?
b
.
style
.
width
=
e
.
width
:
null
!=
c
.
auto
&&
c
.
auto
||
(
b
.
style
.
width
=
e
.
width
+
"
px
"
),(
"
inline
"
==
b
.
style
.
display
||
""
===
b
.
style
.
display
||
"
none
"
==
b
.
style
.
display
)
&&
(
b
.
style
.
display
=
"
block
"
),
k
(
b
),
"
html
"
==
o
.
renderer
?
b
.
style
.
backgroundColor
=
g
.
background
:(
A
.
vars
.
resizableImages
.
push
(
b
),
i
(
b
)))}
function
f
(
a
,
b
,
c
,
d
){
function
e
(){
var
a
=
null
;
switch
(
d
.
renderer
){
case
"
canvas
"
:
a
=
C
(
i
);
break
;
case
"
svg
"
:
a
=
D
(
i
,
d
);
break
;
default
:
throw
"
Holder: invalid renderer:
"
+
d
.
renderer
}
return
a
}
var
f
=
null
;
switch
(
d
.
renderer
){
case
"
svg
"
:
if
(
!
A
.
setup
.
supportsSVG
)
return
;
break
;
case
"
canvas
"
:
if
(
!
A
.
setup
.
supportsCanvas
)
return
;
break
;
default
:
return
}
var
h
=
{
width
:
b
.
dimensions
.
width
,
height
:
b
.
dimensions
.
height
,
theme
:
b
.
theme
,
flags
:
b
.
flags
},
i
=
g
(
h
);
if
({
text
:
h
.
text
,
width
:
h
.
width
,
height
:
h
.
height
,
textHeight
:
h
.
font
.
size
,
font
:
h
.
font
.
family
,
fontWeight
:
h
.
font
.
weight
,
template
:
h
.
theme
},
f
=
e
(),
null
==
f
)
throw
"
Holder: couldn't render placeholder
"
;
"
background
"
==
a
?(
c
.
style
.
backgroundImage
=
"
url(
"
+
f
+
"
)
"
,
c
.
style
.
backgroundSize
=
h
.
width
+
"
px
"
+
h
.
height
+
"
px
"
):(
"
img
"
===
c
.
nodeName
.
toLowerCase
()?
m
(
c
,{
src
:
f
}):
"
object
"
===
c
.
nodeName
.
toLowerCase
()
&&
(
m
(
c
,{
data
:
f
}),
m
(
c
,{
type
:
"
image/svg+xml
"
})),
d
.
reRender
&&
setTimeout
(
function
(){
var
a
=
e
();
if
(
null
==
a
)
throw
"
Holder: couldn't render placeholder
"
;
"
img
"
===
c
.
nodeName
.
toLowerCase
()?
m
(
c
,{
src
:
a
}):
"
object
"
===
c
.
nodeName
.
toLowerCase
()
&&
(
m
(
c
,{
data
:
a
}),
m
(
c
,{
type
:
"
image/svg+xml
"
}))},
100
)),
m
(
c
,{
"
data-holder-rendered
"
:
!
0
})}
function
g
(
a
){
function
b
(
a
,
b
,
c
,
d
){
b
.
width
=
c
,
b
.
height
=
d
,
a
.
width
=
Math
.
max
(
a
.
width
,
b
.
width
),
a
.
height
+=
b
.
height
,
a
.
add
(
b
)}
switch
(
a
.
font
=
{
family
:
a
.
theme
.
font
?
a
.
theme
.
font
:
"
Arial, Helvetica, Open Sans, sans-serif
"
,
size
:
h
(
a
.
width
,
a
.
height
,
a
.
theme
.
size
?
a
.
theme
.
size
:
A
.
defaults
.
size
),
units
:
a
.
theme
.
units
?
a
.
theme
.
units
:
A
.
defaults
.
units
,
weight
:
a
.
theme
.
fontweight
?
a
.
theme
.
fontweight
:
"
bold
"
},
a
.
text
=
a
.
theme
.
text
?
a
.
theme
.
text
:
Math
.
floor
(
a
.
width
)
+
"
x
"
+
Math
.
floor
(
a
.
height
),
a
.
flags
.
textmode
){
case
"
literal
"
:
a
.
text
=
a
.
flags
.
dimensions
.
width
+
"
x
"
+
a
.
flags
.
dimensions
.
height
;
break
;
case
"
exact
"
:
if
(
!
a
.
flags
.
exactDimensions
)
break
;
a
.
text
=
Math
.
floor
(
a
.
flags
.
exactDimensions
.
width
)
+
"
x
"
+
Math
.
floor
(
a
.
flags
.
exactDimensions
.
height
)}
var
c
=
new
E
({
width
:
a
.
width
,
height
:
a
.
height
}),
d
=
c
.
Shape
,
e
=
new
d
.
Rect
(
"
holderBg
"
,{
fill
:
a
.
theme
.
background
});
e
.
resize
(
a
.
width
,
a
.
height
),
c
.
root
.
add
(
e
);
var
f
=
new
d
.
Group
(
"
holderTextGroup
"
,{
text
:
a
.
text
,
align
:
"
center
"
,
font
:
a
.
font
,
fill
:
a
.
theme
.
foreground
});
f
.
moveTo
(
null
,
null
,
1
),
c
.
root
.
add
(
f
);
var
g
=
f
.
textPositionData
=
B
(
c
);
if
(
!
g
)
throw
"
Holder: staging fallback not supported yet.
"
;
f
.
properties
.
leading
=
g
.
boundingBox
.
height
;
var
i
=
null
,
j
=
null
;
if
(
g
.
lineCount
>
1
){
var
k
=
0
,
l
=
0
,
m
=
a
.
width
*
A
.
setup
.
lineWrapRatio
,
n
=
0
;
j
=
new
d
.
Group
(
"
line
"
+
n
);
for
(
var
o
=
0
;
o
<
g
.
words
.
length
;
o
++
){
var
p
=
g
.
words
[
o
];
i
=
new
d
.
Text
(
p
.
text
);
var
q
=
"
\\
n
"
==
p
.
text
;(
k
+
p
.
width
>=
m
||
q
===!
0
)
&&
(
b
(
f
,
j
,
k
,
f
.
properties
.
leading
),
k
=
0
,
l
+=
f
.
properties
.
leading
,
n
+=
1
,
j
=
new
d
.
Group
(
"
line
"
+
n
),
j
.
y
=
l
),
q
!==!
0
&&
(
i
.
moveTo
(
k
,
0
),
k
+=
g
.
spaceWidth
+
p
.
width
,
j
.
add
(
i
))}
b
(
f
,
j
,
k
,
f
.
properties
.
leading
);
for
(
var
r
in
f
.
children
)
j
=
f
.
children
[
r
],
j
.
moveTo
((
f
.
width
-
j
.
width
)
/
2
,
null
,
null
);
f
.
moveTo
((
a
.
width
-
f
.
width
)
/
2
,(
a
.
height
-
f
.
height
)
/
2
,
null
),(
a
.
height
-
f
.
height
)
/
2
<
0
&&
f
.
moveTo
(
null
,
0
,
null
)}
else
i
=
new
d
.
Text
(
a
.
text
),
j
=
new
d
.
Group
(
"
line0
"
),
j
.
add
(
i
),
f
.
add
(
j
),
f
.
moveTo
((
a
.
width
-
g
.
boundingBox
.
width
)
/
2
,(
a
.
height
-
g
.
boundingBox
.
height
)
/
2
,
null
);
return
c
}
function
h
(
a
,
b
,
c
){
b
=
parseInt
(
b
,
10
),
a
=
parseInt
(
a
,
10
);
var
d
=
Math
.
max
(
b
,
a
),
e
=
Math
.
min
(
b
,
a
),
f
=
A
.
defaults
.
scale
,
g
=
Math
.
min
(.
75
*
e
,.
75
*
d
*
f
);
return
Math
.
round
(
Math
.
max
(
c
,
g
))}
function
i
(
a
){
var
b
;
b
=
null
==
a
||
null
==
a
.
nodeType
?
A
.
vars
.
resizableImages
:[
a
];
for
(
var
c
in
b
)
if
(
b
.
hasOwnProperty
(
c
)){
var
d
=
b
[
c
];
if
(
d
.
holderData
){
var
e
=
d
.
holderData
.
flags
,
g
=
j
(
d
,
z
.
invisibleErrorFn
(
i
));
if
(
g
){
if
(
e
.
fluid
&&
e
.
auto
){
var
h
=
d
.
holderData
.
fluidConfig
;
switch
(
h
.
mode
){
case
"
width
"
:
g
.
height
=
g
.
width
/
h
.
ratio
;
break
;
case
"
height
"
:
g
.
width
=
g
.
height
*
h
.
ratio
}}
var
k
=
{
dimensions
:
g
,
theme
:
e
.
theme
,
flags
:
e
};
e
.
textmode
&&
"
exact
"
==
e
.
textmode
&&
(
e
.
exactDimensions
=
g
,
k
.
dimensions
=
e
.
dimensions
),
f
(
"
image
"
,
k
,
d
,
d
.
holderData
.
renderSettings
)}}}}
function
j
(
a
,
b
){
var
c
=
{
height
:
a
.
clientHeight
,
width
:
a
.
clientWidth
};
return
c
.
height
||
c
.
width
?(
a
.
removeAttribute
(
"
data-holder-invisible
"
),
c
):(
m
(
a
,{
"
data-holder-invisible
"
:
!
0
}),
void
b
.
call
(
this
,
a
))}
function
k
(
a
){
if
(
a
.
holderData
){
var
b
=
j
(
a
,
z
.
invisibleErrorFn
(
k
));
if
(
b
){
var
c
=
a
.
holderData
.
flags
,
d
=
{
fluidHeight
:
"
%
"
==
c
.
dimensions
.
height
.
slice
(
-
1
),
fluidWidth
:
"
%
"
==
c
.
dimensions
.
width
.
slice
(
-
1
),
mode
:
null
,
initialDimensions
:
b
};
d
.
fluidWidth
&&!
d
.
fluidHeight
?(
d
.
mode
=
"
width
"
,
d
.
ratio
=
d
.
initialDimensions
.
width
/
parseFloat
(
c
.
dimensions
.
height
)):
!
d
.
fluidWidth
&&
d
.
fluidHeight
&&
(
d
.
mode
=
"
height
"
,
d
.
ratio
=
parseFloat
(
c
.
dimensions
.
width
)
/
d
.
initialDimensions
.
height
),
a
.
holderData
.
fluidConfig
=
d
}}}
function
l
(
a
,
b
){
return
null
==
b
?
y
.
createElement
(
a
):
y
.
createElementNS
(
b
,
a
)}
function
m
(
a
,
b
){
for
(
var
c
in
b
)
a
.
setAttribute
(
c
,
b
[
c
])}
function
n
(
a
,
b
,
c
){
if
(
null
==
a
){
a
=
l
(
"
svg
"
,
x
);
var
d
=
l
(
"
defs
"
,
x
);
a
.
appendChild
(
d
)}
return
a
.
webkitMatchesSelector
&&
a
.
setAttribute
(
"
xmlns
"
,
x
),
m
(
a
,{
width
:
b
,
height
:
c
,
viewBox
:
"
0 0
"
+
b
+
"
"
+
c
,
preserveAspectRatio
:
"
none
"
}),
a
}
function
o
(
a
,
c
){
if
(
b
.
XMLSerializer
){
var
d
=
new
XMLSerializer
,
e
=
""
,
f
=
c
.
stylesheets
;
if
(
a
.
querySelector
(
"
defs
"
),
c
.
svgXMLStylesheet
){
for
(
var
g
=
(
new
DOMParser
).
parseFromString
(
"
<xml />
"
,
"
application/xml
"
),
h
=
f
.
length
-
1
;
h
>=
0
;
h
--
){
var
i
=
g
.
createProcessingInstruction
(
"
xml-stylesheet
"
,
'
href="
'
+
f
[
h
]
+
'
" rel="stylesheet"
'
);
g
.
insertBefore
(
i
,
g
.
firstChild
)}
var
j
=
g
.
createProcessingInstruction
(
"
xml
"
,
'
version="1.0" encoding="UTF-8" standalone="yes"
'
);
g
.
insertBefore
(
j
,
g
.
firstChild
),
g
.
removeChild
(
g
.
documentElement
),
e
=
d
.
serializeToString
(
g
)}
var
k
=
d
.
serializeToString
(
a
);
return
k
=
k
.
replace
(
/
\&
amp;
(\#[
0-9
]{2,}\;)
/g
,
"
&$1
"
),
e
+
k
}}
function
p
(
a
,
b
){
var
c
=
{};
for
(
var
d
in
a
)
a
.
hasOwnProperty
(
d
)
&&
(
c
[
d
]
=
a
[
d
]);
if
(
null
!=
b
)
for
(
var
e
in
b
)
b
.
hasOwnProperty
(
e
)
&&
(
c
[
e
]
=
b
[
e
]);
return
c
}
function
q
(
a
){
var
b
=
[];
for
(
var
c
in
a
)
a
.
hasOwnProperty
(
c
)
&&
b
.
push
(
c
+
"
:
"
+
a
[
c
]);
return
b
.
join
(
"
;
"
)}
function
r
(
a
){
A
.
vars
.
debounceTimer
||
a
.
call
(
this
),
A
.
vars
.
debounceTimer
&&
clearTimeout
(
A
.
vars
.
debounceTimer
),
A
.
vars
.
debounceTimer
=
setTimeout
(
function
(){
A
.
vars
.
debounceTimer
=
null
,
a
.
call
(
this
)},
A
.
setup
.
debounce
)}
function
s
(){
r
(
function
(){
i
(
null
)})}
function
t
(
a
){
var
c
=
null
;
return
"
string
"
==
typeof
a
?
c
=
y
.
querySelectorAll
(
a
):
b
.
NodeList
&&
a
instanceof
b
.
NodeList
?
c
=
a
:
b
.
Node
&&
a
instanceof
b
.
Node
?
c
=
[
a
]:
b
.
HTMLCollection
&&
a
instanceof
b
.
HTMLCollection
?
c
=
a
:
null
===
a
&&
(
c
=
[]),
c
}
function
u
(
a
,
b
){
var
c
=
new
Image
;
c
.
onerror
=
function
(){
b
.
call
(
this
,
!
1
)},
c
.
onload
=
function
(){
b
.
call
(
this
,
!
0
)},
c
.
src
=
a
}
function
v
(
a
){
for
(
var
b
=
[],
c
=
0
,
d
=
a
.
length
-
1
;
d
>=
0
;
d
--
)
c
=
a
.
charCodeAt
(
d
),
b
.
unshift
(
c
>
128
?[
"
&#
"
,
c
,
"
;
"
].
join
(
""
):
a
[
d
]);
return
b
.
join
(
""
)}
function
w
(
a
){
return
a
.
replace
(
/&#
(\d
+
)
;/g
,
function
(
a
,
b
){
return
String
.
fromCharCode
(
b
)})}
var
x
=
"
http://www.w3.org/2000/svg
"
,
y
=
b
.
document
,
z
=
{
addTheme
:
function
(
a
,
b
){
return
null
!=
a
&&
null
!=
b
&&
(
A
.
settings
.
themes
[
a
]
=
b
),
delete
A
.
vars
.
cache
.
themeKeys
,
this
},
addImage
:
function
(
a
,
b
){
var
c
=
y
.
querySelectorAll
(
b
);
if
(
c
.
length
)
for
(
var
d
=
0
,
e
=
c
.
length
;
e
>
d
;
d
++
){
var
f
=
l
(
"
img
"
);
m
(
f
,{
"
data-src
"
:
a
}),
c
[
d
].
appendChild
(
f
)}
return
this
},
run
:
function
(
a
){
a
=
a
||
{};
var
f
=
{};
A
.
vars
.
preempted
=!
0
;
var
g
=
p
(
A
.
settings
,
a
);
f
.
renderer
=
g
.
renderer
?
g
.
renderer
:
A
.
setup
.
renderer
,
-
1
===
A
.
setup
.
renderers
.
join
(
"
,
"
).
indexOf
(
f
.
renderer
)
&&
(
f
.
renderer
=
A
.
setup
.
supportsSVG
?
"
svg
"
:
A
.
setup
.
supportsCanvas
?
"
canvas
"
:
"
html
"
),
g
.
use_canvas
?
f
.
renderer
=
"
canvas
"
:
g
.
use_svg
&&
(
f
.
renderer
=
"
svg
"
);
var
h
=
t
(
g
.
images
),
i
=
t
(
g
.
bgnodes
),
j
=
t
(
g
.
stylenodes
),
k
=
t
(
g
.
objects
);
f
.
stylesheets
=
[],
f
.
svgXMLStylesheet
=!
0
,
f
.
noFontFallback
=
g
.
noFontFallback
?
g
.
noFontFallback
:
!
1
;
for
(
var
m
=
0
;
m
<
j
.
length
;
m
++
){
var
n
=
j
[
m
];
if
(
n
.
attributes
.
rel
&&
n
.
attributes
.
href
&&
"
stylesheet
"
==
n
.
attributes
.
rel
.
value
){
var
o
=
n
.
attributes
.
href
.
value
,
q
=
l
(
"
a
"
);
q
.
href
=
o
;
var
r
=
q
.
protocol
+
"
//
"
+
q
.
host
+
q
.
pathname
+
q
.
search
;
f
.
stylesheets
.
push
(
r
)}}
for
(
m
=
0
;
m
<
i
.
length
;
m
++
){
var
s
=
b
.
getComputedStyle
(
i
[
m
],
null
).
getPropertyValue
(
"
background-image
"
),
v
=
i
[
m
].
getAttribute
(
"
data-background-src
"
),
w
=
null
;
w
=
null
==
v
?
s
:
v
;
var
x
=
null
,
y
=
"
?
"
+
g
.
domain
+
"
/
"
;
if
(
0
===
w
.
indexOf
(
y
))
x
=
w
.
slice
(
1
);
else
if
(
-
1
!=
w
.
indexOf
(
y
)){
var
z
=
w
.
substr
(
w
.
indexOf
(
y
)).
slice
(
1
),
B
=
z
.
match
(
/
([^\"]
*
)
"
?\)
/
);
null
!=
B
&&
(
x
=
B
[
1
])}
if
(
null
!=
x
){
var
C
=
d
(
x
,
g
);
C
&&
e
(
"
background
"
,
i
[
m
],
C
,
f
)}}
for
(
m
=
0
;
m
<
k
.
length
;
m
++
){
var
D
=
k
[
m
],
E
=
{};
try
{
E
.
data
=
D
.
getAttribute
(
"
data
"
),
E
.
dataSrc
=
D
.
getAttribute
(
"
data-src
"
)}
catch
(
F
){}
var
G
=
null
!=
E
.
data
&&
0
===
E
.
data
.
indexOf
(
g
.
domain
),
H
=
null
!=
E
.
dataSrc
&&
0
===
E
.
dataSrc
.
indexOf
(
g
.
domain
);
G
?
c
(
g
,
f
,
E
.
data
,
D
):
H
&&
c
(
g
,
f
,
E
.
dataSrc
,
D
)}
for
(
m
=
0
;
m
<
h
.
length
;
m
++
){
var
I
=
h
[
m
],
J
=
{};
try
{
J
.
src
=
I
.
getAttribute
(
"
src
"
),
J
.
dataSrc
=
I
.
getAttribute
(
"
data-src
"
),
J
.
rendered
=
I
.
getAttribute
(
"
data-holder-rendered
"
)}
catch
(
F
){}
var
K
=
null
!=
J
.
src
,
L
=
null
!=
J
.
dataSrc
&&
0
===
J
.
dataSrc
.
indexOf
(
g
.
domain
),
M
=
null
!=
J
.
rendered
&&
"
true
"
==
J
.
rendered
;
K
?
0
===
J
.
src
.
indexOf
(
g
.
domain
)?
c
(
g
,
f
,
J
.
src
,
I
):
L
&&
(
M
?
c
(
g
,
f
,
J
.
dataSrc
,
I
):
!
function
(
a
,
b
,
d
,
e
,
f
){
u
(
a
,
function
(
a
){
a
||
c
(
b
,
d
,
e
,
f
)})}(
J
.
src
,
g
,
f
,
J
.
dataSrc
,
I
)):
L
&&
c
(
g
,
f
,
J
.
dataSrc
,
I
)}
return
this
},
invisibleErrorFn
:
function
(){
return
function
(
a
){
if
(
a
.
hasAttribute
(
"
data-holder-invisible
"
))
throw
"
Holder: invisible placeholder
"
}}};
z
.
add_theme
=
z
.
addTheme
,
z
.
add_image
=
z
.
addImage
,
z
.
invisible_error_fn
=
z
.
invisibleErrorFn
;
var
A
=
{
settings
:{
domain
:
"
holder.js
"
,
images
:
"
img
"
,
objects
:
"
object
"
,
bgnodes
:
"
body .holderjs
"
,
stylenodes
:
"
head link.holderjs
"
,
stylesheets
:[],
themes
:{
gray
:{
background
:
"
#EEEEEE
"
,
foreground
:
"
#AAAAAA
"
},
social
:{
background
:
"
#3a5a97
"
,
foreground
:
"
#FFFFFF
"
},
industrial
:{
background
:
"
#434A52
"
,
foreground
:
"
#C2F200
"
},
sky
:{
background
:
"
#0D8FDB
"
,
foreground
:
"
#FFFFFF
"
},
vine
:{
background
:
"
#39DBAC
"
,
foreground
:
"
#1E292C
"
},
lava
:{
background
:
"
#F8591A
"
,
foreground
:
"
#1C2846
"
}}},
defaults
:{
size
:
10
,
units
:
"
pt
"
,
scale
:
1
/
16
},
flags
:{
dimensions
:{
regex
:
/^
(\d
+
)
x
(\d
+
)
$/
,
output
:
function
(
a
){
var
b
=
this
.
regex
.
exec
(
a
);
return
{
width
:
+
b
[
1
],
height
:
+
b
[
2
]}}},
fluid
:{
regex
:
/^
([
0-9
]
+%
?)
x
([
0-9
]
+%
?)
$/
,
output
:
function
(
a
){
var
b
=
this
.
regex
.
exec
(
a
);
return
{
width
:
b
[
1
],
height
:
b
[
2
]}}},
colors
:{
regex
:
/
(?:
#|
\^)([
0-9a-f
]{3,})\:(?:
#|
\^)([
0-9a-f
]{3,})
/i
,
output
:
function
(
a
){
var
b
=
this
.
regex
.
exec
(
a
);
return
{
foreground
:
"
#
"
+
b
[
2
],
background
:
"
#
"
+
b
[
1
]}}},
text
:{
regex
:
/text
\:(
.*
)
/
,
output
:
function
(
a
){
return
this
.
regex
.
exec
(
a
)[
1
].
replace
(
"
\\
/
"
,
"
/
"
)}},
font
:{
regex
:
/font
\:(
.*
)
/
,
output
:
function
(
a
){
return
this
.
regex
.
exec
(
a
)[
1
]}},
auto
:{
regex
:
/^auto$/
},
textmode
:{
regex
:
/textmode
\:(
.*
)
/
,
output
:
function
(
a
){
return
this
.
regex
.
exec
(
a
)[
1
]}},
random
:{
regex
:
/^random$/
}}},
B
=
function
(){
var
a
=
null
,
b
=
null
,
c
=
null
;
return
function
(
d
){
var
e
=
d
.
root
;
if
(
A
.
setup
.
supportsSVG
){
var
f
=!
1
,
g
=
function
(
a
){
return
y
.
createTextNode
(
a
)};
null
==
a
&&
(
f
=!
0
),
a
=
n
(
a
,
e
.
properties
.
width
,
e
.
properties
.
height
),
f
&&
(
b
=
l
(
"
text
"
,
x
),
c
=
g
(
null
),
m
(
b
,{
x
:
0
}),
b
.
appendChild
(
c
),
a
.
appendChild
(
b
),
y
.
body
.
appendChild
(
a
),
a
.
style
.
visibility
=
"
hidden
"
,
a
.
style
.
position
=
"
absolute
"
,
a
.
style
.
top
=
"
-100%
"
,
a
.
style
.
left
=
"
-100%
"
);
var
h
=
e
.
children
.
holderTextGroup
,
i
=
h
.
properties
;
m
(
b
,{
y
:
i
.
font
.
size
,
style
:
q
({
"
font-weight
"
:
i
.
font
.
weight
,
"
font-size
"
:
i
.
font
.
size
+
i
.
font
.
units
,
"
font-family
"
:
i
.
font
.
family
,
"
dominant-baseline
"
:
"
middle
"
})}),
c
.
nodeValue
=
i
.
text
;
var
j
=
b
.
getBBox
(),
k
=
Math
.
ceil
(
j
.
width
/
(
e
.
properties
.
width
*
A
.
setup
.
lineWrapRatio
)),
o
=
i
.
text
.
split
(
"
"
),
p
=
i
.
text
.
match
(
/
\\
n/g
);
k
+=
null
==
p
?
0
:
p
.
length
,
c
.
nodeValue
=
i
.
text
.
replace
(
/
[
]
+/g
,
""
);
var
r
=
b
.
getComputedTextLength
(),
s
=
j
.
width
-
r
,
t
=
Math
.
round
(
s
/
Math
.
max
(
1
,
o
.
length
-
1
)),
u
=
[];
if
(
k
>
1
){
c
.
nodeValue
=
""
;
for
(
var
v
=
0
;
v
<
o
.
length
;
v
++
)
if
(
0
!==
o
[
v
].
length
){
c
.
nodeValue
=
w
(
o
[
v
]);
var
z
=
b
.
getBBox
();
u
.
push
({
text
:
o
[
v
],
width
:
z
.
width
})}}
return
{
spaceWidth
:
t
,
lineCount
:
k
,
boundingBox
:
j
,
words
:
u
}}
return
!
1
}}(),
C
=
function
(){
var
a
=
l
(
"
canvas
"
),
b
=
null
;
return
function
(
c
){
null
==
b
&&
(
b
=
a
.
getContext
(
"
2d
"
));
var
d
=
c
.
root
;
a
.
width
=
A
.
dpr
(
d
.
properties
.
width
),
a
.
height
=
A
.
dpr
(
d
.
properties
.
height
),
b
.
textBaseline
=
"
middle
"
,
b
.
fillStyle
=
d
.
children
.
holderBg
.
properties
.
fill
,
b
.
fillRect
(
0
,
0
,
A
.
dpr
(
d
.
children
.
holderBg
.
width
),
A
.
dpr
(
d
.
children
.
holderBg
.
height
));
var
e
=
d
.
children
.
holderTextGroup
;
e
.
properties
,
b
.
font
=
e
.
properties
.
font
.
weight
+
"
"
+
A
.
dpr
(
e
.
properties
.
font
.
size
)
+
e
.
properties
.
font
.
units
+
"
"
+
e
.
properties
.
font
.
family
+
"
, monospace
"
,
b
.
fillStyle
=
e
.
properties
.
fill
;
for
(
var
f
in
e
.
children
){
var
g
=
e
.
children
[
f
];
for
(
var
h
in
g
.
children
){
var
i
=
g
.
children
[
h
],
j
=
A
.
dpr
(
e
.
x
+
g
.
x
+
i
.
x
),
k
=
A
.
dpr
(
e
.
y
+
g
.
y
+
i
.
y
+
e
.
properties
.
leading
/
2
);
b
.
fillText
(
i
.
properties
.
text
,
j
,
k
)}}
return
a
.
toDataURL
(
"
image/png
"
)}}(),
D
=
function
(){
if
(
b
.
XMLSerializer
){
var
a
=
n
(
null
,
0
,
0
),
c
=
l
(
"
rect
"
,
x
);
return
a
.
appendChild
(
c
),
function
(
b
,
d
){
var
e
=
b
.
root
;
n
(
a
,
e
.
properties
.
width
,
e
.
properties
.
height
);
for
(
var
f
=
a
.
querySelectorAll
(
"
g
"
),
g
=
0
;
g
<
f
.
length
;
g
++
)
f
[
g
].
parentNode
.
removeChild
(
f
[
g
]);
m
(
c
,{
width
:
e
.
children
.
holderBg
.
width
,
height
:
e
.
children
.
holderBg
.
height
,
fill
:
e
.
children
.
holderBg
.
properties
.
fill
});
var
h
=
e
.
children
.
holderTextGroup
,
i
=
h
.
properties
,
j
=
l
(
"
g
"
,
x
);
a
.
appendChild
(
j
);
for
(
var
k
in
h
.
children
){
var
p
=
h
.
children
[
k
];
for
(
var
r
in
p
.
children
){
var
s
=
p
.
children
[
r
],
t
=
h
.
x
+
p
.
x
+
s
.
x
,
u
=
h
.
y
+
p
.
y
+
s
.
y
+
h
.
properties
.
leading
/
2
,
v
=
l
(
"
text
"
,
x
),
w
=
y
.
createTextNode
(
null
);
m
(
v
,{
x
:
t
,
y
:
u
,
style
:
q
({
fill
:
i
.
fill
,
"
font-weight
"
:
i
.
font
.
weight
,
"
font-family
"
:
i
.
font
.
family
+
"
, monospace
"
,
"
font-size
"
:
i
.
font
.
size
+
i
.
font
.
units
,
"
dominant-baseline
"
:
"
central
"
})}),
w
.
nodeValue
=
s
.
properties
.
text
,
v
.
appendChild
(
w
),
j
.
appendChild
(
v
)}}
var
z
=
"
data:image/svg+xml;base64,
"
+
btoa
(
unescape
(
encodeURIComponent
(
o
(
a
,
d
))));
return
z
}}}(),
E
=
function
(
a
){
function
b
(
a
,
b
){
for
(
var
c
in
b
)
a
[
c
]
=
b
[
c
];
return
a
}
var
c
=
1
,
d
=
augment
.
defclass
({
constructor
:
function
(
a
){
c
++
,
this
.
parent
=
null
,
this
.
children
=
{},
this
.
id
=
c
,
this
.
name
=
"
n
"
+
c
,
null
!=
a
&&
(
this
.
name
=
a
),
this
.
x
=
0
,
this
.
y
=
0
,
this
.
z
=
0
,
this
.
width
=
0
,
this
.
height
=
0
},
resize
:
function
(
a
,
b
){
null
!=
a
&&
(
this
.
width
=
a
),
null
!=
b
&&
(
this
.
height
=
b
)},
moveTo
:
function
(
a
,
b
,
c
){
this
.
x
=
null
!=
a
?
a
:
this
.
x
,
this
.
y
=
null
!=
b
?
b
:
this
.
y
,
this
.
z
=
null
!=
c
?
c
:
this
.
z
},
add
:
function
(
a
){
var
b
=
a
.
name
;
if
(
null
!=
this
.
children
[
b
])
throw
"
SceneGraph: child with that name already exists:
"
+
b
;
this
.
children
[
b
]
=
a
,
a
.
parent
=
this
}}),
e
=
augment
(
d
,
function
(
b
){
this
.
constructor
=
function
(){
b
.
constructor
.
call
(
this
,
"
root
"
),
this
.
properties
=
a
}}),
f
=
augment
(
d
,
function
(
a
){
function
c
(
c
,
d
){
if
(
a
.
constructor
.
call
(
this
,
c
),
this
.
properties
=
{
fill
:
"
#000
"
},
null
!=
d
)
b
(
this
.
properties
,
d
);
else
if
(
null
!=
c
&&
"
string
"
!=
typeof
c
)
throw
"
SceneGraph: invalid node name
"
}
this
.
Group
=
augment
.
extend
(
this
,{
constructor
:
c
,
type
:
"
group
"
}),
this
.
Rect
=
augment
.
extend
(
this
,{
constructor
:
c
,
type
:
"
rect
"
}),
this
.
Text
=
augment
.
extend
(
this
,{
constructor
:
function
(
a
){
c
.
call
(
this
),
this
.
properties
.
text
=
a
},
type
:
"
text
"
})}),
g
=
new
e
;
return
this
.
Shape
=
f
,
this
.
root
=
g
,
this
};
for
(
var
F
in
A
.
flags
)
A
.
flags
.
hasOwnProperty
(
F
)
&&
(
A
.
flags
[
F
].
match
=
function
(
a
){
return
a
.
match
(
this
.
regex
)});
A
.
setup
=
{
renderer
:
"
html
"
,
debounce
:
100
,
ratio
:
1
,
supportsCanvas
:
!
1
,
supportsSVG
:
!
1
,
lineWrapRatio
:.
9
,
renderers
:[
"
html
"
,
"
canvas
"
,
"
svg
"
]},
A
.
dpr
=
function
(
a
){
return
a
*
A
.
setup
.
ratio
},
A
.
vars
=
{
preempted
:
!
1
,
resizableImages
:[],
debounceTimer
:
null
,
cache
:{}},
function
(){
var
a
=
1
,
c
=
1
,
d
=
l
(
"
canvas
"
),
e
=
null
;
d
.
getContext
&&-
1
!=
d
.
toDataURL
(
"
image/png
"
).
indexOf
(
"
data:image/png
"
)
&&
(
A
.
setup
.
renderer
=
"
canvas
"
,
e
=
d
.
getContext
(
"
2d
"
),
A
.
setup
.
supportsCanvas
=!
0
),
A
.
setup
.
supportsCanvas
&&
(
a
=
b
.
devicePixelRatio
||
1
,
c
=
e
.
webkitBackingStorePixelRatio
||
e
.
mozBackingStorePixelRatio
||
e
.
msBackingStorePixelRatio
||
e
.
oBackingStorePixelRatio
||
e
.
backingStorePixelRatio
||
1
),
A
.
setup
.
ratio
=
a
/
c
,
y
.
createElementNS
&&
y
.
createElementNS
(
x
,
"
svg
"
).
createSVGRect
&&
(
A
.
setup
.
renderer
=
"
svg
"
,
A
.
setup
.
supportsSVG
=!
0
)}(),
a
(
z
,
"
Holder
"
,
b
),
b
.
onDomReady
&&
b
.
onDomReady
(
function
(){
A
.
vars
.
preempted
||
z
.
run
(),
b
.
addEventListener
?(
b
.
addEventListener
(
"
resize
"
,
s
,
!
1
),
b
.
addEventListener
(
"
orientationchange
"
,
s
,
!
1
)):
b
.
attachEvent
(
"
onresize
"
,
s
),
"
object
"
==
typeof
b
.
Turbolinks
&&
b
.
document
.
addEventListener
(
"
page:change
"
,
function
(){
z
.
run
()})})}(
function
(
a
,
b
,
c
){
var
d
=
"
function
"
==
typeof
define
&&
define
.
amd
;
d
?
define
(
a
):
c
[
b
]
=
a
},
this
),
/*!
* ZeroClipboard
* ZeroClipboard
* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface.
* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface.
* Copyright (c) 2014 Jon Rohan, James M. Greene
* Copyright (c) 2014 Jon Rohan, James M. Greene
...
@@ -23,4 +28,4 @@ License: http://opensource.org/licenses/MIT
...
@@ -23,4 +28,4 @@ License: http://opensource.org/licenses/MIT
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see http://creativecommons.org/licenses/by/3.0/.
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
*/
!
function
(
a
){
"
use strict
"
;
a
(
function
(){
var
b
=
a
(
window
),
c
=
a
(
document
.
body
);
c
.
scrollspy
({
target
:
"
.bs-docs-sidebar
"
}),
b
.
on
(
"
load
"
,
function
(){
c
.
scrollspy
(
"
refresh
"
)}),
a
(
"
.bs-docs-container [href=#]
"
).
click
(
function
(
a
){
a
.
preventDefault
()}),
setTimeout
(
function
(){
var
b
=
a
(
"
.bs-docs-sidebar
"
);
b
.
affix
({
offset
:{
top
:
function
(){
var
c
=
b
.
offset
().
top
,
d
=
parseInt
(
b
.
children
(
0
).
css
(
"
margin-top
"
),
10
),
e
=
a
(
"
.bs-docs-nav
"
).
height
();
return
this
.
top
=
c
-
e
-
d
},
bottom
:
function
(){
return
this
.
bottom
=
a
(
"
.bs-docs-footer
"
).
outerHeight
(
!
0
)}}})},
100
),
setTimeout
(
function
(){
a
(
"
.bs-top
"
).
affix
()},
100
),
function
(){
var
b
=
a
(
"
#bs-theme-stylesheet
"
),
c
=
a
(
"
.bs-docs-theme-toggle
"
),
d
=
function
(){
b
.
attr
(
"
href
"
,
b
.
attr
(
"
data-href
"
)),
c
.
text
(
"
Disable theme preview
"
),
localStorage
.
setItem
(
"
previewTheme
"
,
!
0
)};
localStorage
.
getItem
(
"
previewTheme
"
)
&&
d
(),
c
.
click
(
function
(){
var
a
=
b
.
attr
(
"
href
"
);
a
&&
0
!==
a
.
indexOf
(
"
data
"
)?(
b
.
attr
(
"
href
"
,
""
),
c
.
text
(
"
Preview theme
"
),
localStorage
.
removeItem
(
"
previewTheme
"
)):
d
()})}(),
a
(
"
.tooltip-demo
"
).
tooltip
({
selector
:
'
[data-toggle="tooltip"]
'
,
container
:
"
body
"
}),
a
(
"
.popover-demo
"
).
popover
({
selector
:
'
[data-toggle="popover"]
'
,
container
:
"
body
"
}),
a
(
"
.tooltip-test
"
).
tooltip
(),
a
(
"
.popover-test
"
).
popover
(),
a
(
"
.bs-docs-popover
"
).
popover
(),
a
(
"
#loading-example-btn
"
).
on
(
"
click
"
,
function
(){
var
b
=
a
(
this
);
b
.
button
(
"
loading
"
),
setTimeout
(
function
(){
b
.
button
(
"
reset
"
)},
3
e3
)}),
a
(
"
#exampleModal
"
).
on
(
"
show.bs.modal
"
,
function
(
b
){
var
c
=
a
(
b
.
relatedTarget
),
d
=
c
.
data
(
"
whatever
"
),
e
=
a
(
this
);
e
.
find
(
"
.modal-title
"
).
text
(
"
New message to
"
+
d
),
e
.
find
(
"
.modal-body input
"
).
val
(
d
)}),
a
(
"
.bs-docs-activate-animated-progressbar
"
).
on
(
"
click
"
,
function
(){
a
(
this
).
siblings
(
"
.progress
"
).
find
(
"
.progress-bar-striped
"
).
toggleClass
(
"
active
"
)}),
ZeroClipboard
.
config
({
moviePath
:
"
/assets/flash/ZeroClipboard.swf
"
,
hoverClass
:
"
btn-clipboard-hover
"
}),
a
(
"
.highlight
"
).
each
(
function
(){
var
b
=
'
<div class="zero-clipboard"><span class="btn-clipboard">Copy</span></div>
'
;
a
(
this
).
before
(
b
)});
var
d
=
new
ZeroClipboard
(
a
(
"
.btn-clipboard
"
)),
e
=
a
(
"
#global-zeroclipboard-html-bridge
"
);
d
.
on
(
"
load
"
,
function
(){
e
.
data
(
"
placement
"
,
"
top
"
).
attr
(
"
title
"
,
"
Copy to clipboard
"
).
tooltip
()}),
d
.
on
(
"
dataRequested
"
,
function
(
b
){
var
c
=
a
(
this
).
parent
().
nextAll
(
"
.highlight
"
).
first
();
b
.
setText
(
c
.
text
())}),
d
.
on
(
"
complete
"
,
function
(){
e
.
attr
(
"
title
"
,
"
Copied!
"
).
tooltip
(
"
fixTitle
"
).
tooltip
(
"
show
"
).
attr
(
"
title
"
,
"
Copy to clipboard
"
).
tooltip
(
"
fixTitle
"
)}),
d
.
on
(
"
noflash wrongflash
"
,
function
(){
e
.
attr
(
"
title
"
,
"
Flash required
"
).
tooltip
(
"
fixTitle
"
).
tooltip
(
"
show
"
)})})}(
jQuery
);
!
function
(
a
){
"
use strict
"
;
a
(
function
(){
var
b
=
a
(
window
),
c
=
a
(
document
.
body
);
c
.
scrollspy
({
target
:
"
.bs-docs-sidebar
"
}),
b
.
on
(
"
load
"
,
function
(){
c
.
scrollspy
(
"
refresh
"
)}),
a
(
"
.bs-docs-container [href=#]
"
).
click
(
function
(
a
){
a
.
preventDefault
()}),
setTimeout
(
function
(){
var
b
=
a
(
"
.bs-docs-sidebar
"
);
b
.
affix
({
offset
:{
top
:
function
(){
var
c
=
b
.
offset
().
top
,
d
=
parseInt
(
b
.
children
(
0
).
css
(
"
margin-top
"
),
10
),
e
=
a
(
"
.bs-docs-nav
"
).
height
();
return
this
.
top
=
c
-
e
-
d
},
bottom
:
function
(){
return
this
.
bottom
=
a
(
"
.bs-docs-footer
"
).
outerHeight
(
!
0
)}}})},
100
),
setTimeout
(
function
(){
a
(
"
.bs-top
"
).
affix
()},
100
),
function
(){
var
b
=
a
(
"
#bs-theme-stylesheet
"
),
c
=
a
(
"
.bs-docs-theme-toggle
"
),
d
=
function
(){
b
.
attr
(
"
href
"
,
b
.
attr
(
"
data-href
"
)),
c
.
text
(
"
Disable theme preview
"
),
localStorage
.
setItem
(
"
previewTheme
"
,
!
0
)};
localStorage
.
getItem
(
"
previewTheme
"
)
&&
d
(),
c
.
click
(
function
(){
var
a
=
b
.
attr
(
"
href
"
);
a
&&
0
!==
a
.
indexOf
(
"
data
"
)?(
b
.
attr
(
"
href
"
,
""
),
c
.
text
(
"
Preview theme
"
),
localStorage
.
removeItem
(
"
previewTheme
"
)):
d
()})}(),
a
(
"
.tooltip-demo
"
).
tooltip
({
selector
:
'
[data-toggle="tooltip"]
'
,
container
:
"
body
"
}),
a
(
"
.popover-demo
"
).
popover
({
selector
:
'
[data-toggle="popover"]
'
,
container
:
"
body
"
}),
a
(
"
.tooltip-test
"
).
tooltip
(),
a
(
"
.popover-test
"
).
popover
(),
a
(
"
.bs-docs-popover
"
).
popover
(),
a
(
"
#loading-example-btn
"
).
on
(
"
click
"
,
function
(){
var
b
=
a
(
this
);
b
.
button
(
"
loading
"
),
setTimeout
(
function
(){
b
.
button
(
"
reset
"
)},
3
e3
)}),
a
(
"
#exampleModal
"
).
on
(
"
show.bs.modal
"
,
function
(
b
){
var
c
=
a
(
b
.
relatedTarget
),
d
=
c
.
data
(
"
whatever
"
),
e
=
a
(
this
);
e
.
find
(
"
.modal-title
"
).
text
(
"
New message to
"
+
d
),
e
.
find
(
"
.modal-body input
"
).
val
(
d
)}),
a
(
"
.bs-docs-activate-animated-progressbar
"
).
on
(
"
click
"
,
function
(){
a
(
this
).
siblings
(
"
.progress
"
).
find
(
"
.progress-bar-striped
"
).
toggleClass
(
"
active
"
)}),
ZeroClipboard
.
config
({
moviePath
:
"
/assets/flash/ZeroClipboard.swf
"
,
hoverClass
:
"
btn-clipboard-hover
"
}),
a
(
"
.highlight
"
).
each
(
function
(){
var
b
=
'
<div class="zero-clipboard"><span class="btn-clipboard">Copy</span></div>
'
;
a
(
this
).
before
(
b
)});
var
d
=
new
ZeroClipboard
(
a
(
"
.btn-clipboard
"
)),
e
=
a
(
"
#global-zeroclipboard-html-bridge
"
);
d
.
on
(
"
load
"
,
function
(){
e
.
data
(
"
placement
"
,
"
top
"
).
attr
(
"
title
"
,
"
Copy to clipboard
"
).
tooltip
()}),
d
.
on
(
"
dataRequested
"
,
function
(
b
){
var
c
=
a
(
this
).
parent
().
nextAll
(
"
.highlight
"
).
first
();
b
.
setText
(
c
.
text
())}),
d
.
on
(
"
complete
"
,
function
(){
e
.
attr
(
"
title
"
,
"
Copied!
"
).
tooltip
(
"
fixTitle
"
).
tooltip
(
"
show
"
).
attr
(
"
title
"
,
"
Copy to clipboard
"
).
tooltip
(
"
fixTitle
"
)}),
d
.
on
(
"
noflash wrongflash
"
,
function
(){
e
.
attr
(
"
title
"
,
"
Flash required
"
).
tooltip
(
"
fixTitle
"
).
tooltip
(
"
show
"
)})})}(
jQuery
),
function
(){
"
use strict
"
;
addAnchors
(
"
.bs-docs-container h1, .bs-docs-container h2, .bs-docs-container h3, .bs-docs-container h4, .bs-docs-container h5
"
)}();
\ No newline at end of file
\ No newline at end of file
docs/assets/js/src/application.js
View file @
3f512c92
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* details, see http://creativecommons.org/licenses/by/3.0/.
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
*/
/* global ZeroClipboard */
/* global ZeroClipboard
, addAnchors
*/
!
function
(
$
)
{
!
function
(
$
)
{
'
use strict
'
;
'
use strict
'
;
...
@@ -174,3 +174,8 @@
...
@@ -174,3 +174,8 @@
})
})
}(
jQuery
)
}(
jQuery
)
;(
function
()
{
'
use strict
'
;
addAnchors
(
'
.bs-docs-container h1, .bs-docs-container h2, .bs-docs-container h3, .bs-docs-container h4, .bs-docs-container h5
'
);
})();
docs/assets/js/vendor/anchor.js
0 → 100644
View file @
3f512c92
/*!
* AnchorJS - v0.1.0 - 2014-08-17
* https://github.com/bryanbraun/anchorjs
* Copyright (c) 2014 Bryan Braun; Licensed MIT
*/
function
addAnchors
(
selector
)
{
'
use strict
'
;
// Sensible default selector, if none is provided.
if
(
!
selector
)
{
selector
=
'
h1, h2, h3, h4, h5, h6
'
;
}
else
if
(
typeof
selector
!==
'
string
'
)
{
throw
new
Error
(
'
AnchorJS accepts only strings; you used a
'
+
typeof
selector
);
}
// Select any elements that match the provided selector.
var
elements
=
document
.
querySelectorAll
(
selector
);
// Loop through the selected elements.
for
(
var
i
=
0
;
i
<
elements
.
length
;
i
++
)
{
var
elementID
;
if
(
elements
[
i
].
hasAttribute
(
'
id
'
))
{
elementID
=
elements
[
i
].
getAttribute
(
'
id
'
);
}
else
{
// We need to create an ID on our element. First, we find which text selection method is available to the browser.
var
textMethod
=
document
.
body
.
textContent
?
'
textContent
'
:
'
innerText
'
;
// Get the text inside our element
var
roughText
=
elements
[
i
][
textMethod
];
// Refine it so it makes a good ID. Makes all lowercase and hyphen separated.
// Ex. Hello World > hello-world
var
tidyText
=
roughText
.
replace
(
/
\s
+/g
,
'
-
'
).
toLowerCase
();
// Assign it to our element.
// Currently the setAttribute element is only supported in IE9 and above.
elements
[
i
].
setAttribute
(
'
id
'
,
tidyText
);
// Grab it for use in our anchor.
elementID
=
tidyText
;
}
var
anchor
=
'
<a class="anchorjs-link" href="#
'
+
elementID
+
'
"><span class="anchorjs-icon"></span></a>
'
;
elements
[
i
].
innerHTML
+=
anchor
;
}
}
grunt/configBridge.json
View file @
3f512c92
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
"docsJs"
:
[
"docsJs"
:
[
"../assets/js/vendor/holder.js"
,
"../assets/js/vendor/holder.js"
,
"../assets/js/vendor/ZeroClipboard.min.js"
,
"../assets/js/vendor/ZeroClipboard.min.js"
,
"../assets/js/vendor/anchor.js"
,
"../assets/js/src/application.js"
"../assets/js/src/application.js"
]
]
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment