diff --git a/packages/base/src/sap/ui/webcomponents/base/DOMEventHandler.js b/packages/base/src/sap/ui/webcomponents/base/DOMEventHandler.js index 4027be478006..770c33711fd5 100644 --- a/packages/base/src/sap/ui/webcomponents/base/DOMEventHandler.js +++ b/packages/base/src/sap/ui/webcomponents/base/DOMEventHandler.js @@ -1,5 +1,6 @@ import PseudoEvents from '@ui5/webcomponents-core/dist/sap/ui/events/PseudoEvents'; import ControlEvents from './events/ControlEvents'; +import WebComponent from './WebComponent'; const handleEvent = function (event) { @@ -32,24 +33,16 @@ const getDomTarget = function(event) { }; const processDOMNode = function(node, event) { - const id = node.getAttribute("data-sap-ui"); - const tag = node.tagName; - let control; - - if (tag.match(/^ui5-/i)) { - control = node; - } - - if (control && control._handleEvent) { - return dispatchEvent(control, event); + if (node && node instanceof WebComponent) { + return dispatchEvent(node, event); } return true; }; -const dispatchEvent = function(control, event) { +const dispatchEvent = function(ui5WebComponent, event) { // Handle the original event (such as "keydown") - control._handleEvent(event); + ui5WebComponent._handleEvent(event); if (event.isImmediatePropagationStopped()) { return false; } @@ -57,7 +50,7 @@ const dispatchEvent = function(control, event) { // Handle pseudo events that derive from the original event (such as "sapselect") const pseudoTypes = getPseudoTypesFor(event); for (let i = 0, len = pseudoTypes.length; i < len; i++) { - control._handleEvent(event, pseudoTypes[i]); + ui5WebComponent._handleEvent(event, pseudoTypes[i]); if (event.isImmediatePropagationStopped()) { return false; } @@ -104,8 +97,6 @@ const getPseudoTypesFor = function(event) { const getParentDOMNode = function(node) { const parentNode = node.parentNode; - // Skip the custom element tag (host) only if crossing a shadow DOM boundary - // The reason is that the event was already dispatched to the light control while traversing the shadow DOM if (parentNode && parentNode.host) { return parentNode.host; } @@ -129,4 +120,4 @@ class DOMEventHandler { } -export default DOMEventHandler; \ No newline at end of file +export default DOMEventHandler; diff --git a/packages/base/src/sap/ui/webcomponents/base/WebComponent.js b/packages/base/src/sap/ui/webcomponents/base/WebComponent.js index 7bfc72cf29c1..8e0ee4435939 100644 --- a/packages/base/src/sap/ui/webcomponents/base/WebComponent.js +++ b/packages/base/src/sap/ui/webcomponents/base/WebComponent.js @@ -65,11 +65,6 @@ class WebComponent extends HTMLElement { ShadowDOM.updateStyle(tag, this.shadowRoot, styleURLs); } - // For duck typing when instanceof WebComponent cannot be used - isUI5WebComponent() { - return true; - } - _whenShadowRootReady() { return this._shadowRootReadyPromise; }