@praxisui/table 9.0.58 → 9.0.60
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/ai/component-registry.json +227 -4
- package/docs/dynamic-filter-host-integration-guide.md +5 -0
- package/docs/dynamic-filter-payload-contract.md +18 -0
- package/fesm2022/{praxisui-table-filter-form-dialog-host.component-OZp84Fmo.mjs → praxisui-table-filter-form-dialog-host.component-DANYIQs6.mjs} +13 -13
- package/fesm2022/{praxisui-table-praxisui-table-DwcZUROX.mjs → praxisui-table-praxisui-table-Dc_qrYSl.mjs} +1340 -507
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-CrxeA09C.mjs → praxisui-table-table-agentic-authoring-turn-flow-DlPu7OOk.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-BUfSa7oq.mjs → praxisui-table-table-ai.adapter-6-ZGVEFf.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +1 -0
- package/types/praxisui-table.d.ts +70 -12
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-04T15:26:31.194Z",
|
|
4
4
|
"packageName": "@praxisui/table",
|
|
5
|
-
"packageVersion": "9.0.
|
|
5
|
+
"packageVersion": "9.0.60",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -186,6 +186,12 @@
|
|
|
186
186
|
"required": false,
|
|
187
187
|
"description": "DTO parcial emitido durante alterações locais."
|
|
188
188
|
},
|
|
189
|
+
{
|
|
190
|
+
"name": "contextChange",
|
|
191
|
+
"type": "PraxisFilterViewContext",
|
|
192
|
+
"required": false,
|
|
193
|
+
"description": "Projeção de apresentação com o DTO canônico e os rótulos resolvidos para composição de página; não deve ser enviada ao backend."
|
|
194
|
+
},
|
|
189
195
|
{
|
|
190
196
|
"name": "clear",
|
|
191
197
|
"type": "void",
|
|
@@ -285,6 +291,20 @@
|
|
|
285
291
|
"exposure": {
|
|
286
292
|
"public": true,
|
|
287
293
|
"group": "events"
|
|
294
|
+
},
|
|
295
|
+
"resourceQueryFieldSource": {
|
|
296
|
+
"resourcePath": "resourcePath",
|
|
297
|
+
"apiUrlEntry": "apiUrlEntry",
|
|
298
|
+
"fieldPaths": [
|
|
299
|
+
"alwaysVisibleFields",
|
|
300
|
+
"selectedFieldIds"
|
|
301
|
+
],
|
|
302
|
+
"schemaOperation": {
|
|
303
|
+
"operationId": "filter",
|
|
304
|
+
"method": "POST",
|
|
305
|
+
"pathSuffix": "filter",
|
|
306
|
+
"requestFieldPath": "$"
|
|
307
|
+
}
|
|
288
308
|
}
|
|
289
309
|
},
|
|
290
310
|
{
|
|
@@ -299,6 +319,37 @@
|
|
|
299
319
|
},
|
|
300
320
|
"cardinality": "stream",
|
|
301
321
|
"description": "Canonical search request carrying the current filter DTO.",
|
|
322
|
+
"exposure": {
|
|
323
|
+
"public": true,
|
|
324
|
+
"group": "events"
|
|
325
|
+
},
|
|
326
|
+
"resourceQueryFieldSource": {
|
|
327
|
+
"resourcePath": "resourcePath",
|
|
328
|
+
"apiUrlEntry": "apiUrlEntry",
|
|
329
|
+
"fieldPaths": [
|
|
330
|
+
"alwaysVisibleFields",
|
|
331
|
+
"selectedFieldIds"
|
|
332
|
+
],
|
|
333
|
+
"schemaOperation": {
|
|
334
|
+
"operationId": "filter",
|
|
335
|
+
"method": "POST",
|
|
336
|
+
"pathSuffix": "filter",
|
|
337
|
+
"requestFieldPath": "$"
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"id": "contextChange",
|
|
343
|
+
"label": "Filter View Context",
|
|
344
|
+
"direction": "output",
|
|
345
|
+
"semanticKind": "view-context",
|
|
346
|
+
"schema": {
|
|
347
|
+
"id": "PraxisFilterViewContext",
|
|
348
|
+
"kind": "ts-type",
|
|
349
|
+
"ref": "PraxisFilterViewContext"
|
|
350
|
+
},
|
|
351
|
+
"cardinality": "stream",
|
|
352
|
+
"description": "Presentation projection with the canonical filter DTO and display labels resolved from field metadata and option sources.",
|
|
302
353
|
"exposure": {
|
|
303
354
|
"public": true,
|
|
304
355
|
"group": "events"
|
|
@@ -2441,9 +2492,9 @@
|
|
|
2441
2492
|
{
|
|
2442
2493
|
"chunkIndex": 0,
|
|
2443
2494
|
"chunkKind": "summary",
|
|
2444
|
-
"content": "Component ID: praxis-filter\nSelector: praxis-filter\nFriendly Name: Praxis Filter\nDescription: Filtro metadata-driven hospedável em páginas dinâmicas, adequado para superfícies analíticas, operacionais e workflows orientados a busca.\nLib/Package: @praxisui/table\nTags: widget, filter, search, metadata-driven, hostable\nInputs:\n - resourcePath (string)\n - apiUrlEntry (ApiUrlEntry | null)\n - fieldMetadata (FieldMetadata[] | null)\n - filterId (string)\n - formId (string)\n - componentInstanceId (string)\n - enableCustomization (boolean)\n - showFilterSettings (boolean)\n - showAdvancedButton (boolean)\n - showAddButton (boolean)\n - showClearButton (boolean)\n - showSearchButton (boolean)\n - value (Record<string, any>)\n - alwaysVisibleFields (string[])\n - alwaysVisibleFieldMetadataOverrides (Record<string, Record<string, any>>)\n - selectedFieldIds (string[])\n - persistenceKey (string)\n - disablePersistence (boolean)\n - changeDebounceMs (number)\n - tags (FilterTag[])\n - allowSaveTags (boolean)\n - i18n (Partial<I18n>)\n - placeBooleansInActions (boolean)\n - advancedOpenMode ('modal' | 'drawer')\nOutputs:\n - submit (Record<string, any>)\n - requestSearch (Record<string, any>)\n - change (Record<string, any>)\n - clear (void)\n - tagsChange (FilterTag[])\n - selectedFieldIdsChange (string[])\n - metaChanged ({ schemaId: string; serverHash?: string; context: SchemaIdParams })\n - schemaStatusChange ({ outdated: boolean; serverHash?: string; lastVerifiedAt?: string; formId?: string })\n",
|
|
2495
|
+
"content": "Component ID: praxis-filter\nSelector: praxis-filter\nFriendly Name: Praxis Filter\nDescription: Filtro metadata-driven hospedável em páginas dinâmicas, adequado para superfícies analíticas, operacionais e workflows orientados a busca.\nLib/Package: @praxisui/table\nTags: widget, filter, search, metadata-driven, hostable\nInputs:\n - resourcePath (string)\n - apiUrlEntry (ApiUrlEntry | null)\n - fieldMetadata (FieldMetadata[] | null)\n - filterId (string)\n - formId (string)\n - componentInstanceId (string)\n - enableCustomization (boolean)\n - showFilterSettings (boolean)\n - showAdvancedButton (boolean)\n - showAddButton (boolean)\n - showClearButton (boolean)\n - showSearchButton (boolean)\n - value (Record<string, any>)\n - alwaysVisibleFields (string[])\n - alwaysVisibleFieldMetadataOverrides (Record<string, Record<string, any>>)\n - selectedFieldIds (string[])\n - persistenceKey (string)\n - disablePersistence (boolean)\n - changeDebounceMs (number)\n - tags (FilterTag[])\n - allowSaveTags (boolean)\n - i18n (Partial<I18n>)\n - placeBooleansInActions (boolean)\n - advancedOpenMode ('modal' | 'drawer')\nOutputs:\n - submit (Record<string, any>)\n - requestSearch (Record<string, any>)\n - change (Record<string, any>)\n - contextChange (PraxisFilterViewContext)\n - clear (void)\n - tagsChange (FilterTag[])\n - selectedFieldIdsChange (string[])\n - metaChanged ({ schemaId: string; serverHash?: string; context: SchemaIdParams })\n - schemaStatusChange ({ outdated: boolean; serverHash?: string; lastVerifiedAt?: string; formId?: string })\n",
|
|
2445
2496
|
"sourcePointer": "projects/praxis-table/src/lib/components/praxis-filter/praxis-filter.metadata.ts",
|
|
2446
|
-
"contentHash": "
|
|
2497
|
+
"contentHash": "726b51b531daabb84b0fe5a98bcae0e6663085648b2401d82f3a99bdb59415ec",
|
|
2447
2498
|
"sourceKind": "component_definition",
|
|
2448
2499
|
"sourceId": "praxis-filter",
|
|
2449
2500
|
"corpusVersion": "1.0.0"
|
|
@@ -7792,6 +7843,178 @@
|
|
|
7792
7843
|
}
|
|
7793
7844
|
}
|
|
7794
7845
|
],
|
|
7846
|
+
"runtimeProfiles": [
|
|
7847
|
+
{
|
|
7848
|
+
"id": "public-local-volatile",
|
|
7849
|
+
"audience": "public-untrusted",
|
|
7850
|
+
"description": "Tabela efêmera com dados inline e sem efeitos externos.",
|
|
7851
|
+
"constraints": [
|
|
7852
|
+
{
|
|
7853
|
+
"path": "resourcePath",
|
|
7854
|
+
"operator": "absent-or-empty"
|
|
7855
|
+
},
|
|
7856
|
+
{
|
|
7857
|
+
"path": "data",
|
|
7858
|
+
"operator": "array"
|
|
7859
|
+
},
|
|
7860
|
+
{
|
|
7861
|
+
"path": "configPersistenceStrategy",
|
|
7862
|
+
"operator": "equals",
|
|
7863
|
+
"value": "volatile"
|
|
7864
|
+
},
|
|
7865
|
+
{
|
|
7866
|
+
"path": "enableCustomization",
|
|
7867
|
+
"operator": "not-true"
|
|
7868
|
+
},
|
|
7869
|
+
{
|
|
7870
|
+
"path": "config.behavior.localDataMode.enabled",
|
|
7871
|
+
"operator": "equals",
|
|
7872
|
+
"value": true
|
|
7873
|
+
},
|
|
7874
|
+
{
|
|
7875
|
+
"path": "config.analyticsProjection",
|
|
7876
|
+
"operator": "absent-or-empty"
|
|
7877
|
+
},
|
|
7878
|
+
{
|
|
7879
|
+
"path": "config.actions.row.enabled",
|
|
7880
|
+
"operator": "not-true"
|
|
7881
|
+
},
|
|
7882
|
+
{
|
|
7883
|
+
"path": "config.actions.bulk.enabled",
|
|
7884
|
+
"operator": "not-true"
|
|
7885
|
+
},
|
|
7886
|
+
{
|
|
7887
|
+
"path": "config.export.enabled",
|
|
7888
|
+
"operator": "not-true"
|
|
7889
|
+
},
|
|
7890
|
+
{
|
|
7891
|
+
"path": "config.ai.assistant.enabled",
|
|
7892
|
+
"operator": "not-true"
|
|
7893
|
+
},
|
|
7894
|
+
{
|
|
7895
|
+
"path": "config.behavior.expansion.detail.source.mode",
|
|
7896
|
+
"operator": "none-of",
|
|
7897
|
+
"values": [
|
|
7898
|
+
"resourcePath",
|
|
7899
|
+
"hypermedia",
|
|
7900
|
+
"surface"
|
|
7901
|
+
]
|
|
7902
|
+
},
|
|
7903
|
+
{
|
|
7904
|
+
"path": "config.columns[*].renderer.type",
|
|
7905
|
+
"operator": "none-of",
|
|
7906
|
+
"values": [
|
|
7907
|
+
"image",
|
|
7908
|
+
"avatar",
|
|
7909
|
+
"link",
|
|
7910
|
+
"button",
|
|
7911
|
+
"menu"
|
|
7912
|
+
]
|
|
7913
|
+
},
|
|
7914
|
+
{
|
|
7915
|
+
"path": "config.columns[*].conditionalRenderers[*].renderer.type",
|
|
7916
|
+
"operator": "none-of",
|
|
7917
|
+
"values": [
|
|
7918
|
+
"image",
|
|
7919
|
+
"avatar",
|
|
7920
|
+
"link",
|
|
7921
|
+
"button",
|
|
7922
|
+
"menu"
|
|
7923
|
+
]
|
|
7924
|
+
}
|
|
7925
|
+
],
|
|
7926
|
+
"effects": []
|
|
7927
|
+
},
|
|
7928
|
+
{
|
|
7929
|
+
"id": "public-resource-read",
|
|
7930
|
+
"audience": "public-untrusted",
|
|
7931
|
+
"description": "Leitura paginada de recurso público, condicionada a capabilities do backend.",
|
|
7932
|
+
"constraints": [
|
|
7933
|
+
{
|
|
7934
|
+
"path": "resourcePath",
|
|
7935
|
+
"operator": "present"
|
|
7936
|
+
},
|
|
7937
|
+
{
|
|
7938
|
+
"path": "configPersistenceStrategy",
|
|
7939
|
+
"operator": "equals",
|
|
7940
|
+
"value": "volatile"
|
|
7941
|
+
},
|
|
7942
|
+
{
|
|
7943
|
+
"path": "enableCustomization",
|
|
7944
|
+
"operator": "not-true"
|
|
7945
|
+
},
|
|
7946
|
+
{
|
|
7947
|
+
"path": "config.analyticsProjection",
|
|
7948
|
+
"operator": "absent-or-empty"
|
|
7949
|
+
},
|
|
7950
|
+
{
|
|
7951
|
+
"path": "config.actions.row.enabled",
|
|
7952
|
+
"operator": "not-true"
|
|
7953
|
+
},
|
|
7954
|
+
{
|
|
7955
|
+
"path": "config.actions.bulk.enabled",
|
|
7956
|
+
"operator": "not-true"
|
|
7957
|
+
},
|
|
7958
|
+
{
|
|
7959
|
+
"path": "config.export.enabled",
|
|
7960
|
+
"operator": "not-true"
|
|
7961
|
+
},
|
|
7962
|
+
{
|
|
7963
|
+
"path": "config.ai.assistant.enabled",
|
|
7964
|
+
"operator": "not-true"
|
|
7965
|
+
},
|
|
7966
|
+
{
|
|
7967
|
+
"path": "config.behavior.expansion.detail.source.mode",
|
|
7968
|
+
"operator": "none-of",
|
|
7969
|
+
"values": [
|
|
7970
|
+
"resourcePath",
|
|
7971
|
+
"hypermedia",
|
|
7972
|
+
"surface"
|
|
7973
|
+
]
|
|
7974
|
+
},
|
|
7975
|
+
{
|
|
7976
|
+
"path": "config.columns[*].renderer.type",
|
|
7977
|
+
"operator": "none-of",
|
|
7978
|
+
"values": [
|
|
7979
|
+
"image",
|
|
7980
|
+
"avatar",
|
|
7981
|
+
"link",
|
|
7982
|
+
"button",
|
|
7983
|
+
"menu"
|
|
7984
|
+
]
|
|
7985
|
+
},
|
|
7986
|
+
{
|
|
7987
|
+
"path": "config.columns[*].conditionalRenderers[*].renderer.type",
|
|
7988
|
+
"operator": "none-of",
|
|
7989
|
+
"values": [
|
|
7990
|
+
"image",
|
|
7991
|
+
"avatar",
|
|
7992
|
+
"link",
|
|
7993
|
+
"button",
|
|
7994
|
+
"menu"
|
|
7995
|
+
]
|
|
7996
|
+
}
|
|
7997
|
+
],
|
|
7998
|
+
"effects": [
|
|
7999
|
+
{
|
|
8000
|
+
"kind": "resource-read",
|
|
8001
|
+
"resourcePath": "resourcePath",
|
|
8002
|
+
"operations": [
|
|
8003
|
+
{
|
|
8004
|
+
"operationId": "filter",
|
|
8005
|
+
"method": "POST",
|
|
8006
|
+
"pathSuffix": "filter",
|
|
8007
|
+
"role": "primary",
|
|
8008
|
+
"queryContext": {
|
|
8009
|
+
"portId": "queryContext",
|
|
8010
|
+
"requestFieldPath": "$"
|
|
8011
|
+
}
|
|
8012
|
+
}
|
|
8013
|
+
]
|
|
8014
|
+
}
|
|
8015
|
+
]
|
|
8016
|
+
}
|
|
8017
|
+
],
|
|
7795
8018
|
"configEditor": {
|
|
7796
8019
|
"component": "[ref:PraxisTableWidgetConfigEditor]",
|
|
7797
8020
|
"title": "Configurar tabela"
|
|
@@ -242,6 +242,11 @@ O fluxo típico é:
|
|
|
242
242
|
5. host observa `submit` ou `change`;
|
|
243
243
|
6. host envia DTO para `/filter` ou `/filter/cursor`.
|
|
244
244
|
|
|
245
|
+
Quando a página também precisa explicar o recorte ao usuário, observe
|
|
246
|
+
`contextChange` separadamente. O payload mantém o DTO em `filter` e acrescenta os
|
|
247
|
+
rótulos resolvidos em `labels`; ele serve a Rich Content, badges e surfaces. Não o
|
|
248
|
+
reutilize como corpo de `/filter` e não refaça option lookups no host.
|
|
249
|
+
|
|
245
250
|
## Persistência local
|
|
246
251
|
|
|
247
252
|
O runtime já persiste dois grupos de informação:
|
|
@@ -272,6 +272,24 @@ O caminho canônico passa a ser:
|
|
|
272
272
|
- a página escreve esse payload em `page.state`
|
|
273
273
|
- a página ou o builder propagam um `queryContext` para widgets de dados
|
|
274
274
|
|
|
275
|
+
Para narrativas, badges e surfaces, use o output separado `contextChange`. Ele
|
|
276
|
+
publica `PraxisFilterViewContext`, com o DTO canônico em `filter` e as projeções
|
|
277
|
+
`labels`, `fieldLabels` e `fields`. Os rótulos são resolvidos a partir da mesma
|
|
278
|
+
metadata/opção usada pelos campos; não crie mapas paralelos no host.
|
|
279
|
+
|
|
280
|
+
```json
|
|
281
|
+
{
|
|
282
|
+
"schemaVersion": "praxis.filter-view-context.v1",
|
|
283
|
+
"filter": { "departmentId": 10, "status": "ACTIVE" },
|
|
284
|
+
"labels": { "departmentId": "Engenharia", "status": "Ativo" },
|
|
285
|
+
"fieldLabels": { "departmentId": "Departamento", "status": "Status" },
|
|
286
|
+
"fields": []
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
`filter` é a única parte executável como consulta. O objeto enriquecido completo é
|
|
291
|
+
um `view-context` e não deve ser enviado a `/filter`, stats ou option sources.
|
|
292
|
+
|
|
275
293
|
Exemplo recomendado:
|
|
276
294
|
|
|
277
295
|
```json
|
|
@@ -4,7 +4,7 @@ import * as i1 from '@angular/material/dialog';
|
|
|
4
4
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
5
5
|
import * as i3 from '@angular/material/button';
|
|
6
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i15 from '@angular/material/progress-bar';
|
|
8
8
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
9
9
|
import * as i7 from '@angular/material/icon';
|
|
10
10
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -105,15 +105,15 @@ class FilterFormDialogHostComponent {
|
|
|
105
105
|
}
|
|
106
106
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FilterFormDialogHostComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
107
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: FilterFormDialogHostComponent, isStandalone: true, selector: "praxis-filter-form-dialog-host", ngImport: i0, template: `
|
|
108
|
-
<div
|
|
109
|
-
<
|
|
108
|
+
<div class="pfx-dialog-title">
|
|
109
|
+
<h2 mat-dialog-title class="pfx-dialog-title-text">
|
|
110
110
|
<mat-icon>tune</mat-icon>
|
|
111
111
|
<span>{{ data.title || 'Filtro avançado' }}</span>
|
|
112
|
-
</
|
|
112
|
+
</h2>
|
|
113
113
|
<button praxisIconButton="close" size="compact" type="button" class="pfx-dialog-close" (click)="close()"
|
|
114
|
-
[attr.aria-label]="data.i18n?.
|
|
114
|
+
[attr.aria-label]="data.i18n?.close || 'Fechar'"></button>
|
|
115
115
|
</div>
|
|
116
|
-
<mat-dialog-content class="pfx-filter-dialog-content"
|
|
116
|
+
<mat-dialog-content class="pfx-filter-dialog-content">
|
|
117
117
|
@if (data?.schemaLoading) {
|
|
118
118
|
<mat-progress-bar mode="indeterminate"></mat-progress-bar>
|
|
119
119
|
}
|
|
@@ -160,20 +160,20 @@ class FilterFormDialogHostComponent {
|
|
|
160
160
|
{{ data.i18n?.apply || 'Aplicar' }}
|
|
161
161
|
</button>
|
|
162
162
|
</mat-dialog-actions>
|
|
163
|
-
`, isInline: true, styles: [".pfx-dialog-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:8px}.pfx-dialog-title-text{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--mdc-dialog-subhead-color, var(--md-sys-color-on-surface))}.pfx-dialog-close{margin-left:auto}.pfx-filter-dialog-content{display:flex;flex-direction:column;gap:12px;padding-top:8px}.pfx-empty-state{margin:8px 0 0;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant))}.pfx-dialog-loading{display:flex;flex-direction:column;gap:10px;min-height:128px;justify-content:center;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant));font-size:.875rem}.pfx-form-pending{height:0;overflow:hidden;visibility:hidden;pointer-events:none}.pfx-dialog-actions{padding:var(--pdx-dialog-actions-padding, 12px 24px 16px);border-top:1px solid var(--md-sys-color-outline-variant);background:transparent;display:flex;align-items:center;gap:8px}.pfx-save-shortcut-button{margin-right:auto}.pfx-save-shortcut-button mat-icon{margin-right:6px;width:18px;height:18px;font-size:18px}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type:
|
|
163
|
+
`, isInline: true, styles: [".pfx-dialog-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:8px}.pfx-dialog-title-text{display:inline-flex;align-items:center;gap:8px;margin:0;padding:0;font-weight:600;color:var(--mdc-dialog-subhead-color, var(--md-sys-color-on-surface))}.pfx-dialog-close{margin-left:auto}.pfx-filter-dialog-content{display:flex;flex-direction:column;gap:12px;padding-top:8px}.pfx-empty-state{margin:8px 0 0;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant))}.pfx-dialog-loading{display:flex;flex-direction:column;gap:10px;min-height:128px;justify-content:center;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant));font-size:.875rem}.pfx-form-pending{height:0;overflow:hidden;visibility:hidden;pointer-events:none}.pfx-dialog-actions{padding:var(--pdx-dialog-actions-padding, 12px 24px 16px);border-top:1px solid var(--md-sys-color-outline-variant);background:transparent;display:flex;align-items:center;gap:8px}.pfx-save-shortcut-button{margin-right:auto}.pfx-save-shortcut-button mat-icon{margin-right:6px;width:18px;height:18px;font-size:18px}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i15.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: PraxisFilterForm, selector: "praxis-filter-form", inputs: ["config", "formId", "resourcePath", "mode"], outputs: ["formReady", "valueChange", "submit", "requestSearch", "validityChange"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }] });
|
|
164
164
|
}
|
|
165
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: FilterFormDialogHostComponent, decorators: [{
|
|
166
166
|
type: Component,
|
|
167
167
|
args: [{ selector: 'praxis-filter-form-dialog-host', standalone: true, imports: [MatDialogModule, MatButtonModule, MatProgressBarModule, MatIconModule, MatTooltipModule, PraxisFilterForm, PraxisIconButtonComponent], template: `
|
|
168
|
-
<div
|
|
169
|
-
<
|
|
168
|
+
<div class="pfx-dialog-title">
|
|
169
|
+
<h2 mat-dialog-title class="pfx-dialog-title-text">
|
|
170
170
|
<mat-icon>tune</mat-icon>
|
|
171
171
|
<span>{{ data.title || 'Filtro avançado' }}</span>
|
|
172
|
-
</
|
|
172
|
+
</h2>
|
|
173
173
|
<button praxisIconButton="close" size="compact" type="button" class="pfx-dialog-close" (click)="close()"
|
|
174
|
-
[attr.aria-label]="data.i18n?.
|
|
174
|
+
[attr.aria-label]="data.i18n?.close || 'Fechar'"></button>
|
|
175
175
|
</div>
|
|
176
|
-
<mat-dialog-content class="pfx-filter-dialog-content"
|
|
176
|
+
<mat-dialog-content class="pfx-filter-dialog-content">
|
|
177
177
|
@if (data?.schemaLoading) {
|
|
178
178
|
<mat-progress-bar mode="indeterminate"></mat-progress-bar>
|
|
179
179
|
}
|
|
@@ -220,7 +220,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
220
220
|
{{ data.i18n?.apply || 'Aplicar' }}
|
|
221
221
|
</button>
|
|
222
222
|
</mat-dialog-actions>
|
|
223
|
-
`, styles: [".pfx-dialog-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:8px}.pfx-dialog-title-text{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--mdc-dialog-subhead-color, var(--md-sys-color-on-surface))}.pfx-dialog-close{margin-left:auto}.pfx-filter-dialog-content{display:flex;flex-direction:column;gap:12px;padding-top:8px}.pfx-empty-state{margin:8px 0 0;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant))}.pfx-dialog-loading{display:flex;flex-direction:column;gap:10px;min-height:128px;justify-content:center;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant));font-size:.875rem}.pfx-form-pending{height:0;overflow:hidden;visibility:hidden;pointer-events:none}.pfx-dialog-actions{padding:var(--pdx-dialog-actions-padding, 12px 24px 16px);border-top:1px solid var(--md-sys-color-outline-variant);background:transparent;display:flex;align-items:center;gap:8px}.pfx-save-shortcut-button{margin-right:auto}.pfx-save-shortcut-button mat-icon{margin-right:6px;width:18px;height:18px;font-size:18px}\n"] }]
|
|
223
|
+
`, styles: [".pfx-dialog-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:8px}.pfx-dialog-title-text{display:inline-flex;align-items:center;gap:8px;margin:0;padding:0;font-weight:600;color:var(--mdc-dialog-subhead-color, var(--md-sys-color-on-surface))}.pfx-dialog-close{margin-left:auto}.pfx-filter-dialog-content{display:flex;flex-direction:column;gap:12px;padding-top:8px}.pfx-empty-state{margin:8px 0 0;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant))}.pfx-dialog-loading{display:flex;flex-direction:column;gap:10px;min-height:128px;justify-content:center;color:var(--mdc-dialog-supporting-text-color, var(--md-sys-color-on-surface-variant));font-size:.875rem}.pfx-form-pending{height:0;overflow:hidden;visibility:hidden;pointer-events:none}.pfx-dialog-actions{padding:var(--pdx-dialog-actions-padding, 12px 24px 16px);border-top:1px solid var(--md-sys-color-outline-variant);background:transparent;display:flex;align-items:center;gap:8px}.pfx-save-shortcut-button{margin-right:auto}.pfx-save-shortcut-button mat-icon{margin-right:6px;width:18px;height:18px;font-size:18px}\n"] }]
|
|
224
224
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
225
225
|
type: Inject,
|
|
226
226
|
args: [MAT_DIALOG_DATA]
|