From 7bfbbcdd318cfb3bc722ccdeccb75864f97af06b Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio.bekerle@tugraz.at>
Date: Tue, 30 Jul 2019 13:08:38 +0200
Subject: [PATCH] Fix shadow dom event bubbling

---
 packages/auth/vpu-auth.js | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/packages/auth/vpu-auth.js b/packages/auth/vpu-auth.js
index c1972579..3eade9b7 100644
--- a/packages/auth/vpu-auth.js
+++ b/packages/auth/vpu-auth.js
@@ -30,9 +30,9 @@ class VPUAuth extends LitElement {
         this.personId = "";
 
         // Create the events
-        this.initEvent = new CustomEvent("vpu-auth-init", { "detail": "KeyCloak init event", bubbles: true });
-        this.personInitEvent = new CustomEvent("vpu-auth-person-init", { "detail": "KeyCloak person init event", bubbles: true });
-        this.keycloakDataUpdateEvent = new CustomEvent("vpu-auth-keycloak-data-update", { "detail": "KeyCloak data was updated", bubbles: true });
+        this.initEvent = new CustomEvent("vpu-auth-init", { "detail": "KeyCloak init event", bubbles: true, composed: true });
+        this.personInitEvent = new CustomEvent("vpu-auth-person-init", { "detail": "KeyCloak person init event", bubbles: true, composed: true });
+        this.keycloakDataUpdateEvent = new CustomEvent("vpu-auth-keycloak-data-update", { "detail": "KeyCloak data was updated", bubbles: true, composed: true });
     }
 
     /**
@@ -154,8 +154,7 @@ class VPUAuth extends LitElement {
      */
     dispatchInitEvent() {
         this.setStateToLogin(false);
-        // we need to use "window", because the event doens't seem to bubble if we use "this"
-        window.dispatchEvent(this.initEvent);
+        this.dispatchEvent(this.initEvent);
     }
 
     setStateToLogin(state) {
@@ -167,16 +166,14 @@ class VPUAuth extends LitElement {
      * Dispatches the person init event
      */
     dispatchPersonInitEvent() {
-        // we need to use "window", because the event doens't seem to bubble if we use "this"
-        window.dispatchEvent(this.personInitEvent);
+        this.dispatchEvent(this.personInitEvent);
     }
 
     /**
      * Dispatches the keycloak data update event
      */
     dispatchKeycloakDataUpdateEvent() {
-        // we need to use "window", because the event doens't seem to bubble if we use "this"
-        window.dispatchEvent(this.keycloakDataUpdateEvent);
+        this.dispatchEvent(this.keycloakDataUpdateEvent);
     }
 
     updateKeycloakData() {
-- 
GitLab