All files / src/custom-element/mixins/core ShadowRootMixin.ts

100% Statements 7/7
100% Branches 4/4
100% Functions 3/3
100% Lines 7/7

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          17x   17x       85x   85x   84x                 167x             17x
/**
 * Mixin to manage whether the custom component has a shadow root or not
 * @param Base 
 * @returns 
 */
const ShadowRootMixin = Base =>
 
    class ShadowRoot extends Base {
 
        constructor() {
 
            super();
 
            if ((this.constructor as any).metadata.shadow === true) {
 
                this.attachShadow({ mode: 'open' });
            }
        }
 
        /** 
         * The DOM document in which this component is updated 
         */
        get document() {
 
            return this.shadowRoot !== null ?
                this.shadowRoot :
                this;
        }
 
    }
 
export default ShadowRootMixin;