Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Commits
6cf9906a
Commit
6cf9906a
authored
12 years ago
by
Jacob Thornton
Browse files
Options
Download
Email Patches
Plain Diff
build bootstrap.js and bootstrap.min.js into docs
parent
b67a2d8a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
Makefile
+5
-0
Makefile
docs/assets/js/bootstrap.js
+1813
-0
docs/assets/js/bootstrap.js
docs/assets/js/bootstrap.min.js
+6
-0
docs/assets/js/bootstrap.min.js
with
1824 additions
and
0 deletions
+1824
-0
Makefile
+
5
-
0
View file @
6cf9906a
...
...
@@ -16,6 +16,11 @@ docs:
cp
img/
*
docs/assets/img/
cp
js/
*
.js docs/assets/js/
cp
js/tests/vendor/jquery.js docs/assets/js/
cat
js/bootstrap-transition.js js/bootstrap-alert.js js/bootstrap-button.js js/bootstrap-carousel.js js/bootstrap-collapse.js js/bootstrap-dropdown.js js/bootstrap-modal.js js/bootstrap-tooltip.js js/bootstrap-popover.js js/bootstrap-scrollspy.js js/bootstrap-tab.js js/bootstrap-typeahead.js
>
docs/assets/js/bootstrap.js
uglifyjs
-nc
docs/assets/js/bootstrap.js
>
docs/assets/js/bootstrap.min.tmp.js
echo
"/**
\n
* Bootstrap.js by @fat & @mdo
\n
* Copyright 2012 Twitter, Inc.
\n
* http://www.apache.org/licenses/LICENSE-2.0.txt
\n
*/"
>
docs/assets/js/copyright.js
cat
docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js
>
docs/assets/js/bootstrap.min.js
rm
docs/assets/js/copyright.js docs/assets/js/bootstrap.min.tmp.js
#
# BUILD SIMPLE BOOTSTRAP DIRECTORY
...
...
This diff is collapsed.
Click to expand it.
docs/assets/js/bootstrap.js
0 → 100644
+
1813
-
0
View file @
6cf9906a
/* ===================================================
* bootstrap-transition.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#transitions
* ===================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!
function
(
$
)
{
$
(
function
()
{
"
use strict
"
;
// jshint ;_;
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
* ======================================================= */
$
.
support
.
transition
=
(
function
()
{
var
transitionEnd
=
(
function
()
{
var
el
=
document
.
createElement
(
'
bootstrap
'
)
,
transEndEventNames
=
{
'
WebkitTransition
'
:
'
webkitTransitionEnd
'
,
'
MozTransition
'
:
'
transitionend
'
,
'
OTransition
'
:
'
oTransitionEnd
'
,
'
msTransition
'
:
'
MSTransitionEnd
'
,
'
transition
'
:
'
transitionend
'
}
,
name
for
(
name
in
transEndEventNames
){
if
(
el
.
style
[
name
]
!==
undefined
)
{
return
transEndEventNames
[
name
]
}
}
}())
return
transitionEnd
&&
{
end
:
transitionEnd
}
})()
})
}(
window
.
jQuery
);
/* ==========================================================
* bootstrap-alert.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#alerts
* ==========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* ALERT CLASS DEFINITION
* ====================== */
var
dismiss
=
'
[data-dismiss="alert"]
'
,
Alert
=
function
(
el
)
{
$
(
el
).
on
(
'
click
'
,
dismiss
,
this
.
close
)
}
Alert
.
prototype
.
close
=
function
(
e
)
{
var
$this
=
$
(
this
)
,
selector
=
$this
.
attr
(
'
data-target
'
)
,
$parent
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
$parent
=
$
(
selector
)
e
&&
e
.
preventDefault
()
$parent
.
length
||
(
$parent
=
$this
.
hasClass
(
'
alert
'
)
?
$this
:
$this
.
parent
())
$parent
.
trigger
(
e
=
$
.
Event
(
'
close
'
))
if
(
e
.
isDefaultPrevented
())
return
$parent
.
removeClass
(
'
in
'
)
function
removeElement
()
{
$parent
.
trigger
(
'
closed
'
)
.
remove
()
}
$
.
support
.
transition
&&
$parent
.
hasClass
(
'
fade
'
)
?
$parent
.
on
(
$
.
support
.
transition
.
end
,
removeElement
)
:
removeElement
()
}
/* ALERT PLUGIN DEFINITION
* ======================= */
$
.
fn
.
alert
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
alert
'
)
if
(
!
data
)
$this
.
data
(
'
alert
'
,
(
data
=
new
Alert
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
].
call
(
$this
)
})
}
$
.
fn
.
alert
.
Constructor
=
Alert
/* ALERT DATA-API
* ============== */
$
(
function
()
{
$
(
'
body
'
).
on
(
'
click.alert.data-api
'
,
dismiss
,
Alert
.
prototype
.
close
)
})
}(
window
.
jQuery
);
/* ============================================================
* bootstrap-button.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#buttons
* ============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* BUTTON PUBLIC CLASS DEFINITION
* ============================== */
var
Button
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
$
.
extend
({},
$
.
fn
.
button
.
defaults
,
options
)
}
Button
.
prototype
.
setState
=
function
(
state
)
{
var
d
=
'
disabled
'
,
$el
=
this
.
$element
,
data
=
$el
.
data
()
,
val
=
$el
.
is
(
'
input
'
)
?
'
val
'
:
'
html
'
state
=
state
+
'
Text
'
data
.
resetText
||
$el
.
data
(
'
resetText
'
,
$el
[
val
]())
$el
[
val
](
data
[
state
]
||
this
.
options
[
state
])
// push to event loop to allow forms to submit
setTimeout
(
function
()
{
state
==
'
loadingText
'
?
$el
.
addClass
(
d
).
attr
(
d
,
d
)
:
$el
.
removeClass
(
d
).
removeAttr
(
d
)
},
0
)
}
Button
.
prototype
.
toggle
=
function
()
{
var
$parent
=
this
.
$element
.
parent
(
'
[data-toggle="buttons-radio"]
'
)
$parent
&&
$parent
.
find
(
'
.active
'
)
.
removeClass
(
'
active
'
)
this
.
$element
.
toggleClass
(
'
active
'
)
}
/* BUTTON PLUGIN DEFINITION
* ======================== */
$
.
fn
.
button
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
button
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
button
'
,
(
data
=
new
Button
(
this
,
options
)))
if
(
option
==
'
toggle
'
)
data
.
toggle
()
else
if
(
option
)
data
.
setState
(
option
)
})
}
$
.
fn
.
button
.
defaults
=
{
loadingText
:
'
loading...
'
}
$
.
fn
.
button
.
Constructor
=
Button
/* BUTTON DATA-API
* =============== */
$
(
function
()
{
$
(
'
body
'
).
on
(
'
click.button.data-api
'
,
'
[data-toggle^=button]
'
,
function
(
e
)
{
var
$btn
=
$
(
e
.
target
)
if
(
!
$btn
.
hasClass
(
'
btn
'
))
$btn
=
$btn
.
closest
(
'
.btn
'
)
$btn
.
button
(
'
toggle
'
)
})
})
}(
window
.
jQuery
);
/* ==========================================================
* bootstrap-carousel.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#carousel
* ==========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* CAROUSEL CLASS DEFINITION
* ========================= */
var
Carousel
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
options
this
.
options
.
slide
&&
this
.
slide
(
this
.
options
.
slide
)
this
.
options
.
pause
==
'
hover
'
&&
this
.
$element
.
on
(
'
mouseenter
'
,
$
.
proxy
(
this
.
pause
,
this
))
.
on
(
'
mouseleave
'
,
$
.
proxy
(
this
.
cycle
,
this
))
}
Carousel
.
prototype
=
{
cycle
:
function
(
e
)
{
if
(
!
e
)
this
.
paused
=
false
this
.
options
.
interval
&&
!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
$
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
))
return
this
}
,
to
:
function
(
pos
)
{
var
$active
=
this
.
$element
.
find
(
'
.active
'
)
,
children
=
$active
.
parent
().
children
()
,
activePos
=
children
.
index
(
$active
)
,
that
=
this
if
(
pos
>
(
children
.
length
-
1
)
||
pos
<
0
)
return
if
(
this
.
sliding
)
{
return
this
.
$element
.
one
(
'
slid
'
,
function
()
{
that
.
to
(
pos
)
})
}
if
(
activePos
==
pos
)
{
return
this
.
pause
().
cycle
()
}
return
this
.
slide
(
pos
>
activePos
?
'
next
'
:
'
prev
'
,
$
(
children
[
pos
]))
}
,
pause
:
function
(
e
)
{
if
(
!
e
)
this
.
paused
=
true
clearInterval
(
this
.
interval
)
this
.
interval
=
null
return
this
}
,
next
:
function
()
{
if
(
this
.
sliding
)
return
return
this
.
slide
(
'
next
'
)
}
,
prev
:
function
()
{
if
(
this
.
sliding
)
return
return
this
.
slide
(
'
prev
'
)
}
,
slide
:
function
(
type
,
next
)
{
var
$active
=
this
.
$element
.
find
(
'
.active
'
)
,
$next
=
next
||
$active
[
type
]()
,
isCycling
=
this
.
interval
,
direction
=
type
==
'
next
'
?
'
left
'
:
'
right
'
,
fallback
=
type
==
'
next
'
?
'
first
'
:
'
last
'
,
that
=
this
,
e
=
$
.
Event
(
'
slide
'
)
this
.
sliding
=
true
isCycling
&&
this
.
pause
()
$next
=
$next
.
length
?
$next
:
this
.
$element
.
find
(
'
.item
'
)[
fallback
]()
if
(
$next
.
hasClass
(
'
active
'
))
return
if
(
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
slide
'
))
{
this
.
$element
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
$next
.
addClass
(
type
)
$next
[
0
].
offsetWidth
// force reflow
$active
.
addClass
(
direction
)
$next
.
addClass
(
direction
)
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
$next
.
removeClass
([
type
,
direction
].
join
(
'
'
)).
addClass
(
'
active
'
)
$active
.
removeClass
([
'
active
'
,
direction
].
join
(
'
'
))
that
.
sliding
=
false
setTimeout
(
function
()
{
that
.
$element
.
trigger
(
'
slid
'
)
},
0
)
})
}
else
{
this
.
$element
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
$active
.
removeClass
(
'
active
'
)
$next
.
addClass
(
'
active
'
)
this
.
sliding
=
false
this
.
$element
.
trigger
(
'
slid
'
)
}
isCycling
&&
this
.
cycle
()
return
this
}
}
/* CAROUSEL PLUGIN DEFINITION
* ========================== */
$
.
fn
.
carousel
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
carousel
'
)
,
options
=
$
.
extend
({},
$
.
fn
.
carousel
.
defaults
,
typeof
option
==
'
object
'
&&
option
)
if
(
!
data
)
$this
.
data
(
'
carousel
'
,
(
data
=
new
Carousel
(
this
,
options
)))
if
(
typeof
option
==
'
number
'
)
data
.
to
(
option
)
else
if
(
typeof
option
==
'
string
'
||
(
option
=
options
.
slide
))
data
[
option
]()
else
if
(
options
.
interval
)
data
.
cycle
()
})
}
$
.
fn
.
carousel
.
defaults
=
{
interval
:
5000
,
pause
:
'
hover
'
}
$
.
fn
.
carousel
.
Constructor
=
Carousel
/* CAROUSEL DATA-API
* ================= */
$
(
function
()
{
$
(
'
body
'
).
on
(
'
click.carousel.data-api
'
,
'
[data-slide]
'
,
function
(
e
)
{
var
$this
=
$
(
this
),
href
,
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
=
$this
.
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
))
//strip for ie7
,
options
=
!
$target
.
data
(
'
modal
'
)
&&
$
.
extend
({},
$target
.
data
(),
$this
.
data
())
$target
.
carousel
(
options
)
e
.
preventDefault
()
})
})
}(
window
.
jQuery
);
/* =============================================================
* bootstrap-collapse.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#collapse
* =============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* COLLAPSE PUBLIC CLASS DEFINITION
* ================================ */
var
Collapse
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
$
.
extend
({},
$
.
fn
.
collapse
.
defaults
,
options
)
if
(
this
.
options
.
parent
)
{
this
.
$parent
=
$
(
this
.
options
.
parent
)
}
this
.
options
.
toggle
&&
this
.
toggle
()
}
Collapse
.
prototype
=
{
constructor
:
Collapse
,
dimension
:
function
()
{
var
hasWidth
=
this
.
$element
.
hasClass
(
'
width
'
)
return
hasWidth
?
'
width
'
:
'
height
'
}
,
show
:
function
()
{
var
dimension
,
scroll
,
actives
,
hasData
if
(
this
.
transitioning
)
return
dimension
=
this
.
dimension
()
scroll
=
$
.
camelCase
([
'
scroll
'
,
dimension
].
join
(
'
-
'
))
actives
=
this
.
$parent
&&
this
.
$parent
.
find
(
'
> .accordion-group > .in
'
)
if
(
actives
&&
actives
.
length
)
{
hasData
=
actives
.
data
(
'
collapse
'
)
if
(
hasData
&&
hasData
.
transitioning
)
return
actives
.
collapse
(
'
hide
'
)
hasData
||
actives
.
data
(
'
collapse
'
,
null
)
}
this
.
$element
[
dimension
](
0
)
this
.
transition
(
'
addClass
'
,
$
.
Event
(
'
show
'
),
'
shown
'
)
this
.
$element
[
dimension
](
this
.
$element
[
0
][
scroll
])
}
,
hide
:
function
()
{
var
dimension
if
(
this
.
transitioning
)
return
dimension
=
this
.
dimension
()
this
.
reset
(
this
.
$element
[
dimension
]())
this
.
transition
(
'
removeClass
'
,
$
.
Event
(
'
hide
'
),
'
hidden
'
)
this
.
$element
[
dimension
](
0
)
}
,
reset
:
function
(
size
)
{
var
dimension
=
this
.
dimension
()
this
.
$element
.
removeClass
(
'
collapse
'
)
[
dimension
](
size
||
'
auto
'
)
[
0
].
offsetWidth
this
.
$element
[
size
!==
null
?
'
addClass
'
:
'
removeClass
'
](
'
collapse
'
)
return
this
}
,
transition
:
function
(
method
,
startEvent
,
completeEvent
)
{
var
that
=
this
,
complete
=
function
()
{
if
(
startEvent
==
'
show
'
)
that
.
reset
()
that
.
transitioning
=
0
that
.
$element
.
trigger
(
completeEvent
)
}
this
.
$element
.
trigger
(
startEvent
)
if
(
startEvent
.
isDefaultPrevented
())
return
this
.
transitioning
=
1
this
.
$element
[
method
](
'
in
'
)
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
collapse
'
)
?
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
complete
)
:
complete
()
}
,
toggle
:
function
()
{
this
[
this
.
$element
.
hasClass
(
'
in
'
)
?
'
hide
'
:
'
show
'
]()
}
}
/* COLLAPSIBLE PLUGIN DEFINITION
* ============================== */
$
.
fn
.
collapse
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
collapse
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
collapse
'
,
(
data
=
new
Collapse
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
collapse
.
defaults
=
{
toggle
:
true
}
$
.
fn
.
collapse
.
Constructor
=
Collapse
/* COLLAPSIBLE DATA-API
* ==================== */
$
(
function
()
{
$
(
'
body
'
).
on
(
'
click.collapse.data-api
'
,
'
[data-toggle=collapse]
'
,
function
(
e
)
{
var
$this
=
$
(
this
),
href
,
target
=
$this
.
attr
(
'
data-target
'
)
||
e
.
preventDefault
()
||
(
href
=
$this
.
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)
//strip for ie7
,
option
=
$
(
target
).
data
(
'
collapse
'
)
?
'
toggle
'
:
$this
.
data
()
$
(
target
).
collapse
(
option
)
})
})
}(
window
.
jQuery
);
/* ============================================================
* bootstrap-dropdown.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
* ============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* DROPDOWN CLASS DEFINITION
* ========================= */
var
toggle
=
'
[data-toggle="dropdown"]
'
,
Dropdown
=
function
(
element
)
{
var
$el
=
$
(
element
).
on
(
'
click.dropdown.data-api
'
,
this
.
toggle
)
$
(
'
html
'
).
on
(
'
click.dropdown.data-api
'
,
function
()
{
$el
.
parent
().
removeClass
(
'
open
'
)
})
}
Dropdown
.
prototype
=
{
constructor
:
Dropdown
,
toggle
:
function
(
e
)
{
var
$this
=
$
(
this
)
,
$parent
,
selector
,
isActive
if
(
$this
.
is
(
'
.disabled, :disabled
'
))
return
selector
=
$this
.
attr
(
'
data-target
'
)
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
$parent
=
$
(
selector
)
$parent
.
length
||
(
$parent
=
$this
.
parent
())
isActive
=
$parent
.
hasClass
(
'
open
'
)
clearMenus
()
if
(
!
isActive
)
$parent
.
toggleClass
(
'
open
'
)
return
false
}
}
function
clearMenus
()
{
$
(
toggle
).
parent
().
removeClass
(
'
open
'
)
}
/* DROPDOWN PLUGIN DEFINITION
* ========================== */
$
.
fn
.
dropdown
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
dropdown
'
)
if
(
!
data
)
$this
.
data
(
'
dropdown
'
,
(
data
=
new
Dropdown
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
].
call
(
$this
)
})
}
$
.
fn
.
dropdown
.
Constructor
=
Dropdown
/* APPLY TO STANDARD DROPDOWN ELEMENTS
* =================================== */
$
(
function
()
{
$
(
'
html
'
).
on
(
'
click.dropdown.data-api
'
,
clearMenus
)
$
(
'
body
'
)
.
on
(
'
click.dropdown
'
,
'
.dropdown form
'
,
function
(
e
)
{
e
.
stopPropagation
()
})
.
on
(
'
click.dropdown.data-api
'
,
toggle
,
Dropdown
.
prototype
.
toggle
)
})
}(
window
.
jQuery
);
/* =========================================================
* bootstrap-modal.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#modals
* =========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================= */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* MODAL CLASS DEFINITION
* ====================== */
var
Modal
=
function
(
content
,
options
)
{
this
.
options
=
options
this
.
$element
=
$
(
content
)
.
delegate
(
'
[data-dismiss="modal"]
'
,
'
click.dismiss.modal
'
,
$
.
proxy
(
this
.
hide
,
this
))
}
Modal
.
prototype
=
{
constructor
:
Modal
,
toggle
:
function
()
{
return
this
[
!
this
.
isShown
?
'
show
'
:
'
hide
'
]()
}
,
show
:
function
()
{
var
that
=
this
,
e
=
$
.
Event
(
'
show
'
)
this
.
$element
.
trigger
(
e
)
if
(
this
.
isShown
||
e
.
isDefaultPrevented
())
return
$
(
'
body
'
).
addClass
(
'
modal-open
'
)
this
.
isShown
=
true
escape
.
call
(
this
)
backdrop
.
call
(
this
,
function
()
{
var
transition
=
$
.
support
.
transition
&&
that
.
$element
.
hasClass
(
'
fade
'
)
if
(
!
that
.
$element
.
parent
().
length
)
{
that
.
$element
.
appendTo
(
document
.
body
)
//don't move modals dom position
}
that
.
$element
.
show
()
if
(
transition
)
{
that
.
$element
[
0
].
offsetWidth
// force reflow
}
that
.
$element
.
addClass
(
'
in
'
)
transition
?
that
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
that
.
$element
.
trigger
(
'
shown
'
)
})
:
that
.
$element
.
trigger
(
'
shown
'
)
})
}
,
hide
:
function
(
e
)
{
e
&&
e
.
preventDefault
()
var
that
=
this
e
=
$
.
Event
(
'
hide
'
)
this
.
$element
.
trigger
(
e
)
if
(
!
this
.
isShown
||
e
.
isDefaultPrevented
())
return
this
.
isShown
=
false
$
(
'
body
'
).
removeClass
(
'
modal-open
'
)
escape
.
call
(
this
)
this
.
$element
.
removeClass
(
'
in
'
)
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
hideWithTransition
.
call
(
this
)
:
hideModal
.
call
(
this
)
}
}
/* MODAL PRIVATE METHODS
* ===================== */
function
hideWithTransition
()
{
var
that
=
this
,
timeout
=
setTimeout
(
function
()
{
that
.
$element
.
off
(
$
.
support
.
transition
.
end
)
hideModal
.
call
(
that
)
},
500
)
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
clearTimeout
(
timeout
)
hideModal
.
call
(
that
)
})
}
function
hideModal
(
that
)
{
this
.
$element
.
hide
()
.
trigger
(
'
hidden
'
)
backdrop
.
call
(
this
)
}
function
backdrop
(
callback
)
{
var
that
=
this
,
animate
=
this
.
$element
.
hasClass
(
'
fade
'
)
?
'
fade
'
:
''
if
(
this
.
isShown
&&
this
.
options
.
backdrop
)
{
var
doAnimate
=
$
.
support
.
transition
&&
animate
this
.
$backdrop
=
$
(
'
<div class="modal-backdrop
'
+
animate
+
'
" />
'
)
.
appendTo
(
document
.
body
)
if
(
this
.
options
.
backdrop
!=
'
static
'
)
{
this
.
$backdrop
.
click
(
$
.
proxy
(
this
.
hide
,
this
))
}
if
(
doAnimate
)
this
.
$backdrop
[
0
].
offsetWidth
// force reflow
this
.
$backdrop
.
addClass
(
'
in
'
)
doAnimate
?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
)
:
callback
()
}
else
if
(
!
this
.
isShown
&&
this
.
$backdrop
)
{
this
.
$backdrop
.
removeClass
(
'
in
'
)
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
$
.
proxy
(
removeBackdrop
,
this
))
:
removeBackdrop
.
call
(
this
)
}
else
if
(
callback
)
{
callback
()
}
}
function
removeBackdrop
()
{
this
.
$backdrop
.
remove
()
this
.
$backdrop
=
null
}
function
escape
()
{
var
that
=
this
if
(
this
.
isShown
&&
this
.
options
.
keyboard
)
{
$
(
document
).
on
(
'
keyup.dismiss.modal
'
,
function
(
e
)
{
e
.
which
==
27
&&
that
.
hide
()
})
}
else
if
(
!
this
.
isShown
)
{
$
(
document
).
off
(
'
keyup.dismiss.modal
'
)
}
}
/* MODAL PLUGIN DEFINITION
* ======================= */
$
.
fn
.
modal
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
modal
'
)
,
options
=
$
.
extend
({},
$
.
fn
.
modal
.
defaults
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
if
(
!
data
)
$this
.
data
(
'
modal
'
,
(
data
=
new
Modal
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
else
if
(
options
.
show
)
data
.
show
()
})
}
$
.
fn
.
modal
.
defaults
=
{
backdrop
:
true
,
keyboard
:
true
,
show
:
true
}
$
.
fn
.
modal
.
Constructor
=
Modal
/* MODAL DATA-API
* ============== */
$
(
function
()
{
$
(
'
body
'
).
on
(
'
click.modal.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
),
href
,
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
=
$this
.
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
))
//strip for ie7
,
option
=
$target
.
data
(
'
modal
'
)
?
'
toggle
'
:
$
.
extend
({},
$target
.
data
(),
$this
.
data
())
e
.
preventDefault
()
$target
.
modal
(
option
)
})
})
}(
window
.
jQuery
);
/* ===========================================================
* bootstrap-tooltip.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#tooltips
* Inspired by the original jQuery.tipsy by Jason Frame
* ===========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* TOOLTIP PUBLIC CLASS DEFINITION
* =============================== */
var
Tooltip
=
function
(
element
,
options
)
{
this
.
init
(
'
tooltip
'
,
element
,
options
)
}
Tooltip
.
prototype
=
{
constructor
:
Tooltip
,
init
:
function
(
type
,
element
,
options
)
{
var
eventIn
,
eventOut
this
.
type
=
type
this
.
$element
=
$
(
element
)
this
.
options
=
this
.
getOptions
(
options
)
this
.
enabled
=
true
if
(
this
.
options
.
trigger
!=
'
manual
'
)
{
eventIn
=
this
.
options
.
trigger
==
'
hover
'
?
'
mouseenter
'
:
'
focus
'
eventOut
=
this
.
options
.
trigger
==
'
hover
'
?
'
mouseleave
'
:
'
blur
'
this
.
$element
.
on
(
eventIn
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
enter
,
this
))
this
.
$element
.
on
(
eventOut
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
leave
,
this
))
}
this
.
options
.
selector
?
(
this
.
_options
=
$
.
extend
({},
this
.
options
,
{
trigger
:
'
manual
'
,
selector
:
''
}))
:
this
.
fixTitle
()
}
,
getOptions
:
function
(
options
)
{
options
=
$
.
extend
({},
$
.
fn
[
this
.
type
].
defaults
,
options
,
this
.
$element
.
data
())
if
(
options
.
delay
&&
typeof
options
.
delay
==
'
number
'
)
{
options
.
delay
=
{
show
:
options
.
delay
,
hide
:
options
.
delay
}
}
return
options
}
,
enter
:
function
(
e
)
{
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
)
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
show
)
return
self
.
show
()
clearTimeout
(
this
.
timeout
)
self
.
hoverState
=
'
in
'
this
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
in
'
)
self
.
show
()
},
self
.
options
.
delay
.
show
)
}
,
leave
:
function
(
e
)
{
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
)
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
hide
)
return
self
.
hide
()
clearTimeout
(
this
.
timeout
)
self
.
hoverState
=
'
out
'
this
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
out
'
)
self
.
hide
()
},
self
.
options
.
delay
.
hide
)
}
,
show
:
function
()
{
var
$tip
,
inside
,
pos
,
actualWidth
,
actualHeight
,
placement
,
tp
if
(
this
.
hasContent
()
&&
this
.
enabled
)
{
$tip
=
this
.
tip
()
this
.
setContent
()
if
(
this
.
options
.
animation
)
{
$tip
.
addClass
(
'
fade
'
)
}
placement
=
typeof
this
.
options
.
placement
==
'
function
'
?
this
.
options
.
placement
.
call
(
this
,
$tip
[
0
],
this
.
$element
[
0
])
:
this
.
options
.
placement
inside
=
/in/
.
test
(
placement
)
$tip
.
remove
()
.
css
({
top
:
0
,
left
:
0
,
display
:
'
block
'
})
.
appendTo
(
inside
?
this
.
$element
:
document
.
body
)
pos
=
this
.
getPosition
(
inside
)
actualWidth
=
$tip
[
0
].
offsetWidth
actualHeight
=
$tip
[
0
].
offsetHeight
switch
(
inside
?
placement
.
split
(
'
'
)[
1
]
:
placement
)
{
case
'
bottom
'
:
tp
=
{
top
:
pos
.
top
+
pos
.
height
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
}
break
case
'
top
'
:
tp
=
{
top
:
pos
.
top
-
actualHeight
,
left
:
pos
.
left
+
pos
.
width
/
2
-
actualWidth
/
2
}
break
case
'
left
'
:
tp
=
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
-
actualWidth
}
break
case
'
right
'
:
tp
=
{
top
:
pos
.
top
+
pos
.
height
/
2
-
actualHeight
/
2
,
left
:
pos
.
left
+
pos
.
width
}
break
}
$tip
.
css
(
tp
)
.
addClass
(
placement
)
.
addClass
(
'
in
'
)
}
}
,
isHTML
:
function
(
text
)
{
// html string detection logic adapted from jQuery
return
typeof
text
!=
'
string
'
||
(
text
.
charAt
(
0
)
===
"
<
"
&&
text
.
charAt
(
text
.
length
-
1
)
===
"
>
"
&&
text
.
length
>=
3
)
||
/^
(?:[^
<
]
*<
[\w\W]
+>
[^
>
]
*$
)
/
.
exec
(
text
)
}
,
setContent
:
function
()
{
var
$tip
=
this
.
tip
()
,
title
=
this
.
getTitle
()
$tip
.
find
(
'
.tooltip-inner
'
)[
this
.
isHTML
(
title
)
?
'
html
'
:
'
text
'
](
title
)
$tip
.
removeClass
(
'
fade in top bottom left right
'
)
}
,
hide
:
function
()
{
var
that
=
this
,
$tip
=
this
.
tip
()
$tip
.
removeClass
(
'
in
'
)
function
removeWithAnimation
()
{
var
timeout
=
setTimeout
(
function
()
{
$tip
.
off
(
$
.
support
.
transition
.
end
).
remove
()
},
500
)
$tip
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
clearTimeout
(
timeout
)
$tip
.
remove
()
})
}
$
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
'
fade
'
)
?
removeWithAnimation
()
:
$tip
.
remove
()
}
,
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
'
)
||
''
).
removeAttr
(
'
title
'
)
}
}
,
hasContent
:
function
()
{
return
this
.
getTitle
()
}
,
getPosition
:
function
(
inside
)
{
return
$
.
extend
({},
(
inside
?
{
top
:
0
,
left
:
0
}
:
this
.
$element
.
offset
()),
{
width
:
this
.
$element
[
0
].
offsetWidth
,
height
:
this
.
$element
[
0
].
offsetHeight
})
}
,
getTitle
:
function
()
{
var
title
,
$e
=
this
.
$element
,
o
=
this
.
options
title
=
$e
.
attr
(
'
data-original-title
'
)
||
(
typeof
o
.
title
==
'
function
'
?
o
.
title
.
call
(
$e
[
0
])
:
o
.
title
)
return
title
}
,
tip
:
function
()
{
return
this
.
$tip
=
this
.
$tip
||
$
(
this
.
options
.
template
)
}
,
validate
:
function
()
{
if
(
!
this
.
$element
[
0
].
parentNode
)
{
this
.
hide
()
this
.
$element
=
null
this
.
options
=
null
}
}
,
enable
:
function
()
{
this
.
enabled
=
true
}
,
disable
:
function
()
{
this
.
enabled
=
false
}
,
toggleEnabled
:
function
()
{
this
.
enabled
=
!
this
.
enabled
}
,
toggle
:
function
()
{
this
[
this
.
tip
().
hasClass
(
'
in
'
)
?
'
hide
'
:
'
show
'
]()
}
}
/* TOOLTIP PLUGIN DEFINITION
* ========================= */
$
.
fn
.
tooltip
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
tooltip
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
tooltip
'
,
(
data
=
new
Tooltip
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
tooltip
.
Constructor
=
Tooltip
$
.
fn
.
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
'
,
title
:
''
,
delay
:
0
}
}(
window
.
jQuery
);
/* ===========================================================
* bootstrap-popover.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#popovers
* ===========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* =========================================================== */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* POPOVER PUBLIC CLASS DEFINITION
* =============================== */
var
Popover
=
function
(
element
,
options
)
{
this
.
init
(
'
popover
'
,
element
,
options
)
}
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
========================================== */
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
,
{
constructor
:
Popover
,
setContent
:
function
()
{
var
$tip
=
this
.
tip
()
,
title
=
this
.
getTitle
()
,
content
=
this
.
getContent
()
$tip
.
find
(
'
.popover-title
'
)[
this
.
isHTML
(
title
)
?
'
html
'
:
'
text
'
](
title
)
$tip
.
find
(
'
.popover-content > *
'
)[
this
.
isHTML
(
content
)
?
'
html
'
:
'
text
'
](
content
)
$tip
.
removeClass
(
'
fade top bottom left right in
'
)
}
,
hasContent
:
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
}
,
getContent
:
function
()
{
var
content
,
$e
=
this
.
$element
,
o
=
this
.
options
content
=
$e
.
attr
(
'
data-content
'
)
||
(
typeof
o
.
content
==
'
function
'
?
o
.
content
.
call
(
$e
[
0
])
:
o
.
content
)
return
content
}
,
tip
:
function
()
{
if
(
!
this
.
$tip
)
{
this
.
$tip
=
$
(
this
.
options
.
template
)
}
return
this
.
$tip
}
})
/* POPOVER PLUGIN DEFINITION
* ======================= */
$
.
fn
.
popover
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
popover
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
popover
'
,
(
data
=
new
Popover
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
popover
.
Constructor
=
Popover
$
.
fn
.
popover
.
defaults
=
$
.
extend
({}
,
$
.
fn
.
tooltip
.
defaults
,
{
placement
:
'
right
'
,
content
:
''
,
template
:
'
<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>
'
})
}(
window
.
jQuery
);
/* =============================================================
* bootstrap-scrollspy.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
* =============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================== */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* SCROLLSPY CLASS DEFINITION
* ========================== */
function
ScrollSpy
(
element
,
options
)
{
var
process
=
$
.
proxy
(
this
.
process
,
this
)
,
$element
=
$
(
element
).
is
(
'
body
'
)
?
$
(
window
)
:
$
(
element
)
,
href
this
.
options
=
$
.
extend
({},
$
.
fn
.
scrollspy
.
defaults
,
options
)
this
.
$scrollElement
=
$element
.
on
(
'
scroll.scroll.data-api
'
,
process
)
this
.
selector
=
(
this
.
options
.
target
||
((
href
=
$
(
element
).
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
))
//strip for ie7
||
''
)
+
'
.nav li > a
'
this
.
$body
=
$
(
'
body
'
).
on
(
'
click.scroll.data-api
'
,
this
.
selector
,
process
)
this
.
refresh
()
this
.
process
()
}
ScrollSpy
.
prototype
=
{
constructor
:
ScrollSpy
,
refresh
:
function
()
{
var
self
=
this
,
$targets
this
.
offsets
=
$
([])
this
.
targets
=
$
([])
$targets
=
this
.
$body
.
find
(
this
.
selector
)
.
map
(
function
()
{
var
href
=
$
(
this
).
attr
(
'
href
'
)
,
$href
=
/^#
\w
/
.
test
(
href
)
&&
$
(
href
)
return
(
$href
&&
href
.
length
&&
[[
$href
.
position
().
top
,
href
]]
)
||
null
})
.
sort
(
function
(
a
,
b
)
{
return
a
[
0
]
-
b
[
0
]
})
.
each
(
function
()
{
self
.
offsets
.
push
(
this
[
0
])
self
.
targets
.
push
(
this
[
1
])
})
}
,
process
:
function
()
{
var
scrollTop
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
scrollHeight
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
,
maxScroll
=
scrollHeight
-
this
.
$scrollElement
.
height
()
,
offsets
=
this
.
offsets
,
targets
=
this
.
targets
,
activeTarget
=
this
.
activeTarget
,
i
if
(
scrollTop
>=
maxScroll
)
{
return
activeTarget
!=
(
i
=
targets
.
last
()[
0
])
&&
this
.
activate
(
i
)
}
for
(
i
=
offsets
.
length
;
i
--
;)
{
activeTarget
!=
targets
[
i
]
&&
scrollTop
>=
offsets
[
i
]
&&
(
!
offsets
[
i
+
1
]
||
scrollTop
<=
offsets
[
i
+
1
])
&&
this
.
activate
(
targets
[
i
]
)
}
}
,
activate
:
function
(
target
)
{
var
active
this
.
activeTarget
=
target
$
(
this
.
selector
)
.
parent
(
'
.active
'
)
.
removeClass
(
'
active
'
)
active
=
$
(
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
)
.
parent
(
'
li
'
)
.
addClass
(
'
active
'
)
if
(
active
.
parent
(
'
.dropdown-menu
'
))
{
active
=
active
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
}
active
.
trigger
(
'
activate
'
)
}
}
/* SCROLLSPY PLUGIN DEFINITION
* =========================== */
$
.
fn
.
scrollspy
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
scrollspy
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
scrollspy
'
,
(
data
=
new
ScrollSpy
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
scrollspy
.
Constructor
=
ScrollSpy
$
.
fn
.
scrollspy
.
defaults
=
{
offset
:
10
}
/* SCROLLSPY DATA-API
* ================== */
$
(
function
()
{
$
(
'
[data-spy="scroll"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
$spy
.
scrollspy
(
$spy
.
data
())
})
})
}(
window
.
jQuery
);
/* ========================================================
* bootstrap-tab.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================== */
!
function
(
$
)
{
"
use strict
"
;
// jshint ;_;
/* TAB CLASS DEFINITION
* ==================== */
var
Tab
=
function
(
element
)
{
this
.
element
=
$
(
element
)
}
Tab
.
prototype
=
{
constructor
:
Tab
,
show
:
function
()
{
var
$this
=
this
.
element
,
$ul
=
$this
.
closest
(
'
ul:not(.dropdown-menu)
'
)
,
selector
=
$this
.
attr
(
'
data-target
'
)
,
previous
,
$target
,
e
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
if
(
$this
.
parent
(
'
li
'
).
hasClass
(
'
active
'
)
)
return
previous
=
$ul
.
find
(
'
.active a
'
).
last
()[
0
]
e
=
$
.
Event
(
'
show
'
,
{
relatedTarget
:
previous
})
$this
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
$target
=
$
(
selector
)
this
.
activate
(
$this
.
parent
(
'
li
'
),
$ul
)
this
.
activate
(
$target
,
$target
.
parent
(),
function
()
{
$this
.
trigger
({
type
:
'
shown
'
,
relatedTarget
:
previous
})
})
}
,
activate
:
function
(
element
,
container
,
callback
)
{
var
$active
=
container
.
find
(
'
> .active
'
)
,
transition
=
callback
&&
$
.
support
.
transition
&&
$active
.
hasClass
(
'
fade
'
)
function
next
()
{
$active
.
removeClass
(
'
active
'
)
.
find
(
'
> .dropdown-menu > .active
'
)
.
removeClass
(
'
active
'
)
element
.
addClass
(
'
active
'
)
if
(
transition
)
{
element
[
0
].
offsetWidth
// reflow for transition
element
.
addClass
(
'
in
'
)
}
else
{
element
.
removeClass
(
'
fade
'
)
}
if
(
element
.
parent
(
'
.dropdown-menu
'
)
)
{
element
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
}
callback
&&
callback
()
}
transition
?
$active
.
one
(
$
.
support
.
transition
.
end
,
next
)
:
next
()
$active
.
removeClass
(
'
in
'
)
}
}
/* TAB PLUGIN DEFINITION
* ===================== */
$
.
fn
.
tab
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
tab
'
)
if
(
!
data
)
$this
.
data
(
'
tab
'
,
(
data
=
new
Tab
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
tab
.
Constructor
=
Tab
/* TAB DATA-API
* ============ */
$
(
function
()
{
$
(
'
body
'
).
on
(
'
click.tab.data-api
'
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
e
)
{
e
.
preventDefault
()
$
(
this
).
tab
(
'
show
'
)
})
})
}(
window
.
jQuery
);
/* =============================================================
* bootstrap-typeahead.js v2.0.2
* http://twitter.github.com/bootstrap/javascript.html#typeahead
* =============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!
function
(
$
){
"
use strict
"
;
// jshint ;_;
/* TYPEAHEAD PUBLIC CLASS DEFINITION
* ================================= */
var
Typeahead
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
$
.
extend
({},
$
.
fn
.
typeahead
.
defaults
,
options
)
this
.
matcher
=
this
.
options
.
matcher
||
this
.
matcher
this
.
sorter
=
this
.
options
.
sorter
||
this
.
sorter
this
.
highlighter
=
this
.
options
.
highlighter
||
this
.
highlighter
this
.
$menu
=
$
(
this
.
options
.
menu
).
appendTo
(
'
body
'
)
this
.
source
=
this
.
options
.
source
this
.
shown
=
false
this
.
listen
()
}
Typeahead
.
prototype
=
{
constructor
:
Typeahead
,
select
:
function
()
{
var
val
=
this
.
$menu
.
find
(
'
.active
'
).
attr
(
'
data-value
'
)
this
.
$element
.
val
(
val
)
.
change
()
return
this
.
hide
()
}
,
show
:
function
()
{
var
pos
=
$
.
extend
({},
this
.
$element
.
offset
(),
{
height
:
this
.
$element
[
0
].
offsetHeight
})
this
.
$menu
.
css
({
top
:
pos
.
top
+
pos
.
height
,
left
:
pos
.
left
})
this
.
$menu
.
show
()
this
.
shown
=
true
return
this
}
,
hide
:
function
()
{
this
.
$menu
.
hide
()
this
.
shown
=
false
return
this
}
,
lookup
:
function
(
event
)
{
var
that
=
this
,
items
,
q
this
.
query
=
this
.
$element
.
val
()
if
(
!
this
.
query
)
{
return
this
.
shown
?
this
.
hide
()
:
this
}
items
=
$
.
grep
(
this
.
source
,
function
(
item
)
{
return
that
.
matcher
(
item
)
})
items
=
this
.
sorter
(
items
)
if
(
!
items
.
length
)
{
return
this
.
shown
?
this
.
hide
()
:
this
}
return
this
.
render
(
items
.
slice
(
0
,
this
.
options
.
items
)).
show
()
}
,
matcher
:
function
(
item
)
{
return
~
item
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
())
}
,
sorter
:
function
(
items
)
{
var
beginswith
=
[]
,
caseSensitive
=
[]
,
caseInsensitive
=
[]
,
item
while
(
item
=
items
.
shift
())
{
if
(
!
item
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
()))
beginswith
.
push
(
item
)
else
if
(
~
item
.
indexOf
(
this
.
query
))
caseSensitive
.
push
(
item
)
else
caseInsensitive
.
push
(
item
)
}
return
beginswith
.
concat
(
caseSensitive
,
caseInsensitive
)
}
,
highlighter
:
function
(
item
)
{
var
query
=
this
.
query
.
replace
(
/
[\-\[\]
{}()*+?.,
\\\^
$|#
\s]
/g
,
'
\\
$&
'
)
return
item
.
replace
(
new
RegExp
(
'
(
'
+
query
+
'
)
'
,
'
ig
'
),
function
(
$1
,
match
)
{
return
'
<strong>
'
+
match
+
'
</strong>
'
})
}
,
render
:
function
(
items
)
{
var
that
=
this
items
=
$
(
items
).
map
(
function
(
i
,
item
)
{
i
=
$
(
that
.
options
.
item
).
attr
(
'
data-value
'
,
item
)
i
.
find
(
'
a
'
).
html
(
that
.
highlighter
(
item
))
return
i
[
0
]
})
items
.
first
().
addClass
(
'
active
'
)
this
.
$menu
.
html
(
items
)
return
this
}
,
next
:
function
(
event
)
{
var
active
=
this
.
$menu
.
find
(
'
.active
'
).
removeClass
(
'
active
'
)
,
next
=
active
.
next
()
if
(
!
next
.
length
)
{
next
=
$
(
this
.
$menu
.
find
(
'
li
'
)[
0
])
}
next
.
addClass
(
'
active
'
)
}
,
prev
:
function
(
event
)
{
var
active
=
this
.
$menu
.
find
(
'
.active
'
).
removeClass
(
'
active
'
)
,
prev
=
active
.
prev
()
if
(
!
prev
.
length
)
{
prev
=
this
.
$menu
.
find
(
'
li
'
).
last
()
}
prev
.
addClass
(
'
active
'
)
}
,
listen
:
function
()
{
this
.
$element
.
on
(
'
blur
'
,
$
.
proxy
(
this
.
blur
,
this
))
.
on
(
'
keypress
'
,
$
.
proxy
(
this
.
keypress
,
this
))
.
on
(
'
keyup
'
,
$
.
proxy
(
this
.
keyup
,
this
))
if
(
$
.
browser
.
webkit
||
$
.
browser
.
msie
)
{
this
.
$element
.
on
(
'
keydown
'
,
$
.
proxy
(
this
.
keypress
,
this
))
}
this
.
$menu
.
on
(
'
click
'
,
$
.
proxy
(
this
.
click
,
this
))
.
on
(
'
mouseenter
'
,
'
li
'
,
$
.
proxy
(
this
.
mouseenter
,
this
))
}
,
keyup
:
function
(
e
)
{
switch
(
e
.
keyCode
)
{
case
40
:
// down arrow
case
38
:
// up arrow
break
case
9
:
// tab
case
13
:
// enter
if
(
!
this
.
shown
)
return
this
.
select
()
break
case
27
:
// escape
if
(
!
this
.
shown
)
return
this
.
hide
()
break
default
:
this
.
lookup
()
}
e
.
stopPropagation
()
e
.
preventDefault
()
}
,
keypress
:
function
(
e
)
{
if
(
!
this
.
shown
)
return
switch
(
e
.
keyCode
)
{
case
9
:
// tab
case
13
:
// enter
case
27
:
// escape
e
.
preventDefault
()
break
case
38
:
// up arrow
if
(
e
.
type
!=
'
keydown
'
)
break
e
.
preventDefault
()
this
.
prev
()
break
case
40
:
// down arrow
if
(
e
.
type
!=
'
keydown
'
)
break
e
.
preventDefault
()
this
.
next
()
break
}
e
.
stopPropagation
()
}
,
blur
:
function
(
e
)
{
var
that
=
this
setTimeout
(
function
()
{
that
.
hide
()
},
150
)
}
,
click
:
function
(
e
)
{
e
.
stopPropagation
()
e
.
preventDefault
()
this
.
select
()
}
,
mouseenter
:
function
(
e
)
{
this
.
$menu
.
find
(
'
.active
'
).
removeClass
(
'
active
'
)
$
(
e
.
currentTarget
).
addClass
(
'
active
'
)
}
}
/* TYPEAHEAD PLUGIN DEFINITION
* =========================== */
$
.
fn
.
typeahead
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
typeahead
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
typeahead
'
,
(
data
=
new
Typeahead
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
typeahead
.
defaults
=
{
source
:
[]
,
items
:
8
,
menu
:
'
<ul class="typeahead dropdown-menu"></ul>
'
,
item
:
'
<li><a href="#"></a></li>
'
}
$
.
fn
.
typeahead
.
Constructor
=
Typeahead
/* TYPEAHEAD DATA-API
* ================== */
$
(
function
()
{
$
(
'
body
'
).
on
(
'
focus.typeahead.data-api
'
,
'
[data-provide="typeahead"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
)
if
(
$this
.
data
(
'
typeahead
'
))
return
e
.
preventDefault
()
$this
.
typeahead
(
$this
.
data
())
})
})
}(
window
.
jQuery
);
\ No newline at end of file
This diff is collapsed.
Click to expand it.
docs/assets/js/bootstrap.min.js
0 → 100644
+
6
-
0
View file @
6cf9906a
/**
* Bootstrap.js by @fat & @mdo
* Copyright 2012 Twitter, Inc.
* http://www.apache.org/licenses/LICENSE-2.0.txt
*/
!
function
(
a
){
a
(
function
(){
"
use strict
"
,
a
.
support
.
transition
=
function
(){
var
a
=
function
(){
var
a
=
document
.
createElement
(
"
bootstrap
"
),
b
=
{
WebkitTransition
:
"
webkitTransitionEnd
"
,
MozTransition
:
"
transitionend
"
,
OTransition
:
"
oTransitionEnd
"
,
msTransition
:
"
MSTransitionEnd
"
,
transition
:
"
transitionend
"
},
c
;
for
(
c
in
b
)
if
(
a
.
style
[
c
]
!==
undefined
)
return
b
[
c
]}();
return
a
&&
{
end
:
a
}}()})}(
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
f
(){
e
.
trigger
(
"
closed
"
).
remove
()}
var
c
=
a
(
this
),
d
=
c
.
attr
(
"
data-target
"
),
e
;
d
||
(
d
=
c
.
attr
(
"
href
"
),
d
=
d
&&
d
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
e
=
a
(
d
),
b
&&
b
.
preventDefault
(),
e
.
length
||
(
e
=
c
.
hasClass
(
"
alert
"
)?
c
:
c
.
parent
()),
e
.
trigger
(
b
=
a
.
Event
(
"
close
"
));
if
(
b
.
isDefaultPrevented
())
return
;
e
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
e
.
hasClass
(
"
fade
"
)?
e
.
on
(
a
.
support
.
transition
.
end
,
f
):
f
()},
a
.
fn
.
alert
=
function
(
b
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
alert
"
);
e
||
d
.
data
(
"
alert
"
,
e
=
new
c
(
this
)),
typeof
b
==
"
string
"
&&
e
[
b
].
call
(
d
)})},
a
.
fn
.
alert
.
Constructor
=
c
,
a
(
function
(){
a
(
"
body
"
).
on
(
"
click.alert.data-api
"
,
b
,
c
.
prototype
.
close
)})}(
window
.
jQuery
),
!
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
$element
=
a
(
b
),
this
.
options
=
a
.
extend
({},
a
.
fn
.
button
.
defaults
,
c
)};
b
.
prototype
.
setState
=
function
(
a
){
var
b
=
"
disabled
"
,
c
=
this
.
$element
,
d
=
c
.
data
(),
e
=
c
.
is
(
"
input
"
)?
"
val
"
:
"
html
"
;
a
+=
"
Text
"
,
d
.
resetText
||
c
.
data
(
"
resetText
"
,
c
[
e
]()),
c
[
e
](
d
[
a
]
||
this
.
options
[
a
]),
setTimeout
(
function
(){
a
==
"
loadingText
"
?
c
.
addClass
(
b
).
attr
(
b
,
b
):
c
.
removeClass
(
b
).
removeAttr
(
b
)},
0
)},
b
.
prototype
.
toggle
=
function
(){
var
a
=
this
.
$element
.
parent
(
'
[data-toggle="buttons-radio"]
'
);
a
&&
a
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
this
.
$element
.
toggleClass
(
"
active
"
)},
a
.
fn
.
button
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
button
"
),
f
=
typeof
c
==
"
object
"
&&
c
;
e
||
d
.
data
(
"
button
"
,
e
=
new
b
(
this
,
f
)),
c
==
"
toggle
"
?
e
.
toggle
():
c
&&
e
.
setState
(
c
)})},
a
.
fn
.
button
.
defaults
=
{
loadingText
:
"
loading...
"
},
a
.
fn
.
button
.
Constructor
=
b
,
a
(
function
(){
a
(
"
body
"
).
on
(
"
click.button.data-api
"
,
"
[data-toggle^=button]
"
,
function
(
b
){
var
c
=
a
(
b
.
target
);
c
.
hasClass
(
"
btn
"
)
||
(
c
=
c
.
closest
(
"
.btn
"
)),
c
.
button
(
"
toggle
"
)})})}(
window
.
jQuery
),
!
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
$element
=
a
(
b
),
this
.
options
=
c
,
this
.
options
.
slide
&&
this
.
slide
(
this
.
options
.
slide
),
this
.
options
.
pause
==
"
hover
"
&&
this
.
$element
.
on
(
"
mouseenter
"
,
a
.
proxy
(
this
.
pause
,
this
)).
on
(
"
mouseleave
"
,
a
.
proxy
(
this
.
cycle
,
this
))};
b
.
prototype
=
{
cycle
:
function
(
b
){
return
b
||
(
this
.
paused
=!
1
),
this
.
options
.
interval
&&!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
a
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
)),
this
},
to
:
function
(
b
){
var
c
=
this
.
$element
.
find
(
"
.active
"
),
d
=
c
.
parent
().
children
(),
e
=
d
.
index
(
c
),
f
=
this
;
if
(
b
>
d
.
length
-
1
||
b
<
0
)
return
;
return
this
.
sliding
?
this
.
$element
.
one
(
"
slid
"
,
function
(){
f
.
to
(
b
)}):
e
==
b
?
this
.
pause
().
cycle
():
this
.
slide
(
b
>
e
?
"
next
"
:
"
prev
"
,
a
(
d
[
b
]))},
pause
:
function
(
a
){
return
a
||
(
this
.
paused
=!
0
),
clearInterval
(
this
.
interval
),
this
.
interval
=
null
,
this
},
next
:
function
(){
if
(
this
.
sliding
)
return
;
return
this
.
slide
(
"
next
"
)},
prev
:
function
(){
if
(
this
.
sliding
)
return
;
return
this
.
slide
(
"
prev
"
)},
slide
:
function
(
b
,
c
){
var
d
=
this
.
$element
.
find
(
"
.active
"
),
e
=
c
||
d
[
b
](),
f
=
this
.
interval
,
g
=
b
==
"
next
"
?
"
left
"
:
"
right
"
,
h
=
b
==
"
next
"
?
"
first
"
:
"
last
"
,
i
=
this
,
j
=
a
.
Event
(
"
slide
"
);
this
.
sliding
=!
0
,
f
&&
this
.
pause
(),
e
=
e
.
length
?
e
:
this
.
$element
.
find
(
"
.item
"
)[
h
]();
if
(
e
.
hasClass
(
"
active
"
))
return
;
if
(
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
slide
"
)){
this
.
$element
.
trigger
(
j
);
if
(
j
.
isDefaultPrevented
())
return
;
e
.
addClass
(
b
),
e
[
0
].
offsetWidth
,
d
.
addClass
(
g
),
e
.
addClass
(
g
),
this
.
$element
.
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
)})}
else
{
this
.
$element
.
trigger
(
j
);
if
(
j
.
isDefaultPrevented
())
return
;
d
.
removeClass
(
"
active
"
),
e
.
addClass
(
"
active
"
),
this
.
sliding
=!
1
,
this
.
$element
.
trigger
(
"
slid
"
)}
return
f
&&
this
.
cycle
(),
this
}},
a
.
fn
.
carousel
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
carousel
"
),
f
=
a
.
extend
({},
a
.
fn
.
carousel
.
defaults
,
typeof
c
==
"
object
"
&&
c
);
e
||
d
.
data
(
"
carousel
"
,
e
=
new
b
(
this
,
f
)),
typeof
c
==
"
number
"
?
e
.
to
(
c
):
typeof
c
==
"
string
"
||
(
c
=
f
.
slide
)?
e
[
c
]():
f
.
interval
&&
e
.
cycle
()})},
a
.
fn
.
carousel
.
defaults
=
{
interval
:
5
e3
,
pause
:
"
hover
"
},
a
.
fn
.
carousel
.
Constructor
=
b
,
a
(
function
(){
a
(
"
body
"
).
on
(
"
click.carousel.data-api
"
,
"
[data-slide]
"
,
function
(
b
){
var
c
=
a
(
this
),
d
,
e
=
a
(
c
.
attr
(
"
data-target
"
)
||
(
d
=
c
.
attr
(
"
href
"
))
&&
d
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
f
=!
e
.
data
(
"
modal
"
)
&&
a
.
extend
({},
e
.
data
(),
c
.
data
());
e
.
carousel
(
f
),
b
.
preventDefault
()})})}(
window
.
jQuery
),
!
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
$element
=
a
(
b
),
this
.
options
=
a
.
extend
({},
a
.
fn
.
collapse
.
defaults
,
c
),
this
.
options
.
parent
&&
(
this
.
$parent
=
a
(
this
.
options
.
parent
)),
this
.
options
.
toggle
&&
this
.
toggle
()};
b
.
prototype
=
{
constructor
:
b
,
dimension
:
function
(){
var
a
=
this
.
$element
.
hasClass
(
"
width
"
);
return
a
?
"
width
"
:
"
height
"
},
show
:
function
(){
var
b
,
c
,
d
,
e
;
if
(
this
.
transitioning
)
return
;
b
=
this
.
dimension
(),
c
=
a
.
camelCase
([
"
scroll
"
,
b
].
join
(
"
-
"
)),
d
=
this
.
$parent
&&
this
.
$parent
.
find
(
"
> .accordion-group > .in
"
);
if
(
d
&&
d
.
length
){
e
=
d
.
data
(
"
collapse
"
);
if
(
e
&&
e
.
transitioning
)
return
;
d
.
collapse
(
"
hide
"
),
e
||
d
.
data
(
"
collapse
"
,
null
)}
this
.
$element
[
b
](
0
),
this
.
transition
(
"
addClass
"
,
a
.
Event
(
"
show
"
),
"
shown
"
),
this
.
$element
[
b
](
this
.
$element
[
0
][
c
])},
hide
:
function
(){
var
b
;
if
(
this
.
transitioning
)
return
;
b
=
this
.
dimension
(),
this
.
reset
(
this
.
$element
[
b
]()),
this
.
transition
(
"
removeClass
"
,
a
.
Event
(
"
hide
"
),
"
hidden
"
),
this
.
$element
[
b
](
0
)},
reset
:
function
(
a
){
var
b
=
this
.
dimension
();
return
this
.
$element
.
removeClass
(
"
collapse
"
)[
b
](
a
||
"
auto
"
)[
0
].
offsetWidth
,
this
.
$element
[
a
!==
null
?
"
addClass
"
:
"
removeClass
"
](
"
collapse
"
),
this
},
transition
:
function
(
b
,
c
,
d
){
var
e
=
this
,
f
=
function
(){
c
==
"
show
"
&&
e
.
reset
(),
e
.
transitioning
=
0
,
e
.
$element
.
trigger
(
d
)};
this
.
$element
.
trigger
(
c
);
if
(
c
.
isDefaultPrevented
())
return
;
this
.
transitioning
=
1
,
this
.
$element
[
b
](
"
in
"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
collapse
"
)?
this
.
$element
.
one
(
a
.
support
.
transition
.
end
,
f
):
f
()},
toggle
:
function
(){
this
[
this
.
$element
.
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()}},
a
.
fn
.
collapse
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
collapse
"
),
f
=
typeof
c
==
"
object
"
&&
c
;
e
||
d
.
data
(
"
collapse
"
,
e
=
new
b
(
this
,
f
)),
typeof
c
==
"
string
"
&&
e
[
c
]()})},
a
.
fn
.
collapse
.
defaults
=
{
toggle
:
!
0
},
a
.
fn
.
collapse
.
Constructor
=
b
,
a
(
function
(){
a
(
"
body
"
).
on
(
"
click.collapse.data-api
"
,
"
[data-toggle=collapse]
"
,
function
(
b
){
var
c
=
a
(
this
),
d
,
e
=
c
.
attr
(
"
data-target
"
)
||
b
.
preventDefault
()
||
(
d
=
c
.
attr
(
"
href
"
))
&&
d
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
),
f
=
a
(
e
).
data
(
"
collapse
"
)?
"
toggle
"
:
c
.
data
();
a
(
e
).
collapse
(
f
)})})}(
window
.
jQuery
),
!
function
(
a
){
function
d
(){
a
(
b
).
parent
().
removeClass
(
"
open
"
)}
"
use strict
"
;
var
b
=
'
[data-toggle="dropdown"]
'
,
c
=
function
(
b
){
var
c
=
a
(
b
).
on
(
"
click.dropdown.data-api
"
,
this
.
toggle
);
a
(
"
html
"
).
on
(
"
click.dropdown.data-api
"
,
function
(){
c
.
parent
().
removeClass
(
"
open
"
)})};
c
.
prototype
=
{
constructor
:
c
,
toggle
:
function
(
b
){
var
c
=
a
(
this
),
e
,
f
,
g
;
if
(
c
.
is
(
"
.disabled, :disabled
"
))
return
;
return
f
=
c
.
attr
(
"
data-target
"
),
f
||
(
f
=
c
.
attr
(
"
href
"
),
f
=
f
&&
f
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
e
=
a
(
f
),
e
.
length
||
(
e
=
c
.
parent
()),
g
=
e
.
hasClass
(
"
open
"
),
d
(),
g
||
e
.
toggleClass
(
"
open
"
),
!
1
}},
a
.
fn
.
dropdown
=
function
(
b
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
dropdown
"
);
e
||
d
.
data
(
"
dropdown
"
,
e
=
new
c
(
this
)),
typeof
b
==
"
string
"
&&
e
[
b
].
call
(
d
)})},
a
.
fn
.
dropdown
.
Constructor
=
c
,
a
(
function
(){
a
(
"
html
"
).
on
(
"
click.dropdown.data-api
"
,
d
),
a
(
"
body
"
).
on
(
"
click.dropdown
"
,
"
.dropdown form
"
,
function
(
a
){
a
.
stopPropagation
()}).
on
(
"
click.dropdown.data-api
"
,
b
,
c
.
prototype
.
toggle
)})}(
window
.
jQuery
),
!
function
(
a
){
function
c
(){
var
b
=
this
,
c
=
setTimeout
(
function
(){
b
.
$element
.
off
(
a
.
support
.
transition
.
end
),
d
.
call
(
b
)},
500
);
this
.
$element
.
one
(
a
.
support
.
transition
.
end
,
function
(){
clearTimeout
(
c
),
d
.
call
(
b
)})}
function
d
(
a
){
this
.
$element
.
hide
().
trigger
(
"
hidden
"
),
e
.
call
(
this
)}
function
e
(
b
){
var
c
=
this
,
d
=
this
.
$element
.
hasClass
(
"
fade
"
)?
"
fade
"
:
""
;
if
(
this
.
isShown
&&
this
.
options
.
backdrop
){
var
e
=
a
.
support
.
transition
&&
d
;
this
.
$backdrop
=
a
(
'
<div class="modal-backdrop
'
+
d
+
'
" />
'
).
appendTo
(
document
.
body
),
this
.
options
.
backdrop
!=
"
static
"
&&
this
.
$backdrop
.
click
(
a
.
proxy
(
this
.
hide
,
this
)),
e
&&
this
.
$backdrop
[
0
].
offsetWidth
,
this
.
$backdrop
.
addClass
(
"
in
"
),
e
?
this
.
$backdrop
.
one
(
a
.
support
.
transition
.
end
,
b
):
b
()}
else
!
this
.
isShown
&&
this
.
$backdrop
?(
this
.
$backdrop
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
this
.
$backdrop
.
one
(
a
.
support
.
transition
.
end
,
a
.
proxy
(
f
,
this
)):
f
.
call
(
this
)):
b
&&
b
()}
function
f
(){
this
.
$backdrop
.
remove
(),
this
.
$backdrop
=
null
}
function
g
(){
var
b
=
this
;
this
.
isShown
&&
this
.
options
.
keyboard
?
a
(
document
).
on
(
"
keyup.dismiss.modal
"
,
function
(
a
){
a
.
which
==
27
&&
b
.
hide
()}):
this
.
isShown
||
a
(
document
).
off
(
"
keyup.dismiss.modal
"
)}
"
use strict
"
;
var
b
=
function
(
b
,
c
){
this
.
options
=
c
,
this
.
$element
=
a
(
b
).
delegate
(
'
[data-dismiss="modal"]
'
,
"
click.dismiss.modal
"
,
a
.
proxy
(
this
.
hide
,
this
))};
b
.
prototype
=
{
constructor
:
b
,
toggle
:
function
(){
return
this
[
this
.
isShown
?
"
hide
"
:
"
show
"
]()},
show
:
function
(){
var
b
=
this
,
c
=
a
.
Event
(
"
show
"
);
this
.
$element
.
trigger
(
c
);
if
(
this
.
isShown
||
c
.
isDefaultPrevented
())
return
;
a
(
"
body
"
).
addClass
(
"
modal-open
"
),
this
.
isShown
=!
0
,
g
.
call
(
this
),
e
.
call
(
this
,
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
"
),
c
?
b
.
$element
.
one
(
a
.
support
.
transition
.
end
,
function
(){
b
.
$element
.
trigger
(
"
shown
"
)}):
b
.
$element
.
trigger
(
"
shown
"
)})},
hide
:
function
(
b
){
b
&&
b
.
preventDefault
();
var
e
=
this
;
b
=
a
.
Event
(
"
hide
"
),
this
.
$element
.
trigger
(
b
);
if
(
!
this
.
isShown
||
b
.
isDefaultPrevented
())
return
;
this
.
isShown
=!
1
,
a
(
"
body
"
).
removeClass
(
"
modal-open
"
),
g
.
call
(
this
),
this
.
$element
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
fade
"
)?
c
.
call
(
this
):
d
.
call
(
this
)}},
a
.
fn
.
modal
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
modal
"
),
f
=
a
.
extend
({},
a
.
fn
.
modal
.
defaults
,
d
.
data
(),
typeof
c
==
"
object
"
&&
c
);
e
||
d
.
data
(
"
modal
"
,
e
=
new
b
(
this
,
f
)),
typeof
c
==
"
string
"
?
e
[
c
]():
f
.
show
&&
e
.
show
()})},
a
.
fn
.
modal
.
defaults
=
{
backdrop
:
!
0
,
keyboard
:
!
0
,
show
:
!
0
},
a
.
fn
.
modal
.
Constructor
=
b
,
a
(
function
(){
a
(
"
body
"
).
on
(
"
click.modal.data-api
"
,
'
[data-toggle="modal"]
'
,
function
(
b
){
var
c
=
a
(
this
),
d
,
e
=
a
(
c
.
attr
(
"
data-target
"
)
||
(
d
=
c
.
attr
(
"
href
"
))
&&
d
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)),
f
=
e
.
data
(
"
modal
"
)?
"
toggle
"
:
a
.
extend
({},
e
.
data
(),
c
.
data
());
b
.
preventDefault
(),
e
.
modal
(
f
)})})}(
window
.
jQuery
),
!
function
(
a
){
"
use strict
"
;
var
b
=
function
(
a
,
b
){
this
.
init
(
"
tooltip
"
,
a
,
b
)};
b
.
prototype
=
{
constructor
:
b
,
init
:
function
(
b
,
c
,
d
){
var
e
,
f
;
this
.
type
=
b
,
this
.
$element
=
a
(
c
),
this
.
options
=
this
.
getOptions
(
d
),
this
.
enabled
=!
0
,
this
.
options
.
trigger
!=
"
manual
"
&&
(
e
=
this
.
options
.
trigger
==
"
hover
"
?
"
mouseenter
"
:
"
focus
"
,
f
=
this
.
options
.
trigger
==
"
hover
"
?
"
mouseleave
"
:
"
blur
"
,
this
.
$element
.
on
(
e
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
enter
,
this
)),
this
.
$element
.
on
(
f
,
this
.
options
.
selector
,
a
.
proxy
(
this
.
leave
,
this
))),
this
.
options
.
selector
?
this
.
_options
=
a
.
extend
({},
this
.
options
,{
trigger
:
"
manual
"
,
selector
:
""
}):
this
.
fixTitle
()},
getOptions
:
function
(
b
){
return
b
=
a
.
extend
({},
a
.
fn
[
this
.
type
].
defaults
,
b
,
this
.
$element
.
data
()),
b
.
delay
&&
typeof
b
.
delay
==
"
number
"
&&
(
b
.
delay
=
{
show
:
b
.
delay
,
hide
:
b
.
delay
}),
b
},
enter
:
function
(
b
){
var
c
=
a
(
b
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
if
(
!
c
.
options
.
delay
||!
c
.
options
.
delay
.
show
)
return
c
.
show
();
clearTimeout
(
this
.
timeout
),
c
.
hoverState
=
"
in
"
,
this
.
timeout
=
setTimeout
(
function
(){
c
.
hoverState
==
"
in
"
&&
c
.
show
()},
c
.
options
.
delay
.
show
)},
leave
:
function
(
b
){
var
c
=
a
(
b
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
);
if
(
!
c
.
options
.
delay
||!
c
.
options
.
delay
.
hide
)
return
c
.
hide
();
clearTimeout
(
this
.
timeout
),
c
.
hoverState
=
"
out
"
,
this
.
timeout
=
setTimeout
(
function
(){
c
.
hoverState
==
"
out
"
&&
c
.
hide
()},
c
.
options
.
delay
.
hide
)},
show
:
function
(){
var
a
,
b
,
c
,
d
,
e
,
f
,
g
;
if
(
this
.
hasContent
()
&&
this
.
enabled
){
a
=
this
.
tip
(),
this
.
setContent
(),
this
.
options
.
animation
&&
a
.
addClass
(
"
fade
"
),
f
=
typeof
this
.
options
.
placement
==
"
function
"
?
this
.
options
.
placement
.
call
(
this
,
a
[
0
],
this
.
$element
[
0
]):
this
.
options
.
placement
,
b
=
/in/
.
test
(
f
),
a
.
remove
().
css
({
top
:
0
,
left
:
0
,
display
:
"
block
"
}).
appendTo
(
b
?
this
.
$element
:
document
.
body
),
c
=
this
.
getPosition
(
b
),
d
=
a
[
0
].
offsetWidth
,
e
=
a
[
0
].
offsetHeight
;
switch
(
b
?
f
.
split
(
"
"
)[
1
]:
f
){
case
"
bottom
"
:
g
=
{
top
:
c
.
top
+
c
.
height
,
left
:
c
.
left
+
c
.
width
/
2
-
d
/
2
};
break
;
case
"
top
"
:
g
=
{
top
:
c
.
top
-
e
,
left
:
c
.
left
+
c
.
width
/
2
-
d
/
2
};
break
;
case
"
left
"
:
g
=
{
top
:
c
.
top
+
c
.
height
/
2
-
e
/
2
,
left
:
c
.
left
-
d
};
break
;
case
"
right
"
:
g
=
{
top
:
c
.
top
+
c
.
height
/
2
-
e
/
2
,
left
:
c
.
left
+
c
.
width
}}
a
.
css
(
g
).
addClass
(
f
).
addClass
(
"
in
"
)}},
isHTML
:
function
(
a
){
return
typeof
a
!=
"
string
"
||
a
.
charAt
(
0
)
===
"
<
"
&&
a
.
charAt
(
a
.
length
-
1
)
===
"
>
"
&&
a
.
length
>=
3
||
/^
(?:[^
<
]
*<
[\w\W]
+>
[^
>
]
*$
)
/
.
exec
(
a
)},
setContent
:
function
(){
var
a
=
this
.
tip
(),
b
=
this
.
getTitle
();
a
.
find
(
"
.tooltip-inner
"
)[
this
.
isHTML
(
b
)?
"
html
"
:
"
text
"
](
b
),
a
.
removeClass
(
"
fade in top bottom left right
"
)},
hide
:
function
(){
function
d
(){
var
b
=
setTimeout
(
function
(){
c
.
off
(
a
.
support
.
transition
.
end
).
remove
()},
500
);
c
.
one
(
a
.
support
.
transition
.
end
,
function
(){
clearTimeout
(
b
),
c
.
remove
()})}
var
b
=
this
,
c
=
this
.
tip
();
c
.
removeClass
(
"
in
"
),
a
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
"
fade
"
)?
d
():
c
.
remove
()},
fixTitle
:
function
(){
var
a
=
this
.
$element
;(
a
.
attr
(
"
title
"
)
||
typeof
a
.
attr
(
"
data-original-title
"
)
!=
"
string
"
)
&&
a
.
attr
(
"
data-original-title
"
,
a
.
attr
(
"
title
"
)
||
""
).
removeAttr
(
"
title
"
)},
hasContent
:
function
(){
return
this
.
getTitle
()},
getPosition
:
function
(
b
){
return
a
.
extend
({},
b
?{
top
:
0
,
left
:
0
}:
this
.
$element
.
offset
(),{
width
:
this
.
$element
[
0
].
offsetWidth
,
height
:
this
.
$element
[
0
].
offsetHeight
})},
getTitle
:
function
(){
var
a
,
b
=
this
.
$element
,
c
=
this
.
options
;
return
a
=
b
.
attr
(
"
data-original-title
"
)
||
(
typeof
c
.
title
==
"
function
"
?
c
.
title
.
call
(
b
[
0
]):
c
.
title
),
a
},
tip
:
function
(){
return
this
.
$tip
=
this
.
$tip
||
a
(
this
.
options
.
template
)},
validate
:
function
(){
this
.
$element
[
0
].
parentNode
||
(
this
.
hide
(),
this
.
$element
=
null
,
this
.
options
=
null
)},
enable
:
function
(){
this
.
enabled
=!
0
},
disable
:
function
(){
this
.
enabled
=!
1
},
toggleEnabled
:
function
(){
this
.
enabled
=!
this
.
enabled
},
toggle
:
function
(){
this
[
this
.
tip
().
hasClass
(
"
in
"
)?
"
hide
"
:
"
show
"
]()}},
a
.
fn
.
tooltip
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
tooltip
"
),
f
=
typeof
c
==
"
object
"
&&
c
;
e
||
d
.
data
(
"
tooltip
"
,
e
=
new
b
(
this
,
f
)),
typeof
c
==
"
string
"
&&
e
[
c
]()})},
a
.
fn
.
tooltip
.
Constructor
=
b
,
a
.
fn
.
tooltip
.
defaults
=
{
animation
:
!
0
,
placement
:
"
top
"
,
selector
:
!
1
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
,
trigger
:
"
hover
"
,
title
:
""
,
delay
:
0
}}(
window
.
jQuery
),
!
function
(
a
){
"
use strict
"
;
var
b
=
function
(
a
,
b
){
this
.
init
(
"
popover
"
,
a
,
b
)};
b
.
prototype
=
a
.
extend
({},
a
.
fn
.
tooltip
.
Constructor
.
prototype
,{
constructor
:
b
,
setContent
:
function
(){
var
a
=
this
.
tip
(),
b
=
this
.
getTitle
(),
c
=
this
.
getContent
();
a
.
find
(
"
.popover-title
"
)[
this
.
isHTML
(
b
)?
"
html
"
:
"
text
"
](
b
),
a
.
find
(
"
.popover-content > *
"
)[
this
.
isHTML
(
c
)?
"
html
"
:
"
text
"
](
c
),
a
.
removeClass
(
"
fade top bottom left right in
"
)},
hasContent
:
function
(){
return
this
.
getTitle
()
||
this
.
getContent
()},
getContent
:
function
(){
var
a
,
b
=
this
.
$element
,
c
=
this
.
options
;
return
a
=
b
.
attr
(
"
data-content
"
)
||
(
typeof
c
.
content
==
"
function
"
?
c
.
content
.
call
(
b
[
0
]):
c
.
content
),
a
},
tip
:
function
(){
return
this
.
$tip
||
(
this
.
$tip
=
a
(
this
.
options
.
template
)),
this
.
$tip
}}),
a
.
fn
.
popover
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
popover
"
),
f
=
typeof
c
==
"
object
"
&&
c
;
e
||
d
.
data
(
"
popover
"
,
e
=
new
b
(
this
,
f
)),
typeof
c
==
"
string
"
&&
e
[
c
]()})},
a
.
fn
.
popover
.
Constructor
=
b
,
a
.
fn
.
popover
.
defaults
=
a
.
extend
({},
a
.
fn
.
tooltip
.
defaults
,{
placement
:
"
right
"
,
content
:
""
,
template
:
'
<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>
'
})}(
window
.
jQuery
),
!
function
(
a
){
function
b
(
b
,
c
){
var
d
=
a
.
proxy
(
this
.
process
,
this
),
e
=
a
(
b
).
is
(
"
body
"
)?
a
(
window
):
a
(
b
),
f
;
this
.
options
=
a
.
extend
({},
a
.
fn
.
scrollspy
.
defaults
,
c
),
this
.
$scrollElement
=
e
.
on
(
"
scroll.scroll.data-api
"
,
d
),
this
.
selector
=
(
this
.
options
.
target
||
(
f
=
a
(
b
).
attr
(
"
href
"
))
&&
f
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
)
||
""
)
+
"
.nav li > a
"
,
this
.
$body
=
a
(
"
body
"
).
on
(
"
click.scroll.data-api
"
,
this
.
selector
,
d
),
this
.
refresh
(),
this
.
process
()}
"
use strict
"
,
b
.
prototype
=
{
constructor
:
b
,
refresh
:
function
(){
var
b
=
this
,
c
;
this
.
offsets
=
a
([]),
this
.
targets
=
a
([]),
c
=
this
.
$body
.
find
(
this
.
selector
).
map
(
function
(){
var
b
=
a
(
this
).
attr
(
"
href
"
),
c
=
/^#
\w
/
.
test
(
b
)
&&
a
(
b
);
return
c
&&
b
.
length
&&
[[
c
.
position
().
top
,
b
]]
||
null
}).
sort
(
function
(
a
,
b
){
return
a
[
0
]
-
b
[
0
]}).
each
(
function
(){
b
.
offsets
.
push
(
this
[
0
]),
b
.
targets
.
push
(
this
[
1
])})},
process
:
function
(){
var
a
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
b
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
,
c
=
b
-
this
.
$scrollElement
.
height
(),
d
=
this
.
offsets
,
e
=
this
.
targets
,
f
=
this
.
activeTarget
,
g
;
if
(
a
>=
c
)
return
f
!=
(
g
=
e
.
last
()[
0
])
&&
this
.
activate
(
g
);
for
(
g
=
d
.
length
;
g
--
;)
f
!=
e
[
g
]
&&
a
>=
d
[
g
]
&&
(
!
d
[
g
+
1
]
||
a
<=
d
[
g
+
1
])
&&
this
.
activate
(
e
[
g
])},
activate
:
function
(
b
){
var
c
;
this
.
activeTarget
=
b
,
a
(
this
.
selector
).
parent
(
"
.active
"
).
removeClass
(
"
active
"
),
c
=
a
(
this
.
selector
+
'
[href="
'
+
b
+
'
"]
'
).
parent
(
"
li
"
).
addClass
(
"
active
"
),
c
.
parent
(
"
.dropdown-menu
"
)
&&
(
c
=
c
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
)),
c
.
trigger
(
"
activate
"
)}},
a
.
fn
.
scrollspy
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
scrollspy
"
),
f
=
typeof
c
==
"
object
"
&&
c
;
e
||
d
.
data
(
"
scrollspy
"
,
e
=
new
b
(
this
,
f
)),
typeof
c
==
"
string
"
&&
e
[
c
]()})},
a
.
fn
.
scrollspy
.
Constructor
=
b
,
a
.
fn
.
scrollspy
.
defaults
=
{
offset
:
10
},
a
(
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
=
{
constructor
:
b
,
show
:
function
(){
var
b
=
this
.
element
,
c
=
b
.
closest
(
"
ul:not(.dropdown-menu)
"
),
d
=
b
.
attr
(
"
data-target
"
),
e
,
f
,
g
;
d
||
(
d
=
b
.
attr
(
"
href
"
),
d
=
d
&&
d
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
if
(
b
.
parent
(
"
li
"
).
hasClass
(
"
active
"
))
return
;
e
=
c
.
find
(
"
.active a
"
).
last
()[
0
],
g
=
a
.
Event
(
"
show
"
,{
relatedTarget
:
e
}),
b
.
trigger
(
g
);
if
(
g
.
isDefaultPrevented
())
return
;
f
=
a
(
d
),
this
.
activate
(
b
.
parent
(
"
li
"
),
c
),
this
.
activate
(
f
,
f
.
parent
(),
function
(){
b
.
trigger
({
type
:
"
shown
"
,
relatedTarget
:
e
})})},
activate
:
function
(
b
,
c
,
d
){
function
g
(){
e
.
removeClass
(
"
active
"
).
find
(
"
> .dropdown-menu > .active
"
).
removeClass
(
"
active
"
),
b
.
addClass
(
"
active
"
),
f
?(
b
[
0
].
offsetWidth
,
b
.
addClass
(
"
in
"
)):
b
.
removeClass
(
"
fade
"
),
b
.
parent
(
"
.dropdown-menu
"
)
&&
b
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
),
d
&&
d
()}
var
e
=
c
.
find
(
"
> .active
"
),
f
=
d
&&
a
.
support
.
transition
&&
e
.
hasClass
(
"
fade
"
);
f
?
e
.
one
(
a
.
support
.
transition
.
end
,
g
):
g
(),
e
.
removeClass
(
"
in
"
)}},
a
.
fn
.
tab
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
tab
"
);
e
||
d
.
data
(
"
tab
"
,
e
=
new
b
(
this
)),
typeof
c
==
"
string
"
&&
e
[
c
]()})},
a
.
fn
.
tab
.
Constructor
=
b
,
a
(
function
(){
a
(
"
body
"
).
on
(
"
click.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
(
b
,
c
){
this
.
$element
=
a
(
b
),
this
.
options
=
a
.
extend
({},
a
.
fn
.
typeahead
.
defaults
,
c
),
this
.
matcher
=
this
.
options
.
matcher
||
this
.
matcher
,
this
.
sorter
=
this
.
options
.
sorter
||
this
.
sorter
,
this
.
highlighter
=
this
.
options
.
highlighter
||
this
.
highlighter
,
this
.
$menu
=
a
(
this
.
options
.
menu
).
appendTo
(
"
body
"
),
this
.
source
=
this
.
options
.
source
,
this
.
shown
=!
1
,
this
.
listen
()};
b
.
prototype
=
{
constructor
:
b
,
select
:
function
(){
var
a
=
this
.
$menu
.
find
(
"
.active
"
).
attr
(
"
data-value
"
);
return
this
.
$element
.
val
(
a
).
change
(),
this
.
hide
()},
show
:
function
(){
var
b
=
a
.
extend
({},
this
.
$element
.
offset
(),{
height
:
this
.
$element
[
0
].
offsetHeight
});
return
this
.
$menu
.
css
({
top
:
b
.
top
+
b
.
height
,
left
:
b
.
left
}),
this
.
$menu
.
show
(),
this
.
shown
=!
0
,
this
},
hide
:
function
(){
return
this
.
$menu
.
hide
(),
this
.
shown
=!
1
,
this
},
lookup
:
function
(
b
){
var
c
=
this
,
d
,
e
;
return
this
.
query
=
this
.
$element
.
val
(),
this
.
query
?(
d
=
a
.
grep
(
this
.
source
,
function
(
a
){
return
c
.
matcher
(
a
)}),
d
=
this
.
sorter
(
d
),
d
.
length
?
this
.
render
(
d
.
slice
(
0
,
this
.
options
.
items
)).
show
():
this
.
shown
?
this
.
hide
():
this
):
this
.
shown
?
this
.
hide
():
this
},
matcher
:
function
(
a
){
return
~
a
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
())},
sorter
:
function
(
a
){
var
b
=
[],
c
=
[],
d
=
[],
e
;
while
(
e
=
a
.
shift
())
e
.
toLowerCase
().
indexOf
(
this
.
query
.
toLowerCase
())?
~
e
.
indexOf
(
this
.
query
)?
c
.
push
(
e
):
d
.
push
(
e
):
b
.
push
(
e
);
return
b
.
concat
(
c
,
d
)},
highlighter
:
function
(
a
){
var
b
=
this
.
query
.
replace
(
/
[\-\[\]
{}()*+?.,
\\\^
$|#
\s]
/g
,
"
\\
$&
"
);
return
a
.
replace
(
new
RegExp
(
"
(
"
+
b
+
"
)
"
,
"
ig
"
),
function
(
a
,
b
){
return
"
<strong>
"
+
b
+
"
</strong>
"
})},
render
:
function
(
b
){
var
c
=
this
;
return
b
=
a
(
b
).
map
(
function
(
b
,
d
){
return
b
=
a
(
c
.
options
.
item
).
attr
(
"
data-value
"
,
d
),
b
.
find
(
"
a
"
).
html
(
c
.
highlighter
(
d
)),
b
[
0
]}),
b
.
first
().
addClass
(
"
active
"
),
this
.
$menu
.
html
(
b
),
this
},
next
:
function
(
b
){
var
c
=
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
d
=
c
.
next
();
d
.
length
||
(
d
=
a
(
this
.
$menu
.
find
(
"
li
"
)[
0
])),
d
.
addClass
(
"
active
"
)},
prev
:
function
(
a
){
var
b
=
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
c
=
b
.
prev
();
c
.
length
||
(
c
=
this
.
$menu
.
find
(
"
li
"
).
last
()),
c
.
addClass
(
"
active
"
)},
listen
:
function
(){
this
.
$element
.
on
(
"
blur
"
,
a
.
proxy
(
this
.
blur
,
this
)).
on
(
"
keypress
"
,
a
.
proxy
(
this
.
keypress
,
this
)).
on
(
"
keyup
"
,
a
.
proxy
(
this
.
keyup
,
this
)),(
a
.
browser
.
webkit
||
a
.
browser
.
msie
)
&&
this
.
$element
.
on
(
"
keydown
"
,
a
.
proxy
(
this
.
keypress
,
this
)),
this
.
$menu
.
on
(
"
click
"
,
a
.
proxy
(
this
.
click
,
this
)).
on
(
"
mouseenter
"
,
"
li
"
,
a
.
proxy
(
this
.
mouseenter
,
this
))},
keyup
:
function
(
a
){
switch
(
a
.
keyCode
){
case
40
:
case
38
:
break
;
case
9
:
case
13
:
if
(
!
this
.
shown
)
return
;
this
.
select
();
break
;
case
27
:
if
(
!
this
.
shown
)
return
;
this
.
hide
();
break
;
default
:
this
.
lookup
()}
a
.
stopPropagation
(),
a
.
preventDefault
()},
keypress
:
function
(
a
){
if
(
!
this
.
shown
)
return
;
switch
(
a
.
keyCode
){
case
9
:
case
13
:
case
27
:
a
.
preventDefault
();
break
;
case
38
:
if
(
a
.
type
!=
"
keydown
"
)
break
;
a
.
preventDefault
(),
this
.
prev
();
break
;
case
40
:
if
(
a
.
type
!=
"
keydown
"
)
break
;
a
.
preventDefault
(),
this
.
next
()}
a
.
stopPropagation
()},
blur
:
function
(
a
){
var
b
=
this
;
setTimeout
(
function
(){
b
.
hide
()},
150
)},
click
:
function
(
a
){
a
.
stopPropagation
(),
a
.
preventDefault
(),
this
.
select
()},
mouseenter
:
function
(
b
){
this
.
$menu
.
find
(
"
.active
"
).
removeClass
(
"
active
"
),
a
(
b
.
currentTarget
).
addClass
(
"
active
"
)}},
a
.
fn
.
typeahead
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
typeahead
"
),
f
=
typeof
c
==
"
object
"
&&
c
;
e
||
d
.
data
(
"
typeahead
"
,
e
=
new
b
(
this
,
f
)),
typeof
c
==
"
string
"
&&
e
[
c
]()})},
a
.
fn
.
typeahead
.
defaults
=
{
source
:[],
items
:
8
,
menu
:
'
<ul class="typeahead dropdown-menu"></ul>
'
,
item
:
'
<li><a href="#"></a></li>
'
},
a
.
fn
.
typeahead
.
Constructor
=
b
,
a
(
function
(){
a
(
"
body
"
).
on
(
"
focus.typeahead.data-api
"
,
'
[data-provide="typeahead"]
'
,
function
(
b
){
var
c
=
a
(
this
);
if
(
c
.
data
(
"
typeahead
"
))
return
;
b
.
preventDefault
(),
c
.
typeahead
(
c
.
data
())})})}(
window
.
jQuery
);
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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