@praxisui/table 10.0.0-rc.4 → 10.0.0-rc.40
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 +21 -0
- package/docs/governed-page-widget-adapter.md +55 -0
- package/docs/local-data-mode-precedence.md +21 -0
- package/fesm2022/praxisui-table-authoring.mjs +2173 -0
- package/fesm2022/{praxisui-table-filter-form-dialog-host.component-DANYIQs6.mjs → praxisui-table-filter-form-dialog-host.component-DlGomgO3.mjs} +2 -2
- package/fesm2022/{praxisui-table-praxisui-table-DKvwb6v1.mjs → praxisui-table-praxisui-table-vjpONc0b.mjs} +16957 -2274
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-BzjYuDvo.mjs → praxisui-table-table-agentic-authoring-turn-flow-D0489HPn.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-CPgpIGoi.mjs → praxisui-table-table-ai.adapter-2CXgwI8n.mjs} +6 -5
- package/fesm2022/praxisui-table.mjs +2 -1
- package/package.json +14 -10
- package/src/lib/praxis-table.json-api.md +29 -9
- package/types/praxisui-table-authoring.d.ts +132 -0
- package/types/praxisui-table.d.ts +1002 -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;
|
|
@@ -914,6 +988,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
914
988
|
private applySchemaMetasNow;
|
|
915
989
|
private withFilterMaterialDesignPolicy;
|
|
916
990
|
private withAdvancedDatePickerTouchPolicy;
|
|
991
|
+
private withAdvancedEntityLookupPresentationPolicy;
|
|
917
992
|
private isAdvancedDatePickerControl;
|
|
918
993
|
private buildAdvancedFilterColumn;
|
|
919
994
|
private isLongTextFilterField;
|
|
@@ -1062,6 +1137,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
1062
1137
|
private normalizeFilterFieldValue;
|
|
1063
1138
|
private getFilterFieldMetaByName;
|
|
1064
1139
|
private isEntityLookupFilterField;
|
|
1140
|
+
private isIncompleteInlineDateRangeValue;
|
|
1065
1141
|
private isEffectivelyEmptyFilterValue;
|
|
1066
1142
|
private syncFormsToDto;
|
|
1067
1143
|
private updateDisplayedTags;
|
|
@@ -1120,6 +1196,8 @@ declare class AnalyticsTableStatsApiService {
|
|
|
1120
1196
|
constructor(http: HttpClient, apiUrl: ApiUrlConfig);
|
|
1121
1197
|
execute(projection: PraxisAnalyticsProjection, queryContext?: PraxisDataQueryContext | null): Observable<AnalyticsTableRow[]>;
|
|
1122
1198
|
private toTableRows;
|
|
1199
|
+
private projectDimensionValues;
|
|
1200
|
+
private resolveDimensionBucketLabel;
|
|
1123
1201
|
private resolveTimeSeriesCategory;
|
|
1124
1202
|
private resolveBucketCategory;
|
|
1125
1203
|
private resolveBucketKey;
|
|
@@ -1134,6 +1212,43 @@ declare class AnalyticsTableStatsApiService {
|
|
|
1134
1212
|
static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableStatsApiService>;
|
|
1135
1213
|
}
|
|
1136
1214
|
|
|
1215
|
+
/**
|
|
1216
|
+
* Canonical row click event interface emitted by PraxisTable and PraxisCrud.
|
|
1217
|
+
* Provides typed access to the underlying record, row index, original DOM mouse event,
|
|
1218
|
+
* resource identity, and selection/expansion state.
|
|
1219
|
+
*/
|
|
1220
|
+
interface RowClickEvent<T = DynamicDataRecord> {
|
|
1221
|
+
row: T;
|
|
1222
|
+
index: number;
|
|
1223
|
+
originalEvent?: MouseEvent;
|
|
1224
|
+
resourceIdentity?: MaterializedResourceIdentity | string | null;
|
|
1225
|
+
selectionState?: {
|
|
1226
|
+
isSelected: boolean;
|
|
1227
|
+
isExpanded: boolean;
|
|
1228
|
+
};
|
|
1229
|
+
}
|
|
1230
|
+
/**
|
|
1231
|
+
* Event payload emitted when a table row is double clicked.
|
|
1232
|
+
*/
|
|
1233
|
+
interface RowDoubleClickEvent<T = DynamicDataRecord> {
|
|
1234
|
+
action?: string;
|
|
1235
|
+
row: T;
|
|
1236
|
+
}
|
|
1237
|
+
/**
|
|
1238
|
+
* Event payload emitted when an analytical drawer is opened from a table row.
|
|
1239
|
+
*/
|
|
1240
|
+
interface DrawerOpenEvent<T = DynamicDataRecord> {
|
|
1241
|
+
row: T;
|
|
1242
|
+
tabId?: string;
|
|
1243
|
+
}
|
|
1244
|
+
/**
|
|
1245
|
+
* Event payload emitted when row selections change in the table.
|
|
1246
|
+
*/
|
|
1247
|
+
interface RowSelectionChangeEvent<T = DynamicDataRecord> {
|
|
1248
|
+
selected: T[];
|
|
1249
|
+
source?: 'row' | 'header' | 'programmatic';
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1137
1252
|
interface TableAiNavigationDestinationContext {
|
|
1138
1253
|
id?: string;
|
|
1139
1254
|
path: string;
|
|
@@ -1261,7 +1376,7 @@ type RuntimeRowAction = {
|
|
|
1261
1376
|
__praxisDiscoveryPending?: boolean;
|
|
1262
1377
|
};
|
|
1263
1378
|
type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
|
|
1264
|
-
type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback';
|
|
1379
|
+
type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback' | 'schema';
|
|
1265
1380
|
type ExpansionDetailViewState = {
|
|
1266
1381
|
status: ExpansionDetailRuntimeStatus;
|
|
1267
1382
|
schema: Record<string, unknown> | null;
|
|
@@ -1296,6 +1411,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1296
1411
|
private analyticsStatsApi?;
|
|
1297
1412
|
activeRowOverflowMenuTrigger?: MatMenuTrigger;
|
|
1298
1413
|
private activeRowOverflowMenuTriggerElement?;
|
|
1414
|
+
private activeRowOverflowMenuRow?;
|
|
1415
|
+
private activeRowOverflowMenuSignature?;
|
|
1416
|
+
private reattachingRowOverflowMenuTrigger?;
|
|
1299
1417
|
private openingRowActions;
|
|
1300
1418
|
private static readonly CELL_ANIMATION_CHANGE_CACHE_LIMIT;
|
|
1301
1419
|
private static readonly AI_SELECTION_ROW_LIMIT;
|
|
@@ -1312,18 +1430,26 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1312
1430
|
private _crudOperationResolver?;
|
|
1313
1431
|
private readonly runtimeObservationRegistry;
|
|
1314
1432
|
private readonly detailInlineRenderers;
|
|
1433
|
+
private readonly drawerRegistry;
|
|
1434
|
+
private readonly quickViewService;
|
|
1315
1435
|
private collectionLinks;
|
|
1316
1436
|
private collectionCapabilities;
|
|
1317
1437
|
private collectionCapabilitiesRequestHref;
|
|
1318
1438
|
private collectionCapabilitiesResolvedHref;
|
|
1319
1439
|
private collectionCapabilitiesRequestSeq;
|
|
1440
|
+
bulkSyncHandle: TableBulkSyncHandle | null;
|
|
1441
|
+
private readonly bulkClient;
|
|
1442
|
+
private readonly bulkSessions;
|
|
1320
1443
|
private readonly detailInlineNodeResolvers;
|
|
1321
1444
|
private readonly detailResourceResolver;
|
|
1322
1445
|
private runtimeObservationRegistration;
|
|
1323
1446
|
readonly paginatorSelectConfig: MatPaginatorSelectConfig;
|
|
1324
1447
|
private static readonly ROW_ANIMATION_PRESETS;
|
|
1325
1448
|
private static readonly ROW_ANIMATION_PRESET_ALIASES;
|
|
1449
|
+
static ngAcceptInputType_config: TableConfigInput;
|
|
1326
1450
|
config: TableConfig;
|
|
1451
|
+
private hostInputConfig?;
|
|
1452
|
+
private persistedUserConfig?;
|
|
1327
1453
|
resourcePath: string;
|
|
1328
1454
|
data: any[] | null;
|
|
1329
1455
|
tableId: string;
|
|
@@ -1338,7 +1464,21 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1338
1464
|
autoOpenSettingsOnOutdated: boolean;
|
|
1339
1465
|
crudContext: any;
|
|
1340
1466
|
filterCriteria: Record<string, any>;
|
|
1467
|
+
readonly filterCriteriaChange: EventEmitter<Record<string, any>>;
|
|
1468
|
+
private _filterTeleport;
|
|
1469
|
+
set filterTeleport(value: boolean);
|
|
1470
|
+
get filterTeleport(): boolean;
|
|
1471
|
+
widgetId?: string;
|
|
1472
|
+
readonly filterTemplateSignal: i0.WritableSignal<TemplateRef<unknown> | undefined>;
|
|
1473
|
+
private _filterBarTemplate?;
|
|
1474
|
+
set filterBarTemplate(tpl: TemplateRef<unknown> | undefined);
|
|
1475
|
+
get filterBarTemplate(): TemplateRef<unknown> | undefined;
|
|
1476
|
+
get filterTemplate(): TemplateRef<unknown> | undefined;
|
|
1477
|
+
private readonly widgetEventBus;
|
|
1341
1478
|
queryContext: PraxisDataQueryContextBridge | null;
|
|
1479
|
+
readonly queryContextClear: EventEmitter<PraxisTableQueryContextClearEvent>;
|
|
1480
|
+
readonly queryContextChange: EventEmitter<PraxisDataQueryContextBridge | null>;
|
|
1481
|
+
activeCrossFilters: PraxisTableCrossFilterItem[];
|
|
1342
1482
|
aiContext: TableAiContext | null;
|
|
1343
1483
|
aiAssistantVoiceInputMode: PraxisAssistantVoiceInputMode;
|
|
1344
1484
|
aiAssistantVoiceLanguage: string;
|
|
@@ -1352,10 +1492,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1352
1492
|
private advancedFilterMetadataOverridesCacheKey;
|
|
1353
1493
|
private advancedFilterMetadataOverridesCacheSource?;
|
|
1354
1494
|
private advancedFilterMetadataOverridesCache?;
|
|
1355
|
-
rowClick: EventEmitter<
|
|
1495
|
+
rowClick: EventEmitter<RowClickEvent<DynamicDataRecord>>;
|
|
1356
1496
|
widgetEvent: EventEmitter<any>;
|
|
1357
1497
|
resourceEvent: EventEmitter<PraxisResourceEvent<unknown>>;
|
|
1358
|
-
rowDoubleClick: EventEmitter<
|
|
1498
|
+
rowDoubleClick: EventEmitter<RowDoubleClickEvent<DynamicDataRecord>>;
|
|
1359
1499
|
rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
|
|
1360
1500
|
rowAction: EventEmitter<any>;
|
|
1361
1501
|
toolbarAction: EventEmitter<ToolbarActionEvent<any>>;
|
|
@@ -1376,6 +1516,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1376
1516
|
loadingStateChange: EventEmitter<LoadingState>;
|
|
1377
1517
|
collectionLinksChange: EventEmitter<RestApiLinks | null>;
|
|
1378
1518
|
selectionChange: EventEmitter<any>;
|
|
1519
|
+
drawerOpen: EventEmitter<DrawerOpenEvent<DynamicDataRecord>>;
|
|
1520
|
+
drawerClose: EventEmitter<void>;
|
|
1521
|
+
drawerTabChange: EventEmitter<string>;
|
|
1522
|
+
isAnalyticalDrawerOpen: boolean;
|
|
1523
|
+
analyticalDrawerRow: any | null;
|
|
1524
|
+
activeAnalyticalDrawerTabId?: string;
|
|
1379
1525
|
private latestLoadingState;
|
|
1380
1526
|
private loadingIndicatorVisible;
|
|
1381
1527
|
private loadingIndicatorDelayHandle;
|
|
@@ -1392,6 +1538,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1392
1538
|
selection: SelectionModel<any>;
|
|
1393
1539
|
dataSubject: BehaviorSubject<any[]>;
|
|
1394
1540
|
subscriptions: Subscription[];
|
|
1541
|
+
private surfaceOutcomeOwnerDestroyed;
|
|
1395
1542
|
showToolbar: boolean;
|
|
1396
1543
|
hasInitialized: boolean;
|
|
1397
1544
|
pageIndex: number;
|
|
@@ -1421,6 +1568,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1421
1568
|
private columnReorderUndoSubscription;
|
|
1422
1569
|
private columnRuntimeMutationOperationCounter;
|
|
1423
1570
|
private latestColumnRuntimeMutationOperationId;
|
|
1571
|
+
private persistenceContextEpoch;
|
|
1572
|
+
private persistenceContextDestroyed;
|
|
1573
|
+
/** Fence delayed work; requests already sent are not retroactively canceled. */
|
|
1574
|
+
private persistenceGuard;
|
|
1424
1575
|
private columnRuntimePersistenceInFlight;
|
|
1425
1576
|
private columnRuntimePersistencePending;
|
|
1426
1577
|
private columnResizeTransientWidths;
|
|
@@ -1441,6 +1592,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1441
1592
|
private localFilterFieldMetadataCacheKey;
|
|
1442
1593
|
private remoteSchemaLoadSequence;
|
|
1443
1594
|
private enterpriseContextIdentity;
|
|
1595
|
+
private enterpriseContextReady;
|
|
1444
1596
|
private staleEnterpriseLocalData;
|
|
1445
1597
|
private remoteDataLoadSequence;
|
|
1446
1598
|
private analyticsLoadSequence;
|
|
@@ -1476,8 +1628,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1476
1628
|
private rowContextRuntimeByRef;
|
|
1477
1629
|
private rowDiscoveryQueue;
|
|
1478
1630
|
private rowDiscoveryActiveRequests;
|
|
1631
|
+
private rowDiscoveryActivePrefetchRequests;
|
|
1479
1632
|
private rowDiscoveryEpoch;
|
|
1480
1633
|
private rowDiscoveryMarkForCheckScheduled;
|
|
1634
|
+
private pendingMarkForCheckRows;
|
|
1481
1635
|
private lastRowDiscoveryScopeKey;
|
|
1482
1636
|
private readonly i18n;
|
|
1483
1637
|
private readonly sanitizer;
|
|
@@ -1494,6 +1648,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1494
1648
|
idField: string;
|
|
1495
1649
|
horizontalScroll: 'auto' | 'wrap' | 'none';
|
|
1496
1650
|
private horizontalScrollOverrideSource;
|
|
1651
|
+
private hostHorizontalScrollInput?;
|
|
1497
1652
|
getToolbarPosition(): 'top' | 'bottom' | 'both';
|
|
1498
1653
|
shouldShowToolbarTopPlacement(): boolean;
|
|
1499
1654
|
shouldShowToolbarBottomPlacement(): boolean;
|
|
@@ -1578,6 +1733,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1578
1733
|
getLoadingSurfaceMessage(): string;
|
|
1579
1734
|
getLoadingSkeletonRows(): number[];
|
|
1580
1735
|
isLoadingSkeletonAnimated(): boolean;
|
|
1736
|
+
getSetupEmptyStateTitle(): string;
|
|
1737
|
+
getSetupEmptyStateDescription(): string;
|
|
1738
|
+
getSetupEmptyStatePrimaryAction(): EmptyAction | undefined;
|
|
1581
1739
|
getNoDataStateTitle(): string;
|
|
1582
1740
|
getNoDataStateDescription(): string | undefined;
|
|
1583
1741
|
getTableSettingsLabel(): string;
|
|
@@ -1611,11 +1769,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1611
1769
|
getNoDataStateIconContainer(): 'none' | 'circle' | 'soft';
|
|
1612
1770
|
getNoDataStatePrimaryAction(): any | null;
|
|
1613
1771
|
getNoDataStateSecondaryActions(): any[];
|
|
1772
|
+
private isAdvancedFiltersEffectivelyEnabled;
|
|
1614
1773
|
shouldRenderAdvancedFilter(): boolean;
|
|
1615
1774
|
getAdvancedFilterResourcePath(): string;
|
|
1616
1775
|
getAdvancedFilterPersistenceKey(): string;
|
|
1617
1776
|
getAdvancedFilterFormId(): string;
|
|
1618
1777
|
getAdvancedFilterOpenMode(): 'modal' | 'drawer';
|
|
1778
|
+
shouldShowAdvancedFilterAddButton(): boolean;
|
|
1779
|
+
shouldShowAdvancedFilterSettings(): boolean;
|
|
1619
1780
|
getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
|
|
1620
1781
|
getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
|
|
1621
1782
|
getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
|
|
@@ -1715,6 +1876,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1715
1876
|
private syncLocalPageSizeFromConfig;
|
|
1716
1877
|
private recomputeLocalView;
|
|
1717
1878
|
private resolveLocalSortField;
|
|
1879
|
+
private resolveColumnSemanticSourceField;
|
|
1718
1880
|
private setSchemaFieldsSnapshot;
|
|
1719
1881
|
private setFilterSchemaFieldsSnapshot;
|
|
1720
1882
|
private inferFilterSchemaSourceFields;
|
|
@@ -1730,13 +1892,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1730
1892
|
private tableConfigKey;
|
|
1731
1893
|
private filterConfigKey;
|
|
1732
1894
|
private ensureConfigDefaults;
|
|
1895
|
+
private recomposeEffectiveTableConfig;
|
|
1733
1896
|
private hasDeclaredAppearanceDensity;
|
|
1734
1897
|
private hasDeclaredAppearanceSection;
|
|
1735
1898
|
private shouldApplyAppearanceDefaultValue;
|
|
1736
1899
|
private mergePersistedTableConfigWithInput;
|
|
1900
|
+
private reconcileTableConfigInputChange;
|
|
1737
1901
|
private reconcileHostDeclaredTableContract;
|
|
1738
1902
|
private reconcileHostDeclaredColumns;
|
|
1739
1903
|
private reconcileHostDeclaredRowActions;
|
|
1904
|
+
private reconcileHostDeclaredBulkActions;
|
|
1905
|
+
private reconcileHostDeclaredFiltering;
|
|
1740
1906
|
private reconcileHostDeclaredExport;
|
|
1741
1907
|
private normalizePersistedExportFormats;
|
|
1742
1908
|
private normalizePersistedRowActionIds;
|
|
@@ -1750,6 +1916,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1750
1916
|
private resolveCollectionCapabilitiesHref;
|
|
1751
1917
|
private materializeCollectionCreateToolbarAction;
|
|
1752
1918
|
private materializeCollectionWorkflowToolbarActions;
|
|
1919
|
+
private materializeCollectionBulkSyncToolbarAction;
|
|
1920
|
+
private hasBulkSyncSelection;
|
|
1921
|
+
private tryHandleBulkSyncToolbarAction;
|
|
1922
|
+
private isBulkSyncPending;
|
|
1923
|
+
canShowBulkSyncHandle(): boolean;
|
|
1924
|
+
closeBulkSync(): void;
|
|
1925
|
+
private bulkSyncOperationalIdentity;
|
|
1753
1926
|
private isCollectionActionDiscoveryEnabled;
|
|
1754
1927
|
private ensureToolbarConfigForRuntime;
|
|
1755
1928
|
private buildCollectionCreateToolbarAction;
|
|
@@ -1851,6 +2024,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1851
2024
|
private hasActiveEmptyStateFilters;
|
|
1852
2025
|
private hasMeaningfulFilterCriteria;
|
|
1853
2026
|
private hasMeaningfulFilterValue;
|
|
2027
|
+
isStructuralQueryContextField(field: string): boolean;
|
|
2028
|
+
computeActiveCrossFilters(): PraxisTableCrossFilterItem[];
|
|
2029
|
+
onClearCrossFilter(item: PraxisTableCrossFilterItem): void;
|
|
2030
|
+
onClearAllCrossFilters(): void;
|
|
1854
2031
|
private resolveNoDataStateConfig;
|
|
1855
2032
|
private isEmptyStateTone;
|
|
1856
2033
|
private isEmptyStateVariant;
|
|
@@ -1872,6 +2049,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1872
2049
|
* race with the configured request.
|
|
1873
2050
|
*/
|
|
1874
2051
|
private shouldFetchRemoteDataForQueryChanges;
|
|
2052
|
+
/**
|
|
2053
|
+
* Evaluates whether an external TableConfig change actually modifies remote query parameters
|
|
2054
|
+
* (e.g. resourcePath, page size, sorting criteria or data mode).
|
|
2055
|
+
*
|
|
2056
|
+
* Non-query-affecting updates (such as toolbar actions, capabilities resolution, appearance,
|
|
2057
|
+
* density or empty state) MUST NOT trigger a redundant remote data load or cancel in-flight requests.
|
|
2058
|
+
*/
|
|
2059
|
+
private shouldRefetchOnConfigChange;
|
|
1875
2060
|
private isDebug;
|
|
1876
2061
|
private connectionKey;
|
|
1877
2062
|
private saveConnection;
|
|
@@ -1955,6 +2140,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1955
2140
|
private resolveExpansionDetailTimelineExpressionValue;
|
|
1956
2141
|
private getExpansionDetailTimelineObjectValue;
|
|
1957
2142
|
private normalizeExpansionDetailCardGridCardContent;
|
|
2143
|
+
/** `visibleWhen` is canonical Json Logic (object or boolean); string DSL is not a valid rule. */
|
|
2144
|
+
private normalizeExpansionDetailVisibleWhen;
|
|
2145
|
+
/**
|
|
2146
|
+
* Visibility gate for every detail node, including host-mediated ones (cardGrid, list, detailList,
|
|
2147
|
+
* timeline) that are not rendered by PraxisRichContent. Mirrors `PraxisRichContent.evaluateRule`:
|
|
2148
|
+
* same context (`row`, `computed`, `detail`), truthiness of the Json Logic result, fail-closed on error.
|
|
2149
|
+
*/
|
|
2150
|
+
isExpansionDetailNodeVisible(node: any, row: any, index: number): boolean;
|
|
2151
|
+
private withExpansionDetailParentVisibleWhen;
|
|
1958
2152
|
private normalizeExpansionDetailMediaBlockAvatar;
|
|
1959
2153
|
private normalizeExpansionDetailMediaBlockText;
|
|
1960
2154
|
private normalizeExpansionDetailMediaBlockMeta;
|
|
@@ -2010,7 +2204,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2010
2204
|
private isExpansionDetailRichListItemActionVisible;
|
|
2011
2205
|
private evaluateExpansionDetailRichListItemCondition;
|
|
2012
2206
|
getExpansionDetailRichText(node: any): string;
|
|
2013
|
-
getExpansionDetailRichContentContext(row: any, index: number): JsonLogicDataRecord;
|
|
2207
|
+
getExpansionDetailRichContentContext(row: any, index: number, node?: any): JsonLogicDataRecord;
|
|
2014
2208
|
getExpansionDetailRichContentDocument(node: any): RichContentDocument;
|
|
2015
2209
|
getExpansionDetailRichContentLayout(node: any): 'block' | 'inline';
|
|
2016
2210
|
getExpansionDetailRichContentHostCapabilities(row: any): RichBlockHostCapabilities;
|
|
@@ -2020,6 +2214,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2020
2214
|
private mapExpansionDetailNodeToRichContent;
|
|
2021
2215
|
private mapExpansionDetailMediaBlockNodeToRichContent;
|
|
2022
2216
|
private mapExpansionDetailCardNodeToRichContent;
|
|
2217
|
+
private expansionDetailVisibleWhenPatch;
|
|
2023
2218
|
private mapExpansionDetailStackNodeToRichContent;
|
|
2024
2219
|
private mapExpansionDetailValueNodeToRichContent;
|
|
2025
2220
|
private mapExpansionDetailTimelineNodeToRichContent;
|
|
@@ -2037,9 +2232,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2037
2232
|
private resolveExpansionDetailSchemaForRow;
|
|
2038
2233
|
private resolveExpansionDetailByMode;
|
|
2039
2234
|
private resolveExpansionDetailInlineSchema;
|
|
2235
|
+
private resolveExpansionDetailFromSchema;
|
|
2236
|
+
private humanizeFieldName;
|
|
2040
2237
|
private resolveExpansionDetailFromResource;
|
|
2041
2238
|
private resolveExpansionDetailFromResourcePath;
|
|
2042
2239
|
private resolveExpansionDetailFromHypermedia;
|
|
2240
|
+
private isDirectRichContentDocument;
|
|
2043
2241
|
private normalizeExpansionDetailSchemaCandidate;
|
|
2044
2242
|
private sanitizeExpansionDetailSchema;
|
|
2045
2243
|
private sanitizeExpansionDetailNodes;
|
|
@@ -2093,6 +2291,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2093
2291
|
private areStringSetsEqual;
|
|
2094
2292
|
private shouldToggleExpansionOnRowClick;
|
|
2095
2293
|
private shouldSelectRowOnRowClick;
|
|
2294
|
+
isAnalyticalDrawerEnabled(): boolean;
|
|
2295
|
+
private shouldOpenAnalyticalDrawerOnRowClick;
|
|
2296
|
+
openAnalyticalDrawer(row: any, tabId?: string): void;
|
|
2297
|
+
closeAnalyticalDrawer(): void;
|
|
2298
|
+
onAnalyticalDrawerTabChange(tabId: string): void;
|
|
2096
2299
|
private getExpansionMotionPreset;
|
|
2097
2300
|
private getExpansionMotionDurationMs;
|
|
2098
2301
|
private getExpansionMotionEasingCurve;
|
|
@@ -2125,7 +2328,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2125
2328
|
private showActionFeedbackMessage;
|
|
2126
2329
|
private emitEventWithActionFeedback;
|
|
2127
2330
|
private executeConfiguredGlobalAction;
|
|
2331
|
+
private isWritableConfiguredSurfaceOpen;
|
|
2128
2332
|
private withTableRuntimeContext;
|
|
2333
|
+
private resolveTableSurfaceRuntime;
|
|
2129
2334
|
private executeSurfaceOpen;
|
|
2130
2335
|
private resolveConfiguredGlobalActionRef;
|
|
2131
2336
|
private resolveActionGlobalActionRef;
|
|
@@ -2151,6 +2356,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2151
2356
|
private unwrapCollectionWorkflowResult;
|
|
2152
2357
|
private showCollectionWorkflowContractError;
|
|
2153
2358
|
private tryHandleCollectionCreateToolbarAction;
|
|
2359
|
+
private bindDiscoveredSurfaceOutcome;
|
|
2360
|
+
private applySurfaceActionRefresh;
|
|
2154
2361
|
private resolveBulkExportFormat;
|
|
2155
2362
|
private isBulkExportActionKey;
|
|
2156
2363
|
private normalizeExportFormat;
|
|
@@ -2185,14 +2392,27 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2185
2392
|
onAdvancedFilterSubmit(criteria: Record<string, any>): void;
|
|
2186
2393
|
onAdvancedFilterChange(criteria: Record<string, any>): void;
|
|
2187
2394
|
onAdvancedFilterClear(): void;
|
|
2395
|
+
clearAdvancedFilter(): void;
|
|
2188
2396
|
onQuickFilterChange(event: {
|
|
2189
2397
|
id: string;
|
|
2190
2398
|
filter: Record<string, unknown>;
|
|
2191
2399
|
active: boolean;
|
|
2192
2400
|
}): void;
|
|
2401
|
+
getConfiguredQuickFilters(): Array<{
|
|
2402
|
+
id: string;
|
|
2403
|
+
label: string;
|
|
2404
|
+
filter: Record<string, unknown>;
|
|
2405
|
+
icon?: string;
|
|
2406
|
+
}>;
|
|
2407
|
+
getQuickFilterManagedFields(): string[];
|
|
2408
|
+
private parseQuickFilterDefinition;
|
|
2409
|
+
getEffectiveEditableFilterCriteria(): Record<string, any>;
|
|
2410
|
+
private reconcileEditableQueryContextFilters;
|
|
2411
|
+
private syncQuickFilterStateFromEffectiveCriteria;
|
|
2193
2412
|
private clearQuickFilterRuntimeState;
|
|
2194
2413
|
private hasEquivalentFilterCriteria;
|
|
2195
|
-
private
|
|
2414
|
+
private lastAppliedFilterCriteria;
|
|
2415
|
+
applyAdvancedFilterCriteria(criteria: Record<string, any> | null | undefined, reason?: string): void;
|
|
2196
2416
|
private setAdvancedFilterCriteria;
|
|
2197
2417
|
private syncAdvancedFilterValueFromCriteria;
|
|
2198
2418
|
private deriveRuntimeVisibleAdvancedFilterFields;
|
|
@@ -2217,6 +2437,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2217
2437
|
private emitWidgetInputPatch;
|
|
2218
2438
|
private cloneInputPatch;
|
|
2219
2439
|
private executeTableEditorApplyPlan;
|
|
2440
|
+
private normalizeResourcePathIdentity;
|
|
2441
|
+
private areColumnsDerivedFromPreviousResource;
|
|
2442
|
+
private stripResourceBoundTableConfigState;
|
|
2220
2443
|
private attachRuntimeMetadataToEditorConfig;
|
|
2221
2444
|
private syncInternalFilterSettings;
|
|
2222
2445
|
private resetPreferencesToDefaults;
|
|
@@ -2377,6 +2600,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2377
2600
|
private buildRowDiscoveryScopeKey;
|
|
2378
2601
|
private resetRowContextRuntimeState;
|
|
2379
2602
|
private enqueueRowDiscoveryRequest;
|
|
2603
|
+
private promoteQueuedRowDiscoveryRequest;
|
|
2604
|
+
private prioritizeQueuedPrefetchRowDiscovery;
|
|
2605
|
+
private canDispatchNextRowDiscoveryTask;
|
|
2380
2606
|
private drainRowDiscoveryQueue;
|
|
2381
2607
|
private buildRowDiscoveryOptions;
|
|
2382
2608
|
private getRowLinks;
|
|
@@ -2444,6 +2670,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2444
2670
|
* 3. format (data formatting like dates, numbers, currency)
|
|
2445
2671
|
*/
|
|
2446
2672
|
getCellValue(rowData: any, column: ColumnDefinition): any;
|
|
2673
|
+
private shouldSuppressIntegerThousandsGrouping;
|
|
2447
2674
|
private applyImplicitRuntimeCellPresentation;
|
|
2448
2675
|
private shouldHumanizeRuntimeEnumCell;
|
|
2449
2676
|
private resolveCellFormattingType;
|
|
@@ -2537,6 +2764,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2537
2764
|
* Safely access nested properties using dot notation
|
|
2538
2765
|
*/
|
|
2539
2766
|
private getNestedPropertyValue;
|
|
2767
|
+
private hasNestedProperty;
|
|
2540
2768
|
/**
|
|
2541
2769
|
* Verifica se a ordenação está habilitada
|
|
2542
2770
|
*/
|
|
@@ -2575,6 +2803,16 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2575
2803
|
private isColumnFiltersSupported;
|
|
2576
2804
|
private isRowDraggingSupported;
|
|
2577
2805
|
private isRowExpansionSupported;
|
|
2806
|
+
private isSchemaExpansionModeActive;
|
|
2807
|
+
private getVisibleTableFieldNamesSet;
|
|
2808
|
+
private hasCompanionDenormalizedFieldInSchema;
|
|
2809
|
+
private isComplementarySchemaExpansionField;
|
|
2810
|
+
private isPopulatedExpansionRow;
|
|
2811
|
+
private hasNonEmptyExpansionFieldValue;
|
|
2812
|
+
private getComplementarySchemaExpansionFieldsForRow;
|
|
2813
|
+
private getLoadedTableRowsForExpansionCheck;
|
|
2814
|
+
private reconcileExpansionColumnsAfterDataChange;
|
|
2815
|
+
private hasComplementarySchemaExpansionFields;
|
|
2578
2816
|
private enforceAppearanceSchemaGuards;
|
|
2579
2817
|
private enforceUnsupportedFeatureGuards;
|
|
2580
2818
|
getToolbarEvaluationContext(): Record<string, any>;
|
|
@@ -2585,6 +2823,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2585
2823
|
getIconText(row: any, column: ColumnDefinition): string | null;
|
|
2586
2824
|
getIconRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
|
|
2587
2825
|
private getIconRawText;
|
|
2826
|
+
/**
|
|
2827
|
+
* Enriquece as linhas com propriedades calculadas declaradas em `computedFields`.
|
|
2828
|
+
* Torna as propriedades virtuais fisicamente acessíveis no objeto da linha (Issue #34).
|
|
2829
|
+
*/
|
|
2830
|
+
private enrichRowsWithComputedFields;
|
|
2588
2831
|
/**
|
|
2589
2832
|
* Lightweight, controlled evaluator for string/number expressions using row context.
|
|
2590
2833
|
* Accepts values like '= row.status === "OK" ? "primary" : "warn"'.
|
|
@@ -2626,8 +2869,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2626
2869
|
getBadgeRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
|
|
2627
2870
|
shouldRenderBadge(row: any, column: ColumnDefinition): boolean;
|
|
2628
2871
|
getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | 'rating' | 'microVisualization' | null;
|
|
2872
|
+
private readonly microVisualizationSafeHtmlCache;
|
|
2873
|
+
private readonly microVisualizationPageBoundsCache;
|
|
2629
2874
|
getMicroVisualizationHtml(row: any, column: ColumnDefinition): SafeHtml;
|
|
2875
|
+
private createMicroVisualizationValueFormatter;
|
|
2630
2876
|
private resolveMicroVisualizationForRow;
|
|
2877
|
+
private resolvePageMicroVisualizationBounds;
|
|
2631
2878
|
private applyMicroVisualizationExpression;
|
|
2632
2879
|
private evaluateMicroVisualizationExpression;
|
|
2633
2880
|
getComposeItems(row: any, column: ColumnDefinition): any[];
|
|
@@ -2640,6 +2887,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2640
2887
|
private asComposeValueItemColumn;
|
|
2641
2888
|
asItemColumn(base: ColumnDefinition, item: any): any;
|
|
2642
2889
|
getItemEffectiveType(row: any, column: ColumnDefinition, item: any): any;
|
|
2890
|
+
getEffectiveQuickViewBinding(row: any, column: ColumnDefinition): ResourceQuickViewBinding | null;
|
|
2891
|
+
getComposeValueQuickViewBinding(row: any, column: ColumnDefinition, item: any): ResourceQuickViewBinding | null;
|
|
2892
|
+
getQuickViewEndpointKey(): ApiEndpoint | string | null;
|
|
2893
|
+
getQuickViewTriggerAriaLabel(label: string | null | undefined, column?: ColumnDefinition): string;
|
|
2643
2894
|
private mergeRenderer;
|
|
2644
2895
|
private hasRenderableColumnOverride;
|
|
2645
2896
|
private resolveColumnRuleAnimationCandidate;
|
|
@@ -2746,7 +2997,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2746
2997
|
private emitMetadataChange;
|
|
2747
2998
|
private emitSchemaStatus;
|
|
2748
2999
|
getRowId(row: any): any;
|
|
3000
|
+
private preserveSelectionOnNextDataLoad;
|
|
2749
3001
|
private reconcileSelectionAfterDataChange;
|
|
3002
|
+
private areSelectedRowSnapshotsEquivalent;
|
|
3003
|
+
private serializeSelectedRowSnapshot;
|
|
2750
3004
|
private getComparableRowIdentity;
|
|
2751
3005
|
getIdField(): string;
|
|
2752
3006
|
private getSchemaIdFieldOverride;
|
|
@@ -2782,6 +3036,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2782
3036
|
getRowSelectionAriaLabel(row: any, index?: number): string;
|
|
2783
3037
|
getMasterSelectionAriaLabel(): string;
|
|
2784
3038
|
private selectRowFromUserInteraction;
|
|
3039
|
+
clearSelection(emitEvent?: boolean): void;
|
|
2785
3040
|
private emitSelectionChange;
|
|
2786
3041
|
private publishSelectionStatus;
|
|
2787
3042
|
private getAccessibleRowLabel;
|
|
@@ -2822,7 +3077,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2822
3077
|
getInlineRowActions(row: any): any[];
|
|
2823
3078
|
getOverflowRowActions(row: any): any[];
|
|
2824
3079
|
hasOverflowRowActions(row: any): boolean;
|
|
3080
|
+
onRowOverflowMenuTriggerHover(row: any): void;
|
|
2825
3081
|
onRowOverflowMenuOpened(row: any): void;
|
|
3082
|
+
onRowOverflowMenuClosed(trigger?: MatMenuTrigger): void;
|
|
3083
|
+
private buildRowOverflowMenuSignature;
|
|
3084
|
+
private getCanonicalCrudActionOrderIndex;
|
|
2826
3085
|
private prepareRowDiscoveryRetry;
|
|
2827
3086
|
private getVisibleRowActions;
|
|
2828
3087
|
private getResolvedRowActions;
|
|
@@ -2836,6 +3095,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2836
3095
|
private getDiscoveredRowCrudActionsFromSnapshot;
|
|
2837
3096
|
private buildDiscoveredRowCrudAction;
|
|
2838
3097
|
private getDiscoveredRowSurfaceActionsFromSnapshot;
|
|
3098
|
+
private resolveBaselineCrudActionForRowSurface;
|
|
2839
3099
|
private getDiscoveredRowWorkflowActionsFromCatalog;
|
|
2840
3100
|
private getDiscoveredRowWorkflowActionsFromItems;
|
|
2841
3101
|
private resolveRowCrudCapabilityOperation;
|
|
@@ -2876,7 +3136,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2876
3136
|
private scheduleRowDiscoveryMarkForCheck;
|
|
2877
3137
|
ngOnDestroy(): void;
|
|
2878
3138
|
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>;
|
|
3139
|
+
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>;
|
|
3140
|
+
static ngAcceptInputType_filterTeleport: unknown;
|
|
2880
3141
|
static ngAcceptInputType_enableCustomization: unknown;
|
|
2881
3142
|
}
|
|
2882
3143
|
|
|
@@ -3076,10 +3337,11 @@ interface RendererFieldOption {
|
|
|
3076
3337
|
isVisible: boolean;
|
|
3077
3338
|
isHidden?: boolean;
|
|
3078
3339
|
}
|
|
3079
|
-
type ComposePresetId = 'personAvatar' | 'contactTwoLines' | 'documentEmail' | 'statusChip';
|
|
3340
|
+
type ComposePresetId = 'personAvatar' | 'roleDepartment' | 'contactTwoLines' | 'documentEmail' | 'statusChip';
|
|
3080
3341
|
declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestroy {
|
|
3081
3342
|
private cdr;
|
|
3082
3343
|
private readonly i18n;
|
|
3344
|
+
private readonly jsonLogic;
|
|
3083
3345
|
tx(key: string, fallback: string): string;
|
|
3084
3346
|
readonly ratingAriaLabelPlaceholder: string;
|
|
3085
3347
|
readonly ratingRendererHint: string;
|
|
@@ -3092,6 +3354,13 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3092
3354
|
type?: string;
|
|
3093
3355
|
tableHidden?: boolean;
|
|
3094
3356
|
hidden?: boolean;
|
|
3357
|
+
options?: Array<{
|
|
3358
|
+
value?: any;
|
|
3359
|
+
key?: any;
|
|
3360
|
+
label?: string;
|
|
3361
|
+
text?: string;
|
|
3362
|
+
}>;
|
|
3363
|
+
enumValues?: Array<string | number>;
|
|
3095
3364
|
xUi?: Record<string, any>;
|
|
3096
3365
|
ui?: Record<string, any>;
|
|
3097
3366
|
}>;
|
|
@@ -3122,7 +3391,22 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3122
3391
|
condOverridesSelectedIndex: number;
|
|
3123
3392
|
getConditionalOverrides(): any[];
|
|
3124
3393
|
ensureConditionalOverrides(): any[];
|
|
3394
|
+
getColumnActiveRendererIcon(column: ColumnDefinition | null | undefined): string | null;
|
|
3395
|
+
getColumnActiveRendererTooltip(column: ColumnDefinition | null | undefined): string;
|
|
3396
|
+
getFieldDomainOptions(fieldName: string | undefined): Array<{
|
|
3397
|
+
value: string | number | boolean;
|
|
3398
|
+
label: string;
|
|
3399
|
+
}>;
|
|
3400
|
+
getSelectedColumnDomainOptions(): Array<{
|
|
3401
|
+
value: string | number | boolean;
|
|
3402
|
+
label: string;
|
|
3403
|
+
}>;
|
|
3404
|
+
getFilteredOverrideConditionValueOptions(condition: any): Array<{
|
|
3405
|
+
value: string;
|
|
3406
|
+
label: string;
|
|
3407
|
+
}>;
|
|
3125
3408
|
addConditionalOverride(): void;
|
|
3409
|
+
generateDomainConditionalBadges(): void;
|
|
3126
3410
|
removeConditionalOverride(index: number): void;
|
|
3127
3411
|
duplicateConditionalOverride(index: number): void;
|
|
3128
3412
|
onConditionalOverrideReorder(event: any): void;
|
|
@@ -3131,6 +3415,18 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3131
3415
|
getJsonLogicSummary(value: JsonLogicExpression | null | undefined): string;
|
|
3132
3416
|
private parseJsonLogicText;
|
|
3133
3417
|
setConditionalOverrideCondition(index: number, raw: string): void;
|
|
3418
|
+
readonly overrideConditionOperators: readonly ["===", "==", "!==", "!=", ">", ">=", "<", "<=", "truthy", "falsy"];
|
|
3419
|
+
private normalizeConditionFieldName;
|
|
3420
|
+
getOverrideConditionField(condition: any): string;
|
|
3421
|
+
getOverrideConditionOperator(condition: any): string;
|
|
3422
|
+
getOverrideConditionValue(condition: any): string;
|
|
3423
|
+
setOverrideGuidedCondition(index: number, patch: {
|
|
3424
|
+
field?: string;
|
|
3425
|
+
operator?: string;
|
|
3426
|
+
value?: string;
|
|
3427
|
+
}): void;
|
|
3428
|
+
private extractGuidedJsonLogicCondition;
|
|
3429
|
+
private coerceGuidedScalar;
|
|
3134
3430
|
getOverrideField(path: string): any;
|
|
3135
3431
|
setOverrideField(path: string, value: any): void;
|
|
3136
3432
|
setOverrideJsonLogicField(path: string, raw: string): void;
|
|
@@ -3139,13 +3435,19 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3139
3435
|
item: any;
|
|
3140
3436
|
index: number;
|
|
3141
3437
|
}>;
|
|
3438
|
+
addOverrideComposeItem(type: 'value' | 'badge' | 'icon' | 'chip' | 'progress' | 'avatar' | 'link' | 'button' | 'rating' | 'html'): void;
|
|
3142
3439
|
addOverrideComposeValueItem(): void;
|
|
3440
|
+
moveOverrideComposeItem(index: number, delta: -1 | 1): void;
|
|
3441
|
+
duplicateOverrideComposeItem(index: number): void;
|
|
3442
|
+
removeOverrideComposeItem(index: number): void;
|
|
3443
|
+
setOverrideComposeItemProp(index: number, path: string, value: any): void;
|
|
3143
3444
|
setOverrideComposeValueItemField(index: number, field: string): void;
|
|
3144
3445
|
setOverrideComposeValueItemEmphasis(index: number, emphasis: string): void;
|
|
3145
3446
|
getOverrideComposeLayoutProp(key: string): any;
|
|
3146
3447
|
setOverrideComposeLayoutProp(key: string, value: any): void;
|
|
3147
3448
|
onOverrideTypeChange(ov: any, val: string): void;
|
|
3148
3449
|
getOverrideMicroVisualizationProp(path: string): any;
|
|
3450
|
+
private ensureOverrideMicroVisualizationObject;
|
|
3149
3451
|
setOverrideMicroVisualizationProp(path: string, value: any): void;
|
|
3150
3452
|
getOverrideMicroVisualizationKind(): PraxisPresentationVisualizationKind;
|
|
3151
3453
|
getOverrideMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
@@ -3155,15 +3457,30 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3155
3457
|
isOverrideMicroVisualizationSegmentsKind(): boolean;
|
|
3156
3458
|
isOverrideMicroVisualizationItemsKind(): boolean;
|
|
3157
3459
|
isOverrideMicroVisualizationTotalKind(): boolean;
|
|
3460
|
+
isOverrideMicroVisualizationTargetKind(): boolean;
|
|
3461
|
+
isOverrideMicroVisualizationBaselineKind(): boolean;
|
|
3462
|
+
isOverrideMicroVisualizationSuffixKind(): boolean;
|
|
3463
|
+
isOverrideMicroVisualizationScaleBoundsKind(): boolean;
|
|
3464
|
+
isOverrideMicroVisualizationScaleScopeKind(): boolean;
|
|
3465
|
+
isOverrideMicroVisualizationThresholdsSupported(): boolean;
|
|
3466
|
+
getOverrideMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
|
|
3467
|
+
addOverrideMicroVisualizationThreshold(): void;
|
|
3468
|
+
applyDefaultOverrideMicroVisualizationThresholds(): void;
|
|
3469
|
+
setOverrideMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
|
|
3470
|
+
setOverrideMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
|
|
3471
|
+
moveOverrideMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
|
|
3472
|
+
removeOverrideMicroVisualizationThreshold(index: number): void;
|
|
3158
3473
|
getOverrideMicroVisualizationGuidanceText(): string;
|
|
3159
3474
|
exportOverrideJson(index: number): void;
|
|
3160
3475
|
importOverrideJson(index: number): void;
|
|
3161
3476
|
rendererValidationErrors: string[];
|
|
3477
|
+
get validationErrors(): string[];
|
|
3162
3478
|
rendererImportWarnings: string[];
|
|
3163
3479
|
rendererIsValid: boolean;
|
|
3164
3480
|
rendererPreviewEnabled: boolean;
|
|
3165
3481
|
private rendererAppliedSnapshot;
|
|
3166
3482
|
previewRows: any[];
|
|
3483
|
+
microVisualizationSampleValuesText: string;
|
|
3167
3484
|
private refreshRendererFieldOptions;
|
|
3168
3485
|
getRendererFieldOptions(): RendererFieldOption[];
|
|
3169
3486
|
formatRendererFieldOption(option: RendererFieldOption): string;
|
|
@@ -3196,11 +3513,14 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3196
3513
|
isExistingColumn(column: ColumnDefinition): boolean;
|
|
3197
3514
|
isCalculatedColumn(column: ColumnDefinition): boolean;
|
|
3198
3515
|
hasValueGetterError(column: ColumnDefinition): boolean;
|
|
3516
|
+
private hydrateApiColumnFlags;
|
|
3199
3517
|
private generateAvailableDataSchema;
|
|
3200
3518
|
/**
|
|
3201
3519
|
* Map ColumnDataType to FieldSchema type
|
|
3202
3520
|
*/
|
|
3203
3521
|
private mapColumnTypeToFieldType;
|
|
3522
|
+
private _cachedFormulaKey;
|
|
3523
|
+
private _cachedFormulaRef;
|
|
3204
3524
|
getColumnFormula(column: ColumnDefinition | null): FormulaDefinition | undefined;
|
|
3205
3525
|
onFormulaChange(formula: FormulaDefinition): void;
|
|
3206
3526
|
onGeneratedExpressionChange(expression: string): void;
|
|
@@ -3258,7 +3578,23 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3258
3578
|
setRendererJsonLogicProp(kind: string, path: string, raw: string): void;
|
|
3259
3579
|
setRendererProp(kind: string, path: string, value: any): void;
|
|
3260
3580
|
private createDefaultMicroVisualization;
|
|
3581
|
+
private ensureMicroVisualizationObject;
|
|
3261
3582
|
setMicroVisualizationProp(path: string, value: any): void;
|
|
3583
|
+
isMicroVisualizationThresholdsSupported(): boolean;
|
|
3584
|
+
getMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
|
|
3585
|
+
addMicroVisualizationThreshold(): void;
|
|
3586
|
+
applyDefaultMicroVisualizationThresholds(): void;
|
|
3587
|
+
setMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
|
|
3588
|
+
setMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
|
|
3589
|
+
moveMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
|
|
3590
|
+
removeMicroVisualizationThreshold(index: number): void;
|
|
3591
|
+
setMicroVisualizationSampleValuesText(raw: string): void;
|
|
3592
|
+
private readonly sanitizer;
|
|
3593
|
+
private readonly microVisualizationPreviewSafeHtmlCache;
|
|
3594
|
+
private memoizeMicroVisualizationSafeHtml;
|
|
3595
|
+
getMicroVisualizationSampleValues(): number[];
|
|
3596
|
+
getPreviewMicroVisualizationSafeHtmlForValue(sampleValue: number): SafeHtml;
|
|
3597
|
+
getPreviewMicroVisualizationHtmlForValue(sampleValue: number): string;
|
|
3262
3598
|
private _deepClone;
|
|
3263
3599
|
hasSelectedRenderer(): boolean;
|
|
3264
3600
|
onApplyRenderer(): void;
|
|
@@ -3278,6 +3614,12 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3278
3614
|
private stripRowPrefixes;
|
|
3279
3615
|
private _coerceExpected;
|
|
3280
3616
|
private getNested;
|
|
3617
|
+
private buildPreviewEvaluationContext;
|
|
3618
|
+
evaluatePreviewOverrideCondition(condition: any, row: any): boolean;
|
|
3619
|
+
private mergePreviewRenderer;
|
|
3620
|
+
private hasRenderablePreviewOverride;
|
|
3621
|
+
getEffectivePreviewRenderer(row: any): any;
|
|
3622
|
+
getPreviewSampleRows(): any[];
|
|
3281
3623
|
getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'rating' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
3282
3624
|
getPreviewIconName(row: any): string | null;
|
|
3283
3625
|
getPreviewIconColor(row: any): string | null;
|
|
@@ -3289,16 +3631,22 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3289
3631
|
getPreviewImageShape(): 'square' | 'rounded' | 'circle' | undefined;
|
|
3290
3632
|
getPreviewImageFit(): 'cover' | 'contain' | undefined;
|
|
3291
3633
|
getPreviewBadgeText(row: any): string | null;
|
|
3292
|
-
getPreviewBadgeIcon(
|
|
3293
|
-
getPreviewBadgeClasses(
|
|
3634
|
+
getPreviewBadgeIcon(row: any): string | null;
|
|
3635
|
+
getPreviewBadgeClasses(row: any): string[];
|
|
3636
|
+
private buildBadgeClassesFromConfig;
|
|
3294
3637
|
getPreviewLinkText(row: any): string;
|
|
3295
3638
|
getPreviewLinkHref(row: any): string | null;
|
|
3296
3639
|
getPreviewButtonLabel(row: any): string;
|
|
3297
|
-
getPreviewButtonIcon(): string | null;
|
|
3640
|
+
getPreviewButtonIcon(row?: any): string | null;
|
|
3298
3641
|
getPreviewChipText(row: any): string | null;
|
|
3299
|
-
|
|
3642
|
+
getPreviewChipIcon(row?: any): string | null;
|
|
3643
|
+
getPreviewChipClasses(row?: any): string[];
|
|
3644
|
+
getComposePreviewButtonLabel(item: any, row: any): string;
|
|
3300
3645
|
getPreviewProgressValue(row: any): number;
|
|
3646
|
+
getPreviewMicroVisualizationSafeHtml(row: any): SafeHtml;
|
|
3301
3647
|
getPreviewMicroVisualizationHtml(row: any): string;
|
|
3648
|
+
private createPreviewMicroVisualizationValueFormatter;
|
|
3649
|
+
private resolvePreviewMicroVisualizationConfig;
|
|
3302
3650
|
getMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
3303
3651
|
getMicroVisualizationKind(): PraxisPresentationVisualizationKind;
|
|
3304
3652
|
isMicroVisualizationValueKind(): boolean;
|
|
@@ -3306,6 +3654,11 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3306
3654
|
isMicroVisualizationSegmentsKind(): boolean;
|
|
3307
3655
|
isMicroVisualizationItemsKind(): boolean;
|
|
3308
3656
|
isMicroVisualizationTotalKind(): boolean;
|
|
3657
|
+
isMicroVisualizationTargetKind(): boolean;
|
|
3658
|
+
isMicroVisualizationBaselineKind(): boolean;
|
|
3659
|
+
isMicroVisualizationSuffixKind(): boolean;
|
|
3660
|
+
isMicroVisualizationScaleBoundsKind(): boolean;
|
|
3661
|
+
isMicroVisualizationScaleScopeKind(): boolean;
|
|
3309
3662
|
getMicroVisualizationGuidanceText(): string;
|
|
3310
3663
|
getMicroVisualizationConstraint(): PraxisTableCellVisualizationConstraint;
|
|
3311
3664
|
getPreviewRatingValue(row: any): number;
|
|
@@ -3314,7 +3667,36 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3314
3667
|
getPreviewRatingOutlineColor(): string | undefined;
|
|
3315
3668
|
getPreviewRatingSize(): 'small' | 'medium' | 'large';
|
|
3316
3669
|
getPreviewRatingAriaLabel(): string | undefined;
|
|
3317
|
-
getComposePreviewItems(
|
|
3670
|
+
getComposePreviewItems(row: any): any[];
|
|
3671
|
+
isComposePreviewMedia(row: any): boolean;
|
|
3672
|
+
getComposePreviewContainerStyle(row: any): Record<string, string>;
|
|
3673
|
+
getComposePreviewValueText(item: any, row: any): string;
|
|
3674
|
+
getComposePreviewValueClasses(item: any): string[];
|
|
3675
|
+
getComposePreviewBadgeText(item: any, row: any): string;
|
|
3676
|
+
getComposePreviewBadgeClasses(item: any): string[];
|
|
3677
|
+
getComposePreviewChipText(item: any, row: any): string;
|
|
3678
|
+
getComposePreviewChipClasses(item: any): string[];
|
|
3679
|
+
getComposePreviewLinkText(item: any, row: any): string;
|
|
3680
|
+
getComposePreviewLinkHref(item: any, row: any): string | null;
|
|
3681
|
+
getComposePreviewIconName(item: any, row: any): string | null;
|
|
3682
|
+
getComposePreviewIconColor(item: any, _row: any): string | null;
|
|
3683
|
+
getComposePreviewIconStyle(item: any, _row: any): Record<string, string> | null;
|
|
3684
|
+
getComposePreviewAvatarStyle(item: any): Record<string, string>;
|
|
3685
|
+
getComposePreviewAvatarInitials(item: any, row: any): string;
|
|
3686
|
+
getComposePreviewAvatarSrc(item: any, row: any): string | null;
|
|
3687
|
+
getComposePreviewAvatarAlt(item: any, row: any): string;
|
|
3688
|
+
getComposePreviewImageSrc(item: any, row: any): string | null;
|
|
3689
|
+
getComposePreviewImageAlt(item: any, row: any): string;
|
|
3690
|
+
getComposePreviewImageStyle(item: any): Record<string, string>;
|
|
3691
|
+
getComposePreviewProgressColor(item: any): string | null;
|
|
3692
|
+
getComposePreviewHtml(item: any, row: any): string;
|
|
3693
|
+
getComposePreviewToggleState(item: any, row: any): boolean;
|
|
3694
|
+
getComposePreviewMenuCount(item: any, row: any): number;
|
|
3695
|
+
private isValidPreviewMediaUrl;
|
|
3696
|
+
private resolvePreviewSafeSrc;
|
|
3697
|
+
/** Mirrors PraxisTable.getSafeHtml token interpolation: `[[field]]` values are HTML-escaped. */
|
|
3698
|
+
private interpolatePreviewHtml;
|
|
3699
|
+
getComposePreviewProgressValue(item: any, row: any): number;
|
|
3318
3700
|
getComposePreviewRatingValue(item: any, row: any): number;
|
|
3319
3701
|
getComposePreviewRatingMax(item: any): number;
|
|
3320
3702
|
getComposePreviewRatingColor(item: any): string | undefined;
|
|
@@ -3330,7 +3712,10 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3330
3712
|
getPreviewToggleState(row: any): boolean;
|
|
3331
3713
|
getPreviewMenuCount(row: any): number;
|
|
3332
3714
|
getPreviewHtml(row: any): string;
|
|
3333
|
-
|
|
3715
|
+
getPreviewProgressColor(row: any): string | null;
|
|
3716
|
+
/** Preview rows are re-cloned on every read; the sample slot index is their stable identity. */
|
|
3717
|
+
trackByIdx: (index: number, _item: unknown) => number;
|
|
3718
|
+
private validateMicroVisualizationThresholds;
|
|
3334
3719
|
private validateRenderer;
|
|
3335
3720
|
private readonly _emptyMappingRef;
|
|
3336
3721
|
composeSelectedIndex: number;
|
|
@@ -3348,10 +3733,13 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3348
3733
|
onComposeReorder(event: any): void;
|
|
3349
3734
|
selectComposeItem(index: number): void;
|
|
3350
3735
|
getComposeLayoutProp(key: string): any;
|
|
3736
|
+
hasComposeMediaLeadingItem(): boolean;
|
|
3351
3737
|
setComposeLayoutProp(key: string, value: any): void;
|
|
3352
3738
|
getSelectedComposeItem(): any;
|
|
3353
3739
|
getSelectedComposeItemProp(path: string): any;
|
|
3354
3740
|
setSelectedComposeItemProp(path: string, value: any): void;
|
|
3741
|
+
getConsolidatedSecondaryColumn(item: any): ExtendedColumnDefinition | null;
|
|
3742
|
+
hideConsolidatedColumn(field: string): void;
|
|
3355
3743
|
private findRendererFieldByCandidates;
|
|
3356
3744
|
private normalizeFieldLookup;
|
|
3357
3745
|
getColumnKeyInputType(column: ColumnDefinition | null): 'text' | 'number' | 'boolean';
|
|
@@ -3360,11 +3748,18 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3360
3748
|
}): void;
|
|
3361
3749
|
get selectedColumnDataType(): ColumnDataType$1;
|
|
3362
3750
|
set selectedColumnDataType(value: ColumnDataType$1);
|
|
3751
|
+
private findColumnFieldMetadata;
|
|
3752
|
+
private inferColumnDataTypeFromMetadata;
|
|
3363
3753
|
getColumnDataType(column: ColumnDefinition | null): ColumnDataType$1;
|
|
3364
3754
|
/**
|
|
3365
|
-
* Infer column data type from field name patterns (shared logic with PraxisTable)
|
|
3755
|
+
* Infer column data type from field name patterns (shared logic with PraxisTable, supporting pt-BR and en-US)
|
|
3366
3756
|
*/
|
|
3367
3757
|
private inferFieldTypeFromFieldName;
|
|
3758
|
+
inferRecommendedColumnAlignment(column: ColumnDefinition | null, explicitType?: ColumnDataType$1): 'left' | 'center' | 'right';
|
|
3759
|
+
inferRecommendedColumnFormat(column: ColumnDefinition | null, explicitType?: ColumnDataType$1): string;
|
|
3760
|
+
private applySmartCalibrationToColumn;
|
|
3761
|
+
calibrateSelectedColumnFromMetadata(): void;
|
|
3762
|
+
calibrateAllColumnsFromMetadata(): void;
|
|
3368
3763
|
onDataTypeChange(dataType: ColumnDataType$1): void;
|
|
3369
3764
|
showDataFormatter(column: ColumnDefinition | null): boolean;
|
|
3370
3765
|
getFormatterIcon(column: ColumnDefinition | null): string;
|
|
@@ -3729,6 +4124,8 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3729
4124
|
presentation: FormControl<FilterConfig['presentation']>;
|
|
3730
4125
|
alwaysVisibleFields: FormControl<string[]>;
|
|
3731
4126
|
showAdvanced: FormControl<boolean>;
|
|
4127
|
+
showAddButton: FormControl<boolean>;
|
|
4128
|
+
showFilterSettings: FormControl<boolean>;
|
|
3732
4129
|
mode: FormControl<'filter'>;
|
|
3733
4130
|
changeDebounceMs: FormControl<number>;
|
|
3734
4131
|
allowSaveTags: FormControl<boolean>;
|
|
@@ -3834,6 +4231,9 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3834
4231
|
isPresetActive(key: string): boolean;
|
|
3835
4232
|
hasBooleanFieldMetadata(): boolean;
|
|
3836
4233
|
getFieldLabel(name: string): string;
|
|
4234
|
+
getFieldTypeBadge(meta?: FieldMetadata | null): string;
|
|
4235
|
+
getFieldDescription(meta?: FieldMetadata | null): string;
|
|
4236
|
+
getSelectedAlwaysVisibleTriggerLabel(): string;
|
|
3837
4237
|
onAlwaysVisibleFieldSearchChange(value: string): void;
|
|
3838
4238
|
clearAlwaysVisibleFieldSearch(): void;
|
|
3839
4239
|
filteredAlwaysVisibleMetadata(): FieldMetadata[];
|
|
@@ -4183,6 +4583,12 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
4183
4583
|
value: any;
|
|
4184
4584
|
label: string;
|
|
4185
4585
|
}>;
|
|
4586
|
+
getDomainRuleTargetField(): string | null;
|
|
4587
|
+
getDomainRuleCandidateOptions(): Array<{
|
|
4588
|
+
value: any;
|
|
4589
|
+
label: string;
|
|
4590
|
+
}>;
|
|
4591
|
+
generateDomainRules(): void;
|
|
4186
4592
|
isNoValueOperator(op: string): boolean;
|
|
4187
4593
|
getValuePlaceholder(): string;
|
|
4188
4594
|
getI18nValuePlaceholder(): string;
|
|
@@ -4237,7 +4643,7 @@ declare class TableDetailTreeDraft {
|
|
|
4237
4643
|
depth: number;
|
|
4238
4644
|
} | undefined;
|
|
4239
4645
|
move(direction: -1 | 1): void;
|
|
4240
|
-
add(node: Node, nested?: boolean):
|
|
4646
|
+
add(node: Node, nested?: boolean): Node | null;
|
|
4241
4647
|
}
|
|
4242
4648
|
|
|
4243
4649
|
declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
@@ -4254,6 +4660,7 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4254
4660
|
dirty: boolean;
|
|
4255
4661
|
}>;
|
|
4256
4662
|
private readonly i18n;
|
|
4663
|
+
private readonly jsonLogic;
|
|
4257
4664
|
private baseline?;
|
|
4258
4665
|
private emitted?;
|
|
4259
4666
|
private readonly coupledBefore;
|
|
@@ -4265,26 +4672,49 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4265
4672
|
jsonTouched: boolean;
|
|
4266
4673
|
advanced: boolean;
|
|
4267
4674
|
preset: string;
|
|
4675
|
+
/** True when the last "add inside" was refused because the block cannot live inside a card grid card. */
|
|
4676
|
+
addRejected: boolean;
|
|
4268
4677
|
readonly presets: string[];
|
|
4269
4678
|
readonly sourceModes: string[];
|
|
4270
4679
|
readonly resourceKinds: string[];
|
|
4271
4680
|
readonly resourcePathMethods: string[];
|
|
4681
|
+
readonly cardGridColumnOptions: Array<'auto' | 1 | 2 | 3 | 4>;
|
|
4682
|
+
readonly cardVariants: Array<'outlined' | 'elevated' | 'filled' | 'plain' | 'transparent'>;
|
|
4683
|
+
readonly cardSizes: Array<'sm' | 'md' | 'lg'>;
|
|
4684
|
+
readonly cardDensities: Array<'compact' | 'comfortable'>;
|
|
4685
|
+
readonly composeLayouts: Array<'flex' | 'grid'>;
|
|
4686
|
+
readonly composeDirections: Array<'row' | 'column'>;
|
|
4687
|
+
readonly composeGaps: Array<'xs' | 'sm' | 'md' | 'lg' | 'xl'>;
|
|
4688
|
+
readonly composeAlignItemsOptions: Array<'' | 'start' | 'center' | 'end' | 'stretch'>;
|
|
4689
|
+
readonly badgePresetOptions: Array<'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'>;
|
|
4690
|
+
readonly iconSurfacePresetOptions: Array<'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'>;
|
|
4691
|
+
readonly semanticTones: Array<'' | 'neutral' | 'info' | 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger'>;
|
|
4692
|
+
readonly conditionOperators: Array<'===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy'>;
|
|
4272
4693
|
fallbackModes(): string[];
|
|
4273
|
-
sample:
|
|
4694
|
+
sample: 'A' | 'B' | 'C';
|
|
4274
4695
|
get previewContext(): {
|
|
4275
|
-
row:
|
|
4276
|
-
id: string;
|
|
4277
|
-
note: string;
|
|
4278
|
-
status: string;
|
|
4279
|
-
progress: number;
|
|
4280
|
-
};
|
|
4696
|
+
row: Record<string, unknown>;
|
|
4281
4697
|
};
|
|
4698
|
+
private projectDetailNodeToRichBlockNodes;
|
|
4282
4699
|
/** Local presenter projection only; never used as an authoring/save source. */
|
|
4283
4700
|
previewNodes(): RichBlockNode[];
|
|
4701
|
+
/**
|
|
4702
|
+
* Returns structured preview groups so `cardGrid` blocks render with their real
|
|
4703
|
+
* multi-column CSS Grid (`columns` and `minCardWidth`) and headers in the preview canvas.
|
|
4704
|
+
*/
|
|
4705
|
+
previewCardGridGroups(): Array<{
|
|
4706
|
+
isCardGrid: boolean;
|
|
4707
|
+
title?: string;
|
|
4708
|
+
subtitle?: string;
|
|
4709
|
+
gridTemplateColumns?: string;
|
|
4710
|
+
cards?: RichBlockNode[];
|
|
4711
|
+
nodes?: RichBlockNode[];
|
|
4712
|
+
}>;
|
|
4284
4713
|
previewRichContentDocuments(): RichContentDocument[];
|
|
4285
4714
|
richContentEditorInputs(): PraxisRichContentEditorInputs | null;
|
|
4286
4715
|
applyRichContentEditor(): void;
|
|
4287
|
-
addPreset(preset: 'callout' | 'richCard'): void;
|
|
4716
|
+
addPreset(preset: 'callout' | 'richCard' | 'richDetailGrid'): void;
|
|
4717
|
+
effectiveNodeType(node?: Record<string, any> | undefined): string;
|
|
4288
4718
|
nodeLabel(node: Record<string, any>): string;
|
|
4289
4719
|
nodeIcon(node: Record<string, any>): string;
|
|
4290
4720
|
canMove(direction: -1 | 1): boolean;
|
|
@@ -4323,10 +4753,75 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4323
4753
|
canNest(): boolean;
|
|
4324
4754
|
move(direction: -1 | 1): void;
|
|
4325
4755
|
remove(): void;
|
|
4756
|
+
fieldValue(field: string): string;
|
|
4326
4757
|
edit(field: string, value: string): void;
|
|
4327
4758
|
fields(): string[];
|
|
4328
4759
|
isAdvancedNode(): boolean;
|
|
4760
|
+
availableColumns(): Array<{
|
|
4761
|
+
field: string;
|
|
4762
|
+
label: string;
|
|
4763
|
+
}>;
|
|
4764
|
+
supportsFieldBinding(): boolean;
|
|
4765
|
+
boundColumnField(): string;
|
|
4766
|
+
bindColumnField(fieldName: string): void;
|
|
4767
|
+
cardGridColumnsValue(): 'auto' | 1 | 2 | 3 | 4;
|
|
4768
|
+
setCardGridColumns(value: 'auto' | 1 | 2 | 3 | 4): void;
|
|
4769
|
+
cardGridMinWidthValue(): number;
|
|
4770
|
+
setCardGridMinWidth(value: number | string): void;
|
|
4771
|
+
cardVariantValue(): 'outlined' | 'elevated' | 'filled' | 'plain' | 'transparent';
|
|
4772
|
+
setCardVariant(variant: 'outlined' | 'elevated' | 'filled' | 'plain' | 'transparent' | 'soft'): void;
|
|
4773
|
+
cardSizeValue(): 'sm' | 'md' | 'lg';
|
|
4774
|
+
setCardSize(size: 'sm' | 'md' | 'lg'): void;
|
|
4775
|
+
cardDensityValue(): 'compact' | 'comfortable';
|
|
4776
|
+
setCardDensity(density: 'compact' | 'comfortable' | 'spacious'): void;
|
|
4777
|
+
composeLayoutValue(): 'flex' | 'grid';
|
|
4778
|
+
setComposeLayout(layout: 'flex' | 'grid'): void;
|
|
4779
|
+
composeDirectionValue(): 'row' | 'column';
|
|
4780
|
+
setComposeDirection(direction: 'row' | 'column'): void;
|
|
4781
|
+
composeGapValue(): 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4782
|
+
setComposeGap(gap: 'xs' | 'sm' | 'md' | 'lg' | 'xl'): void;
|
|
4783
|
+
composeAlignItemsValue(): '' | 'start' | 'center' | 'end' | 'stretch';
|
|
4784
|
+
setComposeAlignItems(align: '' | 'start' | 'center' | 'end' | 'stretch' | 'flex-start' | 'flex-end'): void;
|
|
4785
|
+
composeWrapValue(): boolean;
|
|
4786
|
+
setComposeWrap(wrap: boolean): void;
|
|
4787
|
+
supportsTone(): boolean;
|
|
4788
|
+
toneValue(): string;
|
|
4789
|
+
setTone(tone: string): void;
|
|
4790
|
+
supportsStyleControls(): boolean;
|
|
4791
|
+
nodeStyleValue(key: string): string;
|
|
4792
|
+
setNodeStyleValue(key: string, value: string): void;
|
|
4793
|
+
hasNodeAppearanceOverrides(): boolean;
|
|
4794
|
+
resetNodeAppearance(): void;
|
|
4795
|
+
badgeAppearancePreset(): 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom';
|
|
4796
|
+
applyBadgeAppearancePreset(preset: 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'): void;
|
|
4797
|
+
iconSurfacePreset(): 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom';
|
|
4798
|
+
applyIconSurfacePreset(preset: 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'): void;
|
|
4799
|
+
canConvertSelectedToRichContent(): boolean;
|
|
4800
|
+
private isLosslesslyConvertibleToRichContent;
|
|
4801
|
+
/**
|
|
4802
|
+
* Losslessly converts the selected `cardGrid` or `card` block (or its parent `cardGrid`
|
|
4803
|
+
* when a card inside `cardGrid.cards` is selected) into a canonical `richContent` node
|
|
4804
|
+
* so the user can continue authoring in the full embedded `PraxisRichContentConfigEditor`.
|
|
4805
|
+
*/
|
|
4806
|
+
convertSelectedToRichContent(): void;
|
|
4807
|
+
supportsVisibleWhen(): boolean;
|
|
4808
|
+
visibleWhenMode(): 'always' | 'conditional' | 'custom';
|
|
4809
|
+
setVisibleWhenMode(mode: 'always' | 'conditional' | 'custom'): void;
|
|
4810
|
+
visibleWhenField(): string;
|
|
4811
|
+
visibleWhenOperator(): '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4812
|
+
visibleWhenValue(): string;
|
|
4813
|
+
setVisibleWhenRule(patch: {
|
|
4814
|
+
field?: string;
|
|
4815
|
+
operator?: '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4816
|
+
value?: string;
|
|
4817
|
+
}): void;
|
|
4818
|
+
private parseConditionScalar;
|
|
4819
|
+
private parseGuidedVisibleWhen;
|
|
4820
|
+
private isPreviewNodeVisible;
|
|
4329
4821
|
private commitTree;
|
|
4822
|
+
/** Offered next to `cardGridContent`/`composeContent` issues: converts legacy fields into canonical presenters. */
|
|
4823
|
+
canNormalizeRichChildren(): boolean;
|
|
4824
|
+
normalizeRichChildren(): void;
|
|
4330
4825
|
editJson(value: string): void;
|
|
4331
4826
|
discard(): void;
|
|
4332
4827
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableDetailEditorComponent, never>;
|
|
@@ -4401,16 +4896,24 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4401
4896
|
isValid$: BehaviorSubject<boolean>;
|
|
4402
4897
|
isBusy$: BehaviorSubject<boolean>;
|
|
4403
4898
|
columnMetas: FieldMetadata[];
|
|
4899
|
+
filterSchemaFields: FieldDefinition[];
|
|
4404
4900
|
filterDtoMetas: FieldMetadata[];
|
|
4405
4901
|
filterDtoMetasLoading: boolean;
|
|
4406
4902
|
filterDtoMetasErrorMsg: string;
|
|
4903
|
+
resourceSchemaFields: FieldDefinition[];
|
|
4904
|
+
resourceSchemaMetas: FieldMetadata[];
|
|
4905
|
+
resourceSchemaLoading: boolean;
|
|
4906
|
+
selectedCatalogResource: DiscoveredResourceOption | null;
|
|
4407
4907
|
private hasCrudOverridesDirty;
|
|
4408
4908
|
private hasLocalDataInput;
|
|
4409
4909
|
private filterDtoLoadSeq;
|
|
4910
|
+
private resourceSchemaLoadSeq;
|
|
4911
|
+
private loadedSchemaResourcePath;
|
|
4410
4912
|
private lastKnownFilterSettings;
|
|
4411
4913
|
private globalActionValidationIssues;
|
|
4412
4914
|
private readonly panelData;
|
|
4413
4915
|
private readonly crudService;
|
|
4916
|
+
private readonly resourceDiscovery;
|
|
4414
4917
|
private readonly panelRef;
|
|
4415
4918
|
constructor(cdr: ChangeDetectorRef, configService: TableConfigService);
|
|
4416
4919
|
tx(key: string, fallback: string): string;
|
|
@@ -4427,10 +4930,65 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4427
4930
|
onFilterSettingsChange(cfg: FilterConfig): void;
|
|
4428
4931
|
private cloneFilterSettings;
|
|
4429
4932
|
private isEffectivelyEmptyFilterSettings;
|
|
4933
|
+
private enrichFieldMetadataList;
|
|
4934
|
+
/**
|
|
4935
|
+
* Converte o resumo de campos publicado em `/schemas/catalog` (`responseFields` ou `filterFields`)
|
|
4936
|
+
* em `FieldMetadata[]` para alimentar imediatamente os seletores de chave primária, colunas e
|
|
4937
|
+
* filtros rápidos enquanto `/schemas/filtered` ainda está em resolução ou indisponível.
|
|
4938
|
+
*/
|
|
4939
|
+
private extractCatalogFieldMetas;
|
|
4430
4940
|
getFilterSettingsMetas(): FieldMetadata[];
|
|
4431
4941
|
getColumnAuthoringMetas(): FieldMetadata[];
|
|
4942
|
+
getRulesEditorFields(): FieldDefinition[];
|
|
4943
|
+
getFieldTypeBadge(option?: FieldMetadata | null): string;
|
|
4944
|
+
getFieldDescription(option?: FieldMetadata | null): string;
|
|
4432
4945
|
get filteredIdFieldOptions(): FieldMetadata[];
|
|
4946
|
+
getFilteredQuickFilterFieldOptions(currentValue?: string): FieldMetadata[];
|
|
4433
4947
|
isUsingFilterDtoMetas(): boolean;
|
|
4948
|
+
get toolbarFiltersEnabled(): boolean;
|
|
4949
|
+
get toolbarShowQuickFilters(): boolean;
|
|
4950
|
+
get toolbarShowAdvancedButton(): boolean;
|
|
4951
|
+
get advancedFilterShowAddButton(): boolean;
|
|
4952
|
+
get advancedFilterShowFilterSettings(): boolean;
|
|
4953
|
+
get toolbarQuickFilters(): Array<{
|
|
4954
|
+
id: string;
|
|
4955
|
+
label: string;
|
|
4956
|
+
icon?: string;
|
|
4957
|
+
filter: any;
|
|
4958
|
+
}>;
|
|
4959
|
+
get duplicatedQuickFilterInlineFields(): string[];
|
|
4960
|
+
private inferDefaultStatusFilterField;
|
|
4961
|
+
getQuickFilterValueOptions(fieldName: string, currentValue?: unknown): Array<{
|
|
4962
|
+
value: string;
|
|
4963
|
+
label: string;
|
|
4964
|
+
}>;
|
|
4965
|
+
private updateToolbarFiltersPatch;
|
|
4966
|
+
onToolbarFiltersEnabledChange(enabled: boolean): void;
|
|
4967
|
+
onToolbarShowQuickFiltersChange(show: boolean): void;
|
|
4968
|
+
onToolbarShowAdvancedButtonChange(show: boolean): void;
|
|
4969
|
+
onAdvancedFilterShowAddButtonChange(show: boolean): void;
|
|
4970
|
+
onAdvancedFilterShowFilterSettingsChange(show: boolean): void;
|
|
4971
|
+
applyBooleanQuickFilterPreset(fieldName?: string): void;
|
|
4972
|
+
addQuickFilterScope(): void;
|
|
4973
|
+
removeQuickFilterScope(index: number): void;
|
|
4974
|
+
updateQuickFilterMeta(index: number, patch: {
|
|
4975
|
+
id?: string;
|
|
4976
|
+
label?: string;
|
|
4977
|
+
icon?: string;
|
|
4978
|
+
}): void;
|
|
4979
|
+
getQuickFilterMode(item: {
|
|
4980
|
+
filter?: any;
|
|
4981
|
+
}): 'all' | 'boolean' | 'equals';
|
|
4982
|
+
getQuickFilterField(item: {
|
|
4983
|
+
filter?: any;
|
|
4984
|
+
}): string;
|
|
4985
|
+
getQuickFilterValue(item: {
|
|
4986
|
+
filter?: any;
|
|
4987
|
+
}): any;
|
|
4988
|
+
onQuickFilterModeChange(index: number, mode: 'all' | 'boolean' | 'equals'): void;
|
|
4989
|
+
onQuickFilterFieldChange(index: number, fieldName: string): void;
|
|
4990
|
+
onQuickFilterValueChange(index: number, rawValue: any): void;
|
|
4991
|
+
consolidateDuplicateInlineFilterFields(): void;
|
|
4434
4992
|
getEffectiveDataMode(): EffectiveDataMode;
|
|
4435
4993
|
isEffectiveLocalMode(): boolean;
|
|
4436
4994
|
private resolveLocalDataModeFeatureEnabled;
|
|
@@ -4460,8 +5018,16 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4460
5018
|
private syncFilterSettingsFromEditor;
|
|
4461
5019
|
private hasAdvancedSettingsProperty;
|
|
4462
5020
|
private syncLastKnownFilterSettingsFromEditedConfig;
|
|
5021
|
+
onCatalogResourceSelected(resource: DiscoveredResourceOption | null): void;
|
|
5022
|
+
private normalizeResourcePathIdentity;
|
|
5023
|
+
private resetEditedConfigForResourceSwitch;
|
|
4463
5024
|
onResourcePathChange(val: string): void;
|
|
5025
|
+
get resourceEndpointKey(): any;
|
|
5026
|
+
get resourceApiUrlEntry(): any;
|
|
5027
|
+
private getResourceDiscoveryOptions;
|
|
5028
|
+
private canUseResourceDiscovery;
|
|
4464
5029
|
private loadFilterDtoMetas;
|
|
5030
|
+
private loadResourceSchemaMetas;
|
|
4465
5031
|
onIdFieldChange(val: string): void;
|
|
4466
5032
|
onIdFieldOptionSelected(value: string): void;
|
|
4467
5033
|
get mobileCardMode(): boolean;
|
|
@@ -4526,6 +5092,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4526
5092
|
interface PraxisTableWidgetEditorInputs {
|
|
4527
5093
|
config?: TableConfig | null;
|
|
4528
5094
|
resourcePath?: string | null;
|
|
5095
|
+
endpointKey?: ApiEndpoint;
|
|
5096
|
+
apiUrlEntry?: ApiUrlEntry | null;
|
|
4529
5097
|
horizontalScroll?: 'auto' | 'wrap' | 'none';
|
|
4530
5098
|
tableId?: string;
|
|
4531
5099
|
componentInstanceId?: string;
|
|
@@ -4555,6 +5123,9 @@ declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4555
5123
|
getSettingsValue(): PraxisTableWidgetEditorValue;
|
|
4556
5124
|
onSave(): PraxisTableWidgetEditorValue;
|
|
4557
5125
|
reset(): void;
|
|
5126
|
+
private normalizeResourcePathIdentity;
|
|
5127
|
+
private stripResourceBoundTableState;
|
|
5128
|
+
private sanitizeEditedConfigForResourceSwitch;
|
|
4558
5129
|
private buildValue;
|
|
4559
5130
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableWidgetConfigEditor, never>;
|
|
4560
5131
|
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 +5134,8 @@ declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4563
5134
|
interface PraxisFilterWidgetEditorInputs {
|
|
4564
5135
|
presentation?: FilterConfig['presentation'];
|
|
4565
5136
|
resourcePath?: string | null;
|
|
5137
|
+
endpointKey?: ApiEndpoint;
|
|
5138
|
+
apiUrlEntry?: ApiUrlEntry | null;
|
|
4566
5139
|
fieldMetadata?: FieldMetadata[] | null;
|
|
4567
5140
|
filterId?: string;
|
|
4568
5141
|
formId?: string;
|
|
@@ -4584,6 +5157,10 @@ interface PraxisFilterWidgetEditorInputs {
|
|
|
4584
5157
|
actionsButtonColor?: 'primary' | 'accent' | 'warn' | 'basic';
|
|
4585
5158
|
actionsVariant?: 'standard' | 'outlined';
|
|
4586
5159
|
useInlineSearchableSelectVariant?: boolean;
|
|
5160
|
+
useInlineSelectVariant?: boolean;
|
|
5161
|
+
useInlineMultiSelectVariant?: boolean;
|
|
5162
|
+
useInlineInputVariant?: boolean;
|
|
5163
|
+
useInlineToggleVariant?: boolean;
|
|
4587
5164
|
useInlineRangeVariant?: boolean;
|
|
4588
5165
|
useInlineDateVariant?: boolean;
|
|
4589
5166
|
useInlineDateRangeVariant?: boolean;
|
|
@@ -4595,6 +5172,7 @@ interface PraxisFilterWidgetEditorInputs {
|
|
|
4595
5172
|
advancedOpenMode?: 'modal' | 'drawer';
|
|
4596
5173
|
advancedClearButtonsEnabled?: boolean;
|
|
4597
5174
|
persistenceKey?: string;
|
|
5175
|
+
showAddButton?: boolean;
|
|
4598
5176
|
showFilterSettings?: boolean;
|
|
4599
5177
|
enableCustomization?: boolean;
|
|
4600
5178
|
[key: string]: unknown;
|
|
@@ -4606,6 +5184,7 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4606
5184
|
widgetKey?: string;
|
|
4607
5185
|
resourceEditor?: ResourceQuickConnectComponent;
|
|
4608
5186
|
private readonly crud;
|
|
5187
|
+
private readonly resourceDiscovery;
|
|
4609
5188
|
private readonly cdr;
|
|
4610
5189
|
private readonly i18n;
|
|
4611
5190
|
resourceError: boolean;
|
|
@@ -4614,8 +5193,17 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4614
5193
|
private settingsDirty;
|
|
4615
5194
|
private loadingResource;
|
|
4616
5195
|
private fieldRequest;
|
|
5196
|
+
private selectedCatalogResource;
|
|
4617
5197
|
tx(key: string): string;
|
|
4618
5198
|
ngAfterViewInit(): void;
|
|
5199
|
+
/**
|
|
5200
|
+
* Hidrata imediatamente os metadados de filtro a partir do resumo de campos publicado
|
|
5201
|
+
* em `/schemas/catalog` (`filterFields` ou `responseFields`) enquanto o schema completo
|
|
5202
|
+
* (`/schemas/filtered`) ainda está carregando ou indisponível no host.
|
|
5203
|
+
*/
|
|
5204
|
+
onCatalogResourceSelected(resource: DiscoveredResourceOption | null): void;
|
|
5205
|
+
private extractCatalogFieldMetas;
|
|
5206
|
+
onResourcePathChange(nextPath: string): void;
|
|
4619
5207
|
loadResourceFields(markDirty?: boolean): Promise<void>;
|
|
4620
5208
|
private optionalInject;
|
|
4621
5209
|
set inputs(value: PraxisFilterWidgetEditorInputs | null);
|
|
@@ -4646,6 +5234,198 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4646
5234
|
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
5235
|
}
|
|
4648
5236
|
|
|
5237
|
+
/**
|
|
5238
|
+
* Interface mínima estrutural para qualquer componente que suporte teleporte de filtros
|
|
5239
|
+
* (ex.: PraxisTable ou PraxisCrudComponent).
|
|
5240
|
+
*/
|
|
5241
|
+
interface PraxisFilterTeleportHost {
|
|
5242
|
+
filterTeleport?: boolean;
|
|
5243
|
+
filterTemplate?: TemplateRef<unknown>;
|
|
5244
|
+
filterBarTemplate?: TemplateRef<unknown>;
|
|
5245
|
+
filterTemplateSignal?: () => TemplateRef<unknown> | undefined;
|
|
5246
|
+
internalTable?: PraxisFilterTeleportHost;
|
|
5247
|
+
}
|
|
5248
|
+
type PraxisFilterOutletTarget = PraxisFilterTeleportHost | TemplateRef<unknown> | null | undefined;
|
|
5249
|
+
/**
|
|
5250
|
+
* Praxis UI Platform — Canonical Filter Outlet Component (Issue #11)
|
|
5251
|
+
*
|
|
5252
|
+
* Renderiza a barra de filtros avançados desacoplada da tabela de dados ou do CRUD,
|
|
5253
|
+
* permitindo acomodá-la em qualquer card, drawer ou cabeçalho superior tático.
|
|
5254
|
+
*
|
|
5255
|
+
* @example
|
|
5256
|
+
* ```html
|
|
5257
|
+
* <div class="filters-card">
|
|
5258
|
+
* <praxis-filter-outlet [target]="heroesCrud" />
|
|
5259
|
+
* </div>
|
|
5260
|
+
*
|
|
5261
|
+
* <praxis-crud #heroesCrud ... />
|
|
5262
|
+
* ```
|
|
5263
|
+
*/
|
|
5264
|
+
declare class PraxisFilterOutletComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
5265
|
+
target: PraxisFilterOutletTarget;
|
|
5266
|
+
private readonly cdr;
|
|
5267
|
+
private readonly targetSignal;
|
|
5268
|
+
private previousHost?;
|
|
5269
|
+
constructor();
|
|
5270
|
+
get resolvedTemplate(): TemplateRef<unknown> | null;
|
|
5271
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
5272
|
+
ngAfterViewInit(): void;
|
|
5273
|
+
ngOnDestroy(): void;
|
|
5274
|
+
private detachPreviousHost;
|
|
5275
|
+
private attachTeleportTarget;
|
|
5276
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletComponent, never>;
|
|
5277
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterOutletComponent, "praxis-filter-outlet", never, { "target": { "alias": "target"; "required": false; }; }, {}, never, never, true, never>;
|
|
5278
|
+
}
|
|
5279
|
+
/**
|
|
5280
|
+
* Praxis UI Platform — Canonical Filter Outlet Directive (Issue #11)
|
|
5281
|
+
*
|
|
5282
|
+
* Diretiva estrutural alternativa para teleporte reativo da barra de filtros.
|
|
5283
|
+
*
|
|
5284
|
+
* @example
|
|
5285
|
+
* ```html
|
|
5286
|
+
* <div class="filters-card">
|
|
5287
|
+
* <ng-container *praxisFilterOutlet="heroesCrud"></ng-container>
|
|
5288
|
+
* </div>
|
|
5289
|
+
* ```
|
|
5290
|
+
*/
|
|
5291
|
+
declare class PraxisFilterOutletDirective implements OnChanges, AfterViewInit, OnDestroy {
|
|
5292
|
+
target: PraxisFilterOutletTarget;
|
|
5293
|
+
private readonly viewContainer;
|
|
5294
|
+
private readonly cdr;
|
|
5295
|
+
private readonly targetSignal;
|
|
5296
|
+
private previousHost?;
|
|
5297
|
+
private renderedTemplate;
|
|
5298
|
+
constructor();
|
|
5299
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
5300
|
+
ngAfterViewInit(): void;
|
|
5301
|
+
ngOnDestroy(): void;
|
|
5302
|
+
private detachPreviousHost;
|
|
5303
|
+
private updateView;
|
|
5304
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletDirective, never>;
|
|
5305
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PraxisFilterOutletDirective, "[praxisFilterOutlet]", never, { "target": { "alias": "praxisFilterOutlet"; "required": false; }; }, {}, never, never, true, never>;
|
|
5306
|
+
}
|
|
5307
|
+
|
|
5308
|
+
interface PraxisScopeBarItem {
|
|
5309
|
+
id: string;
|
|
5310
|
+
label: string;
|
|
5311
|
+
filter?: Record<string, unknown> | string;
|
|
5312
|
+
count?: number | null;
|
|
5313
|
+
icon?: string;
|
|
5314
|
+
tone?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'ready';
|
|
5315
|
+
isDefault?: boolean;
|
|
5316
|
+
tooltip?: string;
|
|
5317
|
+
}
|
|
5318
|
+
interface PraxisScopeBarActiveBadge {
|
|
5319
|
+
key: string;
|
|
5320
|
+
label: string;
|
|
5321
|
+
valueText: string;
|
|
5322
|
+
source: 'scope' | 'search' | 'external';
|
|
5323
|
+
}
|
|
5324
|
+
interface PraxisScopeBarConfig {
|
|
5325
|
+
items?: PraxisScopeBarItem[];
|
|
5326
|
+
activeId?: string;
|
|
5327
|
+
showOmnibox?: boolean;
|
|
5328
|
+
omniboxPlaceholder?: string;
|
|
5329
|
+
leadIcon?: string;
|
|
5330
|
+
leadLabel?: string;
|
|
5331
|
+
showClearButton?: boolean;
|
|
5332
|
+
clearLabel?: string;
|
|
5333
|
+
searchField?: string;
|
|
5334
|
+
targetWidgetId?: string;
|
|
5335
|
+
targetWidgetIds?: string[];
|
|
5336
|
+
showActiveFilterSummary?: boolean;
|
|
5337
|
+
filterLabels?: Record<string, string>;
|
|
5338
|
+
}
|
|
5339
|
+
declare class PraxisScopeBarComponent implements OnInit {
|
|
5340
|
+
private readonly eventBus;
|
|
5341
|
+
private readonly i18n;
|
|
5342
|
+
private readonly destroyRef;
|
|
5343
|
+
private targetFilterSubscription?;
|
|
5344
|
+
private isApplyingCriteriaToTarget;
|
|
5345
|
+
protected scopeNavigationLabel(): string;
|
|
5346
|
+
protected scopeSearchAriaLabel(): string;
|
|
5347
|
+
protected scopeClearSearchTitle(): string;
|
|
5348
|
+
protected scopeClearSearchAriaLabel(): string;
|
|
5349
|
+
protected scopeFiltersAriaLabel(): string;
|
|
5350
|
+
protected scopeActiveSummaryAriaLabel(): string;
|
|
5351
|
+
protected scopeActiveSummaryLabel(): string;
|
|
5352
|
+
protected scopeRemoveCriterionAriaLabel(label: string): string;
|
|
5353
|
+
protected scopeActiveFilterCountAriaLabel(count: number): string;
|
|
5354
|
+
chipsTrack?: ElementRef<HTMLElement>;
|
|
5355
|
+
set config(val: PraxisScopeBarConfig | undefined | null);
|
|
5356
|
+
private readonly itemsSignal;
|
|
5357
|
+
set items(val: PraxisScopeBarItem[] | undefined);
|
|
5358
|
+
get items(): PraxisScopeBarItem[] | undefined;
|
|
5359
|
+
set activeId(val: string | undefined);
|
|
5360
|
+
get activeId(): string | undefined;
|
|
5361
|
+
readonly activeIdChange: EventEmitter<string>;
|
|
5362
|
+
private readonly showOmniboxSignal;
|
|
5363
|
+
set showOmnibox(val: boolean);
|
|
5364
|
+
get showOmnibox(): boolean;
|
|
5365
|
+
omniboxPlaceholder: string;
|
|
5366
|
+
set omniboxValue(val: string | undefined);
|
|
5367
|
+
get omniboxValue(): string | undefined;
|
|
5368
|
+
readonly omniboxValueChange: EventEmitter<string>;
|
|
5369
|
+
omniboxDebounceMs: number;
|
|
5370
|
+
leadIcon: string;
|
|
5371
|
+
leadLabel?: string;
|
|
5372
|
+
showClearButton: boolean;
|
|
5373
|
+
clearLabel: string;
|
|
5374
|
+
private readonly showActiveFilterSummarySignal;
|
|
5375
|
+
set showActiveFilterSummary(val: boolean);
|
|
5376
|
+
get showActiveFilterSummary(): boolean;
|
|
5377
|
+
private readonly activeFiltersSignal;
|
|
5378
|
+
set activeFilters(val: Record<string, unknown> | undefined | null);
|
|
5379
|
+
get activeFilters(): Record<string, unknown>;
|
|
5380
|
+
readonly activeFiltersChange: EventEmitter<Record<string, unknown>>;
|
|
5381
|
+
private readonly filterLabelsSignal;
|
|
5382
|
+
set filterLabels(val: Record<string, string> | undefined | null);
|
|
5383
|
+
get filterLabels(): Record<string, string>;
|
|
5384
|
+
private readonly targetSignal;
|
|
5385
|
+
set target(val: any);
|
|
5386
|
+
get target(): any;
|
|
5387
|
+
targetWidgetId?: string;
|
|
5388
|
+
targetWidgetIds?: string[];
|
|
5389
|
+
scopeBarId: string;
|
|
5390
|
+
searchField: string;
|
|
5391
|
+
readonly scopeChange: EventEmitter<PraxisScopeBarItem>;
|
|
5392
|
+
readonly searchChange: EventEmitter<string>;
|
|
5393
|
+
readonly filterCriteriaChange: EventEmitter<Record<string, unknown>>;
|
|
5394
|
+
readonly clear: EventEmitter<void>;
|
|
5395
|
+
private readonly searchSubject$;
|
|
5396
|
+
readonly currentActiveId: i0.WritableSignal<string | null>;
|
|
5397
|
+
readonly currentSearchText: i0.WritableSignal<string>;
|
|
5398
|
+
readonly effectiveItems: i0.Signal<PraxisScopeBarItem[]>;
|
|
5399
|
+
readonly resolvedActiveId: i0.Signal<string | null>;
|
|
5400
|
+
readonly hasMainRow: i0.Signal<boolean>;
|
|
5401
|
+
readonly activeFilterBadges: i0.Signal<PraxisScopeBarActiveBadge[]>;
|
|
5402
|
+
readonly activeFilterCount: i0.Signal<number>;
|
|
5403
|
+
ngOnInit(): void;
|
|
5404
|
+
isItemActive(item: PraxisScopeBarItem): boolean;
|
|
5405
|
+
selectScope(item: PraxisScopeBarItem): void;
|
|
5406
|
+
onSearchInput(event: Event): void;
|
|
5407
|
+
clearSearch(): void;
|
|
5408
|
+
removeFilterCriterion(key: string): void;
|
|
5409
|
+
resetFilters(): void;
|
|
5410
|
+
canClear(): boolean;
|
|
5411
|
+
onTrackKeydown(event: KeyboardEvent): void;
|
|
5412
|
+
private resolveTargetWidgetIds;
|
|
5413
|
+
private dispatchFilters;
|
|
5414
|
+
private applyCriteriaToTarget;
|
|
5415
|
+
private bindTargetFilterCriteria;
|
|
5416
|
+
private getScopeManagedKeys;
|
|
5417
|
+
private discoverItemsFromTarget;
|
|
5418
|
+
private humanizeKey;
|
|
5419
|
+
private formatCriterionValue;
|
|
5420
|
+
private normalizeFilter;
|
|
5421
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisScopeBarComponent, never>;
|
|
5422
|
+
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>;
|
|
5423
|
+
static ngAcceptInputType_showOmnibox: unknown;
|
|
5424
|
+
static ngAcceptInputType_omniboxDebounceMs: unknown;
|
|
5425
|
+
static ngAcceptInputType_showClearButton: unknown;
|
|
5426
|
+
static ngAcceptInputType_showActiveFilterSummary: unknown;
|
|
5427
|
+
}
|
|
5428
|
+
|
|
4649
5429
|
declare class DataFormatterComponent implements OnInit, OnChanges {
|
|
4650
5430
|
private cdr;
|
|
4651
5431
|
private formattingService;
|
|
@@ -4720,6 +5500,7 @@ interface AnalyticsTableConfigAdapterOptions {
|
|
|
4720
5500
|
}
|
|
4721
5501
|
declare class AnalyticsTableConfigAdapterService {
|
|
4722
5502
|
private readonly i18n?;
|
|
5503
|
+
private readonly statsBuilder;
|
|
4723
5504
|
constructor(i18n?: PraxisI18nService | undefined);
|
|
4724
5505
|
toTableConfig(projection: PraxisAnalyticsProjection, options?: AnalyticsTableConfigAdapterOptions): TableConfig;
|
|
4725
5506
|
private buildColumns;
|
|
@@ -4786,6 +5567,7 @@ declare const PRAXIS_FILTER_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|
|
|
4786
5567
|
declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
4787
5568
|
private readonly i18n;
|
|
4788
5569
|
config: TableConfig;
|
|
5570
|
+
fieldMetadata: FieldMetadata[];
|
|
4789
5571
|
readonly: boolean;
|
|
4790
5572
|
configChange: EventEmitter<_praxisui_core.TableConfigModern>;
|
|
4791
5573
|
workingConfig: TableConfig;
|
|
@@ -4805,11 +5587,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4805
5587
|
pageSize: number;
|
|
4806
5588
|
pageSizeOptionsText: string;
|
|
4807
5589
|
showFirstLastButtons: boolean;
|
|
4808
|
-
paginationStrategy: 'client' | 'server';
|
|
5590
|
+
paginationStrategy: 'client' | 'server' | undefined;
|
|
4809
5591
|
paginationPosition: 'top' | 'bottom' | 'both';
|
|
4810
5592
|
paginationStyle: 'default' | 'simple' | 'advanced' | 'compact';
|
|
4811
5593
|
sortingEnabled: boolean;
|
|
4812
|
-
sortingStrategy: 'client' | 'server';
|
|
5594
|
+
sortingStrategy: 'client' | 'server' | undefined;
|
|
4813
5595
|
allowClearSort: boolean;
|
|
4814
5596
|
defaultSortField: string;
|
|
4815
5597
|
defaultSortDirection: 'asc' | 'desc';
|
|
@@ -4837,11 +5619,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4837
5619
|
setPaginationPageSize(value: number | string): void;
|
|
4838
5620
|
setPaginationPageSizeOptions(value: string): void;
|
|
4839
5621
|
setPaginationShowFirstLastButtons(value: boolean): void;
|
|
4840
|
-
setPaginationStrategy(value: 'client' | 'server'): void;
|
|
5622
|
+
setPaginationStrategy(value: 'client' | 'server' | undefined): void;
|
|
4841
5623
|
setPaginationPosition(value: 'top' | 'bottom' | 'both'): void;
|
|
4842
5624
|
setPaginationStyle(value: 'default' | 'simple' | 'advanced' | 'compact'): void;
|
|
4843
5625
|
setSortingEnabled(value: boolean): void;
|
|
4844
|
-
setSortingStrategy(value: 'client' | 'server'): void;
|
|
5626
|
+
setSortingStrategy(value: 'client' | 'server' | undefined): void;
|
|
4845
5627
|
setSortingAllowClear(value: boolean): void;
|
|
4846
5628
|
setSortingDefaultField(value: string): void;
|
|
4847
5629
|
setSortingDefaultDirection(value: 'asc' | 'desc'): void;
|
|
@@ -4871,7 +5653,7 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4871
5653
|
private getDefaultSortField;
|
|
4872
5654
|
private getDefaultSortDirection;
|
|
4873
5655
|
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>;
|
|
5656
|
+
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
5657
|
}
|
|
4876
5658
|
|
|
4877
5659
|
interface ValueMappingPair {
|
|
@@ -4891,6 +5673,10 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4891
5673
|
keyInputType: 'text' | 'number' | 'boolean';
|
|
4892
5674
|
labelKey: string;
|
|
4893
5675
|
labelValue: string;
|
|
5676
|
+
domainOptions: Array<{
|
|
5677
|
+
value: string | number | boolean;
|
|
5678
|
+
label: string;
|
|
5679
|
+
}>;
|
|
4894
5680
|
mappingChange: EventEmitter<{
|
|
4895
5681
|
[key: string]: string;
|
|
4896
5682
|
[key: number]: string;
|
|
@@ -4901,6 +5687,8 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4901
5687
|
showImportDialog: boolean;
|
|
4902
5688
|
importJsonText: string;
|
|
4903
5689
|
importError: string;
|
|
5690
|
+
private readonly i18n;
|
|
5691
|
+
tx(key: string, fallback: string): string;
|
|
4904
5692
|
constructor(cdr: ChangeDetectorRef, dialog: MatDialog, snackBar: MatSnackBar);
|
|
4905
5693
|
ngOnInit(): void;
|
|
4906
5694
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -4910,6 +5698,7 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4910
5698
|
isKeyTruthy(pair: ValueMappingPair): boolean;
|
|
4911
5699
|
getKeyPlaceholder(): string;
|
|
4912
5700
|
addNewPair(): void;
|
|
5701
|
+
generateFromDomainOptions(): void;
|
|
4913
5702
|
removePair(index: number): void;
|
|
4914
5703
|
onKeyChange(index: number, value: string): void;
|
|
4915
5704
|
onBooleanKeyChange(index: number, change: MatCheckboxChange): void;
|
|
@@ -4919,7 +5708,7 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
|
|
|
4919
5708
|
importFromJson(): void;
|
|
4920
5709
|
cancelImport(): void;
|
|
4921
5710
|
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>;
|
|
5711
|
+
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
5712
|
}
|
|
4924
5713
|
|
|
4925
5714
|
declare class FormulaGeneratorService {
|
|
@@ -5012,6 +5801,12 @@ declare class VisualFormulaBuilderComponent implements OnInit, OnChanges {
|
|
|
5012
5801
|
private generateAndEmitExpression;
|
|
5013
5802
|
get generatedExpression(): string;
|
|
5014
5803
|
isMultiSelectField(paramKey: string): boolean;
|
|
5804
|
+
onFieldSelectionChange(paramKey: string, nextValue: unknown): void;
|
|
5805
|
+
getOrderedSelectedFields(paramKey: string): string[];
|
|
5806
|
+
moveSelectedField(paramKey: string, index: number, delta: -1 | 1): void;
|
|
5807
|
+
getShortFieldDisplayLabel(fieldName: string): string;
|
|
5808
|
+
formatSelectedFieldLabel(selection: unknown): string;
|
|
5809
|
+
private resolveFieldDisplayLabel;
|
|
5015
5810
|
getFieldTypeIcon(fieldType: string): string;
|
|
5016
5811
|
testFormula(): void;
|
|
5017
5812
|
formatTestResult(result: any): string;
|
|
@@ -5465,5 +6260,176 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
|
|
|
5465
6260
|
declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
|
|
5466
6261
|
declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
|
|
5467
6262
|
|
|
5468
|
-
|
|
5469
|
-
|
|
6263
|
+
declare function isAnalyticalDrawerSchema(schema: unknown): schema is PraxisAnalyticalDrawerSchema;
|
|
6264
|
+
declare function interpolateRelationEndpoint(endpoint: string, row: Record<string, unknown> | null | undefined): {
|
|
6265
|
+
url: string;
|
|
6266
|
+
hasMissingTokens: boolean;
|
|
6267
|
+
};
|
|
6268
|
+
declare class PraxisAnalyticalDrawerComponent implements OnInit, OnChanges, OnDestroy {
|
|
6269
|
+
private _isOpen;
|
|
6270
|
+
private previousActiveElement;
|
|
6271
|
+
handleDocumentEscape(event?: Event): void;
|
|
6272
|
+
set isOpen(value: boolean);
|
|
6273
|
+
get isOpen(): boolean;
|
|
6274
|
+
private _resourcePath?;
|
|
6275
|
+
set resourcePath(value: string | undefined);
|
|
6276
|
+
get resourcePath(): string | undefined;
|
|
6277
|
+
private _drawerConfig;
|
|
6278
|
+
set drawerConfig(value: TableDrawerConfig | null);
|
|
6279
|
+
get drawerConfig(): TableDrawerConfig | null;
|
|
6280
|
+
private _row;
|
|
6281
|
+
set row(value: any | null);
|
|
6282
|
+
get row(): any | null;
|
|
6283
|
+
private _relations;
|
|
6284
|
+
set relations(value: Record<string, unknown>);
|
|
6285
|
+
get relations(): Record<string, unknown>;
|
|
6286
|
+
loadingRelations: boolean;
|
|
6287
|
+
closeDrawer: EventEmitter<void>;
|
|
6288
|
+
tabChange: EventEmitter<string>;
|
|
6289
|
+
relationFetch: EventEmitter<{
|
|
6290
|
+
key: string;
|
|
6291
|
+
endpoint: string;
|
|
6292
|
+
}>;
|
|
6293
|
+
protected readonly drawerConfigSignal: i0.WritableSignal<TableDrawerConfig | null>;
|
|
6294
|
+
protected readonly rowSignal: i0.WritableSignal<any>;
|
|
6295
|
+
protected readonly relationsSignal: i0.WritableSignal<Record<string, unknown>>;
|
|
6296
|
+
protected readonly activeTabId: i0.WritableSignal<string>;
|
|
6297
|
+
protected readonly customRelations: i0.WritableSignal<Record<string, unknown>>;
|
|
6298
|
+
protected readonly isFetchingRelations: i0.WritableSignal<boolean>;
|
|
6299
|
+
protected readonly resolvedRemoteConfig: i0.WritableSignal<TableDrawerConfig | null>;
|
|
6300
|
+
protected readonly isResolvingSchema: i0.WritableSignal<boolean>;
|
|
6301
|
+
private readonly evaluator;
|
|
6302
|
+
private readonly http;
|
|
6303
|
+
private readonly injector;
|
|
6304
|
+
private readonly drawerRegistry;
|
|
6305
|
+
private readonly apiUrl;
|
|
6306
|
+
private readonly runtimeContext;
|
|
6307
|
+
private readonly sanitizer;
|
|
6308
|
+
private readonly formattingService;
|
|
6309
|
+
private relationSubs;
|
|
6310
|
+
private schemaSub?;
|
|
6311
|
+
private contextSub?;
|
|
6312
|
+
private static readonly relationCaches;
|
|
6313
|
+
private readonly relationCache;
|
|
6314
|
+
private relationEpoch;
|
|
6315
|
+
constructor();
|
|
6316
|
+
private lastFetchedKey;
|
|
6317
|
+
private lastResolvingKey;
|
|
6318
|
+
private schemaResolutionEpoch;
|
|
6319
|
+
private destroyed;
|
|
6320
|
+
static clearCache(): void;
|
|
6321
|
+
private getContextScopePrefix;
|
|
6322
|
+
private resolveUrl;
|
|
6323
|
+
ngOnInit(): void;
|
|
6324
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
6325
|
+
ngOnDestroy(): void;
|
|
6326
|
+
getEffectiveDrawerConfig(): TableDrawerConfig | null;
|
|
6327
|
+
private mergeTabs;
|
|
6328
|
+
private resolveRemoteDrawerMetadata;
|
|
6329
|
+
protected onClose(): void;
|
|
6330
|
+
protected onBackdropClick(event: MouseEvent): void;
|
|
6331
|
+
protected selectTab(tabId: string): void;
|
|
6332
|
+
private getAnalyticalSchema;
|
|
6333
|
+
protected resolvedTabs: i0.Signal<PraxisAnalyticalDrawerTab[]>;
|
|
6334
|
+
private generateAutoOverviewProperties;
|
|
6335
|
+
private formatPropertyLabel;
|
|
6336
|
+
protected resolvedTitle: i0.Signal<string>;
|
|
6337
|
+
protected resolvedSubtitle: i0.Signal<string>;
|
|
6338
|
+
protected resolvedClassificationPill: i0.Signal<string>;
|
|
6339
|
+
protected resolvedWidth: i0.Signal<string>;
|
|
6340
|
+
protected getDrawerIcon(): string;
|
|
6341
|
+
protected getEvaluationContext(): Record<string, unknown>;
|
|
6342
|
+
protected isCardGridContent(content: unknown): boolean;
|
|
6343
|
+
protected asCardGrid(content: unknown): {
|
|
6344
|
+
columns?: number;
|
|
6345
|
+
cards?: any[];
|
|
6346
|
+
};
|
|
6347
|
+
protected getGridColumnsStyle(columns?: number): string;
|
|
6348
|
+
protected isRichContentDocument(content: unknown): boolean;
|
|
6349
|
+
protected asRichContentDocument(content: unknown): RichContentDocument;
|
|
6350
|
+
protected isPropertyGrid(content: unknown): boolean;
|
|
6351
|
+
protected asPropertyGrid(content: unknown): any[];
|
|
6352
|
+
protected isArray(val: unknown): boolean;
|
|
6353
|
+
protected evaluateAndFormatMetric(item: any): string;
|
|
6354
|
+
protected evaluatePropertyValue(item: any): string;
|
|
6355
|
+
private readonly microVizSafeHtmlCache;
|
|
6356
|
+
protected renderMicroViz(viz: PraxisPresentationVisualizationConfig | undefined, item: any): SafeHtml;
|
|
6357
|
+
private syncActiveTab;
|
|
6358
|
+
private fetchConfiguredRelations;
|
|
6359
|
+
private invalidateRelations;
|
|
6360
|
+
private cancelRelationRequests;
|
|
6361
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAnalyticalDrawerComponent, never>;
|
|
6362
|
+
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>;
|
|
6363
|
+
}
|
|
6364
|
+
|
|
6365
|
+
type AnalyticalDrawerSchemaOrConfig = PraxisAnalyticalDrawerSchema | TableDrawerConfig;
|
|
6366
|
+
declare const PRAXIS_ANALYTICAL_DRAWER_SCHEMAS: InjectionToken<Record<string, AnalyticalDrawerSchemaOrConfig> | Record<string, AnalyticalDrawerSchemaOrConfig>[]>;
|
|
6367
|
+
/**
|
|
6368
|
+
* Registra esquemas de gavetas analíticas por coordenada de recurso (ex.: 'operations/incidentes').
|
|
6369
|
+
* Pode ser chamado no app.config.ts ou em providers de rotas/módulos.
|
|
6370
|
+
*/
|
|
6371
|
+
declare function providePraxisAnalyticalDrawerSchemas(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): Provider;
|
|
6372
|
+
declare class AnalyticalDrawerRegistryService {
|
|
6373
|
+
private readonly registry;
|
|
6374
|
+
constructor();
|
|
6375
|
+
register(resourcePath: string, schema: AnalyticalDrawerSchemaOrConfig): void;
|
|
6376
|
+
registerAll(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): void;
|
|
6377
|
+
get(resourcePath: string): AnalyticalDrawerSchemaOrConfig | undefined;
|
|
6378
|
+
has(resourcePath: string): boolean;
|
|
6379
|
+
clear(): void;
|
|
6380
|
+
normalizeKey(path: string | undefined | null): string;
|
|
6381
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticalDrawerRegistryService, never>;
|
|
6382
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticalDrawerRegistryService>;
|
|
6383
|
+
}
|
|
6384
|
+
|
|
6385
|
+
interface ComputedFieldsEvaluationOptions {
|
|
6386
|
+
evaluator?: SafeExpressionEvaluator;
|
|
6387
|
+
formattingService?: {
|
|
6388
|
+
formatValue: (value: any, columnType: any, formatString: string) => any;
|
|
6389
|
+
} | null;
|
|
6390
|
+
}
|
|
6391
|
+
/**
|
|
6392
|
+
* Normaliza a definição de um campo computado (aceita string simples ou objeto estruturado).
|
|
6393
|
+
*/
|
|
6394
|
+
declare function normalizeComputedFieldDefinition(raw: PraxisComputedFieldDefinition | string): PraxisComputedFieldDefinition;
|
|
6395
|
+
/**
|
|
6396
|
+
* Formata um valor calculado com suporte a moedas, porcentagens, números e formato compacto corporativo (ex: R$ 3,1M).
|
|
6397
|
+
*/
|
|
6398
|
+
declare function formatComputedFieldValue(value: unknown, format?: string, type?: string, formattingService?: ComputedFieldsEvaluationOptions['formattingService']): unknown;
|
|
6399
|
+
/**
|
|
6400
|
+
* Enriquece uma coleção de linhas com as propriedades calculadas declaradas em `computedFieldsConfig`.
|
|
6401
|
+
* Executado durante o pipeline de ingestão de dados, tornando as propriedades computadas
|
|
6402
|
+
* nativamente visíveis para colunas, sorting, filtros, gavetas analíticas e exportação.
|
|
6403
|
+
*/
|
|
6404
|
+
declare function applyComputedFieldsToRows<T extends Record<string, any> = Record<string, any>>(rows: T[], computedFieldsConfig?: PraxisComputedFieldsConfig | null, options?: ComputedFieldsEvaluationOptions): T[];
|
|
6405
|
+
|
|
6406
|
+
/** Raw compact schema authorship only; native normalization remains an editor/runtime projection. */
|
|
6407
|
+
declare function decodeTablePageInputs(value: unknown): {
|
|
6408
|
+
document: TableAuthoringDocument | null;
|
|
6409
|
+
diagnostics: EditorDiagnostic[];
|
|
6410
|
+
};
|
|
6411
|
+
/** Core prefixes these widget-relative JSON Pointers; this callback never resolves a source/latest. */
|
|
6412
|
+
declare function validateTablePageWidget(widget: WidgetInstance): readonly {
|
|
6413
|
+
code: string;
|
|
6414
|
+
path: string;
|
|
6415
|
+
}[];
|
|
6416
|
+
declare function encodeTablePageInputs(value: unknown): {
|
|
6417
|
+
inputs: Record<string, unknown> | null;
|
|
6418
|
+
diagnostics: EditorDiagnostic[];
|
|
6419
|
+
};
|
|
6420
|
+
/** No-change values in a materialized native editor cannot author defaults or erase absent keys. */
|
|
6421
|
+
declare function projectTablePageEditorChanges(authoredInputs: unknown, editorBaseline: unknown, editorValue: unknown): {
|
|
6422
|
+
inputs: Record<string, unknown> | null;
|
|
6423
|
+
diagnostics: EditorDiagnostic[];
|
|
6424
|
+
};
|
|
6425
|
+
/** Derive execution-only identity and disable independent preferences. Never persist this projection. */
|
|
6426
|
+
declare function materializeTablePageRuntimeInputs(value: unknown, pageId: string, widgetKey: string, options?: {
|
|
6427
|
+
preview?: boolean;
|
|
6428
|
+
}): {
|
|
6429
|
+
inputs: Record<string, unknown> | null;
|
|
6430
|
+
diagnostics: EditorDiagnostic[];
|
|
6431
|
+
};
|
|
6432
|
+
declare const TABLE_GOVERNED_PAGE_PREVIEW_ADAPTER: GovernedPagePreviewWidgetAdapter;
|
|
6433
|
+
|
|
6434
|
+
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 };
|
|
6435
|
+
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 };
|