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

85.71% Statements 6/7
50% Branches 2/4
66.67% Functions 2/3
85.71% Lines 6/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          2x   2x       4x   4x   3x                               2x
/**
 * 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;