const require_rolldown_runtime = require('../../../../../../../_virtual/rolldown_runtime.js');
const require_isViablePhoneNumber$1 = require('./isViablePhoneNumber.js');

//#region ../../node_modules/.pnpm/libphonenumber-js@1.11.3/node_modules/libphonenumber-js/build/helpers/RFC3966.js
var require_RFC3966 = /* @__PURE__ */ require_rolldown_runtime.__commonJS({ "../../node_modules/.pnpm/libphonenumber-js@1.11.3/node_modules/libphonenumber-js/build/helpers/RFC3966.js": ((exports) => {
	Object.defineProperty(exports, "__esModule", { value: true });
	exports.formatRFC3966 = formatRFC3966;
	exports.parseRFC3966 = parseRFC3966;
	var _isViablePhoneNumber = _interopRequireDefault(require_isViablePhoneNumber$1.require_isViablePhoneNumber());
	function _interopRequireDefault(obj) {
		return obj && obj.__esModule ? obj : { "default": obj };
	}
	function _slicedToArray(arr, i) {
		return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
	}
	function _nonIterableRest() {
		throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
	}
	function _iterableToArrayLimit(arr, i) {
		var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
		if (_i == null) return;
		var _arr = [];
		var _n = true;
		var _d = false;
		var _s, _e;
		try {
			for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
				_arr.push(_s.value);
				if (i && _arr.length === i) break;
			}
		} catch (err) {
			_d = true;
			_e = err;
		} finally {
			try {
				if (!_n && _i["return"] != null) _i["return"]();
			} finally {
				if (_d) throw _e;
			}
		}
		return _arr;
	}
	function _arrayWithHoles(arr) {
		if (Array.isArray(arr)) return arr;
	}
	function _createForOfIteratorHelperLoose(o, allowArrayLike) {
		var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
		if (it) return (it = it.call(o)).next.bind(it);
		if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
			if (it) o = it;
			var i = 0;
			return function() {
				if (i >= o.length) return { done: true };
				return {
					done: false,
					value: o[i++]
				};
			};
		}
		throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
	}
	function _unsupportedIterableToArray(o, minLen) {
		if (!o) return;
		if (typeof o === "string") return _arrayLikeToArray(o, minLen);
		var n = Object.prototype.toString.call(o).slice(8, -1);
		if (n === "Object" && o.constructor) n = o.constructor.name;
		if (n === "Map" || n === "Set") return Array.from(o);
		if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
	}
	function _arrayLikeToArray(arr, len) {
		if (len == null || len > arr.length) len = arr.length;
		for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
		return arr2;
	}
	/**
	* @param  {string} text - Phone URI (RFC 3966).
	* @return {object} `{ ?number, ?ext }`.
	*/
	function parseRFC3966(text) {
		var number;
		var ext;
		text = text.replace(/^tel:/, "tel=");
		for (var _iterator = _createForOfIteratorHelperLoose(text.split(";")), _step; !(_step = _iterator()).done;) {
			var _part$split2 = _slicedToArray(_step.value.split("="), 2), name = _part$split2[0], value = _part$split2[1];
			switch (name) {
				case "tel":
					number = value;
					break;
				case "ext":
					ext = value;
					break;
				case "phone-context":
					if (value[0] === "+") number = value + number;
					break;
			}
		}
		if (!(0, _isViablePhoneNumber["default"])(number)) return {};
		var result = { number };
		if (ext) result.ext = ext;
		return result;
	}
	/**
	* @param  {object} - `{ ?number, ?extension }`.
	* @return {string} Phone URI (RFC 3966).
	*/
	function formatRFC3966(_ref) {
		var number = _ref.number, ext = _ref.ext;
		if (!number) return "";
		if (number[0] !== "+") throw new Error("\"formatRFC3966()\" expects \"number\" to be in E.164 format.");
		return "tel:".concat(number).concat(ext ? ";ext=" + ext : "");
	}
}) });

//#endregion
Object.defineProperty(exports, 'default', {
  enumerable: true,
  get: function () {
    return require_RFC3966();
  }
});