UNPKG

5.28 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = void 0;
7
8var _metadata2 = _interopRequireDefault(require("./metadata"));
9
10var _isPossibleNumber_ = _interopRequireDefault(require("./isPossibleNumber_"));
11
12var _validate_ = _interopRequireDefault(require("./validate_"));
13
14var _isValidNumberForRegion_ = _interopRequireDefault(require("./isValidNumberForRegion_"));
15
16var _getNumberType = _interopRequireDefault(require("./helpers/getNumberType"));
17
18var _format_ = _interopRequireDefault(require("./format_"));
19
20function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
22function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
23
24function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
26function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
28function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29
30function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
32var USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;
33
34var PhoneNumber =
35/*#__PURE__*/
36function () {
37 function PhoneNumber(countryCallingCode, nationalNumber, metadata) {
38 _classCallCheck(this, PhoneNumber);
39
40 if (!countryCallingCode) {
41 throw new TypeError('`country` or `countryCallingCode` not passed');
42 }
43
44 if (!nationalNumber) {
45 throw new TypeError('`nationalNumber` not passed');
46 }
47
48 var _metadata = new _metadata2["default"](metadata); // If country code is passed then derive `countryCallingCode` from it.
49 // Also store the country code as `.country`.
50
51
52 if (isCountryCode(countryCallingCode)) {
53 this.country = countryCallingCode;
54
55 _metadata.country(countryCallingCode);
56
57 countryCallingCode = _metadata.countryCallingCode();
58 } else {
59 /* istanbul ignore if */
60 if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {
61 if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {
62 this.country = '001';
63 }
64 }
65 }
66
67 this.countryCallingCode = countryCallingCode;
68 this.nationalNumber = nationalNumber;
69 this.number = '+' + this.countryCallingCode + this.nationalNumber;
70 this.metadata = metadata;
71 }
72
73 _createClass(PhoneNumber, [{
74 key: "isPossible",
75 value: function isPossible() {
76 return (0, _isPossibleNumber_["default"])(this, {
77 v2: true
78 }, this.metadata);
79 }
80 }, {
81 key: "isValid",
82 value: function isValid() {
83 return (0, _validate_["default"])(this, {
84 v2: true
85 }, this.metadata);
86 }
87 }, {
88 key: "isNonGeographic",
89 value: function isNonGeographic() {
90 var metadata = new _metadata2["default"](this.metadata);
91 return metadata.isNonGeographicCallingCode(this.countryCallingCode);
92 }
93 }, {
94 key: "isEqual",
95 value: function isEqual(phoneNumber) {
96 return this.number === phoneNumber.number && this.ext === phoneNumber.ext;
97 } // // Is just an alias for `this.isValid() && this.country === country`.
98 // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion
99 // isValidForRegion(country) {
100 // return isValidNumberForRegion(this, country, { v2: true }, this.metadata)
101 // }
102
103 }, {
104 key: "getType",
105 value: function getType() {
106 return (0, _getNumberType["default"])(this, {
107 v2: true
108 }, this.metadata);
109 }
110 }, {
111 key: "format",
112 value: function format(_format, options) {
113 return (0, _format_["default"])(this, _format, options ? _objectSpread({}, options, {
114 v2: true
115 }) : {
116 v2: true
117 }, this.metadata);
118 }
119 }, {
120 key: "formatNational",
121 value: function formatNational(options) {
122 return this.format('NATIONAL', options);
123 }
124 }, {
125 key: "formatInternational",
126 value: function formatInternational(options) {
127 return this.format('INTERNATIONAL', options);
128 }
129 }, {
130 key: "getURI",
131 value: function getURI(options) {
132 return this.format('RFC3966', options);
133 }
134 }]);
135
136 return PhoneNumber;
137}();
138
139exports["default"] = PhoneNumber;
140
141var isCountryCode = function isCountryCode(value) {
142 return /^[A-Z]{2}$/.test(value);
143};
144//# sourceMappingURL=PhoneNumber.js.map
\No newline at end of file