import { h, Host } from "@stencil/core";
import { validateProp } from "../../helpers/Validate/props";
import { SpacerBreakpoints, SpacerClass, SpacerSize } from "./constants";
import { govHost } from "../../helpers/Dom/template";
export class GovSpacer {
    constructor() {
        /**
         * Breakpoint
         */
        this.breakpoint = undefined;
        this.h = govHost(this.host);
    }
    validateSize(newValue) {
        validateProp(SpacerSize, newValue, SpacerClass.root);
    }
    validateBreakpoint(newValue) {
        validateProp(SpacerBreakpoints, newValue, SpacerClass.root);
    }
    componentWillLoad() {
        this.validateSize(this.size);
        this.validateBreakpoint(this.breakpoint);
    }
    render() {
        return h(Host, { key: '97560206986a3dea272c7e4a939bb91a050f6252', class: this.h.classes(SpacerClass.root), size: this.size, breakpoint: this.breakpoint });
    }
    static get is() { return "gov-spacer"; }
    static get properties() {
        return {
            "size": {
                "type": "string",
                "attribute": "size",
                "mutable": false,
                "complexType": {
                    "original": "SpacerSizeType",
                    "resolved": "\"2xl\" | \"2xs\" | \"3xl\" | \"4xl\" | \"l\" | \"m\" | \"s\" | \"xl\" | \"xs\"",
                    "references": {
                        "SpacerSizeType": {
                            "location": "import",
                            "path": "./constants",
                            "id": "../../../packages/core/src/components/gov-spacer/constants.tsx::SpacerSizeType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Spacer\u2019s size"
                },
                "getter": false,
                "setter": false,
                "reflect": false
            },
            "breakpoint": {
                "type": "string",
                "attribute": "breakpoint",
                "mutable": false,
                "complexType": {
                    "original": "SpacerBreakpointsType",
                    "resolved": "\"lg\" | \"md\" | \"none\" | \"sm\" | \"xl\"",
                    "references": {
                        "SpacerBreakpointsType": {
                            "location": "import",
                            "path": "./constants",
                            "id": "../../../packages/core/src/components/gov-spacer/constants.tsx::SpacerBreakpointsType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Breakpoint"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "undefined"
            }
        };
    }
    static get elementRef() { return "host"; }
    static get watchers() {
        return [{
                "propName": "size",
                "methodName": "validateSize"
            }, {
                "propName": "breakpoint",
                "methodName": "validateBreakpoint"
            }];
    }
}
//# sourceMappingURL=gov-spacer.js.map
