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
68cbba34
Commit
68cbba34
authored
Dec 03, 2012
by
Andreas Cederström
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixing header color for success, error and info alerts
parent
eca23e9b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
18 deletions
+27
-18
docs/assets/css/bootstrap.css
docs/assets/css/bootstrap.css
+13
-0
docs/assets/js/bootstrap.min.js
docs/assets/js/bootstrap.min.js
+1
-18
less/alerts.less
less/alerts.less
+13
-0
No files found.
docs/assets/css/bootstrap.css
View file @
68cbba34
...
@@ -3838,6 +3838,10 @@ input[type="submit"].btn.btn-mini {
...
@@ -3838,6 +3838,10 @@ input[type="submit"].btn.btn-mini {
border-color
:
#d6e9c6
;
border-color
:
#d6e9c6
;
}
}
.alert-success
h4
{
color
:
#468847
;
}
.alert-danger
,
.alert-danger
,
.alert-error
{
.alert-error
{
color
:
#b94a48
;
color
:
#b94a48
;
...
@@ -3845,12 +3849,21 @@ input[type="submit"].btn.btn-mini {
...
@@ -3845,12 +3849,21 @@ input[type="submit"].btn.btn-mini {
border-color
:
#eed3d7
;
border-color
:
#eed3d7
;
}
}
.alert-danger
h4
,
.alert-error
h4
{
color
:
#b94a48
;
}
.alert-info
{
.alert-info
{
color
:
#3a87ad
;
color
:
#3a87ad
;
background-color
:
#d9edf7
;
background-color
:
#d9edf7
;
border-color
:
#bce8f1
;
border-color
:
#bce8f1
;
}
}
.alert-info
h4
{
color
:
#3a87ad
;
}
.alert-block
{
.alert-block
{
padding-top
:
14px
;
padding-top
:
14px
;
padding-bottom
:
14px
;
padding-bottom
:
14px
;
...
...
docs/assets/js/bootstrap.min.js
View file @
68cbba34
...
@@ -3,21 +3,4 @@
...
@@ -3,21 +3,4 @@
* Copyright 2012 Twitter, Inc.
* Copyright 2012 Twitter, Inc.
* http://www.apache.org/licenses/LICENSE-2.0.txt
* http://www.apache.org/licenses/LICENSE-2.0.txt
*/
*/
/* ===================================================
!
function
(
$
){
"
use strict
"
;
$
(
function
(){
$
.
support
.
transition
=
function
(){
var
transitionEnd
=
function
(){
var
name
,
el
=
document
.
createElement
(
"
bootstrap
"
),
transEndEventNames
=
{
WebkitTransition
:
"
webkitTransitionEnd
"
,
MozTransition
:
"
transitionend
"
,
OTransition
:
"
oTransitionEnd otransitionend
"
,
transition
:
"
transitionend
"
};
for
(
name
in
transEndEventNames
)
if
(
void
0
!==
el
.
style
[
name
])
return
transEndEventNames
[
name
]}();
return
transitionEnd
&&
{
end
:
transitionEnd
}}()})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
dismiss
=
'
[data-dismiss="alert"]
'
,
Alert
=
function
(
el
){
$
(
el
).
on
(
"
click
"
,
dismiss
,
this
.
close
)};
Alert
.
prototype
.
close
=
function
(
e
){
function
removeElement
(){
$parent
.
trigger
(
"
closed
"
).
remove
()}
var
$parent
,
$this
=
$
(
this
),
selector
=
$this
.
attr
(
"
data-target
"
);
selector
||
(
selector
=
$this
.
attr
(
"
href
"
),
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
$parent
=
$
(
selector
),
e
&&
e
.
preventDefault
(),
$parent
.
length
||
(
$parent
=
$this
.
hasClass
(
"
alert
"
)?
$this
:
$this
.
parent
()),
$parent
.
trigger
(
e
=
$
.
Event
(
"
close
"
)),
e
.
isDefaultPrevented
()
||
(
$parent
.
removeClass
(
"
in
"
),
$
.
support
.
transition
&&
$parent
.
hasClass
(
"
fade
"
)?
$parent
.
on
(
$
.
support
.
transition
.
end
,
removeElement
):
removeElement
())},
$
.
fn
.
alert
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
alert
"
);
data
||
$this
.
data
(
"
alert
"
,
data
=
new
Alert
(
this
)),
"
string
"
==
typeof
option
&&
data
[
option
].
call
(
$this
)})},
$
.
fn
.
alert
.
Constructor
=
Alert
,
$
(
document
).
on
(
"
click.alert.data-api
"
,
dismiss
,
Alert
.
prototype
.
close
)}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Button
=
function
(
element
,
options
){
this
.
$element
=
$
(
element
),
this
.
options
=
$
.
extend
({},
$
.
fn
.
button
.
defaults
,
options
)};
Button
.
prototype
.
setState
=
function
(
state
){
var
d
=
"
disabled
"
,
$el
=
this
.
$element
,
data
=
$el
.
data
(),
val
=
$el
.
is
(
"
input
"
)?
"
val
"
:
"
html
"
;
state
+=
"
Text
"
,
data
.
resetText
||
$el
.
data
(
"
resetText
"
,
$el
[
val
]()),
$el
[
val
](
data
[
state
]
||
this
.
options
[
state
]),
setTimeout
(
function
(){
"
loadingText
"
==
state
?
$el
.
addClass
(
d
).
attr
(
d
,
d
):
$el
.
removeClass
(
d
).
removeAttr
(
d
)},
0
)},
Button
.
prototype
.
toggle
=
function
(){
var
$parent
=
this
.
$element
.
closest
(
'
[data-toggle="buttons-radio"]
'
);
$parent
&&
$parent
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
this
.
$element
.
toggleClass
(
"
active
"
)},
$
.
fn
.
button
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
button
"
),
options
=
"
object
"
==
typeof
option
&&
option
;
data
||
$this
.
data
(
"
button
"
,
data
=
new
Button
(
this
,
options
)),
"
toggle
"
==
option
?
data
.
toggle
():
option
&&
data
.
setState
(
option
)})},
$
.
fn
.
button
.
defaults
=
{
loadingText
:
"
loading...
"
},
$
.
fn
.
button
.
Constructor
=
Button
,
$
(
document
).
on
(
"
click.button.data-api
"
,
"
[data-toggle^=button]
"
,
function
(
e
){
var
$btn
=
$
(
e
.
target
);
$btn
.
hasClass
(
"
btn
"
)
||
(
$btn
=
$btn
.
closest
(
"
.btn
"
)),
$btn
.
button
(
"
toggle
"
)})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Carousel
=
function
(
element
,
options
){
this
.
$element
=
$
(
element
),
this
.
options
=
options
,
this
.
options
.
slide
&&
this
.
slide
(
this
.
options
.
slide
),
"
hover
"
==
this
.
options
.
pause
&&
this
.
$element
.
on
(
"
mouseenter
"
,
$
.
proxy
(
this
.
pause
,
this
)).
on
(
"
mouseleave
"
,
$
.
proxy
(
this
.
cycle
,
this
))};
Carousel
.
prototype
=
{
cycle
:
function
(
e
){
return
e
||
(
this
.
paused
=!
1
),
this
.
options
.
interval
&&!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
$
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
)),
this
},
to
:
function
(
pos
){
var
$active
=
this
.
$element
.
find
(
"
.item.active
"
),
children
=
$active
.
parent
().
children
(),
activePos
=
children
.
index
(
$active
),
that
=
this
;
if
(
!
(
pos
>
children
.
length
-
1
||
0
>
pos
))
return
this
.
sliding
?
this
.
$element
.
one
(
"
slid
"
,
function
(){
that
.
to
(
pos
)}):
activePos
==
pos
?
this
.
pause
().
cycle
():
this
.
slide
(
pos
>
activePos
?
"
next
"
:
"
prev
"
,
$
(
children
[
pos
]))},
pause
:
function
(
e
){
return
e
||
(
this
.
paused
=!
0
),
this
.
$element
.
find
(
"
.next, .prev
"
).
length
&&
$
.
support
.
transition
.
end
&&
(
this
.
$element
.
trigger
(
$
.
support
.
transition
.
end
),
this
.
cycle
()),
clearInterval
(
this
.
interval
),
this
.
interval
=
null
,
this
},
next
:
function
(){
return
this
.
sliding
?
void
0
:
this
.
slide
(
"
next
"
)},
prev
:
function
(){
return
this
.
sliding
?
void
0
:
this
.
slide
(
"
prev
"
)},
slide
:
function
(
type
,
next
){
var
e
,
$active
=
this
.
$element
.
find
(
"
.item.active
"
),
$next
=
next
||
$active
[
type
](),
isCycling
=
this
.
interval
,
direction
=
"
next
"
==
type
?
"
left
"
:
"
right
"
,
fallback
=
"
next
"
==
type
?
"
first
"
:
"
last
"
,
that
=
this
;
if
(
this
.
sliding
=!
0
,
isCycling
&&
this
.
pause
(),
$next
=
$next
.
length
?
$next
:
this
.
$element
.
find
(
"
.item
"
)[
fallback
](),
e
=
$
.
Event
(
"
slide
"
,{
relatedTarget
:
$next
[
0
]}),
!
$next
.
hasClass
(
"
active
"
)){
if
(
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
slide
"
)){
if
(
this
.
$element
.
trigger
(
e
),
e
.
isDefaultPrevented
())
return
;
$next
.
addClass
(
type
),
$next
[
0
].
offsetWidth
,
$active
.
addClass
(
direction
),
$next
.
addClass
(
direction
),
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
(){
$next
.
removeClass
([
type
,
direction
].
join
(
"
"
)).
addClass
(
"
active
"
),
$active
.
removeClass
([
"
active
"
,
direction
].
join
(
"
"
)),
that
.
sliding
=!
1
,
setTimeout
(
function
(){
that
.
$element
.
trigger
(
"
slid
"
)},
0
)})}
else
{
if
(
this
.
$element
.
trigger
(
e
),
e
.
isDefaultPrevented
())
return
;
$active
.
removeClass
(
"
active
"
),
$next
.
addClass
(
"
active
"
),
this
.
sliding
=!
1
,
this
.
$element
.
trigger
(
"
slid
"
)}
return
isCycling
&&
this
.
cycle
(),
this
}}},
$
.
fn
.
carousel
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
carousel
"
),
options
=
$
.
extend
({},
$
.
fn
.
carousel
.
defaults
,
"
object
"
==
typeof
option
&&
option
),
action
=
"
string
"
==
typeof
option
?
option
:
options
.
slide
;
data
||
$this
.
data
(
"
carousel
"
,
data
=
new
Carousel
(
this
,
options
)),
"
number
"
==
typeof
option
?
data
.
to
(
option
):
action
?
data
[
action
]():
options
.
interval
&&
data
.
cycle
()})},
$
.
fn
.
carousel
.
defaults
=
{
interval
:
5
e3
,
pause
:
"
hover
"
},
$
.
fn
.
carousel
.
Constructor
=
Carousel
,
$
(
document
).
on
(
"
click.carousel.data-api
"
,
"
[data-slide]
"
,
function
(
e
){
var
href
,
$this
=
$
(
this
),
$target
=
$
(
$this
.
attr
(
"
data-target
"
)
||
(
href
=
$this
.
attr
(
"
href
"
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
options
=
$
.
extend
({},
$target
.
data
(),
$this
.
data
());
$target
.
carousel
(
options
),
e
.
preventDefault
()})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Collapse
=
function
(
element
,
options
){
this
.
$element
=
$
(
element
),
this
.
options
=
$
.
extend
({},
$
.
fn
.
collapse
.
defaults
,
options
),
this
.
options
.
parent
&&
(
this
.
$parent
=
$
(
this
.
options
.
parent
)),
this
.
options
.
toggle
&&
this
.
toggle
()};
Collapse
.
prototype
=
{
constructor
:
Collapse
,
dimension
:
function
(){
var
hasWidth
=
this
.
$element
.
hasClass
(
"
width
"
);
return
hasWidth
?
"
width
"
:
"
height
"
},
show
:
function
(){
var
dimension
,
scroll
,
actives
,
hasData
;
if
(
!
this
.
transitioning
){
if
(
dimension
=
this
.
dimension
(),
scroll
=
$
.
camelCase
([
"
scroll
"
,
dimension
].
join
(
"
-
"
)),
actives
=
this
.
$parent
&&
this
.
$parent
.
find
(
"
> .accordion-group > .in
"
),
actives
&&
actives
.
length
){
if
(
hasData
=
actives
.
data
(
"
collapse
"
),
hasData
&&
hasData
.
transitioning
)
return
;
actives
.
collapse
(
"
hide
"
),
hasData
||
actives
.
data
(
"
collapse
"
,
null
)}
this
.
$element
[
dimension
](
0
),
this
.
transition
(
"
addClass
"
,
$
.
Event
(
"
show
"
),
"
shown
"
),
$
.
support
.
transition
&&
this
.
$element
[
dimension
](
this
.
$element
[
0
][
scroll
])}},
hide
:
function
(){
var
dimension
;
this
.
transitioning
||
(
dimension
=
this
.
dimension
(),
this
.
reset
(
this
.
$element
[
dimension
]()),
this
.
transition
(
"
removeClass
"
,
$
.
Event
(
"
hide
"
),
"
hidden
"
),
this
.
$element
[
dimension
](
0
))},
reset
:
function
(
size
){
var
dimension
=
this
.
dimension
();
return
this
.
$element
.
removeClass
(
"
collapse
"
)[
dimension
](
size
||
"
auto
"
)[
0
].
offsetWidth
,
this
.
$element
[
null
!==
size
?
"
addClass
"
:
"
removeClass
"
](
"
collapse
"
),
this
},
transition
:
function
(
method
,
startEvent
,
completeEvent
){
var
that
=
this
,
complete
=
function
(){
"
show
"
==
startEvent
.
type
&&
that
.
reset
(),
that
.
transitioning
=
0
,
that
.
$element
.
trigger
(
completeEvent
)};
this
.
$element
.
trigger
(
startEvent
),
startEvent
.
isDefaultPrevented
()
||
(
this
.
transitioning
=
1
,
this
.
$element
[
method
](
"
in
"
),
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
collapse
"
)?
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
complete
):
complete
())},
toggle
:
function
(){
this
[
this
.
$element
.
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()}},
$
.
fn
.
collapse
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
collapse
"
),
options
=
"
object
"
==
typeof
option
&&
option
;
data
||
$this
.
data
(
"
collapse
"
,
data
=
new
Collapse
(
this
,
options
)),
"
string
"
==
typeof
option
&&
data
[
option
]()})},
$
.
fn
.
collapse
.
defaults
=
{
toggle
:
!
0
},
$
.
fn
.
collapse
.
Constructor
=
Collapse
,
$
(
document
).
on
(
"
click.collapse.data-api
"
,
"
[data-toggle=collapse]
"
,
function
(
e
){
var
href
,
$this
=
$
(
this
),
target
=
$this
.
attr
(
"
data-target
"
)
||
e
.
preventDefault
()
||
(
href
=
$this
.
attr
(
"
href
"
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
),
option
=
$
(
target
).
data
(
"
collapse
"
)?
"
toggle
"
:
$this
.
data
();
$this
[
$
(
target
).
hasClass
(
"
in
"
)?
"
addClass
"
:
"
removeClass
"
](
"
collapsed
"
),
$
(
target
).
collapse
(
option
)})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
function
clearMenus
(){
$
(
toggle
).
each
(
function
(){
getParent
(
$
(
this
)).
removeClass
(
"
open
"
)})}
function
getParent
(
$this
){
var
$parent
,
selector
=
$this
.
attr
(
"
data-target
"
);
return
selector
||
(
selector
=
$this
.
attr
(
"
href
"
),
selector
=
selector
&&
/#/
.
test
(
selector
)
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
$parent
=
$
(
selector
),
$parent
.
length
||
(
$parent
=
$this
.
parent
()),
$parent
}
var
toggle
=
"
[data-toggle=dropdown]
"
,
Dropdown
=
function
(
element
){
var
$el
=
$
(
element
).
on
(
"
click.dropdown.data-api
"
,
this
.
toggle
);
$
(
"
html
"
).
on
(
"
click.dropdown.data-api
"
,
function
(){
$el
.
parent
().
removeClass
(
"
open
"
)})};
Dropdown
.
prototype
=
{
constructor
:
Dropdown
,
toggle
:
function
(){
var
$parent
,
isActive
,
$this
=
$
(
this
);
if
(
!
$this
.
is
(
"
.disabled, :disabled
"
))
return
$parent
=
getParent
(
$this
),
isActive
=
$parent
.
hasClass
(
"
open
"
),
clearMenus
(),
isActive
||
(
$parent
.
toggleClass
(
"
open
"
),
$this
.
focus
()),
!
1
},
keydown
:
function
(
e
){
var
$this
,
$items
,
$parent
,
isActive
,
index
;
if
(
/
(
38|40|27
)
/
.
test
(
e
.
keyCode
)
&&
(
$this
=
$
(
this
),
e
.
preventDefault
(),
e
.
stopPropagation
(),
!
$this
.
is
(
"
.disabled, :disabled
"
))){
if
(
$parent
=
getParent
(
$this
),
isActive
=
$parent
.
hasClass
(
"
open
"
),
!
isActive
||
isActive
&&
27
==
e
.
keyCode
)
return
$this
.
click
();
$items
=
$
(
"
[role=menu] li:not(.divider) a
"
,
$parent
),
$items
.
length
&&
(
index
=
$items
.
index
(
$items
.
filter
(
"
:focus
"
)),
38
==
e
.
keyCode
&&
index
>
0
&&
index
--
,
40
==
e
.
keyCode
&&
$items
.
length
-
1
>
index
&&
index
++
,
~
index
||
(
index
=
0
),
$items
.
eq
(
index
).
focus
())}}},
$
.
fn
.
dropdown
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
dropdown
"
);
data
||
$this
.
data
(
"
dropdown
"
,
data
=
new
Dropdown
(
this
)),
"
string
"
==
typeof
option
&&
data
[
option
].
call
(
$this
)})},
$
.
fn
.
dropdown
.
Constructor
=
Dropdown
,
$
(
document
).
on
(
"
click.dropdown.data-api touchstart.dropdown.data-api
"
,
clearMenus
).
on
(
"
click.dropdown touchstart.dropdown.data-api
"
,
"
.dropdown form
"
,
function
(
e
){
e
.
stopPropagation
()}).
on
(
"
click.dropdown.data-api touchstart.dropdown.data-api
"
,
toggle
,
Dropdown
.
prototype
.
toggle
).
on
(
"
keydown.dropdown.data-api touchstart.dropdown.data-api
"
,
toggle
+
"
, [role=menu]
"
,
Dropdown
.
prototype
.
keydown
)}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Modal
=
function
(
element
,
options
){
this
.
options
=
options
,
this
.
$element
=
$
(
element
).
delegate
(
'
[data-dismiss="modal"]
'
,
"
click.dismiss.modal
"
,
$
.
proxy
(
this
.
hide
,
this
)),
this
.
options
.
remote
&&
this
.
$element
.
find
(
"
.modal-body
"
).
load
(
this
.
options
.
remote
)};
Modal
.
prototype
=
{
constructor
:
Modal
,
toggle
:
function
(){
return
this
[
this
.
isShown
?
"
hide
"
:
"
show
"
]()},
show
:
function
(){
var
that
=
this
,
e
=
$
.
Event
(
"
show
"
);
this
.
$element
.
trigger
(
e
),
this
.
isShown
||
e
.
isDefaultPrevented
()
||
(
this
.
isShown
=!
0
,
this
.
escape
(),
this
.
backdrop
(
function
(){
var
transition
=
$
.
support
.
transition
&&
that
.
$element
.
hasClass
(
"
fade
"
);
that
.
$element
.
parent
().
length
||
that
.
$element
.
appendTo
(
document
.
body
),
that
.
$element
.
show
(),
transition
&&
that
.
$element
[
0
].
offsetWidth
,
that
.
$element
.
addClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
1
),
that
.
enforceFocus
(),
transition
?
that
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
(){
that
.
$element
.
focus
().
trigger
(
"
shown
"
)}):
that
.
$element
.
focus
().
trigger
(
"
shown
"
)}))},
hide
:
function
(
e
){
e
&&
e
.
preventDefault
(),
e
=
$
.
Event
(
"
hide
"
),
this
.
$element
.
trigger
(
e
),
this
.
isShown
&&!
e
.
isDefaultPrevented
()
&&
(
this
.
isShown
=!
1
,
this
.
escape
(),
$
(
document
).
off
(
"
focusin.modal
"
),
this
.
$element
.
removeClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
0
),
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
hideWithTransition
():
this
.
hideModal
())},
enforceFocus
:
function
(){
var
that
=
this
;
$
(
document
).
on
(
"
focusin.modal
"
,
function
(
e
){
that
.
$element
[
0
]
===
e
.
target
||
that
.
$element
.
has
(
e
.
target
).
length
||
that
.
$element
.
focus
()})},
escape
:
function
(){
var
that
=
this
;
this
.
isShown
&&
this
.
options
.
keyboard
?
this
.
$element
.
on
(
"
keyup.dismiss.modal
"
,
function
(
e
){
27
==
e
.
which
&&
that
.
hide
()}):
this
.
isShown
||
this
.
$element
.
off
(
"
keyup.dismiss.modal
"
)},
hideWithTransition
:
function
(){
var
that
=
this
,
timeout
=
setTimeout
(
function
(){
that
.
$element
.
off
(
$
.
support
.
transition
.
end
),
that
.
hideModal
()},
500
);
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
(){
clearTimeout
(
timeout
),
that
.
hideModal
()})},
hideModal
:
function
(){
this
.
$element
.
hide
().
trigger
(
"
hidden
"
),
this
.
backdrop
()},
removeBackdrop
:
function
(){
this
.
$backdrop
.
remove
(),
this
.
$backdrop
=
null
},
backdrop
:
function
(
callback
){
var
animate
=
this
.
$element
.
hasClass
(
"
fade
"
)?
"
fade
"
:
""
;
if
(
this
.
isShown
&&
this
.
options
.
backdrop
){
var
doAnimate
=
$
.
support
.
transition
&&
animate
;
this
.
$backdrop
=
$
(
'
<div class="modal-backdrop
'
+
animate
+
'
" />
'
).
appendTo
(
document
.
body
),
this
.
$backdrop
.
click
(
"
static
"
==
this
.
options
.
backdrop
?
$
.
proxy
(
this
.
$element
[
0
].
focus
,
this
.
$element
[
0
]):
$
.
proxy
(
this
.
hide
,
this
)),
doAnimate
&&
this
.
$backdrop
[
0
].
offsetWidth
,
this
.
$backdrop
.
addClass
(
"
in
"
),
doAnimate
?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
):
callback
()}
else
!
this
.
isShown
&&
this
.
$backdrop
?(
this
.
$backdrop
.
removeClass
(
"
in
"
),
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
$
.
proxy
(
this
.
removeBackdrop
,
this
)):
this
.
removeBackdrop
()):
callback
&&
callback
()}},
$
.
fn
.
modal
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
modal
"
),
options
=
$
.
extend
({},
$
.
fn
.
modal
.
defaults
,
$this
.
data
(),
"
object
"
==
typeof
option
&&
option
);
data
||
$this
.
data
(
"
modal
"
,
data
=
new
Modal
(
this
,
options
)),
"
string
"
==
typeof
option
?
data
[
option
]():
options
.
show
&&
data
.
show
()})},
$
.
fn
.
modal
.
defaults
=
{
backdrop
:
!
0
,
keyboard
:
!
0
,
show
:
!
0
},
$
.
fn
.
modal
.
Constructor
=
Modal
,
$
(
document
).
on
(
"
click.modal.data-api
"
,
'
[data-toggle="modal"]
'
,
function
(
e
){
var
$this
=
$
(
this
),
href
=
$this
.
attr
(
"
href
"
),
$target
=
$
(
$this
.
attr
(
"
data-target
"
)
||
href
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
option
=
$target
.
data
(
"
modal
"
)?
"
toggle
"
:
$
.
extend
({
remote
:
!
/#/
.
test
(
href
)
&&
href
},
$target
.
data
(),
$this
.
data
());
e
.
preventDefault
(),
$target
.
modal
(
option
).
one
(
"
hide
"
,
function
(){
$this
.
focus
()})})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Tooltip
=
function
(
element
,
options
){
this
.
init
(
"
tooltip
"
,
element
,
options
)};
Tooltip
.
prototype
=
{
constructor
:
Tooltip
,
init
:
function
(
type
,
element
,
options
){
var
eventIn
,
eventOut
;
this
.
type
=
type
,
this
.
$element
=
$
(
element
),
this
.
options
=
this
.
getOptions
(
options
),
this
.
enabled
=!
0
,
"
click
"
==
this
.
options
.
trigger
?
this
.
$element
.
on
(
"
click.
"
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
toggle
,
this
)):
"
manual
"
!=
this
.
options
.
trigger
&&
(
eventIn
=
"
hover
"
==
this
.
options
.
trigger
?
"
mouseenter
"
:
"
focus
"
,
eventOut
=
"
hover
"
==
this
.
options
.
trigger
?
"
mouseleave
"
:
"
blur
"
,
this
.
$element
.
on
(
eventIn
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
enter
,
this
)),
this
.
$element
.
on
(
eventOut
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
leave
,
this
))),
this
.
options
.
selector
?
this
.
_options
=
$
.
extend
({},
this
.
options
,{
trigger
:
"
manual
"
,
selector
:
""
}):
this
.
fixTitle
()},
getOptions
:
function
(
options
){
return
options
=
$
.
extend
({},
$
.
fn
[
this
.
type
].
defaults
,
options
,
this
.
$element
.
data
()),
options
.
delay
&&
"
number
"
==
typeof
options
.
delay
&&
(
options
.
delay
=
{
show
:
options
.
delay
,
hide
:
options
.
delay
}),
options
},
enter
:
function
(
e
){
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
return
self
.
options
.
delay
&&
self
.
options
.
delay
.
show
?(
clearTimeout
(
this
.
timeout
),
self
.
hoverState
=
"
in
"
,
this
.
timeout
=
setTimeout
(
function
(){
"
in
"
==
self
.
hoverState
&&
self
.
show
()},
self
.
options
.
delay
.
show
),
void
0
):
self
.
show
()},
leave
:
function
(
e
){
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
return
this
.
timeout
&&
clearTimeout
(
this
.
timeout
),
self
.
options
.
delay
&&
self
.
options
.
delay
.
hide
?(
self
.
hoverState
=
"
out
"
,
this
.
timeout
=
setTimeout
(
function
(){
"
out
"
==
self
.
hoverState
&&
self
.
hide
()},
self
.
options
.
delay
.
hide
),
void
0
):
self
.
hide
()},
show
:
function
(){
var
$tip
,
inside
,
pos
,
actualWidth
,
actualHeight
,
placement
,
tp
;
if
(
this
.
hasContent
()
&&
this
.
enabled
){
switch
(
$tip
=
this
.
tip
(),
this
.
setContent
(),
this
.
options
.
animation
&&
$tip
.
addClass
(
"
fade
"
),
placement
=
"
function
"
==
typeof
this
.
options
.
placement
?
this
.
options
.
placement
.
call
(
this
,
$tip
[
0
],
this
.
$element
[
0
]):
this
.
options
.
placement
,
inside
=
/in/
.
test
(
placement
),
$tip
.
detach
().
css
({
top
:
0
,
left
:
0
,
display
:
"
block
"
}).
insertAfter
(
this
.
$element
),
pos
=
this
.
getPosition
(
inside
),
actualWidth
=
$tip
[
0
].
offsetWidth
,
actualHeight
=
$tip
[
0
].
offsetHeight
,
inside
?
placement
.
split
(
"
"
)[
1
]:
placement
){
case
"
bottom
"
:
tp
=
{
top
:
pos
.
top
+
pos
.
height
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
};
break
;
case
"
top
"
:
tp
=
{
top
:
pos
.
top
-
actualHeight
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
};
break
;
case
"
left
"
:
tp
=
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
-
actualWidth
};
break
;
case
"
right
"
:
tp
=
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
+
pos
.
width
}}
$tip
.
offset
(
tp
).
addClass
(
placement
).
addClass
(
"
in
"
)}},
setContent
:
function
(){
var
$tip
=
this
.
tip
(),
title
=
this
.
getTitle
();
$tip
.
find
(
"
.tooltip-inner
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
title
),
$tip
.
removeClass
(
"
fade in top bottom left right
"
)},
hide
:
function
(){
function
removeWithAnimation
(){
var
timeout
=
setTimeout
(
function
(){
$tip
.
off
(
$
.
support
.
transition
.
end
).
detach
()},
500
);
$tip
.
one
(
$
.
support
.
transition
.
end
,
function
(){
clearTimeout
(
timeout
),
$tip
.
detach
()})}
var
$tip
=
this
.
tip
();
return
$tip
.
removeClass
(
"
in
"
),
$
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
"
fade
"
)?
removeWithAnimation
():
$tip
.
detach
(),
this
},
fixTitle
:
function
(){
var
$e
=
this
.
$element
;(
$e
.
attr
(
"
title
"
)
||
"
string
"
!=
typeof
$e
.
attr
(
"
data-original-title
"
))
&&
$e
.
attr
(
"
data-original-title
"
,
$e
.
attr
(
"
title
"
)
||
""
).
removeAttr
(
"
title
"
)},
hasContent
:
function
(){
return
this
.
getTitle
()},
getPosition
:
function
(
inside
){
return
$
.
extend
({},
inside
?{
top
:
0
,
left
:
0
}:
this
.
$element
.
offset
(),{
width
:
this
.
$element
[
0
].
offsetWidth
,
height
:
this
.
$element
[
0
].
offsetHeight
})},
getTitle
:
function
(){
var
title
,
$e
=
this
.
$element
,
o
=
this
.
options
;
return
title
=
$e
.
attr
(
"
data-original-title
"
)
||
(
"
function
"
==
typeof
o
.
title
?
o
.
title
.
call
(
$e
[
0
]):
o
.
title
)},
tip
:
function
(){
return
this
.
$tip
=
this
.
$tip
||
$
(
this
.
options
.
template
)},
validate
:
function
(){
this
.
$element
[
0
].
parentNode
||
(
this
.
hide
(),
this
.
$element
=
null
,
this
.
options
=
null
)},
enable
:
function
(){
this
.
enabled
=!
0
},
disable
:
function
(){
this
.
enabled
=!
1
},
toggleEnabled
:
function
(){
this
.
enabled
=!
this
.
enabled
},
toggle
:
function
(
e
){
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
self
[
self
.
tip
().
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()},
destroy
:
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
this
.
type
)}},
$
.
fn
.
tooltip
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
tooltip
"
),
options
=
"
object
"
==
typeof
option
&&
option
;
data
||
$this
.
data
(
"
tooltip
"
,
data
=
new
Tooltip
(
this
,
options
)),
"
string
"
==
typeof
option
&&
data
[
option
]()})},
$
.
fn
.
tooltip
.
Constructor
=
Tooltip
,
$
.
fn
.
tooltip
.
defaults
=
{
animation
:
!
0
,
placement
:
"
top
"
,
selector
:
!
1
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
,
trigger
:
"
hover
"
,
title
:
""
,
delay
:
0
,
html
:
!
1
}}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Popover
=
function
(
element
,
options
){
this
.
init
(
"
popover
"
,
element
,
options
)};
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
,{
constructor
:
Popover
,
setContent
:
function
(){
var
$tip
=
this
.
tip
(),
title
=
this
.
getTitle
(),
content
=
this
.
getContent
();
$tip
.
find
(
"
.popover-title
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
title
),
$tip
.
find
(
"
.popover-content
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
content
),
$tip
.
removeClass
(
"
fade top bottom left right in
"
)},
hasContent
:
function
(){
return
this
.
getTitle
()
||
this
.
getContent
()},
getContent
:
function
(){
var
content
,
$e
=
this
.
$element
,
o
=
this
.
options
;
return
content
=
$e
.
attr
(
"
data-content
"
)
||
(
"
function
"
==
typeof
o
.
content
?
o
.
content
.
call
(
$e
[
0
]):
o
.
content
)},
tip
:
function
(){
return
this
.
$tip
||
(
this
.
$tip
=
$
(
this
.
options
.
template
)),
this
.
$tip
},
destroy
:
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
this
.
type
)}}),
$
.
fn
.
popover
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
popover
"
),
options
=
"
object
"
==
typeof
option
&&
option
;
data
||
$this
.
data
(
"
popover
"
,
data
=
new
Popover
(
this
,
options
)),
"
string
"
==
typeof
option
&&
data
[
option
]()})},
$
.
fn
.
popover
.
Constructor
=
Popover
,
$
.
fn
.
popover
.
defaults
=
$
.
extend
({},
$
.
fn
.
tooltip
.
defaults
,{
placement
:
"
right
"
,
trigger
:
"
click
"
,
content
:
""
,
template
:
'
<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>
'
})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
function
ScrollSpy
(
element
,
options
){
var
href
,
process
=
$
.
proxy
(
this
.
process
,
this
),
$element
=
$
(
element
).
is
(
"
body
"
)?
$
(
window
):
$
(
element
);
this
.
options
=
$
.
extend
({},
$
.
fn
.
scrollspy
.
defaults
,
options
),
this
.
$scrollElement
=
$element
.
on
(
"
scroll.scroll-spy.data-api
"
,
process
),
this
.
selector
=
(
this
.
options
.
target
||
(
href
=
$
(
element
).
attr
(
"
href
"
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)
||
""
)
+
"
.nav li > a
"
,
this
.
$body
=
$
(
"
body
"
),
this
.
refresh
(),
this
.
process
()}
ScrollSpy
.
prototype
=
{
constructor
:
ScrollSpy
,
refresh
:
function
(){
var
$targets
,
self
=
this
;
this
.
offsets
=
$
([]),
this
.
targets
=
$
([]),
$targets
=
this
.
$body
.
find
(
this
.
selector
).
map
(
function
(){
var
$el
=
$
(
this
),
href
=
$el
.
data
(
"
target
"
)
||
$el
.
attr
(
"
href
"
),
$href
=
/^#
\w
/
.
test
(
href
)
&&
$
(
href
);
return
$href
&&
$href
.
length
&&
[[
$href
.
position
().
top
,
href
]]
||
null
}).
sort
(
function
(
a
,
b
){
return
a
[
0
]
-
b
[
0
]}).
each
(
function
(){
self
.
offsets
.
push
(
this
[
0
]),
self
.
targets
.
push
(
this
[
1
])})},
process
:
function
(){
var
i
,
scrollTop
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
scrollHeight
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
,
maxScroll
=
scrollHeight
-
this
.
$scrollElement
.
height
(),
offsets
=
this
.
offsets
,
targets
=
this
.
targets
,
activeTarget
=
this
.
activeTarget
;
if
(
scrollTop
>=
maxScroll
)
return
activeTarget
!=
(
i
=
targets
.
last
()[
0
])
&&
this
.
activate
(
i
);
for
(
i
=
offsets
.
length
;
i
--
;)
activeTarget
!=
targets
[
i
]
&&
scrollTop
>=
offsets
[
i
]
&&
(
!
offsets
[
i
+
1
]
||
offsets
[
i
+
1
]
>=
scrollTop
)
&&
this
.
activate
(
targets
[
i
])},
activate
:
function
(
target
){
var
active
,
selector
;
this
.
activeTarget
=
target
,
$
(
this
.
selector
).
parent
(
"
.active
"
).
removeClass
(
"
active
"
),
selector
=
this
.
selector
+
'
[data-target="
'
+
target
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
,
active
=
$
(
selector
).
parent
(
"
li
"
).
addClass
(
"
active
"
),
active
.
parent
(
"
.dropdown-menu
"
).
length
&&
(
active
=
active
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
)),
active
.
trigger
(
"
activate
"
)}},
$
.
fn
.
scrollspy
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
scrollspy
"
),
options
=
"
object
"
==
typeof
option
&&
option
;
data
||
$this
.
data
(
"
scrollspy
"
,
data
=
new
ScrollSpy
(
this
,
options
)),
"
string
"
==
typeof
option
&&
data
[
option
]()})},
$
.
fn
.
scrollspy
.
Constructor
=
ScrollSpy
,
$
.
fn
.
scrollspy
.
defaults
=
{
offset
:
10
},
$
(
window
).
on
(
"
load
"
,
function
(){
$
(
'
[data-spy="scroll"]
'
).
each
(
function
(){
var
$spy
=
$
(
this
);
$spy
.
scrollspy
(
$spy
.
data
())})})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Tab
=
function
(
element
){
this
.
element
=
$
(
element
)};
Tab
.
prototype
=
{
constructor
:
Tab
,
show
:
function
(){
var
previous
,
$target
,
e
,
$this
=
this
.
element
,
$ul
=
$this
.
closest
(
"
ul:not(.dropdown-menu)
"
),
selector
=
$this
.
attr
(
"
data-target
"
);
selector
||
(
selector
=
$this
.
attr
(
"
href
"
),
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
$this
.
parent
(
"
li
"
).
hasClass
(
"
active
"
)
||
(
previous
=
$ul
.
find
(
"
.active:last a
"
)[
0
],
e
=
$
.
Event
(
"
show
"
,{
relatedTarget
:
previous
}),
$this
.
trigger
(
e
),
e
.
isDefaultPrevented
()
||
(
$target
=
$
(
selector
),
this
.
activate
(
$this
.
parent
(
"
li
"
),
$ul
),
this
.
activate
(
$target
,
$target
.
parent
(),
function
(){
$this
.
trigger
({
type
:
"
shown
"
,
relatedTarget
:
previous
})})))},
activate
:
function
(
element
,
container
,
callback
){
function
next
(){
$active
.
removeClass
(
"
active
"
).
find
(
"
> .dropdown-menu > .active
"
).
removeClass
(
"
active
"
),
element
.
addClass
(
"
active
"
),
transition
?(
element
[
0
].
offsetWidth
,
element
.
addClass
(
"
in
"
)):
element
.
removeClass
(
"
fade
"
),
element
.
parent
(
"
.dropdown-menu
"
)
&&
element
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
),
callback
&&
callback
()}
var
$active
=
container
.
find
(
"
> .active
"
),
transition
=
callback
&&
$
.
support
.
transition
&&
$active
.
hasClass
(
"
fade
"
);
transition
?
$active
.
one
(
$
.
support
.
transition
.
end
,
next
):
next
(),
$active
.
removeClass
(
"
in
"
)}},
$
.
fn
.
tab
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
tab
"
);
data
||
$this
.
data
(
"
tab
"
,
data
=
new
Tab
(
this
)),
"
string
"
==
typeof
option
&&
data
[
option
]()})},
$
.
fn
.
tab
.
Constructor
=
Tab
,
$
(
document
).
on
(
"
click.tab.data-api
"
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
e
){
e
.
preventDefault
(),
$
(
this
).
tab
(
"
show
"
)})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Typeahead
=
function
(
element
,
options
){
this
.
$element
=
$
(
element
),
this
.
options
=
$
.
extend
({},
$
.
fn
.
typeahead
.
defaults
,
options
),
this
.
matcher
=
this
.
options
.
matcher
||
this
.
matcher
,
this
.
sorter
=
this
.
options
.
sorter
||
this
.
sorter
,
this
.
highlighter
=
this
.
options
.
highlighter
||
this
.
highlighter
,
this
.
updater
=
this
.
options
.
updater
||
this
.
updater
,
this
.
$menu
=
$
(
this
.
options
.
menu
).
appendTo
(
"
body
"
),
this
.
source
=
this
.
options
.
source
,
this
.
shown
=!
1
,
this
.
listen
()};
Typeahead
.
prototype
=
{
constructor
:
Typeahead
,
select
:
function
(){
var
val
=
this
.
$menu
.
find
(
"
.active
"
).
attr
(
"
data-value
"
);
return
this
.
$element
.
val
(
this
.
updater
(
val
)).
change
(),
this
.
hide
()},
updater
:
function
(
item
){
return
item
},
show
:
function
(){
var
pos
=
$
.
extend
({},
this
.
$element
.
offset
(),{
height
:
this
.
$element
[
0
].
offsetHeight
});
return
this
.
$menu
.
css
({
top
:
pos
.
top
+
pos
.
height
,
left
:
pos
.
left
}),
this
.
$menu
.
show
(),
this
.
shown
=!
0
,
this
},
hide
:
function
(){
return
this
.
$menu
.
hide
(),
this
.
shown
=!
1
,
this
},
lookup
:
function
(){
var
items
;
return
this
.
query
=
this
.
$element
.
val
(),
!
this
.
query
||
this
.
query
.
length
<
this
.
options
.
minLength
?
this
.
shown
?
this
.
hide
():
this
:(
items
=
$
.
isFunction
(
this
.
source
)?
this
.
source
(
this
.
query
,
$
.
proxy
(
this
.
process
,
this
)):
this
.
source
,
items
?
this
.
process
(
items
):
this
)},
process
:
function
(
items
){
var
that
=
this
;
return
items
=
$
.
grep
(
items
,
function
(
item
){
return
that
.
matcher
(
item
)}),
items
=
this
.
sorter
(
items
),
items
.
length
?
this
.
render
(
items
.
slice
(
0
,
this
.
options
.
items
)).
show
():
this
.
shown
?
this
.
hide
():
this
},
matcher
:
function
(
item
){
return
~
item
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
())},
sorter
:
function
(
items
){
for
(
var
item
,
beginswith
=
[],
caseSensitive
=
[],
caseInsensitive
=
[];
item
=
items
.
shift
();)
item
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
())?
~
item
.
indexOf
(
this
.
query
)?
caseSensitive
.
push
(
item
):
caseInsensitive
.
push
(
item
):
beginswith
.
push
(
item
);
return
beginswith
.
concat
(
caseSensitive
,
caseInsensitive
)},
highlighter
:
function
(
item
){
var
query
=
this
.
query
.
replace
(
/
[\-\[\]
{}()*+?.,
\\\^
$|#
\s]
/g
,
"
\\
$&
"
);
return
item
.
replace
(
RegExp
(
"
(
"
+
query
+
"
)
"
,
"
ig
"
),
function
(
$1
,
match
){
return
"
<strong>
"
+
match
+
"
</strong>
"
})},
render
:
function
(
items
){
var
that
=
this
;
return
items
=
$
(
items
).
map
(
function
(
i
,
item
){
return
i
=
$
(
that
.
options
.
item
).
attr
(
"
data-value
"
,
item
),
i
.
find
(
"
a
"
).
html
(
that
.
highlighter
(
item
)),
i
[
0
]}),
items
.
first
().
addClass
(
"
active
"
),
this
.
$menu
.
html
(
items
),
this
},
next
:
function
(){
var
active
=
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
next
=
active
.
next
();
next
.
length
||
(
next
=
$
(
this
.
$menu
.
find
(
"
li
"
)[
0
])),
next
.
addClass
(
"
active
"
)},
prev
:
function
(){
var
active
=
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
prev
=
active
.
prev
();
prev
.
length
||
(
prev
=
this
.
$menu
.
find
(
"
li
"
).
last
()),
prev
.
addClass
(
"
active
"
)},
listen
:
function
(){
this
.
$element
.
on
(
"
blur
"
,
$
.
proxy
(
this
.
blur
,
this
)).
on
(
"
keypress
"
,
$
.
proxy
(
this
.
keypress
,
this
)).
on
(
"
keyup
"
,
$
.
proxy
(
this
.
keyup
,
this
)),
this
.
eventSupported
(
"
keydown
"
)
&&
this
.
$element
.
on
(
"
keydown
"
,
$
.
proxy
(
this
.
keydown
,
this
)),
this
.
$menu
.
on
(
"
click
"
,
$
.
proxy
(
this
.
click
,
this
)).
on
(
"
mouseenter
"
,
"
li
"
,
$
.
proxy
(
this
.
mouseenter
,
this
))},
eventSupported
:
function
(
eventName
){
var
isSupported
=
eventName
in
this
.
$element
;
return
isSupported
||
(
this
.
$element
.
setAttribute
(
eventName
,
"
return;
"
),
isSupported
=
"
function
"
==
typeof
this
.
$element
[
eventName
]),
isSupported
},
move
:
function
(
e
){
if
(
this
.
shown
){
switch
(
e
.
keyCode
){
case
9
:
case
13
:
case
27
:
e
.
preventDefault
();
break
;
case
38
:
e
.
preventDefault
(),
this
.
prev
();
break
;
case
40
:
e
.
preventDefault
(),
this
.
next
()}
e
.
stopPropagation
()}},
keydown
:
function
(
e
){
this
.
suppressKeyPressRepeat
=!~
$
.
inArray
(
e
.
keyCode
,[
40
,
38
,
9
,
13
,
27
]),
this
.
move
(
e
)},
keypress
:
function
(
e
){
this
.
suppressKeyPressRepeat
||
this
.
move
(
e
)},
keyup
:
function
(
e
){
switch
(
e
.
keyCode
){
case
40
:
case
38
:
case
16
:
case
17
:
case
18
:
break
;
case
9
:
case
13
:
if
(
!
this
.
shown
)
return
;
this
.
select
();
break
;
case
27
:
if
(
!
this
.
shown
)
return
;
this
.
hide
();
break
;
default
:
this
.
lookup
()}
e
.
stopPropagation
(),
e
.
preventDefault
()},
blur
:
function
(){
var
that
=
this
;
setTimeout
(
function
(){
that
.
hide
()},
150
)},
click
:
function
(
e
){
e
.
stopPropagation
(),
e
.
preventDefault
(),
this
.
select
()},
mouseenter
:
function
(
e
){
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
$
(
e
.
currentTarget
).
addClass
(
"
active
"
)}},
$
.
fn
.
typeahead
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
typeahead
"
),
options
=
"
object
"
==
typeof
option
&&
option
;
data
||
$this
.
data
(
"
typeahead
"
,
data
=
new
Typeahead
(
this
,
options
)),
"
string
"
==
typeof
option
&&
data
[
option
]()})},
$
.
fn
.
typeahead
.
defaults
=
{
source
:[],
items
:
8
,
menu
:
'
<ul class="typeahead dropdown-menu"></ul>
'
,
item
:
'
<li><a href="#"></a></li>
'
,
minLength
:
1
},
$
.
fn
.
typeahead
.
Constructor
=
Typeahead
,
$
(
document
).
on
(
"
focus.typeahead.data-api
"
,
'
[data-provide="typeahead"]
'
,
function
(
e
){
var
$this
=
$
(
this
);
$this
.
data
(
"
typeahead
"
)
||
(
e
.
preventDefault
(),
$this
.
typeahead
(
$this
.
data
()))})}(
window
.
jQuery
),
!
function
(
$
){
"
use strict
"
;
var
Affix
=
function
(
element
,
options
){
this
.
options
=
$
.
extend
({},
$
.
fn
.
affix
.
defaults
,
options
),
this
.
$window
=
$
(
window
).
on
(
"
scroll.affix.data-api
"
,
$
.
proxy
(
this
.
checkPosition
,
this
)).
on
(
"
click.affix.data-api
"
,
$
.
proxy
(
function
(){
setTimeout
(
$
.
proxy
(
this
.
checkPosition
,
this
),
1
)},
this
)),
this
.
$element
=
$
(
element
),
this
.
checkPosition
()};
Affix
.
prototype
.
checkPosition
=
function
(){
if
(
this
.
$element
.
is
(
"
:visible
"
)){
var
affix
,
scrollHeight
=
$
(
document
).
height
(),
scrollTop
=
this
.
$window
.
scrollTop
(),
position
=
this
.
$element
.
offset
(),
offset
=
this
.
options
.
offset
,
offsetBottom
=
offset
.
bottom
,
offsetTop
=
offset
.
top
,
reset
=
"
affix affix-top affix-bottom
"
;
"
object
"
!=
typeof
offset
&&
(
offsetBottom
=
offsetTop
=
offset
),
"
function
"
==
typeof
offsetTop
&&
(
offsetTop
=
offset
.
top
()),
"
function
"
==
typeof
offsetBottom
&&
(
offsetBottom
=
offset
.
bottom
()),
affix
=
null
!=
this
.
unpin
&&
scrollTop
+
this
.
unpin
<=
position
.
top
?
!
1
:
null
!=
offsetBottom
&&
position
.
top
+
this
.
$element
.
height
()
>=
scrollHeight
-
offsetBottom
?
"
bottom
"
:
null
!=
offsetTop
&&
offsetTop
>=
scrollTop
?
"
top
"
:
!
1
,
this
.
affixed
!==
affix
&&
(
this
.
affixed
=
affix
,
this
.
unpin
=
"
bottom
"
==
affix
?
position
.
top
-
scrollTop
:
null
,
this
.
$element
.
removeClass
(
reset
).
addClass
(
"
affix
"
+
(
affix
?
"
-
"
+
affix
:
""
)))}},
$
.
fn
.
affix
=
function
(
option
){
return
this
.
each
(
function
(){
var
$this
=
$
(
this
),
data
=
$this
.
data
(
"
affix
"
),
options
=
"
object
"
==
typeof
option
&&
option
;
data
||
$this
.
data
(
"
affix
"
,
data
=
new
Affix
(
this
,
options
)),
"
string
"
==
typeof
option
&&
data
[
option
]()})},
$
.
fn
.
affix
.
Constructor
=
Affix
,
$
.
fn
.
affix
.
defaults
=
{
offset
:
0
},
$
(
window
).
on
(
"
load
"
,
function
(){
$
(
'
[data-spy="affix"]
'
).
each
(
function
(){
var
$spy
=
$
(
this
),
data
=
$spy
.
data
();
data
.
offset
=
data
.
offset
||
{},
data
.
offsetBottom
&&
(
data
.
offset
.
bottom
=
data
.
offsetBottom
),
data
.
offsetTop
&&
(
data
.
offset
.
top
=
data
.
offsetTop
),
$spy
.
affix
(
data
)})})}(
window
.
jQuery
);
* bootstrap-transition.js v2.2.2
\ No newline at end of file
* http://twitter.github.com/bootstrap/javascript.html#transitions
* ===================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!
function
(
e
){
"
use strict
"
;
e
(
function
(){
e
.
support
.
transition
=
function
(){
var
e
=
function
(){
var
e
=
document
.
createElement
(
"
bootstrap
"
),
t
=
{
WebkitTransition
:
"
webkitTransitionEnd
"
,
MozTransition
:
"
transitionend
"
,
OTransition
:
"
oTransitionEnd otransitionend
"
,
transition
:
"
transitionend
"
},
n
;
for
(
n
in
t
)
if
(
e
.
style
[
n
]
!==
undefined
)
return
t
[
n
]}();
return
e
&&
{
end
:
e
}}()})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
'
[data-dismiss="alert"]
'
,
n
=
function
(
n
){
e
(
n
).
on
(
"
click
"
,
t
,
this
.
close
)};
n
.
prototype
.
close
=
function
(
t
){
function
s
(){
i
.
trigger
(
"
closed
"
).
remove
()}
var
n
=
e
(
this
),
r
=
n
.
attr
(
"
data-target
"
),
i
;
r
||
(
r
=
n
.
attr
(
"
href
"
),
r
=
r
&&
r
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
i
=
e
(
r
),
t
&&
t
.
preventDefault
(),
i
.
length
||
(
i
=
n
.
hasClass
(
"
alert
"
)?
n
:
n
.
parent
()),
i
.
trigger
(
t
=
e
.
Event
(
"
close
"
));
if
(
t
.
isDefaultPrevented
())
return
;
i
.
removeClass
(
"
in
"
),
e
.
support
.
transition
&&
i
.
hasClass
(
"
fade
"
)?
i
.
on
(
e
.
support
.
transition
.
end
,
s
):
s
()},
e
.
fn
.
alert
=
function
(
t
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
alert
"
);
i
||
r
.
data
(
"
alert
"
,
i
=
new
n
(
this
)),
typeof
t
==
"
string
"
&&
i
[
t
].
call
(
r
)})},
e
.
fn
.
alert
.
Constructor
=
n
,
e
(
document
).
on
(
"
click.alert.data-api
"
,
t
,
n
.
prototype
.
close
)}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
t
,
n
){
this
.
$element
=
e
(
t
),
this
.
options
=
e
.
extend
({},
e
.
fn
.
button
.
defaults
,
n
)};
t
.
prototype
.
setState
=
function
(
e
){
var
t
=
"
disabled
"
,
n
=
this
.
$element
,
r
=
n
.
data
(),
i
=
n
.
is
(
"
input
"
)?
"
val
"
:
"
html
"
;
e
+=
"
Text
"
,
r
.
resetText
||
n
.
data
(
"
resetText
"
,
n
[
i
]()),
n
[
i
](
r
[
e
]
||
this
.
options
[
e
]),
setTimeout
(
function
(){
e
==
"
loadingText
"
?
n
.
addClass
(
t
).
attr
(
t
,
t
):
n
.
removeClass
(
t
).
removeAttr
(
t
)},
0
)},
t
.
prototype
.
toggle
=
function
(){
var
e
=
this
.
$element
.
closest
(
'
[data-toggle="buttons-radio"]
'
);
e
&&
e
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
this
.
$element
.
toggleClass
(
"
active
"
)},
e
.
fn
.
button
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
button
"
),
s
=
typeof
n
==
"
object
"
&&
n
;
i
||
r
.
data
(
"
button
"
,
i
=
new
t
(
this
,
s
)),
n
==
"
toggle
"
?
i
.
toggle
():
n
&&
i
.
setState
(
n
)})},
e
.
fn
.
button
.
defaults
=
{
loadingText
:
"
loading...
"
},
e
.
fn
.
button
.
Constructor
=
t
,
e
(
document
).
on
(
"
click.button.data-api
"
,
"
[data-toggle^=button]
"
,
function
(
t
){
var
n
=
e
(
t
.
target
);
n
.
hasClass
(
"
btn
"
)
||
(
n
=
n
.
closest
(
"
.btn
"
)),
n
.
button
(
"
toggle
"
)})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
t
,
n
){
this
.
$element
=
e
(
t
),
this
.
options
=
n
,
this
.
options
.
slide
&&
this
.
slide
(
this
.
options
.
slide
),
this
.
options
.
pause
==
"
hover
"
&&
this
.
$element
.
on
(
"
mouseenter
"
,
e
.
proxy
(
this
.
pause
,
this
)).
on
(
"
mouseleave
"
,
e
.
proxy
(
this
.
cycle
,
this
))};
t
.
prototype
=
{
cycle
:
function
(
t
){
return
t
||
(
this
.
paused
=!
1
),
this
.
options
.
interval
&&!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
e
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
)),
this
},
to
:
function
(
t
){
var
n
=
this
.
$element
.
find
(
"
.item.active
"
),
r
=
n
.
parent
().
children
(),
i
=
r
.
index
(
n
),
s
=
this
;
if
(
t
>
r
.
length
-
1
||
t
<
0
)
return
;
return
this
.
sliding
?
this
.
$element
.
one
(
"
slid
"
,
function
(){
s
.
to
(
t
)}):
i
==
t
?
this
.
pause
().
cycle
():
this
.
slide
(
t
>
i
?
"
next
"
:
"
prev
"
,
e
(
r
[
t
]))},
pause
:
function
(
t
){
return
t
||
(
this
.
paused
=!
0
),
this
.
$element
.
find
(
"
.next, .prev
"
).
length
&&
e
.
support
.
transition
.
end
&&
(
this
.
$element
.
trigger
(
e
.
support
.
transition
.
end
),
this
.
cycle
()),
clearInterval
(
this
.
interval
),
this
.
interval
=
null
,
this
},
next
:
function
(){
if
(
this
.
sliding
)
return
;
return
this
.
slide
(
"
next
"
)},
prev
:
function
(){
if
(
this
.
sliding
)
return
;
return
this
.
slide
(
"
prev
"
)},
slide
:
function
(
t
,
n
){
var
r
=
this
.
$element
.
find
(
"
.item.active
"
),
i
=
n
||
r
[
t
](),
s
=
this
.
interval
,
o
=
t
==
"
next
"
?
"
left
"
:
"
right
"
,
u
=
t
==
"
next
"
?
"
first
"
:
"
last
"
,
a
=
this
,
f
;
this
.
sliding
=!
0
,
s
&&
this
.
pause
(),
i
=
i
.
length
?
i
:
this
.
$element
.
find
(
"
.item
"
)[
u
](),
f
=
e
.
Event
(
"
slide
"
,{
relatedTarget
:
i
[
0
]});
if
(
i
.
hasClass
(
"
active
"
))
return
;
if
(
e
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
slide
"
)){
this
.
$element
.
trigger
(
f
);
if
(
f
.
isDefaultPrevented
())
return
;
i
.
addClass
(
t
),
i
[
0
].
offsetWidth
,
r
.
addClass
(
o
),
i
.
addClass
(
o
),
this
.
$element
.
one
(
e
.
support
.
transition
.
end
,
function
(){
i
.
removeClass
([
t
,
o
].
join
(
"
"
)).
addClass
(
"
active
"
),
r
.
removeClass
([
"
active
"
,
o
].
join
(
"
"
)),
a
.
sliding
=!
1
,
setTimeout
(
function
(){
a
.
$element
.
trigger
(
"
slid
"
)},
0
)})}
else
{
this
.
$element
.
trigger
(
f
);
if
(
f
.
isDefaultPrevented
())
return
;
r
.
removeClass
(
"
active
"
),
i
.
addClass
(
"
active
"
),
this
.
sliding
=!
1
,
this
.
$element
.
trigger
(
"
slid
"
)}
return
s
&&
this
.
cycle
(),
this
}},
e
.
fn
.
carousel
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
carousel
"
),
s
=
e
.
extend
({},
e
.
fn
.
carousel
.
defaults
,
typeof
n
==
"
object
"
&&
n
),
o
=
typeof
n
==
"
string
"
?
n
:
s
.
slide
;
i
||
r
.
data
(
"
carousel
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
number
"
?
i
.
to
(
n
):
o
?
i
[
o
]():
s
.
interval
&&
i
.
cycle
()})},
e
.
fn
.
carousel
.
defaults
=
{
interval
:
5
e3
,
pause
:
"
hover
"
},
e
.
fn
.
carousel
.
Constructor
=
t
,
e
(
document
).
on
(
"
click.carousel.data-api
"
,
"
[data-slide]
"
,
function
(
t
){
var
n
=
e
(
this
),
r
,
i
=
e
(
n
.
attr
(
"
data-target
"
)
||
(
r
=
n
.
attr
(
"
href
"
))
&&
r
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
s
=
e
.
extend
({},
i
.
data
(),
n
.
data
());
i
.
carousel
(
s
),
t
.
preventDefault
()})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
t
,
n
){
this
.
$element
=
e
(
t
),
this
.
options
=
e
.
extend
({},
e
.
fn
.
collapse
.
defaults
,
n
),
this
.
options
.
parent
&&
(
this
.
$parent
=
e
(
this
.
options
.
parent
)),
this
.
options
.
toggle
&&
this
.
toggle
()};
t
.
prototype
=
{
constructor
:
t
,
dimension
:
function
(){
var
e
=
this
.
$element
.
hasClass
(
"
width
"
);
return
e
?
"
width
"
:
"
height
"
},
show
:
function
(){
var
t
,
n
,
r
,
i
;
if
(
this
.
transitioning
)
return
;
t
=
this
.
dimension
(),
n
=
e
.
camelCase
([
"
scroll
"
,
t
].
join
(
"
-
"
)),
r
=
this
.
$parent
&&
this
.
$parent
.
find
(
"
> .accordion-group > .in
"
);
if
(
r
&&
r
.
length
){
i
=
r
.
data
(
"
collapse
"
);
if
(
i
&&
i
.
transitioning
)
return
;
r
.
collapse
(
"
hide
"
),
i
||
r
.
data
(
"
collapse
"
,
null
)}
this
.
$element
[
t
](
0
),
this
.
transition
(
"
addClass
"
,
e
.
Event
(
"
show
"
),
"
shown
"
),
e
.
support
.
transition
&&
this
.
$element
[
t
](
this
.
$element
[
0
][
n
])},
hide
:
function
(){
var
t
;
if
(
this
.
transitioning
)
return
;
t
=
this
.
dimension
(),
this
.
reset
(
this
.
$element
[
t
]()),
this
.
transition
(
"
removeClass
"
,
e
.
Event
(
"
hide
"
),
"
hidden
"
),
this
.
$element
[
t
](
0
)},
reset
:
function
(
e
){
var
t
=
this
.
dimension
();
return
this
.
$element
.
removeClass
(
"
collapse
"
)[
t
](
e
||
"
auto
"
)[
0
].
offsetWidth
,
this
.
$element
[
e
!==
null
?
"
addClass
"
:
"
removeClass
"
](
"
collapse
"
),
this
},
transition
:
function
(
t
,
n
,
r
){
var
i
=
this
,
s
=
function
(){
n
.
type
==
"
show
"
&&
i
.
reset
(),
i
.
transitioning
=
0
,
i
.
$element
.
trigger
(
r
)};
this
.
$element
.
trigger
(
n
);
if
(
n
.
isDefaultPrevented
())
return
;
this
.
transitioning
=
1
,
this
.
$element
[
t
](
"
in
"
),
e
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
collapse
"
)?
this
.
$element
.
one
(
e
.
support
.
transition
.
end
,
s
):
s
()},
toggle
:
function
(){
this
[
this
.
$element
.
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()}},
e
.
fn
.
collapse
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
collapse
"
),
s
=
typeof
n
==
"
object
"
&&
n
;
i
||
r
.
data
(
"
collapse
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
string
"
&&
i
[
n
]()})},
e
.
fn
.
collapse
.
defaults
=
{
toggle
:
!
0
},
e
.
fn
.
collapse
.
Constructor
=
t
,
e
(
document
).
on
(
"
click.collapse.data-api
"
,
"
[data-toggle=collapse]
"
,
function
(
t
){
var
n
=
e
(
this
),
r
,
i
=
n
.
attr
(
"
data-target
"
)
||
t
.
preventDefault
()
||
(
r
=
n
.
attr
(
"
href
"
))
&&
r
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
),
s
=
e
(
i
).
data
(
"
collapse
"
)?
"
toggle
"
:
n
.
data
();
n
[
e
(
i
).
hasClass
(
"
in
"
)?
"
addClass
"
:
"
removeClass
"
](
"
collapsed
"
),
e
(
i
).
collapse
(
s
)})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
function
r
(){
e
(
t
).
each
(
function
(){
i
(
e
(
this
)).
removeClass
(
"
open
"
)})}
function
i
(
t
){
var
n
=
t
.
attr
(
"
data-target
"
),
r
;
return
n
||
(
n
=
t
.
attr
(
"
href
"
),
n
=
n
&&
/#/
.
test
(
n
)
&&
n
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
r
=
e
(
n
),
r
.
length
||
(
r
=
t
.
parent
()),
r
}
var
t
=
"
[data-toggle=dropdown]
"
,
n
=
function
(
t
){
var
n
=
e
(
t
).
on
(
"
click.dropdown.data-api
"
,
this
.
toggle
);
e
(
"
html
"
).
on
(
"
click.dropdown.data-api
"
,
function
(){
n
.
parent
().
removeClass
(
"
open
"
)})};
n
.
prototype
=
{
constructor
:
n
,
toggle
:
function
(
t
){
var
n
=
e
(
this
),
s
,
o
;
if
(
n
.
is
(
"
.disabled, :disabled
"
))
return
;
return
s
=
i
(
n
),
o
=
s
.
hasClass
(
"
open
"
),
r
(),
o
||
(
s
.
toggleClass
(
"
open
"
),
n
.
focus
()),
!
1
},
keydown
:
function
(
t
){
var
n
,
r
,
s
,
o
,
u
,
a
;
if
(
!
/
(
38|40|27
)
/
.
test
(
t
.
keyCode
))
return
;
n
=
e
(
this
),
t
.
preventDefault
(),
t
.
stopPropagation
();
if
(
n
.
is
(
"
.disabled, :disabled
"
))
return
;
o
=
i
(
n
),
u
=
o
.
hasClass
(
"
open
"
);
if
(
!
u
||
u
&&
t
.
keyCode
==
27
)
return
n
.
click
();
r
=
e
(
"
[role=menu] li:not(.divider) a
"
,
o
);
if
(
!
r
.
length
)
return
;
a
=
r
.
index
(
r
.
filter
(
"
:focus
"
)),
t
.
keyCode
==
38
&&
a
>
0
&&
a
--
,
t
.
keyCode
==
40
&&
a
<
r
.
length
-
1
&&
a
++
,
~
a
||
(
a
=
0
),
r
.
eq
(
a
).
focus
()}},
e
.
fn
.
dropdown
=
function
(
t
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
dropdown
"
);
i
||
r
.
data
(
"
dropdown
"
,
i
=
new
n
(
this
)),
typeof
t
==
"
string
"
&&
i
[
t
].
call
(
r
)})},
e
.
fn
.
dropdown
.
Constructor
=
n
,
e
(
document
).
on
(
"
click.dropdown.data-api touchstart.dropdown.data-api
"
,
r
).
on
(
"
click.dropdown touchstart.dropdown.data-api
"
,
"
.dropdown form
"
,
function
(
e
){
e
.
stopPropagation
()}).
on
(
"
click.dropdown.data-api touchstart.dropdown.data-api
"
,
t
,
n
.
prototype
.
toggle
).
on
(
"
keydown.dropdown.data-api touchstart.dropdown.data-api
"
,
t
+
"
, [role=menu]
"
,
n
.
prototype
.
keydown
)}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
t
,
n
){
this
.
options
=
n
,
this
.
$element
=
e
(
t
).
delegate
(
'
[data-dismiss="modal"]
'
,
"
click.dismiss.modal
"
,
e
.
proxy
(
this
.
hide
,
this
)),
this
.
options
.
remote
&&
this
.
$element
.
find
(
"
.modal-body
"
).
load
(
this
.
options
.
remote
)};
t
.
prototype
=
{
constructor
:
t
,
toggle
:
function
(){
return
this
[
this
.
isShown
?
"
hide
"
:
"
show
"
]()},
show
:
function
(){
var
t
=
this
,
n
=
e
.
Event
(
"
show
"
);
this
.
$element
.
trigger
(
n
);
if
(
this
.
isShown
||
n
.
isDefaultPrevented
())
return
;
this
.
isShown
=!
0
,
this
.
escape
(),
this
.
backdrop
(
function
(){
var
n
=
e
.
support
.
transition
&&
t
.
$element
.
hasClass
(
"
fade
"
);
t
.
$element
.
parent
().
length
||
t
.
$element
.
appendTo
(
document
.
body
),
t
.
$element
.
show
(),
n
&&
t
.
$element
[
0
].
offsetWidth
,
t
.
$element
.
addClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
1
),
t
.
enforceFocus
(),
n
?
t
.
$element
.
one
(
e
.
support
.
transition
.
end
,
function
(){
t
.
$element
.
focus
().
trigger
(
"
shown
"
)}):
t
.
$element
.
focus
().
trigger
(
"
shown
"
)})},
hide
:
function
(
t
){
t
&&
t
.
preventDefault
();
var
n
=
this
;
t
=
e
.
Event
(
"
hide
"
),
this
.
$element
.
trigger
(
t
);
if
(
!
this
.
isShown
||
t
.
isDefaultPrevented
())
return
;
this
.
isShown
=!
1
,
this
.
escape
(),
e
(
document
).
off
(
"
focusin.modal
"
),
this
.
$element
.
removeClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
0
),
e
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
hideWithTransition
():
this
.
hideModal
()},
enforceFocus
:
function
(){
var
t
=
this
;
e
(
document
).
on
(
"
focusin.modal
"
,
function
(
e
){
t
.
$element
[
0
]
!==
e
.
target
&&!
t
.
$element
.
has
(
e
.
target
).
length
&&
t
.
$element
.
focus
()})},
escape
:
function
(){
var
e
=
this
;
this
.
isShown
&&
this
.
options
.
keyboard
?
this
.
$element
.
on
(
"
keyup.dismiss.modal
"
,
function
(
t
){
t
.
which
==
27
&&
e
.
hide
()}):
this
.
isShown
||
this
.
$element
.
off
(
"
keyup.dismiss.modal
"
)},
hideWithTransition
:
function
(){
var
t
=
this
,
n
=
setTimeout
(
function
(){
t
.
$element
.
off
(
e
.
support
.
transition
.
end
),
t
.
hideModal
()},
500
);
this
.
$element
.
one
(
e
.
support
.
transition
.
end
,
function
(){
clearTimeout
(
n
),
t
.
hideModal
()})},
hideModal
:
function
(
e
){
this
.
$element
.
hide
().
trigger
(
"
hidden
"
),
this
.
backdrop
()},
removeBackdrop
:
function
(){
this
.
$backdrop
.
remove
(),
this
.
$backdrop
=
null
},
backdrop
:
function
(
t
){
var
n
=
this
,
r
=
this
.
$element
.
hasClass
(
"
fade
"
)?
"
fade
"
:
""
;
if
(
this
.
isShown
&&
this
.
options
.
backdrop
){
var
i
=
e
.
support
.
transition
&&
r
;
this
.
$backdrop
=
e
(
'
<div class="modal-backdrop
'
+
r
+
'
" />
'
).
appendTo
(
document
.
body
),
this
.
$backdrop
.
click
(
this
.
options
.
backdrop
==
"
static
"
?
e
.
proxy
(
this
.
$element
[
0
].
focus
,
this
.
$element
[
0
]):
e
.
proxy
(
this
.
hide
,
this
)),
i
&&
this
.
$backdrop
[
0
].
offsetWidth
,
this
.
$backdrop
.
addClass
(
"
in
"
),
i
?
this
.
$backdrop
.
one
(
e
.
support
.
transition
.
end
,
t
):
t
()}
else
!
this
.
isShown
&&
this
.
$backdrop
?(
this
.
$backdrop
.
removeClass
(
"
in
"
),
e
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
$backdrop
.
one
(
e
.
support
.
transition
.
end
,
e
.
proxy
(
this
.
removeBackdrop
,
this
)):
this
.
removeBackdrop
()):
t
&&
t
()}},
e
.
fn
.
modal
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
modal
"
),
s
=
e
.
extend
({},
e
.
fn
.
modal
.
defaults
,
r
.
data
(),
typeof
n
==
"
object
"
&&
n
);
i
||
r
.
data
(
"
modal
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
string
"
?
i
[
n
]():
s
.
show
&&
i
.
show
()})},
e
.
fn
.
modal
.
defaults
=
{
backdrop
:
!
0
,
keyboard
:
!
0
,
show
:
!
0
},
e
.
fn
.
modal
.
Constructor
=
t
,
e
(
document
).
on
(
"
click.modal.data-api
"
,
'
[data-toggle="modal"]
'
,
function
(
t
){
var
n
=
e
(
this
),
r
=
n
.
attr
(
"
href
"
),
i
=
e
(
n
.
attr
(
"
data-target
"
)
||
r
&&
r
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
s
=
i
.
data
(
"
modal
"
)?
"
toggle
"
:
e
.
extend
({
remote
:
!
/#/
.
test
(
r
)
&&
r
},
i
.
data
(),
n
.
data
());
t
.
preventDefault
(),
i
.
modal
(
s
).
one
(
"
hide
"
,
function
(){
n
.
focus
()})})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
e
,
t
){
this
.
init
(
"
tooltip
"
,
e
,
t
)};
t
.
prototype
=
{
constructor
:
t
,
init
:
function
(
t
,
n
,
r
){
var
i
,
s
;
this
.
type
=
t
,
this
.
$element
=
e
(
n
),
this
.
options
=
this
.
getOptions
(
r
),
this
.
enabled
=!
0
,
this
.
options
.
trigger
==
"
click
"
?
this
.
$element
.
on
(
"
click.
"
+
this
.
type
,
this
.
options
.
selector
,
e
.
proxy
(
this
.
toggle
,
this
)):
this
.
options
.
trigger
!=
"
manual
"
&&
(
i
=
this
.
options
.
trigger
==
"
hover
"
?
"
mouseenter
"
:
"
focus
"
,
s
=
this
.
options
.
trigger
==
"
hover
"
?
"
mouseleave
"
:
"
blur
"
,
this
.
$element
.
on
(
i
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
e
.
proxy
(
this
.
enter
,
this
)),
this
.
$element
.
on
(
s
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
e
.
proxy
(
this
.
leave
,
this
))),
this
.
options
.
selector
?
this
.
_options
=
e
.
extend
({},
this
.
options
,{
trigger
:
"
manual
"
,
selector
:
""
}):
this
.
fixTitle
()},
getOptions
:
function
(
t
){
return
t
=
e
.
extend
({},
e
.
fn
[
this
.
type
].
defaults
,
t
,
this
.
$element
.
data
()),
t
.
delay
&&
typeof
t
.
delay
==
"
number
"
&&
(
t
.
delay
=
{
show
:
t
.
delay
,
hide
:
t
.
delay
}),
t
},
enter
:
function
(
t
){
var
n
=
e
(
t
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
if
(
!
n
.
options
.
delay
||!
n
.
options
.
delay
.
show
)
return
n
.
show
();
clearTimeout
(
this
.
timeout
),
n
.
hoverState
=
"
in
"
,
this
.
timeout
=
setTimeout
(
function
(){
n
.
hoverState
==
"
in
"
&&
n
.
show
()},
n
.
options
.
delay
.
show
)},
leave
:
function
(
t
){
var
n
=
e
(
t
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
this
.
timeout
&&
clearTimeout
(
this
.
timeout
);
if
(
!
n
.
options
.
delay
||!
n
.
options
.
delay
.
hide
)
return
n
.
hide
();
n
.
hoverState
=
"
out
"
,
this
.
timeout
=
setTimeout
(
function
(){
n
.
hoverState
==
"
out
"
&&
n
.
hide
()},
n
.
options
.
delay
.
hide
)},
show
:
function
(){
var
e
,
t
,
n
,
r
,
i
,
s
,
o
;
if
(
this
.
hasContent
()
&&
this
.
enabled
){
e
=
this
.
tip
(),
this
.
setContent
(),
this
.
options
.
animation
&&
e
.
addClass
(
"
fade
"
),
s
=
typeof
this
.
options
.
placement
==
"
function
"
?
this
.
options
.
placement
.
call
(
this
,
e
[
0
],
this
.
$element
[
0
]):
this
.
options
.
placement
,
t
=
/in/
.
test
(
s
),
e
.
detach
().
css
({
top
:
0
,
left
:
0
,
display
:
"
block
"
}).
insertAfter
(
this
.
$element
),
n
=
this
.
getPosition
(
t
),
r
=
e
[
0
].
offsetWidth
,
i
=
e
[
0
].
offsetHeight
;
switch
(
t
?
s
.
split
(
"
"
)[
1
]:
s
){
case
"
bottom
"
:
o
=
{
top
:
n
.
top
+
n
.
height
,
left
:
n
.
left
+
n
.
width
/
2
-
r
/
2
};
break
;
case
"
top
"
:
o
=
{
top
:
n
.
top
-
i
,
left
:
n
.
left
+
n
.
width
/
2
-
r
/
2
};
break
;
case
"
left
"
:
o
=
{
top
:
n
.
top
+
n
.
height
/
2
-
i
/
2
,
left
:
n
.
left
-
r
};
break
;
case
"
right
"
:
o
=
{
top
:
n
.
top
+
n
.
height
/
2
-
i
/
2
,
left
:
n
.
left
+
n
.
width
}}
e
.
offset
(
o
).
addClass
(
s
).
addClass
(
"
in
"
)}},
setContent
:
function
(){
var
e
=
this
.
tip
(),
t
=
this
.
getTitle
();
e
.
find
(
"
.tooltip-inner
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
t
),
e
.
removeClass
(
"
fade in top bottom left right
"
)},
hide
:
function
(){
function
r
(){
var
t
=
setTimeout
(
function
(){
n
.
off
(
e
.
support
.
transition
.
end
).
detach
()},
500
);
n
.
one
(
e
.
support
.
transition
.
end
,
function
(){
clearTimeout
(
t
),
n
.
detach
()})}
var
t
=
this
,
n
=
this
.
tip
();
return
n
.
removeClass
(
"
in
"
),
e
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
"
fade
"
)?
r
():
n
.
detach
(),
this
},
fixTitle
:
function
(){
var
e
=
this
.
$element
;(
e
.
attr
(
"
title
"
)
||
typeof
e
.
attr
(
"
data-original-title
"
)
!=
"
string
"
)
&&
e
.
attr
(
"
data-original-title
"
,
e
.
attr
(
"
title
"
)
||
""
).
removeAttr
(
"
title
"
)},
hasContent
:
function
(){
return
this
.
getTitle
()},
getPosition
:
function
(
t
){
return
e
.
extend
({},
t
?{
top
:
0
,
left
:
0
}:
this
.
$element
.
offset
(),{
width
:
this
.
$element
[
0
].
offsetWidth
,
height
:
this
.
$element
[
0
].
offsetHeight
})},
getTitle
:
function
(){
var
e
,
t
=
this
.
$element
,
n
=
this
.
options
;
return
e
=
t
.
attr
(
"
data-original-title
"
)
||
(
typeof
n
.
title
==
"
function
"
?
n
.
title
.
call
(
t
[
0
]):
n
.
title
),
e
},
tip
:
function
(){
return
this
.
$tip
=
this
.
$tip
||
e
(
this
.
options
.
template
)},
validate
:
function
(){
this
.
$element
[
0
].
parentNode
||
(
this
.
hide
(),
this
.
$element
=
null
,
this
.
options
=
null
)},
enable
:
function
(){
this
.
enabled
=!
0
},
disable
:
function
(){
this
.
enabled
=!
1
},
toggleEnabled
:
function
(){
this
.
enabled
=!
this
.
enabled
},
toggle
:
function
(
t
){
var
n
=
e
(
t
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
n
[
n
.
tip
().
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()},
destroy
:
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
this
.
type
)}},
e
.
fn
.
tooltip
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
tooltip
"
),
s
=
typeof
n
==
"
object
"
&&
n
;
i
||
r
.
data
(
"
tooltip
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
string
"
&&
i
[
n
]()})},
e
.
fn
.
tooltip
.
Constructor
=
t
,
e
.
fn
.
tooltip
.
defaults
=
{
animation
:
!
0
,
placement
:
"
top
"
,
selector
:
!
1
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
,
trigger
:
"
hover
"
,
title
:
""
,
delay
:
0
,
html
:
!
1
}}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
e
,
t
){
this
.
init
(
"
popover
"
,
e
,
t
)};
t
.
prototype
=
e
.
extend
({},
e
.
fn
.
tooltip
.
Constructor
.
prototype
,{
constructor
:
t
,
setContent
:
function
(){
var
e
=
this
.
tip
(),
t
=
this
.
getTitle
(),
n
=
this
.
getContent
();
e
.
find
(
"
.popover-title
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
t
),
e
.
find
(
"
.popover-content
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
n
),
e
.
removeClass
(
"
fade top bottom left right in
"
)},
hasContent
:
function
(){
return
this
.
getTitle
()
||
this
.
getContent
()},
getContent
:
function
(){
var
e
,
t
=
this
.
$element
,
n
=
this
.
options
;
return
e
=
t
.
attr
(
"
data-content
"
)
||
(
typeof
n
.
content
==
"
function
"
?
n
.
content
.
call
(
t
[
0
]):
n
.
content
),
e
},
tip
:
function
(){
return
this
.
$tip
||
(
this
.
$tip
=
e
(
this
.
options
.
template
)),
this
.
$tip
},
destroy
:
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
this
.
type
)}}),
e
.
fn
.
popover
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
popover
"
),
s
=
typeof
n
==
"
object
"
&&
n
;
i
||
r
.
data
(
"
popover
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
string
"
&&
i
[
n
]()})},
e
.
fn
.
popover
.
Constructor
=
t
,
e
.
fn
.
popover
.
defaults
=
e
.
extend
({},
e
.
fn
.
tooltip
.
defaults
,{
placement
:
"
right
"
,
trigger
:
"
click
"
,
content
:
""
,
template
:
'
<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>
'
})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
function
t
(
t
,
n
){
var
r
=
e
.
proxy
(
this
.
process
,
this
),
i
=
e
(
t
).
is
(
"
body
"
)?
e
(
window
):
e
(
t
),
s
;
this
.
options
=
e
.
extend
({},
e
.
fn
.
scrollspy
.
defaults
,
n
),
this
.
$scrollElement
=
i
.
on
(
"
scroll.scroll-spy.data-api
"
,
r
),
this
.
selector
=
(
this
.
options
.
target
||
(
s
=
e
(
t
).
attr
(
"
href
"
))
&&
s
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)
||
""
)
+
"
.nav li > a
"
,
this
.
$body
=
e
(
"
body
"
),
this
.
refresh
(),
this
.
process
()}
t
.
prototype
=
{
constructor
:
t
,
refresh
:
function
(){
var
t
=
this
,
n
;
this
.
offsets
=
e
([]),
this
.
targets
=
e
([]),
n
=
this
.
$body
.
find
(
this
.
selector
).
map
(
function
(){
var
t
=
e
(
this
),
n
=
t
.
data
(
"
target
"
)
||
t
.
attr
(
"
href
"
),
r
=
/^#
\w
/
.
test
(
n
)
&&
e
(
n
);
return
r
&&
r
.
length
&&
[[
r
.
position
().
top
,
n
]]
||
null
}).
sort
(
function
(
e
,
t
){
return
e
[
0
]
-
t
[
0
]}).
each
(
function
(){
t
.
offsets
.
push
(
this
[
0
]),
t
.
targets
.
push
(
this
[
1
])})},
process
:
function
(){
var
e
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
t
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
,
n
=
t
-
this
.
$scrollElement
.
height
(),
r
=
this
.
offsets
,
i
=
this
.
targets
,
s
=
this
.
activeTarget
,
o
;
if
(
e
>=
n
)
return
s
!=
(
o
=
i
.
last
()[
0
])
&&
this
.
activate
(
o
);
for
(
o
=
r
.
length
;
o
--
;)
s
!=
i
[
o
]
&&
e
>=
r
[
o
]
&&
(
!
r
[
o
+
1
]
||
e
<=
r
[
o
+
1
])
&&
this
.
activate
(
i
[
o
])},
activate
:
function
(
t
){
var
n
,
r
;
this
.
activeTarget
=
t
,
e
(
this
.
selector
).
parent
(
"
.active
"
).
removeClass
(
"
active
"
),
r
=
this
.
selector
+
'
[data-target="
'
+
t
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
t
+
'
"]
'
,
n
=
e
(
r
).
parent
(
"
li
"
).
addClass
(
"
active
"
),
n
.
parent
(
"
.dropdown-menu
"
).
length
&&
(
n
=
n
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
)),
n
.
trigger
(
"
activate
"
)}},
e
.
fn
.
scrollspy
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
scrollspy
"
),
s
=
typeof
n
==
"
object
"
&&
n
;
i
||
r
.
data
(
"
scrollspy
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
string
"
&&
i
[
n
]()})},
e
.
fn
.
scrollspy
.
Constructor
=
t
,
e
.
fn
.
scrollspy
.
defaults
=
{
offset
:
10
},
e
(
window
).
on
(
"
load
"
,
function
(){
e
(
'
[data-spy="scroll"]
'
).
each
(
function
(){
var
t
=
e
(
this
);
t
.
scrollspy
(
t
.
data
())})})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
t
){
this
.
element
=
e
(
t
)};
t
.
prototype
=
{
constructor
:
t
,
show
:
function
(){
var
t
=
this
.
element
,
n
=
t
.
closest
(
"
ul:not(.dropdown-menu)
"
),
r
=
t
.
attr
(
"
data-target
"
),
i
,
s
,
o
;
r
||
(
r
=
t
.
attr
(
"
href
"
),
r
=
r
&&
r
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
if
(
t
.
parent
(
"
li
"
).
hasClass
(
"
active
"
))
return
;
i
=
n
.
find
(
"
.active:last a
"
)[
0
],
o
=
e
.
Event
(
"
show
"
,{
relatedTarget
:
i
}),
t
.
trigger
(
o
);
if
(
o
.
isDefaultPrevented
())
return
;
s
=
e
(
r
),
this
.
activate
(
t
.
parent
(
"
li
"
),
n
),
this
.
activate
(
s
,
s
.
parent
(),
function
(){
t
.
trigger
({
type
:
"
shown
"
,
relatedTarget
:
i
})})},
activate
:
function
(
t
,
n
,
r
){
function
o
(){
i
.
removeClass
(
"
active
"
).
find
(
"
> .dropdown-menu > .active
"
).
removeClass
(
"
active
"
),
t
.
addClass
(
"
active
"
),
s
?(
t
[
0
].
offsetWidth
,
t
.
addClass
(
"
in
"
)):
t
.
removeClass
(
"
fade
"
),
t
.
parent
(
"
.dropdown-menu
"
)
&&
t
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
),
r
&&
r
()}
var
i
=
n
.
find
(
"
> .active
"
),
s
=
r
&&
e
.
support
.
transition
&&
i
.
hasClass
(
"
fade
"
);
s
?
i
.
one
(
e
.
support
.
transition
.
end
,
o
):
o
(),
i
.
removeClass
(
"
in
"
)}},
e
.
fn
.
tab
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
tab
"
);
i
||
r
.
data
(
"
tab
"
,
i
=
new
t
(
this
)),
typeof
n
==
"
string
"
&&
i
[
n
]()})},
e
.
fn
.
tab
.
Constructor
=
t
,
e
(
document
).
on
(
"
click.tab.data-api
"
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
t
){
t
.
preventDefault
(),
e
(
this
).
tab
(
"
show
"
)})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
t
,
n
){
this
.
$element
=
e
(
t
),
this
.
options
=
e
.
extend
({},
e
.
fn
.
typeahead
.
defaults
,
n
),
this
.
matcher
=
this
.
options
.
matcher
||
this
.
matcher
,
this
.
sorter
=
this
.
options
.
sorter
||
this
.
sorter
,
this
.
highlighter
=
this
.
options
.
highlighter
||
this
.
highlighter
,
this
.
updater
=
this
.
options
.
updater
||
this
.
updater
,
this
.
$menu
=
e
(
this
.
options
.
menu
).
appendTo
(
"
body
"
),
this
.
source
=
this
.
options
.
source
,
this
.
shown
=!
1
,
this
.
listen
()};
t
.
prototype
=
{
constructor
:
t
,
select
:
function
(){
var
e
=
this
.
$menu
.
find
(
"
.active
"
).
attr
(
"
data-value
"
);
return
this
.
$element
.
val
(
this
.
updater
(
e
)).
change
(),
this
.
hide
()},
updater
:
function
(
e
){
return
e
},
show
:
function
(){
var
t
=
e
.
extend
({},
this
.
$element
.
offset
(),{
height
:
this
.
$element
[
0
].
offsetHeight
});
return
this
.
$menu
.
css
({
top
:
t
.
top
+
t
.
height
,
left
:
t
.
left
}),
this
.
$menu
.
show
(),
this
.
shown
=!
0
,
this
},
hide
:
function
(){
return
this
.
$menu
.
hide
(),
this
.
shown
=!
1
,
this
},
lookup
:
function
(
t
){
var
n
;
return
this
.
query
=
this
.
$element
.
val
(),
!
this
.
query
||
this
.
query
.
length
<
this
.
options
.
minLength
?
this
.
shown
?
this
.
hide
():
this
:(
n
=
e
.
isFunction
(
this
.
source
)?
this
.
source
(
this
.
query
,
e
.
proxy
(
this
.
process
,
this
)):
this
.
source
,
n
?
this
.
process
(
n
):
this
)},
process
:
function
(
t
){
var
n
=
this
;
return
t
=
e
.
grep
(
t
,
function
(
e
){
return
n
.
matcher
(
e
)}),
t
=
this
.
sorter
(
t
),
t
.
length
?
this
.
render
(
t
.
slice
(
0
,
this
.
options
.
items
)).
show
():
this
.
shown
?
this
.
hide
():
this
},
matcher
:
function
(
e
){
return
~
e
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
())},
sorter
:
function
(
e
){
var
t
=
[],
n
=
[],
r
=
[],
i
;
while
(
i
=
e
.
shift
())
i
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
())?
~
i
.
indexOf
(
this
.
query
)?
n
.
push
(
i
):
r
.
push
(
i
):
t
.
push
(
i
);
return
t
.
concat
(
n
,
r
)},
highlighter
:
function
(
e
){
var
t
=
this
.
query
.
replace
(
/
[\-\[\]
{}()*+?.,
\\\^
$|#
\s]
/g
,
"
\\
$&
"
);
return
e
.
replace
(
new
RegExp
(
"
(
"
+
t
+
"
)
"
,
"
ig
"
),
function
(
e
,
t
){
return
"
<strong>
"
+
t
+
"
</strong>
"
})},
render
:
function
(
t
){
var
n
=
this
;
return
t
=
e
(
t
).
map
(
function
(
t
,
r
){
return
t
=
e
(
n
.
options
.
item
).
attr
(
"
data-value
"
,
r
),
t
.
find
(
"
a
"
).
html
(
n
.
highlighter
(
r
)),
t
[
0
]}),
t
.
first
().
addClass
(
"
active
"
),
this
.
$menu
.
html
(
t
),
this
},
next
:
function
(
t
){
var
n
=
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
r
=
n
.
next
();
r
.
length
||
(
r
=
e
(
this
.
$menu
.
find
(
"
li
"
)[
0
])),
r
.
addClass
(
"
active
"
)},
prev
:
function
(
e
){
var
t
=
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
n
=
t
.
prev
();
n
.
length
||
(
n
=
this
.
$menu
.
find
(
"
li
"
).
last
()),
n
.
addClass
(
"
active
"
)},
listen
:
function
(){
this
.
$element
.
on
(
"
blur
"
,
e
.
proxy
(
this
.
blur
,
this
)).
on
(
"
keypress
"
,
e
.
proxy
(
this
.
keypress
,
this
)).
on
(
"
keyup
"
,
e
.
proxy
(
this
.
keyup
,
this
)),
this
.
eventSupported
(
"
keydown
"
)
&&
this
.
$element
.
on
(
"
keydown
"
,
e
.
proxy
(
this
.
keydown
,
this
)),
this
.
$menu
.
on
(
"
click
"
,
e
.
proxy
(
this
.
click
,
this
)).
on
(
"
mouseenter
"
,
"
li
"
,
e
.
proxy
(
this
.
mouseenter
,
this
))},
eventSupported
:
function
(
e
){
var
t
=
e
in
this
.
$element
;
return
t
||
(
this
.
$element
.
setAttribute
(
e
,
"
return;
"
),
t
=
typeof
this
.
$element
[
e
]
==
"
function
"
),
t
},
move
:
function
(
e
){
if
(
!
this
.
shown
)
return
;
switch
(
e
.
keyCode
){
case
9
:
case
13
:
case
27
:
e
.
preventDefault
();
break
;
case
38
:
e
.
preventDefault
(),
this
.
prev
();
break
;
case
40
:
e
.
preventDefault
(),
this
.
next
()}
e
.
stopPropagation
()},
keydown
:
function
(
t
){
this
.
suppressKeyPressRepeat
=!~
e
.
inArray
(
t
.
keyCode
,[
40
,
38
,
9
,
13
,
27
]),
this
.
move
(
t
)},
keypress
:
function
(
e
){
if
(
this
.
suppressKeyPressRepeat
)
return
;
this
.
move
(
e
)},
keyup
:
function
(
e
){
switch
(
e
.
keyCode
){
case
40
:
case
38
:
case
16
:
case
17
:
case
18
:
break
;
case
9
:
case
13
:
if
(
!
this
.
shown
)
return
;
this
.
select
();
break
;
case
27
:
if
(
!
this
.
shown
)
return
;
this
.
hide
();
break
;
default
:
this
.
lookup
()}
e
.
stopPropagation
(),
e
.
preventDefault
()},
blur
:
function
(
e
){
var
t
=
this
;
setTimeout
(
function
(){
t
.
hide
()},
150
)},
click
:
function
(
e
){
e
.
stopPropagation
(),
e
.
preventDefault
(),
this
.
select
()},
mouseenter
:
function
(
t
){
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
e
(
t
.
currentTarget
).
addClass
(
"
active
"
)}},
e
.
fn
.
typeahead
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
typeahead
"
),
s
=
typeof
n
==
"
object
"
&&
n
;
i
||
r
.
data
(
"
typeahead
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
string
"
&&
i
[
n
]()})},
e
.
fn
.
typeahead
.
defaults
=
{
source
:[],
items
:
8
,
menu
:
'
<ul class="typeahead dropdown-menu"></ul>
'
,
item
:
'
<li><a href="#"></a></li>
'
,
minLength
:
1
},
e
.
fn
.
typeahead
.
Constructor
=
t
,
e
(
document
).
on
(
"
focus.typeahead.data-api
"
,
'
[data-provide="typeahead"]
'
,
function
(
t
){
var
n
=
e
(
this
);
if
(
n
.
data
(
"
typeahead
"
))
return
;
t
.
preventDefault
(),
n
.
typeahead
(
n
.
data
())})}(
window
.
jQuery
),
!
function
(
e
){
"
use strict
"
;
var
t
=
function
(
t
,
n
){
this
.
options
=
e
.
extend
({},
e
.
fn
.
affix
.
defaults
,
n
),
this
.
$window
=
e
(
window
).
on
(
"
scroll.affix.data-api
"
,
e
.
proxy
(
this
.
checkPosition
,
this
)).
on
(
"
click.affix.data-api
"
,
e
.
proxy
(
function
(){
setTimeout
(
e
.
proxy
(
this
.
checkPosition
,
this
),
1
)},
this
)),
this
.
$element
=
e
(
t
),
this
.
checkPosition
()};
t
.
prototype
.
checkPosition
=
function
(){
if
(
!
this
.
$element
.
is
(
"
:visible
"
))
return
;
var
t
=
e
(
document
).
height
(),
n
=
this
.
$window
.
scrollTop
(),
r
=
this
.
$element
.
offset
(),
i
=
this
.
options
.
offset
,
s
=
i
.
bottom
,
o
=
i
.
top
,
u
=
"
affix affix-top affix-bottom
"
,
a
;
typeof
i
!=
"
object
"
&&
(
s
=
o
=
i
),
typeof
o
==
"
function
"
&&
(
o
=
i
.
top
()),
typeof
s
==
"
function
"
&&
(
s
=
i
.
bottom
()),
a
=
this
.
unpin
!=
null
&&
n
+
this
.
unpin
<=
r
.
top
?
!
1
:
s
!=
null
&&
r
.
top
+
this
.
$element
.
height
()
>=
t
-
s
?
"
bottom
"
:
o
!=
null
&&
n
<=
o
?
"
top
"
:
!
1
;
if
(
this
.
affixed
===
a
)
return
;
this
.
affixed
=
a
,
this
.
unpin
=
a
==
"
bottom
"
?
r
.
top
-
n
:
null
,
this
.
$element
.
removeClass
(
u
).
addClass
(
"
affix
"
+
(
a
?
"
-
"
+
a
:
""
))},
e
.
fn
.
affix
=
function
(
n
){
return
this
.
each
(
function
(){
var
r
=
e
(
this
),
i
=
r
.
data
(
"
affix
"
),
s
=
typeof
n
==
"
object
"
&&
n
;
i
||
r
.
data
(
"
affix
"
,
i
=
new
t
(
this
,
s
)),
typeof
n
==
"
string
"
&&
i
[
n
]()})},
e
.
fn
.
affix
.
Constructor
=
t
,
e
.
fn
.
affix
.
defaults
=
{
offset
:
0
},
e
(
window
).
on
(
"
load
"
,
function
(){
e
(
'
[data-spy="affix"]
'
).
each
(
function
(){
var
t
=
e
(
this
),
n
=
t
.
data
();
n
.
offset
=
n
.
offset
||
{},
n
.
offsetBottom
&&
(
n
.
offset
.
bottom
=
n
.
offsetBottom
),
n
.
offsetTop
&&
(
n
.
offset
.
top
=
n
.
offsetTop
),
t
.
affix
(
n
)})})}(
window
.
jQuery
);
\ No newline at end of file
less/alerts.less
View file @
68cbba34
...
@@ -40,17 +40,30 @@
...
@@ -40,17 +40,30 @@
border-color: @successBorder;
border-color: @successBorder;
color: @successText;
color: @successText;
}
}
.alert-success h4 {
// Specified for the h4 to prevent conflicts of changing @headingsColor
color: @successText;
}
.alert-danger,
.alert-danger,
.alert-error {
.alert-error {
background-color: @errorBackground;
background-color: @errorBackground;
border-color: @errorBorder;
border-color: @errorBorder;
color: @errorText;
color: @errorText;
}
}
.alert-danger h4,
.alert-error h4 {
// Specified for the h4 to prevent conflicts of changing @headingsColor
color: @errorText;
}
.alert-info {
.alert-info {
background-color: @infoBackground;
background-color: @infoBackground;
border-color: @infoBorder;
border-color: @infoBorder;
color: @infoText;
color: @infoText;
}
}
.alert-info h4 {
// Specified for the h4 to prevent conflicts of changing @headingsColor
color: @infoText;
}
// Block alerts
// Block alerts
...
...
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