@praxisui/table 9.0.0-beta.3 → 9.0.0-beta.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 +15 -1
- package/ai/component-registry.json +22021 -0
- package/docs/column-resize-reorder-implementation-plan.md +42 -34
- package/docs/local-data-support-implementation-plan.md +17 -17
- package/docs/local-data-support-pr-package.md +12 -12
- package/docs/release-notes-p1-hardening.md +1 -3
- package/fesm2022/{praxisui-table-praxisui-table-CunEk0vb.mjs → praxisui-table-praxisui-table-DWQN-OpC.mjs} +1494 -533
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-DL9l0XF7.mjs → praxisui-table-table-agentic-authoring-turn-flow-Ch_ORcol.mjs} +241 -17
- package/fesm2022/{praxisui-table-table-ai.adapter-BvaMq2CS.mjs → praxisui-table-table-ai.adapter-xC7GtksD.mjs} +84 -11
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +16 -11
- package/src/lib/praxis-table.json-api.md +47 -15
- package/types/praxisui-table.d.ts +119 -22
|
@@ -37,9 +37,9 @@ source_of_truth:
|
|
|
37
37
|
- "projects/praxis-core/src/lib/tokens/global-action.catalog.ts"
|
|
38
38
|
- "projects/praxis-core/src/lib/models/global-action.model.ts"
|
|
39
39
|
- "projects/praxis-core/src/lib/actions/global-action-ui.ts"
|
|
40
|
-
source_of_truth_last_verified: "2026-
|
|
40
|
+
source_of_truth_last_verified: "2026-06-24"
|
|
41
41
|
publish_source_of_truth: false
|
|
42
|
-
last_updated: "2026-
|
|
42
|
+
last_updated: "2026-06-24"
|
|
43
43
|
toc: true
|
|
44
44
|
sidebar: true
|
|
45
45
|
tags:
|
|
@@ -92,6 +92,13 @@ Este documento e a referencia canonica da API JSON de praxis-table.
|
|
|
92
92
|
- Para exportar apenas a selecao, combine `behavior.selection.enabled`, `config.export.general.scope: "selected"` e uma bulk action visivel apenas quando `selectedCount > 0`.
|
|
93
93
|
- Quando `config.export.general.scope` e `"selected"`, a exportacao sem linhas selecionadas e bloqueada com feedback de usuario em vez de gerar um arquivo vazio.
|
|
94
94
|
|
|
95
|
+
## AI assistant entrypoint
|
|
96
|
+
|
|
97
|
+
- `config.ai.assistant.enabled` controla a visibilidade e o acionamento do assistente de IA embarcado na tabela.
|
|
98
|
+
- Ausencia do campo equivale ao comportamento historico: o entrypoint continua disponivel quando o adapter de IA da tabela estiver carregado.
|
|
99
|
+
- Use `false` para surfaces em que o host precisa remover a acao de IA por contrato publico, sem CSS contra classes internas da tabela ou do Angular Material.
|
|
100
|
+
- Ao mudar para `false`, a tabela fecha o assistente e remove a sessao contextual da tabela no registry compartilhado de IA.
|
|
101
|
+
|
|
95
102
|
## Columns visibility dropdown
|
|
96
103
|
|
|
97
104
|
- `config.toolbar.columnsVisibility.enabled` controla a exibição do botão de visibilidade de colunas na barra de ferramentas.
|
|
@@ -331,6 +338,21 @@ Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecn
|
|
|
331
338
|
| `actions.row.discovery.enabled` | boolean | No | `true` | row-action-discovery | Controla se row actions podem ser enriquecidas por HATEOAS/capabilities. Configure `false` para manter somente ações declaradas em `actions.row.actions[]`. |
|
|
332
339
|
| `columns[].renderer` | object | No | field-type-driven | renderer-contract | Renderers condicionais, payload expr e ações interativas. |
|
|
333
340
|
|
|
341
|
+
Quando `actions.row.discovery.enabled` esta ativo e o item publica
|
|
342
|
+
capabilities CRUD canonicas, `PraxisTable` pode sintetizar entradas
|
|
343
|
+
contextuais `view`, `edit` e `delete`. Quando o backend publica
|
|
344
|
+
explicitamente `operations["duplicate-draft"]`, a tabela tambem materializa
|
|
345
|
+
`duplicate-draft` como operacao estendida de item. Essas entradas continuam
|
|
346
|
+
sendo capabilities, nao workflow actions: o clique emite `rowAction` com
|
|
347
|
+
`actionConfig` apontando para a capability, para que um contexto CRUD ou
|
|
348
|
+
host composto materialize a operacao.
|
|
349
|
+
|
|
350
|
+
Renderer defaults:
|
|
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
|
+
- `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
|
+
|
|
354
|
+
- 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
|
+
|
|
334
356
|
### Toolbar contract
|
|
335
357
|
|
|
336
358
|
- Acoes globais de toolbar, row e bulk usam `effects[].kind = "global-action"` como envelope canonico de novo authoring.
|
|
@@ -365,7 +387,7 @@ Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecn
|
|
|
365
387
|
| `icon` | `string` | No | component-input | host-surface passthrough | Ícone opcional usado em affordances auxiliares do runtime. |
|
|
366
388
|
| `autoDelete` | `boolean` | No | component-input | boolean coercion | Ativa deleção automática quando o host delega esse fluxo ao runtime. |
|
|
367
389
|
| `enableCustomization` | `boolean` | No | component-input | boolean coercion | Controla entrada em editor/configuração; default canônico `false`. |
|
|
368
|
-
| `dense` | `boolean` | No | component-input | boolean coercion |
|
|
390
|
+
| `dense` | `boolean` | No | component-input | boolean coercion | Entrada legada de compactação. Equivale a `appearance.density="compact"` apenas quando o contrato não informa `appearance.density`. |
|
|
369
391
|
| `notifyIfOutdated` | `'inline' \| 'snackbar' \| 'both' \| 'none'` | No | component-input | enum validation + prefs fallback | Política de aviso de drift de schema; o host escolhe banner inline, snackbar, ambos ou silêncio explícito. |
|
|
370
392
|
| `snoozeMs` | `number` | No | component-input | numeric fallback + prefs fallback | Janela de snooze para avisos de drift; default do input é `86400000` (24h) e políticas globais podem complementar. |
|
|
371
393
|
| `autoOpenSettingsOnOutdated` | `boolean` | No | component-input | schema-prefs resolution | Abre automaticamente o settings panel quando drift de schema é detectado. |
|
|
@@ -413,13 +435,14 @@ degraded filter.
|
|
|
413
435
|
| `rowClick` | `{ row, index }` | Clique em linha. | Partial | Preservado da documentação anterior. |
|
|
414
436
|
| `rowDoubleClick` | `{ action, row }` | Duplo clique quando habilitado. | Partial | Preservado da documentação anterior. |
|
|
415
437
|
| `rowExpansionChange` | `RowExpansionChangeEvent` | Evento canônico para expand/collapse de detail row no runtime P0A (caminho não virtualizado), com payload discriminado por política de exposição (`allowRawExposure` + `eventExposureDefault`). | Partial | Preservado da documentação anterior. |
|
|
416
|
-
| `rowAction` | `{ action, row, payload?, actionConfig?, localMode?, preventedHttp? }` | Acao de linha (coluna `_actions
|
|
438
|
+
| `rowAction` | `{ action, row, payload?, actionConfig?, localMode?, preventedHttp? }` | Acao de linha (coluna `_actions`, renderer interativo ou CRUD capability sintetizada). `payload` e emitido quando houver `payloadExpr` em renderer interativo. Quando `actionConfig.globalAction` aponta para `navigation.openRoute`, o runtime resolve templates como `${row.id}` antes de executar a navegação interna. Para actions como `surface.open`, `payload.*` continua sendo o envelope canônico do evento entregue ao destino. Para `view/edit/delete/duplicate-draft` vindos de capabilities, `actionConfig` carrega a operacao canonica e o host composto deve encaminhar ao contexto CRUD apropriado. | Partial | Preservado da documentação anterior. |
|
|
417
439
|
| `toolbarAction` | `{ action, actionConfig? }` | Acao clicada em `toolbar.actions[]` que nao foi roteada para fluxo bulk; `actionConfig` carrega o objeto da acao quando disponivel. | Partial | Preservado da documentação anterior. |
|
|
418
440
|
| `exportAction` | `{ format, request?, result?, error?, tableId? }` | Acao de exportacao acionada pelo menu `export.formats[]`; `request` segue `PraxisCollectionExportRequest`. | Active | Usa o contrato canonico de Collection Export em `@praxisui/core`. |
|
|
419
441
|
| `exportAction` | `{ format, request?, result?, error?, tableId? }` | Acao de exportacao acionada pelo menu `export.formats[]`; `request` segue `PraxisCollectionExportRequest`. | Active | Usa o contrato canonico de Collection Export em `@praxisui/core`. |
|
|
420
442
|
| `bulkAction` | `{ action, rows, actionConfig? }` | Acao em lote; `actionConfig` carrega a configuracao da acao quando disponivel. | Partial | Preservado da documentação anterior. |
|
|
421
443
|
| `columnReorder` | `ColumnReorderEvent` | Reordenação de coluna concluída (drag/keyboard). | Partial | Inclui metadados de origem, destino e operação. |
|
|
422
444
|
| `columnReorderAttempt` | `ColumnReorderAttemptEvent` | Tentativa bloqueada por política de drop-zone. | Partial | Evento diagnóstico para observabilidade e auditoria. |
|
|
445
|
+
| `columnResize` | `{ action: 'columnResize', trigger: 'pointer' \| 'keyboard', tableId, field, header, previousWidth, currentWidth, persisted }` | Redimensionamento de coluna concluido pelo separador do header. | Partial | Usa `behavior.resizing.enabled`, respeita `columns[].resizable !== false` e persiste `columns[].width` em px quando `persistWidths !== false`. Em modo `px`, altera a largura da coluna e a largura interna do conteudo rolavel; o viewport/card externo permanece estavel. |
|
|
423
446
|
| `beforeDelete` | `row` | Antes de delete de linha. | Partial | Preservado da documentação anterior. |
|
|
424
447
|
| `afterDelete` | `row` | Depois de delete com sucesso. | Partial | Preservado da documentação anterior. |
|
|
425
448
|
| `deleteError` | `{ row, error }` | Erro no delete de linha. | Partial | Preservado da documentação anterior. |
|
|
@@ -928,6 +951,7 @@ row selection through table affordances.
|
|
|
928
951
|
| `bulkAction` | `{ action, rows, actionConfig? }` | Acao em lote; `actionConfig` carrega a configuracao da acao quando disponivel. | Partial | Preservado da documentação anterior. |
|
|
929
952
|
| `columnReorder` | `{ action, trigger: 'drag' \ | 'keyboard' \ | Partial | Preservado da documentação anterior. |
|
|
930
953
|
| `columnReorderAttempt` | `{ action: 'columnReorderAttempt', trigger: 'drag' \ | 'keyboard', operationId, tableId, sourceField, targetField, previousIndex, currentIndex, sourceZone, targetZone, result: 'blocked', reasonCode: 'drop-zone-policy-blocked', configuredColumnDropZones[] }` | Partial | Preservado da documentação anterior. |
|
|
954
|
+
| `columnResize` | `{ action: 'columnResize', trigger: 'pointer' \| 'keyboard', tableId, field, header, previousWidth, currentWidth, persisted }` | Separador de resize no header. | Partial | Mutacao visual/runtime de largura; nao redefine schema nem dados. Em modo `px`, nao redistribui colunas vizinhas; o conteudo interno pode ficar maior que o viewport e usar scroll horizontal. |
|
|
931
955
|
| `beforeDelete` | `row` | Antes de delete de linha. | Partial | Preservado da documentação anterior. |
|
|
932
956
|
| `afterDelete` | `row` | Depois de delete com sucesso. | Partial | Preservado da documentação anterior. |
|
|
933
957
|
| `deleteError` | `{ row, error }` | Erro no delete de linha. | Partial | Preservado da documentação anterior. |
|
|
@@ -944,28 +968,31 @@ row selection through table affordances.
|
|
|
944
968
|
| `--p-table-row-even-bg` | zebra row |
|
|
945
969
|
| `--p-table-row-hover-bg` | hover row |
|
|
946
970
|
| `--p-table-row-selected-bg` | row selecionada |
|
|
971
|
+
| `--p-table-row-height` | altura da linha; sobrescreve o default do preset de densidade |
|
|
972
|
+
| `--p-table-header-height` | altura do header; sobrescreve o default do preset de densidade |
|
|
973
|
+
| `--p-table-column-resize-hit-area` | area clicavel do separador de resize |
|
|
974
|
+
| `--p-table-column-resize-separator-color` | cor base da divisoria de resize |
|
|
975
|
+
| `--p-table-column-resize-separator-hover-color` | cor da divisoria em hover/focus |
|
|
976
|
+
| `--p-table-column-resize-active-color` | cor da divisoria durante resize |
|
|
947
977
|
| `--p-header-padding` | padding do header |
|
|
978
|
+
| `--p-cell-padding` | padding das células; sobrescreve o default do preset de densidade |
|
|
948
979
|
| `--p-header-font-size` | fonte do header |
|
|
949
980
|
| `--p-header-font-weight` | peso do header |
|
|
950
981
|
| `--p-header-letter-spacing` | tracking do header |
|
|
951
982
|
| `--p-header-text-transform` | caixa do texto do header |
|
|
952
|
-
| `--p-table-drag-handle-size` | tamanho do handle de drag (preset padrao do runtime) |
|
|
953
|
-
| `--p-table-drag-handle-color` | cor do handle de drag |
|
|
954
|
-
| `--p-table-drag-handle-base-opacity` | opacidade base do handle em repouso |
|
|
955
|
-
| `--p-table-drag-handle-idle-bg` | fundo base do handle em repouso |
|
|
956
|
-
| `--p-table-drag-handle-idle-border` | borda base do handle em repouso |
|
|
957
|
-
| `--p-table-drag-handle-hover-bg` | fundo do handle em hover/focus |
|
|
958
|
-
| `--p-table-drag-handle-hover-border` | borda do handle em hover/focus |
|
|
959
|
-
| `--p-table-drag-handle-active-bg` | fundo do handle em estado ativo |
|
|
960
|
-
| `--p-table-drag-handle-active-border` | borda do handle em estado ativo |
|
|
961
|
-
| `--p-table-drag-handle-focus-ring` | cor do anel de foco do handle |
|
|
962
|
-
| `--p-table-drag-handle-transition-duration` | duracao das transicoes do handle |
|
|
963
983
|
| `--p-table-reorder-transition-duration` | duracao da animacao de reorder das colunas |
|
|
964
984
|
| `--p-table-drag-preview-scale` | escala visual do preview durante drag |
|
|
965
985
|
| `--p-table-drag-preview-shadow` | sombra do preview durante drag |
|
|
966
986
|
| `--p-table-drag-status-enter-duration` | duracao da entrada da mensagem visual de reorder |
|
|
967
987
|
| `--p-actions-btn-size` | tamanho de botoes de acao |
|
|
968
988
|
| `--p-actions-icon-size` | tamanho de icones de acao |
|
|
989
|
+
| `--p-table-paginator-container-min-height` | altura minima do paginator |
|
|
990
|
+
| `--p-table-paginator-container-padding` | padding do paginator |
|
|
991
|
+
| `--p-table-paginator-container-gap` | espaçamento entre controles do paginator |
|
|
992
|
+
| `--p-table-paginator-action-size` | tamanho dos botoes de navegacao do paginator |
|
|
993
|
+
| `--p-table-paginator-select-width` | largura do seletor de tamanho de pagina |
|
|
994
|
+
| `--p-table-paginator-select-height` | altura do seletor de tamanho de pagina |
|
|
995
|
+
| `--p-table-paginator-select-padding-inline` | padding horizontal do seletor de tamanho de pagina |
|
|
969
996
|
| `--p-table-state-success-*` | tokens de estado success |
|
|
970
997
|
| `--p-table-state-warning-*` | tokens de estado warning |
|
|
971
998
|
| `--p-table-state-danger-*` | tokens de estado danger |
|
|
@@ -981,6 +1008,10 @@ row selection through table affordances.
|
|
|
981
1008
|
| `col-borders` | bordas verticais entre colunas |
|
|
982
1009
|
| `pfx-column-drag-enabled` | habilita layout base de DnD de colunas |
|
|
983
1010
|
| `pfx-column-drag-indicator` | habilita indicador visual de drag |
|
|
1011
|
+
| `pfx-column-resize-enabled` | habilita separadores de resize no header |
|
|
1012
|
+
| `pfx-column-resizing` | estado ativo enquanto uma coluna esta sendo redimensionada |
|
|
1013
|
+
|
|
1014
|
+
`appearance.density` seleciona apenas o preset de defaults. `appearance.spacing.*` e defaults globais também alimentam tokens `*-default`. Hosts podem redefinir livremente os tokens finais sem depender de seletores internos, por exemplo `--p-table-row-height`, `--p-table-header-height`, `--p-cell-padding`, `--p-actions-btn-size` e `--p-table-paginator-select-height`. Em virtualização sem `itemHeight` explícito, o runtime deriva a altura da densidade efetiva.
|
|
984
1015
|
|
|
985
1016
|
#### DnD classes (globais)
|
|
986
1017
|
| Classe CSS | Escopo | Efeito |
|
|
@@ -1214,6 +1245,7 @@ matching on row values must not decide primary intent.
|
|
|
1214
1245
|
| `density-compact` / `density-comfortable` / `density-spacious` | host classes | controle de densidade visual | Derivadas de `appearance.density`. |
|
|
1215
1246
|
| `.pfx-column-drag-enabled` | host class | habilita feedback visual de reordenacao | Ativada quando contrato de reorder esta habilitado. |
|
|
1216
1247
|
| `.pfx-column-drag-indicator` | host class | indicador visual durante drag/drop | Integrada ao runtime de `columnReorder`. |
|
|
1248
|
+
| `.praxis-header-sort-trigger` | internal header zone | zona dedicada de sort no header | Recebe `mat-sort-header`; reorder por drag continua implicito no header cell. |
|
|
1217
1249
|
|
|
1218
1250
|
### Fallback global de aparencia
|
|
1219
1251
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as _praxisui_core from '@praxisui/core';
|
|
2
|
-
import { TableToolbarAppearanceConfig, TableConfig, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceDensity, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, GlobalConfigService, AsyncConfigStorage, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, PraxisExportScope, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, 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, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceDensity, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, GlobalConfigService, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, PraxisExportScope, 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';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterContentInit, Injector } from '@angular/core';
|
|
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';
|
|
6
|
+
import { SafeHtml } from '@angular/platform-browser';
|
|
6
7
|
import { MatTable, MatTableDataSource } from '@angular/material/table';
|
|
7
8
|
import * as _angular_material_paginator from '@angular/material/paginator';
|
|
8
9
|
import { MatPaginatorSelectConfig, MatPaginator, PageEvent } from '@angular/material/paginator';
|
|
@@ -95,6 +96,7 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
95
96
|
getMoreActionsLabel(): string;
|
|
96
97
|
emitExportAction(event: Event, format: string): void;
|
|
97
98
|
getColumnsVisibilityLabel(): string;
|
|
99
|
+
getColumnsVisibilityIcon(): string;
|
|
98
100
|
isColumnsVisibilityEnabled(): boolean;
|
|
99
101
|
getVisibleColumnsCount(): number;
|
|
100
102
|
isColumnVisibilityToggleDisabled(column: {
|
|
@@ -140,7 +142,6 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
140
142
|
private resolveVisibleWhenFallback;
|
|
141
143
|
private resolveVisibleWhenFallbackPolicy;
|
|
142
144
|
private resolveRuntimeEnvironment;
|
|
143
|
-
private isDiagnosticsEnvironment;
|
|
144
145
|
private buildEvaluationContext;
|
|
145
146
|
private warnVisibleWhenFallback;
|
|
146
147
|
private collectShortcutBindings;
|
|
@@ -359,8 +360,9 @@ type FilterConfig = {
|
|
|
359
360
|
};
|
|
360
361
|
declare class FilterConfigService {
|
|
361
362
|
private storage;
|
|
363
|
+
private localStorage;
|
|
362
364
|
private readonly PREFIX;
|
|
363
|
-
constructor(storage: AsyncConfigStorage);
|
|
365
|
+
constructor(storage: AsyncConfigStorage, localStorage: LocalStorageConfigService);
|
|
364
366
|
/**
|
|
365
367
|
* Load a persisted filter configuration for the given key.
|
|
366
368
|
*/
|
|
@@ -369,6 +371,11 @@ declare class FilterConfigService {
|
|
|
369
371
|
* Persist a filter configuration for the given key.
|
|
370
372
|
*/
|
|
371
373
|
save(key: string, config: FilterConfig): void;
|
|
374
|
+
/**
|
|
375
|
+
* Clear the persisted filter configuration from both remote storage and the
|
|
376
|
+
* local fallback cache so reset/reopen cannot revive stale preferences.
|
|
377
|
+
*/
|
|
378
|
+
clear(key: string): void;
|
|
372
379
|
static ɵfac: i0.ɵɵFactoryDeclaration<FilterConfigService, never>;
|
|
373
380
|
static ɵprov: i0.ɵɵInjectableDeclaration<FilterConfigService>;
|
|
374
381
|
}
|
|
@@ -651,6 +658,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
651
658
|
private resolveInitialDto;
|
|
652
659
|
private syncFormsFromDto;
|
|
653
660
|
private refreshProgrammaticFilterFieldDisplays;
|
|
661
|
+
private getProgrammaticRefreshFieldNames;
|
|
654
662
|
private refreshProgrammaticFilterFieldDisplay;
|
|
655
663
|
ngOnInit(): Promise<void>;
|
|
656
664
|
ngAfterViewInit(): void;
|
|
@@ -995,6 +1003,7 @@ type RuntimeRowAction = {
|
|
|
995
1003
|
overflow?: boolean;
|
|
996
1004
|
__praxisDiscoveredAction?: ResourceActionCatalogItem;
|
|
997
1005
|
__praxisDiscoveredSurface?: ResourceSurfaceCatalogItem;
|
|
1006
|
+
__praxisCrudOperation?: ResourceCapabilityOperation;
|
|
998
1007
|
__praxisCapabilityDenied?: boolean;
|
|
999
1008
|
};
|
|
1000
1009
|
type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
|
|
@@ -1005,6 +1014,10 @@ type ExpansionDetailViewState = {
|
|
|
1005
1014
|
message: string | null;
|
|
1006
1015
|
source: ExpansionDetailResolvedSource | null;
|
|
1007
1016
|
};
|
|
1017
|
+
type ExpansionDetailInlineRendererView = {
|
|
1018
|
+
component: Type<unknown>;
|
|
1019
|
+
inputs: Record<string, unknown>;
|
|
1020
|
+
};
|
|
1008
1021
|
declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterContentInit, OnDestroy {
|
|
1009
1022
|
private cdr;
|
|
1010
1023
|
private settingsPanel;
|
|
@@ -1037,6 +1050,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1037
1050
|
private _resourceDiscovery?;
|
|
1038
1051
|
private _resourceSurfaceOpenAdapter?;
|
|
1039
1052
|
private readonly runtimeObservationRegistry;
|
|
1053
|
+
private readonly detailInlineRenderers;
|
|
1054
|
+
private readonly detailInlineNodeResolvers;
|
|
1040
1055
|
private runtimeObservationRegistration;
|
|
1041
1056
|
readonly paginatorSelectConfig: MatPaginatorSelectConfig;
|
|
1042
1057
|
private static readonly ROW_ANIMATION_PRESETS;
|
|
@@ -1077,6 +1092,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1077
1092
|
exportAction: EventEmitter<any>;
|
|
1078
1093
|
columnReorder: EventEmitter<any>;
|
|
1079
1094
|
columnReorderAttempt: EventEmitter<any>;
|
|
1095
|
+
columnResize: EventEmitter<any>;
|
|
1080
1096
|
beforeDelete: EventEmitter<any>;
|
|
1081
1097
|
afterDelete: EventEmitter<any>;
|
|
1082
1098
|
deleteError: EventEmitter<any>;
|
|
@@ -1118,8 +1134,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1118
1134
|
private columnReorderStatusTimer;
|
|
1119
1135
|
private columnReorderVisualStatusTimer;
|
|
1120
1136
|
private columnReorderUndoSubscription;
|
|
1121
|
-
private
|
|
1122
|
-
private
|
|
1137
|
+
private columnRuntimeMutationOperationCounter;
|
|
1138
|
+
private latestColumnRuntimeMutationOperationId;
|
|
1139
|
+
private columnResizeTransientWidths;
|
|
1140
|
+
private columnResizeTableWidthStyle;
|
|
1141
|
+
private columnResizeLayoutSignature;
|
|
1142
|
+
private isApplyingColumnResizeLayoutMutation;
|
|
1143
|
+
private activeColumnResize;
|
|
1144
|
+
private readonly columnResizePointerMoveListener;
|
|
1145
|
+
private readonly columnResizePointerUpListener;
|
|
1146
|
+
private readonly columnResizePointerCancelListener;
|
|
1147
|
+
private readonly columnResizeKeydownListener;
|
|
1123
1148
|
localSource: any[];
|
|
1124
1149
|
localView: any[];
|
|
1125
1150
|
localTotal: number;
|
|
@@ -1157,6 +1182,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1157
1182
|
private rowDiscoveryMarkForCheckScheduled;
|
|
1158
1183
|
private lastRowDiscoveryScopeKey;
|
|
1159
1184
|
private readonly i18n;
|
|
1185
|
+
private readonly sanitizer;
|
|
1160
1186
|
private readonly collectionExport;
|
|
1161
1187
|
private readonly paginatorIntl;
|
|
1162
1188
|
private schemaFieldsSnapshot;
|
|
@@ -1192,9 +1218,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1192
1218
|
getRowActionsWidthStyle(): string | null;
|
|
1193
1219
|
getColumnTextAlignStyle(column: ColumnDefinition): string | null;
|
|
1194
1220
|
getColumnWidthStyle(column: ColumnDefinition): string | null;
|
|
1221
|
+
getColumnResizeTableWidthStyle(): string | null;
|
|
1195
1222
|
getColumnHeaderAttrStyle(column: ColumnDefinition): string | null;
|
|
1196
1223
|
getColumnHeaderNgStyle(column: ColumnDefinition): Record<string, string> | undefined;
|
|
1197
1224
|
getColumnCellAttrStyle(column: ColumnDefinition): string | null;
|
|
1225
|
+
private mergeColumnWidthIntoInlineStyle;
|
|
1226
|
+
private buildColumnWidthInlineStyle;
|
|
1198
1227
|
getTableElevationClassName(): string;
|
|
1199
1228
|
private normalizeTableElevationLevel;
|
|
1200
1229
|
private resolveRuntimeTableElevationLevel;
|
|
@@ -1251,6 +1280,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1251
1280
|
set resolvedPrefs(val: any);
|
|
1252
1281
|
get resolvedPrefs(): any;
|
|
1253
1282
|
dense: boolean;
|
|
1283
|
+
private hostDeclaredAppearanceDensity;
|
|
1284
|
+
private hostDeclaredAppearanceSpacing;
|
|
1285
|
+
private hostDeclaredAppearanceTypography;
|
|
1254
1286
|
private resolveAppearanceDensity;
|
|
1255
1287
|
get hostDensityCompactClass(): boolean;
|
|
1256
1288
|
get hostDensityComfortableClass(): boolean;
|
|
@@ -1339,6 +1371,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1339
1371
|
private tableConfigKey;
|
|
1340
1372
|
private filterConfigKey;
|
|
1341
1373
|
private ensureConfigDefaults;
|
|
1374
|
+
private hasDeclaredAppearanceDensity;
|
|
1375
|
+
private hasDeclaredAppearanceSection;
|
|
1376
|
+
private shouldApplyAppearanceDefaultValue;
|
|
1342
1377
|
private mergePersistedTableConfigWithInput;
|
|
1343
1378
|
private reconcileHostDeclaredTableContract;
|
|
1344
1379
|
private reconcileHostDeclaredColumns;
|
|
@@ -1347,6 +1382,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1347
1382
|
private normalizePersistedExportFormats;
|
|
1348
1383
|
private normalizePersistedRowActionIds;
|
|
1349
1384
|
private normalizePersistedColumnIds;
|
|
1385
|
+
private columnIdentitySetChanged;
|
|
1350
1386
|
private clonePlainObject;
|
|
1351
1387
|
private setShowToolbar;
|
|
1352
1388
|
private shouldExposeToolbar;
|
|
@@ -1361,6 +1397,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1361
1397
|
aiAssistantTriggerBadge(): string;
|
|
1362
1398
|
aiAssistantTriggerLabel(): string;
|
|
1363
1399
|
aiAssistantTriggerTooltip(): string;
|
|
1400
|
+
isAiAssistantEnabled(): boolean;
|
|
1401
|
+
shouldShowAiAssistantEntrypoint(): boolean;
|
|
1364
1402
|
openAiAssistantFromSession(session: PraxisAssistantSessionSnapshot): void;
|
|
1365
1403
|
closeAiAssistant(): void;
|
|
1366
1404
|
onAiAssistantPromptChange(prompt: string): void;
|
|
@@ -1404,6 +1442,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1404
1442
|
private buildRuntimeObservationClaims;
|
|
1405
1443
|
private isRuntimeObservationVisible;
|
|
1406
1444
|
private syncAiAssistantSession;
|
|
1445
|
+
private disableAiAssistantSession;
|
|
1407
1446
|
private assistantContextRuntimeLocale;
|
|
1408
1447
|
private refreshAiAssistantContextAfterSelectionChange;
|
|
1409
1448
|
private hasAiAssistantSessionState;
|
|
@@ -1511,6 +1550,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1511
1550
|
getExpansionDetailEmbedHeaderNodes(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any): RichBlockNode[];
|
|
1512
1551
|
getExpansionDetailEmbedMetaNodes(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any): RichBlockNode[];
|
|
1513
1552
|
getExpansionDetailEmbedActionNodes(action: TableDetailEmbedAction | any): RichBlockNode[];
|
|
1553
|
+
getExpansionDetailInlineRendererView(node: TableDetailRefNode | any, row: any, index: number): ExpansionDetailInlineRendererView | null;
|
|
1554
|
+
private resolveExpansionDetailInlineRenderer;
|
|
1555
|
+
private resolveExpansionDetailInlineNode;
|
|
1514
1556
|
getExpansionDetailEmbedAction(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any, row: any, index: number): TableDetailEmbedAction | null;
|
|
1515
1557
|
isExpansionDetailEmbedActionDisabled(action: TableDetailEmbedAction | any, row: any, index: number): boolean;
|
|
1516
1558
|
getExpansionDetailEmbedEmptyText(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any): string;
|
|
@@ -1718,6 +1760,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1718
1760
|
private resolveSortingStrategy;
|
|
1719
1761
|
private applyDataSourceSettings;
|
|
1720
1762
|
private sanitizeColumns;
|
|
1763
|
+
private applyRendererPresentationDefaults;
|
|
1721
1764
|
private setupColumns;
|
|
1722
1765
|
private preserveSchemaDrivenColumnsIfConfigOmittedColumns;
|
|
1723
1766
|
private isDataColumnField;
|
|
@@ -1726,6 +1769,46 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1726
1769
|
isColumnDraggingEnabled(): boolean;
|
|
1727
1770
|
isColumnDragIndicatorEnabled(): boolean;
|
|
1728
1771
|
isColumnDraggable(column: ColumnDefinition | null | undefined): boolean;
|
|
1772
|
+
isColumnResizeEnabled(): boolean;
|
|
1773
|
+
isColumnResizable(column: ColumnDefinition | null | undefined): boolean;
|
|
1774
|
+
isColumnResizeActive(column?: ColumnDefinition | null): boolean;
|
|
1775
|
+
getColumnResizeHandleAriaLabel(column: ColumnDefinition): string;
|
|
1776
|
+
getColumnResizeHandleTooltip(column: ColumnDefinition): string;
|
|
1777
|
+
getColumnResizeMinWidthAriaValue(column: ColumnDefinition): number;
|
|
1778
|
+
getColumnResizeMaxWidthAriaValue(column: ColumnDefinition): number | null;
|
|
1779
|
+
getColumnResizeCurrentWidthAriaValue(column: ColumnDefinition): number | null;
|
|
1780
|
+
onColumnResizeHandleClick(event: MouseEvent): void;
|
|
1781
|
+
onColumnResizeHandleKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
|
|
1782
|
+
onColumnResizePointerDown(event: PointerEvent, column: ColumnDefinition): void;
|
|
1783
|
+
private onColumnResizePointerMove;
|
|
1784
|
+
private onColumnResizePointerUp;
|
|
1785
|
+
private onColumnResizePointerCancel;
|
|
1786
|
+
private onColumnResizeDocumentKeydown;
|
|
1787
|
+
private addColumnResizeDocumentListeners;
|
|
1788
|
+
private removeColumnResizeDocumentListeners;
|
|
1789
|
+
private cancelColumnResize;
|
|
1790
|
+
private commitColumnResize;
|
|
1791
|
+
private applyColumnResizeWidth;
|
|
1792
|
+
private emitAndPersistColumnResize;
|
|
1793
|
+
private updateConfigColumnWidth;
|
|
1794
|
+
private updateConfigColumnWidths;
|
|
1795
|
+
private updateColumnResizeTableWidthFromDelta;
|
|
1796
|
+
private captureColumnResizeLockedWidths;
|
|
1797
|
+
private resolveColumnResizeTableWidthPx;
|
|
1798
|
+
private resolveColumnWidthPx;
|
|
1799
|
+
private parseColumnResizePixelWidth;
|
|
1800
|
+
private normalizeColumnResizeWidthStyle;
|
|
1801
|
+
private clampColumnWidthPx;
|
|
1802
|
+
private resolveColumnResizeEffectiveMinWidthPx;
|
|
1803
|
+
private resolveColumnResizeMinWidthPx;
|
|
1804
|
+
private resolveColumnResizeMaxWidthPx;
|
|
1805
|
+
private normalizeColumnResizeConfigWidths;
|
|
1806
|
+
private runColumnResizeLayoutMutation;
|
|
1807
|
+
private reconcileColumnResizeLayoutState;
|
|
1808
|
+
private clearColumnResizeLayoutState;
|
|
1809
|
+
private createColumnResizeLayoutSignature;
|
|
1810
|
+
private formatColumnWidthPx;
|
|
1811
|
+
private isTableRtl;
|
|
1729
1812
|
private resolveColumnReorderHeader;
|
|
1730
1813
|
private isEnglishLocale;
|
|
1731
1814
|
private isEnglishLocaleValue;
|
|
@@ -1742,9 +1825,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1742
1825
|
private emitColumnReorderAttempt;
|
|
1743
1826
|
private createColumnReorderOperationId;
|
|
1744
1827
|
private isLatestColumnReorderOperation;
|
|
1828
|
+
private createColumnRuntimeMutationOperationId;
|
|
1829
|
+
private isLatestColumnRuntimeMutationOperation;
|
|
1745
1830
|
private offerColumnReorderUndo;
|
|
1746
1831
|
private restoreColumnOrderFromUndo;
|
|
1747
|
-
|
|
1832
|
+
onColumnHeaderReorderKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
|
|
1748
1833
|
onColumnDrop(event: CdkDragDrop<ColumnDefinition[]>): void;
|
|
1749
1834
|
onColumnDragStarted(column: ColumnDefinition): void;
|
|
1750
1835
|
onColumnDragEnded(event: CdkDragEnd<ColumnDefinition>, column: ColumnDefinition): void;
|
|
@@ -1781,10 +1866,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1781
1866
|
* Runs only on initial bootstrap (when columns are derived from schema).
|
|
1782
1867
|
*/
|
|
1783
1868
|
private applyAutoRenderer;
|
|
1784
|
-
/**
|
|
1785
|
-
* Check if a value is a valid ColumnDataType
|
|
1786
|
-
*/
|
|
1787
|
-
private isValidColumnDataType;
|
|
1788
1869
|
/**
|
|
1789
1870
|
* Infer column data type from field name patterns when API type is not available
|
|
1790
1871
|
* Refined logic to reduce false positives
|
|
@@ -1919,7 +2000,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1919
2000
|
private isJsonLogicExpression;
|
|
1920
2001
|
private hasConditionalExpression;
|
|
1921
2002
|
private resolveRuntimeEnvironment;
|
|
1922
|
-
private isDiagnosticsRuntimeEnvironment;
|
|
1923
2003
|
private logActionConditionFallback;
|
|
1924
2004
|
getRowClasses(rowData: any): string[] | undefined;
|
|
1925
2005
|
getRowNgStyle(rowData: any): Record<string, string> | undefined;
|
|
@@ -2032,7 +2112,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2032
2112
|
getBadgeClasses(row: any, column: ColumnDefinition): string[];
|
|
2033
2113
|
getBadgeRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
|
|
2034
2114
|
shouldRenderBadge(row: any, column: ColumnDefinition): boolean;
|
|
2035
|
-
getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | 'rating' | null;
|
|
2115
|
+
getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | 'rating' | 'microVisualization' | null;
|
|
2116
|
+
getMicroVisualizationHtml(row: any, column: ColumnDefinition): SafeHtml;
|
|
2117
|
+
private resolveMicroVisualizationForRow;
|
|
2118
|
+
private applyMicroVisualizationExpression;
|
|
2119
|
+
private evaluateMicroVisualizationExpression;
|
|
2036
2120
|
getComposeItems(row: any, column: ColumnDefinition): any[];
|
|
2037
2121
|
trackComposeItem(index: number, item: any): string;
|
|
2038
2122
|
getComposeClasses(row: any, column: ColumnDefinition): string[];
|
|
@@ -2161,6 +2245,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2161
2245
|
private getVirtualizationSources;
|
|
2162
2246
|
isVirtualized(): boolean;
|
|
2163
2247
|
getVirtItemHeight(): number;
|
|
2248
|
+
private getDefaultDensityRowHeight;
|
|
2164
2249
|
getVirtBufferSize(): number;
|
|
2165
2250
|
getVirtMinHeightStyle(): string;
|
|
2166
2251
|
getVirtMinHeightHostStyle(): string | null;
|
|
@@ -2213,10 +2298,18 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2213
2298
|
private splitVisibleRowActionsFromVisible;
|
|
2214
2299
|
private decorateConfiguredRowAction;
|
|
2215
2300
|
private getDiscoveredRowWorkflowActions;
|
|
2301
|
+
private getDiscoveredRowCrudActionsFromSnapshot;
|
|
2302
|
+
private buildDiscoveredRowCrudAction;
|
|
2216
2303
|
private getDiscoveredRowSurfaceActionsFromSnapshot;
|
|
2217
2304
|
private getDiscoveredRowWorkflowActionsFromCatalog;
|
|
2305
|
+
private resolveRowCrudCapabilityOperation;
|
|
2306
|
+
private createSyntheticCrudCapabilityOperation;
|
|
2218
2307
|
private supportsRowCrudAction;
|
|
2219
2308
|
private isCapabilityManagedCrudRowAction;
|
|
2309
|
+
private getCrudRowActionLabel;
|
|
2310
|
+
private getCrudRowActionIcon;
|
|
2311
|
+
private getCrudRowActionColor;
|
|
2312
|
+
private getUnavailableCrudOperationMessage;
|
|
2220
2313
|
private findItemWorkflowAction;
|
|
2221
2314
|
private findItemSurface;
|
|
2222
2315
|
private isRowSurfaceAction;
|
|
@@ -2245,7 +2338,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2245
2338
|
private scheduleRowDiscoveryMarkForCheck;
|
|
2246
2339
|
ngOnDestroy(): void;
|
|
2247
2340
|
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; }]>;
|
|
2248
|
-
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; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "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>;
|
|
2341
|
+
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; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "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>;
|
|
2249
2342
|
static ngAcceptInputType_enableCustomization: unknown;
|
|
2250
2343
|
}
|
|
2251
2344
|
|
|
@@ -3108,6 +3201,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3108
3201
|
private scrollTrackingRafId;
|
|
3109
3202
|
readonly layoutPreviewFields: string[];
|
|
3110
3203
|
private readonly storage;
|
|
3204
|
+
private readonly filterConfigService;
|
|
3111
3205
|
private readonly settingsPanel;
|
|
3112
3206
|
private readonly snackBar;
|
|
3113
3207
|
private readonly destroyRef;
|
|
@@ -3297,16 +3391,8 @@ interface RuleGroup {
|
|
|
3297
3391
|
}
|
|
3298
3392
|
type StructuredRuleCondition = JsonLogicExpression | null;
|
|
3299
3393
|
declare class RuleCompilerService {
|
|
3300
|
-
/**
|
|
3301
|
-
* Compiles a rule group into a single textual expression string, adding
|
|
3302
|
-
* parentheses according to grouping and operator precedence.
|
|
3303
|
-
*/
|
|
3304
|
-
compileGroup(group: RuleGroup): string;
|
|
3305
|
-
/** Compiles a single rule atom to a textual expression. */
|
|
3306
|
-
compileAtom(atom: RuleAtom): string;
|
|
3307
3394
|
compileGroupToJsonLogic(group: RuleGroup): StructuredRuleCondition;
|
|
3308
3395
|
compileAtomToJsonLogic(atom: RuleAtom): JsonLogicExpression | null;
|
|
3309
|
-
private stringify;
|
|
3310
3396
|
private toJsonLogicValue;
|
|
3311
3397
|
private toList;
|
|
3312
3398
|
static ɵfac: i0.ɵɵFactoryDeclaration<RuleCompilerService, never>;
|
|
@@ -3342,6 +3428,11 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
3342
3428
|
manualMode: boolean;
|
|
3343
3429
|
manualErrors: string[];
|
|
3344
3430
|
testSummary: string;
|
|
3431
|
+
normalizationWarning: string;
|
|
3432
|
+
importStatus: {
|
|
3433
|
+
type: 'success' | 'warning' | 'error';
|
|
3434
|
+
message: string;
|
|
3435
|
+
} | null;
|
|
3345
3436
|
editIndex: number;
|
|
3346
3437
|
get currentRules(): RuleItem[];
|
|
3347
3438
|
set currentRules(v: RuleItem[]);
|
|
@@ -3408,6 +3499,7 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
3408
3499
|
removeRule(index: number): void;
|
|
3409
3500
|
duplicateRule(index: number): void;
|
|
3410
3501
|
onRuleToggle(): void;
|
|
3502
|
+
private emitRulesConfigChange;
|
|
3411
3503
|
buildAppliedConfig(baseConfig?: TableConfig): TableConfig;
|
|
3412
3504
|
onApply(): void;
|
|
3413
3505
|
isValid(): boolean;
|
|
@@ -3508,9 +3600,14 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
3508
3600
|
onDropCondition(evt: CdkDragDrop<RuleAtom[]>): void;
|
|
3509
3601
|
updateDraftFromGroup(): void;
|
|
3510
3602
|
getAtomPreview(a: RuleAtom): string;
|
|
3603
|
+
private stringifyJsonLogicPreview;
|
|
3604
|
+
private stringifyJsonLogicInlinePreview;
|
|
3511
3605
|
addSubgroup(): void;
|
|
3512
3606
|
removeSubgroup(index: number): void;
|
|
3513
3607
|
getGroupPreview(g: RuleGroup): string;
|
|
3608
|
+
private isNumericFieldType;
|
|
3609
|
+
private parseNumericCsv;
|
|
3610
|
+
private toFiniteNumber;
|
|
3514
3611
|
private getActiveGroupRef;
|
|
3515
3612
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableRulesEditorComponent, [null, null, null, null, null, { optional: true; }]>;
|
|
3516
3613
|
static ɵcmp: i0.ɵɵComponentDeclaration<TableRulesEditorComponent, "table-rules-editor", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "i18nRules": { "alias": "i18nRules"; "required": false; }; "debugLogs": { "alias": "debugLogs"; "required": false; }; "debugLevel": { "alias": "debugLevel"; "required": false; }; }, { "configChange": "configChange"; }, never, never, true, never>;
|