hmv-lib
v1.1.2
Published
Biblioteca de componentes do Sistema integrado HMV
Readme
HmvLib
This library was generated with Angular CLI version 13.3.0.
Code scaffolding
Run ng generate component component-name --project hmv-lib to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module --project hmv-lib.
Note: Don't forget to add
--project hmv-libor else it will be added to the default project in yourangular.jsonfile.
Build
Run ng build hmv-lib to build the project. The build artifacts will be stored in the dist/ directory.
Publishing
After building your library with ng build hmv-lib, go to the dist folder cd dist/hmv-lib and run npm publish.
Running unit tests
Run ng test hmv-lib to execute the unit tests via Karma.
Further help
To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.
Componentes de layout de tela
Título, linha de filtro, campo de busca por código (LOV) e rodapé de ações não são escritos à mão nas telas. Use os componentes abaixo; eles não têm opção de largura, cor ou espaçamento de propósito — é isso que mantém as telas iguais entre os módulos.
| Precisa de… | Use |
|---|---|
| Container + título da tela | <hmv-page title="440 - Nome da Tela"> (slot [pageHint] para legenda sob o título) |
| Botões na linha do título | slot [pageActions] do hmv-page |
| Uma linha "rótulo à esquerda, campos à direita" | <hmv-form-row label="Fornecedor"> (align="start" para listas empilhadas; required para asterisco de obrigatório; slots [rowLabel] e [rowError]) |
| Código + nome + botão Procurar | <hmv-lov-field [codeControl] [nameControl] nameLabel="…" (search) (codeEnter)> (codeMask/codeMaxLength para restringir o campo de código, ex. codeMask="0*" para só dígitos) |
| Sub-título de seção entre linhas de filtro | <hmv-form-section title="Configurações do Arquivo"> |
| Botões do rodapé | <hmv-form-actions> (slot [actionsNote] para nota à esquerda dos botões; slot [actionsStart] para ações à esquerda de tudo, ex. justify-between) |
| Texto de checkbox | texto puro dentro de <hmv-checkbox> — a tipografia já vem da lib |
| Datas para API / validação de período | extrairData, formatarDataIsoUtc, formatarDataYmd, formatarDataBr, periodoValidator, mensagemErroPeriodo |
| Mensagens recorrentes | MENSAGENS |
Em hmv-form-row, use label OU o slot [rowLabel], nunca os dois.
hmv-lov-field — inputs
| Input | Default | Descrição |
|---|---|---|
| codeLabel | 'Código' | Rótulo do campo de código |
| searchLabel | 'Procurar' | Rótulo do botão de busca |
| nameLabel | '' | Rótulo do campo de nome |
| disabled | false | Desabilita o botão de busca |
| codeMask | undefined | Máscara ngx-mask aplicada só no campo de código (ex. '0*' para aceitar só dígitos) |
| codeMaxLength | undefined | maxlength aplicado só no campo de código |
Funções de data
extrairData aceita Date, objeto moment (com toDate()), timestamp, string
dd/mm/aaaa ou string aaaa-mm-dd — todas interpretadas como data local.
Mensagens (MENSAGENS)
CODIGO_NAO_ENCONTRADO, ERRO_BUSCAR_CODIGO, NENHUM_REGISTRO,
DADOS_NAO_ENCONTRADOS, DATA_INVALIDA, PERIODO_INVERTIDO,
PERIODO_INCOMPLETO.
Exemplo completo e vivo: npm start e abrir http://localhost:8000/layout
(projects/hmv-sandbox/src/app/layout-showcase).
Estes componentes levam CSS próprio (não usam classes Tailwind no template), porque o
Tailwind de cada micro-frontend só varre o src/ dele.
Nota de release
O texto do hmv-checkbox passa a sair com 14px / peso 500 / #374151 por padrão
(desabilitado mantém a cor do tema; a entrelinha do tema é mantida). Telas podem
remover os <span class="text-sm …"> internos e os ::ng-deep hmv-checkbox label.
Padrões de tela
As regras de layout de tela dos micro-frontends e a trava que as verifica moram em
padroes/, dentro deste pacote:
| Arquivo | O que é |
|---|---|
| padroes/nucleo.md | a doc do padrão, válida para os 12 módulos |
| padroes/playbook.md | passo a passo para adotar o padrão num módulo novo |
| padroes/claude-trecho.md | bloco para o CLAUDE.md do módulo |
| padroes/cli.js | o lint; cada repo chama com as suas exceções |
| padroes/sync.js | gera docs/padroes-de-tela.md do módulo (núcleo + anexo local) |
| padroes/fixtures/tela-referencia.html | esqueleto canônico de tela de filtro |
Mudou uma regra ou a doc? Publique a lib e rode npm run padroes:sync nos módulos.
