All files / src/custom-element/mixins/data DataHolderMixin.ts

100% Statements 4/4
100% Branches 0/0
100% Functions 2/2
100% Lines 4/4

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 36 37 38 39 40              3x         4x       20x                                             3x
import { CustomElementPropertyMetadata } from "../../interfaces";
 
/**
 * Mixin for a component that holds a collection of records
 * @param Base 
 * @returns 
 */
const DataHolderMixin = Base =>
 
    /**
     * Implements a mixin that loads a single record
     */
    class DataHolder extends Base {
 
        static get properties(): Record<string, CustomElementPropertyMetadata> {
 
            return {
 
                /**
                 * The collection of records to render
                 */
                data: {
                    type: [Array, Function],
                    value: []
                    //required: true - We might need to load it after connecting the component
                },
 
                /**
                 * The field that provides a unique id for the record
                 */
                idField: {
                    attribute: 'id-field',
                    type: String,
                    required: true
                }
            }
        }
    }
 
export default DataHolderMixin;