@praxisui/table 8.0.0-beta.101 → 8.0.0-beta.103
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/fesm2022/{praxisui-table-praxisui-table-BW05k1Xw.mjs → praxisui-table-praxisui-table-CIG9G2ku.mjs} +2 -2
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-B9D6QMS2.mjs → praxisui-table-table-agentic-authoring-turn-flow-DL9l0XF7.mjs} +83 -11
- package/fesm2022/{praxisui-table-table-ai.adapter-C9ch90hi.mjs → praxisui-table-table-ai.adapter-Mv-J6ECy.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
|
@@ -39948,7 +39948,7 @@ class PraxisTable {
|
|
|
39948
39948
|
if (this.aiAdapter || this.aiAdapterLoadStarted)
|
|
39949
39949
|
return;
|
|
39950
39950
|
this.aiAdapterLoadStarted = true;
|
|
39951
|
-
import('./praxisui-table-table-ai.adapter-
|
|
39951
|
+
import('./praxisui-table-table-ai.adapter-Mv-J6ECy.mjs')
|
|
39952
39952
|
.then(({ TableAiAdapter }) => {
|
|
39953
39953
|
this.aiAdapter = new TableAiAdapter(this);
|
|
39954
39954
|
this.initializeAiAssistantController();
|
|
@@ -40678,7 +40678,7 @@ class PraxisTable {
|
|
|
40678
40678
|
initializeAiAssistantController() {
|
|
40679
40679
|
if (!this.aiAdapter || this.aiAssistantController)
|
|
40680
40680
|
return;
|
|
40681
|
-
import('./praxisui-table-table-agentic-authoring-turn-flow-
|
|
40681
|
+
import('./praxisui-table-table-agentic-authoring-turn-flow-DL9l0XF7.mjs')
|
|
40682
40682
|
.then(({ TableAgenticAuthoringTurnFlow }) => {
|
|
40683
40683
|
if (this.aiAssistantController || !this.aiAdapter)
|
|
40684
40684
|
return;
|
|
@@ -2479,6 +2479,10 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
2479
2479
|
response = this.normalizeNumericBandConditionalStylePlan(response, request);
|
|
2480
2480
|
response = this.normalizeCompoundColumnPresentationPlan(response, request);
|
|
2481
2481
|
response = this.normalizeComputedColumnAuxiliaryMaterializations(response);
|
|
2482
|
+
const selectedRecordReadonlyPresentationBoundary = this.selectedRecordReadonlyPresentationBoundaryResponse(response, request);
|
|
2483
|
+
if (selectedRecordReadonlyPresentationBoundary) {
|
|
2484
|
+
return selectedRecordReadonlyPresentationBoundary;
|
|
2485
|
+
}
|
|
2482
2486
|
const visualPresentationChoice = this.visualPresentationChoiceClarificationBoundary(response, request);
|
|
2483
2487
|
if (visualPresentationChoice) {
|
|
2484
2488
|
return visualPresentationChoice;
|
|
@@ -7097,6 +7101,30 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
7097
7101
|
],
|
|
7098
7102
|
};
|
|
7099
7103
|
}
|
|
7104
|
+
selectedRecordReadonlyPresentationBoundaryResponse(response, request) {
|
|
7105
|
+
if (!this.selectedRecordReadOnlyAnalysisRequested(request))
|
|
7106
|
+
return null;
|
|
7107
|
+
if (response.patch)
|
|
7108
|
+
return null;
|
|
7109
|
+
const contextHints = this.contextHintsFor(request);
|
|
7110
|
+
if (!this.selectedRecordSampleRows(contextHints).length)
|
|
7111
|
+
return null;
|
|
7112
|
+
const hasPresentationOptions = (response.optionPayloads ?? [])
|
|
7113
|
+
.some((payload) => this.isVisualPresentationClarificationPayload(payload)
|
|
7114
|
+
|| this.isGovernedCategoricalSemanticsChoicePayload(payload));
|
|
7115
|
+
if (!hasPresentationOptions && !this.responseHasGovernedCategoricalSemanticsChoice(response))
|
|
7116
|
+
return null;
|
|
7117
|
+
return {
|
|
7118
|
+
type: 'info',
|
|
7119
|
+
sessionId: response.sessionId ?? request?.sessionId,
|
|
7120
|
+
message: this.selectedRecordsAnalyticalSummary(contextHints),
|
|
7121
|
+
warnings: [
|
|
7122
|
+
...(response.warnings ?? []),
|
|
7123
|
+
'selected-record-readonly-analysis-presentation-misroute-collapsed',
|
|
7124
|
+
'A plataforma respondeu a analise read-only usando selectedRecordsContext.sampleRows porque a resposta semantica retornou opcoes de apresentacao visual para uma pergunta consultiva.',
|
|
7125
|
+
],
|
|
7126
|
+
};
|
|
7127
|
+
}
|
|
7100
7128
|
responseAsksForSelectedRecordAnalysisDimension(response) {
|
|
7101
7129
|
const text = [
|
|
7102
7130
|
response.message,
|
|
@@ -7214,8 +7242,6 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
7214
7242
|
const normalizedPrompt = this.normalizeLabel(request?.prompt ?? '');
|
|
7215
7243
|
if (!normalizedPrompt)
|
|
7216
7244
|
return false;
|
|
7217
|
-
if (!this.selectedRecordPromptTargetsSelectedSet(normalizedPrompt))
|
|
7218
|
-
return false;
|
|
7219
7245
|
if (this.promptRequestsVisualOrStructuralEdit(normalizedPrompt)
|
|
7220
7246
|
|| this.promptRequestsExportOperation(normalizedPrompt)) {
|
|
7221
7247
|
return this.promptExplicitlyForbidsTableMutation(normalizedPrompt);
|
|
@@ -7223,7 +7249,7 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
7223
7249
|
if (this.promptRequestsSelectedRecordDerivedOperation(normalizedPrompt))
|
|
7224
7250
|
return false;
|
|
7225
7251
|
return this.promptExplicitlyForbidsTableMutation(normalizedPrompt)
|
|
7226
|
-
|| this.
|
|
7252
|
+
|| this.selectedRecordPromptTargetsSelectedSet(normalizedPrompt);
|
|
7227
7253
|
}
|
|
7228
7254
|
selectedRecordPromptTargetsSelectedSet(normalizedPrompt) {
|
|
7229
7255
|
if (!normalizedPrompt)
|
|
@@ -7364,6 +7390,30 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
7364
7390
|
// This ranks explicit selected-record operation wording after selectedRecordsContext is already available.
|
|
7365
7391
|
// The primary intent still comes from the semantic turn/contract; these phrases only prevent a read-only
|
|
7366
7392
|
// safety boundary from cancelling an operation the user explicitly asked to materialize.
|
|
7393
|
+
if (this.selectedRecordPromptLooksConsultative(normalizedPrompt)) {
|
|
7394
|
+
const explicitOperationSignals = [
|
|
7395
|
+
'filtrar',
|
|
7396
|
+
'filtra',
|
|
7397
|
+
'filtro',
|
|
7398
|
+
'filtre',
|
|
7399
|
+
'buscar registros',
|
|
7400
|
+
'procurar registros',
|
|
7401
|
+
'acha quem',
|
|
7402
|
+
'achar quem',
|
|
7403
|
+
'outros registros',
|
|
7404
|
+
'quero outros',
|
|
7405
|
+
'quero os mesmo',
|
|
7406
|
+
'quero os mesmos',
|
|
7407
|
+
'quero ver gente',
|
|
7408
|
+
'pega a turma',
|
|
7409
|
+
'pegar a turma',
|
|
7410
|
+
].map((signal) => this.normalizeLabel(signal));
|
|
7411
|
+
const explicitlyRequestsOperation = explicitOperationSignals.some((signal) => signal.includes(' ')
|
|
7412
|
+
? this.normalizedTextContainsExactPhrase(normalizedPrompt, signal)
|
|
7413
|
+
: this.normalizedTextHasStandaloneToken(normalizedPrompt, signal));
|
|
7414
|
+
if (!explicitlyRequestsOperation)
|
|
7415
|
+
return false;
|
|
7416
|
+
}
|
|
7367
7417
|
return [
|
|
7368
7418
|
'filtrar',
|
|
7369
7419
|
'filtra',
|
|
@@ -7496,16 +7546,17 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
7496
7546
|
.slice(0, 4);
|
|
7497
7547
|
const dateRanges = fields
|
|
7498
7548
|
.map((field) => {
|
|
7499
|
-
const
|
|
7500
|
-
.map((row) => this.
|
|
7501
|
-
.filter((value) => value
|
|
7502
|
-
if (
|
|
7549
|
+
const values = rows
|
|
7550
|
+
.map((row) => this.analysisDateValue(row[field]))
|
|
7551
|
+
.filter((value) => !!value);
|
|
7552
|
+
if (values.length < 2)
|
|
7503
7553
|
return null;
|
|
7504
|
-
const
|
|
7505
|
-
const
|
|
7506
|
-
|
|
7554
|
+
const sorted = [...values].sort((left, right) => left.sort - right.sort);
|
|
7555
|
+
const min = sorted[0];
|
|
7556
|
+
const max = sorted[sorted.length - 1];
|
|
7557
|
+
if (!min || !max || min.sort === max.sort)
|
|
7507
7558
|
return null;
|
|
7508
|
-
return `${labelByField.get(field) || this.humanizeField(field)}: ${
|
|
7559
|
+
return `${labelByField.get(field) || this.humanizeField(field)}: ${min.label} até ${max.label}`;
|
|
7509
7560
|
})
|
|
7510
7561
|
.filter((entry) => !!entry)
|
|
7511
7562
|
.slice(0, 3);
|
|
@@ -7561,6 +7612,27 @@ class TableAgenticAuthoringTurnFlow {
|
|
|
7561
7612
|
: Number.NaN;
|
|
7562
7613
|
return Number.isFinite(raw) ? raw : null;
|
|
7563
7614
|
}
|
|
7615
|
+
analysisDateValue(value) {
|
|
7616
|
+
if (typeof value === 'string') {
|
|
7617
|
+
const trimmed = value.trim();
|
|
7618
|
+
const dateOnly = /^(\d{4})-(\d{2})-(\d{2})$/u.exec(trimmed);
|
|
7619
|
+
if (dateOnly) {
|
|
7620
|
+
const year = Number(dateOnly[1]);
|
|
7621
|
+
const month = Number(dateOnly[2]);
|
|
7622
|
+
const day = Number(dateOnly[3]);
|
|
7623
|
+
if (Number.isInteger(year) && Number.isInteger(month) && Number.isInteger(day)) {
|
|
7624
|
+
return {
|
|
7625
|
+
sort: year * 10000 + month * 100 + day,
|
|
7626
|
+
label: `${String(day).padStart(2, '0')}/${String(month).padStart(2, '0')}/${String(year)}`,
|
|
7627
|
+
};
|
|
7628
|
+
}
|
|
7629
|
+
}
|
|
7630
|
+
}
|
|
7631
|
+
const timestamp = this.dateTimestamp(value);
|
|
7632
|
+
return timestamp === null
|
|
7633
|
+
? null
|
|
7634
|
+
: { sort: timestamp, label: this.formatAnalysisDate(timestamp) };
|
|
7635
|
+
}
|
|
7564
7636
|
formatAnalysisDate(timestamp) {
|
|
7565
7637
|
return new Intl.DateTimeFormat('pt-BR', {
|
|
7566
7638
|
day: '2-digit',
|
|
@@ -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-CIG9G2ku.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_COMPONENT_CONTEXT_PACK = {
|
|
7
7
|
version: 'v1',
|
|
@@ -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-CIG9G2ku.mjs';
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.103",
|
|
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": "^8.0.0-beta.
|
|
9
|
-
"@praxisui/core": "^8.0.0-beta.
|
|
10
|
-
"@praxisui/dynamic-fields": "^8.0.0-beta.
|
|
11
|
-
"@praxisui/dynamic-form": "^8.0.0-beta.
|
|
12
|
-
"@praxisui/metadata-editor": "^8.0.0-beta.
|
|
13
|
-
"@praxisui/rich-content": "^8.0.0-beta.
|
|
14
|
-
"@praxisui/settings-panel": "^8.0.0-beta.
|
|
15
|
-
"@praxisui/table-rule-builder": "^8.0.0-beta.
|
|
8
|
+
"@praxisui/ai": "^8.0.0-beta.103",
|
|
9
|
+
"@praxisui/core": "^8.0.0-beta.103",
|
|
10
|
+
"@praxisui/dynamic-fields": "^8.0.0-beta.103",
|
|
11
|
+
"@praxisui/dynamic-form": "^8.0.0-beta.103",
|
|
12
|
+
"@praxisui/metadata-editor": "^8.0.0-beta.103",
|
|
13
|
+
"@praxisui/rich-content": "^8.0.0-beta.103",
|
|
14
|
+
"@praxisui/settings-panel": "^8.0.0-beta.103",
|
|
15
|
+
"@praxisui/table-rule-builder": "^8.0.0-beta.103",
|
|
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": "^8.0.0-beta.
|
|
20
|
+
"@praxisui/dialog": "^8.0.0-beta.103",
|
|
21
21
|
"rxjs": "~7.8.0"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|