const { Checkbox } = window.ACRFlowDesignSystem_ba1e9c;
const DIAS_SEMANA = [
{ n: 1, curto: "Seg", nome: "Segunda" },
{ n: 2, curto: "Ter", nome: "Terça" },
{ n: 3, curto: "Qua", nome: "Quarta" },
{ n: 4, curto: "Qui", nome: "Quinta" },
{ n: 5, curto: "Sex", nome: "Sexta" },
{ n: 6, curto: "Sáb", nome: "Sábado" },
{ n: 0, curto: "Dom", nome: "Domingo" },
];
const DIAS_UTEIS = [1, 2, 3, 4, 5];
/** Seletor de dias da semana. Fim de semana fica visualmente separado:
* não há expediente aos domingos e o sábado é exceção, não rotina. */
function SeletorDias({ valor = [], onChange, disabled }) {
const marcado = (n) => valor.includes(n);
const alternar = (n) => onChange(marcado(n) ? valor.filter((v) => v !== n) : [...valor, n].sort((a, b) => (a || 7) - (b || 7)));
const atalho = (dias) => onChange(dias);
return (
Dias da semana
{DIAS_SEMANA.map((d) => {
const fds = d.n === 0 || d.n === 6;
const on = marcado(d.n);
return (
{d.n === 6 ? : null}
);
})}
·
{valor.some((n) => n === 0 || n === 6) ? (
Inclui fim de semana — confirme se há expediente.
) : null}
);
}
/** Texto curto da recorrência, usado em etiquetas e resumos. */
function resumoRecorrencia(rec) {
if (!rec || !rec.type || rec.type === "none") return "";
const rot = { daily: "Diária", weekly: "Semanal", monthly: "Mensal", yearly: "Anual", custom: "Personalizada" };
const dias = Array.isArray(rec.days) ? rec.days : [];
let base = rot[rec.type] || "Recorrente";
if (dias.length) {
const uteis = dias.length === 5 && DIAS_UTEIS.every((n) => dias.includes(n));
base += " · " + (uteis ? "dias úteis" : dias.map((n) => (DIAS_SEMANA.find((d) => d.n === n) || {}).curto).filter(Boolean).join(", "));
} else if (rec.skipWeekend) base += " · dias úteis";
return base + " · " + (rec.time || "08:00");
}
Object.assign(window, { SeletorDias, DIAS_SEMANA, DIAS_UTEIS, resumoRecorrencia });