Merge branch 'master' of gitea.iwm-tuebingen.de:IWMBrowser/iwmlib

This commit is contained in:
Uwe Oestermeier 2019-07-05 09:39:17 +02:00
commit 30e998e386
6 changed files with 93 additions and 3 deletions

80
dist/iwmlib.js vendored
View File

@ -2644,6 +2644,7 @@
* @param {object} [opts] - An options object. See the hammer documentation for more details. * @param {object} [opts] - An options object. See the hammer documentation for more details.
*/ */
static on(types, elements, cb, opts = {}) { static on(types, elements, cb, opts = {}) {
opts = Object.assign({}, { opts = Object.assign({}, {
}, opts); }, opts);
@ -3814,6 +3815,38 @@
onMove = null onMove = null
} = {} } = {}
) { ) {
<<<<<<< HEAD
this.onCapture = null;
this.element = element;
if (stopEvents === 'auto') {
/*
The events have to be stopped in Safari, otherwise the whole page will be zoomed with
a pinch gesture (preventDefault in method preventPinch). In order to enable the
movement of scatter objects, the touchmove event has to be bound again.
*/
if (Capabilities.isSafari) {
document.addEventListener(
'touchmove',
event => this.preventPinch(event),
false
);
stopEvents = false;
} else {
stopEvents = true;
}
}
this.stopEvents = stopEvents;
this.claimEvents = claimEvents;
if (touchAction !== null) {
Elements$1.setStyle(element, { touchAction });
}
this.scatter = new Map();
this.delegate = new InteractionMapper$1(element, this, {
useCapture,
mouseWheelElement: window
});
=======
>>>>>>> a3f7eb0b3cc9f48cfee3ce6c45887bf25617d1bc
let notchPosition = (switchPos && point.y < 50) ? "topCenter" : "bottomCenter"; let notchPosition = (switchPos && point.y < 50) ? "topCenter" : "bottomCenter";
@ -4720,6 +4753,52 @@
} }
} }
<<<<<<< HEAD
class DOMFlippable {
constructor(element, scatter, flip) {
// Set log to console.log or a custom log function
// define data structures to store our touchpoints in
this.element = element;
this.flip = flip;
this.card = element.querySelector('.flipCard');
this.front = element.querySelector('.front');
this.back = element.querySelector('.back');
this.flipped = false;
this.scatter = scatter;
this.onFrontFlipped = flip.onFrontFlipped;
this.onBackFlipped = flip.onBackFlipped;
this.onClose = flip.onClose;
this.onRemoved = flip.onRemoved;
this.onUpdate = flip.onUpdate;
this.flipDuration = flip.flipDuration;
this.fadeDuration = flip.fadeDuration;
scatter.addTransformEventCallback(this.scatterTransformed.bind(this));
console.log('lib.DOMFlippable', 5000);
TweenLite.set(this.element, { perspective: 5000 });
TweenLite.set(this.card, { transformStyle: 'preserve-3d' });
TweenLite.set(this.back, { rotationY: -180 });
TweenLite.set([this.back, this.front], {
backfaceVisibility: 'hidden',
perspective: 5000
});
TweenLite.set(this.front, { visibility: 'visible' });
this.infoBtn = element.querySelector('.infoBtn');
this.backBtn = element.querySelector('.backBtn');
this.closeBtn = element.querySelector('.closeBtn');
/* Buttons are not guaranteed to exist. */
if (this.infoBtn) {
InteractionMapper$1.on('tap', this.infoBtn, event => this.flip.start());
this.enable(this.infoBtn);
}
if (this.backBtn) {
InteractionMapper$1.on('tap', this.backBtn, event => this.start());
}
if (this.closeBtn) {
InteractionMapper$1.on('tap', this.closeBtn, event => this.close());
this.enable(this.closeBtn);
=======
/** /**
* For a given zoom, a new scale is calculated, taking * For a given zoom, a new scale is calculated, taking
* min and max scale into account. * min and max scale into account.
@ -4735,6 +4814,7 @@
if (scale < minScale) { if (scale < minScale) {
scale = minScale; scale = minScale;
zoom = scale / this.scale; zoom = scale / this.scale;
>>>>>>> a3f7eb0b3cc9f48cfee3ce6c45887bf25617d1bc
} }
if (scale > maxScale) { if (scale > maxScale) {
scale = maxScale; scale = maxScale;

2
dist/iwmlib.pixi.js vendored
View File

@ -5811,6 +5811,7 @@
* @param {object} [opts] - An options object. See the hammer documentation for more details. * @param {object} [opts] - An options object. See the hammer documentation for more details.
*/ */
static on(types, elements, cb, opts = {}) { static on(types, elements, cb, opts = {}) {
opts = Object.assign({}, { opts = Object.assign({}, {
}, opts); }, opts);
@ -7577,7 +7578,6 @@
/* Buttons are not guaranteed to exist. */ /* Buttons are not guaranteed to exist. */
if (this.infoBtn) { if (this.infoBtn) {
InteractionMapper$1.on('tap', this.infoBtn, event => this.flip.start()); InteractionMapper$1.on('tap', this.infoBtn, event => this.flip.start());
this.enable(this.infoBtn); this.enable(this.infoBtn);
} }
if (this.backBtn) { if (this.backBtn) {

View File

@ -66,7 +66,7 @@ templates.
</main> </main>
<script class="doctest"> <script class="doctest">
let scatterContainer = new DOMScatterContainer(main) let scatterContainer = new DOMScatterContainer(main, {stopEvents: false})
if (Capabilities.supportsTemplate()) { if (Capabilities.supportsTemplate()) {
let flip = new DOMFlip(scatterContainer, let flip = new DOMFlip(scatterContainer,
flipTemplate, flipTemplate,
@ -80,5 +80,10 @@ if (Capabilities.supportsTemplate()) {
else { else {
alert("Templates not supported, use Edge, Chrome, Safari or Firefox.") alert("Templates not supported, use Edge, Chrome, Safari or Firefox.")
} }
setTimeout(function() {
const infoBtn = document.querySelector('.infoBtn')
InteractionMapper.on('tap', infoBtn, event => console.log('go'))
}, 2000)
</script> </script>
</body> </body>

View File

@ -404,7 +404,6 @@ export class DOMFlippable {
/* Buttons are not guaranteed to exist. */ /* Buttons are not guaranteed to exist. */
if (this.infoBtn) { if (this.infoBtn) {
InteractionMapper.on('tap', this.infoBtn, event => this.flip.start()) InteractionMapper.on('tap', this.infoBtn, event => this.flip.start())
this.enable(this.infoBtn) this.enable(this.infoBtn)
} }
if (this.backBtn) { if (this.backBtn) {

View File

@ -1039,6 +1039,7 @@ export class InteractionMapper extends InteractionDelegate {
* @param {object} [opts] - An options object. See the hammer documentation for more details. * @param {object} [opts] - An options object. See the hammer documentation for more details.
*/ */
static on(types, elements, cb, opts = {}) { static on(types, elements, cb, opts = {}) {
opts = Object.assign({}, { opts = Object.assign({}, {
}, opts) }, opts)

View File

@ -873,6 +873,11 @@ export class DOMScatterContainer {
this.onCapture = null this.onCapture = null
this.element = element this.element = element
if (stopEvents === 'auto') { if (stopEvents === 'auto') {
/*
The events have to be stopped in Safari, otherwise the whole page will be zoomed with
a pinch gesture (preventDefault in method preventPinch). In order to enable the
movement of scatter objects, the touchmove event has to be bound again.
*/
if (Capabilities.isSafari) { if (Capabilities.isSafari) {
document.addEventListener( document.addEventListener(
'touchmove', 'touchmove',