@praxisui/core 8.0.0-beta.0 → 8.0.0-beta.11
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 +61 -1
- package/fesm2022/praxisui-core.mjs +9525 -8282
- package/index.d.ts +653 -99
- package/package.json +1 -1
- package/theme-bridge.css +174 -0
package/README.md
CHANGED
|
@@ -59,6 +59,15 @@ Exemplo completo (app de referência)
|
|
|
59
59
|
|
|
60
60
|
### 1) `PraxisIconDirective`
|
|
61
61
|
|
|
62
|
+
Hosts devem carregar Material Symbols para ícones `mso:*` e Material Icons classic quando usarem `mi:*`, componentes legados baseados em ligature classic, ou `mat-icon.material-icons`. Sem Material Icons classic, a ligature pode aparecer como texto visível, por exemplo `clear` dentro de um select.
|
|
63
|
+
|
|
64
|
+
Para alinhar tokens e superfícies Angular Material/Praxis, importe o asset canônico do pacote depois do tema Angular Material e do CSS do CDK Overlay:
|
|
65
|
+
|
|
66
|
+
```scss
|
|
67
|
+
@import "@angular/cdk/overlay-prebuilt.css";
|
|
68
|
+
@import "@praxisui/core/theme-bridge.css";
|
|
69
|
+
```
|
|
70
|
+
|
|
62
71
|
```ts
|
|
63
72
|
import { Component } from '@angular/core';
|
|
64
73
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -111,6 +120,42 @@ export class GridDemoComponent {
|
|
|
111
120
|
|
|
112
121
|
Observação: os IDs de widgets usados na página devem estar registrados via `ComponentMetadataRegistry` para que o carregador dinâmico resolva os componentes.
|
|
113
122
|
|
|
123
|
+
#### Composition links e nested component ports
|
|
124
|
+
|
|
125
|
+
O wiring persistido de páginas dinâmicas deve usar `page.composition.links`.
|
|
126
|
+
`page.connections` é formato legado/residual e não deve ser usado para novas
|
|
127
|
+
páginas ou exemplos.
|
|
128
|
+
|
|
129
|
+
Para conectar componentes internos de containers como `praxis-tabs` e
|
|
130
|
+
`praxis-expansion`, use endpoints `component-port` com `ref.nestedPath`:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"kind": "component-port",
|
|
135
|
+
"ref": {
|
|
136
|
+
"widget": "tabs-widget",
|
|
137
|
+
"nestedPath": [
|
|
138
|
+
{ "kind": "tab", "id": "analytics", "index": 0 },
|
|
139
|
+
{ "kind": "widget", "key": "sales-chart", "componentType": "praxis-chart" }
|
|
140
|
+
],
|
|
141
|
+
"port": "pointClick",
|
|
142
|
+
"direction": "output",
|
|
143
|
+
"componentType": "praxis-chart"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Regras de plataforma:
|
|
149
|
+
|
|
150
|
+
- `ref.widget` é sempre o owner top-level presente em `page.widgets`;
|
|
151
|
+
- `nestedPath` é relativo ao owner e deve terminar com segmento
|
|
152
|
+
`kind: "widget"` contendo `key` estável;
|
|
153
|
+
- `ref.port` representa a porta real do componente filho;
|
|
154
|
+
- `widgetEvent` em containers compostos é bridge avançada/legado, não caminho
|
|
155
|
+
principal de authoring;
|
|
156
|
+
- `bindingPath` e dot-path profundo não são endereço canônico para nested
|
|
157
|
+
component ports.
|
|
158
|
+
|
|
114
159
|
### Component config editors
|
|
115
160
|
|
|
116
161
|
`ComponentDocMeta.configEditor` é a superfície pública canônica para um
|
|
@@ -199,6 +244,21 @@ Regra de leitura:
|
|
|
199
244
|
- se o problema for URL, submit, fetch ou schema, pense primeiro em `resourcePath`
|
|
200
245
|
- se o problema for discovery semantico, contexto de surface/action ou identidade estavel, pense primeiro em `resourceKey`
|
|
201
246
|
|
|
247
|
+
## `x-ui.optionSource` e Entity Lookup
|
|
248
|
+
|
|
249
|
+
`@praxisui/core` preserva `x-ui.optionSource` como contrato canônico de opções remotas e lookups de entidade publicados por `/schemas/filtered`.
|
|
250
|
+
|
|
251
|
+
Para `RESOURCE_ENTITY`, o `SchemaNormalizerService` mantém a semântica enriquecida usada pelos consumidores:
|
|
252
|
+
|
|
253
|
+
- identidade: `entityKey`, `valuePropertyPath`, `labelPropertyPath`, `codePropertyPath`
|
|
254
|
+
- exibição: `descriptionPropertyPaths`, `statusPropertyPath`, `disabledReasonPropertyPath`
|
|
255
|
+
- busca e cascata: `searchPropertyPaths`, `dependsOn`, `dependencyFilterMap`
|
|
256
|
+
- seleção: `selectionPolicy.allowedStatuses`, `blockedStatuses`, `allowRetainInvalidExistingValue`
|
|
257
|
+
- operação: `capabilities.byIds`, `navigateToDetail`, `create`, `auditSnapshot`
|
|
258
|
+
- navegação: `detail.hrefTemplate`, `routeTemplate`, `openDetailMode`
|
|
259
|
+
|
|
260
|
+
O mapper de `FieldDefinition` para `FieldMetadata` deriva apenas a ponte runtime necessária (`dependencyFields` e `dependencyFilterMap`) a partir de `optionSource.dependsOn`. Ele não inventa política de reset, reload ou persistência; essas decisões continuam explícitas no metadata do campo.
|
|
261
|
+
|
|
202
262
|
## `x-ui.analytics` no runtime
|
|
203
263
|
|
|
204
264
|
O `@praxisui/core` trata `x-ui.analytics` como a projeção semantica analitica canonica vinda do backend.
|
|
@@ -265,7 +325,7 @@ definition: {
|
|
|
265
325
|
```ts
|
|
266
326
|
shell: {
|
|
267
327
|
actions: [
|
|
268
|
-
{ id: 'back', icon: 'arrow_back',
|
|
328
|
+
{ id: 'back', icon: 'arrow_back', globalAction: { actionId: 'navigation.back' } }
|
|
269
329
|
]
|
|
270
330
|
}
|
|
271
331
|
```
|