@praxisui/table 9.0.66 → 9.0.68-rc.0
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 +190 -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/local-data-mode-precedence.md +13 -0
- package/docs/table-authoring-document-completeness-checklist.md +13 -0
- package/fesm2022/{praxisui-table-praxisui-table-B3Gyqwao.mjs → praxisui-table-praxisui-table-Cxa4T7sm.mjs} +55652 -54574
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-B5y6-haX.mjs → praxisui-table-table-agentic-authoring-turn-flow-ujl2U5u7.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-Bo2VuiWB.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 +40 -5
- package/types/praxisui-table.d.ts +74 -16
|
@@ -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.0",
|
|
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.0",
|
|
10
|
+
"@praxisui/core": "^9.0.68-rc.0",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.68-rc.0",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.68-rc.0",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.68-rc.0",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.68-rc.0",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.68-rc.0",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.68-rc.0",
|
|
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.0",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -366,9 +366,15 @@ capabilities CRUD canonicas, `PraxisTable` pode sintetizar entradas
|
|
|
366
366
|
contextuais `view`, `edit` e `delete`. Quando o backend publica
|
|
367
367
|
explicitamente `operations["duplicate-draft"]`, a tabela tambem materializa
|
|
368
368
|
`duplicate-draft` como operacao estendida de item. Essas entradas continuam
|
|
369
|
-
sendo capabilities, nao workflow actions
|
|
370
|
-
|
|
371
|
-
host
|
|
369
|
+
sendo capabilities, nao workflow actions. Em uma tabela standalone, `view`/`byId`
|
|
370
|
+
abre um Dynamic Form somente leitura por `surface.open`, usando a resolucao
|
|
371
|
+
canonica do GET de item e do schema de resposta. O host deve fornecer o runtime
|
|
372
|
+
de surfaces e autorizar essas leituras na sua politica de rede. Surfaces nomeadas
|
|
373
|
+
preservam seus proprios ids, paths e schemas. Dentro de um contexto CRUD, `view`
|
|
374
|
+
continua emitindo `rowAction` com `actionConfig` apontando para a capability;
|
|
375
|
+
as demais capabilities delegadas e actions globais explicitas preservam seu fluxo.
|
|
376
|
+
Injector e origem do foco acompanham apenas o contexto efemero de execucao,
|
|
377
|
+
nunca o JSON authorado ou o payload HTTP.
|
|
372
378
|
|
|
373
379
|
Renderer defaults:
|
|
374
380
|
- `columns[].renderer.type = "avatar"` aplica `columns[].align = "center"` quando a coluna não declara alinhamento explícito. Esse default governa header e célula para manter foto/avatar centralizados em colunas dedicadas, preservando `align`, `width` e demais overrides declarados pelo host.
|
|
@@ -463,7 +469,7 @@ degraded filter.
|
|
|
463
469
|
| `rowClick` | `{ row, index }` | Clique em linha. | Partial | Preservado da documentação anterior. |
|
|
464
470
|
| `rowDoubleClick` | `{ action, row }` | Duplo clique quando habilitado. | Partial | Preservado da documentação anterior. |
|
|
465
471
|
| `rowExpansionChange` | `RowExpansionChangeEvent` | Evento canônico para expand/collapse de detail row no runtime P0A (caminho não virtualizado), com payload discriminado por política de exposição (`allowRawExposure` + `eventExposureDefault`). | Partial | Preservado da documentação anterior. |
|
|
466
|
-
| `rowAction` | `{ action, row, payload?, actionConfig?, localMode?, preventedHttp? }` | Acao de linha (coluna `_actions`, renderer interativo ou CRUD capability sintetizada). `payload` e emitido quando houver `payloadExpr` em renderer interativo. Quando `actionConfig.globalAction` aponta para `navigation.openRoute`, o runtime resolve templates como `${row.id}` antes de executar a navegação interna. Para actions como `surface.open`, `payload.*` continua sendo o envelope canônico do evento entregue ao destino. Para `view
|
|
472
|
+
| `rowAction` | `{ action, row, payload?, actionConfig?, localMode?, preventedHttp? }` | Acao de linha (coluna `_actions`, renderer interativo ou CRUD capability sintetizada). `payload` e emitido quando houver `payloadExpr` em renderer interativo. Quando `actionConfig.globalAction` aponta para `navigation.openRoute`, o runtime resolve templates como `${row.id}` antes de executar a navegação interna. Para actions como `surface.open`, `payload.*` continua sendo o envelope canônico do evento entregue ao destino. Para capabilities delegadas ao host (`view` em CRUD, `edit/delete/duplicate-draft`), `actionConfig` carrega a operacao canonica. O `view`/`byId` standalone abre a leitura por `surface.open` e nao emite um segundo pedido local. | Partial | Preservado da documentação anterior. |
|
|
467
473
|
| `toolbarAction` | `{ action, actionConfig? }` | Acao clicada em `toolbar.actions[]` que nao foi roteada para fluxo bulk; `actionConfig` carrega o objeto da acao quando disponivel. A acao `create` de colecao pode ser materializada automaticamente a partir de `_links.create`, rel `capabilities`, surfaces e `CrudOperationResolutionService`. Dentro de CRUD, a tabela delega ao owner antes de abrir. Standalone, uma surface selecionada usa uma unica tentativa de `surface.open`; falha de execução é fail-closed e não emite `toolbarAction` como segundo caminho. O fallback local só permanece quando nenhuma surface executável foi selecionada. | Partial | Preservado da documentação anterior com materializacao CRUD de colecao e ownership explícito. |
|
|
468
474
|
| `exportAction` | `{ format, request?, result?, error?, tableId? }` | Acao de exportacao acionada pelo menu `export.formats[]`; `request` segue `PraxisCollectionExportRequest`. | Active | Usa o contrato canonico de Collection Export em `@praxisui/core`. |
|
|
469
475
|
| `exportAction` | `{ format, request?, result?, error?, tableId? }` | Acao de exportacao acionada pelo menu `export.formats[]`; `request` segue `PraxisCollectionExportRequest`. | Active | Usa o contrato canonico de Collection Export em `@praxisui/core`. |
|
|
@@ -1099,7 +1105,7 @@ A superficie usa `horizontalScroll` com classes:
|
|
|
1099
1105
|
Em `scroll-auto`, o viewport e uma regiao focalizavel por teclado para que o scroll horizontal continue acessivel sem mouse, inclusive no Safari. O nome acessivel usa `accessibility.ariaLabels.scrollViewport`, depois `toolbar.title` e, por fim, o fallback localizado do runtime. `scroll-wrap` e `scroll-none` nao introduzem uma parada de tabulacao adicional.
|
|
1100
1106
|
|
|
1101
1107
|
#### Mobile card mode
|
|
1102
|
-
`appearance.responsive.mobile.cardMode: true` materializa cada linha **não virtualizada** como um card rotulado quando o viewport entra em `appearance.responsive.breakpoints.mobile`. A tabela continua sendo a fonte semântica e todos os campos permanecem no DOM; cada valor recebe o respectivo cabeçalho como rótulo visual.
|
|
1108
|
+
`appearance.responsive.mobile.cardMode: true` materializa cada linha **não virtualizada** como um card rotulado quando a menor largura entre o viewport e o host da tabela entra em `appearance.responsive.breakpoints.mobile`. Isso inclui widgets redimensionados e painéis estreitos em desktop. Um host ainda sem medida usa o viewport como referência. A tabela continua sendo a fonte semântica e todos os campos permanecem no DOM; cada valor recebe o respectivo cabeçalho como rótulo visual. Até 480 px de área interna, rótulo e valor ficam empilhados. Essa adaptação não altera a política de `horizontalScroll` nem ativa cartões sem `cardMode: true`.
|
|
1103
1109
|
|
|
1104
1110
|
`appearance.responsive.mobile.priorityColumns` é uma lista ordenada de `field`s que aparecem primeiro no card. Campos não prioritários continuam disponíveis abaixo deles; o runtime não oculta dados silenciosamente. Tabelas virtualizadas mantêm o modo de rolagem horizontal, pois um card pode ter altura variável.
|
|
1105
1111
|
|
|
@@ -1507,3 +1513,32 @@ type DiagramEmbedNode = {
|
|
|
1507
1513
|
};
|
|
1508
1514
|
};
|
|
1509
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, 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;
|
|
@@ -1217,6 +1227,7 @@ type RowActionRuntimeOptions = {
|
|
|
1217
1227
|
};
|
|
1218
1228
|
type RowActionTriggerEvent = {
|
|
1219
1229
|
target?: EventTarget | null;
|
|
1230
|
+
currentTarget?: EventTarget | null;
|
|
1220
1231
|
stopPropagation?: () => void;
|
|
1221
1232
|
};
|
|
1222
1233
|
type RuntimeRowAction = {
|
|
@@ -1516,10 +1527,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1516
1527
|
private scheduleHorizontalOverflowRefresh;
|
|
1517
1528
|
/**
|
|
1518
1529
|
* Materializes the existing responsive contract as a labelled record card on
|
|
1519
|
-
* narrow screens. Virtual rows
|
|
1530
|
+
* narrow screens or widget containers. Virtual rows keep the scroll-table path:
|
|
1520
1531
|
* their fixed item height cannot safely represent a variable-height card.
|
|
1521
1532
|
*/
|
|
1522
1533
|
isMobileCardModeActive(): boolean;
|
|
1534
|
+
private isWithinResponsiveCardBreakpoint;
|
|
1523
1535
|
getMobileCardColumnOrder(column: ColumnDefinition): number;
|
|
1524
1536
|
getMobileCardActionsOrder(): number;
|
|
1525
1537
|
private scheduleResponsiveHorizontalScrollRefresh;
|
|
@@ -1650,6 +1662,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
1650
1662
|
private conditionalSurfaceObserver;
|
|
1651
1663
|
private conditionalSurfaceFrameId;
|
|
1652
1664
|
private readonly warnedUnsupportedFeatures;
|
|
1665
|
+
private readonly activeCollectionCreateSurfaceOpens;
|
|
1653
1666
|
private warnedStrictCspStyleMode;
|
|
1654
1667
|
private fallbackLogger?;
|
|
1655
1668
|
private fallbackLoggerEnvironment;
|
|
@@ -2050,6 +2063,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2050
2063
|
private getOpeningRowActions;
|
|
2051
2064
|
private executeDeleteAction;
|
|
2052
2065
|
private dispatchRowAction;
|
|
2066
|
+
private openDiscoveredRowView;
|
|
2053
2067
|
private groundRowActionConfigForDispatch;
|
|
2054
2068
|
private getUnavailableGroundedRowActionMessage;
|
|
2055
2069
|
private isResourceActionCatalogItem;
|
|
@@ -2062,6 +2076,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2062
2076
|
private showActionFeedbackMessage;
|
|
2063
2077
|
private emitEventWithActionFeedback;
|
|
2064
2078
|
private executeConfiguredGlobalAction;
|
|
2079
|
+
private withTableRuntimeContext;
|
|
2080
|
+
private executeSurfaceOpen;
|
|
2065
2081
|
private resolveConfiguredGlobalActionRef;
|
|
2066
2082
|
private resolveActionGlobalActionRef;
|
|
2067
2083
|
private resolveGlobalActionPayload;
|
|
@@ -2145,6 +2161,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2145
2161
|
isCustomizationAvailable(): boolean;
|
|
2146
2162
|
private isAuthoringAssistantAvailable;
|
|
2147
2163
|
openTableSettings(): void;
|
|
2164
|
+
private openTableSettingsEditor;
|
|
2148
2165
|
private applyTableConfig;
|
|
2149
2166
|
private buildTableEditorRuntimeContext;
|
|
2150
2167
|
private emitWidgetInputPatch;
|
|
@@ -2498,6 +2515,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2498
2515
|
* Verifica se uma funcionalidade está disponível
|
|
2499
2516
|
*/
|
|
2500
2517
|
isFeatureAvailable(feature: string): boolean;
|
|
2518
|
+
private filterI18nCache?;
|
|
2501
2519
|
/**
|
|
2502
2520
|
* Obtém configurações de i18n para o filtro baseado na configuração da tabela
|
|
2503
2521
|
*/
|
|
@@ -2701,6 +2719,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2701
2719
|
isRowClickSelectable(): boolean;
|
|
2702
2720
|
getRowTabIndex(row: any, index: number): number | null;
|
|
2703
2721
|
onRowFocused(row: any, index: number): void;
|
|
2722
|
+
onSingleSelectionSpace(event: Event, row: unknown): void;
|
|
2704
2723
|
onRowKeydown(event: KeyboardEvent, row: any, index: number): void;
|
|
2705
2724
|
private reconcileKeyboardFocusAfterDataChange;
|
|
2706
2725
|
private hasKeyboardRowFocus;
|
|
@@ -2709,6 +2728,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
|
|
|
2709
2728
|
masterToggle(): void;
|
|
2710
2729
|
isAllSelected(): boolean;
|
|
2711
2730
|
toggleRow(row: any): void;
|
|
2731
|
+
onSingleSelectionChanged(row: any): void;
|
|
2712
2732
|
getRowSelectionAriaLabel(row: any, index?: number): string;
|
|
2713
2733
|
getMasterSelectionAriaLabel(): string;
|
|
2714
2734
|
private selectRowFromUserInteraction;
|
|
@@ -2891,7 +2911,7 @@ interface JsonEditorEvent {
|
|
|
2891
2911
|
type: 'apply' | 'format' | 'validation';
|
|
2892
2912
|
payload: JsonValidationResult;
|
|
2893
2913
|
}
|
|
2894
|
-
declare class JsonConfigEditorComponent implements
|
|
2914
|
+
declare class JsonConfigEditorComponent implements OnChanges, OnDestroy {
|
|
2895
2915
|
private cdr;
|
|
2896
2916
|
document: TableAuthoringDocument | null;
|
|
2897
2917
|
documentChange: EventEmitter<TableAuthoringDocument>;
|
|
@@ -2904,7 +2924,8 @@ declare class JsonConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
2904
2924
|
private destroy$;
|
|
2905
2925
|
private jsonTextChanges$;
|
|
2906
2926
|
constructor(cdr: ChangeDetectorRef);
|
|
2907
|
-
|
|
2927
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2928
|
+
private matchesDocument;
|
|
2908
2929
|
ngOnDestroy(): void;
|
|
2909
2930
|
onJsonTextChange(text: string): void;
|
|
2910
2931
|
applyJsonChanges(): void;
|
|
@@ -3483,6 +3504,10 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3483
3504
|
private iconPicker;
|
|
3484
3505
|
config: TableConfig;
|
|
3485
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;
|
|
3486
3511
|
toolbarActionsChange: EventEmitter<ToolbarActionsChange>;
|
|
3487
3512
|
toolbarForm: FormGroup;
|
|
3488
3513
|
isV2: boolean;
|
|
@@ -3515,6 +3540,7 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3515
3540
|
hint?: string;
|
|
3516
3541
|
};
|
|
3517
3542
|
}): string;
|
|
3543
|
+
private formProjectionBaseline?;
|
|
3518
3544
|
ngOnInit(): void;
|
|
3519
3545
|
ngOnChanges(changes: SimpleChanges): void;
|
|
3520
3546
|
ngOnDestroy(): void;
|
|
@@ -3529,6 +3555,8 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3529
3555
|
private removeAddToolbarAction;
|
|
3530
3556
|
private syncAddFormFromActions;
|
|
3531
3557
|
private updateConfig;
|
|
3558
|
+
/** Full editor projection used only to compare changes; defaults are not authored implicitly. */
|
|
3559
|
+
private buildConfig;
|
|
3532
3560
|
getActionSelectValue(action?: EditableTableAction): string;
|
|
3533
3561
|
getActionParam(action?: EditableTableAction): string;
|
|
3534
3562
|
isRequiredGlobalActionParamMissing(action: EditableTableAction, spec: GlobalActionCatalogOption): boolean;
|
|
@@ -3601,7 +3629,7 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
|
|
|
3601
3629
|
pickRowMenuIcon(): Promise<void>;
|
|
3602
3630
|
pickRowHeaderIcon(): Promise<void>;
|
|
3603
3631
|
static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarActionsEditorComponent, never>;
|
|
3604
|
-
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>;
|
|
3605
3633
|
}
|
|
3606
3634
|
|
|
3607
3635
|
interface MessagesLocalizationChange {
|
|
@@ -3648,6 +3676,8 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3648
3676
|
private fb;
|
|
3649
3677
|
private readonly hostRef;
|
|
3650
3678
|
private readonly cdr;
|
|
3679
|
+
private readonly presentationI18n;
|
|
3680
|
+
get presentationTabLabel(): string;
|
|
3651
3681
|
metadata: FieldMetadata[];
|
|
3652
3682
|
metadataSource: 'filter-dto' | 'columns';
|
|
3653
3683
|
metadataLoading: boolean;
|
|
@@ -3656,6 +3686,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3656
3686
|
configKey?: string;
|
|
3657
3687
|
settingsChange: EventEmitter<FilterConfig>;
|
|
3658
3688
|
form: FormGroup<{
|
|
3689
|
+
presentation: FormControl<FilterConfig['presentation']>;
|
|
3659
3690
|
alwaysVisibleFields: FormControl<string[]>;
|
|
3660
3691
|
showAdvanced: FormControl<boolean>;
|
|
3661
3692
|
mode: FormControl<'filter'>;
|
|
@@ -3692,6 +3723,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3692
3723
|
canSave$: Observable<boolean>;
|
|
3693
3724
|
isDirty$: Observable<boolean>;
|
|
3694
3725
|
isValid$: Observable<boolean>;
|
|
3726
|
+
private readonly savingState;
|
|
3695
3727
|
isBusy$: Observable<boolean>;
|
|
3696
3728
|
private initialSettings;
|
|
3697
3729
|
private extraSettings;
|
|
@@ -3826,6 +3858,9 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
|
|
|
3826
3858
|
renameTagPrompt(index: number): void;
|
|
3827
3859
|
dropTags(event: CdkDragDrop<FilterTag[]>): void;
|
|
3828
3860
|
ngOnChanges(changes: SimpleChanges): void;
|
|
3861
|
+
updatePresentation(value: FilterConfig['presentation']): void;
|
|
3862
|
+
onSave(): FilterConfig | undefined | Promise<FilterConfig | undefined>;
|
|
3863
|
+
private persistDraft;
|
|
3829
3864
|
getSettingsValue(): FilterConfig;
|
|
3830
3865
|
private updateEffectiveJson;
|
|
3831
3866
|
private buildFullConfigFromForm;
|
|
@@ -4160,6 +4195,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4160
4195
|
icon: string;
|
|
4161
4196
|
}[];
|
|
4162
4197
|
activeSectionIndex: number;
|
|
4198
|
+
surfaceDraftInvalid: boolean;
|
|
4199
|
+
onSurfaceDraftValidationChange(valid: boolean): void;
|
|
4163
4200
|
private originalConfig;
|
|
4164
4201
|
editedConfig: TableConfig;
|
|
4165
4202
|
resourcePath: string;
|
|
@@ -4194,6 +4231,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4194
4231
|
schemaSnapshotMissing: boolean;
|
|
4195
4232
|
isV2Config: boolean;
|
|
4196
4233
|
canSave: boolean;
|
|
4234
|
+
private mobileBreakpointDraft;
|
|
4197
4235
|
hasErrors: boolean;
|
|
4198
4236
|
hasSuccess: boolean;
|
|
4199
4237
|
statusMessage: string;
|
|
@@ -4266,6 +4304,11 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
|
|
|
4266
4304
|
private loadFilterDtoMetas;
|
|
4267
4305
|
onIdFieldChange(val: string): void;
|
|
4268
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;
|
|
4269
4312
|
onHorizontalScrollChange(val: 'auto' | 'wrap' | 'none'): void;
|
|
4270
4313
|
onReconcileIdField(): void;
|
|
4271
4314
|
onAcceptServerHash(): void;
|
|
@@ -4329,30 +4372,31 @@ interface PraxisTableWidgetEditorValue {
|
|
|
4329
4372
|
declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1, AfterViewInit, OnDestroy {
|
|
4330
4373
|
inputs: PraxisTableWidgetEditorInputs | null;
|
|
4331
4374
|
widgetKey?: string;
|
|
4375
|
+
context: Record<string, unknown>;
|
|
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;
|
|
4332
4383
|
tableEditor?: PraxisTableConfigEditor;
|
|
4333
4384
|
readonly isDirty$: BehaviorSubject<boolean>;
|
|
4334
4385
|
readonly isValid$: BehaviorSubject<boolean>;
|
|
4335
4386
|
readonly isBusy$: BehaviorSubject<boolean>;
|
|
4336
|
-
private readonly cdr;
|
|
4337
|
-
private readonly crudService;
|
|
4338
4387
|
private readonly subscription;
|
|
4339
4388
|
ngAfterViewInit(): void;
|
|
4340
4389
|
ngOnDestroy(): void;
|
|
4341
4390
|
getSettingsValue(): PraxisTableWidgetEditorValue;
|
|
4342
4391
|
onSave(): PraxisTableWidgetEditorValue;
|
|
4343
4392
|
reset(): void;
|
|
4344
|
-
private initializeChildEditor;
|
|
4345
|
-
private hydrateColumnsFromSchemaIfNeeded;
|
|
4346
|
-
private fieldToColumn;
|
|
4347
|
-
private resolveColumnType;
|
|
4348
|
-
private humanizeFieldName;
|
|
4349
|
-
private tryInject;
|
|
4350
4393
|
private buildValue;
|
|
4351
4394
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableWidgetConfigEditor, never>;
|
|
4352
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableWidgetConfigEditor, "praxis-table-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; "widgetKey": { "alias": "widgetKey"; "required": false; }; }, {}, never, never, true, never>;
|
|
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>;
|
|
4353
4396
|
}
|
|
4354
4397
|
|
|
4355
4398
|
interface PraxisFilterWidgetEditorInputs {
|
|
4399
|
+
presentation?: FilterConfig['presentation'];
|
|
4356
4400
|
resourcePath?: string | null;
|
|
4357
4401
|
fieldMetadata?: FieldMetadata[] | null;
|
|
4358
4402
|
filterId?: string;
|
|
@@ -4393,8 +4437,22 @@ interface PraxisFilterWidgetEditorInputs {
|
|
|
4393
4437
|
interface PraxisFilterWidgetEditorValue {
|
|
4394
4438
|
inputs: PraxisFilterWidgetEditorInputs;
|
|
4395
4439
|
}
|
|
4396
|
-
declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1, OnDestroy {
|
|
4440
|
+
declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1, AfterViewInit, OnDestroy {
|
|
4397
4441
|
widgetKey?: string;
|
|
4442
|
+
resourceEditor?: ResourceQuickConnectComponent;
|
|
4443
|
+
private readonly crud;
|
|
4444
|
+
private readonly cdr;
|
|
4445
|
+
private readonly i18n;
|
|
4446
|
+
resourceError: boolean;
|
|
4447
|
+
private loadedResourcePath?;
|
|
4448
|
+
private resourceDirty;
|
|
4449
|
+
private settingsDirty;
|
|
4450
|
+
private loadingResource;
|
|
4451
|
+
private fieldRequest;
|
|
4452
|
+
tx(key: string): string;
|
|
4453
|
+
ngAfterViewInit(): void;
|
|
4454
|
+
loadResourceFields(markDirty?: boolean): Promise<void>;
|
|
4455
|
+
private optionalInject;
|
|
4398
4456
|
set inputs(value: PraxisFilterWidgetEditorInputs | null);
|
|
4399
4457
|
get inputs(): PraxisFilterWidgetEditorInputs | null;
|
|
4400
4458
|
set filterSettings(component: FilterSettingsComponent | undefined);
|