@praxisui/table 9.0.0-beta.27 → 9.0.0-beta.29
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/ai/component-registry.json +55 -14
- package/docs/column-resize-reorder-implementation-plan.md +42 -34
- package/fesm2022/{praxisui-table-praxisui-table-mNsK6DE9.mjs → praxisui-table-praxisui-table-IVMOBeVU.mjs} +954 -412
- package/fesm2022/{praxisui-table-table-ai.adapter-DN9G-Hms.mjs → praxisui-table-table-ai.adapter-Dh-7AnET.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +14 -14
- package/types/praxisui-table.d.ts +71 -12
|
@@ -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 { G as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, W as coerceTableComponentEditPlans, Y as compileTableComponentEditPlans, I as TASK_PRESETS, a1 as getTableComponentEditPlanCapabilities, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { G as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, W as coerceTableComponentEditPlans, Y as compileTableComponentEditPlans, I as TASK_PRESETS, a1 as getTableComponentEditPlanCapabilities, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-IVMOBeVU.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, n as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, o as PraxisFilter, p as PraxisFilterWidgetConfigEditor, q as PraxisTable, r as PraxisTableConfigEditor, s as PraxisTableInlineAuthoringEditorComponent, t as PraxisTableToolbar, u as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, v as TABLE_COMPONENT_AI_CAPABILITIES, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_KIND, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, I as TASK_PRESETS, K as TableDefaultsProvider, L as TableRulesEditorComponent, O as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, Q as VisualFormulaBuilderComponent, R as buildTableApplyPlan, U as coerceTableComponentEditPlan, W as coerceTableComponentEditPlans, X as compileTableComponentEditPlan, Y as compileTableComponentEditPlans, Z as createTableAuthoringDocument, _ as getActionId, $ as getEnum, a0 as getTableCapabilities, a1 as getTableComponentEditPlanCapabilities, a2 as isTableRendererSupportedByRichContentP0, a3 as mapTableRendererToRichContentP0, a4 as normalizeTableAuthoringDocument, a5 as parseLegacyOrTableDocument, a6 as providePraxisFilterMetadata, a7 as providePraxisTableMetadata, a8 as providePraxisTableToolbarAppearance, a9 as serializeTableAuthoringDocument, aa as toCanonicalTableConfig, ab as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, n as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, o as PraxisFilter, p as PraxisFilterWidgetConfigEditor, q as PraxisTable, r as PraxisTableConfigEditor, s as PraxisTableInlineAuthoringEditorComponent, t as PraxisTableToolbar, u as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, v as TABLE_COMPONENT_AI_CAPABILITIES, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_KIND, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, I as TASK_PRESETS, K as TableDefaultsProvider, L as TableRulesEditorComponent, O as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, Q as VisualFormulaBuilderComponent, R as buildTableApplyPlan, U as coerceTableComponentEditPlan, W as coerceTableComponentEditPlans, X as compileTableComponentEditPlan, Y as compileTableComponentEditPlans, Z as createTableAuthoringDocument, _ as getActionId, $ as getEnum, a0 as getTableCapabilities, a1 as getTableComponentEditPlanCapabilities, a2 as isTableRendererSupportedByRichContentP0, a3 as mapTableRendererToRichContentP0, a4 as normalizeTableAuthoringDocument, a5 as parseLegacyOrTableDocument, a6 as providePraxisFilterMetadata, a7 as providePraxisTableMetadata, a8 as providePraxisTableToolbarAppearance, a9 as serializeTableAuthoringDocument, aa as toCanonicalTableConfig, ab as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-IVMOBeVU.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.29",
|
|
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.0-beta.
|
|
10
|
-
"@praxisui/core": "^9.0.0-beta.
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.0-beta.
|
|
12
|
-
"@praxisui/dynamic-form": "^9.0.0-beta.
|
|
13
|
-
"@praxisui/metadata-editor": "^9.0.0-beta.
|
|
14
|
-
"@praxisui/rich-content": "^9.0.0-beta.
|
|
15
|
-
"@praxisui/settings-panel": "^9.0.0-beta.
|
|
16
|
-
"@praxisui/table-rule-builder": "^9.0.0-beta.
|
|
9
|
+
"@praxisui/ai": "^9.0.0-beta.29",
|
|
10
|
+
"@praxisui/core": "^9.0.0-beta.29",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.0-beta.29",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.0-beta.29",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.0-beta.29",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.0-beta.29",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.0-beta.29",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.0-beta.29",
|
|
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.0-beta.
|
|
21
|
+
"@praxisui/dialog": "^9.0.0-beta.29",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -340,8 +340,10 @@ Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecn
|
|
|
340
340
|
|
|
341
341
|
Quando `actions.row.discovery.enabled` esta ativo e o item publica
|
|
342
342
|
capabilities CRUD canonicas, `PraxisTable` pode sintetizar entradas
|
|
343
|
-
contextuais `view`, `edit` e `delete`.
|
|
344
|
-
|
|
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
|
|
345
347
|
`actionConfig` apontando para a capability, para que um contexto CRUD ou
|
|
346
348
|
host composto materialize a operacao.
|
|
347
349
|
|
|
@@ -433,13 +435,14 @@ degraded filter.
|
|
|
433
435
|
| `rowClick` | `{ row, index }` | Clique em linha. | Partial | Preservado da documentação anterior. |
|
|
434
436
|
| `rowDoubleClick` | `{ action, row }` | Duplo clique quando habilitado. | Partial | Preservado da documentação anterior. |
|
|
435
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. |
|
|
436
|
-
| `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` vindos de capabilities, `actionConfig` carrega a operacao canonica e o host composto deve encaminhar ao contexto CRUD apropriado. | Partial | Preservado da documentação anterior. |
|
|
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. |
|
|
437
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. |
|
|
438
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`. |
|
|
439
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`. |
|
|
440
442
|
| `bulkAction` | `{ action, rows, actionConfig? }` | Acao em lote; `actionConfig` carrega a configuracao da acao quando disponivel. | Partial | Preservado da documentação anterior. |
|
|
441
443
|
| `columnReorder` | `ColumnReorderEvent` | Reordenação de coluna concluída (drag/keyboard). | Partial | Inclui metadados de origem, destino e operação. |
|
|
442
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. |
|
|
443
446
|
| `beforeDelete` | `row` | Antes de delete de linha. | Partial | Preservado da documentação anterior. |
|
|
444
447
|
| `afterDelete` | `row` | Depois de delete com sucesso. | Partial | Preservado da documentação anterior. |
|
|
445
448
|
| `deleteError` | `{ row, error }` | Erro no delete de linha. | Partial | Preservado da documentação anterior. |
|
|
@@ -948,6 +951,7 @@ row selection through table affordances.
|
|
|
948
951
|
| `bulkAction` | `{ action, rows, actionConfig? }` | Acao em lote; `actionConfig` carrega a configuracao da acao quando disponivel. | Partial | Preservado da documentação anterior. |
|
|
949
952
|
| `columnReorder` | `{ action, trigger: 'drag' \ | 'keyboard' \ | Partial | Preservado da documentação anterior. |
|
|
950
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. |
|
|
951
955
|
| `beforeDelete` | `row` | Antes de delete de linha. | Partial | Preservado da documentação anterior. |
|
|
952
956
|
| `afterDelete` | `row` | Depois de delete com sucesso. | Partial | Preservado da documentação anterior. |
|
|
953
957
|
| `deleteError` | `{ row, error }` | Erro no delete de linha. | Partial | Preservado da documentação anterior. |
|
|
@@ -966,23 +970,16 @@ row selection through table affordances.
|
|
|
966
970
|
| `--p-table-row-selected-bg` | row selecionada |
|
|
967
971
|
| `--p-table-row-height` | altura da linha; sobrescreve o default do preset de densidade |
|
|
968
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 |
|
|
969
977
|
| `--p-header-padding` | padding do header |
|
|
970
978
|
| `--p-cell-padding` | padding das células; sobrescreve o default do preset de densidade |
|
|
971
979
|
| `--p-header-font-size` | fonte do header |
|
|
972
980
|
| `--p-header-font-weight` | peso do header |
|
|
973
981
|
| `--p-header-letter-spacing` | tracking do header |
|
|
974
982
|
| `--p-header-text-transform` | caixa do texto do header |
|
|
975
|
-
| `--p-table-drag-handle-size` | tamanho do handle de drag (preset padrao do runtime) |
|
|
976
|
-
| `--p-table-drag-handle-color` | cor do handle de drag |
|
|
977
|
-
| `--p-table-drag-handle-base-opacity` | opacidade base do handle em repouso |
|
|
978
|
-
| `--p-table-drag-handle-idle-bg` | fundo base do handle em repouso |
|
|
979
|
-
| `--p-table-drag-handle-idle-border` | borda base do handle em repouso |
|
|
980
|
-
| `--p-table-drag-handle-hover-bg` | fundo do handle em hover/focus |
|
|
981
|
-
| `--p-table-drag-handle-hover-border` | borda do handle em hover/focus |
|
|
982
|
-
| `--p-table-drag-handle-active-bg` | fundo do handle em estado ativo |
|
|
983
|
-
| `--p-table-drag-handle-active-border` | borda do handle em estado ativo |
|
|
984
|
-
| `--p-table-drag-handle-focus-ring` | cor do anel de foco do handle |
|
|
985
|
-
| `--p-table-drag-handle-transition-duration` | duracao das transicoes do handle |
|
|
986
983
|
| `--p-table-reorder-transition-duration` | duracao da animacao de reorder das colunas |
|
|
987
984
|
| `--p-table-drag-preview-scale` | escala visual do preview durante drag |
|
|
988
985
|
| `--p-table-drag-preview-shadow` | sombra do preview durante drag |
|
|
@@ -1011,6 +1008,8 @@ row selection through table affordances.
|
|
|
1011
1008
|
| `col-borders` | bordas verticais entre colunas |
|
|
1012
1009
|
| `pfx-column-drag-enabled` | habilita layout base de DnD de colunas |
|
|
1013
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 |
|
|
1014
1013
|
|
|
1015
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.
|
|
1016
1015
|
|
|
@@ -1246,6 +1245,7 @@ matching on row values must not decide primary intent.
|
|
|
1246
1245
|
| `density-compact` / `density-comfortable` / `density-spacious` | host classes | controle de densidade visual | Derivadas de `appearance.density`. |
|
|
1247
1246
|
| `.pfx-column-drag-enabled` | host class | habilita feedback visual de reordenacao | Ativada quando contrato de reorder esta habilitado. |
|
|
1248
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. |
|
|
1249
1249
|
|
|
1250
1250
|
### Fallback global de aparencia
|
|
1251
1251
|
|
|
@@ -1086,6 +1086,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1086
1086
|
exportAction: EventEmitter<any>;
|
|
1087
1087
|
columnReorder: EventEmitter<any>;
|
|
1088
1088
|
columnReorderAttempt: EventEmitter<any>;
|
|
1089
|
+
columnResize: EventEmitter<any>;
|
|
1089
1090
|
beforeDelete: EventEmitter<any>;
|
|
1090
1091
|
afterDelete: EventEmitter<any>;
|
|
1091
1092
|
deleteError: EventEmitter<any>;
|
|
@@ -1127,8 +1128,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1127
1128
|
private columnReorderStatusTimer;
|
|
1128
1129
|
private columnReorderVisualStatusTimer;
|
|
1129
1130
|
private columnReorderUndoSubscription;
|
|
1130
|
-
private
|
|
1131
|
-
private
|
|
1131
|
+
private columnRuntimeMutationOperationCounter;
|
|
1132
|
+
private latestColumnRuntimeMutationOperationId;
|
|
1133
|
+
private columnResizeTransientWidths;
|
|
1134
|
+
private columnResizeTableWidthStyle;
|
|
1135
|
+
private columnResizeLayoutSignature;
|
|
1136
|
+
private isApplyingColumnResizeLayoutMutation;
|
|
1137
|
+
private activeColumnResize;
|
|
1138
|
+
private readonly columnResizePointerMoveListener;
|
|
1139
|
+
private readonly columnResizePointerUpListener;
|
|
1140
|
+
private readonly columnResizePointerCancelListener;
|
|
1141
|
+
private readonly columnResizeKeydownListener;
|
|
1132
1142
|
localSource: any[];
|
|
1133
1143
|
localView: any[];
|
|
1134
1144
|
localTotal: number;
|
|
@@ -1202,9 +1212,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1202
1212
|
getRowActionsWidthStyle(): string | null;
|
|
1203
1213
|
getColumnTextAlignStyle(column: ColumnDefinition): string | null;
|
|
1204
1214
|
getColumnWidthStyle(column: ColumnDefinition): string | null;
|
|
1215
|
+
getColumnResizeTableWidthStyle(): string | null;
|
|
1205
1216
|
getColumnHeaderAttrStyle(column: ColumnDefinition): string | null;
|
|
1206
1217
|
getColumnHeaderNgStyle(column: ColumnDefinition): Record<string, string> | undefined;
|
|
1207
1218
|
getColumnCellAttrStyle(column: ColumnDefinition): string | null;
|
|
1219
|
+
private mergeColumnWidthIntoInlineStyle;
|
|
1220
|
+
private buildColumnWidthInlineStyle;
|
|
1208
1221
|
getTableElevationClassName(): string;
|
|
1209
1222
|
private normalizeTableElevationLevel;
|
|
1210
1223
|
private resolveRuntimeTableElevationLevel;
|
|
@@ -1363,6 +1376,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1363
1376
|
private normalizePersistedExportFormats;
|
|
1364
1377
|
private normalizePersistedRowActionIds;
|
|
1365
1378
|
private normalizePersistedColumnIds;
|
|
1379
|
+
private columnIdentitySetChanged;
|
|
1366
1380
|
private clonePlainObject;
|
|
1367
1381
|
private setShowToolbar;
|
|
1368
1382
|
private shouldExposeToolbar;
|
|
@@ -1746,6 +1760,46 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1746
1760
|
isColumnDraggingEnabled(): boolean;
|
|
1747
1761
|
isColumnDragIndicatorEnabled(): boolean;
|
|
1748
1762
|
isColumnDraggable(column: ColumnDefinition | null | undefined): boolean;
|
|
1763
|
+
isColumnResizeEnabled(): boolean;
|
|
1764
|
+
isColumnResizable(column: ColumnDefinition | null | undefined): boolean;
|
|
1765
|
+
isColumnResizeActive(column?: ColumnDefinition | null): boolean;
|
|
1766
|
+
getColumnResizeHandleAriaLabel(column: ColumnDefinition): string;
|
|
1767
|
+
getColumnResizeHandleTooltip(column: ColumnDefinition): string;
|
|
1768
|
+
getColumnResizeMinWidthAriaValue(column: ColumnDefinition): number;
|
|
1769
|
+
getColumnResizeMaxWidthAriaValue(column: ColumnDefinition): number | null;
|
|
1770
|
+
getColumnResizeCurrentWidthAriaValue(column: ColumnDefinition): number | null;
|
|
1771
|
+
onColumnResizeHandleClick(event: MouseEvent): void;
|
|
1772
|
+
onColumnResizeHandleKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
|
|
1773
|
+
onColumnResizePointerDown(event: PointerEvent, column: ColumnDefinition): void;
|
|
1774
|
+
private onColumnResizePointerMove;
|
|
1775
|
+
private onColumnResizePointerUp;
|
|
1776
|
+
private onColumnResizePointerCancel;
|
|
1777
|
+
private onColumnResizeDocumentKeydown;
|
|
1778
|
+
private addColumnResizeDocumentListeners;
|
|
1779
|
+
private removeColumnResizeDocumentListeners;
|
|
1780
|
+
private cancelColumnResize;
|
|
1781
|
+
private commitColumnResize;
|
|
1782
|
+
private applyColumnResizeWidth;
|
|
1783
|
+
private emitAndPersistColumnResize;
|
|
1784
|
+
private updateConfigColumnWidth;
|
|
1785
|
+
private updateConfigColumnWidths;
|
|
1786
|
+
private updateColumnResizeTableWidthFromDelta;
|
|
1787
|
+
private captureColumnResizeLockedWidths;
|
|
1788
|
+
private resolveColumnResizeTableWidthPx;
|
|
1789
|
+
private resolveColumnWidthPx;
|
|
1790
|
+
private parseColumnResizePixelWidth;
|
|
1791
|
+
private normalizeColumnResizeWidthStyle;
|
|
1792
|
+
private clampColumnWidthPx;
|
|
1793
|
+
private resolveColumnResizeEffectiveMinWidthPx;
|
|
1794
|
+
private resolveColumnResizeMinWidthPx;
|
|
1795
|
+
private resolveColumnResizeMaxWidthPx;
|
|
1796
|
+
private normalizeColumnResizeConfigWidths;
|
|
1797
|
+
private runColumnResizeLayoutMutation;
|
|
1798
|
+
private reconcileColumnResizeLayoutState;
|
|
1799
|
+
private clearColumnResizeLayoutState;
|
|
1800
|
+
private createColumnResizeLayoutSignature;
|
|
1801
|
+
private formatColumnWidthPx;
|
|
1802
|
+
private isTableRtl;
|
|
1749
1803
|
private resolveColumnReorderHeader;
|
|
1750
1804
|
private isEnglishLocale;
|
|
1751
1805
|
private isEnglishLocaleValue;
|
|
@@ -1762,9 +1816,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1762
1816
|
private emitColumnReorderAttempt;
|
|
1763
1817
|
private createColumnReorderOperationId;
|
|
1764
1818
|
private isLatestColumnReorderOperation;
|
|
1819
|
+
private createColumnRuntimeMutationOperationId;
|
|
1820
|
+
private isLatestColumnRuntimeMutationOperation;
|
|
1765
1821
|
private offerColumnReorderUndo;
|
|
1766
1822
|
private restoreColumnOrderFromUndo;
|
|
1767
|
-
|
|
1823
|
+
onColumnHeaderReorderKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
|
|
1768
1824
|
onColumnDrop(event: CdkDragDrop<ColumnDefinition[]>): void;
|
|
1769
1825
|
onColumnDragStarted(column: ColumnDefinition): void;
|
|
1770
1826
|
onColumnDragEnded(event: CdkDragEnd<ColumnDefinition>, column: ColumnDefinition): void;
|
|
@@ -2273,7 +2329,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2273
2329
|
private scheduleRowDiscoveryMarkForCheck;
|
|
2274
2330
|
ngOnDestroy(): void;
|
|
2275
2331
|
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; }]>;
|
|
2276
|
-
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>;
|
|
2332
|
+
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>;
|
|
2277
2333
|
static ngAcceptInputType_enableCustomization: unknown;
|
|
2278
2334
|
}
|
|
2279
2335
|
|
|
@@ -3326,16 +3382,8 @@ interface RuleGroup {
|
|
|
3326
3382
|
}
|
|
3327
3383
|
type StructuredRuleCondition = JsonLogicExpression | null;
|
|
3328
3384
|
declare class RuleCompilerService {
|
|
3329
|
-
/**
|
|
3330
|
-
* Compiles a rule group into a single textual expression string, adding
|
|
3331
|
-
* parentheses according to grouping and operator precedence.
|
|
3332
|
-
*/
|
|
3333
|
-
compileGroup(group: RuleGroup): string;
|
|
3334
|
-
/** Compiles a single rule atom to a textual expression. */
|
|
3335
|
-
compileAtom(atom: RuleAtom): string;
|
|
3336
3385
|
compileGroupToJsonLogic(group: RuleGroup): StructuredRuleCondition;
|
|
3337
3386
|
compileAtomToJsonLogic(atom: RuleAtom): JsonLogicExpression | null;
|
|
3338
|
-
private stringify;
|
|
3339
3387
|
private toJsonLogicValue;
|
|
3340
3388
|
private toList;
|
|
3341
3389
|
static ɵfac: i0.ɵɵFactoryDeclaration<RuleCompilerService, never>;
|
|
@@ -3371,6 +3419,11 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
3371
3419
|
manualMode: boolean;
|
|
3372
3420
|
manualErrors: string[];
|
|
3373
3421
|
testSummary: string;
|
|
3422
|
+
normalizationWarning: string;
|
|
3423
|
+
importStatus: {
|
|
3424
|
+
type: 'success' | 'warning' | 'error';
|
|
3425
|
+
message: string;
|
|
3426
|
+
} | null;
|
|
3374
3427
|
editIndex: number;
|
|
3375
3428
|
get currentRules(): RuleItem[];
|
|
3376
3429
|
set currentRules(v: RuleItem[]);
|
|
@@ -3437,6 +3490,7 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
3437
3490
|
removeRule(index: number): void;
|
|
3438
3491
|
duplicateRule(index: number): void;
|
|
3439
3492
|
onRuleToggle(): void;
|
|
3493
|
+
private emitRulesConfigChange;
|
|
3440
3494
|
buildAppliedConfig(baseConfig?: TableConfig): TableConfig;
|
|
3441
3495
|
onApply(): void;
|
|
3442
3496
|
isValid(): boolean;
|
|
@@ -3537,9 +3591,14 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
|
|
|
3537
3591
|
onDropCondition(evt: CdkDragDrop<RuleAtom[]>): void;
|
|
3538
3592
|
updateDraftFromGroup(): void;
|
|
3539
3593
|
getAtomPreview(a: RuleAtom): string;
|
|
3594
|
+
private stringifyJsonLogicPreview;
|
|
3595
|
+
private stringifyJsonLogicInlinePreview;
|
|
3540
3596
|
addSubgroup(): void;
|
|
3541
3597
|
removeSubgroup(index: number): void;
|
|
3542
3598
|
getGroupPreview(g: RuleGroup): string;
|
|
3599
|
+
private isNumericFieldType;
|
|
3600
|
+
private parseNumericCsv;
|
|
3601
|
+
private toFiniteNumber;
|
|
3543
3602
|
private getActiveGroupRef;
|
|
3544
3603
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableRulesEditorComponent, [null, null, null, null, null, { optional: true; }]>;
|
|
3545
3604
|
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>;
|