@praxisui/table 9.0.68-rc.2 → 10.0.0-rc.0
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 +9 -0
- package/ai/component-registry.json +2 -2
- package/fesm2022/{praxisui-table-praxisui-table-EGWwY1dR.mjs → praxisui-table-praxisui-table-fOG6oo9f.mjs} +14 -10
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-DyL8eJ1l.mjs → praxisui-table-table-agentic-authoring-turn-flow-CF9bUWOK.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-B2LTkMdM.mjs → praxisui-table-table-ai.adapter-C6MRHQab.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/types/praxisui-table.d.ts +1 -0
package/README.md
CHANGED
|
@@ -237,6 +237,15 @@ The runtime default remains `local-first`, which loads saved table preferences.
|
|
|
237
237
|
|
|
238
238
|
The native filter **Preferências do Filtro** panel uses its own `filter-config` preference lane. Its saved always-visible order does not override a nonempty `alwaysVisibleFields` supplied by the page. Use the Page Builder content editor to author the page's filters. Editing a field opens a child settings panel and preserves the parent draft; save the child, then its parent and the page to persist authored changes.
|
|
239
239
|
|
|
240
|
+
The filter field editor emits cumulative deltas relative to its opening seed.
|
|
241
|
+
Filter Settings applies them to the opening override of that field, preserving
|
|
242
|
+
other fields in the current parent draft. Returning to the original value after
|
|
243
|
+
Apply therefore removes the intermediate edit, including an empty final delta.
|
|
244
|
+
Nested siblings survive and explicit `null` removes the addressed override.
|
|
245
|
+
Reset also refreshes the shell's dirty state without emitting a config change.
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
|
|
240
249
|
## Runtime Inputs And Outputs
|
|
241
250
|
|
|
242
251
|
Common inputs:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-10T12:25:16.581Z",
|
|
4
4
|
"packageName": "@praxisui/table",
|
|
5
|
-
"packageVersion": "
|
|
5
|
+
"packageVersion": "10.0.0-rc.0",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -36,7 +36,7 @@ import { FormsModule, Validators, ReactiveFormsModule, FormGroup, FormControl }
|
|
|
36
36
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
37
37
|
import * as i13 from '@angular/cdk/drag-drop';
|
|
38
38
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
39
|
-
import { take, firstValueFrom, BehaviorSubject, Subject, timeout, Subscription, map as map$1, catchError, throwError, debounceTime as debounceTime$1, takeUntil as takeUntil$1 } from 'rxjs';
|
|
39
|
+
import { take, firstValueFrom, BehaviorSubject, Subject, merge, timeout, Subscription, map as map$1, catchError, throwError, debounceTime as debounceTime$1, takeUntil as takeUntil$1 } from 'rxjs';
|
|
40
40
|
import { PraxisRichContent } from '@praxisui/rich-content';
|
|
41
41
|
import * as i2 from '@angular/material/toolbar';
|
|
42
42
|
import { MatToolbarModule } from '@angular/material/toolbar';
|
|
@@ -7893,6 +7893,7 @@ class FilterSettingsComponent {
|
|
|
7893
7893
|
isDirty$;
|
|
7894
7894
|
isValid$;
|
|
7895
7895
|
savingState = new BehaviorSubject(false);
|
|
7896
|
+
settingsStateChanges = new Subject();
|
|
7896
7897
|
isBusy$;
|
|
7897
7898
|
initialSettings = {};
|
|
7898
7899
|
extraSettings = {};
|
|
@@ -8035,10 +8036,10 @@ class FilterSettingsComponent {
|
|
|
8035
8036
|
enablePerformanceMetrics: this.fb.nonNullable.control(false),
|
|
8036
8037
|
});
|
|
8037
8038
|
this.syncAlwaysVisibleControlState();
|
|
8038
|
-
this.canSave$ = this.form.valueChanges.pipe(map(() => this.form.dirty && this.form.valid), startWith(false));
|
|
8039
|
+
this.canSave$ = merge(this.form.valueChanges, this.settingsStateChanges).pipe(map(() => this.form.dirty && this.form.valid), startWith(false));
|
|
8039
8040
|
// Expose state observables expected by SettingsPanel
|
|
8040
|
-
this.isDirty$ = this.form.valueChanges.pipe(map(() => this.form.dirty), startWith(false));
|
|
8041
|
-
this.isValid$ = this.form.statusChanges.pipe(map(() => this.form.valid), startWith(this.form.valid));
|
|
8041
|
+
this.isDirty$ = merge(this.form.valueChanges, this.settingsStateChanges).pipe(map(() => this.form.dirty), startWith(false));
|
|
8042
|
+
this.isValid$ = merge(this.form.statusChanges, this.settingsStateChanges).pipe(map(() => this.form.valid), startWith(this.form.valid));
|
|
8042
8043
|
this.isBusy$ = this.savingState.asObservable();
|
|
8043
8044
|
this.form.valueChanges
|
|
8044
8045
|
.pipe(map(() => this.getSettingsValue()), takeUntilDestroyed())
|
|
@@ -8931,6 +8932,8 @@ class FilterSettingsComponent {
|
|
|
8931
8932
|
return;
|
|
8932
8933
|
const controlType = this.resolveAlwaysVisibleControlType(fieldName);
|
|
8933
8934
|
const seed = this.buildAlwaysVisibleEditorSeed(fieldName);
|
|
8935
|
+
// Scope the opening snapshot to this field, preserving other fields' later edits.
|
|
8936
|
+
const baselineOverride = this.getAlwaysVisibleOverridesMap()[fieldName] || {};
|
|
8934
8937
|
if (!this.settingsPanel) {
|
|
8935
8938
|
this.snackBar.open('Editor visual de metadados indisponível neste contexto.', undefined, { duration: 2500 });
|
|
8936
8939
|
return;
|
|
@@ -8957,7 +8960,7 @@ class FilterSettingsComponent {
|
|
|
8957
8960
|
},
|
|
8958
8961
|
});
|
|
8959
8962
|
const applyPatch = (patch) => {
|
|
8960
|
-
this.applyAlwaysVisibleMetadataPatch(fieldName, patch);
|
|
8963
|
+
this.applyAlwaysVisibleMetadataPatch(fieldName, patch, baselineOverride);
|
|
8961
8964
|
};
|
|
8962
8965
|
ref.applied$
|
|
8963
8966
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
@@ -9096,16 +9099,16 @@ class FilterSettingsComponent {
|
|
|
9096
9099
|
isPlainObject(value) {
|
|
9097
9100
|
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
9098
9101
|
}
|
|
9099
|
-
applyAlwaysVisibleMetadataPatch(fieldName, patch) {
|
|
9102
|
+
applyAlwaysVisibleMetadataPatch(fieldName, patch, baselineOverride) {
|
|
9100
9103
|
if (!patch || typeof patch !== 'object' || Array.isArray(patch))
|
|
9101
9104
|
return;
|
|
9102
9105
|
const normalized = this.normalizeAlwaysVisibleMetadataOverrides({
|
|
9103
9106
|
[fieldName]: patch,
|
|
9104
9107
|
})[fieldName];
|
|
9105
|
-
if (!normalized
|
|
9108
|
+
if (!normalized && baselineOverride === undefined)
|
|
9106
9109
|
return;
|
|
9107
9110
|
const current = this.getAlwaysVisibleOverridesMap();
|
|
9108
|
-
const merged = applyJsonMergePatch(current[fieldName]
|
|
9111
|
+
const merged = applyJsonMergePatch(baselineOverride ?? current[fieldName] ?? {}, normalized ?? {});
|
|
9109
9112
|
if (this.isPlainObject(merged) && Object.keys(merged).length) {
|
|
9110
9113
|
current[fieldName] = merged;
|
|
9111
9114
|
}
|
|
@@ -9412,6 +9415,7 @@ class FilterSettingsComponent {
|
|
|
9412
9415
|
});
|
|
9413
9416
|
this.syncAlwaysVisibleControlState();
|
|
9414
9417
|
this.refreshAlwaysVisibleOverridesEditor();
|
|
9418
|
+
this.settingsStateChanges.next();
|
|
9415
9419
|
}
|
|
9416
9420
|
refreshAlwaysVisibleOverridesEditor() {
|
|
9417
9421
|
const current = this.normalizeAlwaysVisibleMetadataOverrides(this.extraSettings.alwaysVisibleFieldMetadataOverrides);
|
|
@@ -20058,7 +20062,7 @@ class PraxisTable {
|
|
|
20058
20062
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
20059
20063
|
return;
|
|
20060
20064
|
this.aiAdapterLoadStarted = true;
|
|
20061
|
-
import('./praxisui-table-table-ai.adapter-
|
|
20065
|
+
import('./praxisui-table-table-ai.adapter-C6MRHQab.mjs')
|
|
20062
20066
|
.then(({ TableAiAdapter }) => {
|
|
20063
20067
|
if (!this.isAiAssistantEnabled()) {
|
|
20064
20068
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -20804,7 +20808,7 @@ class PraxisTable {
|
|
|
20804
20808
|
initializeAiAssistantController() {
|
|
20805
20809
|
if (!this.aiAdapter || this.aiAssistantController)
|
|
20806
20810
|
return;
|
|
20807
|
-
import('./praxisui-table-table-agentic-authoring-turn-flow-
|
|
20811
|
+
import('./praxisui-table-table-agentic-authoring-turn-flow-CF9bUWOK.mjs')
|
|
20808
20812
|
.then(({ TableAgenticAuthoringTurnFlow }) => {
|
|
20809
20813
|
if (this.aiAssistantController || !this.aiAdapter)
|
|
20810
20814
|
return;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable, firstValueFrom } from 'rxjs';
|
|
2
2
|
import { withAuthoringScopePolicy } from '@praxisui/ai';
|
|
3
|
-
import { af as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-
|
|
3
|
+
import { af as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-fOG6oo9f.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 { L as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, n as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, $ as coerceTableComponentEditPlans, a1 as compileTableComponentEditPlans, Q as TASK_PRESETS, a6 as getTableComponentEditPlanCapabilities, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, K as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { L as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, n as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, $ as coerceTableComponentEditPlans, a1 as compileTableComponentEditPlans, Q as TASK_PRESETS, a6 as getTableComponentEditPlanCapabilities, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, K as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-fOG6oo9f.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, n as PRAXIS_TABLE_AUTHORING_MANIFEST, o as PRAXIS_TABLE_COMPONENT_METADATA, p as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, q as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, r as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, s as PraxisFilter, t as PraxisFilterWidgetConfigEditor, u as PraxisTable, v as PraxisTableConfigEditor, w as PraxisTableInlineAuthoringEditorComponent, x as PraxisTableToolbar, y as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, z as TABLE_COMPONENT_AI_CAPABILITIES, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_KIND, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TASK_PRESETS, R as TableDefaultsProvider, U as TableRulesEditorComponent, V as ToolbarActionsEditorComponent, W as ValueMappingEditorComponent, X as VisualFormulaBuilderComponent, Y as analyticsComparisonMetricField, Z as buildTableApplyPlan, _ as coerceTableComponentEditPlan, $ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlan, a1 as compileTableComponentEditPlans, a2 as createTableAuthoringDocument, a3 as getActionId, a4 as getEnum, a5 as getTableCapabilities, a6 as getTableComponentEditPlanCapabilities, a7 as isTableRendererSupportedByRichContentP0, a8 as mapTableRendererToRichContentP0, a9 as normalizeTableAuthoringDocument, aa as parseLegacyOrTableDocument, ab as providePraxisFilterMetadata, ac as providePraxisTableMetadata, ad as providePraxisTableToolbarAppearance, ae as serializeTableAuthoringDocument, ag as toCanonicalTableConfig, ah as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, n as PRAXIS_TABLE_AUTHORING_MANIFEST, o as PRAXIS_TABLE_COMPONENT_METADATA, p as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, q as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, r as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, s as PraxisFilter, t as PraxisFilterWidgetConfigEditor, u as PraxisTable, v as PraxisTableConfigEditor, w as PraxisTableInlineAuthoringEditorComponent, x as PraxisTableToolbar, y as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, z as TABLE_COMPONENT_AI_CAPABILITIES, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_KIND, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TASK_PRESETS, R as TableDefaultsProvider, U as TableRulesEditorComponent, V as ToolbarActionsEditorComponent, W as ValueMappingEditorComponent, X as VisualFormulaBuilderComponent, Y as analyticsComparisonMetricField, Z as buildTableApplyPlan, _ as coerceTableComponentEditPlan, $ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlan, a1 as compileTableComponentEditPlans, a2 as createTableAuthoringDocument, a3 as getActionId, a4 as getEnum, a5 as getTableCapabilities, a6 as getTableComponentEditPlanCapabilities, a7 as isTableRendererSupportedByRichContentP0, a8 as mapTableRendererToRichContentP0, a9 as normalizeTableAuthoringDocument, aa as parseLegacyOrTableDocument, ab as providePraxisFilterMetadata, ac as providePraxisTableMetadata, ad as providePraxisTableToolbarAppearance, ae as serializeTableAuthoringDocument, ag as toCanonicalTableConfig, ah as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-fOG6oo9f.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0-rc.0",
|
|
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
|
-
"@praxisui/core": "^
|
|
11
|
-
"@praxisui/dynamic-fields": "^
|
|
12
|
-
"@praxisui/dynamic-form": "^
|
|
13
|
-
"@praxisui/metadata-editor": "^
|
|
14
|
-
"@praxisui/rich-content": "^
|
|
15
|
-
"@praxisui/settings-panel": "^
|
|
16
|
-
"@praxisui/table-rule-builder": "^
|
|
9
|
+
"@praxisui/ai": "^10.0.0-rc.0",
|
|
10
|
+
"@praxisui/core": "^10.0.0-rc.0",
|
|
11
|
+
"@praxisui/dynamic-fields": "^10.0.0-rc.0",
|
|
12
|
+
"@praxisui/dynamic-form": "^10.0.0-rc.0",
|
|
13
|
+
"@praxisui/metadata-editor": "^10.0.0-rc.0",
|
|
14
|
+
"@praxisui/rich-content": "^10.0.0-rc.0",
|
|
15
|
+
"@praxisui/settings-panel": "^10.0.0-rc.0",
|
|
16
|
+
"@praxisui/table-rule-builder": "^10.0.0-rc.0",
|
|
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": "^
|
|
21
|
+
"@praxisui/dialog": "^10.0.0-rc.0",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -3737,6 +3737,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3737
3737
|
isDirty$: Observable<boolean>;
|
|
3738
3738
|
isValid$: Observable<boolean>;
|
|
3739
3739
|
private readonly savingState;
|
|
3740
|
+
private readonly settingsStateChanges;
|
|
3740
3741
|
isBusy$: Observable<boolean>;
|
|
3741
3742
|
private initialSettings;
|
|
3742
3743
|
private extraSettings;
|