diff --git a/package-lock.json b/package-lock.json index c10b9c5..5eea947 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "browser-tests": { "name": "maquette-browser-tests", "devDependencies": { - "@playwright/test": "^1.40.0" + "@playwright/test": "^1.57.0" } }, "node_modules/@acemir/cssom": { diff --git a/src/projection.ts b/src/projection.ts index abc9871..6d56df7 100644 --- a/src/projection.ts +++ b/src/projection.ts @@ -154,6 +154,7 @@ let nodeToRemove = (vNode: VNode) => { }; const vnodeOnlyProps = [ + "on", "afterCreate", "afterUpdate", "afterRemoved", @@ -206,22 +207,6 @@ let setProperties = ( projectionOptions.styleApplyer!(domNode, styleName, styleValue); } } - } else if (propName === "on" && propValue) { - // object with string keys and function values - for (let [key, handler] of Object.entries(properties.on!)) { - let listener: EventHandler | undefined = - typeof handler === "function" ? handler : handler.listener; - if (eventHandlerInterceptor) { - listener = eventHandlerInterceptor(key, listener, domNode, properties); - } - if (listener) { - domNode.addEventListener( - key, - listener, - typeof handler === "function" ? undefined : handler.options - ); - } - } } else if (propName !== "key" && propValue !== null && propValue !== undefined) { let type = typeof propValue; if (type === "function") { @@ -246,6 +231,23 @@ let setProperties = ( } } } + if (properties.on) { + // object with string keys and function values + for (let [key, handler] of Object.entries(properties.on)) { + let listener: EventHandler | undefined = + typeof handler === "function" ? handler : handler.listener; + if (eventHandlerInterceptor) { + listener = eventHandlerInterceptor(key, listener, domNode, properties); + } + if (listener) { + domNode.addEventListener( + key, + listener, + typeof handler === "function" ? undefined : handler.options + ); + } + } + } }; let addChildren = (