@praxisui/table 10.0.0-rc.3 → 10.0.0-rc.31
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 +95 -2
- package/ai/component-registry.json +52 -4
- package/docs/local-data-mode-precedence.md +21 -0
- package/fesm2022/praxisui-table-authoring.mjs +1657 -0
- package/fesm2022/{praxisui-table-praxisui-table-DKvwb6v1.mjs → praxisui-table-praxisui-table-CPAjJGGd.mjs} +10859 -1623
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-BzjYuDvo.mjs → praxisui-table-table-agentic-authoring-turn-flow-CITekGF7.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-CPgpIGoi.mjs → praxisui-table-table-ai.adapter-CBRNHKvA.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +2 -1
- package/package.json +14 -10
- package/src/lib/praxis-table.json-api.md +21 -9
- package/types/praxisui-table-authoring.d.ts +104 -0
- package/types/praxisui-table.d.ts +713 -30
|
@@ -1,7 +1,8 @@
|
|
|
1
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';
|
|
2
|
+
import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterViewChecked, AfterContentInit, TemplateRef, Injector, Type } from '@angular/core';
|
|
3
3
|
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,
|
|
4
|
+
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, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, ColumnDefinition, RichBlockNode, 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, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, PraxisPresentationVisualizationThreshold, PraxisPresentationVisualizationTone, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, ResourceQuickConnectComponent, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, TableDrawerConfig, PraxisAnalyticalDrawerTab, PraxisPresentationVisualizationConfig, PraxisAnalyticalDrawerSchema, SafeExpressionEvaluator, PraxisComputedFieldsConfig, PraxisComputedFieldDefinition } from '@praxisui/core';
|
|
5
|
+
export { DynamicDataCollection, DynamicDataRecord, DynamicRecordMeta, ResourceLinkItem, ResourceLinks, createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/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';
|
|
@@ -422,6 +479,8 @@ type FilterConfig = {
|
|
|
422
479
|
/** User-selected extra field ids to show before pinned always-visible */
|
|
423
480
|
selectedFieldIds?: string[];
|
|
424
481
|
showAdvanced?: boolean;
|
|
482
|
+
showAddButton?: boolean;
|
|
483
|
+
showFilterSettings?: boolean;
|
|
425
484
|
mode?: 'filter';
|
|
426
485
|
changeDebounceMs?: number;
|
|
427
486
|
allowSaveTags?: boolean;
|
|
@@ -644,6 +703,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
644
703
|
changeDebounceMs: number;
|
|
645
704
|
/** Controla a exibição do botão de preferências dentro do filtro */
|
|
646
705
|
showFilterSettings: boolean;
|
|
706
|
+
private hostShowFilterSettings?;
|
|
647
707
|
/** Controla a exibição do botão de filtro avançado */
|
|
648
708
|
showAdvancedButton: boolean;
|
|
649
709
|
/** Projection of FilterConfig.presentation for standalone and embedded hosts. */
|
|
@@ -655,6 +715,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
655
715
|
get advancedActionDisplay(): string;
|
|
656
716
|
/** Controla a exibição do botão de adicionar campos */
|
|
657
717
|
showAddButton: boolean;
|
|
718
|
+
private hostShowAddButton?;
|
|
658
719
|
/** Controla a exibição do botão de limpar filtros */
|
|
659
720
|
showClearButton: boolean;
|
|
660
721
|
/** Controla a exibição do botão de pesquisar/aplicar filtros em fluxos manuais. */
|
|
@@ -866,6 +927,8 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
866
927
|
private areMetadataOverrideMapsEqual;
|
|
867
928
|
/** Force-sync settings coming from parent table config updates. */
|
|
868
929
|
applyExternalSettings(cfg?: Partial<FilterConfig>): void;
|
|
930
|
+
private activeFilterSettingsRef?;
|
|
931
|
+
private activeFieldEditorRef?;
|
|
869
932
|
openSettings(): void;
|
|
870
933
|
createTag(label?: string): void;
|
|
871
934
|
renameTag(tag: FilterTag, label?: string): void;
|
|
@@ -1062,6 +1125,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
1062
1125
|
private normalizeFilterFieldValue;
|
|
1063
1126
|
private getFilterFieldMetaByName;
|
|
1064
1127
|
private isEntityLookupFilterField;
|
|
1128
|
+
private isIncompleteInlineDateRangeValue;
|
|
1065
1129
|
private isEffectivelyEmptyFilterValue;
|
|
1066
1130
|
private syncFormsToDto;
|
|
1067
1131
|
private updateDisplayedTags;
|
|
@@ -1134,6 +1198,43 @@ declare class AnalyticsTableStatsApiService {
|
|
|
1134
1198
|
static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableStatsApiService>;
|
|
1135
1199
|
}
|
|
1136
1200
|
|
|
1201
|
+
/**
|
|
1202
|
+
* Canonical row click event interface emitted by PraxisTable and PraxisCrud.
|
|
1203
|
+
* Provides typed access to the underlying record, row index, original DOM mouse event,
|
|
1204
|
+
* resource identity, and selection/expansion state.
|
|
1205
|
+
*/
|
|
1206
|
+
interface RowClickEvent<T = DynamicDataRecord> {
|
|
1207
|
+
row: T;
|
|
1208
|
+
index: number;
|
|
1209
|
+
originalEvent?: MouseEvent;
|
|
1210
|
+
resourceIdentity?: MaterializedResourceIdentity | string | null;
|
|
1211
|
+
selectionState?: {
|
|
1212
|
+
isSelected: boolean;
|
|
1213
|
+
isExpanded: boolean;
|
|
1214
|
+
};
|
|
1215
|
+
}
|
|
1216
|
+
/**
|
|
1217
|
+
* Event payload emitted when a table row is double clicked.
|
|
1218
|
+
*/
|
|
1219
|
+
interface RowDoubleClickEvent<T = DynamicDataRecord> {
|
|
1220
|
+
action?: string;
|
|
1221
|
+
row: T;
|
|
1222
|
+
}
|
|
1223
|
+
/**
|
|
1224
|
+
* Event payload emitted when an analytical drawer is opened from a table row.
|
|
1225
|
+
*/
|
|
1226
|
+
interface DrawerOpenEvent<T = DynamicDataRecord> {
|
|
1227
|
+
row: T;
|
|
1228
|
+
tabId?: string;
|
|
1229
|
+
}
|
|
1230
|
+
/**
|
|
1231
|
+
* Event payload emitted when row selections change in the table.
|
|
1232
|
+
*/
|
|
1233
|
+
interface RowSelectionChangeEvent<T = DynamicDataRecord> {
|
|
1234
|
+
selected: T[];
|
|
1235
|
+
source?: 'row' | 'header' | 'programmatic';
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1137
1238
|
interface TableAiNavigationDestinationContext {
|
|
1138
1239
|
id?: string;
|
|
1139
1240
|
path: string;
|
|
@@ -1261,7 +1362,7 @@ type RuntimeRowAction = {
|
|
|
1261
1362
|
__praxisDiscoveryPending?: boolean;
|
|
1262
1363
|
};
|
|
1263
1364
|
type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
|
|
1264
|
-
type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback';
|
|
1365
|
+
type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback' | 'schema';
|
|
1265
1366
|
type ExpansionDetailViewState = {
|
|
1266
1367
|
status: ExpansionDetailRuntimeStatus;
|
|
1267
1368
|
schema: Record<string, unknown> | null;
|
|
@@ -1312,11 +1413,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1312
1413
|
private _crudOperationResolver?;
|
|
1313
1414
|
private readonly runtimeObservationRegistry;
|
|
1314
1415
|
private readonly detailInlineRenderers;
|
|
1416
|
+
private readonly drawerRegistry;
|
|
1315
1417
|
private collectionLinks;
|
|
1316
1418
|
private collectionCapabilities;
|
|
1317
1419
|
private collectionCapabilitiesRequestHref;
|
|
1318
1420
|
private collectionCapabilitiesResolvedHref;
|
|
1319
1421
|
private collectionCapabilitiesRequestSeq;
|
|
1422
|
+
bulkSyncHandle: TableBulkSyncHandle | null;
|
|
1423
|
+
private readonly bulkClient;
|
|
1424
|
+
private readonly bulkSessions;
|
|
1320
1425
|
private readonly detailInlineNodeResolvers;
|
|
1321
1426
|
private readonly detailResourceResolver;
|
|
1322
1427
|
private runtimeObservationRegistration;
|
|
@@ -1338,7 +1443,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1338
1443
|
autoOpenSettingsOnOutdated: boolean;
|
|
1339
1444
|
crudContext: any;
|
|
1340
1445
|
filterCriteria: Record<string, any>;
|
|
1446
|
+
filterTeleport: boolean;
|
|
1447
|
+
widgetId?: string;
|
|
1448
|
+
filterBarTemplate?: TemplateRef<unknown>;
|
|
1449
|
+
get filterTemplate(): TemplateRef<unknown> | undefined;
|
|
1450
|
+
private readonly widgetEventBus;
|
|
1341
1451
|
queryContext: PraxisDataQueryContextBridge | null;
|
|
1452
|
+
readonly queryContextClear: EventEmitter<PraxisTableQueryContextClearEvent>;
|
|
1453
|
+
readonly queryContextChange: EventEmitter<PraxisDataQueryContextBridge | null>;
|
|
1454
|
+
activeCrossFilters: PraxisTableCrossFilterItem[];
|
|
1342
1455
|
aiContext: TableAiContext | null;
|
|
1343
1456
|
aiAssistantVoiceInputMode: PraxisAssistantVoiceInputMode;
|
|
1344
1457
|
aiAssistantVoiceLanguage: string;
|
|
@@ -1352,10 +1465,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1352
1465
|
private advancedFilterMetadataOverridesCacheKey;
|
|
1353
1466
|
private advancedFilterMetadataOverridesCacheSource?;
|
|
1354
1467
|
private advancedFilterMetadataOverridesCache?;
|
|
1355
|
-
rowClick: EventEmitter<
|
|
1468
|
+
rowClick: EventEmitter<RowClickEvent<DynamicDataRecord>>;
|
|
1356
1469
|
widgetEvent: EventEmitter<any>;
|
|
1357
1470
|
resourceEvent: EventEmitter<PraxisResourceEvent<unknown>>;
|
|
1358
|
-
rowDoubleClick: EventEmitter<
|
|
1471
|
+
rowDoubleClick: EventEmitter<RowDoubleClickEvent<DynamicDataRecord>>;
|
|
1359
1472
|
rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
|
|
1360
1473
|
rowAction: EventEmitter<any>;
|
|
1361
1474
|
toolbarAction: EventEmitter<ToolbarActionEvent<any>>;
|
|
@@ -1376,6 +1489,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1376
1489
|
loadingStateChange: EventEmitter<LoadingState>;
|
|
1377
1490
|
collectionLinksChange: EventEmitter<RestApiLinks | null>;
|
|
1378
1491
|
selectionChange: EventEmitter<any>;
|
|
1492
|
+
drawerOpen: EventEmitter<DrawerOpenEvent<DynamicDataRecord>>;
|
|
1493
|
+
drawerClose: EventEmitter<void>;
|
|
1494
|
+
drawerTabChange: EventEmitter<string>;
|
|
1495
|
+
isAnalyticalDrawerOpen: boolean;
|
|
1496
|
+
analyticalDrawerRow: any | null;
|
|
1497
|
+
activeAnalyticalDrawerTabId?: string;
|
|
1379
1498
|
private latestLoadingState;
|
|
1380
1499
|
private loadingIndicatorVisible;
|
|
1381
1500
|
private loadingIndicatorDelayHandle;
|
|
@@ -1392,6 +1511,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1392
1511
|
selection: SelectionModel<any>;
|
|
1393
1512
|
dataSubject: BehaviorSubject<any[]>;
|
|
1394
1513
|
subscriptions: Subscription[];
|
|
1514
|
+
private surfaceOutcomeOwnerDestroyed;
|
|
1395
1515
|
showToolbar: boolean;
|
|
1396
1516
|
hasInitialized: boolean;
|
|
1397
1517
|
pageIndex: number;
|
|
@@ -1441,6 +1561,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1441
1561
|
private localFilterFieldMetadataCacheKey;
|
|
1442
1562
|
private remoteSchemaLoadSequence;
|
|
1443
1563
|
private enterpriseContextIdentity;
|
|
1564
|
+
private enterpriseContextReady;
|
|
1444
1565
|
private staleEnterpriseLocalData;
|
|
1445
1566
|
private remoteDataLoadSequence;
|
|
1446
1567
|
private analyticsLoadSequence;
|
|
@@ -1611,11 +1732,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1611
1732
|
getNoDataStateIconContainer(): 'none' | 'circle' | 'soft';
|
|
1612
1733
|
getNoDataStatePrimaryAction(): any | null;
|
|
1613
1734
|
getNoDataStateSecondaryActions(): any[];
|
|
1735
|
+
private isAdvancedFiltersEffectivelyEnabled;
|
|
1614
1736
|
shouldRenderAdvancedFilter(): boolean;
|
|
1615
1737
|
getAdvancedFilterResourcePath(): string;
|
|
1616
1738
|
getAdvancedFilterPersistenceKey(): string;
|
|
1617
1739
|
getAdvancedFilterFormId(): string;
|
|
1618
1740
|
getAdvancedFilterOpenMode(): 'modal' | 'drawer';
|
|
1741
|
+
shouldShowAdvancedFilterAddButton(): boolean;
|
|
1742
|
+
shouldShowAdvancedFilterSettings(): boolean;
|
|
1619
1743
|
getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
|
|
1620
1744
|
getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
|
|
1621
1745
|
getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
|
|
@@ -1734,9 +1858,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1734
1858
|
private hasDeclaredAppearanceSection;
|
|
1735
1859
|
private shouldApplyAppearanceDefaultValue;
|
|
1736
1860
|
private mergePersistedTableConfigWithInput;
|
|
1861
|
+
private reconcileTableConfigInputChange;
|
|
1737
1862
|
private reconcileHostDeclaredTableContract;
|
|
1738
1863
|
private reconcileHostDeclaredColumns;
|
|
1739
1864
|
private reconcileHostDeclaredRowActions;
|
|
1865
|
+
private reconcileHostDeclaredBulkActions;
|
|
1866
|
+
private reconcileHostDeclaredFiltering;
|
|
1740
1867
|
private reconcileHostDeclaredExport;
|
|
1741
1868
|
private normalizePersistedExportFormats;
|
|
1742
1869
|
private normalizePersistedRowActionIds;
|
|
@@ -1750,6 +1877,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1750
1877
|
private resolveCollectionCapabilitiesHref;
|
|
1751
1878
|
private materializeCollectionCreateToolbarAction;
|
|
1752
1879
|
private materializeCollectionWorkflowToolbarActions;
|
|
1880
|
+
private materializeCollectionBulkSyncToolbarAction;
|
|
1881
|
+
private hasBulkSyncSelection;
|
|
1882
|
+
private tryHandleBulkSyncToolbarAction;
|
|
1883
|
+
private isBulkSyncPending;
|
|
1884
|
+
canShowBulkSyncHandle(): boolean;
|
|
1885
|
+
closeBulkSync(): void;
|
|
1886
|
+
private bulkSyncOperationalIdentity;
|
|
1753
1887
|
private isCollectionActionDiscoveryEnabled;
|
|
1754
1888
|
private ensureToolbarConfigForRuntime;
|
|
1755
1889
|
private buildCollectionCreateToolbarAction;
|
|
@@ -1851,6 +1985,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1851
1985
|
private hasActiveEmptyStateFilters;
|
|
1852
1986
|
private hasMeaningfulFilterCriteria;
|
|
1853
1987
|
private hasMeaningfulFilterValue;
|
|
1988
|
+
isStructuralQueryContextField(field: string): boolean;
|
|
1989
|
+
computeActiveCrossFilters(): PraxisTableCrossFilterItem[];
|
|
1990
|
+
onClearCrossFilter(item: PraxisTableCrossFilterItem): void;
|
|
1991
|
+
onClearAllCrossFilters(): void;
|
|
1854
1992
|
private resolveNoDataStateConfig;
|
|
1855
1993
|
private isEmptyStateTone;
|
|
1856
1994
|
private isEmptyStateVariant;
|
|
@@ -1872,6 +2010,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1872
2010
|
* race with the configured request.
|
|
1873
2011
|
*/
|
|
1874
2012
|
private shouldFetchRemoteDataForQueryChanges;
|
|
2013
|
+
/**
|
|
2014
|
+
* Evaluates whether an external TableConfig change actually modifies remote query parameters
|
|
2015
|
+
* (e.g. resourcePath, page size, sorting criteria or data mode).
|
|
2016
|
+
*
|
|
2017
|
+
* Non-query-affecting updates (such as toolbar actions, capabilities resolution, appearance,
|
|
2018
|
+
* density or empty state) MUST NOT trigger a redundant remote data load or cancel in-flight requests.
|
|
2019
|
+
*/
|
|
2020
|
+
private shouldRefetchOnConfigChange;
|
|
1875
2021
|
private isDebug;
|
|
1876
2022
|
private connectionKey;
|
|
1877
2023
|
private saveConnection;
|
|
@@ -1955,6 +2101,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1955
2101
|
private resolveExpansionDetailTimelineExpressionValue;
|
|
1956
2102
|
private getExpansionDetailTimelineObjectValue;
|
|
1957
2103
|
private normalizeExpansionDetailCardGridCardContent;
|
|
2104
|
+
/** `visibleWhen` is canonical Json Logic (object or boolean); string DSL is not a valid rule. */
|
|
2105
|
+
private normalizeExpansionDetailVisibleWhen;
|
|
2106
|
+
/**
|
|
2107
|
+
* Visibility gate for every detail node, including host-mediated ones (cardGrid, list, detailList,
|
|
2108
|
+
* timeline) that are not rendered by PraxisRichContent. Mirrors `PraxisRichContent.evaluateRule`:
|
|
2109
|
+
* same context (`row`, `computed`, `detail`), truthiness of the Json Logic result, fail-closed on error.
|
|
2110
|
+
*/
|
|
2111
|
+
isExpansionDetailNodeVisible(node: any, row: any, index: number): boolean;
|
|
2112
|
+
private withExpansionDetailParentVisibleWhen;
|
|
1958
2113
|
private normalizeExpansionDetailMediaBlockAvatar;
|
|
1959
2114
|
private normalizeExpansionDetailMediaBlockText;
|
|
1960
2115
|
private normalizeExpansionDetailMediaBlockMeta;
|
|
@@ -2010,7 +2165,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2010
2165
|
private isExpansionDetailRichListItemActionVisible;
|
|
2011
2166
|
private evaluateExpansionDetailRichListItemCondition;
|
|
2012
2167
|
getExpansionDetailRichText(node: any): string;
|
|
2013
|
-
getExpansionDetailRichContentContext(row: any, index: number): JsonLogicDataRecord;
|
|
2168
|
+
getExpansionDetailRichContentContext(row: any, index: number, node?: any): JsonLogicDataRecord;
|
|
2014
2169
|
getExpansionDetailRichContentDocument(node: any): RichContentDocument;
|
|
2015
2170
|
getExpansionDetailRichContentLayout(node: any): 'block' | 'inline';
|
|
2016
2171
|
getExpansionDetailRichContentHostCapabilities(row: any): RichBlockHostCapabilities;
|
|
@@ -2020,6 +2175,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2020
2175
|
private mapExpansionDetailNodeToRichContent;
|
|
2021
2176
|
private mapExpansionDetailMediaBlockNodeToRichContent;
|
|
2022
2177
|
private mapExpansionDetailCardNodeToRichContent;
|
|
2178
|
+
private expansionDetailVisibleWhenPatch;
|
|
2023
2179
|
private mapExpansionDetailStackNodeToRichContent;
|
|
2024
2180
|
private mapExpansionDetailValueNodeToRichContent;
|
|
2025
2181
|
private mapExpansionDetailTimelineNodeToRichContent;
|
|
@@ -2037,9 +2193,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2037
2193
|
private resolveExpansionDetailSchemaForRow;
|
|
2038
2194
|
private resolveExpansionDetailByMode;
|
|
2039
2195
|
private resolveExpansionDetailInlineSchema;
|
|
2196
|
+
private resolveExpansionDetailFromSchema;
|
|
2197
|
+
private humanizeFieldName;
|
|
2040
2198
|
private resolveExpansionDetailFromResource;
|
|
2041
2199
|
private resolveExpansionDetailFromResourcePath;
|
|
2042
2200
|
private resolveExpansionDetailFromHypermedia;
|
|
2201
|
+
private isDirectRichContentDocument;
|
|
2043
2202
|
private normalizeExpansionDetailSchemaCandidate;
|
|
2044
2203
|
private sanitizeExpansionDetailSchema;
|
|
2045
2204
|
private sanitizeExpansionDetailNodes;
|
|
@@ -2093,6 +2252,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2093
2252
|
private areStringSetsEqual;
|
|
2094
2253
|
private shouldToggleExpansionOnRowClick;
|
|
2095
2254
|
private shouldSelectRowOnRowClick;
|
|
2255
|
+
isAnalyticalDrawerEnabled(): boolean;
|
|
2256
|
+
private shouldOpenAnalyticalDrawerOnRowClick;
|
|
2257
|
+
openAnalyticalDrawer(row: any, tabId?: string): void;
|
|
2258
|
+
closeAnalyticalDrawer(): void;
|
|
2259
|
+
onAnalyticalDrawerTabChange(tabId: string): void;
|
|
2096
2260
|
private getExpansionMotionPreset;
|
|
2097
2261
|
private getExpansionMotionDurationMs;
|
|
2098
2262
|
private getExpansionMotionEasingCurve;
|
|
@@ -2125,7 +2289,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2125
2289
|
private showActionFeedbackMessage;
|
|
2126
2290
|
private emitEventWithActionFeedback;
|
|
2127
2291
|
private executeConfiguredGlobalAction;
|
|
2292
|
+
private isWritableConfiguredSurfaceOpen;
|
|
2128
2293
|
private withTableRuntimeContext;
|
|
2294
|
+
private resolveTableSurfaceRuntime;
|
|
2129
2295
|
private executeSurfaceOpen;
|
|
2130
2296
|
private resolveConfiguredGlobalActionRef;
|
|
2131
2297
|
private resolveActionGlobalActionRef;
|
|
@@ -2151,6 +2317,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2151
2317
|
private unwrapCollectionWorkflowResult;
|
|
2152
2318
|
private showCollectionWorkflowContractError;
|
|
2153
2319
|
private tryHandleCollectionCreateToolbarAction;
|
|
2320
|
+
private bindDiscoveredSurfaceOutcome;
|
|
2321
|
+
private applySurfaceActionRefresh;
|
|
2154
2322
|
private resolveBulkExportFormat;
|
|
2155
2323
|
private isBulkExportActionKey;
|
|
2156
2324
|
private normalizeExportFormat;
|
|
@@ -2185,14 +2353,26 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2185
2353
|
onAdvancedFilterSubmit(criteria: Record<string, any>): void;
|
|
2186
2354
|
onAdvancedFilterChange(criteria: Record<string, any>): void;
|
|
2187
2355
|
onAdvancedFilterClear(): void;
|
|
2356
|
+
clearAdvancedFilter(): void;
|
|
2188
2357
|
onQuickFilterChange(event: {
|
|
2189
2358
|
id: string;
|
|
2190
2359
|
filter: Record<string, unknown>;
|
|
2191
2360
|
active: boolean;
|
|
2192
2361
|
}): void;
|
|
2362
|
+
getConfiguredQuickFilters(): Array<{
|
|
2363
|
+
id: string;
|
|
2364
|
+
label: string;
|
|
2365
|
+
filter: Record<string, unknown>;
|
|
2366
|
+
icon?: string;
|
|
2367
|
+
}>;
|
|
2368
|
+
getQuickFilterManagedFields(): string[];
|
|
2369
|
+
private parseQuickFilterDefinition;
|
|
2370
|
+
getEffectiveEditableFilterCriteria(): Record<string, any>;
|
|
2371
|
+
private reconcileEditableQueryContextFilters;
|
|
2372
|
+
private syncQuickFilterStateFromEffectiveCriteria;
|
|
2193
2373
|
private clearQuickFilterRuntimeState;
|
|
2194
2374
|
private hasEquivalentFilterCriteria;
|
|
2195
|
-
|
|
2375
|
+
applyAdvancedFilterCriteria(criteria: Record<string, any> | null | undefined, reason?: string): void;
|
|
2196
2376
|
private setAdvancedFilterCriteria;
|
|
2197
2377
|
private syncAdvancedFilterValueFromCriteria;
|
|
2198
2378
|
private deriveRuntimeVisibleAdvancedFilterFields;
|
|
@@ -2585,6 +2765,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2585
2765
|
getIconText(row: any, column: ColumnDefinition): string | null;
|
|
2586
2766
|
getIconRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
|
|
2587
2767
|
private getIconRawText;
|
|
2768
|
+
/**
|
|
2769
|
+
* Enriquece as linhas com propriedades calculadas declaradas em `computedFields`.
|
|
2770
|
+
* Torna as propriedades virtuais fisicamente acessíveis no objeto da linha (Issue #34).
|
|
2771
|
+
*/
|
|
2772
|
+
private enrichRowsWithComputedFields;
|
|
2588
2773
|
/**
|
|
2589
2774
|
* Lightweight, controlled evaluator for string/number expressions using row context.
|
|
2590
2775
|
* Accepts values like '= row.status === "OK" ? "primary" : "warn"'.
|
|
@@ -2746,7 +2931,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2746
2931
|
private emitMetadataChange;
|
|
2747
2932
|
private emitSchemaStatus;
|
|
2748
2933
|
getRowId(row: any): any;
|
|
2934
|
+
private preserveSelectionOnNextDataLoad;
|
|
2749
2935
|
private reconcileSelectionAfterDataChange;
|
|
2936
|
+
private areSelectedRowSnapshotsEquivalent;
|
|
2937
|
+
private serializeSelectedRowSnapshot;
|
|
2750
2938
|
private getComparableRowIdentity;
|
|
2751
2939
|
getIdField(): string;
|
|
2752
2940
|
private getSchemaIdFieldOverride;
|
|
@@ -2782,6 +2970,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2782
2970
|
getRowSelectionAriaLabel(row: any, index?: number): string;
|
|
2783
2971
|
getMasterSelectionAriaLabel(): string;
|
|
2784
2972
|
private selectRowFromUserInteraction;
|
|
2973
|
+
clearSelection(emitEvent?: boolean): void;
|
|
2785
2974
|
private emitSelectionChange;
|
|
2786
2975
|
private publishSelectionStatus;
|
|
2787
2976
|
private getAccessibleRowLabel;
|
|
@@ -2876,7 +3065,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2876
3065
|
private scheduleRowDiscoveryMarkForCheck;
|
|
2877
3066
|
ngOnDestroy(): void;
|
|
2878
3067
|
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>;
|
|
3068
|
+
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; }; }, { "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>;
|
|
3069
|
+
static ngAcceptInputType_filterTeleport: unknown;
|
|
2880
3070
|
static ngAcceptInputType_enableCustomization: unknown;
|
|
2881
3071
|
}
|
|
2882
3072
|
|
|
@@ -3080,6 +3270,7 @@ type ComposePresetId = 'personAvatar' | 'contactTwoLines' | 'documentEmail' | 's
|
|
|
3080
3270
|
declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestroy {
|
|
3081
3271
|
private cdr;
|
|
3082
3272
|
private readonly i18n;
|
|
3273
|
+
private readonly jsonLogic;
|
|
3083
3274
|
tx(key: string, fallback: string): string;
|
|
3084
3275
|
readonly ratingAriaLabelPlaceholder: string;
|
|
3085
3276
|
readonly ratingRendererHint: string;
|
|
@@ -3131,6 +3322,18 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3131
3322
|
getJsonLogicSummary(value: JsonLogicExpression | null | undefined): string;
|
|
3132
3323
|
private parseJsonLogicText;
|
|
3133
3324
|
setConditionalOverrideCondition(index: number, raw: string): void;
|
|
3325
|
+
readonly overrideConditionOperators: readonly ["===", "==", "!==", "!=", ">", ">=", "<", "<=", "truthy", "falsy"];
|
|
3326
|
+
private normalizeConditionFieldName;
|
|
3327
|
+
getOverrideConditionField(condition: any): string;
|
|
3328
|
+
getOverrideConditionOperator(condition: any): string;
|
|
3329
|
+
getOverrideConditionValue(condition: any): string;
|
|
3330
|
+
setOverrideGuidedCondition(index: number, patch: {
|
|
3331
|
+
field?: string;
|
|
3332
|
+
operator?: string;
|
|
3333
|
+
value?: string;
|
|
3334
|
+
}): void;
|
|
3335
|
+
private extractGuidedJsonLogicCondition;
|
|
3336
|
+
private coerceGuidedScalar;
|
|
3134
3337
|
getOverrideField(path: string): any;
|
|
3135
3338
|
setOverrideField(path: string, value: any): void;
|
|
3136
3339
|
setOverrideJsonLogicField(path: string, raw: string): void;
|
|
@@ -3139,13 +3342,19 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3139
3342
|
item: any;
|
|
3140
3343
|
index: number;
|
|
3141
3344
|
}>;
|
|
3345
|
+
addOverrideComposeItem(type: 'value' | 'badge' | 'icon' | 'chip' | 'progress' | 'avatar' | 'link' | 'button' | 'rating' | 'html'): void;
|
|
3142
3346
|
addOverrideComposeValueItem(): void;
|
|
3347
|
+
moveOverrideComposeItem(index: number, delta: -1 | 1): void;
|
|
3348
|
+
duplicateOverrideComposeItem(index: number): void;
|
|
3349
|
+
removeOverrideComposeItem(index: number): void;
|
|
3350
|
+
setOverrideComposeItemProp(index: number, path: string, value: any): void;
|
|
3143
3351
|
setOverrideComposeValueItemField(index: number, field: string): void;
|
|
3144
3352
|
setOverrideComposeValueItemEmphasis(index: number, emphasis: string): void;
|
|
3145
3353
|
getOverrideComposeLayoutProp(key: string): any;
|
|
3146
3354
|
setOverrideComposeLayoutProp(key: string, value: any): void;
|
|
3147
3355
|
onOverrideTypeChange(ov: any, val: string): void;
|
|
3148
3356
|
getOverrideMicroVisualizationProp(path: string): any;
|
|
3357
|
+
private ensureOverrideMicroVisualizationObject;
|
|
3149
3358
|
setOverrideMicroVisualizationProp(path: string, value: any): void;
|
|
3150
3359
|
getOverrideMicroVisualizationKind(): PraxisPresentationVisualizationKind;
|
|
3151
3360
|
getOverrideMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
@@ -3155,15 +3364,25 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3155
3364
|
isOverrideMicroVisualizationSegmentsKind(): boolean;
|
|
3156
3365
|
isOverrideMicroVisualizationItemsKind(): boolean;
|
|
3157
3366
|
isOverrideMicroVisualizationTotalKind(): boolean;
|
|
3367
|
+
isOverrideMicroVisualizationThresholdsSupported(): boolean;
|
|
3368
|
+
getOverrideMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
|
|
3369
|
+
addOverrideMicroVisualizationThreshold(): void;
|
|
3370
|
+
applyDefaultOverrideMicroVisualizationThresholds(): void;
|
|
3371
|
+
setOverrideMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
|
|
3372
|
+
setOverrideMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
|
|
3373
|
+
moveOverrideMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
|
|
3374
|
+
removeOverrideMicroVisualizationThreshold(index: number): void;
|
|
3158
3375
|
getOverrideMicroVisualizationGuidanceText(): string;
|
|
3159
3376
|
exportOverrideJson(index: number): void;
|
|
3160
3377
|
importOverrideJson(index: number): void;
|
|
3161
3378
|
rendererValidationErrors: string[];
|
|
3379
|
+
get validationErrors(): string[];
|
|
3162
3380
|
rendererImportWarnings: string[];
|
|
3163
3381
|
rendererIsValid: boolean;
|
|
3164
3382
|
rendererPreviewEnabled: boolean;
|
|
3165
3383
|
private rendererAppliedSnapshot;
|
|
3166
3384
|
previewRows: any[];
|
|
3385
|
+
microVisualizationSampleValuesText: string;
|
|
3167
3386
|
private refreshRendererFieldOptions;
|
|
3168
3387
|
getRendererFieldOptions(): RendererFieldOption[];
|
|
3169
3388
|
formatRendererFieldOption(option: RendererFieldOption): string;
|
|
@@ -3258,7 +3477,19 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3258
3477
|
setRendererJsonLogicProp(kind: string, path: string, raw: string): void;
|
|
3259
3478
|
setRendererProp(kind: string, path: string, value: any): void;
|
|
3260
3479
|
private createDefaultMicroVisualization;
|
|
3480
|
+
private ensureMicroVisualizationObject;
|
|
3261
3481
|
setMicroVisualizationProp(path: string, value: any): void;
|
|
3482
|
+
isMicroVisualizationThresholdsSupported(): boolean;
|
|
3483
|
+
getMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
|
|
3484
|
+
addMicroVisualizationThreshold(): void;
|
|
3485
|
+
applyDefaultMicroVisualizationThresholds(): void;
|
|
3486
|
+
setMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
|
|
3487
|
+
setMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
|
|
3488
|
+
moveMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
|
|
3489
|
+
removeMicroVisualizationThreshold(index: number): void;
|
|
3490
|
+
setMicroVisualizationSampleValuesText(raw: string): void;
|
|
3491
|
+
getMicroVisualizationSampleValues(): number[];
|
|
3492
|
+
getPreviewMicroVisualizationHtmlForValue(sampleValue: number): string;
|
|
3262
3493
|
private _deepClone;
|
|
3263
3494
|
hasSelectedRenderer(): boolean;
|
|
3264
3495
|
onApplyRenderer(): void;
|
|
@@ -3278,6 +3509,12 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3278
3509
|
private stripRowPrefixes;
|
|
3279
3510
|
private _coerceExpected;
|
|
3280
3511
|
private getNested;
|
|
3512
|
+
private buildPreviewEvaluationContext;
|
|
3513
|
+
evaluatePreviewOverrideCondition(condition: any, row: any): boolean;
|
|
3514
|
+
private mergePreviewRenderer;
|
|
3515
|
+
private hasRenderablePreviewOverride;
|
|
3516
|
+
getEffectivePreviewRenderer(row: any): any;
|
|
3517
|
+
getPreviewSampleRows(): any[];
|
|
3281
3518
|
getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'rating' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
3282
3519
|
getPreviewIconName(row: any): string | null;
|
|
3283
3520
|
getPreviewIconColor(row: any): string | null;
|
|
@@ -3289,14 +3526,17 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3289
3526
|
getPreviewImageShape(): 'square' | 'rounded' | 'circle' | undefined;
|
|
3290
3527
|
getPreviewImageFit(): 'cover' | 'contain' | undefined;
|
|
3291
3528
|
getPreviewBadgeText(row: any): string | null;
|
|
3292
|
-
getPreviewBadgeIcon(
|
|
3293
|
-
getPreviewBadgeClasses(
|
|
3529
|
+
getPreviewBadgeIcon(row: any): string | null;
|
|
3530
|
+
getPreviewBadgeClasses(row: any): string[];
|
|
3531
|
+
private buildBadgeClassesFromConfig;
|
|
3294
3532
|
getPreviewLinkText(row: any): string;
|
|
3295
3533
|
getPreviewLinkHref(row: any): string | null;
|
|
3296
3534
|
getPreviewButtonLabel(row: any): string;
|
|
3297
|
-
getPreviewButtonIcon(): string | null;
|
|
3535
|
+
getPreviewButtonIcon(row?: any): string | null;
|
|
3298
3536
|
getPreviewChipText(row: any): string | null;
|
|
3299
|
-
|
|
3537
|
+
getPreviewChipIcon(row?: any): string | null;
|
|
3538
|
+
getPreviewChipClasses(row?: any): string[];
|
|
3539
|
+
getComposePreviewButtonLabel(item: any, row: any): string;
|
|
3300
3540
|
getPreviewProgressValue(row: any): number;
|
|
3301
3541
|
getPreviewMicroVisualizationHtml(row: any): string;
|
|
3302
3542
|
getMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
@@ -3314,7 +3554,34 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3314
3554
|
getPreviewRatingOutlineColor(): string | undefined;
|
|
3315
3555
|
getPreviewRatingSize(): 'small' | 'medium' | 'large';
|
|
3316
3556
|
getPreviewRatingAriaLabel(): string | undefined;
|
|
3317
|
-
getComposePreviewItems(
|
|
3557
|
+
getComposePreviewItems(row: any): any[];
|
|
3558
|
+
getComposePreviewContainerStyle(row: any): Record<string, string>;
|
|
3559
|
+
getComposePreviewValueText(item: any, row: any): string;
|
|
3560
|
+
getComposePreviewValueClasses(item: any): string[];
|
|
3561
|
+
getComposePreviewBadgeText(item: any, row: any): string;
|
|
3562
|
+
getComposePreviewBadgeClasses(item: any): string[];
|
|
3563
|
+
getComposePreviewChipText(item: any, row: any): string;
|
|
3564
|
+
getComposePreviewChipClasses(item: any): string[];
|
|
3565
|
+
getComposePreviewLinkText(item: any, row: any): string;
|
|
3566
|
+
getComposePreviewLinkHref(item: any, row: any): string | null;
|
|
3567
|
+
getComposePreviewIconName(item: any, row: any): string | null;
|
|
3568
|
+
getComposePreviewIconColor(item: any, _row: any): string | null;
|
|
3569
|
+
getComposePreviewIconStyle(item: any, _row: any): Record<string, string> | null;
|
|
3570
|
+
getComposePreviewAvatarStyle(item: any): Record<string, string>;
|
|
3571
|
+
getComposePreviewAvatarInitials(item: any, row: any): string;
|
|
3572
|
+
getComposePreviewAvatarSrc(item: any, row: any): string | null;
|
|
3573
|
+
getComposePreviewAvatarAlt(item: any, row: any): string;
|
|
3574
|
+
getComposePreviewImageSrc(item: any, row: any): string | null;
|
|
3575
|
+
getComposePreviewImageAlt(item: any, row: any): string;
|
|
3576
|
+
getComposePreviewImageStyle(item: any): Record<string, string>;
|
|
3577
|
+
getComposePreviewProgressColor(item: any): string | null;
|
|
3578
|
+
getComposePreviewHtml(item: any, row: any): string;
|
|
3579
|
+
getComposePreviewToggleState(item: any, row: any): boolean;
|
|
3580
|
+
getComposePreviewMenuCount(item: any, row: any): number;
|
|
3581
|
+
private resolvePreviewSafeSrc;
|
|
3582
|
+
/** Mirrors PraxisTable.getSafeHtml token interpolation: `[[field]]` values are HTML-escaped. */
|
|
3583
|
+
private interpolatePreviewHtml;
|
|
3584
|
+
getComposePreviewProgressValue(item: any, row: any): number;
|
|
3318
3585
|
getComposePreviewRatingValue(item: any, row: any): number;
|
|
3319
3586
|
getComposePreviewRatingMax(item: any): number;
|
|
3320
3587
|
getComposePreviewRatingColor(item: any): string | undefined;
|
|
@@ -3330,7 +3597,10 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3330
3597
|
getPreviewToggleState(row: any): boolean;
|
|
3331
3598
|
getPreviewMenuCount(row: any): number;
|
|
3332
3599
|
getPreviewHtml(row: any): string;
|
|
3333
|
-
|
|
3600
|
+
getPreviewProgressColor(row: any): string | null;
|
|
3601
|
+
/** Preview rows are re-cloned on every read; the sample slot index is their stable identity. */
|
|
3602
|
+
trackByIdx: (index: number, _item: unknown) => number;
|
|
3603
|
+
private validateMicroVisualizationThresholds;
|
|
3334
3604
|
private validateRenderer;
|
|
3335
3605
|
private readonly _emptyMappingRef;
|
|
3336
3606
|
composeSelectedIndex: number;
|
|
@@ -3352,6 +3622,8 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3352
3622
|
getSelectedComposeItem(): any;
|
|
3353
3623
|
getSelectedComposeItemProp(path: string): any;
|
|
3354
3624
|
setSelectedComposeItemProp(path: string, value: any): void;
|
|
3625
|
+
getConsolidatedSecondaryColumn(item: any): ExtendedColumnDefinition | null;
|
|
3626
|
+
hideConsolidatedColumn(field: string): void;
|
|
3355
3627
|
private findRendererFieldByCandidates;
|
|
3356
3628
|
private normalizeFieldLookup;
|
|
3357
3629
|
getColumnKeyInputType(column: ColumnDefinition | null): 'text' | 'number' | 'boolean';
|
|
@@ -3729,6 +4001,8 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3729
4001
|
presentation: FormControl<FilterConfig['presentation']>;
|
|
3730
4002
|
alwaysVisibleFields: FormControl<string[]>;
|
|
3731
4003
|
showAdvanced: FormControl<boolean>;
|
|
4004
|
+
showAddButton: FormControl<boolean>;
|
|
4005
|
+
showFilterSettings: FormControl<boolean>;
|
|
3732
4006
|
mode: FormControl<'filter'>;
|
|
3733
4007
|
changeDebounceMs: FormControl<number>;
|
|
3734
4008
|
allowSaveTags: FormControl<boolean>;
|
|
@@ -4237,7 +4511,7 @@ declare class TableDetailTreeDraft {
|
|
|
4237
4511
|
depth: number;
|
|
4238
4512
|
} | undefined;
|
|
4239
4513
|
move(direction: -1 | 1): void;
|
|
4240
|
-
add(node: Node, nested?: boolean):
|
|
4514
|
+
add(node: Node, nested?: boolean): Node | null;
|
|
4241
4515
|
}
|
|
4242
4516
|
|
|
4243
4517
|
declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
@@ -4254,6 +4528,7 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4254
4528
|
dirty: boolean;
|
|
4255
4529
|
}>;
|
|
4256
4530
|
private readonly i18n;
|
|
4531
|
+
private readonly jsonLogic;
|
|
4257
4532
|
private baseline?;
|
|
4258
4533
|
private emitted?;
|
|
4259
4534
|
private readonly coupledBefore;
|
|
@@ -4265,26 +4540,49 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4265
4540
|
jsonTouched: boolean;
|
|
4266
4541
|
advanced: boolean;
|
|
4267
4542
|
preset: string;
|
|
4543
|
+
/** True when the last "add inside" was refused because the block cannot live inside a card grid card. */
|
|
4544
|
+
addRejected: boolean;
|
|
4268
4545
|
readonly presets: string[];
|
|
4269
4546
|
readonly sourceModes: string[];
|
|
4270
4547
|
readonly resourceKinds: string[];
|
|
4271
4548
|
readonly resourcePathMethods: string[];
|
|
4549
|
+
readonly cardGridColumnOptions: Array<'auto' | 1 | 2 | 3 | 4>;
|
|
4550
|
+
readonly cardVariants: Array<'outlined' | 'elevated' | 'filled' | 'soft'>;
|
|
4551
|
+
readonly cardSizes: Array<'sm' | 'md' | 'lg'>;
|
|
4552
|
+
readonly cardDensities: Array<'compact' | 'comfortable' | 'spacious'>;
|
|
4553
|
+
readonly composeLayouts: Array<'flex' | 'grid'>;
|
|
4554
|
+
readonly composeDirections: Array<'row' | 'column'>;
|
|
4555
|
+
readonly composeGaps: Array<'xs' | 'sm' | 'md' | 'lg' | 'xl'>;
|
|
4556
|
+
readonly composeAlignItemsOptions: Array<'' | 'flex-start' | 'center' | 'flex-end' | 'stretch'>;
|
|
4557
|
+
readonly badgePresetOptions: Array<'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'>;
|
|
4558
|
+
readonly iconSurfacePresetOptions: Array<'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'>;
|
|
4559
|
+
readonly semanticTones: Array<'' | 'neutral' | 'info' | 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger'>;
|
|
4560
|
+
readonly conditionOperators: Array<'===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy'>;
|
|
4272
4561
|
fallbackModes(): string[];
|
|
4273
|
-
sample:
|
|
4562
|
+
sample: 'A' | 'B' | 'C';
|
|
4274
4563
|
get previewContext(): {
|
|
4275
|
-
row:
|
|
4276
|
-
id: string;
|
|
4277
|
-
note: string;
|
|
4278
|
-
status: string;
|
|
4279
|
-
progress: number;
|
|
4280
|
-
};
|
|
4564
|
+
row: Record<string, unknown>;
|
|
4281
4565
|
};
|
|
4566
|
+
private projectDetailNodeToRichBlockNodes;
|
|
4282
4567
|
/** Local presenter projection only; never used as an authoring/save source. */
|
|
4283
4568
|
previewNodes(): RichBlockNode[];
|
|
4569
|
+
/**
|
|
4570
|
+
* Returns structured preview groups so `cardGrid` blocks render with their real
|
|
4571
|
+
* multi-column CSS Grid (`columns` and `minCardWidth`) and headers in the preview canvas.
|
|
4572
|
+
*/
|
|
4573
|
+
previewCardGridGroups(): Array<{
|
|
4574
|
+
isCardGrid: boolean;
|
|
4575
|
+
title?: string;
|
|
4576
|
+
subtitle?: string;
|
|
4577
|
+
gridTemplateColumns?: string;
|
|
4578
|
+
cards?: RichBlockNode[];
|
|
4579
|
+
nodes?: RichBlockNode[];
|
|
4580
|
+
}>;
|
|
4284
4581
|
previewRichContentDocuments(): RichContentDocument[];
|
|
4285
4582
|
richContentEditorInputs(): PraxisRichContentEditorInputs | null;
|
|
4286
4583
|
applyRichContentEditor(): void;
|
|
4287
|
-
addPreset(preset: 'callout' | 'richCard'): void;
|
|
4584
|
+
addPreset(preset: 'callout' | 'richCard' | 'richDetailGrid'): void;
|
|
4585
|
+
effectiveNodeType(node?: Record<string, any> | undefined): string;
|
|
4288
4586
|
nodeLabel(node: Record<string, any>): string;
|
|
4289
4587
|
nodeIcon(node: Record<string, any>): string;
|
|
4290
4588
|
canMove(direction: -1 | 1): boolean;
|
|
@@ -4326,7 +4624,70 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4326
4624
|
edit(field: string, value: string): void;
|
|
4327
4625
|
fields(): string[];
|
|
4328
4626
|
isAdvancedNode(): boolean;
|
|
4627
|
+
availableColumns(): Array<{
|
|
4628
|
+
field: string;
|
|
4629
|
+
label: string;
|
|
4630
|
+
}>;
|
|
4631
|
+
supportsFieldBinding(): boolean;
|
|
4632
|
+
boundColumnField(): string;
|
|
4633
|
+
bindColumnField(fieldName: string): void;
|
|
4634
|
+
cardGridColumnsValue(): 'auto' | 1 | 2 | 3 | 4;
|
|
4635
|
+
setCardGridColumns(value: 'auto' | 1 | 2 | 3 | 4): void;
|
|
4636
|
+
cardGridMinWidthValue(): number;
|
|
4637
|
+
setCardGridMinWidth(value: number | string): void;
|
|
4638
|
+
cardVariantValue(): 'outlined' | 'elevated' | 'filled' | 'soft';
|
|
4639
|
+
setCardVariant(variant: 'outlined' | 'elevated' | 'filled' | 'soft'): void;
|
|
4640
|
+
cardSizeValue(): 'sm' | 'md' | 'lg';
|
|
4641
|
+
setCardSize(size: 'sm' | 'md' | 'lg'): void;
|
|
4642
|
+
cardDensityValue(): 'compact' | 'comfortable' | 'spacious';
|
|
4643
|
+
setCardDensity(density: 'compact' | 'comfortable' | 'spacious'): void;
|
|
4644
|
+
composeLayoutValue(): 'flex' | 'grid';
|
|
4645
|
+
setComposeLayout(layout: 'flex' | 'grid'): void;
|
|
4646
|
+
composeDirectionValue(): 'row' | 'column';
|
|
4647
|
+
setComposeDirection(direction: 'row' | 'column'): void;
|
|
4648
|
+
composeGapValue(): 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4649
|
+
setComposeGap(gap: 'xs' | 'sm' | 'md' | 'lg' | 'xl'): void;
|
|
4650
|
+
composeAlignItemsValue(): '' | 'flex-start' | 'center' | 'flex-end' | 'stretch';
|
|
4651
|
+
setComposeAlignItems(align: '' | 'flex-start' | 'center' | 'flex-end' | 'stretch'): void;
|
|
4652
|
+
composeWrapValue(): boolean;
|
|
4653
|
+
setComposeWrap(wrap: boolean): void;
|
|
4654
|
+
supportsTone(): boolean;
|
|
4655
|
+
toneValue(): string;
|
|
4656
|
+
setTone(tone: string): void;
|
|
4657
|
+
supportsStyleControls(): boolean;
|
|
4658
|
+
nodeStyleValue(key: string): string;
|
|
4659
|
+
setNodeStyleValue(key: string, value: string): void;
|
|
4660
|
+
hasNodeAppearanceOverrides(): boolean;
|
|
4661
|
+
resetNodeAppearance(): void;
|
|
4662
|
+
badgeAppearancePreset(): 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom';
|
|
4663
|
+
applyBadgeAppearancePreset(preset: 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'): void;
|
|
4664
|
+
iconSurfacePreset(): 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom';
|
|
4665
|
+
applyIconSurfacePreset(preset: 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'): void;
|
|
4666
|
+
canConvertSelectedToRichContent(): boolean;
|
|
4667
|
+
/**
|
|
4668
|
+
* Losslessly converts the selected `cardGrid` or `card` block (or its parent `cardGrid`
|
|
4669
|
+
* when a card inside `cardGrid.cards` is selected) into a canonical `richContent` node
|
|
4670
|
+
* so the user can continue authoring in the full embedded `PraxisRichContentConfigEditor`.
|
|
4671
|
+
*/
|
|
4672
|
+
convertSelectedToRichContent(): void;
|
|
4673
|
+
supportsVisibleWhen(): boolean;
|
|
4674
|
+
visibleWhenMode(): 'always' | 'conditional' | 'custom';
|
|
4675
|
+
setVisibleWhenMode(mode: 'always' | 'conditional' | 'custom'): void;
|
|
4676
|
+
visibleWhenField(): string;
|
|
4677
|
+
visibleWhenOperator(): '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4678
|
+
visibleWhenValue(): string;
|
|
4679
|
+
setVisibleWhenRule(patch: {
|
|
4680
|
+
field?: string;
|
|
4681
|
+
operator?: '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4682
|
+
value?: string;
|
|
4683
|
+
}): void;
|
|
4684
|
+
private parseConditionScalar;
|
|
4685
|
+
private parseGuidedVisibleWhen;
|
|
4686
|
+
private isPreviewNodeVisible;
|
|
4329
4687
|
private commitTree;
|
|
4688
|
+
/** Offered next to `cardGridContent`/`composeContent` issues: converts legacy fields into canonical presenters. */
|
|
4689
|
+
canNormalizeRichChildren(): boolean;
|
|
4690
|
+
normalizeRichChildren(): void;
|
|
4330
4691
|
editJson(value: string): void;
|
|
4331
4692
|
discard(): void;
|
|
4332
4693
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableDetailEditorComponent, never>;
|
|
@@ -4431,6 +4792,46 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4431
4792
|
getColumnAuthoringMetas(): FieldMetadata[];
|
|
4432
4793
|
get filteredIdFieldOptions(): FieldMetadata[];
|
|
4433
4794
|
isUsingFilterDtoMetas(): boolean;
|
|
4795
|
+
get toolbarFiltersEnabled(): boolean;
|
|
4796
|
+
get toolbarShowQuickFilters(): boolean;
|
|
4797
|
+
get toolbarShowAdvancedButton(): boolean;
|
|
4798
|
+
get advancedFilterShowAddButton(): boolean;
|
|
4799
|
+
get advancedFilterShowFilterSettings(): boolean;
|
|
4800
|
+
get toolbarQuickFilters(): Array<{
|
|
4801
|
+
id: string;
|
|
4802
|
+
label: string;
|
|
4803
|
+
icon?: string;
|
|
4804
|
+
filter: any;
|
|
4805
|
+
}>;
|
|
4806
|
+
get duplicatedQuickFilterInlineFields(): string[];
|
|
4807
|
+
private inferDefaultStatusFilterField;
|
|
4808
|
+
private updateToolbarFiltersPatch;
|
|
4809
|
+
onToolbarFiltersEnabledChange(enabled: boolean): void;
|
|
4810
|
+
onToolbarShowQuickFiltersChange(show: boolean): void;
|
|
4811
|
+
onToolbarShowAdvancedButtonChange(show: boolean): void;
|
|
4812
|
+
onAdvancedFilterShowAddButtonChange(show: boolean): void;
|
|
4813
|
+
onAdvancedFilterShowFilterSettingsChange(show: boolean): void;
|
|
4814
|
+
applyBooleanQuickFilterPreset(fieldName?: string): void;
|
|
4815
|
+
addQuickFilterScope(): void;
|
|
4816
|
+
removeQuickFilterScope(index: number): void;
|
|
4817
|
+
updateQuickFilterMeta(index: number, patch: {
|
|
4818
|
+
id?: string;
|
|
4819
|
+
label?: string;
|
|
4820
|
+
icon?: string;
|
|
4821
|
+
}): void;
|
|
4822
|
+
getQuickFilterMode(item: {
|
|
4823
|
+
filter?: any;
|
|
4824
|
+
}): 'all' | 'boolean' | 'equals';
|
|
4825
|
+
getQuickFilterField(item: {
|
|
4826
|
+
filter?: any;
|
|
4827
|
+
}): string;
|
|
4828
|
+
getQuickFilterValue(item: {
|
|
4829
|
+
filter?: any;
|
|
4830
|
+
}): any;
|
|
4831
|
+
onQuickFilterModeChange(index: number, mode: 'all' | 'boolean' | 'equals'): void;
|
|
4832
|
+
onQuickFilterFieldChange(index: number, fieldName: string): void;
|
|
4833
|
+
onQuickFilterValueChange(index: number, rawValue: any): void;
|
|
4834
|
+
consolidateDuplicateInlineFilterFields(): void;
|
|
4434
4835
|
getEffectiveDataMode(): EffectiveDataMode;
|
|
4435
4836
|
isEffectiveLocalMode(): boolean;
|
|
4436
4837
|
private resolveLocalDataModeFeatureEnabled;
|
|
@@ -4595,6 +4996,7 @@ interface PraxisFilterWidgetEditorInputs {
|
|
|
4595
4996
|
advancedOpenMode?: 'modal' | 'drawer';
|
|
4596
4997
|
advancedClearButtonsEnabled?: boolean;
|
|
4597
4998
|
persistenceKey?: string;
|
|
4999
|
+
showAddButton?: boolean;
|
|
4598
5000
|
showFilterSettings?: boolean;
|
|
4599
5001
|
enableCustomization?: boolean;
|
|
4600
5002
|
[key: string]: unknown;
|
|
@@ -4646,6 +5048,145 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4646
5048
|
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
5049
|
}
|
|
4648
5050
|
|
|
5051
|
+
/**
|
|
5052
|
+
* Interface mínima estrutural para qualquer componente que suporte teleporte de filtros
|
|
5053
|
+
* (ex.: PraxisTable ou PraxisCrudComponent).
|
|
5054
|
+
*/
|
|
5055
|
+
interface PraxisFilterTeleportHost {
|
|
5056
|
+
filterTeleport?: boolean;
|
|
5057
|
+
filterTemplate?: TemplateRef<unknown>;
|
|
5058
|
+
filterBarTemplate?: TemplateRef<unknown>;
|
|
5059
|
+
table?: PraxisFilterTeleportHost;
|
|
5060
|
+
}
|
|
5061
|
+
type PraxisFilterOutletTarget = PraxisFilterTeleportHost | TemplateRef<unknown> | null | undefined;
|
|
5062
|
+
/**
|
|
5063
|
+
* Praxis UI Platform — Canonical Filter Outlet Component (Issue #11)
|
|
5064
|
+
*
|
|
5065
|
+
* Renderiza a barra de filtros avançados desacoplada da tabela de dados ou do CRUD,
|
|
5066
|
+
* permitindo acomodá-la em qualquer card, drawer ou cabeçalho superior tático.
|
|
5067
|
+
*
|
|
5068
|
+
* @example
|
|
5069
|
+
* ```html
|
|
5070
|
+
* <div class="filters-card">
|
|
5071
|
+
* <praxis-filter-outlet [target]="heroesCrud" />
|
|
5072
|
+
* </div>
|
|
5073
|
+
*
|
|
5074
|
+
* <praxis-crud #heroesCrud ... />
|
|
5075
|
+
* ```
|
|
5076
|
+
*/
|
|
5077
|
+
declare class PraxisFilterOutletComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
5078
|
+
target: PraxisFilterOutletTarget;
|
|
5079
|
+
private readonly cdr;
|
|
5080
|
+
private previousHost?;
|
|
5081
|
+
get resolvedTemplate(): TemplateRef<unknown> | null;
|
|
5082
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
5083
|
+
ngAfterViewInit(): void;
|
|
5084
|
+
ngOnDestroy(): void;
|
|
5085
|
+
private attachTeleportTarget;
|
|
5086
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletComponent, never>;
|
|
5087
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterOutletComponent, "praxis-filter-outlet", never, { "target": { "alias": "target"; "required": false; }; }, {}, never, never, true, never>;
|
|
5088
|
+
}
|
|
5089
|
+
/**
|
|
5090
|
+
* Praxis UI Platform — Canonical Filter Outlet Directive (Issue #11)
|
|
5091
|
+
*
|
|
5092
|
+
* Diretiva estrutural alternativa para teleporte reativo da barra de filtros.
|
|
5093
|
+
*
|
|
5094
|
+
* @example
|
|
5095
|
+
* ```html
|
|
5096
|
+
* <div class="filters-card">
|
|
5097
|
+
* <ng-container *praxisFilterOutlet="heroesCrud"></ng-container>
|
|
5098
|
+
* </div>
|
|
5099
|
+
* ```
|
|
5100
|
+
*/
|
|
5101
|
+
declare class PraxisFilterOutletDirective implements OnChanges, AfterViewInit, OnDestroy {
|
|
5102
|
+
target: PraxisFilterOutletTarget;
|
|
5103
|
+
private readonly viewContainer;
|
|
5104
|
+
private readonly cdr;
|
|
5105
|
+
private previousHost?;
|
|
5106
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
5107
|
+
ngAfterViewInit(): void;
|
|
5108
|
+
ngOnDestroy(): void;
|
|
5109
|
+
private updateView;
|
|
5110
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletDirective, never>;
|
|
5111
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PraxisFilterOutletDirective, "[praxisFilterOutlet]", never, { "target": { "alias": "praxisFilterOutlet"; "required": false; }; }, {}, never, never, true, never>;
|
|
5112
|
+
}
|
|
5113
|
+
|
|
5114
|
+
interface PraxisScopeBarItem {
|
|
5115
|
+
id: string;
|
|
5116
|
+
label: string;
|
|
5117
|
+
filter?: Record<string, unknown> | string;
|
|
5118
|
+
count?: number | null;
|
|
5119
|
+
icon?: string;
|
|
5120
|
+
tone?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'ready';
|
|
5121
|
+
isDefault?: boolean;
|
|
5122
|
+
tooltip?: string;
|
|
5123
|
+
}
|
|
5124
|
+
interface PraxisScopeBarConfig {
|
|
5125
|
+
items?: PraxisScopeBarItem[];
|
|
5126
|
+
activeId?: string;
|
|
5127
|
+
showOmnibox?: boolean;
|
|
5128
|
+
omniboxPlaceholder?: string;
|
|
5129
|
+
leadIcon?: string;
|
|
5130
|
+
leadLabel?: string;
|
|
5131
|
+
showClearButton?: boolean;
|
|
5132
|
+
clearLabel?: string;
|
|
5133
|
+
searchField?: string;
|
|
5134
|
+
}
|
|
5135
|
+
declare class PraxisScopeBarComponent implements OnInit {
|
|
5136
|
+
private readonly eventBus;
|
|
5137
|
+
private readonly i18n;
|
|
5138
|
+
private readonly destroyRef;
|
|
5139
|
+
protected scopeNavigationLabel(): string;
|
|
5140
|
+
chipsTrack?: ElementRef<HTMLElement>;
|
|
5141
|
+
private readonly itemsSignal;
|
|
5142
|
+
set items(val: PraxisScopeBarItem[] | undefined);
|
|
5143
|
+
get items(): PraxisScopeBarItem[] | undefined;
|
|
5144
|
+
set activeId(val: string | undefined);
|
|
5145
|
+
get activeId(): string | undefined;
|
|
5146
|
+
readonly activeIdChange: EventEmitter<string>;
|
|
5147
|
+
showOmnibox: boolean;
|
|
5148
|
+
omniboxPlaceholder: string;
|
|
5149
|
+
set omniboxValue(val: string | undefined);
|
|
5150
|
+
get omniboxValue(): string | undefined;
|
|
5151
|
+
readonly omniboxValueChange: EventEmitter<string>;
|
|
5152
|
+
omniboxDebounceMs: number;
|
|
5153
|
+
leadIcon: string;
|
|
5154
|
+
leadLabel?: string;
|
|
5155
|
+
showClearButton: boolean;
|
|
5156
|
+
clearLabel: string;
|
|
5157
|
+
private readonly targetSignal;
|
|
5158
|
+
set target(val: any);
|
|
5159
|
+
get target(): any;
|
|
5160
|
+
targetWidgetId?: string;
|
|
5161
|
+
scopeBarId: string;
|
|
5162
|
+
searchField: string;
|
|
5163
|
+
readonly scopeChange: EventEmitter<PraxisScopeBarItem>;
|
|
5164
|
+
readonly searchChange: EventEmitter<string>;
|
|
5165
|
+
readonly filterCriteriaChange: EventEmitter<Record<string, unknown>>;
|
|
5166
|
+
readonly clear: EventEmitter<void>;
|
|
5167
|
+
private readonly searchSubject$;
|
|
5168
|
+
readonly currentActiveId: i0.WritableSignal<string | null>;
|
|
5169
|
+
readonly currentSearchText: i0.WritableSignal<string>;
|
|
5170
|
+
readonly effectiveItems: i0.Signal<PraxisScopeBarItem[]>;
|
|
5171
|
+
ngOnInit(): void;
|
|
5172
|
+
isItemActive(item: PraxisScopeBarItem): boolean;
|
|
5173
|
+
selectScope(item: PraxisScopeBarItem): void;
|
|
5174
|
+
onSearchInput(event: Event): void;
|
|
5175
|
+
clearSearch(): void;
|
|
5176
|
+
resetFilters(): void;
|
|
5177
|
+
canClear(): boolean;
|
|
5178
|
+
onTrackKeydown(event: KeyboardEvent): void;
|
|
5179
|
+
private dispatchFilters;
|
|
5180
|
+
private applyCriteriaToTarget;
|
|
5181
|
+
private discoverItemsFromTarget;
|
|
5182
|
+
private normalizeFilter;
|
|
5183
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisScopeBarComponent, never>;
|
|
5184
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisScopeBarComponent, "praxis-scope-bar", never, { "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; }; "target": { "alias": "target"; "required": false; }; "targetWidgetId": { "alias": "targetWidgetId"; "required": false; }; "scopeBarId": { "alias": "scopeBarId"; "required": false; }; "searchField": { "alias": "searchField"; "required": false; }; }, { "activeIdChange": "activeIdChange"; "omniboxValueChange": "omniboxValueChange"; "scopeChange": "scopeChange"; "searchChange": "searchChange"; "filterCriteriaChange": "filterCriteriaChange"; "clear": "clear"; }, never, never, true, never>;
|
|
5185
|
+
static ngAcceptInputType_showOmnibox: unknown;
|
|
5186
|
+
static ngAcceptInputType_omniboxDebounceMs: unknown;
|
|
5187
|
+
static ngAcceptInputType_showClearButton: unknown;
|
|
5188
|
+
}
|
|
5189
|
+
|
|
4649
5190
|
declare class DataFormatterComponent implements OnInit, OnChanges {
|
|
4650
5191
|
private cdr;
|
|
4651
5192
|
private formattingService;
|
|
@@ -4805,11 +5346,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4805
5346
|
pageSize: number;
|
|
4806
5347
|
pageSizeOptionsText: string;
|
|
4807
5348
|
showFirstLastButtons: boolean;
|
|
4808
|
-
paginationStrategy: 'client' | 'server';
|
|
5349
|
+
paginationStrategy: 'client' | 'server' | undefined;
|
|
4809
5350
|
paginationPosition: 'top' | 'bottom' | 'both';
|
|
4810
5351
|
paginationStyle: 'default' | 'simple' | 'advanced' | 'compact';
|
|
4811
5352
|
sortingEnabled: boolean;
|
|
4812
|
-
sortingStrategy: 'client' | 'server';
|
|
5353
|
+
sortingStrategy: 'client' | 'server' | undefined;
|
|
4813
5354
|
allowClearSort: boolean;
|
|
4814
5355
|
defaultSortField: string;
|
|
4815
5356
|
defaultSortDirection: 'asc' | 'desc';
|
|
@@ -4837,11 +5378,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
4837
5378
|
setPaginationPageSize(value: number | string): void;
|
|
4838
5379
|
setPaginationPageSizeOptions(value: string): void;
|
|
4839
5380
|
setPaginationShowFirstLastButtons(value: boolean): void;
|
|
4840
|
-
setPaginationStrategy(value: 'client' | 'server'): void;
|
|
5381
|
+
setPaginationStrategy(value: 'client' | 'server' | undefined): void;
|
|
4841
5382
|
setPaginationPosition(value: 'top' | 'bottom' | 'both'): void;
|
|
4842
5383
|
setPaginationStyle(value: 'default' | 'simple' | 'advanced' | 'compact'): void;
|
|
4843
5384
|
setSortingEnabled(value: boolean): void;
|
|
4844
|
-
setSortingStrategy(value: 'client' | 'server'): void;
|
|
5385
|
+
setSortingStrategy(value: 'client' | 'server' | undefined): void;
|
|
4845
5386
|
setSortingAllowClear(value: boolean): void;
|
|
4846
5387
|
setSortingDefaultField(value: string): void;
|
|
4847
5388
|
setSortingDefaultDirection(value: 'asc' | 'desc'): void;
|
|
@@ -5465,5 +6006,147 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
|
|
|
5465
6006
|
declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
|
|
5466
6007
|
declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
|
|
5467
6008
|
|
|
5468
|
-
|
|
5469
|
-
|
|
6009
|
+
declare function isAnalyticalDrawerSchema(schema: unknown): schema is PraxisAnalyticalDrawerSchema;
|
|
6010
|
+
declare function interpolateRelationEndpoint(endpoint: string, row: Record<string, unknown> | null | undefined): {
|
|
6011
|
+
url: string;
|
|
6012
|
+
hasMissingTokens: boolean;
|
|
6013
|
+
};
|
|
6014
|
+
declare class PraxisAnalyticalDrawerComponent implements OnInit, OnChanges, OnDestroy {
|
|
6015
|
+
private _isOpen;
|
|
6016
|
+
private previousActiveElement;
|
|
6017
|
+
handleDocumentEscape(event?: Event): void;
|
|
6018
|
+
set isOpen(value: boolean);
|
|
6019
|
+
get isOpen(): boolean;
|
|
6020
|
+
private _resourcePath?;
|
|
6021
|
+
set resourcePath(value: string | undefined);
|
|
6022
|
+
get resourcePath(): string | undefined;
|
|
6023
|
+
private _drawerConfig;
|
|
6024
|
+
set drawerConfig(value: TableDrawerConfig | null);
|
|
6025
|
+
get drawerConfig(): TableDrawerConfig | null;
|
|
6026
|
+
private _row;
|
|
6027
|
+
set row(value: any | null);
|
|
6028
|
+
get row(): any | null;
|
|
6029
|
+
private _relations;
|
|
6030
|
+
set relations(value: Record<string, unknown>);
|
|
6031
|
+
get relations(): Record<string, unknown>;
|
|
6032
|
+
loadingRelations: boolean;
|
|
6033
|
+
closeDrawer: EventEmitter<void>;
|
|
6034
|
+
tabChange: EventEmitter<string>;
|
|
6035
|
+
relationFetch: EventEmitter<{
|
|
6036
|
+
key: string;
|
|
6037
|
+
endpoint: string;
|
|
6038
|
+
}>;
|
|
6039
|
+
protected readonly drawerConfigSignal: i0.WritableSignal<TableDrawerConfig | null>;
|
|
6040
|
+
protected readonly rowSignal: i0.WritableSignal<any>;
|
|
6041
|
+
protected readonly relationsSignal: i0.WritableSignal<Record<string, unknown>>;
|
|
6042
|
+
protected readonly activeTabId: i0.WritableSignal<string>;
|
|
6043
|
+
protected readonly customRelations: i0.WritableSignal<Record<string, unknown>>;
|
|
6044
|
+
protected readonly isFetchingRelations: i0.WritableSignal<boolean>;
|
|
6045
|
+
protected readonly resolvedRemoteConfig: i0.WritableSignal<TableDrawerConfig | null>;
|
|
6046
|
+
protected readonly isResolvingSchema: i0.WritableSignal<boolean>;
|
|
6047
|
+
private readonly evaluator;
|
|
6048
|
+
private readonly http;
|
|
6049
|
+
private readonly injector;
|
|
6050
|
+
private readonly drawerRegistry;
|
|
6051
|
+
private readonly apiUrl;
|
|
6052
|
+
private readonly runtimeContext;
|
|
6053
|
+
private readonly sanitizer;
|
|
6054
|
+
private readonly formattingService;
|
|
6055
|
+
private relationSubs;
|
|
6056
|
+
private schemaSub?;
|
|
6057
|
+
private contextSub?;
|
|
6058
|
+
private static readonly relationCaches;
|
|
6059
|
+
private readonly relationCache;
|
|
6060
|
+
private relationEpoch;
|
|
6061
|
+
constructor();
|
|
6062
|
+
private lastFetchedKey;
|
|
6063
|
+
private lastResolvingKey;
|
|
6064
|
+
private schemaResolutionEpoch;
|
|
6065
|
+
private destroyed;
|
|
6066
|
+
static clearCache(): void;
|
|
6067
|
+
private getContextScopePrefix;
|
|
6068
|
+
private resolveUrl;
|
|
6069
|
+
ngOnInit(): void;
|
|
6070
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
6071
|
+
ngOnDestroy(): void;
|
|
6072
|
+
getEffectiveDrawerConfig(): TableDrawerConfig | null;
|
|
6073
|
+
private mergeTabs;
|
|
6074
|
+
private resolveRemoteDrawerMetadata;
|
|
6075
|
+
protected onClose(): void;
|
|
6076
|
+
protected onBackdropClick(event: MouseEvent): void;
|
|
6077
|
+
protected selectTab(tabId: string): void;
|
|
6078
|
+
private getAnalyticalSchema;
|
|
6079
|
+
protected resolvedTabs: i0.Signal<PraxisAnalyticalDrawerTab[]>;
|
|
6080
|
+
private generateAutoOverviewProperties;
|
|
6081
|
+
private formatPropertyLabel;
|
|
6082
|
+
protected resolvedTitle: i0.Signal<string>;
|
|
6083
|
+
protected resolvedSubtitle: i0.Signal<string>;
|
|
6084
|
+
protected resolvedClassificationPill: i0.Signal<string>;
|
|
6085
|
+
protected resolvedWidth: i0.Signal<string>;
|
|
6086
|
+
protected getDrawerIcon(): string;
|
|
6087
|
+
protected getEvaluationContext(): Record<string, unknown>;
|
|
6088
|
+
protected isCardGridContent(content: unknown): boolean;
|
|
6089
|
+
protected asCardGrid(content: unknown): {
|
|
6090
|
+
columns?: number;
|
|
6091
|
+
cards?: any[];
|
|
6092
|
+
};
|
|
6093
|
+
protected getGridColumnsStyle(columns?: number): string;
|
|
6094
|
+
protected isRichContentDocument(content: unknown): boolean;
|
|
6095
|
+
protected asRichContentDocument(content: unknown): RichContentDocument;
|
|
6096
|
+
protected isPropertyGrid(content: unknown): boolean;
|
|
6097
|
+
protected asPropertyGrid(content: unknown): any[];
|
|
6098
|
+
protected isArray(val: unknown): boolean;
|
|
6099
|
+
protected evaluateAndFormatMetric(item: any): string;
|
|
6100
|
+
protected evaluatePropertyValue(item: any): string;
|
|
6101
|
+
protected renderMicroViz(viz: PraxisPresentationVisualizationConfig | undefined, item: any): SafeHtml;
|
|
6102
|
+
private syncActiveTab;
|
|
6103
|
+
private fetchConfiguredRelations;
|
|
6104
|
+
private invalidateRelations;
|
|
6105
|
+
private cancelRelationRequests;
|
|
6106
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAnalyticalDrawerComponent, never>;
|
|
6107
|
+
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>;
|
|
6108
|
+
}
|
|
6109
|
+
|
|
6110
|
+
type AnalyticalDrawerSchemaOrConfig = PraxisAnalyticalDrawerSchema | TableDrawerConfig;
|
|
6111
|
+
declare const PRAXIS_ANALYTICAL_DRAWER_SCHEMAS: InjectionToken<Record<string, AnalyticalDrawerSchemaOrConfig> | Record<string, AnalyticalDrawerSchemaOrConfig>[]>;
|
|
6112
|
+
/**
|
|
6113
|
+
* Registra esquemas de gavetas analíticas por coordenada de recurso (ex.: 'operations/incidentes').
|
|
6114
|
+
* Pode ser chamado no app.config.ts ou em providers de rotas/módulos.
|
|
6115
|
+
*/
|
|
6116
|
+
declare function providePraxisAnalyticalDrawerSchemas(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): Provider;
|
|
6117
|
+
declare class AnalyticalDrawerRegistryService {
|
|
6118
|
+
private readonly registry;
|
|
6119
|
+
constructor();
|
|
6120
|
+
register(resourcePath: string, schema: AnalyticalDrawerSchemaOrConfig): void;
|
|
6121
|
+
registerAll(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): void;
|
|
6122
|
+
get(resourcePath: string): AnalyticalDrawerSchemaOrConfig | undefined;
|
|
6123
|
+
has(resourcePath: string): boolean;
|
|
6124
|
+
clear(): void;
|
|
6125
|
+
normalizeKey(path: string | undefined | null): string;
|
|
6126
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticalDrawerRegistryService, never>;
|
|
6127
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticalDrawerRegistryService>;
|
|
6128
|
+
}
|
|
6129
|
+
|
|
6130
|
+
interface ComputedFieldsEvaluationOptions {
|
|
6131
|
+
evaluator?: SafeExpressionEvaluator;
|
|
6132
|
+
formattingService?: {
|
|
6133
|
+
formatValue: (value: any, columnType: any, formatString: string) => any;
|
|
6134
|
+
} | null;
|
|
6135
|
+
}
|
|
6136
|
+
/**
|
|
6137
|
+
* Normaliza a definição de um campo computado (aceita string simples ou objeto estruturado).
|
|
6138
|
+
*/
|
|
6139
|
+
declare function normalizeComputedFieldDefinition(raw: PraxisComputedFieldDefinition | string): PraxisComputedFieldDefinition;
|
|
6140
|
+
/**
|
|
6141
|
+
* Formata um valor calculado com suporte a moedas, porcentagens, números e formato compacto corporativo (ex: R$ 3,1M).
|
|
6142
|
+
*/
|
|
6143
|
+
declare function formatComputedFieldValue(value: unknown, format?: string, type?: string, formattingService?: ComputedFieldsEvaluationOptions['formattingService']): unknown;
|
|
6144
|
+
/**
|
|
6145
|
+
* Enriquece uma coleção de linhas com as propriedades calculadas declaradas em `computedFieldsConfig`.
|
|
6146
|
+
* Executado durante o pipeline de ingestão de dados, tornando as propriedades computadas
|
|
6147
|
+
* nativamente visíveis para colunas, sorting, filtros, gavetas analíticas e exportação.
|
|
6148
|
+
*/
|
|
6149
|
+
declare function applyComputedFieldsToRows<T extends Record<string, any> = Record<string, any>>(rows: T[], computedFieldsConfig?: PraxisComputedFieldsConfig | null, options?: ComputedFieldsEvaluationOptions): T[];
|
|
6150
|
+
|
|
6151
|
+
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, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, analyticsComparisonMetricField, applyComputedFieldsToRows, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, formatComputedFieldValue, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, interpolateRelationEndpoint, isAnalyticalDrawerSchema, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeComputedFieldDefinition, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisAnalyticalDrawerSchemas, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
|
|
6152
|
+
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, 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 };
|