@praxisui/table 8.0.0-beta.27 → 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;
@@ -1212,7 +1222,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1212
1222
  private clonePlainObject;
1213
1223
  private setShowToolbar;
1214
1224
  private shouldExposeToolbar;
1215
- 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();
1216
1227
  private ensureAiAdapterLoaded;
1217
1228
  openAiAssistant(): void;
1218
1229
  aiAssistantTriggerTestId(position: string): string;
@@ -1655,6 +1666,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1655
1666
  getCellNgStyle(rowData: any, column: ColumnDefinition): Record<string, string> | undefined;
1656
1667
  private normalizeConditionalStyleRules;
1657
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;
1658
1672
  private normalizeConditionalStyleEffects;
1659
1673
  private hasConditionalStyleEffectPayload;
1660
1674
  private resolveConditionalStyleClasses;
@@ -3968,18 +3982,23 @@ type ComponentEditPlanCapability = {
3968
3982
  declare const TABLE_COMPONENT_EDIT_PLAN_KIND = "praxis.table.component-edit-plan";
3969
3983
  declare const TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND = "praxis.table.component-edit-plan.batch";
3970
3984
  declare const TABLE_COMPONENT_EDIT_PLAN_VERSION = "1.0";
3971
- 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';
3972
- 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"];
3973
3988
  declare const TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS: Record<TableComponentEditChangeKind, string>;
3974
3989
  interface TableComponentEditPlan {
3975
3990
  kind?: typeof TABLE_COMPONENT_EDIT_PLAN_KIND;
3976
3991
  version?: typeof TABLE_COMPONENT_EDIT_PLAN_VERSION | string;
3977
3992
  componentId?: 'praxis-table' | string;
3978
3993
  changeKind: TableComponentEditChangeKind | string;
3994
+ operationId?: TableComponentEditOperationId | string;
3979
3995
  capabilityPath?: string;
3980
3996
  configPath?: string;
3981
3997
  field?: string;
3982
3998
  targetField?: string;
3999
+ target?: unknown;
4000
+ input?: unknown;
4001
+ params?: unknown;
3983
4002
  value?: unknown;
3984
4003
  condition?: unknown;
3985
4004
  style?: unknown;
@@ -4007,7 +4026,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4007
4026
  readonly $defs: {
4008
4027
  readonly changeKind: {
4009
4028
  readonly type: "string";
4010
- 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"];
4011
4030
  };
4012
4031
  readonly capabilityPath: {
4013
4032
  readonly type: "string";
@@ -4052,7 +4071,6 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4052
4071
  readonly operation: {
4053
4072
  readonly type: "object";
4054
4073
  readonly additionalProperties: false;
4055
- readonly required: readonly ["changeKind", "field", "value"];
4056
4074
  readonly properties: {
4057
4075
  readonly kind: {
4058
4076
  readonly const: "praxis.table.component-edit-plan";
@@ -4063,6 +4081,12 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4063
4081
  readonly componentId: {
4064
4082
  readonly const: "praxis-table";
4065
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;
4066
4090
  readonly changeKind: {
4067
4091
  readonly $ref: "#/$defs/changeKind";
4068
4092
  };
@@ -4091,6 +4115,13 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4091
4115
  readonly type: "string";
4092
4116
  };
4093
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
+ }];
4094
4125
  readonly allOf: readonly [{
4095
4126
  readonly if: {
4096
4127
  readonly properties: {
@@ -4167,6 +4198,8 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4167
4198
  readonly required: readonly ["condition"];
4168
4199
  readonly anyOf: readonly [{
4169
4200
  readonly required: readonly ["badge"];
4201
+ }, {
4202
+ readonly required: readonly ["renderer"];
4170
4203
  }, {
4171
4204
  readonly required: readonly ["value"];
4172
4205
  }];
@@ -4177,6 +4210,11 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4177
4210
  readonly badge: {
4178
4211
  readonly $ref: "#/$defs/badge";
4179
4212
  };
4213
+ readonly renderer: {
4214
+ readonly type: "object";
4215
+ readonly minProperties: 1;
4216
+ readonly additionalProperties: true;
4217
+ };
4180
4218
  readonly value: {
4181
4219
  readonly $ref: "#/$defs/badge";
4182
4220
  };
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "8.0.0-beta.27",
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.27",
9
- "@praxisui/core": "^8.0.0-beta.27",
10
- "@praxisui/dynamic-fields": "^8.0.0-beta.27",
11
- "@praxisui/dynamic-form": "^8.0.0-beta.27",
12
- "@praxisui/metadata-editor": "^8.0.0-beta.27",
13
- "@praxisui/rich-content": "^8.0.0-beta.27",
14
- "@praxisui/settings-panel": "^8.0.0-beta.27",
15
- "@praxisui/table-rule-builder": "^8.0.0-beta.27",
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.27",
20
+ "@praxisui/dialog": "^8.0.0-beta.28",
21
21
  "rxjs": "~7.8.0"
22
22
  },
23
23
  "dependencies": {