@praxisui/table 10.0.0-rc.10 → 10.0.0-rc.12
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 +1 -1
- package/ai/component-registry.json +2 -2
- package/docs/local-data-mode-precedence.md +21 -0
- package/fesm2022/{praxisui-table-praxisui-table-DFhDGXIx.mjs → praxisui-table-praxisui-table-DXPvAOf8.mjs} +68 -49
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-BLXICz1r.mjs → praxisui-table-table-agentic-authoring-turn-flow-7mVc-Xm1.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-CGYmONXh.mjs → praxisui-table-table-ai.adapter-nUhrYuKK.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/types/praxisui-table.d.ts +4 -4
package/README.md
CHANGED
|
@@ -745,7 +745,7 @@ O editor de conteúdo da tabela recebe a configuração efetiva em contexto tran
|
|
|
745
745
|
|
|
746
746
|
O editor do filtro permite selecionar o recurso e carregar seus campos pelo schema de filtro canônico. `resourcePath` e preferências visuais são persistidos; os metadados carregados permanecem derivados da API.
|
|
747
747
|
|
|
748
|
-
Ao receber novos `filterCriteria` ou `queryContext` de outro widget, a consulta remota reinicia na página zero.
|
|
748
|
+
Ao receber novos `filterCriteria` ou `queryContext` de outro widget, a consulta remota reinicia na página zero. Com a estratégia omitida, paginação e ordenação são inferidas da origem: `server` para remoto e `client` para local. O editor oferece **Automática (pela fonte de dados)**, que remove a propriedade; escolhas explícitas são preservadas. Consulte [a precedência oficial](docs/local-data-mode-precedence.md) para as regras de round-trip e validação do total remoto.
|
|
749
749
|
|
|
750
750
|
## Filter heading and advanced-action presentation
|
|
751
751
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-13T20:53:39.090Z",
|
|
4
4
|
"packageName": "@praxisui/table",
|
|
5
|
-
"packageVersion": "10.0.0-rc.
|
|
5
|
+
"packageVersion": "10.0.0-rc.12",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -11,6 +11,27 @@ Regras de conflito:
|
|
|
11
11
|
- `resourcePath` + `data` ao mesmo tempo resolve para `remote`.
|
|
12
12
|
- Limpar `document.bindings.resourcePath` no documento autorado é a forma explícita de remover a conexão remota via editor.
|
|
13
13
|
|
|
14
|
+
## Estratégia contextual de paginação e ordenação
|
|
15
|
+
|
|
16
|
+
`pagination.strategy` e `sorting.strategy` são opcionais. Quando ausentes, o
|
|
17
|
+
runtime usa `server` para uma origem remota e `client` para dados locais. Os
|
|
18
|
+
defaults compartilhados e o reset dos editores preservam essa ausência; não
|
|
19
|
+
transformam uma configuração parcial em uma escolha explícita de cliente.
|
|
20
|
+
|
|
21
|
+
Os editores apresentam **Automática (pela fonte de dados)**. Essa opção
|
|
22
|
+
remove a propriedade do documento. As únicas estratégias públicas continuam
|
|
23
|
+
sendo `client` e `server`; não existe um valor serializado `auto`. Uma escolha
|
|
24
|
+
explícita é preservada, respeitando as restrições e diagnostics do modo local.
|
|
25
|
+
Uma operação parcial de authoring que omite a estratégia mantém uma escolha
|
|
26
|
+
anterior; omissão em um patch não significa limpar essa escolha.
|
|
27
|
+
|
|
28
|
+
Na paginação remota, o total vem da resposta do backend. O paginator e o sort
|
|
29
|
+
cliente do `MatTableDataSource` não devem ser anexados nessa estratégia, pois
|
|
30
|
+
seus callbacks assíncronos podem substituir o total pela quantidade de registros
|
|
31
|
+
da página e voltar o índice para zero. A prova deve aguardar esses callbacks e
|
|
32
|
+
as materializações de capabilities, navegar à segunda página e confirmar que o
|
|
33
|
+
total e o intervalo continuam corretos. Uma captura intermediária não basta.
|
|
34
|
+
|
|
14
35
|
## Ciclo da primeira consulta remota
|
|
15
36
|
|
|
16
37
|
Quando `resourcePath`, `config` e `queryContext` chegam no primeiro ciclo de inputs, o
|
|
@@ -8500,6 +8500,7 @@ const PRAXIS_TABLE_EDITOR_I18N_CONFIG = {
|
|
|
8500
8500
|
'behavior.pagination.title': 'Paginacao',
|
|
8501
8501
|
'behavior.pagination.description': 'Configure como os dados sao divididos em paginas',
|
|
8502
8502
|
'behavior.pagination.enabled': 'Habilitar paginacao',
|
|
8503
|
+
'behavior.strategy.auto': 'Automática (pela fonte de dados)',
|
|
8503
8504
|
'behavior.pagination.strategy': 'Estrategia de paginacao',
|
|
8504
8505
|
'behavior.pagination.pageSize': 'Itens por pagina',
|
|
8505
8506
|
'behavior.pagination.pageSizeHint': 'Número de registros exibidos por pagina.',
|
|
@@ -9831,6 +9832,7 @@ const PRAXIS_TABLE_EDITOR_I18N_CONFIG = {
|
|
|
9831
9832
|
'behavior.pagination.title': 'Pagination',
|
|
9832
9833
|
'behavior.pagination.description': 'Configure how data is divided into pages',
|
|
9833
9834
|
'behavior.pagination.enabled': 'Enable pagination',
|
|
9835
|
+
'behavior.strategy.auto': 'Automatic (by data source)',
|
|
9834
9836
|
'behavior.pagination.strategy': 'Pagination strategy',
|
|
9835
9837
|
'behavior.pagination.pageSize': 'Items per page',
|
|
9836
9838
|
'behavior.pagination.pageSizeHint': 'Number of records displayed per page.',
|
|
@@ -22359,6 +22361,8 @@ class PraxisTable {
|
|
|
22359
22361
|
return true;
|
|
22360
22362
|
if (config.export?.enabled)
|
|
22361
22363
|
return true;
|
|
22364
|
+
if (config.actions?.bulk?.enabled)
|
|
22365
|
+
return true;
|
|
22362
22366
|
if (config.behavior?.filtering?.advancedFilters?.enabled)
|
|
22363
22367
|
return true;
|
|
22364
22368
|
return (config.toolbar?.actions?.length ?? 0) > 0;
|
|
@@ -23007,7 +23011,7 @@ class PraxisTable {
|
|
|
23007
23011
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
23008
23012
|
return;
|
|
23009
23013
|
this.aiAdapterLoadStarted = true;
|
|
23010
|
-
import('./praxisui-table-table-ai.adapter-
|
|
23014
|
+
import('./praxisui-table-table-ai.adapter-nUhrYuKK.mjs')
|
|
23011
23015
|
.then(({ TableAiAdapter }) => {
|
|
23012
23016
|
if (!this.isAiAssistantEnabled()) {
|
|
23013
23017
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -23753,7 +23757,7 @@ class PraxisTable {
|
|
|
23753
23757
|
initializeAiAssistantController() {
|
|
23754
23758
|
if (!this.aiAdapter || this.aiAssistantController)
|
|
23755
23759
|
return;
|
|
23756
|
-
import('./praxisui-table-table-agentic-authoring-turn-flow-
|
|
23760
|
+
import('./praxisui-table-table-agentic-authoring-turn-flow-7mVc-Xm1.mjs')
|
|
23757
23761
|
.then(({ TableAgenticAuthoringTurnFlow }) => {
|
|
23758
23762
|
if (this.aiAssistantController || !this.aiAdapter)
|
|
23759
23763
|
return;
|
|
@@ -39319,6 +39323,7 @@ class PraxisTable {
|
|
|
39319
39323
|
this.publishSelectionStatus(row, selectedRows.length);
|
|
39320
39324
|
this.emitResourceEvent('selection-change', 'selectionChange', payload, null, this.getRowId(row ?? selectedRows[0]));
|
|
39321
39325
|
this.refreshAiAssistantContextAfterSelectionChange();
|
|
39326
|
+
this.cdr.markForCheck();
|
|
39322
39327
|
}
|
|
39323
39328
|
publishSelectionStatus(row, selectedCount) {
|
|
39324
39329
|
if (this.config?.accessibility?.announcements?.userActions === false)
|
|
@@ -51816,14 +51821,13 @@ class BehaviorConfigEditorComponent {
|
|
|
51816
51821
|
this.arrayToString(pagination.pageSizeOptions || [5, 10, 25, 50]),
|
|
51817
51822
|
],
|
|
51818
51823
|
showFirstLastButtons: [pagination.showFirstLastButtons !== false],
|
|
51819
|
-
|
|
51820
|
-
paginationStrategy: [this.resourcePath ? 'server' : 'client'], // V2 only
|
|
51824
|
+
paginationStrategy: [this.isV2 ? null : (this.resourcePath ? 'server' : 'client')],
|
|
51821
51825
|
paginationPosition: ['bottom'],
|
|
51822
51826
|
paginationStyle: ['default'],
|
|
51823
51827
|
// Sorting
|
|
51824
51828
|
sortingEnabled: [gridOptions.sortable !== false],
|
|
51825
51829
|
multiSort: [false], // V2 only
|
|
51826
|
-
sortingStrategy: ['client'],
|
|
51830
|
+
sortingStrategy: [this.isV2 ? null : 'client'],
|
|
51827
51831
|
allowClearSort: [true], // V2 only
|
|
51828
51832
|
defaultSortField: [''],
|
|
51829
51833
|
defaultSortDirection: ['asc'],
|
|
@@ -51916,8 +51920,7 @@ class BehaviorConfigEditorComponent {
|
|
|
51916
51920
|
pageSize: behavior.pagination.pageSize || 10,
|
|
51917
51921
|
pageSizeOptions: this.arrayToString(behavior.pagination.pageSizeOptions || [5, 10, 25, 50]),
|
|
51918
51922
|
showFirstLastButtons: behavior.pagination.showFirstLastButtons !== false,
|
|
51919
|
-
|
|
51920
|
-
paginationStrategy: behavior.pagination.strategy ?? (this.resourcePath ? 'server' : 'client'),
|
|
51923
|
+
paginationStrategy: behavior.pagination.strategy ?? null,
|
|
51921
51924
|
paginationPosition: behavior.pagination.position || 'bottom',
|
|
51922
51925
|
paginationStyle: behavior.pagination.style || 'default',
|
|
51923
51926
|
});
|
|
@@ -51926,7 +51929,7 @@ class BehaviorConfigEditorComponent {
|
|
|
51926
51929
|
this.behaviorForm.patchValue({
|
|
51927
51930
|
sortingEnabled: behavior.sorting.enabled !== false,
|
|
51928
51931
|
multiSort: behavior.sorting.multiSort || false,
|
|
51929
|
-
sortingStrategy: behavior.sorting.strategy
|
|
51932
|
+
sortingStrategy: behavior.sorting.strategy ?? null,
|
|
51930
51933
|
allowClearSort: behavior.sorting.allowClearSort !== false,
|
|
51931
51934
|
defaultSortField: (Array.isArray(behavior.sorting.defaultSort) ? behavior.sorting.defaultSort[0]?.column : behavior.sorting.defaultSort?.column) || '',
|
|
51932
51935
|
defaultSortDirection: (Array.isArray(behavior.sorting.defaultSort) ? behavior.sorting.defaultSort[0]?.direction : behavior.sorting.defaultSort?.direction) || 'asc',
|
|
@@ -52105,6 +52108,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52105
52108
|
position: values.paginationPosition || 'bottom',
|
|
52106
52109
|
style: values.paginationStyle || 'default',
|
|
52107
52110
|
};
|
|
52111
|
+
if (paginationStrategy === undefined)
|
|
52112
|
+
delete v2Config.behavior.pagination.strategy;
|
|
52108
52113
|
// Sorting
|
|
52109
52114
|
v2Config.behavior.sorting = {
|
|
52110
52115
|
enabled: values.sortingEnabled,
|
|
@@ -52114,6 +52119,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52114
52119
|
showSortIndicators: true,
|
|
52115
52120
|
indicatorPosition: 'end',
|
|
52116
52121
|
};
|
|
52122
|
+
if (sortingStrategy === undefined)
|
|
52123
|
+
delete v2Config.behavior.sorting.strategy;
|
|
52117
52124
|
const dfField = (values.defaultSortField || '').trim();
|
|
52118
52125
|
const dfDir = values.defaultSortDirection;
|
|
52119
52126
|
if (dfField) {
|
|
@@ -52361,7 +52368,7 @@ class BehaviorConfigEditorComponent {
|
|
|
52361
52368
|
resolveStrategy(value) {
|
|
52362
52369
|
if (this.forceClientStrategies)
|
|
52363
52370
|
return 'client';
|
|
52364
|
-
return value === 'server'
|
|
52371
|
+
return value === 'server' || value === 'client' ? value : undefined;
|
|
52365
52372
|
}
|
|
52366
52373
|
enforceStrategyConstraints(emitEvent) {
|
|
52367
52374
|
if (!this.isV2 || !this.forceClientStrategies || !this.behaviorForm) {
|
|
@@ -52664,7 +52671,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52664
52671
|
|
|
52665
52672
|
@if (isV2) { <mat-form-field appearance="outline">
|
|
52666
52673
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
52667
|
-
<mat-select formControlName="paginationStrategy">
|
|
52674
|
+
<mat-select formControlName="paginationStrategy" [canSelectNullableOptions]="true">
|
|
52675
|
+
@if (!forceClientStrategies) { <mat-option [value]="null">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option> }
|
|
52668
52676
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
52669
52677
|
<mat-option value="server" [disabled]="forceClientStrategies"
|
|
52670
52678
|
>{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option
|
|
@@ -52752,7 +52760,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52752
52760
|
|
|
52753
52761
|
<mat-form-field appearance="outline">
|
|
52754
52762
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
52755
|
-
<mat-select formControlName="sortingStrategy">
|
|
52763
|
+
<mat-select formControlName="sortingStrategy" [canSelectNullableOptions]="true">
|
|
52764
|
+
@if (!forceClientStrategies) { <mat-option [value]="null">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option> }
|
|
52756
52765
|
<mat-option value="client"
|
|
52757
52766
|
>{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option
|
|
52758
52767
|
>
|
|
@@ -53686,7 +53695,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
53686
53695
|
|
|
53687
53696
|
@if (isV2) { <mat-form-field appearance="outline">
|
|
53688
53697
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
53689
|
-
<mat-select formControlName="paginationStrategy">
|
|
53698
|
+
<mat-select formControlName="paginationStrategy" [canSelectNullableOptions]="true">
|
|
53699
|
+
@if (!forceClientStrategies) { <mat-option [value]="null">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option> }
|
|
53690
53700
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
53691
53701
|
<mat-option value="server" [disabled]="forceClientStrategies"
|
|
53692
53702
|
>{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option
|
|
@@ -53774,7 +53784,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
53774
53784
|
|
|
53775
53785
|
<mat-form-field appearance="outline">
|
|
53776
53786
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
53777
|
-
<mat-select formControlName="sortingStrategy">
|
|
53787
|
+
<mat-select formControlName="sortingStrategy" [canSelectNullableOptions]="true">
|
|
53788
|
+
@if (!forceClientStrategies) { <mat-option [value]="null">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option> }
|
|
53778
53789
|
<mat-option value="client"
|
|
53779
53790
|
>{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option
|
|
53780
53791
|
>
|
|
@@ -67845,7 +67856,6 @@ class PraxisTableConfigEditor {
|
|
|
67845
67856
|
sorting: {
|
|
67846
67857
|
enabled: true,
|
|
67847
67858
|
multiSort: false,
|
|
67848
|
-
strategy: 'client',
|
|
67849
67859
|
showSortIndicators: true,
|
|
67850
67860
|
indicatorPosition: 'end',
|
|
67851
67861
|
allowClearSort: true,
|
|
@@ -67864,7 +67874,6 @@ class PraxisTableConfigEditor {
|
|
|
67864
67874
|
showPageInfo: true,
|
|
67865
67875
|
position: 'bottom',
|
|
67866
67876
|
style: 'default',
|
|
67867
|
-
strategy: 'client',
|
|
67868
67877
|
},
|
|
67869
67878
|
},
|
|
67870
67879
|
toolbar: {
|
|
@@ -73493,11 +73502,11 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73493
73502
|
pageSize = 10;
|
|
73494
73503
|
pageSizeOptionsText = '5, 10, 25, 50';
|
|
73495
73504
|
showFirstLastButtons = true;
|
|
73496
|
-
paginationStrategy
|
|
73505
|
+
paginationStrategy;
|
|
73497
73506
|
paginationPosition = 'bottom';
|
|
73498
73507
|
paginationStyle = 'default';
|
|
73499
73508
|
sortingEnabled = true;
|
|
73500
|
-
sortingStrategy
|
|
73509
|
+
sortingStrategy;
|
|
73501
73510
|
allowClearSort = true;
|
|
73502
73511
|
defaultSortField = '';
|
|
73503
73512
|
defaultSortDirection = 'asc';
|
|
@@ -73540,11 +73549,11 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73540
73549
|
this.pageSizeOptionsText = this.arrayToString(this.workingConfig.behavior?.pagination?.pageSizeOptions || [5, 10, 25, 50]);
|
|
73541
73550
|
this.showFirstLastButtons =
|
|
73542
73551
|
this.workingConfig.behavior?.pagination?.showFirstLastButtons !== false;
|
|
73543
|
-
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy
|
|
73552
|
+
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy;
|
|
73544
73553
|
this.paginationPosition = this.workingConfig.behavior?.pagination?.position || 'bottom';
|
|
73545
73554
|
this.paginationStyle = this.workingConfig.behavior?.pagination?.style || 'default';
|
|
73546
73555
|
this.sortingEnabled = this.workingConfig.behavior?.sorting?.enabled !== false;
|
|
73547
|
-
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy
|
|
73556
|
+
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy;
|
|
73548
73557
|
this.allowClearSort = this.workingConfig.behavior?.sorting?.allowClearSort !== false;
|
|
73549
73558
|
this.defaultSortField = this.getDefaultSortField(this.workingConfig);
|
|
73550
73559
|
this.defaultSortDirection = this.getDefaultSortDirection(this.workingConfig);
|
|
@@ -73656,7 +73665,7 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73656
73665
|
this.patchPagination();
|
|
73657
73666
|
}
|
|
73658
73667
|
setPaginationStrategy(value) {
|
|
73659
|
-
this.paginationStrategy = value
|
|
73668
|
+
this.paginationStrategy = value;
|
|
73660
73669
|
this.patchPagination();
|
|
73661
73670
|
}
|
|
73662
73671
|
setPaginationPosition(value) {
|
|
@@ -73672,7 +73681,7 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73672
73681
|
this.patchSorting();
|
|
73673
73682
|
}
|
|
73674
73683
|
setSortingStrategy(value) {
|
|
73675
|
-
this.sortingStrategy = value
|
|
73684
|
+
this.sortingStrategy = value;
|
|
73676
73685
|
this.patchSorting();
|
|
73677
73686
|
}
|
|
73678
73687
|
setSortingAllowClear(value) {
|
|
@@ -73731,11 +73740,11 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73731
73740
|
this.pageSizeOptionsText = this.arrayToString(this.workingConfig.behavior?.pagination?.pageSizeOptions || [5, 10, 25, 50]);
|
|
73732
73741
|
this.showFirstLastButtons =
|
|
73733
73742
|
this.workingConfig.behavior?.pagination?.showFirstLastButtons !== false;
|
|
73734
|
-
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy
|
|
73743
|
+
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy;
|
|
73735
73744
|
this.paginationPosition = this.workingConfig.behavior?.pagination?.position || 'bottom';
|
|
73736
73745
|
this.paginationStyle = this.workingConfig.behavior?.pagination?.style || 'default';
|
|
73737
73746
|
this.sortingEnabled = this.workingConfig.behavior?.sorting?.enabled !== false;
|
|
73738
|
-
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy
|
|
73747
|
+
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy;
|
|
73739
73748
|
this.allowClearSort = this.workingConfig.behavior?.sorting?.allowClearSort !== false;
|
|
73740
73749
|
this.defaultSortField = this.getDefaultSortField(this.workingConfig);
|
|
73741
73750
|
this.defaultSortDirection = this.getDefaultSortDirection(this.workingConfig);
|
|
@@ -73879,34 +73888,36 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73879
73888
|
this.emitConfig();
|
|
73880
73889
|
}
|
|
73881
73890
|
patchPagination() {
|
|
73882
|
-
|
|
73883
|
-
pagination
|
|
73884
|
-
|
|
73885
|
-
|
|
73886
|
-
|
|
73887
|
-
|
|
73888
|
-
|
|
73889
|
-
|
|
73890
|
-
|
|
73891
|
-
|
|
73892
|
-
|
|
73893
|
-
|
|
73894
|
-
|
|
73895
|
-
|
|
73891
|
+
const pagination = {
|
|
73892
|
+
...(this.workingConfig.behavior?.pagination || {}),
|
|
73893
|
+
enabled: this.paginationEnabled,
|
|
73894
|
+
pageSize: this.pageSize,
|
|
73895
|
+
pageSizeOptions: this.parseNumberList(this.pageSizeOptionsText, [5, 10, 25, 50]),
|
|
73896
|
+
showFirstLastButtons: this.showFirstLastButtons,
|
|
73897
|
+
showPageNumbers: this.workingConfig.behavior?.pagination?.showPageNumbers ?? true,
|
|
73898
|
+
showPageInfo: this.workingConfig.behavior?.pagination?.showPageInfo ?? true,
|
|
73899
|
+
position: this.paginationPosition,
|
|
73900
|
+
style: this.paginationStyle,
|
|
73901
|
+
strategy: this.paginationStrategy,
|
|
73902
|
+
};
|
|
73903
|
+
if (this.paginationStrategy === undefined)
|
|
73904
|
+
delete pagination.strategy;
|
|
73905
|
+
this.patchBehavior({ pagination });
|
|
73896
73906
|
}
|
|
73897
73907
|
patchSorting() {
|
|
73898
|
-
|
|
73899
|
-
sorting
|
|
73900
|
-
|
|
73901
|
-
|
|
73902
|
-
|
|
73903
|
-
|
|
73904
|
-
|
|
73905
|
-
|
|
73906
|
-
|
|
73907
|
-
|
|
73908
|
-
|
|
73909
|
-
|
|
73908
|
+
const sorting = {
|
|
73909
|
+
...(this.workingConfig.behavior?.sorting || {}),
|
|
73910
|
+
enabled: this.sortingEnabled,
|
|
73911
|
+
strategy: this.sortingStrategy,
|
|
73912
|
+
allowClearSort: this.allowClearSort,
|
|
73913
|
+
multiSort: this.workingConfig.behavior?.sorting?.multiSort ?? false,
|
|
73914
|
+
showSortIndicators: this.workingConfig.behavior?.sorting?.showSortIndicators ?? true,
|
|
73915
|
+
indicatorPosition: this.workingConfig.behavior?.sorting?.indicatorPosition || 'end',
|
|
73916
|
+
defaultSort: this.buildDefaultSort(),
|
|
73917
|
+
};
|
|
73918
|
+
if (this.sortingStrategy === undefined)
|
|
73919
|
+
delete sorting.strategy;
|
|
73920
|
+
this.patchBehavior({ sorting });
|
|
73910
73921
|
}
|
|
73911
73922
|
patchMessages(patch) {
|
|
73912
73923
|
this.workingConfig = {
|
|
@@ -74248,10 +74259,12 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
74248
74259
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
74249
74260
|
<mat-select
|
|
74250
74261
|
data-testid="table-inline-editor-pagination-strategy"
|
|
74262
|
+
[canSelectNullableOptions]="true"
|
|
74251
74263
|
[ngModel]="paginationStrategy"
|
|
74252
74264
|
(ngModelChange)="setPaginationStrategy($event)"
|
|
74253
74265
|
[disabled]="readonly || !paginationEnabled"
|
|
74254
74266
|
>
|
|
74267
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74255
74268
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
74256
74269
|
<mat-option value="server">{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option>
|
|
74257
74270
|
</mat-select>
|
|
@@ -74299,10 +74312,12 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
74299
74312
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
74300
74313
|
<mat-select
|
|
74301
74314
|
data-testid="table-inline-editor-sorting-strategy"
|
|
74315
|
+
[canSelectNullableOptions]="true"
|
|
74302
74316
|
[ngModel]="sortingStrategy"
|
|
74303
74317
|
(ngModelChange)="setSortingStrategy($event)"
|
|
74304
74318
|
[disabled]="readonly || !sortingEnabled"
|
|
74305
74319
|
>
|
|
74320
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74306
74321
|
<mat-option value="client">{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option>
|
|
74307
74322
|
<mat-option value="server">{{ tx('behavior.sorting.strategy.server', 'Server (remote sorting)') }}</mat-option>
|
|
74308
74323
|
</mat-select>
|
|
@@ -74731,10 +74746,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
74731
74746
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
74732
74747
|
<mat-select
|
|
74733
74748
|
data-testid="table-inline-editor-pagination-strategy"
|
|
74749
|
+
[canSelectNullableOptions]="true"
|
|
74734
74750
|
[ngModel]="paginationStrategy"
|
|
74735
74751
|
(ngModelChange)="setPaginationStrategy($event)"
|
|
74736
74752
|
[disabled]="readonly || !paginationEnabled"
|
|
74737
74753
|
>
|
|
74754
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74738
74755
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
74739
74756
|
<mat-option value="server">{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option>
|
|
74740
74757
|
</mat-select>
|
|
@@ -74782,10 +74799,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
74782
74799
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
74783
74800
|
<mat-select
|
|
74784
74801
|
data-testid="table-inline-editor-sorting-strategy"
|
|
74802
|
+
[canSelectNullableOptions]="true"
|
|
74785
74803
|
[ngModel]="sortingStrategy"
|
|
74786
74804
|
(ngModelChange)="setSortingStrategy($event)"
|
|
74787
74805
|
[disabled]="readonly || !sortingEnabled"
|
|
74788
74806
|
>
|
|
74807
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74789
74808
|
<mat-option value="client">{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option>
|
|
74790
74809
|
<mat-option value="server">{{ tx('behavior.sorting.strategy.server', 'Server (remote sorting)') }}</mat-option>
|
|
74791
74810
|
</mat-select>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable, firstValueFrom } from 'rxjs';
|
|
2
2
|
import { withAuthoringScopePolicy } from '@praxisui/ai';
|
|
3
|
-
import { ar as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-
|
|
3
|
+
import { ar as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-DXPvAOf8.mjs';
|
|
4
4
|
|
|
5
5
|
class TableAgenticAuthoringTurnFlow {
|
|
6
6
|
adapter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { firstValueFrom } from 'rxjs';
|
|
2
2
|
import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
|
|
3
3
|
import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
|
|
4
|
-
import { W as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, p as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, a6 as coerceTableComponentEditPlans, a8 as compileTableComponentEditPlans, Y as TASK_PRESETS, ae as getTableComponentEditPlanCapabilities, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, V as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { W as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, p as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, a6 as coerceTableComponentEditPlans, a8 as compileTableComponentEditPlans, Y as TASK_PRESETS, ae as getTableComponentEditPlanCapabilities, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, V as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-DXPvAOf8.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticalDrawerRegistryService, b as AnalyticsTableConfigAdapterService, c as AnalyticsTableContractService, d as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, e as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, f as ColumnsConfigEditorComponent, D as DATE_PRESETS, g as DataFormatterComponent, h as DataFormattingService, F as FORMULA_TEMPLATES, i as FilterConfigService, j as FilterSettingsComponent, k as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, l as PRAXIS_ANALYTICAL_DRAWER_SCHEMAS, m as PRAXIS_FILTER_AUTHORING_MANIFEST, n as PRAXIS_FILTER_COMPONENT_METADATA, o as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, p as PRAXIS_TABLE_AUTHORING_MANIFEST, q as PRAXIS_TABLE_COMPONENT_METADATA, r as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, s as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, t as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, u as PraxisAnalyticalDrawerComponent, v as PraxisFilter, w as PraxisFilterOutletComponent, x as PraxisFilterOutletDirective, y as PraxisFilterWidgetConfigEditor, z as PraxisScopeBarComponent, E as PraxisTable, G as PraxisTableConfigEditor, H as PraxisTableInlineAuthoringEditorComponent, I as PraxisTableToolbar, K as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, L as TABLE_COMPONENT_AI_CAPABILITIES, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, V as TABLE_COMPONENT_EDIT_PLAN_KIND, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Y as TASK_PRESETS, Z as TableDefaultsProvider, _ as TableRulesEditorComponent, $ as ToolbarActionsEditorComponent, a0 as ValueMappingEditorComponent, a1 as VisualFormulaBuilderComponent, a2 as analyticsComparisonMetricField, a3 as applyComputedFieldsToRows, a4 as buildTableApplyPlan, a5 as coerceTableComponentEditPlan, a6 as coerceTableComponentEditPlans, a7 as compileTableComponentEditPlan, a8 as compileTableComponentEditPlans, a9 as createTableAuthoringDocument, aa as formatComputedFieldValue, ab as getActionId, ac as getEnum, ad as getTableCapabilities, ae as getTableComponentEditPlanCapabilities, af as interpolateRelationEndpoint, ag as isAnalyticalDrawerSchema, ah as isTableRendererSupportedByRichContentP0, ai as mapTableRendererToRichContentP0, aj as normalizeComputedFieldDefinition, ak as normalizeTableAuthoringDocument, al as parseLegacyOrTableDocument, am as providePraxisAnalyticalDrawerSchemas, an as providePraxisFilterMetadata, ao as providePraxisTableMetadata, ap as providePraxisTableToolbarAppearance, aq as serializeTableAuthoringDocument, as as toCanonicalTableConfig, at as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticalDrawerRegistryService, b as AnalyticsTableConfigAdapterService, c as AnalyticsTableContractService, d as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, e as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, f as ColumnsConfigEditorComponent, D as DATE_PRESETS, g as DataFormatterComponent, h as DataFormattingService, F as FORMULA_TEMPLATES, i as FilterConfigService, j as FilterSettingsComponent, k as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, l as PRAXIS_ANALYTICAL_DRAWER_SCHEMAS, m as PRAXIS_FILTER_AUTHORING_MANIFEST, n as PRAXIS_FILTER_COMPONENT_METADATA, o as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, p as PRAXIS_TABLE_AUTHORING_MANIFEST, q as PRAXIS_TABLE_COMPONENT_METADATA, r as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, s as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, t as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, u as PraxisAnalyticalDrawerComponent, v as PraxisFilter, w as PraxisFilterOutletComponent, x as PraxisFilterOutletDirective, y as PraxisFilterWidgetConfigEditor, z as PraxisScopeBarComponent, E as PraxisTable, G as PraxisTableConfigEditor, H as PraxisTableInlineAuthoringEditorComponent, I as PraxisTableToolbar, K as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, L as TABLE_COMPONENT_AI_CAPABILITIES, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, V as TABLE_COMPONENT_EDIT_PLAN_KIND, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Y as TASK_PRESETS, Z as TableDefaultsProvider, _ as TableRulesEditorComponent, $ as ToolbarActionsEditorComponent, a0 as ValueMappingEditorComponent, a1 as VisualFormulaBuilderComponent, a2 as analyticsComparisonMetricField, a3 as applyComputedFieldsToRows, a4 as buildTableApplyPlan, a5 as coerceTableComponentEditPlan, a6 as coerceTableComponentEditPlans, a7 as compileTableComponentEditPlan, a8 as compileTableComponentEditPlans, a9 as createTableAuthoringDocument, aa as formatComputedFieldValue, ab as getActionId, ac as getEnum, ad as getTableCapabilities, ae as getTableComponentEditPlanCapabilities, af as interpolateRelationEndpoint, ag as isAnalyticalDrawerSchema, ah as isTableRendererSupportedByRichContentP0, ai as mapTableRendererToRichContentP0, aj as normalizeComputedFieldDefinition, ak as normalizeTableAuthoringDocument, al as parseLegacyOrTableDocument, am as providePraxisAnalyticalDrawerSchemas, an as providePraxisFilterMetadata, ao as providePraxisTableMetadata, ap as providePraxisTableToolbarAppearance, aq as serializeTableAuthoringDocument, as as toCanonicalTableConfig, at as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-DXPvAOf8.mjs';
|
|
2
2
|
export { createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "10.0.0-rc.
|
|
3
|
+
"version": "10.0.0-rc.12",
|
|
4
4
|
"description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
8
|
"@angular/platform-browser": "^21.0.0",
|
|
9
|
-
"@praxisui/ai": "^10.0.0-rc.
|
|
10
|
-
"@praxisui/core": "^10.0.0-rc.
|
|
11
|
-
"@praxisui/dynamic-fields": "^10.0.0-rc.
|
|
12
|
-
"@praxisui/dynamic-form": "^10.0.0-rc.
|
|
13
|
-
"@praxisui/metadata-editor": "^10.0.0-rc.
|
|
14
|
-
"@praxisui/rich-content": "^10.0.0-rc.
|
|
15
|
-
"@praxisui/settings-panel": "^10.0.0-rc.
|
|
16
|
-
"@praxisui/table-rule-builder": "^10.0.0-rc.
|
|
9
|
+
"@praxisui/ai": "^10.0.0-rc.12",
|
|
10
|
+
"@praxisui/core": "^10.0.0-rc.12",
|
|
11
|
+
"@praxisui/dynamic-fields": "^10.0.0-rc.12",
|
|
12
|
+
"@praxisui/dynamic-form": "^10.0.0-rc.12",
|
|
13
|
+
"@praxisui/metadata-editor": "^10.0.0-rc.12",
|
|
14
|
+
"@praxisui/rich-content": "^10.0.0-rc.12",
|
|
15
|
+
"@praxisui/settings-panel": "^10.0.0-rc.12",
|
|
16
|
+
"@praxisui/table-rule-builder": "^10.0.0-rc.12",
|
|
17
17
|
"@angular/cdk": "^21.0.0",
|
|
18
18
|
"@angular/forms": "^21.0.0",
|
|
19
19
|
"@angular/material": "^21.0.0",
|
|
20
20
|
"@angular/router": "^21.0.0",
|
|
21
|
-
"@praxisui/dialog": "^10.0.0-rc.
|
|
21
|
+
"@praxisui/dialog": "^10.0.0-rc.12",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -5090,11 +5090,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
5090
5090
|
pageSize: number;
|
|
5091
5091
|
pageSizeOptionsText: string;
|
|
5092
5092
|
showFirstLastButtons: boolean;
|
|
5093
|
-
paginationStrategy: 'client' | 'server';
|
|
5093
|
+
paginationStrategy: 'client' | 'server' | undefined;
|
|
5094
5094
|
paginationPosition: 'top' | 'bottom' | 'both';
|
|
5095
5095
|
paginationStyle: 'default' | 'simple' | 'advanced' | 'compact';
|
|
5096
5096
|
sortingEnabled: boolean;
|
|
5097
|
-
sortingStrategy: 'client' | 'server';
|
|
5097
|
+
sortingStrategy: 'client' | 'server' | undefined;
|
|
5098
5098
|
allowClearSort: boolean;
|
|
5099
5099
|
defaultSortField: string;
|
|
5100
5100
|
defaultSortDirection: 'asc' | 'desc';
|
|
@@ -5122,11 +5122,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
|
|
|
5122
5122
|
setPaginationPageSize(value: number | string): void;
|
|
5123
5123
|
setPaginationPageSizeOptions(value: string): void;
|
|
5124
5124
|
setPaginationShowFirstLastButtons(value: boolean): void;
|
|
5125
|
-
setPaginationStrategy(value: 'client' | 'server'): void;
|
|
5125
|
+
setPaginationStrategy(value: 'client' | 'server' | undefined): void;
|
|
5126
5126
|
setPaginationPosition(value: 'top' | 'bottom' | 'both'): void;
|
|
5127
5127
|
setPaginationStyle(value: 'default' | 'simple' | 'advanced' | 'compact'): void;
|
|
5128
5128
|
setSortingEnabled(value: boolean): void;
|
|
5129
|
-
setSortingStrategy(value: 'client' | 'server'): void;
|
|
5129
|
+
setSortingStrategy(value: 'client' | 'server' | undefined): void;
|
|
5130
5130
|
setSortingAllowClear(value: boolean): void;
|
|
5131
5131
|
setSortingDefaultField(value: string): void;
|
|
5132
5132
|
setSortingDefaultDirection(value: 'asc' | 'desc'): void;
|