import { h, Host } from "@stencil/core";
import { LayoutClass } from "./constants";
import { govHost } from "../../helpers/Dom/template";
export class GovLayout {
    constructor() {
        /**
         * Layout type
         */
        this.type = 'stretch';
        /**
         * Determine if component should have inverse column order
         */
        this.inverse = false;
        this.h = govHost(this.host);
    }
    typeClass(originalClass, type, variant, inverse) {
        const isType = type ? '-' + type : '';
        const isVariant = variant ? '-' + variant : '';
        const isInverse = inverse ? '-inverse' : '';
        return originalClass + ' ' + originalClass + isType + isVariant + isInverse;
    }
    render() {
        return (h(Host, { key: '1a034fd2efc16f8ec93aa5a7d482b30674b14cc4', type: this.type, class: this.h.classes(LayoutClass.root) }, h("section", { key: 'af904b136b68d778d5c687e654a4172a8c08fc92', class: this.typeClass(LayoutClass.section, this.type, this.variant, this.inverse) }, h("slot", { key: 'b867248fdb072fc3999406d6113bdc435cce78fc' }))));
    }
    static get is() { return "gov-layout"; }
    static get properties() {
        return {
            "type": {
                "type": "string",
                "attribute": "type",
                "mutable": false,
                "complexType": {
                    "original": "LayoutType",
                    "resolved": "\"aside\" | \"stretch\" | \"text\"",
                    "references": {
                        "LayoutType": {
                            "location": "import",
                            "path": "./constants",
                            "id": "../../../packages/core/src/components/gov-layout/constants.ts::LayoutType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Layout type"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "'stretch'"
            },
            "variant": {
                "type": "string",
                "attribute": "variant",
                "mutable": false,
                "complexType": {
                    "original": "LayoutVariantType",
                    "resolved": "\"left\" | \"right\"",
                    "references": {
                        "LayoutVariantType": {
                            "location": "import",
                            "path": "./constants",
                            "id": "../../../packages/core/src/components/gov-layout/constants.ts::LayoutVariantType"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Layout align"
                },
                "getter": false,
                "setter": false,
                "reflect": false
            },
            "inverse": {
                "type": "boolean",
                "attribute": "inverse",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Determine if component should have inverse column order"
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "false"
            }
        };
    }
    static get elementRef() { return "host"; }
}
//# sourceMappingURL=gov-layout.js.map
