@praxisui/table 3.0.0-beta.6 → 3.0.0-beta.8

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/index.d.ts CHANGED
@@ -10,7 +10,7 @@ import { CdkDragDrop, CdkDragEnd, CdkDrag, CdkDropList } from '@angular/cdk/drag
10
10
  import { BehaviorSubject, Subscription, Observable } from 'rxjs';
11
11
  import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
12
12
  import * as _praxisui_core from '@praxisui/core';
13
- import { TableConfig, LoggerService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, LoadingState, ColumnDefinition, ConnectionStorage, LoadingOrchestrator, PraxisLoadingRenderer, GlobalActionSpec, IconPickerService, GlobalActionField, TableConfigService, FieldDefinition, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
13
+ import { TableConfig, LoggerService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, LoadingState, ColumnDefinition, ConnectionStorage, LoadingOrchestrator, PraxisLoadingRenderer, GlobalActionSpec, IconPickerService, SurfaceOpenPayload, GlobalActionField, TableConfigService, FieldDefinition, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
14
14
  import { FunctionRegistry, DslParser } from '@praxisui/specification';
15
15
  import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
16
16
  import { MatDialog } from '@angular/material/dialog';
@@ -227,6 +227,7 @@ declare class DataFormattingService {
227
227
  private applyMask;
228
228
  private formatBoolean;
229
229
  needsFormatting(columnType: ColumnDataType$1, formatString: string | null | undefined): boolean;
230
+ getHostLocale(): string;
230
231
  private resolveFormattingContext;
231
232
  private getLocalePipeBundle;
232
233
  private getNumericSeparators;
@@ -765,6 +766,16 @@ type SchemaFieldHint = {
765
766
  optionValueKey?: string;
766
767
  enumValues?: string[];
767
768
  };
769
+ type PraxisDataQueryContextBridge = {
770
+ filters?: Record<string, unknown> | null;
771
+ sort?: string[] | null;
772
+ limit?: number | null;
773
+ page?: {
774
+ index?: number | null;
775
+ size?: number | null;
776
+ } | null;
777
+ meta?: Record<string, unknown> | null;
778
+ };
768
779
  type DataMode = 'remote' | 'local' | 'empty';
769
780
  type RowExpansionTrigger = 'icon' | 'row' | 'keyboard' | 'api' | 'restore';
770
781
  type RowExpansionReasonCode = 'user' | 'policy' | 'restore' | 'api';
@@ -867,6 +878,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
867
878
  crudContext: any;
868
879
  dslFunctionRegistry: FunctionRegistry<any> | null;
869
880
  filterCriteria: Record<string, any>;
881
+ queryContext: PraxisDataQueryContextBridge | null;
870
882
  rowClick: EventEmitter<any>;
871
883
  rowDoubleClick: EventEmitter<any>;
872
884
  rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
@@ -1017,7 +1029,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1017
1029
  private computedExpressionEvaluator;
1018
1030
  private resizeObserver;
1019
1031
  private removeViewportChangeListeners;
1020
- private warnedMissingId;
1021
1032
  private readonly warnedUnsupportedFeatures;
1022
1033
  private warnedStrictCspStyleMode;
1023
1034
  private fallbackLogger?;
@@ -1056,7 +1067,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1056
1067
  private storageKey;
1057
1068
  private tableConfigKey;
1058
1069
  private filterConfigKey;
1059
- private warnMissingId;
1060
1070
  private ensureConfigDefaults;
1061
1071
  private setShowToolbar;
1062
1072
  private configureDslRuntime;
@@ -1269,6 +1279,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1269
1279
  */
1270
1280
  private inferFieldTypeFromFieldName;
1271
1281
  private fetchData;
1282
+ private getEffectiveFilterCriteria;
1272
1283
  retryData(): void;
1273
1284
  reloadSchema(): void;
1274
1285
  refetch(): void;
@@ -1280,6 +1291,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1280
1291
  * 3. format (data formatting like dates, numbers, currency)
1281
1292
  */
1282
1293
  getCellValue(rowData: any, column: ColumnDefinition): any;
1294
+ private resolveImplicitFormat;
1283
1295
  getCellClasses(rowData: any, column: ColumnDefinition): string[] | undefined;
1284
1296
  getCellNgStyle(rowData: any, column: ColumnDefinition): Record<string, string> | undefined;
1285
1297
  private resetComputedContextCache;
@@ -1545,7 +1557,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1545
1557
  getRowMenuIcon(): string;
1546
1558
  ngOnDestroy(): void;
1547
1559
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTable, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
1548
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "dslFunctionRegistry": { "alias": "dslFunctionRegistry"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
1560
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "dslFunctionRegistry": { "alias": "dslFunctionRegistry"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
1549
1561
  static ngAcceptInputType_enableCustomization: unknown;
1550
1562
  }
1551
1563
 
@@ -1741,9 +1753,11 @@ interface ExtendedColumnDefinition extends ColumnDefinition {
1741
1753
  }
1742
1754
  declare class ColumnsConfigEditorComponent implements OnInit, OnDestroy {
1743
1755
  private cdr;
1744
- readonly ratingAriaLabelPlaceholder = "Avalia\u00E7\u00E3o {value} de {max}";
1745
- readonly ratingRendererHint = "Renderer padronizado e somente leitura para uso em tabela. \u00CDcones customizados n\u00E3o s\u00E3o suportados neste contexto. Valores fracionados s\u00E3o normalizados em passos de 0.5 no grid. Use {value} e {max} no aria-label para sobrescrever o texto acess\u00EDvel completo; sem placeholders, o valor informado funciona como prefixo.";
1746
- readonly composeRatingRendererHint = "Compose/Rating usa o mesmo renderer can\u00F4nico de tabela e normaliza fra\u00E7\u00F5es em passos de 0.5. Use {value} e {max} para sobrescrever o texto acess\u00EDvel completo.";
1756
+ private readonly i18n;
1757
+ tx(key: string, fallback: string): string;
1758
+ readonly ratingAriaLabelPlaceholder: string;
1759
+ readonly ratingRendererHint: string;
1760
+ readonly composeRatingRendererHint: string;
1747
1761
  config: TableConfig;
1748
1762
  configChange: EventEmitter<_praxisui_core.TableConfigModern>;
1749
1763
  columnChange: EventEmitter<ColumnChange>;
@@ -2013,11 +2027,13 @@ interface BehaviorConfigChange {
2013
2027
  }
2014
2028
  declare class BehaviorConfigEditorComponent implements OnInit, OnDestroy, OnChanges {
2015
2029
  private fb;
2030
+ private readonly i18n;
2031
+ tx(key: string, fallback: string): string;
2016
2032
  readonly schemaOnlyLimitationsDocPath = "praxis-table.json-api.md#known-limitations-and-mismatches";
2017
- readonly multiSortSchemaOnlyTooltip = "behavior.sorting.multiSort \u00E9 schema-only no runtime atual. Consulte a documenta\u00E7\u00E3o de limita\u00E7\u00F5es.";
2018
- readonly columnFiltersSchemaOnlyTooltip = "behavior.filtering.columnFilters.enabled \u00E9 schema-only no runtime atual. Consulte a documenta\u00E7\u00E3o de limita\u00E7\u00F5es.";
2019
- readonly draggingRowsSchemaOnlyTooltip = "behavior.dragging.rows \u00E9 schema-only no runtime atual. Consulte a documenta\u00E7\u00E3o de limita\u00E7\u00F5es.";
2020
- readonly expansionSchemaOnlyTooltip = "behavior.expansion.* possui runtime P0A ativo para detail row schema-driven (sem virtualiza\u00E7\u00E3o).";
2033
+ readonly multiSortSchemaOnlyTooltip: string;
2034
+ readonly columnFiltersSchemaOnlyTooltip: string;
2035
+ readonly draggingRowsSchemaOnlyTooltip: string;
2036
+ readonly expansionSchemaOnlyTooltip: string;
2021
2037
  config: TableConfig;
2022
2038
  resourcePath?: string;
2023
2039
  forceClientStrategies: boolean;
@@ -2076,7 +2092,7 @@ interface ToolbarAction {
2076
2092
  icon?: string;
2077
2093
  type: 'button' | 'icon' | 'fab' | 'menu';
2078
2094
  color?: 'primary' | 'accent' | 'warn';
2079
- /** Aparência do botão Material: filled (flat), outlined (stroked), elevated (raised), text, tonal */
2095
+ /** Aparência do botão Material: filled (flat), outlined (stroked), elevated (raised), text, tonal */
2080
2096
  appearance?: 'filled' | 'outlined' | 'elevated' | 'text' | 'tonal';
2081
2097
  action: string;
2082
2098
  position: 'start' | 'end';
@@ -2140,14 +2156,27 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2140
2156
  editingRowActionIndex: number | null;
2141
2157
  editingBulkActionIndex: number | null;
2142
2158
  readonly globalActionCatalog: GlobalActionSpec[];
2143
- readonly internalActionCatalog: InternalActionSpec[];
2159
+ get internalActionCatalog(): InternalActionSpec[];
2144
2160
  readonly customActionValue = "__custom__";
2145
2161
  readonly validShortcutScopes: ToolbarShortcutScope[];
2146
2162
  private readonly actionFieldDrafts;
2147
2163
  private readonly actionFieldErrors;
2148
2164
  private readonly warnedInvalidShortcutScopes;
2165
+ private readonly i18n;
2149
2166
  private destroy$;
2150
2167
  constructor(fb: FormBuilder, iconPicker: IconPickerService);
2168
+ tx(key: string, fallback: string): string;
2169
+ getGlobalActionSpecLabel(spec: {
2170
+ id?: string;
2171
+ label?: string;
2172
+ }): string;
2173
+ getGlobalActionSpecHint(spec: {
2174
+ id?: string;
2175
+ description?: string;
2176
+ param?: {
2177
+ hint?: string;
2178
+ };
2179
+ }): string;
2151
2180
  ngOnInit(): void;
2152
2181
  ngOnChanges(changes: SimpleChanges): void;
2153
2182
  ngOnDestroy(): void;
@@ -2182,6 +2211,12 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2182
2211
  getGlobalActionSchema(action: {
2183
2212
  action?: string;
2184
2213
  }): _praxisui_core.GlobalActionUiSchema | undefined;
2214
+ getSurfaceOpenActionPayload(action: {
2215
+ action?: string;
2216
+ }): SurfaceOpenPayload;
2217
+ onSurfaceOpenActionPayloadChange(action: {
2218
+ action?: string;
2219
+ }, payload: SurfaceOpenPayload, kind: 'toolbar' | 'row' | 'bulk'): void;
2185
2220
  shouldShowGlobalActionField(action: {
2186
2221
  action?: string;
2187
2222
  }, field: GlobalActionField): boolean;
@@ -2200,6 +2235,7 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2200
2235
  private getActionParamInfo;
2201
2236
  private parseMethodAndUrl;
2202
2237
  private stringifyJson;
2238
+ private normalizeSurfaceOpenPayload;
2203
2239
  private setActionFieldError;
2204
2240
  private clearActionFieldError;
2205
2241
  private collectGlobalActionFieldValues;
@@ -2254,10 +2290,12 @@ declare class MessagesLocalizationEditorComponent implements OnInit, OnDestroy {
2254
2290
  config: TableConfig;
2255
2291
  configChange: EventEmitter<_praxisui_core.TableConfigModern>;
2256
2292
  messagesLocalizationChange: EventEmitter<MessagesLocalizationChange>;
2293
+ private readonly i18n;
2257
2294
  messagesForm: FormGroup;
2258
2295
  isV2: boolean;
2259
2296
  private destroy$;
2260
2297
  constructor(fb: FormBuilder);
2298
+ tx(key: string, fallback: string): string;
2261
2299
  ngOnInit(): void;
2262
2300
  ngOnDestroy(): void;
2263
2301
  private initializeForm;
@@ -2571,7 +2609,9 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
2571
2609
  private readonly panelData;
2572
2610
  private readonly crudService;
2573
2611
  private readonly panelRef;
2612
+ private readonly i18n;
2574
2613
  constructor(cdr: ChangeDetectorRef, configService: TableConfigService);
2614
+ tx(key: string, fallback: string): string;
2575
2615
  private isDebugLoggingEnabled;
2576
2616
  private debugLog;
2577
2617
  ngOnInit(): void;
@@ -2858,6 +2898,7 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
2858
2898
  private dynamicForm;
2859
2899
  private crud?;
2860
2900
  private static runtimeRegistryInstanceCounter;
2901
+ private readonly i18n;
2861
2902
  config: TableConfig;
2862
2903
  resourcePath?: string;
2863
2904
  fields?: FieldDefinition[] | null;
@@ -2909,7 +2950,6 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
2909
2950
  /** Log a focused view for a single field */
2910
2951
  private logSingleFieldMeta;
2911
2952
  private logFieldChoices;
2912
- i18nDefault: Record<string, string>;
2913
2953
  t(key: string): string;
2914
2954
  constructor(cdr: ChangeDetectorRef, registry: OperatorsRegistryService, compiler: RuleCompilerService, dynamicForm: DynamicFormService, crud?: GenericCrudService<any> | undefined);
2915
2955
  private configureDslRuntime;
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "3.0.0-beta.6",
3
+ "version": "3.0.0-beta.8",
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": "^20.0.0",
7
7
  "@angular/core": "^20.0.0",
8
- "@praxisui/core": "^3.0.0-beta.6",
9
- "@praxisui/dynamic-fields": "^3.0.0-beta.6",
10
- "@praxisui/dynamic-form": "^3.0.0-beta.6",
11
- "@praxisui/metadata-editor": "^3.0.0-beta.6",
12
- "@praxisui/settings-panel": "^3.0.0-beta.6",
13
- "@praxisui/table-rule-builder": "^3.0.0-beta.6"
8
+ "@praxisui/core": "^3.0.0-beta.8",
9
+ "@praxisui/dynamic-fields": "^3.0.0-beta.8",
10
+ "@praxisui/dynamic-form": "^3.0.0-beta.8",
11
+ "@praxisui/metadata-editor": "^3.0.0-beta.8",
12
+ "@praxisui/settings-panel": "^3.0.0-beta.8",
13
+ "@praxisui/table-rule-builder": "^3.0.0-beta.8"
14
14
  },
15
15
  "dependencies": {
16
16
  "tslib": "^2.3.0"