@praxisui/dynamic-fields 9.0.0-beta.0 → 9.0.0-beta.10
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 +119 -562
- package/docs/dynamic-fields-inline-components-guide.md +21 -1
- package/docs/dynamic-fields-inline-filter-runtime-contract.md +11 -0
- package/fesm2022/praxisui-dynamic-fields.mjs +612 -344
- package/package.json +4 -11
- package/src/lib/components/inline-color-label/pdx-inline-color-label.json-api.md +1 -1
- package/src/lib/components/inline-currency-range/pdx-inline-currency-range.json-api.md +49 -17
- package/src/lib/components/inline-date/pdx-inline-date.json-api.md +1 -1
- package/src/lib/components/inline-number/pdx-inline-number.json-api.md +1 -0
- package/src/lib/components/inline-range-slider/pdx-inline-range-slider.json-api.md +52 -13
- package/src/lib/components/inline-relative-period/pdx-inline-relative-period.json-api.md +103 -103
- package/src/lib/components/inline-sentiment/pdx-inline-sentiment.json-api.md +84 -84
- package/src/lib/components/inline-time-range/pdx-inline-time-range.json-api.md +2 -2
- package/types/praxisui-dynamic-fields.d.ts +69 -1
|
@@ -7,7 +7,7 @@ document_kind: "json-api-canonical"
|
|
|
7
7
|
reference_mode: "canonical"
|
|
8
8
|
contract_format: "json"
|
|
9
9
|
contract_source: "runtime-and-code"
|
|
10
|
-
description: "
|
|
10
|
+
description: "Referência canônica do contrato JSON do componente pdx-inline-sentiment."
|
|
11
11
|
category: "components"
|
|
12
12
|
sub_category: "dynamic-fields"
|
|
13
13
|
audience:
|
|
@@ -44,60 +44,60 @@ related_components:
|
|
|
44
44
|
|
|
45
45
|
# pdx-inline-sentiment
|
|
46
46
|
|
|
47
|
-
Este documento e a
|
|
47
|
+
Este documento e a referência canônica da API JSON de pdx-inline-sentiment.
|
|
48
48
|
|
|
49
49
|
## Summary
|
|
50
50
|
|
|
51
|
-
- Tipo documental: API reference
|
|
51
|
+
- Tipo documental: API reference canônica de contrato JSON.
|
|
52
52
|
- Source of truth: runtime e codigo declarados no frontmatter.
|
|
53
|
-
- Objetivo operacional: consulta
|
|
53
|
+
- Objetivo operacional: consulta rápida, auditável e determinística sob pressão.
|
|
54
54
|
- Resumo funcional: Contrato JSON metadata-driven com comportamento definido por runtime e schema associado.
|
|
55
55
|
|
|
56
56
|
## Purpose and scope
|
|
57
57
|
|
|
58
|
-
- O componente consome payload JSON metadata-driven e
|
|
59
|
-
- Esta
|
|
60
|
-
- Fora de escopo: quickstart, tutorial narrativo e notas arquiteturais que
|
|
58
|
+
- O componente consome payload JSON metadata-driven e expõe comportamento runtime configurável por contrato.
|
|
59
|
+
- Esta referência cobre contrato público, classificação de paths e semântica de cobertura (runtime/schema/editor).
|
|
60
|
+
- Fora de escopo: quickstart, tutorial narrativo e notas arquiteturais que não alteram contrato público.
|
|
61
61
|
|
|
62
|
-
## Consulta
|
|
62
|
+
## Consulta rápida (obrigatorio)
|
|
63
63
|
|
|
64
64
|
| Regra/tema | Observado | Canonico desejado | Status | Evidencia |
|
|
65
65
|
| --- | --- | --- | --- | --- |
|
|
66
|
-
| Component id | `pdx-inline-sentiment` | Manter ID
|
|
67
|
-
| Primary contract source | `runtime-and-code` | Runtime, schema e docs devem permanecer
|
|
68
|
-
| Runtime coverage | `true` | Comportamentos runtime
|
|
69
|
-
| Schema/type coverage | `true` | Tipos e schema devem refletir paths
|
|
70
|
-
| Editor/tooling coverage | `false` | Editor/tooling deve espelhar somente contrato
|
|
71
|
-
| Path hygiene | `false` | Manter
|
|
72
|
-
| Known mismatches | `false` | Registrar observed vs desired de forma
|
|
66
|
+
| Component id | `pdx-inline-sentiment` | Manter ID canônico estável e versionado por contrato | Active | frontmatter.component |
|
|
67
|
+
| Primary contract source | `runtime-and-code` | Runtime, schema e docs devem permanecer rastreáveis | Partial | frontmatter.contract_source + source_of_truth |
|
|
68
|
+
| Runtime coverage | `true` | Comportamentos runtime críticos devem ficar explicitamente verificados | Active | `projects/praxis-dynamic-fields/src/lib/components/inline-sentiment/inline-sentiment.component.ts`, `projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts` |
|
|
69
|
+
| Schema/type coverage | `true` | Tipos e schema devem refletir paths públicos do contrato | Active | source_of_truth + Detailed API reference |
|
|
70
|
+
| Editor/tooling coverage | `false` | Editor/tooling deve espelhar somente contrato público suportado | Partial | `projects/praxis-core/src/lib/utils/inline-filter-controls.util.ts`, `projects/praxis-dynamic-fields/src/lib/services/component-registry/component-registry.service.ts` |
|
|
71
|
+
| Path hygiene | `false` | Manter consistência entre contrato canônico e caminhos documentados | Active | frontmatter.legacy_paths_present |
|
|
72
|
+
| Known mismatches | `false` | Registrar observed vs desired de forma auditável | Active | frontmatter.has_known_mismatches |
|
|
73
73
|
|
|
74
74
|
## Source of truth
|
|
75
75
|
|
|
76
76
|
| Source | Kind | Notes |
|
|
77
77
|
| --- | --- | --- |
|
|
78
|
-
| projects/praxis-dynamic-fields/src/lib/components/inline-sentiment/inline-sentiment.component.ts | runtime-code | Arquivo presente no repositorio e usado como
|
|
79
|
-
| projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts | runtime-code | Arquivo presente no repositorio e usado como
|
|
80
|
-
| projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | schema-types | Arquivo presente no repositorio e usado como
|
|
78
|
+
| projects/praxis-dynamic-fields/src/lib/components/inline-sentiment/inline-sentiment.component.ts | runtime-code | Arquivo presente no repositorio e usado como evidência de contrato. |
|
|
79
|
+
| projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts | runtime-code | Arquivo presente no repositorio e usado como evidência de contrato. |
|
|
80
|
+
| projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | schema-types | Arquivo presente no repositorio e usado como evidência de contrato. |
|
|
81
81
|
|
|
82
82
|
## Support legend
|
|
83
83
|
|
|
84
84
|
- **Active**: suportado em runtime e liberado para uso externo.
|
|
85
|
-
- **Partial**: suporte parcial, com restricoes, lacunas ou
|
|
86
|
-
- **Declared-only**: declarado em tipos/schema sem
|
|
85
|
+
- **Partial**: suporte parcial, com restricoes, lacunas ou validação incompleta.
|
|
86
|
+
- **Declared-only**: declarado em tipos/schema sem evidência operacional completa.
|
|
87
87
|
- **Schema-only**: presente em schema/tipos sem cobertura runtime confirmada.
|
|
88
88
|
|
|
89
89
|
## Contract status snapshot
|
|
90
90
|
|
|
91
91
|
| Item | Value | Notes |
|
|
92
92
|
| --- | --- | --- |
|
|
93
|
-
| Reference mode | `canonical` | Deve permanecer
|
|
93
|
+
| Reference mode | `canonical` | Deve permanecer canônico |
|
|
94
94
|
| Contract format | `json` | Contrato metadata-driven |
|
|
95
95
|
| Contract source | `runtime-and-code` | Alinhar com source_of_truth |
|
|
96
96
|
| Runtime scope | `public` | Escopo publicado para consumidores |
|
|
97
|
-
| Runtime verified | `true` | Revisar sempre com
|
|
98
|
-
| Schema verified | `true` | Revisar sempre com
|
|
99
|
-
| Editor coverage verified | `false` | Revisar sempre com
|
|
100
|
-
| Current path hygiene | `false` | Segregar
|
|
97
|
+
| Runtime verified | `true` | Revisar sempre com evidência de runtime |
|
|
98
|
+
| Schema verified | `true` | Revisar sempre com evidência de tipos/schema |
|
|
99
|
+
| Editor coverage verified | `false` | Revisar sempre com evidência de editor/tooling |
|
|
100
|
+
| Current path hygiene | `false` | Segregar consistência do contrato canônico |
|
|
101
101
|
| Has known mismatches | `false` | Divergencias devem aparecer em secao dedicada |
|
|
102
102
|
|
|
103
103
|
## Contract classification (obrigatorio)
|
|
@@ -117,15 +117,15 @@ Este documento e a referencia canonica da API JSON de pdx-inline-sentiment.
|
|
|
117
117
|
|
|
118
118
|
### Path audit
|
|
119
119
|
|
|
120
|
-
Nenhum desvio de caminho foi identificado nesta
|
|
120
|
+
Nenhum desvio de caminho foi identificado nesta revisão.
|
|
121
121
|
|
|
122
122
|
### Internal-only paths
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
Não ha paths internal-only confirmados no contrato público desta revisão.
|
|
125
125
|
|
|
126
126
|
### Experimental paths
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
Não ha paths experimentais confirmados no contrato público desta revisão.
|
|
129
129
|
|
|
130
130
|
## Public contract surface (obrigatorio)
|
|
131
131
|
|
|
@@ -134,11 +134,11 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
134
134
|
| Block | Purpose | Required | Merge strategy | Notes |
|
|
135
135
|
| --- | --- | --- | --- | --- |
|
|
136
136
|
| `metadata` | Payload declarativo principal do componente | true | deep-merge | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
137
|
-
| `selectOptions` |
|
|
137
|
+
| `selectOptions` | Configuração especifica de runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
138
138
|
| `readonlyMode` | Override de readonly no host/runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
139
139
|
| `disabledMode` | Override de disabled no host/runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
140
140
|
| `visible` | Override de visibilidade no host/runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
141
|
-
| `presentationMode` |
|
|
141
|
+
| `presentationMode` | Renderização de apresentação sem interação | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
142
142
|
|
|
143
143
|
### Nested configuration blocks
|
|
144
144
|
|
|
@@ -203,15 +203,15 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
203
203
|
### Runtime coverage boundaries
|
|
204
204
|
|
|
205
205
|
- Ambientes suportados: browser/dev/prod; SSR/hydration appears to be component-dependent unless explicitly verified.
|
|
206
|
-
- Pre-condicoes: payload JSON
|
|
207
|
-
- Fora de cobertura confirmada: caminhos internos, experimentais ou aliases
|
|
206
|
+
- Pre-condicoes: payload JSON válido, bindings de host consistentes e dependencias descritas no source_of_truth.
|
|
207
|
+
- Fora de cobertura confirmada: caminhos internos, experimentais ou aliases não enumerados formalmente.
|
|
208
208
|
|
|
209
209
|
### Editor and tooling notes
|
|
210
210
|
|
|
211
211
|
- Evidencia de tooling: aliases `pdx-inline-*` resolvidos por `inline-filter-controls.util.ts` e consumidos no `ComponentRegistryService`; editor visual E2E permanece not-yet-verified.
|
|
212
|
-
- O que esta exposto no editor visual depende da cobertura real do workspace e
|
|
213
|
-
- Campos
|
|
214
|
-
- Quando houver divergencia entre editor e runtime, manter mismatch
|
|
212
|
+
- O que esta exposto no editor visual depende da cobertura real do workspace e não deve ser inferido como suporte runtime total.
|
|
213
|
+
- Campos disponíveis apenas via JSON/manual devem continuar no contrato, com rótulo explícito de cobertura parcial.
|
|
214
|
+
- Quando houver divergencia entre editor e runtime, manter mismatch rastreável em secao dedicada.
|
|
215
215
|
|
|
216
216
|
## Resolution and precedence model (obrigatorio)
|
|
217
217
|
|
|
@@ -224,21 +224,21 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
224
224
|
|
|
225
225
|
### Fallback order
|
|
226
226
|
|
|
227
|
-
contrato explicito -> aliases
|
|
227
|
+
contrato explicito -> aliases históricos (quando suportados) -> defaults internos -> comportamento seguro
|
|
228
228
|
|
|
229
229
|
### Override points
|
|
230
230
|
|
|
231
231
|
- inputs publicos do componente
|
|
232
|
-
-
|
|
233
|
-
- integracoes de host (
|
|
232
|
+
- configuração JSON de runtime
|
|
233
|
+
- integracoes de host (serviços/tokens/adapters)
|
|
234
234
|
|
|
235
235
|
### Runtime normalization
|
|
236
236
|
|
|
237
|
-
Alias e defaults devem convergir para paths
|
|
237
|
+
Alias e defaults devem convergir para paths canônicos; onde não houver evidência, manter not-yet-verified de forma explícita.
|
|
238
238
|
|
|
239
239
|
### Precedence rules
|
|
240
240
|
|
|
241
|
-
Em conflito entre caminho
|
|
241
|
+
Em conflito entre caminho histórico e path canônico, priorizar path canônico e registrar janela de migração do histórico.
|
|
242
242
|
|
|
243
243
|
## Validation and error semantics (obrigatorio)
|
|
244
244
|
|
|
@@ -246,7 +246,7 @@ Em conflito entre caminho historico e path canonico, priorizar path canonico e r
|
|
|
246
246
|
|
|
247
247
|
| Path/Rule | Validation phase | Behavior on fail | Error code / warning | Notes |
|
|
248
248
|
| --- | --- | --- | --- | --- |
|
|
249
|
-
| canonical-paths | parse/runtime | component-defined (warn/reject/default) | not-yet-standardized | Semantica detalhada preservada na
|
|
249
|
+
| canonical-paths | parse/runtime | component-defined (warn/reject/default) | not-yet-standardized | Semantica detalhada preservada na referência técnica por componente. |
|
|
250
250
|
|
|
251
251
|
### Invalid and unknown field handling
|
|
252
252
|
|
|
@@ -264,66 +264,66 @@ Em conflito entre caminho historico e path canonico, priorizar path canonico e r
|
|
|
264
264
|
|
|
265
265
|
| Condition | Severity | Observability | Consumer action |
|
|
266
266
|
| --- | --- | --- | --- |
|
|
267
|
-
| partial-or-declared-only-coverage | warning | logs/eventos do componente | Confirmar
|
|
268
|
-
| mismatch-confirmed | error-or-warning | componente/host observability | Planejar
|
|
267
|
+
| partial-or-declared-only-coverage | warning | logs/eventos do componente | Confirmar ligação runtime antes de uso crítico. |
|
|
268
|
+
| mismatch-confirmed | error-or-warning | componente/host observability | Planejar migração e corrigir contrato/runtime. |
|
|
269
269
|
|
|
270
270
|
## Detailed API reference
|
|
271
271
|
### Preserved technical reference (normalized from previous revision)
|
|
272
272
|
|
|
273
|
-
### 1.
|
|
274
|
-
`pdx-inline-sentiment`
|
|
273
|
+
### 1. Visão Geral e Quando Usar
|
|
274
|
+
`pdx-inline-sentiment` é um filtro inline de sentimento com emojis, barra de gradiente e cards selecionáveis.
|
|
275
275
|
|
|
276
276
|
Use quando precisar:
|
|
277
277
|
- classificar feedback por polaridade (negativo/neutro/positivo);
|
|
278
|
-
- expor leitura visual
|
|
279
|
-
- permitir single ou
|
|
278
|
+
- expor leitura visual rápida via emoji + cor;
|
|
279
|
+
- permitir single ou múltipla seleção com pills de resumo.
|
|
280
280
|
|
|
281
281
|
### 2. API do Componente (Inputs/Outputs)
|
|
282
|
-
| Propriedade | Tipo |
|
|
282
|
+
| Propriedade | Tipo | Padrão | Obrigatório | Comportamento |
|
|
283
283
|
| --- | --- | --- | --- | --- |
|
|
284
284
|
| `metadata` | `MaterialSelectMetadata` | - | Sim | Contrato principal de sentimento inline. |
|
|
285
|
-
| `readonlyMode/disabledMode/visible/presentationMode` | `boolean` | `false/false/true/false` |
|
|
285
|
+
| `readonlyMode/disabledMode/visible/presentationMode` | `boolean` | `false/false/true/false` | Não | Estados de host do campo inline. |
|
|
286
286
|
| `selectionChange` | `T \| T[]` | - | Output herdado | Valor(es) de sentimento selecionado(s). |
|
|
287
|
-
| `optionSelected` | `SelectOption` | - | Output herdado |
|
|
287
|
+
| `optionSelected` | `SelectOption` | - | Output herdado | Opção escolhida no card de sentimento. |
|
|
288
288
|
|
|
289
289
|
### 3. Matriz de Cobertura JSON (Completa)
|
|
290
|
-
#### 3.1 Campos
|
|
290
|
+
#### 3.1 Campos específicos do componente
|
|
291
291
|
| Caminho JSON | Tipo | Status | Comportamento em runtime |
|
|
292
292
|
| --- | --- | --- | --- |
|
|
293
293
|
| `metadata.sentimentOptions` | `array \| string(JSON)` | Ativo | Fonte principal dos cards de sentimento. |
|
|
294
294
|
| `metadata.sentimentMultiple` / `multiple` | `boolean` | Ativo | Define single/multiple selection. |
|
|
295
295
|
| `metadata.sentimentShowBar` | `boolean` | Ativo | Exibe barra visual de sentimento. |
|
|
296
296
|
| `metadata.sentimentShowSelectionPills` | `boolean` | Ativo | Exibe pills dos itens selecionados. |
|
|
297
|
-
| `metadata.sentimentAnimatedEmoji` | `boolean` | Ativo | Ativa
|
|
298
|
-
| `metadata.sentimentCloseOnSelect` | `boolean` | Ativo | Fecha painel
|
|
299
|
-
| `metadata.sentimentEmojiKey/optionEmojiKey` | `string` | Ativo | Chave do emoji por
|
|
300
|
-
| `metadata.sentimentColorKey/optionColorKey` | `string` | Ativo | Chave da cor por
|
|
301
|
-
| `metadata.sentimentPalette/palette` | `array \| string` | Ativo | Paleta fallback para
|
|
302
|
-
| `metadata.sentimentGradientLowColor/midColor/highColor` | `string` | Ativo | Gradiente
|
|
303
|
-
| `metadata.sentimentTexts` / `inlineTexts` | `object \| string(JSON)` | Ativo | Textos de
|
|
304
|
-
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"` | Ativo | Define se cards de sentimento comitam imediatamente ou ficam em rascunho
|
|
305
|
-
| `metadata.inlineOverlay.actions.apply` | `object` | Ativo | Configura label, aria-label,
|
|
306
|
-
| `metadata.inlineOverlay.actions.cancel` | `object` | Ativo | Configura a
|
|
307
|
-
| `metadata.inlineOverlay.actions.clear` | `object` | Ativo | Configura a
|
|
308
|
-
| `metadata.sentimentIcon` / `prefixIcon` | `string` | Ativo |
|
|
297
|
+
| `metadata.sentimentAnimatedEmoji` | `boolean` | Ativo | Ativa animação de emoji em hover/select. |
|
|
298
|
+
| `metadata.sentimentCloseOnSelect` | `boolean` | Ativo | Fecha painel após seleção (single). |
|
|
299
|
+
| `metadata.sentimentEmojiKey/optionEmojiKey` | `string` | Ativo | Chave do emoji por opção. |
|
|
300
|
+
| `metadata.sentimentColorKey/optionColorKey` | `string` | Ativo | Chave da cor por opção. |
|
|
301
|
+
| `metadata.sentimentPalette/palette` | `array \| string` | Ativo | Paleta fallback para opções sem cor. |
|
|
302
|
+
| `metadata.sentimentGradientLowColor/midColor/highColor` | `string` | Ativo | Gradiente semântico fallback para barra e opções sem cor explícita. |
|
|
303
|
+
| `metadata.sentimentTexts` / `inlineTexts` | `object \| string(JSON)` | Ativo | Textos de subtítulo, aria, labels de grupo/pills e empty state; templates canônicos devem usar `{{label}}` e `{{value}}` quando houver interpolação. |
|
|
304
|
+
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"` | Ativo | Define se cards de sentimento comitam imediatamente ou ficam em rascunho até `Aplicar`. |
|
|
305
|
+
| `metadata.inlineOverlay.actions.apply` | `object` | Ativo | Configura label, aria-label, ícone, `appearance` e `colorRole` da ação de commit. |
|
|
306
|
+
| `metadata.inlineOverlay.actions.cancel` | `object` | Ativo | Configura a ação que descarta rascunho e fecha o painel. |
|
|
307
|
+
| `metadata.inlineOverlay.actions.clear` | `object` | Ativo | Configura a ação que remove a seleção aplicada/rascunho usando tokens do tema. |
|
|
308
|
+
| `metadata.sentimentIcon` / `prefixIcon` | `string` | Ativo | Ícone do trigger/painel. |
|
|
309
309
|
| `metadata.inlineAutoSize.*` | `object` | Ativo | Largura da pill e painel. |
|
|
310
310
|
|
|
311
311
|
#### 3.2 Campos herdados compartilhados (exaustivo)
|
|
312
312
|
- `projects/praxis-dynamic-fields/src/lib/components/material-select/pdx-material-select.json-api.md`
|
|
313
313
|
- `projects/praxis-dynamic-fields/src/lib/base/pdx-base-select-runtime-contract.json-api.md`
|
|
314
314
|
|
|
315
|
-
Resumo de
|
|
315
|
+
Resumo de composição deste componente:
|
|
316
316
|
- `Ativo`: cards de sentimento com emoji/cor, barra e pills de resumo.
|
|
317
|
-
- `
|
|
317
|
+
- `Extensão de runtime`: namespace `sentiment*` com fallback para chaves genéricas.
|
|
318
318
|
|
|
319
319
|
### 4. Mapeamento de Comportamento
|
|
320
|
-
-
|
|
320
|
+
- Opções podem ser carregadas de `sentimentOptions`, `selectOptions` ou `options`.
|
|
321
321
|
- Cor/emoji de cada item segue ordem de chaves custom -> payload -> paleta fallback.
|
|
322
|
-
- Em
|
|
322
|
+
- Em múltiplo, respeita `maxSelections` herdado.
|
|
323
323
|
- Aria labels, labels de grupo/pills e textos operacionais podem ser centralizados em `sentimentTexts`.
|
|
324
|
-
- Quando `inlineOverlay.applyMode` e `"explicit"`,
|
|
324
|
+
- Quando `inlineOverlay.applyMode` e `"explicit"`, seleções no painel alteram apenas o rascunho; `Aplicar` comita, `Cancelar`, `Esc` e clique externo descartam, e `Limpar` remove a seleção.
|
|
325
325
|
|
|
326
|
-
### 5. Exemplo
|
|
326
|
+
### 5. Exemplo Mínimo (JSON + Uso)
|
|
327
327
|
```json
|
|
328
328
|
{
|
|
329
329
|
"componentId": "pdx-inline-sentiment",
|
|
@@ -338,7 +338,7 @@ Resumo de composicao deste componente:
|
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
340
|
```
|
|
341
|
-
Uso:
|
|
341
|
+
Uso: classificação simples de sentimento.
|
|
342
342
|
|
|
343
343
|
### 6. Exemplo Corporativo (JSON + Uso)
|
|
344
344
|
```json
|
|
@@ -378,34 +378,34 @@ Uso: classificacao simples de sentimento.
|
|
|
378
378
|
}
|
|
379
379
|
}
|
|
380
380
|
```
|
|
381
|
-
Uso:
|
|
381
|
+
Uso: análise de CX com semântica visual direta e confirmação explícita antes de aplicar.
|
|
382
382
|
|
|
383
383
|
### 7. Troubleshooting e Armadilhas Comuns
|
|
384
|
-
1. Emoji
|
|
385
|
-
|
|
384
|
+
1. Emoji não renderiza.
|
|
385
|
+
Correção: ajustar `sentimentEmojiKey` ou o campo de payload.
|
|
386
386
|
|
|
387
387
|
2. Cores repetidas sem intencao.
|
|
388
|
-
|
|
388
|
+
Correção: revisar `sentimentColorKey` e `sentimentPalette`.
|
|
389
389
|
|
|
390
|
-
3. Painel
|
|
391
|
-
|
|
390
|
+
3. Painel não fecha no single.
|
|
391
|
+
Correção: habilitar `sentimentCloseOnSelect=true`.
|
|
392
392
|
|
|
393
|
-
4. Pills
|
|
394
|
-
|
|
393
|
+
4. Pills não aparecem no múltiplo.
|
|
394
|
+
Correção: verificar `sentimentShowSelectionPills`.
|
|
395
395
|
|
|
396
|
-
5.
|
|
397
|
-
|
|
396
|
+
5. Animação de emoji não ocorre.
|
|
397
|
+
Correção: validar `sentimentAnimatedEmoji`.
|
|
398
398
|
|
|
399
399
|
### 8. Cross-links
|
|
400
400
|
- `projects/praxis-dynamic-fields/src/lib/components/material-select/pdx-material-select.json-api.md`
|
|
401
401
|
- `projects/praxis-dynamic-fields/src/lib/base/pdx-base-select-runtime-contract.json-api.md`
|
|
402
402
|
|
|
403
|
-
### 9.
|
|
404
|
-
-
|
|
403
|
+
### 9. Relatório de Validação Estrutural
|
|
404
|
+
- Visão geral: PASS
|
|
405
405
|
- API (inputs/outputs): PASS
|
|
406
406
|
- Cobertura JSON completa (especifico + herdado): PASS
|
|
407
407
|
- Mapeamento de comportamento: PASS
|
|
408
|
-
- Exemplo
|
|
408
|
+
- Exemplo mínimo: PASS
|
|
409
409
|
- Exemplo corporativo: PASS
|
|
410
410
|
- Troubleshooting: PASS
|
|
411
411
|
|
|
@@ -668,7 +668,7 @@ Correcao: validar `sentimentAnimatedEmoji`.
|
|
|
668
668
|
|
|
669
669
|
| Path/Behavior | Observed behavior (runtime) | Desired behavior | Impact | Tracking issue | Target fix |
|
|
670
670
|
| --- | --- | --- | --- | --- | --- |
|
|
671
|
-
| Canonical contract parity | Runtime e exemplos desta
|
|
671
|
+
| Canonical contract parity | Runtime e exemplos desta referência foram atualizados em 2026-03-16 para refletir a migração do componente para o catálogo shared de i18n e o uso de templates `{{...}}` | Manter exemplos e host overrides no formato canônico `{{...}}` | Low | n/a | Monitor in periodic audit |
|
|
672
672
|
|
|
673
673
|
## Source references (obrigatorio)
|
|
674
674
|
|
|
@@ -299,7 +299,7 @@ Use quando precisar:
|
|
|
299
299
|
| `metadata.validators.rangeMessage` | `string` | Ativo | Mensagem para erro de ordem do intervalo. |
|
|
300
300
|
| `metadata.validators.minDistanceMessage` | `string` | Ativo | Mensagem para distancia minima. |
|
|
301
301
|
| `metadata.validators.maxDistanceMessage` | `string` | Ativo | Mensagem para distancia maxima. |
|
|
302
|
-
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"
|
|
302
|
+
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"` | Ativo | Quando `explicit`, slider, inputs e presets ficam em rascunho ate `Aplicar`. |
|
|
303
303
|
| `metadata.inlineOverlay.actions.apply.*` | `object` | Ativo | Label, aria, icon, appearance e colorRole do commit. |
|
|
304
304
|
| `metadata.inlineOverlay.actions.cancel.*` | `object` | Ativo | Label, aria, icon, appearance e colorRole do descarte. |
|
|
305
305
|
| `metadata.inlineOverlay.actions.clear.*` | `object` | Ativo | Label, aria, icon, appearance, colorRole e visibilidade da limpeza explicita. |
|
|
@@ -318,7 +318,7 @@ Resumo de composicao deste componente:
|
|
|
318
318
|
- `quickPresets` podem ser declarados ou gerados por defaults internos.
|
|
319
319
|
- Slider e inputs textuais permanecem sincronizados (`timeRangeForm` + `sliderRangeForm`).
|
|
320
320
|
- `timeInputStepSeconds()` deriva de `stepMinute` para entrada `type=time`.
|
|
321
|
-
- Com `inlineOverlay.applyMode: "explicit"
|
|
321
|
+
- Com `inlineOverlay.applyMode: "explicit"`, alteracoes no painel nao emitem valor externo ate `Aplicar`; `Cancelar`, `Esc`, detach ou clique externo restauram o valor confirmado anterior.
|
|
322
322
|
|
|
323
323
|
### 5. Exemplo Minimo (JSON + Uso)
|
|
324
324
|
```json
|
|
@@ -281,6 +281,9 @@ interface PraxisDynamicFieldsI18nOverrides {
|
|
|
281
281
|
displayUpto?: PraxisDynamicFieldText;
|
|
282
282
|
presetFrom?: PraxisDynamicFieldText;
|
|
283
283
|
};
|
|
284
|
+
dateRange?: {
|
|
285
|
+
shortcutsAriaLabel?: PraxisDynamicFieldText;
|
|
286
|
+
};
|
|
284
287
|
inlineDateRange?: {
|
|
285
288
|
placeholder?: PraxisDynamicFieldText;
|
|
286
289
|
startPlaceholder?: PraxisDynamicFieldText;
|
|
@@ -326,6 +329,13 @@ interface PraxisDynamicFieldsI18nOverrides {
|
|
|
326
329
|
};
|
|
327
330
|
inlineRange?: {
|
|
328
331
|
placeholder?: PraxisDynamicFieldText;
|
|
332
|
+
minLabel?: PraxisDynamicFieldText;
|
|
333
|
+
maxLabel?: PraxisDynamicFieldText;
|
|
334
|
+
valueLabel?: PraxisDynamicFieldText;
|
|
335
|
+
quickPresetsLabel?: PraxisDynamicFieldText;
|
|
336
|
+
clearActionLabel?: PraxisDynamicFieldText;
|
|
337
|
+
applyActionLabel?: PraxisDynamicFieldText;
|
|
338
|
+
doneActionLabel?: PraxisDynamicFieldText;
|
|
329
339
|
cancelActionLabel?: PraxisDynamicFieldText;
|
|
330
340
|
};
|
|
331
341
|
inlineCurrencyRange?: {
|
|
@@ -341,6 +351,13 @@ interface PraxisDynamicFieldsI18nOverrides {
|
|
|
341
351
|
from?: PraxisDynamicFieldText;
|
|
342
352
|
upto?: PraxisDynamicFieldText;
|
|
343
353
|
};
|
|
354
|
+
validation?: {
|
|
355
|
+
required?: PraxisDynamicFieldText;
|
|
356
|
+
rangeOrder?: PraxisDynamicFieldText;
|
|
357
|
+
rangeMin?: PraxisDynamicFieldText;
|
|
358
|
+
rangeMax?: PraxisDynamicFieldText;
|
|
359
|
+
invalid?: PraxisDynamicFieldText;
|
|
360
|
+
};
|
|
344
361
|
};
|
|
345
362
|
inlineSelect?: {
|
|
346
363
|
placeholder?: PraxisDynamicFieldText;
|
|
@@ -359,6 +376,7 @@ interface PraxisDynamicFieldsI18nOverrides {
|
|
|
359
376
|
selectionTitle?: PraxisDynamicFieldText;
|
|
360
377
|
selectionBadgesAriaLabel?: PraxisDynamicFieldText;
|
|
361
378
|
removeSelectionAriaLabel?: PraxisDynamicFieldText;
|
|
379
|
+
fallbackOptionLabel?: PraxisDynamicFieldText;
|
|
362
380
|
emptyStateText?: PraxisDynamicFieldText;
|
|
363
381
|
overlayActionsAriaLabel?: PraxisDynamicFieldText;
|
|
364
382
|
clearActionLabel?: PraxisDynamicFieldText;
|
|
@@ -384,14 +402,43 @@ interface PraxisDynamicFieldsI18nOverrides {
|
|
|
384
402
|
inlineRelativePeriod?: {
|
|
385
403
|
placeholder?: PraxisDynamicFieldText;
|
|
386
404
|
panelSubtitle?: PraxisDynamicFieldText;
|
|
405
|
+
defaultOptions?: {
|
|
406
|
+
today?: PraxisDynamicFieldText;
|
|
407
|
+
yesterday?: PraxisDynamicFieldText;
|
|
408
|
+
last7?: PraxisDynamicFieldText;
|
|
409
|
+
last30?: PraxisDynamicFieldText;
|
|
410
|
+
thisMonth?: PraxisDynamicFieldText;
|
|
411
|
+
lastMonth?: PraxisDynamicFieldText;
|
|
412
|
+
thisQuarter?: PraxisDynamicFieldText;
|
|
413
|
+
thisYear?: PraxisDynamicFieldText;
|
|
414
|
+
};
|
|
387
415
|
progressEmptyLabel?: PraxisDynamicFieldText;
|
|
416
|
+
progressAriaLabel?: PraxisDynamicFieldText;
|
|
388
417
|
optionsGroupAriaLabel?: PraxisDynamicFieldText;
|
|
418
|
+
fallbackOptionLabel?: PraxisDynamicFieldText;
|
|
389
419
|
emptyStateText?: PraxisDynamicFieldText;
|
|
390
420
|
overlayActionsAriaLabel?: PraxisDynamicFieldText;
|
|
391
421
|
clearActionLabel?: PraxisDynamicFieldText;
|
|
392
422
|
cancelActionLabel?: PraxisDynamicFieldText;
|
|
393
423
|
applyActionLabel?: PraxisDynamicFieldText;
|
|
394
424
|
};
|
|
425
|
+
inlinePeriodRange?: {
|
|
426
|
+
minLabel?: PraxisDynamicFieldText;
|
|
427
|
+
maxLabel?: PraxisDynamicFieldText;
|
|
428
|
+
quickPresetsLabel?: PraxisDynamicFieldText;
|
|
429
|
+
};
|
|
430
|
+
inlineMonthRange?: {
|
|
431
|
+
quickPresetsLabel?: PraxisDynamicFieldText;
|
|
432
|
+
presetFull?: PraxisDynamicFieldText;
|
|
433
|
+
presetFirstHalf?: PraxisDynamicFieldText;
|
|
434
|
+
presetSecondHalf?: PraxisDynamicFieldText;
|
|
435
|
+
};
|
|
436
|
+
inlineYearRange?: {
|
|
437
|
+
minLabel?: PraxisDynamicFieldText;
|
|
438
|
+
maxLabel?: PraxisDynamicFieldText;
|
|
439
|
+
quickPresetsLabel?: PraxisDynamicFieldText;
|
|
440
|
+
presetFull?: PraxisDynamicFieldText;
|
|
441
|
+
};
|
|
395
442
|
inlineTime?: {
|
|
396
443
|
placeholder?: PraxisDynamicFieldText;
|
|
397
444
|
openPanelAriaLabel?: PraxisDynamicFieldText;
|
|
@@ -404,10 +451,18 @@ interface PraxisDynamicFieldsI18nOverrides {
|
|
|
404
451
|
inlineSentiment?: {
|
|
405
452
|
placeholder?: PraxisDynamicFieldText;
|
|
406
453
|
panelSubtitle?: PraxisDynamicFieldText;
|
|
454
|
+
defaultOptions?: {
|
|
455
|
+
terrible?: PraxisDynamicFieldText;
|
|
456
|
+
bad?: PraxisDynamicFieldText;
|
|
457
|
+
neutral?: PraxisDynamicFieldText;
|
|
458
|
+
good?: PraxisDynamicFieldText;
|
|
459
|
+
great?: PraxisDynamicFieldText;
|
|
460
|
+
};
|
|
407
461
|
barAriaEmpty?: PraxisDynamicFieldText;
|
|
408
462
|
barAriaSelected?: PraxisDynamicFieldText;
|
|
409
463
|
optionsGroupAriaLabel?: PraxisDynamicFieldText;
|
|
410
464
|
selectionPillsAriaLabel?: PraxisDynamicFieldText;
|
|
465
|
+
fallbackOptionLabel?: PraxisDynamicFieldText;
|
|
411
466
|
emptyStateText?: PraxisDynamicFieldText;
|
|
412
467
|
overlayActionsAriaLabel?: PraxisDynamicFieldText;
|
|
413
468
|
clearActionLabel?: PraxisDynamicFieldText;
|
|
@@ -1987,6 +2042,7 @@ declare class MaterialDateRangeComponent extends SimpleBaseInputComponent implem
|
|
|
1987
2042
|
picker: MatDateRangePicker<Date>;
|
|
1988
2043
|
private endDateInput?;
|
|
1989
2044
|
readonly shouldShowShortcuts: () => boolean;
|
|
2045
|
+
readonly shortcutOverlayAriaLabel: _angular_core.Signal<string>;
|
|
1990
2046
|
readonly overlayPositions: () => ConnectedPosition[];
|
|
1991
2047
|
private shortcutOverlayBelowPositions;
|
|
1992
2048
|
private shortcutOverlayLeftPositions;
|
|
@@ -3460,6 +3516,7 @@ declare class InlineCurrencyComponent extends SimpleBaseInputComponent {
|
|
|
3460
3516
|
inlineWidthPx: number;
|
|
3461
3517
|
inlineMaxWidthPx: number;
|
|
3462
3518
|
private resizeRafId;
|
|
3519
|
+
private displayFormatRafId;
|
|
3463
3520
|
private fieldLabelText;
|
|
3464
3521
|
private minValidator?;
|
|
3465
3522
|
private maxValidator?;
|
|
@@ -3513,8 +3570,10 @@ declare class InlineCurrencyComponent extends SimpleBaseInputComponent {
|
|
|
3513
3570
|
private allowNegative;
|
|
3514
3571
|
private applyMaskedInput;
|
|
3515
3572
|
private digitsToNumber;
|
|
3573
|
+
private normalizeDecimalPlaces;
|
|
3516
3574
|
private syncDigitsFromValue;
|
|
3517
3575
|
private formatDisplayValue;
|
|
3576
|
+
private scheduleDisplayFormat;
|
|
3518
3577
|
private formatDecimalValue;
|
|
3519
3578
|
private setCaretToEnd;
|
|
3520
3579
|
private detectNegative;
|
|
@@ -3684,6 +3743,7 @@ declare class InlineCurrencyRangeComponent extends SimpleBaseInputComponent {
|
|
|
3684
3743
|
private formatCurrency;
|
|
3685
3744
|
private currencyFormatter;
|
|
3686
3745
|
private resolveDecimalPlaces;
|
|
3746
|
+
private normalizeDecimalPlaces;
|
|
3687
3747
|
private allowNegative;
|
|
3688
3748
|
private recalculateInlineSizeBounds;
|
|
3689
3749
|
private resetFormatterCache;
|
|
@@ -3910,6 +3970,7 @@ declare class InlineRangeSliderComponent extends SimpleBaseInputComponent {
|
|
|
3910
3970
|
private usesCurrencyFormatting;
|
|
3911
3971
|
private usesPercentFormatting;
|
|
3912
3972
|
private resetFormatterCache;
|
|
3973
|
+
private normalizeDecimalPlaces;
|
|
3913
3974
|
private resetQuickPresetsCache;
|
|
3914
3975
|
private resetDistributionCache;
|
|
3915
3976
|
private resolveFieldLabelFromMetadata;
|
|
@@ -4259,6 +4320,7 @@ declare class InlineTimeComponent extends MaterialTimepickerComponent {
|
|
|
4259
4320
|
errorStateMatcher(): _angular_material_core.ErrorStateMatcher;
|
|
4260
4321
|
isInteractionBlocked(): boolean;
|
|
4261
4322
|
showQuickClear(): boolean;
|
|
4323
|
+
showPanelToggle(): boolean;
|
|
4262
4324
|
hasInlineValue(): boolean;
|
|
4263
4325
|
showInlinePlaceholder(): boolean;
|
|
4264
4326
|
onTriggerIconMouseDown(event: MouseEvent): void;
|
|
@@ -4311,7 +4373,6 @@ declare class InlineTimeComponent extends MaterialTimepickerComponent {
|
|
|
4311
4373
|
private recalculateInlineWidth;
|
|
4312
4374
|
private resolveWidthBounds;
|
|
4313
4375
|
private resolveChromeWidth;
|
|
4314
|
-
private parsePx;
|
|
4315
4376
|
private resolveFieldLabelFromMetadata;
|
|
4316
4377
|
private normalizeControlValue;
|
|
4317
4378
|
private resolveDisplayTime;
|
|
@@ -4571,6 +4632,8 @@ declare class InlineTreeSelectComponent extends SimpleBaseSelectComponent {
|
|
|
4571
4632
|
selectNode(node: MaterialTreeNode): void;
|
|
4572
4633
|
isSelected(node: MaterialTreeNode): boolean;
|
|
4573
4634
|
isNodeDisabled(node: MaterialTreeNode): boolean;
|
|
4635
|
+
isNodeSelectionOnlyDisabled(node: MaterialTreeNode): boolean;
|
|
4636
|
+
private isNodeSelectionBlocked;
|
|
4574
4637
|
handleKeydown(event: KeyboardEvent, node: MaterialTreeNode): void;
|
|
4575
4638
|
filteredTreeCount(): number;
|
|
4576
4639
|
emptyStateText(): string;
|
|
@@ -5118,9 +5181,11 @@ declare class InlineRelativePeriodComponent extends SimpleBaseSelectComponent {
|
|
|
5118
5181
|
onPanelDone(event: MouseEvent): void;
|
|
5119
5182
|
isInteractionBlocked(): boolean;
|
|
5120
5183
|
private parseOptionsSource;
|
|
5184
|
+
private defaultRelativePeriodOptions;
|
|
5121
5185
|
private selectedOptions;
|
|
5122
5186
|
private toVisualOption;
|
|
5123
5187
|
private resolveOptionSubtitle;
|
|
5188
|
+
private fallbackOptionLabel;
|
|
5124
5189
|
private resolveOptionIcon;
|
|
5125
5190
|
private selectedValues;
|
|
5126
5191
|
private resolveCloseOnSelect;
|
|
@@ -5240,8 +5305,10 @@ declare class InlineSentimentComponent extends SimpleBaseSelectComponent {
|
|
|
5240
5305
|
onPanelDone(event: MouseEvent): void;
|
|
5241
5306
|
isInteractionBlocked(): boolean;
|
|
5242
5307
|
private parseOptionsSource;
|
|
5308
|
+
private defaultSentimentOptions;
|
|
5243
5309
|
private toVisualOption;
|
|
5244
5310
|
private resolveOptionEmoji;
|
|
5311
|
+
private fallbackOptionLabel;
|
|
5245
5312
|
private resolveOptionColor;
|
|
5246
5313
|
private sentimentGradientColorByIndex;
|
|
5247
5314
|
private sentimentGradientColorByRatio;
|
|
@@ -5374,6 +5441,7 @@ declare class InlineColorLabelComponent extends SimpleBaseSelectComponent<unknow
|
|
|
5374
5441
|
private parseOptionsSource;
|
|
5375
5442
|
private toVisualOption;
|
|
5376
5443
|
private resolveOptionColor;
|
|
5444
|
+
private fallbackOptionLabel;
|
|
5377
5445
|
private parseColorList;
|
|
5378
5446
|
private selectedValues;
|
|
5379
5447
|
private openPanel;
|