@praxisui/table 8.0.0-beta.30 → 8.0.0-beta.32
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 +41 -4
- package/fesm2022/praxisui-table-filter-form-dialog-host.component-DbwGIMjF.mjs +232 -0
- package/fesm2022/{praxisui-table-praxisui-table-DFBE5wpp.mjs → praxisui-table-praxisui-table-BoDxoDos.mjs} +10297 -9404
- package/fesm2022/praxisui-table-table-agentic-authoring-turn-flow-CretQI6Z.mjs +847 -0
- package/fesm2022/{praxisui-table-table-ai.adapter-7THXe94D.mjs → praxisui-table-table-ai.adapter-DW9a89Gl.mjs} +215 -94
- package/fesm2022/praxisui-table.mjs +1 -1
- package/filter-drawer-adapter/package.json +2 -1
- package/package.json +21 -20
- package/src/lib/praxis-table.json-api.md +2 -1
- package/{index.d.ts → types/praxisui-table.d.ts} +28 -10
- package/fesm2022/praxisui-table-filter-form-dialog-host.component-CN9JWFoa.mjs +0 -220
- package/fesm2022/praxisui-table-table-agentic-authoring-turn-flow-EigJf8mp.mjs +0 -335
- /package/{filter-drawer-adapter/index.d.ts → types/praxisui-table-filter-drawer-adapter.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AnalyticsTableConfigAdapterService,
|
|
1
|
+
export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PraxisFilter, n as PraxisFilterWidgetConfigEditor, o as PraxisTable, p as PraxisTableConfigEditor, q as PraxisTableInlineAuthoringEditorComponent, r as PraxisTableToolbar, s as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, t as TABLE_COMPONENT_AI_CAPABILITIES, u as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, v as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, w as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, y as TABLE_COMPONENT_EDIT_PLAN_KIND, E as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TASK_PRESETS, H as TableDefaultsProvider, I as TableRulesEditorComponent, K as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, L as VisualFormulaBuilderComponent, O as buildTableApplyPlan, Q as coerceTableComponentEditPlan, R as coerceTableComponentEditPlans, U as compileTableComponentEditPlan, W as compileTableComponentEditPlans, X as createTableAuthoringDocument, Y as getActionId, Z as getEnum, _ as getTableCapabilities, $ as getTableComponentEditPlanCapabilities, a0 as isTableRendererSupportedByRichContentP0, a1 as mapTableRendererToRichContentP0, a2 as normalizeTableAuthoringDocument, a3 as parseLegacyOrTableDocument, a4 as providePraxisFilterMetadata, a5 as providePraxisTableMetadata, a6 as serializeTableAuthoringDocument, a7 as toCanonicalTableConfig, a8 as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-BoDxoDos.mjs';
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.32",
|
|
4
4
|
"description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/common": "^
|
|
7
|
-
"@angular/core": "^
|
|
8
|
-
"@praxisui/ai": "^8.0.0-beta.
|
|
9
|
-
"@praxisui/core": "^8.0.0-beta.
|
|
10
|
-
"@praxisui/dynamic-fields": "^8.0.0-beta.
|
|
11
|
-
"@praxisui/dynamic-form": "^8.0.0-beta.
|
|
12
|
-
"@praxisui/metadata-editor": "^8.0.0-beta.
|
|
13
|
-
"@praxisui/rich-content": "^8.0.0-beta.
|
|
14
|
-
"@praxisui/settings-panel": "^8.0.0-beta.
|
|
15
|
-
"@praxisui/table-rule-builder": "^8.0.0-beta.
|
|
16
|
-
"@angular/cdk": "^
|
|
17
|
-
"@angular/forms": "^
|
|
18
|
-
"@angular/material": "^
|
|
19
|
-
"@angular/router": "^
|
|
20
|
-
"@praxisui/dialog": "^8.0.0-beta.
|
|
6
|
+
"@angular/common": "^21.0.0",
|
|
7
|
+
"@angular/core": "^21.0.0",
|
|
8
|
+
"@praxisui/ai": "^8.0.0-beta.32",
|
|
9
|
+
"@praxisui/core": "^8.0.0-beta.32",
|
|
10
|
+
"@praxisui/dynamic-fields": "^8.0.0-beta.32",
|
|
11
|
+
"@praxisui/dynamic-form": "^8.0.0-beta.32",
|
|
12
|
+
"@praxisui/metadata-editor": "^8.0.0-beta.32",
|
|
13
|
+
"@praxisui/rich-content": "^8.0.0-beta.32",
|
|
14
|
+
"@praxisui/settings-panel": "^8.0.0-beta.32",
|
|
15
|
+
"@praxisui/table-rule-builder": "^8.0.0-beta.32",
|
|
16
|
+
"@angular/cdk": "^21.0.0",
|
|
17
|
+
"@angular/forms": "^21.0.0",
|
|
18
|
+
"@angular/material": "^21.0.0",
|
|
19
|
+
"@angular/router": "^21.0.0",
|
|
20
|
+
"@praxisui/dialog": "^8.0.0-beta.32",
|
|
21
21
|
"rxjs": "~7.8.0"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
@@ -46,18 +46,19 @@
|
|
|
46
46
|
],
|
|
47
47
|
"sideEffects": false,
|
|
48
48
|
"module": "fesm2022/praxisui-table.mjs",
|
|
49
|
-
"typings": "
|
|
49
|
+
"typings": "types/praxisui-table.d.ts",
|
|
50
50
|
"exports": {
|
|
51
51
|
"./package.json": {
|
|
52
52
|
"default": "./package.json"
|
|
53
53
|
},
|
|
54
54
|
".": {
|
|
55
|
-
"types": "./
|
|
55
|
+
"types": "./types/praxisui-table.d.ts",
|
|
56
56
|
"default": "./fesm2022/praxisui-table.mjs"
|
|
57
57
|
},
|
|
58
58
|
"./filter-drawer-adapter": {
|
|
59
|
-
"types": "./filter-drawer-adapter
|
|
59
|
+
"types": "./types/praxisui-table-filter-drawer-adapter.d.ts",
|
|
60
60
|
"default": "./fesm2022/praxisui-table-filter-drawer-adapter.mjs"
|
|
61
61
|
}
|
|
62
|
-
}
|
|
62
|
+
},
|
|
63
|
+
"type": "module"
|
|
63
64
|
}
|
|
@@ -385,6 +385,7 @@ row selection through table affordances.
|
|
|
385
385
|
| `afterBulkDelete` | `rows[]` | Depois de bulk delete com sucesso. | Partial | Preservado da documentação anterior. |
|
|
386
386
|
| `bulkDeleteError` | `{ rows, error }` | Erro em operação de delete em lote. | Partial | Preservado da documentação anterior. |
|
|
387
387
|
| `schemaStatusChange` | `{ outdated, serverHash?, lastVerifiedAt?, trigger?, tableId? }` | Verificação de versão de schema concluída. | Partial | Usado para notificação de drift entre runtime e servidor. |
|
|
388
|
+
| `configChange` | `TableConfig` | Configuração materializada pelo runtime/editor/assistente. | Active | Permite que o host sincronize mudanças feitas por authoring em tempo de execução. |
|
|
388
389
|
| `metadataChange` | `{ trigger, meta, tableId? }` | Metadados operacionais atualizados pelo runtime/editor. | Partial | Emite contexto de trigger e a carga corrente de `config.meta`. |
|
|
389
390
|
| `loadingStateChange` | `LoadingState` | Mudança de estado (`config/schema/data/render`). | Active | Emitido por `emitLoadingState()`. |
|
|
390
391
|
|
|
@@ -810,7 +811,7 @@ Frontend (UI):
|
|
|
810
811
|
| `praxis-table-toolbar` | Barra superior/inferior com acoes, bulk e export | `toolbar`, `actions`, `export`, `behavior.filtering.*` |
|
|
811
812
|
| `praxis-filter` | Filtro avancado acoplado a toolbar | `behavior.filtering.advancedFilters.*`, `behavior.filtering.debounceTime`, `resourcePath` |
|
|
812
813
|
| `praxis-empty-state-card` | Estado inicial quando nao ha conexao remota | exibido quando nao ha `resourcePath` valido |
|
|
813
|
-
| `PraxisAiAssistantShellComponent` | Copiloto semantico opcional nos slots de toolbar | habilitado pelo runtime com turn orchestration e contexto seguro (nao exposto no JSON) |
|
|
814
|
+
| `PraxisAiAssistantShellComponent` | Copiloto semantico opcional nos slots de toolbar | habilitado pelo runtime com turn orchestration e contexto seguro; ao minimizar, a sessao fica no registry com `presence: "origin-anchor"` e o affordance volta ao gatilho da tabela (nao exposto no JSON) |
|
|
814
815
|
| Angular Material + CDK | Base de tabela, menus, selecao e virtual scroll | `behavior.pagination.*`, `behavior.selection.*`, `behavior.virtualization.*`, `appearance.spacing.*` |
|
|
815
816
|
|
|
816
817
|
Backend e contratos:
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import * as _praxisui_core from '@praxisui/core';
|
|
2
|
+
import { TableConfig, LoggerService, PraxisI18nService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ConnectionStorage, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
1
3
|
import * as i0 from '@angular/core';
|
|
2
4
|
import { OnDestroy, EventEmitter, ElementRef, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, Provider, AfterContentInit, Injector } from '@angular/core';
|
|
3
5
|
import { ActivatedRoute } from '@angular/router';
|
|
4
6
|
import { MatTable, MatTableDataSource } from '@angular/material/table';
|
|
7
|
+
import * as _angular_material_paginator from '@angular/material/paginator';
|
|
5
8
|
import { MatPaginatorSelectConfig, MatPaginator, PageEvent } from '@angular/material/paginator';
|
|
6
9
|
import { MatSort, Sort } from '@angular/material/sort';
|
|
7
10
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
@@ -9,8 +12,6 @@ import { SelectionModel } from '@angular/cdk/collections';
|
|
|
9
12
|
import { CdkDragDrop, CdkDragEnd, CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';
|
|
10
13
|
import { BehaviorSubject, Subscription, Observable } from 'rxjs';
|
|
11
14
|
import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
|
|
12
|
-
import * as _praxisui_core from '@praxisui/core';
|
|
13
|
-
import { TableConfig, LoggerService, PraxisI18nService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ConnectionStorage, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
|
|
14
15
|
import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
|
|
15
16
|
import { MatDialog } from '@angular/material/dialog';
|
|
16
17
|
import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
|
|
@@ -20,7 +21,6 @@ import { PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssista
|
|
|
20
21
|
import { HttpClient } from '@angular/common/http';
|
|
21
22
|
import { MatTabChangeEvent } from '@angular/material/tabs';
|
|
22
23
|
import { RuleEffectDefinition } from '@praxisui/table-rule-builder';
|
|
23
|
-
import * as _angular_material_paginator_d_Zo1cMMo4 from '@angular/material/paginator.d-Zo1cMMo4';
|
|
24
24
|
import { MatCheckboxChange } from '@angular/material/checkbox';
|
|
25
25
|
|
|
26
26
|
interface ActionLike {
|
|
@@ -835,6 +835,10 @@ type SchemaFieldHint = {
|
|
|
835
835
|
optionValueKey?: string;
|
|
836
836
|
enumValues?: string[];
|
|
837
837
|
};
|
|
838
|
+
type FilterSchemaFieldHint = SchemaFieldHint & {
|
|
839
|
+
relatedColumnFields?: string[];
|
|
840
|
+
relatedColumnLabels?: string[];
|
|
841
|
+
};
|
|
838
842
|
type PraxisDataQueryContextBridge = {
|
|
839
843
|
filters?: Record<string, unknown> | null;
|
|
840
844
|
sort?: string[] | null;
|
|
@@ -986,6 +990,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
986
990
|
afterBulkDelete: EventEmitter<any>;
|
|
987
991
|
bulkDeleteError: EventEmitter<any>;
|
|
988
992
|
schemaStatusChange: EventEmitter<any>;
|
|
993
|
+
configChange: EventEmitter<_praxisui_core.TableConfigModern>;
|
|
989
994
|
metadataChange: EventEmitter<any>;
|
|
990
995
|
loadingStateChange: EventEmitter<LoadingState>;
|
|
991
996
|
collectionLinksChange: EventEmitter<RestApiLinks | null>;
|
|
@@ -1059,6 +1064,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1059
1064
|
private readonly collectionExport;
|
|
1060
1065
|
private readonly paginatorIntl;
|
|
1061
1066
|
private schemaFieldsSnapshot;
|
|
1067
|
+
private filterSchemaFieldsSnapshot;
|
|
1062
1068
|
private runtimeSchemaMeta;
|
|
1063
1069
|
schemaError: boolean;
|
|
1064
1070
|
dataError: boolean;
|
|
@@ -1153,6 +1159,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1153
1159
|
get hostColumnBordersClass(): boolean;
|
|
1154
1160
|
trackByRow(index: number, item: any): any;
|
|
1155
1161
|
getSchemaFieldsSnapshot(): SchemaFieldHint[];
|
|
1162
|
+
getFilterSchemaFieldsSnapshot(): FilterSchemaFieldHint[];
|
|
1163
|
+
ensureFilterSchemaFieldsSnapshot(): Promise<void>;
|
|
1156
1164
|
aiAdapter: any;
|
|
1157
1165
|
private aiAdapterLoadStarted;
|
|
1158
1166
|
private aiAssistantOpenAfterAdapterLoad;
|
|
@@ -1204,6 +1212,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1204
1212
|
private recomputeLocalView;
|
|
1205
1213
|
private resolveLocalSortField;
|
|
1206
1214
|
private setSchemaFieldsSnapshot;
|
|
1215
|
+
private setFilterSchemaFieldsSnapshot;
|
|
1216
|
+
private resolveFilterSchemaRelatedColumns;
|
|
1217
|
+
private normalizeFieldAlias;
|
|
1207
1218
|
private normalizeSchemaOptions;
|
|
1208
1219
|
private normalizeEnumValues;
|
|
1209
1220
|
private normalizeSchemaKey;
|
|
@@ -1227,6 +1238,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1227
1238
|
private ensureAiAdapterLoaded;
|
|
1228
1239
|
openAiAssistant(): void;
|
|
1229
1240
|
aiAssistantTriggerTestId(position: string): string;
|
|
1241
|
+
hasMinimizedAiAssistantSession(): boolean;
|
|
1242
|
+
aiAssistantTriggerIcon(): string;
|
|
1243
|
+
aiAssistantTriggerBadge(): string;
|
|
1244
|
+
aiAssistantTriggerLabel(): string;
|
|
1245
|
+
aiAssistantTriggerTooltip(): string;
|
|
1230
1246
|
openAiAssistantFromSession(session: PraxisAssistantSessionSnapshot): void;
|
|
1231
1247
|
closeAiAssistant(): void;
|
|
1232
1248
|
onAiAssistantPromptChange(prompt: string): void;
|
|
@@ -1575,6 +1591,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1575
1591
|
*/
|
|
1576
1592
|
private verifyServerSchemaVersion;
|
|
1577
1593
|
private loadSchema;
|
|
1594
|
+
private loadFilterSchemaSnapshot;
|
|
1578
1595
|
private convertFieldToColumn;
|
|
1579
1596
|
/**
|
|
1580
1597
|
* Apply automatic renderer hints based on schema field metadata.
|
|
@@ -1877,6 +1894,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1877
1894
|
private deriveAvatarInitials;
|
|
1878
1895
|
getAvatarInitials(row: any, column: ColumnDefinition): string;
|
|
1879
1896
|
getAvatarRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
|
|
1897
|
+
private getAvatarRichContentStyle;
|
|
1880
1898
|
getAvatarShape(row: any, column: ColumnDefinition): 'square' | 'rounded' | 'circle' | undefined;
|
|
1881
1899
|
getAvatarStyle(row: any, column: ColumnDefinition): Record<string, string> | null;
|
|
1882
1900
|
getToggleState(row: any, column: ColumnDefinition): boolean;
|
|
@@ -2002,7 +2020,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2002
2020
|
private scheduleRowDiscoveryMarkForCheck;
|
|
2003
2021
|
ngOnDestroy(): void;
|
|
2004
2022
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTable, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
2005
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
|
|
2023
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "configChange": "configChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
|
|
2006
2024
|
static ngAcceptInputType_enableCustomization: unknown;
|
|
2007
2025
|
}
|
|
2008
2026
|
|
|
@@ -3751,7 +3769,7 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
3751
3769
|
[key: number]: string;
|
|
3752
3770
|
}>;
|
|
3753
3771
|
mappingPairs: ValueMappingPair[];
|
|
3754
|
-
dataSource: MatTableDataSource<ValueMappingPair,
|
|
3772
|
+
dataSource: MatTableDataSource<ValueMappingPair, _angular_material_paginator.MatPaginator>;
|
|
3755
3773
|
displayedColumns: string[];
|
|
3756
3774
|
showImportDialog: boolean;
|
|
3757
3775
|
importJsonText: string;
|
|
@@ -3982,9 +4000,9 @@ type ComponentEditPlanCapability = {
|
|
|
3982
4000
|
declare const TABLE_COMPONENT_EDIT_PLAN_KIND = "praxis.table.component-edit-plan";
|
|
3983
4001
|
declare const TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND = "praxis.table.component-edit-plan.batch";
|
|
3984
4002
|
declare const TABLE_COMPONENT_EDIT_PLAN_VERSION = "1.0";
|
|
3985
|
-
type TableComponentEditChangeKind = 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_filterable' | 'set_column_sortable' | 'set_column_width' | 'set_column_align' | 'set_column_sticky' | 'set_column_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_renderer' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers' | 'set_row_conditional_renderer' | 'configure_table_filtering' | 'configure_table_pagination' | 'configure_table_selection' | 'configure_table_sorting' | 'configure_toolbar' | 'configure_export' | 'set_table_density' | 'set_toolbar_visibility';
|
|
3986
|
-
type TableComponentEditOperationId = 'column.format.set' | 'column.header.set' | 'column.visibility.set' | 'column.filterable.set' | 'column.sortable.set' | 'column.width.set' | 'column.align.set' | 'column.sticky.set' | 'column.renderer.set' | 'column.valueMapping.set' | 'column.conditionalStyle.add' | 'column.conditionalRenderer.add' | 'column.computed.add' | 'row.conditionalRenderer.add' | 'behavior.filtering.configure' | 'behavior.pagination.configure' | 'behavior.selection.configure' | 'behavior.sorting.configure' | 'toolbar.configure' | 'export.configure' | 'appearance.density.set' | 'toolbar.visibility.set';
|
|
3987
|
-
declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_align", "set_column_sticky", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "configure_export", "set_table_density", "set_toolbar_visibility"];
|
|
4003
|
+
type TableComponentEditChangeKind = 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_filterable' | 'set_column_sortable' | 'set_column_width' | 'set_column_align' | 'set_column_sticky' | 'set_column_conditional_style' | 'set_row_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_renderer' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers' | 'set_row_conditional_renderer' | 'configure_table_filtering' | 'configure_advanced_filters' | 'add_advanced_filter_fields' | 'remove_advanced_filter_fields' | 'configure_table_pagination' | 'configure_table_selection' | 'configure_table_sorting' | 'configure_toolbar' | 'add_toolbar_action' | 'configure_export' | 'set_table_density' | 'set_toolbar_visibility';
|
|
4004
|
+
type TableComponentEditOperationId = 'column.format.set' | 'column.header.set' | 'column.visibility.set' | 'column.filterable.set' | 'column.sortable.set' | 'column.width.set' | 'column.align.set' | 'column.sticky.set' | 'column.renderer.set' | 'column.valueMapping.set' | 'column.conditionalStyle.add' | 'row.styleRule.add' | 'column.conditionalRenderer.add' | 'column.computed.add' | 'row.conditionalRenderer.add' | 'behavior.filtering.configure' | 'filter.advanced.configure' | 'filter.advanced.fields.add' | 'filter.advanced.fields.remove' | 'behavior.pagination.configure' | 'behavior.selection.configure' | 'behavior.sorting.configure' | 'toolbar.configure' | 'toolbar.action.add' | 'export.configure' | 'appearance.density.set' | 'toolbar.visibility.set';
|
|
4005
|
+
declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_align", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
|
|
3988
4006
|
declare const TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS: Record<TableComponentEditChangeKind, string>;
|
|
3989
4007
|
interface TableComponentEditPlan {
|
|
3990
4008
|
kind?: typeof TABLE_COMPONENT_EDIT_PLAN_KIND;
|
|
@@ -4026,7 +4044,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
|
|
|
4026
4044
|
readonly $defs: {
|
|
4027
4045
|
readonly changeKind: {
|
|
4028
4046
|
readonly type: "string";
|
|
4029
|
-
readonly enum: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_align", "set_column_sticky", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "configure_export", "set_table_density", "set_toolbar_visibility"];
|
|
4047
|
+
readonly enum: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_align", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
|
|
4030
4048
|
};
|
|
4031
4049
|
readonly capabilityPath: {
|
|
4032
4050
|
readonly type: "string";
|
|
@@ -4082,7 +4100,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
|
|
|
4082
4100
|
readonly const: "praxis-table";
|
|
4083
4101
|
};
|
|
4084
4102
|
readonly operationId: {
|
|
4085
|
-
readonly enum: readonly ["column.format.set", "column.header.set", "column.visibility.set", "column.filterable.set", "column.sortable.set", "column.width.set", "column.align.set", "column.sticky.set", "column.renderer.set", "column.valueMapping.set", "column.conditionalStyle.add", "column.conditionalRenderer.add", "column.computed.add", "row.conditionalRenderer.add", "behavior.filtering.configure", "behavior.pagination.configure", "behavior.selection.configure", "behavior.sorting.configure", "toolbar.configure", "export.configure", "appearance.density.set", "toolbar.visibility.set"];
|
|
4103
|
+
readonly enum: readonly ["column.format.set", "column.header.set", "column.visibility.set", "column.filterable.set", "column.sortable.set", "column.width.set", "column.align.set", "column.sticky.set", "column.renderer.set", "column.valueMapping.set", "column.conditionalStyle.add", "row.styleRule.add", "column.conditionalRenderer.add", "column.computed.add", "row.conditionalRenderer.add", "behavior.filtering.configure", "filter.advanced.configure", "filter.advanced.fields.add", "filter.advanced.fields.remove", "behavior.pagination.configure", "behavior.selection.configure", "behavior.sorting.configure", "toolbar.configure", "toolbar.action.add", "export.configure", "appearance.density.set", "toolbar.visibility.set"];
|
|
4086
4104
|
};
|
|
4087
4105
|
readonly target: true;
|
|
4088
4106
|
readonly input: true;
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Inject, Component } from '@angular/core';
|
|
3
|
-
import * as i2 from '@angular/common';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i1 from '@angular/material/dialog';
|
|
6
|
-
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
7
|
-
import * as i3 from '@angular/material/button';
|
|
8
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
9
|
-
import * as i15 from '@angular/material/progress-bar';
|
|
10
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
11
|
-
import * as i5 from '@angular/material/icon';
|
|
12
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
13
|
-
import * as i10 from '@angular/material/tooltip';
|
|
14
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
15
|
-
import { PraxisFilterForm } from '@praxisui/dynamic-form';
|
|
16
|
-
|
|
17
|
-
class FilterFormDialogHostComponent {
|
|
18
|
-
data;
|
|
19
|
-
ref;
|
|
20
|
-
valid = true;
|
|
21
|
-
ready = false;
|
|
22
|
-
lastValue = {};
|
|
23
|
-
formGroup = null;
|
|
24
|
-
canSave = false;
|
|
25
|
-
saving = false;
|
|
26
|
-
constructor(data, ref) {
|
|
27
|
-
this.data = data;
|
|
28
|
-
this.ref = ref;
|
|
29
|
-
}
|
|
30
|
-
onReady(ev) {
|
|
31
|
-
try {
|
|
32
|
-
this.formGroup = ev?.formGroup || null;
|
|
33
|
-
const dto = this.data?.initialDto || {};
|
|
34
|
-
if (ev?.formGroup && dto && Object.keys(dto).length) {
|
|
35
|
-
ev.formGroup.patchValue(dto, { emitEvent: false });
|
|
36
|
-
}
|
|
37
|
-
this.lastValue = this.formGroup?.getRawValue?.() ?? this.lastValue;
|
|
38
|
-
}
|
|
39
|
-
catch { }
|
|
40
|
-
this.ready = true;
|
|
41
|
-
this.updateCanSave();
|
|
42
|
-
}
|
|
43
|
-
onChange(ev) {
|
|
44
|
-
this.lastValue = ev?.formData ?? {};
|
|
45
|
-
this.updateCanSave();
|
|
46
|
-
}
|
|
47
|
-
onValidity(v) {
|
|
48
|
-
this.valid = v;
|
|
49
|
-
this.updateCanSave();
|
|
50
|
-
}
|
|
51
|
-
apply() {
|
|
52
|
-
const formData = this.formGroup?.getRawValue?.() ??
|
|
53
|
-
this.lastValue ??
|
|
54
|
-
this.data?.initialDto ??
|
|
55
|
-
{};
|
|
56
|
-
this.ref.close({ formData });
|
|
57
|
-
}
|
|
58
|
-
close() { this.ref.close(); }
|
|
59
|
-
clean(obj) {
|
|
60
|
-
const out = {};
|
|
61
|
-
Object.keys(obj || {}).forEach((k) => {
|
|
62
|
-
const v = obj[k];
|
|
63
|
-
if (v !== '' && v !== null && v !== undefined)
|
|
64
|
-
out[k] = v;
|
|
65
|
-
});
|
|
66
|
-
return out;
|
|
67
|
-
}
|
|
68
|
-
buildDtoForSave() {
|
|
69
|
-
const base = this.data?.initialDto || {};
|
|
70
|
-
const current = this.formGroup?.getRawValue?.() ?? this.lastValue ?? {};
|
|
71
|
-
const merged = { ...base, ...current };
|
|
72
|
-
return this.clean(merged);
|
|
73
|
-
}
|
|
74
|
-
updateCanSave() {
|
|
75
|
-
this.canSave =
|
|
76
|
-
this.ready &&
|
|
77
|
-
this.valid &&
|
|
78
|
-
Object.keys(this.buildDtoForSave() || {}).length > 0;
|
|
79
|
-
}
|
|
80
|
-
saveShortcutTooltip() {
|
|
81
|
-
if (this.saving) {
|
|
82
|
-
return this.data.i18n?.shortcutSaving || 'Salvando atalho...';
|
|
83
|
-
}
|
|
84
|
-
if (!this.valid) {
|
|
85
|
-
return this.data.i18n?.shortcutInvalid || 'Corrija os filtros antes de salvar o atalho.';
|
|
86
|
-
}
|
|
87
|
-
if (!Object.keys(this.buildDtoForSave() || {}).length) {
|
|
88
|
-
return this.data.i18n?.shortcutRequiresFilter || 'Preencha ao menos um filtro para salvar um atalho.';
|
|
89
|
-
}
|
|
90
|
-
return '';
|
|
91
|
-
}
|
|
92
|
-
saveShortcut() {
|
|
93
|
-
if (!this.canSave || this.saving)
|
|
94
|
-
return;
|
|
95
|
-
const dto = this.buildDtoForSave();
|
|
96
|
-
if (!Object.keys(dto).length)
|
|
97
|
-
return;
|
|
98
|
-
this.saving = true;
|
|
99
|
-
try {
|
|
100
|
-
this.data?.onSaveShortcut?.(dto);
|
|
101
|
-
}
|
|
102
|
-
finally {
|
|
103
|
-
this.saving = false;
|
|
104
|
-
this.updateCanSave();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FilterFormDialogHostComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
108
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: FilterFormDialogHostComponent, isStandalone: true, selector: "praxis-filter-form-dialog-host", ngImport: i0, template: `
|
|
109
|
-
<div mat-dialog-title class="pfx-dialog-title" id="filterDialogTitle">
|
|
110
|
-
<div class="pfx-dialog-title-text">
|
|
111
|
-
<mat-icon>tune</mat-icon>
|
|
112
|
-
<span>{{ data.title || 'Filtro avançado' }}</span>
|
|
113
|
-
</div>
|
|
114
|
-
<button mat-icon-button type="button" class="pfx-dialog-close" (click)="close()"
|
|
115
|
-
[attr.aria-label]="data.i18n?.cancel || 'Fechar'">
|
|
116
|
-
<mat-icon>close</mat-icon>
|
|
117
|
-
</button>
|
|
118
|
-
</div>
|
|
119
|
-
<mat-dialog-content class="pfx-filter-dialog-content" aria-labelledby="filterDialogTitle">
|
|
120
|
-
<mat-progress-bar *ngIf="data?.schemaLoading" mode="indeterminate"></mat-progress-bar>
|
|
121
|
-
<div
|
|
122
|
-
*ngIf="data?.config && !ready"
|
|
123
|
-
class="pfx-dialog-loading"
|
|
124
|
-
role="status"
|
|
125
|
-
aria-live="polite"
|
|
126
|
-
>
|
|
127
|
-
<mat-progress-bar mode="indeterminate"></mat-progress-bar>
|
|
128
|
-
<span>{{ data.i18n?.opening || 'Carregando filtros...' }}</span>
|
|
129
|
-
</div>
|
|
130
|
-
<praxis-filter-form
|
|
131
|
-
*ngIf="data?.config"
|
|
132
|
-
[class.pfx-form-pending]="!ready"
|
|
133
|
-
[formId]="data.formId"
|
|
134
|
-
[resourcePath]="data.resourcePath"
|
|
135
|
-
[mode]="'edit'"
|
|
136
|
-
[config]="data.config"
|
|
137
|
-
(formReady)="onReady($event)"
|
|
138
|
-
(valueChange)="onChange($event)"
|
|
139
|
-
(validityChange)="onValidity($event)"
|
|
140
|
-
></praxis-filter-form>
|
|
141
|
-
<p *ngIf="!data?.config && !data?.schemaLoading" class="pfx-empty-state">{{ data.i18n?.noData || 'Nenhum dado' }}</p>
|
|
142
|
-
</mat-dialog-content>
|
|
143
|
-
<mat-dialog-actions align="end" class="pfx-dialog-actions">
|
|
144
|
-
<button mat-stroked-button type="button"
|
|
145
|
-
class="pfx-save-shortcut-button"
|
|
146
|
-
*ngIf="data?.allowSaveTags"
|
|
147
|
-
[disabled]="!canSave || saving"
|
|
148
|
-
[matTooltip]="saveShortcutTooltip()"
|
|
149
|
-
[matTooltipDisabled]="canSave && !saving"
|
|
150
|
-
(click)="saveShortcut()">
|
|
151
|
-
<mat-icon aria-hidden="true">{{ saving ? 'hourglass_empty' : 'bookmark_add' }}</mat-icon>
|
|
152
|
-
{{ data.i18n?.saveAsShortcut || 'Salvar como atalho' }}
|
|
153
|
-
</button>
|
|
154
|
-
<button mat-stroked-button type="button" (click)="close()">{{ data.i18n?.cancel || 'Cancelar' }}</button>
|
|
155
|
-
<button mat-flat-button color="primary" (click)="apply()" [disabled]="!valid">
|
|
156
|
-
{{ data.i18n?.apply || 'Aplicar' }}
|
|
157
|
-
</button>
|
|
158
|
-
</mat-dialog-actions>
|
|
159
|
-
`, 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: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", 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: i5.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"] }] });
|
|
160
|
-
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: FilterFormDialogHostComponent, decorators: [{
|
|
162
|
-
type: Component,
|
|
163
|
-
args: [{ selector: 'praxis-filter-form-dialog-host', standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule, MatProgressBarModule, MatIconModule, MatTooltipModule, PraxisFilterForm], template: `
|
|
164
|
-
<div mat-dialog-title class="pfx-dialog-title" id="filterDialogTitle">
|
|
165
|
-
<div class="pfx-dialog-title-text">
|
|
166
|
-
<mat-icon>tune</mat-icon>
|
|
167
|
-
<span>{{ data.title || 'Filtro avançado' }}</span>
|
|
168
|
-
</div>
|
|
169
|
-
<button mat-icon-button type="button" class="pfx-dialog-close" (click)="close()"
|
|
170
|
-
[attr.aria-label]="data.i18n?.cancel || 'Fechar'">
|
|
171
|
-
<mat-icon>close</mat-icon>
|
|
172
|
-
</button>
|
|
173
|
-
</div>
|
|
174
|
-
<mat-dialog-content class="pfx-filter-dialog-content" aria-labelledby="filterDialogTitle">
|
|
175
|
-
<mat-progress-bar *ngIf="data?.schemaLoading" mode="indeterminate"></mat-progress-bar>
|
|
176
|
-
<div
|
|
177
|
-
*ngIf="data?.config && !ready"
|
|
178
|
-
class="pfx-dialog-loading"
|
|
179
|
-
role="status"
|
|
180
|
-
aria-live="polite"
|
|
181
|
-
>
|
|
182
|
-
<mat-progress-bar mode="indeterminate"></mat-progress-bar>
|
|
183
|
-
<span>{{ data.i18n?.opening || 'Carregando filtros...' }}</span>
|
|
184
|
-
</div>
|
|
185
|
-
<praxis-filter-form
|
|
186
|
-
*ngIf="data?.config"
|
|
187
|
-
[class.pfx-form-pending]="!ready"
|
|
188
|
-
[formId]="data.formId"
|
|
189
|
-
[resourcePath]="data.resourcePath"
|
|
190
|
-
[mode]="'edit'"
|
|
191
|
-
[config]="data.config"
|
|
192
|
-
(formReady)="onReady($event)"
|
|
193
|
-
(valueChange)="onChange($event)"
|
|
194
|
-
(validityChange)="onValidity($event)"
|
|
195
|
-
></praxis-filter-form>
|
|
196
|
-
<p *ngIf="!data?.config && !data?.schemaLoading" class="pfx-empty-state">{{ data.i18n?.noData || 'Nenhum dado' }}</p>
|
|
197
|
-
</mat-dialog-content>
|
|
198
|
-
<mat-dialog-actions align="end" class="pfx-dialog-actions">
|
|
199
|
-
<button mat-stroked-button type="button"
|
|
200
|
-
class="pfx-save-shortcut-button"
|
|
201
|
-
*ngIf="data?.allowSaveTags"
|
|
202
|
-
[disabled]="!canSave || saving"
|
|
203
|
-
[matTooltip]="saveShortcutTooltip()"
|
|
204
|
-
[matTooltipDisabled]="canSave && !saving"
|
|
205
|
-
(click)="saveShortcut()">
|
|
206
|
-
<mat-icon aria-hidden="true">{{ saving ? 'hourglass_empty' : 'bookmark_add' }}</mat-icon>
|
|
207
|
-
{{ data.i18n?.saveAsShortcut || 'Salvar como atalho' }}
|
|
208
|
-
</button>
|
|
209
|
-
<button mat-stroked-button type="button" (click)="close()">{{ data.i18n?.cancel || 'Cancelar' }}</button>
|
|
210
|
-
<button mat-flat-button color="primary" (click)="apply()" [disabled]="!valid">
|
|
211
|
-
{{ data.i18n?.apply || 'Aplicar' }}
|
|
212
|
-
</button>
|
|
213
|
-
</mat-dialog-actions>
|
|
214
|
-
`, 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"] }]
|
|
215
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
216
|
-
type: Inject,
|
|
217
|
-
args: [MAT_DIALOG_DATA]
|
|
218
|
-
}] }, { type: i1.MatDialogRef }] });
|
|
219
|
-
|
|
220
|
-
export { FilterFormDialogHostComponent };
|