@praxisui/table 9.0.3 → 9.0.4-rc.10
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 +34 -3
- package/ai/component-registry.json +1649 -251
- package/docs/adr/2026-07-table-rich-cells-governance.md +80 -0
- package/fesm2022/{praxisui-table-praxisui-table-BstM1W8K.mjs → praxisui-table-praxisui-table-DkFV9aeU.mjs} +1641 -92
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-DAEXf2W_.mjs → praxisui-table-table-agentic-authoring-turn-flow-DVWqVgbO.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-BeMPZCqh.mjs → praxisui-table-table-ai.adapter-Q79jTagZ.mjs} +9 -12
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +3 -1
- package/types/praxisui-table.d.ts +75 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable, firstValueFrom } from 'rxjs';
|
|
2
2
|
import { withAuthoringScopePolicy } from '@praxisui/ai';
|
|
3
|
-
import { ad as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-
|
|
3
|
+
import { ad as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-DkFV9aeU.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 { I as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, l as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, Z as coerceTableComponentEditPlans, $ as compileTableComponentEditPlans, L as TASK_PRESETS, a4 as getTableComponentEditPlanCapabilities, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { I as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, l as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, Z as coerceTableComponentEditPlans, $ as compileTableComponentEditPlans, L as TASK_PRESETS, a4 as getTableComponentEditPlanCapabilities, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-DkFV9aeU.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -418,6 +418,7 @@ const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
|
418
418
|
'columns[].renderer.compose.items[].type': {
|
|
419
419
|
mode: 'enum',
|
|
420
420
|
options: [
|
|
421
|
+
{ value: 'value', label: 'Value' },
|
|
421
422
|
{ value: 'icon', label: 'Icon' },
|
|
422
423
|
{ value: 'image', label: 'Image' },
|
|
423
424
|
{ value: 'badge', label: 'Badge' },
|
|
@@ -563,6 +564,7 @@ const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
|
563
564
|
'columns[].conditionalRenderers[].renderer.compose.items[].type': {
|
|
564
565
|
mode: 'enum',
|
|
565
566
|
options: [
|
|
567
|
+
{ value: 'value', label: 'Value' },
|
|
566
568
|
{ value: 'icon', label: 'Icon' },
|
|
567
569
|
{ value: 'image', label: 'Image' },
|
|
568
570
|
{ value: 'badge', label: 'Badge' },
|
|
@@ -963,8 +965,8 @@ const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
|
963
965
|
compose: {
|
|
964
966
|
layout: { direction: 'column', gap: 4 },
|
|
965
967
|
items: [
|
|
966
|
-
{ type: 'value',
|
|
967
|
-
{ type: 'value', textField: '{{params.subtitleField}}',
|
|
968
|
+
{ type: 'value', emphasis: 'strong' }, // Title (current field)
|
|
969
|
+
{ type: 'value', textField: '{{params.subtitleField}}', emphasis: 'subtle' } // Subtitle
|
|
968
970
|
]
|
|
969
971
|
}
|
|
970
972
|
}
|
|
@@ -986,17 +988,10 @@ const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
|
986
988
|
renderer: {
|
|
987
989
|
type: 'compose',
|
|
988
990
|
compose: {
|
|
989
|
-
layout: { direction: 'row', gap: 12, align: 'center' },
|
|
991
|
+
layout: { direction: 'row', gap: 12, align: 'center', ellipsis: true },
|
|
990
992
|
items: [
|
|
991
993
|
{ type: 'avatar', avatar: { srcField: '{{params.imageField}}', initialsField: '{{target}}', shape: 'circle' } },
|
|
992
|
-
{ type: '
|
|
993
|
-
layout: { direction: 'column', gap: 2 },
|
|
994
|
-
items: [
|
|
995
|
-
{ type: 'value', style: 'font-weight: 500;' },
|
|
996
|
-
{ type: 'value', textField: '{{params.subtitleField}}', style: 'font-size: 0.85em; opacity: 0.7;' }
|
|
997
|
-
]
|
|
998
|
-
}
|
|
999
|
-
}
|
|
994
|
+
{ type: 'value', emphasis: 'strong' }
|
|
1000
995
|
]
|
|
1001
996
|
}
|
|
1002
997
|
}
|
|
@@ -1693,6 +1688,8 @@ const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
|
1693
1688
|
'DOC: When resourcePath is available, the table can load schema and data; ask the user to pick an API resource when missing.',
|
|
1694
1689
|
'DOC: resourcePath must be the base resource path only (no /filter, /all, /{id}). CRUD endpoints are handled internally.',
|
|
1695
1690
|
'DOC: columns[].computed.expression agora usa AST Json Logic canônico para derived values; não use fórmulas string.',
|
|
1691
|
+
'DOC: Para microVisualization em table-cell, recomende delta, bullet, radial, harveyBall ou stackedBar para leitura rápida. line, area e column são condicionais à largura horizontal; comparison aumenta a altura da linha; processFlow exige etapas reconhecíveis. Quando esses trade-offs não servirem à decisão, prefira detalhe expandido ou superfície relacionada.',
|
|
1692
|
+
'DOC: Expressões de microVisualization aceitam caminho da linha (row.sla) ou fórmula controlada com prefixo = (= row.sla), com a mesma semântica do editor visual.',
|
|
1696
1693
|
'DOC: Operadores/funções canônicos úteis: +, -, *, /, %, min, max, cat, substr, round, ceil, floor, abs, coalesce, now, date, yearsSince, monthsSince, daysSince, len, toNumber e stringify.',
|
|
1697
1694
|
'DOC: Examples: {"yearsSince":[{"var":"dataNascimento"}]} → idade; {"yearsSince":[{"var":"dataAdmissao"}]} → tempoEmpresa (anos); {"monthsSince":[{"var":"dataAdmissao"}]} → tempoEmpresa (meses); {"daysSince":[{"var":"dataCadastro"}]} → dias desde cadastro; {"+":[{"coalesce":[{"var":"bonus"},0]},{"var":"salario"}]} → total com fallback.',
|
|
1698
1695
|
'### DATA ARCHETYPE TO VISUAL STRATEGY',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_COMPONENT_METADATA, l as PRAXIS_TABLE_AUTHORING_MANIFEST, m as PRAXIS_TABLE_COMPONENT_METADATA, n as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, o as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, p as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, q as PraxisFilter, r as PraxisFilterWidgetConfigEditor, s as PraxisTable, t as PraxisTableConfigEditor, u as PraxisTableInlineAuthoringEditorComponent, v as PraxisTableToolbar, w as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, x as TABLE_COMPONENT_AI_CAPABILITIES, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_KIND, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, L as TASK_PRESETS, O as TableDefaultsProvider, Q as TableRulesEditorComponent, R as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, U as VisualFormulaBuilderComponent, W as analyticsComparisonMetricField, X as buildTableApplyPlan, Y as coerceTableComponentEditPlan, Z as coerceTableComponentEditPlans, _ as compileTableComponentEditPlan, $ as compileTableComponentEditPlans, a0 as createTableAuthoringDocument, a1 as getActionId, a2 as getEnum, a3 as getTableCapabilities, a4 as getTableComponentEditPlanCapabilities, a5 as isTableRendererSupportedByRichContentP0, a6 as mapTableRendererToRichContentP0, a7 as normalizeTableAuthoringDocument, a8 as parseLegacyOrTableDocument, a9 as providePraxisFilterMetadata, aa as providePraxisTableMetadata, ab as providePraxisTableToolbarAppearance, ac as serializeTableAuthoringDocument, ae as toCanonicalTableConfig, af as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_COMPONENT_METADATA, l as PRAXIS_TABLE_AUTHORING_MANIFEST, m as PRAXIS_TABLE_COMPONENT_METADATA, n as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, o as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, p as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, q as PraxisFilter, r as PraxisFilterWidgetConfigEditor, s as PraxisTable, t as PraxisTableConfigEditor, u as PraxisTableInlineAuthoringEditorComponent, v as PraxisTableToolbar, w as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, x as TABLE_COMPONENT_AI_CAPABILITIES, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_KIND, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, L as TASK_PRESETS, O as TableDefaultsProvider, Q as TableRulesEditorComponent, R as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, U as VisualFormulaBuilderComponent, W as analyticsComparisonMetricField, X as buildTableApplyPlan, Y as coerceTableComponentEditPlan, Z as coerceTableComponentEditPlans, _ as compileTableComponentEditPlan, $ as compileTableComponentEditPlans, a0 as createTableAuthoringDocument, a1 as getActionId, a2 as getEnum, a3 as getTableCapabilities, a4 as getTableComponentEditPlanCapabilities, a5 as isTableRendererSupportedByRichContentP0, a6 as mapTableRendererToRichContentP0, a7 as normalizeTableAuthoringDocument, a8 as parseLegacyOrTableDocument, a9 as providePraxisFilterMetadata, aa as providePraxisTableMetadata, ab as providePraxisTableToolbarAppearance, ac as serializeTableAuthoringDocument, ae as toCanonicalTableConfig, af as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-DkFV9aeU.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.4-rc.10",
|
|
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": "^9.0.
|
|
10
|
-
"@praxisui/core": "^9.0.
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.
|
|
12
|
-
"@praxisui/dynamic-form": "^9.0.
|
|
13
|
-
"@praxisui/metadata-editor": "^9.0.
|
|
14
|
-
"@praxisui/rich-content": "^9.0.
|
|
15
|
-
"@praxisui/settings-panel": "^9.0.
|
|
16
|
-
"@praxisui/table-rule-builder": "^9.0.
|
|
9
|
+
"@praxisui/ai": "^9.0.4-rc.10",
|
|
10
|
+
"@praxisui/core": "^9.0.4-rc.10",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.4-rc.10",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.4-rc.10",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.4-rc.10",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.4-rc.10",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.4-rc.10",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.4-rc.10",
|
|
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": "^9.0.
|
|
21
|
+
"@praxisui/dialog": "^9.0.4-rc.10",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -351,6 +351,8 @@ Renderer defaults:
|
|
|
351
351
|
- `columns[].renderer.type = "avatar"` aplica `columns[].align = "center"` quando a coluna não declara alinhamento explícito. Esse default governa header e célula para manter foto/avatar centralizados em colunas dedicadas, preservando `align`, `width` e demais overrides declarados pelo host.
|
|
352
352
|
- `columns[].renderer.type = "microVisualization"` renderiza a visualização compacta declarada em `renderer.microVisualization.visualization`. O caminho preferencial é metadata-driven: campos de schema com `presentation.presenter = "microVisualization"` e `presentation.visualization.surface = "table-cell"` são convertidos automaticamente para esse renderer quando o tipo é seguro para tabela. O contrato visual e a normalização pertencem a `@praxisui/core` (`PraxisPresentationVisualizationConfig`); a tabela apenas hospeda o HTML compacto em célula, compose item ou renderer condicional.
|
|
353
353
|
|
|
354
|
+
- Em `renderer.compose.items[]` com `type = "value"`, `emphasis = "strong"` representa o valor primário e `emphasis = "subtle"` o contexto de apoio. São os únicos níveis de hierarquia visual no item de texto; `style` arbitrário não integra o contrato de compose.
|
|
355
|
+
|
|
354
356
|
- Em tabela, campos `*Expr` da visualizacao, como `valueExpr`, `targetExpr`, `segmentsExpr`, `toneExpr` e `fallbackTextExpr`, sao resolvidos contra o contexto da linha antes de renderizar. Strings simples sao caminhos (`row.slaAtual`) e objetos seguem Json Logic. Para `kind = "comparison"`, use `points`/`pointsExpr`; `items` fica reservado para visualizacoes orientadas a itens/etapas.
|
|
355
357
|
|
|
356
358
|
### Toolbar contract
|
|
@@ -462,7 +464,7 @@ degraded filter.
|
|
|
462
464
|
| `ASYNC_CONFIG_STORAGE` | bidirectional | `loadConfig/saveConfig/clearConfig` | fail-open | Persistência de config e inputs por `tableId`/instância; não é acessado quando `configPersistenceStrategy='volatile'`. |
|
|
463
465
|
| `CONNECTION_STORAGE` | bidirectional | `loadConnection/saveConnection` | fail-open | Persistência de `resourcePath` para quick-connect. |
|
|
464
466
|
| `SettingsPanelService` | bidirectional | `open(...).applied$/saved$` | fail-open | Canal de edição em runtime (quick connect/editor). |
|
|
465
|
-
| `
|
|
467
|
+
| `PRAXIS_TABLE_DETAIL_RESOURCE_RESOLVER` | outbound call | Angular DI token (`TableDetailResourceResolver`) | fail-closed | Resolução externa e governada de detail schema por `resource`; o host deve fornecer o token por DI. |
|
|
466
468
|
|
|
467
469
|
### Host/runtime dependencies
|
|
468
470
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _praxisui_core from '@praxisui/core';
|
|
2
|
-
import { TableToolbarAppearanceConfig, TableConfig, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceDensity, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
2
|
+
import { TableToolbarAppearanceConfig, TableConfig, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceDensity, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { InjectionToken, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterContentInit, Injector, Type } from '@angular/core';
|
|
5
5
|
import { ActivatedRoute } from '@angular/router';
|
|
@@ -8,6 +8,7 @@ import { MatTable, MatTableDataSource } from '@angular/material/table';
|
|
|
8
8
|
import * as _angular_material_paginator from '@angular/material/paginator';
|
|
9
9
|
import { MatPaginatorSelectConfig, MatPaginator, PageEvent } from '@angular/material/paginator';
|
|
10
10
|
import { MatSort, Sort } from '@angular/material/sort';
|
|
11
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
11
12
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
12
13
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
13
14
|
import { CdkDragDrop, CdkDragEnd, CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';
|
|
@@ -46,6 +47,7 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
46
47
|
private i18n?;
|
|
47
48
|
private defaultAppearance?;
|
|
48
49
|
private tokenPresets?;
|
|
50
|
+
activeOverflowMenuTrigger?: MatMenuTrigger;
|
|
49
51
|
config?: TableConfig;
|
|
50
52
|
appearance?: TableToolbarAppearanceConfig | null;
|
|
51
53
|
backgroundColor: string | null;
|
|
@@ -131,6 +133,7 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
131
133
|
private getLogger;
|
|
132
134
|
private warnLog;
|
|
133
135
|
emitToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1): void;
|
|
136
|
+
emitOverflowToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1): void;
|
|
134
137
|
getStartActions(): any[];
|
|
135
138
|
getNonStartActions(): any[];
|
|
136
139
|
getOverflowActions(): any[];
|
|
@@ -768,6 +771,13 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
768
771
|
private loadSchemaViaClient;
|
|
769
772
|
private loadSchemaViaCrudFallback;
|
|
770
773
|
loadSchema(): void;
|
|
774
|
+
/**
|
|
775
|
+
* A Dynamic Page may finish binding resource identity while an earlier schema
|
|
776
|
+
* request is still in flight. Discarding that response must also release the
|
|
777
|
+
* loading state and start a request for the effective context; otherwise the
|
|
778
|
+
* advanced-filter affordance remains permanently busy.
|
|
779
|
+
*/
|
|
780
|
+
private restartSchemaLoadForCurrentContext;
|
|
771
781
|
retrySchemaLoad(): void;
|
|
772
782
|
private applySchemaMetas;
|
|
773
783
|
private applySchemaMetasNow;
|
|
@@ -1087,6 +1097,10 @@ type RowActionRuntimeOptions = {
|
|
|
1087
1097
|
payload?: any;
|
|
1088
1098
|
actionConfig?: any;
|
|
1089
1099
|
};
|
|
1100
|
+
type RowActionTriggerEvent = {
|
|
1101
|
+
target?: EventTarget | null;
|
|
1102
|
+
stopPropagation?: () => void;
|
|
1103
|
+
};
|
|
1090
1104
|
type RuntimeRowAction = {
|
|
1091
1105
|
id: string;
|
|
1092
1106
|
action: string;
|
|
@@ -1137,6 +1151,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1137
1151
|
private route?;
|
|
1138
1152
|
private logger?;
|
|
1139
1153
|
private analyticsStatsApi?;
|
|
1154
|
+
activeRowOverflowMenuTrigger?: MatMenuTrigger;
|
|
1140
1155
|
private static readonly CELL_ANIMATION_CHANGE_CACHE_LIMIT;
|
|
1141
1156
|
private static readonly AI_SELECTION_ROW_LIMIT;
|
|
1142
1157
|
private static readonly AI_SELECTION_ID_LIMIT;
|
|
@@ -1146,6 +1161,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1146
1161
|
private static readonly ROW_DISCOVERY_CACHE_LIMIT;
|
|
1147
1162
|
private static readonly ROW_DISCOVERY_MAX_CONCURRENT_REQUESTS;
|
|
1148
1163
|
private _resourceDiscovery?;
|
|
1164
|
+
private _resourceActionOpenAdapter?;
|
|
1149
1165
|
private _resourceSurfaceOpenAdapter?;
|
|
1150
1166
|
private _crudOperationResolver?;
|
|
1151
1167
|
private readonly runtimeObservationRegistry;
|
|
@@ -1156,6 +1172,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1156
1172
|
private collectionCapabilitiesResolvedHref;
|
|
1157
1173
|
private collectionCapabilitiesRequestSeq;
|
|
1158
1174
|
private readonly detailInlineNodeResolvers;
|
|
1175
|
+
private readonly detailResourceResolver;
|
|
1159
1176
|
private runtimeObservationRegistration;
|
|
1160
1177
|
readonly paginatorSelectConfig: MatPaginatorSelectConfig;
|
|
1161
1178
|
private static readonly ROW_ANIMATION_PRESETS;
|
|
@@ -1383,6 +1400,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1383
1400
|
shouldRenderAdvancedFilter(): boolean;
|
|
1384
1401
|
getAdvancedFilterResourcePath(): string;
|
|
1385
1402
|
getAdvancedFilterPersistenceKey(): string;
|
|
1403
|
+
getAdvancedFilterFormId(): string;
|
|
1404
|
+
getAdvancedFilterOpenMode(): 'modal' | 'drawer';
|
|
1386
1405
|
getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
|
|
1387
1406
|
getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
|
|
1388
1407
|
getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
|
|
@@ -1513,6 +1532,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1513
1532
|
private updateCollectionLinks;
|
|
1514
1533
|
private resolveCollectionCapabilitiesHref;
|
|
1515
1534
|
private materializeCollectionCreateToolbarAction;
|
|
1535
|
+
private materializeCollectionWorkflowToolbarActions;
|
|
1516
1536
|
private ensureToolbarConfigForRuntime;
|
|
1517
1537
|
private buildCollectionCreateToolbarAction;
|
|
1518
1538
|
private resolveCollectionCreateRuntime;
|
|
@@ -1531,6 +1551,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1531
1551
|
constructor(cdr: ChangeDetectorRef, settingsPanel: SettingsPanelService, crudService: GenericCrudService<any, any>, tableDefaultsProvider: TableDefaultsProvider, filterConfig: FilterConfigService, formattingService: DataFormattingService, pxDialog: PraxisDialog, snackBar: MatSnackBar, asyncConfigStorage: AsyncConfigStorage, connectionStorage: ConnectionStorage, hostRef: ElementRef<HTMLElement>, global: GlobalConfigService, injector: Injector, componentKeys: ComponentKeyService, loadingOrchestrator: LoadingOrchestrator, globalActions: GlobalActionService, enterpriseRuntimeContext?: EnterpriseRuntimeContextService | undefined, loadingRenderer?: PraxisLoadingRenderer | undefined, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined, analyticsStatsApi?: AnalyticsTableStatsApiService | undefined);
|
|
1532
1552
|
private get resourceDiscovery();
|
|
1533
1553
|
private get resourceSurfaceOpenAdapter();
|
|
1554
|
+
private get resourceActionOpenAdapter();
|
|
1534
1555
|
private get crudOperationResolver();
|
|
1535
1556
|
private ensureAiAdapterLoaded;
|
|
1536
1557
|
openAiAssistant(): void;
|
|
@@ -1822,12 +1843,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1822
1843
|
private collapseExpandedRowsByPolicy;
|
|
1823
1844
|
private applyExpansionCollapsePolicy;
|
|
1824
1845
|
onRowDoubleClicked(row: any, index: number): void;
|
|
1825
|
-
onRowAction(action: string, row: any, event:
|
|
1846
|
+
onRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
|
|
1847
|
+
onOverflowRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
|
|
1826
1848
|
private resolveRowActionRuntimeOptions;
|
|
1827
1849
|
private emitRowActionEvent;
|
|
1828
1850
|
private showConfirmDialog;
|
|
1829
1851
|
private executeDeleteAction;
|
|
1830
1852
|
private dispatchRowAction;
|
|
1853
|
+
private groundRowActionConfigForDispatch;
|
|
1854
|
+
private isResourceActionCatalogItem;
|
|
1855
|
+
private openResourceWorkflowAction;
|
|
1856
|
+
private applyWorkflowActionRefresh;
|
|
1831
1857
|
private cloneForEmit;
|
|
1832
1858
|
private interpolateActionMessageTemplate;
|
|
1833
1859
|
private buildActionFeedbackContext;
|
|
@@ -1851,6 +1877,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1851
1877
|
actionConfig?: ToolbarAction$1;
|
|
1852
1878
|
}): Promise<void>;
|
|
1853
1879
|
private hasValidToolbarTargetSelection;
|
|
1880
|
+
private tryHandleCollectionWorkflowToolbarAction;
|
|
1881
|
+
private openCollectionWorkflowAction;
|
|
1882
|
+
private bindWorkflowSurfaceOutcome;
|
|
1883
|
+
private handleWorkflowSurfaceFailure;
|
|
1884
|
+
private applyCollectionWorkflowOutcome;
|
|
1885
|
+
private unwrapCollectionWorkflowResult;
|
|
1886
|
+
private showCollectionWorkflowContractError;
|
|
1854
1887
|
private tryHandleCollectionCreateToolbarAction;
|
|
1855
1888
|
private resolveBulkExportFormat;
|
|
1856
1889
|
private isBulkExportActionKey;
|
|
@@ -2297,6 +2330,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2297
2330
|
getComposeGapStyle(row: any, column: ColumnDefinition): any;
|
|
2298
2331
|
private getComposeItemField;
|
|
2299
2332
|
getComposeItemValue(row: any, base: ColumnDefinition, item: any): any;
|
|
2333
|
+
getComposeValueClasses(item: any): string[];
|
|
2300
2334
|
private asComposeValueItemColumn;
|
|
2301
2335
|
asItemColumn(base: ColumnDefinition, item: any): any;
|
|
2302
2336
|
getItemEffectiveType(row: any, column: ColumnDefinition, item: any): any;
|
|
@@ -2756,7 +2790,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2756
2790
|
private readonly destroyRef;
|
|
2757
2791
|
private destroy$;
|
|
2758
2792
|
onlyVisibleRendererFields: boolean;
|
|
2759
|
-
uiRendererType: 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'rating' | 'html' | 'compose' | null;
|
|
2793
|
+
uiRendererType: 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'avatar' | 'toggle' | 'menu' | 'rating' | 'html' | 'compose' | null;
|
|
2760
2794
|
private _rendererApplyTimer;
|
|
2761
2795
|
rendererFieldOptions: RendererFieldOption[];
|
|
2762
2796
|
uiRendererConditional: boolean;
|
|
@@ -2774,7 +2808,29 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2774
2808
|
setConditionalOverrideCondition(index: number, raw: string): void;
|
|
2775
2809
|
getOverrideField(path: string): any;
|
|
2776
2810
|
setOverrideField(path: string, value: any): void;
|
|
2811
|
+
setOverrideJsonLogicField(path: string, raw: string): void;
|
|
2812
|
+
private ensureOverrideCompose;
|
|
2813
|
+
getOverrideComposeItems(): Array<{
|
|
2814
|
+
item: any;
|
|
2815
|
+
index: number;
|
|
2816
|
+
}>;
|
|
2817
|
+
addOverrideComposeValueItem(): void;
|
|
2818
|
+
setOverrideComposeValueItemField(index: number, field: string): void;
|
|
2819
|
+
setOverrideComposeValueItemEmphasis(index: number, emphasis: string): void;
|
|
2820
|
+
getOverrideComposeLayoutProp(key: string): any;
|
|
2821
|
+
setOverrideComposeLayoutProp(key: string, value: any): void;
|
|
2777
2822
|
onOverrideTypeChange(ov: any, val: string): void;
|
|
2823
|
+
getOverrideMicroVisualizationProp(path: string): any;
|
|
2824
|
+
setOverrideMicroVisualizationProp(path: string, value: any): void;
|
|
2825
|
+
getOverrideMicroVisualizationKind(): PraxisPresentationVisualizationKind;
|
|
2826
|
+
getOverrideMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
2827
|
+
getOverrideMicroVisualizationConstraint(): PraxisTableCellVisualizationConstraint;
|
|
2828
|
+
isOverrideMicroVisualizationValueKind(): boolean;
|
|
2829
|
+
isOverrideMicroVisualizationPointsKind(): boolean;
|
|
2830
|
+
isOverrideMicroVisualizationSegmentsKind(): boolean;
|
|
2831
|
+
isOverrideMicroVisualizationItemsKind(): boolean;
|
|
2832
|
+
isOverrideMicroVisualizationTotalKind(): boolean;
|
|
2833
|
+
getOverrideMicroVisualizationGuidanceText(): string;
|
|
2778
2834
|
exportOverrideJson(index: number): void;
|
|
2779
2835
|
importOverrideJson(index: number): void;
|
|
2780
2836
|
rendererValidationErrors: string[];
|
|
@@ -2829,8 +2885,8 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2829
2885
|
getColumnMapping(column: ColumnDefinition | null): {
|
|
2830
2886
|
[key: string | number]: string;
|
|
2831
2887
|
};
|
|
2832
|
-
getRendererType(col: ColumnDefinition | null): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'rating' | 'html' | null;
|
|
2833
|
-
onRendererTypeChange(type: 'icon' | 'image' | 'badge' | null): void;
|
|
2888
|
+
getRendererType(col: ColumnDefinition | null): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'avatar' | 'toggle' | 'menu' | 'rating' | 'html' | null;
|
|
2889
|
+
onRendererTypeChange(type: 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'avatar' | 'toggle' | 'menu' | 'rating' | 'html' | 'compose' | null): void;
|
|
2834
2890
|
onRendererModeClosed(): void;
|
|
2835
2891
|
onToggleRendererConditional(enabled: boolean): void;
|
|
2836
2892
|
getRendererTypeExpr(): string;
|
|
@@ -2876,6 +2932,8 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2876
2932
|
getRendererProp(kind: string, path: string): any;
|
|
2877
2933
|
setRendererJsonLogicProp(kind: string, path: string, raw: string): void;
|
|
2878
2934
|
setRendererProp(kind: string, path: string, value: any): void;
|
|
2935
|
+
private createDefaultMicroVisualization;
|
|
2936
|
+
setMicroVisualizationProp(path: string, value: any): void;
|
|
2879
2937
|
private _deepClone;
|
|
2880
2938
|
hasSelectedRenderer(): boolean;
|
|
2881
2939
|
onApplyRenderer(): void;
|
|
@@ -2887,6 +2945,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2887
2945
|
private sanitizeComposeItem;
|
|
2888
2946
|
private ensurePreviewRows;
|
|
2889
2947
|
private evalValueExpr;
|
|
2948
|
+
private evalMicroVisualizationExpression;
|
|
2890
2949
|
private evalArrayExpr;
|
|
2891
2950
|
private normalizeExpression;
|
|
2892
2951
|
private normalizeOptionalChaining;
|
|
@@ -2894,7 +2953,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2894
2953
|
private stripRowPrefixes;
|
|
2895
2954
|
private _coerceExpected;
|
|
2896
2955
|
private getNested;
|
|
2897
|
-
getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'rating' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
2956
|
+
getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'rating' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
2898
2957
|
getPreviewIconName(row: any): string | null;
|
|
2899
2958
|
getPreviewIconColor(row: any): string | null;
|
|
2900
2959
|
getPreviewIconStyle(row: any): Record<string, string> | null;
|
|
@@ -2914,6 +2973,16 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2914
2973
|
getPreviewChipText(row: any): string | null;
|
|
2915
2974
|
getPreviewChipClasses(): string[];
|
|
2916
2975
|
getPreviewProgressValue(row: any): number;
|
|
2976
|
+
getPreviewMicroVisualizationHtml(row: any): string;
|
|
2977
|
+
getMicroVisualizationGuidance(): 'recommended' | 'conditional';
|
|
2978
|
+
getMicroVisualizationKind(): PraxisPresentationVisualizationKind;
|
|
2979
|
+
isMicroVisualizationValueKind(): boolean;
|
|
2980
|
+
isMicroVisualizationPointsKind(): boolean;
|
|
2981
|
+
isMicroVisualizationSegmentsKind(): boolean;
|
|
2982
|
+
isMicroVisualizationItemsKind(): boolean;
|
|
2983
|
+
isMicroVisualizationTotalKind(): boolean;
|
|
2984
|
+
getMicroVisualizationGuidanceText(): string;
|
|
2985
|
+
getMicroVisualizationConstraint(): PraxisTableCellVisualizationConstraint;
|
|
2917
2986
|
getPreviewRatingValue(row: any): number;
|
|
2918
2987
|
getPreviewRatingMax(): number;
|
|
2919
2988
|
getPreviewRatingColor(): string | undefined;
|