@praxisui/table 9.0.4-rc.35 → 9.0.4-rc.37

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.
@@ -1,6 +1,6 @@
1
1
  import { Observable, firstValueFrom } from 'rxjs';
2
2
  import { withAuthoringScopePolicy } from '@praxisui/ai';
3
- import { ad as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-BZzJ9MJI.mjs';
3
+ import { ad as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-DpcU9gEM.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 { I as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, l as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, Z as coerceTableComponentEditPlans, $ as compileTableComponentEditPlans, L as TASK_PRESETS, a4 as getTableComponentEditPlanCapabilities, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-BZzJ9MJI.mjs';
4
+ import { I as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, l as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, Z as coerceTableComponentEditPlans, $ as compileTableComponentEditPlans, L as TASK_PRESETS, a4 as getTableComponentEditPlanCapabilities, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-DpcU9gEM.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_COMPONENT_METADATA, l as PRAXIS_TABLE_AUTHORING_MANIFEST, m as PRAXIS_TABLE_COMPONENT_METADATA, n as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, o as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, p as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, q as PraxisFilter, r as PraxisFilterWidgetConfigEditor, s as PraxisTable, t as PraxisTableConfigEditor, u as PraxisTableInlineAuthoringEditorComponent, v as PraxisTableToolbar, w as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, x as TABLE_COMPONENT_AI_CAPABILITIES, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_KIND, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, L as TASK_PRESETS, O as TableDefaultsProvider, Q as TableRulesEditorComponent, R as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, U as VisualFormulaBuilderComponent, W as analyticsComparisonMetricField, X as buildTableApplyPlan, Y as coerceTableComponentEditPlan, Z as coerceTableComponentEditPlans, _ as compileTableComponentEditPlan, $ as compileTableComponentEditPlans, a0 as createTableAuthoringDocument, a1 as getActionId, a2 as getEnum, a3 as getTableCapabilities, a4 as getTableComponentEditPlanCapabilities, a5 as isTableRendererSupportedByRichContentP0, a6 as mapTableRendererToRichContentP0, a7 as normalizeTableAuthoringDocument, a8 as parseLegacyOrTableDocument, a9 as providePraxisFilterMetadata, aa as providePraxisTableMetadata, ab as providePraxisTableToolbarAppearance, ac as serializeTableAuthoringDocument, ae as toCanonicalTableConfig, af as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-BZzJ9MJI.mjs';
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_COMPONENT_METADATA, l as PRAXIS_TABLE_AUTHORING_MANIFEST, m as PRAXIS_TABLE_COMPONENT_METADATA, n as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, o as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, p as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, q as PraxisFilter, r as PraxisFilterWidgetConfigEditor, s as PraxisTable, t as PraxisTableConfigEditor, u as PraxisTableInlineAuthoringEditorComponent, v as PraxisTableToolbar, w as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, x as TABLE_COMPONENT_AI_CAPABILITIES, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_KIND, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, L as TASK_PRESETS, O as TableDefaultsProvider, Q as TableRulesEditorComponent, R as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, U as VisualFormulaBuilderComponent, W as analyticsComparisonMetricField, X as buildTableApplyPlan, Y as coerceTableComponentEditPlan, Z as coerceTableComponentEditPlans, _ as compileTableComponentEditPlan, $ as compileTableComponentEditPlans, a0 as createTableAuthoringDocument, a1 as getActionId, a2 as getEnum, a3 as getTableCapabilities, a4 as getTableComponentEditPlanCapabilities, a5 as isTableRendererSupportedByRichContentP0, a6 as mapTableRendererToRichContentP0, a7 as normalizeTableAuthoringDocument, a8 as parseLegacyOrTableDocument, a9 as providePraxisFilterMetadata, aa as providePraxisTableMetadata, ab as providePraxisTableToolbarAppearance, ac as serializeTableAuthoringDocument, ae as toCanonicalTableConfig, af as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-DpcU9gEM.mjs';
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "9.0.4-rc.35",
3
+ "version": "9.0.4-rc.37",
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.4-rc.35",
10
- "@praxisui/core": "^9.0.4-rc.35",
11
- "@praxisui/dynamic-fields": "^9.0.4-rc.35",
12
- "@praxisui/dynamic-form": "^9.0.4-rc.35",
13
- "@praxisui/metadata-editor": "^9.0.4-rc.35",
14
- "@praxisui/rich-content": "^9.0.4-rc.35",
15
- "@praxisui/settings-panel": "^9.0.4-rc.35",
16
- "@praxisui/table-rule-builder": "^9.0.4-rc.35",
9
+ "@praxisui/ai": "^9.0.4-rc.37",
10
+ "@praxisui/core": "^9.0.4-rc.37",
11
+ "@praxisui/dynamic-fields": "^9.0.4-rc.37",
12
+ "@praxisui/dynamic-form": "^9.0.4-rc.37",
13
+ "@praxisui/metadata-editor": "^9.0.4-rc.37",
14
+ "@praxisui/rich-content": "^9.0.4-rc.37",
15
+ "@praxisui/settings-panel": "^9.0.4-rc.37",
16
+ "@praxisui/table-rule-builder": "^9.0.4-rc.37",
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.4-rc.35",
21
+ "@praxisui/dialog": "^9.0.4-rc.37",
22
22
  "rxjs": "~7.8.0"
23
23
  },
24
24
  "dependencies": {
@@ -1038,6 +1038,11 @@ A superficie usa `horizontalScroll` com classes:
1038
1038
 
1039
1039
  Em `scroll-auto`, o viewport e uma regiao focalizavel por teclado para que o scroll horizontal continue acessivel sem mouse, inclusive no Safari. O nome acessivel usa `accessibility.ariaLabels.scrollViewport`, depois `toolbar.title` e, por fim, o fallback localizado do runtime. `scroll-wrap` e `scroll-none` nao introduzem uma parada de tabulacao adicional.
1040
1040
 
1041
+ #### Mobile card mode
1042
+ `appearance.responsive.mobile.cardMode: true` materializa cada linha **não virtualizada** como um card rotulado quando o viewport entra em `appearance.responsive.breakpoints.mobile`. A tabela continua sendo a fonte semântica e todos os campos permanecem no DOM; cada valor recebe o respectivo cabeçalho como rótulo visual.
1043
+
1044
+ `appearance.responsive.mobile.priorityColumns` é uma lista ordenada de `field`s que aparecem primeiro no card. Campos não prioritários continuam disponíveis abaixo deles; o runtime não oculta dados silenciosamente. Tabelas virtualizadas mantêm o modo de rolagem horizontal, pois um card pode ter altura variável.
1045
+
1041
1046
  #### Row/cell conditional styling
1042
1047
  - `rowConditionalStyles` aplica classes/estilo por linha.
1043
1048
  - `columns[].conditionalStyles` aplica por celula.
@@ -48,10 +48,13 @@ declare class PraxisTableToolbar implements OnDestroy {
48
48
  private defaultAppearance?;
49
49
  private tokenPresets?;
50
50
  activeOverflowMenuTrigger?: MatMenuTrigger;
51
+ private activeOverflowMenuTriggerElement?;
51
52
  config?: TableConfig;
52
53
  appearance?: TableToolbarAppearanceConfig | null;
53
54
  backgroundColor: string | null;
54
55
  placement: 'header' | 'footer';
56
+ /** Stable runtime scope used only to recover focus after a host re-renders. */
57
+ focusScope: string;
55
58
  showMain: boolean;
56
59
  showActionsGroup: boolean;
57
60
  showEndActions: boolean;
@@ -62,7 +65,7 @@ declare class PraxisTableToolbar implements OnDestroy {
62
65
  activeDensity: TableToolbarAppearanceDensity | null;
63
66
  /** @internal Used by PraxisTable so toolbar menu decisions materialize through the table runtime. */
64
67
  columnVisibilityController?: (field: string, visible: boolean) => void;
65
- toolbarAction: EventEmitter<Pick<ToolbarActionEvent<Record<string, unknown>>, "action" | "actionConfig">>;
68
+ toolbarAction: EventEmitter<Pick<ToolbarActionEvent<Record<string, unknown>>, "action" | "actionConfig" | "focusOrigin">>;
66
69
  exportAction: EventEmitter<{
67
70
  format: string;
68
71
  scope?: PraxisExportScope;
@@ -110,6 +113,7 @@ declare class PraxisTableToolbar implements OnDestroy {
110
113
  getExportFormatTooltip(format: unknown): string;
111
114
  getExportFormatAriaLabel(format: unknown): string;
112
115
  getMoreActionsLabel(): string;
116
+ getFocusOriginKey(part: string): string;
113
117
  emitExportAction(event: Event, format: string): void;
114
118
  emitVisibleExcelExportAction(event: Event): void;
115
119
  isExcelExportFormat(format: unknown): boolean;
@@ -164,7 +168,8 @@ declare class PraxisTableToolbar implements OnDestroy {
164
168
  private cloneForEmit;
165
169
  private getLogger;
166
170
  private warnLog;
167
- emitToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1): void;
171
+ emitToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1, focusOrigin?: HTMLElement): void;
172
+ setActiveOverflowMenuTrigger(trigger: MatMenuTrigger, origin?: unknown): void;
168
173
  emitOverflowToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1): void;
169
174
  getStartActions(): any[];
170
175
  getNonStartActions(): any[];
@@ -217,7 +222,7 @@ declare class PraxisTableToolbar implements OnDestroy {
217
222
  private sortActions;
218
223
  getExportIcon(format: string): string;
219
224
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableToolbar, [null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
220
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "exportBusy": { "alias": "exportBusy"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; "activeQuickFilterId": { "alias": "activeQuickFilterId"; "required": false; }; "activeDensity": { "alias": "activeDensity"; "required": false; }; "columnVisibilityController": { "alias": "columnVisibilityController"; "required": false; }; }, { "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; "columnVisibilityToggle": "columnVisibilityToggle"; "quickFilterChange": "quickFilterChange"; "densityChange": "densityChange"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
225
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "focusScope": { "alias": "focusScope"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "exportBusy": { "alias": "exportBusy"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; "activeQuickFilterId": { "alias": "activeQuickFilterId"; "required": false; }; "activeDensity": { "alias": "activeDensity"; "required": false; }; "columnVisibilityController": { "alias": "columnVisibilityController"; "required": false; }; }, { "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; "columnVisibilityToggle": "columnVisibilityToggle"; "quickFilterChange": "quickFilterChange"; "densityChange": "densityChange"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
221
226
  }
222
227
 
223
228
  type ColumnDataType$1 = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
@@ -1131,6 +1136,8 @@ type RowExpansionChangeEvent = (RowExpansionChangeBase & {
1131
1136
  type RowActionRuntimeOptions = {
1132
1137
  payload?: any;
1133
1138
  actionConfig?: any;
1139
+ /** Runtime-only focus origin. It must never be persisted or sent to an API. */
1140
+ focusOrigin?: HTMLElement;
1134
1141
  };
1135
1142
  type RowActionTriggerEvent = {
1136
1143
  target?: EventTarget | null;
@@ -1187,6 +1194,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1187
1194
  private logger?;
1188
1195
  private analyticsStatsApi?;
1189
1196
  activeRowOverflowMenuTrigger?: MatMenuTrigger;
1197
+ private activeRowOverflowMenuTriggerElement?;
1190
1198
  private openingRowActions;
1191
1199
  private static readonly CELL_ANIMATION_CHANGE_CACHE_LIMIT;
1192
1200
  private static readonly AI_SELECTION_ROW_LIMIT;
@@ -1398,6 +1406,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1398
1406
  private shouldApplyResponsiveHorizontalScrollGlobally;
1399
1407
  private isWithinResponsiveMobileBreakpoint;
1400
1408
  private refreshResponsiveHorizontalScroll;
1409
+ /**
1410
+ * Materializes the existing responsive contract as a labelled record card on
1411
+ * narrow screens. Virtual rows intentionally keep the scroll-table path:
1412
+ * their fixed item height cannot safely represent a variable-height card.
1413
+ */
1414
+ isMobileCardModeActive(): boolean;
1415
+ getMobileCardColumnOrder(column: ColumnDefinition): number;
1416
+ getMobileCardActionsOrder(): number;
1401
1417
  private scheduleResponsiveHorizontalScrollRefresh;
1402
1418
  private cancelResponsiveHorizontalScrollRefresh;
1403
1419
  hasBottomPaginator(): boolean;
@@ -1888,6 +1904,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1888
1904
  onRowDoubleClicked(row: any, index: number): void;
1889
1905
  onRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
1890
1906
  onOverflowRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
1907
+ setActiveRowOverflowMenuTrigger(trigger: MatMenuTrigger, origin?: unknown): void;
1891
1908
  private resolveRowActionRuntimeOptions;
1892
1909
  private emitRowActionEvent;
1893
1910
  private showConfirmDialog;
@@ -1918,10 +1935,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1918
1935
  private resolveBulkValidationMessage;
1919
1936
  private hasValidBulkSelectionCount;
1920
1937
  private showBulkConfirmDialog;
1921
- onToolbarAction(event: {
1922
- action: string;
1923
- actionConfig?: ToolbarAction$1;
1924
- }): Promise<void>;
1938
+ onToolbarAction(event: Pick<ToolbarActionEvent<any>, 'action' | 'actionConfig' | 'focusOrigin'>): Promise<void>;
1939
+ getFocusRestoreScope(placement: 'header' | 'footer' | 'row'): string;
1940
+ getRowActionFocusOriginKey(row: any): string;
1925
1941
  private hasValidToolbarTargetSelection;
1926
1942
  private tryHandleCollectionWorkflowToolbarAction;
1927
1943
  private openCollectionWorkflowAction;