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
292d8d68
Commit
292d8d68
authored
Jul 26, 2013
by
Chris Rebert
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
specify explicit ordering for grunt concat step
parent
0d33455e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
644 additions
and
644 deletions
+644
-644
Gruntfile.js
Gruntfile.js
+1
-1
dist/js/bootstrap.js
dist/js/bootstrap.js
+642
-642
dist/js/bootstrap.min.js
dist/js/bootstrap.min.js
+1
-1
No files found.
Gruntfile.js
View file @
292d8d68
...
...
@@ -19,7 +19,7 @@ module.exports = function(grunt) {
stripBanners
:
false
},
bootstrap
:
{
src
:
[
'
js/
*
.js
'
],
src
:
[
'
js/
transition.js
'
,
'
js/alert.js
'
,
'
js/button.js
'
,
'
js/carousel.js
'
,
'
js/collapse.js
'
,
'
js/dropdown.js
'
,
'
js/modal.js
'
,
'
js/tooltip.js
'
,
'
js/popover.js
'
,
'
js/scrollspy.js
'
,
'
js/tab.js
'
,
'
js/affix
.js
'
],
dest
:
'
dist/js/<%= pkg.name %>.js
'
}
},
...
...
dist/js/bootstrap.js
View file @
292d8d68
...
...
@@ -4,10 +4,10 @@
* http://www.apache.org/licenses/LICENSE-2.0
*/
/* ========================================================================
* Bootstrap:
affix
.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#
affix
* Bootstrap:
transition
.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#
transitions
* ========================================================================
* Copyright 201
2
Twitter, Inc.
* Copyright 201
3
Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -25,107 +25,36 @@
+
function
(
$
)
{
"
use strict
"
;
// AFFIX CLASS DEFINITION
// ======================
var
Affix
=
function
(
element
,
options
)
{
this
.
options
=
$
.
extend
({},
Affix
.
DEFAULTS
,
options
)
this
.
$window
=
$
(
window
)
.
on
(
'
scroll.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPosition
,
this
))
.
on
(
'
click.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPositionWithEventLoop
,
this
))
this
.
$element
=
$
(
element
)
this
.
affixed
=
this
.
unpin
=
null
this
.
checkPosition
()
}
Affix
.
RESET
=
'
affix affix-top affix-bottom
'
Affix
.
DEFAULTS
=
{
offset
:
0
}
Affix
.
prototype
.
checkPositionWithEventLoop
=
function
()
{
setTimeout
(
$
.
proxy
(
this
.
checkPosition
,
this
),
1
)
}
Affix
.
prototype
.
checkPosition
=
function
()
{
if
(
!
this
.
$element
.
is
(
'
:visible
'
))
return
var
scrollHeight
=
$
(
document
).
height
()
var
scrollTop
=
this
.
$window
.
scrollTop
()
var
position
=
this
.
$element
.
offset
()
var
offset
=
this
.
options
.
offset
var
offsetTop
=
offset
.
top
var
offsetBottom
=
offset
.
bottom
if
(
typeof
offset
!=
'
object
'
)
offsetBottom
=
offsetTop
=
offset
if
(
typeof
offsetTop
==
'
function
'
)
offsetTop
=
offset
.
top
()
if
(
typeof
offsetBottom
==
'
function
'
)
offsetBottom
=
offset
.
bottom
()
var
affix
=
this
.
unpin
!=
null
&&
(
scrollTop
+
this
.
unpin
<=
position
.
top
)
?
false
:
offsetBottom
!=
null
&&
(
position
.
top
+
this
.
$element
.
height
()
>=
scrollHeight
-
offsetBottom
)
?
'
bottom
'
:
offsetTop
!=
null
&&
(
scrollTop
<=
offsetTop
)
?
'
top
'
:
false
if
(
this
.
affixed
===
affix
)
return
if
(
this
.
unpin
)
this
.
$element
.
css
(
'
top
'
,
''
)
this
.
affixed
=
affix
this
.
unpin
=
affix
==
'
bottom
'
?
position
.
top
-
scrollTop
:
null
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
// ============================================================
this
.
$element
.
removeClass
(
Affix
.
RESET
).
addClass
(
'
affix
'
+
(
affix
?
'
-
'
+
affix
:
''
))
function
transitionEnd
()
{
var
el
=
document
.
createElement
(
'
bootstrap
'
)
if
(
affix
==
'
bottom
'
)
{
this
.
$element
.
offset
({
top
:
document
.
body
.
offsetHeight
-
offsetBottom
-
this
.
$element
.
height
()
})
var
transEndEventNames
=
{
'
WebkitTransition
'
:
'
webkitTransitionEnd
'
,
'
MozTransition
'
:
'
transitionend
'
,
'
OTransition
'
:
'
oTransitionEnd otransitionend
'
,
'
transition
'
:
'
transitionend
'
}
}
// AFFIX PLUGIN DEFINITION
// =======================
var
old
=
$
.
fn
.
affix
$
.
fn
.
affix
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.affix
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
bs.affix
'
,
(
data
=
new
Affix
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
for
(
var
name
in
transEndEventNames
)
{
if
(
el
.
style
[
name
]
!==
undefined
)
{
return
{
end
:
transEndEventNames
[
name
]
}
}
}
}
$
.
fn
.
affix
.
Constructor
=
Affix
// AFFIX NO CONFLICT
// =================
$
.
fn
.
affix
.
noConflict
=
function
()
{
$
.
fn
.
affix
=
old
return
this
// http://blog.alexmaccaw.com/css-transitions
$
.
fn
.
emulateTransitionEnd
=
function
(
duration
)
{
var
called
=
false
,
$el
=
this
$
(
this
).
one
(
'
webkitTransitionEnd
'
,
function
()
{
called
=
true
})
var
callback
=
function
()
{
if
(
!
called
)
$
(
$el
).
trigger
(
'
webkitTransitionEnd
'
)
}
setTimeout
(
callback
,
duration
)
}
// AFFIX DATA-API
// ==============
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-spy="affix"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
var
data
=
$spy
.
data
()
data
.
offset
=
data
.
offset
||
{}
if
(
data
.
offsetBottom
)
data
.
offset
.
bottom
=
data
.
offsetBottom
if
(
data
.
offsetTop
)
data
.
offset
.
top
=
data
.
offsetTop
$spy
.
affix
(
data
)
})
$
(
function
()
{
$
.
support
.
transition
=
transitionEnd
()
})
}(
window
.
jQuery
);
...
...
@@ -1118,8 +1047,9 @@
}(
window
.
jQuery
);
/* ========================================================================
* Bootstrap: popover.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#popovers
* Bootstrap: tooltip.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#affix
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
...
...
@@ -1139,395 +1069,351 @@
+
function
(
$
)
{
"
use strict
"
;
//
POPOVER
PUBLIC CLASS DEFINITION
//
TOOLTIP
PUBLIC CLASS DEFINITION
// ===============================
var
Popover
=
function
(
element
,
options
)
{
this
.
init
(
'
popover
'
,
element
,
options
)
}
Popover
.
DEFAULTS
=
$
.
extend
({}
,
$
.
fn
.
tooltip
.
Constructor
.
DEFAULTS
,
{
placement
:
'
right
'
,
trigger
:
'
click
'
,
content
:
''
,
template
:
'
<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>
'
})
var
Tooltip
=
function
(
element
,
options
)
{
this
.
type
=
this
.
options
=
this
.
enabled
=
this
.
timeout
=
this
.
hoverState
=
this
.
$element
=
null
// NOTE: POPOVER EXTENDS tooltip.js
// ================================
this
.
init
(
'
tooltip
'
,
element
,
options
)
}
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
)
Tooltip
.
DEFAULTS
=
{
animation
:
true
,
placement
:
'
top
'
,
selector
:
false
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
,
trigger
:
'
hover focus
'
,
title
:
''
,
delay
:
0
,
html
:
false
,
container
:
false
}
Popover
.
prototype
.
constructor
=
Popover
Tooltip
.
prototype
.
init
=
function
(
type
,
element
,
options
)
{
this
.
enabled
=
true
this
.
type
=
type
this
.
$element
=
$
(
element
)
this
.
options
=
this
.
getOptions
(
options
)
Popover
.
prototype
.
getDefaults
=
function
()
{
return
Popover
.
DEFAULTS
}
var
triggers
=
this
.
options
.
trigger
.
split
(
'
'
)
Popover
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
()
var
title
=
this
.
getTitle
()
var
content
=
this
.
getContent
()
for
(
var
i
=
triggers
.
length
;
i
--
;)
{
var
trigger
=
triggers
[
i
]
$tip
.
find
(
'
.popover-title
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
find
(
'
.popover-content
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
content
)
if
(
trigger
==
'
click
'
)
{
this
.
$element
.
on
(
'
click.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
toggle
,
this
))
}
else
if
(
trigger
!=
'
manual
'
)
{
var
eventIn
=
trigger
==
'
hover
'
?
'
mouseenter
'
:
'
focus
'
var
eventOut
=
trigger
==
'
hover
'
?
'
mouseleave
'
:
'
blur
'
$tip
.
removeClass
(
'
fade top bottom left right in
'
)
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
))
}
}
$tip
.
find
(
'
.popover-title:empty
'
).
hide
()
this
.
options
.
selector
?
(
this
.
_options
=
$
.
extend
({},
this
.
options
,
{
trigger
:
'
manual
'
,
selector
:
''
}))
:
this
.
fixTitle
()
}
Popover
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
Tooltip
.
prototype
.
getDefaults
=
function
()
{
return
Tooltip
.
DEFAULTS
}
Popover
.
prototype
.
getContent
=
function
()
{
var
$e
=
this
.
$element
var
o
=
this
.
options
Tooltip
.
prototype
.
getOptions
=
function
(
options
)
{
options
=
$
.
extend
({},
this
.
getDefaults
(),
this
.
$element
.
data
(),
options
)
return
$e
.
attr
(
'
data-content
'
)
||
(
typeof
o
.
content
==
'
function
'
?
o
.
content
.
call
(
$e
[
0
])
:
o
.
content
)
}
if
(
options
.
delay
&&
typeof
options
.
delay
==
'
number
'
)
{
options
.
delay
=
{
show
:
options
.
delay
,
hide
:
options
.
delay
}
}
Popover
.
prototype
.
tip
=
function
()
{
if
(
!
this
.
$tip
)
this
.
$tip
=
$
(
this
.
options
.
template
)
return
this
.
$tip
return
options
}
Popover
.
prototype
.
destroy
=
function
(
)
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
this
.
type
)
}
Tooltip
.
prototype
.
enter
=
function
(
obj
)
{
var
defaults
=
this
.
getDefaults
(
)
var
options
=
{
}
this
.
_options
&&
$
.
each
(
this
.
_options
,
function
(
key
,
value
)
{
if
(
defaults
[
key
]
!=
value
)
options
[
key
]
=
value
})
// POPOVER PLUGIN DEFINITION
// =========================
var
self
=
obj
instanceof
this
.
constructor
?
obj
:
$
(
obj
.
currentTarget
)[
this
.
type
](
options
).
data
(
'
bs.
'
+
this
.
type
)
var
old
=
$
.
fn
.
popover
clearTimeout
(
self
.
timeout
)
$
.
fn
.
popover
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.popover
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
show
)
return
self
.
show
()
if
(
!
data
)
$this
.
data
(
'
bs.popover
'
,
(
data
=
new
Popover
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
self
.
hoverState
=
'
in
'
self
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
in
'
)
self
.
show
()
},
self
.
options
.
delay
.
show
)
}
$
.
fn
.
popover
.
Constructor
=
Popover
Tooltip
.
prototype
.
leave
=
function
(
obj
)
{
var
self
=
obj
instanceof
this
.
constructor
?
obj
:
$
(
obj
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
'
bs.
'
+
this
.
type
)
clearTimeout
(
self
.
timeout
)
// POPOVER NO CONFLICT
// ===================
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
hide
)
return
self
.
hide
()
$
.
fn
.
popover
.
noConflict
=
function
()
{
$
.
fn
.
popover
=
old
return
this
self
.
hoverState
=
'
out
'
self
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
out
'
)
self
.
hide
()
},
self
.
options
.
delay
.
hide
)
}
}(
window
.
jQuery
);
Tooltip
.
prototype
.
show
=
function
()
{
var
e
=
$
.
Event
(
'
show.bs.
'
+
this
.
type
)
/* ========================================================================
* Bootstrap: scrollspy.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#scrollspy
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
if
(
this
.
hasContent
()
&&
this
.
enabled
)
{
this
.
$element
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
+
function
(
$
)
{
"
use strict
"
;
var
$tip
=
this
.
tip
()
// SCROLLSPY CLASS DEFINITION
// ==========================
this
.
setContent
()
function
ScrollSpy
(
element
,
options
)
{
var
href
var
process
=
$
.
proxy
(
this
.
process
,
this
)
var
$element
=
$
(
element
).
is
(
'
body
'
)
?
$
(
window
)
:
$
(
element
)
if
(
this
.
options
.
animation
)
$tip
.
addClass
(
'
fade
'
)
this
.
$body
=
$
(
'
body
'
)
this
.
$scrollElement
=
$element
.
on
(
'
scroll.bs.scroll-spy.data-api
'
,
process
)
this
.
options
=
$
.
extend
({},
ScrollSpy
.
DEFAULTS
,
options
)
this
.
selector
=
(
this
.
options
.
target
||
((
href
=
$
(
element
).
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
))
//strip for ie7
||
''
)
+
'
.nav li > a
'
this
.
offsets
=
$
([])
this
.
targets
=
$
([])
this
.
activeTarget
=
null
var
placement
=
typeof
this
.
options
.
placement
==
'
function
'
?
this
.
options
.
placement
.
call
(
this
,
$tip
[
0
],
this
.
$element
[
0
])
:
this
.
options
.
placement
this
.
refresh
()
this
.
process
(
)
}
var
autoToken
=
/
\s?
auto
?\s?
/i
var
autoPlace
=
autoToken
.
test
(
placement
)
if
(
autoPlace
)
placement
=
placement
.
replace
(
autoToken
,
''
)
||
'
top
'
ScrollSpy
.
DEFAULTS
=
{
offset
:
10
}
$tip
.
detach
()
.
css
({
top
:
0
,
left
:
0
,
display
:
'
block
'
})
.
addClass
(
placement
)
ScrollSpy
.
prototype
.
refresh
=
function
()
{
this
.
offsets
=
$
([])
this
.
targets
=
$
([])
this
.
options
.
container
?
$tip
.
appendTo
(
this
.
options
.
container
)
:
$tip
.
insertAfter
(
this
.
$element
)
var
self
=
this
var
$targets
=
this
.
$body
.
find
(
this
.
selector
)
.
map
(
function
()
{
var
$el
=
$
(
this
)
var
href
=
$el
.
data
(
'
target
'
)
||
$el
.
attr
(
'
href
'
)
var
$href
=
/^#
\w
/
.
test
(
href
)
&&
$
(
href
)
var
pos
=
this
.
getPosition
()
var
actualWidth
=
$tip
[
0
].
offsetWidth
var
actualHeight
=
$tip
[
0
].
offsetHeight
return
(
$href
&&
$href
.
length
&&
[[
$href
.
offset
().
top
+
(
!
$
.
isWindow
(
self
.
$scrollElement
.
get
(
0
))
&&
self
.
$scrollElement
.
scrollTop
()),
href
]])
||
null
})
.
sort
(
function
(
a
,
b
)
{
return
a
[
0
]
-
b
[
0
]
})
.
each
(
function
()
{
self
.
offsets
.
push
(
this
[
0
])
self
.
targets
.
push
(
this
[
1
])
})
}
if
(
autoPlace
)
{
var
$parent
=
this
.
$element
.
parent
()
ScrollSpy
.
prototype
.
process
=
function
()
{
var
scrollTop
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
var
scrollHeight
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
var
maxScroll
=
scrollHeight
-
this
.
$scrollElement
.
height
()
var
offsets
=
this
.
offsets
var
targets
=
this
.
targets
var
activeTarget
=
this
.
activeTarget
var
i
var
orgPlacement
=
placement
var
docScroll
=
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
var
parentWidth
=
this
.
options
.
container
==
'
body
'
?
window
.
innerWidth
:
$parent
.
outerWidth
()
var
parentHeight
=
this
.
options
.
container
==
'
body
'
?
window
.
innerHeight
:
$parent
.
outerHeight
()
var
parentLeft
=
this
.
options
.
container
==
'
body
'
?
0
:
$parent
.
offset
().
left
if
(
scrollTop
>=
maxScroll
)
{
return
activeTarget
!=
(
i
=
targets
.
last
()[
0
])
&&
this
.
activate
(
i
)
}
placement
=
placement
==
'
bottom
'
&&
pos
.
top
+
pos
.
height
+
actualHeight
-
docScroll
>
parentHeight
?
'
top
'
:
placement
==
'
top
'
&&
pos
.
top
-
docScroll
-
actualHeight
<
0
?
'
bottom
'
:
placement
==
'
right
'
&&
pos
.
right
+
actualWidth
>
parentWidth
?
'
left
'
:
placement
==
'
left
'
&&
pos
.
left
-
actualWidth
<
parentLeft
?
'
right
'
:
placement
for
(
i
=
offsets
.
length
;
i
--
;)
{
activeTarget
!=
targets
[
i
]
&&
scrollTop
>=
offsets
[
i
]
&&
(
!
offsets
[
i
+
1
]
||
scrollTop
<=
offsets
[
i
+
1
])
&&
this
.
activate
(
targets
[
i
]
)
$tip
.
removeClass
(
orgPlacement
)
.
addClass
(
placement
)
}
var
tp
=
placement
==
'
bottom
'
?
{
top
:
pos
.
top
+
pos
.
height
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
}
:
placement
==
'
top
'
?
{
top
:
pos
.
top
-
actualHeight
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
}
:
placement
==
'
left
'
?
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
-
actualWidth
}
:
/* placement == 'right' */
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
+
pos
.
width
}
this
.
applyPlacement
(
tp
,
placement
)
this
.
$element
.
trigger
(
'
shown.bs.
'
+
this
.
type
)
}
}
ScrollSpy
.
prototype
.
activate
=
function
(
target
)
{
this
.
activeTarget
=
target
Tooltip
.
prototype
.
applyPlacement
=
function
(
offset
,
placement
)
{
var
replace
var
$tip
=
this
.
tip
()
var
width
=
$tip
[
0
].
offsetWidth
var
height
=
$tip
[
0
].
offsetHeight
$
(
this
.
selector
)
.
parents
(
'
.active
'
)
.
removeClass
(
'
active
'
)
// manually read margins because getBoundingClientRect includes difference
offset
.
top
=
offset
.
top
+
parseInt
(
$tip
.
css
(
'
margin-top
'
),
10
)
offset
.
left
=
offset
.
left
+
parseInt
(
$tip
.
css
(
'
margin-left
'
),
10
)
var
selector
=
this
.
selector
+
'
[data-target="
'
+
target
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
$tip
.
offset
(
offset
)
.
addClass
(
'
in
'
)
var
active
=
$
(
selector
)
.
parents
(
'
li
'
)
.
addClass
(
'
active
'
)
var
actualWidth
=
$tip
[
0
].
offsetWidth
var
actualHeight
=
$tip
[
0
].
offsetHeight
if
(
active
.
parent
(
'
.dropdown-menu
'
).
length
)
{
active
=
active
.
closest
(
'
li.dropdown
'
)
.
addClass
(
'
active
'
)
if
(
placement
==
'
top
'
&&
actualHeight
!=
height
)
{
replace
=
true
offset
.
top
=
offset
.
top
+
height
-
actualHeight
}
active
.
trigger
(
'
activate
'
)
}
if
(
placement
==
'
bottom
'
||
placement
==
'
top
'
)
{
var
delta
=
0
if
(
offset
.
left
<
0
){
delta
=
offset
.
left
*
-
2
offset
.
left
=
0
// SCROLLSPY PLUGIN DEFINITION
// ===========================
$tip
.
offset
(
offset
)
var
old
=
$
.
fn
.
scrollspy
actualWidth
=
$tip
[
0
].
offsetWidth
actualHeight
=
$tip
[
0
].
offsetHeight
}
$
.
fn
.
scrollspy
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.scrollspy
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
this
.
replaceArrow
(
delta
-
width
+
actualWidth
,
actualWidth
,
'
left
'
)
}
else
{
this
.
replaceArrow
(
actualHeight
-
height
,
actualHeight
,
'
top
'
)
}
if
(
!
data
)
$this
.
data
(
'
bs.scrollspy
'
,
(
data
=
new
ScrollSpy
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
if
(
replace
)
$tip
.
offset
(
offset
)
}
$
.
fn
.
scrollspy
.
Constructor
=
ScrollSpy
// SCROLLSPY NO CONFLICT
// =====================
$
.
fn
.
scrollspy
.
noConflict
=
function
()
{
$
.
fn
.
scrollspy
=
old
return
this
Tooltip
.
prototype
.
replaceArrow
=
function
(
delta
,
dimension
,
position
)
{
this
.
arrow
().
css
(
position
,
delta
?
(
50
*
(
1
-
delta
/
dimension
)
+
"
%
"
)
:
''
)
}
Tooltip
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
()
var
title
=
this
.
getTitle
()
// SCROLLSPY DATA-API
// ==================
$tip
.
find
(
'
.tooltip-inner
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
removeClass
(
'
fade in top bottom left right
'
)
}
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-spy="scroll"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
$spy
.
scrollspy
(
$spy
.
data
())
})
})
Tooltip
.
prototype
.
hide
=
function
()
{
var
that
=
this
var
$tip
=
this
.
tip
()
var
e
=
$
.
Event
(
'
hide.bs.
'
+
this
.
type
)
}(
window
.
jQuery
);
this
.
$element
.
trigger
(
e
)
/* ========================================================================
* Bootstrap: tab.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tabs
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
if
(
e
.
isDefaultPrevented
())
return
$tip
.
removeClass
(
'
in
'
)
+
function
(
$
)
{
"
use strict
"
;
$
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
'
fade
'
)
?
$tip
.
one
(
$
.
support
.
transition
.
end
,
$tip
.
detach
)
.
emulateTransitionEnd
(
150
)
:
$tip
.
detach
()
// TAB CLASS DEFINITION
// ====================
this
.
$element
.
trigger
(
'
hidden.bs.
'
+
this
.
type
)
var
Tab
=
function
(
element
)
{
this
.
element
=
$
(
element
)
return
this
}
Tab
.
prototype
.
show
=
function
()
{
var
$this
=
this
.
element
var
$ul
=
$this
.
closest
(
'
ul:not(.dropdown-menu)
'
)
var
selector
=
$this
.
attr
(
'
data-target
'
)
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
Tooltip
.
prototype
.
fixTitle
=
function
()
{
var
$e
=
this
.
$element
if
(
$e
.
attr
(
'
title
'
)
||
typeof
(
$e
.
attr
(
'
data-original-title
'
))
!=
'
string
'
)
{
$e
.
attr
(
'
data-original-title
'
,
$e
.
attr
(
'
title
'
)
||
''
).
attr
(
'
title
'
,
''
)
}
}
if
(
$this
.
parent
(
'
li
'
).
hasClass
(
'
active
'
))
return
var
previous
=
$ul
.
find
(
'
.active:last a
'
)[
0
]
var
e
=
$
.
Event
(
'
show.bs.tab
'
,
{
relatedTarget
:
previous
})
Tooltip
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
}
$this
.
trigger
(
e
)
Tooltip
.
prototype
.
getPosition
=
function
()
{
var
el
=
this
.
$element
[
0
]
return
$
.
extend
({},
(
typeof
el
.
getBoundingClientRect
==
'
function
'
)
?
el
.
getBoundingClientRect
()
:
{
width
:
el
.
offsetWidth
,
height
:
el
.
offsetHeight
},
this
.
$element
.
offset
())
}
if
(
e
.
isDefaultPrevented
())
return
Tooltip
.
prototype
.
getTitle
=
function
()
{
var
title
var
$e
=
this
.
$element
var
o
=
this
.
options
var
$target
=
$
(
selector
)
title
=
$e
.
attr
(
'
data-original-title
'
)
||
(
typeof
o
.
title
==
'
function
'
?
o
.
title
.
call
(
$e
[
0
])
:
o
.
title
)
this
.
activate
(
$this
.
parent
(
'
li
'
),
$ul
)
this
.
activate
(
$target
,
$target
.
parent
(),
function
()
{
$this
.
trigger
({
type
:
'
shown.bs.tab
'
,
relatedTarget
:
previous
})
})
return
title
}
Tab
.
prototype
.
activate
=
function
(
element
,
container
,
callback
)
{
var
$active
=
container
.
find
(
'
> .active
'
)
var
transition
=
callback
&&
$
.
support
.
transition
&&
$active
.
hasClass
(
'
fade
'
)
Tooltip
.
prototype
.
tip
=
function
()
{
return
this
.
$tip
=
this
.
$tip
||
$
(
this
.
options
.
template
)
}
function
next
()
{
$active
.
removeClass
(
'
active
'
)
.
find
(
'
> .dropdown-menu > .active
'
)
.
removeClass
(
'
active
'
)
Tooltip
.
prototype
.
arrow
=
function
(){
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
"
.tooltip-arrow
"
)
}
element
.
addClass
(
'
active
'
)
Tooltip
.
prototype
.
validate
=
function
()
{
if
(
!
this
.
$element
[
0
].
parentNode
)
{
this
.
hide
()
this
.
$element
=
null
this
.
options
=
null
}
}
if
(
transition
)
{
element
[
0
].
offsetWidth
// reflow for transition
element
.
addClass
(
'
in
'
)
}
else
{
element
.
removeClass
(
'
fade
'
)
}
Tooltip
.
prototype
.
enable
=
function
()
{
this
.
enabled
=
true
}
if
(
element
.
parent
(
'
.dropdown-menu
'
)
)
{
element
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
}
Tooltip
.
prototype
.
disable
=
function
(
)
{
this
.
enabled
=
false
}
callback
&&
callback
()
}
Tooltip
.
prototype
.
toggleEnabled
=
function
()
{
this
.
enabled
=
!
this
.
enabled
}
transition
?
$active
.
one
(
$
.
support
.
transition
.
end
,
next
)
.
emulateTransitionEnd
(
150
)
:
next
()
Tooltip
.
prototype
.
toggle
=
function
(
e
)
{
var
self
=
e
?
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
'
bs.
'
+
this
.
type
)
:
this
self
.
tip
().
hasClass
(
'
in
'
)
?
self
.
leave
(
self
)
:
self
.
enter
(
self
)
}
$active
.
removeClass
(
'
in
'
)
Tooltip
.
prototype
.
destroy
=
function
()
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
'
bs.
'
+
this
.
type
)
}
// T
AB
PLUGIN DEFINITION
// =====================
// T
OOLTIP
PLUGIN DEFINITION
// =====================
====
var
old
=
$
.
fn
.
t
ab
var
old
=
$
.
fn
.
t
ooltip
$
.
fn
.
t
ab
=
function
(
option
)
{
$
.
fn
.
t
ooltip
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.tab
'
)
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.tooltip
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
bs.t
ab
'
,
(
data
=
new
Tab
(
thi
s
)))
if
(
!
data
)
$this
.
data
(
'
bs.t
ooltip
'
,
(
data
=
new
Tooltip
(
this
,
option
s
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
t
ab
.
Constructor
=
Tab
$
.
fn
.
t
ooltip
.
Constructor
=
Tooltip
// T
AB
NO CONFLICT
// ===============
// T
OOLTIP
NO CONFLICT
// ===============
====
$
.
fn
.
t
ab
.
noConflict
=
function
()
{
$
.
fn
.
t
ab
=
old
$
.
fn
.
t
ooltip
.
noConflict
=
function
()
{
$
.
fn
.
t
ooltip
=
old
return
this
}
// TAB DATA-API
// ============
$
(
document
).
on
(
'
click.bs.tab.data-api
'
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
e
)
{
e
.
preventDefault
()
$
(
this
).
tab
(
'
show
'
)
})
}(
window
.
jQuery
);
/* ========================================================================
* Bootstrap: tooltip.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#affix
* Inspired by the original jQuery.tipsy by Jason Frame
* Bootstrap: popover.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#popovers
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
...
...
@@ -1547,353 +1433,396 @@
+
function
(
$
)
{
"
use strict
"
;
//
TOOLTIP
PUBLIC CLASS DEFINITION
//
POPOVER
PUBLIC CLASS DEFINITION
// ===============================
var
Tooltip
=
function
(
element
,
options
)
{
this
.
type
=
this
.
options
=
this
.
enabled
=
this
.
timeout
=
this
.
hoverState
=
this
.
$element
=
null
this
.
init
(
'
tooltip
'
,
element
,
options
)
var
Popover
=
function
(
element
,
options
)
{
this
.
init
(
'
popover
'
,
element
,
options
)
}
Tooltip
.
DEFAULTS
=
{
animation
:
true
,
placement
:
'
top
'
,
selector
:
false
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
,
trigger
:
'
hover focus
'
,
title
:
''
,
delay
:
0
,
html
:
false
,
container
:
false
}
Popover
.
DEFAULTS
=
$
.
extend
({}
,
$
.
fn
.
tooltip
.
Constructor
.
DEFAULTS
,
{
placement
:
'
right
'
,
trigger
:
'
click
'
,
content
:
''
,
template
:
'
<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>
'
})
Tooltip
.
prototype
.
init
=
function
(
type
,
element
,
options
)
{
this
.
enabled
=
true
this
.
type
=
type
this
.
$element
=
$
(
element
)
this
.
options
=
this
.
getOptions
(
options
)
var
triggers
=
this
.
options
.
trigger
.
split
(
'
'
)
// NOTE: POPOVER EXTENDS tooltip.js
// ================================
for
(
var
i
=
triggers
.
length
;
i
--
;)
{
var
trigger
=
triggers
[
i
]
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
)
if
(
trigger
==
'
click
'
)
{
this
.
$element
.
on
(
'
click.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
toggle
,
this
))
}
else
if
(
trigger
!=
'
manual
'
)
{
var
eventIn
=
trigger
==
'
hover
'
?
'
mouseenter
'
:
'
focus
'
var
eventOut
=
trigger
==
'
hover
'
?
'
mouseleave
'
:
'
blur
'
Popover
.
prototype
.
constructor
=
Popover
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
))
}
}
Popover
.
prototype
.
getDefaults
=
function
()
{
return
Popover
.
DEFAULTS
}
this
.
options
.
selector
?
(
this
.
_options
=
$
.
extend
({},
this
.
options
,
{
trigger
:
'
manual
'
,
selector
:
''
}))
:
this
.
fixTitle
()
Popover
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
()
var
title
=
this
.
getTitle
()
var
content
=
this
.
getContent
()
$tip
.
find
(
'
.popover-title
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
find
(
'
.popover-content
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
content
)
$tip
.
removeClass
(
'
fade top bottom left right in
'
)
$tip
.
find
(
'
.popover-title:empty
'
).
hide
()
}
Tooltip
.
prototype
.
getDefaults
=
function
()
{
return
Tooltip
.
DEFAULTS
Popover
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
}
Tooltip
.
prototype
.
getOptions
=
function
(
options
)
{
options
=
$
.
extend
({},
this
.
getDefaults
(),
this
.
$element
.
data
(),
options
)
Popover
.
prototype
.
getContent
=
function
()
{
var
$e
=
this
.
$element
var
o
=
this
.
options
if
(
options
.
delay
&&
typeof
options
.
delay
==
'
number
'
)
{
options
.
delay
=
{
show
:
options
.
delay
,
hide
:
options
.
delay
}
}
return
$e
.
attr
(
'
data-content
'
)
||
(
typeof
o
.
content
==
'
function
'
?
o
.
content
.
call
(
$e
[
0
])
:
o
.
content
)
}
return
options
Popover
.
prototype
.
tip
=
function
()
{
if
(
!
this
.
$tip
)
this
.
$tip
=
$
(
this
.
options
.
template
)
return
this
.
$tip
}
Tooltip
.
prototype
.
enter
=
function
(
obj
)
{
var
defaults
=
this
.
getDefaults
(
)
var
options
=
{
}
Popover
.
prototype
.
destroy
=
function
(
)
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
this
.
type
)
}
this
.
_options
&&
$
.
each
(
this
.
_options
,
function
(
key
,
value
)
{
if
(
defaults
[
key
]
!=
value
)
options
[
key
]
=
value
})
var
self
=
obj
instanceof
this
.
constructor
?
obj
:
$
(
obj
.
currentTarget
)[
this
.
type
](
options
).
data
(
'
bs.
'
+
this
.
type
)
// POPOVER PLUGIN DEFINITION
// =========================
clearTimeout
(
self
.
timeout
)
var
old
=
$
.
fn
.
popover
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
show
)
return
self
.
show
()
$
.
fn
.
popover
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.popover
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
self
.
hoverState
=
'
in
'
self
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
in
'
)
self
.
show
()
},
self
.
options
.
delay
.
show
)
if
(
!
data
)
$this
.
data
(
'
bs.popover
'
,
(
data
=
new
Popover
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
Tooltip
.
prototype
.
leave
=
function
(
obj
)
{
var
self
=
obj
instanceof
this
.
constructor
?
obj
:
$
(
obj
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
'
bs.
'
+
this
.
type
)
clearTimeout
(
self
.
timeout
)
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
hide
)
return
self
.
hide
()
$
.
fn
.
popover
.
Constructor
=
Popover
self
.
hoverState
=
'
out
'
self
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
out
'
)
self
.
hide
()
},
self
.
options
.
delay
.
hide
)
}
Tooltip
.
prototype
.
show
=
function
()
{
var
e
=
$
.
Event
(
'
show.bs.
'
+
this
.
type
)
// POPOVER NO CONFLICT
// ===================
if
(
this
.
hasContent
()
&&
this
.
enabled
)
{
this
.
$element
.
trigger
(
e
)
$
.
fn
.
popover
.
noConflict
=
function
()
{
$
.
fn
.
popover
=
old
return
this
}
if
(
e
.
isDefaultPrevented
())
return
}(
window
.
jQuery
);
var
$tip
=
this
.
tip
()
/* ========================================================================
* Bootstrap: scrollspy.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#scrollspy
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
this
.
setContent
()
if
(
this
.
options
.
animation
)
$tip
.
addClass
(
'
fade
'
)
+
function
(
$
)
{
"
use strict
"
;
var
placement
=
typeof
this
.
options
.
placement
==
'
function
'
?
this
.
options
.
placement
.
call
(
this
,
$tip
[
0
],
this
.
$element
[
0
])
:
this
.
options
.
placement
// SCROLLSPY CLASS DEFINITION
// ==========================
var
autoToken
=
/
\s?
auto
?\s?
/i
var
autoPlace
=
autoToken
.
test
(
placement
)
if
(
autoPlace
)
placement
=
placement
.
replace
(
autoToken
,
''
)
||
'
top
'
function
ScrollSpy
(
element
,
options
)
{
var
href
var
process
=
$
.
proxy
(
this
.
process
,
this
)
var
$element
=
$
(
element
).
is
(
'
body
'
)
?
$
(
window
)
:
$
(
element
)
$tip
.
detach
()
.
css
({
top
:
0
,
left
:
0
,
display
:
'
block
'
})
.
addClass
(
placement
)
this
.
$body
=
$
(
'
body
'
)
this
.
$scrollElement
=
$element
.
on
(
'
scroll.bs.scroll-spy.data-api
'
,
process
)
this
.
options
=
$
.
extend
({},
ScrollSpy
.
DEFAULTS
,
options
)
this
.
selector
=
(
this
.
options
.
target
||
((
href
=
$
(
element
).
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
))
//strip for ie7
||
''
)
+
'
.nav li > a
'
this
.
offsets
=
$
([])
this
.
targets
=
$
([])
this
.
activeTarget
=
null
this
.
options
.
container
?
$tip
.
appendTo
(
this
.
options
.
container
)
:
$tip
.
insertAfter
(
this
.
$element
)
this
.
refresh
()
this
.
process
()
}
var
pos
=
this
.
getPosition
()
var
actualWidth
=
$tip
[
0
].
offsetWidth
var
actualHeight
=
$tip
[
0
].
offsetHeight
ScrollSpy
.
DEFAULTS
=
{
offset
:
10
}
if
(
autoPlace
)
{
var
$parent
=
this
.
$element
.
parent
()
ScrollSpy
.
prototype
.
refresh
=
function
()
{
this
.
offsets
=
$
([])
this
.
targets
=
$
([])
var
orgPlacement
=
placement
var
docScroll
=
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
var
parentWidth
=
this
.
options
.
container
==
'
body
'
?
window
.
innerWidth
:
$parent
.
outerWidth
()
var
parentHeight
=
this
.
options
.
container
==
'
body
'
?
window
.
innerHeight
:
$parent
.
outerHeight
()
var
parentLeft
=
this
.
options
.
container
==
'
body
'
?
0
:
$parent
.
offset
().
left
var
self
=
this
var
$targets
=
this
.
$body
.
find
(
this
.
selector
)
.
map
(
function
()
{
var
$el
=
$
(
this
)
var
href
=
$el
.
data
(
'
target
'
)
||
$el
.
attr
(
'
href
'
)
var
$href
=
/^#
\w
/
.
test
(
href
)
&&
$
(
href
)
placement
=
placement
==
'
bottom
'
&&
pos
.
top
+
pos
.
height
+
actualHeight
-
docScroll
>
parentHeight
?
'
top
'
:
placement
==
'
top
'
&&
pos
.
top
-
docScroll
-
actualHeight
<
0
?
'
bottom
'
:
placement
==
'
right
'
&&
pos
.
right
+
actualWidth
>
parentWidth
?
'
left
'
:
placement
==
'
left
'
&&
pos
.
left
-
actualWidth
<
parentLeft
?
'
right
'
:
placement
return
(
$href
&&
$href
.
length
&&
[[
$href
.
offset
().
top
+
(
!
$
.
isWindow
(
self
.
$scrollElement
.
get
(
0
))
&&
self
.
$scrollElement
.
scrollTop
()),
href
]])
||
null
})
.
sort
(
function
(
a
,
b
)
{
return
a
[
0
]
-
b
[
0
]
})
.
each
(
function
()
{
self
.
offsets
.
push
(
this
[
0
])
self
.
targets
.
push
(
this
[
1
])
})
}
$tip
.
removeClass
(
orgPlacement
)
.
addClass
(
placement
)
}
ScrollSpy
.
prototype
.
process
=
function
()
{
var
scrollTop
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
var
scrollHeight
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
var
maxScroll
=
scrollHeight
-
this
.
$scrollElement
.
height
()
var
offsets
=
this
.
offsets
var
targets
=
this
.
targets
var
activeTarget
=
this
.
activeTarget
var
i
var
tp
=
placement
==
'
bottom
'
?
{
top
:
pos
.
top
+
pos
.
height
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
}
:
placement
==
'
top
'
?
{
top
:
pos
.
top
-
actualHeight
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
}
:
placement
==
'
left
'
?
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
-
actualWidth
}
:
/* placement == 'right' */
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
+
pos
.
width
}
if
(
scrollTop
>=
maxScroll
)
{
return
activeTarget
!=
(
i
=
targets
.
last
()[
0
])
&&
this
.
activate
(
i
)
}
this
.
applyPlacement
(
tp
,
placement
)
this
.
$element
.
trigger
(
'
shown.bs.
'
+
this
.
type
)
for
(
i
=
offsets
.
length
;
i
--
;)
{
activeTarget
!=
targets
[
i
]
&&
scrollTop
>=
offsets
[
i
]
&&
(
!
offsets
[
i
+
1
]
||
scrollTop
<=
offsets
[
i
+
1
])
&&
this
.
activate
(
targets
[
i
]
)
}
}
Tooltip
.
prototype
.
applyPlacement
=
function
(
offset
,
placement
)
{
var
replace
var
$tip
=
this
.
tip
()
var
width
=
$tip
[
0
].
offsetWidth
var
height
=
$tip
[
0
].
offsetHeight
ScrollSpy
.
prototype
.
activate
=
function
(
target
)
{
this
.
activeTarget
=
target
// manually read margins because getBoundingClientRect includes difference
offset
.
top
=
offset
.
top
+
parseInt
(
$tip
.
css
(
'
margin-top
'
),
10
)
offset
.
left
=
offset
.
left
+
parseInt
(
$tip
.
css
(
'
margin-left
'
),
10
)
$
(
this
.
selector
)
.
parents
(
'
.active
'
)
.
removeClass
(
'
active
'
)
$tip
.
offset
(
offset
)
.
addClass
(
'
in
'
)
var
selector
=
this
.
selector
+
'
[data-target="
'
+
target
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
var
actualWidth
=
$tip
[
0
].
offsetWidth
var
actualHeight
=
$tip
[
0
].
offsetHeight
var
active
=
$
(
selector
)
.
parents
(
'
li
'
)
.
addClass
(
'
active
'
)
if
(
placement
==
'
top
'
&&
actualHeight
!=
height
)
{
replace
=
true
offset
.
top
=
offset
.
top
+
height
-
actualHeight
if
(
active
.
parent
(
'
.dropdown-menu
'
).
length
)
{
active
=
active
.
closest
(
'
li.dropdown
'
)
.
addClass
(
'
active
'
)
}
if
(
placement
==
'
bottom
'
||
placement
==
'
top
'
)
{
var
delta
=
0
active
.
trigger
(
'
activate
'
)
}
if
(
offset
.
left
<
0
){
delta
=
offset
.
left
*
-
2
offset
.
left
=
0
$tip
.
offset
(
offset
)
// SCROLLSPY PLUGIN DEFINITION
// ===========================
actualWidth
=
$tip
[
0
].
offsetWidth
actualHeight
=
$tip
[
0
].
offsetHeight
}
var
old
=
$
.
fn
.
scrollspy
this
.
replaceArrow
(
delta
-
width
+
actualWidth
,
actualWidth
,
'
left
'
)
}
else
{
this
.
replaceArrow
(
actualHeight
-
height
,
actualHeight
,
'
top
'
)
}
$
.
fn
.
scrollspy
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.scrollspy
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
replace
)
$tip
.
offset
(
offset
)
if
(
!
data
)
$this
.
data
(
'
bs.scrollspy
'
,
(
data
=
new
ScrollSpy
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
Tooltip
.
prototype
.
replaceArrow
=
function
(
delta
,
dimension
,
position
)
{
this
.
arrow
().
css
(
position
,
delta
?
(
50
*
(
1
-
delta
/
dimension
)
+
"
%
"
)
:
''
)
}
$
.
fn
.
scrollspy
.
Constructor
=
ScrollSpy
Tooltip
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
()
var
title
=
this
.
getTitle
()
$tip
.
find
(
'
.tooltip-inner
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
removeClass
(
'
fade in top bottom left right
'
)
// SCROLLSPY NO CONFLICT
// =====================
$
.
fn
.
scrollspy
.
noConflict
=
function
()
{
$
.
fn
.
scrollspy
=
old
return
this
}
Tooltip
.
prototype
.
hide
=
function
()
{
var
that
=
this
var
$tip
=
this
.
tip
()
var
e
=
$
.
Event
(
'
hide.bs.
'
+
this
.
type
)
this
.
$element
.
trigger
(
e
)
// SCROLLSPY DATA-API
// ==================
if
(
e
.
isDefaultPrevented
())
return
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-spy="scroll"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
$spy
.
scrollspy
(
$spy
.
data
())
})
})
$tip
.
removeClass
(
'
in
'
)
}(
window
.
jQuery
);
$
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
'
fade
'
)
?
$tip
.
one
(
$
.
support
.
transition
.
end
,
$tip
.
detach
)
.
emulateTransitionEnd
(
150
)
:
$tip
.
detach
()
/* ========================================================================
* Bootstrap: tab.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#tabs
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================================== */
this
.
$element
.
trigger
(
'
hidden.bs.
'
+
this
.
type
)
return
this
+
function
(
$
)
{
"
use strict
"
;
// TAB CLASS DEFINITION
// ====================
var
Tab
=
function
(
element
)
{
this
.
element
=
$
(
element
)
}
Tooltip
.
prototype
.
fixTitle
=
function
()
{
var
$e
=
this
.
$element
if
(
$e
.
attr
(
'
title
'
)
||
typeof
(
$e
.
attr
(
'
data-original-title
'
))
!=
'
string
'
)
{
$e
.
attr
(
'
data-original-title
'
,
$e
.
attr
(
'
title
'
)
||
''
).
attr
(
'
title
'
,
''
)
Tab
.
prototype
.
show
=
function
()
{
var
$this
=
this
.
element
var
$ul
=
$this
.
closest
(
'
ul:not(.dropdown-menu)
'
)
var
selector
=
$this
.
attr
(
'
data-target
'
)
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
}
Tooltip
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
}
if
(
$this
.
parent
(
'
li
'
).
hasClass
(
'
active
'
))
return
Tooltip
.
prototype
.
getPosition
=
function
()
{
var
el
=
this
.
$element
[
0
]
return
$
.
extend
({},
(
typeof
el
.
getBoundingClientRect
==
'
function
'
)
?
el
.
getBoundingClientRect
()
:
{
width
:
el
.
offsetWidth
,
height
:
el
.
offsetHeight
},
this
.
$element
.
offset
())
}
var
previous
=
$ul
.
find
(
'
.active:last a
'
)[
0
]
var
e
=
$
.
Event
(
'
show.bs.tab
'
,
{
relatedTarget
:
previous
})
Tooltip
.
prototype
.
getTitle
=
function
()
{
var
title
var
$e
=
this
.
$element
var
o
=
this
.
options
$this
.
trigger
(
e
)
title
=
$e
.
attr
(
'
data-original-title
'
)
||
(
typeof
o
.
title
==
'
function
'
?
o
.
title
.
call
(
$e
[
0
])
:
o
.
title
)
if
(
e
.
isDefaultPrevented
())
return
return
title
}
var
$target
=
$
(
selector
)
Tooltip
.
prototype
.
tip
=
function
()
{
return
this
.
$tip
=
this
.
$tip
||
$
(
this
.
options
.
template
)
this
.
activate
(
$this
.
parent
(
'
li
'
),
$ul
)
this
.
activate
(
$target
,
$target
.
parent
(),
function
()
{
$this
.
trigger
({
type
:
'
shown.bs.tab
'
,
relatedTarget
:
previous
})
})
}
Tooltip
.
prototype
.
arrow
=
function
(){
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
"
.tooltip-arrow
"
)
}
Tab
.
prototype
.
activate
=
function
(
element
,
container
,
callback
)
{
var
$active
=
container
.
find
(
'
> .active
'
)
var
transition
=
callback
&&
$
.
support
.
transition
&&
$active
.
hasClass
(
'
fade
'
)
Tooltip
.
prototype
.
validate
=
function
()
{
if
(
!
this
.
$element
[
0
].
parentNode
)
{
this
.
hide
()
this
.
$element
=
null
this
.
options
=
null
}
}
function
next
()
{
$active
.
removeClass
(
'
active
'
)
.
find
(
'
> .dropdown-menu > .active
'
)
.
removeClass
(
'
active
'
)
Tooltip
.
prototype
.
enable
=
function
()
{
this
.
enabled
=
true
}
element
.
addClass
(
'
active
'
)
Tooltip
.
prototype
.
disable
=
function
()
{
this
.
enabled
=
false
}
if
(
transition
)
{
element
[
0
].
offsetWidth
// reflow for transition
element
.
addClass
(
'
in
'
)
}
else
{
element
.
removeClass
(
'
fade
'
)
}
Tooltip
.
prototype
.
toggleEnabled
=
function
(
)
{
this
.
enabled
=
!
this
.
enabled
}
if
(
element
.
parent
(
'
.dropdown-menu
'
)
)
{
element
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
}
Tooltip
.
prototype
.
toggle
=
function
(
e
)
{
var
self
=
e
?
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
'
bs.
'
+
this
.
type
)
:
this
self
.
tip
().
hasClass
(
'
in
'
)
?
self
.
leave
(
self
)
:
self
.
enter
(
self
)
}
callback
&&
callback
()
}
Tooltip
.
prototype
.
destroy
=
function
()
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
'
bs.
'
+
this
.
type
)
transition
?
$active
.
one
(
$
.
support
.
transition
.
end
,
next
)
.
emulateTransitionEnd
(
150
)
:
next
()
$active
.
removeClass
(
'
in
'
)
}
// T
OOLTIP
PLUGIN DEFINITION
// =====================
====
// T
AB
PLUGIN DEFINITION
// =====================
var
old
=
$
.
fn
.
t
ooltip
var
old
=
$
.
fn
.
t
ab
$
.
fn
.
t
ooltip
=
function
(
option
)
{
$
.
fn
.
t
ab
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.tooltip
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.tab
'
)
if
(
!
data
)
$this
.
data
(
'
bs.t
ooltip
'
,
(
data
=
new
Tooltip
(
this
,
option
s
)))
if
(
!
data
)
$this
.
data
(
'
bs.t
ab
'
,
(
data
=
new
Tab
(
thi
s
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
t
ooltip
.
Constructor
=
Tooltip
$
.
fn
.
t
ab
.
Constructor
=
Tab
// T
OOLTIP
NO CONFLICT
// ===============
====
// T
AB
NO CONFLICT
// ===============
$
.
fn
.
t
ooltip
.
noConflict
=
function
()
{
$
.
fn
.
t
ooltip
=
old
$
.
fn
.
t
ab
.
noConflict
=
function
()
{
$
.
fn
.
t
ab
=
old
return
this
}
// TAB DATA-API
// ============
$
(
document
).
on
(
'
click.bs.tab.data-api
'
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
e
)
{
e
.
preventDefault
()
$
(
this
).
tab
(
'
show
'
)
})
}(
window
.
jQuery
);
/* ========================================================================
* Bootstrap:
transition
.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#
transitions
* Bootstrap:
affix
.js v3.0.0
* http://twbs.github.com/bootstrap/javascript.html#
affix
* ========================================================================
* Copyright 201
3
Twitter, Inc.
* Copyright 201
2
Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -1911,36 +1840,107 @@
+
function
(
$
)
{
"
use strict
"
;
//
CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
// ======================
======================================
//
AFFIX CLASS DEFINITION
// ======================
function
transitionEnd
()
{
var
el
=
document
.
createElement
(
'
bootstrap
'
)
var
Affix
=
function
(
element
,
options
)
{
this
.
options
=
$
.
extend
({},
Affix
.
DEFAULTS
,
options
)
this
.
$window
=
$
(
window
)
.
on
(
'
scroll.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPosition
,
this
))
.
on
(
'
click.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPositionWithEventLoop
,
this
))
var
transEndEventNames
=
{
'
WebkitTransition
'
:
'
webkitTransitionEnd
'
,
'
MozTransition
'
:
'
transitionend
'
,
'
OTransition
'
:
'
oTransitionEnd otransitionend
'
,
'
transition
'
:
'
transitionend
'
}
this
.
$element
=
$
(
element
)
this
.
affixed
=
this
.
unpin
=
null
for
(
var
name
in
transEndEventNames
)
{
if
(
el
.
style
[
name
]
!==
undefined
)
{
return
{
end
:
transEndEventNames
[
name
]
}
}
this
.
checkPosition
()
}
Affix
.
RESET
=
'
affix affix-top affix-bottom
'
Affix
.
DEFAULTS
=
{
offset
:
0
}
Affix
.
prototype
.
checkPositionWithEventLoop
=
function
()
{
setTimeout
(
$
.
proxy
(
this
.
checkPosition
,
this
),
1
)
}
Affix
.
prototype
.
checkPosition
=
function
()
{
if
(
!
this
.
$element
.
is
(
'
:visible
'
))
return
var
scrollHeight
=
$
(
document
).
height
()
var
scrollTop
=
this
.
$window
.
scrollTop
()
var
position
=
this
.
$element
.
offset
()
var
offset
=
this
.
options
.
offset
var
offsetTop
=
offset
.
top
var
offsetBottom
=
offset
.
bottom
if
(
typeof
offset
!=
'
object
'
)
offsetBottom
=
offsetTop
=
offset
if
(
typeof
offsetTop
==
'
function
'
)
offsetTop
=
offset
.
top
()
if
(
typeof
offsetBottom
==
'
function
'
)
offsetBottom
=
offset
.
bottom
()
var
affix
=
this
.
unpin
!=
null
&&
(
scrollTop
+
this
.
unpin
<=
position
.
top
)
?
false
:
offsetBottom
!=
null
&&
(
position
.
top
+
this
.
$element
.
height
()
>=
scrollHeight
-
offsetBottom
)
?
'
bottom
'
:
offsetTop
!=
null
&&
(
scrollTop
<=
offsetTop
)
?
'
top
'
:
false
if
(
this
.
affixed
===
affix
)
return
if
(
this
.
unpin
)
this
.
$element
.
css
(
'
top
'
,
''
)
this
.
affixed
=
affix
this
.
unpin
=
affix
==
'
bottom
'
?
position
.
top
-
scrollTop
:
null
this
.
$element
.
removeClass
(
Affix
.
RESET
).
addClass
(
'
affix
'
+
(
affix
?
'
-
'
+
affix
:
''
))
if
(
affix
==
'
bottom
'
)
{
this
.
$element
.
offset
({
top
:
document
.
body
.
offsetHeight
-
offsetBottom
-
this
.
$element
.
height
()
})
}
}
// http://blog.alexmaccaw.com/css-transitions
$
.
fn
.
emulateTransitionEnd
=
function
(
duration
)
{
var
called
=
false
,
$el
=
this
$
(
this
).
one
(
'
webkitTransitionEnd
'
,
function
()
{
called
=
true
})
var
callback
=
function
()
{
if
(
!
called
)
$
(
$el
).
trigger
(
'
webkitTransitionEnd
'
)
}
setTimeout
(
callback
,
duration
)
// AFFIX PLUGIN DEFINITION
// =======================
var
old
=
$
.
fn
.
affix
$
.
fn
.
affix
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.affix
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
bs.affix
'
,
(
data
=
new
Affix
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
(
function
()
{
$
.
support
.
transition
=
transitionEnd
()
$
.
fn
.
affix
.
Constructor
=
Affix
// AFFIX NO CONFLICT
// =================
$
.
fn
.
affix
.
noConflict
=
function
()
{
$
.
fn
.
affix
=
old
return
this
}
// AFFIX DATA-API
// ==============
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-spy="affix"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
var
data
=
$spy
.
data
()
data
.
offset
=
data
.
offset
||
{}
if
(
data
.
offsetBottom
)
data
.
offset
.
bottom
=
data
.
offsetBottom
if
(
data
.
offsetTop
)
data
.
offset
.
top
=
data
.
offsetTop
$spy
.
affix
(
data
)
})
})
}(
window
.
jQuery
);
dist/js/bootstrap.min.js
View file @
292d8d68
...
...
@@ -3,4 +3,4 @@
* Copyright 2013 Twitter Inc.
* http://www.apache.org/licenses/LICENSE-2.0
*/
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
c
,
d
){
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
),
this
.
$window
=
a
(
window
).
on
(
"
scroll.bs.affix.data-api
"
,
a
.
proxy
(
this
.
checkPosition
,
this
)).
on
(
"
click.bs.affix.data-api
"
,
a
.
proxy
(
this
.
checkPositionWithEventLoop
,
this
)),
this
.
$element
=
a
(
c
),
this
.
affixed
=
this
.
unpin
=
null
,
this
.
checkPosition
()};
b
.
RESET
=
"
affix affix-top affix-bottom
"
,
b
.
DEFAULTS
=
{
offset
:
0
},
b
.
prototype
.
checkPositionWithEventLoop
=
function
(){
setTimeout
(
a
.
proxy
(
this
.
checkPosition
,
this
),
1
)},
b
.
prototype
.
checkPosition
=
function
(){
if
(
this
.
$element
.
is
(
"
:visible
"
)){
var
c
=
a
(
document
).
height
(),
d
=
this
.
$window
.
scrollTop
(),
e
=
this
.
$element
.
offset
(),
f
=
this
.
options
.
offset
,
g
=
f
.
top
,
h
=
f
.
bottom
;
"
object
"
!=
typeof
f
&&
(
h
=
g
=
f
),
"
function
"
==
typeof
g
&&
(
g
=
f
.
top
()),
"
function
"
==
typeof
h
&&
(
h
=
f
.
bottom
());
var
i
=
null
!=
this
.
unpin
&&
d
+
this
.
unpin
<=
e
.
top
?
!
1
:
null
!=
h
&&
e
.
top
+
this
.
$element
.
height
()
>=
c
-
h
?
"
bottom
"
:
null
!=
g
&&
g
>=
d
?
"
top
"
:
!
1
;
this
.
affixed
!==
i
&&
(
this
.
unpin
&&
this
.
$element
.
css
(
"
top
"
,
""
),
this
.
affixed
=
i
,
this
.
unpin
=
"
bottom
"
==
i
?
e
.
top
-
d
:
null
,
this
.
$element
.
removeClass
(
b
.
RESET
).
addClass
(
"
affix
"
+
(
i
?
"
-
"
+
i
:
""
)),
"
bottom
"
==
i
&&
this
.
$element
.
offset
({
top
:
document
.
body
.
offsetHeight
-
h
-
this
.
$element
.
height
()}))}};
var
c
=
a
.
fn
.
affix
;
a
.
fn
.
affix
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.affix
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.affix
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
affix
.
Constructor
=
b
,
a
.
fn
.
affix
.
noConflict
=
function
(){
return
a
.
fn
.
affix
=
c
,
this
},
a
(
window
).
on
(
"
load
"
,
function
(){
a
(
'
[data-spy="affix"]
'
).
each
(
function
(){
var
b
=
a
(
this
),
c
=
b
.
data
();
c
.
offset
=
c
.
offset
||
{},
c
.
offsetBottom
&&
(
c
.
offset
.
bottom
=
c
.
offsetBottom
),
c
.
offsetTop
&&
(
c
.
offset
.
top
=
c
.
offsetTop
),
b
.
affix
(
c
)})})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
'
[data-dismiss="alert"]
'
,
c
=
function
(
c
){
a
(
c
).
on
(
"
click
"
,
b
,
this
.
close
)};
c
.
prototype
.
close
=
function
(
b
){
function
c
(){
f
.
trigger
(
"
closed.bs.alert
"
).
remove
()}
var
d
=
a
(
this
),
e
=
d
.
attr
(
"
data-target
"
);
e
||
(
e
=
d
.
attr
(
"
href
"
),
e
=
e
&&
e
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
var
f
=
a
(
e
);
b
&&
b
.
preventDefault
(),
f
.
length
||
(
f
=
d
.
hasClass
(
"
alert
"
)?
d
:
d
.
parent
()),
f
.
trigger
(
b
=
a
.
Event
(
"
close.bs.alert
"
)),
b
.
isDefaultPrevented
()
||
(
f
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
f
.
hasClass
(
"
fade
"
)?
f
.
one
(
a
.
support
.
transition
.
end
,
c
).
emulateTransitionEnd
(
150
):
c
())};
var
d
=
a
.
fn
.
alert
;
a
.
fn
.
alert
=
function
(
b
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.alert
"
);
e
||
d
.
data
(
"
bs.alert
"
,
e
=
new
c
(
this
)),
"
string
"
==
typeof
b
&&
e
[
b
].
call
(
d
)})},
a
.
fn
.
alert
.
Constructor
=
c
,
a
.
fn
.
alert
.
noConflict
=
function
(){
return
a
.
fn
.
alert
=
d
,
this
},
a
(
document
).
on
(
"
click.bs.alert.data-api
"
,
b
,
c
.
prototype
.
close
)}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
c
,
d
){
this
.
$element
=
a
(
c
),
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
)};
b
.
DEFAULTS
=
{
loadingText
:
"
loading...
"
},
b
.
prototype
.
setState
=
function
(
a
){
var
b
=
"
disabled
"
,
c
=
this
.
$element
,
d
=
c
.
is
(
"
input
"
)?
"
val
"
:
"
html
"
,
e
=
c
.
data
();
a
+=
"
Text
"
,
e
.
resetText
||
c
.
data
(
"
resetText
"
,
c
[
d
]()),
c
[
d
](
e
[
a
]
||
this
.
options
[
a
]),
setTimeout
(
function
(){
"
loadingText
"
==
a
?
c
.
addClass
(
b
).
attr
(
b
,
b
):
c
.
removeClass
(
b
).
removeAttr
(
b
)},
0
)},
b
.
prototype
.
toggle
=
function
(){
var
a
=
this
.
$element
.
closest
(
'
[data-toggle="buttons"]
'
);
if
(
a
.
length
){
var
b
=
this
.
$element
.
find
(
"
input
"
).
prop
(
"
checked
"
,
!
this
.
$element
.
hasClass
(
"
active
"
));
"
radio
"
===
b
.
prop
(
"
type
"
)
&&
a
.
find
(
"
.active
"
).
removeClass
(
"
active
"
)}
this
.
$element
.
toggleClass
(
"
active
"
)};
var
c
=
a
.
fn
.
button
;
a
.
fn
.
button
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
button
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.button
"
,
e
=
new
b
(
this
,
f
)),
"
toggle
"
==
c
?
e
.
toggle
():
c
&&
e
.
setState
(
c
)})},
a
.
fn
.
button
.
Constructor
=
b
,
a
.
fn
.
button
.
noConflict
=
function
(){
return
a
.
fn
.
button
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.button.data-api
"
,
"
[data-toggle^=button]
"
,
function
(
b
){
var
c
=
a
(
b
.
target
);
c
.
hasClass
(
"
btn
"
)
||
(
c
=
c
.
closest
(
"
.btn
"
)),
c
.
button
(
"
toggle
"
),
b
.
preventDefault
()})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
$element
=
a
(
b
),
this
.
$indicators
=
this
.
$element
.
find
(
"
.carousel-indicators
"
),
this
.
options
=
c
,
this
.
paused
=
this
.
sliding
=
this
.
interval
=
this
.
$active
=
this
.
$items
=
null
,
"
hover
"
==
this
.
options
.
pause
&&
this
.
$element
.
on
(
"
mouseenter
"
,
a
.
proxy
(
this
.
pause
,
this
)).
on
(
"
mouseleave
"
,
a
.
proxy
(
this
.
cycle
,
this
))};
b
.
DEFAULTS
=
{
interval
:
5
e3
,
pause
:
"
hover
"
},
b
.
prototype
.
cycle
=
function
(
b
){
return
b
||
(
this
.
paused
=!
1
),
this
.
interval
&&
clearInterval
(
this
.
interval
),
this
.
options
.
interval
&&!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
a
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
)),
this
},
b
.
prototype
.
getActiveIndex
=
function
(){
return
this
.
$active
=
this
.
$element
.
find
(
"
.item.active
"
),
this
.
$items
=
this
.
$active
.
parent
().
children
(),
this
.
$items
.
index
(
this
.
$active
)},
b
.
prototype
.
to
=
function
(
b
){
var
c
=
this
,
d
=
this
.
getActiveIndex
();
return
b
>
this
.
$items
.
length
-
1
||
0
>
b
?
void
0
:
this
.
sliding
?
this
.
$element
.
one
(
"
slid
"
,
function
(){
c
.
to
(
b
)}):
d
==
b
?
this
.
pause
().
cycle
():
this
.
slide
(
b
>
d
?
"
next
"
:
"
prev
"
,
a
(
this
.
$items
[
b
]))},
b
.
prototype
.
pause
=
function
(
b
){
return
b
||
(
this
.
paused
=!
0
),
this
.
$element
.
find
(
"
.next, .prev
"
).
length
&&
a
.
support
.
transition
.
end
&&
(
this
.
$element
.
trigger
(
a
.
support
.
transition
.
end
),
this
.
cycle
(
!
0
)),
this
.
interval
=
clearInterval
(
this
.
interval
),
this
},
b
.
prototype
.
next
=
function
(){
return
this
.
sliding
?
void
0
:
this
.
slide
(
"
next
"
)},
b
.
prototype
.
prev
=
function
(){
return
this
.
sliding
?
void
0
:
this
.
slide
(
"
prev
"
)},
b
.
prototype
.
slide
=
function
(
b
,
c
){
var
d
=
this
.
$element
.
find
(
"
.item.active
"
),
e
=
c
||
d
[
b
](),
f
=
this
.
interval
,
g
=
"
next
"
==
b
?
"
left
"
:
"
right
"
,
h
=
"
next
"
==
b
?
"
first
"
:
"
last
"
,
i
=
this
;
this
.
sliding
=!
0
,
f
&&
this
.
pause
(),
e
=
e
.
length
?
e
:
this
.
$element
.
find
(
"
.item
"
)[
h
]();
var
j
=
a
.
Event
(
"
slide.bs.carousel
"
,{
relatedTarget
:
e
[
0
],
direction
:
g
});
if
(
!
e
.
hasClass
(
"
active
"
)){
if
(
this
.
$indicators
.
length
&&
(
this
.
$indicators
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
this
.
$element
.
one
(
"
slid
"
,
function
(){
var
b
=
a
(
i
.
$indicators
.
children
()[
i
.
getActiveIndex
()]);
b
&&
b
.
addClass
(
"
active
"
)})),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
slide
"
)){
if
(
this
.
$element
.
trigger
(
j
),
j
.
isDefaultPrevented
())
return
;
e
.
addClass
(
b
),
e
[
0
].
offsetWidth
,
d
.
addClass
(
g
),
e
.
addClass
(
g
),
d
.
one
(
a
.
support
.
transition
.
end
,
function
(){
e
.
removeClass
([
b
,
g
].
join
(
"
"
)).
addClass
(
"
active
"
),
d
.
removeClass
([
"
active
"
,
g
].
join
(
"
"
)),
i
.
sliding
=!
1
,
setTimeout
(
function
(){
i
.
$element
.
trigger
(
"
slid
"
)},
0
)}).
emulateTransitionEnd
(
600
)}
else
{
if
(
this
.
$element
.
trigger
(
j
),
j
.
isDefaultPrevented
())
return
;
d
.
removeClass
(
"
active
"
),
e
.
addClass
(
"
active
"
),
this
.
sliding
=!
1
,
this
.
$element
.
trigger
(
"
slid
"
)}
return
f
&&
this
.
cycle
(),
this
}};
var
c
=
a
.
fn
.
carousel
;
a
.
fn
.
carousel
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.carousel
"
),
f
=
a
.
extend
({},
b
.
DEFAULTS
,
d
.
data
(),
"
object
"
==
typeof
c
&&
c
),
g
=
"
string
"
==
typeof
c
?
c
:
f
.
slide
;
e
||
d
.
data
(
"
bs.carousel
"
,
e
=
new
b
(
this
,
f
)),
"
number
"
==
typeof
c
?
e
.
to
(
c
):
g
?
e
[
g
]():
f
.
interval
&&
e
.
pause
().
cycle
()})},
a
.
fn
.
carousel
.
Constructor
=
b
,
a
.
fn
.
carousel
.
noConflict
=
function
(){
return
a
.
fn
.
carousel
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.carousel.data-api
"
,
"
[data-slide], [data-slide-to]
"
,
function
(
b
){
var
c
,
d
=
a
(
this
),
e
=
a
(
d
.
attr
(
"
data-target
"
)
||
(
c
=
d
.
attr
(
"
href
"
))
&&
c
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
f
=
a
.
extend
({},
e
.
data
(),
d
.
data
()),
g
=
d
.
attr
(
"
data-slide-to
"
);
g
&&
(
f
.
interval
=!
1
),
e
.
carousel
(
f
),(
g
=
d
.
attr
(
"
data-slide-to
"
))
&&
e
.
data
(
"
bs.carousel
"
).
to
(
g
),
b
.
preventDefault
()}),
a
(
window
).
on
(
"
load
"
,
function
(){
a
(
'
[data-ride="carousel"]
'
).
each
(
function
(){
var
b
=
a
(
this
);
b
.
carousel
(
b
.
data
())})})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
c
,
d
){
this
.
$element
=
a
(
c
),
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
),
this
.
transitioning
=
null
,
this
.
options
.
parent
&&
(
this
.
$parent
=
a
(
this
.
options
.
parent
)),
this
.
options
.
toggle
&&
this
.
toggle
()};
b
.
DEFAULTS
=
{
toggle
:
!
0
},
b
.
prototype
.
dimension
=
function
(){
var
a
=
this
.
$element
.
hasClass
(
"
width
"
);
return
a
?
"
width
"
:
"
height
"
},
b
.
prototype
.
show
=
function
(){
if
(
!
this
.
transitioning
&&!
this
.
$element
.
hasClass
(
"
in
"
)){
var
b
=
a
.
Event
(
"
show.bs.collapse
"
);
if
(
this
.
$element
.
trigger
(
b
),
!
b
.
isDefaultPrevented
()){
var
c
=
this
.
dimension
(),
d
=
a
.
camelCase
([
"
scroll
"
,
c
].
join
(
"
-
"
)),
e
=
this
.
$parent
&&
this
.
$parent
.
find
(
"
> .accordion-group > .in
"
);
if
(
e
&&
e
.
length
){
var
f
=
e
.
data
(
"
bs.collapse
"
);
if
(
f
&&
f
.
transitioning
)
return
;
e
.
collapse
(
"
hide
"
),
f
||
e
.
data
(
"
bs.collapse
"
,
null
)}
this
.
$element
[
c
](
0
),
this
.
transition
(
"
addClass
"
,
"
shown.bs.collapse
"
),
a
.
support
.
transition
&&
this
.
$element
[
c
](
this
.
$element
[
0
][
d
])}}},
b
.
prototype
.
hide
=
function
(){
if
(
!
this
.
transitioning
&&
this
.
$element
.
hasClass
(
"
in
"
)){
var
b
=
a
.
Event
(
"
hide.bs.collapse
"
);
if
(
this
.
$element
.
trigger
(
b
),
!
b
.
isDefaultPrevented
()){
var
c
=
this
.
dimension
();
this
.
reset
(
this
.
$element
[
c
]()),
this
.
transition
(
"
removeClass
"
,
"
hidden.bs.collapse
"
),
this
.
$element
[
c
](
0
)}}},
b
.
prototype
.
reset
=
function
(
a
){
var
b
=
this
.
dimension
();
return
this
.
$element
.
removeClass
(
"
collapse
"
)[
b
](
a
||
"
auto
"
)[
0
].
offsetWidth
,
this
.
$element
[
null
!=
a
?
"
addClass
"
:
"
removeClass
"
](
"
collapse
"
),
this
},
b
.
prototype
.
transition
=
function
(
b
,
c
){
var
d
=
this
,
e
=
function
(){
"
shown.bs.collapse
"
==
c
&&
d
.
reset
(),
d
.
transitioning
=
0
,
d
.
$element
.
trigger
(
c
)};
this
.
transitioning
=
1
,
this
.
$element
[
b
](
"
in
"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
collapse
"
)?
this
.
$element
.
one
(
a
.
support
.
transition
.
end
,
e
).
emulateTransitionEnd
(
350
):
e
()},
b
.
prototype
.
toggle
=
function
(){
this
[
this
.
$element
.
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()};
var
c
=
a
.
fn
.
collapse
;
a
.
fn
.
collapse
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.collapse
"
),
f
=
a
.
extend
({},
b
.
DEFAULTS
,
d
.
data
(),
"
object
"
==
typeof
c
&&
c
);
e
||
d
.
data
(
"
bs.collapse
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
collapse
.
Constructor
=
b
,
a
.
fn
.
collapse
.
noConflict
=
function
(){
return
a
.
fn
.
collapse
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.collapse.data-api
"
,
"
[data-toggle=collapse]
"
,
function
(
b
){
var
c
,
d
=
a
(
this
),
e
=
d
.
attr
(
"
data-target
"
)
||
b
.
preventDefault
()
||
(
c
=
d
.
attr
(
"
href
"
))
&&
c
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
),
f
=
a
(
e
),
g
=
f
.
data
(
"
bs.collapse
"
),
h
=
g
?
"
toggle
"
:
d
.
data
(),
i
=
d
.
attr
(
"
data-parent
"
),
j
=
i
&&
a
(
i
);
g
&&
g
.
transitioning
||
(
j
&&
j
.
find
(
"
[data-toggle=collapse][data-parent=
"
+
i
+
"
]
"
).
not
(
d
).
addClass
(
"
collapsed
"
),
d
[
f
.
hasClass
(
"
in
"
)?
"
addClass
"
:
"
removeClass
"
](
"
collapsed
"
)),
f
.
collapse
(
h
)})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
function
b
(){
a
(
d
).
remove
(),
a
(
e
).
each
(
function
(
b
){
var
d
=
c
(
a
(
this
));
d
.
hasClass
(
"
open
"
)
&&
(
d
.
trigger
(
b
=
a
.
Event
(
"
hide.bs.dropdown
"
)),
b
.
isDefaultPrevented
()
||
d
.
removeClass
(
"
open
"
).
trigger
(
"
hidden.bs.dropdown
"
))})}
function
c
(
b
){
var
c
=
b
.
attr
(
"
data-target
"
);
c
||
(
c
=
b
.
attr
(
"
href
"
),
c
=
c
&&
/#/
.
test
(
c
)
&&
c
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
var
d
=
c
&&
a
(
c
);
return
d
&&
d
.
length
?
d
:
b
.
parent
()}
var
d
=
"
.dropdown-backdrop
"
,
e
=
"
[data-toggle=dropdown]
"
,
f
=
function
(
b
){
a
(
b
).
on
(
"
click.bs.dropdown
"
,
this
.
toggle
)};
f
.
prototype
.
toggle
=
function
(
d
){
var
e
=
a
(
this
);
if
(
!
e
.
is
(
"
.disabled, :disabled
"
)){
var
f
=
c
(
e
),
g
=
f
.
hasClass
(
"
open
"
);
if
(
b
(),
!
g
){
if
(
"
ontouchstart
"
in
document
.
documentElement
&&
a
(
'
<div class="dropdown-backdrop"/>
'
).
insertAfter
(
a
(
this
)).
on
(
"
click
"
,
b
),
f
.
trigger
(
d
=
a
.
Event
(
"
show.bs.dropdown
"
)),
d
.
isDefaultPrevented
())
return
;
f
.
toggleClass
(
"
open
"
).
trigger
(
"
shown.bs.dropdown
"
)}
return
e
.
focus
(),
!
1
}},
f
.
prototype
.
keydown
=
function
(
b
){
if
(
/
(
38|40|27
)
/
.
test
(
b
.
keyCode
)){
var
d
=
a
(
this
);
if
(
b
.
preventDefault
(),
b
.
stopPropagation
(),
!
d
.
is
(
"
.disabled, :disabled
"
)){
var
f
=
c
(
d
),
g
=
f
.
hasClass
(
"
open
"
);
if
(
!
g
||
g
&&
27
==
b
.
keyCode
)
return
27
==
b
.
which
&&
f
.
find
(
e
).
focus
(),
d
.
click
();
var
h
=
a
(
"
[role=menu] li:not(.divider):visible a
"
,
f
);
if
(
h
.
length
){
var
i
=
h
.
index
(
h
.
filter
(
"
:focus
"
));
38
==
b
.
keyCode
&&
i
>
0
&&
i
--
,
40
==
b
.
keyCode
&&
i
<
h
.
length
-
1
&&
i
++
,
~
i
||
(
i
=
0
),
h
.
eq
(
i
).
focus
()}}}};
var
g
=
a
.
fn
.
dropdown
;
a
.
fn
.
dropdown
=
function
(
b
){
return
this
.
each
(
function
(){
var
c
=
a
(
this
),
d
=
c
.
data
(
"
dropdown
"
);
d
||
c
.
data
(
"
dropdown
"
,
d
=
new
f
(
this
)),
"
string
"
==
typeof
b
&&
d
[
b
].
call
(
c
)})},
a
.
fn
.
dropdown
.
Constructor
=
f
,
a
.
fn
.
dropdown
.
noConflict
=
function
(){
return
a
.
fn
.
dropdown
=
g
,
this
},
a
(
document
).
on
(
"
click.bs.dropdown.data-api
"
,
b
).
on
(
"
click.bs.dropdown.data-api
"
,
"
.dropdown form
"
,
function
(
a
){
a
.
stopPropagation
()}).
on
(
"
click.bs.dropdown.data-api
"
,
e
,
f
.
prototype
.
toggle
).
on
(
"
keydown.bs.dropdown.data-api
"
,
e
+
"
, [role=menu]
"
,
f
.
prototype
.
keydown
)}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
options
=
c
,
this
.
$element
=
a
(
b
).
on
(
"
click.dismiss.modal
"
,
'
[data-dismiss="modal"]
'
,
a
.
proxy
(
this
.
hide
,
this
)),
this
.
$backdrop
=
this
.
isShown
=
null
,
this
.
options
.
remote
&&
this
.
$element
.
find
(
"
.modal-body
"
).
load
(
this
.
options
.
remote
)};
b
.
DEFAULTS
=
{
backdrop
:
!
0
,
keyboard
:
!
0
,
show
:
!
0
},
b
.
prototype
.
toggle
=
function
(){
return
this
[
this
.
isShown
?
"
hide
"
:
"
show
"
]()},
b
.
prototype
.
show
=
function
(){
var
b
=
this
,
c
=
a
.
Event
(
"
show.bs.modal
"
);
this
.
$element
.
trigger
(
c
),
this
.
isShown
||
c
.
isDefaultPrevented
()
||
(
this
.
isShown
=!
0
,
this
.
escape
(),
this
.
backdrop
(
function
(){
var
c
=
a
.
support
.
transition
&&
b
.
$element
.
hasClass
(
"
fade
"
);
b
.
$element
.
parent
().
length
||
b
.
$element
.
appendTo
(
document
.
body
),
b
.
$element
.
show
(),
c
&&
b
.
$element
[
0
].
offsetWidth
,
b
.
$element
.
addClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
1
),
b
.
enforceFocus
(),
c
?
b
.
$element
.
one
(
a
.
support
.
transition
.
end
,
function
(){
b
.
$element
.
focus
().
trigger
(
"
shown.bs.modal
"
)}).
emulateTransitionEnd
(
300
):
b
.
$element
.
focus
().
trigger
(
"
shown.bs.modal
"
)}))},
b
.
prototype
.
hide
=
function
(
b
){
b
&&
b
.
preventDefault
(),
b
=
a
.
Event
(
"
hide.bs.modal
"
),
this
.
$element
.
trigger
(
b
),
this
.
isShown
&&!
b
.
isDefaultPrevented
()
&&
(
this
.
isShown
=!
1
,
this
.
escape
(),
a
(
document
).
off
(
"
focusin.bs.modal
"
),
this
.
$element
.
removeClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
0
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
$element
.
one
(
a
.
support
.
transition
.
end
,
a
.
proxy
(
this
.
hideModal
,
this
)).
emulateTransitionEnd
(
300
):
this
.
hideModal
())},
b
.
prototype
.
enforceFocus
=
function
(){
a
(
document
).
off
(
"
focusin.bs.modal
"
).
on
(
"
focusin.bs.modal
"
,
a
.
proxy
(
function
(
a
){
this
.
$element
[
0
]
===
a
.
target
||
this
.
$element
.
has
(
a
.
target
).
length
||
this
.
$element
.
focus
()},
this
))},
b
.
prototype
.
escape
=
function
(){
this
.
isShown
&&
this
.
options
.
keyboard
?
this
.
$element
.
on
(
"
keyup.dismiss.bs.modal
"
,
a
.
proxy
(
function
(
a
){
27
==
a
.
which
&&
this
.
hide
()},
this
)):
this
.
isShown
||
this
.
$element
.
off
(
"
keyup.dismiss.bs.modal
"
)},
b
.
prototype
.
hideModal
=
function
(){
var
a
=
this
;
this
.
$element
.
hide
(),
this
.
backdrop
(
function
(){
a
.
removeBackdrop
(),
a
.
$element
.
trigger
(
"
hidden.bs.modal
"
)})},
b
.
prototype
.
removeBackdrop
=
function
(){
this
.
$backdrop
&&
this
.
$backdrop
.
remove
(),
this
.
$backdrop
=
null
},
b
.
prototype
.
backdrop
=
function
(
b
){
var
c
=
this
.
$element
.
hasClass
(
"
fade
"
)?
"
fade
"
:
""
;
if
(
this
.
isShown
&&
this
.
options
.
backdrop
){
var
d
=
a
.
support
.
transition
&&
c
;
if
(
this
.
$backdrop
=
a
(
'
<div class="modal-backdrop
'
+
c
+
'
" />
'
).
appendTo
(
document
.
body
),
this
.
$element
.
on
(
"
click
"
,
a
.
proxy
(
function
(
a
){
a
.
target
===
a
.
currentTarget
&&
(
"
static
"
==
this
.
options
.
backdrop
?
this
.
$element
[
0
].
focus
.
call
(
this
.
$element
[
0
]):
this
.
hide
.
call
(
this
))},
this
)),
d
&&
this
.
$backdrop
[
0
].
offsetWidth
,
this
.
$backdrop
.
addClass
(
"
in
"
),
!
b
)
return
;
d
?
this
.
$backdrop
.
one
(
a
.
support
.
transition
.
end
,
b
).
emulateTransitionEnd
(
150
):
b
()}
else
!
this
.
isShown
&&
this
.
$backdrop
?(
this
.
$backdrop
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
$backdrop
.
one
(
a
.
support
.
transition
.
end
,
b
).
emulateTransitionEnd
(
150
):
b
()):
b
&&
b
()};
var
c
=
a
.
fn
.
modal
;
a
.
fn
.
modal
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.modal
"
),
f
=
a
.
extend
({},
b
.
DEFAULTS
,
d
.
data
(),
"
object
"
==
typeof
c
&&
c
);
e
||
d
.
data
(
"
bs.modal
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
?
e
[
c
]():
f
.
show
&&
e
.
show
()})},
a
.
fn
.
modal
.
Constructor
=
b
,
a
.
fn
.
modal
.
noConflict
=
function
(){
return
a
.
fn
.
modal
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.modal.data-api
"
,
'
[data-toggle="modal"]
'
,
function
(
b
){
var
c
=
a
(
this
),
d
=
c
.
attr
(
"
href
"
),
e
=
a
(
c
.
attr
(
"
data-target
"
)
||
d
&&
d
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
f
=
e
.
data
(
"
modal
"
)?
"
toggle
"
:
a
.
extend
({
remote
:
!
/#/
.
test
(
d
)
&&
d
},
e
.
data
(),
c
.
data
());
b
.
preventDefault
(),
e
.
modal
(
f
).
one
(
"
hide
"
,
function
(){
c
.
is
(
"
:visible
"
)
&&
c
.
focus
()})});
var
d
=
a
(
document
.
body
).
on
(
"
shown.bs.modal
"
,
"
.modal
"
,
function
(){
d
.
addClass
(
"
modal-open
"
)}).
on
(
"
hidden.bs.modal
"
,
"
.modal
"
,
function
(){
d
.
removeClass
(
"
modal-open
"
)})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
a
,
b
){
this
.
init
(
"
popover
"
,
a
,
b
)};
b
.
DEFAULTS
=
a
.
extend
({},
a
.
fn
.
tooltip
.
Constructor
.
DEFAULTS
,{
placement
:
"
right
"
,
trigger
:
"
click
"
,
content
:
""
,
template
:
'
<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>
'
}),
b
.
prototype
=
a
.
extend
({},
a
.
fn
.
tooltip
.
Constructor
.
prototype
),
b
.
prototype
.
constructor
=
b
,
b
.
prototype
.
getDefaults
=
function
(){
return
b
.
DEFAULTS
},
b
.
prototype
.
setContent
=
function
(){
var
a
=
this
.
tip
(),
b
=
this
.
getTitle
(),
c
=
this
.
getContent
();
a
.
find
(
"
.popover-title
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
b
),
a
.
find
(
"
.popover-content
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
c
),
a
.
removeClass
(
"
fade top bottom left right in
"
),
a
.
find
(
"
.popover-title:empty
"
).
hide
()},
b
.
prototype
.
hasContent
=
function
(){
return
this
.
getTitle
()
||
this
.
getContent
()},
b
.
prototype
.
getContent
=
function
(){
var
a
=
this
.
$element
,
b
=
this
.
options
;
return
a
.
attr
(
"
data-content
"
)
||
(
"
function
"
==
typeof
b
.
content
?
b
.
content
.
call
(
a
[
0
]):
b
.
content
)},
b
.
prototype
.
tip
=
function
(){
return
this
.
$tip
||
(
this
.
$tip
=
a
(
this
.
options
.
template
)),
this
.
$tip
},
b
.
prototype
.
destroy
=
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
this
.
type
)};
var
c
=
a
.
fn
.
popover
;
a
.
fn
.
popover
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.popover
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.popover
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
popover
.
Constructor
=
b
,
a
.
fn
.
popover
.
noConflict
=
function
(){
return
a
.
fn
.
popover
=
c
,
this
}}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
function
b
(
c
,
d
){
var
e
,
f
=
a
.
proxy
(
this
.
process
,
this
),
g
=
a
(
c
).
is
(
"
body
"
)?
a
(
window
):
a
(
c
);
this
.
$body
=
a
(
"
body
"
),
this
.
$scrollElement
=
g
.
on
(
"
scroll.bs.scroll-spy.data-api
"
,
f
),
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
),
this
.
selector
=
(
this
.
options
.
target
||
(
e
=
a
(
c
).
attr
(
"
href
"
))
&&
e
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)
||
""
)
+
"
.nav li > a
"
,
this
.
offsets
=
a
([]),
this
.
targets
=
a
([]),
this
.
activeTarget
=
null
,
this
.
refresh
(),
this
.
process
()}
b
.
DEFAULTS
=
{
offset
:
10
},
b
.
prototype
.
refresh
=
function
(){
this
.
offsets
=
a
([]),
this
.
targets
=
a
([]);
var
b
=
this
;
this
.
$body
.
find
(
this
.
selector
).
map
(
function
(){
var
c
=
a
(
this
),
d
=
c
.
data
(
"
target
"
)
||
c
.
attr
(
"
href
"
),
e
=
/^#
\w
/
.
test
(
d
)
&&
a
(
d
);
return
e
&&
e
.
length
&&
[[
e
.
offset
().
top
+
(
!
a
.
isWindow
(
b
.
$scrollElement
.
get
(
0
))
&&
b
.
$scrollElement
.
scrollTop
()),
d
]]
||
null
}).
sort
(
function
(
a
,
b
){
return
a
[
0
]
-
b
[
0
]}).
each
(
function
(){
b
.
offsets
.
push
(
this
[
0
]),
b
.
targets
.
push
(
this
[
1
])})},
b
.
prototype
.
process
=
function
(){
var
a
,
b
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
c
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
,
d
=
c
-
this
.
$scrollElement
.
height
(),
e
=
this
.
offsets
,
f
=
this
.
targets
,
g
=
this
.
activeTarget
;
if
(
b
>=
d
)
return
g
!=
(
a
=
f
.
last
()[
0
])
&&
this
.
activate
(
a
);
for
(
a
=
e
.
length
;
a
--
;)
g
!=
f
[
a
]
&&
b
>=
e
[
a
]
&&
(
!
e
[
a
+
1
]
||
b
<=
e
[
a
+
1
])
&&
this
.
activate
(
f
[
a
])},
b
.
prototype
.
activate
=
function
(
b
){
this
.
activeTarget
=
b
,
a
(
this
.
selector
).
parents
(
"
.active
"
).
removeClass
(
"
active
"
);
var
c
=
this
.
selector
+
'
[data-target="
'
+
b
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
b
+
'
"]
'
,
d
=
a
(
c
).
parents
(
"
li
"
).
addClass
(
"
active
"
);
d
.
parent
(
"
.dropdown-menu
"
).
length
&&
(
d
=
d
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
)),
d
.
trigger
(
"
activate
"
)};
var
c
=
a
.
fn
.
scrollspy
;
a
.
fn
.
scrollspy
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.scrollspy
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.scrollspy
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
scrollspy
.
Constructor
=
b
,
a
.
fn
.
scrollspy
.
noConflict
=
function
(){
return
a
.
fn
.
scrollspy
=
c
,
this
},
a
(
window
).
on
(
"
load
"
,
function
(){
a
(
'
[data-spy="scroll"]
'
).
each
(
function
(){
var
b
=
a
(
this
);
b
.
scrollspy
(
b
.
data
())})})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
){
this
.
element
=
a
(
b
)};
b
.
prototype
.
show
=
function
(){
var
b
=
this
.
element
,
c
=
b
.
closest
(
"
ul:not(.dropdown-menu)
"
),
d
=
b
.
attr
(
"
data-target
"
);
if
(
d
||
(
d
=
b
.
attr
(
"
href
"
),
d
=
d
&&
d
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
!
b
.
parent
(
"
li
"
).
hasClass
(
"
active
"
)){
var
e
=
c
.
find
(
"
.active:last a
"
)[
0
],
f
=
a
.
Event
(
"
show.bs.tab
"
,{
relatedTarget
:
e
});
if
(
b
.
trigger
(
f
),
!
f
.
isDefaultPrevented
()){
var
g
=
a
(
d
);
this
.
activate
(
b
.
parent
(
"
li
"
),
c
),
this
.
activate
(
g
,
g
.
parent
(),
function
(){
b
.
trigger
({
type
:
"
shown.bs.tab
"
,
relatedTarget
:
e
})})}}},
b
.
prototype
.
activate
=
function
(
b
,
c
,
d
){
function
e
(){
f
.
removeClass
(
"
active
"
).
find
(
"
> .dropdown-menu > .active
"
).
removeClass
(
"
active
"
),
b
.
addClass
(
"
active
"
),
g
?(
b
[
0
].
offsetWidth
,
b
.
addClass
(
"
in
"
)):
b
.
removeClass
(
"
fade
"
),
b
.
parent
(
"
.dropdown-menu
"
)
&&
b
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
),
d
&&
d
()}
var
f
=
c
.
find
(
"
> .active
"
),
g
=
d
&&
a
.
support
.
transition
&&
f
.
hasClass
(
"
fade
"
);
g
?
f
.
one
(
a
.
support
.
transition
.
end
,
e
).
emulateTransitionEnd
(
150
):
e
(),
f
.
removeClass
(
"
in
"
)};
var
c
=
a
.
fn
.
tab
;
a
.
fn
.
tab
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.tab
"
);
e
||
d
.
data
(
"
bs.tab
"
,
e
=
new
b
(
this
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
tab
.
Constructor
=
b
,
a
.
fn
.
tab
.
noConflict
=
function
(){
return
a
.
fn
.
tab
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.tab.data-api
"
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
b
){
b
.
preventDefault
(),
a
(
this
).
tab
(
"
show
"
)})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
a
,
b
){
this
.
type
=
this
.
options
=
this
.
enabled
=
this
.
timeout
=
this
.
hoverState
=
this
.
$element
=
null
,
this
.
init
(
"
tooltip
"
,
a
,
b
)};
b
.
DEFAULTS
=
{
animation
:
!
0
,
placement
:
"
top
"
,
selector
:
!
1
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
,
trigger
:
"
hover focus
"
,
title
:
""
,
delay
:
0
,
html
:
!
1
,
container
:
!
1
},
b
.
prototype
.
init
=
function
(
b
,
c
,
d
){
this
.
enabled
=!
0
,
this
.
type
=
b
,
this
.
$element
=
a
(
c
),
this
.
options
=
this
.
getOptions
(
d
);
for
(
var
e
=
this
.
options
.
trigger
.
split
(
"
"
),
f
=
e
.
length
;
f
--
;){
var
g
=
e
[
f
];
if
(
"
click
"
==
g
)
this
.
$element
.
on
(
"
click.
"
+
this
.
type
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
toggle
,
this
));
else
if
(
"
manual
"
!=
g
){
var
h
=
"
hover
"
==
g
?
"
mouseenter
"
:
"
focus
"
,
i
=
"
hover
"
==
g
?
"
mouseleave
"
:
"
blur
"
;
this
.
$element
.
on
(
h
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
enter
,
this
)),
this
.
$element
.
on
(
i
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
leave
,
this
))}}
this
.
options
.
selector
?
this
.
_options
=
a
.
extend
({},
this
.
options
,{
trigger
:
"
manual
"
,
selector
:
""
}):
this
.
fixTitle
()},
b
.
prototype
.
getDefaults
=
function
(){
return
b
.
DEFAULTS
},
b
.
prototype
.
getOptions
=
function
(
b
){
return
b
=
a
.
extend
({},
this
.
getDefaults
(),
this
.
$element
.
data
(),
b
),
b
.
delay
&&
"
number
"
==
typeof
b
.
delay
&&
(
b
.
delay
=
{
show
:
b
.
delay
,
hide
:
b
.
delay
}),
b
},
b
.
prototype
.
enter
=
function
(
b
){
var
c
=
this
.
getDefaults
(),
d
=
{};
this
.
_options
&&
a
.
each
(
this
.
_options
,
function
(
a
,
b
){
c
[
a
]
!=
b
&&
(
d
[
a
]
=
b
)});
var
e
=
b
instanceof
this
.
constructor
?
b
:
a
(
b
.
currentTarget
)[
this
.
type
](
d
).
data
(
"
bs.
"
+
this
.
type
);
return
clearTimeout
(
e
.
timeout
),
e
.
options
.
delay
&&
e
.
options
.
delay
.
show
?(
e
.
hoverState
=
"
in
"
,
e
.
timeout
=
setTimeout
(
function
(){
"
in
"
==
e
.
hoverState
&&
e
.
show
()},
e
.
options
.
delay
.
show
),
void
0
):
e
.
show
()},
b
.
prototype
.
leave
=
function
(
b
){
var
c
=
b
instanceof
this
.
constructor
?
b
:
a
(
b
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
"
bs.
"
+
this
.
type
);
return
clearTimeout
(
c
.
timeout
),
c
.
options
.
delay
&&
c
.
options
.
delay
.
hide
?(
c
.
hoverState
=
"
out
"
,
c
.
timeout
=
setTimeout
(
function
(){
"
out
"
==
c
.
hoverState
&&
c
.
hide
()},
c
.
options
.
delay
.
hide
),
void
0
):
c
.
hide
()},
b
.
prototype
.
show
=
function
(){
var
b
=
a
.
Event
(
"
show.bs.
"
+
this
.
type
);
if
(
this
.
hasContent
()
&&
this
.
enabled
){
if
(
this
.
$element
.
trigger
(
b
),
b
.
isDefaultPrevented
())
return
;
var
c
=
this
.
tip
();
this
.
setContent
(),
this
.
options
.
animation
&&
c
.
addClass
(
"
fade
"
);
var
d
=
"
function
"
==
typeof
this
.
options
.
placement
?
this
.
options
.
placement
.
call
(
this
,
c
[
0
],
this
.
$element
[
0
]):
this
.
options
.
placement
,
e
=
/
\s?
auto
?\s?
/i
,
f
=
e
.
test
(
d
);
f
&&
(
d
=
d
.
replace
(
e
,
""
)
||
"
top
"
),
c
.
detach
().
css
({
top
:
0
,
left
:
0
,
display
:
"
block
"
}).
addClass
(
d
),
this
.
options
.
container
?
c
.
appendTo
(
this
.
options
.
container
):
c
.
insertAfter
(
this
.
$element
);
var
g
=
this
.
getPosition
(),
h
=
c
[
0
].
offsetWidth
,
i
=
c
[
0
].
offsetHeight
;
if
(
f
){
var
j
=
this
.
$element
.
parent
(),
k
=
d
,
l
=
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
,
m
=
"
body
"
==
this
.
options
.
container
?
window
.
innerWidth
:
j
.
outerWidth
(),
n
=
"
body
"
==
this
.
options
.
container
?
window
.
innerHeight
:
j
.
outerHeight
(),
o
=
"
body
"
==
this
.
options
.
container
?
0
:
j
.
offset
().
left
;
d
=
"
bottom
"
==
d
&&
g
.
top
+
g
.
height
+
i
-
l
>
n
?
"
top
"
:
"
top
"
==
d
&&
g
.
top
-
l
-
i
<
0
?
"
bottom
"
:
"
right
"
==
d
&&
g
.
right
+
h
>
m
?
"
left
"
:
"
left
"
==
d
&&
g
.
left
-
h
<
o
?
"
right
"
:
d
,
c
.
removeClass
(
k
).
addClass
(
d
)}
var
p
=
"
bottom
"
==
d
?{
top
:
g
.
top
+
g
.
height
,
left
:
g
.
left
+
g
.
width
/
2
-
h
/
2
}:
"
top
"
==
d
?{
top
:
g
.
top
-
i
,
left
:
g
.
left
+
g
.
width
/
2
-
h
/
2
}:
"
left
"
==
d
?{
top
:
g
.
top
+
g
.
height
/
2
-
i
/
2
,
left
:
g
.
left
-
h
}:{
top
:
g
.
top
+
g
.
height
/
2
-
i
/
2
,
left
:
g
.
left
+
g
.
width
};
this
.
applyPlacement
(
p
,
d
),
this
.
$element
.
trigger
(
"
shown.bs.
"
+
this
.
type
)}},
b
.
prototype
.
applyPlacement
=
function
(
a
,
b
){
var
c
,
d
=
this
.
tip
(),
e
=
d
[
0
].
offsetWidth
,
f
=
d
[
0
].
offsetHeight
;
a
.
top
=
a
.
top
+
parseInt
(
d
.
css
(
"
margin-top
"
),
10
),
a
.
left
=
a
.
left
+
parseInt
(
d
.
css
(
"
margin-left
"
),
10
),
d
.
offset
(
a
).
addClass
(
"
in
"
);
var
g
=
d
[
0
].
offsetWidth
,
h
=
d
[
0
].
offsetHeight
;
if
(
"
top
"
==
b
&&
h
!=
f
&&
(
c
=!
0
,
a
.
top
=
a
.
top
+
f
-
h
),
"
bottom
"
==
b
||
"
top
"
==
b
){
var
i
=
0
;
a
.
left
<
0
&&
(
i
=-
2
*
a
.
left
,
a
.
left
=
0
,
d
.
offset
(
a
),
g
=
d
[
0
].
offsetWidth
,
h
=
d
[
0
].
offsetHeight
),
this
.
replaceArrow
(
i
-
e
+
g
,
g
,
"
left
"
)}
else
this
.
replaceArrow
(
h
-
f
,
h
,
"
top
"
);
c
&&
d
.
offset
(
a
)},
b
.
prototype
.
replaceArrow
=
function
(
a
,
b
,
c
){
this
.
arrow
().
css
(
c
,
a
?
50
*
(
1
-
a
/
b
)
+
"
%
"
:
""
)},
b
.
prototype
.
setContent
=
function
(){
var
a
=
this
.
tip
(),
b
=
this
.
getTitle
();
a
.
find
(
"
.tooltip-inner
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
b
),
a
.
removeClass
(
"
fade in top bottom left right
"
)},
b
.
prototype
.
hide
=
function
(){
var
b
=
this
.
tip
(),
c
=
a
.
Event
(
"
hide.bs.
"
+
this
.
type
);
return
this
.
$element
.
trigger
(
c
),
c
.
isDefaultPrevented
()?
void
0
:(
b
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
"
fade
"
)?
b
.
one
(
a
.
support
.
transition
.
end
,
b
.
detach
).
emulateTransitionEnd
(
150
):
b
.
detach
(),
this
.
$element
.
trigger
(
"
hidden.bs.
"
+
this
.
type
),
this
)},
b
.
prototype
.
fixTitle
=
function
(){
var
a
=
this
.
$element
;(
a
.
attr
(
"
title
"
)
||
"
string
"
!=
typeof
a
.
attr
(
"
data-original-title
"
))
&&
a
.
attr
(
"
data-original-title
"
,
a
.
attr
(
"
title
"
)
||
""
).
attr
(
"
title
"
,
""
)},
b
.
prototype
.
hasContent
=
function
(){
return
this
.
getTitle
()},
b
.
prototype
.
getPosition
=
function
(){
var
b
=
this
.
$element
[
0
];
return
a
.
extend
({},
"
function
"
==
typeof
b
.
getBoundingClientRect
?
b
.
getBoundingClientRect
():{
width
:
b
.
offsetWidth
,
height
:
b
.
offsetHeight
},
this
.
$element
.
offset
())},
b
.
prototype
.
getTitle
=
function
(){
var
a
,
b
=
this
.
$element
,
c
=
this
.
options
;
return
a
=
b
.
attr
(
"
data-original-title
"
)
||
(
"
function
"
==
typeof
c
.
title
?
c
.
title
.
call
(
b
[
0
]):
c
.
title
)},
b
.
prototype
.
tip
=
function
(){
return
this
.
$tip
=
this
.
$tip
||
a
(
this
.
options
.
template
)},
b
.
prototype
.
arrow
=
function
(){
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
"
.tooltip-arrow
"
)},
b
.
prototype
.
validate
=
function
(){
this
.
$element
[
0
].
parentNode
||
(
this
.
hide
(),
this
.
$element
=
null
,
this
.
options
=
null
)},
b
.
prototype
.
enable
=
function
(){
this
.
enabled
=!
0
},
b
.
prototype
.
disable
=
function
(){
this
.
enabled
=!
1
},
b
.
prototype
.
toggleEnabled
=
function
(){
this
.
enabled
=!
this
.
enabled
},
b
.
prototype
.
toggle
=
function
(
b
){
var
c
=
b
?
a
(
b
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
"
bs.
"
+
this
.
type
):
this
;
c
.
tip
().
hasClass
(
"
in
"
)?
c
.
leave
(
c
):
c
.
enter
(
c
)},
b
.
prototype
.
destroy
=
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
"
bs.
"
+
this
.
type
)};
var
c
=
a
.
fn
.
tooltip
;
a
.
fn
.
tooltip
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.tooltip
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.tooltip
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
tooltip
.
Constructor
=
b
,
a
.
fn
.
tooltip
.
noConflict
=
function
(){
return
a
.
fn
.
tooltip
=
c
,
this
}}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
function
b
(){
var
a
=
document
.
createElement
(
"
bootstrap
"
),
b
=
{
WebkitTransition
:
"
webkitTransitionEnd
"
,
MozTransition
:
"
transitionend
"
,
OTransition
:
"
oTransitionEnd otransitionend
"
,
transition
:
"
transitionend
"
};
for
(
var
c
in
b
)
if
(
void
0
!==
a
.
style
[
c
])
return
{
end
:
b
[
c
]}}
a
.
fn
.
emulateTransitionEnd
=
function
(
b
){
var
c
=!
1
,
d
=
this
;
a
(
this
).
one
(
"
webkitTransitionEnd
"
,
function
(){
c
=!
0
});
var
e
=
function
(){
c
||
a
(
d
).
trigger
(
"
webkitTransitionEnd
"
)};
setTimeout
(
e
,
b
)},
a
(
function
(){
a
.
support
.
transition
=
b
()})}(
window
.
jQuery
);
\ No newline at end of file
+
function
(
a
){
"
use strict
"
;
function
b
(){
var
a
=
document
.
createElement
(
"
bootstrap
"
),
b
=
{
WebkitTransition
:
"
webkitTransitionEnd
"
,
MozTransition
:
"
transitionend
"
,
OTransition
:
"
oTransitionEnd otransitionend
"
,
transition
:
"
transitionend
"
};
for
(
var
c
in
b
)
if
(
void
0
!==
a
.
style
[
c
])
return
{
end
:
b
[
c
]}}
a
.
fn
.
emulateTransitionEnd
=
function
(
b
){
var
c
=!
1
,
d
=
this
;
a
(
this
).
one
(
"
webkitTransitionEnd
"
,
function
(){
c
=!
0
});
var
e
=
function
(){
c
||
a
(
d
).
trigger
(
"
webkitTransitionEnd
"
)};
setTimeout
(
e
,
b
)},
a
(
function
(){
a
.
support
.
transition
=
b
()})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
'
[data-dismiss="alert"]
'
,
c
=
function
(
c
){
a
(
c
).
on
(
"
click
"
,
b
,
this
.
close
)};
c
.
prototype
.
close
=
function
(
b
){
function
c
(){
f
.
trigger
(
"
closed.bs.alert
"
).
remove
()}
var
d
=
a
(
this
),
e
=
d
.
attr
(
"
data-target
"
);
e
||
(
e
=
d
.
attr
(
"
href
"
),
e
=
e
&&
e
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
var
f
=
a
(
e
);
b
&&
b
.
preventDefault
(),
f
.
length
||
(
f
=
d
.
hasClass
(
"
alert
"
)?
d
:
d
.
parent
()),
f
.
trigger
(
b
=
a
.
Event
(
"
close.bs.alert
"
)),
b
.
isDefaultPrevented
()
||
(
f
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
f
.
hasClass
(
"
fade
"
)?
f
.
one
(
a
.
support
.
transition
.
end
,
c
).
emulateTransitionEnd
(
150
):
c
())};
var
d
=
a
.
fn
.
alert
;
a
.
fn
.
alert
=
function
(
b
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.alert
"
);
e
||
d
.
data
(
"
bs.alert
"
,
e
=
new
c
(
this
)),
"
string
"
==
typeof
b
&&
e
[
b
].
call
(
d
)})},
a
.
fn
.
alert
.
Constructor
=
c
,
a
.
fn
.
alert
.
noConflict
=
function
(){
return
a
.
fn
.
alert
=
d
,
this
},
a
(
document
).
on
(
"
click.bs.alert.data-api
"
,
b
,
c
.
prototype
.
close
)}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
c
,
d
){
this
.
$element
=
a
(
c
),
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
)};
b
.
DEFAULTS
=
{
loadingText
:
"
loading...
"
},
b
.
prototype
.
setState
=
function
(
a
){
var
b
=
"
disabled
"
,
c
=
this
.
$element
,
d
=
c
.
is
(
"
input
"
)?
"
val
"
:
"
html
"
,
e
=
c
.
data
();
a
+=
"
Text
"
,
e
.
resetText
||
c
.
data
(
"
resetText
"
,
c
[
d
]()),
c
[
d
](
e
[
a
]
||
this
.
options
[
a
]),
setTimeout
(
function
(){
"
loadingText
"
==
a
?
c
.
addClass
(
b
).
attr
(
b
,
b
):
c
.
removeClass
(
b
).
removeAttr
(
b
)},
0
)},
b
.
prototype
.
toggle
=
function
(){
var
a
=
this
.
$element
.
closest
(
'
[data-toggle="buttons"]
'
);
if
(
a
.
length
){
var
b
=
this
.
$element
.
find
(
"
input
"
).
prop
(
"
checked
"
,
!
this
.
$element
.
hasClass
(
"
active
"
));
"
radio
"
===
b
.
prop
(
"
type
"
)
&&
a
.
find
(
"
.active
"
).
removeClass
(
"
active
"
)}
this
.
$element
.
toggleClass
(
"
active
"
)};
var
c
=
a
.
fn
.
button
;
a
.
fn
.
button
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
button
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.button
"
,
e
=
new
b
(
this
,
f
)),
"
toggle
"
==
c
?
e
.
toggle
():
c
&&
e
.
setState
(
c
)})},
a
.
fn
.
button
.
Constructor
=
b
,
a
.
fn
.
button
.
noConflict
=
function
(){
return
a
.
fn
.
button
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.button.data-api
"
,
"
[data-toggle^=button]
"
,
function
(
b
){
var
c
=
a
(
b
.
target
);
c
.
hasClass
(
"
btn
"
)
||
(
c
=
c
.
closest
(
"
.btn
"
)),
c
.
button
(
"
toggle
"
),
b
.
preventDefault
()})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
$element
=
a
(
b
),
this
.
$indicators
=
this
.
$element
.
find
(
"
.carousel-indicators
"
),
this
.
options
=
c
,
this
.
paused
=
this
.
sliding
=
this
.
interval
=
this
.
$active
=
this
.
$items
=
null
,
"
hover
"
==
this
.
options
.
pause
&&
this
.
$element
.
on
(
"
mouseenter
"
,
a
.
proxy
(
this
.
pause
,
this
)).
on
(
"
mouseleave
"
,
a
.
proxy
(
this
.
cycle
,
this
))};
b
.
DEFAULTS
=
{
interval
:
5
e3
,
pause
:
"
hover
"
},
b
.
prototype
.
cycle
=
function
(
b
){
return
b
||
(
this
.
paused
=!
1
),
this
.
interval
&&
clearInterval
(
this
.
interval
),
this
.
options
.
interval
&&!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
a
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
)),
this
},
b
.
prototype
.
getActiveIndex
=
function
(){
return
this
.
$active
=
this
.
$element
.
find
(
"
.item.active
"
),
this
.
$items
=
this
.
$active
.
parent
().
children
(),
this
.
$items
.
index
(
this
.
$active
)},
b
.
prototype
.
to
=
function
(
b
){
var
c
=
this
,
d
=
this
.
getActiveIndex
();
return
b
>
this
.
$items
.
length
-
1
||
0
>
b
?
void
0
:
this
.
sliding
?
this
.
$element
.
one
(
"
slid
"
,
function
(){
c
.
to
(
b
)}):
d
==
b
?
this
.
pause
().
cycle
():
this
.
slide
(
b
>
d
?
"
next
"
:
"
prev
"
,
a
(
this
.
$items
[
b
]))},
b
.
prototype
.
pause
=
function
(
b
){
return
b
||
(
this
.
paused
=!
0
),
this
.
$element
.
find
(
"
.next, .prev
"
).
length
&&
a
.
support
.
transition
.
end
&&
(
this
.
$element
.
trigger
(
a
.
support
.
transition
.
end
),
this
.
cycle
(
!
0
)),
this
.
interval
=
clearInterval
(
this
.
interval
),
this
},
b
.
prototype
.
next
=
function
(){
return
this
.
sliding
?
void
0
:
this
.
slide
(
"
next
"
)},
b
.
prototype
.
prev
=
function
(){
return
this
.
sliding
?
void
0
:
this
.
slide
(
"
prev
"
)},
b
.
prototype
.
slide
=
function
(
b
,
c
){
var
d
=
this
.
$element
.
find
(
"
.item.active
"
),
e
=
c
||
d
[
b
](),
f
=
this
.
interval
,
g
=
"
next
"
==
b
?
"
left
"
:
"
right
"
,
h
=
"
next
"
==
b
?
"
first
"
:
"
last
"
,
i
=
this
;
this
.
sliding
=!
0
,
f
&&
this
.
pause
(),
e
=
e
.
length
?
e
:
this
.
$element
.
find
(
"
.item
"
)[
h
]();
var
j
=
a
.
Event
(
"
slide.bs.carousel
"
,{
relatedTarget
:
e
[
0
],
direction
:
g
});
if
(
!
e
.
hasClass
(
"
active
"
)){
if
(
this
.
$indicators
.
length
&&
(
this
.
$indicators
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
this
.
$element
.
one
(
"
slid
"
,
function
(){
var
b
=
a
(
i
.
$indicators
.
children
()[
i
.
getActiveIndex
()]);
b
&&
b
.
addClass
(
"
active
"
)})),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
slide
"
)){
if
(
this
.
$element
.
trigger
(
j
),
j
.
isDefaultPrevented
())
return
;
e
.
addClass
(
b
),
e
[
0
].
offsetWidth
,
d
.
addClass
(
g
),
e
.
addClass
(
g
),
d
.
one
(
a
.
support
.
transition
.
end
,
function
(){
e
.
removeClass
([
b
,
g
].
join
(
"
"
)).
addClass
(
"
active
"
),
d
.
removeClass
([
"
active
"
,
g
].
join
(
"
"
)),
i
.
sliding
=!
1
,
setTimeout
(
function
(){
i
.
$element
.
trigger
(
"
slid
"
)},
0
)}).
emulateTransitionEnd
(
600
)}
else
{
if
(
this
.
$element
.
trigger
(
j
),
j
.
isDefaultPrevented
())
return
;
d
.
removeClass
(
"
active
"
),
e
.
addClass
(
"
active
"
),
this
.
sliding
=!
1
,
this
.
$element
.
trigger
(
"
slid
"
)}
return
f
&&
this
.
cycle
(),
this
}};
var
c
=
a
.
fn
.
carousel
;
a
.
fn
.
carousel
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.carousel
"
),
f
=
a
.
extend
({},
b
.
DEFAULTS
,
d
.
data
(),
"
object
"
==
typeof
c
&&
c
),
g
=
"
string
"
==
typeof
c
?
c
:
f
.
slide
;
e
||
d
.
data
(
"
bs.carousel
"
,
e
=
new
b
(
this
,
f
)),
"
number
"
==
typeof
c
?
e
.
to
(
c
):
g
?
e
[
g
]():
f
.
interval
&&
e
.
pause
().
cycle
()})},
a
.
fn
.
carousel
.
Constructor
=
b
,
a
.
fn
.
carousel
.
noConflict
=
function
(){
return
a
.
fn
.
carousel
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.carousel.data-api
"
,
"
[data-slide], [data-slide-to]
"
,
function
(
b
){
var
c
,
d
=
a
(
this
),
e
=
a
(
d
.
attr
(
"
data-target
"
)
||
(
c
=
d
.
attr
(
"
href
"
))
&&
c
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
f
=
a
.
extend
({},
e
.
data
(),
d
.
data
()),
g
=
d
.
attr
(
"
data-slide-to
"
);
g
&&
(
f
.
interval
=!
1
),
e
.
carousel
(
f
),(
g
=
d
.
attr
(
"
data-slide-to
"
))
&&
e
.
data
(
"
bs.carousel
"
).
to
(
g
),
b
.
preventDefault
()}),
a
(
window
).
on
(
"
load
"
,
function
(){
a
(
'
[data-ride="carousel"]
'
).
each
(
function
(){
var
b
=
a
(
this
);
b
.
carousel
(
b
.
data
())})})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
c
,
d
){
this
.
$element
=
a
(
c
),
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
),
this
.
transitioning
=
null
,
this
.
options
.
parent
&&
(
this
.
$parent
=
a
(
this
.
options
.
parent
)),
this
.
options
.
toggle
&&
this
.
toggle
()};
b
.
DEFAULTS
=
{
toggle
:
!
0
},
b
.
prototype
.
dimension
=
function
(){
var
a
=
this
.
$element
.
hasClass
(
"
width
"
);
return
a
?
"
width
"
:
"
height
"
},
b
.
prototype
.
show
=
function
(){
if
(
!
this
.
transitioning
&&!
this
.
$element
.
hasClass
(
"
in
"
)){
var
b
=
a
.
Event
(
"
show.bs.collapse
"
);
if
(
this
.
$element
.
trigger
(
b
),
!
b
.
isDefaultPrevented
()){
var
c
=
this
.
dimension
(),
d
=
a
.
camelCase
([
"
scroll
"
,
c
].
join
(
"
-
"
)),
e
=
this
.
$parent
&&
this
.
$parent
.
find
(
"
> .accordion-group > .in
"
);
if
(
e
&&
e
.
length
){
var
f
=
e
.
data
(
"
bs.collapse
"
);
if
(
f
&&
f
.
transitioning
)
return
;
e
.
collapse
(
"
hide
"
),
f
||
e
.
data
(
"
bs.collapse
"
,
null
)}
this
.
$element
[
c
](
0
),
this
.
transition
(
"
addClass
"
,
"
shown.bs.collapse
"
),
a
.
support
.
transition
&&
this
.
$element
[
c
](
this
.
$element
[
0
][
d
])}}},
b
.
prototype
.
hide
=
function
(){
if
(
!
this
.
transitioning
&&
this
.
$element
.
hasClass
(
"
in
"
)){
var
b
=
a
.
Event
(
"
hide.bs.collapse
"
);
if
(
this
.
$element
.
trigger
(
b
),
!
b
.
isDefaultPrevented
()){
var
c
=
this
.
dimension
();
this
.
reset
(
this
.
$element
[
c
]()),
this
.
transition
(
"
removeClass
"
,
"
hidden.bs.collapse
"
),
this
.
$element
[
c
](
0
)}}},
b
.
prototype
.
reset
=
function
(
a
){
var
b
=
this
.
dimension
();
return
this
.
$element
.
removeClass
(
"
collapse
"
)[
b
](
a
||
"
auto
"
)[
0
].
offsetWidth
,
this
.
$element
[
null
!=
a
?
"
addClass
"
:
"
removeClass
"
](
"
collapse
"
),
this
},
b
.
prototype
.
transition
=
function
(
b
,
c
){
var
d
=
this
,
e
=
function
(){
"
shown.bs.collapse
"
==
c
&&
d
.
reset
(),
d
.
transitioning
=
0
,
d
.
$element
.
trigger
(
c
)};
this
.
transitioning
=
1
,
this
.
$element
[
b
](
"
in
"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
collapse
"
)?
this
.
$element
.
one
(
a
.
support
.
transition
.
end
,
e
).
emulateTransitionEnd
(
350
):
e
()},
b
.
prototype
.
toggle
=
function
(){
this
[
this
.
$element
.
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()};
var
c
=
a
.
fn
.
collapse
;
a
.
fn
.
collapse
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.collapse
"
),
f
=
a
.
extend
({},
b
.
DEFAULTS
,
d
.
data
(),
"
object
"
==
typeof
c
&&
c
);
e
||
d
.
data
(
"
bs.collapse
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
collapse
.
Constructor
=
b
,
a
.
fn
.
collapse
.
noConflict
=
function
(){
return
a
.
fn
.
collapse
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.collapse.data-api
"
,
"
[data-toggle=collapse]
"
,
function
(
b
){
var
c
,
d
=
a
(
this
),
e
=
d
.
attr
(
"
data-target
"
)
||
b
.
preventDefault
()
||
(
c
=
d
.
attr
(
"
href
"
))
&&
c
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
),
f
=
a
(
e
),
g
=
f
.
data
(
"
bs.collapse
"
),
h
=
g
?
"
toggle
"
:
d
.
data
(),
i
=
d
.
attr
(
"
data-parent
"
),
j
=
i
&&
a
(
i
);
g
&&
g
.
transitioning
||
(
j
&&
j
.
find
(
"
[data-toggle=collapse][data-parent=
"
+
i
+
"
]
"
).
not
(
d
).
addClass
(
"
collapsed
"
),
d
[
f
.
hasClass
(
"
in
"
)?
"
addClass
"
:
"
removeClass
"
](
"
collapsed
"
)),
f
.
collapse
(
h
)})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
function
b
(){
a
(
d
).
remove
(),
a
(
e
).
each
(
function
(
b
){
var
d
=
c
(
a
(
this
));
d
.
hasClass
(
"
open
"
)
&&
(
d
.
trigger
(
b
=
a
.
Event
(
"
hide.bs.dropdown
"
)),
b
.
isDefaultPrevented
()
||
d
.
removeClass
(
"
open
"
).
trigger
(
"
hidden.bs.dropdown
"
))})}
function
c
(
b
){
var
c
=
b
.
attr
(
"
data-target
"
);
c
||
(
c
=
b
.
attr
(
"
href
"
),
c
=
c
&&
/#/
.
test
(
c
)
&&
c
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
var
d
=
c
&&
a
(
c
);
return
d
&&
d
.
length
?
d
:
b
.
parent
()}
var
d
=
"
.dropdown-backdrop
"
,
e
=
"
[data-toggle=dropdown]
"
,
f
=
function
(
b
){
a
(
b
).
on
(
"
click.bs.dropdown
"
,
this
.
toggle
)};
f
.
prototype
.
toggle
=
function
(
d
){
var
e
=
a
(
this
);
if
(
!
e
.
is
(
"
.disabled, :disabled
"
)){
var
f
=
c
(
e
),
g
=
f
.
hasClass
(
"
open
"
);
if
(
b
(),
!
g
){
if
(
"
ontouchstart
"
in
document
.
documentElement
&&
a
(
'
<div class="dropdown-backdrop"/>
'
).
insertAfter
(
a
(
this
)).
on
(
"
click
"
,
b
),
f
.
trigger
(
d
=
a
.
Event
(
"
show.bs.dropdown
"
)),
d
.
isDefaultPrevented
())
return
;
f
.
toggleClass
(
"
open
"
).
trigger
(
"
shown.bs.dropdown
"
)}
return
e
.
focus
(),
!
1
}},
f
.
prototype
.
keydown
=
function
(
b
){
if
(
/
(
38|40|27
)
/
.
test
(
b
.
keyCode
)){
var
d
=
a
(
this
);
if
(
b
.
preventDefault
(),
b
.
stopPropagation
(),
!
d
.
is
(
"
.disabled, :disabled
"
)){
var
f
=
c
(
d
),
g
=
f
.
hasClass
(
"
open
"
);
if
(
!
g
||
g
&&
27
==
b
.
keyCode
)
return
27
==
b
.
which
&&
f
.
find
(
e
).
focus
(),
d
.
click
();
var
h
=
a
(
"
[role=menu] li:not(.divider):visible a
"
,
f
);
if
(
h
.
length
){
var
i
=
h
.
index
(
h
.
filter
(
"
:focus
"
));
38
==
b
.
keyCode
&&
i
>
0
&&
i
--
,
40
==
b
.
keyCode
&&
i
<
h
.
length
-
1
&&
i
++
,
~
i
||
(
i
=
0
),
h
.
eq
(
i
).
focus
()}}}};
var
g
=
a
.
fn
.
dropdown
;
a
.
fn
.
dropdown
=
function
(
b
){
return
this
.
each
(
function
(){
var
c
=
a
(
this
),
d
=
c
.
data
(
"
dropdown
"
);
d
||
c
.
data
(
"
dropdown
"
,
d
=
new
f
(
this
)),
"
string
"
==
typeof
b
&&
d
[
b
].
call
(
c
)})},
a
.
fn
.
dropdown
.
Constructor
=
f
,
a
.
fn
.
dropdown
.
noConflict
=
function
(){
return
a
.
fn
.
dropdown
=
g
,
this
},
a
(
document
).
on
(
"
click.bs.dropdown.data-api
"
,
b
).
on
(
"
click.bs.dropdown.data-api
"
,
"
.dropdown form
"
,
function
(
a
){
a
.
stopPropagation
()}).
on
(
"
click.bs.dropdown.data-api
"
,
e
,
f
.
prototype
.
toggle
).
on
(
"
keydown.bs.dropdown.data-api
"
,
e
+
"
, [role=menu]
"
,
f
.
prototype
.
keydown
)}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
options
=
c
,
this
.
$element
=
a
(
b
).
on
(
"
click.dismiss.modal
"
,
'
[data-dismiss="modal"]
'
,
a
.
proxy
(
this
.
hide
,
this
)),
this
.
$backdrop
=
this
.
isShown
=
null
,
this
.
options
.
remote
&&
this
.
$element
.
find
(
"
.modal-body
"
).
load
(
this
.
options
.
remote
)};
b
.
DEFAULTS
=
{
backdrop
:
!
0
,
keyboard
:
!
0
,
show
:
!
0
},
b
.
prototype
.
toggle
=
function
(){
return
this
[
this
.
isShown
?
"
hide
"
:
"
show
"
]()},
b
.
prototype
.
show
=
function
(){
var
b
=
this
,
c
=
a
.
Event
(
"
show.bs.modal
"
);
this
.
$element
.
trigger
(
c
),
this
.
isShown
||
c
.
isDefaultPrevented
()
||
(
this
.
isShown
=!
0
,
this
.
escape
(),
this
.
backdrop
(
function
(){
var
c
=
a
.
support
.
transition
&&
b
.
$element
.
hasClass
(
"
fade
"
);
b
.
$element
.
parent
().
length
||
b
.
$element
.
appendTo
(
document
.
body
),
b
.
$element
.
show
(),
c
&&
b
.
$element
[
0
].
offsetWidth
,
b
.
$element
.
addClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
1
),
b
.
enforceFocus
(),
c
?
b
.
$element
.
one
(
a
.
support
.
transition
.
end
,
function
(){
b
.
$element
.
focus
().
trigger
(
"
shown.bs.modal
"
)}).
emulateTransitionEnd
(
300
):
b
.
$element
.
focus
().
trigger
(
"
shown.bs.modal
"
)}))},
b
.
prototype
.
hide
=
function
(
b
){
b
&&
b
.
preventDefault
(),
b
=
a
.
Event
(
"
hide.bs.modal
"
),
this
.
$element
.
trigger
(
b
),
this
.
isShown
&&!
b
.
isDefaultPrevented
()
&&
(
this
.
isShown
=!
1
,
this
.
escape
(),
a
(
document
).
off
(
"
focusin.bs.modal
"
),
this
.
$element
.
removeClass
(
"
in
"
).
attr
(
"
aria-hidden
"
,
!
0
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
$element
.
one
(
a
.
support
.
transition
.
end
,
a
.
proxy
(
this
.
hideModal
,
this
)).
emulateTransitionEnd
(
300
):
this
.
hideModal
())},
b
.
prototype
.
enforceFocus
=
function
(){
a
(
document
).
off
(
"
focusin.bs.modal
"
).
on
(
"
focusin.bs.modal
"
,
a
.
proxy
(
function
(
a
){
this
.
$element
[
0
]
===
a
.
target
||
this
.
$element
.
has
(
a
.
target
).
length
||
this
.
$element
.
focus
()},
this
))},
b
.
prototype
.
escape
=
function
(){
this
.
isShown
&&
this
.
options
.
keyboard
?
this
.
$element
.
on
(
"
keyup.dismiss.bs.modal
"
,
a
.
proxy
(
function
(
a
){
27
==
a
.
which
&&
this
.
hide
()},
this
)):
this
.
isShown
||
this
.
$element
.
off
(
"
keyup.dismiss.bs.modal
"
)},
b
.
prototype
.
hideModal
=
function
(){
var
a
=
this
;
this
.
$element
.
hide
(),
this
.
backdrop
(
function
(){
a
.
removeBackdrop
(),
a
.
$element
.
trigger
(
"
hidden.bs.modal
"
)})},
b
.
prototype
.
removeBackdrop
=
function
(){
this
.
$backdrop
&&
this
.
$backdrop
.
remove
(),
this
.
$backdrop
=
null
},
b
.
prototype
.
backdrop
=
function
(
b
){
var
c
=
this
.
$element
.
hasClass
(
"
fade
"
)?
"
fade
"
:
""
;
if
(
this
.
isShown
&&
this
.
options
.
backdrop
){
var
d
=
a
.
support
.
transition
&&
c
;
if
(
this
.
$backdrop
=
a
(
'
<div class="modal-backdrop
'
+
c
+
'
" />
'
).
appendTo
(
document
.
body
),
this
.
$element
.
on
(
"
click
"
,
a
.
proxy
(
function
(
a
){
a
.
target
===
a
.
currentTarget
&&
(
"
static
"
==
this
.
options
.
backdrop
?
this
.
$element
[
0
].
focus
.
call
(
this
.
$element
[
0
]):
this
.
hide
.
call
(
this
))},
this
)),
d
&&
this
.
$backdrop
[
0
].
offsetWidth
,
this
.
$backdrop
.
addClass
(
"
in
"
),
!
b
)
return
;
d
?
this
.
$backdrop
.
one
(
a
.
support
.
transition
.
end
,
b
).
emulateTransitionEnd
(
150
):
b
()}
else
!
this
.
isShown
&&
this
.
$backdrop
?(
this
.
$backdrop
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
$backdrop
.
one
(
a
.
support
.
transition
.
end
,
b
).
emulateTransitionEnd
(
150
):
b
()):
b
&&
b
()};
var
c
=
a
.
fn
.
modal
;
a
.
fn
.
modal
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.modal
"
),
f
=
a
.
extend
({},
b
.
DEFAULTS
,
d
.
data
(),
"
object
"
==
typeof
c
&&
c
);
e
||
d
.
data
(
"
bs.modal
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
?
e
[
c
]():
f
.
show
&&
e
.
show
()})},
a
.
fn
.
modal
.
Constructor
=
b
,
a
.
fn
.
modal
.
noConflict
=
function
(){
return
a
.
fn
.
modal
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.modal.data-api
"
,
'
[data-toggle="modal"]
'
,
function
(
b
){
var
c
=
a
(
this
),
d
=
c
.
attr
(
"
href
"
),
e
=
a
(
c
.
attr
(
"
data-target
"
)
||
d
&&
d
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
f
=
e
.
data
(
"
modal
"
)?
"
toggle
"
:
a
.
extend
({
remote
:
!
/#/
.
test
(
d
)
&&
d
},
e
.
data
(),
c
.
data
());
b
.
preventDefault
(),
e
.
modal
(
f
).
one
(
"
hide
"
,
function
(){
c
.
is
(
"
:visible
"
)
&&
c
.
focus
()})});
var
d
=
a
(
document
.
body
).
on
(
"
shown.bs.modal
"
,
"
.modal
"
,
function
(){
d
.
addClass
(
"
modal-open
"
)}).
on
(
"
hidden.bs.modal
"
,
"
.modal
"
,
function
(){
d
.
removeClass
(
"
modal-open
"
)})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
a
,
b
){
this
.
type
=
this
.
options
=
this
.
enabled
=
this
.
timeout
=
this
.
hoverState
=
this
.
$element
=
null
,
this
.
init
(
"
tooltip
"
,
a
,
b
)};
b
.
DEFAULTS
=
{
animation
:
!
0
,
placement
:
"
top
"
,
selector
:
!
1
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
,
trigger
:
"
hover focus
"
,
title
:
""
,
delay
:
0
,
html
:
!
1
,
container
:
!
1
},
b
.
prototype
.
init
=
function
(
b
,
c
,
d
){
this
.
enabled
=!
0
,
this
.
type
=
b
,
this
.
$element
=
a
(
c
),
this
.
options
=
this
.
getOptions
(
d
);
for
(
var
e
=
this
.
options
.
trigger
.
split
(
"
"
),
f
=
e
.
length
;
f
--
;){
var
g
=
e
[
f
];
if
(
"
click
"
==
g
)
this
.
$element
.
on
(
"
click.
"
+
this
.
type
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
toggle
,
this
));
else
if
(
"
manual
"
!=
g
){
var
h
=
"
hover
"
==
g
?
"
mouseenter
"
:
"
focus
"
,
i
=
"
hover
"
==
g
?
"
mouseleave
"
:
"
blur
"
;
this
.
$element
.
on
(
h
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
enter
,
this
)),
this
.
$element
.
on
(
i
+
"
.
"
+
this
.
type
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
leave
,
this
))}}
this
.
options
.
selector
?
this
.
_options
=
a
.
extend
({},
this
.
options
,{
trigger
:
"
manual
"
,
selector
:
""
}):
this
.
fixTitle
()},
b
.
prototype
.
getDefaults
=
function
(){
return
b
.
DEFAULTS
},
b
.
prototype
.
getOptions
=
function
(
b
){
return
b
=
a
.
extend
({},
this
.
getDefaults
(),
this
.
$element
.
data
(),
b
),
b
.
delay
&&
"
number
"
==
typeof
b
.
delay
&&
(
b
.
delay
=
{
show
:
b
.
delay
,
hide
:
b
.
delay
}),
b
},
b
.
prototype
.
enter
=
function
(
b
){
var
c
=
this
.
getDefaults
(),
d
=
{};
this
.
_options
&&
a
.
each
(
this
.
_options
,
function
(
a
,
b
){
c
[
a
]
!=
b
&&
(
d
[
a
]
=
b
)});
var
e
=
b
instanceof
this
.
constructor
?
b
:
a
(
b
.
currentTarget
)[
this
.
type
](
d
).
data
(
"
bs.
"
+
this
.
type
);
return
clearTimeout
(
e
.
timeout
),
e
.
options
.
delay
&&
e
.
options
.
delay
.
show
?(
e
.
hoverState
=
"
in
"
,
e
.
timeout
=
setTimeout
(
function
(){
"
in
"
==
e
.
hoverState
&&
e
.
show
()},
e
.
options
.
delay
.
show
),
void
0
):
e
.
show
()},
b
.
prototype
.
leave
=
function
(
b
){
var
c
=
b
instanceof
this
.
constructor
?
b
:
a
(
b
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
"
bs.
"
+
this
.
type
);
return
clearTimeout
(
c
.
timeout
),
c
.
options
.
delay
&&
c
.
options
.
delay
.
hide
?(
c
.
hoverState
=
"
out
"
,
c
.
timeout
=
setTimeout
(
function
(){
"
out
"
==
c
.
hoverState
&&
c
.
hide
()},
c
.
options
.
delay
.
hide
),
void
0
):
c
.
hide
()},
b
.
prototype
.
show
=
function
(){
var
b
=
a
.
Event
(
"
show.bs.
"
+
this
.
type
);
if
(
this
.
hasContent
()
&&
this
.
enabled
){
if
(
this
.
$element
.
trigger
(
b
),
b
.
isDefaultPrevented
())
return
;
var
c
=
this
.
tip
();
this
.
setContent
(),
this
.
options
.
animation
&&
c
.
addClass
(
"
fade
"
);
var
d
=
"
function
"
==
typeof
this
.
options
.
placement
?
this
.
options
.
placement
.
call
(
this
,
c
[
0
],
this
.
$element
[
0
]):
this
.
options
.
placement
,
e
=
/
\s?
auto
?\s?
/i
,
f
=
e
.
test
(
d
);
f
&&
(
d
=
d
.
replace
(
e
,
""
)
||
"
top
"
),
c
.
detach
().
css
({
top
:
0
,
left
:
0
,
display
:
"
block
"
}).
addClass
(
d
),
this
.
options
.
container
?
c
.
appendTo
(
this
.
options
.
container
):
c
.
insertAfter
(
this
.
$element
);
var
g
=
this
.
getPosition
(),
h
=
c
[
0
].
offsetWidth
,
i
=
c
[
0
].
offsetHeight
;
if
(
f
){
var
j
=
this
.
$element
.
parent
(),
k
=
d
,
l
=
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
,
m
=
"
body
"
==
this
.
options
.
container
?
window
.
innerWidth
:
j
.
outerWidth
(),
n
=
"
body
"
==
this
.
options
.
container
?
window
.
innerHeight
:
j
.
outerHeight
(),
o
=
"
body
"
==
this
.
options
.
container
?
0
:
j
.
offset
().
left
;
d
=
"
bottom
"
==
d
&&
g
.
top
+
g
.
height
+
i
-
l
>
n
?
"
top
"
:
"
top
"
==
d
&&
g
.
top
-
l
-
i
<
0
?
"
bottom
"
:
"
right
"
==
d
&&
g
.
right
+
h
>
m
?
"
left
"
:
"
left
"
==
d
&&
g
.
left
-
h
<
o
?
"
right
"
:
d
,
c
.
removeClass
(
k
).
addClass
(
d
)}
var
p
=
"
bottom
"
==
d
?{
top
:
g
.
top
+
g
.
height
,
left
:
g
.
left
+
g
.
width
/
2
-
h
/
2
}:
"
top
"
==
d
?{
top
:
g
.
top
-
i
,
left
:
g
.
left
+
g
.
width
/
2
-
h
/
2
}:
"
left
"
==
d
?{
top
:
g
.
top
+
g
.
height
/
2
-
i
/
2
,
left
:
g
.
left
-
h
}:{
top
:
g
.
top
+
g
.
height
/
2
-
i
/
2
,
left
:
g
.
left
+
g
.
width
};
this
.
applyPlacement
(
p
,
d
),
this
.
$element
.
trigger
(
"
shown.bs.
"
+
this
.
type
)}},
b
.
prototype
.
applyPlacement
=
function
(
a
,
b
){
var
c
,
d
=
this
.
tip
(),
e
=
d
[
0
].
offsetWidth
,
f
=
d
[
0
].
offsetHeight
;
a
.
top
=
a
.
top
+
parseInt
(
d
.
css
(
"
margin-top
"
),
10
),
a
.
left
=
a
.
left
+
parseInt
(
d
.
css
(
"
margin-left
"
),
10
),
d
.
offset
(
a
).
addClass
(
"
in
"
);
var
g
=
d
[
0
].
offsetWidth
,
h
=
d
[
0
].
offsetHeight
;
if
(
"
top
"
==
b
&&
h
!=
f
&&
(
c
=!
0
,
a
.
top
=
a
.
top
+
f
-
h
),
"
bottom
"
==
b
||
"
top
"
==
b
){
var
i
=
0
;
a
.
left
<
0
&&
(
i
=-
2
*
a
.
left
,
a
.
left
=
0
,
d
.
offset
(
a
),
g
=
d
[
0
].
offsetWidth
,
h
=
d
[
0
].
offsetHeight
),
this
.
replaceArrow
(
i
-
e
+
g
,
g
,
"
left
"
)}
else
this
.
replaceArrow
(
h
-
f
,
h
,
"
top
"
);
c
&&
d
.
offset
(
a
)},
b
.
prototype
.
replaceArrow
=
function
(
a
,
b
,
c
){
this
.
arrow
().
css
(
c
,
a
?
50
*
(
1
-
a
/
b
)
+
"
%
"
:
""
)},
b
.
prototype
.
setContent
=
function
(){
var
a
=
this
.
tip
(),
b
=
this
.
getTitle
();
a
.
find
(
"
.tooltip-inner
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
b
),
a
.
removeClass
(
"
fade in top bottom left right
"
)},
b
.
prototype
.
hide
=
function
(){
var
b
=
this
.
tip
(),
c
=
a
.
Event
(
"
hide.bs.
"
+
this
.
type
);
return
this
.
$element
.
trigger
(
c
),
c
.
isDefaultPrevented
()?
void
0
:(
b
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
"
fade
"
)?
b
.
one
(
a
.
support
.
transition
.
end
,
b
.
detach
).
emulateTransitionEnd
(
150
):
b
.
detach
(),
this
.
$element
.
trigger
(
"
hidden.bs.
"
+
this
.
type
),
this
)},
b
.
prototype
.
fixTitle
=
function
(){
var
a
=
this
.
$element
;(
a
.
attr
(
"
title
"
)
||
"
string
"
!=
typeof
a
.
attr
(
"
data-original-title
"
))
&&
a
.
attr
(
"
data-original-title
"
,
a
.
attr
(
"
title
"
)
||
""
).
attr
(
"
title
"
,
""
)},
b
.
prototype
.
hasContent
=
function
(){
return
this
.
getTitle
()},
b
.
prototype
.
getPosition
=
function
(){
var
b
=
this
.
$element
[
0
];
return
a
.
extend
({},
"
function
"
==
typeof
b
.
getBoundingClientRect
?
b
.
getBoundingClientRect
():{
width
:
b
.
offsetWidth
,
height
:
b
.
offsetHeight
},
this
.
$element
.
offset
())},
b
.
prototype
.
getTitle
=
function
(){
var
a
,
b
=
this
.
$element
,
c
=
this
.
options
;
return
a
=
b
.
attr
(
"
data-original-title
"
)
||
(
"
function
"
==
typeof
c
.
title
?
c
.
title
.
call
(
b
[
0
]):
c
.
title
)},
b
.
prototype
.
tip
=
function
(){
return
this
.
$tip
=
this
.
$tip
||
a
(
this
.
options
.
template
)},
b
.
prototype
.
arrow
=
function
(){
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
"
.tooltip-arrow
"
)},
b
.
prototype
.
validate
=
function
(){
this
.
$element
[
0
].
parentNode
||
(
this
.
hide
(),
this
.
$element
=
null
,
this
.
options
=
null
)},
b
.
prototype
.
enable
=
function
(){
this
.
enabled
=!
0
},
b
.
prototype
.
disable
=
function
(){
this
.
enabled
=!
1
},
b
.
prototype
.
toggleEnabled
=
function
(){
this
.
enabled
=!
this
.
enabled
},
b
.
prototype
.
toggle
=
function
(
b
){
var
c
=
b
?
a
(
b
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
"
bs.
"
+
this
.
type
):
this
;
c
.
tip
().
hasClass
(
"
in
"
)?
c
.
leave
(
c
):
c
.
enter
(
c
)},
b
.
prototype
.
destroy
=
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
"
bs.
"
+
this
.
type
)};
var
c
=
a
.
fn
.
tooltip
;
a
.
fn
.
tooltip
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.tooltip
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.tooltip
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
tooltip
.
Constructor
=
b
,
a
.
fn
.
tooltip
.
noConflict
=
function
(){
return
a
.
fn
.
tooltip
=
c
,
this
}}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
a
,
b
){
this
.
init
(
"
popover
"
,
a
,
b
)};
b
.
DEFAULTS
=
a
.
extend
({},
a
.
fn
.
tooltip
.
Constructor
.
DEFAULTS
,{
placement
:
"
right
"
,
trigger
:
"
click
"
,
content
:
""
,
template
:
'
<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>
'
}),
b
.
prototype
=
a
.
extend
({},
a
.
fn
.
tooltip
.
Constructor
.
prototype
),
b
.
prototype
.
constructor
=
b
,
b
.
prototype
.
getDefaults
=
function
(){
return
b
.
DEFAULTS
},
b
.
prototype
.
setContent
=
function
(){
var
a
=
this
.
tip
(),
b
=
this
.
getTitle
(),
c
=
this
.
getContent
();
a
.
find
(
"
.popover-title
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
b
),
a
.
find
(
"
.popover-content
"
)[
this
.
options
.
html
?
"
html
"
:
"
text
"
](
c
),
a
.
removeClass
(
"
fade top bottom left right in
"
),
a
.
find
(
"
.popover-title:empty
"
).
hide
()},
b
.
prototype
.
hasContent
=
function
(){
return
this
.
getTitle
()
||
this
.
getContent
()},
b
.
prototype
.
getContent
=
function
(){
var
a
=
this
.
$element
,
b
=
this
.
options
;
return
a
.
attr
(
"
data-content
"
)
||
(
"
function
"
==
typeof
b
.
content
?
b
.
content
.
call
(
a
[
0
]):
b
.
content
)},
b
.
prototype
.
tip
=
function
(){
return
this
.
$tip
||
(
this
.
$tip
=
a
(
this
.
options
.
template
)),
this
.
$tip
},
b
.
prototype
.
destroy
=
function
(){
this
.
hide
().
$element
.
off
(
"
.
"
+
this
.
type
).
removeData
(
this
.
type
)};
var
c
=
a
.
fn
.
popover
;
a
.
fn
.
popover
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.popover
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.popover
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
popover
.
Constructor
=
b
,
a
.
fn
.
popover
.
noConflict
=
function
(){
return
a
.
fn
.
popover
=
c
,
this
}}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
function
b
(
c
,
d
){
var
e
,
f
=
a
.
proxy
(
this
.
process
,
this
),
g
=
a
(
c
).
is
(
"
body
"
)?
a
(
window
):
a
(
c
);
this
.
$body
=
a
(
"
body
"
),
this
.
$scrollElement
=
g
.
on
(
"
scroll.bs.scroll-spy.data-api
"
,
f
),
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
),
this
.
selector
=
(
this
.
options
.
target
||
(
e
=
a
(
c
).
attr
(
"
href
"
))
&&
e
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)
||
""
)
+
"
.nav li > a
"
,
this
.
offsets
=
a
([]),
this
.
targets
=
a
([]),
this
.
activeTarget
=
null
,
this
.
refresh
(),
this
.
process
()}
b
.
DEFAULTS
=
{
offset
:
10
},
b
.
prototype
.
refresh
=
function
(){
this
.
offsets
=
a
([]),
this
.
targets
=
a
([]);
var
b
=
this
;
this
.
$body
.
find
(
this
.
selector
).
map
(
function
(){
var
c
=
a
(
this
),
d
=
c
.
data
(
"
target
"
)
||
c
.
attr
(
"
href
"
),
e
=
/^#
\w
/
.
test
(
d
)
&&
a
(
d
);
return
e
&&
e
.
length
&&
[[
e
.
offset
().
top
+
(
!
a
.
isWindow
(
b
.
$scrollElement
.
get
(
0
))
&&
b
.
$scrollElement
.
scrollTop
()),
d
]]
||
null
}).
sort
(
function
(
a
,
b
){
return
a
[
0
]
-
b
[
0
]}).
each
(
function
(){
b
.
offsets
.
push
(
this
[
0
]),
b
.
targets
.
push
(
this
[
1
])})},
b
.
prototype
.
process
=
function
(){
var
a
,
b
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
c
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
,
d
=
c
-
this
.
$scrollElement
.
height
(),
e
=
this
.
offsets
,
f
=
this
.
targets
,
g
=
this
.
activeTarget
;
if
(
b
>=
d
)
return
g
!=
(
a
=
f
.
last
()[
0
])
&&
this
.
activate
(
a
);
for
(
a
=
e
.
length
;
a
--
;)
g
!=
f
[
a
]
&&
b
>=
e
[
a
]
&&
(
!
e
[
a
+
1
]
||
b
<=
e
[
a
+
1
])
&&
this
.
activate
(
f
[
a
])},
b
.
prototype
.
activate
=
function
(
b
){
this
.
activeTarget
=
b
,
a
(
this
.
selector
).
parents
(
"
.active
"
).
removeClass
(
"
active
"
);
var
c
=
this
.
selector
+
'
[data-target="
'
+
b
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
b
+
'
"]
'
,
d
=
a
(
c
).
parents
(
"
li
"
).
addClass
(
"
active
"
);
d
.
parent
(
"
.dropdown-menu
"
).
length
&&
(
d
=
d
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
)),
d
.
trigger
(
"
activate
"
)};
var
c
=
a
.
fn
.
scrollspy
;
a
.
fn
.
scrollspy
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.scrollspy
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.scrollspy
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
scrollspy
.
Constructor
=
b
,
a
.
fn
.
scrollspy
.
noConflict
=
function
(){
return
a
.
fn
.
scrollspy
=
c
,
this
},
a
(
window
).
on
(
"
load
"
,
function
(){
a
(
'
[data-spy="scroll"]
'
).
each
(
function
(){
var
b
=
a
(
this
);
b
.
scrollspy
(
b
.
data
())})})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
){
this
.
element
=
a
(
b
)};
b
.
prototype
.
show
=
function
(){
var
b
=
this
.
element
,
c
=
b
.
closest
(
"
ul:not(.dropdown-menu)
"
),
d
=
b
.
attr
(
"
data-target
"
);
if
(
d
||
(
d
=
b
.
attr
(
"
href
"
),
d
=
d
&&
d
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
!
b
.
parent
(
"
li
"
).
hasClass
(
"
active
"
)){
var
e
=
c
.
find
(
"
.active:last a
"
)[
0
],
f
=
a
.
Event
(
"
show.bs.tab
"
,{
relatedTarget
:
e
});
if
(
b
.
trigger
(
f
),
!
f
.
isDefaultPrevented
()){
var
g
=
a
(
d
);
this
.
activate
(
b
.
parent
(
"
li
"
),
c
),
this
.
activate
(
g
,
g
.
parent
(),
function
(){
b
.
trigger
({
type
:
"
shown.bs.tab
"
,
relatedTarget
:
e
})})}}},
b
.
prototype
.
activate
=
function
(
b
,
c
,
d
){
function
e
(){
f
.
removeClass
(
"
active
"
).
find
(
"
> .dropdown-menu > .active
"
).
removeClass
(
"
active
"
),
b
.
addClass
(
"
active
"
),
g
?(
b
[
0
].
offsetWidth
,
b
.
addClass
(
"
in
"
)):
b
.
removeClass
(
"
fade
"
),
b
.
parent
(
"
.dropdown-menu
"
)
&&
b
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
),
d
&&
d
()}
var
f
=
c
.
find
(
"
> .active
"
),
g
=
d
&&
a
.
support
.
transition
&&
f
.
hasClass
(
"
fade
"
);
g
?
f
.
one
(
a
.
support
.
transition
.
end
,
e
).
emulateTransitionEnd
(
150
):
e
(),
f
.
removeClass
(
"
in
"
)};
var
c
=
a
.
fn
.
tab
;
a
.
fn
.
tab
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.tab
"
);
e
||
d
.
data
(
"
bs.tab
"
,
e
=
new
b
(
this
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
tab
.
Constructor
=
b
,
a
.
fn
.
tab
.
noConflict
=
function
(){
return
a
.
fn
.
tab
=
c
,
this
},
a
(
document
).
on
(
"
click.bs.tab.data-api
"
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
b
){
b
.
preventDefault
(),
a
(
this
).
tab
(
"
show
"
)})}(
window
.
jQuery
),
+
function
(
a
){
"
use strict
"
;
var
b
=
function
(
c
,
d
){
this
.
options
=
a
.
extend
({},
b
.
DEFAULTS
,
d
),
this
.
$window
=
a
(
window
).
on
(
"
scroll.bs.affix.data-api
"
,
a
.
proxy
(
this
.
checkPosition
,
this
)).
on
(
"
click.bs.affix.data-api
"
,
a
.
proxy
(
this
.
checkPositionWithEventLoop
,
this
)),
this
.
$element
=
a
(
c
),
this
.
affixed
=
this
.
unpin
=
null
,
this
.
checkPosition
()};
b
.
RESET
=
"
affix affix-top affix-bottom
"
,
b
.
DEFAULTS
=
{
offset
:
0
},
b
.
prototype
.
checkPositionWithEventLoop
=
function
(){
setTimeout
(
a
.
proxy
(
this
.
checkPosition
,
this
),
1
)},
b
.
prototype
.
checkPosition
=
function
(){
if
(
this
.
$element
.
is
(
"
:visible
"
)){
var
c
=
a
(
document
).
height
(),
d
=
this
.
$window
.
scrollTop
(),
e
=
this
.
$element
.
offset
(),
f
=
this
.
options
.
offset
,
g
=
f
.
top
,
h
=
f
.
bottom
;
"
object
"
!=
typeof
f
&&
(
h
=
g
=
f
),
"
function
"
==
typeof
g
&&
(
g
=
f
.
top
()),
"
function
"
==
typeof
h
&&
(
h
=
f
.
bottom
());
var
i
=
null
!=
this
.
unpin
&&
d
+
this
.
unpin
<=
e
.
top
?
!
1
:
null
!=
h
&&
e
.
top
+
this
.
$element
.
height
()
>=
c
-
h
?
"
bottom
"
:
null
!=
g
&&
g
>=
d
?
"
top
"
:
!
1
;
this
.
affixed
!==
i
&&
(
this
.
unpin
&&
this
.
$element
.
css
(
"
top
"
,
""
),
this
.
affixed
=
i
,
this
.
unpin
=
"
bottom
"
==
i
?
e
.
top
-
d
:
null
,
this
.
$element
.
removeClass
(
b
.
RESET
).
addClass
(
"
affix
"
+
(
i
?
"
-
"
+
i
:
""
)),
"
bottom
"
==
i
&&
this
.
$element
.
offset
({
top
:
document
.
body
.
offsetHeight
-
h
-
this
.
$element
.
height
()}))}};
var
c
=
a
.
fn
.
affix
;
a
.
fn
.
affix
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
bs.affix
"
),
f
=
"
object
"
==
typeof
c
&&
c
;
e
||
d
.
data
(
"
bs.affix
"
,
e
=
new
b
(
this
,
f
)),
"
string
"
==
typeof
c
&&
e
[
c
]()})},
a
.
fn
.
affix
.
Constructor
=
b
,
a
.
fn
.
affix
.
noConflict
=
function
(){
return
a
.
fn
.
affix
=
c
,
this
},
a
(
window
).
on
(
"
load
"
,
function
(){
a
(
'
[data-spy="affix"]
'
).
each
(
function
(){
var
b
=
a
(
this
),
c
=
b
.
data
();
c
.
offset
=
c
.
offset
||
{},
c
.
offsetBottom
&&
(
c
.
offset
.
bottom
=
c
.
offsetBottom
),
c
.
offsetTop
&&
(
c
.
offset
.
top
=
c
.
offsetTop
),
b
.
affix
(
c
)})})}(
window
.
jQuery
);
\ No newline at end of file
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