@praxisui/table 3.0.0-beta.2 → 3.0.0-beta.4

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
@@ -12,7 +12,6 @@ import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-
12
12
  import * as _praxisui_core from '@praxisui/core';
13
13
  import { TableConfig, LoggerService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, LoadingState, ColumnDefinition, ConnectionStorage, LoadingOrchestrator, PraxisLoadingRenderer, GlobalActionSpec, IconPickerService, GlobalActionField, TableConfigService, FieldDefinition, ComponentDocMeta, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
14
14
  import { FunctionRegistry, DslParser } from '@praxisui/specification';
15
- import { DatePipe, DecimalPipe, CurrencyPipe, PercentPipe, UpperCasePipe, LowerCasePipe, TitleCasePipe } from '@angular/common';
16
15
  import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
17
16
  import { MatDialog } from '@angular/material/dialog';
18
17
  import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
@@ -175,17 +174,17 @@ declare const STRING_PRESETS: FormatPreset[];
175
174
  declare const BOOLEAN_PRESETS: FormatPreset[];
176
175
 
177
176
  declare class DataFormattingService {
178
- private datePipe;
179
- private decimalPipe;
180
- private currencyPipe;
181
- private percentPipe;
182
- private upperCasePipe;
183
- private lowerCasePipe;
184
- private titleCasePipe;
185
177
  private locale;
186
178
  private groupSeparator;
187
179
  private decimalSeparator;
188
- constructor(datePipe: DatePipe, decimalPipe: DecimalPipe, currencyPipe: CurrencyPipe, percentPipe: PercentPipe, upperCasePipe: UpperCasePipe, lowerCasePipe: LowerCasePipe, titleCasePipe: TitleCasePipe, locale: string);
180
+ private readonly datePipe;
181
+ private readonly decimalPipe;
182
+ private readonly currencyPipe;
183
+ private readonly percentPipe;
184
+ private readonly upperCasePipe;
185
+ private readonly lowerCasePipe;
186
+ private readonly titleCasePipe;
187
+ constructor(locale: string);
189
188
  /**
190
189
  * Apply formatting to a value based on column type and format string
191
190
  */
@@ -251,6 +250,12 @@ declare class TableDefaultsProvider {
251
250
 
252
251
  type FilterConfig = {
253
252
  alwaysVisibleFields?: string[];
253
+ /**
254
+ * Deep metadata overrides for any field rendered by the filter runtime.
255
+ * This is used by runtime authoring to project field-level patches without
256
+ * mutating the canonical schema metadata returned by the source.
257
+ */
258
+ fieldMetadataOverrides?: Record<string, Record<string, any>>;
254
259
  /**
255
260
  * Deep metadata overrides for always-visible fields.
256
261
  * Source of truth remains the filter DTO; this map applies controlled
@@ -395,11 +400,14 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
395
400
  * Keys are field names from the filter DTO schema.
396
401
  */
397
402
  alwaysVisibleFieldMetadataOverrides: Record<string, Record<string, any>> | undefined;
403
+ /** Runtime field-level metadata overrides applied by the metadata editor. */
404
+ private fieldMetadataOverrides;
398
405
  /** Additional selected field ids to render before pinned always-visible */
399
406
  selectedFieldIds: string[];
400
407
  tags?: FilterTag[];
401
408
  allowSaveTags?: boolean;
402
409
  persistenceKey?: string;
410
+ disablePersistence: boolean;
403
411
  i18n?: Partial<I18n>;
404
412
  changeDebounceMs: number;
405
413
  /** Controla a exibição do botão de preferências dentro do filtro */
@@ -479,6 +487,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
479
487
  gridSelectedMetas: FieldMetadata[];
480
488
  gridAlwaysVisibleMetas: FieldMetadata[];
481
489
  toggleMetas: FieldMetadata[];
490
+ activeEditableFieldName: string | null;
482
491
  advancedConfig?: FormConfig;
483
492
  displayedTags: FilterTag[];
484
493
  private savedTags;
@@ -540,6 +549,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
540
549
  private resolveSchemaPrefs;
541
550
  private domIdSeed;
542
551
  private componentKeyId;
552
+ private isPersistenceDisabled;
543
553
  private resolveConfigKey;
544
554
  getComponentKeyId(): string | null;
545
555
  private filterTagsKey;
@@ -554,6 +564,9 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
554
564
  private readonly global;
555
565
  private resolveRuntimeEnvironment;
556
566
  private getLogger;
567
+ get activeEditableFieldMeta(): FieldMetadata | null;
568
+ get activeEditableFieldLabel(): string | null;
569
+ isFieldAuthoringEnabled(): boolean;
557
570
  private buildFilterLogOptions;
558
571
  private isFilterDebugEnabled;
559
572
  private logFilterDebug;
@@ -563,6 +576,9 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
563
576
  private setSchemaLoading;
564
577
  private setActiveFiltersCount;
565
578
  private loadSavedTagsFromStorage;
579
+ private resolveInputDto;
580
+ private resolveInitialDto;
581
+ private syncFormsFromDto;
566
582
  ngOnInit(): Promise<void>;
567
583
  ngAfterViewInit(): void;
568
584
  onWindowResize(): void;
@@ -619,13 +635,23 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
619
635
  private isAllowedFilterControlType;
620
636
  private inferFilterControlType;
621
637
  private cloneAlwaysVisibleMetadataOverrides;
638
+ private cloneFieldMetadataOverrides;
622
639
  private sanitizeAlwaysVisibleMetadataOverrides;
623
640
  private sanitizeMetadataOverrideValue;
624
641
  private mergeAlwaysVisibleMetadata;
642
+ private mergeFieldMetadataOverride;
625
643
  ngDoCheck(): void;
626
644
  onAlwaysComponents(map: Map<string, any>): void;
627
645
  onSelectedComponents(map: Map<string, any>): void;
628
646
  onToggleComponents(map: Map<string, any>): void;
647
+ onFieldInteraction(event: Event): void;
648
+ openSelectedFieldEditor(): void;
649
+ private isLocalE2eAuthoringOptInEnabled;
650
+ private openFieldMetadataEditorInternal;
651
+ private applyFieldMetadataPatch;
652
+ private buildFieldMetadataEditorSeed;
653
+ private getEditableFieldMeta;
654
+ private resolveFieldNameFromEvent;
629
655
  onAdvancedReady(event: {
630
656
  formGroup: FormGroup<Record<string, any>>;
631
657
  }): void;
@@ -707,7 +733,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
707
733
  private isEditableElement;
708
734
  private focusQuick;
709
735
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilter, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
710
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilter, "praxis-filter", never, { "resourcePath": { "alias": "resourcePath"; "required": true; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "filterId": { "alias": "filterId"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "value": { "alias": "value"; "required": false; }; "alwaysVisibleFields": { "alias": "alwaysVisibleFields"; "required": false; }; "alwaysVisibleFieldMetadataOverrides": { "alias": "alwaysVisibleFieldMetadataOverrides"; "required": false; }; "selectedFieldIds": { "alias": "selectedFieldIds"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "allowSaveTags": { "alias": "allowSaveTags"; "required": false; }; "persistenceKey": { "alias": "persistenceKey"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "changeDebounceMs": { "alias": "changeDebounceMs"; "required": false; }; "showFilterSettings": { "alias": "showFilterSettings"; "required": false; }; "confirmTagDelete": { "alias": "confirmTagDelete"; "required": false; }; "placeBooleansInActions": { "alias": "placeBooleansInActions"; "required": false; }; "showToggleLabels": { "alias": "showToggleLabels"; "required": false; }; "useInlineSelectVariant": { "alias": "useInlineSelectVariant"; "required": false; }; "useInlineSearchableSelectVariant": { "alias": "useInlineSearchableSelectVariant"; "required": false; }; "useInlineMultiSelectVariant": { "alias": "useInlineMultiSelectVariant"; "required": false; }; "useInlineInputVariant": { "alias": "useInlineInputVariant"; "required": false; }; "useInlineToggleVariant": { "alias": "useInlineToggleVariant"; "required": false; }; "useInlineRangeVariant": { "alias": "useInlineRangeVariant"; "required": false; }; "useInlineDateVariant": { "alias": "useInlineDateVariant"; "required": false; }; "useInlineDateRangeVariant": { "alias": "useInlineDateRangeVariant"; "required": false; }; "useInlineTimeVariant": { "alias": "useInlineTimeVariant"; "required": false; }; "useInlineTimeRangeVariant": { "alias": "useInlineTimeRangeVariant"; "required": false; }; "useInlineTreeSelectVariant": { "alias": "useInlineTreeSelectVariant"; "required": false; }; "alwaysMinWidth": { "alias": "alwaysMinWidth"; "required": false; }; "alwaysColsMd": { "alias": "alwaysColsMd"; "required": false; }; "alwaysColsLg": { "alias": "alwaysColsLg"; "required": false; }; "tagColor": { "alias": "tagColor"; "required": false; }; "tagVariant": { "alias": "tagVariant"; "required": false; }; "tagButtonColor": { "alias": "tagButtonColor"; "required": false; }; "actionsButtonColor": { "alias": "actionsButtonColor"; "required": false; }; "actionsVariant": { "alias": "actionsVariant"; "required": false; }; "overlayVariant": { "alias": "overlayVariant"; "required": false; }; "overlayBackdrop": { "alias": "overlayBackdrop"; "required": false; }; "advancedOpenMode": { "alias": "advancedOpenMode"; "required": false; }; "advancedClearButtonsEnabled": { "alias": "advancedClearButtonsEnabled"; "required": false; }; }, { "submit": "submit"; "change": "change"; "clear": "clear"; "modeChange": "modeChange"; "requestSearch": "requestSearch"; "tagsChange": "tagsChange"; "selectedFieldIdsChange": "selectedFieldIdsChange"; "metaChanged": "metaChanged"; "schemaStatusChange": "schemaStatusChange"; }, never, never, true, never>;
736
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilter, "praxis-filter", never, { "resourcePath": { "alias": "resourcePath"; "required": true; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "filterId": { "alias": "filterId"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "value": { "alias": "value"; "required": false; }; "alwaysVisibleFields": { "alias": "alwaysVisibleFields"; "required": false; }; "alwaysVisibleFieldMetadataOverrides": { "alias": "alwaysVisibleFieldMetadataOverrides"; "required": false; }; "selectedFieldIds": { "alias": "selectedFieldIds"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "allowSaveTags": { "alias": "allowSaveTags"; "required": false; }; "persistenceKey": { "alias": "persistenceKey"; "required": false; }; "disablePersistence": { "alias": "disablePersistence"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "changeDebounceMs": { "alias": "changeDebounceMs"; "required": false; }; "showFilterSettings": { "alias": "showFilterSettings"; "required": false; }; "confirmTagDelete": { "alias": "confirmTagDelete"; "required": false; }; "placeBooleansInActions": { "alias": "placeBooleansInActions"; "required": false; }; "showToggleLabels": { "alias": "showToggleLabels"; "required": false; }; "useInlineSelectVariant": { "alias": "useInlineSelectVariant"; "required": false; }; "useInlineSearchableSelectVariant": { "alias": "useInlineSearchableSelectVariant"; "required": false; }; "useInlineMultiSelectVariant": { "alias": "useInlineMultiSelectVariant"; "required": false; }; "useInlineInputVariant": { "alias": "useInlineInputVariant"; "required": false; }; "useInlineToggleVariant": { "alias": "useInlineToggleVariant"; "required": false; }; "useInlineRangeVariant": { "alias": "useInlineRangeVariant"; "required": false; }; "useInlineDateVariant": { "alias": "useInlineDateVariant"; "required": false; }; "useInlineDateRangeVariant": { "alias": "useInlineDateRangeVariant"; "required": false; }; "useInlineTimeVariant": { "alias": "useInlineTimeVariant"; "required": false; }; "useInlineTimeRangeVariant": { "alias": "useInlineTimeRangeVariant"; "required": false; }; "useInlineTreeSelectVariant": { "alias": "useInlineTreeSelectVariant"; "required": false; }; "alwaysMinWidth": { "alias": "alwaysMinWidth"; "required": false; }; "alwaysColsMd": { "alias": "alwaysColsMd"; "required": false; }; "alwaysColsLg": { "alias": "alwaysColsLg"; "required": false; }; "tagColor": { "alias": "tagColor"; "required": false; }; "tagVariant": { "alias": "tagVariant"; "required": false; }; "tagButtonColor": { "alias": "tagButtonColor"; "required": false; }; "actionsButtonColor": { "alias": "actionsButtonColor"; "required": false; }; "actionsVariant": { "alias": "actionsVariant"; "required": false; }; "overlayVariant": { "alias": "overlayVariant"; "required": false; }; "overlayBackdrop": { "alias": "overlayBackdrop"; "required": false; }; "advancedOpenMode": { "alias": "advancedOpenMode"; "required": false; }; "advancedClearButtonsEnabled": { "alias": "advancedClearButtonsEnabled"; "required": false; }; }, { "submit": "submit"; "change": "change"; "clear": "clear"; "modeChange": "modeChange"; "requestSearch": "requestSearch"; "tagsChange": "tagsChange"; "selectedFieldIdsChange": "selectedFieldIdsChange"; "metaChanged": "metaChanged"; "schemaStatusChange": "schemaStatusChange"; }, never, never, true, never>;
711
737
  }
712
738
 
713
739
  type SchemaFieldHint = {
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "3.0.0-beta.2",
3
+ "version": "3.0.0-beta.4",
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.2",
9
- "@praxisui/dynamic-fields": "^3.0.0-beta.2",
10
- "@praxisui/dynamic-form": "^3.0.0-beta.2",
11
- "@praxisui/metadata-editor": "^3.0.0-beta.2",
12
- "@praxisui/settings-panel": "^3.0.0-beta.2",
13
- "@praxisui/table-rule-builder": "^3.0.0-beta.2"
8
+ "@praxisui/core": "^3.0.0-beta.4",
9
+ "@praxisui/dynamic-fields": "^3.0.0-beta.4",
10
+ "@praxisui/dynamic-form": "^3.0.0-beta.4",
11
+ "@praxisui/metadata-editor": "^3.0.0-beta.4",
12
+ "@praxisui/settings-panel": "^3.0.0-beta.4",
13
+ "@praxisui/table-rule-builder": "^3.0.0-beta.4"
14
14
  },
15
15
  "dependencies": {
16
16
  "tslib": "^2.3.0"