@praxisui/table 9.0.67 → 9.0.68-rc.1
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 +152 -2
- package/ai/component-registry.json +316 -33
- package/docs/dynamic-filter-host-integration-guide.md +24 -0
- package/docs/dynamic-filter-payload-contract.md +5 -0
- package/docs/table-authoring-document-completeness-checklist.md +13 -0
- package/fesm2022/{praxisui-table-praxisui-table-DQWmLtjb.mjs → praxisui-table-praxisui-table-Cxa4T7sm.mjs} +55753 -54828
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-BkxCL9F2.mjs → praxisui-table-table-agentic-authoring-turn-flow-ujl2U5u7.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-DyrPBufP.mjs → praxisui-table-table-ai.adapter-B2hfkjTX.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +29 -0
- package/types/praxisui-table.d.ts +49 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable, firstValueFrom } from 'rxjs';
|
|
2
2
|
import { withAuthoringScopePolicy } from '@praxisui/ai';
|
|
3
|
-
import { af as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-
|
|
3
|
+
import { af as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-Cxa4T7sm.mjs';
|
|
4
4
|
|
|
5
5
|
class TableAgenticAuthoringTurnFlow {
|
|
6
6
|
adapter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { firstValueFrom } from 'rxjs';
|
|
2
2
|
import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
|
|
3
3
|
import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
|
|
4
|
-
import { L as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, n as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, $ as coerceTableComponentEditPlans, a1 as compileTableComponentEditPlans, Q as TASK_PRESETS, a6 as getTableComponentEditPlanCapabilities, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, K as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { L as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, n as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, $ as coerceTableComponentEditPlans, a1 as compileTableComponentEditPlans, Q as TASK_PRESETS, a6 as getTableComponentEditPlanCapabilities, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, K as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-Cxa4T7sm.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, n as PRAXIS_TABLE_AUTHORING_MANIFEST, o as PRAXIS_TABLE_COMPONENT_METADATA, p as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, q as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, r as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, s as PraxisFilter, t as PraxisFilterWidgetConfigEditor, u as PraxisTable, v as PraxisTableConfigEditor, w as PraxisTableInlineAuthoringEditorComponent, x as PraxisTableToolbar, y as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, z as TABLE_COMPONENT_AI_CAPABILITIES, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_KIND, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TASK_PRESETS, R as TableDefaultsProvider, U as TableRulesEditorComponent, V as ToolbarActionsEditorComponent, W as ValueMappingEditorComponent, X as VisualFormulaBuilderComponent, Y as analyticsComparisonMetricField, Z as buildTableApplyPlan, _ as coerceTableComponentEditPlan, $ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlan, a1 as compileTableComponentEditPlans, a2 as createTableAuthoringDocument, a3 as getActionId, a4 as getEnum, a5 as getTableCapabilities, a6 as getTableComponentEditPlanCapabilities, a7 as isTableRendererSupportedByRichContentP0, a8 as mapTableRendererToRichContentP0, a9 as normalizeTableAuthoringDocument, aa as parseLegacyOrTableDocument, ab as providePraxisFilterMetadata, ac as providePraxisTableMetadata, ad as providePraxisTableToolbarAppearance, ae as serializeTableAuthoringDocument, ag as toCanonicalTableConfig, ah as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, n as PRAXIS_TABLE_AUTHORING_MANIFEST, o as PRAXIS_TABLE_COMPONENT_METADATA, p as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, q as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, r as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, s as PraxisFilter, t as PraxisFilterWidgetConfigEditor, u as PraxisTable, v as PraxisTableConfigEditor, w as PraxisTableInlineAuthoringEditorComponent, x as PraxisTableToolbar, y as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, z as TABLE_COMPONENT_AI_CAPABILITIES, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_KIND, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TASK_PRESETS, R as TableDefaultsProvider, U as TableRulesEditorComponent, V as ToolbarActionsEditorComponent, W as ValueMappingEditorComponent, X as VisualFormulaBuilderComponent, Y as analyticsComparisonMetricField, Z as buildTableApplyPlan, _ as coerceTableComponentEditPlan, $ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlan, a1 as compileTableComponentEditPlans, a2 as createTableAuthoringDocument, a3 as getActionId, a4 as getEnum, a5 as getTableCapabilities, a6 as getTableComponentEditPlanCapabilities, a7 as isTableRendererSupportedByRichContentP0, a8 as mapTableRendererToRichContentP0, a9 as normalizeTableAuthoringDocument, aa as parseLegacyOrTableDocument, ab as providePraxisFilterMetadata, ac as providePraxisTableMetadata, ad as providePraxisTableToolbarAppearance, ae as serializeTableAuthoringDocument, ag as toCanonicalTableConfig, ah as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-Cxa4T7sm.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.68-rc.1",
|
|
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": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
8
|
"@angular/platform-browser": "^21.0.0",
|
|
9
|
-
"@praxisui/ai": "^9.0.
|
|
10
|
-
"@praxisui/core": "^9.0.
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.
|
|
12
|
-
"@praxisui/dynamic-form": "^9.0.
|
|
13
|
-
"@praxisui/metadata-editor": "^9.0.
|
|
14
|
-
"@praxisui/rich-content": "^9.0.
|
|
15
|
-
"@praxisui/settings-panel": "^9.0.
|
|
16
|
-
"@praxisui/table-rule-builder": "^9.0.
|
|
9
|
+
"@praxisui/ai": "^9.0.68-rc.1",
|
|
10
|
+
"@praxisui/core": "^9.0.68-rc.1",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.68-rc.1",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.68-rc.1",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.68-rc.1",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.68-rc.1",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.68-rc.1",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.68-rc.1",
|
|
17
17
|
"@angular/cdk": "^21.0.0",
|
|
18
18
|
"@angular/forms": "^21.0.0",
|
|
19
19
|
"@angular/material": "^21.0.0",
|
|
20
20
|
"@angular/router": "^21.0.0",
|
|
21
|
-
"@praxisui/dialog": "^9.0.
|
|
21
|
+
"@praxisui/dialog": "^9.0.68-rc.1",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -1513,3 +1513,32 @@ type DiagramEmbedNode = {
|
|
|
1513
1513
|
};
|
|
1514
1514
|
};
|
|
1515
1515
|
```
|
|
1516
|
+
|
|
1517
|
+
## Filter presentation
|
|
1518
|
+
|
|
1519
|
+
`FilterPresentationConfig` is owned by Core. Tables author it at `behavior.filtering.advancedFilters.settings.presentation`; standalone filters use `FilterConfig.presentation`, projected directly to the runtime `presentation` input. It changes presentation only, never the filter DTO or query semantics.
|
|
1520
|
+
|
|
1521
|
+
With filter persistence enabled, an acknowledged persisted `FilterConfig.presentation` overrides the authored input for the same component identity on reload. Apply remains a preview-only operation. Hosts that require input-only materialization set `disablePersistence`, which prevents preference loading and saving.
|
|
1522
|
+
|
|
1523
|
+
The guided preferences editor roundtrips the complete effective `FilterConfig`; changing presentation or another managed section preserves unmanaged siblings such as `selectedFieldIds` and field metadata overrides.
|
|
1524
|
+
|
|
1525
|
+
```json
|
|
1526
|
+
{
|
|
1527
|
+
"header": { "visible": true, "text": "Filtros", "position": "above", "size": "medium" },
|
|
1528
|
+
"advancedAction": { "display": "icon-text", "text": "Mais filtros", "icon": "filter_list", "size": "compact", "position": "end" }
|
|
1529
|
+
}
|
|
1530
|
+
```
|
|
1531
|
+
|
|
1532
|
+
| Region | Optional properties |
|
|
1533
|
+
| --- | --- |
|
|
1534
|
+
| `header` | `visible: boolean`, `text: string`, `icon: string`, `position: above \| inline`, `size: small \| medium \| large` |
|
|
1535
|
+
| `advancedAction` | `display: icon \| text \| icon-text`, `text: string`, `icon: string`, `size: compact \| standard`, `position: start \| end` |
|
|
1536
|
+
| `tokens` | String values for `gap`, `headerGap`, `headerColor`, `headerFontSize`, `headerFontWeight`, `iconSize`, `actionGap`, `actionFontSize`, `actionFontWeight` |
|
|
1537
|
+
|
|
1538
|
+
Absent presentation preserves the existing icon action and hidden heading. `header.visible` explicitly enables the heading. An empty icon removes that icon. If the advanced action uses icon-only display with an empty icon, it falls back to its localized/authored text so the action remains discoverable. Text-only display never renders an icon. Nonempty authored text takes precedence over localized copy and the default catalog label. Empty or whitespace-only header/action text inherits the localized label, so it cannot create an unnamed action. Action position applies inside the auxiliary controls group, not the page. Existing `showAdvancedButton` controls whether the advanced action is available; presentation introduces no second visibility switch.
|
|
1539
|
+
|
|
1540
|
+
The embedded table supplies the heading, advanced-action label, dialog title and opening/unavailable feedback from the `praxisTableRuntime` catalog through the existing filter `i18n` input. Host locale changes and external translator overrides apply without modifying the filter query. Explicit presentation text still wins; clearing it restores catalog resolution. Standalone filters keep their explicit `i18n` input. Other legacy filter-manager copy is outside this localized projection.
|
|
1541
|
+
|
|
1542
|
+
Tokens project to CSS custom properties `--pfx-filter-gap`, `--pfx-filter-header-gap`, `--pfx-filter-header-color`, `--pfx-filter-header-font-size`, `--pfx-filter-header-font-weight`, `--pfx-filter-icon-size`, `--pfx-filter-action-gap`, `--pfx-filter-action-font-size`, and `--pfx-filter-action-font-weight`. Prefer the semantic size/position controls for ordinary authoring; tokens are for deliberate theme customization.
|
|
1543
|
+
|
|
1544
|
+
AI authoring extends existing operations: `filter.advanced.configure` receives `settings.presentation` for tables; `filter.settings.configure` receives `presentation` for standalone filters. Neither operation authors a query through this object.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _praxisui_core from '@praxisui/core';
|
|
2
|
-
import { TableToolbarAppearanceConfig, TableConfig, TableToolbarAppearanceDensity, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, ResourceQuickConnectComponent, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
2
|
+
import { TableToolbarAppearanceConfig, TableConfig, TableToolbarAppearanceDensity, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, FilterPresentationConfig, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, ResourceQuickConnectComponent, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterViewChecked, AfterContentInit, Injector, Type } from '@angular/core';
|
|
5
5
|
import { ActivatedRoute } from '@angular/router';
|
|
@@ -392,6 +392,7 @@ declare class TableDefaultsProvider {
|
|
|
392
392
|
}
|
|
393
393
|
|
|
394
394
|
type FilterConfig = {
|
|
395
|
+
presentation?: FilterPresentationConfig;
|
|
395
396
|
alwaysVisibleFields?: string[];
|
|
396
397
|
/**
|
|
397
398
|
* Deep metadata overrides for any field rendered by the filter runtime.
|
|
@@ -513,6 +514,7 @@ type I18n = {
|
|
|
513
514
|
searchPlaceholder: string;
|
|
514
515
|
advanced: string;
|
|
515
516
|
advancedTitle?: string;
|
|
517
|
+
filtersLabel?: string;
|
|
516
518
|
advancedOpening?: string;
|
|
517
519
|
advancedUnavailable?: string;
|
|
518
520
|
clear: string;
|
|
@@ -616,6 +618,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
616
618
|
* Keys are field names from the filter DTO schema.
|
|
617
619
|
*/
|
|
618
620
|
alwaysVisibleFieldMetadataOverrides: Record<string, Record<string, any>> | undefined;
|
|
621
|
+
private readonly schemaTransportOptions;
|
|
619
622
|
/** Runtime field-level metadata overrides applied by the metadata editor. */
|
|
620
623
|
private fieldMetadataOverrides;
|
|
621
624
|
/** Additional selected field ids to render before pinned always-visible */
|
|
@@ -630,6 +633,13 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
630
633
|
showFilterSettings: boolean;
|
|
631
634
|
/** Controla a exibição do botão de filtro avançado */
|
|
632
635
|
showAdvancedButton: boolean;
|
|
636
|
+
/** Projection of FilterConfig.presentation for standalone and embedded hosts. */
|
|
637
|
+
presentation?: FilterConfig['presentation'];
|
|
638
|
+
get filterHeaderText(): string;
|
|
639
|
+
get filterHeaderIcon(): string;
|
|
640
|
+
get advancedActionText(): string;
|
|
641
|
+
get advancedActionIcon(): string;
|
|
642
|
+
get advancedActionDisplay(): string;
|
|
633
643
|
/** Controla a exibição do botão de adicionar campos */
|
|
634
644
|
showAddButton: boolean;
|
|
635
645
|
/** Controla a exibição do botão de limpar filtros */
|
|
@@ -1048,7 +1058,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
1048
1058
|
private isEditableElement;
|
|
1049
1059
|
private focusQuick;
|
|
1050
1060
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilter, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
1051
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilter, "praxis-filter", never, { "resourcePath": { "alias": "resourcePath"; "required": true; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "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; }; "showAdvancedButton": { "alias": "showAdvancedButton"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "showSearchButton": { "alias": "showSearchButton"; "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"; "contextChange": "contextChange"; "tagsChange": "tagsChange"; "selectedFieldIdsChange": "selectedFieldIdsChange"; "metaChanged": "metaChanged"; "schemaStatusChange": "schemaStatusChange"; }, never, never, true, never>;
|
|
1061
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilter, "praxis-filter", never, { "resourcePath": { "alias": "resourcePath"; "required": true; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "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; }; "showAdvancedButton": { "alias": "showAdvancedButton"; "required": false; }; "presentation": { "alias": "presentation"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "showSearchButton": { "alias": "showSearchButton"; "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"; "contextChange": "contextChange"; "tagsChange": "tagsChange"; "selectedFieldIdsChange": "selectedFieldIdsChange"; "metaChanged": "metaChanged"; "schemaStatusChange": "schemaStatusChange"; }, never, never, true, never>;
|
|
1052
1062
|
}
|
|
1053
1063
|
|
|
1054
1064
|
declare const PRAXIS_FILTER_COMPONENT_METADATA: ComponentDocMeta;
|
|
@@ -2151,6 +2161,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2151
2161
|
isCustomizationAvailable(): boolean;
|
|
2152
2162
|
private isAuthoringAssistantAvailable;
|
|
2153
2163
|
openTableSettings(): void;
|
|
2164
|
+
private openTableSettingsEditor;
|
|
2154
2165
|
private applyTableConfig;
|
|
2155
2166
|
private buildTableEditorRuntimeContext;
|
|
2156
2167
|
private emitWidgetInputPatch;
|
|
@@ -2504,6 +2515,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2504
2515
|
* Verifica se uma funcionalidade está disponível
|
|
2505
2516
|
*/
|
|
2506
2517
|
isFeatureAvailable(feature: string): boolean;
|
|
2518
|
+
private filterI18nCache?;
|
|
2507
2519
|
/**
|
|
2508
2520
|
* Obtém configurações de i18n para o filtro baseado na configuração da tabela
|
|
2509
2521
|
*/
|
|
@@ -2707,6 +2719,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2707
2719
|
isRowClickSelectable(): boolean;
|
|
2708
2720
|
getRowTabIndex(row: any, index: number): number | null;
|
|
2709
2721
|
onRowFocused(row: any, index: number): void;
|
|
2722
|
+
onSingleSelectionSpace(event: Event, row: unknown): void;
|
|
2710
2723
|
onRowKeydown(event: KeyboardEvent, row: any, index: number): void;
|
|
2711
2724
|
private reconcileKeyboardFocusAfterDataChange;
|
|
2712
2725
|
private hasKeyboardRowFocus;
|
|
@@ -2715,6 +2728,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2715
2728
|
masterToggle(): void;
|
|
2716
2729
|
isAllSelected(): boolean;
|
|
2717
2730
|
toggleRow(row: any): void;
|
|
2731
|
+
onSingleSelectionChanged(row: any): void;
|
|
2718
2732
|
getRowSelectionAriaLabel(row: any, index?: number): string;
|
|
2719
2733
|
getMasterSelectionAriaLabel(): string;
|
|
2720
2734
|
private selectRowFromUserInteraction;
|
|
@@ -2897,7 +2911,7 @@ interface JsonEditorEvent {
|
|
|
2897
2911
|
type: 'apply' | 'format' | 'validation';
|
|
2898
2912
|
payload: JsonValidationResult;
|
|
2899
2913
|
}
|
|
2900
|
-
declare class JsonConfigEditorComponent implements
|
|
2914
|
+
declare class JsonConfigEditorComponent implements OnChanges, OnDestroy {
|
|
2901
2915
|
private cdr;
|
|
2902
2916
|
document: TableAuthoringDocument | null;
|
|
2903
2917
|
documentChange: EventEmitter<TableAuthoringDocument>;
|
|
@@ -2910,7 +2924,8 @@ declare class JsonConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
2910
2924
|
private destroy$;
|
|
2911
2925
|
private jsonTextChanges$;
|
|
2912
2926
|
constructor(cdr: ChangeDetectorRef);
|
|
2913
|
-
|
|
2927
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2928
|
+
private matchesDocument;
|
|
2914
2929
|
ngOnDestroy(): void;
|
|
2915
2930
|
onJsonTextChange(text: string): void;
|
|
2916
2931
|
applyJsonChanges(): void;
|
|
@@ -3489,6 +3504,10 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3489
3504
|
private iconPicker;
|
|
3490
3505
|
config: TableConfig;
|
|
3491
3506
|
configChange: EventEmitter<_praxisui_core.TableConfigModern>;
|
|
3507
|
+
validationChange: EventEmitter<boolean>;
|
|
3508
|
+
private surfaceValidity;
|
|
3509
|
+
get hasInvalidSurfaceDraft(): boolean;
|
|
3510
|
+
onSurfaceValidationChange(kind: 'toolbar' | 'row' | 'bulk', valid: boolean): void;
|
|
3492
3511
|
toolbarActionsChange: EventEmitter<ToolbarActionsChange>;
|
|
3493
3512
|
toolbarForm: FormGroup;
|
|
3494
3513
|
isV2: boolean;
|
|
@@ -3521,6 +3540,7 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3521
3540
|
hint?: string;
|
|
3522
3541
|
};
|
|
3523
3542
|
}): string;
|
|
3543
|
+
private formProjectionBaseline?;
|
|
3524
3544
|
ngOnInit(): void;
|
|
3525
3545
|
ngOnChanges(changes: SimpleChanges): void;
|
|
3526
3546
|
ngOnDestroy(): void;
|
|
@@ -3535,6 +3555,8 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3535
3555
|
private removeAddToolbarAction;
|
|
3536
3556
|
private syncAddFormFromActions;
|
|
3537
3557
|
private updateConfig;
|
|
3558
|
+
/** Full editor projection used only to compare changes; defaults are not authored implicitly. */
|
|
3559
|
+
private buildConfig;
|
|
3538
3560
|
getActionSelectValue(action?: EditableTableAction): string;
|
|
3539
3561
|
getActionParam(action?: EditableTableAction): string;
|
|
3540
3562
|
isRequiredGlobalActionParamMissing(action: EditableTableAction, spec: GlobalActionCatalogOption): boolean;
|
|
@@ -3607,7 +3629,7 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3607
3629
|
pickRowMenuIcon(): Promise<void>;
|
|
3608
3630
|
pickRowHeaderIcon(): Promise<void>;
|
|
3609
3631
|
static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarActionsEditorComponent, never>;
|
|
3610
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarActionsEditorComponent, "toolbar-actions-editor", never, { "config": { "alias": "config"; "required": false; }; }, { "configChange": "configChange"; "toolbarActionsChange": "toolbarActionsChange"; }, never, never, true, never>;
|
|
3632
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarActionsEditorComponent, "toolbar-actions-editor", never, { "config": { "alias": "config"; "required": false; }; }, { "configChange": "configChange"; "validationChange": "validationChange"; "toolbarActionsChange": "toolbarActionsChange"; }, never, never, true, never>;
|
|
3611
3633
|
}
|
|
3612
3634
|
|
|
3613
3635
|
interface MessagesLocalizationChange {
|
|
@@ -3654,6 +3676,8 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3654
3676
|
private fb;
|
|
3655
3677
|
private readonly hostRef;
|
|
3656
3678
|
private readonly cdr;
|
|
3679
|
+
private readonly presentationI18n;
|
|
3680
|
+
get presentationTabLabel(): string;
|
|
3657
3681
|
metadata: FieldMetadata[];
|
|
3658
3682
|
metadataSource: 'filter-dto' | 'columns';
|
|
3659
3683
|
metadataLoading: boolean;
|
|
@@ -3662,6 +3686,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3662
3686
|
configKey?: string;
|
|
3663
3687
|
settingsChange: EventEmitter<FilterConfig>;
|
|
3664
3688
|
form: FormGroup<{
|
|
3689
|
+
presentation: FormControl<FilterConfig['presentation']>;
|
|
3665
3690
|
alwaysVisibleFields: FormControl<string[]>;
|
|
3666
3691
|
showAdvanced: FormControl<boolean>;
|
|
3667
3692
|
mode: FormControl<'filter'>;
|
|
@@ -3698,6 +3723,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3698
3723
|
canSave$: Observable<boolean>;
|
|
3699
3724
|
isDirty$: Observable<boolean>;
|
|
3700
3725
|
isValid$: Observable<boolean>;
|
|
3726
|
+
private readonly savingState;
|
|
3701
3727
|
isBusy$: Observable<boolean>;
|
|
3702
3728
|
private initialSettings;
|
|
3703
3729
|
private extraSettings;
|
|
@@ -3832,6 +3858,9 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3832
3858
|
renameTagPrompt(index: number): void;
|
|
3833
3859
|
dropTags(event: CdkDragDrop<FilterTag[]>): void;
|
|
3834
3860
|
ngOnChanges(changes: SimpleChanges): void;
|
|
3861
|
+
updatePresentation(value: FilterConfig['presentation']): void;
|
|
3862
|
+
onSave(): FilterConfig | undefined | Promise<FilterConfig | undefined>;
|
|
3863
|
+
private persistDraft;
|
|
3835
3864
|
getSettingsValue(): FilterConfig;
|
|
3836
3865
|
private updateEffectiveJson;
|
|
3837
3866
|
private buildFullConfigFromForm;
|
|
@@ -4166,6 +4195,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4166
4195
|
icon: string;
|
|
4167
4196
|
}[];
|
|
4168
4197
|
activeSectionIndex: number;
|
|
4198
|
+
surfaceDraftInvalid: boolean;
|
|
4199
|
+
onSurfaceDraftValidationChange(valid: boolean): void;
|
|
4169
4200
|
private originalConfig;
|
|
4170
4201
|
editedConfig: TableConfig;
|
|
4171
4202
|
resourcePath: string;
|
|
@@ -4200,6 +4231,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4200
4231
|
schemaSnapshotMissing: boolean;
|
|
4201
4232
|
isV2Config: boolean;
|
|
4202
4233
|
canSave: boolean;
|
|
4234
|
+
private mobileBreakpointDraft;
|
|
4203
4235
|
hasErrors: boolean;
|
|
4204
4236
|
hasSuccess: boolean;
|
|
4205
4237
|
statusMessage: string;
|
|
@@ -4272,6 +4304,11 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4272
4304
|
private loadFilterDtoMetas;
|
|
4273
4305
|
onIdFieldChange(val: string): void;
|
|
4274
4306
|
onIdFieldOptionSelected(value: string): void;
|
|
4307
|
+
get mobileCardMode(): boolean;
|
|
4308
|
+
get mobileBreakpoint(): number | null;
|
|
4309
|
+
get mobileBreakpointInvalid(): boolean;
|
|
4310
|
+
onMobileCardModeChange(cardMode: boolean): void;
|
|
4311
|
+
onMobileBreakpointChange(value: number | null): void;
|
|
4275
4312
|
onHorizontalScrollChange(val: 'auto' | 'wrap' | 'none'): void;
|
|
4276
4313
|
onReconcileIdField(): void;
|
|
4277
4314
|
onAcceptServerHash(): void;
|
|
@@ -4337,25 +4374,29 @@ declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1,
|
|
|
4337
4374
|
widgetKey?: string;
|
|
4338
4375
|
context: Record<string, unknown>;
|
|
4339
4376
|
private editorBaseline?;
|
|
4377
|
+
private sourceDraft?;
|
|
4378
|
+
private readonly i18n;
|
|
4379
|
+
get configurationSource(): 'local-first' | 'input-first' | 'volatile';
|
|
4380
|
+
tx(key: string, fallback: string): string;
|
|
4381
|
+
changeConfigurationSource(value: string): void;
|
|
4382
|
+
private updateDirtyState;
|
|
4340
4383
|
tableEditor?: PraxisTableConfigEditor;
|
|
4341
4384
|
readonly isDirty$: BehaviorSubject<boolean>;
|
|
4342
4385
|
readonly isValid$: BehaviorSubject<boolean>;
|
|
4343
4386
|
readonly isBusy$: BehaviorSubject<boolean>;
|
|
4344
|
-
private readonly cdr;
|
|
4345
4387
|
private readonly subscription;
|
|
4346
4388
|
ngAfterViewInit(): void;
|
|
4347
4389
|
ngOnDestroy(): void;
|
|
4348
4390
|
getSettingsValue(): PraxisTableWidgetEditorValue;
|
|
4349
4391
|
onSave(): PraxisTableWidgetEditorValue;
|
|
4350
4392
|
reset(): void;
|
|
4351
|
-
private initializeChildEditor;
|
|
4352
|
-
private tryInject;
|
|
4353
4393
|
private buildValue;
|
|
4354
4394
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableWidgetConfigEditor, never>;
|
|
4355
4395
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableWidgetConfigEditor, "praxis-table-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; "widgetKey": { "alias": "widgetKey"; "required": false; }; "context": { "alias": "context"; "required": false; }; }, {}, never, never, true, never>;
|
|
4356
4396
|
}
|
|
4357
4397
|
|
|
4358
4398
|
interface PraxisFilterWidgetEditorInputs {
|
|
4399
|
+
presentation?: FilterConfig['presentation'];
|
|
4359
4400
|
resourcePath?: string | null;
|
|
4360
4401
|
fieldMetadata?: FieldMetadata[] | null;
|
|
4361
4402
|
filterId?: string;
|