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
149ecd21
Commit
149ecd21
authored
May 16, 2013
by
fat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
straight trash wang
parent
53bc9328
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
604 additions
and
648 deletions
+604
-648
js/alert.js
js/alert.js
+4
-4
js/carousel.js
js/carousel.js
+4
-3
js/collapse.js
js/collapse.js
+2
-2
js/dropdown.js
js/dropdown.js
+0
-1
js/modal.js
js/modal.js
+138
-147
js/popover.js
js/popover.js
+49
-54
js/scrollspy.js
js/scrollspy.js
+94
-100
js/tab.js
js/tab.js
+64
-75
js/tooltip.js
js/tooltip.js
+237
-247
js/transition.js
js/transition.js
+12
-15
No files found.
js/alert.js
View file @
149ecd21
...
...
@@ -45,7 +45,7 @@
$parent
=
$this
.
hasClass
(
'
alert
'
)
?
$this
:
$this
.
parent
()
}
$parent
.
trigger
(
e
=
$
.
Event
(
'
bs
-
close
'
))
$parent
.
trigger
(
e
=
$
.
Event
(
'
bs
:alert:
close
'
))
if
(
e
.
isDefaultPrevented
())
return
...
...
@@ -79,8 +79,8 @@
$
.
fn
.
alert
.
Constructor
=
Alert
/*
ALERT NO CONFLICT
* ================= */
//
ALERT NO CONFLICT
// =================
$
.
fn
.
alert
.
noConflict
=
function
()
{
$
.
fn
.
alert
=
old
...
...
@@ -89,7 +89,7 @@
// ALERT DATA-API
// ==============
*/
// ==============
$
(
document
).
on
(
'
click.bs-alert.bs-data-api
'
,
dismiss
,
Alert
.
prototype
.
close
)
...
...
js/carousel.js
View file @
149ecd21
...
...
@@ -111,7 +111,7 @@
$next
=
$next
.
length
?
$next
:
this
.
$element
.
find
(
'
.item
'
)[
fallback
]()
var
e
=
$
.
Event
(
'
slide
'
,
{
relatedTarget
:
$next
[
0
],
direction
:
direction
})
var
e
=
$
.
Event
(
'
bs:carousel:
slide
'
,
{
relatedTarget
:
$next
[
0
],
direction
:
direction
})
if
(
$next
.
hasClass
(
'
active
'
))
return
...
...
@@ -159,11 +159,11 @@
$
.
fn
.
carousel
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
carousel
'
)
var
data
=
$this
.
data
(
'
bs-
carousel
'
)
var
options
=
$
.
extend
({},
Carousel
.
DEFAULTS
,
typeof
option
==
'
object
'
&&
option
)
var
action
=
typeof
option
==
'
string
'
?
option
:
options
.
slide
if
(
!
data
)
$this
.
data
(
'
carousel
'
,
(
data
=
new
Carousel
(
this
,
options
)))
if
(
!
data
)
$this
.
data
(
'
bs-
carousel
'
,
(
data
=
new
Carousel
(
this
,
options
)))
if
(
typeof
option
==
'
number
'
)
data
.
to
(
option
)
else
if
(
action
)
data
[
action
]()
else
if
(
options
.
interval
)
data
.
pause
().
cycle
()
...
...
@@ -181,6 +181,7 @@
return
this
}
// CAROUSEL DATA-API
// =================
...
...
js/collapse.js
View file @
149ecd21
...
...
@@ -56,7 +56,7 @@
}
this
.
$element
[
dimension
](
0
)
this
.
transition
(
'
addClass
'
,
$
.
Event
(
'
show
'
),
'
shown
'
)
this
.
transition
(
'
addClass
'
,
$
.
Event
(
'
bs:collapse:
show
'
),
'
shown
'
)
if
(
$
.
support
.
transition
)
this
.
$element
[
dimension
](
this
.
$element
[
0
][
scroll
])
}
...
...
@@ -65,7 +65,7 @@
if
(
this
.
transitioning
||
!
this
.
$element
.
hasClass
(
'
in
'
))
return
var
dimension
=
this
.
dimension
()
this
.
reset
(
this
.
$element
[
dimension
]())
this
.
transition
(
'
removeClass
'
,
$
.
Event
(
'
hide
'
),
'
hidden
'
)
this
.
transition
(
'
removeClass
'
,
$
.
Event
(
'
bs:collapse:
hide
'
),
'
hidden
'
)
this
.
$element
[
dimension
](
0
)
}
...
...
js/dropdown.js
View file @
149ecd21
...
...
@@ -20,7 +20,6 @@
!
function
(
$
)
{
"
use strict
"
;
// DROPDOWN CLASS DEFINITION
// =========================
...
...
js/modal.js
View file @
149ecd21
...
...
@@ -18,207 +18,198 @@
* ========================================================= */
!
function
(
$
)
{
!
function
(
$
)
{
"
use strict
"
;
"
use strict
"
;
// jshint ;_;
/* MODAL CLASS DEFINITION
* ====================== */
// MODAL CLASS DEFINITION
// ======================
var
Modal
=
function
(
element
,
options
)
{
this
.
options
=
options
this
.
$element
=
$
(
element
)
.
delegate
(
'
[data-dismiss="modal"]
'
,
'
click.dismiss.modal
'
,
$
.
proxy
(
this
.
hide
,
this
))
this
.
options
.
remote
&&
this
.
$element
.
find
(
'
.modal-body
'
).
load
(
this
.
options
.
remote
)
}
this
.
options
=
options
this
.
$element
=
$
(
element
).
delegate
(
'
[data-dismiss="modal"]
'
,
'
click.dismiss.modal
'
,
$
.
proxy
(
this
.
hide
,
this
))
this
.
$backdrop
=
this
.
isShown
=
null
Modal
.
prototype
=
{
if
(
this
.
options
.
remote
)
this
.
$element
.
find
(
'
.modal-body
'
).
load
(
this
.
options
.
remote
)
}
constructor
:
Modal
Modal
.
DEFAULTS
=
{
backdrop
:
true
,
keyboard
:
true
,
show
:
true
}
,
toggle
:
function
()
{
return
this
[
!
this
.
isShown
?
'
show
'
:
'
hide
'
]()
}
Modal
.
prototype
.
toggle
=
function
()
{
return
this
[
!
this
.
isShown
?
'
show
'
:
'
hide
'
]()
}
,
show
:
function
()
{
var
that
=
this
,
e
=
$
.
Event
(
'
show
'
)
Modal
.
prototype
.
show
=
function
()
{
var
that
=
this
var
e
=
$
.
Event
(
'
bs:modal:
show
'
)
this
.
$element
.
trigger
(
e
)
this
.
$element
.
trigger
(
e
)
if
(
this
.
isShown
||
e
.
isDefaultPrevented
())
return
if
(
this
.
isShown
||
e
.
isDefaultPrevented
())
return
this
.
isShown
=
true
this
.
isShown
=
true
this
.
escape
()
this
.
escape
()
this
.
backdrop
(
function
()
{
var
transition
=
$
.
support
.
transition
&&
that
.
$element
.
hasClass
(
'
fade
'
)
this
.
backdrop
(
function
()
{
var
transition
=
$
.
support
.
transition
&&
that
.
$element
.
hasClass
(
'
fade
'
)
if
(
!
that
.
$element
.
parent
().
length
)
{
that
.
$element
.
appendTo
(
document
.
body
)
//don't move modals dom position
}
if
(
!
that
.
$element
.
parent
().
length
)
{
that
.
$element
.
appendTo
(
document
.
body
)
//don't move modals dom position
}
that
.
$element
.
show
()
that
.
$element
.
show
()
if
(
transition
)
{
that
.
$element
[
0
].
offsetWidth
// force reflow
}
if
(
transition
)
{
that
.
$element
[
0
].
offsetWidth
// force reflow
}
that
.
$element
.
addClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
false
)
that
.
$element
.
addClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
false
)
that
.
enforceFocus
()
that
.
enforceFocus
()
transition
?
that
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
that
.
$element
.
focus
().
trigger
(
'
shown
'
)
})
:
that
.
$element
.
focus
().
trigger
(
'
shown
'
)
transition
?
that
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
that
.
$element
.
focus
().
trigger
(
'
bs:modal:
shown
'
)
})
:
that
.
$element
.
focus
().
trigger
(
'
bs:modal:
shown
'
)
})
}
})
}
,
hide
:
function
(
e
)
{
e
&&
e
.
preventDefault
()
Modal
.
prototype
.
show
=
function
(
e
)
{
if
(
e
)
e
.
preventDefault
()
var
that
=
this
e
=
$
.
Event
(
'
bs:modal:hide
'
)
e
=
$
.
Event
(
'
hide
'
)
this
.
$element
.
trigger
(
e
)
this
.
$element
.
trigger
(
e
)
if
(
!
this
.
isShown
||
e
.
isDefaultPrevented
())
return
if
(
!
this
.
isShown
||
e
.
isDefaultPrevented
())
return
this
.
isShown
=
false
this
.
isShown
=
false
this
.
escape
()
this
.
escape
(
)
$
(
document
).
off
(
'
focusin.modal
'
)
$
(
document
).
off
(
'
focusin.modal
'
)
this
.
$element
.
removeClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
true
)
this
.
$element
.
removeClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
true
)
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
hideWithTransition
()
:
this
.
hideModal
()
}
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
hideWithTransition
()
:
this
.
hideModal
()
Modal
.
prototype
.
enforceFocus
=
function
()
{
$
(
document
).
on
(
'
focusin.modal
'
,
function
(
e
)
{
if
(
this
.
$element
[
0
]
!==
e
.
target
&&
!
this
.
$element
.
has
(
e
.
target
).
length
)
{
this
.
$element
.
focus
()
}
},
this
)
}
,
enforceFocus
:
function
()
{
var
that
=
this
$
(
document
).
on
(
'
focusin.modal
'
,
function
(
e
)
{
if
(
that
.
$element
[
0
]
!==
e
.
target
&&
!
that
.
$element
.
has
(
e
.
target
).
length
)
{
that
.
$element
.
focus
()
}
})
}
Modal
.
prototype
.
escape
=
function
()
{
if
(
this
.
isShown
&&
this
.
options
.
keyboard
)
{
this
.
$element
.
on
(
'
keyup.dismiss.modal
'
,
function
(
e
)
{
e
.
which
==
27
&&
this
.
hide
()
},
this
)
}
else
if
(
!
this
.
isShown
)
{
this
.
$element
.
off
(
'
keyup.dismiss.modal
'
)
}
}
,
escape
:
function
()
{
var
that
=
this
if
(
this
.
isShown
&&
this
.
options
.
keyboard
)
{
this
.
$element
.
on
(
'
keyup.dismiss.modal
'
,
function
(
e
)
{
e
.
which
==
27
&&
that
.
hide
()
})
}
else
if
(
!
this
.
isShown
)
{
this
.
$element
.
off
(
'
keyup.dismiss.modal
'
)
}
}
Modal
.
prototype
.
hideWithTransition
=
function
()
{
var
that
=
this
var
timeout
=
setTimeout
(
function
()
{
that
.
$element
.
off
(
$
.
support
.
transition
.
end
)
that
.
hideModal
()
},
500
)
,
hideWithTransition
:
function
()
{
var
that
=
this
,
timeout
=
setTimeout
(
function
()
{
that
.
$element
.
off
(
$
.
support
.
transition
.
end
)
that
.
hideModal
()
},
500
)
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
clearTimeout
(
timeout
)
that
.
hideModal
()
})
}
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
clearTimeout
(
timeout
)
that
.
hideModal
()
})
}
,
hideModal
:
function
()
{
var
that
=
this
this
.
$element
.
hide
()
this
.
backdrop
(
function
()
{
that
.
removeBackdrop
()
that
.
$element
.
trigger
(
'
hidden
'
)
})
}
Modal
.
prototype
.
hideModal
=
function
()
{
var
that
=
this
this
.
$element
.
hide
()
this
.
backdrop
(
function
()
{
that
.
removeBackdrop
()
that
.
$element
.
trigger
(
'
bs:modal:
hidden
'
)
})
}
,
removeBackdrop
:
function
()
{
this
.
$backdrop
&&
this
.
$backdrop
.
remove
()
this
.
$backdrop
=
null
}
Modal
.
prototype
.
removeBackdrop
:
function
()
{
this
.
$backdrop
&&
this
.
$backdrop
.
remove
()
this
.
$backdrop
=
null
}
,
backdrop
:
function
(
callback
)
{
var
that
=
this
,
animate
=
this
.
$element
.
hasClass
(
'
fade
'
)
?
'
fade
'
:
''
Modal
.
prototype
.
backdrop
:
function
(
callback
)
{
var
that
=
this
var
animate
=
this
.
$element
.
hasClass
(
'
fade
'
)
?
'
fade
'
:
''
if
(
this
.
isShown
&&
this
.
options
.
backdrop
)
{
var
doAnimate
=
$
.
support
.
transition
&&
animate
if
(
this
.
isShown
&&
this
.
options
.
backdrop
)
{
var
doAnimate
=
$
.
support
.
transition
&&
animate
this
.
$backdrop
=
$
(
'
<div class="modal-backdrop
'
+
animate
+
'
" />
'
)
.
appendTo
(
document
.
body
)
this
.
$backdrop
=
$
(
'
<div class="modal-backdrop
'
+
animate
+
'
" />
'
)
.
appendTo
(
document
.
body
)
this
.
$backdrop
.
click
(
this
.
options
.
backdrop
==
'
static
'
?
$
.
proxy
(
this
.
$element
[
0
].
focus
,
this
.
$element
[
0
])
:
$
.
proxy
(
this
.
hide
,
this
)
)
this
.
$backdrop
.
click
(
this
.
options
.
backdrop
==
'
static
'
?
$
.
proxy
(
this
.
$element
[
0
].
focus
,
this
.
$element
[
0
])
:
$
.
proxy
(
this
.
hide
,
this
)
)
if
(
doAnimate
)
this
.
$backdrop
[
0
].
offsetWidth
// force reflow
if
(
doAnimate
)
this
.
$backdrop
[
0
].
offsetWidth
// force reflow
this
.
$backdrop
.
addClass
(
'
in
'
)
this
.
$backdrop
.
addClass
(
'
in
'
)
if
(
!
callback
)
return
if
(
!
callback
)
return
doAnimate
?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
)
:
callback
()
doAnimate
?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
)
:
callback
()
}
else
if
(
!
this
.
isShown
&&
this
.
$backdrop
)
{
this
.
$backdrop
.
removeClass
(
'
in
'
)
}
else
if
(
!
this
.
isShown
&&
this
.
$backdrop
)
{
this
.
$backdrop
.
removeClass
(
'
in
'
)
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
)
:
callback
()
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
)
:
callback
()
}
else
if
(
callback
)
{
callback
()
}
}
}
else
if
(
callback
)
{
callback
()
}
}
/*
MODAL PLUGIN DEFINITION
* ======================= */
//
MODAL PLUGIN DEFINITION
// =======================
var
old
=
$
.
fn
.
modal
$
.
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
)))
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs-modal
'
)
var
options
=
$
.
extend
({},
Modal
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
if
(
!
data
)
$this
.
data
(
'
bs-modal
'
,
(
data
=
new
Modal
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
else
if
(
options
.
show
)
data
.
show
()
})
}
$
.
fn
.
modal
.
defaults
=
{
backdrop
:
true
,
keyboard
:
true
,
show
:
true
}
$
.
fn
.
modal
.
Constructor
=
Modal
/*
MODAL NO CONFLICT
* ================= */
//
MODAL NO CONFLICT
// =================
$
.
fn
.
modal
.
noConflict
=
function
()
{
$
.
fn
.
modal
=
old
...
...
@@ -226,14 +217,14 @@
}
/*
MODAL DATA-API
* ============== */
//
MODAL DATA-API
// ==============
$
(
document
).
on
(
'
click.modal.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
)
,
href
=
$this
.
attr
(
'
href
'
)
,
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)))
//strip for ie7
,
option
=
$target
.
data
(
'
modal
'
)
?
'
toggle
'
:
$
.
extend
({
remote
:
!
/#/
.
test
(
href
)
&&
href
},
$target
.
data
(),
$this
.
data
())
var
$this
=
$
(
this
)
var
href
=
$this
.
attr
(
'
href
'
)
var
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)))
//strip for ie7
var
option
=
$target
.
data
(
'
modal
'
)
?
'
toggle
'
:
$
.
extend
({
remote
:
!
/#/
.
test
(
href
)
&&
href
},
$target
.
data
(),
$this
.
data
())
e
.
preventDefault
()
...
...
@@ -245,7 +236,7 @@
})
var
$body
=
$
(
document
.
body
)
.
on
(
'
shown
'
,
'
.modal
'
,
function
()
{
$body
.
addClass
(
'
modal-open
'
)
})
.
on
(
'
hidden
'
,
'
.modal
'
,
function
()
{
$body
.
removeClass
(
'
modal-open
'
)
})
.
on
(
'
bs:modal:shown
'
,
'
.modal
'
,
function
()
{
$body
.
addClass
(
'
modal-open
'
)
})
.
on
(
'
bs:modal:
hidden
'
,
'
.modal
'
,
function
()
{
$body
.
removeClass
(
'
modal-open
'
)
})
}(
window
.
jQuery
);
js/popover.js
View file @
149ecd21
...
...
@@ -18,93 +18,88 @@
* =========================================================== */
!
function
(
$
)
{
!
function
(
$
)
{
"
use strict
"
;
"
use strict
"
;
// jshint ;_;
/* POPOVER PUBLIC CLASS DEFINITION
* =============================== */
// POPOVER 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>
'
})
/* NOTE: POPOVER EXTENDS tooltip.js
========================================== */
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
,
{
// NOTE: POPOVER EXTENDS tooltip.js
// ================================
constructor
:
Popover
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
)
,
setContent
:
function
()
{
var
$tip
=
this
.
tip
()
,
title
=
this
.
getTitle
()
,
content
=
this
.
getContent
()
Popover
.
prototype
.
constructor
=
Popover
$tip
.
find
(
'
.popover-title
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
find
(
'
.popover-content
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
content
)
Popover
.
prototype
.
getDefaults
=
function
()
{
return
Popover
.
DEFAULTS
}
$tip
.
removeClass
(
'
fade top bottom left right in
'
)
}
Popover
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
()
var
title
=
this
.
getTitle
()
var
content
=
this
.
getContent
()
,
hasContent
:
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
}
$tip
.
find
(
'
.popover-title
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
find
(
'
.popover-content
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
content
)
,
getContent
:
function
()
{
var
content
,
$e
=
this
.
$element
,
o
=
this
.
options
$tip
.
removeClass
(
'
fade top bottom left right in
'
)
}
content
=
(
typeof
o
.
content
==
'
function
'
?
o
.
content
.
call
(
$e
[
0
])
:
o
.
content
)
||
$e
.
attr
(
'
data-content
'
)
Popover
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
}
return
content
}
Popover
.
prototype
.
getContent
=
function
()
{
var
content
=
typeof
this
.
options
.
content
==
'
function
'
?
this
.
options
.
content
.
call
(
$e
[
0
])
:
this
.
options
.
content
,
tip
:
function
()
{
if
(
!
this
.
$tip
)
{
this
.
$tip
=
$
(
this
.
options
.
template
)
}
return
this
.
$tip
}
return
content
||
this
.
$element
.
attr
(
'
data-content
'
)
}
,
destroy
:
function
()
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
this
.
type
)
}
Popover
.
prototype
.
tip
=
function
()
{
if
(
!
this
.
$tip
)
this
.
$tip
=
$
(
this
.
options
.
template
)
return
this
.
$tip
}
})
Popover
.
prototype
.
destroy
=
function
()
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
this
.
type
)
}
/*
POPOVER PLUGIN DEFINITION
* ======================= */
//
POPOVER PLUGIN DEFINITION
// =========================
var
old
=
$
.
fn
.
popover
$
.
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
)))
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs-popover
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
bs-popover
'
,
(
data
=
new
Popover
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
popover
.
Constructor
=
Popover
$
.
fn
.
popover
.
defaults
=
$
.
extend
({}
,
$
.
fn
.
tooltip
.
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>
'
})
/*
POPOVER NO CONFLICT
* =================== */
//
POPOVER NO CONFLICT
// ===================
$
.
fn
.
popover
.
noConflict
=
function
()
{
$
.
fn
.
popover
=
old
...
...
js/scrollspy.js
View file @
149ecd21
...
...
@@ -18,130 +18,124 @@
* ============================================================== */
!
function
(
$
)
{
!
function
(
$
)
{
"
use strict
"
;
"
use strict
"
;
// jshint ;_;
/* SCROLLSPY CLASS DEFINITION
* ========================== */
// 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
)
var
href
var
process
=
$
.
proxy
(
this
.
process
,
this
)
var
$element
=
$
(
element
).
is
(
'
body
'
)
?
$
(
window
)
:
$
(
element
)
this
.
$body
=
$
(
'
body
'
)
this
.
$scrollElement
=
$element
.
on
(
'
scroll.scroll-spy.data-api
'
,
process
)
this
.
selector
=
(
this
.
options
.
target
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
.
$body
=
$
(
'
body
'
)
this
.
offsets
=
$
([])
this
.
targets
=
$
([])
this
.
activeTarget
=
null
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
$el
=
$
(
this
)
,
href
=
$el
.
data
(
'
target
'
)
||
$el
.
attr
(
'
href
'
)
,
$href
=
/^#
\w
/
.
test
(
href
)
&&
$
(
href
)
return
(
$href
&&
$href
.
length
&&
[[
$href
.
position
().
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
])
})
}
,
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
,
selector
this
.
activeTarget
=
target
$
(
this
.
selector
)
.
parents
(
'
.active
'
)
.
removeClass
(
'
active
'
)
selector
=
this
.
selector
+
'
[data-target="
'
+
target
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
active
=
$
(
selector
)
.
parents
(
'
li
'
)
.
addClass
(
'
active
'
)
if
(
active
.
parent
(
'
.dropdown-menu
'
).
length
)
{
active
=
active
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
}
active
.
trigger
(
'
activate
'
)
}
ScrollSpy
.
DEFAULTS
=
{
offset
:
10
}
ScrollSpy
.
prototype
.
refresh
=
function
()
{
this
.
offsets
=
$
([])
this
.
targets
=
$
([])
var
self
=
this
var
$targets
=
this
.
$body
.
find
(
this
.
selector
)
.
map
(
function
()
{
var
$el
=
$
(
this
)
var
href
=
$el
.
data
(
'
target
'
)
||
$el
.
attr
(
'
href
'
)
var
$href
=
/^#
\w
/
.
test
(
href
)
&&
$
(
href
)
return
(
$href
&&
$href
.
length
&&
[[
$href
.
position
().
top
+
(
!
$
.
isWindow
(
self
.
$scrollElement
.
get
(
0
))
&&
self
.
$scrollElement
.
scrollTop
()),
href
]])
||
null
})
.
sort
(
function
(
a
,
b
)
{
return
a
[
0
]
-
b
[
0
]
})
.
each
(
function
()
{
self
.
offsets
.
push
(
this
[
0
])
self
.
targets
.
push
(
this
[
1
])
})
}
ScrollSpy
.
prototype
.
process
=
function
()
{
var
scrollTop
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
var
scrollHeight
=
this
.
$scrollElement
[
0
].
scrollHeight
||
this
.
$body
[
0
].
scrollHeight
var
maxScroll
=
scrollHeight
-
this
.
$scrollElement
.
height
()
var
offsets
=
this
.
offsets
var
targets
=
this
.
targets
var
activeTarget
=
this
.
activeTarget
var
i
if
(
scrollTop
>=
maxScroll
)
{
return
activeTarget
!=
(
i
=
targets
.
last
()[
0
])
&&
this
.
activate
(
i
)
}
for
(
i
=
offsets
.
length
;
i
--
;)
{
activeTarget
!=
targets
[
i
]
&&
scrollTop
>=
offsets
[
i
]
&&
(
!
offsets
[
i
+
1
]
||
scrollTop
<=
offsets
[
i
+
1
])
&&
this
.
activate
(
targets
[
i
]
)
}
}
ScrollSpy
.
prototype
.
activate
=
function
(
target
)
{
this
.
activeTarget
=
target
$
(
this
.
selector
)
.
parents
(
'
.active
'
)
.
removeClass
(
'
active
'
)
var
selector
=
this
.
selector
+
'
[data-target="
'
+
target
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
/* SCROLLSPY PLUGIN DEFINITION
* =========================== */
var
active
=
$
(
selector
)
.
parents
(
'
li
'
)
.
addClass
(
'
active
'
)
if
(
active
.
parent
(
'
.dropdown-menu
'
).
length
)
{
active
=
active
.
closest
(
'
li.dropdown
'
)
.
addClass
(
'
active
'
)
}
active
.
trigger
(
'
activate
'
)
}
// SCROLLSPY PLUGIN DEFINITION
// ===========================
var
old
=
$
.
fn
.
scrollspy
$
.
fn
.
scrollspy
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
scrollspy
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
scrollspy
'
,
(
data
=
new
ScrollSpy
(
this
,
options
)))
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs-scrollspy
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
bs-scrollspy
'
,
(
data
=
new
ScrollSpy
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
scrollspy
.
Constructor
=
ScrollSpy
$
.
fn
.
scrollspy
.
defaults
=
{
offset
:
10
}
/*
SCROLLSPY NO CONFLICT
* ===================== */
//
SCROLLSPY NO CONFLICT
// =====================
$
.
fn
.
scrollspy
.
noConflict
=
function
()
{
$
.
fn
.
scrollspy
=
old
...
...
@@ -149,8 +143,8 @@
}
/*
SCROLLSPY DATA-API
* ================== */
//
SCROLLSPY DATA-API
// ==================
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-spy="scroll"]
'
).
each
(
function
()
{
...
...
js/tab.js
View file @
149ecd21
...
...
@@ -18,105 +18,94 @@
* ======================================================== */
!
function
(
$
)
{
!
function
(
$
)
{
"
use strict
"
;
"
use strict
"
;
// jshint ;_;
/* TAB CLASS DEFINITION
* ==================== */
// 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
}
Tab
.
prototype
.
show
=
function
()
{
var
$this
=
this
.
element
var
$ul
=
$this
.
closest
(
'
ul:not(.dropdown-menu)
'
)
var
selector
=
$this
.
attr
(
'
data-target
'
)
if
(
$this
.
parent
(
'
li
'
).
hasClass
(
'
active
'
)
)
return
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
previous
=
$ul
.
find
(
'
.active:last a
'
)[
0
]
if
(
$this
.
parent
(
'
li
'
).
hasClass
(
'
active
'
))
return
e
=
$
.
Event
(
'
show
'
,
{
relatedTarget
:
previous
})
var
previous
=
$ul
.
find
(
'
.active:last a
'
)[
0
]
var
e
=
$
.
Event
(
'
bs:tab:show
'
,
{
relatedTarget
:
previous
})
$this
.
trigger
(
e
)
$this
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
if
(
e
.
isDefaultPrevented
())
return
$target
=
$
(
selector
)
var
$target
=
$
(
selector
)
this
.
activate
(
$this
.
parent
(
'
li
'
),
$ul
)
this
.
activate
(
$target
,
$target
.
parent
(),
function
()
{
$this
.
trigger
({
type
:
'
shown
'
,
relatedTarget
:
previous
})
this
.
activate
(
$this
.
parent
(
'
li
'
),
$ul
)
this
.
activate
(
$target
,
$target
.
parent
(),
function
()
{
$this
.
trigger
({
type
:
'
bs:tab: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
()
Tab
.
prototype
.
activate
=
function
(
element
,
container
,
callback
)
{
var
$active
=
container
.
find
(
'
> .active
'
)
var
transition
=
callback
&&
$
.
support
.
transition
&&
$active
.
hasClass
(
'
fade
'
)
function
next
()
{
$active
.
removeClass
(
'
active
'
)
.
find
(
'
> .dropdown-menu > .active
'
)
.
removeClass
(
'
active
'
)
element
.
addClass
(
'
active
'
)
if
(
transition
)
{
element
[
0
].
offsetWidth
// reflow for transition
element
.
addClass
(
'
in
'
)
}
else
{
element
.
removeClass
(
'
fade
'
)
}
transition
?
$active
.
one
(
$
.
support
.
transition
.
end
,
next
)
:
next
()
if
(
element
.
parent
(
'
.dropdown-menu
'
))
{
element
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
}
$active
.
removeClass
(
'
in
'
)
callback
&&
callback
(
)
}
transition
?
$active
.
one
(
$
.
support
.
transition
.
end
,
next
)
:
next
()
$active
.
removeClass
(
'
in
'
)
}
/*
TAB PLUGIN DEFINITION
* ===================== */
//
TAB PLUGIN DEFINITION
// =====================
var
old
=
$
.
fn
.
tab
$
.
fn
.
tab
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
tab
'
)
if
(
!
data
)
$this
.
data
(
'
tab
'
,
(
data
=
new
Tab
(
this
)))
var
data
=
$this
.
data
(
'
bs-tab
'
)
if
(
!
data
)
$this
.
data
(
'
bs-tab
'
,
(
data
=
new
Tab
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
...
...
@@ -124,8 +113,8 @@
$
.
fn
.
tab
.
Constructor
=
Tab
/*
TAB NO CONFLICT
* =============== */
//
TAB NO CONFLICT
// ===============
$
.
fn
.
tab
.
noConflict
=
function
()
{
$
.
fn
.
tab
=
old
...
...
@@ -133,8 +122,8 @@
}
/*
TAB DATA-API
* ============ */
//
TAB DATA-API
// ============
$
(
document
).
on
(
'
click.tab.data-api
'
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
e
)
{
e
.
preventDefault
()
...
...
js/tooltip.js
View file @
149ecd21
...
...
@@ -19,317 +19,319 @@
* ========================================================== */
!
function
(
$
)
{
!
function
(
$
)
{
"
use strict
"
;
"
use strict
"
;
// jshint ;_;
/* TOOLTIP PUBLIC CLASS DEFINITION
* =============================== */
// TOOLTIP PUBLIC CLASS DEFINITION
// ===============================
var
Tooltip
=
function
(
element
,
options
)
{
this
.
type
=
this
.
options
=
this
.
enabled
=
this
.
timeout
=
this
.
hoverState
=
this
.
$element
=
null
this
.
init
(
'
tooltip
'
,
element
,
options
)
}
Tooltip
.
prototype
=
{
constructor
:
Tooltip
,
init
:
function
(
type
,
element
,
options
)
{
var
eventIn
,
eventOut
,
triggers
,
trigger
,
i
this
.
type
=
type
this
.
$element
=
$
(
element
)
this
.
options
=
this
.
getOptions
(
options
)
this
.
enabled
=
true
triggers
=
this
.
options
.
trigger
.
split
(
'
'
)
for
(
i
=
triggers
.
length
;
i
--
;)
{
trigger
=
triggers
[
i
]
if
(
trigger
==
'
click
'
)
{
this
.
$element
.
on
(
'
click.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
toggle
,
this
))
}
else
if
(
trigger
!=
'
manual
'
)
{
eventIn
=
trigger
==
'
hover
'
?
'
mouseenter
'
:
'
focus
'
eventOut
=
trigger
==
'
hover
'
?
'
mouseleave
'
:
'
blur
'
this
.
$element
.
on
(
eventIn
+
'
.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
enter
,
this
))
this
.
$element
.
on
(
eventOut
+
'
.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
leave
,
this
))
}
}
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
}
this
.
options
.
selector
?
(
this
.
_options
=
$
.
extend
({},
this
.
options
,
{
trigger
:
'
manual
'
,
selector
:
''
}))
:
this
.
fixTitle
()
}
Tooltip
.
prototype
.
init
=
function
(
type
,
element
,
options
)
{
this
.
type
=
type
this
.
options
=
this
.
getOptions
(
options
)
this
.
enabled
=
true
this
.
$element
=
$
(
element
)
,
getOptions
:
function
(
options
)
{
options
=
$
.
extend
({},
$
.
fn
[
this
.
type
].
defaults
,
this
.
$element
.
data
(),
options
)
var
triggers
=
this
.
options
.
trigger
.
split
(
'
'
)
if
(
options
.
delay
&&
typeof
options
.
delay
==
'
number
'
)
{
options
.
delay
=
{
show
:
options
.
delay
,
hide
:
options
.
delay
}
for
(
var
i
=
triggers
.
length
;
i
--
;)
{
var
trigger
=
triggers
[
i
]
if
(
trigger
==
'
click
'
)
{
this
.
$element
.
on
(
'
click.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
toggle
,
this
))
}
else
if
(
trigger
!=
'
manual
'
)
{
var
eventIn
=
trigger
==
'
hover
'
?
'
mouseenter
'
:
'
focus
'
var
eventOut
=
trigger
==
'
hover
'
?
'
mouseleave
'
:
'
blur
'
this
.
$element
.
on
(
eventIn
+
'
.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
enter
,
this
))
this
.
$element
.
on
(
eventOut
+
'
.
'
+
this
.
type
,
this
.
options
.
selector
,
$
.
proxy
(
this
.
leave
,
this
))
}
}
this
.
options
.
selector
?
(
this
.
_options
=
$
.
extend
({},
this
.
options
,
{
trigger
:
'
manual
'
,
selector
:
''
}))
:
this
.
fixTitle
()
}
Tooltip
.
prototype
.
getDefaults
=
function
()
{
return
Tooltip
.
DEFAULTS
}
Tooltip
.
prototype
.
getOptions
=
function
(
options
)
{
options
=
$
.
extend
({},
this
.
getDefaults
(),
this
.
$element
.
data
(),
options
)
return
options
if
(
options
.
delay
&&
typeof
options
.
delay
==
'
number
'
)
{
options
.
delay
=
{
show
:
options
.
delay
,
hide
:
options
.
delay
}
}
,
enter
:
function
(
e
)
{
var
defaults
=
$
.
fn
[
this
.
type
].
defaults
,
options
=
{}
,
self
return
options
}
this
.
_options
&&
$
.
each
(
this
.
_options
,
function
(
key
,
valu
e
)
{
if
(
defaults
[
key
]
!=
value
)
options
[
key
]
=
value
},
this
)
Tooltip
.
prototype
.
enter
=
function
(
e
)
{
var
defaults
=
$
.
fn
[
this
.
type
].
defaults
var
options
=
{}
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
options
).
data
(
this
.
type
)
this
.
_options
&&
$
.
each
(
this
.
_options
,
function
(
key
,
value
)
{
if
(
defaults
[
key
]
!=
value
)
options
[
key
]
=
value
},
this
)
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
show
)
return
self
.
show
(
)
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
options
).
data
(
this
.
type
)
clearTimeout
(
this
.
timeout
)
self
.
hoverState
=
'
in
'
this
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
in
'
)
self
.
show
()
},
self
.
options
.
delay
.
show
)
}
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
show
)
return
self
.
show
()
,
leave
:
function
(
e
)
{
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
)
clearTimeout
(
this
.
timeout
)
if
(
this
.
timeout
)
clearTimeout
(
this
.
timeout
)
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
hide
)
return
self
.
hide
()
self
.
hoverState
=
'
in
'
this
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
in
'
)
self
.
show
()
},
self
.
options
.
delay
.
show
)
}
self
.
hoverState
=
'
out
'
this
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
out
'
)
self
.
hide
()
},
self
.
options
.
delay
.
hide
)
}
Tooltip
.
prototype
.
leave
=
function
(
e
)
{
var
self
=
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
)
if
(
this
.
timeout
)
clearTimeout
(
this
.
timeout
)
if
(
!
self
.
options
.
delay
||
!
self
.
options
.
delay
.
hide
)
return
self
.
hide
()
,
show
:
function
()
{
var
$tip
,
pos
,
actualWidth
,
actualHeight
,
placement
,
tp
,
e
=
$
.
Event
(
'
show
'
)
self
.
hoverState
=
'
out
'
this
.
timeout
=
setTimeout
(
function
()
{
if
(
self
.
hoverState
==
'
out
'
)
self
.
hide
()
},
self
.
options
.
delay
.
hide
)
}
if
(
this
.
hasContent
()
&&
this
.
enabled
)
{
this
.
$element
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
$tip
=
this
.
tip
()
this
.
setContent
()
Tooltip
.
prototype
.
show
=
function
()
{
var
e
=
$
.
Event
(
'
bs:
'
+
this
.
type
+
'
:show
'
)
if
(
this
.
options
.
animation
)
{
$tip
.
addClass
(
'
fade
'
)
}
if
(
this
.
hasContent
()
&&
this
.
enabled
)
{
this
.
$element
.
trigger
(
e
)
placement
=
typeof
this
.
options
.
placement
==
'
function
'
?
this
.
options
.
placement
.
call
(
this
,
$tip
[
0
],
this
.
$element
[
0
])
:
this
.
options
.
placement
if
(
e
.
isDefaultPrevented
())
return
$tip
.
detach
()
.
css
({
top
:
0
,
left
:
0
,
display
:
'
block
'
})
var
$tip
=
this
.
tip
()
this
.
options
.
container
?
$tip
.
appendTo
(
this
.
options
.
container
)
:
$tip
.
insertAfter
(
this
.
$element
)
this
.
setContent
(
)
pos
=
this
.
getPosition
(
)
if
(
this
.
options
.
animation
)
$tip
.
addClass
(
'
fade
'
)
actualWidth
=
$tip
[
0
].
offsetWidth
actualHeight
=
$tip
[
0
].
offsetHeight
var
placement
=
typeof
this
.
options
.
placement
==
'
function
'
?
this
.
options
.
placement
.
call
(
this
,
$tip
[
0
],
this
.
$element
[
0
])
:
this
.
options
.
placement
switch
(
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
}
this
.
applyPlacement
(
tp
,
placement
)
this
.
$element
.
trigger
(
'
shown
'
)
$tip
.
detach
()
.
css
({
top
:
0
,
left
:
0
,
display
:
'
block
'
})
this
.
options
.
container
?
$tip
.
appendTo
(
this
.
options
.
container
)
:
$tip
.
insertAfter
(
this
.
$element
)
var
tp
var
pos
=
this
.
getPosition
()
var
actualWidth
=
$tip
[
0
].
offsetWidth
var
actualHeight
=
$tip
[
0
].
offsetHeight
switch
(
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
}
this
.
applyPlacement
(
tp
,
placement
)
this
.
$element
.
trigger
(
'
shown
'
)
}
,
applyPlacement
:
function
(
offset
,
placement
){
var
$tip
=
this
.
tip
()
,
width
=
$tip
[
0
].
offsetWidth
,
height
=
$tip
[
0
].
offsetHeight
,
actualWidth
,
actualHeight
,
delta
,
replace
Tooltip
.
prototype
.
applyPlacement
=
function
(
offset
,
placement
)
{
var
$tip
=
this
.
tip
()
var
width
=
$tip
[
0
].
offsetWidth
var
height
=
$tip
[
0
].
offsetHeight
$tip
.
offset
(
offset
)
.
addClass
(
placement
)
.
addClass
(
'
in
'
)
$tip
.
offset
(
offset
)
.
addClass
(
placement
)
.
addClass
(
'
in
'
)
actualWidth
=
$tip
[
0
].
offsetWidth
actualHeight
=
$tip
[
0
].
offsetHeight
var
actualWidth
=
$tip
[
0
].
offsetWidth
var
actualHeight
=
$tip
[
0
].
offsetHeight
if
(
placement
==
'
top
'
&&
actualHeight
!=
height
)
{
offset
.
top
=
offset
.
top
+
height
-
actualHeight
replace
=
true
}
if
(
placement
==
'
top
'
&&
actualHeight
!=
height
)
{
var
replace
=
true
offset
.
top
=
offset
.
top
+
height
-
actualHeight
}
if
(
placement
==
'
bottom
'
||
placement
==
'
top
'
)
{
var
delta
=
0
if
(
placement
==
'
bottom
'
||
placement
==
'
top
'
)
{
delta
=
0
if
(
offset
.
left
<
0
){
delta
=
offset
.
left
*
-
2
offset
.
left
=
0
if
(
offset
.
left
<
0
){
delta
=
offset
.
left
*
-
2
offset
.
left
=
0
$tip
.
offset
(
offset
)
actualWidth
=
$tip
[
0
].
offsetWidth
actualHeight
=
$tip
[
0
].
offsetHeight
}
$tip
.
offset
(
offset
)
this
.
replaceArrow
(
delta
-
width
+
actualWidth
,
actualWidth
,
'
left
'
)
}
else
{
this
.
replaceArrow
(
actualHeight
-
height
,
actualHeight
,
'
top
'
)
actualWidth
=
$tip
[
0
].
offsetWidth
actualHeight
=
$tip
[
0
].
offsetHeight
}
if
(
replace
)
$tip
.
offset
(
offset
)
this
.
replaceArrow
(
delta
-
width
+
actualWidth
,
actualWidth
,
'
left
'
)
}
else
{
this
.
replaceArrow
(
actualHeight
-
height
,
actualHeight
,
'
top
'
)
}
,
replaceArrow
:
function
(
delta
,
dimension
,
position
){
this
.
arrow
()
.
css
(
position
,
delta
?
(
50
*
(
1
-
delta
/
dimension
)
+
"
%
"
)
:
''
)
}
if
(
replace
)
$tip
.
offset
(
offset
)
}
,
setContent
:
function
()
{
var
$tip
=
this
.
tip
(
)
,
title
=
this
.
getTitle
()
Tooltip
.
prototype
.
replaceArrow
=
function
(
delta
,
dimension
,
position
)
{
this
.
arrow
().
css
(
position
,
delta
?
(
50
*
(
1
-
delta
/
dimension
)
+
"
%
"
)
:
''
)
}
$tip
.
find
(
'
.tooltip-inner
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
removeClass
(
'
fade in top bottom left right
'
)
}
Tooltip
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
(
)
var
title
=
this
.
getTitle
()
,
hide
:
function
()
{
var
that
=
this
,
$tip
=
this
.
tip
()
,
e
=
$
.
Event
(
'
hide
'
)
$tip
.
find
(
'
.tooltip-inner
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
removeClass
(
'
fade in top bottom left right
'
)
}
this
.
$element
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
Tooltip
.
prototype
.
hide
=
function
()
{
var
that
=
this
var
$tip
=
this
.
tip
()
var
e
=
$
.
Event
(
'
hide
'
)
$tip
.
removeClass
(
'
in
'
)
this
.
$element
.
trigger
(
e
)
function
removeWithAnimation
()
{
var
timeout
=
setTimeout
(
function
()
{
$tip
.
off
(
$
.
support
.
transition
.
end
).
detach
()
},
500
)
if
(
e
.
isDefaultPrevented
())
return
$tip
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
clearTimeout
(
timeout
)
$tip
.
detach
()
})
}
$tip
.
removeClass
(
'
in
'
)
function
removeWithAnimation
()
{
var
timeout
=
setTimeout
(
function
()
{
$tip
.
off
(
$
.
support
.
transition
.
end
).
detach
()
},
500
)
$
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
'
fade
'
)
?
removeWithAnimation
()
:
$
tip
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
clearTimeout
(
timeout
)
$tip
.
detach
()
})
}
this
.
$element
.
trigger
(
'
hidden
'
)
$
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
'
fade
'
)
?
removeWithAnimation
()
:
$tip
.
detach
()
return
this
}
this
.
$element
.
trigger
(
'
hidden
'
)
,
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
'
,
''
)
}
}
return
this
}
,
hasContent
:
function
()
{
return
this
.
getTitle
()
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
'
,
''
)
}
}
,
getPosition
:
function
()
{
var
el
=
this
.
$element
[
0
]
return
$
.
extend
({},
(
typeof
el
.
getBoundingClientRect
==
'
function
'
)
?
el
.
getBoundingClientRect
()
:
{
width
:
el
.
offsetWidth
,
height
:
el
.
offsetHeight
},
this
.
$element
.
offset
())
}
Tooltip
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
}
,
getTitle
:
function
()
{
var
title
,
$e
=
this
.
$element
,
o
=
this
.
options
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
())
}
title
=
$e
.
attr
(
'
data-original-title
'
)
||
(
typeof
o
.
title
==
'
function
'
?
o
.
title
.
call
(
$e
[
0
])
:
o
.
title
)
Tooltip
.
prototype
.
getTitle
=
function
()
{
var
title
var
$e
=
this
.
$element
var
o
=
this
.
options
return
title
}
title
=
$e
.
attr
(
'
data-original-title
'
)
||
(
typeof
o
.
title
==
'
function
'
?
o
.
title
.
call
(
$e
[
0
])
:
o
.
title
)
,
tip
:
function
()
{
return
this
.
$tip
=
this
.
$tip
||
$
(
this
.
options
.
template
)
}
return
title
}
,
arrow
:
function
()
{
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
"
.tooltip-arrow
"
)
}
Tooltip
.
prototype
.
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
}
}
Tooltip
.
prototype
.
arrow
=
function
(){
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
"
.tooltip-arrow
"
)
}
,
enable
:
function
()
{
this
.
enabled
=
true
Tooltip
.
prototype
.
validate
=
function
()
{
if
(
!
this
.
$element
[
0
].
parentNode
)
{
this
.
hide
()
this
.
$element
=
null
this
.
options
=
null
}
}
,
disable
:
function
()
{
this
.
enabled
=
fals
e
}
Tooltip
.
prototype
.
enable
=
function
()
{
this
.
enabled
=
tru
e
}
,
toggleEnabled
:
function
()
{
this
.
enabled
=
!
this
.
enabled
}
Tooltip
.
prototype
.
disable
=
function
()
{
this
.
enabled
=
false
}
,
toggle
:
function
(
e
)
{
var
self
=
e
?
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
)
:
this
self
.
tip
().
hasClass
(
'
in
'
)
?
self
.
hide
()
:
self
.
show
()
}
Tooltip
.
prototype
.
toggleEnabled
=
function
()
{
this
.
enabled
=
!
this
.
enabled
}
,
destroy
:
function
()
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
this
.
type
)
}
Tooltip
.
prototype
.
toggle
=
function
(
e
)
{
var
self
=
e
?
$
(
e
.
currentTarget
)[
this
.
type
](
this
.
_options
).
data
(
this
.
type
)
:
this
self
.
tip
().
hasClass
(
'
in
'
)
?
self
.
hide
()
:
self
.
show
()
}
Tooltip
.
prototype
.
destroy
=
function
()
{
this
.
hide
().
$element
.
off
(
'
.
'
+
this
.
type
).
removeData
(
this
.
type
)
}
/*
TOOLTIP PLUGIN DEFINITION
* ========================= */
//
TOOLTIP PLUGIN DEFINITION
// =========================
var
old
=
$
.
fn
.
tooltip
$
.
fn
.
tooltip
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
,
data
=
$this
.
data
(
'
tooltip
'
)
,
options
=
typeof
option
==
'
object
'
&&
option
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
tooltip
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
tooltip
'
,
(
data
=
new
Tooltip
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
...
...
@@ -337,21 +339,9 @@
$
.
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 focus
'
,
title
:
''
,
delay
:
0
,
html
:
false
,
container
:
false
}
/*
TOOLTIP NO CONFLICT
* =================== */
//
TOOLTIP NO CONFLICT
// ===================
$
.
fn
.
tooltip
.
noConflict
=
function
()
{
$
.
fn
.
tooltip
=
old
...
...
js/transition.js
View file @
149ecd21
...
...
@@ -18,33 +18,30 @@
* ========================================================== */
!
function
(
$
)
{
!
function
(
$
)
{
"
use strict
"
;
"
use strict
"
;
/* CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
* ======================================================= */
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
// ============================================================
function
transitionEnd
()
{
var
el
=
document
.
createElement
(
'
bootstrap
'
)
;
var
el
=
document
.
createElement
(
'
bootstrap
'
)
var
transEndEventNames
=
{
'
WebkitTransition
'
:
'
webkitTransitionEnd
'
,
'
MozTransition
'
:
'
transitionend
'
,
'
OTransition
'
:
'
oTransitionEnd otransitionend
'
,
'
transition
'
:
'
transitionend
'
}
;
'
WebkitTransition
'
:
'
webkitTransitionEnd
'
,
'
MozTransition
'
:
'
transitionend
'
,
'
OTransition
'
:
'
oTransitionEnd otransitionend
'
,
'
transition
'
:
'
transitionend
'
}
for
(
var
name
in
transEndEventNames
)
{
if
(
el
.
style
[
name
]
!==
undefined
)
{
return
{
end
:
transEndEventNames
[
name
]
}
;
return
{
end
:
transEndEventNames
[
name
]
}
}
}
}
$
(
function
()
{
$
.
support
.
transition
=
transitionEnd
()
;
})
;
$
.
support
.
transition
=
transitionEnd
()
})
}(
window
.
jQuery
);
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