@praxisui/table 10.0.0-rc.20 → 10.0.0-rc.21
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/fesm2022/{praxisui-table-praxisui-table-Coph3LrY.mjs → praxisui-table-praxisui-table-BGbn6DFa.mjs} +9 -7
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-LLzzZHSg.mjs → praxisui-table-table-agentic-authoring-turn-flow-DPJpzgFT.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-D-PEKBru.mjs → praxisui-table-table-ai.adapter-Dwq3cX1k.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -421,7 +421,7 @@ For row-specific corporate indicators, declare `*Expr` properties inside the vis
|
|
|
421
421
|
|
|
422
422
|
Table-safe micro visualization kinds are `line`, `area`, `column`, `comparison`, `stackedBar`, `radial`, `harveyBall`, `bullet`, `delta`, and `processFlow`. For enterprise authoring, `delta`, `bullet`, `radial`, `harveyBall`, and `stackedBar` are recommended for rapid scanning in compact cells. `line`, `area`, and `column` are conditional on horizontal space; `comparison` is conditional because it increases row height; and `processFlow` is conditional because its steps must remain recognizable. Use an expanded row or related surface when those trade-offs do not directly support the decision. This is guidance rather than a runtime blocker, so existing governed documents remain faithfully rendered. If a row does not provide the minimum series/step data for a visual kind, the renderer keeps an accessible compact fallback with `role="img"` and the configured fallback or aria text.
|
|
423
423
|
|
|
424
|
-
For `microVisualization` kinds that resolve numeric values (`delta`, `bullet`, `radial`, `harveyBall`, `line`, `area`, `column`, and `comparison`), `ColumnsConfigEditorComponent` provides visual authoring for `visualization.thresholds` (`min`, `max`, `tone`, reordering, removal, and a one-click traffic-light preset `0–39 danger`, `40–69 warning`, `70–100 success`) in both primary column renderers and `conditionalRenderers[]` overrides. In `PraxisPresentationVisualizationConfig`, an explicit fixed `visualization.tone` overrides `thresholds` unless `toneExpr` resolves at runtime; choosing **Automatic** (`tone` omitted) or adding/applying threshold bands clears the default fixed tone so `thresholds` take effect immediately, and the editor warns when both a fixed `tone` and `thresholds` are present.
|
|
424
|
+
For `microVisualization` kinds that resolve numeric values (`delta`, `bullet`, `radial`, `harveyBall`, `line`, `area`, `column`, and `comparison`), `ColumnsConfigEditorComponent` provides visual authoring for `visualization.thresholds` (`min`, `max`, `tone`, reordering, removal, and a one-click traffic-light preset `0–39 danger`, `40–69 warning`, `70–100 success`) in both primary column renderers and `conditionalRenderers[]` overrides. In `PraxisPresentationVisualizationConfig`, an explicit fixed `visualization.tone` overrides `thresholds` unless `toneExpr` resolves at runtime; choosing **Automatic** (`tone` omitted) or adding/applying threshold bands clears the default fixed tone so `thresholds` take effect immediately, and the editor warns when both a fixed `tone` and `thresholds` are present. Thresholds use the Core condition vocabulary: discrete `equals` matches take priority, then numeric ranges (`min <= value <= max`, with open-ended `min` or `max` allowed) and progressive `value` cutoffs are evaluated in order. Existing `value` and `equals` conditions (including `0`, `false`, and strings) remain valid in primary and conditional renderers and survive tone edits, Apply and reopen; range controls do not convert them. Thresholds without a supported condition or with `min > max` fail renderer validation before Apply. The editor also includes a deterministic numeric sample strip (default `15, 40, 69, 70, 98`) so authors can verify threshold color transitions immediately without depending on generic string sample rows.
|
|
425
425
|
|
|
426
426
|
A `conditionalRenderers[]` rule can materialize the same `microVisualization` contract when its Json Logic condition is true. Keep `surface: 'table-cell'`, the data property required by the selected kind, and `fallbackText`; first-match precedence still applies. Conditional visuals communicate a row state already defined by the canonical condition—they do not encode a new business rule in the table.
|
|
427
427
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-10-
|
|
3
|
+
"generatedAt": "2026-10-15T04:35:19.773Z",
|
|
4
4
|
"packageName": "@praxisui/table",
|
|
5
|
-
"packageVersion": "10.0.0-rc.
|
|
5
|
+
"packageVersion": "10.0.0-rc.21",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -9065,7 +9065,7 @@ const PRAXIS_TABLE_EDITOR_I18N_CONFIG = {
|
|
|
9065
9065
|
'columns.renderer.microVisualization.thresholds.remove': 'Remover faixa',
|
|
9066
9066
|
'columns.renderer.microVisualization.thresholds.empty': 'Nenhuma faixa configurada. Adicione faixas ou aplique o preset semáforo para colorir automaticamente por valor.',
|
|
9067
9067
|
'columns.renderer.microVisualization.thresholds.sampleValues': 'Valores de teste da prévia (separados por vírgula)',
|
|
9068
|
-
'columns.renderer.microVisualization.validation.thresholdEmptyBounds': 'Microvisualização: a faixa {index} precisa definir
|
|
9068
|
+
'columns.renderer.microVisualization.validation.thresholdEmptyBounds': 'Microvisualização: a faixa {index} precisa definir uma condição (min, max, value ou equals).',
|
|
9069
9069
|
'columns.renderer.microVisualization.validation.thresholdMinGreaterThanMax': 'Microvisualização: na faixa {index}, o mínimo ({min}) não pode ser maior que o máximo ({max}).',
|
|
9070
9070
|
},
|
|
9071
9071
|
'en-US': {
|
|
@@ -10439,7 +10439,7 @@ const PRAXIS_TABLE_EDITOR_I18N_CONFIG = {
|
|
|
10439
10439
|
'columns.renderer.microVisualization.thresholds.remove': 'Remove threshold',
|
|
10440
10440
|
'columns.renderer.microVisualization.thresholds.empty': 'No threshold bands configured. Add bands or apply the traffic-light preset to color values automatically.',
|
|
10441
10441
|
'columns.renderer.microVisualization.thresholds.sampleValues': 'Preview sample values (comma-separated)',
|
|
10442
|
-
'columns.renderer.microVisualization.validation.thresholdEmptyBounds': 'Micro visualization: threshold {index} must define
|
|
10442
|
+
'columns.renderer.microVisualization.validation.thresholdEmptyBounds': 'Micro visualization: threshold {index} must define a condition (min, max, value or equals).',
|
|
10443
10443
|
'columns.renderer.microVisualization.validation.thresholdMinGreaterThanMax': 'Micro visualization: in threshold {index}, min ({min}) cannot be greater than max ({max}).',
|
|
10444
10444
|
},
|
|
10445
10445
|
},
|
|
@@ -23377,7 +23377,7 @@ class PraxisTable {
|
|
|
23377
23377
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
23378
23378
|
return;
|
|
23379
23379
|
this.aiAdapterLoadStarted = true;
|
|
23380
|
-
import('./praxisui-table-table-ai.adapter-
|
|
23380
|
+
import('./praxisui-table-table-ai.adapter-Dwq3cX1k.mjs')
|
|
23381
23381
|
.then(({ TableAiAdapter }) => {
|
|
23382
23382
|
if (!this.isAiAssistantEnabled()) {
|
|
23383
23383
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -24149,7 +24149,7 @@ class PraxisTable {
|
|
|
24149
24149
|
initializeAiAssistantController() {
|
|
24150
24150
|
if (!this.aiAdapter || this.aiAssistantController)
|
|
24151
24151
|
return;
|
|
24152
|
-
import('./praxisui-table-table-agentic-authoring-turn-flow-
|
|
24152
|
+
import('./praxisui-table-table-agentic-authoring-turn-flow-DPJpzgFT.mjs')
|
|
24153
24153
|
.then(({ TableAgenticAuthoringTurnFlow }) => {
|
|
24154
24154
|
if (this.aiAssistantController || !this.aiAdapter)
|
|
24155
24155
|
return;
|
|
@@ -47467,11 +47467,13 @@ class ColumnsConfigEditorComponent {
|
|
|
47467
47467
|
thresholds.forEach((entry, idx) => {
|
|
47468
47468
|
const hasMin = typeof entry?.min === 'number' && Number.isFinite(entry.min);
|
|
47469
47469
|
const hasMax = typeof entry?.max === 'number' && Number.isFinite(entry.max);
|
|
47470
|
-
|
|
47471
|
-
|
|
47470
|
+
const hasValue = typeof entry?.value === 'number' && Number.isFinite(entry.value);
|
|
47471
|
+
const hasEquals = entry?.equals !== undefined;
|
|
47472
|
+
if (!hasMin && !hasMax && !hasValue && !hasEquals) {
|
|
47473
|
+
errs.push(this.tx('columns.renderer.microVisualization.validation.thresholdEmptyBounds', 'Micro visualization: threshold {index} must define a condition (min, max, value or equals).').replace('{index}', String(idx + 1)));
|
|
47472
47474
|
}
|
|
47473
47475
|
else if (hasMin && hasMax && entry.min > entry.max) {
|
|
47474
|
-
errs.push(this.tx('columns.renderer.validation.
|
|
47476
|
+
errs.push(this.tx('columns.renderer.microVisualization.validation.thresholdMinGreaterThanMax', 'Micro visualization: in threshold {index}, min ({min}) cannot be greater than max ({max}).')
|
|
47475
47477
|
.replace('{index}', String(idx + 1))
|
|
47476
47478
|
.replace('{min}', String(entry.min))
|
|
47477
47479
|
.replace('{max}', String(entry.max)));
|
|
@@ -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-BGbn6DFa.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-BGbn6DFa.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-BGbn6DFa.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.21",
|
|
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.21",
|
|
10
|
+
"@praxisui/core": "^10.0.0-rc.21",
|
|
11
|
+
"@praxisui/dynamic-fields": "^10.0.0-rc.21",
|
|
12
|
+
"@praxisui/dynamic-form": "^10.0.0-rc.21",
|
|
13
|
+
"@praxisui/metadata-editor": "^10.0.0-rc.21",
|
|
14
|
+
"@praxisui/rich-content": "^10.0.0-rc.21",
|
|
15
|
+
"@praxisui/settings-panel": "^10.0.0-rc.21",
|
|
16
|
+
"@praxisui/table-rule-builder": "^10.0.0-rc.21",
|
|
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.21",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|