All files / src/custom-element/mixins StylesMetadataInitializerMixin.ts

100% Statements 7/7
100% Branches 4/4
100% Functions 2/2
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    19x   29x                     104x   104x   33x     71x               19x
import { CustomElementMetadata } from "../interfaces";
 
const StylesMetadataInitializerMixin = Base =>
 
    class StylesMetadataInitializer extends Base {
 
        /**
         * The styles to track in the class
         */
        static styles: () => string | string[];
 
        protected static initializeStyles(metadata: CustomElementMetadata): void {
 
            const {
                styles
            } = this;
 
            if (styles === undefined) {
 
                return;
            }
 
            metadata.styles = Array.isArray(styles) ?
                [...metadata.styles, ...styles] :
                [...metadata.styles, styles];
 
            // Do not inherit the styles of the base custom element by default             
        }
    }
 
export default StylesMetadataInitializerMixin;