@praxisui/table 0.0.1 → 1.0.0-beta.10
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/README.md +270 -3
- package/fesm2022/praxisui-table.mjs +6152 -1033
- package/fesm2022/praxisui-table.mjs.map +1 -1
- package/index.d.ts +414 -84
- package/package.json +15 -5
package/index.d.ts
CHANGED
|
@@ -7,21 +7,23 @@ import { MatSnackBar } from '@angular/material/snack-bar';
|
|
|
7
7
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
8
8
|
import { SettingsPanelService, SettingsValueProvider, SettingsPanelRef } from '@praxisui/settings-panel';
|
|
9
9
|
import * as _praxisui_core from '@praxisui/core';
|
|
10
|
-
import { GlobalConfigService, TableConfig, ConfigStorage, SchemaIdParams, FieldMetadata, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ColumnDefinition, ConnectionStorage, IconPickerService, TableConfigService, ComponentDocMeta } from '@praxisui/core';
|
|
10
|
+
import { GlobalConfigService, TableConfig, ConfigStorage, SchemaIdParams, FieldMetadata, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ColumnDefinition, ConnectionStorage, IconPickerService, TableConfigService, FieldDefinition, ComponentDocMeta } from '@praxisui/core';
|
|
11
11
|
import { DatePipe, DecimalPipe, CurrencyPipe, PercentPipe, UpperCasePipe, LowerCasePipe, TitleCasePipe } from '@angular/common';
|
|
12
12
|
import { FormControl, FormGroup, AbstractControl, FormBuilder } from '@angular/forms';
|
|
13
13
|
import { MatDialog } from '@angular/material/dialog';
|
|
14
14
|
import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
|
|
15
|
-
import { SpecificationBridgeService, RuleBuilderConfig, RuleBuilderState } from '@praxisui/visual-builder';
|
|
16
15
|
import { PraxisDialog } from '@praxisui/dialog';
|
|
17
16
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
18
17
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
19
18
|
import * as _angular_material_paginator_d_Zo1cMMo4 from '@angular/material/paginator.d-Zo1cMMo4';
|
|
20
19
|
import { MatCheckboxChange } from '@angular/material/checkbox';
|
|
20
|
+
import * as _praxisui_table_rule_builder from '@praxisui/table-rule-builder';
|
|
21
|
+
import { RuleEffectDefinition } from '@praxisui/table-rule-builder';
|
|
22
|
+
import { DslParser } from '@praxisui/specification';
|
|
21
23
|
|
|
22
|
-
type ColumnDataType = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
|
|
24
|
+
type ColumnDataType$1 = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
|
|
23
25
|
interface FormatterConfig {
|
|
24
|
-
type: ColumnDataType;
|
|
26
|
+
type: ColumnDataType$1;
|
|
25
27
|
options: any;
|
|
26
28
|
}
|
|
27
29
|
interface DateFormatterOptions {
|
|
@@ -88,7 +90,7 @@ declare class DataFormattingService {
|
|
|
88
90
|
/**
|
|
89
91
|
* Apply formatting to a value based on column type and format string
|
|
90
92
|
*/
|
|
91
|
-
formatValue(value: any, columnType: ColumnDataType, formatString: string): any;
|
|
93
|
+
formatValue(value: any, columnType: ColumnDataType$1, formatString: string): any;
|
|
92
94
|
/**
|
|
93
95
|
* Coerce value to the expected type for formatting
|
|
94
96
|
*/
|
|
@@ -125,7 +127,7 @@ declare class DataFormattingService {
|
|
|
125
127
|
/**
|
|
126
128
|
* Check if formatting is needed for a column
|
|
127
129
|
*/
|
|
128
|
-
needsFormatting(columnType: ColumnDataType, formatString: string): boolean;
|
|
130
|
+
needsFormatting(columnType: ColumnDataType$1, formatString: string): boolean;
|
|
129
131
|
static ɵfac: i0.ɵɵFactoryDeclaration<DataFormattingService, never>;
|
|
130
132
|
static ɵprov: i0.ɵɵInjectableDeclaration<DataFormattingService>;
|
|
131
133
|
}
|
|
@@ -515,7 +517,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
515
517
|
private cdr;
|
|
516
518
|
private settingsPanel;
|
|
517
519
|
private formattingService;
|
|
518
|
-
private specBridge;
|
|
519
520
|
private configStorage;
|
|
520
521
|
private connectionStorage;
|
|
521
522
|
private tableDefaultsProvider;
|
|
@@ -547,6 +548,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
547
548
|
tableId: string;
|
|
548
549
|
/** Habilita visual de debug para alinhamento/layouot */
|
|
549
550
|
debugLayout: boolean;
|
|
551
|
+
/**
|
|
552
|
+
* Controla a estratégia de largura/scroll horizontal.
|
|
553
|
+
* - 'auto': (padrão) cria viewport com overflow-x e deixa a tabela crescer via max-content
|
|
554
|
+
* - 'wrap': permite quebra de linha nas células, reduzindo a largura (menos scroll)
|
|
555
|
+
* - 'none': desabilita comportamento da lib (host cuida do scroll)
|
|
556
|
+
*/
|
|
557
|
+
horizontalScroll: 'auto' | 'wrap' | 'none';
|
|
550
558
|
/** Contexto opcional quando tabela está dentro do componente CRUD */
|
|
551
559
|
crudContext?: {
|
|
552
560
|
tableId: string;
|
|
@@ -631,6 +639,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
631
639
|
getActionsHeaderIcon(): string | undefined;
|
|
632
640
|
getActionsHeaderTooltip(): string | undefined;
|
|
633
641
|
private styleSpecCache;
|
|
642
|
+
private actionSpecCache;
|
|
643
|
+
private dslParser;
|
|
634
644
|
schemaError: boolean;
|
|
635
645
|
dataError: boolean;
|
|
636
646
|
errorMessage: string | null;
|
|
@@ -675,7 +685,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
675
685
|
getVirtMinHeightStyle(): string | null;
|
|
676
686
|
trackByRow: (index: number, row: any) => string | number;
|
|
677
687
|
private getRowId;
|
|
678
|
-
constructor(crudService: GenericCrudService<any>, cdr: ChangeDetectorRef, settingsPanel: SettingsPanelService, formattingService: DataFormattingService,
|
|
688
|
+
constructor(crudService: GenericCrudService<any>, cdr: ChangeDetectorRef, settingsPanel: SettingsPanelService, formattingService: DataFormattingService, configStorage: ConfigStorage, connectionStorage: ConnectionStorage, tableDefaultsProvider: TableDefaultsProvider, snackBar: MatSnackBar, filterConfig: FilterConfigService, pxDialog: PraxisDialog, hostRef: ElementRef<HTMLElement>, global: GlobalConfigService);
|
|
679
689
|
openQuickConnect(): void;
|
|
680
690
|
ngOnInit(): void;
|
|
681
691
|
ngAfterContentInit(): void;
|
|
@@ -683,6 +693,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
683
693
|
private isDebug;
|
|
684
694
|
private connectionKey;
|
|
685
695
|
private saveConnection;
|
|
696
|
+
private inputsKey;
|
|
686
697
|
disconnect(): void;
|
|
687
698
|
ngAfterViewInit(): void;
|
|
688
699
|
onPageChange(event: PageEvent): void;
|
|
@@ -735,8 +746,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
735
746
|
getCellClasses(rowData: any, column: ColumnDefinition): string[] | undefined;
|
|
736
747
|
getCellNgStyle(rowData: any, column: ColumnDefinition): Record<string, string> | undefined;
|
|
737
748
|
private evaluateStyleRule;
|
|
749
|
+
/** Evaluate row action visibility condition using the same DSL as styles */
|
|
750
|
+
private evaluateActionCondition;
|
|
738
751
|
getRowClasses(rowData: any): string[] | undefined;
|
|
739
752
|
getRowNgStyle(rowData: any): Record<string, string> | undefined;
|
|
753
|
+
private getRowRenderer;
|
|
754
|
+
getRowTooltip(rowData: any): string | null;
|
|
755
|
+
getRowTooltipPosition(rowData: any): 'above' | 'below' | 'left' | 'right';
|
|
756
|
+
getRowTooltipShowDelay(rowData: any): number;
|
|
740
757
|
/**
|
|
741
758
|
* Apply value mapping to transform raw values into display-friendly text
|
|
742
759
|
*/
|
|
@@ -790,19 +807,64 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
790
807
|
private coerceExpected;
|
|
791
808
|
getImageSrc(row: any, column: ColumnDefinition): string | null;
|
|
792
809
|
getImageAlt(row: any, column: ColumnDefinition): string | null;
|
|
793
|
-
getImageWidth(column: ColumnDefinition): number | null;
|
|
794
|
-
getImageHeight(column: ColumnDefinition): number | null;
|
|
795
|
-
getImageShape(column: ColumnDefinition): 'square' | 'rounded' | 'circle' | undefined;
|
|
796
|
-
getImageFit(column: ColumnDefinition): 'cover' | 'contain' | undefined;
|
|
810
|
+
getImageWidth(row: any, column: ColumnDefinition): number | null;
|
|
811
|
+
getImageHeight(row: any, column: ColumnDefinition): number | null;
|
|
812
|
+
getImageShape(row: any, column: ColumnDefinition): 'square' | 'rounded' | 'circle' | undefined;
|
|
813
|
+
getImageFit(row: any, column: ColumnDefinition): 'cover' | 'contain' | undefined;
|
|
797
814
|
getImageLazy(_row: any, column: ColumnDefinition): boolean;
|
|
798
815
|
getBadgeText(row: any, column: ColumnDefinition): string | null;
|
|
799
816
|
getBadgeIcon(row: any, column: ColumnDefinition): string | null;
|
|
800
817
|
getBadgeClasses(row: any, column: ColumnDefinition): string[];
|
|
801
|
-
getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | null;
|
|
818
|
+
getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
819
|
+
getComposeItems(row: any, column: ColumnDefinition): any[];
|
|
820
|
+
getComposeClasses(row: any, column: ColumnDefinition): string[];
|
|
821
|
+
getComposeGapStyle(row: any, column: ColumnDefinition): any;
|
|
822
|
+
asItemColumn(base: ColumnDefinition, item: any): any;
|
|
823
|
+
getItemEffectiveType(row: any, column: ColumnDefinition, item: any): any;
|
|
824
|
+
private _rendererOverrideCache;
|
|
825
|
+
private mergeRenderer;
|
|
826
|
+
private getEffectiveRenderer;
|
|
827
|
+
getLinkHref(row: any, column: ColumnDefinition): string | null;
|
|
828
|
+
getLinkText(row: any, column: ColumnDefinition): string;
|
|
829
|
+
getLinkTarget(row: any, column: ColumnDefinition): string | null;
|
|
830
|
+
getLinkRel(row: any, column: ColumnDefinition): string | null;
|
|
831
|
+
getButtonLabel(row: any, column: ColumnDefinition): string;
|
|
832
|
+
getButtonIcon(row: any, column: ColumnDefinition): string | null;
|
|
833
|
+
getButtonVariant(row: any, column: ColumnDefinition): 'filled' | 'outlined' | 'text';
|
|
834
|
+
getButtonColor(row: any, column: ColumnDefinition): string | null;
|
|
835
|
+
isButtonDisabled(row: any, column: ColumnDefinition): boolean;
|
|
836
|
+
getButtonAriaLabel(row: any, column: ColumnDefinition): string | null;
|
|
837
|
+
onButtonClick(row: any, column: ColumnDefinition, event: Event): void;
|
|
838
|
+
getChipText(row: any, column: ColumnDefinition): string | null;
|
|
839
|
+
getChipIcon(row: any, column: ColumnDefinition): string | null;
|
|
840
|
+
getChipClasses(row: any, column: ColumnDefinition): string[];
|
|
841
|
+
getProgressValue(row: any, column: ColumnDefinition): number;
|
|
842
|
+
getProgressColor(row: any, column: ColumnDefinition): string | null;
|
|
843
|
+
getProgressShowLabel(row: any, column: ColumnDefinition): boolean;
|
|
844
|
+
getAvatarSrc(row: any, column: ColumnDefinition): string | null;
|
|
845
|
+
getAvatarAlt(row: any, column: ColumnDefinition): string | null;
|
|
846
|
+
getAvatarInitials(row: any, column: ColumnDefinition): string;
|
|
847
|
+
getAvatarShape(row: any, column: ColumnDefinition): 'square' | 'rounded' | 'circle' | undefined;
|
|
848
|
+
getAvatarStyle(row: any, column: ColumnDefinition): Record<string, string>;
|
|
849
|
+
getToggleState(row: any, column: ColumnDefinition): boolean;
|
|
850
|
+
isToggleDisabled(row: any, column: ColumnDefinition): boolean;
|
|
851
|
+
getToggleAriaLabel(row: any, column: ColumnDefinition): string | null;
|
|
852
|
+
onToggleChange(row: any, column: ColumnDefinition, event: any): void;
|
|
853
|
+
getMenuAriaLabel(row: any, column: ColumnDefinition): string | null;
|
|
854
|
+
private evaluateArrayExpr;
|
|
855
|
+
getMenuItems(row: any, column: ColumnDefinition): Array<{
|
|
856
|
+
label: string;
|
|
857
|
+
icon?: string;
|
|
858
|
+
id: string;
|
|
859
|
+
__visible: boolean;
|
|
860
|
+
}>;
|
|
861
|
+
onMenuItemClick(actionId: string, row: any, event: Event): void;
|
|
862
|
+
getSafeHtml(row: any, column: ColumnDefinition): any;
|
|
863
|
+
private escapeHtml;
|
|
802
864
|
private applyAppearanceVariables;
|
|
803
865
|
ngOnDestroy(): void;
|
|
804
866
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTable, never>;
|
|
805
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "toolbarV2": { "alias": "toolbarV2"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "editModeEnabled": { "alias": "editModeEnabled"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; "tableId": { "alias": "tableId"; "required": false; }; "debugLayout": { "alias": "debugLayout"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; }, { "rowClick": "rowClick"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "rowDoubleClick": "rowDoubleClick"; "schemaStatusChange": "schemaStatusChange"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; }, ["projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
|
|
867
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "toolbarV2": { "alias": "toolbarV2"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "editModeEnabled": { "alias": "editModeEnabled"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; "tableId": { "alias": "tableId"; "required": false; }; "debugLayout": { "alias": "debugLayout"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; }, { "rowClick": "rowClick"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "rowDoubleClick": "rowDoubleClick"; "schemaStatusChange": "schemaStatusChange"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; }, ["projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
|
|
806
868
|
}
|
|
807
869
|
|
|
808
870
|
declare class PraxisTableToolbar {
|
|
@@ -968,7 +1030,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
968
1030
|
private readonly destroyRef;
|
|
969
1031
|
private destroy$;
|
|
970
1032
|
onlyVisibleRendererFields: boolean;
|
|
971
|
-
uiRendererType: 'icon' | 'image' | 'badge' | null;
|
|
1033
|
+
uiRendererType: 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
972
1034
|
private _rendererApplyTimer;
|
|
973
1035
|
rendererFieldOptions: Array<{
|
|
974
1036
|
name: string;
|
|
@@ -977,6 +1039,24 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
977
1039
|
isVisible: boolean;
|
|
978
1040
|
}>;
|
|
979
1041
|
uiRendererConditional: boolean;
|
|
1042
|
+
condOverridesSelectedIndex: number;
|
|
1043
|
+
getConditionalOverrides(): any[];
|
|
1044
|
+
ensureConditionalOverrides(): any[];
|
|
1045
|
+
addConditionalOverride(): void;
|
|
1046
|
+
removeConditionalOverride(index: number): void;
|
|
1047
|
+
duplicateConditionalOverride(index: number): void;
|
|
1048
|
+
onConditionalOverrideReorder(event: any): void;
|
|
1049
|
+
selectConditionalOverride(index: number): void;
|
|
1050
|
+
getOverrideField(path: string): any;
|
|
1051
|
+
setOverrideField(path: string, value: any): void;
|
|
1052
|
+
onOverrideTypeChange(ov: any, val: string): void;
|
|
1053
|
+
exportOverrideJson(index: number): void;
|
|
1054
|
+
importOverrideJson(index: number): void;
|
|
1055
|
+
rendererValidationErrors: string[];
|
|
1056
|
+
rendererIsValid: boolean;
|
|
1057
|
+
rendererPreviewEnabled: boolean;
|
|
1058
|
+
private rendererAppliedSnapshot;
|
|
1059
|
+
previewRows: any[];
|
|
980
1060
|
private refreshRendererFieldOptions;
|
|
981
1061
|
getRendererFieldOptions(): Array<{
|
|
982
1062
|
name: string;
|
|
@@ -1024,7 +1104,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
1024
1104
|
getColumnMapping(column: ColumnDefinition | null): {
|
|
1025
1105
|
[key: string | number]: string;
|
|
1026
1106
|
};
|
|
1027
|
-
getRendererType(col: ColumnDefinition | null): 'icon' | 'image' | 'badge' | null;
|
|
1107
|
+
getRendererType(col: ColumnDefinition | null): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | null;
|
|
1028
1108
|
onRendererTypeChange(type: 'icon' | 'image' | 'badge' | null): void;
|
|
1029
1109
|
onRendererModeClosed(): void;
|
|
1030
1110
|
onToggleRendererConditional(enabled: boolean): void;
|
|
@@ -1067,19 +1147,79 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
1067
1147
|
getRendererBadgeIcon(): string;
|
|
1068
1148
|
setRendererBadgeIcon(v: string): void;
|
|
1069
1149
|
private ensureRenderer;
|
|
1150
|
+
private _ensureKind;
|
|
1151
|
+
getRendererProp(kind: string, path: string): any;
|
|
1152
|
+
setRendererProp(kind: string, path: string, value: any): void;
|
|
1153
|
+
private _deepClone;
|
|
1154
|
+
hasSelectedRenderer(): boolean;
|
|
1155
|
+
onApplyRenderer(): void;
|
|
1156
|
+
onDiscardRenderer(): void;
|
|
1157
|
+
onExportRendererJson(): Promise<void>;
|
|
1158
|
+
onImportRendererJson(): void;
|
|
1159
|
+
private sanitizeRenderer;
|
|
1160
|
+
private ensurePreviewRows;
|
|
1161
|
+
private evalValueExpr;
|
|
1162
|
+
private evalArrayExpr;
|
|
1163
|
+
private _coerceExpected;
|
|
1164
|
+
private getNested;
|
|
1165
|
+
getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
|
|
1166
|
+
getPreviewIconName(row: any): string | null;
|
|
1167
|
+
getPreviewIconColor(row: any): string | null;
|
|
1168
|
+
getPreviewIconStyle(row: any): Record<string, string> | null;
|
|
1169
|
+
getPreviewImageSrc(row: any): string | null;
|
|
1170
|
+
getPreviewImageAlt(row: any): string | null;
|
|
1171
|
+
getPreviewImageWidth(): number | null;
|
|
1172
|
+
getPreviewImageHeight(): number | null;
|
|
1173
|
+
getPreviewImageShape(): 'square' | 'rounded' | 'circle' | undefined;
|
|
1174
|
+
getPreviewImageFit(): 'cover' | 'contain' | undefined;
|
|
1175
|
+
getPreviewBadgeText(row: any): string | null;
|
|
1176
|
+
getPreviewBadgeIcon(_row: any): string | null;
|
|
1177
|
+
getPreviewBadgeClasses(_row: any): string[];
|
|
1178
|
+
getPreviewLinkText(row: any): string;
|
|
1179
|
+
getPreviewLinkHref(row: any): string | null;
|
|
1180
|
+
getPreviewButtonLabel(row: any): string;
|
|
1181
|
+
getPreviewButtonIcon(): string | null;
|
|
1182
|
+
getPreviewChipText(row: any): string | null;
|
|
1183
|
+
getPreviewChipClasses(): string[];
|
|
1184
|
+
getPreviewProgressValue(row: any): number;
|
|
1185
|
+
getPreviewAvatarSrc(row: any): string | null;
|
|
1186
|
+
getPreviewAvatarInitials(row: any): string;
|
|
1187
|
+
getPreviewAvatarStyle(): Record<string, string>;
|
|
1188
|
+
getPreviewAvatarShape(): 'square' | 'rounded' | 'circle' | undefined;
|
|
1189
|
+
getPreviewToggleState(row: any): boolean;
|
|
1190
|
+
getPreviewMenuCount(row: any): number;
|
|
1191
|
+
getPreviewHtml(row: any): string;
|
|
1192
|
+
trackByIdx: (_: number, item: any) => number;
|
|
1193
|
+
private validateRenderer;
|
|
1070
1194
|
private readonly _emptyMappingRef;
|
|
1195
|
+
composeSelectedIndex: number;
|
|
1196
|
+
private ensureCompose;
|
|
1197
|
+
getComposeItemsUI(): Array<{
|
|
1198
|
+
type: string;
|
|
1199
|
+
summary: string;
|
|
1200
|
+
raw: any;
|
|
1201
|
+
}>;
|
|
1202
|
+
private getComposeItemSummary;
|
|
1203
|
+
addComposeItem(kind: string): void;
|
|
1204
|
+
removeComposeItem(index: number): void;
|
|
1205
|
+
duplicateComposeItem(index: number): void;
|
|
1206
|
+
onComposeReorder(event: any): void;
|
|
1207
|
+
selectComposeItem(index: number): void;
|
|
1208
|
+
getComposeLayoutProp(key: string): any;
|
|
1209
|
+
setComposeLayoutProp(key: string, value: any): void;
|
|
1210
|
+
private getSelectedComposeItem;
|
|
1071
1211
|
getColumnKeyInputType(column: ColumnDefinition | null): 'text' | 'number' | 'boolean';
|
|
1072
1212
|
onMappingChange(mapping: {
|
|
1073
1213
|
[key: string | number]: string;
|
|
1074
1214
|
}): void;
|
|
1075
|
-
get selectedColumnDataType(): ColumnDataType;
|
|
1076
|
-
set selectedColumnDataType(value: ColumnDataType);
|
|
1077
|
-
getColumnDataType(column: ColumnDefinition | null): ColumnDataType;
|
|
1215
|
+
get selectedColumnDataType(): ColumnDataType$1;
|
|
1216
|
+
set selectedColumnDataType(value: ColumnDataType$1);
|
|
1217
|
+
getColumnDataType(column: ColumnDefinition | null): ColumnDataType$1;
|
|
1078
1218
|
/**
|
|
1079
1219
|
* Infer column data type from field name patterns (shared logic with PraxisTable)
|
|
1080
1220
|
*/
|
|
1081
1221
|
private inferFieldTypeFromFieldName;
|
|
1082
|
-
onDataTypeChange(dataType: ColumnDataType): void;
|
|
1222
|
+
onDataTypeChange(dataType: ColumnDataType$1): void;
|
|
1083
1223
|
showDataFormatter(column: ColumnDefinition | null): boolean;
|
|
1084
1224
|
getFormatterIcon(column: ColumnDefinition | null): string;
|
|
1085
1225
|
getFormatterPanelDescription(column: ColumnDefinition | null): string;
|
|
@@ -1274,7 +1414,9 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
1274
1414
|
private panelData;
|
|
1275
1415
|
private panelRef?;
|
|
1276
1416
|
behaviorEditor?: BehaviorConfigEditorComponent;
|
|
1277
|
-
|
|
1417
|
+
set crudEditorSetter(ref: any);
|
|
1418
|
+
private crudEditor?;
|
|
1419
|
+
private _crudSubscribed;
|
|
1278
1420
|
sections: {
|
|
1279
1421
|
id: string;
|
|
1280
1422
|
label: string;
|
|
@@ -1287,6 +1429,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
1287
1429
|
private initialResourcePath;
|
|
1288
1430
|
idField: string;
|
|
1289
1431
|
private initialIdField;
|
|
1432
|
+
horizontalScroll: 'auto' | 'wrap' | 'none';
|
|
1433
|
+
private initialHorizontalScroll;
|
|
1290
1434
|
crudContext?: {
|
|
1291
1435
|
tableId: string;
|
|
1292
1436
|
resourcePath?: string;
|
|
@@ -1319,6 +1463,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
1319
1463
|
isValid$: BehaviorSubject<boolean>;
|
|
1320
1464
|
isBusy$: BehaviorSubject<boolean>;
|
|
1321
1465
|
columnMetas: FieldMetadata[];
|
|
1466
|
+
private hasCrudOverridesDirty;
|
|
1322
1467
|
constructor(cdr: ChangeDetectorRef, configService: TableConfigService, panelData: any, panelRef?: SettingsPanelRef | undefined);
|
|
1323
1468
|
ngOnInit(): void;
|
|
1324
1469
|
onJsonConfigChange(newConfig: TableConfig): void;
|
|
@@ -1327,8 +1472,10 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
1327
1472
|
onColumnsConfigChange(newConfig: TableConfig): void;
|
|
1328
1473
|
onColumnChange(change: ColumnChange): void;
|
|
1329
1474
|
onFilterSettingsChange(cfg: FilterConfig): void;
|
|
1475
|
+
onRulesConfigChange(newCfg: TableConfig): void;
|
|
1330
1476
|
private updateColumnMetas;
|
|
1331
1477
|
private updateCanSaveState;
|
|
1478
|
+
private subscribeCrudEditorChanges;
|
|
1332
1479
|
private showSuccess;
|
|
1333
1480
|
private showError;
|
|
1334
1481
|
private clearMessages;
|
|
@@ -1344,9 +1491,9 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
1344
1491
|
getSettingsValue(): TableConfig;
|
|
1345
1492
|
onResourcePathChange(val: string): void;
|
|
1346
1493
|
onIdFieldChange(val: string): void;
|
|
1494
|
+
onHorizontalScrollChange(val: 'auto' | 'wrap' | 'none'): void;
|
|
1347
1495
|
onReconcileIdField(): void;
|
|
1348
1496
|
onAcceptServerHash(): void;
|
|
1349
|
-
onVisualRulesConfigChange(newConfig: TableConfig): void;
|
|
1350
1497
|
reset(): void;
|
|
1351
1498
|
onResetToDefaults(): void;
|
|
1352
1499
|
/**
|
|
@@ -1409,7 +1556,7 @@ declare const FILTER_DRAWER_ADAPTER: InjectionToken<FilterDrawerAdapter>;
|
|
|
1409
1556
|
declare class DataFormatterComponent implements OnInit, OnChanges {
|
|
1410
1557
|
private cdr;
|
|
1411
1558
|
private formattingService;
|
|
1412
|
-
columnType: ColumnDataType;
|
|
1559
|
+
columnType: ColumnDataType$1;
|
|
1413
1560
|
currentFormat: string;
|
|
1414
1561
|
formatChange: EventEmitter<string>;
|
|
1415
1562
|
datePresets: FormatPreset[];
|
|
@@ -1597,72 +1744,255 @@ declare class FilterSettingsComponent implements OnChanges {
|
|
|
1597
1744
|
static ɵcmp: i0.ɵɵComponentDeclaration<FilterSettingsComponent, "filter-settings", never, { "metadata": { "alias": "metadata"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "configKey": { "alias": "configKey"; "required": false; }; }, { "settingsChange": "settingsChange"; }, never, never, true, never>;
|
|
1598
1745
|
}
|
|
1599
1746
|
|
|
1600
|
-
|
|
1747
|
+
type ColumnDataType = 'string' | 'number' | 'date' | 'boolean' | 'currency' | 'percentage' | 'custom';
|
|
1748
|
+
|
|
1749
|
+
type OperatorKey = '==' | '!=' | '<' | '<=' | '>' | '>=' | 'contains' | 'startsWith' | 'endsWith' | 'matches' | 'in' | 'not in' | 'is empty' | 'is not empty' | 'between' | 'is today' | 'in last' | 'weekday is' | 'is true' | 'is false' | 'contains all' | 'contains any' | 'length ==' | 'length >' | 'length <' | 'jsonPath matches' | 'has key' | 'key ==' | 'id ==' | 'id in' | 'has property';
|
|
1750
|
+
interface OperatorSpec {
|
|
1751
|
+
key: OperatorKey;
|
|
1752
|
+
label: string;
|
|
1753
|
+
icon?: string;
|
|
1754
|
+
description?: string;
|
|
1755
|
+
}
|
|
1756
|
+
declare class OperatorsRegistryService {
|
|
1757
|
+
/** Returns the list of operator specs supported for a given data type. */
|
|
1758
|
+
getForType(type: ColumnDataType | 'enum' | 'array' | 'json' | 'relational'): OperatorSpec[];
|
|
1759
|
+
get keys(): OperatorKey[];
|
|
1760
|
+
private readonly stringOps;
|
|
1761
|
+
private readonly numberOps;
|
|
1762
|
+
private readonly dateOps;
|
|
1763
|
+
private readonly booleanOps;
|
|
1764
|
+
private readonly enumOps;
|
|
1765
|
+
private readonly arrayOps;
|
|
1766
|
+
private readonly jsonOps;
|
|
1767
|
+
private readonly relationalOps;
|
|
1768
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OperatorsRegistryService, never>;
|
|
1769
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<OperatorsRegistryService>;
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1772
|
+
type GroupOp = 'AND' | 'OR' | 'NOT';
|
|
1773
|
+
interface RuleAtom {
|
|
1774
|
+
field: string;
|
|
1775
|
+
operator: string;
|
|
1776
|
+
value?: any;
|
|
1777
|
+
options?: Record<string, any>;
|
|
1778
|
+
}
|
|
1779
|
+
interface RuleGroup {
|
|
1780
|
+
op: GroupOp;
|
|
1781
|
+
conditions: RuleAtom[];
|
|
1782
|
+
groups?: RuleGroup[];
|
|
1783
|
+
}
|
|
1784
|
+
declare class RuleCompilerService {
|
|
1785
|
+
/**
|
|
1786
|
+
* Compiles a rule group into a single DSL expression string, adding
|
|
1787
|
+
* parentheses according to grouping and operator precedence.
|
|
1788
|
+
*/
|
|
1789
|
+
compileGroup(group: RuleGroup): string;
|
|
1790
|
+
/** Compiles a single rule atom to DSL. */
|
|
1791
|
+
compileAtom(atom: RuleAtom): string;
|
|
1792
|
+
private stringify;
|
|
1793
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RuleCompilerService, never>;
|
|
1794
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<RuleCompilerService>;
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1797
|
+
type RuleItem = {
|
|
1798
|
+
condition: string;
|
|
1799
|
+
cssClass?: string;
|
|
1800
|
+
style?: Record<string, string>;
|
|
1801
|
+
description?: string;
|
|
1802
|
+
effects?: _praxisui_table_rule_builder.RuleEffectDefinition;
|
|
1803
|
+
enabled?: boolean;
|
|
1804
|
+
};
|
|
1805
|
+
declare class TableRulesEditorComponent implements OnChanges {
|
|
1806
|
+
private cdr;
|
|
1807
|
+
private registry;
|
|
1808
|
+
private compiler;
|
|
1809
|
+
private dynamicForm;
|
|
1810
|
+
private crud?;
|
|
1601
1811
|
config: TableConfig;
|
|
1812
|
+
resourcePath?: string;
|
|
1813
|
+
fields?: FieldDefinition[] | null;
|
|
1814
|
+
i18nRules?: Partial<Record<string, string>>;
|
|
1602
1815
|
configChange: EventEmitter<_praxisui_core.TableConfigModern>;
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1816
|
+
scope: 'row' | 'column';
|
|
1817
|
+
selectedColumnField: string | null;
|
|
1818
|
+
draftCondition: string;
|
|
1819
|
+
draftCssClass: string;
|
|
1820
|
+
draftStyleText: string;
|
|
1821
|
+
dslMode: boolean;
|
|
1822
|
+
dslErrors: string[];
|
|
1823
|
+
editIndex: number;
|
|
1824
|
+
get currentRules(): RuleItem[];
|
|
1825
|
+
set currentRules(v: RuleItem[]);
|
|
1826
|
+
rulesRow: RuleItem[];
|
|
1827
|
+
rulesColumn: RuleItem[];
|
|
1828
|
+
private parser;
|
|
1829
|
+
objectKeys: {
|
|
1830
|
+
(o: object): string[];
|
|
1831
|
+
(o: {}): string[];
|
|
1832
|
+
};
|
|
1833
|
+
dynamicValueForm: FormGroup;
|
|
1834
|
+
dynamicValueMetas: FieldMetadata[];
|
|
1835
|
+
effectsValue?: RuleEffectDefinition;
|
|
1836
|
+
dynamicValueActive: boolean;
|
|
1837
|
+
private dynamicValueSub?;
|
|
1838
|
+
basicFieldType: 'enum' | 'array' | 'json' | 'relational' | 'string' | 'number' | 'date' | 'boolean' | 'currency' | 'percentage' | 'custom';
|
|
1839
|
+
noValueOperator: boolean;
|
|
1840
|
+
i18nValuePlaceholder: string;
|
|
1841
|
+
enumOptions: Array<{
|
|
1842
|
+
value: any;
|
|
1843
|
+
label: string;
|
|
1844
|
+
}>;
|
|
1845
|
+
private updateDerivedUiProps;
|
|
1846
|
+
/** Enable verbose console logging for debugging value editor behavior */
|
|
1847
|
+
debugLogs: boolean;
|
|
1848
|
+
debugLevel: 'log' | 'info' | 'debug';
|
|
1849
|
+
private dbg;
|
|
1850
|
+
/** Log a summary table of field metadata and column info for diagnostics */
|
|
1851
|
+
private logFieldMetasContext;
|
|
1852
|
+
/** Log a focused view for a single field */
|
|
1853
|
+
private logSingleFieldMeta;
|
|
1854
|
+
private logFieldChoices;
|
|
1855
|
+
i18nDefault: Record<string, string>;
|
|
1856
|
+
t(key: string): string;
|
|
1857
|
+
constructor(cdr: ChangeDetectorRef, registry: OperatorsRegistryService, compiler: RuleCompilerService, dynamicForm: DynamicFormService, crud?: GenericCrudService<any> | undefined);
|
|
1858
|
+
ngOnInit(): void;
|
|
1859
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1860
|
+
get columnFields(): string[];
|
|
1861
|
+
getOperatorsForField(fieldName: string | null): string[];
|
|
1862
|
+
onScopeChange(_s: 'row' | 'column'): void;
|
|
1863
|
+
onColumnSelect(_field: string): void;
|
|
1864
|
+
private initFromConfig;
|
|
1865
|
+
private loadColumnRules;
|
|
1866
|
+
rebuildCondition(): void;
|
|
1867
|
+
onDraftChange(): void;
|
|
1868
|
+
onRelSearch(ev: any): void;
|
|
1869
|
+
clearRelSelection(): void;
|
|
1870
|
+
onRelSelectSingle(opt: any): void;
|
|
1871
|
+
onRelAddMulti(opt: any): void;
|
|
1872
|
+
removeRelMulti(i: number): void;
|
|
1873
|
+
private fetchRelOptions;
|
|
1874
|
+
private getRelationalConfig;
|
|
1875
|
+
validateDraft(): void;
|
|
1876
|
+
canCommitDraft(): boolean;
|
|
1877
|
+
addOrUpdateRule(): void;
|
|
1878
|
+
editRule(index: number): void;
|
|
1879
|
+
removeRule(index: number): void;
|
|
1880
|
+
duplicateRule(index: number): void;
|
|
1881
|
+
onRuleToggle(): void;
|
|
1882
|
+
onApply(): void;
|
|
1883
|
+
isValid(): boolean;
|
|
1884
|
+
onExportRules(): void;
|
|
1885
|
+
onImportRules(): void;
|
|
1886
|
+
private sanitizeRule;
|
|
1887
|
+
private buildRendererOverrideFromRule;
|
|
1888
|
+
private buildRowRendererOverrideFromRule;
|
|
1889
|
+
private stringifyValue;
|
|
1890
|
+
private extractIdentifiers;
|
|
1891
|
+
resetDraft(): void;
|
|
1892
|
+
basicField: string;
|
|
1893
|
+
basicOperator: string;
|
|
1894
|
+
basicValue: any;
|
|
1895
|
+
basicMin: any;
|
|
1896
|
+
basicMax: any;
|
|
1897
|
+
basicListCsv: string;
|
|
1898
|
+
basicDate: Date | null;
|
|
1899
|
+
basicDateStart: Date | null;
|
|
1900
|
+
basicDateEnd: Date | null;
|
|
1901
|
+
basicEnumValue: string | number | null;
|
|
1902
|
+
basicEnumValues: Array<string | number>;
|
|
1903
|
+
basicLength: number | null;
|
|
1904
|
+
relationalSelected: {
|
|
1905
|
+
id: any;
|
|
1906
|
+
label: string;
|
|
1907
|
+
raw: any;
|
|
1908
|
+
} | null;
|
|
1909
|
+
relationalSelectedMulti: Array<{
|
|
1910
|
+
id: any;
|
|
1911
|
+
label: string;
|
|
1912
|
+
raw: any;
|
|
1615
1913
|
}>;
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
private
|
|
1623
|
-
private
|
|
1624
|
-
|
|
1914
|
+
relationalOptions: Array<{
|
|
1915
|
+
id: any;
|
|
1916
|
+
label: string;
|
|
1917
|
+
raw: any;
|
|
1918
|
+
}>;
|
|
1919
|
+
basicRelPath: string;
|
|
1920
|
+
private relSearchTerm;
|
|
1921
|
+
private relCache;
|
|
1922
|
+
basicLastN: number | null;
|
|
1923
|
+
basicLastUnit: 'days' | 'weeks' | 'months';
|
|
1924
|
+
basicWeekdays: number[];
|
|
1925
|
+
weekdayOptions: {
|
|
1926
|
+
value: number;
|
|
1625
1927
|
label: string;
|
|
1626
|
-
value: string;
|
|
1627
1928
|
}[];
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
private
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1929
|
+
basicJsonPath: string;
|
|
1930
|
+
basicJsonPattern: string;
|
|
1931
|
+
basicJsonKey: string;
|
|
1932
|
+
basicJsonExpected: any;
|
|
1933
|
+
draftGroup: RuleGroup;
|
|
1934
|
+
editAtomIndex: number;
|
|
1935
|
+
activeGroupTarget: 'root' | number;
|
|
1936
|
+
onEffectsChange(v: RuleEffectDefinition): void;
|
|
1937
|
+
private hasRuleEffectsValue;
|
|
1938
|
+
getFieldType(fieldName: string | null): 'enum' | 'array' | 'json' | 'relational' | 'string' | 'number' | 'date' | 'boolean' | 'currency' | 'percentage' | 'custom';
|
|
1939
|
+
getEnumOptions(fieldName: string | null): Array<{
|
|
1940
|
+
value: any;
|
|
1941
|
+
label: string;
|
|
1942
|
+
}>;
|
|
1943
|
+
isNoValueOperator(op: string): boolean;
|
|
1944
|
+
getValuePlaceholder(): string;
|
|
1945
|
+
getI18nValuePlaceholder(): string;
|
|
1946
|
+
private toIsoDateString;
|
|
1947
|
+
setDsl(v: boolean): void;
|
|
1948
|
+
onBasicFieldChange(_val: string): void;
|
|
1949
|
+
onBasicOperatorChange(_val: string): void;
|
|
1950
|
+
private refreshDynamicValueInitialValueOnly;
|
|
1951
|
+
refreshDynamicValueHost(): void;
|
|
1952
|
+
private buildAtomFromBasic;
|
|
1953
|
+
canBuildAtom(): boolean;
|
|
1954
|
+
onAddOrUpdateAtom(): void;
|
|
1955
|
+
editAtom(index: number): void;
|
|
1956
|
+
removeAtom(index: number): void;
|
|
1957
|
+
resetAtomEdit(): void;
|
|
1958
|
+
private focusAddCondition;
|
|
1959
|
+
clearGroup(): void;
|
|
1960
|
+
onDropCondition(evt: CdkDragDrop<RuleAtom[]>): void;
|
|
1961
|
+
updateDraftFromGroup(): void;
|
|
1962
|
+
getAtomPreview(a: RuleAtom): string;
|
|
1963
|
+
addSubgroup(): void;
|
|
1964
|
+
removeSubgroup(index: number): void;
|
|
1965
|
+
getGroupPreview(g: RuleGroup): string;
|
|
1966
|
+
private getActiveGroupRef;
|
|
1967
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TableRulesEditorComponent, [null, null, null, null, { optional: true; }]>;
|
|
1968
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TableRulesEditorComponent, "table-rules-editor", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "i18nRules": { "alias": "i18nRules"; "required": false; }; "debugLogs": { "alias": "debugLogs"; "required": false; }; "debugLevel": { "alias": "debugLevel"; "required": false; }; }, { "configChange": "configChange"; }, never, never, true, never>;
|
|
1654
1969
|
}
|
|
1655
1970
|
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
declare function
|
|
1665
|
-
declare function
|
|
1971
|
+
/**
|
|
1972
|
+
* Lightweight JSON path evaluator for simple cases used in conditional styling.
|
|
1973
|
+
* Supported syntax (subset):
|
|
1974
|
+
* - $.a.b.c
|
|
1975
|
+
* - a.b[0].c
|
|
1976
|
+
* - a["key"] / a['key']
|
|
1977
|
+
* - a[0]
|
|
1978
|
+
*/
|
|
1979
|
+
declare function jsonPathGet(root: any, rawPath: string): any;
|
|
1980
|
+
declare function hasJsonKey(root: any, keyOrPath: string): boolean;
|
|
1981
|
+
declare function jsonPathMatches(root: any, path: string, pattern: string): boolean;
|
|
1982
|
+
/**
|
|
1983
|
+
* Registers JSON helpers in a DslParser instance, if it supports custom functions.
|
|
1984
|
+
* This is optional — call it in your app host bootstrap.
|
|
1985
|
+
*/
|
|
1986
|
+
declare function registerJsonDslFunctions(parser: DslParser | any): void;
|
|
1987
|
+
|
|
1988
|
+
/**
|
|
1989
|
+
* Registers simple date/time helpers in a DslParser instance.
|
|
1990
|
+
* - today(): returns 'YYYY-MM-DD' (UTC)
|
|
1991
|
+
* - now(): returns Date ISO string (toISOString)
|
|
1992
|
+
* - dateAdd(date, amount, unit): adds amount (days|weeks|months) and returns 'YYYY-MM-DD'
|
|
1993
|
+
* - dateFormat(date, token): supports token 'E' (ISO weekday 1..7)
|
|
1994
|
+
*/
|
|
1995
|
+
declare function registerDateDslFunctions(parser: DslParser | any): void;
|
|
1666
1996
|
|
|
1667
1997
|
declare class FormulaGeneratorService {
|
|
1668
1998
|
/**
|
|
@@ -1767,5 +2097,5 @@ declare const PRAXIS_TABLE_COMPONENT_METADATA: ComponentDocMeta;
|
|
|
1767
2097
|
*/
|
|
1768
2098
|
declare function providePraxisTableMetadata(): Provider;
|
|
1769
2099
|
|
|
1770
|
-
export { BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FILTER_DRAWER_ADAPTER, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_TABLE_COMPONENT_METADATA, PraxisFilter, PraxisTable, PraxisTableConfigEditor, PraxisTableToolbar, STRING_PRESETS, TableDefaultsProvider,
|
|
1771
|
-
export type { ActionLike, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, ColumnChange, ColumnDataType, ConcatenationParams, ConditionalMappingParams,
|
|
2100
|
+
export { BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FILTER_DRAWER_ADAPTER, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_TABLE_COMPONENT_METADATA, PraxisFilter, PraxisTable, PraxisTableConfigEditor, PraxisTableToolbar, STRING_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, getActionId, hasJsonKey, jsonPathGet, jsonPathMatches, providePraxisTableMetadata, registerDateDslFunctions, registerJsonDslFunctions };
|
|
2101
|
+
export type { ActionLike, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, ColumnChange, ColumnDataType$1 as ColumnDataType, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DateFormatterOptions, DefaultValueParams, FieldSchema, FilterConfig, FilterDrawerAdapter, FilterDrawerOpenConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, RowAction, RowActionConfig, RowActionsBehavior, StringFormatterOptions, ToolbarAction, ToolbarActionsChange, ValueMappingPair };
|