export class DatatableAction {
    constructor() {
        /** Mark this datatable action as displayed */
        this.display = true;
        /** The datatable-action color, it can be either :
         *  - a predifined value : 'primary', 'secondary', 'error'.
         *  - an hexa color code : #225566, #CCC.
         *  - a css named color : red, blue.
        */
        this.color = 'primary';
    }
    /** Trigger a press event */
    async press(e) {
        this.pressEvent.emit(e);
    }
    render() {
        return;
    }
    static get is() { return "materials-datatable-action"; }
    static get encapsulation() { return "shadow"; }
    static get originalStyleUrls() { return {
        "$": ["datatable-action.scss"]
    }; }
    static get styleUrls() { return {
        "$": ["datatable-action.css"]
    }; }
    static get properties() { return {
        "label": {
            "type": "string",
            "mutable": false,
            "complexType": {
                "original": "string",
                "resolved": "string",
                "references": {}
            },
            "required": true,
            "optional": false,
            "docs": {
                "tags": [],
                "text": "The datatable action label"
            },
            "attribute": "label",
            "reflect": false
        },
        "display": {
            "type": "boolean",
            "mutable": false,
            "complexType": {
                "original": "boolean",
                "resolved": "boolean",
                "references": {}
            },
            "required": false,
            "optional": false,
            "docs": {
                "tags": [],
                "text": "Mark this datatable action as displayed"
            },
            "attribute": "display",
            "reflect": false,
            "defaultValue": "true"
        },
        "icon": {
            "type": "string",
            "mutable": false,
            "complexType": {
                "original": "string",
                "resolved": "string",
                "references": {}
            },
            "required": false,
            "optional": false,
            "docs": {
                "tags": [],
                "text": "Render an icon (from material-icons library)"
            },
            "attribute": "icon",
            "reflect": false
        },
        "color": {
            "type": "string",
            "mutable": false,
            "complexType": {
                "original": "'primary' | 'secondary' | 'error' | string",
                "resolved": "string",
                "references": {}
            },
            "required": false,
            "optional": false,
            "docs": {
                "tags": [],
                "text": "The datatable-action color, it can be either :\n- a predifined value : 'primary', 'secondary', 'error'.\n- an hexa color code : #225566, #CCC.\n- a css named color : red, blue."
            },
            "attribute": "color",
            "reflect": false,
            "defaultValue": "'primary'"
        }
    }; }
    static get events() { return [{
            "method": "pressEvent",
            "name": "press",
            "bubbles": true,
            "cancelable": true,
            "composed": true,
            "docs": {
                "tags": [],
                "text": "Emitted when it get pressed"
            },
            "complexType": {
                "original": "any",
                "resolved": "any",
                "references": {}
            }
        }]; }
    static get methods() { return {
        "press": {
            "complexType": {
                "signature": "(e: any) => Promise<void>",
                "parameters": [{
                        "tags": [],
                        "text": ""
                    }],
                "references": {
                    "Promise": {
                        "location": "global"
                    }
                },
                "return": "Promise<void>"
            },
            "docs": {
                "text": "Trigger a press event",
                "tags": []
            }
        }
    }; }
}
