{
  "properties": [
    {
      "name": "value",
      "type": "null",
      "description": "Default Phone Number"
    },
    {
      "name": "label",
      "type": "String",
      "description": "Label of Phone Number"
    },
    {
      "name": "placeholder",
      "type": "String",
      "description": "Placeholder"
    },
    {
      "name": "disabled",
      "type": "Boolean",
      "description": "Enable or Disable of dropdown"
    },
    {
      "name": "disabledFormatting",
      "type": "Boolean",
      "description": "Disable the format of phone number"
    },
    {
      "name": "invalidMsg",
      "type": "String",
      "description": "Message that can be displayed when the phone number is invalid"
    },
    {
      "name": "required",
      "type": "Boolean",
      "description": "required props"
    },
    {
      "name": "defaultCountry",
      "type": "String",
      "description": "Default country"
    },
    {
      "name": "enabledCountryCode",
      "type": "Boolean",
      "description": "Show country code next to the flag"
    },
    {
      "name": "enabledFlags",
      "type": "Boolean",
      "description": "Show flags at the top of the dropdown"
    },
    {
      "name": "preferredCountries",
      "type": "Array",
      "description": "Array of countries that can be at top of the list"
    },
    {
      "name": "onlyCountries",
      "type": "Array",
      "description": "Display only the countrie in Array"
    },
    {
      "name": "ignoredCountries",
      "type": "Array",
      "description": "Remove countries in this Array"
    },
    {
      "name": "autocomplete",
      "type": "String",
      "description": "Complete the Phone Number automatically based on history"
    },
    {
      "name": "name",
      "type": "String",
      "description": "Name of input field"
    },
    {
      "name": "inputClasses",
      "type": "String",
      "description": "Classes of input field"
    },
    {
      "name": "dropdownOptions",
      "type": "Object",
      "description": "Options which can be at the items of dropdown list"
    },
    {
      "name": "inputOptions",
      "type": "Object",
      "description": "Options which can be inputted from Input field"
    },
    {
      "name": "maxLen",
      "type": "Number",
      "description": "Max length of inputted numbers"
    },
    {
      "name": "showValidations",
      "type": "Boolean",
      "default": "true",
      "description": "Responsible for showing valid backlight"
    },
    {
      "name": "width",
      "type": "String",
      "description": "Setup the width"
    },
    {
      "name": "listHeight",
      "type": "String",
      "description": "Setup the height of country codes list"
    },
    {
      "name": "validators",
      "type": "Array<Object>",
      "description": " Array of validator Objects. When multiple validators fail, only one error is displayed, determined by their order in the array. Each Object should have three fields:",
      "subProperty": [
        {
          "name": "name",
          "type": "String",
          "description": "Validator id"
        },
        {
          "name": "message",
          "type": "String",
          "description": "Error message that shown when validation fails"
        },
        {
          "name": "validator",
          "type": "Function",
          "description": " Function that takes input value as an argument and returns Boolean"
        }
      ]
    },
    {
      "name": "referenceModel",
      "type": "null",
      "description": "Provided value for validation purpose like equality models of Input component and any other model"
    }
  ],
  "events": [
    {
      "name": "onInput({ number, isValid, country })",
      "description": "Emitted when the input value changes"
    },
    {
      "name": "validation",
      "description": "Emitted when the input value changes."
    }
  ]
}
