Prettified all files.

This commit is contained in:
2019-07-18 12:26:39 +02:00
parent 7744b92771
commit 2d400a18ec
125 changed files with 11184 additions and 8154 deletions
+152 -79
View File
@@ -13,16 +13,15 @@ import Logging from './logging.js'
*/
export class IInteractionTarget extends Interface {
capture(event) {
return typeof true
}
onStart(event, interaction) { }
onMove(event, interaction) { }
onEnd(event, interaction) { }
onStart(event, interaction) {}
onMove(event, interaction) {}
onEnd(event, interaction) {}
onMouseWheel(event) { }
onMouseWheel(event) {}
}
export class IInteractionMapperTarget extends Interface {
@@ -230,14 +229,32 @@ export class InteractionPoints {
let currentAngle = Points.angle(c1, c2)
let previousAngle = Points.angle(p1, p2)
let alpha = this.diffAngle(currentAngle, previousAngle)
return new InteractionDelta(delta.x, delta.y, zoom, alpha, cm, csize)
} else if (csize == 1 && psize == 1 && this.current.firstKey() == this.previous.firstKey()) {
return new InteractionDelta(
delta.x,
delta.y,
zoom,
alpha,
cm,
csize
)
} else if (
csize == 1 &&
psize == 1 &&
this.current.firstKey() == this.previous.firstKey()
) {
// We need to ensure that the keys are the same, since single points with different keys
// can jump
let current = this.current.first()
let previous = this.previous.first()
let delta = Points.subtract(current, previous)
return new InteractionDelta(delta.x, delta.y, 1.0, 0.0, current, csize)
return new InteractionDelta(
delta.x,
delta.y,
1.0,
0.0,
current,
csize
)
}
return null
}
@@ -375,8 +392,7 @@ export class Interaction extends InteractionPoints {
if (this.tapCounts.has(key)) {
let count = this.tapCounts.get(key)
this.tapCounts.set(key, count + 1)
}
else {
} else {
this.tapCounts.set(key, 1)
}
this.tapPositions.set(key, point)
@@ -418,7 +434,10 @@ export class Interaction extends InteractionPoints {
this.unregisterTap(key)
}
}
if (this.tapTimestamps.has(key) && performance.now() > this.tapTimestamps.get(key) + this.tapDuration) {
if (
this.tapTimestamps.has(key) &&
performance.now() > this.tapTimestamps.get(key) + this.tapDuration
) {
//console.log("tap too long")
this.unregisterTap(key)
}
@@ -426,8 +445,7 @@ export class Interaction extends InteractionPoints {
if (this.isTap(key)) {
this.registerTap(key, ended)
result = this.tapCounts.get(key) == 2
}
else {
} else {
this.unregisterTap(key)
}
//console.log("isDoubleTap", this.tapCounts.get(key), result)
@@ -494,7 +512,13 @@ export class InteractionDelegate {
constructor(
element,
target,
{ mouseWheelElement = null, useCapture = true, capturePointerEvents = true, cancelOnWindowOut = true, debug = false } = {}
{
mouseWheelElement = null,
useCapture = true,
capturePointerEvents = true,
cancelOnWindowOut = true,
debug = false
} = {}
) {
this.debug = debug
this.interaction = new Interaction()
@@ -549,7 +573,8 @@ export class InteractionDelegate {
element.addEventListener(
'pointermove',
e => {
if (this.debug) console.log('pointermove', e.pointerId, e.pointerType)
if (this.debug)
console.log('pointermove', e.pointerId, e.pointerType)
if (
e.pointerType == 'touch' ||
@@ -566,7 +591,8 @@ export class InteractionDelegate {
element.addEventListener(
'pointerup',
e => {
if (this.debug) console.log('pointerup', e.pointerId, e.pointerType)
if (this.debug)
console.log('pointerup', e.pointerId, e.pointerType)
this.onEnd(e)
if (this.capturePointerEvents) {
try {
@@ -581,7 +607,8 @@ export class InteractionDelegate {
element.addEventListener(
'pointercancel',
e => {
if (this.debug) console.log('pointercancel', e.pointerId, e.pointerType)
if (this.debug)
console.log('pointercancel', e.pointerId, e.pointerType)
this.onEnd(e)
if (this.capturePointerEvents)
element.releasePointerCapture(e.pointerId)
@@ -593,7 +620,12 @@ export class InteractionDelegate {
element.addEventListener(
'pointerleave',
e => {
if (this.debug) console.log('pointerleave', e.pointerId, e.pointerType)
if (this.debug)
console.log(
'pointerleave',
e.pointerId,
e.pointerType
)
if (e.target == element) this.onEnd(e)
},
useCapture
@@ -604,7 +636,12 @@ export class InteractionDelegate {
element.addEventListener(
'pointerout',
e => {
if (this.debug) console.log('pointerout', e.pointerId, e.pointerType)
if (this.debug)
console.log(
'pointerout',
e.pointerId,
e.pointerType
)
if (e.target == element) this.onEnd(e)
},
useCapture
@@ -615,14 +652,20 @@ export class InteractionDelegate {
window.addEventListener(
'pointerout',
e => {
if (this.debug) console.log('pointerout', e.pointerId, e.pointerType, e.target)
if (this.debug)
console.log(
'pointerout',
e.pointerId,
e.pointerType,
e.target
)
if (e.target == element) {
this.onEnd(e)
}
},
useCapture)
useCapture
)
}
} else if (window.TouchEvent) {
if (this.debug) console.log('Touch API')
element.addEventListener(
@@ -698,8 +741,7 @@ export class InteractionDelegate {
// && Events.isMouseDown(e))
if (Events.isMouseDown(e)) {
if (this.debug)
console.log('mousemove', e)
if (this.debug) console.log('mousemove', e)
this.onMove(e)
}
},
@@ -720,7 +762,9 @@ export class InteractionDelegate {
e => {
if (e.target == element) {
this.onEnd(e)
console.warn('Shouldn\'t happen: mouseout ends interaction')
console.warn(
"Shouldn't happen: mouseout ends interaction"
)
}
},
useCapture
@@ -734,7 +778,8 @@ export class InteractionDelegate {
this.onEnd(e)
}
},
useCapture)
useCapture
)
}
}
}
@@ -823,42 +868,42 @@ export class InteractionDelegate {
// 'targetTouches'
let result = {}
switch (event.constructor.name) {
case 'MouseEvent': {
let buttons = event.buttons || event.which
if (buttons) result['mouse'] = this.getPosition(event)
break
}
case 'PointerEvent': {
result[event.pointerId.toString()] = this.getPosition(event)
break
}
case 'Touch': {
let id =
case 'MouseEvent': {
let buttons = event.buttons || event.which
if (buttons) result['mouse'] = this.getPosition(event)
break
}
case 'PointerEvent': {
result[event.pointerId.toString()] = this.getPosition(event)
break
}
case 'Touch': {
let id =
event.touchType === 'stylus'
? 'stylus'
: event.identifier.toString()
result[id] = this.getPosition(event)
break
}
// case 'TouchEvent':
// // Needs to be observed: Perhaps changedTouches are all we need. If so
// // we can remove the touchEventKey default parameter
// if (touchEventKey == 'all') {
// for(let t of event.targetTouches) {
// result[t.identifier.toString()] = this.getPosition(t)
// }
// for(let t of event.changedTouches) {
// result[t.identifier.toString()] = this.getPosition(t)
// }
// }
// else {
// for(let t of event.changedTouches) {
// result[t.identifier.toString()] = this.getPosition(t)
// }
// }
// break
default:
break
result[id] = this.getPosition(event)
break
}
// case 'TouchEvent':
// // Needs to be observed: Perhaps changedTouches are all we need. If so
// // we can remove the touchEventKey default parameter
// if (touchEventKey == 'all') {
// for(let t of event.targetTouches) {
// result[t.identifier.toString()] = this.getPosition(t)
// }
// for(let t of event.changedTouches) {
// result[t.identifier.toString()] = this.getPosition(t)
// }
// }
// else {
// for(let t of event.changedTouches) {
// result[t.identifier.toString()] = this.getPosition(t)
// }
// }
// break
default:
break
}
return result
}
@@ -871,7 +916,7 @@ export class InteractionDelegate {
// Callback: can be overwritten
}
interactionFinished(event, key, point) { }
interactionFinished(event, key, point) {}
startInteraction(event, extracted) {
for (let key in extracted) {
@@ -886,7 +931,10 @@ export class InteractionDelegate {
let point = extracted[key]
let updated = this.interaction.update(key, point)
if (updated) {
console.warn('new pointer in updateInteraction shouldn\'t happen', key)
console.warn(
"new pointer in updateInteraction shouldn't happen",
key
)
this.interactionStarted(event, key, point)
}
}
@@ -924,13 +972,23 @@ export class InteractionDelegate {
* @extends {InteractionDelegate}
*/
export class InteractionMapper extends InteractionDelegate {
constructor(
element,
target,
{ tapDistance = 10, longPressTime = 500.0, useCapture = true, mouseWheelElement = null, logInteractionsAbove = 12 } = {}
{
tapDistance = 10,
longPressTime = 500.0,
useCapture = true,
mouseWheelElement = null,
logInteractionsAbove = 12
} = {}
) {
super(element, target, { tapDistance, useCapture, longPressTime, mouseWheelElement })
super(element, target, {
tapDistance,
useCapture,
longPressTime,
mouseWheelElement
})
this.logInteractionsAbove = logInteractionsAbove
}
@@ -1039,10 +1097,7 @@ export class InteractionMapper extends InteractionDelegate {
* @param {object} [opts] - An options object. See the hammer documentation for more details.
*/
static on(types, elements, cb, opts = {}) {
opts = Object.assign({}, {
}, opts)
opts = Object.assign({}, {}, opts)
if (typeof Hammer === 'undefined') {
console.error('Hammer.js not found!')
@@ -1051,23 +1106,25 @@ export class InteractionMapper extends InteractionDelegate {
// convert to array
types = Array.isArray(types) ? types : types.split(/\s/)
if (elements instanceof NodeList || elements instanceof HTMLCollection) {
if (
elements instanceof NodeList ||
elements instanceof HTMLCollection
) {
elements = Array.from(elements)
}
elements = Array.isArray(elements) ? elements : [elements]
for (let i = 0; i < types.length; i++) {
const type = types[i].toLowerCase()
// list of hammer events
const useHammer = /^(tap|doubletap|press|pan|swipe|pinch|rotate).*$/.test(type)
const useHammer = /^(tap|doubletap|press|pan|swipe|pinch|rotate).*$/.test(
type
)
// if it is a hammer event
if (useHammer) {
for (let j = 0; j < elements.length; j++) {
// if(elements[j].tagName == "svg") return false;
let hammer = new Hammer(elements[j], opts)
@@ -1078,15 +1135,33 @@ export class InteractionMapper extends InteractionDelegate {
// recognizers
if (type.startsWith('pan')) {
hammer.get('pan').set(Object.assign({ direction: Hammer.DIRECTION_ALL }, opts))
hammer
.get('pan')
.set(
Object.assign(
{ direction: Hammer.DIRECTION_ALL },
opts
)
)
} else if (type.startsWith('pinch')) {
hammer.get('pinch').set(Object.assign({ enable: true }, opts))
hammer
.get('pinch')
.set(Object.assign({ enable: true }, opts))
} else if (type.startsWith('press')) {
hammer.get('press').set(opts)
} else if (type.startsWith('rotate')) {
hammer.get('rotate').set(Object.assign({ enable: true }, opts))
hammer
.get('rotate')
.set(Object.assign({ enable: true }, opts))
} else if (type.startsWith('swipe')) {
hammer.get('swipe').set(Object.assign({ direction: Hammer.DIRECTION_ALL }, opts))
hammer
.get('swipe')
.set(
Object.assign(
{ direction: Hammer.DIRECTION_ALL },
opts
)
)
} else if (type.startsWith('tap')) {
hammer.get('tap').set(opts)
}
@@ -1095,9 +1170,7 @@ export class InteractionMapper extends InteractionDelegate {
cb(event)
})
}
} else {
for (let j = 0; j < elements.length; j++) {
Hammer.on(elements[j], type, event => {
cb(event)