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 });