/** * Danh sách icon Font Awesome cho admin (dropdown) — tránh để user gõ class tự do. * Giá trị lưu DB/API phải khớp một trong các `value` bên dưới (hoặc được map về default). */ const ICON_OPTIONS = [ { value: "fa-solid fa-compass", label: "Compass (solid)" }, { value: "fa-solid fa-language", label: "Language (solid)" }, { value: "fa-solid fa-briefcase", label: "Briefcase (solid)" }, { value: "fa-solid fa-laptop-code", label: "Laptop code (solid)" }, { value: "fa-solid fa-universal-access", label: "Universal access (solid)" }, { value: "fa-solid fa-users", label: "Users (solid)" }, { value: "fa-solid fa-phone", label: "Phone (solid)" }, { value: "fa-solid fa-envelope", label: "Envelope (solid)" }, { value: "fa-solid fa-comments", label: "Comments (solid)" }, { value: "fa-solid fa-globe", label: "Globe (solid)" }, { value: "fa-regular fa-clock", label: "Clock (regular)" }, { value: "fa-solid fa-clock", label: "Clock (solid)" }, { value: "fa-solid fa-lightbulb", label: "Lightbulb (solid)" }, { value: "fa-solid fa-circle-info", label: "Info (solid)" }, { value: "fa-solid fa-headset", label: "Headset (solid)" }, { value: "fa-solid fa-book", label: "Book (solid)" }, { value: "fa-solid fa-graduation-cap", label: "Graduation cap (solid)" }, { value: "fa-solid fa-handshake", label: "Handshake (solid)" }, { value: "fa-solid fa-piggy-bank", label: "Piggy bank (solid)" }, { value: "fa-solid fa-certificate", label: "Certificate (solid)" }, { value: "fa-regular fa-envelope", label: "Envelope (regular)" }, { value: "fa-solid fa-map-location-dot", label: "Map location dot (solid)" }, { value: "fa-solid fa-map-marker-alt", label: "Map marker (solid)" }, { value: "fa-solid fa-location-dot", label: "Location dot (solid)" }, { value: "fa-solid fa-fax", label: "Fax (solid)" }, { value: "fa-solid fa-mobile-alt", label: "Mobile (solid)" }, { value: "fa-solid fa-building", label: "Building (solid)" }, ]; const ALLOWED = new Set(ICON_OPTIONS.map((o) => o.value)); function normalizeIconClass(value, fallback = "fa-solid fa-circle-info") { if (!value || typeof value !== "string") return fallback; const trimmed = value.trim(); if (ALLOWED.has(trimmed)) return trimmed; return fallback; } module.exports = { ICON_OPTIONS, normalizeIconClass, };