@ngx-smz/core 21.1.21 → 21.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/fesm2022/ngx-smz-core.mjs +129 -17
- package/fesm2022/ngx-smz-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-smz-core.d.ts +10 -0
package/README.md
CHANGED
|
@@ -58,6 +58,43 @@ ng e2e
|
|
|
58
58
|
|
|
59
59
|
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
|
|
60
60
|
|
|
61
|
+
## `smz-form-group`: eventos de alteração e `statusChanges`
|
|
62
|
+
|
|
63
|
+
O seletor `smz-form-group` expõe três saídas (`@Output`) que parecem relacionadas, mas respondem a **gatilhos e comparações diferentes**. Todas emitem `SmzFormsResponse` (o mesmo retorno de `getData()`), com `data`, `isValid`, `hasUnsavedChanges`, `validationMessagesByField`, etc.
|
|
64
|
+
|
|
65
|
+
### `statusChanges`
|
|
66
|
+
|
|
67
|
+
- **O que é:** um `EventEmitter` do componente — **não** é o `statusChanges` do `FormGroup` do Angular exposto diretamente no template.
|
|
68
|
+
- **Quando dispara:** após o `FormGroup` notificar mudança de status, com **debounce** (`config.behaviors.debounceTime`, padrão `400` ms). Nesse ciclo o componente roda validação customizada (`customValidator`), `customBehavior`, visibilidade e avisos, e em seguida emite o payload atual.
|
|
69
|
+
- **Também no carregamento:** na primeira carga, em geral emite uma vez com os dados iniciais, **exceto** se `config.behaviors.skipEmitChangesOnLoad` estiver ativo ou se `runCustomFunctionsOnLoad` alterar esse fluxo.
|
|
70
|
+
- **Uso típico:** reagir a **cada ciclo de revalidação/reprocessamento** do formulário (ex.: sincronizar UI com erros globais ou com o resultado de `customBehavior`).
|
|
71
|
+
|
|
72
|
+
### `initialStateChanged`
|
|
73
|
+
|
|
74
|
+
- **O que significa:** o snapshot atual dos dados (**serializado**) é **diferente do estado inicial** guardado quando o formulário realizou `resetState()` (por exemplo logo após a montagem ou após você restaurar a linha base com APIs do componente).
|
|
75
|
+
- **`hasUnsavedChanges`:** no `SmzFormsResponse` emitido/atualizado, esse flag está alinhado a “mudou em relação ao estado inicial”.
|
|
76
|
+
- **Uso típico:** habilitar **“Salvar”** apenas quando há alterações em relação ao registro/modelo original, ou alertar que há rascunho não persistido desde a última baseline.
|
|
77
|
+
|
|
78
|
+
### `previousStateChanged`
|
|
79
|
+
|
|
80
|
+
- **O que significa:** o snapshot atual dos dados é **diferente do estado no ciclo anterior** de `updateHasChanges()` (internamente compara com o último valor conhecido antes de atualizar essa cópia).
|
|
81
|
+
- **Contraste com `initialStateChanged`:** não olha apenas para o “primeiro estado após load”, e sim para **“mudou desde a última vez que o componente avaliou mudanças”** — granularidade passo a passo a cada ciclo que chama `updateHasChanges`.
|
|
82
|
+
- **Uso típico:** lógicas que precisam detectar **variações incrementais** entre emissões consecutivas (por exemplo atualizar apenas um campo derivado quando algo mudou desde o último processamento).
|
|
83
|
+
|
|
84
|
+
### Emitir todas as saídas no primeiro load
|
|
85
|
+
|
|
86
|
+
Com `config.behaviors.emitAllOutputsOnLoad === true`, no carregamento o componente pode emitir `initialStateChanged`, `previousStateChanged` e `statusChanges` com o mesmo `getData()`, para inicializar fluxos que dependem desses handlers sem esperar o primeiro debounce interativo.
|
|
87
|
+
|
|
88
|
+
### Resumo rápido
|
|
89
|
+
|
|
90
|
+
| Evento | Comparado com | Gatilho principal |
|
|
91
|
+
|-------------------------|-----------------------------------------------------|----------------------------------------------------------------|
|
|
92
|
+
| `statusChanges` | (não é comparação de snapshot) | Ciclo pós mudança de status do formulário (+ debounce) + carga inicial conforme comportamentos |
|
|
93
|
+
| `initialStateChanged` | Baseline da última `resetState()` / estado inicial | Mudança do payload atual em relação a esse baseline |
|
|
94
|
+
| `previousStateChanged` | Snapshot do ciclo anterior de `updateHasChanges` | Mudança desde o último processamento de “has changes” |
|
|
95
|
+
|
|
96
|
+
Para detalhes de implementação (ordem das chamadas, `emitChanges`, `runStatusChangesOnConfigUpdate`, etc.), consulte `form-group.component.ts` e `form-viewdata.ts`.
|
|
97
|
+
|
|
61
98
|
## Additional Resources
|
|
62
99
|
|
|
63
100
|
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|