@stripe/stripe-js
Version:
Stripe.js loading utility
380 lines (359 loc) • 7.11 kB
TypeScript
import {StripeElementBase} from './base';
import {StripeError} from '../stripe';
export type StripeTaxIdElement = StripeElementBase & {
/**
* The change event is triggered when the `Element`'s value changes.
*/
on(
eventType: 'change',
handler: (event: StripeTaxIdElementChangeEvent) => any
): StripeTaxIdElement;
once(
eventType: 'change',
handler: (event: StripeTaxIdElementChangeEvent) => any
): StripeTaxIdElement;
off(
eventType: 'change',
handler?: (event: StripeTaxIdElementChangeEvent) => any
): StripeTaxIdElement;
/**
* Triggered when the element is fully rendered and can accept `element.focus` calls.
*/
on(
eventType: 'ready',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
once(
eventType: 'ready',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
off(
eventType: 'ready',
handler?: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
/**
* Triggered when the element gains focus.
*/
on(
eventType: 'focus',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
once(
eventType: 'focus',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
off(
eventType: 'focus',
handler?: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
/**
* Triggered when the element loses focus.
*/
on(
eventType: 'blur',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
once(
eventType: 'blur',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
off(
eventType: 'blur',
handler?: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
/**
* Triggered when the escape key is pressed within the element.
*/
on(
eventType: 'escape',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
once(
eventType: 'escape',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
off(
eventType: 'escape',
handler?: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
/**
* Triggered when the element fails to load.
*/
on(
eventType: 'loaderror',
handler: (event: {elementType: 'taxId'; error: StripeError}) => any
): StripeTaxIdElement;
once(
eventType: 'loaderror',
handler: (event: {elementType: 'taxId'; error: StripeError}) => any
): StripeTaxIdElement;
off(
eventType: 'loaderror',
handler?: (event: {elementType: 'taxId'; error: StripeError}) => any
): StripeTaxIdElement;
/**
* Triggered when the loader UI is mounted to the DOM and ready to be displayed.
*/
on(
eventType: 'loaderstart',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
once(
eventType: 'loaderstart',
handler: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
off(
eventType: 'loaderstart',
handler?: (event: {elementType: 'taxId'}) => any
): StripeTaxIdElement;
/**
* Updates the options the `TaxIdElement` was initialized with.
* Updates are merged into the existing configuration.
*/
update(options: Partial<StripeTaxIdElementOptions>): StripeTaxIdElement;
/**
* Validates and retrieves form values from the `AddressElement`.
*/
getValue(): Promise<StripeTaxIdElementChangeEvent>;
};
export type TaxIdType =
| 'al_tin'
| 'am_tin'
| 'ao_tin'
| 'at_vat'
| 'ba_tin'
| 'bb_tin'
| 'be_vat'
| 'bg_vat'
| 'bs_tin'
| 'cd_nif'
| 'cl_tin'
| 'tr_tin'
| 'cy_vat'
| 'cz_vat'
| 'de_vat'
| 'dk_vat'
| 'ee_vat'
| 'es_vat'
| 'fi_vat'
| 'fr_vat'
| 'gn_nif'
| 'gr_vat'
| 'hr_vat'
| 'th_vat'
| 'ie_vat'
| 'it_vat'
| 'kh_tin'
| 'lt_vat'
| 'lu_vat'
| 'lv_vat'
| 'me_pib'
| 'mk_vat'
| 'mr_nif'
| 'mt_vat'
| 'nl_vat'
| 'np_pan'
| 'pe_ruc'
| 'pl_vat'
| 'pt_vat'
| 'ro_vat'
| 'se_vat'
| 'sa_vat'
| 'si_vat'
| 'sk_vat'
| 'sn_ninea'
| 'sr_fin'
| 'tj_tin'
| 'ug_tin'
| 'uy_ruc'
| 'xi_vat'
| 'zm_tin'
| 'zw_tin'
| 'gb_vat'
| 'nz_gst'
| 'au_abn'
| 'no_vat'
| 'ch_vat'
| 'mx_rfc'
| 'hu_vat'
| 'ca_bn'
| 'ca_qst'
| 'ca_gst_hst'
| 'ca_pst_bc'
| 'ca_pst_mb'
| 'ca_pst_sk'
| 'sg_gst'
| 'za_vat'
| 'ru_inn'
| 'ru_kpp'
| 'ae_trn'
| 'is_vat'
| 'in_gst'
| 'kr_brn'
| 'es_cif'
| 'bh_vat'
| 'kz_bin'
| 'ng_tin'
| 'om_vat'
| 'ge_vat'
| 'ke_pin'
| 'eg_tin'
| 'tw_vat'
| 'ua_vat'
| 'ec_ruc'
| 'cr_tin'
| 'tz_vat'
| 'rs_pib'
| 'uz_vat'
| 'uz_tin'
| 'md_vat'
| 'ma_vat'
| 'by_tin'
| 'li_vat'
| 'aw_tin'
| 'az_tin'
| 'bd_bin'
| 'bj_ifu'
| 'et_tin'
| 'kg_tin'
| 'la_tin'
| 'cm_niu'
| 'cv_nif'
| 'bf_ifu'
| 'ph_tin';
export type ExternalTaxIdType =
| 'eu_vat'
| 'al_tin'
| 'am_tin'
| 'ao_tin'
| 'ba_tin'
| 'bb_tin'
| 'bs_tin'
| 'cd_nif'
| 'cl_tin'
| 'tr_tin'
| 'th_vat'
| 'gn_nif'
| 'kh_tin'
| 'me_pib'
| 'mk_vat'
| 'mr_nif'
| 'np_pan'
| 'pe_ruc'
| 'sa_vat'
| 'sn_ninea'
| 'sr_fin'
| 'tj_tin'
| 'ug_tin'
| 'uy_ruc'
| 'zm_tin'
| 'zw_tin'
| 'gb_vat'
| 'nz_gst'
| 'au_abn'
| 'no_vat'
| 'ch_vat'
| 'mx_rfc'
| 'ca_bn'
| 'ca_qst'
| 'ca_gst_hst'
| 'ca_pst_bc'
| 'ca_pst_mb'
| 'ca_pst_sk'
| 'sg_gst'
| 'za_vat'
| 'ru_inn'
| 'ru_kpp'
| 'ae_trn'
| 'is_vat'
| 'in_gst'
| 'kr_brn'
| 'es_cif'
| 'bh_vat'
| 'kz_bin'
| 'ng_tin'
| 'om_vat'
| 'ge_vat'
| 'ke_pin'
| 'eg_tin'
| 'tw_vat'
| 'ua_vat'
| 'ec_ruc'
| 'cr_tin'
| 'tz_vat'
| 'rs_pib'
| 'uz_vat'
| 'uz_tin'
| 'md_vat'
| 'ma_vat'
| 'by_tin'
| 'li_vat'
| 'aw_tin'
| 'az_tin'
| 'bd_bin'
| 'bj_ifu'
| 'et_tin'
| 'kg_tin'
| 'la_tin'
| 'cm_niu'
| 'cv_nif'
| 'bf_ifu'
| 'ph_tin';
export interface StripeTaxIdElementOptions {
/**
* Control visibility of the TaxIdElement.
*/
visibility?: 'always' | 'never' | 'auto';
/**
* Control which fields to display in the TaxIdElement.
*/
fields?: {
businessName?: 'always' | 'never' | 'auto';
};
/**
* Specify validation rules for the given fields.
*/
validation?: {
businessName?: {
required?: 'always' | 'never' | 'auto';
};
taxId?: {
required?: 'always' | 'never' | 'auto';
};
};
/**
* Default value for TaxIdElement fields
*/
defaultValues?: {
businessName?: string;
taxIdType?: TaxIdType;
taxId?: string;
};
}
export interface StripeTaxIdElementChangeEvent {
/**
* The type of element that emitted this event.
*/
elementType: 'taxId';
/**
* Whether or not the TaxIdElement is currently empty.
*/
empty: boolean;
/**
* Whether or not the TaxIdElement is complete.
*/
complete: boolean;
/**
* Whether or not the TaxIdElement is visible.
*/
visible: boolean;
/**
* An object containing the current tax id information.
*/
value: {
businessName: string;
taxId: string;
taxIdType: TaxIdType;
externalTaxIdType: ExternalTaxIdType;
};
}