@praxisui/table 9.0.0-beta.13 → 9.0.0-beta.14
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 +129 -9
- package/fesm2022/{praxisui-table-praxisui-table-Do2Vmvfc.mjs → praxisui-table-praxisui-table-PgzZWx25.mjs} +80 -12
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-DL9l0XF7.mjs → praxisui-table-table-agentic-authoring-turn-flow-By_m3-Sf.mjs} +218 -0
- package/fesm2022/{praxisui-table-table-ai.adapter-CgQqX1EZ.mjs → praxisui-table-table-ai.adapter-DoQzkktM.mjs} +4 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +13 -1
- package/types/praxisui-table.d.ts +7 -0
|
@@ -2403,6 +2403,7 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
2403
2403
|
? []
|
|
2404
2404
|
: this.toQuickReplies(response, request),
|
|
2405
2405
|
canApply: false,
|
|
2406
|
+
diagnostics: response.warnings?.length ? { warnings: response.warnings } : undefined,
|
|
2406
2407
|
};
|
|
2407
2408
|
}
|
|
2408
2409
|
if (response.type === 'error') {
|
|
@@ -2466,6 +2467,11 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
2466
2467
|
return this.normalizeLabel(response.code ?? '') === 'turn in progress';
|
|
2467
2468
|
}
|
|
2468
2469
|
compileAdapterResponse(response, request) {
|
|
2470
|
+
response = this.normalizeConsultativeSourcePlaceholderResponse(response, request);
|
|
2471
|
+
const consultativePresentationOptions = this.consultativePresentationOptionsBoundary(response, request);
|
|
2472
|
+
if (consultativePresentationOptions) {
|
|
2473
|
+
return consultativePresentationOptions;
|
|
2474
|
+
}
|
|
2469
2475
|
response = this.normalizeCategoricalRendererPalette(response, request);
|
|
2470
2476
|
const incompatibleBooleanStatusPresentation = this.incompatibleBooleanStatusPresentationBoundary(response, request);
|
|
2471
2477
|
if (incompatibleBooleanStatusPresentation) {
|
|
@@ -2764,6 +2770,43 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
2764
2770
|
return openOnlySurfaceRuntimeOperation;
|
|
2765
2771
|
return this.normalizeGovernedCategoricalSelectionExecutableResponse(compiledResponse, request);
|
|
2766
2772
|
}
|
|
2773
|
+
consultativePresentationOptionsBoundary(response, request) {
|
|
2774
|
+
if (!request)
|
|
2775
|
+
return null;
|
|
2776
|
+
if (this.requestIsCanonicalRendererSelection(request))
|
|
2777
|
+
return null;
|
|
2778
|
+
if (this.requestHasGovernedCategoricalSelection(request))
|
|
2779
|
+
return null;
|
|
2780
|
+
if (this.responseCarriesClarificationChoices(response))
|
|
2781
|
+
return null;
|
|
2782
|
+
if ((response.options ?? []).length || (response.optionPayloads ?? []).length)
|
|
2783
|
+
return null;
|
|
2784
|
+
const normalizedCurrentPrompt = this.normalizeLabel(request.prompt ?? '');
|
|
2785
|
+
const normalizedConversationPrompt = this.normalizeLabel(this.componentPresentationPromptForTurn(request));
|
|
2786
|
+
if (!this.promptRequestsPresentationOptions(normalizedConversationPrompt))
|
|
2787
|
+
return null;
|
|
2788
|
+
if (this.promptRequestsExplicitMaterialization(normalizedCurrentPrompt)
|
|
2789
|
+
|| this.promptRequestsExplicitMaterialization(normalizedConversationPrompt)) {
|
|
2790
|
+
return null;
|
|
2791
|
+
}
|
|
2792
|
+
const hasExecutableEnvelope = this.responseMayContainExecutableEnvelope(response)
|
|
2793
|
+
|| this.componentEditOperations(response.componentEditPlan).length > 0
|
|
2794
|
+
|| !!this.toRecord(response.patch);
|
|
2795
|
+
if (!hasExecutableEnvelope && response.type !== 'info' && response.type !== 'clarification') {
|
|
2796
|
+
return null;
|
|
2797
|
+
}
|
|
2798
|
+
return {
|
|
2799
|
+
...response,
|
|
2800
|
+
type: response.type === 'clarification' ? 'clarification' : 'info',
|
|
2801
|
+
componentEditPlan: undefined,
|
|
2802
|
+
patch: undefined,
|
|
2803
|
+
warnings: [
|
|
2804
|
+
...(response.warnings ?? []),
|
|
2805
|
+
'consultative-presentation-options-kept-non-executable',
|
|
2806
|
+
'A residual continuity guard preserved a follow-up question about table presentation/formatting options as consultative because no explicit apply/change request was present; semantic intent still comes from the LLM-authored turn context.',
|
|
2807
|
+
],
|
|
2808
|
+
};
|
|
2809
|
+
}
|
|
2767
2810
|
visualPresentationChoiceClarificationBoundary(response, request) {
|
|
2768
2811
|
const carriesVisualPayload = (response.optionPayloads ?? [])
|
|
2769
2812
|
.some((payload) => this.isVisualPresentationClarificationPayload(payload));
|
|
@@ -2848,6 +2891,32 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
2848
2891
|
'visual',
|
|
2849
2892
|
].some((token) => this.normalizedTextContainsApproxPhrase(normalized, token));
|
|
2850
2893
|
}
|
|
2894
|
+
promptRequestsExplicitMaterialization(normalizedPrompt) {
|
|
2895
|
+
if (!normalizedPrompt)
|
|
2896
|
+
return false;
|
|
2897
|
+
return [
|
|
2898
|
+
'aplica',
|
|
2899
|
+
'aplicar',
|
|
2900
|
+
'aplique',
|
|
2901
|
+
'altera',
|
|
2902
|
+
'alterar',
|
|
2903
|
+
'altere',
|
|
2904
|
+
'configura',
|
|
2905
|
+
'configurar',
|
|
2906
|
+
'configure',
|
|
2907
|
+
'cria',
|
|
2908
|
+
'criar',
|
|
2909
|
+
'crie',
|
|
2910
|
+
'muda',
|
|
2911
|
+
'mudar',
|
|
2912
|
+
'mude',
|
|
2913
|
+
'mostra como',
|
|
2914
|
+
'mostre como',
|
|
2915
|
+
'transforma',
|
|
2916
|
+
'transformar',
|
|
2917
|
+
'transforme',
|
|
2918
|
+
].some((token) => this.normalizedTextContainsApproxPhrase(normalizedPrompt, token));
|
|
2919
|
+
}
|
|
2851
2920
|
normalizeCategoricalRendererPalette(response, request) {
|
|
2852
2921
|
const plan = this.toRecord(response.componentEditPlan);
|
|
2853
2922
|
const operations = this.componentEditOperations(plan);
|
|
@@ -9539,6 +9608,7 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
9539
9608
|
}
|
|
9540
9609
|
withCapabilitySystemMessages(messages, contextHints, prompt = '') {
|
|
9541
9610
|
const policies = [
|
|
9611
|
+
this.buildConsultativeContextSystemPolicy(contextHints),
|
|
9542
9612
|
this.buildRecommendedCapabilitiesSystemPolicy(contextHints),
|
|
9543
9613
|
this.buildSelectedRecordsAnalysisSystemPolicy(contextHints),
|
|
9544
9614
|
this.buildComponentPresentationAuthoringSystemPolicy(contextHints, prompt),
|
|
@@ -9548,6 +9618,152 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
9548
9618
|
].filter((message) => !!message);
|
|
9549
9619
|
return policies.length ? [...policies, ...messages] : messages;
|
|
9550
9620
|
}
|
|
9621
|
+
buildConsultativeContextSystemPolicy(contextHints) {
|
|
9622
|
+
const facts = this.tableConsultativeContextFacts(contextHints);
|
|
9623
|
+
if (!facts.length)
|
|
9624
|
+
return null;
|
|
9625
|
+
return {
|
|
9626
|
+
role: 'system',
|
|
9627
|
+
content: [
|
|
9628
|
+
'Praxis table consultative context policy:',
|
|
9629
|
+
'- The facts below are governed runtime/context evidence for read-only questions about the current table.',
|
|
9630
|
+
'- When answering consultative questions, use the concrete fact value. Never answer with placeholders such as "fonte confirmada" or "source confirmed" when a value is declared.',
|
|
9631
|
+
'- Do not emit visual presentation options, componentEditPlan, tableRuntimeOperations, or quick replies for a purely factual answer unless the user explicitly asks to change, apply, format, filter, open, or export something.',
|
|
9632
|
+
'- Endpoint paths and resourcePath values are technical details: include them only when the user asks for the data source, origin, endpoint, resource, URL, path, or resourcePath.',
|
|
9633
|
+
'Declared consultative facts:',
|
|
9634
|
+
...facts,
|
|
9635
|
+
].join('\n'),
|
|
9636
|
+
};
|
|
9637
|
+
}
|
|
9638
|
+
tableConsultativeContextFacts(contextHints) {
|
|
9639
|
+
const facts = [];
|
|
9640
|
+
const resourcePath = this.extractResourcePath(contextHints)
|
|
9641
|
+
?? this.extractResourcePath(this.optionalJsonObject(this.adapter.getRuntimeState?.()))
|
|
9642
|
+
?? this.extractResourcePath(this.optionalJsonObject(this.adapter.getAuthoringContext?.()));
|
|
9643
|
+
if (resourcePath) {
|
|
9644
|
+
facts.push(`- resourcePath: ${resourcePath}`);
|
|
9645
|
+
}
|
|
9646
|
+
const dataProfile = this.optionalJsonObject(this.adapter.getDataProfile?.());
|
|
9647
|
+
const rowCount = this.numberValue(dataProfile?.['rowCount'] ?? dataProfile?.['totalRows'] ?? dataProfile?.['totalElements']);
|
|
9648
|
+
if (rowCount != null) {
|
|
9649
|
+
facts.push(`- dataProfile.rowCount: ${rowCount}`);
|
|
9650
|
+
}
|
|
9651
|
+
const runtimeState = this.optionalJsonObject(this.adapter.getRuntimeState?.());
|
|
9652
|
+
const pageSize = this.numberValue(runtimeState?.['pageSize']);
|
|
9653
|
+
const pageIndex = this.numberValue(runtimeState?.['pageIndex'] ?? runtimeState?.['page']);
|
|
9654
|
+
if (pageSize != null) {
|
|
9655
|
+
facts.push(`- runtimeState.pageSize: ${pageSize}`);
|
|
9656
|
+
}
|
|
9657
|
+
if (pageIndex != null) {
|
|
9658
|
+
facts.push(`- runtimeState.pageIndex: ${pageIndex}`);
|
|
9659
|
+
}
|
|
9660
|
+
const consultativeKinds = this.tableConsultativeQuestionKinds(contextHints);
|
|
9661
|
+
if (consultativeKinds.length) {
|
|
9662
|
+
facts.push(`- consultativeContext.answerableQuestionKinds: ${consultativeKinds.join(', ')}`);
|
|
9663
|
+
}
|
|
9664
|
+
const columnFacts = this.tableConsultativeColumnFacts();
|
|
9665
|
+
if (columnFacts.length) {
|
|
9666
|
+
facts.push('- declaredColumns:');
|
|
9667
|
+
facts.push(...columnFacts);
|
|
9668
|
+
}
|
|
9669
|
+
return facts;
|
|
9670
|
+
}
|
|
9671
|
+
tableConsultativeQuestionKinds(contextHints) {
|
|
9672
|
+
const consultativeContext = this.toRecord(this.toRecord(contextHints?.['authoringContract'])?.['consultativeContext']);
|
|
9673
|
+
const kinds = consultativeContext?.['answerableQuestionKinds'];
|
|
9674
|
+
if (!Array.isArray(kinds))
|
|
9675
|
+
return [];
|
|
9676
|
+
const unique = new Set();
|
|
9677
|
+
kinds
|
|
9678
|
+
.map((kind) => this.stringValue(kind).trim())
|
|
9679
|
+
.filter((kind) => !!kind)
|
|
9680
|
+
.forEach((kind) => unique.add(kind));
|
|
9681
|
+
return [...unique].slice(0, 24);
|
|
9682
|
+
}
|
|
9683
|
+
tableConsultativeColumnFacts() {
|
|
9684
|
+
const currentConfig = this.toRecord(this.adapter.getCurrentConfig?.());
|
|
9685
|
+
const columns = Array.isArray(currentConfig?.['columns'])
|
|
9686
|
+
? currentConfig['columns']
|
|
9687
|
+
: [];
|
|
9688
|
+
const schemaFieldByName = new Map();
|
|
9689
|
+
for (const schemaField of this.adapter.getSchemaFields?.() ?? []) {
|
|
9690
|
+
const record = this.toRecord(schemaField);
|
|
9691
|
+
if (!record)
|
|
9692
|
+
continue;
|
|
9693
|
+
const name = this.stringValue(record['name']) || this.stringValue(record['field']);
|
|
9694
|
+
if (name)
|
|
9695
|
+
schemaFieldByName.set(name, record);
|
|
9696
|
+
}
|
|
9697
|
+
return columns
|
|
9698
|
+
.map((column) => this.toRecord(column))
|
|
9699
|
+
.filter((column) => !!column)
|
|
9700
|
+
.map((column) => {
|
|
9701
|
+
const field = this.stringValue(column['field']).trim();
|
|
9702
|
+
if (!field)
|
|
9703
|
+
return null;
|
|
9704
|
+
const schemaField = schemaFieldByName.get(field);
|
|
9705
|
+
const label = this.stringValue(column['header'])
|
|
9706
|
+
|| this.stringValue(column['label'])
|
|
9707
|
+
|| this.stringValue(column['title'])
|
|
9708
|
+
|| this.stringValue(schemaField?.['label'])
|
|
9709
|
+
|| this.stringValue(schemaField?.['title'])
|
|
9710
|
+
|| field;
|
|
9711
|
+
const schemaFormat = this.stringValue(schemaField?.['format']);
|
|
9712
|
+
const type = this.tableConsultativeColumnType(column, schemaField, schemaFormat);
|
|
9713
|
+
const format = this.stringValue(column['format']) || schemaFormat;
|
|
9714
|
+
const renderer = this.stringValue(this.toRecord(column['renderer'])?.['type']);
|
|
9715
|
+
return [
|
|
9716
|
+
` - ${field}`,
|
|
9717
|
+
`label=${label}`,
|
|
9718
|
+
`type=${type}`,
|
|
9719
|
+
...(format ? [`format=${format}`] : []),
|
|
9720
|
+
...(renderer ? [`renderer=${renderer}`] : []),
|
|
9721
|
+
].join('; ');
|
|
9722
|
+
})
|
|
9723
|
+
.filter((fact) => !!fact)
|
|
9724
|
+
.slice(0, 40);
|
|
9725
|
+
}
|
|
9726
|
+
tableConsultativeColumnType(column, schemaField, schemaFormat) {
|
|
9727
|
+
const columnType = this.stringValue(column['type']) || this.stringValue(column['dataType']);
|
|
9728
|
+
const schemaType = this.stringValue(schemaField?.['type']) || this.stringValue(schemaField?.['dataType']);
|
|
9729
|
+
if (schemaFormat === 'date' || schemaFormat === 'date-time')
|
|
9730
|
+
return schemaFormat;
|
|
9731
|
+
return columnType || schemaType || 'unknown';
|
|
9732
|
+
}
|
|
9733
|
+
normalizeConsultativeSourcePlaceholderResponse(response, request) {
|
|
9734
|
+
if (response.type && response.type !== 'info')
|
|
9735
|
+
return response;
|
|
9736
|
+
if (response.patch && Object.keys(response.patch).length > 0)
|
|
9737
|
+
return response;
|
|
9738
|
+
const message = this.stringValue(response.message || response.explanation);
|
|
9739
|
+
if (!this.isConfirmedSourcePlaceholderMessage(message))
|
|
9740
|
+
return response;
|
|
9741
|
+
const resourcePath = this.extractResourcePath(this.contextHintsForTurn)
|
|
9742
|
+
?? this.extractResourcePath(this.optionalJsonObject(request?.runtimeState))
|
|
9743
|
+
?? this.extractResourcePath(this.optionalJsonObject(this.adapter.getRuntimeState?.()))
|
|
9744
|
+
?? this.extractResourcePath(this.optionalJsonObject(this.adapter.getAuthoringContext?.()));
|
|
9745
|
+
if (!resourcePath)
|
|
9746
|
+
return response;
|
|
9747
|
+
return {
|
|
9748
|
+
...response,
|
|
9749
|
+
type: 'info',
|
|
9750
|
+
message: `O resourcePath usado por esta tabela é \`${resourcePath}\`.`,
|
|
9751
|
+
explanation: undefined,
|
|
9752
|
+
optionPayloads: undefined,
|
|
9753
|
+
options: undefined,
|
|
9754
|
+
warnings: [
|
|
9755
|
+
...(response.warnings ?? []),
|
|
9756
|
+
'consultative-source-placeholder-normalized',
|
|
9757
|
+
'Resposta informativa normalizada a partir de authoringContract.consultativeContext.resourcePath; nao houve roteamento primario de intencao por palavras-chave.',
|
|
9758
|
+
],
|
|
9759
|
+
};
|
|
9760
|
+
}
|
|
9761
|
+
isConfirmedSourcePlaceholderMessage(message) {
|
|
9762
|
+
const normalized = this.normalizeLabel(message);
|
|
9763
|
+
return !!normalized
|
|
9764
|
+
&& (normalized.includes('fonte confirmada') || normalized.includes('source confirmed'))
|
|
9765
|
+
&& (normalized.includes('fonte') || normalized.includes('source') || normalized.includes('resource'));
|
|
9766
|
+
}
|
|
9551
9767
|
buildSelectedRecordsAnalysisSystemPolicy(contextHints) {
|
|
9552
9768
|
const selectedRecordsContext = this.selectedRecordsContextRecord(contextHints);
|
|
9553
9769
|
if (!selectedRecordsContext)
|
|
@@ -9632,6 +9848,8 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
9632
9848
|
}
|
|
9633
9849
|
buildComponentPresentationAuthoringSystemPolicy(contextHints, prompt) {
|
|
9634
9850
|
const normalizedPrompt = this.normalizeLabel(prompt);
|
|
9851
|
+
if (this.promptRequestsPresentationOptions(normalizedPrompt))
|
|
9852
|
+
return null;
|
|
9635
9853
|
const presentationIntent = this.promptRequestsVisualOrStructuralEdit(normalizedPrompt)
|
|
9636
9854
|
|| this.promptRequestsCompoundColumnPresentationEdit(normalizedPrompt);
|
|
9637
9855
|
if (!presentationIntent)
|
|
@@ -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-PgzZWx25.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
7
7
|
version: 'v1',
|
|
@@ -2204,6 +2204,9 @@ class TableAiAdapter extends BaseAiAdapter {
|
|
|
2204
2204
|
'bulk-actions',
|
|
2205
2205
|
'selection-derived-export-scope',
|
|
2206
2206
|
'styling-capabilities',
|
|
2207
|
+
'column-format-options',
|
|
2208
|
+
'column-presentation-options',
|
|
2209
|
+
'boolean-status-presentation-options',
|
|
2207
2210
|
'conditional-renderers',
|
|
2208
2211
|
'conditional-styles',
|
|
2209
2212
|
'conditional-animations',
|
|
@@ -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-PgzZWx25.mjs';
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.14",
|
|
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
|
-
"@praxisui/ai": "^9.0.0-beta.
|
|
9
|
-
"@praxisui/core": "^9.0.0-beta.
|
|
10
|
-
"@praxisui/dynamic-fields": "^9.0.0-beta.
|
|
11
|
-
"@praxisui/dynamic-form": "^9.0.0-beta.
|
|
12
|
-
"@praxisui/metadata-editor": "^9.0.0-beta.
|
|
13
|
-
"@praxisui/rich-content": "^9.0.0-beta.
|
|
14
|
-
"@praxisui/settings-panel": "^9.0.0-beta.
|
|
15
|
-
"@praxisui/table-rule-builder": "^9.0.0-beta.
|
|
8
|
+
"@praxisui/ai": "^9.0.0-beta.14",
|
|
9
|
+
"@praxisui/core": "^9.0.0-beta.14",
|
|
10
|
+
"@praxisui/dynamic-fields": "^9.0.0-beta.14",
|
|
11
|
+
"@praxisui/dynamic-form": "^9.0.0-beta.14",
|
|
12
|
+
"@praxisui/metadata-editor": "^9.0.0-beta.14",
|
|
13
|
+
"@praxisui/rich-content": "^9.0.0-beta.14",
|
|
14
|
+
"@praxisui/settings-panel": "^9.0.0-beta.14",
|
|
15
|
+
"@praxisui/table-rule-builder": "^9.0.0-beta.14",
|
|
16
16
|
"@angular/cdk": "^21.0.0",
|
|
17
17
|
"@angular/forms": "^21.0.0",
|
|
18
18
|
"@angular/material": "^21.0.0",
|
|
19
19
|
"@angular/router": "^21.0.0",
|
|
20
|
-
"@praxisui/dialog": "^9.0.0-beta.
|
|
20
|
+
"@praxisui/dialog": "^9.0.0-beta.14",
|
|
21
21
|
"rxjs": "~7.8.0"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
@@ -368,7 +368,7 @@ Renderer defaults:
|
|
|
368
368
|
| `icon` | `string` | No | component-input | host-surface passthrough | Ícone opcional usado em affordances auxiliares do runtime. |
|
|
369
369
|
| `autoDelete` | `boolean` | No | component-input | boolean coercion | Ativa deleção automática quando o host delega esse fluxo ao runtime. |
|
|
370
370
|
| `enableCustomization` | `boolean` | No | component-input | boolean coercion | Controla entrada em editor/configuração; default canônico `false`. |
|
|
371
|
-
| `dense` | `boolean` | No | component-input | boolean coercion |
|
|
371
|
+
| `dense` | `boolean` | No | component-input | boolean coercion | Entrada legada de compactação. Equivale a `appearance.density="compact"` apenas quando o contrato não informa `appearance.density`. |
|
|
372
372
|
| `notifyIfOutdated` | `'inline' \| 'snackbar' \| 'both' \| 'none'` | No | component-input | enum validation + prefs fallback | Política de aviso de drift de schema; o host escolhe banner inline, snackbar, ambos ou silêncio explícito. |
|
|
373
373
|
| `snoozeMs` | `number` | No | component-input | numeric fallback + prefs fallback | Janela de snooze para avisos de drift; default do input é `86400000` (24h) e políticas globais podem complementar. |
|
|
374
374
|
| `autoOpenSettingsOnOutdated` | `boolean` | No | component-input | schema-prefs resolution | Abre automaticamente o settings panel quando drift de schema é detectado. |
|
|
@@ -947,7 +947,10 @@ row selection through table affordances.
|
|
|
947
947
|
| `--p-table-row-even-bg` | zebra row |
|
|
948
948
|
| `--p-table-row-hover-bg` | hover row |
|
|
949
949
|
| `--p-table-row-selected-bg` | row selecionada |
|
|
950
|
+
| `--p-table-row-height` | altura da linha; sobrescreve o default do preset de densidade |
|
|
951
|
+
| `--p-table-header-height` | altura do header; sobrescreve o default do preset de densidade |
|
|
950
952
|
| `--p-header-padding` | padding do header |
|
|
953
|
+
| `--p-cell-padding` | padding das células; sobrescreve o default do preset de densidade |
|
|
951
954
|
| `--p-header-font-size` | fonte do header |
|
|
952
955
|
| `--p-header-font-weight` | peso do header |
|
|
953
956
|
| `--p-header-letter-spacing` | tracking do header |
|
|
@@ -969,6 +972,13 @@ row selection through table affordances.
|
|
|
969
972
|
| `--p-table-drag-status-enter-duration` | duracao da entrada da mensagem visual de reorder |
|
|
970
973
|
| `--p-actions-btn-size` | tamanho de botoes de acao |
|
|
971
974
|
| `--p-actions-icon-size` | tamanho de icones de acao |
|
|
975
|
+
| `--p-table-paginator-container-min-height` | altura minima do paginator |
|
|
976
|
+
| `--p-table-paginator-container-padding` | padding do paginator |
|
|
977
|
+
| `--p-table-paginator-container-gap` | espaçamento entre controles do paginator |
|
|
978
|
+
| `--p-table-paginator-action-size` | tamanho dos botoes de navegacao do paginator |
|
|
979
|
+
| `--p-table-paginator-select-width` | largura do seletor de tamanho de pagina |
|
|
980
|
+
| `--p-table-paginator-select-height` | altura do seletor de tamanho de pagina |
|
|
981
|
+
| `--p-table-paginator-select-padding-inline` | padding horizontal do seletor de tamanho de pagina |
|
|
972
982
|
| `--p-table-state-success-*` | tokens de estado success |
|
|
973
983
|
| `--p-table-state-warning-*` | tokens de estado warning |
|
|
974
984
|
| `--p-table-state-danger-*` | tokens de estado danger |
|
|
@@ -985,6 +995,8 @@ row selection through table affordances.
|
|
|
985
995
|
| `pfx-column-drag-enabled` | habilita layout base de DnD de colunas |
|
|
986
996
|
| `pfx-column-drag-indicator` | habilita indicador visual de drag |
|
|
987
997
|
|
|
998
|
+
`appearance.density` seleciona apenas o preset de defaults. `appearance.spacing.*` e defaults globais também alimentam tokens `*-default`. Hosts podem redefinir livremente os tokens finais sem depender de seletores internos, por exemplo `--p-table-row-height`, `--p-table-header-height`, `--p-cell-padding`, `--p-actions-btn-size` e `--p-table-paginator-select-height`. Em virtualização sem `itemHeight` explícito, o runtime deriva a altura da densidade efetiva.
|
|
999
|
+
|
|
988
1000
|
#### DnD classes (globais)
|
|
989
1001
|
| Classe CSS | Escopo | Efeito |
|
|
990
1002
|
| --- | --- | --- |
|
|
@@ -1258,6 +1258,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1258
1258
|
set resolvedPrefs(val: any);
|
|
1259
1259
|
get resolvedPrefs(): any;
|
|
1260
1260
|
dense: boolean;
|
|
1261
|
+
private hostDeclaredAppearanceDensity;
|
|
1262
|
+
private hostDeclaredAppearanceSpacing;
|
|
1263
|
+
private hostDeclaredAppearanceTypography;
|
|
1261
1264
|
private resolveAppearanceDensity;
|
|
1262
1265
|
get hostDensityCompactClass(): boolean;
|
|
1263
1266
|
get hostDensityComfortableClass(): boolean;
|
|
@@ -1346,6 +1349,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1346
1349
|
private tableConfigKey;
|
|
1347
1350
|
private filterConfigKey;
|
|
1348
1351
|
private ensureConfigDefaults;
|
|
1352
|
+
private hasDeclaredAppearanceDensity;
|
|
1353
|
+
private hasDeclaredAppearanceSection;
|
|
1354
|
+
private shouldApplyAppearanceDefaultValue;
|
|
1349
1355
|
private mergePersistedTableConfigWithInput;
|
|
1350
1356
|
private reconcileHostDeclaredTableContract;
|
|
1351
1357
|
private reconcileHostDeclaredColumns;
|
|
@@ -2165,6 +2171,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2165
2171
|
private getVirtualizationSources;
|
|
2166
2172
|
isVirtualized(): boolean;
|
|
2167
2173
|
getVirtItemHeight(): number;
|
|
2174
|
+
private getDefaultDensityRowHeight;
|
|
2168
2175
|
getVirtBufferSize(): number;
|
|
2169
2176
|
getVirtMinHeightStyle(): string;
|
|
2170
2177
|
getVirtMinHeightHostStyle(): string | null;
|