react-native-phone-input
Version:
Phone input box for React Native
44 lines • 5.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
class Country {
constructor() {
this.countryCodes = [];
this.countriesData = null;
}
setCustomCountriesData(json) {
this.countriesData = json;
}
addCountryCode(iso2, dialCode, priority) {
if (!(dialCode in this.countryCodes)) {
this.countryCodes[dialCode] = [];
}
const index = priority || 0;
this.countryCodes[dialCode][index] = iso2;
}
getAll() {
if (!this.countries) {
this.countries = (0, lodash_1.orderBy)(this.countriesData || require('./resources/countries.json'), // eslint-disable-line global-require
['name'], ['asc']);
}
return this.countries;
}
getCountryCodes() {
if (!this.countryCodes.length) {
this.getAll().forEach((country) => {
this.addCountryCode(country.iso2, country.dialCode, country.priority);
if (country.areaCodes) {
country.areaCodes.forEach((areaCode) => {
this.addCountryCode(country.iso2, country.dialCode + areaCode);
});
}
});
}
return this.countryCodes;
}
getCountryDataByCode(iso2) {
return (0, lodash_1.find)(this.getAll(), (country) => country.iso2 === iso2);
}
}
exports.default = new Country();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3VudHJ5LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUF1QztBQUV2QyxNQUFNLE9BQU87SUFPVDtRQUNJLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFJO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQWdCLEVBQUUsUUFBUztRQUM1QyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ3BDO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBQSxnQkFBTyxFQUNwQixJQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLHFDQUFxQztZQUNsRyxDQUFDLE1BQU0sQ0FBQyxFQUNSLENBQUMsS0FBSyxDQUFDLENBQ1YsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7b0JBQ25CLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDO29CQUNuRSxDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQUk7UUFDckIsT0FBTyxJQUFBLGFBQUksRUFBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNKO0FBRUQsa0JBQWUsSUFBSSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbmQsIG9yZGVyQnkgfSBmcm9tICdsb2Rhc2gnO1xuXG5jbGFzcyBDb3VudHJ5IHtcbiAgICBwcml2YXRlIGNvdW50cnlDb2RlczogYW55W107XG5cbiAgICBwcml2YXRlIGNvdW50cmllc0RhdGE6IGFueTtcblxuICAgIHByaXZhdGUgY291bnRyaWVzOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb3VudHJ5Q29kZXMgPSBbXTtcblxuICAgICAgICB0aGlzLmNvdW50cmllc0RhdGEgPSBudWxsO1xuICAgIH1cblxuICAgIHNldEN1c3RvbUNvdW50cmllc0RhdGEoanNvbikge1xuICAgICAgICB0aGlzLmNvdW50cmllc0RhdGEgPSBqc29uO1xuICAgIH1cblxuICAgIGFkZENvdW50cnlDb2RlKGlzbzIsIGRpYWxDb2RlOiBzdHJpbmcsIHByaW9yaXR5Pykge1xuICAgICAgICBpZiAoIShkaWFsQ29kZSBpbiB0aGlzLmNvdW50cnlDb2RlcykpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGVzW2RpYWxDb2RlXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5kZXggPSBwcmlvcml0eSB8fCAwO1xuICAgICAgICB0aGlzLmNvdW50cnlDb2Rlc1tkaWFsQ29kZV1baW5kZXhdID0gaXNvMjtcbiAgICB9XG5cbiAgICBnZXRBbGwoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb3VudHJpZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY291bnRyaWVzID0gb3JkZXJCeShcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50cmllc0RhdGEgfHwgcmVxdWlyZSgnLi9yZXNvdXJjZXMvY291bnRyaWVzLmpzb24nKSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBnbG9iYWwtcmVxdWlyZVxuICAgICAgICAgICAgICAgIFsnbmFtZSddLFxuICAgICAgICAgICAgICAgIFsnYXNjJ10sXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzO1xuICAgIH1cblxuICAgIGdldENvdW50cnlDb2RlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvdW50cnlDb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsKCkuZm9yRWFjaCgoY291bnRyeSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQ291bnRyeUNvZGUoY291bnRyeS5pc28yLCBjb3VudHJ5LmRpYWxDb2RlLCBjb3VudHJ5LnByaW9yaXR5KTtcbiAgICAgICAgICAgICAgICBpZiAoY291bnRyeS5hcmVhQ29kZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnRyeS5hcmVhQ29kZXMuZm9yRWFjaCgoYXJlYUNvZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkQ291bnRyeUNvZGUoY291bnRyeS5pc28yLCBjb3VudHJ5LmRpYWxDb2RlICsgYXJlYUNvZGUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb3VudHJ5Q29kZXM7XG4gICAgfVxuXG4gICAgZ2V0Q291bnRyeURhdGFCeUNvZGUoaXNvMikge1xuICAgICAgICByZXR1cm4gZmluZCh0aGlzLmdldEFsbCgpLCAoY291bnRyeSkgPT4gY291bnRyeS5pc28yID09PSBpc28yKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBDb3VudHJ5KCk7XG4iXX0=