All files / custom-element CustomElement.ts

77.78% Statements 7/9
100% Branches 0/0
0% Functions 0/2
77.78% Lines 7/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 362x 2x 2x 2x 2x 2x   2x                                                        
import ParentChildMixin from "./mixins/core/ParentChildMixin";
import ReactiveElementMixin from "./mixins/core/ReactiveElementMixin";
import StylePatcherMixin from "./mixins/core/StylePatcherMixin";
import VirtualDomMixin from "./mixins/core/VirtualDomMixin";
import ShadowRootMixin from "./mixins/core/ShadowRootMixin";
import MetadataInitializerMixin from "./mixins/core/MetadataInitializerMixin";
 
export default class CustomElement extends
    ParentChildMixin(
        ReactiveElementMixin(
            StylePatcherMixin(
                VirtualDomMixin(
                    ShadowRootMixin(
                        MetadataInitializerMixin(
                            HTMLElement
                        )
                    )
                )
            )   
        )
    ) {
 
    dispatchCustomEvent(type: string, detail: Record<string, any>) {
 
        setTimeout(() => { // Repaint before dispatching the event
 
            this.dispatchEvent(new CustomEvent(type, {
                detail: detail,
                bubbles: true,
                composed: true // To bubble through the shadow DOM
            }));
 
        }, 0);  
    }
}