Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
todomvc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Eugene Shen
todomvc
Commits
b2b300be
Commit
b2b300be
authored
Apr 21, 2012
by
Sindre Sorhus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Some after-merge cleanup
parent
86c4c86f
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
0 additions
and
54 deletions
+0
-54
assets/base.css
assets/base.css
+0
-0
assets/bg.png
assets/bg.png
+0
-0
assets/handlebars.min.js
assets/handlebars.min.js
+0
-0
assets/jquery.min.js
assets/jquery.min.js
+0
-0
labs/site/css/bootstrap-responsive.min.css
labs/site/css/bootstrap-responsive.min.css
+0
-12
labs/site/js/bootstrap.min.js
labs/site/js/bootstrap.min.js
+0
-6
labs/site/js/jquery.hoverIntent.min.js
labs/site/js/jquery.hoverIntent.min.js
+0
-9
labs/site/js/main.js
labs/site/js/main.js
+0
-27
reference-examples/vanillajs/css/destroy.png
reference-examples/vanillajs/css/destroy.png
+0
-0
reference-examples/vanillajs/css/todos.css
reference-examples/vanillajs/css/todos.css
+0
-0
reference-examples/vanillajs/index.html
reference-examples/vanillajs/index.html
+0
-0
reference-examples/vanillajs/js/json2.js
reference-examples/vanillajs/js/json2.js
+0
-0
reference-examples/vanillajs/js/todo.js
reference-examples/vanillajs/js/todo.js
+0
-0
site/css/bootstrap-responsive.css
site/css/bootstrap-responsive.css
+0
-0
site/css/bootstrap.css
site/css/bootstrap.css
+0
-0
site/css/bootstrap.min.css
site/css/bootstrap.min.css
+0
-0
site/css/main.css
site/css/main.css
+0
-0
site/js/bootstrap.js
site/js/bootstrap.js
+0
-0
site/screenshot.png
site/screenshot.png
+0
-0
No files found.
labs/
assets/base.css
→
assets/base.css
View file @
b2b300be
File moved
labs/
assets/bg.png
→
assets/bg.png
View file @
b2b300be
File moved
labs/
assets/handlebars.min.js
→
assets/handlebars.min.js
View file @
b2b300be
File moved
labs/
assets/jquery.min.js
→
assets/jquery.min.js
View file @
b2b300be
File moved
labs/site/css/bootstrap-responsive.min.css
deleted
100644 → 0
View file @
86c4c86f
.clearfix
{
*
zoom
:
1
;}
.clearfix
:before
,
.clearfix
:after
{
display
:
table
;
content
:
""
;}
.clearfix
:after
{
clear
:
both
;}
.hide-text
{
overflow
:
hidden
;
text-indent
:
100%
;
white-space
:
nowrap
;}
.input-block-level
{
display
:
block
;
width
:
100%
;
min-height
:
28px
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
-ms-box-sizing
:
border-box
;
box-sizing
:
border-box
;}
.hidden
{
display
:
none
;
visibility
:
hidden
;}
.visible-phone
{
display
:
none
;}
.visible-tablet
{
display
:
none
;}
.visible-desktop
{
display
:
block
;}
.hidden-phone
{
display
:
block
;}
.hidden-tablet
{
display
:
block
;}
.hidden-desktop
{
display
:
none
;}
@media
(
max-width
:
767px
){
.visible-phone
{
display
:
block
;}
.hidden-phone
{
display
:
none
;}
.hidden-desktop
{
display
:
block
;}
.visible-desktop
{
display
:
none
;}}
@media
(
min-width
:
768px
)
and
(
max-width
:
979px
){
.visible-tablet
{
display
:
block
;}
.hidden-tablet
{
display
:
none
;}
.hidden-desktop
{
display
:
block
;}
.visible-desktop
{
display
:
none
;}}
@media
(
max-width
:
480px
){
.nav-collapse
{
-webkit-transform
:
translate3d
(
0
,
0
,
0
);}
.page-header
h1
small
{
display
:
block
;
line-height
:
18px
;}
input
[
type
=
"checkbox"
],
input
[
type
=
"radio"
]
{
border
:
1px
solid
#ccc
;}
.form-horizontal
.control-group
>
label
{
float
:
none
;
width
:
auto
;
padding-top
:
0
;
text-align
:
left
;}
.form-horizontal
.controls
{
margin-left
:
0
;}
.form-horizontal
.control-list
{
padding-top
:
0
;}
.form-horizontal
.form-actions
{
padding-left
:
10px
;
padding-right
:
10px
;}
.modal
{
position
:
absolute
;
top
:
10px
;
left
:
10px
;
right
:
10px
;
width
:
auto
;
margin
:
0
;}
.modal.fade.in
{
top
:
auto
;}
.modal-header
.close
{
padding
:
10px
;
margin
:
-10px
;}
.carousel-caption
{
position
:
static
;}}
@media
(
max-width
:
767px
){
body
{
padding-left
:
20px
;
padding-right
:
20px
;}
.navbar-fixed-top
{
margin-left
:
-20px
;
margin-right
:
-20px
;}
.container
{
width
:
auto
;}
.row-fluid
{
width
:
100%
;}
.row
{
margin-left
:
0
;}
.row
>[
class
*=
"span"
],
.row-fluid
>[
class
*=
"span"
]
{
float
:
none
;
display
:
block
;
width
:
auto
;
margin
:
0
;}
.thumbnails
[
class
*=
"span"
]
{
width
:
auto
;}
input
[
class
*=
"span"
],
select
[
class
*=
"span"
],
textarea
[
class
*=
"span"
],
.uneditable-input
{
display
:
block
;
width
:
100%
;
min-height
:
28px
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
-ms-box-sizing
:
border-box
;
box-sizing
:
border-box
;}
.input-prepend
input
[
class
*=
"span"
],
.input-append
input
[
class
*=
"span"
]
{
width
:
auto
;}}
@media
(
min-width
:
768px
)
and
(
max-width
:
979px
){
.row
{
margin-left
:
-20px
;
*
zoom
:
1
;}
.row
:before
,
.row
:after
{
display
:
table
;
content
:
""
;}
.row
:after
{
clear
:
both
;}
[
class
*=
"span"
]
{
float
:
left
;
margin-left
:
20px
;}
.container
,
.navbar-fixed-top
.container
,
.navbar-fixed-bottom
.container
{
width
:
724px
;}
.span12
{
width
:
724px
;}
.span11
{
width
:
662px
;}
.span10
{
width
:
600px
;}
.span9
{
width
:
538px
;}
.span8
{
width
:
476px
;}
.span7
{
width
:
414px
;}
.span6
{
width
:
352px
;}
.span5
{
width
:
290px
;}
.span4
{
width
:
228px
;}
.span3
{
width
:
166px
;}
.span2
{
width
:
104px
;}
.span1
{
width
:
42px
;}
.offset12
{
margin-left
:
764px
;}
.offset11
{
margin-left
:
702px
;}
.offset10
{
margin-left
:
640px
;}
.offset9
{
margin-left
:
578px
;}
.offset8
{
margin-left
:
516px
;}
.offset7
{
margin-left
:
454px
;}
.offset6
{
margin-left
:
392px
;}
.offset5
{
margin-left
:
330px
;}
.offset4
{
margin-left
:
268px
;}
.offset3
{
margin-left
:
206px
;}
.offset2
{
margin-left
:
144px
;}
.offset1
{
margin-left
:
82px
;}
.row-fluid
{
width
:
100%
;
*
zoom
:
1
;}
.row-fluid
:before
,
.row-fluid
:after
{
display
:
table
;
content
:
""
;}
.row-fluid
:after
{
clear
:
both
;}
.row-fluid
>[
class
*=
"span"
]
{
float
:
left
;
margin-left
:
2.762430939%
;}
.row-fluid
>[
class
*=
"span"
]
:first-child
{
margin-left
:
0
;}
.row-fluid
>
.span12
{
width
:
99.999999993%
;}
.row-fluid
>
.span11
{
width
:
91.436464082%
;}
.row-fluid
>
.span10
{
width
:
82.87292817100001%
;}
.row-fluid
>
.span9
{
width
:
74.30939226%
;}
.row-fluid
>
.span8
{
width
:
65.74585634900001%
;}
.row-fluid
>
.span7
{
width
:
57.182320438000005%
;}
.row-fluid
>
.span6
{
width
:
48.618784527%
;}
.row-fluid
>
.span5
{
width
:
40.055248616%
;}
.row-fluid
>
.span4
{
width
:
31.491712705%
;}
.row-fluid
>
.span3
{
width
:
22.928176794%
;}
.row-fluid
>
.span2
{
width
:
14.364640883%
;}
.row-fluid
>
.span1
{
width
:
5.801104972%
;}
input
,
textarea
,
.uneditable-input
{
margin-left
:
0
;}
input
.span12
,
textarea
.span12
,
.uneditable-input.span12
{
width
:
714px
;}
input
.span11
,
textarea
.span11
,
.uneditable-input.span11
{
width
:
652px
;}
input
.span10
,
textarea
.span10
,
.uneditable-input.span10
{
width
:
590px
;}
input
.span9
,
textarea
.span9
,
.uneditable-input.span9
{
width
:
528px
;}
input
.span8
,
textarea
.span8
,
.uneditable-input.span8
{
width
:
466px
;}
input
.span7
,
textarea
.span7
,
.uneditable-input.span7
{
width
:
404px
;}
input
.span6
,
textarea
.span6
,
.uneditable-input.span6
{
width
:
342px
;}
input
.span5
,
textarea
.span5
,
.uneditable-input.span5
{
width
:
280px
;}
input
.span4
,
textarea
.span4
,
.uneditable-input.span4
{
width
:
218px
;}
input
.span3
,
textarea
.span3
,
.uneditable-input.span3
{
width
:
156px
;}
input
.span2
,
textarea
.span2
,
.uneditable-input.span2
{
width
:
94px
;}
input
.span1
,
textarea
.span1
,
.uneditable-input.span1
{
width
:
32px
;}}
@media
(
max-width
:
979px
){
body
{
padding-top
:
0
;}
.navbar-fixed-top
{
position
:
static
;
margin-bottom
:
18px
;}
.navbar-fixed-top
.navbar-inner
{
padding
:
5px
;}
.navbar
.container
{
width
:
auto
;
padding
:
0
;}
.navbar
.brand
{
padding-left
:
10px
;
padding-right
:
10px
;
margin
:
0
0
0
-5px
;}
.navbar
.nav-collapse
{
clear
:
left
;}
.navbar
.nav
{
float
:
none
;
margin
:
0
0
9px
;}
.navbar
.nav
>
li
{
float
:
none
;}
.navbar
.nav
>
li
>
a
{
margin-bottom
:
2px
;}
.navbar
.nav
>
.divider-vertical
{
display
:
none
;}
.navbar
.nav
.nav-header
{
color
:
#999999
;
text-shadow
:
none
;}
.navbar
.nav
>
li
>
a
,
.navbar
.dropdown-menu
a
{
padding
:
6px
15px
;
font-weight
:
bold
;
color
:
#999999
;
-webkit-border-radius
:
3px
;
-moz-border-radius
:
3px
;
border-radius
:
3px
;}
.navbar
.dropdown-menu
li
+
li
a
{
margin-bottom
:
2px
;}
.navbar
.nav
>
li
>
a
:hover
,
.navbar
.dropdown-menu
a
:hover
{
background-color
:
#222222
;}
.navbar
.dropdown-menu
{
position
:
static
;
top
:
auto
;
left
:
auto
;
float
:
none
;
display
:
block
;
max-width
:
none
;
margin
:
0
15px
;
padding
:
0
;
background-color
:
transparent
;
border
:
none
;
-webkit-border-radius
:
0
;
-moz-border-radius
:
0
;
border-radius
:
0
;
-webkit-box-shadow
:
none
;
-moz-box-shadow
:
none
;
box-shadow
:
none
;}
.navbar
.dropdown-menu
:before
,
.navbar
.dropdown-menu
:after
{
display
:
none
;}
.navbar
.dropdown-menu
.divider
{
display
:
none
;}
.navbar-form
,
.navbar-search
{
float
:
none
;
padding
:
9px
15px
;
margin
:
9px
0
;
border-top
:
1px
solid
#222222
;
border-bottom
:
1px
solid
#222222
;
-webkit-box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
),
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
);
-moz-box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
),
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
);
box-shadow
:
inset
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
),
0
1px
0
rgba
(
255
,
255
,
255
,
0.1
);}
.navbar
.nav.pull-right
{
float
:
none
;
margin-left
:
0
;}
.navbar-static
.navbar-inner
{
padding-left
:
10px
;
padding-right
:
10px
;}
.btn-navbar
{
display
:
block
;}
.nav-collapse
{
overflow
:
hidden
;
height
:
0
;}}
@media
(
min-width
:
980px
){
.nav-collapse.collapse
{
height
:
auto
!important
;
overflow
:
visible
!important
;}}
@media
(
min-width
:
1200px
){
.row
{
margin-left
:
-30px
;
*
zoom
:
1
;}
.row
:before
,
.row
:after
{
display
:
table
;
content
:
""
;}
.row
:after
{
clear
:
both
;}
[
class
*=
"span"
]
{
float
:
left
;
margin-left
:
30px
;}
.container
,
.navbar-fixed-top
.container
,
.navbar-fixed-bottom
.container
{
width
:
1170px
;}
.span12
{
width
:
1170px
;}
.span11
{
width
:
1070px
;}
.span10
{
width
:
970px
;}
.span9
{
width
:
870px
;}
.span8
{
width
:
770px
;}
.span7
{
width
:
670px
;}
.span6
{
width
:
570px
;}
.span5
{
width
:
470px
;}
.span4
{
width
:
370px
;}
.span3
{
width
:
270px
;}
.span2
{
width
:
170px
;}
.span1
{
width
:
70px
;}
.offset12
{
margin-left
:
1230px
;}
.offset11
{
margin-left
:
1130px
;}
.offset10
{
margin-left
:
1030px
;}
.offset9
{
margin-left
:
930px
;}
.offset8
{
margin-left
:
830px
;}
.offset7
{
margin-left
:
730px
;}
.offset6
{
margin-left
:
630px
;}
.offset5
{
margin-left
:
530px
;}
.offset4
{
margin-left
:
430px
;}
.offset3
{
margin-left
:
330px
;}
.offset2
{
margin-left
:
230px
;}
.offset1
{
margin-left
:
130px
;}
.row-fluid
{
width
:
100%
;
*
zoom
:
1
;}
.row-fluid
:before
,
.row-fluid
:after
{
display
:
table
;
content
:
""
;}
.row-fluid
:after
{
clear
:
both
;}
.row-fluid
>[
class
*=
"span"
]
{
float
:
left
;
margin-left
:
2.564102564%
;}
.row-fluid
>[
class
*=
"span"
]
:first-child
{
margin-left
:
0
;}
.row-fluid
>
.span12
{
width
:
100%
;}
.row-fluid
>
.span11
{
width
:
91.45299145300001%
;}
.row-fluid
>
.span10
{
width
:
82.905982906%
;}
.row-fluid
>
.span9
{
width
:
74.358974359%
;}
.row-fluid
>
.span8
{
width
:
65.81196581200001%
;}
.row-fluid
>
.span7
{
width
:
57.264957265%
;}
.row-fluid
>
.span6
{
width
:
48.717948718%
;}
.row-fluid
>
.span5
{
width
:
40.170940171000005%
;}
.row-fluid
>
.span4
{
width
:
31.623931624%
;}
.row-fluid
>
.span3
{
width
:
23.076923077%
;}
.row-fluid
>
.span2
{
width
:
14.529914530000001%
;}
.row-fluid
>
.span1
{
width
:
5.982905983%
;}
input
,
textarea
,
.uneditable-input
{
margin-left
:
0
;}
input
.span12
,
textarea
.span12
,
.uneditable-input.span12
{
width
:
1160px
;}
input
.span11
,
textarea
.span11
,
.uneditable-input.span11
{
width
:
1060px
;}
input
.span10
,
textarea
.span10
,
.uneditable-input.span10
{
width
:
960px
;}
input
.span9
,
textarea
.span9
,
.uneditable-input.span9
{
width
:
860px
;}
input
.span8
,
textarea
.span8
,
.uneditable-input.span8
{
width
:
760px
;}
input
.span7
,
textarea
.span7
,
.uneditable-input.span7
{
width
:
660px
;}
input
.span6
,
textarea
.span6
,
.uneditable-input.span6
{
width
:
560px
;}
input
.span5
,
textarea
.span5
,
.uneditable-input.span5
{
width
:
460px
;}
input
.span4
,
textarea
.span4
,
.uneditable-input.span4
{
width
:
360px
;}
input
.span3
,
textarea
.span3
,
.uneditable-input.span3
{
width
:
260px
;}
input
.span2
,
textarea
.span2
,
.uneditable-input.span2
{
width
:
160px
;}
input
.span1
,
textarea
.span1
,
.uneditable-input.span1
{
width
:
60px
;}
.thumbnails
{
margin-left
:
-30px
;}
.thumbnails
>
li
{
margin-left
:
30px
;}}
labs/site/js/bootstrap.min.js
deleted
100644 → 0
View file @
86c4c86f
/**
* 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
b
=
document
.
body
||
document
.
documentElement
,
c
=
b
.
style
,
d
=
c
.
transition
!==
undefined
||
c
.
WebkitTransition
!==
undefined
||
c
.
MozTransition
!==
undefined
||
c
.
MsTransition
!==
undefined
||
c
.
OTransition
!==
undefined
;
return
d
&&
{
end
:
function
(){
var
b
=
"
TransitionEnd
"
;
return
a
.
browser
.
webkit
?
b
=
"
webkitTransitionEnd
"
:
a
.
browser
.
mozilla
?
b
=
"
transitionend
"
:
a
.
browser
.
opera
&&
(
b
=
"
oTransitionEnd
"
),
b
}()}}()})}(
window
.
jQuery
),
!
function
(
a
){
"
use strict
"
;
var
b
=
'
[data-dismiss="alert"]
'
,
c
=
function
(
c
){
a
(
c
).
on
(
"
click
"
,
b
,
this
.
close
)};
c
.
prototype
=
{
constructor
:
c
,
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
),
e
.
trigger
(
"
close
"
),
b
&&
b
.
preventDefault
(),
e
.
length
||
(
e
=
c
.
hasClass
(
"
alert
"
)?
c
:
c
.
parent
()),
e
.
trigger
(
"
close
"
).
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
=
{
constructor
:
b
,
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
)},
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
=
a
.
extend
({},
a
.
fn
.
carousel
.
defaults
,
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
(){
return
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
(){
return
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
;
this
.
sliding
=!
0
,
f
&&
this
.
pause
(),
e
=
e
.
length
?
e
:
this
.
$element
.
find
(
"
.item
"
)[
h
]();
if
(
e
.
hasClass
(
"
active
"
))
return
;
return
!
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"
slide
"
)?(
this
.
$element
.
trigger
(
"
slide
"
),
d
.
removeClass
(
"
active
"
),
e
.
addClass
(
"
active
"
),
this
.
sliding
=!
1
,
this
.
$element
.
trigger
(
"
slid
"
)):(
e
.
addClass
(
b
),
e
[
0
].
offsetWidth
,
d
.
addClass
(
g
),
e
.
addClass
(
g
),
this
.
$element
.
trigger
(
"
slide
"
),
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
)})),
f
&&
this
.
cycle
(),
this
}},
a
.
fn
.
carousel
=
function
(
c
){
return
this
.
each
(
function
(){
var
d
=
a
(
this
),
e
=
d
.
data
(
"
carousel
"
),
f
=
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
]():
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
=
this
.
dimension
(),
c
=
a
.
camelCase
([
"
scroll
"
,
b
].
join
(
"
-
"
)),
d
=
this
.
$parent
&&
this
.
$parent
.
find
(
"
.in
"
),
e
;
d
&&
d
.
length
&&
(
e
=
d
.
data
(
"
collapse
"
),
d
.
collapse
(
"
hide
"
),
e
||
d
.
data
(
"
collapse
"
,
null
)),
this
.
$element
[
b
](
0
),
this
.
transition
(
"
addClass
"
,
"
show
"
,
"
shown
"
),
this
.
$element
[
b
](
this
.
$element
[
0
][
c
])},
hide
:
function
(){
var
a
=
this
.
dimension
();
this
.
reset
(
this
.
$element
[
a
]()),
this
.
transition
(
"
removeClass
"
,
"
hide
"
,
"
hidden
"
),
this
.
$element
[
a
](
0
)},
reset
:
function
(
a
){
var
b
=
this
.
dimension
();
return
this
.
$element
.
removeClass
(
"
collapse
"
)[
b
](
a
||
"
auto
"
)[
0
].
offsetWidth
,
this
.
$element
[
a
?
"
addClass
"
:
"
removeClass
"
](
"
collapse
"
),
this
},
transition
:
function
(
b
,
c
,
d
){
var
e
=
this
,
f
=
function
(){
c
==
"
show
"
&&
e
.
reset
(),
e
.
$element
.
trigger
(
d
)};
this
.
$element
.
trigger
(
c
)[
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
=
c
.
attr
(
"
data-target
"
),
f
,
g
;
return
e
||
(
e
=
c
.
attr
(
"
href
"
),
e
=
e
&&
e
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
f
=
a
(
e
),
f
.
length
||
(
f
=
c
.
parent
()),
g
=
f
.
hasClass
(
"
open
"
),
d
(),
!
g
&&
f
.
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.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
;
if
(
this
.
isShown
)
return
;
a
(
"
body
"
).
addClass
(
"
modal-open
"
),
this
.
isShown
=!
0
,
this
.
$element
.
trigger
(
"
show
"
),
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
();
if
(
!
this
.
isShown
)
return
;
var
e
=
this
;
this
.
isShown
=!
1
,
a
(
"
body
"
).
removeClass
(
"
modal-open
"
),
g
.
call
(
this
),
this
.
$element
.
trigger
(
"
hide
"
).
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
);
!
c
.
options
.
delay
||!
c
.
options
.
delay
.
show
?
c
.
show
():(
c
.
hoverState
=
"
in
"
,
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
);
!
c
.
options
.
delay
||!
c
.
options
.
delay
.
hide
?
c
.
hide
():(
c
.
hoverState
=
"
out
"
,
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
"
)}},
setContent
:
function
(){
var
a
=
this
.
tip
();
a
.
find
(
"
.tooltip-inner
"
).
html
(
this
.
getTitle
()),
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
=
(
a
||
""
).
toString
().
replace
(
/
(
^
\s
*|
\s
*$
)
/
,
""
),
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
,
delay
:
0
,
selector
:
!
1
,
placement
:
"
top
"
,
trigger
:
"
hover
"
,
title
:
""
,
template
:
'
<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>
'
}}(
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
b
=
this
.
tip
(),
c
=
this
.
getTitle
(),
d
=
this
.
getContent
();
b
.
find
(
"
.popover-title
"
)[
a
.
type
(
c
)
==
"
object
"
?
"
append
"
:
"
html
"
](
c
),
b
.
find
(
"
.popover-content > *
"
)[
a
.
type
(
d
)
==
"
object
"
?
"
append
"
:
"
html
"
](
d
),
b
.
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
=
a
.
toString
().
replace
(
/
(
^
\s
*|
\s
*$
)
/
,
""
),
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
(){
this
.
targets
=
this
.
$body
.
find
(
this
.
selector
).
map
(
function
(){
var
b
=
a
(
this
).
attr
(
"
href
"
);
return
/^#
\w
/
.
test
(
b
)
&&
a
(
b
).
length
?
b
:
null
}),
this
.
offsets
=
a
.
map
(
this
.
targets
,
function
(
b
){
return
a
(
b
).
position
().
top
})},
process
:
function
(){
var
a
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
b
=
this
.
offsets
,
c
=
this
.
targets
,
d
=
this
.
activeTarget
,
e
;
for
(
e
=
b
.
length
;
e
--
;)
d
!=
c
[
e
]
&&
a
>=
b
[
e
]
&&
(
!
b
[
e
+
1
]
||
a
<=
b
[
e
+
1
])
&&
this
.
activate
(
c
[
e
])},
activate
:
function
(
a
){
var
b
;
this
.
activeTarget
=
a
,
this
.
$body
.
find
(
this
.
selector
).
parent
(
"
.active
"
).
removeClass
(
"
active
"
),
b
=
this
.
$body
.
find
(
this
.
selector
+
'
[href="
'
+
a
+
'
"]
'
).
parent
(
"
li
"
).
addClass
(
"
active
"
),
b
.
parent
(
"
.dropdown-menu
"
)
&&
b
.
closest
(
"
li.dropdown
"
).
addClass
(
"
active
"
)}},
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
;
d
||
(
d
=
b
.
attr
(
"
href
"
),
d
=
d
&&
d
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
if
(
b
.
parent
(
"
li
"
).
hasClass
(
"
active
"
))
return
;
e
=
c
.
find
(
"
.active a
"
).
last
()[
0
],
b
.
trigger
({
type
:
"
show
"
,
relatedTarget
:
e
}),
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
),
this
.
$element
.
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
){
if
(
c
.
matcher
(
a
))
return
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
){
return
a
.
replace
(
new
RegExp
(
"
(
"
+
this
.
query
+
"
)
"
,
"
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
:
a
.
preventDefault
(),
this
.
prev
();
break
;
case
40
:
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
labs/site/js/jquery.hoverIntent.min.js
deleted
100644 → 0
View file @
86c4c86f
/**
* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*
* @param f onMouseOver function || An object with configuration options
* @param g onMouseOut function || Nothing (use configuration options object)
* @author Brian Cherne brian(at)cherne(dot)net
*/
(
function
(
$
){
$
.
fn
.
hoverIntent
=
function
(
f
,
g
){
var
cfg
=
{
sensitivity
:
7
,
interval
:
100
,
timeout
:
0
};
cfg
=
$
.
extend
(
cfg
,
g
?{
over
:
f
,
out
:
g
}:
f
);
var
cX
,
cY
,
pX
,
pY
;
var
track
=
function
(
ev
){
cX
=
ev
.
pageX
;
cY
=
ev
.
pageY
};
var
compare
=
function
(
ev
,
ob
){
ob
.
hoverIntent_t
=
clearTimeout
(
ob
.
hoverIntent_t
);
if
((
Math
.
abs
(
pX
-
cX
)
+
Math
.
abs
(
pY
-
cY
))
<
cfg
.
sensitivity
){
$
(
ob
).
unbind
(
"
mousemove
"
,
track
);
ob
.
hoverIntent_s
=
1
;
return
cfg
.
over
.
apply
(
ob
,[
ev
])}
else
{
pX
=
cX
;
pY
=
cY
;
ob
.
hoverIntent_t
=
setTimeout
(
function
(){
compare
(
ev
,
ob
)},
cfg
.
interval
)}};
var
delay
=
function
(
ev
,
ob
){
ob
.
hoverIntent_t
=
clearTimeout
(
ob
.
hoverIntent_t
);
ob
.
hoverIntent_s
=
0
;
return
cfg
.
out
.
apply
(
ob
,[
ev
])};
var
handleHover
=
function
(
e
){
var
ev
=
jQuery
.
extend
({},
e
);
var
ob
=
this
;
if
(
ob
.
hoverIntent_t
){
ob
.
hoverIntent_t
=
clearTimeout
(
ob
.
hoverIntent_t
)}
if
(
e
.
type
==
"
mouseenter
"
){
pX
=
ev
.
pageX
;
pY
=
ev
.
pageY
;
$
(
ob
).
bind
(
"
mousemove
"
,
track
);
if
(
ob
.
hoverIntent_s
!=
1
){
ob
.
hoverIntent_t
=
setTimeout
(
function
(){
compare
(
ev
,
ob
)},
cfg
.
interval
)}}
else
{
$
(
ob
).
unbind
(
"
mousemove
"
,
track
);
if
(
ob
.
hoverIntent_s
==
1
){
ob
.
hoverIntent_t
=
setTimeout
(
function
(){
delay
(
ev
,
ob
)},
cfg
.
timeout
)}}};
return
this
.
bind
(
'
mouseenter
'
,
handleHover
).
bind
(
'
mouseleave
'
,
handleHover
)}})(
jQuery
);
\ No newline at end of file
labs/site/js/main.js
deleted
100644 → 0
View file @
86c4c86f
/*global $ */
(
function
()
{
'
use strict
'
;
// Demos popover
function
hover
()
{
$
(
this
).
popover
(
'
toggle
'
);
}
$
(
'
#demos li a
'
).
each
(
function
()
{
var
$this
=
$
(
this
);
$this
.
popover
({
placement
:
'
in right
'
,
animation
:
false
,
title
:
$this
.
text
()
+
'
<a href="
'
+
$this
.
data
(
'
source
'
)
+
'
">Go to site</a>
'
});
})
.
off
()
.
hoverIntent
(
hover
,
hover
)
.
on
(
'
click
'
,
'
.popover
'
,
function
(
e
)
{
// Prevent click on the popover, but allow links inside
if
(
e
.
target
.
nodeName
.
toLowerCase
()
!==
'
a
'
)
{
e
.
preventDefault
();
}
});
})();
\ No newline at end of file
labs/
reference-examples/vanillajs/css/destroy.png
→
reference-examples/vanillajs/css/destroy.png
View file @
b2b300be
File moved
labs/
reference-examples/vanillajs/css/todos.css
→
reference-examples/vanillajs/css/todos.css
View file @
b2b300be
File moved
labs/
reference-examples/vanillajs/index.html
→
reference-examples/vanillajs/index.html
View file @
b2b300be
File moved
labs/
reference-examples/vanillajs/js/json2.js
→
reference-examples/vanillajs/js/json2.js
View file @
b2b300be
File moved
labs/
reference-examples/vanillajs/js/todo.js
→
reference-examples/vanillajs/js/todo.js
View file @
b2b300be
File moved
labs/
site/css/bootstrap-responsive.css
→
site/css/bootstrap-responsive.css
View file @
b2b300be
File moved
labs/
site/css/bootstrap.css
→
site/css/bootstrap.css
View file @
b2b300be
File moved
labs/
site/css/bootstrap.min.css
→
site/css/bootstrap.min.css
View file @
b2b300be
File moved
labs/
site/css/main.css
→
site/css/main.css
View file @
b2b300be
File moved
labs/
site/js/bootstrap.js
→
site/js/bootstrap.js
View file @
b2b300be
File moved
labs/
site/screenshot.png
→
site/screenshot.png
View file @
b2b300be
File moved
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