diff --git a/.idea/misc.xml b/.idea/misc.xml index 5c3f8d1..1342930 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -6,9 +6,4 @@ - - - \ No newline at end of file diff --git a/package.json b/package.json index ff39161..a534dc5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@enbock/ts-jsx", - "version": "0.1.0-dev17", + "version": "0.1.0-dev18", "description": "An simple JSX rendering based on ShadowDOMv1.", "license": "MIT", "author": "Endre Bock ", diff --git a/src/ShadowRenderer.ts b/src/ShadowRenderer.ts index 5b0bda1..7fb25e3 100644 --- a/src/ShadowRenderer.ts +++ b/src/ShadowRenderer.ts @@ -65,11 +65,16 @@ export default class ShadowRenderer { for (const key of Object.keys(result.props)) { const isOnDashStyle: boolean = key.substring(0, 3) == 'on-'; if (isOnDashStyle || key.match(/^on[A-Z]/) !== null) { - const eventName:string = key.substring(isOnDashStyle ? 3 : 2).toLowerCase(); + const eventName: string = key.substring(isOnDashStyle ? 3 : 2).toLowerCase(); (domNode as any)['on' + eventName] = result.props[key]; } else domNode.setAttribute(key, result.props[key]); } + for (let ai: number = 0; ai < domNode.attributes.length; ai++) { + const key: string = domNode.attributes.item(ai)!.name; + if (Object.hasOwn(result.props, key)) continue; + domNode.attributes.removeNamedItem(key); + } } private static iterateLevel(results: ShadowDomElement | ShadowDomElement[], root: HTMLElement | ShadowRoot): void {