Fixed closing issue with cards.

This commit is contained in:
2019-08-14 17:46:12 +02:00
parent 30c7113713
commit 28a7a0b6a2
6 changed files with 375 additions and 262 deletions
+27 -16
View File
@@ -2772,7 +2772,9 @@
for (let j = 0; j < elements.length; j++) {
// if(elements[j].tagName == "svg") return false;
let hammer = new Hammer(elements[j], opts);
const target = elements[j];
let hammer = new Hammer(target, opts);
if (window.propagating !== 'undefined') {
hammer = propagating(hammer);
@@ -2793,16 +2795,23 @@
hammer.get('tap').set(opts);
}
console.log('APPLY HAMMER ON', type);
target.addEventListener("click", ()=>{
console.log("Hello");
});
hammer.on(type, event => {
console.log('FIRED');
cb(event);
});
if (Hammer.__hammers.has(elements[j])) {
const elementHammers = Hammer.__hammers.get(elements[j]);
if (Hammer.__hammers.has(target)) {
const elementHammers = Hammer.__hammers.get(target);
elementHammers.push(hammer);
Hammer.__hammers.set(elements[j], elementHammers);
Hammer.__hammers.set(target, elementHammers);
} else {
Hammer.__hammers.set(elements[j], [hammer]);
Hammer.__hammers.set(target, [hammer]);
}
}
} else {
@@ -7709,8 +7718,9 @@
* @memberof Card
*/
static _replaceAttributes(context, html, attribute, replaceFunc) {
let clickables = html.querySelectorAll(`[${attribute}]`);
clickables.forEach(element => {
let attributeCarrier = html.querySelectorAll(`[${attribute}]`);
attributeCarrier.forEach(element => {
console.log(element);
let attributeVal = element.getAttribute(attribute);
element.removeAttribute(attribute);
replaceFunc.call(this, context, element, attributeVal);
@@ -7759,10 +7769,13 @@
// These are 'hardcoded' inside the convert.js.
if (element.tagName == 'circle') return false
console.log("Replace" , context, element, attributeVal);
this.registerEvent(context, interactionType, element, event => {
/**
* Replaces the strings from the listener with the cooresponding variables.
*/
console.log("EVENT");
let args = [];
argsStrings.forEach(arg => {
arg = arg.trim();
@@ -7811,13 +7824,6 @@
/<\s*(a|video|img|image|circle)\s(.*?)(xlink:href|href|src)\s*=\s*["'](\..*?)["']\s*(.*?)>/g,
function(data) {
let path = that._getRelativePath(arguments[4]);
console.log('REPLACE ', arguments[1]);
if (arguments[1] == 'a') {
console.error('NOT REPLACING LINKS');
return ''
}
const tag = `<${arguments[1]} ${arguments[2]} ${arguments[3]}="${path}" ${arguments[5]}>`;
/* if (that.debug) */ console.log('Adjusted: ', tag);
return tag
@@ -9152,7 +9158,7 @@
* @memberof Card
*/
static openIndexCard(event, src) {
//console.log("openIndexCard", src)
console.log("openIndexCard", src);
/*
* Called by the expandIndexCard(...)
*/
@@ -9324,6 +9330,7 @@
let parser = new DOMParser();
let html = parser.parseFromString(htmlString, 'text/html');
if (!editable) {
console.log("REPLACE ONCLICK");
this._replaceAttributes(context, html, 'onclick', this._replaceCallback);
}
let zoomableWrappers = html.querySelectorAll('.svg-wrapper');
@@ -9562,7 +9569,10 @@
* @memberof Card
*/
static registerEvent(context, types, element, callback) {
InteractionMapper.on(types, element, callback);
console.log("REGISTER INTERACTION EVENT",context, types, element, callback);
InteractionMapper.on(types, element, ()=>{
console.log("HELLO");
});
if (context._registeredEvents == null) context._registeredEvents = [];
if (context._registeredEvents.indexOf(element) == -1) context._registeredEvents.push(element);
}
@@ -10202,6 +10212,7 @@
context.classList.add('info-card');
this.relativePath = basePath;
console.log(htmlString);
htmlString = this._adjustRelativeLinks(htmlString);
let parser = new DOMParser();
+14 -5
View File
@@ -6396,7 +6396,9 @@
for (let j = 0; j < elements.length; j++) {
// if(elements[j].tagName == "svg") return false;
let hammer = new Hammer(elements[j], opts);
const target = elements[j];
let hammer = new Hammer(target, opts);
if (window.propagating !== 'undefined') {
hammer = propagating(hammer);
@@ -6417,16 +6419,23 @@
hammer.get('tap').set(opts);
}
console.log('APPLY HAMMER ON', type);
target.addEventListener("click", ()=>{
console.log("Hello");
});
hammer.on(type, event => {
console.log('FIRED');
cb(event);
});
if (Hammer.__hammers.has(elements[j])) {
const elementHammers = Hammer.__hammers.get(elements[j]);
if (Hammer.__hammers.has(target)) {
const elementHammers = Hammer.__hammers.get(target);
elementHammers.push(hammer);
Hammer.__hammers.set(elements[j], elementHammers);
Hammer.__hammers.set(target, elementHammers);
} else {
Hammer.__hammers.set(elements[j], [hammer]);
Hammer.__hammers.set(target, [hammer]);
}
}
} else {