//#region src/components/pisellEmail/utils/emailHelper.ts
/**
* 提取邮箱域名
* @param email 邮箱地址
* @returns 域名部分
* 
* @example
* extractEmailDomain('user@example.com') // 'example.com'
*/
function extractEmailDomain(email) {
	const parts = email.split("@");
	return parts.length === 2 ? parts[1] : "";
}
/**
* 邮箱域名脱敏（partial 模式）
* 只显示本地部分的第一个字符，其余用 *** 替代
* 
* @param email 邮箱地址
* @returns 脱敏后的邮箱（u***@gmail.com）
* 
* @example
* hideEmailDomain('user@gmail.com') // 'u***@gmail.com'
*/
function hideEmailDomain(email) {
	if (!email || !email.includes("@")) return email;
	const [localPart, domainPart] = email.split("@");
	if (!localPart || !domainPart) return email;
	const visibleChars = Math.min(1, localPart.length);
	return `${localPart.substring(0, visibleChars) + "***"}@${domainPart}`;
}
/**
* 邮箱域名完全隐藏（full 模式）
* 隐藏整个域名部分
* 
* @param email 邮箱地址
* @returns 脱敏后的邮箱（user@***）
* 
* @example
* maskEmailDomain('user@gmail.com') // 'user@***'
*/
function maskEmailDomain(email) {
	if (!email || !email.includes("@")) return email;
	const [localPart] = email.split("@");
	return `${localPart}@***`;
}
/**
* 处理 mailto 点击，唤起邮件客户端
* 
* @param email 邮箱地址
* @param options mailto 可选参数（主题、正文、抄送等）
* 
* @example
* handleEmailClick('support@example.com', {
*   subject: '产品咨询',
*   body: '您好，我想咨询...'
* })
*/
function handleEmailClick(email, options) {
	if (!email) return;
	let mailtoUrl = `mailto:${email}`;
	const params = [];
	if (options === null || options === void 0 ? void 0 : options.subject) params.push(`subject=${encodeURIComponent(options.subject)}`);
	if (options === null || options === void 0 ? void 0 : options.body) params.push(`body=${encodeURIComponent(options.body)}`);
	if (options === null || options === void 0 ? void 0 : options.cc) params.push(`cc=${encodeURIComponent(options.cc)}`);
	if (options === null || options === void 0 ? void 0 : options.bcc) params.push(`bcc=${encodeURIComponent(options.bcc)}`);
	if (params.length > 0) mailtoUrl += "?" + params.join("&");
	window.location.href = mailtoUrl;
}
//#endregion
export { extractEmailDomain, handleEmailClick, hideEmailDomain, maskEmailDomain };
