/** * Экранирует текст перед вставкой в HTML-шаблон, собираемый через innerHTML. * * @param {*} value Имя файла, путь или сообщение статуса. * @returns {string} Строка с заменёнными HTML-значимыми символами. * * Экранируются и кавычки, потому что значение может попасть не только в текст * кнопки, но и в HTML-атрибут вроде data-path или aria-label. */ export function esc(value) { return String(value).replace(/[&<>"']/g, (character) => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', }[character])); }