# CountryPhone(fw-country-phone)

fw-country-phone displays a country code selector & input element for entering phone Number

# Demo

Show Code

# Usage

<fw-country-phone
    value=""
    name="country-code"
    clear-input
    select-placeholder="select country code"
    input-placeholder="Enter phone number"
    required
    input-label="Support phone number"
    select-label="Country Code"
    error-text="Error message text"
    warning-text="Please use numbers for user ID"
    state="normal"
  ></fw-country-phone>
<fw-country-phone
    value="+919999999999"
    name="country-code"
    clear-input
    select-placeholder="select country code"
    input-placeholder="Enter phone number"
    required
    input-label="Support phone number"
    select-label="Country Code"
    error-text="Error message text"
    warning-text="Please use numbers for user ID"
    state="normal"
    style="--fw-select-width: 0 0 400px"
  ></fw-country-phone>
  <fw-country-phone
    value="+919999999999"
    name="country-code"
    clear-input
    select-placeholder="select country code"
    input-placeholder="Enter phone number"
    required
    input-label="Support phone number"
    select-label="Country Code"
    hint-text="select country code to get valid phonenumber"
    warning-text="Please use numbers for user ID"
    state="normal"
  ></fw-country-phone>
    <fw-country-phone
  value="+1264497275926449727599878978789798798789798798789787897987897897897878978978787897989878"
  name="country-code"
  clear-input
  select-placeholder="select country code"
  input-placeholder="Enter phone number"
  required
  input-label="Support phone number"
  select-label="Country Code"
  hint-text="Input hint text"
  warning-text="select country code to get valid phonenumber"
  state="warning"
></fw-country-phone>
  <fw-country-phone
  value="+1264497275926449727599878978789798798789798798789787897987897897897878978978787897989878"
  name="country-code"
  clear-input
  select-placeholder="select country code"
  input-placeholder="Enter phone number"
  required
  input-label="Support phone number"
  select-label="Country Code"
  hint-text="Input hint text"
  error-text="Invalid Country Phone Number"
  state="error"
></fw-country-phone>
import React from "react";
import ReactDOM from "react-dom";
import { FwCountryPhone } from "@freshworks/crayons/react";
function App() {
  return (<div>
      <FwCountryPhone
      value="+919999999999"
      name="country-code"
      clearInput
      selectPlaceholder="select country code"
      inputPlaceholder="Enter phone number"
      required
      inputLabel="Support phone number"
      selectLabel="Country Code"
      errorText="Error message text"
      warningText="Please use numbers for user ID"
      state="normal">
      </FwCountryPhone>
      <FwCountryPhone
      value="+919999999999"
      name="country-code"
      clearInput
      selectPlaceholder="select country code"
      inputPlaceholder="Enter phone number"
      required
      inputLabel="Support phone number"
      selectLabel="Country Code"
      hintText="select country code to get valid phonenumber"
      warningText="Please use numbers for user ID"
      state="normal">
      </FwCountryPhone>
      <FwCountryPhone
      value="+1264497275926449727599878978789798798789798798789787897987897897897878978978787897989878"
      name="country-code"
      clearInput
      selectPlaceholder="select country code"
      inputPlaceholder="Enter phone number"
      required
      inputLabel="Support phone number"
      selectLabel="Country Code"
      hintText="Input hint text"
      warningText="select country code to get valid phonenumber"
      state="warning"
      style={{"--fw-select-width": '0 0 300px'}}
      >
      </FwCountryPhone>
      <FwCountryPhone
      value="+1264497275926449727599878978789798798789798798789787897987897897897878978978787897989878"
      name="country-code"
      clearInput
      selectPlaceholder="select country code"
      inputPlaceholder="Enter phone number"
      required
      inputLabel="Support phone number"
      selectLabel="Country Code"
      hintText="Input hint text"
      errorText="Invalid Country Phone Number"
      state="error">
      </FwCountryPhone>
 </div>);

# Properties

Property Attribute Description Type Default
clearInput clear-input Displays a right-justified clear icon in the text box. Clicking the icon clears the input text. If the attribute’s value is undefined, the value is set to false. For a read-only input box, the clear icon is not displayed unless a default value is specified for the input box. boolean false
disabled disabled Disables the component on the interface. If the attribute’s value is undefined, the value is set to false. boolean false
errorText error-text Error text displayed below the text box. string ''
hideCountryFlag hide-country-flag Hide Country Flag in the Country Select boolean false
hideCountryName hide-country-name Hide Country Name in the Country Select boolean false
hintText hint-text Hint text displayed below the text box. string ''
inputLabel input-label * Label displayed on the interface, for the input component. string undefined
inputPlaceholder input-placeholder Text displayed in the text box before a user enters a value. string undefined
name name Name of the component, saved as part of form data. string ''
readonly readonly If true, the user cannot enter a value in the input box. If the attribute’s value is undefined, the value is set to false. boolean false
required required Specifies the input box as a mandatory field and displays an asterisk next to the label. If the attribute’s value is undefined, the value is set to false. boolean false
selectLabel select-label * Label displayed on the interface, for the input component. string undefined
selectPlaceholder select-placeholder Text displayed in the text box before a user enters a value. string undefined
state state Theme based on which the text box is styled. "error" \| "normal" \| "warning" 'normal'
value value Default value displayed in the input box & select dropdown after extracting valid phone number string ''
warningText warning-text Warning text displayed below the text box. string ''

# Events

Event Description Type
fwBlur Triggered when phone element is blur. CustomEvent<any>
fwFocus Triggered when input is focused. CustomEvent<any>
fwInput Triggered when phone element is input. CustomEvent<any>
fwInputClear Triggered when clear icon is clicked. CustomEvent<any>

# Methods

# isValidPhoneNumber(value: string, countryCode: CountryCode) => Promise<boolean>

Checks PhoneNumber is Valid or Not

# Returns

Type: Promise<boolean>

after validation PhoneNumber with countryCode

# parsePhoneNumber(...args: any[]) => Promise<any>

Validates PhoneNumber provided and return extra details

# Returns

Type: Promise<any>

{countryCode, countryCallingCode, nationalNumber, number, metadata }

# CSS Custom Properties

Name Description
--fw-select-width Adjust country code select dropdown width

# Dependencies

# Depends on

# Graph

graph TD;
  fw-country-phone --> fw-select
  fw-country-phone --> fw-select-option
  fw-country-phone --> fw-input
  fw-select --> fw-tag
  fw-select --> fw-popover
  fw-select --> fw-button
  fw-select --> fw-spinner
  fw-select --> fw-icon
  fw-select --> fw-list-options
  fw-tag --> fw-tooltip
  fw-tag --> fw-avatar
  fw-tag --> fw-icon
  fw-tooltip --> fw-popover
  fw-button --> fw-spinner
  fw-button --> fw-icon
  fw-list-options --> fw-select-option
  fw-list-options --> fw-input
  fw-select-option --> fw-icon
  fw-select-option --> fw-checkbox
  fw-select-option --> fw-avatar
  fw-checkbox --> fw-icon
  fw-input --> fw-icon
  style fw-country-phone fill:#f9f,stroke:#333,stroke-width:4px

Built with ❤ at Freshworks