@praxisui/table 9.0.0-beta.63 → 9.0.0-beta.64
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 +2 -0
- package/ai/component-registry.json +2 -2
- package/fesm2022/{praxisui-table-praxisui-table-D5UThmhh.mjs → praxisui-table-praxisui-table-Du0PxQhk.mjs} +39 -9
- package/fesm2022/{praxisui-table-table-ai.adapter-DE5WpZ-t.mjs → praxisui-table-table-ai.adapter-l2wfwinc.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/types/praxisui-table.d.ts +2 -0
package/README.md
CHANGED
|
@@ -144,6 +144,8 @@ Use `config.ai.assistant.enabled = false` when a host needs to disable the embed
|
|
|
144
144
|
|
|
145
145
|
Use `behavior.emptyState` for table-owned no-data copy and presentation. `message` remains the required backward-compatible text. When `title` is omitted, `message` is used as the empty-state title. When `title` is provided, `message` is rendered as the description unless `description` is explicitly set.
|
|
146
146
|
|
|
147
|
+
When the host does not provide `behavior.emptyState` or legacy `messages.states` copy, the table uses localized runtime defaults for the initial empty collection and for the filtered/search no-results state. Context-specific entries in `behavior.emptyState.contexts.initial`, `behavior.emptyState.contexts.filtered`, and `behavior.emptyState.contexts.searched` still override the base empty state for those modes.
|
|
148
|
+
|
|
147
149
|
```ts
|
|
148
150
|
const config: TableConfig = {
|
|
149
151
|
behavior: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-09T17:49:20.835Z",
|
|
4
4
|
"packageName": "@praxisui/table",
|
|
5
|
-
"packageVersion": "9.0.0-beta.
|
|
5
|
+
"packageVersion": "9.0.0-beta.64",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -118,6 +118,10 @@ const PRAXIS_TABLE_RUNTIME_I18N_CONFIG = {
|
|
|
118
118
|
'table.chrome.collectionActions.create': 'Novo',
|
|
119
119
|
'table.chrome.collectionActions.createTooltip': 'Criar novo registro',
|
|
120
120
|
'table.chrome.collectionActions.createUnavailable': 'Criação indisponível no contexto atual',
|
|
121
|
+
'table.emptyState.initial.title': 'Nenhum registro disponível.',
|
|
122
|
+
'table.emptyState.initial.description': 'Use as ações disponíveis para iniciar a próxima operação.',
|
|
123
|
+
'table.emptyState.filtered.title': 'Nenhum resultado encontrado.',
|
|
124
|
+
'table.emptyState.filtered.description': 'Revise os filtros ou ajuste o termo de busca.',
|
|
121
125
|
'table.chrome.actions.disabled.noSelection': 'Selecione ao menos um registro para executar esta ação.',
|
|
122
126
|
'table.chrome.actions.disabled.minSelection': 'Selecione ao menos {min} registros para executar esta ação.',
|
|
123
127
|
'table.chrome.actions.disabled.maxSelection': 'A seleção atual excede o limite permitido para esta ação.',
|
|
@@ -249,6 +253,10 @@ const PRAXIS_TABLE_RUNTIME_I18N_CONFIG = {
|
|
|
249
253
|
'table.chrome.collectionActions.create': 'New',
|
|
250
254
|
'table.chrome.collectionActions.createTooltip': 'Create a new record',
|
|
251
255
|
'table.chrome.collectionActions.createUnavailable': 'Create is unavailable in the current context',
|
|
256
|
+
'table.emptyState.initial.title': 'No records available.',
|
|
257
|
+
'table.emptyState.initial.description': 'Use the available actions to start the next operation.',
|
|
258
|
+
'table.emptyState.filtered.title': 'No results found.',
|
|
259
|
+
'table.emptyState.filtered.description': 'Review the filters or adjust the search term.',
|
|
252
260
|
'table.chrome.actions.disabled.noSelection': 'Select at least one record to run this action.',
|
|
253
261
|
'table.chrome.actions.disabled.minSelection': 'Select at least {min} records to run this action.',
|
|
254
262
|
'table.chrome.actions.disabled.maxSelection': 'The current selection exceeds the allowed limit for this action.',
|
|
@@ -40336,9 +40344,9 @@ class PraxisTable {
|
|
|
40336
40344
|
if (!actions.length) {
|
|
40337
40345
|
return undefined;
|
|
40338
40346
|
}
|
|
40339
|
-
return this.
|
|
40340
|
-
? '
|
|
40341
|
-
: 'Use
|
|
40347
|
+
return this.hasActiveEmptyStateFilters()
|
|
40348
|
+
? translateTableRuntimeText(this.i18n, 'table.emptyState.filtered.description', 'Revise os filtros ou ajuste o termo de busca.')
|
|
40349
|
+
: translateTableRuntimeText(this.i18n, 'table.emptyState.initial.description', 'Use as ações disponíveis para iniciar a próxima operação.');
|
|
40342
40350
|
}
|
|
40343
40351
|
getTableSettingsLabel() {
|
|
40344
40352
|
return translateTableRuntimeText(this.i18n, 'table.chrome.settings', 'Configurações');
|
|
@@ -41852,7 +41860,7 @@ class PraxisTable {
|
|
|
41852
41860
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
41853
41861
|
return;
|
|
41854
41862
|
this.aiAdapterLoadStarted = true;
|
|
41855
|
-
import('./praxisui-table-table-ai.adapter-
|
|
41863
|
+
import('./praxisui-table-table-ai.adapter-l2wfwinc.mjs')
|
|
41856
41864
|
.then(({ TableAiAdapter }) => {
|
|
41857
41865
|
if (!this.isAiAssistantEnabled()) {
|
|
41858
41866
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -43130,6 +43138,20 @@ class PraxisTable {
|
|
|
43130
43138
|
}
|
|
43131
43139
|
hasActiveDataFilters() {
|
|
43132
43140
|
const criteria = this.getEffectiveFilterCriteria();
|
|
43141
|
+
return this.hasMeaningfulFilterCriteria(criteria);
|
|
43142
|
+
}
|
|
43143
|
+
hasActiveEmptyStateFilters() {
|
|
43144
|
+
const criteria = { ...this.getEffectiveFilterCriteria() };
|
|
43145
|
+
const meta = this.queryContext?.meta;
|
|
43146
|
+
const parentFilterField = typeof meta?.['parentFilterField'] === 'string'
|
|
43147
|
+
? String(meta['parentFilterField']).trim()
|
|
43148
|
+
: '';
|
|
43149
|
+
if (meta?.['relatedResource'] === true && parentFilterField) {
|
|
43150
|
+
delete criteria[parentFilterField];
|
|
43151
|
+
}
|
|
43152
|
+
return this.hasMeaningfulFilterCriteria(criteria);
|
|
43153
|
+
}
|
|
43154
|
+
hasMeaningfulFilterCriteria(criteria) {
|
|
43133
43155
|
const values = Object.values(criteria || {});
|
|
43134
43156
|
return values.some((value) => this.hasMeaningfulFilterValue(value));
|
|
43135
43157
|
}
|
|
@@ -43150,20 +43172,28 @@ class PraxisTable {
|
|
|
43150
43172
|
}
|
|
43151
43173
|
resolveNoDataStateConfig() {
|
|
43152
43174
|
const baseEmptyState = this.config?.behavior?.emptyState;
|
|
43153
|
-
const
|
|
43175
|
+
const hasActiveFilters = this.hasActiveEmptyStateFilters();
|
|
43176
|
+
const contextualEmptyState = hasActiveFilters
|
|
43154
43177
|
? (baseEmptyState?.contexts?.filtered ?? baseEmptyState?.contexts?.searched)
|
|
43155
43178
|
: baseEmptyState?.contexts?.initial;
|
|
43156
43179
|
const merged = {
|
|
43157
43180
|
...(baseEmptyState || {}),
|
|
43158
43181
|
...(contextualEmptyState || {}),
|
|
43159
43182
|
};
|
|
43160
|
-
const
|
|
43161
|
-
|
|
43162
|
-
|
|
43183
|
+
const hasExplicitEmptyStateCopy = typeof merged.title === 'string'
|
|
43184
|
+
|| typeof merged.message === 'string'
|
|
43185
|
+
|| typeof merged.description === 'string';
|
|
43186
|
+
const fallbackMessage = hasActiveFilters
|
|
43187
|
+
? this.config?.messages?.states?.noResults || translateTableRuntimeText(this.i18n, 'table.emptyState.filtered.title', 'Nenhum resultado encontrado.')
|
|
43188
|
+
: this.config?.messages?.states?.empty || translateTableRuntimeText(this.i18n, 'table.emptyState.initial.title', 'Nenhum registro disponível.');
|
|
43163
43189
|
return {
|
|
43164
43190
|
title: typeof merged.title === 'string' ? merged.title : undefined,
|
|
43165
43191
|
message: String(merged.message || fallbackMessage),
|
|
43166
|
-
description: typeof merged.description === 'string'
|
|
43192
|
+
description: typeof merged.description === 'string'
|
|
43193
|
+
? merged.description
|
|
43194
|
+
: hasActiveFilters && !hasExplicitEmptyStateCopy
|
|
43195
|
+
? translateTableRuntimeText(this.i18n, 'table.emptyState.filtered.description', 'Revise os filtros ou ajuste o termo de busca.')
|
|
43196
|
+
: undefined,
|
|
43167
43197
|
icon: typeof merged.icon === 'string' ? merged.icon : undefined,
|
|
43168
43198
|
tone: this.isEmptyStateTone(merged.tone) ? merged.tone : undefined,
|
|
43169
43199
|
variant: this.isEmptyStateVariant(merged.variant) ? merged.variant : undefined,
|
|
@@ -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 { H as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, X as coerceTableComponentEditPlans, Z as compileTableComponentEditPlans, K as TASK_PRESETS, a2 as getTableComponentEditPlanCapabilities, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, G as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { H as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, X as coerceTableComponentEditPlans, Z as compileTableComponentEditPlans, K as TASK_PRESETS, a2 as getTableComponentEditPlanCapabilities, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, G as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-Du0PxQhk.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_APPEARANCE_PRESETS, n as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, o as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, p as PraxisFilter, q as PraxisFilterWidgetConfigEditor, r as PraxisTable, s as PraxisTableConfigEditor, t as PraxisTableInlineAuthoringEditorComponent, u as PraxisTableToolbar, v as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, w as TABLE_COMPONENT_AI_CAPABILITIES, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, G as TABLE_COMPONENT_EDIT_PLAN_KIND, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, K as TASK_PRESETS, L as TableDefaultsProvider, O as TableRulesEditorComponent, Q as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, R as VisualFormulaBuilderComponent, U as buildTableApplyPlan, W as coerceTableComponentEditPlan, X as coerceTableComponentEditPlans, Y as compileTableComponentEditPlan, Z as compileTableComponentEditPlans, _ as createTableAuthoringDocument, $ as getActionId, a0 as getEnum, a1 as getTableCapabilities, a2 as getTableComponentEditPlanCapabilities, a3 as isTableRendererSupportedByRichContentP0, a4 as mapTableRendererToRichContentP0, a5 as normalizeTableAuthoringDocument, a6 as parseLegacyOrTableDocument, a7 as providePraxisFilterMetadata, a8 as providePraxisTableMetadata, a9 as providePraxisTableToolbarAppearance, aa as serializeTableAuthoringDocument, ab as toCanonicalTableConfig, ac 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_APPEARANCE_PRESETS, n as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, o as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, p as PraxisFilter, q as PraxisFilterWidgetConfigEditor, r as PraxisTable, s as PraxisTableConfigEditor, t as PraxisTableInlineAuthoringEditorComponent, u as PraxisTableToolbar, v as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, w as TABLE_COMPONENT_AI_CAPABILITIES, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, G as TABLE_COMPONENT_EDIT_PLAN_KIND, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, K as TASK_PRESETS, L as TableDefaultsProvider, O as TableRulesEditorComponent, Q as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, R as VisualFormulaBuilderComponent, U as buildTableApplyPlan, W as coerceTableComponentEditPlan, X as coerceTableComponentEditPlans, Y as compileTableComponentEditPlan, Z as compileTableComponentEditPlans, _ as createTableAuthoringDocument, $ as getActionId, a0 as getEnum, a1 as getTableCapabilities, a2 as getTableComponentEditPlanCapabilities, a3 as isTableRendererSupportedByRichContentP0, a4 as mapTableRendererToRichContentP0, a5 as normalizeTableAuthoringDocument, a6 as parseLegacyOrTableDocument, a7 as providePraxisFilterMetadata, a8 as providePraxisTableMetadata, a9 as providePraxisTableToolbarAppearance, aa as serializeTableAuthoringDocument, ab as toCanonicalTableConfig, ac as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-Du0PxQhk.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.64",
|
|
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.64",
|
|
10
|
+
"@praxisui/core": "^9.0.0-beta.64",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.0-beta.64",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.0-beta.64",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.0-beta.64",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.0-beta.64",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.0-beta.64",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.0-beta.64",
|
|
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.64",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -1516,6 +1516,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1516
1516
|
private isTableDataLoading;
|
|
1517
1517
|
private getRenderedRowCount;
|
|
1518
1518
|
private hasActiveDataFilters;
|
|
1519
|
+
private hasActiveEmptyStateFilters;
|
|
1520
|
+
private hasMeaningfulFilterCriteria;
|
|
1519
1521
|
private hasMeaningfulFilterValue;
|
|
1520
1522
|
private resolveNoDataStateConfig;
|
|
1521
1523
|
private isEmptyStateTone;
|