@praxisui/table 9.0.0-beta.25 → 9.0.0-beta.27
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/ai/component-registry.json +90 -26
- package/docs/release-notes-p1-hardening.md +1 -3
- package/fesm2022/{praxisui-table-praxisui-table-DehRrVBm.mjs → praxisui-table-praxisui-table-mNsK6DE9.mjs} +20 -27
- package/fesm2022/{praxisui-table-table-ai.adapter-gadZyxCR.mjs → praxisui-table-table-ai.adapter-DN9G-Hms.mjs} +36 -11
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/types/praxisui-table.d.ts +0 -2
|
@@ -11,9 +11,7 @@ Nota historica: esta baseline e anterior a canonicalizacao de Json Logic. As ref
|
|
|
11
11
|
- Helpers anteriores mantidos (`jsonGet/jsonEq/jsonIn`, `isBlank`, `today/now`, `len*`, etc.).
|
|
12
12
|
- Normalização legada preservada para expressões antigas.
|
|
13
13
|
- Limitação documentada: parser atual não suporta comparação direta de retorno de função (`fn(...) == valor`).
|
|
14
|
-
- `toolbar.actions.visibleWhen`
|
|
15
|
-
- `prod/qa`: fail-closed.
|
|
16
|
-
- `dev/hml`: fail-open para diagnostico.
|
|
14
|
+
- `toolbar.actions.visibleWhen` hoje falha fechado em todos os ambientes quando a condicao nao e Json Logic valida. A baseline historica de `2026-02-26` registrava comportamento diagnostico legado, mas esse comportamento foi removido na canonicalizacao.
|
|
17
15
|
- `shortcutScope` canonico com validacao (`toolbar|global`) e fallback seguro.
|
|
18
16
|
- Guards schema-only para:
|
|
19
17
|
- `behavior.sorting.multiSort`
|
|
@@ -992,7 +992,7 @@ class PraxisTableToolbar {
|
|
|
992
992
|
return policy === 'fail-open';
|
|
993
993
|
}
|
|
994
994
|
resolveVisibleWhenFallbackPolicy() {
|
|
995
|
-
return
|
|
995
|
+
return 'fail-closed';
|
|
996
996
|
}
|
|
997
997
|
resolveRuntimeEnvironment() {
|
|
998
998
|
const configAny = this.config;
|
|
@@ -1015,14 +1015,6 @@ class PraxisTableToolbar {
|
|
|
1015
1015
|
}
|
|
1016
1016
|
return 'prod';
|
|
1017
1017
|
}
|
|
1018
|
-
isDiagnosticsEnvironment() {
|
|
1019
|
-
const env = this.resolveRuntimeEnvironment();
|
|
1020
|
-
return (env === 'dev'
|
|
1021
|
-
|| env === 'development'
|
|
1022
|
-
|| env === 'hml'
|
|
1023
|
-
|| env === 'homolog'
|
|
1024
|
-
|| env === 'homologacao');
|
|
1025
|
-
}
|
|
1026
1018
|
buildEvaluationContext() {
|
|
1027
1019
|
const base = this.evaluationContext && typeof this.evaluationContext === 'object'
|
|
1028
1020
|
? this.evaluationContext
|
|
@@ -29993,6 +29985,7 @@ class TableRulesEditorComponent {
|
|
|
29993
29985
|
normalizePersistedRules(rules) {
|
|
29994
29986
|
return (Array.isArray(rules) ? rules : [])
|
|
29995
29987
|
.filter((rule) => !!rule && typeof rule === 'object')
|
|
29988
|
+
.filter((rule) => this.isManualExpressionCandidate(rule.condition))
|
|
29996
29989
|
.map((rule) => {
|
|
29997
29990
|
const effects = this.normalizeRuleEffects(rule.effects).map((effect) => ({ ...effect, scope: this.scope }));
|
|
29998
29991
|
return {
|
|
@@ -41156,7 +41149,7 @@ class PraxisTable {
|
|
|
41156
41149
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
41157
41150
|
return;
|
|
41158
41151
|
this.aiAdapterLoadStarted = true;
|
|
41159
|
-
import('./praxisui-table-table-ai.adapter-
|
|
41152
|
+
import('./praxisui-table-table-ai.adapter-DN9G-Hms.mjs')
|
|
41160
41153
|
.then(({ TableAiAdapter }) => {
|
|
41161
41154
|
if (!this.isAiAssistantEnabled()) {
|
|
41162
41155
|
this.aiAssistantOpenAfterAdapterLoad = false;
|
|
@@ -43714,9 +43707,12 @@ class PraxisTable {
|
|
|
43714
43707
|
}
|
|
43715
43708
|
isExpansionDetailEmbedActionVisible(action, context) {
|
|
43716
43709
|
const visibleWhen = action?.visibleWhen;
|
|
43717
|
-
if (
|
|
43710
|
+
if (visibleWhen === null || visibleWhen === undefined) {
|
|
43718
43711
|
return true;
|
|
43719
43712
|
}
|
|
43713
|
+
if (!this.hasConditionalExpression(visibleWhen)) {
|
|
43714
|
+
return false;
|
|
43715
|
+
}
|
|
43720
43716
|
return this.evaluateExpansionDetailRichListItemCondition(visibleWhen, context, this.resolveRowVisibleWhenFailurePolicy() === 'fail-open');
|
|
43721
43717
|
}
|
|
43722
43718
|
getExpansionDetailEmbedLabel(node) {
|
|
@@ -43878,9 +43874,12 @@ class PraxisTable {
|
|
|
43878
43874
|
}
|
|
43879
43875
|
isExpansionDetailActionBarActionVisible(action, context) {
|
|
43880
43876
|
const visibleWhen = action?.visibleWhen;
|
|
43881
|
-
if (
|
|
43877
|
+
if (visibleWhen === null || visibleWhen === undefined) {
|
|
43882
43878
|
return true;
|
|
43883
43879
|
}
|
|
43880
|
+
if (!this.hasConditionalExpression(visibleWhen)) {
|
|
43881
|
+
return false;
|
|
43882
|
+
}
|
|
43884
43883
|
return this.evaluateExpansionDetailRichListItemCondition(visibleWhen, context, this.resolveRowVisibleWhenFailurePolicy() === 'fail-open');
|
|
43885
43884
|
}
|
|
43886
43885
|
getExpansionDetailTabButtonRichContentNodes(tab) {
|
|
@@ -44040,9 +44039,12 @@ class PraxisTable {
|
|
|
44040
44039
|
}
|
|
44041
44040
|
isExpansionDetailRichListItemActionVisible(action, context) {
|
|
44042
44041
|
const visibleWhen = action?.visibleWhen;
|
|
44043
|
-
if (
|
|
44042
|
+
if (visibleWhen === null || visibleWhen === undefined) {
|
|
44044
44043
|
return true;
|
|
44045
44044
|
}
|
|
44045
|
+
if (!this.hasConditionalExpression(visibleWhen)) {
|
|
44046
|
+
return false;
|
|
44047
|
+
}
|
|
44046
44048
|
return this.evaluateExpansionDetailRichListItemCondition(visibleWhen, context, this.resolveRowVisibleWhenFailurePolicy() === 'fail-open');
|
|
44047
44049
|
}
|
|
44048
44050
|
evaluateExpansionDetailRichListItemCondition(expression, context, fallbackResult) {
|
|
@@ -50657,11 +50659,10 @@ class PraxisTable {
|
|
|
50657
50659
|
}
|
|
50658
50660
|
}
|
|
50659
50661
|
evaluateActionVisibilityCondition(expression, rowData, action) {
|
|
50660
|
-
const failurePolicy = this.resolveRowVisibleWhenFailurePolicy();
|
|
50661
50662
|
return this.evaluateActionCondition(expression, rowData, {
|
|
50662
50663
|
source: 'visibleWhen',
|
|
50663
|
-
failurePolicy,
|
|
50664
|
-
fallbackResult:
|
|
50664
|
+
failurePolicy: 'fail-closed',
|
|
50665
|
+
fallbackResult: false,
|
|
50665
50666
|
actionId: getActionId(action),
|
|
50666
50667
|
});
|
|
50667
50668
|
}
|
|
@@ -50692,7 +50693,7 @@ class PraxisTable {
|
|
|
50692
50693
|
}
|
|
50693
50694
|
}
|
|
50694
50695
|
resolveRowVisibleWhenFailurePolicy() {
|
|
50695
|
-
return
|
|
50696
|
+
return 'fail-closed';
|
|
50696
50697
|
}
|
|
50697
50698
|
isJsonLogicExpression(value) {
|
|
50698
50699
|
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
@@ -50727,14 +50728,6 @@ class PraxisTable {
|
|
|
50727
50728
|
}
|
|
50728
50729
|
return 'prod';
|
|
50729
50730
|
}
|
|
50730
|
-
isDiagnosticsRuntimeEnvironment() {
|
|
50731
|
-
const env = this.resolveRuntimeEnvironment();
|
|
50732
|
-
return (env === 'dev'
|
|
50733
|
-
|| env === 'development'
|
|
50734
|
-
|| env === 'hml'
|
|
50735
|
-
|| env === 'homolog'
|
|
50736
|
-
|| env === 'homologacao');
|
|
50737
|
-
}
|
|
50738
50731
|
logActionConditionFallback(options, expression, reason, details) {
|
|
50739
50732
|
this.warnOnceLog('[PraxisTable] Action condition fallback applied', {
|
|
50740
50733
|
source: options.source,
|
|
@@ -60840,7 +60833,7 @@ const TABLE_AI_CAPABILITIES = {
|
|
|
60840
60833
|
{ path: 'toolbar.filters.enabled', category: 'toolbar', valueKind: 'boolean', description: 'Exibe filtros rápidos na toolbar.', dependsOn: 'behavior.filtering.enabled' },
|
|
60841
60834
|
{ path: 'toolbar.settingsMenu.enabled', category: 'toolbar', valueKind: 'boolean', description: 'Mostra menu de configurações (densidade, colunas etc.).', intentExamples: ['mostrar menu de configurações'] },
|
|
60842
60835
|
{ path: 'toolbar.actions[]', category: 'toolbar', valueKind: 'array', description: 'Ações exibidas na barra de ferramentas da tabela.', dependsOn: 'toolbar.visible', intentExamples: ['adicionar botão na toolbar', 'criar ação de exportação na barra de ações'] },
|
|
60843
|
-
{ path: 'toolbar.actions[].visibleWhen', category: 'toolbar', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao da toolbar.', dependsOn: 'toolbar.visible', safetyNotes: 'Invalid Json Logic
|
|
60836
|
+
{ path: 'toolbar.actions[].visibleWhen', category: 'toolbar', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao da toolbar.', dependsOn: 'toolbar.visible', safetyNotes: 'Invalid Json Logic falha fechado; a acao nao deve ser exibida em nenhum ambiente.' },
|
|
60844
60837
|
// Actions
|
|
60845
60838
|
{ path: 'actions.row.enabled', category: 'actions', valueKind: 'boolean', description: 'Habilita coluna de ações por linha.', critical: true, intentExamples: ['ativar ações por linha', 'desligar coluna de ações'], safetyNotes: 'Ao desabilitar, verifique se não há ações críticas dependentes.' },
|
|
60846
60839
|
{ path: 'actions.row.display', category: 'actions', valueKind: 'enum', allowedValues: ENUMS.rowActionDisplay, description: 'Modo de exibição das ações (menu/buttons/icons).', dependsOn: 'actions.row.enabled' },
|
|
@@ -60850,7 +60843,7 @@ const TABLE_AI_CAPABILITIES = {
|
|
|
60850
60843
|
{ path: 'actions.row.actions[].recordSurface', category: 'actions', valueKind: 'object', description: 'ResourceSurfaceCatalogItem canonico preservado para uma acao de linha abrir a superficie relacionada ao registro clicado sem sobrescrever a identidade da surface.', dependsOn: 'actions.row.actions[]', intentExamples: ['botão de linha para abrir folha de pagamento', 'ação por linha para abrir timeline relacionada'] },
|
|
60851
60844
|
{ path: 'actions.row.actions[].globalAction.[actionId]', category: 'actions', valueKind: 'string', description: 'Identificador canônico de global action para a ação por linha (ex.: "navigation.openRoute", "surface.open", "toast.success").', dependsOn: 'actions.row.enabled', intentExamples: ['navegar para detalhe interno ao clicar na linha', 'abrir drawer com surface.open', 'mostrar toast de sucesso'] },
|
|
60852
60845
|
{ path: 'actions.row.actions[].globalAction.payload', category: 'actions', valueKind: 'object', description: 'Payload estruturado da global action por linha. Para `navigation.openRoute`, templates como `${row.id}` são resolvidos antes da navegação; para ações como `surface.open`, `payload.*` continua sendo o envelope canônico do evento consumido pelo destino.', dependsOn: 'actions.row.actions[].globalAction.[actionId]', intentExamples: ['abrir detalhe com query.id da linha', 'passar state.selectedId usando a linha atual'], example: '{ "path": "/clientes/detalhe", "query": { "id": "${row.id}" }, "state": { "selectedId": "${row.id}" } }' },
|
|
60853
|
-
{ path: 'actions.row.actions[].visibleWhen', category: 'actions', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao por linha.', dependsOn: 'actions.row.enabled', safetyNotes: 'Invalid Json Logic
|
|
60846
|
+
{ path: 'actions.row.actions[].visibleWhen', category: 'actions', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao por linha.', dependsOn: 'actions.row.enabled', safetyNotes: 'Invalid Json Logic falha fechado; a acao de linha nao deve ser exibida em nenhum ambiente.' },
|
|
60854
60847
|
{ path: 'actions.row.actions[].disabledWhen', category: 'actions', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para desabilitar a acao por linha.', dependsOn: 'actions.row.enabled', safetyNotes: 'Invalid Json Logic falha como nao desabilitado, preservando logs estruturados.' },
|
|
60855
60848
|
{ path: 'actions.row.actions[].effects', category: 'actions', valueKind: 'array', description: 'Array canonico de efeitos runtime da acao por linha, alinhado com PraxisRuntimeGlobalActionEffect.', dependsOn: 'actions.row.enabled' },
|
|
60856
60849
|
{ path: 'actions.row.actions[].effects[].kind', category: 'actions', valueKind: 'enum', allowedValues: ['global-action'], description: 'Tipo de efeito runtime da acao por linha. Neste corte, apenas global-action e suportado.', dependsOn: 'actions.row.actions[].effects' },
|
|
@@ -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 { G as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, W as coerceTableComponentEditPlans, Y as compileTableComponentEditPlans, I as TASK_PRESETS, a1 as getTableComponentEditPlanCapabilities, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { G as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, W as coerceTableComponentEditPlans, Y as compileTableComponentEditPlans, I as TASK_PRESETS, a1 as getTableComponentEditPlanCapabilities, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-mNsK6DE9.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1622,7 +1622,7 @@ const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
|
1622
1622
|
{
|
|
1623
1623
|
name: 'condition',
|
|
1624
1624
|
type: 'STRING',
|
|
1625
|
-
description: '
|
|
1625
|
+
description: 'Objeto JSON Logic canonico serializado, nunca DSL textual (ex: { ">": [{ "var": "recompensa" }, 500000] })'
|
|
1626
1626
|
},
|
|
1627
1627
|
{
|
|
1628
1628
|
name: 'renderer',
|
|
@@ -3726,7 +3726,13 @@ Columns Analysis:
|
|
|
3726
3726
|
const isRootArray = currentPath && (allowedPaths.has(currentPath + '[]') || Array.from(allowedPaths).some(p => p.startsWith(currentPath + '[].')));
|
|
3727
3727
|
if (!isRootArray)
|
|
3728
3728
|
return obj; // É um valor array (ex: tags), retorna direto
|
|
3729
|
-
|
|
3729
|
+
const items = obj.map(item => recurse(item, currentPath + '[]'));
|
|
3730
|
+
if (currentPath === 'columns[].conditionalRenderers'
|
|
3731
|
+
|| currentPath === 'columns[].conditionalStyles'
|
|
3732
|
+
|| currentPath === 'rowConditionalStyles') {
|
|
3733
|
+
return items.filter((item) => this.hasCanonicalConditionalRule(item));
|
|
3734
|
+
}
|
|
3735
|
+
return items;
|
|
3730
3736
|
}
|
|
3731
3737
|
const cleanObj = {};
|
|
3732
3738
|
for (const key of Object.keys(obj)) {
|
|
@@ -3738,14 +3744,6 @@ Columns Analysis:
|
|
|
3738
3744
|
const exactMatch = allowedPaths.has(newPath) || isIdentityField;
|
|
3739
3745
|
const prefixMatch = Array.from(allowedPaths).some(p => p.startsWith(newPath + '.') || p.startsWith(newPath + '['));
|
|
3740
3746
|
if (exactMatch || prefixMatch) {
|
|
3741
|
-
if (exactMatch
|
|
3742
|
-
&& (passthroughObjectPaths.has(newPath) || jsonLogicObjectPaths.has(newPath))
|
|
3743
|
-
&& typeof obj[key] === 'object'
|
|
3744
|
-
&& obj[key] !== null
|
|
3745
|
-
&& !Array.isArray(obj[key])) {
|
|
3746
|
-
cleanObj[key] = obj[key];
|
|
3747
|
-
continue;
|
|
3748
|
-
}
|
|
3749
3747
|
if (newPath === 'columns[].computed.expression') {
|
|
3750
3748
|
if (!obj[key] || typeof obj[key] !== 'object' || Array.isArray(obj[key])) {
|
|
3751
3749
|
warnings.push(`Computed expression inválida: ${newPath} (deve ser Json Logic)`);
|
|
@@ -3758,6 +3756,22 @@ Columns Analysis:
|
|
|
3758
3756
|
cleanObj[key] = obj[key];
|
|
3759
3757
|
continue;
|
|
3760
3758
|
}
|
|
3759
|
+
if (exactMatch && jsonLogicObjectPaths.has(newPath)) {
|
|
3760
|
+
if (!this.isCanonicalJsonLogicObject(obj[key])) {
|
|
3761
|
+
warnings.push(`Condicao Json Logic invalida: ${newPath} (deve ser objeto Json Logic)`);
|
|
3762
|
+
continue;
|
|
3763
|
+
}
|
|
3764
|
+
cleanObj[key] = obj[key];
|
|
3765
|
+
continue;
|
|
3766
|
+
}
|
|
3767
|
+
if (exactMatch
|
|
3768
|
+
&& passthroughObjectPaths.has(newPath)
|
|
3769
|
+
&& typeof obj[key] === 'object'
|
|
3770
|
+
&& obj[key] !== null
|
|
3771
|
+
&& !Array.isArray(obj[key])) {
|
|
3772
|
+
cleanObj[key] = obj[key];
|
|
3773
|
+
continue;
|
|
3774
|
+
}
|
|
3761
3775
|
const val = recurse(obj[key], newPath);
|
|
3762
3776
|
// Se for objeto vazio após limpeza, não inclui (salvo se for intenção explicita de limpar config, mas patch geralmente é aditivo)
|
|
3763
3777
|
if (typeof val === 'object' && val !== null && !Array.isArray(val) && Object.keys(val).length === 0) {
|
|
@@ -3776,6 +3790,17 @@ Columns Analysis:
|
|
|
3776
3790
|
const sanitized = recurse(patch, '');
|
|
3777
3791
|
return { sanitized, warnings };
|
|
3778
3792
|
}
|
|
3793
|
+
isCanonicalJsonLogicObject(value) {
|
|
3794
|
+
return !!value
|
|
3795
|
+
&& typeof value === 'object'
|
|
3796
|
+
&& !Array.isArray(value)
|
|
3797
|
+
&& Object.keys(value).length === 1;
|
|
3798
|
+
}
|
|
3799
|
+
hasCanonicalConditionalRule(value) {
|
|
3800
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
3801
|
+
return false;
|
|
3802
|
+
return this.isCanonicalJsonLogicObject(value['condition']);
|
|
3803
|
+
}
|
|
3779
3804
|
// -------- Internal helpers --------
|
|
3780
3805
|
/**
|
|
3781
3806
|
* Specialized merge for TableConfig that handles Array reconciliation safely.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, n as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, o as PraxisFilter, p as PraxisFilterWidgetConfigEditor, q as PraxisTable, r as PraxisTableConfigEditor, s as PraxisTableInlineAuthoringEditorComponent, t as PraxisTableToolbar, u as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, v as TABLE_COMPONENT_AI_CAPABILITIES, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_KIND, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, I as TASK_PRESETS, K as TableDefaultsProvider, L as TableRulesEditorComponent, O as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, Q as VisualFormulaBuilderComponent, R as buildTableApplyPlan, U as coerceTableComponentEditPlan, W as coerceTableComponentEditPlans, X as compileTableComponentEditPlan, Y as compileTableComponentEditPlans, Z as createTableAuthoringDocument, _ as getActionId, $ as getEnum, a0 as getTableCapabilities, a1 as getTableComponentEditPlanCapabilities, a2 as isTableRendererSupportedByRichContentP0, a3 as mapTableRendererToRichContentP0, a4 as normalizeTableAuthoringDocument, a5 as parseLegacyOrTableDocument, a6 as providePraxisFilterMetadata, a7 as providePraxisTableMetadata, a8 as providePraxisTableToolbarAppearance, a9 as serializeTableAuthoringDocument, aa as toCanonicalTableConfig, ab as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, n as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, o as PraxisFilter, p as PraxisFilterWidgetConfigEditor, q as PraxisTable, r as PraxisTableConfigEditor, s as PraxisTableInlineAuthoringEditorComponent, t as PraxisTableToolbar, u as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, v as TABLE_COMPONENT_AI_CAPABILITIES, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_KIND, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, I as TASK_PRESETS, K as TableDefaultsProvider, L as TableRulesEditorComponent, O as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, Q as VisualFormulaBuilderComponent, R as buildTableApplyPlan, U as coerceTableComponentEditPlan, W as coerceTableComponentEditPlans, X as compileTableComponentEditPlan, Y as compileTableComponentEditPlans, Z as createTableAuthoringDocument, _ as getActionId, $ as getEnum, a0 as getTableCapabilities, a1 as getTableComponentEditPlanCapabilities, a2 as isTableRendererSupportedByRichContentP0, a3 as mapTableRendererToRichContentP0, a4 as normalizeTableAuthoringDocument, a5 as parseLegacyOrTableDocument, a6 as providePraxisFilterMetadata, a7 as providePraxisTableMetadata, a8 as providePraxisTableToolbarAppearance, a9 as serializeTableAuthoringDocument, aa as toCanonicalTableConfig, ab as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-mNsK6DE9.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.27",
|
|
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.0-beta.
|
|
10
|
-
"@praxisui/core": "^9.0.0-beta.
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.0-beta.
|
|
12
|
-
"@praxisui/dynamic-form": "^9.0.0-beta.
|
|
13
|
-
"@praxisui/metadata-editor": "^9.0.0-beta.
|
|
14
|
-
"@praxisui/rich-content": "^9.0.0-beta.
|
|
15
|
-
"@praxisui/settings-panel": "^9.0.0-beta.
|
|
16
|
-
"@praxisui/table-rule-builder": "^9.0.0-beta.
|
|
9
|
+
"@praxisui/ai": "^9.0.0-beta.27",
|
|
10
|
+
"@praxisui/core": "^9.0.0-beta.27",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.0-beta.27",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.0-beta.27",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.0-beta.27",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.0-beta.27",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.0-beta.27",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.0-beta.27",
|
|
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.0-beta.
|
|
21
|
+
"@praxisui/dialog": "^9.0.0-beta.27",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -142,7 +142,6 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
142
142
|
private resolveVisibleWhenFallback;
|
|
143
143
|
private resolveVisibleWhenFallbackPolicy;
|
|
144
144
|
private resolveRuntimeEnvironment;
|
|
145
|
-
private isDiagnosticsEnvironment;
|
|
146
145
|
private buildEvaluationContext;
|
|
147
146
|
private warnVisibleWhenFallback;
|
|
148
147
|
private collectShortcutBindings;
|
|
@@ -1936,7 +1935,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1936
1935
|
private isJsonLogicExpression;
|
|
1937
1936
|
private hasConditionalExpression;
|
|
1938
1937
|
private resolveRuntimeEnvironment;
|
|
1939
|
-
private isDiagnosticsRuntimeEnvironment;
|
|
1940
1938
|
private logActionConditionFallback;
|
|
1941
1939
|
getRowClasses(rowData: any): string[] | undefined;
|
|
1942
1940
|
getRowNgStyle(rowData: any): Record<string, string> | undefined;
|