/*!
 * KoliBri - The accessible HTML-Standard
 */
import { h, Host } from "@stencil/core";
import { BaseWebComponent } from "../../internal/functional-components/base-web-component";
import { HeadingFC } from "../../internal/functional-components/heading/component";
import { HeadingController } from "../../internal/functional-components/heading/controller";
export class KolHeading {
    constructor() {
        this.ctrl = new HeadingController(BaseWebComponent.stateLess);
        this._level = 0;
    }
    watchLabel(value) {
        this.ctrl.watchLabel(value);
    }
    watchLevel(value) {
        this.ctrl.watchLevel(value);
    }
    watchSecondaryHeadline(value) {
        this.ctrl.watchSecondaryHeadline(value);
    }
    componentWillLoad() {
        this.ctrl.componentWillLoad({
            label: this._label,
            level: this._level,
            secondaryHeadline: this._secondaryHeadline,
        });
    }
    render() {
        return (h(Host, { key: '5879d577d6dfb5d0716b5f201a9b9a094f4b36e9' }, h(HeadingFC, { key: '85896384df9a2a200e7a196ec3d52a5282da0639', label: this.ctrl.getRenderProp('label'), level: this.ctrl.getRenderProp('level'), secondaryHeadline: this.ctrl.getRenderProp('secondaryHeadline') })));
    }
    static get is() { return "kol-heading"; }
    static get encapsulation() { return "shadow"; }
    static get originalStyleUrls() {
        return {
            "default": ["./style.scss"]
        };
    }
    static get styleUrls() {
        return {
            "default": ["style.css"]
        };
    }
    static get properties() {
        return {
            "_label": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "LabelWithExpertSlotPropType",
                    "resolved": "string",
                    "references": {
                        "LabelWithExpertSlotPropType": {
                            "location": "import",
                            "path": "../../schema",
                            "id": "src/schema/index.ts::LabelWithExpertSlotPropType"
                        }
                    }
                },
                "required": true,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": "Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "_label"
            },
            "_level": {
                "type": "number",
                "mutable": false,
                "complexType": {
                    "original": "HeadingLevel",
                    "resolved": "0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined",
                    "references": {
                        "HeadingLevel": {
                            "location": "import",
                            "path": "../../schema",
                            "id": "src/schema/index.ts::HeadingLevel"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Defines which H-level from 1-6 the heading has. 0 specifies no heading and is shown as bold text."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "_level",
                "defaultValue": "0"
            },
            "_secondaryHeadline": {
                "type": "string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string | undefined",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": "Defines the text of the secondary headline."
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "attribute": "_secondary-headline"
            }
        };
    }
    static get watchers() {
        return [{
                "propName": "_label",
                "methodName": "watchLabel"
            }, {
                "propName": "_level",
                "methodName": "watchLevel"
            }, {
                "propName": "_secondaryHeadline",
                "methodName": "watchSecondaryHeadline"
            }];
    }
}
//# sourceMappingURL=component.js.map
