@praxisui/table 10.0.0-rc.4 → 10.0.0-rc.41
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 +100 -3
- package/ai/component-registry.json +1276 -258
- package/docs/dynamic-filter-host-integration-guide.md +44 -1
- package/docs/dynamic-filter-payload-contract.md +29 -6
- package/docs/governed-page-widget-adapter.md +55 -0
- package/docs/local-data-mode-precedence.md +21 -0
- package/fesm2022/praxisui-table-authoring.mjs +2205 -0
- package/fesm2022/{praxisui-table-filter-form-dialog-host.component-DANYIQs6.mjs → praxisui-table-filter-form-dialog-host.component-Cst6rkAK.mjs} +51 -8
- package/fesm2022/{praxisui-table-praxisui-table-DKvwb6v1.mjs → praxisui-table-praxisui-table-CdEy3SYM.mjs} +17416 -2456
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-BzjYuDvo.mjs → praxisui-table-table-agentic-authoring-turn-flow-sQz0BpSY.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-CPgpIGoi.mjs → praxisui-table-table-ai.adapter-DEetBMv9.mjs} +6 -5
- package/fesm2022/praxisui-table.mjs +2 -1
- package/package.json +14 -10
- package/src/lib/praxis-table.json-api.md +39 -9
- package/types/praxisui-table-authoring.d.ts +132 -0
- package/types/praxisui-table.d.ts +1008 -36
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterViewChecked, AfterContentInit, Injector, Type } from '@angular/core';
|
|
3
1
|
import * as _praxisui_core from '@praxisui/core';
|
|
4
|
-
import { TableToolbarAppearanceConfig, TableConfig, TableToolbarAppearanceDensity, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, FilterPresentationConfig, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState,
|
|
2
|
+
import { BulkExecutionContract, ResourceDiscoveryRequestOptions, BulkWireId, RestApiLinks, BulkSyncSession, BulkFieldChange, TableToolbarAppearanceConfig, TableConfig, TableToolbarAppearanceDensity, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, FilterPresentationConfig, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, DynamicDataRecord, MaterializedResourceIdentity, TableConfigInput, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, ColumnDefinition, RichBlockNode, EmptyAction, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, RichContentDocument, RichBlockHostCapabilities, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, ResourceQuickViewBinding, ApiEndpoint, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, PraxisPresentationVisualizationThreshold, PraxisPresentationVisualizationTone, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, DiscoveredResourceOption, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, ResourceQuickConnectComponent, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, TableDrawerConfig, PraxisAnalyticalDrawerTab, PraxisPresentationVisualizationConfig, PraxisAnalyticalDrawerSchema, SafeExpressionEvaluator, PraxisComputedFieldsConfig, PraxisComputedFieldDefinition, GovernedPagePreviewWidgetAdapter, WidgetInstance } from '@praxisui/core';
|
|
3
|
+
export { DynamicDataCollection, DynamicDataRecord, DynamicRecordMeta, ResourceLinkItem, ResourceLinks, createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterViewChecked, AfterContentInit, TemplateRef, Injector, Type } from '@angular/core';
|
|
5
6
|
import { ActivatedRoute } from '@angular/router';
|
|
6
7
|
import { SafeHtml } from '@angular/platform-browser';
|
|
7
8
|
import { MatTable, MatTableDataSource } from '@angular/material/table';
|
|
@@ -39,6 +40,32 @@ interface TableCollectionOutcome {
|
|
|
39
40
|
}>;
|
|
40
41
|
}
|
|
41
42
|
|
|
43
|
+
interface TableBulkSyncSelection {
|
|
44
|
+
id: BulkWireId;
|
|
45
|
+
links: RestApiLinks;
|
|
46
|
+
}
|
|
47
|
+
/** Detached, one-invocation context owned by the table. */
|
|
48
|
+
interface TableBulkSyncContext {
|
|
49
|
+
resourcePath: string;
|
|
50
|
+
resourceKey: string;
|
|
51
|
+
tableId: string;
|
|
52
|
+
identityPath: string;
|
|
53
|
+
contract: BulkExecutionContract;
|
|
54
|
+
options?: ResourceDiscoveryRequestOptions;
|
|
55
|
+
selection: readonly TableBulkSyncSelection[];
|
|
56
|
+
}
|
|
57
|
+
/** Private, table-owned custody for one evaluated intent in this component instance. */
|
|
58
|
+
interface TableBulkSyncHandle {
|
|
59
|
+
context: TableBulkSyncContext;
|
|
60
|
+
session: BulkSyncSession;
|
|
61
|
+
confirmationKey: string | null;
|
|
62
|
+
/** Await an already dispatched session request before a remount authorizes projections. */
|
|
63
|
+
pendingSessionWork?: Promise<unknown> | null;
|
|
64
|
+
requestedChanges: readonly BulkFieldChange[] | null;
|
|
65
|
+
enterpriseIdentity: string | undefined;
|
|
66
|
+
operationalIdentity: string;
|
|
67
|
+
}
|
|
68
|
+
|
|
42
69
|
interface ActionLike {
|
|
43
70
|
action?: string;
|
|
44
71
|
id?: string;
|
|
@@ -51,6 +78,23 @@ interface ActionLike {
|
|
|
51
78
|
}
|
|
52
79
|
declare function getActionId(action: ActionLike): string;
|
|
53
80
|
|
|
81
|
+
interface PraxisTableCrossFilterItem {
|
|
82
|
+
id: string;
|
|
83
|
+
field: string;
|
|
84
|
+
label: string;
|
|
85
|
+
value: unknown;
|
|
86
|
+
prefix?: string;
|
|
87
|
+
rawFilter?: Record<string, unknown>;
|
|
88
|
+
}
|
|
89
|
+
interface PraxisTableQueryContextClearEvent {
|
|
90
|
+
field?: string;
|
|
91
|
+
clearedFields?: string[];
|
|
92
|
+
clearedFilter?: PraxisTableCrossFilterItem;
|
|
93
|
+
remainingFilters?: Record<string, unknown>;
|
|
94
|
+
remainingFilterCount?: number;
|
|
95
|
+
tableId?: string;
|
|
96
|
+
source?: 'toolbar-chip' | 'quick-filter' | 'advanced-filter';
|
|
97
|
+
}
|
|
54
98
|
declare const PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS: Record<string, TableToolbarAppearanceConfig>;
|
|
55
99
|
declare const PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE: InjectionToken<TableToolbarAppearanceConfig>;
|
|
56
100
|
declare const PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS: InjectionToken<Record<string, TableToolbarAppearanceConfig>>;
|
|
@@ -86,8 +130,11 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
|
|
|
86
130
|
evaluationContext: Record<string, any> | null;
|
|
87
131
|
activeQuickFilterId: string | null;
|
|
88
132
|
activeDensity: TableToolbarAppearanceDensity | null;
|
|
133
|
+
activeCrossFilters: PraxisTableCrossFilterItem[];
|
|
89
134
|
/** @internal Used by PraxisTable so toolbar menu decisions materialize through the table runtime. */
|
|
90
135
|
columnVisibilityController?: (field: string, visible: boolean) => void;
|
|
136
|
+
readonly clearCrossFilter: EventEmitter<PraxisTableCrossFilterItem>;
|
|
137
|
+
readonly clearAllCrossFilters: EventEmitter<void>;
|
|
91
138
|
toolbarAction: EventEmitter<Pick<ToolbarActionEvent<Record<string, unknown>>, "action" | "actionConfig" | "focusOrigin">>;
|
|
92
139
|
exportAction: EventEmitter<{
|
|
93
140
|
format: string;
|
|
@@ -152,6 +199,7 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
|
|
|
152
199
|
filter: Record<string, unknown>;
|
|
153
200
|
icon?: string;
|
|
154
201
|
}>;
|
|
202
|
+
private normalizeQuickFilterExpression;
|
|
155
203
|
shouldShowQuickFilters(): boolean;
|
|
156
204
|
getQuickFiltersLabel(): string;
|
|
157
205
|
getQuickFilterLabel(filter: {
|
|
@@ -163,6 +211,15 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
|
|
|
163
211
|
id: string;
|
|
164
212
|
filter: Record<string, unknown>;
|
|
165
213
|
}): void;
|
|
214
|
+
hasActiveCrossFilters(): boolean;
|
|
215
|
+
getActiveCrossFilters(): PraxisTableCrossFilterItem[];
|
|
216
|
+
getCrossFiltersAriaLabel(): string;
|
|
217
|
+
getCrossFilterDefaultPrefix(): string;
|
|
218
|
+
getClearCrossFilterAriaLabel(filter: PraxisTableCrossFilterItem): string;
|
|
219
|
+
getClearCrossFilterTooltip(filter: PraxisTableCrossFilterItem): string;
|
|
220
|
+
getClearAllCrossFiltersLabel(): string;
|
|
221
|
+
onClearCrossFilter(filter: PraxisTableCrossFilterItem): void;
|
|
222
|
+
onClearAllCrossFilters(): void;
|
|
166
223
|
isDensityToggleEnabled(): boolean;
|
|
167
224
|
getDensityToggleLabel(): string;
|
|
168
225
|
getDensityOptions(): TableToolbarAppearanceDensity[];
|
|
@@ -262,7 +319,7 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
|
|
|
262
319
|
private sortActions;
|
|
263
320
|
getExportIcon(format: string): string;
|
|
264
321
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableToolbar, [null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
265
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "focusScope": { "alias": "focusScope"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "exportBusy": { "alias": "exportBusy"; "required": false; }; "exportStatusMessage": { "alias": "exportStatusMessage"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; "activeQuickFilterId": { "alias": "activeQuickFilterId"; "required": false; }; "activeDensity": { "alias": "activeDensity"; "required": false; }; "columnVisibilityController": { "alias": "columnVisibilityController"; "required": false; }; }, { "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; "columnVisibilityToggle": "columnVisibilityToggle"; "quickFilterChange": "quickFilterChange"; "densityChange": "densityChange"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
|
|
322
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "focusScope": { "alias": "focusScope"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "exportBusy": { "alias": "exportBusy"; "required": false; }; "exportStatusMessage": { "alias": "exportStatusMessage"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; "activeQuickFilterId": { "alias": "activeQuickFilterId"; "required": false; }; "activeDensity": { "alias": "activeDensity"; "required": false; }; "activeCrossFilters": { "alias": "activeCrossFilters"; "required": false; }; "columnVisibilityController": { "alias": "columnVisibilityController"; "required": false; }; }, { "clearCrossFilter": "clearCrossFilter"; "clearAllCrossFilters": "clearAllCrossFilters"; "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; "columnVisibilityToggle": "columnVisibilityToggle"; "quickFilterChange": "quickFilterChange"; "densityChange": "densityChange"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
|
|
266
323
|
}
|
|
267
324
|
|
|
268
325
|
type ColumnDataType$1 = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
|
|
@@ -397,9 +454,12 @@ declare class TableDefaultsProvider {
|
|
|
397
454
|
constructor(global: GlobalConfigService);
|
|
398
455
|
/**
|
|
399
456
|
* Returns default configuration for a given table identifier.
|
|
457
|
+
* Precedence inside defaults: GlobalConfig.table > createDefaultTableConfig().
|
|
400
458
|
* @param tableId Table identifier
|
|
401
459
|
*/
|
|
402
|
-
getDefaults(_tableId: string
|
|
460
|
+
getDefaults(_tableId: string, options?: {
|
|
461
|
+
includeGlobal?: boolean;
|
|
462
|
+
}): TableConfig;
|
|
403
463
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableDefaultsProvider, never>;
|
|
404
464
|
static ɵprov: i0.ɵɵInjectableDeclaration<TableDefaultsProvider>;
|
|
405
465
|
}
|
|
@@ -422,6 +482,8 @@ type FilterConfig = {
|
|
|
422
482
|
/** User-selected extra field ids to show before pinned always-visible */
|
|
423
483
|
selectedFieldIds?: string[];
|
|
424
484
|
showAdvanced?: boolean;
|
|
485
|
+
showAddButton?: boolean;
|
|
486
|
+
showFilterSettings?: boolean;
|
|
425
487
|
mode?: 'filter';
|
|
426
488
|
changeDebounceMs?: number;
|
|
427
489
|
allowSaveTags?: boolean;
|
|
@@ -460,6 +522,14 @@ type FilterConfig = {
|
|
|
460
522
|
useInlineTimeRangeVariant?: boolean;
|
|
461
523
|
/** Opt-out para mapear treeSelect/multiSelectTree na variante compacta inline. */
|
|
462
524
|
useInlineTreeSelectVariant?: boolean;
|
|
525
|
+
/** Opt-out para mapear select simples na variante compacta inline. */
|
|
526
|
+
useInlineSelectVariant?: boolean;
|
|
527
|
+
/** Opt-out para mapear multiSelect/chipInput na variante compacta inline. */
|
|
528
|
+
useInlineMultiSelectVariant?: boolean;
|
|
529
|
+
/** Opt-out para mapear input/searchInput na variante compacta inline. */
|
|
530
|
+
useInlineInputVariant?: boolean;
|
|
531
|
+
/** Opt-out para mapear toggle/checkbox/switch na variante compacta inline. */
|
|
532
|
+
useInlineToggleVariant?: boolean;
|
|
463
533
|
overlayVariant?: 'card' | 'frosted';
|
|
464
534
|
overlayBackdrop?: boolean;
|
|
465
535
|
advancedOpenMode?: 'overlay' | 'modal' | 'drawer';
|
|
@@ -644,6 +714,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
644
714
|
changeDebounceMs: number;
|
|
645
715
|
/** Controla a exibição do botão de preferências dentro do filtro */
|
|
646
716
|
showFilterSettings: boolean;
|
|
717
|
+
private hostShowFilterSettings?;
|
|
647
718
|
/** Controla a exibição do botão de filtro avançado */
|
|
648
719
|
showAdvancedButton: boolean;
|
|
649
720
|
/** Projection of FilterConfig.presentation for standalone and embedded hosts. */
|
|
@@ -655,6 +726,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
655
726
|
get advancedActionDisplay(): string;
|
|
656
727
|
/** Controla a exibição do botão de adicionar campos */
|
|
657
728
|
showAddButton: boolean;
|
|
729
|
+
private hostShowAddButton?;
|
|
658
730
|
/** Controla a exibição do botão de limpar filtros */
|
|
659
731
|
showClearButton: boolean;
|
|
660
732
|
/** Controla a exibição do botão de pesquisar/aplicar filtros em fluxos manuais. */
|
|
@@ -866,6 +938,8 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
866
938
|
private areMetadataOverrideMapsEqual;
|
|
867
939
|
/** Force-sync settings coming from parent table config updates. */
|
|
868
940
|
applyExternalSettings(cfg?: Partial<FilterConfig>): void;
|
|
941
|
+
private activeFilterSettingsRef?;
|
|
942
|
+
private activeFieldEditorRef?;
|
|
869
943
|
openSettings(): void;
|
|
870
944
|
createTag(label?: string): void;
|
|
871
945
|
renameTag(tag: FilterTag, label?: string): void;
|
|
@@ -910,10 +984,13 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
910
984
|
*/
|
|
911
985
|
private restartSchemaLoadForCurrentContext;
|
|
912
986
|
retrySchemaLoad(): void;
|
|
987
|
+
private shouldAutoPopulateStandaloneFilterFields;
|
|
988
|
+
private pickDefaultStandaloneFilterMetas;
|
|
913
989
|
private applySchemaMetas;
|
|
914
990
|
private applySchemaMetasNow;
|
|
915
991
|
private withFilterMaterialDesignPolicy;
|
|
916
992
|
private withAdvancedDatePickerTouchPolicy;
|
|
993
|
+
private withAdvancedEntityLookupPresentationPolicy;
|
|
917
994
|
private isAdvancedDatePickerControl;
|
|
918
995
|
private buildAdvancedFilterColumn;
|
|
919
996
|
private isLongTextFilterField;
|
|
@@ -1062,7 +1139,9 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
1062
1139
|
private normalizeFilterFieldValue;
|
|
1063
1140
|
private getFilterFieldMetaByName;
|
|
1064
1141
|
private isEntityLookupFilterField;
|
|
1142
|
+
private isIncompleteInlineDateRangeValue;
|
|
1065
1143
|
private isEffectivelyEmptyFilterValue;
|
|
1144
|
+
private projectQueryPayload;
|
|
1066
1145
|
private syncFormsToDto;
|
|
1067
1146
|
private updateDisplayedTags;
|
|
1068
1147
|
private normalizeMode;
|
|
@@ -1120,6 +1199,8 @@ declare class AnalyticsTableStatsApiService {
|
|
|
1120
1199
|
constructor(http: HttpClient, apiUrl: ApiUrlConfig);
|
|
1121
1200
|
execute(projection: PraxisAnalyticsProjection, queryContext?: PraxisDataQueryContext | null): Observable<AnalyticsTableRow[]>;
|
|
1122
1201
|
private toTableRows;
|
|
1202
|
+
private projectDimensionValues;
|
|
1203
|
+
private resolveDimensionBucketLabel;
|
|
1123
1204
|
private resolveTimeSeriesCategory;
|
|
1124
1205
|
private resolveBucketCategory;
|
|
1125
1206
|
private resolveBucketKey;
|
|
@@ -1134,6 +1215,43 @@ declare class AnalyticsTableStatsApiService {
|
|
|
1134
1215
|
static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableStatsApiService>;
|
|
1135
1216
|
}
|
|
1136
1217
|
|
|
1218
|
+
/**
|
|
1219
|
+
* Canonical row click event interface emitted by PraxisTable and PraxisCrud.
|
|
1220
|
+
* Provides typed access to the underlying record, row index, original DOM mouse event,
|
|
1221
|
+
* resource identity, and selection/expansion state.
|
|
1222
|
+
*/
|
|
1223
|
+
interface RowClickEvent<T = DynamicDataRecord> {
|
|
1224
|
+
row: T;
|
|
1225
|
+
index: number;
|
|
1226
|
+
originalEvent?: MouseEvent;
|
|
1227
|
+
resourceIdentity?: MaterializedResourceIdentity | string | null;
|
|
1228
|
+
selectionState?: {
|
|
1229
|
+
isSelected: boolean;
|
|
1230
|
+
isExpanded: boolean;
|
|
1231
|
+
};
|
|
1232
|
+
}
|
|
1233
|
+
/**
|
|
1234
|
+
* Event payload emitted when a table row is double clicked.
|
|
1235
|
+
*/
|
|
1236
|
+
interface RowDoubleClickEvent<T = DynamicDataRecord> {
|
|
1237
|
+
action?: string;
|
|
1238
|
+
row: T;
|
|
1239
|
+
}
|
|
1240
|
+
/**
|
|
1241
|
+
* Event payload emitted when an analytical drawer is opened from a table row.
|
|
1242
|
+
*/
|
|
1243
|
+
interface DrawerOpenEvent<T = DynamicDataRecord> {
|
|
1244
|
+
row: T;
|
|
1245
|
+
tabId?: string;
|
|
1246
|
+
}
|
|
1247
|
+
/**
|
|
1248
|
+
* Event payload emitted when row selections change in the table.
|
|
1249
|
+
*/
|
|
1250
|
+
interface RowSelectionChangeEvent<T = DynamicDataRecord> {
|
|
1251
|
+
selected: T[];
|
|
1252
|
+
source?: 'row' | 'header' | 'programmatic';
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1137
1255
|
interface TableAiNavigationDestinationContext {
|
|
1138
1256
|
id?: string;
|
|
1139
1257
|
path: string;
|
|
@@ -1261,7 +1379,7 @@ type RuntimeRowAction = {
|
|
|
1261
1379
|
__praxisDiscoveryPending?: boolean;
|
|
1262
1380
|
};
|
|
1263
1381
|
type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
|
|
1264
|
-
type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback';
|
|
1382
|
+
type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback' | 'schema';
|
|
1265
1383
|
type ExpansionDetailViewState = {
|
|
1266
1384
|
status: ExpansionDetailRuntimeStatus;
|
|
1267
1385
|
schema: Record<string, unknown> | null;
|
|
@@ -1296,6 +1414,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1296
1414
|
private analyticsStatsApi?;
|
|
1297
1415
|
activeRowOverflowMenuTrigger?: MatMenuTrigger;
|
|
1298
1416
|
private activeRowOverflowMenuTriggerElement?;
|
|
1417
|
+
private activeRowOverflowMenuRow?;
|
|
1418
|
+
private activeRowOverflowMenuSignature?;
|
|
1419
|
+
private reattachingRowOverflowMenuTrigger?;
|
|
1299
1420
|
private openingRowActions;
|
|
1300
1421
|
private static readonly CELL_ANIMATION_CHANGE_CACHE_LIMIT;
|
|
1301
1422
|
private static readonly AI_SELECTION_ROW_LIMIT;
|
|
@@ -1312,18 +1433,26 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1312
1433
|
private _crudOperationResolver?;
|
|
1313
1434
|
private readonly runtimeObservationRegistry;
|
|
1314
1435
|
private readonly detailInlineRenderers;
|
|
1436
|
+
private readonly drawerRegistry;
|
|
1437
|
+
private readonly quickViewService;
|
|
1315
1438
|
private collectionLinks;
|
|
1316
1439
|
private collectionCapabilities;
|
|
1317
1440
|
private collectionCapabilitiesRequestHref;
|
|
1318
1441
|
private collectionCapabilitiesResolvedHref;
|
|
1319
1442
|
private collectionCapabilitiesRequestSeq;
|
|
1443
|
+
bulkSyncHandle: TableBulkSyncHandle | null;
|
|
1444
|
+
private readonly bulkClient;
|
|
1445
|
+
private readonly bulkSessions;
|
|
1320
1446
|
private readonly detailInlineNodeResolvers;
|
|
1321
1447
|
private readonly detailResourceResolver;
|
|
1322
1448
|
private runtimeObservationRegistration;
|
|
1323
1449
|
readonly paginatorSelectConfig: MatPaginatorSelectConfig;
|
|
1324
1450
|
private static readonly ROW_ANIMATION_PRESETS;
|
|
1325
1451
|
private static readonly ROW_ANIMATION_PRESET_ALIASES;
|
|
1452
|
+
static ngAcceptInputType_config: TableConfigInput;
|
|
1326
1453
|
config: TableConfig;
|
|
1454
|
+
private hostInputConfig?;
|
|
1455
|
+
private persistedUserConfig?;
|
|
1327
1456
|
resourcePath: string;
|
|
1328
1457
|
data: any[] | null;
|
|
1329
1458
|
tableId: string;
|
|
@@ -1338,7 +1467,21 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1338
1467
|
autoOpenSettingsOnOutdated: boolean;
|
|
1339
1468
|
crudContext: any;
|
|
1340
1469
|
filterCriteria: Record<string, any>;
|
|
1470
|
+
readonly filterCriteriaChange: EventEmitter<Record<string, any>>;
|
|
1471
|
+
private _filterTeleport;
|
|
1472
|
+
set filterTeleport(value: boolean);
|
|
1473
|
+
get filterTeleport(): boolean;
|
|
1474
|
+
widgetId?: string;
|
|
1475
|
+
readonly filterTemplateSignal: i0.WritableSignal<TemplateRef<unknown> | undefined>;
|
|
1476
|
+
private _filterBarTemplate?;
|
|
1477
|
+
set filterBarTemplate(tpl: TemplateRef<unknown> | undefined);
|
|
1478
|
+
get filterBarTemplate(): TemplateRef<unknown> | undefined;
|
|
1479
|
+
get filterTemplate(): TemplateRef<unknown> | undefined;
|
|
1480
|
+
private readonly widgetEventBus;
|
|
1341
1481
|
queryContext: PraxisDataQueryContextBridge | null;
|
|
1482
|
+
readonly queryContextClear: EventEmitter<PraxisTableQueryContextClearEvent>;
|
|
1483
|
+
readonly queryContextChange: EventEmitter<PraxisDataQueryContextBridge | null>;
|
|
1484
|
+
activeCrossFilters: PraxisTableCrossFilterItem[];
|
|
1342
1485
|
aiContext: TableAiContext | null;
|
|
1343
1486
|
aiAssistantVoiceInputMode: PraxisAssistantVoiceInputMode;
|
|
1344
1487
|
aiAssistantVoiceLanguage: string;
|
|
@@ -1352,10 +1495,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1352
1495
|
private advancedFilterMetadataOverridesCacheKey;
|
|
1353
1496
|
private advancedFilterMetadataOverridesCacheSource?;
|
|
1354
1497
|
private advancedFilterMetadataOverridesCache?;
|
|
1355
|
-
rowClick: EventEmitter<
|
|
1498
|
+
rowClick: EventEmitter<RowClickEvent<DynamicDataRecord>>;
|
|
1356
1499
|
widgetEvent: EventEmitter<any>;
|
|
1357
1500
|
resourceEvent: EventEmitter<PraxisResourceEvent<unknown>>;
|
|
1358
|
-
rowDoubleClick: EventEmitter<
|
|
1501
|
+
rowDoubleClick: EventEmitter<RowDoubleClickEvent<DynamicDataRecord>>;
|
|
1359
1502
|
rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
|
|
1360
1503
|
rowAction: EventEmitter<any>;
|
|
1361
1504
|
toolbarAction: EventEmitter<ToolbarActionEvent<any>>;
|
|
@@ -1376,6 +1519,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1376
1519
|
loadingStateChange: EventEmitter<LoadingState>;
|
|
1377
1520
|
collectionLinksChange: EventEmitter<RestApiLinks | null>;
|
|
1378
1521
|
selectionChange: EventEmitter<any>;
|
|
1522
|
+
drawerOpen: EventEmitter<DrawerOpenEvent<DynamicDataRecord>>;
|
|
1523
|
+
drawerClose: EventEmitter<void>;
|
|
1524
|
+
drawerTabChange: EventEmitter<string>;
|
|
1525
|
+
isAnalyticalDrawerOpen: boolean;
|
|
1526
|
+
analyticalDrawerRow: any | null;
|
|
1527
|
+
activeAnalyticalDrawerTabId?: string;
|
|
1379
1528
|
private latestLoadingState;
|
|
1380
1529
|
private loadingIndicatorVisible;
|
|
1381
1530
|
private loadingIndicatorDelayHandle;
|
|
@@ -1392,6 +1541,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1392
1541
|
selection: SelectionModel<any>;
|
|
1393
1542
|
dataSubject: BehaviorSubject<any[]>;
|
|
1394
1543
|
subscriptions: Subscription[];
|
|
1544
|
+
private surfaceOutcomeOwnerDestroyed;
|
|
1395
1545
|
showToolbar: boolean;
|
|
1396
1546
|
hasInitialized: boolean;
|
|
1397
1547
|
pageIndex: number;
|
|
@@ -1421,6 +1571,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1421
1571
|
private columnReorderUndoSubscription;
|
|
1422
1572
|
private columnRuntimeMutationOperationCounter;
|
|
1423
1573
|
private latestColumnRuntimeMutationOperationId;
|
|
1574
|
+
private persistenceContextEpoch;
|
|
1575
|
+
private persistenceContextDestroyed;
|
|
1576
|
+
/** Fence delayed work; requests already sent are not retroactively canceled. */
|
|
1577
|
+
private persistenceGuard;
|
|
1424
1578
|
private columnRuntimePersistenceInFlight;
|
|
1425
1579
|
private columnRuntimePersistencePending;
|
|
1426
1580
|
private columnResizeTransientWidths;
|
|
@@ -1441,6 +1595,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1441
1595
|
private localFilterFieldMetadataCacheKey;
|
|
1442
1596
|
private remoteSchemaLoadSequence;
|
|
1443
1597
|
private enterpriseContextIdentity;
|
|
1598
|
+
private enterpriseContextReady;
|
|
1444
1599
|
private staleEnterpriseLocalData;
|
|
1445
1600
|
private remoteDataLoadSequence;
|
|
1446
1601
|
private analyticsLoadSequence;
|
|
@@ -1476,8 +1631,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1476
1631
|
private rowContextRuntimeByRef;
|
|
1477
1632
|
private rowDiscoveryQueue;
|
|
1478
1633
|
private rowDiscoveryActiveRequests;
|
|
1634
|
+
private rowDiscoveryActivePrefetchRequests;
|
|
1479
1635
|
private rowDiscoveryEpoch;
|
|
1480
1636
|
private rowDiscoveryMarkForCheckScheduled;
|
|
1637
|
+
private pendingMarkForCheckRows;
|
|
1481
1638
|
private lastRowDiscoveryScopeKey;
|
|
1482
1639
|
private readonly i18n;
|
|
1483
1640
|
private readonly sanitizer;
|
|
@@ -1494,6 +1651,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1494
1651
|
idField: string;
|
|
1495
1652
|
horizontalScroll: 'auto' | 'wrap' | 'none';
|
|
1496
1653
|
private horizontalScrollOverrideSource;
|
|
1654
|
+
private hostHorizontalScrollInput?;
|
|
1497
1655
|
getToolbarPosition(): 'top' | 'bottom' | 'both';
|
|
1498
1656
|
shouldShowToolbarTopPlacement(): boolean;
|
|
1499
1657
|
shouldShowToolbarBottomPlacement(): boolean;
|
|
@@ -1578,6 +1736,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1578
1736
|
getLoadingSurfaceMessage(): string;
|
|
1579
1737
|
getLoadingSkeletonRows(): number[];
|
|
1580
1738
|
isLoadingSkeletonAnimated(): boolean;
|
|
1739
|
+
getSetupEmptyStateTitle(): string;
|
|
1740
|
+
getSetupEmptyStateDescription(): string;
|
|
1741
|
+
getSetupEmptyStatePrimaryAction(): EmptyAction | undefined;
|
|
1581
1742
|
getNoDataStateTitle(): string;
|
|
1582
1743
|
getNoDataStateDescription(): string | undefined;
|
|
1583
1744
|
getTableSettingsLabel(): string;
|
|
@@ -1611,11 +1772,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1611
1772
|
getNoDataStateIconContainer(): 'none' | 'circle' | 'soft';
|
|
1612
1773
|
getNoDataStatePrimaryAction(): any | null;
|
|
1613
1774
|
getNoDataStateSecondaryActions(): any[];
|
|
1775
|
+
private isAdvancedFiltersEffectivelyEnabled;
|
|
1614
1776
|
shouldRenderAdvancedFilter(): boolean;
|
|
1615
1777
|
getAdvancedFilterResourcePath(): string;
|
|
1616
1778
|
getAdvancedFilterPersistenceKey(): string;
|
|
1617
1779
|
getAdvancedFilterFormId(): string;
|
|
1618
1780
|
getAdvancedFilterOpenMode(): 'modal' | 'drawer';
|
|
1781
|
+
shouldShowAdvancedFilterAddButton(): boolean;
|
|
1782
|
+
shouldShowAdvancedFilterSettings(): boolean;
|
|
1619
1783
|
getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
|
|
1620
1784
|
getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
|
|
1621
1785
|
getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
|
|
@@ -1715,6 +1879,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1715
1879
|
private syncLocalPageSizeFromConfig;
|
|
1716
1880
|
private recomputeLocalView;
|
|
1717
1881
|
private resolveLocalSortField;
|
|
1882
|
+
private resolveColumnSemanticSourceField;
|
|
1718
1883
|
private setSchemaFieldsSnapshot;
|
|
1719
1884
|
private setFilterSchemaFieldsSnapshot;
|
|
1720
1885
|
private inferFilterSchemaSourceFields;
|
|
@@ -1730,13 +1895,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1730
1895
|
private tableConfigKey;
|
|
1731
1896
|
private filterConfigKey;
|
|
1732
1897
|
private ensureConfigDefaults;
|
|
1898
|
+
private recomposeEffectiveTableConfig;
|
|
1733
1899
|
private hasDeclaredAppearanceDensity;
|
|
1734
1900
|
private hasDeclaredAppearanceSection;
|
|
1735
1901
|
private shouldApplyAppearanceDefaultValue;
|
|
1736
1902
|
private mergePersistedTableConfigWithInput;
|
|
1903
|
+
private reconcileTableConfigInputChange;
|
|
1737
1904
|
private reconcileHostDeclaredTableContract;
|
|
1738
1905
|
private reconcileHostDeclaredColumns;
|
|
1739
1906
|
private reconcileHostDeclaredRowActions;
|
|
1907
|
+
private reconcileHostDeclaredBulkActions;
|
|
1908
|
+
private reconcileHostDeclaredFiltering;
|
|
1740
1909
|
private reconcileHostDeclaredExport;
|
|
1741
1910
|
private normalizePersistedExportFormats;
|
|
1742
1911
|
private normalizePersistedRowActionIds;
|
|
@@ -1750,6 +1919,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1750
1919
|
private resolveCollectionCapabilitiesHref;
|
|
1751
1920
|
private materializeCollectionCreateToolbarAction;
|
|
1752
1921
|
private materializeCollectionWorkflowToolbarActions;
|
|
1922
|
+
private materializeCollectionBulkSyncToolbarAction;
|
|
1923
|
+
private hasBulkSyncSelection;
|
|
1924
|
+
private tryHandleBulkSyncToolbarAction;
|
|
1925
|
+
private isBulkSyncPending;
|
|
1926
|
+
canShowBulkSyncHandle(): boolean;
|
|
1927
|
+
closeBulkSync(): void;
|
|
1928
|
+
private bulkSyncOperationalIdentity;
|
|
1753
1929
|
private isCollectionActionDiscoveryEnabled;
|
|
1754
1930
|
private ensureToolbarConfigForRuntime;
|
|
1755
1931
|
private buildCollectionCreateToolbarAction;
|
|
@@ -1851,6 +2027,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1851
2027
|
private hasActiveEmptyStateFilters;
|
|
1852
2028
|
private hasMeaningfulFilterCriteria;
|
|
1853
2029
|
private hasMeaningfulFilterValue;
|
|
2030
|
+
isStructuralQueryContextField(field: string): boolean;
|
|
2031
|
+
computeActiveCrossFilters(): PraxisTableCrossFilterItem[];
|
|
2032
|
+
onClearCrossFilter(item: PraxisTableCrossFilterItem): void;
|
|
2033
|
+
onClearAllCrossFilters(): void;
|
|
1854
2034
|
private resolveNoDataStateConfig;
|
|
1855
2035
|
private isEmptyStateTone;
|
|
1856
2036
|
private isEmptyStateVariant;
|
|
@@ -1872,6 +2052,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1872
2052
|
* race with the configured request.
|
|
1873
2053
|
*/
|
|
1874
2054
|
private shouldFetchRemoteDataForQueryChanges;
|
|
2055
|
+
/**
|
|
2056
|
+
* Evaluates whether an external TableConfig change actually modifies remote query parameters
|
|
2057
|
+
* (e.g. resourcePath, page size, sorting criteria or data mode).
|
|
2058
|
+
*
|
|
2059
|
+
* Non-query-affecting updates (such as toolbar actions, capabilities resolution, appearance,
|
|
2060
|
+
* density or empty state) MUST NOT trigger a redundant remote data load or cancel in-flight requests.
|
|
2061
|
+
*/
|
|
2062
|
+
private shouldRefetchOnConfigChange;
|
|
1875
2063
|
private isDebug;
|
|
1876
2064
|
private connectionKey;
|
|
1877
2065
|
private saveConnection;
|
|
@@ -1955,6 +2143,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1955
2143
|
private resolveExpansionDetailTimelineExpressionValue;
|
|
1956
2144
|
private getExpansionDetailTimelineObjectValue;
|
|
1957
2145
|
private normalizeExpansionDetailCardGridCardContent;
|
|
2146
|
+
/** `visibleWhen` is canonical Json Logic (object or boolean); string DSL is not a valid rule. */
|
|
2147
|
+
private normalizeExpansionDetailVisibleWhen;
|
|
2148
|
+
/**
|
|
2149
|
+
* Visibility gate for every detail node, including host-mediated ones (cardGrid, list, detailList,
|
|
2150
|
+
* timeline) that are not rendered by PraxisRichContent. Mirrors `PraxisRichContent.evaluateRule`:
|
|
2151
|
+
* same context (`row`, `computed`, `detail`), truthiness of the Json Logic result, fail-closed on error.
|
|
2152
|
+
*/
|
|
2153
|
+
isExpansionDetailNodeVisible(node: any, row: any, index: number): boolean;
|
|
2154
|
+
private withExpansionDetailParentVisibleWhen;
|
|
1958
2155
|
private normalizeExpansionDetailMediaBlockAvatar;
|
|
1959
2156
|
private normalizeExpansionDetailMediaBlockText;
|
|
1960
2157
|
private normalizeExpansionDetailMediaBlockMeta;
|
|
@@ -2010,7 +2207,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2010
2207
|
private isExpansionDetailRichListItemActionVisible;
|
|
2011
2208
|
private evaluateExpansionDetailRichListItemCondition;
|
|
2012
2209
|
getExpansionDetailRichText(node: any): string;
|
|
2013
|
-
getExpansionDetailRichContentContext(row: any, index: number): JsonLogicDataRecord;
|
|
2210
|
+
getExpansionDetailRichContentContext(row: any, index: number, node?: any): JsonLogicDataRecord;
|
|
2014
2211
|
getExpansionDetailRichContentDocument(node: any): RichContentDocument;
|
|
2015
2212
|
getExpansionDetailRichContentLayout(node: any): 'block' | 'inline';
|
|
2016
2213
|
getExpansionDetailRichContentHostCapabilities(row: any): RichBlockHostCapabilities;
|
|
@@ -2020,6 +2217,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2020
2217
|
private mapExpansionDetailNodeToRichContent;
|
|
2021
2218
|
private mapExpansionDetailMediaBlockNodeToRichContent;
|
|
2022
2219
|
private mapExpansionDetailCardNodeToRichContent;
|
|
2220
|
+
private expansionDetailVisibleWhenPatch;
|
|
2023
2221
|
private mapExpansionDetailStackNodeToRichContent;
|
|
2024
2222
|
private mapExpansionDetailValueNodeToRichContent;
|
|
2025
2223
|
private mapExpansionDetailTimelineNodeToRichContent;
|
|
@@ -2037,9 +2235,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2037
2235
|
private resolveExpansionDetailSchemaForRow;
|
|
2038
2236
|
private resolveExpansionDetailByMode;
|
|
2039
2237
|
private resolveExpansionDetailInlineSchema;
|
|
2238
|
+
private resolveExpansionDetailFromSchema;
|
|
2239
|
+
private humanizeFieldName;
|
|
2040
2240
|
private resolveExpansionDetailFromResource;
|
|
2041
2241
|
private resolveExpansionDetailFromResourcePath;
|
|
2042
2242
|
private resolveExpansionDetailFromHypermedia;
|
|
2243
|
+
private isDirectRichContentDocument;
|
|
2043
2244
|
private normalizeExpansionDetailSchemaCandidate;
|
|
2044
2245
|
private sanitizeExpansionDetailSchema;
|
|
2045
2246
|
private sanitizeExpansionDetailNodes;
|
|
@@ -2093,6 +2294,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2093
2294
|
private areStringSetsEqual;
|
|
2094
2295
|
private shouldToggleExpansionOnRowClick;
|
|
2095
2296
|
private shouldSelectRowOnRowClick;
|
|
2297
|
+
isAnalyticalDrawerEnabled(): boolean;
|
|
2298
|
+
private shouldOpenAnalyticalDrawerOnRowClick;
|
|
2299
|
+
openAnalyticalDrawer(row: any, tabId?: string): void;
|
|
2300
|
+
closeAnalyticalDrawer(): void;
|
|
2301
|
+
onAnalyticalDrawerTabChange(tabId: string): void;
|
|
2096
2302
|
private getExpansionMotionPreset;
|
|
2097
2303
|
private getExpansionMotionDurationMs;
|
|
2098
2304
|
private getExpansionMotionEasingCurve;
|
|
@@ -2125,7 +2331,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2125
2331
|
private showActionFeedbackMessage;
|
|
2126
2332
|
private emitEventWithActionFeedback;
|
|
2127
2333
|
private executeConfiguredGlobalAction;
|
|
2334
|
+
private isWritableConfiguredSurfaceOpen;
|
|
2128
2335
|
private withTableRuntimeContext;
|
|
2336
|
+
private resolveTableSurfaceRuntime;
|
|
2129
2337
|
private executeSurfaceOpen;
|
|
2130
2338
|
private resolveConfiguredGlobalActionRef;
|
|
2131
2339
|
private resolveActionGlobalActionRef;
|
|
@@ -2151,6 +2359,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2151
2359
|
private unwrapCollectionWorkflowResult;
|
|
2152
2360
|
private showCollectionWorkflowContractError;
|
|
2153
2361
|
private tryHandleCollectionCreateToolbarAction;
|
|
2362
|
+
private bindDiscoveredSurfaceOutcome;
|
|
2363
|
+
private applySurfaceActionRefresh;
|
|
2154
2364
|
private resolveBulkExportFormat;
|
|
2155
2365
|
private isBulkExportActionKey;
|
|
2156
2366
|
private normalizeExportFormat;
|
|
@@ -2185,14 +2395,27 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2185
2395
|
onAdvancedFilterSubmit(criteria: Record<string, any>): void;
|
|
2186
2396
|
onAdvancedFilterChange(criteria: Record<string, any>): void;
|
|
2187
2397
|
onAdvancedFilterClear(): void;
|
|
2398
|
+
clearAdvancedFilter(): void;
|
|
2188
2399
|
onQuickFilterChange(event: {
|
|
2189
2400
|
id: string;
|
|
2190
2401
|
filter: Record<string, unknown>;
|
|
2191
2402
|
active: boolean;
|
|
2192
2403
|
}): void;
|
|
2404
|
+
getConfiguredQuickFilters(): Array<{
|
|
2405
|
+
id: string;
|
|
2406
|
+
label: string;
|
|
2407
|
+
filter: Record<string, unknown>;
|
|
2408
|
+
icon?: string;
|
|
2409
|
+
}>;
|
|
2410
|
+
getQuickFilterManagedFields(): string[];
|
|
2411
|
+
private parseQuickFilterDefinition;
|
|
2412
|
+
getEffectiveEditableFilterCriteria(): Record<string, any>;
|
|
2413
|
+
private reconcileEditableQueryContextFilters;
|
|
2414
|
+
private syncQuickFilterStateFromEffectiveCriteria;
|
|
2193
2415
|
private clearQuickFilterRuntimeState;
|
|
2194
2416
|
private hasEquivalentFilterCriteria;
|
|
2195
|
-
private
|
|
2417
|
+
private lastAppliedFilterCriteria;
|
|
2418
|
+
applyAdvancedFilterCriteria(criteria: Record<string, any> | null | undefined, reason?: string): void;
|
|
2196
2419
|
private setAdvancedFilterCriteria;
|
|
2197
2420
|
private syncAdvancedFilterValueFromCriteria;
|
|
2198
2421
|
private deriveRuntimeVisibleAdvancedFilterFields;
|
|
@@ -2217,6 +2440,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2217
2440
|
private emitWidgetInputPatch;
|
|
2218
2441
|
private cloneInputPatch;
|
|
2219
2442
|
private executeTableEditorApplyPlan;
|
|
2443
|
+
private normalizeResourcePathIdentity;
|
|
2444
|
+
private areColumnsDerivedFromPreviousResource;
|
|
2445
|
+
private stripResourceBoundTableConfigState;
|
|
2220
2446
|
private attachRuntimeMetadataToEditorConfig;
|
|
2221
2447
|
private syncInternalFilterSettings;
|
|
2222
2448
|
private resetPreferencesToDefaults;
|
|
@@ -2349,6 +2575,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2349
2575
|
private toPortableColumnDefinition;
|
|
2350
2576
|
private arePortableValuesEqual;
|
|
2351
2577
|
private applySchemaFieldPresentationsToExistingColumns;
|
|
2578
|
+
private applySchemaComposeItemsQuickView;
|
|
2352
2579
|
private applySchemaFieldPresentation;
|
|
2353
2580
|
private applySchemaSemanticCellPresentation;
|
|
2354
2581
|
private resolveSemanticPresentationColor;
|
|
@@ -2377,6 +2604,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2377
2604
|
private buildRowDiscoveryScopeKey;
|
|
2378
2605
|
private resetRowContextRuntimeState;
|
|
2379
2606
|
private enqueueRowDiscoveryRequest;
|
|
2607
|
+
private promoteQueuedRowDiscoveryRequest;
|
|
2608
|
+
private prioritizeQueuedPrefetchRowDiscovery;
|
|
2609
|
+
private canDispatchNextRowDiscoveryTask;
|
|
2380
2610
|
private drainRowDiscoveryQueue;
|
|
2381
2611
|
private buildRowDiscoveryOptions;
|
|
2382
2612
|
private getRowLinks;
|
|
@@ -2444,6 +2674,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2444
2674
|
* 3. format (data formatting like dates, numbers, currency)
|
|
2445
2675
|
*/
|
|
2446
2676
|
getCellValue(rowData: any, column: ColumnDefinition): any;
|
|
2677
|
+
private shouldSuppressIntegerThousandsGrouping;
|
|
2447
2678
|
private applyImplicitRuntimeCellPresentation;
|
|
2448
2679
|
private shouldHumanizeRuntimeEnumCell;
|
|
2449
2680
|
private resolveCellFormattingType;
|
|
@@ -2537,6 +2768,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2537
2768
|
* Safely access nested properties using dot notation
|
|
2538
2769
|
*/
|
|
2539
2770
|
private getNestedPropertyValue;
|
|
2771
|
+
private hasNestedProperty;
|
|
2540
2772
|
/**
|
|
2541
2773
|
* Verifica se a ordenação está habilitada
|
|
2542
2774
|
*/
|
|
@@ -2575,6 +2807,16 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2575
2807
|
private isColumnFiltersSupported;
|
|
2576
2808
|
private isRowDraggingSupported;
|
|
2577
2809
|
private isRowExpansionSupported;
|
|
2810
|
+
private isSchemaExpansionModeActive;
|
|
2811
|
+
private getVisibleTableFieldNamesSet;
|
|
2812
|
+
private hasCompanionDenormalizedFieldInSchema;
|
|
2813
|
+
private isComplementarySchemaExpansionField;
|
|
2814
|
+
private isPopulatedExpansionRow;
|
|
2815
|
+
private hasNonEmptyExpansionFieldValue;
|
|
2816
|
+
private getComplementarySchemaExpansionFieldsForRow;
|
|
2817
|
+
private getLoadedTableRowsForExpansionCheck;
|
|
2818
|
+
private reconcileExpansionColumnsAfterDataChange;
|
|
2819
|
+
private hasComplementarySchemaExpansionFields;
|
|
2578
2820
|
private enforceAppearanceSchemaGuards;
|
|
2579
2821
|
private enforceUnsupportedFeatureGuards;
|
|
2580
2822
|
getToolbarEvaluationContext(): Record<string, any>;
|
|
@@ -2585,6 +2827,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2585
2827
|
getIconText(row: any, column: ColumnDefinition): string | null;
|
|
2586
2828
|
getIconRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
|
|
2587
2829
|
private getIconRawText;
|
|
2830
|
+
/**
|
|
2831
|
+
* Enriquece as linhas com propriedades calculadas declaradas em `computedFields`.
|
|
2832
|
+
* Torna as propriedades virtuais fisicamente acessíveis no objeto da linha (Issue #34).
|
|
2833
|
+
*/
|
|
2834
|
+
private enrichRowsWithComputedFields;
|
|
2588
2835
|
/**
|
|
2589
2836
|
* Lightweight, controlled evaluator for string/number expressions using row context.
|
|
2590
2837
|
* Accepts values like '= row.status === "OK" ? "primary" : "warn"'.
|
|
@@ -2626,8 +2873,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2626
2873
|
getBadgeRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
|
|
2627
2874
|
shouldRenderBadge(row: any, column: ColumnDefinition): boolean;
|
|
2628
2875
|
getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | 'rating' | 'microVisualization' | null;
|
|
2876
|
+
private readonly microVisualizationSafeHtmlCache;
|
|
2877
|
+
private readonly microVisualizationPageBoundsCache;
|
|
2629
2878
|
getMicroVisualizationHtml(row: any, column: ColumnDefinition): SafeHtml;
|
|
2879
|
+
private createMicroVisualizationValueFormatter;
|
|
2630
2880
|
private resolveMicroVisualizationForRow;
|
|
2881
|
+
private resolvePageMicroVisualizationBounds;
|
|
2631
2882
|
private applyMicroVisualizationExpression;
|
|
2632
2883
|
private evaluateMicroVisualizationExpression;
|
|
2633
2884
|
getComposeItems(row: any, column: ColumnDefinition): any[];
|
|
@@ -2640,6 +2891,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2640
2891
|
private asComposeValueItemColumn;
|
|
2641
2892
|
asItemColumn(base: ColumnDefinition, item: any): any;
|
|
2642
2893
|
getItemEffectiveType(row: any, column: ColumnDefinition, item: any): any;
|
|
2894
|
+
private hasRowQuickViewSourceIdentity;
|
|
2895
|
+
getEffectiveQuickViewBinding(row: any, column: ColumnDefinition): ResourceQuickViewBinding | null;
|
|
2896
|
+
getComposeValueQuickViewBinding(row: any, column: ColumnDefinition, item: any): ResourceQuickViewBinding | null;
|
|
2897
|
+
getQuickViewEndpointKey(): ApiEndpoint | string | null;
|
|
2898
|
+
getRowActionQuickViewBinding(action: any): ResourceQuickViewBinding | null;
|
|
2899
|
+
getQuickViewTriggerAriaLabel(label: string | null | undefined, column?: ColumnDefinition): string;
|
|
2643
2900
|
private mergeRenderer;
|
|
2644
2901
|
private hasRenderableColumnOverride;
|
|
2645
2902
|
private resolveColumnRuleAnimationCandidate;
|
|
@@ -2746,7 +3003,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2746
3003
|
private emitMetadataChange;
|
|
2747
3004
|
private emitSchemaStatus;
|
|
2748
3005
|
getRowId(row: any): any;
|
|
3006
|
+
private preserveSelectionOnNextDataLoad;
|
|
2749
3007
|
private reconcileSelectionAfterDataChange;
|
|
3008
|
+
private areSelectedRowSnapshotsEquivalent;
|
|
3009
|
+
private serializeSelectedRowSnapshot;
|
|
2750
3010
|
private getComparableRowIdentity;
|
|
2751
3011
|
getIdField(): string;
|
|
2752
3012
|
private getSchemaIdFieldOverride;
|
|
@@ -2782,6 +3042,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2782
3042
|
getRowSelectionAriaLabel(row: any, index?: number): string;
|
|
2783
3043
|
getMasterSelectionAriaLabel(): string;
|
|
2784
3044
|
private selectRowFromUserInteraction;
|
|
3045
|
+
clearSelection(emitEvent?: boolean): void;
|
|
2785
3046
|
private emitSelectionChange;
|
|
2786
3047
|
private publishSelectionStatus;
|
|
2787
3048
|
private getAccessibleRowLabel;
|
|
@@ -2822,7 +3083,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2822
3083
|
getInlineRowActions(row: any): any[];
|
|
2823
3084
|
getOverflowRowActions(row: any): any[];
|
|
2824
3085
|
hasOverflowRowActions(row: any): boolean;
|
|
3086
|
+
onRowOverflowMenuTriggerHover(row: any): void;
|
|
2825
3087
|
onRowOverflowMenuOpened(row: any): void;
|
|
3088
|
+
onRowOverflowMenuClosed(trigger?: MatMenuTrigger): void;
|
|
3089
|
+
private buildRowOverflowMenuSignature;
|
|
3090
|
+
private getCanonicalCrudActionOrderIndex;
|
|
2826
3091
|
private prepareRowDiscoveryRetry;
|
|
2827
3092
|
private getVisibleRowActions;
|
|
2828
3093
|
private getResolvedRowActions;
|
|
@@ -2836,6 +3101,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2836
3101
|
private getDiscoveredRowCrudActionsFromSnapshot;
|
|
2837
3102
|
private buildDiscoveredRowCrudAction;
|
|
2838
3103
|
private getDiscoveredRowSurfaceActionsFromSnapshot;
|
|
3104
|
+
private resolveBaselineCrudActionForRowSurface;
|
|
2839
3105
|
private getDiscoveredRowWorkflowActionsFromCatalog;
|
|
2840
3106
|
private getDiscoveredRowWorkflowActionsFromItems;
|
|
2841
3107
|
private resolveRowCrudCapabilityOperation;
|
|
@@ -2876,7 +3142,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2876
3142
|
private scheduleRowDiscoveryMarkForCheck;
|
|
2877
3143
|
ngOnDestroy(): void;
|
|
2878
3144
|
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; }, { optional: true; }]>;
|
|
2879
|
-
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; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "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; }; "aiContext": { "alias": "aiContext"; "required": false; }; "aiAssistantVoiceInputMode": { "alias": "aiAssistantVoiceInputMode"; "required": false; }; "aiAssistantVoiceLanguage": { "alias": "aiAssistantVoiceLanguage"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "resourceEvent": "resourceEvent"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "columnResize": "columnResize"; "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>;
|
|
3145
|
+
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; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "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; }; "filterTeleport": { "alias": "filterTeleport"; "required": false; }; "widgetId": { "alias": "widgetId"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "aiContext": { "alias": "aiContext"; "required": false; }; "aiAssistantVoiceInputMode": { "alias": "aiAssistantVoiceInputMode"; "required": false; }; "aiAssistantVoiceLanguage": { "alias": "aiAssistantVoiceLanguage"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "filterCriteriaChange": "filterCriteriaChange"; "queryContextClear": "queryContextClear"; "queryContextChange": "queryContextChange"; "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "resourceEvent": "resourceEvent"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "columnResize": "columnResize"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "configChange": "configChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; "drawerOpen": "drawerOpen"; "drawerClose": "drawerClose"; "drawerTabChange": "drawerTabChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
|
|
3146
|
+
static ngAcceptInputType_filterTeleport: unknown;
|
|
2880
3147
|
static ngAcceptInputType_enableCustomization: unknown;
|
|
2881
3148
|
}
|
|
2882
3149
|
|
|
@@ -3076,10 +3343,11 @@ interface RendererFieldOption {
|
|
|
3076
3343
|
isVisible: boolean;
|
|
3077
3344
|
isHidden?: boolean;
|
|
3078
3345
|
}
|
|
3079
|
-
type ComposePresetId = 'personAvatar' | 'contactTwoLines' | 'documentEmail' | 'statusChip';
|
|
3346
|
+
type ComposePresetId = 'personAvatar' | 'roleDepartment' | 'contactTwoLines' | 'documentEmail' | 'statusChip';
|
|
3080
3347
|
declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestroy {
|
|
3081
3348
|
private cdr;
|
|
3082
3349
|
private readonly i18n;
|
|
3350
|
+
private readonly jsonLogic;
|
|
3083
3351
|
tx(key: string, fallback: string): string;
|
|
3084
3352
|
readonly ratingAriaLabelPlaceholder: string;
|
|
3085
3353
|
readonly ratingRendererHint: string;
|
|
@@ -3092,6 +3360,13 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3092
3360
|
type?: string;
|
|
3093
3361
|
tableHidden?: boolean;
|
|
3094
3362
|
hidden?: boolean;
|
|
3363
|
+
options?: Array<{
|
|
3364
|
+
value?: any;
|
|
3365
|
+
key?: any;
|
|
3366
|
+
label?: string;
|
|
3367
|
+
text?: string;
|
|
3368
|
+
}>;
|
|
3369
|
+
enumValues?: Array<string | number>;
|
|
3095
3370
|
xUi?: Record<string, any>;
|
|
3096
3371
|
ui?: Record<string, any>;
|
|
3097
3372
|
}>;
|
|
@@ -3122,7 +3397,22 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3122
3397
|
condOverridesSelectedIndex: number;
|
|
3123
3398
|
getConditionalOverrides(): any[];
|
|
3124
3399
|
ensureConditionalOverrides(): any[];
|
|
3400
|
+
getColumnActiveRendererIcon(column: ColumnDefinition | null | undefined): string | null;
|
|
3401
|
+
getColumnActiveRendererTooltip(column: ColumnDefinition | null | undefined): string;
|
|
3402
|
+
getFieldDomainOptions(fieldName: string | undefined): Array<{
|
|
3403
|
+
value: string | number | boolean;
|
|
3404
|
+
label: string;
|
|
3405
|
+
}>;
|
|
3406
|
+
getSelectedColumnDomainOptions(): Array<{
|
|
3407
|
+
value: string | number | boolean;
|
|
3408
|
+
label: string;
|
|
3409
|
+
}>;
|
|
3410
|
+
getFilteredOverrideConditionValueOptions(condition: any): Array<{
|
|
3411
|
+
value: string;
|
|
3412
|
+
label: string;
|
|
3413
|
+
}>;
|
|
3125
3414
|
addConditionalOverride(): void;
|
|
3415
|
+
generateDomainConditionalBadges(): void;
|
|
3126
3416
|
removeConditionalOverride(index: number): void;
|
|
3127
3417
|
duplicateConditionalOverride(index: number): void;
|
|
3128
3418
|
onConditionalOverrideReorder(event: any): void;
|
|
@@ -3131,6 +3421,18 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3131
3421
|
getJsonLogicSummary(value: JsonLogicExpression | null | undefined): string;
|
|
3132
3422
|
private parseJsonLogicText;
|
|
3133
3423
|
setConditionalOverrideCondition(index: number, raw: string): void;
|
|
3424
|
+
readonly overrideConditionOperators: readonly ["===", "==", "!==", "!=", ">", ">=", "<", "<=", "truthy", "falsy"];
|
|
3425
|
+
private normalizeConditionFieldName;
|
|
3426
|
+
getOverrideConditionField(condition: any): string;
|
|
3427
|
+
getOverrideConditionOperator(condition: any): string;
|
|
3428
|
+
getOverrideConditionValue(condition: any): string;
|
|
3429
|
+
setOverrideGuidedCondition(index: number, patch: {
|
|
3430
|
+
field?: string;
|
|
3431
|
+
operator?: string;
|
|
3432
|
+
value?: string;
|
|
3433
|
+
}): void;
|
|
3434
|
+
private extractGuidedJsonLogicCondition;
|
|
3435
|
+
private coerceGuidedScalar;
|
|
3134
3436
|
getOverrideField(path: string): any;
|
|
3135
3437
|
setOverrideField(path: string, value: any): void;
|
|
3136
3438
|
setOverrideJsonLogicField(path: string, raw: string): void;
|
|
@@ -3139,13 +3441,19 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3139
3441
|
item: any;
|
|
3140
3442
|
index: number;
|
|
3141
3443
|
}>;
|
|
3444
|
+
addOverrideComposeItem(type: 'value' | 'badge' | 'icon' | 'chip' | 'progress' | 'avatar' | 'link' | 'button' | 'rating' | 'html'): void;
|
|
3142
3445
|
addOverrideComposeValueItem(): void;
|
|
3446
|
+
moveOverrideComposeItem(index: number, delta: -1 | 1): void;
|
|
3447
|
+
duplicateOverrideComposeItem(index: number): void;
|
|
3448
|
+
removeOverrideComposeItem(index: number): void;
|
|
3449
|
+
setOverrideComposeItemProp(index: number, path: string, value: any): void;
|
|
3143
3450
|
setOverrideComposeValueItemField(index: number, field: string): void;
|
|
3144
3451
|
setOverrideComposeValueItemEmphasis(index: number, emphasis: string): void;
|
|
3145
3452
|
getOverrideComposeLayoutProp(key: string): any;
|
|
3146
3453
|
setOverrideComposeLayoutProp(key: string, value: any): void;
|
|
3147
3454
|
onOverrideTypeChange(ov: any, val: string): void;
|
|
3148
3455
|
getOverrideMicroVisualizationProp(path: string): any;
|
|
3456
|
+
private ensureOverrideMicroVisualizationObject;
|
|
3149
3457
|
setOverrideMicroVisualizationProp(path: string, value: any): void;
|
|
3150
3458
|
getOverrideMicroVisualizationKind(): PraxisPresentationVisualizationKind;
|
|
3151
3459
|
getOverrideMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
@@ -3155,15 +3463,30 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3155
3463
|
isOverrideMicroVisualizationSegmentsKind(): boolean;
|
|
3156
3464
|
isOverrideMicroVisualizationItemsKind(): boolean;
|
|
3157
3465
|
isOverrideMicroVisualizationTotalKind(): boolean;
|
|
3466
|
+
isOverrideMicroVisualizationTargetKind(): boolean;
|
|
3467
|
+
isOverrideMicroVisualizationBaselineKind(): boolean;
|
|
3468
|
+
isOverrideMicroVisualizationSuffixKind(): boolean;
|
|
3469
|
+
isOverrideMicroVisualizationScaleBoundsKind(): boolean;
|
|
3470
|
+
isOverrideMicroVisualizationScaleScopeKind(): boolean;
|
|
3471
|
+
isOverrideMicroVisualizationThresholdsSupported(): boolean;
|
|
3472
|
+
getOverrideMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
|
|
3473
|
+
addOverrideMicroVisualizationThreshold(): void;
|
|
3474
|
+
applyDefaultOverrideMicroVisualizationThresholds(): void;
|
|
3475
|
+
setOverrideMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
|
|
3476
|
+
setOverrideMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
|
|
3477
|
+
moveOverrideMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
|
|
3478
|
+
removeOverrideMicroVisualizationThreshold(index: number): void;
|
|
3158
3479
|
getOverrideMicroVisualizationGuidanceText(): string;
|
|
3159
3480
|
exportOverrideJson(index: number): void;
|
|
3160
3481
|
importOverrideJson(index: number): void;
|
|
3161
3482
|
rendererValidationErrors: string[];
|
|
3483
|
+
get validationErrors(): string[];
|
|
3162
3484
|
rendererImportWarnings: string[];
|
|
3163
3485
|
rendererIsValid: boolean;
|
|
3164
3486
|
rendererPreviewEnabled: boolean;
|
|
3165
3487
|
private rendererAppliedSnapshot;
|
|
3166
3488
|
previewRows: any[];
|
|
3489
|
+
microVisualizationSampleValuesText: string;
|
|
3167
3490
|
private refreshRendererFieldOptions;
|
|
3168
3491
|
getRendererFieldOptions(): RendererFieldOption[];
|
|
3169
3492
|
formatRendererFieldOption(option: RendererFieldOption): string;
|
|
@@ -3196,11 +3519,14 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3196
3519
|
isExistingColumn(column: ColumnDefinition): boolean;
|
|
3197
3520
|
isCalculatedColumn(column: ColumnDefinition): boolean;
|
|
3198
3521
|
hasValueGetterError(column: ColumnDefinition): boolean;
|
|
3522
|
+
private hydrateApiColumnFlags;
|
|
3199
3523
|
private generateAvailableDataSchema;
|
|
3200
3524
|
/**
|
|
3201
3525
|
* Map ColumnDataType to FieldSchema type
|
|
3202
3526
|
*/
|
|
3203
3527
|
private mapColumnTypeToFieldType;
|
|
3528
|
+
private _cachedFormulaKey;
|
|
3529
|
+
private _cachedFormulaRef;
|
|
3204
3530
|
getColumnFormula(column: ColumnDefinition | null): FormulaDefinition | undefined;
|
|
3205
3531
|
onFormulaChange(formula: FormulaDefinition): void;
|
|
3206
3532
|
onGeneratedExpressionChange(expression: string): void;
|
|
@@ -3258,7 +3584,23 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3258
3584
|
setRendererJsonLogicProp(kind: string, path: string, raw: string): void;
|
|
3259
3585
|
setRendererProp(kind: string, path: string, value: any): void;
|
|
3260
3586
|
private createDefaultMicroVisualization;
|
|
3587
|
+
private ensureMicroVisualizationObject;
|
|
3261
3588
|
setMicroVisualizationProp(path: string, value: any): void;
|
|
3589
|
+
isMicroVisualizationThresholdsSupported(): boolean;
|
|
3590
|
+
getMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
|
|
3591
|
+
addMicroVisualizationThreshold(): void;
|
|
3592
|
+
applyDefaultMicroVisualizationThresholds(): void;
|
|
3593
|
+
setMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
|
|
3594
|
+
setMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
|
|
3595
|
+
moveMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
|
|
3596
|
+
removeMicroVisualizationThreshold(index: number): void;
|
|
3597
|
+
setMicroVisualizationSampleValuesText(raw: string): void;
|
|
3598
|
+
private readonly sanitizer;
|
|
3599
|
+
private readonly microVisualizationPreviewSafeHtmlCache;
|
|
3600
|
+
private memoizeMicroVisualizationSafeHtml;
|
|
3601
|
+
getMicroVisualizationSampleValues(): number[];
|
|
3602
|
+
getPreviewMicroVisualizationSafeHtmlForValue(sampleValue: number): SafeHtml;
|
|
3603
|
+
getPreviewMicroVisualizationHtmlForValue(sampleValue: number): string;
|
|
3262
3604
|
private _deepClone;
|
|
3263
3605
|
hasSelectedRenderer(): boolean;
|
|
3264
3606
|
onApplyRenderer(): void;
|
|
@@ -3278,6 +3620,12 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3278
3620
|
private stripRowPrefixes;
|
|
3279
3621
|
private _coerceExpected;
|
|
3280
3622
|
private getNested;
|
|
3623
|
+
private buildPreviewEvaluationContext;
|
|
3624
|
+
evaluatePreviewOverrideCondition(condition: any, row: any): boolean;
|
|
3625
|
+
private mergePreviewRenderer;
|
|
3626
|
+
private hasRenderablePreviewOverride;
|
|
3627
|
+
getEffectivePreviewRenderer(row: any): any;
|
|
3628
|
+
getPreviewSampleRows(): any[];
|
|
3281
3629
|
getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'rating' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
3282
3630
|
getPreviewIconName(row: any): string | null;
|
|
3283
3631
|
getPreviewIconColor(row: any): string | null;
|
|
@@ -3289,16 +3637,22 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3289
3637
|
getPreviewImageShape(): 'square' | 'rounded' | 'circle' | undefined;
|
|
3290
3638
|
getPreviewImageFit(): 'cover' | 'contain' | undefined;
|
|
3291
3639
|
getPreviewBadgeText(row: any): string | null;
|
|
3292
|
-
getPreviewBadgeIcon(
|
|
3293
|
-
getPreviewBadgeClasses(
|
|
3640
|
+
getPreviewBadgeIcon(row: any): string | null;
|
|
3641
|
+
getPreviewBadgeClasses(row: any): string[];
|
|
3642
|
+
private buildBadgeClassesFromConfig;
|
|
3294
3643
|
getPreviewLinkText(row: any): string;
|
|
3295
3644
|
getPreviewLinkHref(row: any): string | null;
|
|
3296
3645
|
getPreviewButtonLabel(row: any): string;
|
|
3297
|
-
getPreviewButtonIcon(): string | null;
|
|
3646
|
+
getPreviewButtonIcon(row?: any): string | null;
|
|
3298
3647
|
getPreviewChipText(row: any): string | null;
|
|
3299
|
-
|
|
3648
|
+
getPreviewChipIcon(row?: any): string | null;
|
|
3649
|
+
getPreviewChipClasses(row?: any): string[];
|
|
3650
|
+
getComposePreviewButtonLabel(item: any, row: any): string;
|
|
3300
3651
|
getPreviewProgressValue(row: any): number;
|
|
3652
|
+
getPreviewMicroVisualizationSafeHtml(row: any): SafeHtml;
|
|
3301
3653
|
getPreviewMicroVisualizationHtml(row: any): string;
|
|
3654
|
+
private createPreviewMicroVisualizationValueFormatter;
|
|
3655
|
+
private resolvePreviewMicroVisualizationConfig;
|
|
3302
3656
|
getMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
3303
3657
|
getMicroVisualizationKind(): PraxisPresentationVisualizationKind;
|
|
3304
3658
|
isMicroVisualizationValueKind(): boolean;
|
|
@@ -3306,6 +3660,11 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3306
3660
|
isMicroVisualizationSegmentsKind(): boolean;
|
|
3307
3661
|
isMicroVisualizationItemsKind(): boolean;
|
|
3308
3662
|
isMicroVisualizationTotalKind(): boolean;
|
|
3663
|
+
isMicroVisualizationTargetKind(): boolean;
|
|
3664
|
+
isMicroVisualizationBaselineKind(): boolean;
|
|
3665
|
+
isMicroVisualizationSuffixKind(): boolean;
|
|
3666
|
+
isMicroVisualizationScaleBoundsKind(): boolean;
|
|
3667
|
+
isMicroVisualizationScaleScopeKind(): boolean;
|
|
3309
3668
|
getMicroVisualizationGuidanceText(): string;
|
|
3310
3669
|
getMicroVisualizationConstraint(): PraxisTableCellVisualizationConstraint;
|
|
3311
3670
|
getPreviewRatingValue(row: any): number;
|
|
@@ -3314,7 +3673,36 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3314
3673
|
getPreviewRatingOutlineColor(): string | undefined;
|
|
3315
3674
|
getPreviewRatingSize(): 'small' | 'medium' | 'large';
|
|
3316
3675
|
getPreviewRatingAriaLabel(): string | undefined;
|
|
3317
|
-
getComposePreviewItems(
|
|
3676
|
+
getComposePreviewItems(row: any): any[];
|
|
3677
|
+
isComposePreviewMedia(row: any): boolean;
|
|
3678
|
+
getComposePreviewContainerStyle(row: any): Record<string, string>;
|
|
3679
|
+
getComposePreviewValueText(item: any, row: any): string;
|
|
3680
|
+
getComposePreviewValueClasses(item: any): string[];
|
|
3681
|
+
getComposePreviewBadgeText(item: any, row: any): string;
|
|
3682
|
+
getComposePreviewBadgeClasses(item: any): string[];
|
|
3683
|
+
getComposePreviewChipText(item: any, row: any): string;
|
|
3684
|
+
getComposePreviewChipClasses(item: any): string[];
|
|
3685
|
+
getComposePreviewLinkText(item: any, row: any): string;
|
|
3686
|
+
getComposePreviewLinkHref(item: any, row: any): string | null;
|
|
3687
|
+
getComposePreviewIconName(item: any, row: any): string | null;
|
|
3688
|
+
getComposePreviewIconColor(item: any, _row: any): string | null;
|
|
3689
|
+
getComposePreviewIconStyle(item: any, _row: any): Record<string, string> | null;
|
|
3690
|
+
getComposePreviewAvatarStyle(item: any): Record<string, string>;
|
|
3691
|
+
getComposePreviewAvatarInitials(item: any, row: any): string;
|
|
3692
|
+
getComposePreviewAvatarSrc(item: any, row: any): string | null;
|
|
3693
|
+
getComposePreviewAvatarAlt(item: any, row: any): string;
|
|
3694
|
+
getComposePreviewImageSrc(item: any, row: any): string | null;
|
|
3695
|
+
getComposePreviewImageAlt(item: any, row: any): string;
|
|
3696
|
+
getComposePreviewImageStyle(item: any): Record<string, string>;
|
|
3697
|
+
getComposePreviewProgressColor(item: any): string | null;
|
|
3698
|
+
getComposePreviewHtml(item: any, row: any): string;
|
|
3699
|
+
getComposePreviewToggleState(item: any, row: any): boolean;
|
|
3700
|
+
getComposePreviewMenuCount(item: any, row: any): number;
|
|
3701
|
+
private isValidPreviewMediaUrl;
|
|
3702
|
+
private resolvePreviewSafeSrc;
|
|
3703
|
+
/** Mirrors PraxisTable.getSafeHtml token interpolation: `[[field]]` values are HTML-escaped. */
|
|
3704
|
+
private interpolatePreviewHtml;
|
|
3705
|
+
getComposePreviewProgressValue(item: any, row: any): number;
|
|
3318
3706
|
getComposePreviewRatingValue(item: any, row: any): number;
|
|
3319
3707
|
getComposePreviewRatingMax(item: any): number;
|
|
3320
3708
|
getComposePreviewRatingColor(item: any): string | undefined;
|
|
@@ -3330,7 +3718,10 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3330
3718
|
getPreviewToggleState(row: any): boolean;
|
|
3331
3719
|
getPreviewMenuCount(row: any): number;
|
|
3332
3720
|
getPreviewHtml(row: any): string;
|
|
3333
|
-
|
|
3721
|
+
getPreviewProgressColor(row: any): string | null;
|
|
3722
|
+
/** Preview rows are re-cloned on every read; the sample slot index is their stable identity. */
|
|
3723
|
+
trackByIdx: (index: number, _item: unknown) => number;
|
|
3724
|
+
private validateMicroVisualizationThresholds;
|
|
3334
3725
|
private validateRenderer;
|
|
3335
3726
|
private readonly _emptyMappingRef;
|
|
3336
3727
|
composeSelectedIndex: number;
|
|
@@ -3348,10 +3739,13 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3348
3739
|
onComposeReorder(event: any): void;
|
|
3349
3740
|
selectComposeItem(index: number): void;
|
|
3350
3741
|
getComposeLayoutProp(key: string): any;
|
|
3742
|
+
hasComposeMediaLeadingItem(): boolean;
|
|
3351
3743
|
setComposeLayoutProp(key: string, value: any): void;
|
|
3352
3744
|
getSelectedComposeItem(): any;
|
|
3353
3745
|
getSelectedComposeItemProp(path: string): any;
|
|
3354
3746
|
setSelectedComposeItemProp(path: string, value: any): void;
|
|
3747
|
+
getConsolidatedSecondaryColumn(item: any): ExtendedColumnDefinition | null;
|
|
3748
|
+
hideConsolidatedColumn(field: string): void;
|
|
3355
3749
|
private findRendererFieldByCandidates;
|
|
3356
3750
|
private normalizeFieldLookup;
|
|
3357
3751
|
getColumnKeyInputType(column: ColumnDefinition | null): 'text' | 'number' | 'boolean';
|
|
@@ -3360,11 +3754,18 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3360
3754
|
}): void;
|
|
3361
3755
|
get selectedColumnDataType(): ColumnDataType$1;
|
|
3362
3756
|
set selectedColumnDataType(value: ColumnDataType$1);
|
|
3757
|
+
private findColumnFieldMetadata;
|
|
3758
|
+
private inferColumnDataTypeFromMetadata;
|
|
3363
3759
|
getColumnDataType(column: ColumnDefinition | null): ColumnDataType$1;
|
|
3364
3760
|
/**
|
|
3365
|
-
* Infer column data type from field name patterns (shared logic with PraxisTable)
|
|
3761
|
+
* Infer column data type from field name patterns (shared logic with PraxisTable, supporting pt-BR and en-US)
|
|
3366
3762
|
*/
|
|
3367
3763
|
private inferFieldTypeFromFieldName;
|
|
3764
|
+
inferRecommendedColumnAlignment(column: ColumnDefinition | null, explicitType?: ColumnDataType$1): 'left' | 'center' | 'right';
|
|
3765
|
+
inferRecommendedColumnFormat(column: ColumnDefinition | null, explicitType?: ColumnDataType$1): string;
|
|
3766
|
+
private applySmartCalibrationToColumn;
|
|
3767
|
+
calibrateSelectedColumnFromMetadata(): void;
|
|
3768
|
+
calibrateAllColumnsFromMetadata(): void;
|
|
3368
3769
|
onDataTypeChange(dataType: ColumnDataType$1): void;
|
|
3369
3770
|
showDataFormatter(column: ColumnDefinition | null): boolean;
|
|
3370
3771
|
getFormatterIcon(column: ColumnDefinition | null): string;
|
|
@@ -3729,6 +4130,8 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3729
4130
|
presentation: FormControl<FilterConfig['presentation']>;
|
|
3730
4131
|
alwaysVisibleFields: FormControl<string[]>;
|
|
3731
4132
|
showAdvanced: FormControl<boolean>;
|
|
4133
|
+
showAddButton: FormControl<boolean>;
|
|
4134
|
+
showFilterSettings: FormControl<boolean>;
|
|
3732
4135
|
mode: FormControl<'filter'>;
|
|
3733
4136
|
changeDebounceMs: FormControl<number>;
|
|
3734
4137
|
allowSaveTags: FormControl<boolean>;
|
|
@@ -3834,6 +4237,9 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3834
4237
|
isPresetActive(key: string): boolean;
|
|
3835
4238
|
hasBooleanFieldMetadata(): boolean;
|
|
3836
4239
|
getFieldLabel(name: string): string;
|
|
4240
|
+
getFieldTypeBadge(meta?: FieldMetadata | null): string;
|
|
4241
|
+
getFieldDescription(meta?: FieldMetadata | null): string;
|
|
4242
|
+
getSelectedAlwaysVisibleTriggerLabel(): string;
|
|
3837
4243
|
onAlwaysVisibleFieldSearchChange(value: string): void;
|
|
3838
4244
|
clearAlwaysVisibleFieldSearch(): void;
|
|
3839
4245
|
filteredAlwaysVisibleMetadata(): FieldMetadata[];
|
|
@@ -4183,6 +4589,12 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
4183
4589
|
value: any;
|
|
4184
4590
|
label: string;
|
|
4185
4591
|
}>;
|
|
4592
|
+
getDomainRuleTargetField(): string | null;
|
|
4593
|
+
getDomainRuleCandidateOptions(): Array<{
|
|
4594
|
+
value: any;
|
|
4595
|
+
label: string;
|
|
4596
|
+
}>;
|
|
4597
|
+
generateDomainRules(): void;
|
|
4186
4598
|
isNoValueOperator(op: string): boolean;
|
|
4187
4599
|
getValuePlaceholder(): string;
|
|
4188
4600
|
getI18nValuePlaceholder(): string;
|
|
@@ -4237,7 +4649,7 @@ declare class TableDetailTreeDraft {
|
|
|
4237
4649
|
depth: number;
|
|
4238
4650
|
} | undefined;
|
|
4239
4651
|
move(direction: -1 | 1): void;
|
|
4240
|
-
add(node: Node, nested?: boolean):
|
|
4652
|
+
add(node: Node, nested?: boolean): Node | null;
|
|
4241
4653
|
}
|
|
4242
4654
|
|
|
4243
4655
|
declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
@@ -4254,6 +4666,7 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4254
4666
|
dirty: boolean;
|
|
4255
4667
|
}>;
|
|
4256
4668
|
private readonly i18n;
|
|
4669
|
+
private readonly jsonLogic;
|
|
4257
4670
|
private baseline?;
|
|
4258
4671
|
private emitted?;
|
|
4259
4672
|
private readonly coupledBefore;
|
|
@@ -4265,26 +4678,49 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4265
4678
|
jsonTouched: boolean;
|
|
4266
4679
|
advanced: boolean;
|
|
4267
4680
|
preset: string;
|
|
4681
|
+
/** True when the last "add inside" was refused because the block cannot live inside a card grid card. */
|
|
4682
|
+
addRejected: boolean;
|
|
4268
4683
|
readonly presets: string[];
|
|
4269
4684
|
readonly sourceModes: string[];
|
|
4270
4685
|
readonly resourceKinds: string[];
|
|
4271
4686
|
readonly resourcePathMethods: string[];
|
|
4687
|
+
readonly cardGridColumnOptions: Array<'auto' | 1 | 2 | 3 | 4>;
|
|
4688
|
+
readonly cardVariants: Array<'outlined' | 'elevated' | 'filled' | 'plain' | 'transparent'>;
|
|
4689
|
+
readonly cardSizes: Array<'sm' | 'md' | 'lg'>;
|
|
4690
|
+
readonly cardDensities: Array<'compact' | 'comfortable'>;
|
|
4691
|
+
readonly composeLayouts: Array<'flex' | 'grid'>;
|
|
4692
|
+
readonly composeDirections: Array<'row' | 'column'>;
|
|
4693
|
+
readonly composeGaps: Array<'xs' | 'sm' | 'md' | 'lg' | 'xl'>;
|
|
4694
|
+
readonly composeAlignItemsOptions: Array<'' | 'start' | 'center' | 'end' | 'stretch'>;
|
|
4695
|
+
readonly badgePresetOptions: Array<'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'>;
|
|
4696
|
+
readonly iconSurfacePresetOptions: Array<'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'>;
|
|
4697
|
+
readonly semanticTones: Array<'' | 'neutral' | 'info' | 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger'>;
|
|
4698
|
+
readonly conditionOperators: Array<'===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy'>;
|
|
4272
4699
|
fallbackModes(): string[];
|
|
4273
|
-
sample:
|
|
4700
|
+
sample: 'A' | 'B' | 'C';
|
|
4274
4701
|
get previewContext(): {
|
|
4275
|
-
row:
|
|
4276
|
-
id: string;
|
|
4277
|
-
note: string;
|
|
4278
|
-
status: string;
|
|
4279
|
-
progress: number;
|
|
4280
|
-
};
|
|
4702
|
+
row: Record<string, unknown>;
|
|
4281
4703
|
};
|
|
4704
|
+
private projectDetailNodeToRichBlockNodes;
|
|
4282
4705
|
/** Local presenter projection only; never used as an authoring/save source. */
|
|
4283
4706
|
previewNodes(): RichBlockNode[];
|
|
4707
|
+
/**
|
|
4708
|
+
* Returns structured preview groups so `cardGrid` blocks render with their real
|
|
4709
|
+
* multi-column CSS Grid (`columns` and `minCardWidth`) and headers in the preview canvas.
|
|
4710
|
+
*/
|
|
4711
|
+
previewCardGridGroups(): Array<{
|
|
4712
|
+
isCardGrid: boolean;
|
|
4713
|
+
title?: string;
|
|
4714
|
+
subtitle?: string;
|
|
4715
|
+
gridTemplateColumns?: string;
|
|
4716
|
+
cards?: RichBlockNode[];
|
|
4717
|
+
nodes?: RichBlockNode[];
|
|
4718
|
+
}>;
|
|
4284
4719
|
previewRichContentDocuments(): RichContentDocument[];
|
|
4285
4720
|
richContentEditorInputs(): PraxisRichContentEditorInputs | null;
|
|
4286
4721
|
applyRichContentEditor(): void;
|
|
4287
|
-
addPreset(preset: 'callout' | 'richCard'): void;
|
|
4722
|
+
addPreset(preset: 'callout' | 'richCard' | 'richDetailGrid'): void;
|
|
4723
|
+
effectiveNodeType(node?: Record<string, any> | undefined): string;
|
|
4288
4724
|
nodeLabel(node: Record<string, any>): string;
|
|
4289
4725
|
nodeIcon(node: Record<string, any>): string;
|
|
4290
4726
|
canMove(direction: -1 | 1): boolean;
|
|
@@ -4323,10 +4759,75 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4323
4759
|
canNest(): boolean;
|
|
4324
4760
|
move(direction: -1 | 1): void;
|
|
4325
4761
|
remove(): void;
|
|
4762
|
+
fieldValue(field: string): string;
|
|
4326
4763
|
edit(field: string, value: string): void;
|
|
4327
4764
|
fields(): string[];
|
|
4328
4765
|
isAdvancedNode(): boolean;
|
|
4766
|
+
availableColumns(): Array<{
|
|
4767
|
+
field: string;
|
|
4768
|
+
label: string;
|
|
4769
|
+
}>;
|
|
4770
|
+
supportsFieldBinding(): boolean;
|
|
4771
|
+
boundColumnField(): string;
|
|
4772
|
+
bindColumnField(fieldName: string): void;
|
|
4773
|
+
cardGridColumnsValue(): 'auto' | 1 | 2 | 3 | 4;
|
|
4774
|
+
setCardGridColumns(value: 'auto' | 1 | 2 | 3 | 4): void;
|
|
4775
|
+
cardGridMinWidthValue(): number;
|
|
4776
|
+
setCardGridMinWidth(value: number | string): void;
|
|
4777
|
+
cardVariantValue(): 'outlined' | 'elevated' | 'filled' | 'plain' | 'transparent';
|
|
4778
|
+
setCardVariant(variant: 'outlined' | 'elevated' | 'filled' | 'plain' | 'transparent' | 'soft'): void;
|
|
4779
|
+
cardSizeValue(): 'sm' | 'md' | 'lg';
|
|
4780
|
+
setCardSize(size: 'sm' | 'md' | 'lg'): void;
|
|
4781
|
+
cardDensityValue(): 'compact' | 'comfortable';
|
|
4782
|
+
setCardDensity(density: 'compact' | 'comfortable' | 'spacious'): void;
|
|
4783
|
+
composeLayoutValue(): 'flex' | 'grid';
|
|
4784
|
+
setComposeLayout(layout: 'flex' | 'grid'): void;
|
|
4785
|
+
composeDirectionValue(): 'row' | 'column';
|
|
4786
|
+
setComposeDirection(direction: 'row' | 'column'): void;
|
|
4787
|
+
composeGapValue(): 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4788
|
+
setComposeGap(gap: 'xs' | 'sm' | 'md' | 'lg' | 'xl'): void;
|
|
4789
|
+
composeAlignItemsValue(): '' | 'start' | 'center' | 'end' | 'stretch';
|
|
4790
|
+
setComposeAlignItems(align: '' | 'start' | 'center' | 'end' | 'stretch' | 'flex-start' | 'flex-end'): void;
|
|
4791
|
+
composeWrapValue(): boolean;
|
|
4792
|
+
setComposeWrap(wrap: boolean): void;
|
|
4793
|
+
supportsTone(): boolean;
|
|
4794
|
+
toneValue(): string;
|
|
4795
|
+
setTone(tone: string): void;
|
|
4796
|
+
supportsStyleControls(): boolean;
|
|
4797
|
+
nodeStyleValue(key: string): string;
|
|
4798
|
+
setNodeStyleValue(key: string, value: string): void;
|
|
4799
|
+
hasNodeAppearanceOverrides(): boolean;
|
|
4800
|
+
resetNodeAppearance(): void;
|
|
4801
|
+
badgeAppearancePreset(): 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom';
|
|
4802
|
+
applyBadgeAppearancePreset(preset: 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'): void;
|
|
4803
|
+
iconSurfacePreset(): 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom';
|
|
4804
|
+
applyIconSurfacePreset(preset: 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'): void;
|
|
4805
|
+
canConvertSelectedToRichContent(): boolean;
|
|
4806
|
+
private isLosslesslyConvertibleToRichContent;
|
|
4807
|
+
/**
|
|
4808
|
+
* Losslessly converts the selected `cardGrid` or `card` block (or its parent `cardGrid`
|
|
4809
|
+
* when a card inside `cardGrid.cards` is selected) into a canonical `richContent` node
|
|
4810
|
+
* so the user can continue authoring in the full embedded `PraxisRichContentConfigEditor`.
|
|
4811
|
+
*/
|
|
4812
|
+
convertSelectedToRichContent(): void;
|
|
4813
|
+
supportsVisibleWhen(): boolean;
|
|
4814
|
+
visibleWhenMode(): 'always' | 'conditional' | 'custom';
|
|
4815
|
+
setVisibleWhenMode(mode: 'always' | 'conditional' | 'custom'): void;
|
|
4816
|
+
visibleWhenField(): string;
|
|
4817
|
+
visibleWhenOperator(): '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4818
|
+
visibleWhenValue(): string;
|
|
4819
|
+
setVisibleWhenRule(patch: {
|
|
4820
|
+
field?: string;
|
|
4821
|
+
operator?: '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4822
|
+
value?: string;
|
|
4823
|
+
}): void;
|
|
4824
|
+
private parseConditionScalar;
|
|
4825
|
+
private parseGuidedVisibleWhen;
|
|
4826
|
+
private isPreviewNodeVisible;
|
|
4329
4827
|
private commitTree;
|
|
4828
|
+
/** Offered next to `cardGridContent`/`composeContent` issues: converts legacy fields into canonical presenters. */
|
|
4829
|
+
canNormalizeRichChildren(): boolean;
|
|
4830
|
+
normalizeRichChildren(): void;
|
|
4330
4831
|
editJson(value: string): void;
|
|
4331
4832
|
discard(): void;
|
|
4332
4833
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableDetailEditorComponent, never>;
|
|
@@ -4401,16 +4902,24 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4401
4902
|
isValid$: BehaviorSubject<boolean>;
|
|
4402
4903
|
isBusy$: BehaviorSubject<boolean>;
|
|
4403
4904
|
columnMetas: FieldMetadata[];
|
|
4905
|
+
filterSchemaFields: FieldDefinition[];
|
|
4404
4906
|
filterDtoMetas: FieldMetadata[];
|
|
4405
4907
|
filterDtoMetasLoading: boolean;
|
|
4406
4908
|
filterDtoMetasErrorMsg: string;
|
|
4909
|
+
resourceSchemaFields: FieldDefinition[];
|
|
4910
|
+
resourceSchemaMetas: FieldMetadata[];
|
|
4911
|
+
resourceSchemaLoading: boolean;
|
|
4912
|
+
selectedCatalogResource: DiscoveredResourceOption | null;
|
|
4407
4913
|
private hasCrudOverridesDirty;
|
|
4408
4914
|
private hasLocalDataInput;
|
|
4409
4915
|
private filterDtoLoadSeq;
|
|
4916
|
+
private resourceSchemaLoadSeq;
|
|
4917
|
+
private loadedSchemaResourcePath;
|
|
4410
4918
|
private lastKnownFilterSettings;
|
|
4411
4919
|
private globalActionValidationIssues;
|
|
4412
4920
|
private readonly panelData;
|
|
4413
4921
|
private readonly crudService;
|
|
4922
|
+
private readonly resourceDiscovery;
|
|
4414
4923
|
private readonly panelRef;
|
|
4415
4924
|
constructor(cdr: ChangeDetectorRef, configService: TableConfigService);
|
|
4416
4925
|
tx(key: string, fallback: string): string;
|
|
@@ -4427,10 +4936,65 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4427
4936
|
onFilterSettingsChange(cfg: FilterConfig): void;
|
|
4428
4937
|
private cloneFilterSettings;
|
|
4429
4938
|
private isEffectivelyEmptyFilterSettings;
|
|
4939
|
+
private enrichFieldMetadataList;
|
|
4940
|
+
/**
|
|
4941
|
+
* Converte o resumo de campos publicado em `/schemas/catalog` (`responseFields` ou `filterFields`)
|
|
4942
|
+
* em `FieldMetadata[]` para alimentar imediatamente os seletores de chave primária, colunas e
|
|
4943
|
+
* filtros rápidos enquanto `/schemas/filtered` ainda está em resolução ou indisponível.
|
|
4944
|
+
*/
|
|
4945
|
+
private extractCatalogFieldMetas;
|
|
4430
4946
|
getFilterSettingsMetas(): FieldMetadata[];
|
|
4431
4947
|
getColumnAuthoringMetas(): FieldMetadata[];
|
|
4948
|
+
getRulesEditorFields(): FieldDefinition[];
|
|
4949
|
+
getFieldTypeBadge(option?: FieldMetadata | null): string;
|
|
4950
|
+
getFieldDescription(option?: FieldMetadata | null): string;
|
|
4432
4951
|
get filteredIdFieldOptions(): FieldMetadata[];
|
|
4952
|
+
getFilteredQuickFilterFieldOptions(currentValue?: string): FieldMetadata[];
|
|
4433
4953
|
isUsingFilterDtoMetas(): boolean;
|
|
4954
|
+
get toolbarFiltersEnabled(): boolean;
|
|
4955
|
+
get toolbarShowQuickFilters(): boolean;
|
|
4956
|
+
get toolbarShowAdvancedButton(): boolean;
|
|
4957
|
+
get advancedFilterShowAddButton(): boolean;
|
|
4958
|
+
get advancedFilterShowFilterSettings(): boolean;
|
|
4959
|
+
get toolbarQuickFilters(): Array<{
|
|
4960
|
+
id: string;
|
|
4961
|
+
label: string;
|
|
4962
|
+
icon?: string;
|
|
4963
|
+
filter: any;
|
|
4964
|
+
}>;
|
|
4965
|
+
get duplicatedQuickFilterInlineFields(): string[];
|
|
4966
|
+
private inferDefaultStatusFilterField;
|
|
4967
|
+
getQuickFilterValueOptions(fieldName: string, currentValue?: unknown): Array<{
|
|
4968
|
+
value: string;
|
|
4969
|
+
label: string;
|
|
4970
|
+
}>;
|
|
4971
|
+
private updateToolbarFiltersPatch;
|
|
4972
|
+
onToolbarFiltersEnabledChange(enabled: boolean): void;
|
|
4973
|
+
onToolbarShowQuickFiltersChange(show: boolean): void;
|
|
4974
|
+
onToolbarShowAdvancedButtonChange(show: boolean): void;
|
|
4975
|
+
onAdvancedFilterShowAddButtonChange(show: boolean): void;
|
|
4976
|
+
onAdvancedFilterShowFilterSettingsChange(show: boolean): void;
|
|
4977
|
+
applyBooleanQuickFilterPreset(fieldName?: string): void;
|
|
4978
|
+
addQuickFilterScope(): void;
|
|
4979
|
+
removeQuickFilterScope(index: number): void;
|
|
4980
|
+
updateQuickFilterMeta(index: number, patch: {
|
|
4981
|
+
id?: string;
|
|
4982
|
+
label?: string;
|
|
4983
|
+
icon?: string;
|
|
4984
|
+
}): void;
|
|
4985
|
+
getQuickFilterMode(item: {
|
|
4986
|
+
filter?: any;
|
|
4987
|
+
}): 'all' | 'boolean' | 'equals';
|
|
4988
|
+
getQuickFilterField(item: {
|
|
4989
|
+
filter?: any;
|
|
4990
|
+
}): string;
|
|
4991
|
+
getQuickFilterValue(item: {
|
|
4992
|
+
filter?: any;
|
|
4993
|
+
}): any;
|
|
4994
|
+
onQuickFilterModeChange(index: number, mode: 'all' | 'boolean' | 'equals'): void;
|
|
4995
|
+
onQuickFilterFieldChange(index: number, fieldName: string): void;
|
|
4996
|
+
onQuickFilterValueChange(index: number, rawValue: any): void;
|
|
4997
|
+
consolidateDuplicateInlineFilterFields(): void;
|
|
4434
4998
|
getEffectiveDataMode(): EffectiveDataMode;
|
|
4435
4999
|
isEffectiveLocalMode(): boolean;
|
|
4436
5000
|
private resolveLocalDataModeFeatureEnabled;
|
|
@@ -4460,8 +5024,16 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4460
5024
|
private syncFilterSettingsFromEditor;
|
|
4461
5025
|
private hasAdvancedSettingsProperty;
|
|
4462
5026
|
private syncLastKnownFilterSettingsFromEditedConfig;
|
|
5027
|
+
onCatalogResourceSelected(resource: DiscoveredResourceOption | null): void;
|
|
5028
|
+
private normalizeResourcePathIdentity;
|
|
5029
|
+
private resetEditedConfigForResourceSwitch;
|
|
4463
5030
|
onResourcePathChange(val: string): void;
|
|
5031
|
+
get resourceEndpointKey(): any;
|
|
5032
|
+
get resourceApiUrlEntry(): any;
|
|
5033
|
+
private getResourceDiscoveryOptions;
|
|
5034
|
+
private canUseResourceDiscovery;
|
|
4464
5035
|
private loadFilterDtoMetas;
|
|
5036
|
+
private loadResourceSchemaMetas;
|
|
4465
5037
|
onIdFieldChange(val: string): void;
|
|
4466
5038
|
onIdFieldOptionSelected(value: string): void;
|
|
4467
5039
|
get mobileCardMode(): boolean;
|
|
@@ -4526,6 +5098,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4526
5098
|
interface PraxisTableWidgetEditorInputs {
|
|
4527
5099
|
config?: TableConfig | null;
|
|
4528
5100
|
resourcePath?: string | null;
|
|
5101
|
+
endpointKey?: ApiEndpoint;
|
|
5102
|
+
apiUrlEntry?: ApiUrlEntry | null;
|
|
4529
5103
|
horizontalScroll?: 'auto' | 'wrap' | 'none';
|
|
4530
5104
|
tableId?: string;
|
|
4531
5105
|
componentInstanceId?: string;
|
|
@@ -4555,6 +5129,9 @@ declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4555
5129
|
getSettingsValue(): PraxisTableWidgetEditorValue;
|
|
4556
5130
|
onSave(): PraxisTableWidgetEditorValue;
|
|
4557
5131
|
reset(): void;
|
|
5132
|
+
private normalizeResourcePathIdentity;
|
|
5133
|
+
private stripResourceBoundTableState;
|
|
5134
|
+
private sanitizeEditedConfigForResourceSwitch;
|
|
4558
5135
|
private buildValue;
|
|
4559
5136
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableWidgetConfigEditor, never>;
|
|
4560
5137
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableWidgetConfigEditor, "praxis-table-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; "widgetKey": { "alias": "widgetKey"; "required": false; }; "context": { "alias": "context"; "required": false; }; }, {}, never, never, true, never>;
|
|
@@ -4563,6 +5140,8 @@ declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4563
5140
|
interface PraxisFilterWidgetEditorInputs {
|
|
4564
5141
|
presentation?: FilterConfig['presentation'];
|
|
4565
5142
|
resourcePath?: string | null;
|
|
5143
|
+
endpointKey?: ApiEndpoint;
|
|
5144
|
+
apiUrlEntry?: ApiUrlEntry | null;
|
|
4566
5145
|
fieldMetadata?: FieldMetadata[] | null;
|
|
4567
5146
|
filterId?: string;
|
|
4568
5147
|
formId?: string;
|
|
@@ -4584,6 +5163,10 @@ interface PraxisFilterWidgetEditorInputs {
|
|
|
4584
5163
|
actionsButtonColor?: 'primary' | 'accent' | 'warn' | 'basic';
|
|
4585
5164
|
actionsVariant?: 'standard' | 'outlined';
|
|
4586
5165
|
useInlineSearchableSelectVariant?: boolean;
|
|
5166
|
+
useInlineSelectVariant?: boolean;
|
|
5167
|
+
useInlineMultiSelectVariant?: boolean;
|
|
5168
|
+
useInlineInputVariant?: boolean;
|
|
5169
|
+
useInlineToggleVariant?: boolean;
|
|
4587
5170
|
useInlineRangeVariant?: boolean;
|
|
4588
5171
|
useInlineDateVariant?: boolean;
|
|
4589
5172
|
useInlineDateRangeVariant?: boolean;
|
|
@@ -4595,6 +5178,7 @@ interface PraxisFilterWidgetEditorInputs {
|
|
|
4595
5178
|
advancedOpenMode?: 'modal' | 'drawer';
|
|
4596
5179
|
advancedClearButtonsEnabled?: boolean;
|
|
4597
5180
|
persistenceKey?: string;
|
|
5181
|
+
showAddButton?: boolean;
|
|
4598
5182
|
showFilterSettings?: boolean;
|
|
4599
5183
|
enableCustomization?: boolean;
|
|
4600
5184
|
[key: string]: unknown;
|
|
@@ -4606,6 +5190,7 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4606
5190
|
widgetKey?: string;
|
|
4607
5191
|
resourceEditor?: ResourceQuickConnectComponent;
|
|
4608
5192
|
private readonly crud;
|
|
5193
|
+
private readonly resourceDiscovery;
|
|
4609
5194
|
private readonly cdr;
|
|
4610
5195
|
private readonly i18n;
|
|
4611
5196
|
resourceError: boolean;
|
|
@@ -4614,8 +5199,17 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4614
5199
|
private settingsDirty;
|
|
4615
5200
|
private loadingResource;
|
|
4616
5201
|
private fieldRequest;
|
|
5202
|
+
private selectedCatalogResource;
|
|
4617
5203
|
tx(key: string): string;
|
|
4618
5204
|
ngAfterViewInit(): void;
|
|
5205
|
+
/**
|
|
5206
|
+
* Hidrata imediatamente os metadados de filtro a partir do resumo de campos publicado
|
|
5207
|
+
* em `/schemas/catalog` (`filterFields` ou `responseFields`) enquanto o schema completo
|
|
5208
|
+
* (`/schemas/filtered`) ainda está carregando ou indisponível no host.
|
|
5209
|
+
*/
|
|
5210
|
+
onCatalogResourceSelected(resource: DiscoveredResourceOption | null): void;
|
|
5211
|
+
private extractCatalogFieldMetas;
|
|
5212
|
+
onResourcePathChange(nextPath: string): void;
|
|
4619
5213
|
loadResourceFields(markDirty?: boolean): Promise<void>;
|
|
4620
5214
|
private optionalInject;
|
|
4621
5215
|
set inputs(value: PraxisFilterWidgetEditorInputs | null);
|
|
@@ -4646,6 +5240,198 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4646
5240
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterWidgetConfigEditor, "praxis-filter-widget-config-editor", never, { "widgetKey": { "alias": "widgetKey"; "required": false; }; "inputs": { "alias": "inputs"; "required": false; }; }, {}, never, never, true, never>;
|
|
4647
5241
|
}
|
|
4648
5242
|
|
|
5243
|
+
/**
|
|
5244
|
+
* Interface mínima estrutural para qualquer componente que suporte teleporte de filtros
|
|
5245
|
+
* (ex.: PraxisTable ou PraxisCrudComponent).
|
|
5246
|
+
*/
|
|
5247
|
+
interface PraxisFilterTeleportHost {
|
|
5248
|
+
filterTeleport?: boolean;
|
|
5249
|
+
filterTemplate?: TemplateRef<unknown>;
|
|
5250
|
+
filterBarTemplate?: TemplateRef<unknown>;
|
|
5251
|
+
filterTemplateSignal?: () => TemplateRef<unknown> | undefined;
|
|
5252
|
+
internalTable?: PraxisFilterTeleportHost;
|
|
5253
|
+
}
|
|
5254
|
+
type PraxisFilterOutletTarget = PraxisFilterTeleportHost | TemplateRef<unknown> | null | undefined;
|
|
5255
|
+
/**
|
|
5256
|
+
* Praxis UI Platform — Canonical Filter Outlet Component (Issue #11)
|
|
5257
|
+
*
|
|
5258
|
+
* Renderiza a barra de filtros avançados desacoplada da tabela de dados ou do CRUD,
|
|
5259
|
+
* permitindo acomodá-la em qualquer card, drawer ou cabeçalho superior tático.
|
|
5260
|
+
*
|
|
5261
|
+
* @example
|
|
5262
|
+
* ```html
|
|
5263
|
+
* <div class="filters-card">
|
|
5264
|
+
* <praxis-filter-outlet [target]="heroesCrud" />
|
|
5265
|
+
* </div>
|
|
5266
|
+
*
|
|
5267
|
+
* <praxis-crud #heroesCrud ... />
|
|
5268
|
+
* ```
|
|
5269
|
+
*/
|
|
5270
|
+
declare class PraxisFilterOutletComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
5271
|
+
target: PraxisFilterOutletTarget;
|
|
5272
|
+
private readonly cdr;
|
|
5273
|
+
private readonly targetSignal;
|
|
5274
|
+
private previousHost?;
|
|
5275
|
+
constructor();
|
|
5276
|
+
get resolvedTemplate(): TemplateRef<unknown> | null;
|
|
5277
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
5278
|
+
ngAfterViewInit(): void;
|
|
5279
|
+
ngOnDestroy(): void;
|
|
5280
|
+
private detachPreviousHost;
|
|
5281
|
+
private attachTeleportTarget;
|
|
5282
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletComponent, never>;
|
|
5283
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterOutletComponent, "praxis-filter-outlet", never, { "target": { "alias": "target"; "required": false; }; }, {}, never, never, true, never>;
|
|
5284
|
+
}
|
|
5285
|
+
/**
|
|
5286
|
+
* Praxis UI Platform — Canonical Filter Outlet Directive (Issue #11)
|
|
5287
|
+
*
|
|
5288
|
+
* Diretiva estrutural alternativa para teleporte reativo da barra de filtros.
|
|
5289
|
+
*
|
|
5290
|
+
* @example
|
|
5291
|
+
* ```html
|
|
5292
|
+
* <div class="filters-card">
|
|
5293
|
+
* <ng-container *praxisFilterOutlet="heroesCrud"></ng-container>
|
|
5294
|
+
* </div>
|
|
5295
|
+
* ```
|
|
5296
|
+
*/
|
|
5297
|
+
declare class PraxisFilterOutletDirective implements OnChanges, AfterViewInit, OnDestroy {
|
|
5298
|
+
target: PraxisFilterOutletTarget;
|
|
5299
|
+
private readonly viewContainer;
|
|
5300
|
+
private readonly cdr;
|
|
5301
|
+
private readonly targetSignal;
|
|
5302
|
+
private previousHost?;
|
|
5303
|
+
private renderedTemplate;
|
|
5304
|
+
constructor();
|
|
5305
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
5306
|
+
ngAfterViewInit(): void;
|
|
5307
|
+
ngOnDestroy(): void;
|
|
5308
|
+
private detachPreviousHost;
|
|
5309
|
+
private updateView;
|
|
5310
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletDirective, never>;
|
|
5311
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PraxisFilterOutletDirective, "[praxisFilterOutlet]", never, { "target": { "alias": "praxisFilterOutlet"; "required": false; }; }, {}, never, never, true, never>;
|
|
5312
|
+
}
|
|
5313
|
+
|
|
5314
|
+
interface PraxisScopeBarItem {
|
|
5315
|
+
id: string;
|
|
5316
|
+
label: string;
|
|
5317
|
+
filter?: Record<string, unknown> | string;
|
|
5318
|
+
count?: number | null;
|
|
5319
|
+
icon?: string;
|
|
5320
|
+
tone?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'ready';
|
|
5321
|
+
isDefault?: boolean;
|
|
5322
|
+
tooltip?: string;
|
|
5323
|
+
}
|
|
5324
|
+
interface PraxisScopeBarActiveBadge {
|
|
5325
|
+
key: string;
|
|
5326
|
+
label: string;
|
|
5327
|
+
valueText: string;
|
|
5328
|
+
source: 'scope' | 'search' | 'external';
|
|
5329
|
+
}
|
|
5330
|
+
interface PraxisScopeBarConfig {
|
|
5331
|
+
items?: PraxisScopeBarItem[];
|
|
5332
|
+
activeId?: string;
|
|
5333
|
+
showOmnibox?: boolean;
|
|
5334
|
+
omniboxPlaceholder?: string;
|
|
5335
|
+
leadIcon?: string;
|
|
5336
|
+
leadLabel?: string;
|
|
5337
|
+
showClearButton?: boolean;
|
|
5338
|
+
clearLabel?: string;
|
|
5339
|
+
searchField?: string;
|
|
5340
|
+
targetWidgetId?: string;
|
|
5341
|
+
targetWidgetIds?: string[];
|
|
5342
|
+
showActiveFilterSummary?: boolean;
|
|
5343
|
+
filterLabels?: Record<string, string>;
|
|
5344
|
+
}
|
|
5345
|
+
declare class PraxisScopeBarComponent implements OnInit {
|
|
5346
|
+
private readonly eventBus;
|
|
5347
|
+
private readonly i18n;
|
|
5348
|
+
private readonly destroyRef;
|
|
5349
|
+
private targetFilterSubscription?;
|
|
5350
|
+
private isApplyingCriteriaToTarget;
|
|
5351
|
+
protected scopeNavigationLabel(): string;
|
|
5352
|
+
protected scopeSearchAriaLabel(): string;
|
|
5353
|
+
protected scopeClearSearchTitle(): string;
|
|
5354
|
+
protected scopeClearSearchAriaLabel(): string;
|
|
5355
|
+
protected scopeFiltersAriaLabel(): string;
|
|
5356
|
+
protected scopeActiveSummaryAriaLabel(): string;
|
|
5357
|
+
protected scopeActiveSummaryLabel(): string;
|
|
5358
|
+
protected scopeRemoveCriterionAriaLabel(label: string): string;
|
|
5359
|
+
protected scopeActiveFilterCountAriaLabel(count: number): string;
|
|
5360
|
+
chipsTrack?: ElementRef<HTMLElement>;
|
|
5361
|
+
set config(val: PraxisScopeBarConfig | undefined | null);
|
|
5362
|
+
private readonly itemsSignal;
|
|
5363
|
+
set items(val: PraxisScopeBarItem[] | undefined);
|
|
5364
|
+
get items(): PraxisScopeBarItem[] | undefined;
|
|
5365
|
+
set activeId(val: string | undefined);
|
|
5366
|
+
get activeId(): string | undefined;
|
|
5367
|
+
readonly activeIdChange: EventEmitter<string>;
|
|
5368
|
+
private readonly showOmniboxSignal;
|
|
5369
|
+
set showOmnibox(val: boolean);
|
|
5370
|
+
get showOmnibox(): boolean;
|
|
5371
|
+
omniboxPlaceholder: string;
|
|
5372
|
+
set omniboxValue(val: string | undefined);
|
|
5373
|
+
get omniboxValue(): string | undefined;
|
|
5374
|
+
readonly omniboxValueChange: EventEmitter<string>;
|
|
5375
|
+
omniboxDebounceMs: number;
|
|
5376
|
+
leadIcon: string;
|
|
5377
|
+
leadLabel?: string;
|
|
5378
|
+
showClearButton: boolean;
|
|
5379
|
+
clearLabel: string;
|
|
5380
|
+
private readonly showActiveFilterSummarySignal;
|
|
5381
|
+
set showActiveFilterSummary(val: boolean);
|
|
5382
|
+
get showActiveFilterSummary(): boolean;
|
|
5383
|
+
private readonly activeFiltersSignal;
|
|
5384
|
+
set activeFilters(val: Record<string, unknown> | undefined | null);
|
|
5385
|
+
get activeFilters(): Record<string, unknown>;
|
|
5386
|
+
readonly activeFiltersChange: EventEmitter<Record<string, unknown>>;
|
|
5387
|
+
private readonly filterLabelsSignal;
|
|
5388
|
+
set filterLabels(val: Record<string, string> | undefined | null);
|
|
5389
|
+
get filterLabels(): Record<string, string>;
|
|
5390
|
+
private readonly targetSignal;
|
|
5391
|
+
set target(val: any);
|
|
5392
|
+
get target(): any;
|
|
5393
|
+
targetWidgetId?: string;
|
|
5394
|
+
targetWidgetIds?: string[];
|
|
5395
|
+
scopeBarId: string;
|
|
5396
|
+
searchField: string;
|
|
5397
|
+
readonly scopeChange: EventEmitter<PraxisScopeBarItem>;
|
|
5398
|
+
readonly searchChange: EventEmitter<string>;
|
|
5399
|
+
readonly filterCriteriaChange: EventEmitter<Record<string, unknown>>;
|
|
5400
|
+
readonly clear: EventEmitter<void>;
|
|
5401
|
+
private readonly searchSubject$;
|
|
5402
|
+
readonly currentActiveId: i0.WritableSignal<string | null>;
|
|
5403
|
+
readonly currentSearchText: i0.WritableSignal<string>;
|
|
5404
|
+
readonly effectiveItems: i0.Signal<PraxisScopeBarItem[]>;
|
|
5405
|
+
readonly resolvedActiveId: i0.Signal<string | null>;
|
|
5406
|
+
readonly hasMainRow: i0.Signal<boolean>;
|
|
5407
|
+
readonly activeFilterBadges: i0.Signal<PraxisScopeBarActiveBadge[]>;
|
|
5408
|
+
readonly activeFilterCount: i0.Signal<number>;
|
|
5409
|
+
ngOnInit(): void;
|
|
5410
|
+
isItemActive(item: PraxisScopeBarItem): boolean;
|
|
5411
|
+
selectScope(item: PraxisScopeBarItem): void;
|
|
5412
|
+
onSearchInput(event: Event): void;
|
|
5413
|
+
clearSearch(): void;
|
|
5414
|
+
removeFilterCriterion(key: string): void;
|
|
5415
|
+
resetFilters(): void;
|
|
5416
|
+
canClear(): boolean;
|
|
5417
|
+
onTrackKeydown(event: KeyboardEvent): void;
|
|
5418
|
+
private resolveTargetWidgetIds;
|
|
5419
|
+
private dispatchFilters;
|
|
5420
|
+
private applyCriteriaToTarget;
|
|
5421
|
+
private bindTargetFilterCriteria;
|
|
5422
|
+
private getScopeManagedKeys;
|
|
5423
|
+
private discoverItemsFromTarget;
|
|
5424
|
+
private humanizeKey;
|
|
5425
|
+
private formatCriterionValue;
|
|
5426
|
+
private normalizeFilter;
|
|
5427
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisScopeBarComponent, never>;
|
|
5428
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisScopeBarComponent, "praxis-scope-bar", never, { "config": { "alias": "config"; "required": false; }; "items": { "alias": "items"; "required": false; }; "activeId": { "alias": "activeId"; "required": false; }; "showOmnibox": { "alias": "showOmnibox"; "required": false; }; "omniboxPlaceholder": { "alias": "omniboxPlaceholder"; "required": false; }; "omniboxValue": { "alias": "omniboxValue"; "required": false; }; "omniboxDebounceMs": { "alias": "omniboxDebounceMs"; "required": false; }; "leadIcon": { "alias": "leadIcon"; "required": false; }; "leadLabel": { "alias": "leadLabel"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "clearLabel": { "alias": "clearLabel"; "required": false; }; "showActiveFilterSummary": { "alias": "showActiveFilterSummary"; "required": false; }; "activeFilters": { "alias": "activeFilters"; "required": false; }; "filterLabels": { "alias": "filterLabels"; "required": false; }; "target": { "alias": "target"; "required": false; }; "targetWidgetId": { "alias": "targetWidgetId"; "required": false; }; "targetWidgetIds": { "alias": "targetWidgetIds"; "required": false; }; "scopeBarId": { "alias": "scopeBarId"; "required": false; }; "searchField": { "alias": "searchField"; "required": false; }; }, { "activeIdChange": "activeIdChange"; "omniboxValueChange": "omniboxValueChange"; "activeFiltersChange": "activeFiltersChange"; "scopeChange": "scopeChange"; "searchChange": "searchChange"; "filterCriteriaChange": "filterCriteriaChange"; "clear": "clear"; }, never, ["[scope-bar-filters], praxis-filter-outlet"], true, never>;
|
|
5429
|
+
static ngAcceptInputType_showOmnibox: unknown;
|
|
5430
|
+
static ngAcceptInputType_omniboxDebounceMs: unknown;
|
|
5431
|
+
static ngAcceptInputType_showClearButton: unknown;
|
|
5432
|
+
static ngAcceptInputType_showActiveFilterSummary: unknown;
|
|
5433
|
+
}
|
|
5434
|
+
|
|
4649
5435
|
declare class DataFormatterComponent implements OnInit, OnChanges {
|
|
4650
5436
|
private cdr;
|
|
4651
5437
|
private formattingService;
|
|
@@ -4720,6 +5506,7 @@ interface AnalyticsTableConfigAdapterOptions {
|
|
|
4720
5506
|
}
|
|
4721
5507
|
declare class AnalyticsTableConfigAdapterService {
|
|
4722
5508
|
private readonly i18n?;
|
|
5509
|
+
private readonly statsBuilder;
|
|
4723
5510
|
constructor(i18n?: PraxisI18nService | undefined);
|
|
4724
5511
|
toTableConfig(projection: PraxisAnalyticsProjection, options?: AnalyticsTableConfigAdapterOptions): TableConfig;
|
|
4725
5512
|
private buildColumns;
|
|
@@ -4786,6 +5573,7 @@ declare const PRAXIS_FILTER_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|
|
|
4786
5573
|
declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
4787
5574
|
private readonly i18n;
|
|
4788
5575
|
config: TableConfig;
|
|
5576
|
+
fieldMetadata: FieldMetadata[];
|
|
4789
5577
|
readonly: boolean;
|
|
4790
5578
|
configChange: EventEmitter<_praxisui_core.TableConfigModern>;
|
|
4791
5579
|
workingConfig: TableConfig;
|
|
@@ -4805,11 +5593,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4805
5593
|
pageSize: number;
|
|
4806
5594
|
pageSizeOptionsText: string;
|
|
4807
5595
|
showFirstLastButtons: boolean;
|
|
4808
|
-
paginationStrategy: 'client' | 'server';
|
|
5596
|
+
paginationStrategy: 'client' | 'server' | undefined;
|
|
4809
5597
|
paginationPosition: 'top' | 'bottom' | 'both';
|
|
4810
5598
|
paginationStyle: 'default' | 'simple' | 'advanced' | 'compact';
|
|
4811
5599
|
sortingEnabled: boolean;
|
|
4812
|
-
sortingStrategy: 'client' | 'server';
|
|
5600
|
+
sortingStrategy: 'client' | 'server' | undefined;
|
|
4813
5601
|
allowClearSort: boolean;
|
|
4814
5602
|
defaultSortField: string;
|
|
4815
5603
|
defaultSortDirection: 'asc' | 'desc';
|
|
@@ -4837,11 +5625,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4837
5625
|
setPaginationPageSize(value: number | string): void;
|
|
4838
5626
|
setPaginationPageSizeOptions(value: string): void;
|
|
4839
5627
|
setPaginationShowFirstLastButtons(value: boolean): void;
|
|
4840
|
-
setPaginationStrategy(value: 'client' | 'server'): void;
|
|
5628
|
+
setPaginationStrategy(value: 'client' | 'server' | undefined): void;
|
|
4841
5629
|
setPaginationPosition(value: 'top' | 'bottom' | 'both'): void;
|
|
4842
5630
|
setPaginationStyle(value: 'default' | 'simple' | 'advanced' | 'compact'): void;
|
|
4843
5631
|
setSortingEnabled(value: boolean): void;
|
|
4844
|
-
setSortingStrategy(value: 'client' | 'server'): void;
|
|
5632
|
+
setSortingStrategy(value: 'client' | 'server' | undefined): void;
|
|
4845
5633
|
setSortingAllowClear(value: boolean): void;
|
|
4846
5634
|
setSortingDefaultField(value: string): void;
|
|
4847
5635
|
setSortingDefaultDirection(value: 'asc' | 'desc'): void;
|
|
@@ -4871,7 +5659,7 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4871
5659
|
private getDefaultSortField;
|
|
4872
5660
|
private getDefaultSortDirection;
|
|
4873
5661
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableInlineAuthoringEditorComponent, never>;
|
|
4874
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableInlineAuthoringEditorComponent, "praxis-table-inline-authoring-editor", never, { "config": { "alias": "config"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; }, { "configChange": "configChange"; }, never, never, true, never>;
|
|
5662
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableInlineAuthoringEditorComponent, "praxis-table-inline-authoring-editor", never, { "config": { "alias": "config"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; }, { "configChange": "configChange"; }, never, never, true, never>;
|
|
4875
5663
|
}
|
|
4876
5664
|
|
|
4877
5665
|
interface ValueMappingPair {
|
|
@@ -4891,6 +5679,10 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4891
5679
|
keyInputType: 'text' | 'number' | 'boolean';
|
|
4892
5680
|
labelKey: string;
|
|
4893
5681
|
labelValue: string;
|
|
5682
|
+
domainOptions: Array<{
|
|
5683
|
+
value: string | number | boolean;
|
|
5684
|
+
label: string;
|
|
5685
|
+
}>;
|
|
4894
5686
|
mappingChange: EventEmitter<{
|
|
4895
5687
|
[key: string]: string;
|
|
4896
5688
|
[key: number]: string;
|
|
@@ -4901,6 +5693,8 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4901
5693
|
showImportDialog: boolean;
|
|
4902
5694
|
importJsonText: string;
|
|
4903
5695
|
importError: string;
|
|
5696
|
+
private readonly i18n;
|
|
5697
|
+
tx(key: string, fallback: string): string;
|
|
4904
5698
|
constructor(cdr: ChangeDetectorRef, dialog: MatDialog, snackBar: MatSnackBar);
|
|
4905
5699
|
ngOnInit(): void;
|
|
4906
5700
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -4910,6 +5704,7 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4910
5704
|
isKeyTruthy(pair: ValueMappingPair): boolean;
|
|
4911
5705
|
getKeyPlaceholder(): string;
|
|
4912
5706
|
addNewPair(): void;
|
|
5707
|
+
generateFromDomainOptions(): void;
|
|
4913
5708
|
removePair(index: number): void;
|
|
4914
5709
|
onKeyChange(index: number, value: string): void;
|
|
4915
5710
|
onBooleanKeyChange(index: number, change: MatCheckboxChange): void;
|
|
@@ -4919,7 +5714,7 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4919
5714
|
importFromJson(): void;
|
|
4920
5715
|
cancelImport(): void;
|
|
4921
5716
|
static ɵfac: i0.ɵɵFactoryDeclaration<ValueMappingEditorComponent, never>;
|
|
4922
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ValueMappingEditorComponent, "value-mapping-editor", never, { "currentMapping": { "alias": "currentMapping"; "required": false; }; "keyInputType": { "alias": "keyInputType"; "required": false; }; "labelKey": { "alias": "labelKey"; "required": false; }; "labelValue": { "alias": "labelValue"; "required": false; }; }, { "mappingChange": "mappingChange"; }, never, never, true, never>;
|
|
5717
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ValueMappingEditorComponent, "value-mapping-editor", never, { "currentMapping": { "alias": "currentMapping"; "required": false; }; "keyInputType": { "alias": "keyInputType"; "required": false; }; "labelKey": { "alias": "labelKey"; "required": false; }; "labelValue": { "alias": "labelValue"; "required": false; }; "domainOptions": { "alias": "domainOptions"; "required": false; }; }, { "mappingChange": "mappingChange"; }, never, never, true, never>;
|
|
4923
5718
|
}
|
|
4924
5719
|
|
|
4925
5720
|
declare class FormulaGeneratorService {
|
|
@@ -5012,6 +5807,12 @@ declare class VisualFormulaBuilderComponent implements OnInit, OnChanges {
|
|
|
5012
5807
|
private generateAndEmitExpression;
|
|
5013
5808
|
get generatedExpression(): string;
|
|
5014
5809
|
isMultiSelectField(paramKey: string): boolean;
|
|
5810
|
+
onFieldSelectionChange(paramKey: string, nextValue: unknown): void;
|
|
5811
|
+
getOrderedSelectedFields(paramKey: string): string[];
|
|
5812
|
+
moveSelectedField(paramKey: string, index: number, delta: -1 | 1): void;
|
|
5813
|
+
getShortFieldDisplayLabel(fieldName: string): string;
|
|
5814
|
+
formatSelectedFieldLabel(selection: unknown): string;
|
|
5815
|
+
private resolveFieldDisplayLabel;
|
|
5015
5816
|
getFieldTypeIcon(fieldType: string): string;
|
|
5016
5817
|
testFormula(): void;
|
|
5017
5818
|
formatTestResult(result: any): string;
|
|
@@ -5465,5 +6266,176 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
|
|
|
5465
6266
|
declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
|
|
5466
6267
|
declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
|
|
5467
6268
|
|
|
5468
|
-
|
|
5469
|
-
|
|
6269
|
+
declare function isAnalyticalDrawerSchema(schema: unknown): schema is PraxisAnalyticalDrawerSchema;
|
|
6270
|
+
declare function interpolateRelationEndpoint(endpoint: string, row: Record<string, unknown> | null | undefined): {
|
|
6271
|
+
url: string;
|
|
6272
|
+
hasMissingTokens: boolean;
|
|
6273
|
+
};
|
|
6274
|
+
declare class PraxisAnalyticalDrawerComponent implements OnInit, OnChanges, OnDestroy {
|
|
6275
|
+
private _isOpen;
|
|
6276
|
+
private previousActiveElement;
|
|
6277
|
+
handleDocumentEscape(event?: Event): void;
|
|
6278
|
+
set isOpen(value: boolean);
|
|
6279
|
+
get isOpen(): boolean;
|
|
6280
|
+
private _resourcePath?;
|
|
6281
|
+
set resourcePath(value: string | undefined);
|
|
6282
|
+
get resourcePath(): string | undefined;
|
|
6283
|
+
private _drawerConfig;
|
|
6284
|
+
set drawerConfig(value: TableDrawerConfig | null);
|
|
6285
|
+
get drawerConfig(): TableDrawerConfig | null;
|
|
6286
|
+
private _row;
|
|
6287
|
+
set row(value: any | null);
|
|
6288
|
+
get row(): any | null;
|
|
6289
|
+
private _relations;
|
|
6290
|
+
set relations(value: Record<string, unknown>);
|
|
6291
|
+
get relations(): Record<string, unknown>;
|
|
6292
|
+
loadingRelations: boolean;
|
|
6293
|
+
closeDrawer: EventEmitter<void>;
|
|
6294
|
+
tabChange: EventEmitter<string>;
|
|
6295
|
+
relationFetch: EventEmitter<{
|
|
6296
|
+
key: string;
|
|
6297
|
+
endpoint: string;
|
|
6298
|
+
}>;
|
|
6299
|
+
protected readonly drawerConfigSignal: i0.WritableSignal<TableDrawerConfig | null>;
|
|
6300
|
+
protected readonly rowSignal: i0.WritableSignal<any>;
|
|
6301
|
+
protected readonly relationsSignal: i0.WritableSignal<Record<string, unknown>>;
|
|
6302
|
+
protected readonly activeTabId: i0.WritableSignal<string>;
|
|
6303
|
+
protected readonly customRelations: i0.WritableSignal<Record<string, unknown>>;
|
|
6304
|
+
protected readonly isFetchingRelations: i0.WritableSignal<boolean>;
|
|
6305
|
+
protected readonly resolvedRemoteConfig: i0.WritableSignal<TableDrawerConfig | null>;
|
|
6306
|
+
protected readonly isResolvingSchema: i0.WritableSignal<boolean>;
|
|
6307
|
+
private readonly evaluator;
|
|
6308
|
+
private readonly http;
|
|
6309
|
+
private readonly injector;
|
|
6310
|
+
private readonly drawerRegistry;
|
|
6311
|
+
private readonly apiUrl;
|
|
6312
|
+
private readonly runtimeContext;
|
|
6313
|
+
private readonly sanitizer;
|
|
6314
|
+
private readonly formattingService;
|
|
6315
|
+
private relationSubs;
|
|
6316
|
+
private schemaSub?;
|
|
6317
|
+
private contextSub?;
|
|
6318
|
+
private static readonly relationCaches;
|
|
6319
|
+
private readonly relationCache;
|
|
6320
|
+
private relationEpoch;
|
|
6321
|
+
constructor();
|
|
6322
|
+
private lastFetchedKey;
|
|
6323
|
+
private lastResolvingKey;
|
|
6324
|
+
private schemaResolutionEpoch;
|
|
6325
|
+
private destroyed;
|
|
6326
|
+
static clearCache(): void;
|
|
6327
|
+
private getContextScopePrefix;
|
|
6328
|
+
private resolveUrl;
|
|
6329
|
+
ngOnInit(): void;
|
|
6330
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
6331
|
+
ngOnDestroy(): void;
|
|
6332
|
+
getEffectiveDrawerConfig(): TableDrawerConfig | null;
|
|
6333
|
+
private mergeTabs;
|
|
6334
|
+
private resolveRemoteDrawerMetadata;
|
|
6335
|
+
protected onClose(): void;
|
|
6336
|
+
protected onBackdropClick(event: MouseEvent): void;
|
|
6337
|
+
protected selectTab(tabId: string): void;
|
|
6338
|
+
private getAnalyticalSchema;
|
|
6339
|
+
protected resolvedTabs: i0.Signal<PraxisAnalyticalDrawerTab[]>;
|
|
6340
|
+
private generateAutoOverviewProperties;
|
|
6341
|
+
private formatPropertyLabel;
|
|
6342
|
+
protected resolvedTitle: i0.Signal<string>;
|
|
6343
|
+
protected resolvedSubtitle: i0.Signal<string>;
|
|
6344
|
+
protected resolvedClassificationPill: i0.Signal<string>;
|
|
6345
|
+
protected resolvedWidth: i0.Signal<string>;
|
|
6346
|
+
protected getDrawerIcon(): string;
|
|
6347
|
+
protected getEvaluationContext(): Record<string, unknown>;
|
|
6348
|
+
protected isCardGridContent(content: unknown): boolean;
|
|
6349
|
+
protected asCardGrid(content: unknown): {
|
|
6350
|
+
columns?: number;
|
|
6351
|
+
cards?: any[];
|
|
6352
|
+
};
|
|
6353
|
+
protected getGridColumnsStyle(columns?: number): string;
|
|
6354
|
+
protected isRichContentDocument(content: unknown): boolean;
|
|
6355
|
+
protected asRichContentDocument(content: unknown): RichContentDocument;
|
|
6356
|
+
protected isPropertyGrid(content: unknown): boolean;
|
|
6357
|
+
protected asPropertyGrid(content: unknown): any[];
|
|
6358
|
+
protected isArray(val: unknown): boolean;
|
|
6359
|
+
protected evaluateAndFormatMetric(item: any): string;
|
|
6360
|
+
protected evaluatePropertyValue(item: any): string;
|
|
6361
|
+
private readonly microVizSafeHtmlCache;
|
|
6362
|
+
protected renderMicroViz(viz: PraxisPresentationVisualizationConfig | undefined, item: any): SafeHtml;
|
|
6363
|
+
private syncActiveTab;
|
|
6364
|
+
private fetchConfiguredRelations;
|
|
6365
|
+
private invalidateRelations;
|
|
6366
|
+
private cancelRelationRequests;
|
|
6367
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAnalyticalDrawerComponent, never>;
|
|
6368
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAnalyticalDrawerComponent, "praxis-analytical-drawer", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "drawerConfig": { "alias": "drawerConfig"; "required": false; }; "row": { "alias": "row"; "required": false; }; "relations": { "alias": "relations"; "required": false; }; "loadingRelations": { "alias": "loadingRelations"; "required": false; }; }, { "closeDrawer": "closeDrawer"; "tabChange": "tabChange"; "relationFetch": "relationFetch"; }, never, never, true, never>;
|
|
6369
|
+
}
|
|
6370
|
+
|
|
6371
|
+
type AnalyticalDrawerSchemaOrConfig = PraxisAnalyticalDrawerSchema | TableDrawerConfig;
|
|
6372
|
+
declare const PRAXIS_ANALYTICAL_DRAWER_SCHEMAS: InjectionToken<Record<string, AnalyticalDrawerSchemaOrConfig> | Record<string, AnalyticalDrawerSchemaOrConfig>[]>;
|
|
6373
|
+
/**
|
|
6374
|
+
* Registra esquemas de gavetas analíticas por coordenada de recurso (ex.: 'operations/incidentes').
|
|
6375
|
+
* Pode ser chamado no app.config.ts ou em providers de rotas/módulos.
|
|
6376
|
+
*/
|
|
6377
|
+
declare function providePraxisAnalyticalDrawerSchemas(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): Provider;
|
|
6378
|
+
declare class AnalyticalDrawerRegistryService {
|
|
6379
|
+
private readonly registry;
|
|
6380
|
+
constructor();
|
|
6381
|
+
register(resourcePath: string, schema: AnalyticalDrawerSchemaOrConfig): void;
|
|
6382
|
+
registerAll(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): void;
|
|
6383
|
+
get(resourcePath: string): AnalyticalDrawerSchemaOrConfig | undefined;
|
|
6384
|
+
has(resourcePath: string): boolean;
|
|
6385
|
+
clear(): void;
|
|
6386
|
+
normalizeKey(path: string | undefined | null): string;
|
|
6387
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticalDrawerRegistryService, never>;
|
|
6388
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticalDrawerRegistryService>;
|
|
6389
|
+
}
|
|
6390
|
+
|
|
6391
|
+
interface ComputedFieldsEvaluationOptions {
|
|
6392
|
+
evaluator?: SafeExpressionEvaluator;
|
|
6393
|
+
formattingService?: {
|
|
6394
|
+
formatValue: (value: any, columnType: any, formatString: string) => any;
|
|
6395
|
+
} | null;
|
|
6396
|
+
}
|
|
6397
|
+
/**
|
|
6398
|
+
* Normaliza a definição de um campo computado (aceita string simples ou objeto estruturado).
|
|
6399
|
+
*/
|
|
6400
|
+
declare function normalizeComputedFieldDefinition(raw: PraxisComputedFieldDefinition | string): PraxisComputedFieldDefinition;
|
|
6401
|
+
/**
|
|
6402
|
+
* Formata um valor calculado com suporte a moedas, porcentagens, números e formato compacto corporativo (ex: R$ 3,1M).
|
|
6403
|
+
*/
|
|
6404
|
+
declare function formatComputedFieldValue(value: unknown, format?: string, type?: string, formattingService?: ComputedFieldsEvaluationOptions['formattingService']): unknown;
|
|
6405
|
+
/**
|
|
6406
|
+
* Enriquece uma coleção de linhas com as propriedades calculadas declaradas em `computedFieldsConfig`.
|
|
6407
|
+
* Executado durante o pipeline de ingestão de dados, tornando as propriedades computadas
|
|
6408
|
+
* nativamente visíveis para colunas, sorting, filtros, gavetas analíticas e exportação.
|
|
6409
|
+
*/
|
|
6410
|
+
declare function applyComputedFieldsToRows<T extends Record<string, any> = Record<string, any>>(rows: T[], computedFieldsConfig?: PraxisComputedFieldsConfig | null, options?: ComputedFieldsEvaluationOptions): T[];
|
|
6411
|
+
|
|
6412
|
+
/** Raw compact schema authorship only; native normalization remains an editor/runtime projection. */
|
|
6413
|
+
declare function decodeTablePageInputs(value: unknown): {
|
|
6414
|
+
document: TableAuthoringDocument | null;
|
|
6415
|
+
diagnostics: EditorDiagnostic[];
|
|
6416
|
+
};
|
|
6417
|
+
/** Core prefixes these widget-relative JSON Pointers; this callback never resolves a source/latest. */
|
|
6418
|
+
declare function validateTablePageWidget(widget: WidgetInstance): readonly {
|
|
6419
|
+
code: string;
|
|
6420
|
+
path: string;
|
|
6421
|
+
}[];
|
|
6422
|
+
declare function encodeTablePageInputs(value: unknown): {
|
|
6423
|
+
inputs: Record<string, unknown> | null;
|
|
6424
|
+
diagnostics: EditorDiagnostic[];
|
|
6425
|
+
};
|
|
6426
|
+
/** No-change values in a materialized native editor cannot author defaults or erase absent keys. */
|
|
6427
|
+
declare function projectTablePageEditorChanges(authoredInputs: unknown, editorBaseline: unknown, editorValue: unknown): {
|
|
6428
|
+
inputs: Record<string, unknown> | null;
|
|
6429
|
+
diagnostics: EditorDiagnostic[];
|
|
6430
|
+
};
|
|
6431
|
+
/** Derive execution-only identity and disable independent preferences. Never persist this projection. */
|
|
6432
|
+
declare function materializeTablePageRuntimeInputs(value: unknown, pageId: string, widgetKey: string, options?: {
|
|
6433
|
+
preview?: boolean;
|
|
6434
|
+
}): {
|
|
6435
|
+
inputs: Record<string, unknown> | null;
|
|
6436
|
+
diagnostics: EditorDiagnostic[];
|
|
6437
|
+
};
|
|
6438
|
+
declare const TABLE_GOVERNED_PAGE_PREVIEW_ADAPTER: GovernedPagePreviewWidgetAdapter;
|
|
6439
|
+
|
|
6440
|
+
export { ANALYTICS_TABLE_ROW_KEY_FIELD, AnalyticalDrawerRegistryService, AnalyticsTableConfigAdapterService, AnalyticsTableContractService, AnalyticsTableStatsApiService, BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_ANALYTICAL_DRAWER_SCHEMAS, PRAXIS_FILTER_AUTHORING_MANIFEST, PRAXIS_FILTER_COMPONENT_METADATA, PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, PraxisAnalyticalDrawerComponent, PraxisFilter, PraxisFilterOutletComponent, PraxisFilterOutletDirective, PraxisFilterWidgetConfigEditor, PraxisScopeBarComponent, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TABLE_GOVERNED_PAGE_PREVIEW_ADAPTER, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, analyticsComparisonMetricField, applyComputedFieldsToRows, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, decodeTablePageInputs, encodeTablePageInputs, formatComputedFieldValue, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, interpolateRelationEndpoint, isAnalyticalDrawerSchema, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, materializeTablePageRuntimeInputs, normalizeComputedFieldDefinition, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, projectTablePageEditorChanges, providePraxisAnalyticalDrawerSchemas, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument, validateTablePageWidget };
|
|
6441
|
+
export type { ActionLike, AnalyticalDrawerSchemaOrConfig, AnalyticsComparisonMetricValueKind, AnalyticsTableConfigAdapterOptions, AnalyticsTableContractDefinition, AnalyticsTableContractLoadOptions, AnalyticsTableContractLoadResult, AnalyticsTableContractSource, AnalyticsTableRow, AnalyticsTableViewModel, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColumnChange, ColumnDataType$1 as ColumnDataType, ComputedFieldsEvaluationOptions, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DataFormattingOptions, DataMode, DateFormatterOptions, DefaultValueParams, DrawerOpenEvent, EditorDiagnostic, EditorDocument, FieldSchema, FilterConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, PraxisFilterOutletTarget, PraxisFilterTeleportHost, PraxisFilterViewContext, PraxisFilterViewField, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisScopeBarActiveBadge, PraxisScopeBarConfig, PraxisScopeBarItem, PraxisTableCrossFilterItem, PraxisTableQueryContextClearEvent, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowClickEvent, RowDoubleClickEvent, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, RowSelectionChangeEvent, StringFormatterOptions, TableAiContext, TableAiNavigationContextPack, TableAiNavigationDestinationContext, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableConfigPersistenceStrategy, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };
|