@praxisui/table 8.0.0-beta.26 → 8.0.0-beta.28

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
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnDestroy, EventEmitter, ElementRef, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, Provider, AfterContentInit } from '@angular/core';
2
+ import { OnDestroy, EventEmitter, ElementRef, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, Provider, AfterContentInit, Injector } from '@angular/core';
3
3
  import { ActivatedRoute } from '@angular/router';
4
4
  import { MatTable, MatTableDataSource } from '@angular/material/table';
5
5
  import { MatPaginatorSelectConfig, MatPaginator, PageEvent } from '@angular/material/paginator';
@@ -10,10 +10,11 @@ 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, PraxisI18nService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ConnectionStorage, ResourceDiscoveryService, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
13
+ import { TableConfig, LoggerService, PraxisI18nService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ConnectionStorage, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
14
14
  import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
15
15
  import { MatDialog } from '@angular/material/dialog';
16
16
  import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
17
+ import { MatSelect } from '@angular/material/select';
17
18
  import { PraxisDialog } from '@praxisui/dialog';
18
19
  import { PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
19
20
  import { HttpClient } from '@angular/common/http';
@@ -341,12 +342,14 @@ type I18n = {
341
342
  advanced: string;
342
343
  advancedTitle?: string;
343
344
  advancedOpening?: string;
345
+ advancedUnavailable?: string;
344
346
  clear: string;
345
347
  apply: string;
346
348
  add?: string;
347
349
  filtersAdd?: string;
348
350
  filtersSearch?: string;
349
351
  addCount?: string;
352
+ addUnavailable?: string;
350
353
  pendingCount?: string;
351
354
  activeFiltersCount?: string;
352
355
  selectAll?: string;
@@ -689,6 +692,9 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
689
692
  onAdvancedValidityChange(valid: boolean): void;
690
693
  onAddOpened(opened: boolean): void;
691
694
  onAddQuery(q: string): void;
695
+ openAddSelect(select: MatSelect): void;
696
+ hasAddableFields(): boolean;
697
+ private getAddableItems;
692
698
  private updateAddItems;
693
699
  trackById(_idx: number, it: {
694
700
  id: string;
@@ -744,6 +750,8 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
744
750
  private openAdvancedModal;
745
751
  private openAdvancedDrawer;
746
752
  toggleAdvanced(): void;
753
+ hasAdvancedFields(): boolean;
754
+ private getAdvancedCandidateMetas;
747
755
  private usesProvidedFieldMetadata;
748
756
  private applyProvidedFieldMetadata;
749
757
  private saveConfig;
@@ -930,7 +938,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
930
938
  private connectionStorage;
931
939
  private hostRef;
932
940
  private global;
933
- private resourceDiscovery;
941
+ private injector;
934
942
  private componentKeys;
935
943
  private loadingOrchestrator;
936
944
  private globalActions;
@@ -943,6 +951,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
943
951
  private static readonly ROW_DISCOVERY_ERROR_CACHE_TTL_MS;
944
952
  private static readonly ROW_DISCOVERY_CACHE_LIMIT;
945
953
  private static readonly ROW_DISCOVERY_MAX_CONCURRENT_REQUESTS;
954
+ private _resourceDiscovery?;
946
955
  readonly paginatorSelectConfig: MatPaginatorSelectConfig;
947
956
  private static readonly ROW_ANIMATION_PRESETS;
948
957
  private static readonly ROW_ANIMATION_PRESET_ALIASES;
@@ -1146,6 +1155,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1146
1155
  getSchemaFieldsSnapshot(): SchemaFieldHint[];
1147
1156
  aiAdapter: any;
1148
1157
  private aiAdapterLoadStarted;
1158
+ private aiAssistantOpenAfterAdapterLoad;
1149
1159
  aiAssistantOpen: boolean;
1150
1160
  aiAssistantPrompt: string;
1151
1161
  aiAssistantViewState: PraxisAssistantTurnViewState | null;
@@ -1203,9 +1213,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1203
1213
  private tableConfigKey;
1204
1214
  private filterConfigKey;
1205
1215
  private ensureConfigDefaults;
1216
+ private mergePersistedTableConfigWithInput;
1217
+ private reconcileHostDeclaredTableContract;
1218
+ private reconcileHostDeclaredColumns;
1219
+ private reconcileHostDeclaredRowActions;
1220
+ private normalizePersistedRowActionIds;
1221
+ private normalizePersistedColumnIds;
1222
+ private clonePlainObject;
1206
1223
  private setShowToolbar;
1207
1224
  private shouldExposeToolbar;
1208
- constructor(cdr: ChangeDetectorRef, settingsPanel: SettingsPanelService, crudService: GenericCrudService<any, any>, tableDefaultsProvider: TableDefaultsProvider, filterConfig: FilterConfigService, formattingService: DataFormattingService, pxDialog: PraxisDialog, snackBar: MatSnackBar, asyncConfigStorage: AsyncConfigStorage, connectionStorage: ConnectionStorage, hostRef: ElementRef<HTMLElement>, global: GlobalConfigService, resourceDiscovery: ResourceDiscoveryService, componentKeys: ComponentKeyService, loadingOrchestrator: LoadingOrchestrator, globalActions: GlobalActionService, loadingRenderer?: PraxisLoadingRenderer | undefined, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined, analyticsStatsApi?: AnalyticsTableStatsApiService | undefined);
1225
+ constructor(cdr: ChangeDetectorRef, settingsPanel: SettingsPanelService, crudService: GenericCrudService<any, any>, tableDefaultsProvider: TableDefaultsProvider, filterConfig: FilterConfigService, formattingService: DataFormattingService, pxDialog: PraxisDialog, snackBar: MatSnackBar, asyncConfigStorage: AsyncConfigStorage, connectionStorage: ConnectionStorage, hostRef: ElementRef<HTMLElement>, global: GlobalConfigService, injector: Injector, componentKeys: ComponentKeyService, loadingOrchestrator: LoadingOrchestrator, globalActions: GlobalActionService, loadingRenderer?: PraxisLoadingRenderer | undefined, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined, analyticsStatsApi?: AnalyticsTableStatsApiService | undefined);
1226
+ private get resourceDiscovery();
1209
1227
  private ensureAiAdapterLoaded;
1210
1228
  openAiAssistant(): void;
1211
1229
  aiAssistantTriggerTestId(position: string): string;
@@ -1648,6 +1666,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1648
1666
  getCellNgStyle(rowData: any, column: ColumnDefinition): Record<string, string> | undefined;
1649
1667
  private normalizeConditionalStyleRules;
1650
1668
  private normalizeConditionalStyleRecord;
1669
+ getCellTooltip(rowData: any, column: ColumnDefinition): string | null;
1670
+ getCellTooltipPosition(rowData: any, column: ColumnDefinition): 'above' | 'below' | 'left' | 'right' | 'before' | 'after';
1671
+ private resolveConditionalStyleTooltipText;
1651
1672
  private normalizeConditionalStyleEffects;
1652
1673
  private hasConditionalStyleEffectPayload;
1653
1674
  private resolveConditionalStyleClasses;
@@ -3961,18 +3982,23 @@ type ComponentEditPlanCapability = {
3961
3982
  declare const TABLE_COMPONENT_EDIT_PLAN_KIND = "praxis.table.component-edit-plan";
3962
3983
  declare const TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND = "praxis.table.component-edit-plan.batch";
3963
3984
  declare const TABLE_COMPONENT_EDIT_PLAN_VERSION = "1.0";
3964
- type TableComponentEditChangeKind = 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers';
3965
- declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_badge_renderer", "set_column_conditional_badge_renderers"];
3985
+ type TableComponentEditChangeKind = 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_filterable' | 'set_column_sortable' | 'set_column_width' | 'set_column_align' | 'set_column_sticky' | 'set_column_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_renderer' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers' | 'set_row_conditional_renderer' | 'configure_table_filtering' | 'configure_table_pagination' | 'configure_table_selection' | 'configure_table_sorting' | 'configure_toolbar' | 'configure_export' | 'set_table_density' | 'set_toolbar_visibility';
3986
+ type TableComponentEditOperationId = 'column.format.set' | 'column.header.set' | 'column.visibility.set' | 'column.filterable.set' | 'column.sortable.set' | 'column.width.set' | 'column.align.set' | 'column.sticky.set' | 'column.renderer.set' | 'column.valueMapping.set' | 'column.conditionalStyle.add' | 'column.conditionalRenderer.add' | 'column.computed.add' | 'row.conditionalRenderer.add' | 'behavior.filtering.configure' | 'behavior.pagination.configure' | 'behavior.selection.configure' | 'behavior.sorting.configure' | 'toolbar.configure' | 'export.configure' | 'appearance.density.set' | 'toolbar.visibility.set';
3987
+ declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_align", "set_column_sticky", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "configure_export", "set_table_density", "set_toolbar_visibility"];
3966
3988
  declare const TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS: Record<TableComponentEditChangeKind, string>;
3967
3989
  interface TableComponentEditPlan {
3968
3990
  kind?: typeof TABLE_COMPONENT_EDIT_PLAN_KIND;
3969
3991
  version?: typeof TABLE_COMPONENT_EDIT_PLAN_VERSION | string;
3970
3992
  componentId?: 'praxis-table' | string;
3971
3993
  changeKind: TableComponentEditChangeKind | string;
3994
+ operationId?: TableComponentEditOperationId | string;
3972
3995
  capabilityPath?: string;
3973
3996
  configPath?: string;
3974
3997
  field?: string;
3975
3998
  targetField?: string;
3999
+ target?: unknown;
4000
+ input?: unknown;
4001
+ params?: unknown;
3976
4002
  value?: unknown;
3977
4003
  condition?: unknown;
3978
4004
  style?: unknown;
@@ -4000,7 +4026,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4000
4026
  readonly $defs: {
4001
4027
  readonly changeKind: {
4002
4028
  readonly type: "string";
4003
- readonly enum: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_badge_renderer", "set_column_conditional_badge_renderers"];
4029
+ readonly enum: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_align", "set_column_sticky", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "configure_export", "set_table_density", "set_toolbar_visibility"];
4004
4030
  };
4005
4031
  readonly capabilityPath: {
4006
4032
  readonly type: "string";
@@ -4045,7 +4071,6 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4045
4071
  readonly operation: {
4046
4072
  readonly type: "object";
4047
4073
  readonly additionalProperties: false;
4048
- readonly required: readonly ["changeKind", "field", "value"];
4049
4074
  readonly properties: {
4050
4075
  readonly kind: {
4051
4076
  readonly const: "praxis.table.component-edit-plan";
@@ -4056,6 +4081,12 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4056
4081
  readonly componentId: {
4057
4082
  readonly const: "praxis-table";
4058
4083
  };
4084
+ readonly operationId: {
4085
+ readonly enum: readonly ["column.format.set", "column.header.set", "column.visibility.set", "column.filterable.set", "column.sortable.set", "column.width.set", "column.align.set", "column.sticky.set", "column.renderer.set", "column.valueMapping.set", "column.conditionalStyle.add", "column.conditionalRenderer.add", "column.computed.add", "row.conditionalRenderer.add", "behavior.filtering.configure", "behavior.pagination.configure", "behavior.selection.configure", "behavior.sorting.configure", "toolbar.configure", "export.configure", "appearance.density.set", "toolbar.visibility.set"];
4086
+ };
4087
+ readonly target: true;
4088
+ readonly input: true;
4089
+ readonly params: true;
4059
4090
  readonly changeKind: {
4060
4091
  readonly $ref: "#/$defs/changeKind";
4061
4092
  };
@@ -4084,6 +4115,13 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4084
4115
  readonly type: "string";
4085
4116
  };
4086
4117
  };
4118
+ readonly anyOf: readonly [{
4119
+ readonly required: readonly ["changeKind", "field", "value"];
4120
+ }, {
4121
+ readonly required: readonly ["operationId", "target", "input"];
4122
+ }, {
4123
+ readonly required: readonly ["operationId", "input"];
4124
+ }];
4087
4125
  readonly allOf: readonly [{
4088
4126
  readonly if: {
4089
4127
  readonly properties: {
@@ -4160,6 +4198,8 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4160
4198
  readonly required: readonly ["condition"];
4161
4199
  readonly anyOf: readonly [{
4162
4200
  readonly required: readonly ["badge"];
4201
+ }, {
4202
+ readonly required: readonly ["renderer"];
4163
4203
  }, {
4164
4204
  readonly required: readonly ["value"];
4165
4205
  }];
@@ -4170,6 +4210,11 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4170
4210
  readonly badge: {
4171
4211
  readonly $ref: "#/$defs/badge";
4172
4212
  };
4213
+ readonly renderer: {
4214
+ readonly type: "object";
4215
+ readonly minProperties: 1;
4216
+ readonly additionalProperties: true;
4217
+ };
4173
4218
  readonly value: {
4174
4219
  readonly $ref: "#/$defs/badge";
4175
4220
  };
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "8.0.0-beta.26",
3
+ "version": "8.0.0-beta.28",
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/ai": "^8.0.0-beta.26",
9
- "@praxisui/core": "^8.0.0-beta.26",
10
- "@praxisui/dynamic-fields": "^8.0.0-beta.26",
11
- "@praxisui/dynamic-form": "^8.0.0-beta.26",
12
- "@praxisui/metadata-editor": "^8.0.0-beta.26",
13
- "@praxisui/rich-content": "^8.0.0-beta.26",
14
- "@praxisui/settings-panel": "^8.0.0-beta.26",
15
- "@praxisui/table-rule-builder": "^8.0.0-beta.26",
8
+ "@praxisui/ai": "^8.0.0-beta.28",
9
+ "@praxisui/core": "^8.0.0-beta.28",
10
+ "@praxisui/dynamic-fields": "^8.0.0-beta.28",
11
+ "@praxisui/dynamic-form": "^8.0.0-beta.28",
12
+ "@praxisui/metadata-editor": "^8.0.0-beta.28",
13
+ "@praxisui/rich-content": "^8.0.0-beta.28",
14
+ "@praxisui/settings-panel": "^8.0.0-beta.28",
15
+ "@praxisui/table-rule-builder": "^8.0.0-beta.28",
16
16
  "@angular/cdk": "^20.0.0",
17
17
  "@angular/forms": "^20.0.0",
18
18
  "@angular/material": "^20.0.0",
19
19
  "@angular/router": "^20.0.0",
20
- "@praxisui/dialog": "^8.0.0-beta.26",
20
+ "@praxisui/dialog": "^8.0.0-beta.28",
21
21
  "rxjs": "~7.8.0"
22
22
  },
23
23
  "dependencies": {