@praxisui/table 10.0.0-rc.11 → 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-ConSKl5g.mjs → praxisui-table-praxisui-table-DXPvAOf8.mjs} +65 -49
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-DmnNx_fm.mjs → praxisui-table-table-agentic-authoring-turn-flow-7mVc-Xm1.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-vtpAb33s.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.',
|
|
@@ -23009,7 +23011,7 @@ class PraxisTable {
|
|
|
23009
23011
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
23010
23012
|
return;
|
|
23011
23013
|
this.aiAdapterLoadStarted = true;
|
|
23012
|
-
import('./praxisui-table-table-ai.adapter-
|
|
23014
|
+
import('./praxisui-table-table-ai.adapter-nUhrYuKK.mjs')
|
|
23013
23015
|
.then(({ TableAiAdapter }) => {
|
|
23014
23016
|
if (!this.isAiAssistantEnabled()) {
|
|
23015
23017
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -23755,7 +23757,7 @@ class PraxisTable {
|
|
|
23755
23757
|
initializeAiAssistantController() {
|
|
23756
23758
|
if (!this.aiAdapter || this.aiAssistantController)
|
|
23757
23759
|
return;
|
|
23758
|
-
import('./praxisui-table-table-agentic-authoring-turn-flow-
|
|
23760
|
+
import('./praxisui-table-table-agentic-authoring-turn-flow-7mVc-Xm1.mjs')
|
|
23759
23761
|
.then(({ TableAgenticAuthoringTurnFlow }) => {
|
|
23760
23762
|
if (this.aiAssistantController || !this.aiAdapter)
|
|
23761
23763
|
return;
|
|
@@ -51819,14 +51821,13 @@ class BehaviorConfigEditorComponent {
|
|
|
51819
51821
|
this.arrayToString(pagination.pageSizeOptions || [5, 10, 25, 50]),
|
|
51820
51822
|
],
|
|
51821
51823
|
showFirstLastButtons: [pagination.showFirstLastButtons !== false],
|
|
51822
|
-
|
|
51823
|
-
paginationStrategy: [this.resourcePath ? 'server' : 'client'], // V2 only
|
|
51824
|
+
paginationStrategy: [this.isV2 ? null : (this.resourcePath ? 'server' : 'client')],
|
|
51824
51825
|
paginationPosition: ['bottom'],
|
|
51825
51826
|
paginationStyle: ['default'],
|
|
51826
51827
|
// Sorting
|
|
51827
51828
|
sortingEnabled: [gridOptions.sortable !== false],
|
|
51828
51829
|
multiSort: [false], // V2 only
|
|
51829
|
-
sortingStrategy: ['client'],
|
|
51830
|
+
sortingStrategy: [this.isV2 ? null : 'client'],
|
|
51830
51831
|
allowClearSort: [true], // V2 only
|
|
51831
51832
|
defaultSortField: [''],
|
|
51832
51833
|
defaultSortDirection: ['asc'],
|
|
@@ -51919,8 +51920,7 @@ class BehaviorConfigEditorComponent {
|
|
|
51919
51920
|
pageSize: behavior.pagination.pageSize || 10,
|
|
51920
51921
|
pageSizeOptions: this.arrayToString(behavior.pagination.pageSizeOptions || [5, 10, 25, 50]),
|
|
51921
51922
|
showFirstLastButtons: behavior.pagination.showFirstLastButtons !== false,
|
|
51922
|
-
|
|
51923
|
-
paginationStrategy: behavior.pagination.strategy ?? (this.resourcePath ? 'server' : 'client'),
|
|
51923
|
+
paginationStrategy: behavior.pagination.strategy ?? null,
|
|
51924
51924
|
paginationPosition: behavior.pagination.position || 'bottom',
|
|
51925
51925
|
paginationStyle: behavior.pagination.style || 'default',
|
|
51926
51926
|
});
|
|
@@ -51929,7 +51929,7 @@ class BehaviorConfigEditorComponent {
|
|
|
51929
51929
|
this.behaviorForm.patchValue({
|
|
51930
51930
|
sortingEnabled: behavior.sorting.enabled !== false,
|
|
51931
51931
|
multiSort: behavior.sorting.multiSort || false,
|
|
51932
|
-
sortingStrategy: behavior.sorting.strategy
|
|
51932
|
+
sortingStrategy: behavior.sorting.strategy ?? null,
|
|
51933
51933
|
allowClearSort: behavior.sorting.allowClearSort !== false,
|
|
51934
51934
|
defaultSortField: (Array.isArray(behavior.sorting.defaultSort) ? behavior.sorting.defaultSort[0]?.column : behavior.sorting.defaultSort?.column) || '',
|
|
51935
51935
|
defaultSortDirection: (Array.isArray(behavior.sorting.defaultSort) ? behavior.sorting.defaultSort[0]?.direction : behavior.sorting.defaultSort?.direction) || 'asc',
|
|
@@ -52108,6 +52108,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52108
52108
|
position: values.paginationPosition || 'bottom',
|
|
52109
52109
|
style: values.paginationStyle || 'default',
|
|
52110
52110
|
};
|
|
52111
|
+
if (paginationStrategy === undefined)
|
|
52112
|
+
delete v2Config.behavior.pagination.strategy;
|
|
52111
52113
|
// Sorting
|
|
52112
52114
|
v2Config.behavior.sorting = {
|
|
52113
52115
|
enabled: values.sortingEnabled,
|
|
@@ -52117,6 +52119,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52117
52119
|
showSortIndicators: true,
|
|
52118
52120
|
indicatorPosition: 'end',
|
|
52119
52121
|
};
|
|
52122
|
+
if (sortingStrategy === undefined)
|
|
52123
|
+
delete v2Config.behavior.sorting.strategy;
|
|
52120
52124
|
const dfField = (values.defaultSortField || '').trim();
|
|
52121
52125
|
const dfDir = values.defaultSortDirection;
|
|
52122
52126
|
if (dfField) {
|
|
@@ -52364,7 +52368,7 @@ class BehaviorConfigEditorComponent {
|
|
|
52364
52368
|
resolveStrategy(value) {
|
|
52365
52369
|
if (this.forceClientStrategies)
|
|
52366
52370
|
return 'client';
|
|
52367
|
-
return value === 'server'
|
|
52371
|
+
return value === 'server' || value === 'client' ? value : undefined;
|
|
52368
52372
|
}
|
|
52369
52373
|
enforceStrategyConstraints(emitEvent) {
|
|
52370
52374
|
if (!this.isV2 || !this.forceClientStrategies || !this.behaviorForm) {
|
|
@@ -52667,7 +52671,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52667
52671
|
|
|
52668
52672
|
@if (isV2) { <mat-form-field appearance="outline">
|
|
52669
52673
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
52670
|
-
<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> }
|
|
52671
52676
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
52672
52677
|
<mat-option value="server" [disabled]="forceClientStrategies"
|
|
52673
52678
|
>{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option
|
|
@@ -52755,7 +52760,8 @@ class BehaviorConfigEditorComponent {
|
|
|
52755
52760
|
|
|
52756
52761
|
<mat-form-field appearance="outline">
|
|
52757
52762
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
52758
|
-
<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> }
|
|
52759
52765
|
<mat-option value="client"
|
|
52760
52766
|
>{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option
|
|
52761
52767
|
>
|
|
@@ -53689,7 +53695,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
53689
53695
|
|
|
53690
53696
|
@if (isV2) { <mat-form-field appearance="outline">
|
|
53691
53697
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
53692
|
-
<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> }
|
|
53693
53700
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
53694
53701
|
<mat-option value="server" [disabled]="forceClientStrategies"
|
|
53695
53702
|
>{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option
|
|
@@ -53777,7 +53784,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
53777
53784
|
|
|
53778
53785
|
<mat-form-field appearance="outline">
|
|
53779
53786
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
53780
|
-
<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> }
|
|
53781
53789
|
<mat-option value="client"
|
|
53782
53790
|
>{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option
|
|
53783
53791
|
>
|
|
@@ -67848,7 +67856,6 @@ class PraxisTableConfigEditor {
|
|
|
67848
67856
|
sorting: {
|
|
67849
67857
|
enabled: true,
|
|
67850
67858
|
multiSort: false,
|
|
67851
|
-
strategy: 'client',
|
|
67852
67859
|
showSortIndicators: true,
|
|
67853
67860
|
indicatorPosition: 'end',
|
|
67854
67861
|
allowClearSort: true,
|
|
@@ -67867,7 +67874,6 @@ class PraxisTableConfigEditor {
|
|
|
67867
67874
|
showPageInfo: true,
|
|
67868
67875
|
position: 'bottom',
|
|
67869
67876
|
style: 'default',
|
|
67870
|
-
strategy: 'client',
|
|
67871
67877
|
},
|
|
67872
67878
|
},
|
|
67873
67879
|
toolbar: {
|
|
@@ -73496,11 +73502,11 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73496
73502
|
pageSize = 10;
|
|
73497
73503
|
pageSizeOptionsText = '5, 10, 25, 50';
|
|
73498
73504
|
showFirstLastButtons = true;
|
|
73499
|
-
paginationStrategy
|
|
73505
|
+
paginationStrategy;
|
|
73500
73506
|
paginationPosition = 'bottom';
|
|
73501
73507
|
paginationStyle = 'default';
|
|
73502
73508
|
sortingEnabled = true;
|
|
73503
|
-
sortingStrategy
|
|
73509
|
+
sortingStrategy;
|
|
73504
73510
|
allowClearSort = true;
|
|
73505
73511
|
defaultSortField = '';
|
|
73506
73512
|
defaultSortDirection = 'asc';
|
|
@@ -73543,11 +73549,11 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73543
73549
|
this.pageSizeOptionsText = this.arrayToString(this.workingConfig.behavior?.pagination?.pageSizeOptions || [5, 10, 25, 50]);
|
|
73544
73550
|
this.showFirstLastButtons =
|
|
73545
73551
|
this.workingConfig.behavior?.pagination?.showFirstLastButtons !== false;
|
|
73546
|
-
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy
|
|
73552
|
+
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy;
|
|
73547
73553
|
this.paginationPosition = this.workingConfig.behavior?.pagination?.position || 'bottom';
|
|
73548
73554
|
this.paginationStyle = this.workingConfig.behavior?.pagination?.style || 'default';
|
|
73549
73555
|
this.sortingEnabled = this.workingConfig.behavior?.sorting?.enabled !== false;
|
|
73550
|
-
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy
|
|
73556
|
+
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy;
|
|
73551
73557
|
this.allowClearSort = this.workingConfig.behavior?.sorting?.allowClearSort !== false;
|
|
73552
73558
|
this.defaultSortField = this.getDefaultSortField(this.workingConfig);
|
|
73553
73559
|
this.defaultSortDirection = this.getDefaultSortDirection(this.workingConfig);
|
|
@@ -73659,7 +73665,7 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73659
73665
|
this.patchPagination();
|
|
73660
73666
|
}
|
|
73661
73667
|
setPaginationStrategy(value) {
|
|
73662
|
-
this.paginationStrategy = value
|
|
73668
|
+
this.paginationStrategy = value;
|
|
73663
73669
|
this.patchPagination();
|
|
73664
73670
|
}
|
|
73665
73671
|
setPaginationPosition(value) {
|
|
@@ -73675,7 +73681,7 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73675
73681
|
this.patchSorting();
|
|
73676
73682
|
}
|
|
73677
73683
|
setSortingStrategy(value) {
|
|
73678
|
-
this.sortingStrategy = value
|
|
73684
|
+
this.sortingStrategy = value;
|
|
73679
73685
|
this.patchSorting();
|
|
73680
73686
|
}
|
|
73681
73687
|
setSortingAllowClear(value) {
|
|
@@ -73734,11 +73740,11 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73734
73740
|
this.pageSizeOptionsText = this.arrayToString(this.workingConfig.behavior?.pagination?.pageSizeOptions || [5, 10, 25, 50]);
|
|
73735
73741
|
this.showFirstLastButtons =
|
|
73736
73742
|
this.workingConfig.behavior?.pagination?.showFirstLastButtons !== false;
|
|
73737
|
-
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy
|
|
73743
|
+
this.paginationStrategy = this.workingConfig.behavior?.pagination?.strategy;
|
|
73738
73744
|
this.paginationPosition = this.workingConfig.behavior?.pagination?.position || 'bottom';
|
|
73739
73745
|
this.paginationStyle = this.workingConfig.behavior?.pagination?.style || 'default';
|
|
73740
73746
|
this.sortingEnabled = this.workingConfig.behavior?.sorting?.enabled !== false;
|
|
73741
|
-
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy
|
|
73747
|
+
this.sortingStrategy = this.workingConfig.behavior?.sorting?.strategy;
|
|
73742
73748
|
this.allowClearSort = this.workingConfig.behavior?.sorting?.allowClearSort !== false;
|
|
73743
73749
|
this.defaultSortField = this.getDefaultSortField(this.workingConfig);
|
|
73744
73750
|
this.defaultSortDirection = this.getDefaultSortDirection(this.workingConfig);
|
|
@@ -73882,34 +73888,36 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
73882
73888
|
this.emitConfig();
|
|
73883
73889
|
}
|
|
73884
73890
|
patchPagination() {
|
|
73885
|
-
|
|
73886
|
-
pagination
|
|
73887
|
-
|
|
73888
|
-
|
|
73889
|
-
|
|
73890
|
-
|
|
73891
|
-
|
|
73892
|
-
|
|
73893
|
-
|
|
73894
|
-
|
|
73895
|
-
|
|
73896
|
-
|
|
73897
|
-
|
|
73898
|
-
|
|
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 });
|
|
73899
73906
|
}
|
|
73900
73907
|
patchSorting() {
|
|
73901
|
-
|
|
73902
|
-
sorting
|
|
73903
|
-
|
|
73904
|
-
|
|
73905
|
-
|
|
73906
|
-
|
|
73907
|
-
|
|
73908
|
-
|
|
73909
|
-
|
|
73910
|
-
|
|
73911
|
-
|
|
73912
|
-
|
|
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 });
|
|
73913
73921
|
}
|
|
73914
73922
|
patchMessages(patch) {
|
|
73915
73923
|
this.workingConfig = {
|
|
@@ -74251,10 +74259,12 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
74251
74259
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
74252
74260
|
<mat-select
|
|
74253
74261
|
data-testid="table-inline-editor-pagination-strategy"
|
|
74262
|
+
[canSelectNullableOptions]="true"
|
|
74254
74263
|
[ngModel]="paginationStrategy"
|
|
74255
74264
|
(ngModelChange)="setPaginationStrategy($event)"
|
|
74256
74265
|
[disabled]="readonly || !paginationEnabled"
|
|
74257
74266
|
>
|
|
74267
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74258
74268
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
74259
74269
|
<mat-option value="server">{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option>
|
|
74260
74270
|
</mat-select>
|
|
@@ -74302,10 +74312,12 @@ class PraxisTableInlineAuthoringEditorComponent {
|
|
|
74302
74312
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
74303
74313
|
<mat-select
|
|
74304
74314
|
data-testid="table-inline-editor-sorting-strategy"
|
|
74315
|
+
[canSelectNullableOptions]="true"
|
|
74305
74316
|
[ngModel]="sortingStrategy"
|
|
74306
74317
|
(ngModelChange)="setSortingStrategy($event)"
|
|
74307
74318
|
[disabled]="readonly || !sortingEnabled"
|
|
74308
74319
|
>
|
|
74320
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74309
74321
|
<mat-option value="client">{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option>
|
|
74310
74322
|
<mat-option value="server">{{ tx('behavior.sorting.strategy.server', 'Server (remote sorting)') }}</mat-option>
|
|
74311
74323
|
</mat-select>
|
|
@@ -74734,10 +74746,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
74734
74746
|
<mat-label>{{ tx('behavior.pagination.strategy', 'Pagination strategy') }}</mat-label>
|
|
74735
74747
|
<mat-select
|
|
74736
74748
|
data-testid="table-inline-editor-pagination-strategy"
|
|
74749
|
+
[canSelectNullableOptions]="true"
|
|
74737
74750
|
[ngModel]="paginationStrategy"
|
|
74738
74751
|
(ngModelChange)="setPaginationStrategy($event)"
|
|
74739
74752
|
[disabled]="readonly || !paginationEnabled"
|
|
74740
74753
|
>
|
|
74754
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74741
74755
|
<mat-option value="client">{{ tx('behavior.pagination.strategy.client', 'Client (local data)') }}</mat-option>
|
|
74742
74756
|
<mat-option value="server">{{ tx('behavior.pagination.strategy.server', 'Server (remote pagination)') }}</mat-option>
|
|
74743
74757
|
</mat-select>
|
|
@@ -74785,10 +74799,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
74785
74799
|
<mat-label>{{ tx('behavior.sorting.strategy', 'Sorting strategy') }}</mat-label>
|
|
74786
74800
|
<mat-select
|
|
74787
74801
|
data-testid="table-inline-editor-sorting-strategy"
|
|
74802
|
+
[canSelectNullableOptions]="true"
|
|
74788
74803
|
[ngModel]="sortingStrategy"
|
|
74789
74804
|
(ngModelChange)="setSortingStrategy($event)"
|
|
74790
74805
|
[disabled]="readonly || !sortingEnabled"
|
|
74791
74806
|
>
|
|
74807
|
+
<mat-option [value]="undefined">{{ tx('behavior.strategy.auto', 'Automatic (by data source)') }}</mat-option>
|
|
74792
74808
|
<mat-option value="client">{{ tx('behavior.sorting.strategy.client', 'Client (local sorting)') }}</mat-option>
|
|
74793
74809
|
<mat-option value="server">{{ tx('behavior.sorting.strategy.server', 'Server (remote sorting)') }}</mat-option>
|
|
74794
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;
|