@tmf/agenda-front (0.2.0-rc.1)
Installation
@tmf:registry=npm install @tmf/agenda-front@0.2.0-rc.1"@tmf/agenda-front": "0.2.0-rc.1"About this package
@tmf/agenda-front
Front da agenda da plataforma TMF (RN-AGD-34/37 da
spec-agenda-lib.md): o <AgendaApp> com as
visões dia, semana e lista, o modal de criação com a grade de horários livres, o detalhe do evento
com remarcação, transição de status, assunção de pedido, histórico e exclusão lógica, a regra de recorrência e as ocorrências, o evento de
dia inteiro, os bloqueios (leitura na grade e <BlockEditor>) do recurso (somente leitura), os editores de
escala, expediente e parâmetros do tenant, e o
widget embutível <RequestAppointment> (pedido com ou sem recurso, com janelas de preferência).
Fala com o tmf-agenda-back (packages/agenda/back).
⚠️ 0.1.0, não publicado. O contrato está alinhado a
feat/TMFP-70545-agenda-serie-ocupante@46ce8233, que ainda não está na develop. Não publicar versão antes do back. Detalhes em INTEGRATION.md.
Uso
import { AgendaApp, RequestAppointment } from '@tmf/agenda-front'
import '@tmf/agenda-front/styles.css'
<AgendaApp baseUrl="" getToken={getToken} locale="pt-BR" mode="staff"
typeOptions={[{ value: 'follow_up', label: 'Retorno' }]} />
<RequestAppointment baseUrl="" getToken={getToken} subjectRef={patientRef}
typeRef="follow_up" source="alert" externalRef={alertId} />
Superfície pública
| Export | O que é |
|---|---|
AgendaApp |
visões dia/semana/lista (com faixa de dia inteiro e marca de atrasado) + modal de criação (POST /events, comum ou dia inteiro); detalhe com remarcar/transições/assumir/histórico/excluir; showBlocks desenha GET /blocks |
RecurrenceDialog + acceptsRecurrence, OccurrencesDialog |
regra de recorrência (5 kinds) e ocorrências (feita/pulada/mover, Idempotency-Key) |
SeriesFormDialog, SeriesDialog, agendaSeriesInvalidationKeys |
série que ocupa: criação (POST /series, Idempotency-Key), consulta e cancelamento |
BlockEditor, AGENDA_BLOCK_REASONS |
bloqueios do recurso editáveis (/blocks, mostra os conflicts) |
DeleteEventDialog, ClaimDialog + isClaimable, HistoryDialog + truncateRef |
exclusão lógica (reason_code + note), assunção do pedido sem recurso, histórico de status por cursor |
SlotGrid |
horários livres do recurso no dia (GET /resources/{ref}/slots) |
ScheduleEditor |
escala do recurso (/schedules); governança só com agenda:manage_schedule, auto-gestão do recurso |
BusinessHoursEditor |
expediente do tenant (/business-hours, só os dias alterados) |
SettingsDialog, parseReminderOffsets |
parâmetros do tenant (/settings: antecedência, no-show, prazo do pedido, lembretes) |
useCan, canAgenda, AGENDA_ACTION_PERMISSIONS |
esconde ação sem permissão (fail-closed, sem curinga) |
allowedTargets, AGENDA_TRANSITIONS, AGENDA_RESCHEDULABLE_STATUSES |
tabela §2C sem expired |
RequestAppointment |
widget de pedido requested (RN-AGD-37/35), com ou sem recurso, preferences até 5 janelas |
AgendaProvider, useAgendaContext |
Provider (monta o ModuleProvider do platform-core) |
createAgendaClientFromHttp, AGENDA_API_PREFIX |
client tipado das rotas do back (eventos, exclusão, assunção, histórico, recorrência, ocorrências, séries, /settings, /blocks, escala, expediente) |
describeError, errorMessageFor, errorKeyFor |
erro do back (code) → mensagem traduzida |
fetchAllEvents, AGENDA_LIST_PAGE_LIMIT, AGENDA_LIST_MAX_DAYS |
lista por cursor (todas as páginas do intervalo) |
assertNoScopeFields, generateIdempotencyKey |
guardas do client |
AGENDA_CATALOGS, ptBR, enUS, esES, useAgendaI18n |
i18n agenda.* |
AGENDA_STATUSES, AGENDA_STATUS_TARGETS, AGENDA_FINAL_STATUSES, AGENDA_MAX_PREFERENCE_WINDOWS, tipos Agenda* |
vocabulário D1 (9 status, com expired) e tipos do contrato |
agendaQueryKeys, StatusBadge, PACKAGE_VERSION |
utilitários |
Fora desta versão
Edição da série (PATCH /series/{id}) — ver INTEGRATION.md §7. Contrato do back:
feat/TMFP-70545-agenda-serie-ocupante@46ce8233.
Empacotamento
tsup (CJS + ESM), @tmf/platform-core empacotado no dist, react/react-dom como peers. Sem
dependencies de runtime. dist/styles.css com os tokens --agenda-* (claro e escuro).
Desenvolvimento
npm run build -w @tmf/platform-core
npm run build -w @tmf/agenda-front
npm run typecheck -w @tmf/agenda-front
npm run test -w @tmf/agenda-front
Dependencies
Development dependencies
| ID | Version |
|---|---|
| @testing-library/jest-dom | ^6.0.0 |
| @testing-library/react | ^16.0.0 |
| @tmf/design-tokens | >=0.5.0 |
| @tmf/platform-core | file:../../platform-core |
| @types/react | ^18.2.47 |
| @types/react-dom | ^18.2.18 |
| jsdom | ^25.0.0 |
| tsup | ^8.5.1 |
| typescript | ^5.3.3 |
| vitest | ^4.1.11 |
Peer dependencies
| ID | Version |
|---|---|
| @tmf/design-tokens | >=0.5.0 |
| react | >=18.0.0 |
| react-dom | >=18.0.0 |