Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
stw
leaflet-player-control
Commits
1a9ab687
Commit
1a9ab687
authored
Apr 26, 2017
by
Tomas Pettersson
🏸
Browse files
test
parent
11ed2389
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
dist/leaflet-player-control.css
0 → 100644
View file @
1a9ab687
.player-control
{
background
:
#fafafa
;
}
.player
{
padding
:
10px
;
background
:
#fafafa
;
color
:
#444
;
border
:
1px
solid
#ddd
;
border-radius
:
4px
;
}
.player-horizontal-padding
{
padding-bottom
:
0
;
padding-left
:
5px
;
padding-right
:
5px
;
padding-top
:
5px
;
}
.player-button
{
width
:
34px
;
}
.player-play-reverse
{
-ms-transform
:
rotate
(
180deg
);
-webkit-transform
:
rotate
(
180deg
);
transform
:
rotate
(
180deg
);
position
:
relative
;
bottom
:
1px
;
}
.player-play-progress
{
font-size
:
12px
;
position
:
relative
;
left
:
-6px
;
}
.player-disable
{
pointer-events
:
none
;
opacity
:
0.4
;
}
.player-img-icon
{
width
:
19px
;
height
:
19px
;
max-width
:
none
;
position
:
relative
;
left
:
-7px
;
opacity
:
0.8
;
}
.player-horizontal
{
display
:
inline-block
;
padding-right
:
5px
;
}
.player-horizontal
.irs
{
height
:
25px
;
}
.player-horizontal-control
{
min-width
:
130px
;
}
.player-time
{
height
:
24px
;
}
.player-horizontal-timeselect
{
min-width
:
200px
;
}
.player-horizontal-timeslider
{
min-width
:
200px
;
position
:
relative
;
bottom
:
10px
;
}
.player-calendar
{
display
:
inline-block
;
position
:
relative
;
top
:
-3px
;
float
:
right
;
}
.player
.irs-slider
{
top
:
3px
;
}
.player
.irs-line
{
top
:
10px
;
}
.player
.irs-bar-edge
{
top
:
10px
;
}
.player
.irs-bar
{
top
:
10px
;
}
.player
.irs-with-grid
{
height
:
40px
;
}
dist/leaflet-player-control.js
0 → 100644
View file @
1a9ab687
This diff is collapsed.
Click to expand it.
dist/leaflet-player-control.map
0 → 100644
View file @
1a9ab687
{"version":3,"sources":["leaflet-player-control.js"],"names":["__extends","this","extendStatics","Object","setPrototypeOf","__proto__","Array","d","b","p","hasOwnProperty","__","constructor","prototype","create","L","Control","Player","_super","options","_this","call","domain","lang","langdata","langData","display","transitionTime","interval","datetimeformat","datetimeformatZ","onAdd","map","self","container","DomUtil","setup","reqwest","url","method","type","success","disable","DomEvent","disableClickPropagation","onRemove","player","off","onPlayerWaiting","addLayout","timeDimension","TimeDimension","times","on","time","enable","buffer","minBufferReady","loop","evt","getSteps","playForwardIcon","classList","remove","innerHTML","Math","floor","available","playBackwardIcon","getTimeDimension","getCurrentTimeIndex","setCurrentTimeIndex","index","refresh","keepTimeIndex","allAvailableTimes","filterAvailableTimes","i","_syncedLayers","length","layer","playerTimes","getPlayerTimes","Util","union_arrays","forcePlayerTimes","validtimes","explodeTimeRange","Date","setAvailableTimes","timeIndex","update","date","moment","getCurrentTime","utc","format","min","max","startOf","subtract","add","clear","playerDiv","timeSelectDiv","timeSliderDiv","timeSliderWrapper","controlsDiv","showGrid","appendChild","$","ionRangeSlider","from","step","grid","keyboard","keyboard_step","hide_min_max","hide_from_to","force_edges","prettify","num","onChange","data","play","isPlaying","steps","stopPlay","timeSelect","value","startPlay","onFinish","setCurrentTime","valueOf","slider","updateTimeSelect","result","transitionButton","transitionSpeed","title","document","createTextNode","onclick","setTransitionTime","replaceText","timeButtonGroup","stepStart","playBackwardButton","stepBack","stepForward","playForwardButton","stepEnd","playUpdate","forward","stop","startPlayForward","startPlayBackward","start","_availableTimes","onchange","parseInt","item","newText","oldChild","newChild","replaceChild","contains","firstChild","removeChild","counter","datetime","option","textContent","u","sliderOpt","getDate"],"mappings":"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","file":"leaflet-player-control.min.js"}
\ No newline at end of file
dist/leaflet-player-control.min.css
0 → 100644
View file @
1a9ab687
.player
,
.player-control
{
background
:
#fafafa
}
.player
{
padding
:
10px
;
color
:
#444
;
border
:
1px
solid
#ddd
;
border-radius
:
4px
}
.player-horizontal-padding
{
padding-bottom
:
0
;
padding-left
:
5px
;
padding-right
:
5px
;
padding-top
:
5px
}
.player-button
{
width
:
34px
}
.player-play-reverse
{
-ms-transform
:
rotate
(
180deg
);
-webkit-transform
:
rotate
(
180deg
);
transform
:
rotate
(
180deg
);
position
:
relative
;
bottom
:
1px
}
.player-play-progress
{
font-size
:
12px
;
position
:
relative
;
left
:
-6px
}
.player-disable
{
pointer-events
:
none
;
opacity
:
.4
}
.player-img-icon
{
width
:
19px
;
height
:
19px
;
max-width
:
none
;
position
:
relative
;
left
:
-7px
;
opacity
:
.8
}
.player-horizontal
{
display
:
inline-block
;
padding-right
:
5px
}
.player-horizontal
.irs
{
height
:
25px
}
.player-horizontal-control
{
min-width
:
130px
}
.player-time
{
height
:
24px
}
.player-horizontal-timeselect
{
min-width
:
200px
}
.player-horizontal-timeslider
{
min-width
:
200px
;
position
:
relative
;
bottom
:
10px
}
.player-calendar
{
display
:
inline-block
;
position
:
relative
;
top
:
-3px
;
float
:
right
}
.player
.irs-slider
{
top
:
3px
}
.player
.irs-bar
,
.player
.irs-bar-edge
,
.player
.irs-line
{
top
:
10px
}
.player
.irs-with-grid
{
height
:
40px
}
\ No newline at end of file
dist/leaflet-player-control.min.js
0 → 100644
View file @
1a9ab687
/*! leaflet-player-control 2017-04-26 */
var
__extends
=
this
&&
this
.
__extends
||
function
(){
var
a
=
Object
.
setPrototypeOf
||
{
__proto__
:[]}
instanceof
Array
&&
function
(
a
,
b
){
a
.
__proto__
=
b
}
||
function
(
a
,
b
){
for
(
var
c
in
b
)
b
.
hasOwnProperty
(
c
)
&&
(
a
[
c
]
=
b
[
c
])};
return
function
(
b
,
c
){
function
d
(){
this
.
constructor
=
b
}
a
(
b
,
c
),
b
.
prototype
=
null
===
c
?
Object
.
create
(
c
):(
d
.
prototype
=
c
.
prototype
,
new
d
)}}(),
L
;
!
function
(
a
){
!
function
(
b
){
var
c
=
function
(
b
){
function
c
(
a
){
var
c
=
b
.
call
(
this
,
a
)
||
this
;
return
a
.
domain
&&
(
c
.
domain
=
a
.
domain
),
c
.
lang
=
"
en
"
,
a
.
lang
&&
(
c
.
lang
=
a
.
lang
),
a
.
langdata
&&
(
c
.
langData
=
a
.
langdata
),
c
.
display
=
"
vertical
"
,
a
.
display
&&
(
c
.
display
=
a
.
display
),
c
.
transitionTime
=
500
,
a
.
transitionTime
&&
(
c
.
transitionTime
=
a
.
transitionTime
),
c
.
interval
=
900
,
a
.
interval
&&
(
c
.
interval
=
a
.
interval
),
c
.
datetimeformat
=
"
YYYY-MM-DD HH:mm
"
,
c
.
datetimeformatZ
=
"
YYYY-MM-DDTHH:mm:ss[Z]
"
,
c
}
return
__extends
(
c
,
b
),
c
.
prototype
.
onAdd
=
function
(
b
){
var
c
=
this
;
return
this
.
container
=
a
.
DomUtil
.
create
(
"
div
"
,
"
player-control
"
),
c
.
langData
?
c
.
setup
():
reqwest
({
url
:
"
lang/player.
"
+
c
.
lang
+
"
.json
"
,
method
:
"
get
"
,
type
:
"
json
"
,
success
:
function
(
a
){
c
.
langData
=
a
,
c
.
setup
()}}),
c
.
disable
(),
a
.
DomEvent
.
disableClickPropagation
(
this
.
container
),
this
.
container
},
c
.
prototype
.
onRemove
=
function
(
a
){
var
b
=
this
;
b
.
player
.
off
(
"
waiting
"
,
b
.
onPlayerWaiting
,
this
)},
c
.
prototype
.
setup
=
function
(){
var
b
=
this
;
b
.
addLayout
(),
b
.
timeDimension
=
new
a
.
TimeDimension
({
times
:[]}),
b
.
timeDimension
.
on
(
"
timeload
"
,
function
(
a
){
b
.
enable
()}),
b
.
player
=
new
a
.
TimeDimension
.
Player
({
transitionTime
:
b
.
transitionTime
,
buffer
:
15
,
minBufferReady
:
10
,
loop
:
!
0
},
b
.
timeDimension
),
b
.
player
.
on
(
"
waiting
"
,
b
.
onPlayerWaiting
,
this
)},
c
.
prototype
.
onPlayerWaiting
=
function
(
a
){
var
b
=
this
;
b
.
player
.
getSteps
()
>
0
&&
(
b
.
playForwardIcon
.
classList
.
remove
(
"
uk-icon-pause
"
),
b
.
playForwardIcon
.
innerHTML
=
'
<span class="player-play-progress">
'
+
Math
.
floor
(
a
.
available
/
a
.
buffer
*
100
)
+
"
%</span>
"
),
b
.
player
.
getSteps
()
<
0
&&
(
b
.
playBackwardIcon
.
classList
.
remove
(
"
uk-icon-pause
"
),
b
.
playBackwardIcon
.
innerHTML
=
'
<span class="player-play-progress">
'
+
Math
.
floor
(
a
.
available
/
a
.
buffer
*
100
)
+
"
%</span>
"
)},
c
.
prototype
.
getTimeDimension
=
function
(){
return
this
.
timeDimension
},
c
.
prototype
.
getCurrentTimeIndex
=
function
(){
return
this
.
timeDimension
.
getCurrentTimeIndex
()},
c
.
prototype
.
setCurrentTimeIndex
=
function
(
a
){
return
this
.
timeDimension
.
setCurrentTimeIndex
(
a
)},
c
.
prototype
.
refresh
=
function
(
b
){
var
c
=
this
;
if
(
c
.
timeDimension
){
for
(
var
d
=
[],
e
=
[],
f
=
0
;
f
<
c
.
timeDimension
.
_syncedLayers
.
length
;
f
++
){
var
g
=
c
.
timeDimension
.
_syncedLayers
[
f
],
h
=
g
.
getPlayerTimes
();
d
=
a
.
TimeDimension
.
Util
.
union_arrays
(
h
,
d
),
g
.
forcePlayerTimes
()
&&
(
e
=
a
.
TimeDimension
.
Util
.
union_arrays
(
h
,
e
))}
var
i
=
a
.
TimeDimension
.
Util
.
explodeTimeRange
(
new
Date
(
d
[
0
]),
new
Date
(
d
[
d
.
length
-
1
]),
"
PT15M
"
);
e
.
length
>
0
&&
(
i
=
a
.
TimeDimension
.
Util
.
explodeTimeRange
(
new
Date
(
e
[
0
]),
new
Date
(
e
[
e
.
length
-
1
]),
"
PT15M
"
)),
c
.
timeDimension
.
setAvailableTimes
(
i
,
"
replace
"
),
c
.
timeDimension
.
setCurrentTimeIndex
(
b
&&
c
.
timeIndex
||
0
),
this
.
timeDimension
.
_syncedLayers
.
length
>
0
?(
c
.
update
({
date
:
+
moment
(
c
.
timeDimension
.
getCurrentTime
()).
utc
().
format
(
"
X
"
),
min
:
+
moment
(
i
[
0
]).
utc
().
format
(
"
X
"
),
max
:
+
moment
(
i
[
i
.
length
-
1
]).
utc
().
format
(
"
X
"
)}),
c
.
enable
()):(
c
.
timeIndex
=
c
.
timeDimension
.
getCurrentTimeIndex
(),
c
.
update
({
date
:
+
moment
().
utc
().
startOf
(
"
hour
"
).
format
(
"
X
"
),
min
:
+
moment
().
utc
().
startOf
(
"
day
"
).
subtract
(
6
,
"
hours
"
).
format
(
"
X
"
),
max
:
+
moment
().
utc
().
startOf
(
"
day
"
).
add
(
2
,
"
days
"
).
format
(
"
X
"
)}),
c
.
clear
())}},
c
.
prototype
.
clear
=
function
(){
this
.
disable
()},
c
.
prototype
.
addLayout
=
function
(){
var
b
=
this
;
b
.
playerDiv
=
a
.
DomUtil
.
create
(
"
div
"
,
"
player
"
,
b
.
container
);
var
c
=
a
.
DomUtil
.
create
(
"
div
"
,
""
),
d
=
a
.
DomUtil
.
create
(
"
div
"
,
""
),
e
=
a
.
DomUtil
.
create
(
"
div
"
,
""
),
f
=
a
.
DomUtil
.
create
(
"
div
"
,
""
),
g
=!
1
;
"
vertical
"
==
b
.
display
?(
g
=!
0
,
b
.
playerDiv
.
classList
.
add
(
"
uk-margin-top
"
),
f
.
classList
.
add
(
"
uk-margin-top
"
),
c
.
classList
.
add
(
"
uk-width-1-1
"
),
d
.
classList
.
add
(
"
uk-width-1-1
"
),
f
.
classList
.
add
(
"
uk-width-1-1
"
),
b
.
playerDiv
.
appendChild
(
c
),
b
.
playerDiv
.
appendChild
(
e
),
b
.
playerDiv
.
appendChild
(
f
)):(
b
.
playerDiv
.
classList
.
add
(
"
player-horizontal-padding
"
),
e
.
classList
.
add
(
"
player-horizontal
"
),
e
.
classList
.
add
(
"
uk-width-1-3
"
),
e
.
classList
.
add
(
"
player-horizontal-timeslider
"
),
c
.
classList
.
add
(
"
player-horizontal
"
),
c
.
classList
.
add
(
"
uk-width-1-3
"
),
c
.
classList
.
add
(
"
player-horizontal-timeselect
"
),
f
.
classList
.
add
(
"
player-horizontal
"
),
f
.
classList
.
add
(
"
uk-width-1-3
"
),
f
.
classList
.
add
(
"
player-horizontal-control
"
),
b
.
playerDiv
.
appendChild
(
f
),
b
.
playerDiv
.
appendChild
(
c
),
b
.
playerDiv
.
appendChild
(
e
));
var
d
=
a
.
DomUtil
.
create
(
"
div
"
,
""
,
e
);
$
(
d
).
ionRangeSlider
({
type
:
"
single
"
,
min
:
+
moment
().
utc
().
startOf
(
"
day
"
).
subtract
(
6
,
"
hours
"
).
format
(
"
X
"
),
max
:
+
moment
().
utc
().
startOf
(
"
day
"
).
add
(
2
,
"
days
"
).
format
(
"
X
"
),
from
:
+
moment
().
utc
().
startOf
(
"
hour
"
).
format
(
"
X
"
),
step
:
b
.
interval
,
grid
:
g
,
keyboard
:
!
0
,
keyboard_step
:
1
,
hide_min_max
:
!
0
,
hide_from_to
:
!
0
,
force_edges
:
!
0
,
prettify
:
function
(
a
){
return
moment
(
a
,
"
X
"
).
utc
().
format
(
"
YYYY-MM-DD, HH:mm
"
)},
onChange
:
function
(
a
){
var
c
=
b
.
player
.
isPlaying
(),
d
=
b
.
player
.
getSteps
();
c
&&
s
();
var
e
=
moment
(
1
e3
*
a
.
from
).
utc
();
b
.
timeSelect
.
value
=
e
.
format
(
"
X
"
),
c
&&
t
(
d
)},
onFinish
:
function
(
a
){
b
.
disable
();
var
c
=
moment
(
1
e3
*
a
.
from
).
utc
();
b
.
timeDimension
.
setCurrentTime
(
c
.
valueOf
()),
b
.
timeSelect
.
value
=
c
.
format
(
"
X
"
)}}),
b
.
slider
=
$
(
d
).
data
(
"
ionRangeSlider
"
),
b
.
timeSelect
=
a
.
DomUtil
.
create
(
"
select
"
,
"
uk-width-4-6 uk-text-bold player-time
"
,
c
),
b
.
updateTimeSelect
(
b
.
slider
.
result
.
min
,
b
.
slider
.
result
.
max
);
var
h
=
a
.
DomUtil
.
create
(
"
button
"
,
"
uk-button uk-button-small uk-text-bold uk-width-2-6
"
,
c
),
i
=
(
a
.
DomUtil
.
create
(
"
span
"
,
"
uk-icon-tachometer
"
,
h
),
1
),
j
=
document
.
createTextNode
(
"
x
"
+
i
);
h
.
appendChild
(
j
),
h
.
onclick
=
function
(){
switch
(
i
){
case
1
:
i
=
4
;
break
;
case
4
:
i
=
8
;
break
;
case
8
:
i
=
1
}
b
.
player
.
setTransitionTime
(
b
.
transitionTime
/
i
),
j
=
b
.
replaceText
(
h
,
"
x
"
+
i
,
j
)};
var
k
=
a
.
DomUtil
.
create
(
"
div
"
,
"
uk-button-group
"
,
f
),
l
=
a
.
DomUtil
.
create
(
"
button
"
,
"
uk-button player-button
"
,
k
),
m
=
(
a
.
DomUtil
.
create
(
"
span
"
,
"
uk-icon-step-backward
"
,
l
),
a
.
DomUtil
.
create
(
"
button
"
,
"
uk-button player-button
"
,
k
));
b
.
playBackwardIcon
=
a
.
DomUtil
.
create
(
"
span
"
,
"
uk-icon-play player-play-reverse
"
,
m
);
var
n
=
a
.
DomUtil
.
create
(
"
button
"
,
"
uk-button player-button
"
,
k
),
o
=
(
a
.
DomUtil
.
create
(
"
span
"
,
"
uk-icon-chevron-left
"
,
n
),
a
.
DomUtil
.
create
(
"
button
"
,
"
uk-button player-button
"
,
k
)),
p
=
(
a
.
DomUtil
.
create
(
"
span
"
,
"
uk-icon-chevron-right
"
,
o
),
a
.
DomUtil
.
create
(
"
button
"
,
"
uk-button player-button
"
,
k
));
b
.
playForwardIcon
=
a
.
DomUtil
.
create
(
"
span
"
,
"
uk-icon-play
"
,
p
);
var
q
=
a
.
DomUtil
.
create
(
"
button
"
,
"
uk-button player-button
"
,
k
),
r
=
(
a
.
DomUtil
.
create
(
"
span
"
,
"
uk-icon-step-forward
"
,
q
),
function
(
a
){
var
c
=
moment
(
b
.
timeDimension
.
getCurrentTime
()).
utc
();
b
.
timeSelect
.
value
=
c
.
format
(
"
X
"
),
b
.
slider
.
update
({
from
:
+
c
.
format
(
"
X
"
)}),
b
.
player
.
getSteps
()
>
0
?(
b
.
playForwardIcon
.
innerHTML
=
""
,
b
.
playForwardIcon
.
classList
.
add
(
"
uk-icon-pause
"
)):(
b
.
playBackwardIcon
.
innerHTML
=
""
,
b
.
playBackwardIcon
.
classList
.
add
(
"
uk-icon-pause
"
))}),
s
=
function
(){
b
.
player
.
isPlaying
()
&&
(
b
.
playBackwardIcon
.
innerHTML
=
""
,
b
.
playForwardIcon
.
innerHTML
=
""
,
b
.
playForwardIcon
.
classList
.
remove
(
"
uk-icon-pause
"
),
b
.
playForwardIcon
.
classList
.
add
(
"
uk-icon-play
"
),
b
.
playBackwardIcon
.
classList
.
remove
(
"
uk-icon-pause
"
),
b
.
playBackwardIcon
.
classList
.
add
(
"
uk-icon-play
"
),
b
.
player
.
stop
(),
b
.
timeDimension
.
off
(
"
timeload
"
,
r
))},
t
=
function
(
a
){
a
>
0
?
u
():
v
()},
u
=
function
(){
b
.
playForwardIcon
.
classList
.
remove
(
"
uk-icon-play
"
),
b
.
playForwardIcon
.
classList
.
add
(
"
uk-icon-pause
"
),
b
.
player
.
start
(
1
),
b
.
timeDimension
.
on
(
"
timeload
"
,
r
)},
v
=
function
(){
b
.
playBackwardIcon
.
classList
.
remove
(
"
uk-icon-play
"
),
b
.
playBackwardIcon
.
classList
.
add
(
"
uk-icon-pause
"
),
b
.
player
.
start
(
-
1
),
b
.
timeDimension
.
on
(
"
timeload
"
,
r
)};
p
.
onclick
=
function
(){
b
.
player
.
isPlaying
()?
s
():
u
()},
m
.
onclick
=
function
(){
b
.
player
.
isPlaying
()?
s
():
v
()},
l
.
onclick
=
function
(){
b
.
disable
(),
s
();
var
a
=
moment
(
1
e3
*
b
.
slider
.
result
.
min
).
utc
();
b
.
timeSelect
.
value
=
a
.
format
(
"
X
"
),
b
.
timeDimension
.
setCurrentTimeIndex
(
0
),
b
.
slider
.
update
({
from
:
+
a
.
format
(
"
X
"
)})},
n
.
onclick
=
function
(){
b
.
disable
(),
s
();
var
a
=
moment
(
1
e3
*
b
.
slider
.
result
.
from
).
subtract
(
b
.
interval
,
"
seconds
"
).
utc
();
a
<
moment
(
1
e3
*
b
.
slider
.
result
.
min
)
&&
(
a
=
moment
(
1
e3
*
b
.
slider
.
result
.
min
)),
b
.
timeSelect
.
value
=
a
.
format
(
"
X
"
),
b
.
timeDimension
.
setCurrentTime
(
a
.
valueOf
()),
b
.
slider
.
update
({
from
:
+
a
.
format
(
"
X
"
)})},
o
.
onclick
=
function
(){
b
.
disable
(),
s
();
var
a
=
moment
(
1
e3
*
b
.
slider
.
result
.
from
).
add
(
b
.
interval
,
"
seconds
"
).
utc
();
a
>
moment
(
1
e3
*
b
.
slider
.
result
.
max
)
&&
(
a
=
moment
(
1
e3
*
b
.
slider
.
result
.
max
).
utc
()),
b
.
timeSelect
.
value
=
a
.
format
(
"
X
"
),
b
.
timeDimension
.
setCurrentTime
(
a
.
valueOf
()),
b
.
slider
.
update
({
from
:
+
a
.
format
(
"
X
"
)})},
q
.
onclick
=
function
(){
b
.
disable
(),
s
();
var
a
=
moment
(
1
e3
*
b
.
slider
.
result
.
max
).
utc
();
b
.
timeSelect
.
value
=
a
.
format
(
"
X
"
),
b
.
timeDimension
.
setCurrentTimeIndex
(
b
.
timeDimension
.
_availableTimes
.
length
-
1
),
b
.
slider
.
update
({
from
:
+
a
.
format
(
"
X
"
)})},
b
.
timeSelect
.
value
=
moment
(
1
e3
*
b
.
slider
.
result
.
from
).
valueOf
()
+
""
,
b
.
timeSelect
.
onchange
=
function
(){
b
.
disable
(),
s
();
var
a
=
moment
(
1
e3
*
parseInt
(
b
.
timeSelect
.
value
)).
utc
();
b
.
timeDimension
.
setCurrentTime
(
a
.
valueOf
()),
b
.
slider
.
update
({
from
:
+
a
.
format
(
"
X
"
)})}},
c
.
prototype
.
replaceText
=
function
(
a
,
b
,
c
){
var
d
=
document
.
createTextNode
(
b
);
return
a
.
replaceChild
(
d
,
c
),
d
},
c
.
prototype
.
disable
=
function
(){
this
.
playerDiv
.
classList
.
add
(
"
player-disable
"
)},
c
.
prototype
.
enable
=
function
(){
this
.
playerDiv
.
classList
.
contains
(
"
player-disable
"
)
&&
this
.
playerDiv
.
classList
.
remove
(
"
player-disable
"
)},
c
.
prototype
.
updateTimeSelect
=
function
(
b
,
c
){
for
(
var
d
=
this
;
d
.
timeSelect
.
firstChild
;)
d
.
timeSelect
.
removeChild
(
d
.
timeSelect
.
firstChild
);
for
(
var
e
=
b
;
e
<=
c
;){
var
f
=
moment
(
1
e3
*
e
).
utc
(),
g
=
a
.
DomUtil
.
create
(
"
option
"
,
""
,
d
.
timeSelect
);
g
.
textContent
=
f
.
format
(
d
.
datetimeformat
),
g
.
value
=
f
.
format
(
"
X
"
)
+
""
,
e
+=
d
.
interval
}},
c
.
prototype
.
update
=
function
(
a
){
var
b
=
this
,
c
=
{},
d
=
b
.
slider
.
result
.
min
,
e
=
b
.
slider
.
result
.
max
;
a
.
min
&&
(
d
=
a
.
min
),
a
.
max
&&
(
e
=
a
.
max
),
c
.
min
=
d
,
c
.
max
=
e
,
b
.
updateTimeSelect
(
d
,
e
),
b
.
timeSelect
.
value
=
b
.
slider
.
result
.
from
+
""
,
a
.
date
&&
(
c
.
from
=
a
.
date
,
b
.
timeSelect
.
value
=
a
.
date
+
""
),
b
.
slider
.
update
(
c
)},
c
.
prototype
.
getDate
=
function
(){
return
moment
(
1
e3
*
this
.
slider
.
result
.
from
).
utc
()},
c
}(
a
.
Control
);
b
.
Player
=
c
}(
a
.
Control
||
(
a
.
Control
=
{}))}(
L
||
(
L
=
{}));
//# sourceMappingURL=leaflet-player-control.map
\ No newline at end of file
Write
Preview
Supports
Markdown
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