Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
website
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Video AG Infrastruktur
website
Commits
d72f7f4b
Commit
d72f7f4b
authored
5 years ago
by
Roman Sebastian Karwacik
Browse files
Options
Downloads
Patches
Plain Diff
Double tap to seek +-15s
parent
19ecc210
No related branches found
No related tags found
1 merge request
!24
Double tap to seek +-15s
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
static/hammer.min.js
+7
-0
7 additions, 0 deletions
static/hammer.min.js
templates/base.html
+1
-0
1 addition, 0 deletions
templates/base.html
templates/macros.html
+18
-0
18 additions, 0 deletions
templates/macros.html
with
26 additions
and
0 deletions
static/hammer.min.js
0 → 100644
+
7
−
0
View file @
d72f7f4b
/*! Hammer.JS - v2.0.8 - 2016-04-23
* http://hammerjs.github.io/
*
* Copyright (c) 2016 Jorik Tangelder;
* Licensed under the MIT license */
!
function
(
a
,
b
,
c
,
d
){
"
use strict
"
;
function
e
(
a
,
b
,
c
){
return
setTimeout
(
j
(
a
,
c
),
b
)}
function
f
(
a
,
b
,
c
){
return
Array
.
isArray
(
a
)?(
g
(
a
,
c
[
b
],
c
),
!
0
):
!
1
}
function
g
(
a
,
b
,
c
){
var
e
;
if
(
a
)
if
(
a
.
forEach
)
a
.
forEach
(
b
,
c
);
else
if
(
a
.
length
!==
d
)
for
(
e
=
0
;
e
<
a
.
length
;)
b
.
call
(
c
,
a
[
e
],
e
,
a
),
e
++
;
else
for
(
e
in
a
)
a
.
hasOwnProperty
(
e
)
&&
b
.
call
(
c
,
a
[
e
],
e
,
a
)}
function
h
(
b
,
c
,
d
){
var
e
=
"
DEPRECATED METHOD:
"
+
c
+
"
\n
"
+
d
+
"
AT
\n
"
;
return
function
(){
var
c
=
new
Error
(
"
get-stack-trace
"
),
d
=
c
&&
c
.
stack
?
c
.
stack
.
replace
(
/^
[^\(]
+
?[\n
$
]
/gm
,
""
).
replace
(
/^
\s
+at
\s
+/gm
,
""
).
replace
(
/^Object.<anonymous>
\s
*
\(
/gm
,
"
{anonymous}()@
"
):
"
Unknown Stack Trace
"
,
f
=
a
.
console
&&
(
a
.
console
.
warn
||
a
.
console
.
log
);
return
f
&&
f
.
call
(
a
.
console
,
e
,
d
),
b
.
apply
(
this
,
arguments
)}}
function
i
(
a
,
b
,
c
){
var
d
,
e
=
b
.
prototype
;
d
=
a
.
prototype
=
Object
.
create
(
e
),
d
.
constructor
=
a
,
d
.
_super
=
e
,
c
&&
la
(
d
,
c
)}
function
j
(
a
,
b
){
return
function
(){
return
a
.
apply
(
b
,
arguments
)}}
function
k
(
a
,
b
){
return
typeof
a
==
oa
?
a
.
apply
(
b
?
b
[
0
]
||
d
:
d
,
b
):
a
}
function
l
(
a
,
b
){
return
a
===
d
?
b
:
a
}
function
m
(
a
,
b
,
c
){
g
(
q
(
b
),
function
(
b
){
a
.
addEventListener
(
b
,
c
,
!
1
)})}
function
n
(
a
,
b
,
c
){
g
(
q
(
b
),
function
(
b
){
a
.
removeEventListener
(
b
,
c
,
!
1
)})}
function
o
(
a
,
b
){
for
(;
a
;){
if
(
a
==
b
)
return
!
0
;
a
=
a
.
parentNode
}
return
!
1
}
function
p
(
a
,
b
){
return
a
.
indexOf
(
b
)
>-
1
}
function
q
(
a
){
return
a
.
trim
().
split
(
/
\s
+/g
)}
function
r
(
a
,
b
,
c
){
if
(
a
.
indexOf
&&!
c
)
return
a
.
indexOf
(
b
);
for
(
var
d
=
0
;
d
<
a
.
length
;){
if
(
c
&&
a
[
d
][
c
]
==
b
||!
c
&&
a
[
d
]
===
b
)
return
d
;
d
++
}
return
-
1
}
function
s
(
a
){
return
Array
.
prototype
.
slice
.
call
(
a
,
0
)}
function
t
(
a
,
b
,
c
){
for
(
var
d
=
[],
e
=
[],
f
=
0
;
f
<
a
.
length
;){
var
g
=
b
?
a
[
f
][
b
]:
a
[
f
];
r
(
e
,
g
)
<
0
&&
d
.
push
(
a
[
f
]),
e
[
f
]
=
g
,
f
++
}
return
c
&&
(
d
=
b
?
d
.
sort
(
function
(
a
,
c
){
return
a
[
b
]
>
c
[
b
]}):
d
.
sort
()),
d
}
function
u
(
a
,
b
){
for
(
var
c
,
e
,
f
=
b
[
0
].
toUpperCase
()
+
b
.
slice
(
1
),
g
=
0
;
g
<
ma
.
length
;){
if
(
c
=
ma
[
g
],
e
=
c
?
c
+
f
:
b
,
e
in
a
)
return
e
;
g
++
}
return
d
}
function
v
(){
return
ua
++
}
function
w
(
b
){
var
c
=
b
.
ownerDocument
||
b
;
return
c
.
defaultView
||
c
.
parentWindow
||
a
}
function
x
(
a
,
b
){
var
c
=
this
;
this
.
manager
=
a
,
this
.
callback
=
b
,
this
.
element
=
a
.
element
,
this
.
target
=
a
.
options
.
inputTarget
,
this
.
domHandler
=
function
(
b
){
k
(
a
.
options
.
enable
,[
a
])
&&
c
.
handler
(
b
)},
this
.
init
()}
function
y
(
a
){
var
b
,
c
=
a
.
options
.
inputClass
;
return
new
(
b
=
c
?
c
:
xa
?
M
:
ya
?
P
:
wa
?
R
:
L
)(
a
,
z
)}
function
z
(
a
,
b
,
c
){
var
d
=
c
.
pointers
.
length
,
e
=
c
.
changedPointers
.
length
,
f
=
b
&
Ea
&&
d
-
e
===
0
,
g
=
b
&
(
Ga
|
Ha
)
&&
d
-
e
===
0
;
c
.
isFirst
=!!
f
,
c
.
isFinal
=!!
g
,
f
&&
(
a
.
session
=
{}),
c
.
eventType
=
b
,
A
(
a
,
c
),
a
.
emit
(
"
hammer.input
"
,
c
),
a
.
recognize
(
c
),
a
.
session
.
prevInput
=
c
}
function
A
(
a
,
b
){
var
c
=
a
.
session
,
d
=
b
.
pointers
,
e
=
d
.
length
;
c
.
firstInput
||
(
c
.
firstInput
=
D
(
b
)),
e
>
1
&&!
c
.
firstMultiple
?
c
.
firstMultiple
=
D
(
b
):
1
===
e
&&
(
c
.
firstMultiple
=!
1
);
var
f
=
c
.
firstInput
,
g
=
c
.
firstMultiple
,
h
=
g
?
g
.
center
:
f
.
center
,
i
=
b
.
center
=
E
(
d
);
b
.
timeStamp
=
ra
(),
b
.
deltaTime
=
b
.
timeStamp
-
f
.
timeStamp
,
b
.
angle
=
I
(
h
,
i
),
b
.
distance
=
H
(
h
,
i
),
B
(
c
,
b
),
b
.
offsetDirection
=
G
(
b
.
deltaX
,
b
.
deltaY
);
var
j
=
F
(
b
.
deltaTime
,
b
.
deltaX
,
b
.
deltaY
);
b
.
overallVelocityX
=
j
.
x
,
b
.
overallVelocityY
=
j
.
y
,
b
.
overallVelocity
=
qa
(
j
.
x
)
>
qa
(
j
.
y
)?
j
.
x
:
j
.
y
,
b
.
scale
=
g
?
K
(
g
.
pointers
,
d
):
1
,
b
.
rotation
=
g
?
J
(
g
.
pointers
,
d
):
0
,
b
.
maxPointers
=
c
.
prevInput
?
b
.
pointers
.
length
>
c
.
prevInput
.
maxPointers
?
b
.
pointers
.
length
:
c
.
prevInput
.
maxPointers
:
b
.
pointers
.
length
,
C
(
c
,
b
);
var
k
=
a
.
element
;
o
(
b
.
srcEvent
.
target
,
k
)
&&
(
k
=
b
.
srcEvent
.
target
),
b
.
target
=
k
}
function
B
(
a
,
b
){
var
c
=
b
.
center
,
d
=
a
.
offsetDelta
||
{},
e
=
a
.
prevDelta
||
{},
f
=
a
.
prevInput
||
{};
b
.
eventType
!==
Ea
&&
f
.
eventType
!==
Ga
||
(
e
=
a
.
prevDelta
=
{
x
:
f
.
deltaX
||
0
,
y
:
f
.
deltaY
||
0
},
d
=
a
.
offsetDelta
=
{
x
:
c
.
x
,
y
:
c
.
y
}),
b
.
deltaX
=
e
.
x
+
(
c
.
x
-
d
.
x
),
b
.
deltaY
=
e
.
y
+
(
c
.
y
-
d
.
y
)}
function
C
(
a
,
b
){
var
c
,
e
,
f
,
g
,
h
=
a
.
lastInterval
||
b
,
i
=
b
.
timeStamp
-
h
.
timeStamp
;
if
(
b
.
eventType
!=
Ha
&&
(
i
>
Da
||
h
.
velocity
===
d
)){
var
j
=
b
.
deltaX
-
h
.
deltaX
,
k
=
b
.
deltaY
-
h
.
deltaY
,
l
=
F
(
i
,
j
,
k
);
e
=
l
.
x
,
f
=
l
.
y
,
c
=
qa
(
l
.
x
)
>
qa
(
l
.
y
)?
l
.
x
:
l
.
y
,
g
=
G
(
j
,
k
),
a
.
lastInterval
=
b
}
else
c
=
h
.
velocity
,
e
=
h
.
velocityX
,
f
=
h
.
velocityY
,
g
=
h
.
direction
;
b
.
velocity
=
c
,
b
.
velocityX
=
e
,
b
.
velocityY
=
f
,
b
.
direction
=
g
}
function
D
(
a
){
for
(
var
b
=
[],
c
=
0
;
c
<
a
.
pointers
.
length
;)
b
[
c
]
=
{
clientX
:
pa
(
a
.
pointers
[
c
].
clientX
),
clientY
:
pa
(
a
.
pointers
[
c
].
clientY
)},
c
++
;
return
{
timeStamp
:
ra
(),
pointers
:
b
,
center
:
E
(
b
),
deltaX
:
a
.
deltaX
,
deltaY
:
a
.
deltaY
}}
function
E
(
a
){
var
b
=
a
.
length
;
if
(
1
===
b
)
return
{
x
:
pa
(
a
[
0
].
clientX
),
y
:
pa
(
a
[
0
].
clientY
)};
for
(
var
c
=
0
,
d
=
0
,
e
=
0
;
b
>
e
;)
c
+=
a
[
e
].
clientX
,
d
+=
a
[
e
].
clientY
,
e
++
;
return
{
x
:
pa
(
c
/
b
),
y
:
pa
(
d
/
b
)}}
function
F
(
a
,
b
,
c
){
return
{
x
:
b
/
a
||
0
,
y
:
c
/
a
||
0
}}
function
G
(
a
,
b
){
return
a
===
b
?
Ia
:
qa
(
a
)
>=
qa
(
b
)?
0
>
a
?
Ja
:
Ka
:
0
>
b
?
La
:
Ma
}
function
H
(
a
,
b
,
c
){
c
||
(
c
=
Qa
);
var
d
=
b
[
c
[
0
]]
-
a
[
c
[
0
]],
e
=
b
[
c
[
1
]]
-
a
[
c
[
1
]];
return
Math
.
sqrt
(
d
*
d
+
e
*
e
)}
function
I
(
a
,
b
,
c
){
c
||
(
c
=
Qa
);
var
d
=
b
[
c
[
0
]]
-
a
[
c
[
0
]],
e
=
b
[
c
[
1
]]
-
a
[
c
[
1
]];
return
180
*
Math
.
atan2
(
e
,
d
)
/
Math
.
PI
}
function
J
(
a
,
b
){
return
I
(
b
[
1
],
b
[
0
],
Ra
)
+
I
(
a
[
1
],
a
[
0
],
Ra
)}
function
K
(
a
,
b
){
return
H
(
b
[
0
],
b
[
1
],
Ra
)
/
H
(
a
[
0
],
a
[
1
],
Ra
)}
function
L
(){
this
.
evEl
=
Ta
,
this
.
evWin
=
Ua
,
this
.
pressed
=!
1
,
x
.
apply
(
this
,
arguments
)}
function
M
(){
this
.
evEl
=
Xa
,
this
.
evWin
=
Ya
,
x
.
apply
(
this
,
arguments
),
this
.
store
=
this
.
manager
.
session
.
pointerEvents
=
[]}
function
N
(){
this
.
evTarget
=
$a
,
this
.
evWin
=
_a
,
this
.
started
=!
1
,
x
.
apply
(
this
,
arguments
)}
function
O
(
a
,
b
){
var
c
=
s
(
a
.
touches
),
d
=
s
(
a
.
changedTouches
);
return
b
&
(
Ga
|
Ha
)
&&
(
c
=
t
(
c
.
concat
(
d
),
"
identifier
"
,
!
0
)),[
c
,
d
]}
function
P
(){
this
.
evTarget
=
bb
,
this
.
targetIds
=
{},
x
.
apply
(
this
,
arguments
)}
function
Q
(
a
,
b
){
var
c
=
s
(
a
.
touches
),
d
=
this
.
targetIds
;
if
(
b
&
(
Ea
|
Fa
)
&&
1
===
c
.
length
)
return
d
[
c
[
0
].
identifier
]
=!
0
,[
c
,
c
];
var
e
,
f
,
g
=
s
(
a
.
changedTouches
),
h
=
[],
i
=
this
.
target
;
if
(
f
=
c
.
filter
(
function
(
a
){
return
o
(
a
.
target
,
i
)}),
b
===
Ea
)
for
(
e
=
0
;
e
<
f
.
length
;)
d
[
f
[
e
].
identifier
]
=!
0
,
e
++
;
for
(
e
=
0
;
e
<
g
.
length
;)
d
[
g
[
e
].
identifier
]
&&
h
.
push
(
g
[
e
]),
b
&
(
Ga
|
Ha
)
&&
delete
d
[
g
[
e
].
identifier
],
e
++
;
return
h
.
length
?[
t
(
f
.
concat
(
h
),
"
identifier
"
,
!
0
),
h
]:
void
0
}
function
R
(){
x
.
apply
(
this
,
arguments
);
var
a
=
j
(
this
.
handler
,
this
);
this
.
touch
=
new
P
(
this
.
manager
,
a
),
this
.
mouse
=
new
L
(
this
.
manager
,
a
),
this
.
primaryTouch
=
null
,
this
.
lastTouches
=
[]}
function
S
(
a
,
b
){
a
&
Ea
?(
this
.
primaryTouch
=
b
.
changedPointers
[
0
].
identifier
,
T
.
call
(
this
,
b
)):
a
&
(
Ga
|
Ha
)
&&
T
.
call
(
this
,
b
)}
function
T
(
a
){
var
b
=
a
.
changedPointers
[
0
];
if
(
b
.
identifier
===
this
.
primaryTouch
){
var
c
=
{
x
:
b
.
clientX
,
y
:
b
.
clientY
};
this
.
lastTouches
.
push
(
c
);
var
d
=
this
.
lastTouches
,
e
=
function
(){
var
a
=
d
.
indexOf
(
c
);
a
>-
1
&&
d
.
splice
(
a
,
1
)};
setTimeout
(
e
,
cb
)}}
function
U
(
a
){
for
(
var
b
=
a
.
srcEvent
.
clientX
,
c
=
a
.
srcEvent
.
clientY
,
d
=
0
;
d
<
this
.
lastTouches
.
length
;
d
++
){
var
e
=
this
.
lastTouches
[
d
],
f
=
Math
.
abs
(
b
-
e
.
x
),
g
=
Math
.
abs
(
c
-
e
.
y
);
if
(
db
>=
f
&&
db
>=
g
)
return
!
0
}
return
!
1
}
function
V
(
a
,
b
){
this
.
manager
=
a
,
this
.
set
(
b
)}
function
W
(
a
){
if
(
p
(
a
,
jb
))
return
jb
;
var
b
=
p
(
a
,
kb
),
c
=
p
(
a
,
lb
);
return
b
&&
c
?
jb
:
b
||
c
?
b
?
kb
:
lb
:
p
(
a
,
ib
)?
ib
:
hb
}
function
X
(){
if
(
!
fb
)
return
!
1
;
var
b
=
{},
c
=
a
.
CSS
&&
a
.
CSS
.
supports
;
return
[
"
auto
"
,
"
manipulation
"
,
"
pan-y
"
,
"
pan-x
"
,
"
pan-x pan-y
"
,
"
none
"
].
forEach
(
function
(
d
){
b
[
d
]
=
c
?
a
.
CSS
.
supports
(
"
touch-action
"
,
d
):
!
0
}),
b
}
function
Y
(
a
){
this
.
options
=
la
({},
this
.
defaults
,
a
||
{}),
this
.
id
=
v
(),
this
.
manager
=
null
,
this
.
options
.
enable
=
l
(
this
.
options
.
enable
,
!
0
),
this
.
state
=
nb
,
this
.
simultaneous
=
{},
this
.
requireFail
=
[]}
function
Z
(
a
){
return
a
&
sb
?
"
cancel
"
:
a
&
qb
?
"
end
"
:
a
&
pb
?
"
move
"
:
a
&
ob
?
"
start
"
:
""
}
function
$
(
a
){
return
a
==
Ma
?
"
down
"
:
a
==
La
?
"
up
"
:
a
==
Ja
?
"
left
"
:
a
==
Ka
?
"
right
"
:
""
}
function
_
(
a
,
b
){
var
c
=
b
.
manager
;
return
c
?
c
.
get
(
a
):
a
}
function
aa
(){
Y
.
apply
(
this
,
arguments
)}
function
ba
(){
aa
.
apply
(
this
,
arguments
),
this
.
pX
=
null
,
this
.
pY
=
null
}
function
ca
(){
aa
.
apply
(
this
,
arguments
)}
function
da
(){
Y
.
apply
(
this
,
arguments
),
this
.
_timer
=
null
,
this
.
_input
=
null
}
function
ea
(){
aa
.
apply
(
this
,
arguments
)}
function
fa
(){
aa
.
apply
(
this
,
arguments
)}
function
ga
(){
Y
.
apply
(
this
,
arguments
),
this
.
pTime
=!
1
,
this
.
pCenter
=!
1
,
this
.
_timer
=
null
,
this
.
_input
=
null
,
this
.
count
=
0
}
function
ha
(
a
,
b
){
return
b
=
b
||
{},
b
.
recognizers
=
l
(
b
.
recognizers
,
ha
.
defaults
.
preset
),
new
ia
(
a
,
b
)}
function
ia
(
a
,
b
){
this
.
options
=
la
({},
ha
.
defaults
,
b
||
{}),
this
.
options
.
inputTarget
=
this
.
options
.
inputTarget
||
a
,
this
.
handlers
=
{},
this
.
session
=
{},
this
.
recognizers
=
[],
this
.
oldCssProps
=
{},
this
.
element
=
a
,
this
.
input
=
y
(
this
),
this
.
touchAction
=
new
V
(
this
,
this
.
options
.
touchAction
),
ja
(
this
,
!
0
),
g
(
this
.
options
.
recognizers
,
function
(
a
){
var
b
=
this
.
add
(
new
a
[
0
](
a
[
1
]));
a
[
2
]
&&
b
.
recognizeWith
(
a
[
2
]),
a
[
3
]
&&
b
.
requireFailure
(
a
[
3
])},
this
)}
function
ja
(
a
,
b
){
var
c
=
a
.
element
;
if
(
c
.
style
){
var
d
;
g
(
a
.
options
.
cssProps
,
function
(
e
,
f
){
d
=
u
(
c
.
style
,
f
),
b
?(
a
.
oldCssProps
[
d
]
=
c
.
style
[
d
],
c
.
style
[
d
]
=
e
):
c
.
style
[
d
]
=
a
.
oldCssProps
[
d
]
||
""
}),
b
||
(
a
.
oldCssProps
=
{})}}
function
ka
(
a
,
c
){
var
d
=
b
.
createEvent
(
"
Event
"
);
d
.
initEvent
(
a
,
!
0
,
!
0
),
d
.
gesture
=
c
,
c
.
target
.
dispatchEvent
(
d
)}
var
la
,
ma
=
[
""
,
"
webkit
"
,
"
Moz
"
,
"
MS
"
,
"
ms
"
,
"
o
"
],
na
=
b
.
createElement
(
"
div
"
),
oa
=
"
function
"
,
pa
=
Math
.
round
,
qa
=
Math
.
abs
,
ra
=
Date
.
now
;
la
=
"
function
"
!=
typeof
Object
.
assign
?
function
(
a
){
if
(
a
===
d
||
null
===
a
)
throw
new
TypeError
(
"
Cannot convert undefined or null to object
"
);
for
(
var
b
=
Object
(
a
),
c
=
1
;
c
<
arguments
.
length
;
c
++
){
var
e
=
arguments
[
c
];
if
(
e
!==
d
&&
null
!==
e
)
for
(
var
f
in
e
)
e
.
hasOwnProperty
(
f
)
&&
(
b
[
f
]
=
e
[
f
])}
return
b
}:
Object
.
assign
;
var
sa
=
h
(
function
(
a
,
b
,
c
){
for
(
var
e
=
Object
.
keys
(
b
),
f
=
0
;
f
<
e
.
length
;)(
!
c
||
c
&&
a
[
e
[
f
]]
===
d
)
&&
(
a
[
e
[
f
]]
=
b
[
e
[
f
]]),
f
++
;
return
a
},
"
extend
"
,
"
Use `assign`.
"
),
ta
=
h
(
function
(
a
,
b
){
return
sa
(
a
,
b
,
!
0
)},
"
merge
"
,
"
Use `assign`.
"
),
ua
=
1
,
va
=
/mobile|tablet|ip
(
ad|hone|od
)
|android/i
,
wa
=
"
ontouchstart
"
in
a
,
xa
=
u
(
a
,
"
PointerEvent
"
)
!==
d
,
ya
=
wa
&&
va
.
test
(
navigator
.
userAgent
),
za
=
"
touch
"
,
Aa
=
"
pen
"
,
Ba
=
"
mouse
"
,
Ca
=
"
kinect
"
,
Da
=
25
,
Ea
=
1
,
Fa
=
2
,
Ga
=
4
,
Ha
=
8
,
Ia
=
1
,
Ja
=
2
,
Ka
=
4
,
La
=
8
,
Ma
=
16
,
Na
=
Ja
|
Ka
,
Oa
=
La
|
Ma
,
Pa
=
Na
|
Oa
,
Qa
=
[
"
x
"
,
"
y
"
],
Ra
=
[
"
clientX
"
,
"
clientY
"
];
x
.
prototype
=
{
handler
:
function
(){},
init
:
function
(){
this
.
evEl
&&
m
(
this
.
element
,
this
.
evEl
,
this
.
domHandler
),
this
.
evTarget
&&
m
(
this
.
target
,
this
.
evTarget
,
this
.
domHandler
),
this
.
evWin
&&
m
(
w
(
this
.
element
),
this
.
evWin
,
this
.
domHandler
)},
destroy
:
function
(){
this
.
evEl
&&
n
(
this
.
element
,
this
.
evEl
,
this
.
domHandler
),
this
.
evTarget
&&
n
(
this
.
target
,
this
.
evTarget
,
this
.
domHandler
),
this
.
evWin
&&
n
(
w
(
this
.
element
),
this
.
evWin
,
this
.
domHandler
)}};
var
Sa
=
{
mousedown
:
Ea
,
mousemove
:
Fa
,
mouseup
:
Ga
},
Ta
=
"
mousedown
"
,
Ua
=
"
mousemove mouseup
"
;
i
(
L
,
x
,{
handler
:
function
(
a
){
var
b
=
Sa
[
a
.
type
];
b
&
Ea
&&
0
===
a
.
button
&&
(
this
.
pressed
=!
0
),
b
&
Fa
&&
1
!==
a
.
which
&&
(
b
=
Ga
),
this
.
pressed
&&
(
b
&
Ga
&&
(
this
.
pressed
=!
1
),
this
.
callback
(
this
.
manager
,
b
,{
pointers
:[
a
],
changedPointers
:[
a
],
pointerType
:
Ba
,
srcEvent
:
a
}))}});
var
Va
=
{
pointerdown
:
Ea
,
pointermove
:
Fa
,
pointerup
:
Ga
,
pointercancel
:
Ha
,
pointerout
:
Ha
},
Wa
=
{
2
:
za
,
3
:
Aa
,
4
:
Ba
,
5
:
Ca
},
Xa
=
"
pointerdown
"
,
Ya
=
"
pointermove pointerup pointercancel
"
;
a
.
MSPointerEvent
&&!
a
.
PointerEvent
&&
(
Xa
=
"
MSPointerDown
"
,
Ya
=
"
MSPointerMove MSPointerUp MSPointerCancel
"
),
i
(
M
,
x
,{
handler
:
function
(
a
){
var
b
=
this
.
store
,
c
=!
1
,
d
=
a
.
type
.
toLowerCase
().
replace
(
"
ms
"
,
""
),
e
=
Va
[
d
],
f
=
Wa
[
a
.
pointerType
]
||
a
.
pointerType
,
g
=
f
==
za
,
h
=
r
(
b
,
a
.
pointerId
,
"
pointerId
"
);
e
&
Ea
&&
(
0
===
a
.
button
||
g
)?
0
>
h
&&
(
b
.
push
(
a
),
h
=
b
.
length
-
1
):
e
&
(
Ga
|
Ha
)
&&
(
c
=!
0
),
0
>
h
||
(
b
[
h
]
=
a
,
this
.
callback
(
this
.
manager
,
e
,{
pointers
:
b
,
changedPointers
:[
a
],
pointerType
:
f
,
srcEvent
:
a
}),
c
&&
b
.
splice
(
h
,
1
))}});
var
Za
=
{
touchstart
:
Ea
,
touchmove
:
Fa
,
touchend
:
Ga
,
touchcancel
:
Ha
},
$a
=
"
touchstart
"
,
_a
=
"
touchstart touchmove touchend touchcancel
"
;
i
(
N
,
x
,{
handler
:
function
(
a
){
var
b
=
Za
[
a
.
type
];
if
(
b
===
Ea
&&
(
this
.
started
=!
0
),
this
.
started
){
var
c
=
O
.
call
(
this
,
a
,
b
);
b
&
(
Ga
|
Ha
)
&&
c
[
0
].
length
-
c
[
1
].
length
===
0
&&
(
this
.
started
=!
1
),
this
.
callback
(
this
.
manager
,
b
,{
pointers
:
c
[
0
],
changedPointers
:
c
[
1
],
pointerType
:
za
,
srcEvent
:
a
})}}});
var
ab
=
{
touchstart
:
Ea
,
touchmove
:
Fa
,
touchend
:
Ga
,
touchcancel
:
Ha
},
bb
=
"
touchstart touchmove touchend touchcancel
"
;
i
(
P
,
x
,{
handler
:
function
(
a
){
var
b
=
ab
[
a
.
type
],
c
=
Q
.
call
(
this
,
a
,
b
);
c
&&
this
.
callback
(
this
.
manager
,
b
,{
pointers
:
c
[
0
],
changedPointers
:
c
[
1
],
pointerType
:
za
,
srcEvent
:
a
})}});
var
cb
=
2500
,
db
=
25
;
i
(
R
,
x
,{
handler
:
function
(
a
,
b
,
c
){
var
d
=
c
.
pointerType
==
za
,
e
=
c
.
pointerType
==
Ba
;
if
(
!
(
e
&&
c
.
sourceCapabilities
&&
c
.
sourceCapabilities
.
firesTouchEvents
)){
if
(
d
)
S
.
call
(
this
,
b
,
c
);
else
if
(
e
&&
U
.
call
(
this
,
c
))
return
;
this
.
callback
(
a
,
b
,
c
)}},
destroy
:
function
(){
this
.
touch
.
destroy
(),
this
.
mouse
.
destroy
()}});
var
eb
=
u
(
na
.
style
,
"
touchAction
"
),
fb
=
eb
!==
d
,
gb
=
"
compute
"
,
hb
=
"
auto
"
,
ib
=
"
manipulation
"
,
jb
=
"
none
"
,
kb
=
"
pan-x
"
,
lb
=
"
pan-y
"
,
mb
=
X
();
V
.
prototype
=
{
set
:
function
(
a
){
a
==
gb
&&
(
a
=
this
.
compute
()),
fb
&&
this
.
manager
.
element
.
style
&&
mb
[
a
]
&&
(
this
.
manager
.
element
.
style
[
eb
]
=
a
),
this
.
actions
=
a
.
toLowerCase
().
trim
()},
update
:
function
(){
this
.
set
(
this
.
manager
.
options
.
touchAction
)},
compute
:
function
(){
var
a
=
[];
return
g
(
this
.
manager
.
recognizers
,
function
(
b
){
k
(
b
.
options
.
enable
,[
b
])
&&
(
a
=
a
.
concat
(
b
.
getTouchAction
()))}),
W
(
a
.
join
(
"
"
))},
preventDefaults
:
function
(
a
){
var
b
=
a
.
srcEvent
,
c
=
a
.
offsetDirection
;
if
(
this
.
manager
.
session
.
prevented
)
return
void
b
.
preventDefault
();
var
d
=
this
.
actions
,
e
=
p
(
d
,
jb
)
&&!
mb
[
jb
],
f
=
p
(
d
,
lb
)
&&!
mb
[
lb
],
g
=
p
(
d
,
kb
)
&&!
mb
[
kb
];
if
(
e
){
var
h
=
1
===
a
.
pointers
.
length
,
i
=
a
.
distance
<
2
,
j
=
a
.
deltaTime
<
250
;
if
(
h
&&
i
&&
j
)
return
}
return
g
&&
f
?
void
0
:
e
||
f
&&
c
&
Na
||
g
&&
c
&
Oa
?
this
.
preventSrc
(
b
):
void
0
},
preventSrc
:
function
(
a
){
this
.
manager
.
session
.
prevented
=!
0
,
a
.
preventDefault
()}};
var
nb
=
1
,
ob
=
2
,
pb
=
4
,
qb
=
8
,
rb
=
qb
,
sb
=
16
,
tb
=
32
;
Y
.
prototype
=
{
defaults
:{},
set
:
function
(
a
){
return
la
(
this
.
options
,
a
),
this
.
manager
&&
this
.
manager
.
touchAction
.
update
(),
this
},
recognizeWith
:
function
(
a
){
if
(
f
(
a
,
"
recognizeWith
"
,
this
))
return
this
;
var
b
=
this
.
simultaneous
;
return
a
=
_
(
a
,
this
),
b
[
a
.
id
]
||
(
b
[
a
.
id
]
=
a
,
a
.
recognizeWith
(
this
)),
this
},
dropRecognizeWith
:
function
(
a
){
return
f
(
a
,
"
dropRecognizeWith
"
,
this
)?
this
:(
a
=
_
(
a
,
this
),
delete
this
.
simultaneous
[
a
.
id
],
this
)},
requireFailure
:
function
(
a
){
if
(
f
(
a
,
"
requireFailure
"
,
this
))
return
this
;
var
b
=
this
.
requireFail
;
return
a
=
_
(
a
,
this
),
-
1
===
r
(
b
,
a
)
&&
(
b
.
push
(
a
),
a
.
requireFailure
(
this
)),
this
},
dropRequireFailure
:
function
(
a
){
if
(
f
(
a
,
"
dropRequireFailure
"
,
this
))
return
this
;
a
=
_
(
a
,
this
);
var
b
=
r
(
this
.
requireFail
,
a
);
return
b
>-
1
&&
this
.
requireFail
.
splice
(
b
,
1
),
this
},
hasRequireFailures
:
function
(){
return
this
.
requireFail
.
length
>
0
},
canRecognizeWith
:
function
(
a
){
return
!!
this
.
simultaneous
[
a
.
id
]},
emit
:
function
(
a
){
function
b
(
b
){
c
.
manager
.
emit
(
b
,
a
)}
var
c
=
this
,
d
=
this
.
state
;
qb
>
d
&&
b
(
c
.
options
.
event
+
Z
(
d
)),
b
(
c
.
options
.
event
),
a
.
additionalEvent
&&
b
(
a
.
additionalEvent
),
d
>=
qb
&&
b
(
c
.
options
.
event
+
Z
(
d
))},
tryEmit
:
function
(
a
){
return
this
.
canEmit
()?
this
.
emit
(
a
):
void
(
this
.
state
=
tb
)},
canEmit
:
function
(){
for
(
var
a
=
0
;
a
<
this
.
requireFail
.
length
;){
if
(
!
(
this
.
requireFail
[
a
].
state
&
(
tb
|
nb
)))
return
!
1
;
a
++
}
return
!
0
},
recognize
:
function
(
a
){
var
b
=
la
({},
a
);
return
k
(
this
.
options
.
enable
,[
this
,
b
])?(
this
.
state
&
(
rb
|
sb
|
tb
)
&&
(
this
.
state
=
nb
),
this
.
state
=
this
.
process
(
b
),
void
(
this
.
state
&
(
ob
|
pb
|
qb
|
sb
)
&&
this
.
tryEmit
(
b
))):(
this
.
reset
(),
void
(
this
.
state
=
tb
))},
process
:
function
(
a
){},
getTouchAction
:
function
(){},
reset
:
function
(){}},
i
(
aa
,
Y
,{
defaults
:{
pointers
:
1
},
attrTest
:
function
(
a
){
var
b
=
this
.
options
.
pointers
;
return
0
===
b
||
a
.
pointers
.
length
===
b
},
process
:
function
(
a
){
var
b
=
this
.
state
,
c
=
a
.
eventType
,
d
=
b
&
(
ob
|
pb
),
e
=
this
.
attrTest
(
a
);
return
d
&&
(
c
&
Ha
||!
e
)?
b
|
sb
:
d
||
e
?
c
&
Ga
?
b
|
qb
:
b
&
ob
?
b
|
pb
:
ob
:
tb
}}),
i
(
ba
,
aa
,{
defaults
:{
event
:
"
pan
"
,
threshold
:
10
,
pointers
:
1
,
direction
:
Pa
},
getTouchAction
:
function
(){
var
a
=
this
.
options
.
direction
,
b
=
[];
return
a
&
Na
&&
b
.
push
(
lb
),
a
&
Oa
&&
b
.
push
(
kb
),
b
},
directionTest
:
function
(
a
){
var
b
=
this
.
options
,
c
=!
0
,
d
=
a
.
distance
,
e
=
a
.
direction
,
f
=
a
.
deltaX
,
g
=
a
.
deltaY
;
return
e
&
b
.
direction
||
(
b
.
direction
&
Na
?(
e
=
0
===
f
?
Ia
:
0
>
f
?
Ja
:
Ka
,
c
=
f
!=
this
.
pX
,
d
=
Math
.
abs
(
a
.
deltaX
)):(
e
=
0
===
g
?
Ia
:
0
>
g
?
La
:
Ma
,
c
=
g
!=
this
.
pY
,
d
=
Math
.
abs
(
a
.
deltaY
))),
a
.
direction
=
e
,
c
&&
d
>
b
.
threshold
&&
e
&
b
.
direction
},
attrTest
:
function
(
a
){
return
aa
.
prototype
.
attrTest
.
call
(
this
,
a
)
&&
(
this
.
state
&
ob
||!
(
this
.
state
&
ob
)
&&
this
.
directionTest
(
a
))},
emit
:
function
(
a
){
this
.
pX
=
a
.
deltaX
,
this
.
pY
=
a
.
deltaY
;
var
b
=
$
(
a
.
direction
);
b
&&
(
a
.
additionalEvent
=
this
.
options
.
event
+
b
),
this
.
_super
.
emit
.
call
(
this
,
a
)}}),
i
(
ca
,
aa
,{
defaults
:{
event
:
"
pinch
"
,
threshold
:
0
,
pointers
:
2
},
getTouchAction
:
function
(){
return
[
jb
]},
attrTest
:
function
(
a
){
return
this
.
_super
.
attrTest
.
call
(
this
,
a
)
&&
(
Math
.
abs
(
a
.
scale
-
1
)
>
this
.
options
.
threshold
||
this
.
state
&
ob
)},
emit
:
function
(
a
){
if
(
1
!==
a
.
scale
){
var
b
=
a
.
scale
<
1
?
"
in
"
:
"
out
"
;
a
.
additionalEvent
=
this
.
options
.
event
+
b
}
this
.
_super
.
emit
.
call
(
this
,
a
)}}),
i
(
da
,
Y
,{
defaults
:{
event
:
"
press
"
,
pointers
:
1
,
time
:
251
,
threshold
:
9
},
getTouchAction
:
function
(){
return
[
hb
]},
process
:
function
(
a
){
var
b
=
this
.
options
,
c
=
a
.
pointers
.
length
===
b
.
pointers
,
d
=
a
.
distance
<
b
.
threshold
,
f
=
a
.
deltaTime
>
b
.
time
;
if
(
this
.
_input
=
a
,
!
d
||!
c
||
a
.
eventType
&
(
Ga
|
Ha
)
&&!
f
)
this
.
reset
();
else
if
(
a
.
eventType
&
Ea
)
this
.
reset
(),
this
.
_timer
=
e
(
function
(){
this
.
state
=
rb
,
this
.
tryEmit
()},
b
.
time
,
this
);
else
if
(
a
.
eventType
&
Ga
)
return
rb
;
return
tb
},
reset
:
function
(){
clearTimeout
(
this
.
_timer
)},
emit
:
function
(
a
){
this
.
state
===
rb
&&
(
a
&&
a
.
eventType
&
Ga
?
this
.
manager
.
emit
(
this
.
options
.
event
+
"
up
"
,
a
):(
this
.
_input
.
timeStamp
=
ra
(),
this
.
manager
.
emit
(
this
.
options
.
event
,
this
.
_input
)))}}),
i
(
ea
,
aa
,{
defaults
:{
event
:
"
rotate
"
,
threshold
:
0
,
pointers
:
2
},
getTouchAction
:
function
(){
return
[
jb
]},
attrTest
:
function
(
a
){
return
this
.
_super
.
attrTest
.
call
(
this
,
a
)
&&
(
Math
.
abs
(
a
.
rotation
)
>
this
.
options
.
threshold
||
this
.
state
&
ob
)}}),
i
(
fa
,
aa
,{
defaults
:{
event
:
"
swipe
"
,
threshold
:
10
,
velocity
:.
3
,
direction
:
Na
|
Oa
,
pointers
:
1
},
getTouchAction
:
function
(){
return
ba
.
prototype
.
getTouchAction
.
call
(
this
)},
attrTest
:
function
(
a
){
var
b
,
c
=
this
.
options
.
direction
;
return
c
&
(
Na
|
Oa
)?
b
=
a
.
overallVelocity
:
c
&
Na
?
b
=
a
.
overallVelocityX
:
c
&
Oa
&&
(
b
=
a
.
overallVelocityY
),
this
.
_super
.
attrTest
.
call
(
this
,
a
)
&&
c
&
a
.
offsetDirection
&&
a
.
distance
>
this
.
options
.
threshold
&&
a
.
maxPointers
==
this
.
options
.
pointers
&&
qa
(
b
)
>
this
.
options
.
velocity
&&
a
.
eventType
&
Ga
},
emit
:
function
(
a
){
var
b
=
$
(
a
.
offsetDirection
);
b
&&
this
.
manager
.
emit
(
this
.
options
.
event
+
b
,
a
),
this
.
manager
.
emit
(
this
.
options
.
event
,
a
)}}),
i
(
ga
,
Y
,{
defaults
:{
event
:
"
tap
"
,
pointers
:
1
,
taps
:
1
,
interval
:
300
,
time
:
250
,
threshold
:
9
,
posThreshold
:
10
},
getTouchAction
:
function
(){
return
[
ib
]},
process
:
function
(
a
){
var
b
=
this
.
options
,
c
=
a
.
pointers
.
length
===
b
.
pointers
,
d
=
a
.
distance
<
b
.
threshold
,
f
=
a
.
deltaTime
<
b
.
time
;
if
(
this
.
reset
(),
a
.
eventType
&
Ea
&&
0
===
this
.
count
)
return
this
.
failTimeout
();
if
(
d
&&
f
&&
c
){
if
(
a
.
eventType
!=
Ga
)
return
this
.
failTimeout
();
var
g
=
this
.
pTime
?
a
.
timeStamp
-
this
.
pTime
<
b
.
interval
:
!
0
,
h
=!
this
.
pCenter
||
H
(
this
.
pCenter
,
a
.
center
)
<
b
.
posThreshold
;
this
.
pTime
=
a
.
timeStamp
,
this
.
pCenter
=
a
.
center
,
h
&&
g
?
this
.
count
+=
1
:
this
.
count
=
1
,
this
.
_input
=
a
;
var
i
=
this
.
count
%
b
.
taps
;
if
(
0
===
i
)
return
this
.
hasRequireFailures
()?(
this
.
_timer
=
e
(
function
(){
this
.
state
=
rb
,
this
.
tryEmit
()},
b
.
interval
,
this
),
ob
):
rb
}
return
tb
},
failTimeout
:
function
(){
return
this
.
_timer
=
e
(
function
(){
this
.
state
=
tb
},
this
.
options
.
interval
,
this
),
tb
},
reset
:
function
(){
clearTimeout
(
this
.
_timer
)},
emit
:
function
(){
this
.
state
==
rb
&&
(
this
.
_input
.
tapCount
=
this
.
count
,
this
.
manager
.
emit
(
this
.
options
.
event
,
this
.
_input
))}}),
ha
.
VERSION
=
"
2.0.8
"
,
ha
.
defaults
=
{
domEvents
:
!
1
,
touchAction
:
gb
,
enable
:
!
0
,
inputTarget
:
null
,
inputClass
:
null
,
preset
:[[
ea
,{
enable
:
!
1
}],[
ca
,{
enable
:
!
1
},[
"
rotate
"
]],[
fa
,{
direction
:
Na
}],[
ba
,{
direction
:
Na
},[
"
swipe
"
]],[
ga
],[
ga
,{
event
:
"
doubletap
"
,
taps
:
2
},[
"
tap
"
]],[
da
]],
cssProps
:{
userSelect
:
"
none
"
,
touchSelect
:
"
none
"
,
touchCallout
:
"
none
"
,
contentZooming
:
"
none
"
,
userDrag
:
"
none
"
,
tapHighlightColor
:
"
rgba(0,0,0,0)
"
}};
var
ub
=
1
,
vb
=
2
;
ia
.
prototype
=
{
set
:
function
(
a
){
return
la
(
this
.
options
,
a
),
a
.
touchAction
&&
this
.
touchAction
.
update
(),
a
.
inputTarget
&&
(
this
.
input
.
destroy
(),
this
.
input
.
target
=
a
.
inputTarget
,
this
.
input
.
init
()),
this
},
stop
:
function
(
a
){
this
.
session
.
stopped
=
a
?
vb
:
ub
},
recognize
:
function
(
a
){
var
b
=
this
.
session
;
if
(
!
b
.
stopped
){
this
.
touchAction
.
preventDefaults
(
a
);
var
c
,
d
=
this
.
recognizers
,
e
=
b
.
curRecognizer
;(
!
e
||
e
&&
e
.
state
&
rb
)
&&
(
e
=
b
.
curRecognizer
=
null
);
for
(
var
f
=
0
;
f
<
d
.
length
;)
c
=
d
[
f
],
b
.
stopped
===
vb
||
e
&&
c
!=
e
&&!
c
.
canRecognizeWith
(
e
)?
c
.
reset
():
c
.
recognize
(
a
),
!
e
&&
c
.
state
&
(
ob
|
pb
|
qb
)
&&
(
e
=
b
.
curRecognizer
=
c
),
f
++
}},
get
:
function
(
a
){
if
(
a
instanceof
Y
)
return
a
;
for
(
var
b
=
this
.
recognizers
,
c
=
0
;
c
<
b
.
length
;
c
++
)
if
(
b
[
c
].
options
.
event
==
a
)
return
b
[
c
];
return
null
},
add
:
function
(
a
){
if
(
f
(
a
,
"
add
"
,
this
))
return
this
;
var
b
=
this
.
get
(
a
.
options
.
event
);
return
b
&&
this
.
remove
(
b
),
this
.
recognizers
.
push
(
a
),
a
.
manager
=
this
,
this
.
touchAction
.
update
(),
a
},
remove
:
function
(
a
){
if
(
f
(
a
,
"
remove
"
,
this
))
return
this
;
if
(
a
=
this
.
get
(
a
)){
var
b
=
this
.
recognizers
,
c
=
r
(
b
,
a
);
-
1
!==
c
&&
(
b
.
splice
(
c
,
1
),
this
.
touchAction
.
update
())}
return
this
},
on
:
function
(
a
,
b
){
if
(
a
!==
d
&&
b
!==
d
){
var
c
=
this
.
handlers
;
return
g
(
q
(
a
),
function
(
a
){
c
[
a
]
=
c
[
a
]
||
[],
c
[
a
].
push
(
b
)}),
this
}},
off
:
function
(
a
,
b
){
if
(
a
!==
d
){
var
c
=
this
.
handlers
;
return
g
(
q
(
a
),
function
(
a
){
b
?
c
[
a
]
&&
c
[
a
].
splice
(
r
(
c
[
a
],
b
),
1
):
delete
c
[
a
]}),
this
}},
emit
:
function
(
a
,
b
){
this
.
options
.
domEvents
&&
ka
(
a
,
b
);
var
c
=
this
.
handlers
[
a
]
&&
this
.
handlers
[
a
].
slice
();
if
(
c
&&
c
.
length
){
b
.
type
=
a
,
b
.
preventDefault
=
function
(){
b
.
srcEvent
.
preventDefault
()};
for
(
var
d
=
0
;
d
<
c
.
length
;)
c
[
d
](
b
),
d
++
}},
destroy
:
function
(){
this
.
element
&&
ja
(
this
,
!
1
),
this
.
handlers
=
{},
this
.
session
=
{},
this
.
input
.
destroy
(),
this
.
element
=
null
}},
la
(
ha
,{
INPUT_START
:
Ea
,
INPUT_MOVE
:
Fa
,
INPUT_END
:
Ga
,
INPUT_CANCEL
:
Ha
,
STATE_POSSIBLE
:
nb
,
STATE_BEGAN
:
ob
,
STATE_CHANGED
:
pb
,
STATE_ENDED
:
qb
,
STATE_RECOGNIZED
:
rb
,
STATE_CANCELLED
:
sb
,
STATE_FAILED
:
tb
,
DIRECTION_NONE
:
Ia
,
DIRECTION_LEFT
:
Ja
,
DIRECTION_RIGHT
:
Ka
,
DIRECTION_UP
:
La
,
DIRECTION_DOWN
:
Ma
,
DIRECTION_HORIZONTAL
:
Na
,
DIRECTION_VERTICAL
:
Oa
,
DIRECTION_ALL
:
Pa
,
Manager
:
ia
,
Input
:
x
,
TouchAction
:
V
,
TouchInput
:
P
,
MouseInput
:
L
,
PointerEventInput
:
M
,
TouchMouseInput
:
R
,
SingleTouchInput
:
N
,
Recognizer
:
Y
,
AttrRecognizer
:
aa
,
Tap
:
ga
,
Pan
:
ba
,
Swipe
:
fa
,
Pinch
:
ca
,
Rotate
:
ea
,
Press
:
da
,
on
:
m
,
off
:
n
,
each
:
g
,
merge
:
ta
,
extend
:
sa
,
assign
:
la
,
inherit
:
i
,
bindFn
:
j
,
prefixed
:
u
});
var
wb
=
"
undefined
"
!=
typeof
a
?
a
:
"
undefined
"
!=
typeof
self
?
self
:{};
wb
.
Hammer
=
ha
,
"
function
"
==
typeof
define
&&
define
.
amd
?
define
(
function
(){
return
ha
}):
"
undefined
"
!=
typeof
module
&&
module
.
exports
?
module
.
exports
=
ha
:
a
[
c
]
=
ha
}(
window
,
document
,
"
Hammer
"
);
//# sourceMappingURL=hammer.min.js.map
\ No newline at end of file
This diff is collapsed.
Click to expand it.
templates/base.html
+
1
−
0
View file @
d72f7f4b
...
...
@@ -37,6 +37,7 @@
<script
src=
"{{url_for('static', filename='videojs/videojs-resolution-switcher.js')}}"
></script>
<script
src=
"{{url_for('static', filename='videojs/videojs.hotkeys.js')}}"
></script>
<script
src=
"{{url_for('static', filename='videojs/videojs-markers.js')}}"
></script>
<script
src=
"{{url_for('static', filename='hammer.min.js')}}"
></script>
{% endblock %}
</head>
<body>
...
...
This diff is collapsed.
Click to expand it.
templates/macros.html
+
18
−
0
View file @
d72f7f4b
...
...
@@ -64,6 +64,24 @@
$
(
function
()
{
$
(
'
#videoplayer
'
).
addClass
(
"
vjs-fluid
"
);
$
(
'
#videoplayer
'
).
css
(
"
width
"
);
var
videoobj
=
document
.
getElementById
(
"
videoplayer
"
);
var
player
=
videojs
(
"
videoplayer
"
);
var
manager
=
new
Hammer
.
Manager
(
videoobj
);
var
DoubleTap
=
new
Hammer
.
Tap
({
event
:
'
doubletap
'
,
taps
:
2
});
manager
.
add
(
DoubleTap
);
manager
.
on
(
'
doubletap
'
,
function
(
e
)
{
if
(
e
.
center
.
x
<
(
e
.
target
.
clientWidth
/
2
))
{
player
.
currentTime
(
player
.
currentTime
()
-
15
);
}
else
{
player
.
currentTime
(
player
.
currentTime
()
+
15
);
}
});
videojs
(
"
videoplayer
"
).
ready
(
function
()
{
//resume
var
progress_key
=
"
progress_{{ lecture.id }}
"
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment