import { Host, h } from "@stencil/core";
import { EmptyClass } from "./constants";
import { govHost } from "../../helpers/Dom/template";
import { validateProp } from "../../helpers/Validate/props";
import { AccordionClass, AccordionSizes } from "../gov-accordion/constants";
export class GovEmpty {
    constructor() {
        /**
         * Element size.
         */
        this.size = 'm';
        /**
         * Element direction
         */
        this.direction = "vertical";
        /**
         * Element alignment.
         */
        this.align = "left";
        this.h = govHost(this.host);
    }
    validateSize(newValue) {
        validateProp(AccordionSizes, newValue, AccordionClass.root);
    }
    componentWillLoad() {
        this.validateSize(this.size);
    }
    render() {
        return (h(Host, { key: 'b10b9a2d6d7d3286826bf3499c4fdb6fc3a55361', class: this.h.classes(EmptyClass.root), size: this.size, direction: this.direction, align: this.align }, this.h.hasSlot('icon') && (h("slot", { key: '151be593361299a315d5ce16be9f7a082efedcdb', name: "icon" })), h("div", { key: '8661841ecf708b38c41aed696c696ea4a3719894', class: EmptyClass.content }, h("slot", { key: '9884110dc44f7401ba512d97ef080c444ac2ea71', name: "headline" }), h("slot", { key: '53080ae7c203f53e4393a5b2e5c05a5f5fc1ee9d' }))));
    }
    static get is() { return "gov-empty"; }
    static get properties() {
        return {
            "size": {
                "type": "string",
                "attribute": "size",
                "mutable": false,
                "complexType": {
                    "original": "EmptySizesType",
                    "resolved": "\"l\" | \"m\" | \"s\"",
                    "references": {
                        "EmptySizesType": {
                            "location": "import",
                            "path": "./constants",
                            "id": "../../../packages/core/src/components/gov-empty/constants.ts::EmptySizesType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element size."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "'m'"
            },
            "direction": {
                "type": "string",
                "attribute": "direction",
                "mutable": false,
                "complexType": {
                    "original": "EmptyDirectionType",
                    "resolved": "\"horizontal\" | \"vertical\"",
                    "references": {
                        "EmptyDirectionType": {
                            "location": "import",
                            "path": "./constants",
                            "id": "../../../packages/core/src/components/gov-empty/constants.ts::EmptyDirectionType"
                        }
                    }
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Element direction"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "\"vertical\""
            },
            "align": {
                "type": "string",
                "attribute": "align",
                "mutable": false,
                "complexType": {
                    "original": "EmptyAlignType",
                    "resolved": "\"center\" | \"left\" | \"right\"",
                    "references": {
                        "EmptyAlignType": {
                            "location": "import",
                            "path": "./constants",
                            "id": "../../../packages/core/src/components/gov-empty/constants.ts::EmptyAlignType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Element alignment."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "\"left\""
            }
        };
    }
    static get elementRef() { return "host"; }
    static get watchers() {
        return [{
                "propName": "size",
                "methodName": "validateSize"
            }];
    }
}
//# sourceMappingURL=gov-empty.js.map
