@praxisui/core 3.0.0-beta.9 → 4.0.0-beta.0
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 +56 -1
- package/fesm2022/praxisui-core.mjs +2586 -1175
- package/index.d.ts +511 -99
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -119,7 +119,7 @@ Observação: os IDs de widgets usados na página devem estar registrados via `C
|
|
|
119
119
|
|
|
120
120
|
## 📄 Documentacao Tecnica da Lib
|
|
121
121
|
|
|
122
|
-
- `projects/praxis-core/docs/connection-editor.md`
|
|
122
|
+
- `projects/praxis-core/docs/connection-editor.md` (historico legado; fora do fluxo ativo)
|
|
123
123
|
- `projects/praxis-core/docs/schema-flow.md`
|
|
124
124
|
|
|
125
125
|
## ⚙️ Global Config (bootstrap)
|
|
@@ -127,6 +127,47 @@ Observação: os IDs de widgets usados na página devem estar registrados via `C
|
|
|
127
127
|
- Use `provideGlobalConfigTenant(...)` para definir o tenant e bloquear o bootstrap até a config remota ser carregada.
|
|
128
128
|
- Se não houver tenant, use `provideGlobalConfigReady()` para apenas aguardar o carregamento remoto.
|
|
129
129
|
|
|
130
|
+
## `resourcePath` vs `resourceKey`
|
|
131
|
+
|
|
132
|
+
No runtime Angular, os dois valores coexistem, mas cumprem papeis diferentes:
|
|
133
|
+
|
|
134
|
+
- `resourcePath` e o endereco operacional usado para CRUD, fetch de schema e submit
|
|
135
|
+
- `resourceKey` e a identidade semantica estavel recebida dos catalogos de discovery do backend
|
|
136
|
+
|
|
137
|
+
Na pratica:
|
|
138
|
+
|
|
139
|
+
- o backend publica links como `/schemas/surfaces?resource={resourceKey}` e `/schemas/actions?resource={resourceKey}`
|
|
140
|
+
- o `ResourceDiscoveryService` segue esses links HATEOAS e recebe `resourceKey` de volta nos payloads de surfaces, actions e capabilities
|
|
141
|
+
- os adapters de abertura preservam `resourceKey` no `context.resource` e o usam para gerar ids estaveis de runtime
|
|
142
|
+
|
|
143
|
+
Regra de leitura:
|
|
144
|
+
|
|
145
|
+
- se o problema for URL, submit, fetch ou schema, pense primeiro em `resourcePath`
|
|
146
|
+
- se o problema for discovery semantico, contexto de surface/action ou identidade estavel, pense primeiro em `resourceKey`
|
|
147
|
+
|
|
148
|
+
## `x-ui.analytics` no runtime
|
|
149
|
+
|
|
150
|
+
O `@praxisui/core` trata `x-ui.analytics` como a projeção semantica analitica canonica vinda do backend.
|
|
151
|
+
|
|
152
|
+
- o backend publica `x-ui.analytics.projections[]` com `intent`, `source`, `bindings`, `defaults` e `preferredFamilies`
|
|
153
|
+
- o `AnalyticsPresentationResolver` escolhe a familia de apresentacao no runtime
|
|
154
|
+
- `praxis-charts` continua sendo apenas um renderer possivel; ele nao vira a semantica-base do contrato
|
|
155
|
+
|
|
156
|
+
Regra atual do resolver:
|
|
157
|
+
|
|
158
|
+
- se houver uma projection com `preferredFamilies` compativel, ela orienta a escolha
|
|
159
|
+
- chart automatico so acontece quando a semantica temporal for inequivoca
|
|
160
|
+
- `analytic-table` nao e a sobra do resolver; ela e uma familia canonica escolhida quando a projection continua valida, mas nao e chart inequivoco
|
|
161
|
+
- nos casos ambiguos, o fallback conservador e `analytic-table`
|
|
162
|
+
- se o host nao expuser `analytic-table` e a semantica continuar ambigua, o resolver falha em vez de forcar `chart`
|
|
163
|
+
- projections `timeseries` devem publicar `defaults.granularity` quando o renderer precisar executar `praxis.stats` sem heuristica local
|
|
164
|
+
|
|
165
|
+
Shape publico da decisao:
|
|
166
|
+
|
|
167
|
+
- `projectionId`: id da projection escolhida
|
|
168
|
+
- `family`: familia resolvida (`chart`, `analytic-table`, `kpi`, `summary-list`)
|
|
169
|
+
- `reason`: motivo explicito da decisao, util para debug e suporte
|
|
170
|
+
|
|
130
171
|
## 🌐 Global Actions (shell + widgets)
|
|
131
172
|
|
|
132
173
|
O core agora suporta **ações globais** executadas por widgets e pelo Widget Shell, permitindo integrar navegação, dialog, toast, analytics, API e rotas dinâmicas de forma padronizada.
|
|
@@ -988,3 +1029,17 @@ Precedencia:
|
|
|
988
1029
|
Observacoes:
|
|
989
1030
|
- `valuePresentation` deve representar valor escalar de display/read-only; nao use para ranges, selections ou IDs semanticos
|
|
990
1031
|
- contratos legados como `format`, `numericFormat`, `currency` e `numberFormat` continuam aceitos como bridge de compatibilidade interna, mas novos metadados devem preferir `valuePresentation`
|
|
1032
|
+
|
|
1033
|
+
## Analytics Contract Client
|
|
1034
|
+
|
|
1035
|
+
`AnalyticsSchemaContractService` e o cliente canônico para hosts que precisam resolver `x-ui.analytics` a partir de `/schemas/filtered`.
|
|
1036
|
+
|
|
1037
|
+
Regras:
|
|
1038
|
+
- reutiliza `SchemaMetadataClient` + `fetchWithETag`
|
|
1039
|
+
- devolve `PraxisXUiAnalytics` tipado
|
|
1040
|
+
- falha explicitamente quando `x-ui.analytics.projections[]` nao foi publicado
|
|
1041
|
+
|
|
1042
|
+
Uso esperado:
|
|
1043
|
+
- `@praxisui/core` busca e valida o contrato semantico
|
|
1044
|
+
- bibliotecas verticais, como `@praxisui/charts`, especializam esse contrato para um renderer concreto
|
|
1045
|
+
- apps consumidores deixam de reimplementar fetch, cache, ETag e leitura manual de `x-ui.analytics`
|