@praxisui/table 10.0.0-rc.25 → 10.0.0-rc.27
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 +15 -0
- package/ai/component-registry.json +19 -2
- package/fesm2022/praxisui-table-authoring.mjs +33 -1
- package/fesm2022/{praxisui-table-praxisui-table-B6XoXX5x.mjs → praxisui-table-praxisui-table-CosVmN5P.mjs} +2822 -229
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-fgmem5JL.mjs → praxisui-table-table-agentic-authoring-turn-flow-CtHAHd7Y.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-ib4h1Xy5.mjs → praxisui-table-table-ai.adapter-DYY3eUYu.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +10 -5
- package/types/praxisui-table.d.ts +149 -13
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable, firstValueFrom } from 'rxjs';
|
|
2
2
|
import { withAuthoringScopePolicy } from '@praxisui/ai';
|
|
3
|
-
import { ar as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-
|
|
3
|
+
import { ar as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-CosVmN5P.mjs';
|
|
4
4
|
|
|
5
5
|
class TableAgenticAuthoringTurnFlow {
|
|
6
6
|
adapter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { firstValueFrom } from 'rxjs';
|
|
2
2
|
import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
|
|
3
3
|
import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
|
|
4
|
-
import { W as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, p as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, a6 as coerceTableComponentEditPlans, a8 as compileTableComponentEditPlans, Y as TASK_PRESETS, ae as getTableComponentEditPlanCapabilities, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, V as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { W as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, p as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, a6 as coerceTableComponentEditPlans, a8 as compileTableComponentEditPlans, Y as TASK_PRESETS, ae as getTableComponentEditPlanCapabilities, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, V as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-CosVmN5P.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticalDrawerRegistryService, b as AnalyticsTableConfigAdapterService, c as AnalyticsTableContractService, d as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, e as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, f as ColumnsConfigEditorComponent, D as DATE_PRESETS, g as DataFormatterComponent, h as DataFormattingService, F as FORMULA_TEMPLATES, i as FilterConfigService, j as FilterSettingsComponent, k as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, l as PRAXIS_ANALYTICAL_DRAWER_SCHEMAS, m as PRAXIS_FILTER_AUTHORING_MANIFEST, n as PRAXIS_FILTER_COMPONENT_METADATA, o as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, p as PRAXIS_TABLE_AUTHORING_MANIFEST, q as PRAXIS_TABLE_COMPONENT_METADATA, r as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, s as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, t as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, u as PraxisAnalyticalDrawerComponent, v as PraxisFilter, w as PraxisFilterOutletComponent, x as PraxisFilterOutletDirective, y as PraxisFilterWidgetConfigEditor, z as PraxisScopeBarComponent, E as PraxisTable, G as PraxisTableConfigEditor, H as PraxisTableInlineAuthoringEditorComponent, I as PraxisTableToolbar, K as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, L as TABLE_COMPONENT_AI_CAPABILITIES, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, V as TABLE_COMPONENT_EDIT_PLAN_KIND, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Y as TASK_PRESETS, Z as TableDefaultsProvider, _ as TableRulesEditorComponent, $ as ToolbarActionsEditorComponent, a0 as ValueMappingEditorComponent, a1 as VisualFormulaBuilderComponent, a2 as analyticsComparisonMetricField, a3 as applyComputedFieldsToRows, a4 as buildTableApplyPlan, a5 as coerceTableComponentEditPlan, a6 as coerceTableComponentEditPlans, a7 as compileTableComponentEditPlan, a8 as compileTableComponentEditPlans, a9 as createTableAuthoringDocument, aa as formatComputedFieldValue, ab as getActionId, ac as getEnum, ad as getTableCapabilities, ae as getTableComponentEditPlanCapabilities, af as interpolateRelationEndpoint, ag as isAnalyticalDrawerSchema, ah as isTableRendererSupportedByRichContentP0, ai as mapTableRendererToRichContentP0, aj as normalizeComputedFieldDefinition, ak as normalizeTableAuthoringDocument, al as parseLegacyOrTableDocument, am as providePraxisAnalyticalDrawerSchemas, an as providePraxisFilterMetadata, ao as providePraxisTableMetadata, ap as providePraxisTableToolbarAppearance, aq as serializeTableAuthoringDocument, as as toCanonicalTableConfig, at as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticalDrawerRegistryService, b as AnalyticsTableConfigAdapterService, c as AnalyticsTableContractService, d as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, e as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, f as ColumnsConfigEditorComponent, D as DATE_PRESETS, g as DataFormatterComponent, h as DataFormattingService, F as FORMULA_TEMPLATES, i as FilterConfigService, j as FilterSettingsComponent, k as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, l as PRAXIS_ANALYTICAL_DRAWER_SCHEMAS, m as PRAXIS_FILTER_AUTHORING_MANIFEST, n as PRAXIS_FILTER_COMPONENT_METADATA, o as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, p as PRAXIS_TABLE_AUTHORING_MANIFEST, q as PRAXIS_TABLE_COMPONENT_METADATA, r as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, s as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, t as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, u as PraxisAnalyticalDrawerComponent, v as PraxisFilter, w as PraxisFilterOutletComponent, x as PraxisFilterOutletDirective, y as PraxisFilterWidgetConfigEditor, z as PraxisScopeBarComponent, E as PraxisTable, G as PraxisTableConfigEditor, H as PraxisTableInlineAuthoringEditorComponent, I as PraxisTableToolbar, K as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, L as TABLE_COMPONENT_AI_CAPABILITIES, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, V as TABLE_COMPONENT_EDIT_PLAN_KIND, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Y as TASK_PRESETS, Z as TableDefaultsProvider, _ as TableRulesEditorComponent, $ as ToolbarActionsEditorComponent, a0 as ValueMappingEditorComponent, a1 as VisualFormulaBuilderComponent, a2 as analyticsComparisonMetricField, a3 as applyComputedFieldsToRows, a4 as buildTableApplyPlan, a5 as coerceTableComponentEditPlan, a6 as coerceTableComponentEditPlans, a7 as compileTableComponentEditPlan, a8 as compileTableComponentEditPlans, a9 as createTableAuthoringDocument, aa as formatComputedFieldValue, ab as getActionId, ac as getEnum, ad as getTableCapabilities, ae as getTableComponentEditPlanCapabilities, af as interpolateRelationEndpoint, ag as isAnalyticalDrawerSchema, ah as isTableRendererSupportedByRichContentP0, ai as mapTableRendererToRichContentP0, aj as normalizeComputedFieldDefinition, ak as normalizeTableAuthoringDocument, al as parseLegacyOrTableDocument, am as providePraxisAnalyticalDrawerSchemas, an as providePraxisFilterMetadata, ao as providePraxisTableMetadata, ap as providePraxisTableToolbarAppearance, aq as serializeTableAuthoringDocument, as as toCanonicalTableConfig, at as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-CosVmN5P.mjs';
|
|
2
2
|
export { createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "10.0.0-rc.
|
|
3
|
+
"version": "10.0.0-rc.27",
|
|
4
4
|
"description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
8
|
"@angular/platform-browser": "^21.0.0",
|
|
9
|
-
"@praxisui/ai": "^10.0.0-rc.
|
|
10
|
-
"@praxisui/core": "^10.0.0-rc.
|
|
11
|
-
"@praxisui/dynamic-fields": "^10.0.0-rc.
|
|
12
|
-
"@praxisui/dynamic-form": "^10.0.0-rc.
|
|
13
|
-
"@praxisui/metadata-editor": "^10.0.0-rc.
|
|
14
|
-
"@praxisui/rich-content": "^10.0.0-rc.
|
|
15
|
-
"@praxisui/settings-panel": "^10.0.0-rc.
|
|
16
|
-
"@praxisui/table-rule-builder": "^10.0.0-rc.
|
|
9
|
+
"@praxisui/ai": "^10.0.0-rc.27",
|
|
10
|
+
"@praxisui/core": "^10.0.0-rc.27",
|
|
11
|
+
"@praxisui/dynamic-fields": "^10.0.0-rc.27",
|
|
12
|
+
"@praxisui/dynamic-form": "^10.0.0-rc.27",
|
|
13
|
+
"@praxisui/metadata-editor": "^10.0.0-rc.27",
|
|
14
|
+
"@praxisui/rich-content": "^10.0.0-rc.27",
|
|
15
|
+
"@praxisui/settings-panel": "^10.0.0-rc.27",
|
|
16
|
+
"@praxisui/table-rule-builder": "^10.0.0-rc.27",
|
|
17
17
|
"@angular/cdk": "^21.0.0",
|
|
18
18
|
"@angular/forms": "^21.0.0",
|
|
19
19
|
"@angular/material": "^21.0.0",
|
|
20
20
|
"@angular/router": "^21.0.0",
|
|
21
|
-
"@praxisui/dialog": "^10.0.0-rc.
|
|
21
|
+
"@praxisui/dialog": "^10.0.0-rc.27",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -109,11 +109,16 @@ Este documento e a referencia canonica da API JSON de praxis-table.
|
|
|
109
109
|
> [!WARNING]
|
|
110
110
|
> **Segurança Corporativa em Cenários Corporativos**: A visibilidade de colunas via dropdown da toolbar é um recurso estritamente visual (layout de apresentação do lado do cliente). A ocultação de colunas **não** protege o dado sensível da transmissão de rede nem de inspeção técnica. Se determinados campos (ex: salários, senhas ou tokens) forem confidenciais para o nível de permissão do usuário atual, a restrição de dados deve ser realizada obrigatoriamente no lado do servidor (através da filtragem de propriedades nas APIs de CRUD e consulta), e nunca por meio de ocultação puramente visual na tabela.
|
|
111
111
|
|
|
112
|
-
## Quick filters and density
|
|
113
|
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
112
|
+
## Quick filters, unified filter region, and density
|
|
113
|
+
|
|
114
|
+
- **Região única de filtros e dono explícito da consulta**: Em telas de coleção com `praxis-table`, a própria tabela é a dona canônica dos filtros editáveis pelo usuário. Quando um campo (ex.: `ativo` / `status`) é governado por `config.toolbar.filters.quickFilters[]`, evite duplicá-lo em `alwaysVisibleFields` (mantenha-o apenas nos escopos rápidos e opcionalmente na gaveta avançada `selectedFieldIds`).
|
|
115
|
+
- `config.toolbar.filters.quickFilters[]` materializa um seletor de escopo governado na toolbar. Cada item declara `id`, `label`, `filter` e `icon` opcional.
|
|
116
|
+
- Um item com `filter: {}` representa o escopo **"Todos"** (sem restrição editável): acioná-lo limpa critérios editáveis anteriores em `filterCriteria` e em `queryContext.filters` não estruturais sem exigir reload da página.
|
|
117
|
+
- Critérios booleanos explícitos `false` (ex.: `{ ativo: false }`) são preservados integralmente na serialização remota e na avaliação local.
|
|
118
|
+
- **Reconciliação de atalhos externos (`queryContext.filters`) vs. filtros estruturais (`queryContext.meta`)**:
|
|
119
|
+
- Quando cards de KPI ou widgets externos aplicam um filtro editável via `queryContext.filters` (ex.: `{ ativo: true }`), a tabela sincroniza `advancedFilterValue`, `activeCrossFilters` e `activeQuickFilterId` correspondente.
|
|
120
|
+
- Se o operador alterar o escopo rápido (`onQuickFilterChange`), submeter/limpar os filtros da tabela (`onAdvancedFilterSubmit` / `onAdvancedFilterClear`) ou remover chips (`onClearCrossFilter` / `onClearAllCrossFilters`), a tabela reconcilia as chaves editáveis em `queryContext.filters` e emite `queryContextChange` e `queryContextClear`, impedindo que `queryContext.filters` órfãos continuem sobrescrevendo `filterCriteria`.
|
|
121
|
+
- Filtros estruturais de contexto (`queryContext.meta.relatedResource === true` + `parentFilterField`, `queryContext.meta.structuralFields`, `queryContext.meta.immutableFields` ou `queryContext.meta.structural === true`) permanecem protegidos e nunca são limpos por ações de filtro do usuário.
|
|
117
122
|
- A composição adaptativa é responsabilidade do runtime: identidade, escopo, consulta e comandos se reorganizam pela largura do container da tabela. Dentro da consulta, campos editáveis formam a região de critérios; tags/atalhos salvos e comandos de gerenciamento formam um único cluster auxiliar. Em largura intermediária, os critérios e esse cluster completo compartilham o mesmo fluxo de quebra para aproveitar a faixa final sem criar uma linha órfã; em largura estreita, o cluster migra inteiro para a faixa seguinte. O host não precisa declarar coordenadas, breakpoints ou ordem visual adicional.
|
|
118
123
|
- Em superfícies de até `640px`, os campos de consulta absorvem o espaço residual da própria linha até o limite do arquétipo; em `320px`, entradas que não cabem em pares ocupam a largura útil integral. Presets e comandos curtos preservam largura intrínseca. Grupos binários de filtros rápidos equilibram as duas opções em até `540px`, enquanto grupos maiores mantêm largura por conteúdo e overflow acessível.
|
|
119
124
|
- `advancedFilters.settings.alwaysVisibleFields` deve conter apenas critérios frequentes. Atalhos persistidos e comandos de gerenciamento não devem ser simulados como campos sempre visíveis nem reposicionados por seletores CSS internos do host.
|
|
@@ -93,7 +93,7 @@ interface PraxisTableQueryContextClearEvent {
|
|
|
93
93
|
remainingFilters?: Record<string, unknown>;
|
|
94
94
|
remainingFilterCount?: number;
|
|
95
95
|
tableId?: string;
|
|
96
|
-
source?: 'toolbar-chip';
|
|
96
|
+
source?: 'toolbar-chip' | 'quick-filter' | 'advanced-filter';
|
|
97
97
|
}
|
|
98
98
|
declare const PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS: Record<string, TableToolbarAppearanceConfig>;
|
|
99
99
|
declare const PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE: InjectionToken<TableToolbarAppearanceConfig>;
|
|
@@ -479,6 +479,8 @@ type FilterConfig = {
|
|
|
479
479
|
/** User-selected extra field ids to show before pinned always-visible */
|
|
480
480
|
selectedFieldIds?: string[];
|
|
481
481
|
showAdvanced?: boolean;
|
|
482
|
+
showAddButton?: boolean;
|
|
483
|
+
showFilterSettings?: boolean;
|
|
482
484
|
mode?: 'filter';
|
|
483
485
|
changeDebounceMs?: number;
|
|
484
486
|
allowSaveTags?: boolean;
|
|
@@ -1507,6 +1509,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1507
1509
|
selection: SelectionModel<any>;
|
|
1508
1510
|
dataSubject: BehaviorSubject<any[]>;
|
|
1509
1511
|
subscriptions: Subscription[];
|
|
1512
|
+
private surfaceOutcomeOwnerDestroyed;
|
|
1510
1513
|
showToolbar: boolean;
|
|
1511
1514
|
hasInitialized: boolean;
|
|
1512
1515
|
pageIndex: number;
|
|
@@ -1733,6 +1736,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1733
1736
|
getAdvancedFilterPersistenceKey(): string;
|
|
1734
1737
|
getAdvancedFilterFormId(): string;
|
|
1735
1738
|
getAdvancedFilterOpenMode(): 'modal' | 'drawer';
|
|
1739
|
+
shouldShowAdvancedFilterAddButton(): boolean;
|
|
1740
|
+
shouldShowAdvancedFilterSettings(): boolean;
|
|
1736
1741
|
getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
|
|
1737
1742
|
getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
|
|
1738
1743
|
getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
|
|
@@ -1851,6 +1856,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1851
1856
|
private hasDeclaredAppearanceSection;
|
|
1852
1857
|
private shouldApplyAppearanceDefaultValue;
|
|
1853
1858
|
private mergePersistedTableConfigWithInput;
|
|
1859
|
+
private reconcileTableConfigInputChange;
|
|
1854
1860
|
private reconcileHostDeclaredTableContract;
|
|
1855
1861
|
private reconcileHostDeclaredColumns;
|
|
1856
1862
|
private reconcileHostDeclaredRowActions;
|
|
@@ -1977,6 +1983,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1977
1983
|
private hasActiveEmptyStateFilters;
|
|
1978
1984
|
private hasMeaningfulFilterCriteria;
|
|
1979
1985
|
private hasMeaningfulFilterValue;
|
|
1986
|
+
isStructuralQueryContextField(field: string): boolean;
|
|
1980
1987
|
computeActiveCrossFilters(): PraxisTableCrossFilterItem[];
|
|
1981
1988
|
onClearCrossFilter(item: PraxisTableCrossFilterItem): void;
|
|
1982
1989
|
onClearAllCrossFilters(): void;
|
|
@@ -2271,6 +2278,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2271
2278
|
private emitEventWithActionFeedback;
|
|
2272
2279
|
private executeConfiguredGlobalAction;
|
|
2273
2280
|
private withTableRuntimeContext;
|
|
2281
|
+
private resolveTableSurfaceRuntime;
|
|
2274
2282
|
private executeSurfaceOpen;
|
|
2275
2283
|
private resolveConfiguredGlobalActionRef;
|
|
2276
2284
|
private resolveActionGlobalActionRef;
|
|
@@ -2296,6 +2304,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2296
2304
|
private unwrapCollectionWorkflowResult;
|
|
2297
2305
|
private showCollectionWorkflowContractError;
|
|
2298
2306
|
private tryHandleCollectionCreateToolbarAction;
|
|
2307
|
+
private bindDiscoveredSurfaceOutcome;
|
|
2308
|
+
private applySurfaceActionRefresh;
|
|
2299
2309
|
private resolveBulkExportFormat;
|
|
2300
2310
|
private isBulkExportActionKey;
|
|
2301
2311
|
private normalizeExportFormat;
|
|
@@ -2336,6 +2346,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2336
2346
|
filter: Record<string, unknown>;
|
|
2337
2347
|
active: boolean;
|
|
2338
2348
|
}): void;
|
|
2349
|
+
getConfiguredQuickFilters(): Array<{
|
|
2350
|
+
id: string;
|
|
2351
|
+
label: string;
|
|
2352
|
+
filter: Record<string, unknown>;
|
|
2353
|
+
icon?: string;
|
|
2354
|
+
}>;
|
|
2355
|
+
getQuickFilterManagedFields(): string[];
|
|
2356
|
+
private parseQuickFilterDefinition;
|
|
2357
|
+
getEffectiveEditableFilterCriteria(): Record<string, any>;
|
|
2358
|
+
private reconcileEditableQueryContextFilters;
|
|
2359
|
+
private syncQuickFilterStateFromEffectiveCriteria;
|
|
2339
2360
|
private clearQuickFilterRuntimeState;
|
|
2340
2361
|
private hasEquivalentFilterCriteria;
|
|
2341
2362
|
applyAdvancedFilterCriteria(criteria: Record<string, any> | null | undefined, reason?: string): void;
|
|
@@ -2897,7 +2918,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2897
2918
|
private emitMetadataChange;
|
|
2898
2919
|
private emitSchemaStatus;
|
|
2899
2920
|
getRowId(row: any): any;
|
|
2921
|
+
private preserveSelectionOnNextDataLoad;
|
|
2900
2922
|
private reconcileSelectionAfterDataChange;
|
|
2923
|
+
private areSelectedRowSnapshotsEquivalent;
|
|
2924
|
+
private serializeSelectedRowSnapshot;
|
|
2901
2925
|
private getComparableRowIdentity;
|
|
2902
2926
|
getIdField(): string;
|
|
2903
2927
|
private getSchemaIdFieldOverride;
|
|
@@ -2933,6 +2957,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2933
2957
|
getRowSelectionAriaLabel(row: any, index?: number): string;
|
|
2934
2958
|
getMasterSelectionAriaLabel(): string;
|
|
2935
2959
|
private selectRowFromUserInteraction;
|
|
2960
|
+
clearSelection(emitEvent?: boolean): void;
|
|
2936
2961
|
private emitSelectionChange;
|
|
2937
2962
|
private publishSelectionStatus;
|
|
2938
2963
|
private getAccessibleRowLabel;
|
|
@@ -3283,6 +3308,17 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3283
3308
|
getJsonLogicSummary(value: JsonLogicExpression | null | undefined): string;
|
|
3284
3309
|
private parseJsonLogicText;
|
|
3285
3310
|
setConditionalOverrideCondition(index: number, raw: string): void;
|
|
3311
|
+
readonly overrideConditionOperators: readonly ["===", "!=", ">", ">=", "<", "<=", "truthy", "falsy"];
|
|
3312
|
+
getOverrideConditionField(condition: any): string;
|
|
3313
|
+
getOverrideConditionOperator(condition: any): string;
|
|
3314
|
+
getOverrideConditionValue(condition: any): string;
|
|
3315
|
+
setOverrideGuidedCondition(index: number, patch: {
|
|
3316
|
+
field?: string;
|
|
3317
|
+
operator?: string;
|
|
3318
|
+
value?: string;
|
|
3319
|
+
}): void;
|
|
3320
|
+
private extractGuidedJsonLogicCondition;
|
|
3321
|
+
private coerceGuidedScalar;
|
|
3286
3322
|
getOverrideField(path: string): any;
|
|
3287
3323
|
setOverrideField(path: string, value: any): void;
|
|
3288
3324
|
setOverrideJsonLogicField(path: string, raw: string): void;
|
|
@@ -3291,7 +3327,10 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3291
3327
|
item: any;
|
|
3292
3328
|
index: number;
|
|
3293
3329
|
}>;
|
|
3330
|
+
addOverrideComposeItem(type: 'value' | 'badge' | 'icon' | 'chip'): void;
|
|
3294
3331
|
addOverrideComposeValueItem(): void;
|
|
3332
|
+
removeOverrideComposeItem(index: number): void;
|
|
3333
|
+
setOverrideComposeItemProp(index: number, path: string, value: any): void;
|
|
3295
3334
|
setOverrideComposeValueItemField(index: number, field: string): void;
|
|
3296
3335
|
setOverrideComposeValueItemEmphasis(index: number, emphasis: string): void;
|
|
3297
3336
|
getOverrideComposeLayoutProp(key: string): any;
|
|
@@ -3453,6 +3492,9 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3453
3492
|
private stripRowPrefixes;
|
|
3454
3493
|
private _coerceExpected;
|
|
3455
3494
|
private getNested;
|
|
3495
|
+
private evaluatePreviewOverrideCondition;
|
|
3496
|
+
getEffectivePreviewRenderer(row: any): any;
|
|
3497
|
+
getPreviewSampleRows(): any[];
|
|
3456
3498
|
getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'rating' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
3457
3499
|
getPreviewIconName(row: any): string | null;
|
|
3458
3500
|
getPreviewIconColor(row: any): string | null;
|
|
@@ -3464,14 +3506,15 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3464
3506
|
getPreviewImageShape(): 'square' | 'rounded' | 'circle' | undefined;
|
|
3465
3507
|
getPreviewImageFit(): 'cover' | 'contain' | undefined;
|
|
3466
3508
|
getPreviewBadgeText(row: any): string | null;
|
|
3467
|
-
getPreviewBadgeIcon(
|
|
3468
|
-
getPreviewBadgeClasses(
|
|
3509
|
+
getPreviewBadgeIcon(row: any): string | null;
|
|
3510
|
+
getPreviewBadgeClasses(row: any): string[];
|
|
3511
|
+
private buildBadgeClassesFromConfig;
|
|
3469
3512
|
getPreviewLinkText(row: any): string;
|
|
3470
3513
|
getPreviewLinkHref(row: any): string | null;
|
|
3471
3514
|
getPreviewButtonLabel(row: any): string;
|
|
3472
3515
|
getPreviewButtonIcon(): string | null;
|
|
3473
3516
|
getPreviewChipText(row: any): string | null;
|
|
3474
|
-
getPreviewChipClasses(): string[];
|
|
3517
|
+
getPreviewChipClasses(row?: any): string[];
|
|
3475
3518
|
getPreviewProgressValue(row: any): number;
|
|
3476
3519
|
getPreviewMicroVisualizationHtml(row: any): string;
|
|
3477
3520
|
getMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
@@ -3489,7 +3532,22 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3489
3532
|
getPreviewRatingOutlineColor(): string | undefined;
|
|
3490
3533
|
getPreviewRatingSize(): 'small' | 'medium' | 'large';
|
|
3491
3534
|
getPreviewRatingAriaLabel(): string | undefined;
|
|
3492
|
-
getComposePreviewItems(
|
|
3535
|
+
getComposePreviewItems(row: any): any[];
|
|
3536
|
+
getComposePreviewContainerStyle(row: any): Record<string, string>;
|
|
3537
|
+
getComposePreviewValueText(item: any, row: any): string;
|
|
3538
|
+
getComposePreviewValueClasses(item: any): string[];
|
|
3539
|
+
getComposePreviewBadgeText(item: any, row: any): string;
|
|
3540
|
+
getComposePreviewBadgeClasses(item: any): string[];
|
|
3541
|
+
getComposePreviewChipText(item: any, row: any): string;
|
|
3542
|
+
getComposePreviewChipClasses(item: any): string[];
|
|
3543
|
+
getComposePreviewLinkText(item: any, row: any): string;
|
|
3544
|
+
getComposePreviewLinkHref(item: any, row: any): string | null;
|
|
3545
|
+
getComposePreviewIconName(item: any, row: any): string | null;
|
|
3546
|
+
getComposePreviewIconColor(item: any, _row: any): string | null;
|
|
3547
|
+
getComposePreviewIconStyle(item: any, _row: any): Record<string, string> | null;
|
|
3548
|
+
getComposePreviewAvatarStyle(item: any): Record<string, string>;
|
|
3549
|
+
getComposePreviewAvatarInitials(item: any, row: any): string;
|
|
3550
|
+
getComposePreviewProgressValue(item: any, row: any): number;
|
|
3493
3551
|
getComposePreviewRatingValue(item: any, row: any): number;
|
|
3494
3552
|
getComposePreviewRatingMax(item: any): number;
|
|
3495
3553
|
getComposePreviewRatingColor(item: any): string | undefined;
|
|
@@ -3528,6 +3586,8 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3528
3586
|
getSelectedComposeItem(): any;
|
|
3529
3587
|
getSelectedComposeItemProp(path: string): any;
|
|
3530
3588
|
setSelectedComposeItemProp(path: string, value: any): void;
|
|
3589
|
+
getConsolidatedSecondaryColumn(item: any): ExtendedColumnDefinition | null;
|
|
3590
|
+
hideConsolidatedColumn(field: string): void;
|
|
3531
3591
|
private findRendererFieldByCandidates;
|
|
3532
3592
|
private normalizeFieldLookup;
|
|
3533
3593
|
getColumnKeyInputType(column: ColumnDefinition | null): 'text' | 'number' | 'boolean';
|
|
@@ -3905,6 +3965,8 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3905
3965
|
presentation: FormControl<FilterConfig['presentation']>;
|
|
3906
3966
|
alwaysVisibleFields: FormControl<string[]>;
|
|
3907
3967
|
showAdvanced: FormControl<boolean>;
|
|
3968
|
+
showAddButton: FormControl<boolean>;
|
|
3969
|
+
showFilterSettings: FormControl<boolean>;
|
|
3908
3970
|
mode: FormControl<'filter'>;
|
|
3909
3971
|
changeDebounceMs: FormControl<number>;
|
|
3910
3972
|
allowSaveTags: FormControl<boolean>;
|
|
@@ -4445,22 +4507,23 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4445
4507
|
readonly sourceModes: string[];
|
|
4446
4508
|
readonly resourceKinds: string[];
|
|
4447
4509
|
readonly resourcePathMethods: string[];
|
|
4510
|
+
readonly cardGridColumnOptions: Array<'auto' | 1 | 2 | 3 | 4>;
|
|
4511
|
+
readonly composeDirections: Array<'row' | 'column'>;
|
|
4512
|
+
readonly composeGaps: Array<'xs' | 'sm' | 'md' | 'lg'>;
|
|
4513
|
+
readonly semanticTones: Array<'' | 'neutral' | 'info' | 'primary' | 'success' | 'warning' | 'danger'>;
|
|
4514
|
+
readonly conditionOperators: Array<'===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy'>;
|
|
4448
4515
|
fallbackModes(): string[];
|
|
4449
|
-
sample:
|
|
4516
|
+
sample: 'A' | 'B' | 'C';
|
|
4450
4517
|
get previewContext(): {
|
|
4451
|
-
row:
|
|
4452
|
-
id: string;
|
|
4453
|
-
note: string;
|
|
4454
|
-
status: string;
|
|
4455
|
-
progress: number;
|
|
4456
|
-
};
|
|
4518
|
+
row: Record<string, unknown>;
|
|
4457
4519
|
};
|
|
4458
4520
|
/** Local presenter projection only; never used as an authoring/save source. */
|
|
4459
4521
|
previewNodes(): RichBlockNode[];
|
|
4460
4522
|
previewRichContentDocuments(): RichContentDocument[];
|
|
4461
4523
|
richContentEditorInputs(): PraxisRichContentEditorInputs | null;
|
|
4462
4524
|
applyRichContentEditor(): void;
|
|
4463
|
-
addPreset(preset: 'callout' | 'richCard'): void;
|
|
4525
|
+
addPreset(preset: 'callout' | 'richCard' | 'richDetailGrid'): void;
|
|
4526
|
+
effectiveNodeType(node?: Record<string, any> | undefined): string;
|
|
4464
4527
|
nodeLabel(node: Record<string, any>): string;
|
|
4465
4528
|
nodeIcon(node: Record<string, any>): string;
|
|
4466
4529
|
canMove(direction: -1 | 1): boolean;
|
|
@@ -4502,6 +4565,38 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
|
|
|
4502
4565
|
edit(field: string, value: string): void;
|
|
4503
4566
|
fields(): string[];
|
|
4504
4567
|
isAdvancedNode(): boolean;
|
|
4568
|
+
availableColumns(): Array<{
|
|
4569
|
+
field: string;
|
|
4570
|
+
label: string;
|
|
4571
|
+
}>;
|
|
4572
|
+
supportsFieldBinding(): boolean;
|
|
4573
|
+
boundColumnField(): string;
|
|
4574
|
+
bindColumnField(fieldName: string): void;
|
|
4575
|
+
cardGridColumnsValue(): 'auto' | 1 | 2 | 3 | 4;
|
|
4576
|
+
setCardGridColumns(value: 'auto' | 1 | 2 | 3 | 4): void;
|
|
4577
|
+
cardGridMinWidthValue(): number;
|
|
4578
|
+
setCardGridMinWidth(value: number | string): void;
|
|
4579
|
+
composeDirectionValue(): 'row' | 'column';
|
|
4580
|
+
setComposeDirection(direction: 'row' | 'column'): void;
|
|
4581
|
+
composeGapValue(): 'xs' | 'sm' | 'md' | 'lg';
|
|
4582
|
+
setComposeGap(gap: 'xs' | 'sm' | 'md' | 'lg'): void;
|
|
4583
|
+
supportsTone(): boolean;
|
|
4584
|
+
toneValue(): string;
|
|
4585
|
+
setTone(tone: string): void;
|
|
4586
|
+
supportsVisibleWhen(): boolean;
|
|
4587
|
+
visibleWhenMode(): 'always' | 'conditional' | 'custom';
|
|
4588
|
+
setVisibleWhenMode(mode: 'always' | 'conditional' | 'custom'): void;
|
|
4589
|
+
visibleWhenField(): string;
|
|
4590
|
+
visibleWhenOperator(): '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4591
|
+
visibleWhenValue(): string;
|
|
4592
|
+
setVisibleWhenRule(patch: {
|
|
4593
|
+
field?: string;
|
|
4594
|
+
operator?: '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
|
|
4595
|
+
value?: string;
|
|
4596
|
+
}): void;
|
|
4597
|
+
private parseConditionScalar;
|
|
4598
|
+
private parseGuidedVisibleWhen;
|
|
4599
|
+
private isPreviewNodeVisible;
|
|
4505
4600
|
private commitTree;
|
|
4506
4601
|
editJson(value: string): void;
|
|
4507
4602
|
discard(): void;
|
|
@@ -4607,6 +4702,46 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4607
4702
|
getColumnAuthoringMetas(): FieldMetadata[];
|
|
4608
4703
|
get filteredIdFieldOptions(): FieldMetadata[];
|
|
4609
4704
|
isUsingFilterDtoMetas(): boolean;
|
|
4705
|
+
get toolbarFiltersEnabled(): boolean;
|
|
4706
|
+
get toolbarShowQuickFilters(): boolean;
|
|
4707
|
+
get toolbarShowAdvancedButton(): boolean;
|
|
4708
|
+
get advancedFilterShowAddButton(): boolean;
|
|
4709
|
+
get advancedFilterShowFilterSettings(): boolean;
|
|
4710
|
+
get toolbarQuickFilters(): Array<{
|
|
4711
|
+
id: string;
|
|
4712
|
+
label: string;
|
|
4713
|
+
icon?: string;
|
|
4714
|
+
filter: any;
|
|
4715
|
+
}>;
|
|
4716
|
+
get duplicatedQuickFilterInlineFields(): string[];
|
|
4717
|
+
private inferDefaultStatusFilterField;
|
|
4718
|
+
private updateToolbarFiltersPatch;
|
|
4719
|
+
onToolbarFiltersEnabledChange(enabled: boolean): void;
|
|
4720
|
+
onToolbarShowQuickFiltersChange(show: boolean): void;
|
|
4721
|
+
onToolbarShowAdvancedButtonChange(show: boolean): void;
|
|
4722
|
+
onAdvancedFilterShowAddButtonChange(show: boolean): void;
|
|
4723
|
+
onAdvancedFilterShowFilterSettingsChange(show: boolean): void;
|
|
4724
|
+
applyBooleanQuickFilterPreset(fieldName?: string): void;
|
|
4725
|
+
addQuickFilterScope(): void;
|
|
4726
|
+
removeQuickFilterScope(index: number): void;
|
|
4727
|
+
updateQuickFilterMeta(index: number, patch: {
|
|
4728
|
+
id?: string;
|
|
4729
|
+
label?: string;
|
|
4730
|
+
icon?: string;
|
|
4731
|
+
}): void;
|
|
4732
|
+
getQuickFilterMode(item: {
|
|
4733
|
+
filter?: any;
|
|
4734
|
+
}): 'all' | 'boolean' | 'equals';
|
|
4735
|
+
getQuickFilterField(item: {
|
|
4736
|
+
filter?: any;
|
|
4737
|
+
}): string;
|
|
4738
|
+
getQuickFilterValue(item: {
|
|
4739
|
+
filter?: any;
|
|
4740
|
+
}): any;
|
|
4741
|
+
onQuickFilterModeChange(index: number, mode: 'all' | 'boolean' | 'equals'): void;
|
|
4742
|
+
onQuickFilterFieldChange(index: number, fieldName: string): void;
|
|
4743
|
+
onQuickFilterValueChange(index: number, rawValue: any): void;
|
|
4744
|
+
consolidateDuplicateInlineFilterFields(): void;
|
|
4610
4745
|
getEffectiveDataMode(): EffectiveDataMode;
|
|
4611
4746
|
isEffectiveLocalMode(): boolean;
|
|
4612
4747
|
private resolveLocalDataModeFeatureEnabled;
|
|
@@ -4771,6 +4906,7 @@ interface PraxisFilterWidgetEditorInputs {
|
|
|
4771
4906
|
advancedOpenMode?: 'modal' | 'drawer';
|
|
4772
4907
|
advancedClearButtonsEnabled?: boolean;
|
|
4773
4908
|
persistenceKey?: string;
|
|
4909
|
+
showAddButton?: boolean;
|
|
4774
4910
|
showFilterSettings?: boolean;
|
|
4775
4911
|
enableCustomization?: boolean;
|
|
4776
4912
|
[key: string]: unknown;
|