Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
Projek-PSWII-2020
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
AsidoPanjaitan_11319002
Projek-PSWII-2020
Commits
c5b038bc
Commit
c5b038bc
authored
Jun 07, 2020
by
AsidoPanjaitan_11319002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
c6750607
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
0 deletions
+7
-0
bootstrap.min-global.js
assets/bootstrap.min-global.js
+7
-0
No files found.
assets/bootstrap.min-global.js
0 → 100644
View file @
c5b038bc
/*!
* Bootstrap v3.4.1 (https://getbootstrap.com/)
* Copyright 2011-2019 Twitter, Inc.
* Licensed under the MIT license
*/
if
(
"undefined"
==
typeof
jQuery
)
throw
new
Error
(
"Bootstrap's JavaScript requires jQuery"
);
!
function
(
t
)
{
"use strict"
;
var
e
=
jQuery
.
fn
.
jquery
.
split
(
" "
)[
0
].
split
(
"."
);
if
(
e
[
0
]
<
2
&&
e
[
1
]
<
9
||
1
==
e
[
0
]
&&
9
==
e
[
1
]
&&
e
[
2
]
<
1
||
3
<
e
[
0
])
throw
new
Error
(
"Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4"
)
}(),
function
(
n
)
{
"use strict"
;
n
.
fn
.
emulateTransitionEnd
=
function
(
t
)
{
var
e
=
!
1
,
i
=
this
;
n
(
this
).
one
(
"bsTransitionEnd"
,
function
()
{
e
=
!
0
});
return
setTimeout
(
function
()
{
e
||
n
(
i
).
trigger
(
n
.
support
.
transition
.
end
)
},
t
),
this
},
n
(
function
()
{
n
.
support
.
transition
=
function
o
()
{
var
t
=
document
.
createElement
(
"bootstrap"
),
e
=
{
WebkitTransition
:
"webkitTransitionEnd"
,
MozTransition
:
"transitionend"
,
OTransition
:
"oTransitionEnd otransitionend"
,
transition
:
"transitionend"
};
for
(
var
i
in
e
)
if
(
t
.
style
[
i
]
!==
undefined
)
return
{
end
:
e
[
i
]
};
return
!
1
}(),
n
.
support
.
transition
&&
(
n
.
event
.
special
.
bsTransitionEnd
=
{
bindType
:
n
.
support
.
transition
.
end
,
delegateType
:
n
.
support
.
transition
.
end
,
handle
:
function
(
t
)
{
if
(
n
(
t
.
target
).
is
(
this
))
return
t
.
handleObj
.
handler
.
apply
(
this
,
arguments
)
}
})
})
}(
jQuery
),
function
(
s
)
{
"use strict"
;
var
e
=
'[data-dismiss="alert"]'
,
a
=
function
(
t
)
{
s
(
t
).
on
(
"click"
,
e
,
this
.
close
)
};
a
.
VERSION
=
"3.4.1"
,
a
.
TRANSITION_DURATION
=
150
,
a
.
prototype
.
close
=
function
(
t
)
{
var
e
=
s
(
this
),
i
=
e
.
attr
(
"data-target"
);
i
||
(
i
=
(
i
=
e
.
attr
(
"href"
))
&&
i
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
i
=
"#"
===
i
?
[]
:
i
;
var
o
=
s
(
document
).
find
(
i
);
function
n
()
{
o
.
detach
().
trigger
(
"closed.bs.alert"
).
remove
()
}
t
&&
t
.
preventDefault
(),
o
.
length
||
(
o
=
e
.
closest
(
".alert"
)),
o
.
trigger
(
t
=
s
.
Event
(
"close.bs.alert"
)),
t
.
isDefaultPrevented
()
||
(
o
.
removeClass
(
"in"
),
s
.
support
.
transition
&&
o
.
hasClass
(
"fade"
)
?
o
.
one
(
"bsTransitionEnd"
,
n
).
emulateTransitionEnd
(
a
.
TRANSITION_DURATION
)
:
n
())
};
var
t
=
s
.
fn
.
alert
;
s
.
fn
.
alert
=
function
o
(
i
)
{
return
this
.
each
(
function
()
{
var
t
=
s
(
this
),
e
=
t
.
data
(
"bs.alert"
);
e
||
t
.
data
(
"bs.alert"
,
e
=
new
a
(
this
)),
"string"
==
typeof
i
&&
e
[
i
].
call
(
t
)
})
},
s
.
fn
.
alert
.
Constructor
=
a
,
s
.
fn
.
alert
.
noConflict
=
function
()
{
return
s
.
fn
.
alert
=
t
,
this
},
s
(
document
).
on
(
"click.bs.alert.data-api"
,
e
,
a
.
prototype
.
close
)
}(
jQuery
),
function
(
s
)
{
"use strict"
;
var
n
=
function
(
t
,
e
)
{
this
.
$element
=
s
(
t
),
this
.
options
=
s
.
extend
({},
n
.
DEFAULTS
,
e
),
this
.
isLoading
=
!
1
};
function
i
(
o
)
{
return
this
.
each
(
function
()
{
var
t
=
s
(
this
),
e
=
t
.
data
(
"bs.button"
),
i
=
"object"
==
typeof
o
&&
o
;
e
||
t
.
data
(
"bs.button"
,
e
=
new
n
(
this
,
i
)),
"toggle"
==
o
?
e
.
toggle
()
:
o
&&
e
.
setState
(
o
)
})
}
n
.
VERSION
=
"3.4.1"
,
n
.
DEFAULTS
=
{
loadingText
:
"loading..."
},
n
.
prototype
.
setState
=
function
(
t
)
{
var
e
=
"disabled"
,
i
=
this
.
$element
,
o
=
i
.
is
(
"input"
)
?
"val"
:
"html"
,
n
=
i
.
data
();
t
+=
"Text"
,
null
==
n
.
resetText
&&
i
.
data
(
"resetText"
,
i
[
o
]()),
setTimeout
(
s
.
proxy
(
function
()
{
i
[
o
](
null
==
n
[
t
]
?
this
.
options
[
t
]
:
n
[
t
]),
"loadingText"
==
t
?
(
this
.
isLoading
=
!
0
,
i
.
addClass
(
e
).
attr
(
e
,
e
).
prop
(
e
,
!
0
))
:
this
.
isLoading
&&
(
this
.
isLoading
=
!
1
,
i
.
removeClass
(
e
).
removeAttr
(
e
).
prop
(
e
,
!
1
))
},
this
),
0
)
},
n
.
prototype
.
toggle
=
function
()
{
var
t
=
!
0
,
e
=
this
.
$element
.
closest
(
'[data-toggle="buttons"]'
);
if
(
e
.
length
)
{
var
i
=
this
.
$element
.
find
(
"input"
);
"radio"
==
i
.
prop
(
"type"
)
?
(
i
.
prop
(
"checked"
)
&&
(
t
=
!
1
),
e
.
find
(
".active"
).
removeClass
(
"active"
),
this
.
$element
.
addClass
(
"active"
))
:
"checkbox"
==
i
.
prop
(
"type"
)
&&
(
i
.
prop
(
"checked"
)
!==
this
.
$element
.
hasClass
(
"active"
)
&&
(
t
=
!
1
),
this
.
$element
.
toggleClass
(
"active"
)),
i
.
prop
(
"checked"
,
this
.
$element
.
hasClass
(
"active"
)),
t
&&
i
.
trigger
(
"change"
)
}
else
this
.
$element
.
attr
(
"aria-pressed"
,
!
this
.
$element
.
hasClass
(
"active"
)),
this
.
$element
.
toggleClass
(
"active"
)
};
var
t
=
s
.
fn
.
button
;
s
.
fn
.
button
=
i
,
s
.
fn
.
button
.
Constructor
=
n
,
s
.
fn
.
button
.
noConflict
=
function
()
{
return
s
.
fn
.
button
=
t
,
this
},
s
(
document
).
on
(
"click.bs.button.data-api"
,
'[data-toggle^="button"]'
,
function
(
t
)
{
var
e
=
s
(
t
.
target
).
closest
(
".btn"
);
i
.
call
(
e
,
"toggle"
),
s
(
t
.
target
).
is
(
'input[type="radio"], input[type="checkbox"]'
)
||
(
t
.
preventDefault
(),
e
.
is
(
"input,button"
)
?
e
.
trigger
(
"focus"
)
:
e
.
find
(
"input:visible,button:visible"
).
first
().
trigger
(
"focus"
))
}).
on
(
"focus.bs.button.data-api blur.bs.button.data-api"
,
'[data-toggle^="button"]'
,
function
(
t
)
{
s
(
t
.
target
).
closest
(
".btn"
).
toggleClass
(
"focus"
,
/^focus
(
in
)?
$/
.
test
(
t
.
type
))
})
}(
jQuery
),
function
(
p
)
{
"use strict"
;
var
c
=
function
(
t
,
e
)
{
this
.
$element
=
p
(
t
),
this
.
$indicators
=
this
.
$element
.
find
(
".carousel-indicators"
),
this
.
options
=
e
,
this
.
paused
=
null
,
this
.
sliding
=
null
,
this
.
interval
=
null
,
this
.
$active
=
null
,
this
.
$items
=
null
,
this
.
options
.
keyboard
&&
this
.
$element
.
on
(
"keydown.bs.carousel"
,
p
.
proxy
(
this
.
keydown
,
this
)),
"hover"
==
this
.
options
.
pause
&&
!
(
"ontouchstart"
in
document
.
documentElement
)
&&
this
.
$element
.
on
(
"mouseenter.bs.carousel"
,
p
.
proxy
(
this
.
pause
,
this
)).
on
(
"mouseleave.bs.carousel"
,
p
.
proxy
(
this
.
cycle
,
this
))
};
function
r
(
n
)
{
return
this
.
each
(
function
()
{
var
t
=
p
(
this
),
e
=
t
.
data
(
"bs.carousel"
),
i
=
p
.
extend
({},
c
.
DEFAULTS
,
t
.
data
(),
"object"
==
typeof
n
&&
n
),
o
=
"string"
==
typeof
n
?
n
:
i
.
slide
;
e
||
t
.
data
(
"bs.carousel"
,
e
=
new
c
(
this
,
i
)),
"number"
==
typeof
n
?
e
.
to
(
n
)
:
o
?
e
[
o
]()
:
i
.
interval
&&
e
.
pause
().
cycle
()
})
}
c
.
VERSION
=
"3.4.1"
,
c
.
TRANSITION_DURATION
=
600
,
c
.
DEFAULTS
=
{
interval
:
5
e3
,
pause
:
"hover"
,
wrap
:
!
0
,
keyboard
:
!
0
},
c
.
prototype
.
keydown
=
function
(
t
)
{
if
(
!
/input|textarea/i
.
test
(
t
.
target
.
tagName
))
{
switch
(
t
.
which
)
{
case
37
:
this
.
prev
();
break
;
case
39
:
this
.
next
();
break
;
default
:
return
}
t
.
preventDefault
()
}
},
c
.
prototype
.
cycle
=
function
(
t
)
{
return
t
||
(
this
.
paused
=
!
1
),
this
.
interval
&&
clearInterval
(
this
.
interval
),
this
.
options
.
interval
&&
!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
p
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
)),
this
},
c
.
prototype
.
getItemIndex
=
function
(
t
)
{
return
this
.
$items
=
t
.
parent
().
children
(
".item"
),
this
.
$items
.
index
(
t
||
this
.
$active
)
},
c
.
prototype
.
getItemForDirection
=
function
(
t
,
e
)
{
var
i
=
this
.
getItemIndex
(
e
);
if
((
"prev"
==
t
&&
0
===
i
||
"next"
==
t
&&
i
==
this
.
$items
.
length
-
1
)
&&
!
this
.
options
.
wrap
)
return
e
;
var
o
=
(
i
+
(
"prev"
==
t
?
-
1
:
1
))
%
this
.
$items
.
length
;
return
this
.
$items
.
eq
(
o
)
},
c
.
prototype
.
to
=
function
(
t
)
{
var
e
=
this
,
i
=
this
.
getItemIndex
(
this
.
$active
=
this
.
$element
.
find
(
".item.active"
));
if
(
!
(
t
>
this
.
$items
.
length
-
1
||
t
<
0
))
return
this
.
sliding
?
this
.
$element
.
one
(
"slid.bs.carousel"
,
function
()
{
e
.
to
(
t
)
})
:
i
==
t
?
this
.
pause
().
cycle
()
:
this
.
slide
(
i
<
t
?
"next"
:
"prev"
,
this
.
$items
.
eq
(
t
))
},
c
.
prototype
.
pause
=
function
(
t
)
{
return
t
||
(
this
.
paused
=
!
0
),
this
.
$element
.
find
(
".next, .prev"
).
length
&&
p
.
support
.
transition
&&
(
this
.
$element
.
trigger
(
p
.
support
.
transition
.
end
),
this
.
cycle
(
!
0
)),
this
.
interval
=
clearInterval
(
this
.
interval
),
this
},
c
.
prototype
.
next
=
function
()
{
if
(
!
this
.
sliding
)
return
this
.
slide
(
"next"
)
},
c
.
prototype
.
prev
=
function
()
{
if
(
!
this
.
sliding
)
return
this
.
slide
(
"prev"
)
},
c
.
prototype
.
slide
=
function
(
t
,
e
)
{
var
i
=
this
.
$element
.
find
(
".item.active"
),
o
=
e
||
this
.
getItemForDirection
(
t
,
i
),
n
=
this
.
interval
,
s
=
"next"
==
t
?
"left"
:
"right"
,
a
=
this
;
if
(
o
.
hasClass
(
"active"
))
return
this
.
sliding
=
!
1
;
var
r
=
o
[
0
],
l
=
p
.
Event
(
"slide.bs.carousel"
,
{
relatedTarget
:
r
,
direction
:
s
});
if
(
this
.
$element
.
trigger
(
l
),
!
l
.
isDefaultPrevented
())
{
if
(
this
.
sliding
=
!
0
,
n
&&
this
.
pause
(),
this
.
$indicators
.
length
)
{
this
.
$indicators
.
find
(
".active"
).
removeClass
(
"active"
);
var
h
=
p
(
this
.
$indicators
.
children
()[
this
.
getItemIndex
(
o
)]);
h
&&
h
.
addClass
(
"active"
)
}
var
d
=
p
.
Event
(
"slid.bs.carousel"
,
{
relatedTarget
:
r
,
direction
:
s
});
return
p
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"slide"
)
?
(
o
.
addClass
(
t
),
"object"
==
typeof
o
&&
o
.
length
&&
o
[
0
].
offsetWidth
,
i
.
addClass
(
s
),
o
.
addClass
(
s
),
i
.
one
(
"bsTransitionEnd"
,
function
()
{
o
.
removeClass
([
t
,
s
].
join
(
" "
)).
addClass
(
"active"
),
i
.
removeClass
([
"active"
,
s
].
join
(
" "
)),
a
.
sliding
=
!
1
,
setTimeout
(
function
()
{
a
.
$element
.
trigger
(
d
)
},
0
)
}).
emulateTransitionEnd
(
c
.
TRANSITION_DURATION
))
:
(
i
.
removeClass
(
"active"
),
o
.
addClass
(
"active"
),
this
.
sliding
=
!
1
,
this
.
$element
.
trigger
(
d
)),
n
&&
this
.
cycle
(),
this
}
};
var
t
=
p
.
fn
.
carousel
;
p
.
fn
.
carousel
=
r
,
p
.
fn
.
carousel
.
Constructor
=
c
,
p
.
fn
.
carousel
.
noConflict
=
function
()
{
return
p
.
fn
.
carousel
=
t
,
this
};
var
e
=
function
(
t
)
{
var
e
=
p
(
this
),
i
=
e
.
attr
(
"href"
);
i
&&
(
i
=
i
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
));
var
o
=
e
.
attr
(
"data-target"
)
||
i
,
n
=
p
(
document
).
find
(
o
);
if
(
n
.
hasClass
(
"carousel"
))
{
var
s
=
p
.
extend
({},
n
.
data
(),
e
.
data
()),
a
=
e
.
attr
(
"data-slide-to"
);
a
&&
(
s
.
interval
=
!
1
),
r
.
call
(
n
,
s
),
a
&&
n
.
data
(
"bs.carousel"
).
to
(
a
),
t
.
preventDefault
()
}
};
p
(
document
).
on
(
"click.bs.carousel.data-api"
,
"[data-slide]"
,
e
).
on
(
"click.bs.carousel.data-api"
,
"[data-slide-to]"
,
e
),
p
(
window
).
on
(
"load"
,
function
()
{
p
(
'[data-ride="carousel"]'
).
each
(
function
()
{
var
t
=
p
(
this
);
r
.
call
(
t
,
t
.
data
())
})
})
}(
jQuery
),
function
(
a
)
{
"use strict"
;
var
r
=
function
(
t
,
e
)
{
this
.
$element
=
a
(
t
),
this
.
options
=
a
.
extend
({},
r
.
DEFAULTS
,
e
),
this
.
$trigger
=
a
(
'[data-toggle="collapse"][href="#'
+
t
.
id
+
'"],[data-toggle="collapse"][data-target="#'
+
t
.
id
+
'"]'
),
this
.
transitioning
=
null
,
this
.
options
.
parent
?
this
.
$parent
=
this
.
getParent
()
:
this
.
addAriaAndCollapsedClass
(
this
.
$element
,
this
.
$trigger
),
this
.
options
.
toggle
&&
this
.
toggle
()
};
function
n
(
t
)
{
var
e
,
i
=
t
.
attr
(
"data-target"
)
||
(
e
=
t
.
attr
(
"href"
))
&&
e
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
);
return
a
(
document
).
find
(
i
)
}
function
l
(
o
)
{
return
this
.
each
(
function
()
{
var
t
=
a
(
this
),
e
=
t
.
data
(
"bs.collapse"
),
i
=
a
.
extend
({},
r
.
DEFAULTS
,
t
.
data
(),
"object"
==
typeof
o
&&
o
);
!
e
&&
i
.
toggle
&&
/show|hide/
.
test
(
o
)
&&
(
i
.
toggle
=
!
1
),
e
||
t
.
data
(
"bs.collapse"
,
e
=
new
r
(
this
,
i
)),
"string"
==
typeof
o
&&
e
[
o
]()
})
}
r
.
VERSION
=
"3.4.1"
,
r
.
TRANSITION_DURATION
=
350
,
r
.
DEFAULTS
=
{
toggle
:
!
0
},
r
.
prototype
.
dimension
=
function
()
{
return
this
.
$element
.
hasClass
(
"width"
)
?
"width"
:
"height"
},
r
.
prototype
.
show
=
function
()
{
if
(
!
this
.
transitioning
&&
!
this
.
$element
.
hasClass
(
"in"
))
{
var
t
,
e
=
this
.
$parent
&&
this
.
$parent
.
children
(
".panel"
).
children
(
".in, .collapsing"
);
if
(
!
(
e
&&
e
.
length
&&
(
t
=
e
.
data
(
"bs.collapse"
))
&&
t
.
transitioning
))
{
var
i
=
a
.
Event
(
"show.bs.collapse"
);
if
(
this
.
$element
.
trigger
(
i
),
!
i
.
isDefaultPrevented
())
{
e
&&
e
.
length
&&
(
l
.
call
(
e
,
"hide"
),
t
||
e
.
data
(
"bs.collapse"
,
null
));
var
o
=
this
.
dimension
();
this
.
$element
.
removeClass
(
"collapse"
).
addClass
(
"collapsing"
)[
o
](
0
).
attr
(
"aria-expanded"
,
!
0
),
this
.
$trigger
.
removeClass
(
"collapsed"
).
attr
(
"aria-expanded"
,
!
0
),
this
.
transitioning
=
1
;
var
n
=
function
()
{
this
.
$element
.
removeClass
(
"collapsing"
).
addClass
(
"collapse in"
)[
o
](
""
),
this
.
transitioning
=
0
,
this
.
$element
.
trigger
(
"shown.bs.collapse"
)
};
if
(
!
a
.
support
.
transition
)
return
n
.
call
(
this
);
var
s
=
a
.
camelCase
([
"scroll"
,
o
].
join
(
"-"
));
this
.
$element
.
one
(
"bsTransitionEnd"
,
a
.
proxy
(
n
,
this
)).
emulateTransitionEnd
(
r
.
TRANSITION_DURATION
)[
o
](
this
.
$element
[
0
][
s
])
}
}
}
},
r
.
prototype
.
hide
=
function
()
{
if
(
!
this
.
transitioning
&&
this
.
$element
.
hasClass
(
"in"
))
{
var
t
=
a
.
Event
(
"hide.bs.collapse"
);
if
(
this
.
$element
.
trigger
(
t
),
!
t
.
isDefaultPrevented
())
{
var
e
=
this
.
dimension
();
this
.
$element
[
e
](
this
.
$element
[
e
]())[
0
].
offsetHeight
,
this
.
$element
.
addClass
(
"collapsing"
).
removeClass
(
"collapse in"
).
attr
(
"aria-expanded"
,
!
1
),
this
.
$trigger
.
addClass
(
"collapsed"
).
attr
(
"aria-expanded"
,
!
1
),
this
.
transitioning
=
1
;
var
i
=
function
()
{
this
.
transitioning
=
0
,
this
.
$element
.
removeClass
(
"collapsing"
).
addClass
(
"collapse"
).
trigger
(
"hidden.bs.collapse"
)
};
if
(
!
a
.
support
.
transition
)
return
i
.
call
(
this
);
this
.
$element
[
e
](
0
).
one
(
"bsTransitionEnd"
,
a
.
proxy
(
i
,
this
)).
emulateTransitionEnd
(
r
.
TRANSITION_DURATION
)
}
}
},
r
.
prototype
.
toggle
=
function
()
{
this
[
this
.
$element
.
hasClass
(
"in"
)
?
"hide"
:
"show"
]()
},
r
.
prototype
.
getParent
=
function
()
{
return
a
(
document
).
find
(
this
.
options
.
parent
).
find
(
'[data-toggle="collapse"][data-parent="'
+
this
.
options
.
parent
+
'"]'
).
each
(
a
.
proxy
(
function
(
t
,
e
)
{
var
i
=
a
(
e
);
this
.
addAriaAndCollapsedClass
(
n
(
i
),
i
)
},
this
)).
end
()
},
r
.
prototype
.
addAriaAndCollapsedClass
=
function
(
t
,
e
)
{
var
i
=
t
.
hasClass
(
"in"
);
t
.
attr
(
"aria-expanded"
,
i
),
e
.
toggleClass
(
"collapsed"
,
!
i
).
attr
(
"aria-expanded"
,
i
)
};
var
t
=
a
.
fn
.
collapse
;
a
.
fn
.
collapse
=
l
,
a
.
fn
.
collapse
.
Constructor
=
r
,
a
.
fn
.
collapse
.
noConflict
=
function
()
{
return
a
.
fn
.
collapse
=
t
,
this
},
a
(
document
).
on
(
"click.bs.collapse.data-api"
,
'[data-toggle="collapse"]'
,
function
(
t
)
{
var
e
=
a
(
this
);
e
.
attr
(
"data-target"
)
||
t
.
preventDefault
();
var
i
=
n
(
e
),
o
=
i
.
data
(
"bs.collapse"
)
?
"toggle"
:
e
.
data
();
l
.
call
(
i
,
o
)
})
}(
jQuery
),
function
(
a
)
{
"use strict"
;
var
r
=
'[data-toggle="dropdown"]'
,
o
=
function
(
t
)
{
a
(
t
).
on
(
"click.bs.dropdown"
,
this
.
toggle
)
};
function
l
(
t
)
{
var
e
=
t
.
attr
(
"data-target"
);
e
||
(
e
=
(
e
=
t
.
attr
(
"href"
))
&&
/#
[
A-Za-z
]
/
.
test
(
e
)
&&
e
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
));
var
i
=
"#"
!==
e
?
a
(
document
).
find
(
e
)
:
null
;
return
i
&&
i
.
length
?
i
:
t
.
parent
()
}
function
s
(
o
)
{
o
&&
3
===
o
.
which
||
(
a
(
".dropdown-backdrop"
).
remove
(),
a
(
r
).
each
(
function
()
{
var
t
=
a
(
this
),
e
=
l
(
t
),
i
=
{
relatedTarget
:
this
};
e
.
hasClass
(
"open"
)
&&
(
o
&&
"click"
==
o
.
type
&&
/input|textarea/i
.
test
(
o
.
target
.
tagName
)
&&
a
.
contains
(
e
[
0
],
o
.
target
)
||
(
e
.
trigger
(
o
=
a
.
Event
(
"hide.bs.dropdown"
,
i
)),
o
.
isDefaultPrevented
()
||
(
t
.
attr
(
"aria-expanded"
,
"false"
),
e
.
removeClass
(
"open"
).
trigger
(
a
.
Event
(
"hidden.bs.dropdown"
,
i
)))))
}))
}
o
.
VERSION
=
"3.4.1"
,
o
.
prototype
.
toggle
=
function
(
t
)
{
var
e
=
a
(
this
);
if
(
!
e
.
is
(
".disabled, :disabled"
))
{
var
i
=
l
(
e
),
o
=
i
.
hasClass
(
"open"
);
if
(
s
(),
!
o
)
{
"ontouchstart"
in
document
.
documentElement
&&
!
i
.
closest
(
".navbar-nav"
).
length
&&
a
(
document
.
createElement
(
"div"
)).
addClass
(
"dropdown-backdrop"
).
insertAfter
(
a
(
this
)).
on
(
"click"
,
s
);
var
n
=
{
relatedTarget
:
this
};
if
(
i
.
trigger
(
t
=
a
.
Event
(
"show.bs.dropdown"
,
n
)),
t
.
isDefaultPrevented
())
return
;
e
.
trigger
(
"focus"
).
attr
(
"aria-expanded"
,
"true"
),
i
.
toggleClass
(
"open"
).
trigger
(
a
.
Event
(
"shown.bs.dropdown"
,
n
))
}
return
!
1
}
},
o
.
prototype
.
keydown
=
function
(
t
)
{
if
(
/
(
38|40|27|32
)
/
.
test
(
t
.
which
)
&&
!
/input|textarea/i
.
test
(
t
.
target
.
tagName
))
{
var
e
=
a
(
this
);
if
(
t
.
preventDefault
(),
t
.
stopPropagation
(),
!
e
.
is
(
".disabled, :disabled"
))
{
var
i
=
l
(
e
),
o
=
i
.
hasClass
(
"open"
);
if
(
!
o
&&
27
!=
t
.
which
||
o
&&
27
==
t
.
which
)
return
27
==
t
.
which
&&
i
.
find
(
r
).
trigger
(
"focus"
),
e
.
trigger
(
"click"
);
var
n
=
i
.
find
(
".dropdown-menu li:not(.disabled):visible a"
);
if
(
n
.
length
)
{
var
s
=
n
.
index
(
t
.
target
);
38
==
t
.
which
&&
0
<
s
&&
s
--
,
40
==
t
.
which
&&
s
<
n
.
length
-
1
&&
s
++
,
~
s
||
(
s
=
0
),
n
.
eq
(
s
).
trigger
(
"focus"
)
}
}
}
};
var
t
=
a
.
fn
.
dropdown
;
a
.
fn
.
dropdown
=
function
e
(
i
)
{
return
this
.
each
(
function
()
{
var
t
=
a
(
this
),
e
=
t
.
data
(
"bs.dropdown"
);
e
||
t
.
data
(
"bs.dropdown"
,
e
=
new
o
(
this
)),
"string"
==
typeof
i
&&
e
[
i
].
call
(
t
)
})
},
a
.
fn
.
dropdown
.
Constructor
=
o
,
a
.
fn
.
dropdown
.
noConflict
=
function
()
{
return
a
.
fn
.
dropdown
=
t
,
this
},
a
(
document
).
on
(
"click.bs.dropdown.data-api"
,
s
).
on
(
"click.bs.dropdown.data-api"
,
".dropdown form"
,
function
(
t
)
{
t
.
stopPropagation
()
}).
on
(
"click.bs.dropdown.data-api"
,
r
,
o
.
prototype
.
toggle
).
on
(
"keydown.bs.dropdown.data-api"
,
r
,
o
.
prototype
.
keydown
).
on
(
"keydown.bs.dropdown.data-api"
,
".dropdown-menu"
,
o
.
prototype
.
keydown
)
}(
jQuery
),
function
(
a
)
{
"use strict"
;
var
s
=
function
(
t
,
e
)
{
this
.
options
=
e
,
this
.
$body
=
a
(
document
.
body
),
this
.
$element
=
a
(
t
),
this
.
$dialog
=
this
.
$element
.
find
(
".modal-dialog"
),
this
.
$backdrop
=
null
,
this
.
isShown
=
null
,
this
.
originalBodyPad
=
null
,
this
.
scrollbarWidth
=
0
,
this
.
ignoreBackdropClick
=
!
1
,
this
.
fixedContent
=
".navbar-fixed-top, .navbar-fixed-bottom"
,
this
.
options
.
remote
&&
this
.
$element
.
find
(
".modal-content"
).
load
(
this
.
options
.
remote
,
a
.
proxy
(
function
()
{
this
.
$element
.
trigger
(
"loaded.bs.modal"
)
},
this
))
};
function
r
(
o
,
n
)
{
return
this
.
each
(
function
()
{
var
t
=
a
(
this
),
e
=
t
.
data
(
"bs.modal"
),
i
=
a
.
extend
({},
s
.
DEFAULTS
,
t
.
data
(),
"object"
==
typeof
o
&&
o
);
e
||
t
.
data
(
"bs.modal"
,
e
=
new
s
(
this
,
i
)),
"string"
==
typeof
o
?
e
[
o
](
n
)
:
i
.
show
&&
e
.
show
(
n
)
})
}
s
.
VERSION
=
"3.4.1"
,
s
.
TRANSITION_DURATION
=
300
,
s
.
BACKDROP_TRANSITION_DURATION
=
150
,
s
.
DEFAULTS
=
{
backdrop
:
!
0
,
keyboard
:
!
0
,
show
:
!
0
},
s
.
prototype
.
toggle
=
function
(
t
)
{
return
this
.
isShown
?
this
.
hide
()
:
this
.
show
(
t
)
},
s
.
prototype
.
show
=
function
(
i
)
{
var
o
=
this
,
t
=
a
.
Event
(
"show.bs.modal"
,
{
relatedTarget
:
i
});
this
.
$element
.
trigger
(
t
),
this
.
isShown
||
t
.
isDefaultPrevented
()
||
(
this
.
isShown
=
!
0
,
this
.
checkScrollbar
(),
this
.
setScrollbar
(),
this
.
$body
.
addClass
(
"modal-open"
),
this
.
escape
(),
this
.
resize
(),
this
.
$element
.
on
(
"click.dismiss.bs.modal"
,
'[data-dismiss="modal"]'
,
a
.
proxy
(
this
.
hide
,
this
)),
this
.
$dialog
.
on
(
"mousedown.dismiss.bs.modal"
,
function
()
{
o
.
$element
.
one
(
"mouseup.dismiss.bs.modal"
,
function
(
t
)
{
a
(
t
.
target
).
is
(
o
.
$element
)
&&
(
o
.
ignoreBackdropClick
=
!
0
)
})
}),
this
.
backdrop
(
function
()
{
var
t
=
a
.
support
.
transition
&&
o
.
$element
.
hasClass
(
"fade"
);
o
.
$element
.
parent
().
length
||
o
.
$element
.
appendTo
(
o
.
$body
),
o
.
$element
.
show
().
scrollTop
(
0
),
o
.
adjustDialog
(),
t
&&
o
.
$element
[
0
].
offsetWidth
,
o
.
$element
.
addClass
(
"in"
),
o
.
enforceFocus
();
var
e
=
a
.
Event
(
"shown.bs.modal"
,
{
relatedTarget
:
i
});
t
?
o
.
$dialog
.
one
(
"bsTransitionEnd"
,
function
()
{
o
.
$element
.
trigger
(
"focus"
).
trigger
(
e
)
}).
emulateTransitionEnd
(
s
.
TRANSITION_DURATION
)
:
o
.
$element
.
trigger
(
"focus"
).
trigger
(
e
)
}))
},
s
.
prototype
.
hide
=
function
(
t
)
{
t
&&
t
.
preventDefault
(),
t
=
a
.
Event
(
"hide.bs.modal"
),
this
.
$element
.
trigger
(
t
),
this
.
isShown
&&
!
t
.
isDefaultPrevented
()
&&
(
this
.
isShown
=
!
1
,
this
.
escape
(),
this
.
resize
(),
a
(
document
).
off
(
"focusin.bs.modal"
),
this
.
$element
.
removeClass
(
"in"
).
off
(
"click.dismiss.bs.modal"
).
off
(
"mouseup.dismiss.bs.modal"
),
this
.
$dialog
.
off
(
"mousedown.dismiss.bs.modal"
),
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"fade"
)
?
this
.
$element
.
one
(
"bsTransitionEnd"
,
a
.
proxy
(
this
.
hideModal
,
this
)).
emulateTransitionEnd
(
s
.
TRANSITION_DURATION
)
:
this
.
hideModal
())
},
s
.
prototype
.
enforceFocus
=
function
()
{
a
(
document
).
off
(
"focusin.bs.modal"
).
on
(
"focusin.bs.modal"
,
a
.
proxy
(
function
(
t
)
{
document
===
t
.
target
||
this
.
$element
[
0
]
===
t
.
target
||
this
.
$element
.
has
(
t
.
target
).
length
||
this
.
$element
.
trigger
(
"focus"
)
},
this
))
},
s
.
prototype
.
escape
=
function
()
{
this
.
isShown
&&
this
.
options
.
keyboard
?
this
.
$element
.
on
(
"keydown.dismiss.bs.modal"
,
a
.
proxy
(
function
(
t
)
{
27
==
t
.
which
&&
this
.
hide
()
},
this
))
:
this
.
isShown
||
this
.
$element
.
off
(
"keydown.dismiss.bs.modal"
)
},
s
.
prototype
.
resize
=
function
()
{
this
.
isShown
?
a
(
window
).
on
(
"resize.bs.modal"
,
a
.
proxy
(
this
.
handleUpdate
,
this
))
:
a
(
window
).
off
(
"resize.bs.modal"
)
},
s
.
prototype
.
hideModal
=
function
()
{
var
t
=
this
;
this
.
$element
.
hide
(),
this
.
backdrop
(
function
()
{
t
.
$body
.
removeClass
(
"modal-open"
),
t
.
resetAdjustments
(),
t
.
resetScrollbar
(),
t
.
$element
.
trigger
(
"hidden.bs.modal"
)
})
},
s
.
prototype
.
removeBackdrop
=
function
()
{
this
.
$backdrop
&&
this
.
$backdrop
.
remove
(),
this
.
$backdrop
=
null
},
s
.
prototype
.
backdrop
=
function
(
t
)
{
var
e
=
this
,
i
=
this
.
$element
.
hasClass
(
"fade"
)
?
"fade"
:
""
;
if
(
this
.
isShown
&&
this
.
options
.
backdrop
)
{
var
o
=
a
.
support
.
transition
&&
i
;
if
(
this
.
$backdrop
=
a
(
document
.
createElement
(
"div"
)).
addClass
(
"modal-backdrop "
+
i
).
appendTo
(
this
.
$body
),
this
.
$element
.
on
(
"click.dismiss.bs.modal"
,
a
.
proxy
(
function
(
t
)
{
this
.
ignoreBackdropClick
?
this
.
ignoreBackdropClick
=
!
1
:
t
.
target
===
t
.
currentTarget
&&
(
"static"
==
this
.
options
.
backdrop
?
this
.
$element
[
0
].
focus
()
:
this
.
hide
())
},
this
)),
o
&&
this
.
$backdrop
[
0
].
offsetWidth
,
this
.
$backdrop
.
addClass
(
"in"
),
!
t
)
return
;
o
?
this
.
$backdrop
.
one
(
"bsTransitionEnd"
,
t
).
emulateTransitionEnd
(
s
.
BACKDROP_TRANSITION_DURATION
)
:
t
()
}
else
if
(
!
this
.
isShown
&&
this
.
$backdrop
)
{
this
.
$backdrop
.
removeClass
(
"in"
);
var
n
=
function
()
{
e
.
removeBackdrop
(),
t
&&
t
()
};
a
.
support
.
transition
&&
this
.
$element
.
hasClass
(
"fade"
)
?
this
.
$backdrop
.
one
(
"bsTransitionEnd"
,
n
).
emulateTransitionEnd
(
s
.
BACKDROP_TRANSITION_DURATION
)
:
n
()
}
else
t
&&
t
()
},
s
.
prototype
.
handleUpdate
=
function
()
{
this
.
adjustDialog
()
},
s
.
prototype
.
adjustDialog
=
function
()
{
var
t
=
this
.
$element
[
0
].
scrollHeight
>
document
.
documentElement
.
clientHeight
;
this
.
$element
.
css
({
paddingLeft
:
!
this
.
bodyIsOverflowing
&&
t
?
this
.
scrollbarWidth
:
""
,
paddingRight
:
this
.
bodyIsOverflowing
&&
!
t
?
this
.
scrollbarWidth
:
""
})
},
s
.
prototype
.
resetAdjustments
=
function
()
{
this
.
$element
.
css
({
paddingLeft
:
""
,
paddingRight
:
""
})
},
s
.
prototype
.
checkScrollbar
=
function
()
{
var
t
=
window
.
innerWidth
;
if
(
!
t
)
{
var
e
=
document
.
documentElement
.
getBoundingClientRect
();
t
=
e
.
right
-
Math
.
abs
(
e
.
left
)
}
this
.
bodyIsOverflowing
=
document
.
body
.
clientWidth
<
t
,
this
.
scrollbarWidth
=
this
.
measureScrollbar
()
},
s
.
prototype
.
setScrollbar
=
function
()
{
var
t
=
parseInt
(
this
.
$body
.
css
(
"padding-right"
)
||
0
,
10
);
this
.
originalBodyPad
=
document
.
body
.
style
.
paddingRight
||
""
;
var
n
=
this
.
scrollbarWidth
;
this
.
bodyIsOverflowing
&&
(
this
.
$body
.
css
(
"padding-right"
,
t
+
n
),
a
(
this
.
fixedContent
).
each
(
function
(
t
,
e
)
{
var
i
=
e
.
style
.
paddingRight
,
o
=
a
(
e
).
css
(
"padding-right"
);
a
(
e
).
data
(
"padding-right"
,
i
).
css
(
"padding-right"
,
parseFloat
(
o
)
+
n
+
"px"
)
}))
},
s
.
prototype
.
resetScrollbar
=
function
()
{
this
.
$body
.
css
(
"padding-right"
,
this
.
originalBodyPad
),
a
(
this
.
fixedContent
).
each
(
function
(
t
,
e
)
{
var
i
=
a
(
e
).
data
(
"padding-right"
);
a
(
e
).
removeData
(
"padding-right"
),
e
.
style
.
paddingRight
=
i
||
""
})
},
s
.
prototype
.
measureScrollbar
=
function
()
{
var
t
=
document
.
createElement
(
"div"
);
t
.
className
=
"modal-scrollbar-measure"
,
this
.
$body
.
append
(
t
);
var
e
=
t
.
offsetWidth
-
t
.
clientWidth
;
return
this
.
$body
[
0
].
removeChild
(
t
),
e
};
var
t
=
a
.
fn
.
modal
;
a
.
fn
.
modal
=
r
,
a
.
fn
.
modal
.
Constructor
=
s
,
a
.
fn
.
modal
.
noConflict
=
function
()
{
return
a
.
fn
.
modal
=
t
,
this
},
a
(
document
).
on
(
"click.bs.modal.data-api"
,
'[data-toggle="modal"]'
,
function
(
t
)
{
var
e
=
a
(
this
),
i
=
e
.
attr
(
"href"
),
o
=
e
.
attr
(
"data-target"
)
||
i
&&
i
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
""
),
n
=
a
(
document
).
find
(
o
),
s
=
n
.
data
(
"bs.modal"
)
?
"toggle"
:
a
.
extend
({
remote
:
!
/#/
.
test
(
i
)
&&
i
},
n
.
data
(),
e
.
data
());
e
.
is
(
"a"
)
&&
t
.
preventDefault
(),
n
.
one
(
"show.bs.modal"
,
function
(
t
)
{
t
.
isDefaultPrevented
()
||
n
.
one
(
"hidden.bs.modal"
,
function
()
{
e
.
is
(
":visible"
)
&&
e
.
trigger
(
"focus"
)
})
}),
r
.
call
(
n
,
s
,
this
)
})
}(
jQuery
),
function
(
g
)
{
"use strict"
;
var
o
=
[
"sanitize"
,
"whiteList"
,
"sanitizeFn"
],
a
=
[
"background"
,
"cite"
,
"href"
,
"itemtype"
,
"longdesc"
,
"poster"
,
"src"
,
"xlink:href"
],
t
=
{
"*"
:
[
"class"
,
"dir"
,
"id"
,
"lang"
,
"role"
,
/^aria-
[\w
-
]
*$/i
],
a
:
[
"target"
,
"href"
,
"title"
,
"rel"
],
area
:
[],
b
:
[],
br
:
[],
col
:
[],
code
:
[],
div
:
[],
em
:
[],
hr
:
[],
h1
:
[],
h2
:
[],
h3
:
[],
h4
:
[],
h5
:
[],
h6
:
[],
i
:
[],
img
:
[
"src"
,
"alt"
,
"title"
,
"width"
,
"height"
],
li
:
[],
ol
:
[],
p
:
[],
pre
:
[],
s
:
[],
small
:
[],
span
:
[],
sub
:
[],
sup
:
[],
strong
:
[],
u
:
[],
ul
:
[]
},
r
=
/^
(?:(?:
https
?
|mailto|ftp|tel|file
)
:|
[^
&:
/
?#
]
*
(?:[/
?#
]
|$
))
/gi
,
l
=
/^data:
(?:
image
\/(?:
bmp|gif|jpeg|jpg|png|tiff|webp
)
|video
\/(?:
mpeg|mp4|ogg|webm
)
|audio
\/(?:
mp3|oga|ogg|opus
))
;base64,
[
a-z0-9+
/]
+=*$/i
;
function
u
(
t
,
e
)
{
var
i
=
t
.
nodeName
.
toLowerCase
();
if
(
-
1
!==
g
.
inArray
(
i
,
e
))
return
-
1
===
g
.
inArray
(
i
,
a
)
||
Boolean
(
t
.
nodeValue
.
match
(
r
)
||
t
.
nodeValue
.
match
(
l
));
for
(
var
o
=
g
(
e
).
filter
(
function
(
t
,
e
)
{
return
e
instanceof
RegExp
}),
n
=
0
,
s
=
o
.
length
;
n
<
s
;
n
++
)
if
(
i
.
match
(
o
[
n
]))
return
!
0
;
return
!
1
}
function
n
(
t
,
e
,
i
)
{
if
(
0
===
t
.
length
)
return
t
;
if
(
i
&&
"function"
==
typeof
i
)
return
i
(
t
);
if
(
!
document
.
implementation
||
!
document
.
implementation
.
createHTMLDocument
)
return
t
;
var
o
=
document
.
implementation
.
createHTMLDocument
(
"sanitization"
);
o
.
body
.
innerHTML
=
t
;
for
(
var
n
=
g
.
map
(
e
,
function
(
t
,
e
)
{
return
e
}),
s
=
g
(
o
.
body
).
find
(
"*"
),
a
=
0
,
r
=
s
.
length
;
a
<
r
;
a
++
)
{
var
l
=
s
[
a
],
h
=
l
.
nodeName
.
toLowerCase
();
if
(
-
1
!==
g
.
inArray
(
h
,
n
))
for
(
var
d
=
g
.
map
(
l
.
attributes
,
function
(
t
)
{
return
t
}),
p
=
[].
concat
(
e
[
"*"
]
||
[],
e
[
h
]
||
[]),
c
=
0
,
f
=
d
.
length
;
c
<
f
;
c
++
)
u
(
d
[
c
],
p
)
||
l
.
removeAttribute
(
d
[
c
].
nodeName
);
else
l
.
parentNode
.
removeChild
(
l
)
}
return
o
.
body
.
innerHTML
}
var
m
=
function
(
t
,
e
)
{
this
.
type
=
null
,
this
.
options
=
null
,
this
.
enabled
=
null
,
this
.
timeout
=
null
,
this
.
hoverState
=
null
,
this
.
$element
=
null
,
this
.
inState
=
null
,
this
.
init
(
"tooltip"
,
t
,
e
)
};
m
.
VERSION
=
"3.4.1"
,
m
.
TRANSITION_DURATION
=
150
,
m
.
DEFAULTS
=
{
animation
:
!
0
,
placement
:
"top"
,
selector
:
!
1
,
template
:
'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
,
trigger
:
"hover focus"
,
title
:
""
,
delay
:
0
,
html
:
!
1
,
container
:
!
1
,
viewport
:
{
selector
:
"body"
,
padding
:
0
},
sanitize
:
!
0
,
sanitizeFn
:
null
,
whiteList
:
t
},
m
.
prototype
.
init
=
function
(
t
,
e
,
i
)
{
if
(
this
.
enabled
=
!
0
,
this
.
type
=
t
,
this
.
$element
=
g
(
e
),
this
.
options
=
this
.
getOptions
(
i
),
this
.
$viewport
=
this
.
options
.
viewport
&&
g
(
document
).
find
(
g
.
isFunction
(
this
.
options
.
viewport
)
?
this
.
options
.
viewport
.
call
(
this
,
this
.
$element
)
:
this
.
options
.
viewport
.
selector
||
this
.
options
.
viewport
),
this
.
inState
=
{
click
:
!
1
,
hover
:
!
1
,
focus
:
!
1
},
this
.
$element
[
0
]
instanceof
document
.
constructor
&&
!
this
.
options
.
selector
)
throw
new
Error
(
"`selector` option must be specified when initializing "
+
this
.
type
+
" on the window.document object!"
);
for
(
var
o
=
this
.
options
.
trigger
.
split
(
" "
),
n
=
o
.
length
;
n
--
;)
{
var
s
=
o
[
n
];
if
(
"click"
==
s
)
this
.
$element
.
on
(
"click."
+
this
.
type
,
this
.
options
.
selector
,
g
.
proxy
(
this
.
toggle
,
this
));
else
if
(
"manual"
!=
s
)
{
var
a
=
"hover"
==
s
?
"mouseenter"
:
"focusin"
,
r
=
"hover"
==
s
?
"mouseleave"
:
"focusout"
;
this
.
$element
.
on
(
a
+
"."
+
this
.
type
,
this
.
options
.
selector
,
g
.
proxy
(
this
.
enter
,
this
)),
this
.
$element
.
on
(
r
+
"."
+
this
.
type
,
this
.
options
.
selector
,
g
.
proxy
(
this
.
leave
,
this
))
}
}
this
.
options
.
selector
?
this
.
_options
=
g
.
extend
({},
this
.
options
,
{
trigger
:
"manual"
,
selector
:
""
})
:
this
.
fixTitle
()
},
m
.
prototype
.
getDefaults
=
function
()
{
return
m
.
DEFAULTS
},
m
.
prototype
.
getOptions
=
function
(
t
)
{
var
e
=
this
.
$element
.
data
();
for
(
var
i
in
e
)
e
.
hasOwnProperty
(
i
)
&&
-
1
!==
g
.
inArray
(
i
,
o
)
&&
delete
e
[
i
];
return
(
t
=
g
.
extend
({},
this
.
getDefaults
(),
e
,
t
)).
delay
&&
"number"
==
typeof
t
.
delay
&&
(
t
.
delay
=
{
show
:
t
.
delay
,
hide
:
t
.
delay
}),
t
.
sanitize
&&
(
t
.
template
=
n
(
t
.
template
,
t
.
whiteList
,
t
.
sanitizeFn
)),
t
},
m
.
prototype
.
getDelegateOptions
=
function
()
{
var
i
=
{},
o
=
this
.
getDefaults
();
return
this
.
_options
&&
g
.
each
(
this
.
_options
,
function
(
t
,
e
)
{
o
[
t
]
!=
e
&&
(
i
[
t
]
=
e
)
}),
i
},
m
.
prototype
.
enter
=
function
(
t
)
{
var
e
=
t
instanceof
this
.
constructor
?
t
:
g
(
t
.
currentTarget
).
data
(
"bs."
+
this
.
type
);
if
(
e
||
(
e
=
new
this
.
constructor
(
t
.
currentTarget
,
this
.
getDelegateOptions
()),
g
(
t
.
currentTarget
).
data
(
"bs."
+
this
.
type
,
e
)),
t
instanceof
g
.
Event
&&
(
e
.
inState
[
"focusin"
==
t
.
type
?
"focus"
:
"hover"
]
=
!
0
),
e
.
tip
().
hasClass
(
"in"
)
||
"in"
==
e
.
hoverState
)
e
.
hoverState
=
"in"
;
else
{
if
(
clearTimeout
(
e
.
timeout
),
e
.
hoverState
=
"in"
,
!
e
.
options
.
delay
||
!
e
.
options
.
delay
.
show
)
return
e
.
show
();
e
.
timeout
=
setTimeout
(
function
()
{
"in"
==
e
.
hoverState
&&
e
.
show
()
},
e
.
options
.
delay
.
show
)
}
},
m
.
prototype
.
isInStateTrue
=
function
()
{
for
(
var
t
in
this
.
inState
)
if
(
this
.
inState
[
t
])
return
!
0
;
return
!
1
},
m
.
prototype
.
leave
=
function
(
t
)
{
var
e
=
t
instanceof
this
.
constructor
?
t
:
g
(
t
.
currentTarget
).
data
(
"bs."
+
this
.
type
);
if
(
e
||
(
e
=
new
this
.
constructor
(
t
.
currentTarget
,
this
.
getDelegateOptions
()),
g
(
t
.
currentTarget
).
data
(
"bs."
+
this
.
type
,
e
)),
t
instanceof
g
.
Event
&&
(
e
.
inState
[
"focusout"
==
t
.
type
?
"focus"
:
"hover"
]
=
!
1
),
!
e
.
isInStateTrue
())
{
if
(
clearTimeout
(
e
.
timeout
),
e
.
hoverState
=
"out"
,
!
e
.
options
.
delay
||
!
e
.
options
.
delay
.
hide
)
return
e
.
hide
();
e
.
timeout
=
setTimeout
(
function
()
{
"out"
==
e
.
hoverState
&&
e
.
hide
()
},
e
.
options
.
delay
.
hide
)
}
},
m
.
prototype
.
show
=
function
()
{
var
t
=
g
.
Event
(
"show.bs."
+
this
.
type
);
if
(
this
.
hasContent
()
&&
this
.
enabled
)
{
this
.
$element
.
trigger
(
t
);
var
e
=
g
.
contains
(
this
.
$element
[
0
].
ownerDocument
.
documentElement
,
this
.
$element
[
0
]);
if
(
t
.
isDefaultPrevented
()
||
!
e
)
return
;
var
i
=
this
,
o
=
this
.
tip
(),
n
=
this
.
getUID
(
this
.
type
);
this
.
setContent
(),
o
.
attr
(
"id"
,
n
),
this
.
$element
.
attr
(
"aria-describedby"
,
n
),
this
.
options
.
animation
&&
o
.
addClass
(
"fade"
);
var
s
=
"function"
==
typeof
this
.
options
.
placement
?
this
.
options
.
placement
.
call
(
this
,
o
[
0
],
this
.
$element
[
0
])
:
this
.
options
.
placement
,
a
=
/
\s?
auto
?\s?
/i
,
r
=
a
.
test
(
s
);
r
&&
(
s
=
s
.
replace
(
a
,
""
)
||
"top"
),
o
.
detach
().
css
({
top
:
0
,
left
:
0
,
display
:
"block"
}).
addClass
(
s
).
data
(
"bs."
+
this
.
type
,
this
),
this
.
options
.
container
?
o
.
appendTo
(
g
(
document
).
find
(
this
.
options
.
container
))
:
o
.
insertAfter
(
this
.
$element
),
this
.
$element
.
trigger
(
"inserted.bs."
+
this
.
type
);
var
l
=
this
.
getPosition
(),
h
=
o
[
0
].
offsetWidth
,
d
=
o
[
0
].
offsetHeight
;
if
(
r
)
{
var
p
=
s
,
c
=
this
.
getPosition
(
this
.
$viewport
);
s
=
"bottom"
==
s
&&
l
.
bottom
+
d
>
c
.
bottom
?
"top"
:
"top"
==
s
&&
l
.
top
-
d
<
c
.
top
?
"bottom"
:
"right"
==
s
&&
l
.
right
+
h
>
c
.
width
?
"left"
:
"left"
==
s
&&
l
.
left
-
h
<
c
.
left
?
"right"
:
s
,
o
.
removeClass
(
p
).
addClass
(
s
)
}
var
f
=
this
.
getCalculatedOffset
(
s
,
l
,
h
,
d
);
this
.
applyPlacement
(
f
,
s
);
var
u
=
function
()
{
var
t
=
i
.
hoverState
;
i
.
$element
.
trigger
(
"shown.bs."
+
i
.
type
),
i
.
hoverState
=
null
,
"out"
==
t
&&
i
.
leave
(
i
)
};
g
.
support
.
transition
&&
this
.
$tip
.
hasClass
(
"fade"
)
?
o
.
one
(
"bsTransitionEnd"
,
u
).
emulateTransitionEnd
(
m
.
TRANSITION_DURATION
)
:
u
()
}
},
m
.
prototype
.
applyPlacement
=
function
(
t
,
e
)
{
var
i
=
this
.
tip
(),
o
=
i
[
0
].
offsetWidth
,
n
=
i
[
0
].
offsetHeight
,
s
=
parseInt
(
i
.
css
(
"margin-top"
),
10
),
a
=
parseInt
(
i
.
css
(
"margin-left"
),
10
);
isNaN
(
s
)
&&
(
s
=
0
),
isNaN
(
a
)
&&
(
a
=
0
),
t
.
top
+=
s
,
t
.
left
+=
a
,
g
.
offset
.
setOffset
(
i
[
0
],
g
.
extend
({
using
:
function
(
t
)
{
i
.
css
({
top
:
Math
.
round
(
t
.
top
),
left
:
Math
.
round
(
t
.
left
)
})
}
},
t
),
0
),
i
.
addClass
(
"in"
);
var
r
=
i
[
0
].
offsetWidth
,
l
=
i
[
0
].
offsetHeight
;
"top"
==
e
&&
l
!=
n
&&
(
t
.
top
=
t
.
top
+
n
-
l
);
var
h
=
this
.
getViewportAdjustedDelta
(
e
,
t
,
r
,
l
);
h
.
left
?
t
.
left
+=
h
.
left
:
t
.
top
+=
h
.
top
;
var
d
=
/top|bottom/
.
test
(
e
),
p
=
d
?
2
*
h
.
left
-
o
+
r
:
2
*
h
.
top
-
n
+
l
,
c
=
d
?
"offsetWidth"
:
"offsetHeight"
;
i
.
offset
(
t
),
this
.
replaceArrow
(
p
,
i
[
0
][
c
],
d
)
},
m
.
prototype
.
replaceArrow
=
function
(
t
,
e
,
i
)
{
this
.
arrow
().
css
(
i
?
"left"
:
"top"
,
50
*
(
1
-
t
/
e
)
+
"%"
).
css
(
i
?
"top"
:
"left"
,
""
)
},
m
.
prototype
.
setContent
=
function
()
{
var
t
=
this
.
tip
(),
e
=
this
.
getTitle
();
this
.
options
.
html
?
(
this
.
options
.
sanitize
&&
(
e
=
n
(
e
,
this
.
options
.
whiteList
,
this
.
options
.
sanitizeFn
)),
t
.
find
(
".tooltip-inner"
).
html
(
e
))
:
t
.
find
(
".tooltip-inner"
).
text
(
e
),
t
.
removeClass
(
"fade in top bottom left right"
)
},
m
.
prototype
.
hide
=
function
(
t
)
{
var
e
=
this
,
i
=
g
(
this
.
$tip
),
o
=
g
.
Event
(
"hide.bs."
+
this
.
type
);
function
n
()
{
"in"
!=
e
.
hoverState
&&
i
.
detach
(),
e
.
$element
&&
e
.
$element
.
removeAttr
(
"aria-describedby"
).
trigger
(
"hidden.bs."
+
e
.
type
),
t
&&
t
()
}
if
(
this
.
$element
.
trigger
(
o
),
!
o
.
isDefaultPrevented
())
return
i
.
removeClass
(
"in"
),
g
.
support
.
transition
&&
i
.
hasClass
(
"fade"
)
?
i
.
one
(
"bsTransitionEnd"
,
n
).
emulateTransitionEnd
(
m
.
TRANSITION_DURATION
)
:
n
(),
this
.
hoverState
=
null
,
this
},
m
.
prototype
.
fixTitle
=
function
()
{
var
t
=
this
.
$element
;
(
t
.
attr
(
"title"
)
||
"string"
!=
typeof
t
.
attr
(
"data-original-title"
))
&&
t
.
attr
(
"data-original-title"
,
t
.
attr
(
"title"
)
||
""
).
attr
(
"title"
,
""
)
},
m
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
},
m
.
prototype
.
getPosition
=
function
(
t
)
{
var
e
=
(
t
=
t
||
this
.
$element
)[
0
],
i
=
"BODY"
==
e
.
tagName
,
o
=
e
.
getBoundingClientRect
();
null
==
o
.
width
&&
(
o
=
g
.
extend
({},
o
,
{
width
:
o
.
right
-
o
.
left
,
height
:
o
.
bottom
-
o
.
top
}));
var
n
=
window
.
SVGElement
&&
e
instanceof
window
.
SVGElement
,
s
=
i
?
{
top
:
0
,
left
:
0
}
:
n
?
null
:
t
.
offset
(),
a
=
{
scroll
:
i
?
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
:
t
.
scrollTop
()
},
r
=
i
?
{
width
:
g
(
window
).
width
(),
height
:
g
(
window
).
height
()
}
:
null
;
return
g
.
extend
({},
o
,
a
,
r
,
s
)
},
m
.
prototype
.
getCalculatedOffset
=
function
(
t
,
e
,
i
,
o
)
{
return
"bottom"
==
t
?
{
top
:
e
.
top
+
e
.
height
,
left
:
e
.
left
+
e
.
width
/
2
-
i
/
2
}
:
"top"
==
t
?
{
top
:
e
.
top
-
o
,
left
:
e
.
left
+
e
.
width
/
2
-
i
/
2
}
:
"left"
==
t
?
{
top
:
e
.
top
+
e
.
height
/
2
-
o
/
2
,
left
:
e
.
left
-
i
}
:
{
top
:
e
.
top
+
e
.
height
/
2
-
o
/
2
,
left
:
e
.
left
+
e
.
width
}
},
m
.
prototype
.
getViewportAdjustedDelta
=
function
(
t
,
e
,
i
,
o
)
{
var
n
=
{
top
:
0
,
left
:
0
};
if
(
!
this
.
$viewport
)
return
n
;
var
s
=
this
.
options
.
viewport
&&
this
.
options
.
viewport
.
padding
||
0
,
a
=
this
.
getPosition
(
this
.
$viewport
);
if
(
/right|left/
.
test
(
t
))
{
var
r
=
e
.
top
-
s
-
a
.
scroll
,
l
=
e
.
top
+
s
-
a
.
scroll
+
o
;
r
<
a
.
top
?
n
.
top
=
a
.
top
-
r
:
l
>
a
.
top
+
a
.
height
&&
(
n
.
top
=
a
.
top
+
a
.
height
-
l
)
}
else
{
var
h
=
e
.
left
-
s
,
d
=
e
.
left
+
s
+
i
;
h
<
a
.
left
?
n
.
left
=
a
.
left
-
h
:
d
>
a
.
right
&&
(
n
.
left
=
a
.
left
+
a
.
width
-
d
)
}
return
n
},
m
.
prototype
.
getTitle
=
function
()
{
var
t
=
this
.
$element
,
e
=
this
.
options
;
return
t
.
attr
(
"data-original-title"
)
||
(
"function"
==
typeof
e
.
title
?
e
.
title
.
call
(
t
[
0
])
:
e
.
title
)
},
m
.
prototype
.
getUID
=
function
(
t
)
{
for
(;
t
+=
~~
(
1
e6
*
Math
.
random
()),
document
.
getElementById
(
t
););
return
t
},
m
.
prototype
.
tip
=
function
()
{
if
(
!
this
.
$tip
&&
(
this
.
$tip
=
g
(
this
.
options
.
template
),
1
!=
this
.
$tip
.
length
))
throw
new
Error
(
this
.
type
+
" `template` option must consist of exactly 1 top-level element!"
);
return
this
.
$tip
},
m
.
prototype
.
arrow
=
function
()
{
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
".tooltip-arrow"
)
},
m
.
prototype
.
enable
=
function
()
{
this
.
enabled
=
!
0
},
m
.
prototype
.
disable
=
function
()
{
this
.
enabled
=
!
1
},
m
.
prototype
.
toggleEnabled
=
function
()
{
this
.
enabled
=
!
this
.
enabled
},
m
.
prototype
.
toggle
=
function
(
t
)
{
var
e
=
this
;
t
&&
((
e
=
g
(
t
.
currentTarget
).
data
(
"bs."
+
this
.
type
))
||
(
e
=
new
this
.
constructor
(
t
.
currentTarget
,
this
.
getDelegateOptions
()),
g
(
t
.
currentTarget
).
data
(
"bs."
+
this
.
type
,
e
))),
t
?
(
e
.
inState
.
click
=
!
e
.
inState
.
click
,
e
.
isInStateTrue
()
?
e
.
enter
(
e
)
:
e
.
leave
(
e
))
:
e
.
tip
().
hasClass
(
"in"
)
?
e
.
leave
(
e
)
:
e
.
enter
(
e
)
},
m
.
prototype
.
destroy
=
function
()
{
var
t
=
this
;
clearTimeout
(
this
.
timeout
),
this
.
hide
(
function
()
{
t
.
$element
.
off
(
"."
+
t
.
type
).
removeData
(
"bs."
+
t
.
type
),
t
.
$tip
&&
t
.
$tip
.
detach
(),
t
.
$tip
=
null
,
t
.
$arrow
=
null
,
t
.
$viewport
=
null
,
t
.
$element
=
null
})
},
m
.
prototype
.
sanitizeHtml
=
function
(
t
)
{
return
n
(
t
,
this
.
options
.
whiteList
,
this
.
options
.
sanitizeFn
)
};
var
e
=
g
.
fn
.
tooltip
;
g
.
fn
.
tooltip
=
function
i
(
o
)
{
return
this
.
each
(
function
()
{
var
t
=
g
(
this
),
e
=
t
.
data
(
"bs.tooltip"
),
i
=
"object"
==
typeof
o
&&
o
;
!
e
&&
/destroy|hide/
.
test
(
o
)
||
(
e
||
t
.
data
(
"bs.tooltip"
,
e
=
new
m
(
this
,
i
)),
"string"
==
typeof
o
&&
e
[
o
]())
})
},
g
.
fn
.
tooltip
.
Constructor
=
m
,
g
.
fn
.
tooltip
.
noConflict
=
function
()
{
return
g
.
fn
.
tooltip
=
e
,
this
}
}(
jQuery
),
function
(
n
)
{
"use strict"
;
var
s
=
function
(
t
,
e
)
{
this
.
init
(
"popover"
,
t
,
e
)
};
if
(
!
n
.
fn
.
tooltip
)
throw
new
Error
(
"Popover requires tooltip.js"
);
s
.
VERSION
=
"3.4.1"
,
s
.
DEFAULTS
=
n
.
extend
({},
n
.
fn
.
tooltip
.
Constructor
.
DEFAULTS
,
{
placement
:
"right"
,
trigger
:
"click"
,
content
:
""
,
template
:
'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
}),
((
s
.
prototype
=
n
.
extend
({},
n
.
fn
.
tooltip
.
Constructor
.
prototype
)).
constructor
=
s
).
prototype
.
getDefaults
=
function
()
{
return
s
.
DEFAULTS
},
s
.
prototype
.
setContent
=
function
()
{
var
t
=
this
.
tip
(),
e
=
this
.
getTitle
(),
i
=
this
.
getContent
();
if
(
this
.
options
.
html
)
{
var
o
=
typeof
i
;
this
.
options
.
sanitize
&&
(
e
=
this
.
sanitizeHtml
(
e
),
"string"
===
o
&&
(
i
=
this
.
sanitizeHtml
(
i
))),
t
.
find
(
".popover-title"
).
html
(
e
),
t
.
find
(
".popover-content"
).
children
().
detach
().
end
()[
"string"
===
o
?
"html"
:
"append"
](
i
)
}
else
t
.
find
(
".popover-title"
).
text
(
e
),
t
.
find
(
".popover-content"
).
children
().
detach
().
end
().
text
(
i
);
t
.
removeClass
(
"fade top bottom left right in"
),
t
.
find
(
".popover-title"
).
html
()
||
t
.
find
(
".popover-title"
).
hide
()
},
s
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
},
s
.
prototype
.
getContent
=
function
()
{
var
t
=
this
.
$element
,
e
=
this
.
options
;
return
t
.
attr
(
"data-content"
)
||
(
"function"
==
typeof
e
.
content
?
e
.
content
.
call
(
t
[
0
])
:
e
.
content
)
},
s
.
prototype
.
arrow
=
function
()
{
return
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
".arrow"
)
};
var
t
=
n
.
fn
.
popover
;
n
.
fn
.
popover
=
function
e
(
o
)
{
return
this
.
each
(
function
()
{
var
t
=
n
(
this
),
e
=
t
.
data
(
"bs.popover"
),
i
=
"object"
==
typeof
o
&&
o
;
!
e
&&
/destroy|hide/
.
test
(
o
)
||
(
e
||
t
.
data
(
"bs.popover"
,
e
=
new
s
(
this
,
i
)),
"string"
==
typeof
o
&&
e
[
o
]())
})
},
n
.
fn
.
popover
.
Constructor
=
s
,
n
.
fn
.
popover
.
noConflict
=
function
()
{
return
n
.
fn
.
popover
=
t
,
this
}
}(
jQuery
),
function
(
s
)
{
"use strict"
;
function
n
(
t
,
e
)
{
this
.
$body
=
s
(
document
.
body
),
this
.
$scrollElement
=
s
(
t
).
is
(
document
.
body
)
?
s
(
window
)
:
s
(
t
),
this
.
options
=
s
.
extend
({},
n
.
DEFAULTS
,
e
),
this
.
selector
=
(
this
.
options
.
target
||
""
)
+
" .nav li > a"
,
this
.
offsets
=
[],
this
.
targets
=
[],
this
.
activeTarget
=
null
,
this
.
scrollHeight
=
0
,
this
.
$scrollElement
.
on
(
"scroll.bs.scrollspy"
,
s
.
proxy
(
this
.
process
,
this
)),
this
.
refresh
(),
this
.
process
()
}
function
e
(
o
)
{
return
this
.
each
(
function
()
{
var
t
=
s
(
this
),
e
=
t
.
data
(
"bs.scrollspy"
),
i
=
"object"
==
typeof
o
&&
o
;
e
||
t
.
data
(
"bs.scrollspy"
,
e
=
new
n
(
this
,
i
)),
"string"
==
typeof
o
&&
e
[
o
]()
})
}
n
.
VERSION
=
"3.4.1"
,
n
.
DEFAULTS
=
{
offset
:
10
},
n
.
prototype
.
getScrollHeight
=
function
()
{
return
this
.
$scrollElement
[
0
].
scrollHeight
||
Math
.
max
(
this
.
$body
[
0
].
scrollHeight
,
document
.
documentElement
.
scrollHeight
)
},
n
.
prototype
.
refresh
=
function
()
{
var
t
=
this
,
o
=
"offset"
,
n
=
0
;
this
.
offsets
=
[],
this
.
targets
=
[],
this
.
scrollHeight
=
this
.
getScrollHeight
(),
s
.
isWindow
(
this
.
$scrollElement
[
0
])
||
(
o
=
"position"
,
n
=
this
.
$scrollElement
.
scrollTop
()),
this
.
$body
.
find
(
this
.
selector
).
map
(
function
()
{
var
t
=
s
(
this
),
e
=
t
.
data
(
"target"
)
||
t
.
attr
(
"href"
),
i
=
/^#./
.
test
(
e
)
&&
s
(
e
);
return
i
&&
i
.
length
&&
i
.
is
(
":visible"
)
&&
[[
i
[
o
]().
top
+
n
,
e
]]
||
null
}).
sort
(
function
(
t
,
e
)
{
return
t
[
0
]
-
e
[
0
]
}).
each
(
function
()
{
t
.
offsets
.
push
(
this
[
0
]),
t
.
targets
.
push
(
this
[
1
])
})
},
n
.
prototype
.
process
=
function
()
{
var
t
,
e
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
,
i
=
this
.
getScrollHeight
(),
o
=
this
.
options
.
offset
+
i
-
this
.
$scrollElement
.
height
(),
n
=
this
.
offsets
,
s
=
this
.
targets
,
a
=
this
.
activeTarget
;
if
(
this
.
scrollHeight
!=
i
&&
this
.
refresh
(),
o
<=
e
)
return
a
!=
(
t
=
s
[
s
.
length
-
1
])
&&
this
.
activate
(
t
);
if
(
a
&&
e
<
n
[
0
])
return
this
.
activeTarget
=
null
,
this
.
clear
();
for
(
t
=
n
.
length
;
t
--
;)
a
!=
s
[
t
]
&&
e
>=
n
[
t
]
&&
(
n
[
t
+
1
]
===
undefined
||
e
<
n
[
t
+
1
])
&&
this
.
activate
(
s
[
t
])
},
n
.
prototype
.
activate
=
function
(
t
)
{
this
.
activeTarget
=
t
,
this
.
clear
();
var
e
=
this
.
selector
+
'[data-target="'
+
t
+
'"],'
+
this
.
selector
+
'[href="'
+
t
+
'"]'
,
i
=
s
(
e
).
parents
(
"li"
).
addClass
(
"active"
);
i
.
parent
(
".dropdown-menu"
).
length
&&
(
i
=
i
.
closest
(
"li.dropdown"
).
addClass
(
"active"
)),
i
.
trigger
(
"activate.bs.scrollspy"
)
},
n
.
prototype
.
clear
=
function
()
{
s
(
this
.
selector
).
parentsUntil
(
this
.
options
.
target
,
".active"
).
removeClass
(
"active"
)
};
var
t
=
s
.
fn
.
scrollspy
;
s
.
fn
.
scrollspy
=
e
,
s
.
fn
.
scrollspy
.
Constructor
=
n
,
s
.
fn
.
scrollspy
.
noConflict
=
function
()
{
return
s
.
fn
.
scrollspy
=
t
,
this
},
s
(
window
).
on
(
"load.bs.scrollspy.data-api"
,
function
()
{
s
(
'[data-spy="scroll"]'
).
each
(
function
()
{
var
t
=
s
(
this
);
e
.
call
(
t
,
t
.
data
())
})
})
}(
jQuery
),
function
(
r
)
{
"use strict"
;
var
a
=
function
(
t
)
{
this
.
element
=
r
(
t
)
};
function
e
(
i
)
{
return
this
.
each
(
function
()
{
var
t
=
r
(
this
),
e
=
t
.
data
(
"bs.tab"
);
e
||
t
.
data
(
"bs.tab"
,
e
=
new
a
(
this
)),
"string"
==
typeof
i
&&
e
[
i
]()
})
}
a
.
VERSION
=
"3.4.1"
,
a
.
TRANSITION_DURATION
=
150
,
a
.
prototype
.
show
=
function
()
{
var
t
=
this
.
element
,
e
=
t
.
closest
(
"ul:not(.dropdown-menu)"
),
i
=
t
.
data
(
"target"
);
if
(
i
||
(
i
=
(
i
=
t
.
attr
(
"href"
))
&&
i
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
""
)),
!
t
.
parent
(
"li"
).
hasClass
(
"active"
))
{
var
o
=
e
.
find
(
".active:last a"
),
n
=
r
.
Event
(
"hide.bs.tab"
,
{
relatedTarget
:
t
[
0
]
}),
s
=
r
.
Event
(
"show.bs.tab"
,
{
relatedTarget
:
o
[
0
]
});
if
(
o
.
trigger
(
n
),
t
.
trigger
(
s
),
!
s
.
isDefaultPrevented
()
&&
!
n
.
isDefaultPrevented
())
{
var
a
=
r
(
document
).
find
(
i
);
this
.
activate
(
t
.
closest
(
"li"
),
e
),
this
.
activate
(
a
,
a
.
parent
(),
function
()
{
o
.
trigger
({
type
:
"hidden.bs.tab"
,
relatedTarget
:
t
[
0
]
}),
t
.
trigger
({
type
:
"shown.bs.tab"
,
relatedTarget
:
o
[
0
]
})
})
}
}
},
a
.
prototype
.
activate
=
function
(
t
,
e
,
i
)
{
var
o
=
e
.
find
(
"> .active"
),
n
=
i
&&
r
.
support
.
transition
&&
(
o
.
length
&&
o
.
hasClass
(
"fade"
)
||
!!
e
.
find
(
"> .fade"
).
length
);
function
s
()
{
o
.
removeClass
(
"active"
).
find
(
"> .dropdown-menu > .active"
).
removeClass
(
"active"
).
end
().
find
(
'[data-toggle="tab"]'
).
attr
(
"aria-expanded"
,
!
1
),
t
.
addClass
(
"active"
).
find
(
'[data-toggle="tab"]'
).
attr
(
"aria-expanded"
,
!
0
),
n
?
(
t
[
0
].
offsetWidth
,
t
.
addClass
(
"in"
))
:
t
.
removeClass
(
"fade"
),
t
.
parent
(
".dropdown-menu"
).
length
&&
t
.
closest
(
"li.dropdown"
).
addClass
(
"active"
).
end
().
find
(
'[data-toggle="tab"]'
).
attr
(
"aria-expanded"
,
!
0
),
i
&&
i
()
}
o
.
length
&&
n
?
o
.
one
(
"bsTransitionEnd"
,
s
).
emulateTransitionEnd
(
a
.
TRANSITION_DURATION
)
:
s
(),
o
.
removeClass
(
"in"
)
};
var
t
=
r
.
fn
.
tab
;
r
.
fn
.
tab
=
e
,
r
.
fn
.
tab
.
Constructor
=
a
,
r
.
fn
.
tab
.
noConflict
=
function
()
{
return
r
.
fn
.
tab
=
t
,
this
};
var
i
=
function
(
t
)
{
t
.
preventDefault
(),
e
.
call
(
r
(
this
),
"show"
)
};
r
(
document
).
on
(
"click.bs.tab.data-api"
,
'[data-toggle="tab"]'
,
i
).
on
(
"click.bs.tab.data-api"
,
'[data-toggle="pill"]'
,
i
)
}(
jQuery
),
function
(
l
)
{
"use strict"
;
var
h
=
function
(
t
,
e
)
{
this
.
options
=
l
.
extend
({},
h
.
DEFAULTS
,
e
);
var
i
=
this
.
options
.
target
===
h
.
DEFAULTS
.
target
?
l
(
this
.
options
.
target
)
:
l
(
document
).
find
(
this
.
options
.
target
);
this
.
$target
=
i
.
on
(
"scroll.bs.affix.data-api"
,
l
.
proxy
(
this
.
checkPosition
,
this
)).
on
(
"click.bs.affix.data-api"
,
l
.
proxy
(
this
.
checkPositionWithEventLoop
,
this
)),
this
.
$element
=
l
(
t
),
this
.
affixed
=
null
,
this
.
unpin
=
null
,
this
.
pinnedOffset
=
null
,
this
.
checkPosition
()
};
function
i
(
o
)
{
return
this
.
each
(
function
()
{
var
t
=
l
(
this
),
e
=
t
.
data
(
"bs.affix"
),
i
=
"object"
==
typeof
o
&&
o
;
e
||
t
.
data
(
"bs.affix"
,
e
=
new
h
(
this
,
i
)),
"string"
==
typeof
o
&&
e
[
o
]()
})
}
h
.
VERSION
=
"3.4.1"
,
h
.
RESET
=
"affix affix-top affix-bottom"
,
h
.
DEFAULTS
=
{
offset
:
0
,
target
:
window
},
h
.
prototype
.
getState
=
function
(
t
,
e
,
i
,
o
)
{
var
n
=
this
.
$target
.
scrollTop
(),
s
=
this
.
$element
.
offset
(),
a
=
this
.
$target
.
height
();
if
(
null
!=
i
&&
"top"
==
this
.
affixed
)
return
n
<
i
&&
"top"
;
if
(
"bottom"
==
this
.
affixed
)
return
null
!=
i
?
!
(
n
+
this
.
unpin
<=
s
.
top
)
&&
"bottom"
:
!
(
n
+
a
<=
t
-
o
)
&&
"bottom"
;
var
r
=
null
==
this
.
affixed
,
l
=
r
?
n
:
s
.
top
;
return
null
!=
i
&&
n
<=
i
?
"top"
:
null
!=
o
&&
t
-
o
<=
l
+
(
r
?
a
:
e
)
&&
"bottom"
},
h
.
prototype
.
getPinnedOffset
=
function
()
{
if
(
this
.
pinnedOffset
)
return
this
.
pinnedOffset
;
this
.
$element
.
removeClass
(
h
.
RESET
).
addClass
(
"affix"
);
var
t
=
this
.
$target
.
scrollTop
(),
e
=
this
.
$element
.
offset
();
return
this
.
pinnedOffset
=
e
.
top
-
t
},
h
.
prototype
.
checkPositionWithEventLoop
=
function
()
{
setTimeout
(
l
.
proxy
(
this
.
checkPosition
,
this
),
1
)
},
h
.
prototype
.
checkPosition
=
function
()
{
if
(
this
.
$element
.
is
(
":visible"
))
{
var
t
=
this
.
$element
.
height
(),
e
=
this
.
options
.
offset
,
i
=
e
.
top
,
o
=
e
.
bottom
,
n
=
Math
.
max
(
l
(
document
).
height
(),
l
(
document
.
body
).
height
());
"object"
!=
typeof
e
&&
(
o
=
i
=
e
),
"function"
==
typeof
i
&&
(
i
=
e
.
top
(
this
.
$element
)),
"function"
==
typeof
o
&&
(
o
=
e
.
bottom
(
this
.
$element
));
var
s
=
this
.
getState
(
n
,
t
,
i
,
o
);
if
(
this
.
affixed
!=
s
)
{
null
!=
this
.
unpin
&&
this
.
$element
.
css
(
"top"
,
""
);
var
a
=
"affix"
+
(
s
?
"-"
+
s
:
""
),
r
=
l
.
Event
(
a
+
".bs.affix"
);
if
(
this
.
$element
.
trigger
(
r
),
r
.
isDefaultPrevented
())
return
;
this
.
affixed
=
s
,
this
.
unpin
=
"bottom"
==
s
?
this
.
getPinnedOffset
()
:
null
,
this
.
$element
.
removeClass
(
h
.
RESET
).
addClass
(
a
).
trigger
(
a
.
replace
(
"affix"
,
"affixed"
)
+
".bs.affix"
)
}
"bottom"
==
s
&&
this
.
$element
.
offset
({
top
:
n
-
t
-
o
})
}
};
var
t
=
l
.
fn
.
affix
;
l
.
fn
.
affix
=
i
,
l
.
fn
.
affix
.
Constructor
=
h
,
l
.
fn
.
affix
.
noConflict
=
function
()
{
return
l
.
fn
.
affix
=
t
,
this
},
l
(
window
).
on
(
"load"
,
function
()
{
l
(
'[data-spy="affix"]'
).
each
(
function
()
{
var
t
=
l
(
this
),
e
=
t
.
data
();
e
.
offset
=
e
.
offset
||
{},
null
!=
e
.
offsetBottom
&&
(
e
.
offset
.
bottom
=
e
.
offsetBottom
),
null
!=
e
.
offsetTop
&&
(
e
.
offset
.
top
=
e
.
offsetTop
),
i
.
call
(
t
,
e
)
})
})
}(
jQuery
);
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment