import { h, Host } from '@stencil/core';
export class BdsTabItem {
  constructor() {
    this.numberElement = null;
    this.label = null;
    this.disable = false;
    this.open = false;
    this.dataTest = null;
  }
  async reciveNumber(number) {
    this.numberElement = number;
  }
  disableChanged() {
    this.tabDisabled.emit({ item: this.numberElement, disable: this.disable });
  }
  render() {
    return (h(Host, { class: { [`is-open`]: this.disable === true ? false : this.open } }, h("div", { class: { tab_item: true }, "data-test": this.dataTest }, h("div", { class: { tab_item_content: true, [`tab_item_content--open`]: this.open } }, h("slot", null)))));
  }
  static get is() { return "bds-tab-item"; }
  static get encapsulation() { return "shadow"; }
  static get originalStyleUrls() {
    return {
      "$": ["tab-item.scss"]
    };
  }
  static get styleUrls() {
    return {
      "$": ["tab-item.css"]
    };
  }
  static get properties() {
    return {
      "numberElement": {
        "type": "number",
        "mutable": true,
        "complexType": {
          "original": "number",
          "resolved": "number",
          "references": {}
        },
        "required": false,
        "optional": true,
        "docs": {
          "tags": [],
          "text": "Use to set number of tabItem."
        },
        "attribute": "number-element",
        "reflect": true,
        "defaultValue": "null"
      },
      "label": {
        "type": "string",
        "mutable": false,
        "complexType": {
          "original": "string",
          "resolved": "string",
          "references": {}
        },
        "required": false,
        "optional": true,
        "docs": {
          "tags": [],
          "text": "The text to be shown at the Tab item."
        },
        "attribute": "label",
        "reflect": false,
        "defaultValue": "null"
      },
      "disable": {
        "type": "boolean",
        "mutable": true,
        "complexType": {
          "original": "boolean",
          "resolved": "boolean",
          "references": {}
        },
        "required": false,
        "optional": true,
        "docs": {
          "tags": [],
          "text": "Prop for disable the especific tab."
        },
        "attribute": "disable",
        "reflect": true,
        "defaultValue": "false"
      },
      "open": {
        "type": "boolean",
        "mutable": true,
        "complexType": {
          "original": "boolean",
          "resolved": "boolean",
          "references": {}
        },
        "required": false,
        "optional": true,
        "docs": {
          "tags": [],
          "text": "Used to open/close the Tab item."
        },
        "attribute": "open",
        "reflect": true,
        "defaultValue": "false"
      },
      "dataTest": {
        "type": "string",
        "mutable": false,
        "complexType": {
          "original": "string",
          "resolved": "string",
          "references": {}
        },
        "required": false,
        "optional": true,
        "docs": {
          "tags": [],
          "text": "Data test is the prop to specifically test the component action object."
        },
        "attribute": "data-test",
        "reflect": false,
        "defaultValue": "null"
      }
    };
  }
  static get events() {
    return [{
        "method": "tabDisabled",
        "name": "tabDisabled",
        "bubbles": true,
        "cancelable": true,
        "composed": true,
        "docs": {
          "tags": [],
          "text": ""
        },
        "complexType": {
          "original": "any",
          "resolved": "any",
          "references": {}
        }
      }];
  }
  static get methods() {
    return {
      "reciveNumber": {
        "complexType": {
          "signature": "(number: any) => Promise<void>",
          "parameters": [{
              "tags": [],
              "text": ""
            }],
          "references": {
            "Promise": {
              "location": "global"
            }
          },
          "return": "Promise<void>"
        },
        "docs": {
          "text": "",
          "tags": []
        }
      }
    };
  }
  static get watchers() {
    return [{
        "propName": "disable",
        "methodName": "disableChanged"
      }];
  }
}
