@praxisui/dynamic-form 8.0.0-beta.1 → 8.0.0-beta.12
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 +93 -10
- package/fesm2022/praxisui-dynamic-form.mjs +2558 -579
- package/index.d.ts +199 -15
- package/package.json +6 -6
package/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { MatDialog } from '@angular/material/dialog';
|
|
|
7
7
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
8
8
|
import { CdkDragStart, CdkDragMove, CdkDragEnd, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
9
9
|
import * as _praxisui_core from '@praxisui/core';
|
|
10
|
-
import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, PraxisJsonLogicService, FormSection, FormRow, FormColumn, FormConfig, FormActionButton, AiCapability, BackConfig, ApiEndpoint, ApiUrlEntry, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, FieldDefinition, ComponentDocMeta, Breakpoint, IconPickerService, SurfaceOpenPayload, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
10
|
+
import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, PraxisJsonLogicService, FormSection, FormRow, FormColumn, FormConfig, FormLayoutItem, FormActionButton, AiCapability, BackConfig, ApiEndpoint, ApiUrlEntry, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, GlobalActionCatalogEntry, FieldDefinition, ComponentDocMeta, Breakpoint, IconPickerService, GlobalActionRef, SurfaceOpenPayload, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, ComponentAuthoringManifest } from '@praxisui/core';
|
|
11
11
|
import * as rxjs from 'rxjs';
|
|
12
12
|
import { Observable, BehaviorSubject } from 'rxjs';
|
|
13
13
|
import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
|
|
@@ -96,6 +96,7 @@ interface Operation {
|
|
|
96
96
|
sectionId?: string;
|
|
97
97
|
rowId?: string;
|
|
98
98
|
columnId?: string;
|
|
99
|
+
itemId?: string;
|
|
99
100
|
fieldName?: string;
|
|
100
101
|
sectionIndex?: number;
|
|
101
102
|
rowIndex?: number;
|
|
@@ -106,6 +107,7 @@ interface Operation {
|
|
|
106
107
|
sectionId?: string;
|
|
107
108
|
rowId?: string;
|
|
108
109
|
columnId?: string;
|
|
110
|
+
itemId?: string;
|
|
109
111
|
fieldName?: string;
|
|
110
112
|
sectionIndex?: number;
|
|
111
113
|
rowIndex?: number;
|
|
@@ -178,6 +180,14 @@ declare class DynamicFormLayoutService {
|
|
|
178
180
|
private capitalizeFirstLetter;
|
|
179
181
|
private assertIndex;
|
|
180
182
|
private mutate;
|
|
183
|
+
private getFieldName;
|
|
184
|
+
private findFieldLayoutItemIndex;
|
|
185
|
+
private getLayoutInsertIndexForFieldIndex;
|
|
186
|
+
private applyLayoutItemsToColumn;
|
|
187
|
+
private insertFieldLayoutItem;
|
|
188
|
+
private removeFieldLayoutItem;
|
|
189
|
+
private hasLayoutItems;
|
|
190
|
+
private moveFieldLayoutItem;
|
|
181
191
|
moveSection(config: FormConfig, fromIndex: number, toIndex: number): LayoutResult;
|
|
182
192
|
insertSection(config: FormConfig, section: any, atIndex?: number): LayoutResult;
|
|
183
193
|
removeSection(config: FormConfig, index: number, _policy?: RemovePolicy): LayoutResult;
|
|
@@ -235,6 +245,37 @@ declare class DynamicFormLayoutService {
|
|
|
235
245
|
rowId: string;
|
|
236
246
|
columnId: string;
|
|
237
247
|
}, field: any, atIndex?: number): LayoutResult;
|
|
248
|
+
insertLayoutItemById(config: FormConfig, target: {
|
|
249
|
+
sectionId: string;
|
|
250
|
+
rowId: string;
|
|
251
|
+
columnId: string;
|
|
252
|
+
}, item: FormLayoutItem, atIndex?: number): LayoutResult;
|
|
253
|
+
moveLayoutItemById(config: FormConfig, from: {
|
|
254
|
+
sectionId: string;
|
|
255
|
+
rowId: string;
|
|
256
|
+
columnId: string;
|
|
257
|
+
itemId: string;
|
|
258
|
+
}, to: {
|
|
259
|
+
sectionId: string;
|
|
260
|
+
rowId: string;
|
|
261
|
+
columnId: string;
|
|
262
|
+
toIndex: number;
|
|
263
|
+
}, options?: {
|
|
264
|
+
policy?: RemovePolicy;
|
|
265
|
+
correlationId?: string;
|
|
266
|
+
origin?: string;
|
|
267
|
+
}): LayoutResult;
|
|
268
|
+
updateLayoutItemById(config: FormConfig, target: {
|
|
269
|
+
sectionId: string;
|
|
270
|
+
rowId: string;
|
|
271
|
+
columnId: string;
|
|
272
|
+
itemId: string;
|
|
273
|
+
}, item: FormLayoutItem): LayoutResult;
|
|
274
|
+
removeLayoutItemById(config: FormConfig, sectionId: string, rowId: string, columnId: string, itemId: string, options?: {
|
|
275
|
+
policy?: RemovePolicy;
|
|
276
|
+
correlationId?: string;
|
|
277
|
+
origin?: string;
|
|
278
|
+
}): LayoutResult;
|
|
238
279
|
removeFieldById(config: FormConfig, sectionId: string, rowId: string, columnId: string, fieldName: string, options?: {
|
|
239
280
|
policy?: RemovePolicy;
|
|
240
281
|
correlationId?: string;
|
|
@@ -349,6 +390,7 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
|
|
|
349
390
|
getInvalidSubmitHint(): string;
|
|
350
391
|
private applyOverrides;
|
|
351
392
|
private registerActionShortcuts;
|
|
393
|
+
private resolveButtonActionId;
|
|
352
394
|
private isSecondaryButton;
|
|
353
395
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFormActionsComponent, never>;
|
|
354
396
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFormActionsComponent, "praxis-form-actions", never, { "actions": { "alias": "actions"; "required": false; }; "editorialVisualContext": { "alias": "editorialVisualContext"; "required": false; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; }; "formIsValid": { "alias": "formIsValid"; "required": false; }; "submitError": { "alias": "submitError"; "required": false; }; "invalidRequiredFieldLabels": { "alias": "invalidRequiredFieldLabels"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "actionOverrides": { "alias": "actionOverrides"; "required": false; }; }, { "action": "action"; }, never, never, true, never>;
|
|
@@ -506,6 +548,19 @@ type ResolvedSectionHeaderVisual = {
|
|
|
506
548
|
text?: string;
|
|
507
549
|
ariaLabel: string;
|
|
508
550
|
};
|
|
551
|
+
interface FormColumnFieldsRenderItem {
|
|
552
|
+
kind: 'fields';
|
|
553
|
+
id: string;
|
|
554
|
+
fields: FieldMetadata[];
|
|
555
|
+
}
|
|
556
|
+
interface FormColumnRichContentRenderItem {
|
|
557
|
+
kind: 'richContent';
|
|
558
|
+
id: string;
|
|
559
|
+
document: RichContentDocument;
|
|
560
|
+
layout: 'block' | 'inline';
|
|
561
|
+
rootClassName?: string | null;
|
|
562
|
+
}
|
|
563
|
+
type FormColumnRenderItem = FormColumnFieldsRenderItem | FormColumnRichContentRenderItem;
|
|
509
564
|
declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
510
565
|
private crud;
|
|
511
566
|
private http;
|
|
@@ -808,6 +863,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
808
863
|
private hasInteractiveFormState;
|
|
809
864
|
private captureFormRuntimeState;
|
|
810
865
|
private getDirtyFieldNames;
|
|
866
|
+
private collectDirtyFieldNames;
|
|
811
867
|
private buildCurrentFormRuntimeContext;
|
|
812
868
|
private buildRestoreTargetContext;
|
|
813
869
|
private isCompatibleRuntimeStateContext;
|
|
@@ -888,11 +944,17 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
888
944
|
toggleSectionCollapse(event: Event, section: FormSection): void;
|
|
889
945
|
sectionPanelId(section: FormSection, index: number): string;
|
|
890
946
|
getSectionCollapsedSummary(section: FormSection): string;
|
|
947
|
+
getColumnItems(column: FormColumn): FormLayoutItem[];
|
|
948
|
+
getColumnRenderItems(column: FormColumn): FormColumnRenderItem[];
|
|
891
949
|
getColumnFields(column: {
|
|
892
|
-
fields
|
|
950
|
+
fields?: string[];
|
|
951
|
+
items?: FormLayoutItem[];
|
|
893
952
|
id?: string;
|
|
894
953
|
}): FieldMetadata[];
|
|
954
|
+
getRichContentLayoutItemDocument(item: FormLayoutItem): RichContentDocument | null;
|
|
955
|
+
getRichContentLayoutItemLayout(item: FormLayoutItem): 'block' | 'inline';
|
|
895
956
|
private getColumnFieldsSignature;
|
|
957
|
+
private getColumnItemsSignature;
|
|
896
958
|
private getColumnRuleProps;
|
|
897
959
|
private buildFieldRuleMetadataOverrides;
|
|
898
960
|
private normalizeRuleFieldOptions;
|
|
@@ -911,6 +973,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
911
973
|
private _showConfirmationDialog;
|
|
912
974
|
onFormAction(event: PraxisFormActionEvent): void;
|
|
913
975
|
private _executeAction;
|
|
976
|
+
private getFormActionEventId;
|
|
914
977
|
onSubmit(): Promise<void>;
|
|
915
978
|
private navigateAfterSave;
|
|
916
979
|
private shouldConfirmCancelOnDirty;
|
|
@@ -978,6 +1041,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
978
1041
|
private getControlTypeName;
|
|
979
1042
|
private applyNullDeletionPatch;
|
|
980
1043
|
private stripNullMarkersFromPatch;
|
|
1044
|
+
private mergeMetadataObjectPatch;
|
|
981
1045
|
private deleteMetadataPath;
|
|
982
1046
|
private getMetadataPath;
|
|
983
1047
|
/**
|
|
@@ -1200,13 +1264,16 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1200
1264
|
};
|
|
1201
1265
|
private destroy$;
|
|
1202
1266
|
private hasProcessedInitialRuleState;
|
|
1267
|
+
private jsonEditorIsValid;
|
|
1268
|
+
private globalActionValidationIssues;
|
|
1269
|
+
private readonly globalActionCatalog;
|
|
1203
1270
|
isDirty$: BehaviorSubject<boolean>;
|
|
1204
1271
|
isValid$: BehaviorSubject<boolean>;
|
|
1205
1272
|
isBusy$: BehaviorSubject<boolean>;
|
|
1206
1273
|
private lastRulesSignature;
|
|
1207
1274
|
private readonly DEBUG;
|
|
1208
1275
|
private debugLog;
|
|
1209
|
-
constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, injectedData?: any);
|
|
1276
|
+
constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, globalActionCatalogSource?: ReadonlyArray<GlobalActionCatalogEntry[]>, injectedData?: any);
|
|
1210
1277
|
ngOnInit(): void;
|
|
1211
1278
|
reset(): void;
|
|
1212
1279
|
updateDirtyState(reason?: string): void;
|
|
@@ -1216,6 +1283,11 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1216
1283
|
onJsonValidationChange(result: JsonValidationResult): void;
|
|
1217
1284
|
onJsonEditorEvent(_event: JsonEditorEvent): void;
|
|
1218
1285
|
onConfigChange(newConfig: FormConfig): void;
|
|
1286
|
+
private updateValidityState;
|
|
1287
|
+
private collectGlobalActionValidationIssues;
|
|
1288
|
+
private collectGlobalActionValidationTargets;
|
|
1289
|
+
private findGlobalActionCatalogEntry;
|
|
1290
|
+
private buildGlobalActionCatalog;
|
|
1219
1291
|
onRulesChanged(state: RuleBuilderState): void;
|
|
1220
1292
|
get jsonDocument(): DynamicFormAuthoringDocument;
|
|
1221
1293
|
onBackConfigChange(): void;
|
|
@@ -1248,7 +1320,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1248
1320
|
private toPresentationSnapshot;
|
|
1249
1321
|
private toSchemaPrefsSnapshot;
|
|
1250
1322
|
private toBackConfigSnapshot;
|
|
1251
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }]>;
|
|
1323
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
1252
1324
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicFormConfigEditor, "praxis-dynamic-form-config-editor", never, {}, {}, never, never, true, never>;
|
|
1253
1325
|
}
|
|
1254
1326
|
interface FormConfigLike {
|
|
@@ -1323,11 +1395,42 @@ declare class LayoutPrefsService {
|
|
|
1323
1395
|
static ɵprov: i0.ɵɵInjectableDeclaration<LayoutPrefsService>;
|
|
1324
1396
|
}
|
|
1325
1397
|
|
|
1398
|
+
type VisualBlockPresetId = 'text' | 'notice' | 'divider' | 'infoCard';
|
|
1399
|
+
interface VisualBlockPreset {
|
|
1400
|
+
id: VisualBlockPresetId;
|
|
1401
|
+
labelKey: string;
|
|
1402
|
+
icon: string;
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1326
1405
|
interface FieldDropEvent {
|
|
1327
1406
|
event: CdkDragDrop<any>;
|
|
1328
1407
|
sectionIndex: number;
|
|
1329
1408
|
rowIndex: number;
|
|
1330
1409
|
}
|
|
1410
|
+
interface VisualBlockEvent {
|
|
1411
|
+
sectionIndex: number;
|
|
1412
|
+
rowIndex: number;
|
|
1413
|
+
columnIndex: number;
|
|
1414
|
+
itemId: string;
|
|
1415
|
+
}
|
|
1416
|
+
interface AddVisualBlockEvent {
|
|
1417
|
+
sectionIndex: number;
|
|
1418
|
+
rowIndex: number;
|
|
1419
|
+
columnIndex: number;
|
|
1420
|
+
presetId: VisualBlockPresetId;
|
|
1421
|
+
}
|
|
1422
|
+
interface AddApiFieldEvent {
|
|
1423
|
+
sectionIndex: number;
|
|
1424
|
+
rowIndex: number;
|
|
1425
|
+
columnIndex: number;
|
|
1426
|
+
fieldName: string;
|
|
1427
|
+
}
|
|
1428
|
+
interface MoveVisualBlockEvent extends VisualBlockEvent {
|
|
1429
|
+
direction: -1 | 1;
|
|
1430
|
+
}
|
|
1431
|
+
interface MoveVisualBlockToColumnEvent extends VisualBlockEvent {
|
|
1432
|
+
targetColumnIndex: number;
|
|
1433
|
+
}
|
|
1331
1434
|
/**
|
|
1332
1435
|
* Editor component for configuring sections, rows and fields of a dynamic form.
|
|
1333
1436
|
* Provides a collapsible palette of available fields.
|
|
@@ -1337,13 +1440,18 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1337
1440
|
configChange: EventEmitter<FormConfig>;
|
|
1338
1441
|
paletteCollapsed: boolean;
|
|
1339
1442
|
protected readonly prefs: LayoutPrefsService;
|
|
1443
|
+
private readonly layoutService;
|
|
1444
|
+
private readonly settingsPanel;
|
|
1445
|
+
private readonly i18n;
|
|
1446
|
+
private visualBlockIdSequence;
|
|
1340
1447
|
protected readonly colorTokens: typeof LayoutColorToken;
|
|
1341
1448
|
selected: {
|
|
1342
|
-
type: 'section' | 'row' | 'column' | 'field';
|
|
1449
|
+
type: 'section' | 'row' | 'column' | 'field' | 'visualBlock';
|
|
1343
1450
|
sectionIndex?: number;
|
|
1344
1451
|
rowIndex?: number;
|
|
1345
1452
|
columnIndex?: number;
|
|
1346
1453
|
fieldName?: string;
|
|
1454
|
+
itemId?: string;
|
|
1347
1455
|
} | null;
|
|
1348
1456
|
gapGlobal: number;
|
|
1349
1457
|
setGapGlobal(val: number | string): void;
|
|
@@ -1368,6 +1476,7 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1368
1476
|
* Fields that are not yet placed in any section/column of the layout.
|
|
1369
1477
|
*/
|
|
1370
1478
|
get availableFields(): FieldMetadata[];
|
|
1479
|
+
t(key: string, params?: Record<string, string | number | boolean | null | undefined>): string;
|
|
1371
1480
|
get columnDropListIds(): string[];
|
|
1372
1481
|
getColumnId(sectionIndex: number, rowIndex: number, columnIndex: number): string;
|
|
1373
1482
|
private parseColumnId;
|
|
@@ -1378,10 +1487,24 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1378
1487
|
selectRow(sectionIndex: number, rowIndex: number): void;
|
|
1379
1488
|
selectColumn(sectionIndex: number, rowIndex: number, columnIndex: number): void;
|
|
1380
1489
|
dropField({ event }: FieldDropEvent): void;
|
|
1490
|
+
private getColumnTargetByIndex;
|
|
1491
|
+
private getLayoutItemTargetByIndex;
|
|
1381
1492
|
dropSection(event: CdkDragDrop<FormSection[]>): void;
|
|
1382
1493
|
addSection(): void;
|
|
1383
1494
|
removeSection(index: number): void;
|
|
1384
1495
|
onSectionUpdated(index: number, updatedSection: FormSection): void;
|
|
1496
|
+
addVisualBlockToColumn(event: AddVisualBlockEvent): void;
|
|
1497
|
+
private createVisualBlockItemId;
|
|
1498
|
+
addApiFieldToColumn(event: AddApiFieldEvent): void;
|
|
1499
|
+
openVisualBlockEditor(event: {
|
|
1500
|
+
sectionIndex: number;
|
|
1501
|
+
rowIndex: number;
|
|
1502
|
+
columnIndex: number;
|
|
1503
|
+
itemId: string;
|
|
1504
|
+
}): void;
|
|
1505
|
+
moveVisualBlock(event: MoveVisualBlockEvent): void;
|
|
1506
|
+
moveVisualBlockToColumn(event: MoveVisualBlockToColumnEvent): void;
|
|
1507
|
+
removeVisualBlock(event: VisualBlockEvent): void;
|
|
1385
1508
|
private emitNewConfig;
|
|
1386
1509
|
onApplyStyleToAll(patch: Partial<FormSection>): void;
|
|
1387
1510
|
trackBySection(index: number, s: FormSection & {
|
|
@@ -1394,15 +1517,17 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1394
1517
|
declare class RowConfiguratorComponent implements OnChanges {
|
|
1395
1518
|
row: FormRow;
|
|
1396
1519
|
fieldMetadata: FieldMetadata[];
|
|
1520
|
+
availableFields: FieldMetadata[];
|
|
1397
1521
|
sectionIndex: number;
|
|
1398
1522
|
rowIndex: number;
|
|
1399
1523
|
isLastRow: boolean;
|
|
1400
1524
|
selected: {
|
|
1401
|
-
type: 'section' | 'row' | 'column' | 'field';
|
|
1525
|
+
type: 'section' | 'row' | 'column' | 'field' | 'visualBlock';
|
|
1402
1526
|
sectionIndex?: number;
|
|
1403
1527
|
rowIndex?: number;
|
|
1404
1528
|
columnIndex?: number;
|
|
1405
1529
|
fieldName?: string;
|
|
1530
|
+
itemId?: string;
|
|
1406
1531
|
} | null;
|
|
1407
1532
|
availableFieldsListId: string | null;
|
|
1408
1533
|
connectedDropListIds: string[];
|
|
@@ -1412,8 +1537,42 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1412
1537
|
remove: EventEmitter<void>;
|
|
1413
1538
|
applyRowGapAll: EventEmitter<number>;
|
|
1414
1539
|
fieldDrop: EventEmitter<CdkDragDrop<any, any, any>>;
|
|
1540
|
+
addVisualBlock: EventEmitter<{
|
|
1541
|
+
rowIndex: number;
|
|
1542
|
+
columnIndex: number;
|
|
1543
|
+
presetId: VisualBlockPresetId;
|
|
1544
|
+
}>;
|
|
1545
|
+
addApiField: EventEmitter<{
|
|
1546
|
+
rowIndex: number;
|
|
1547
|
+
columnIndex: number;
|
|
1548
|
+
fieldName: string;
|
|
1549
|
+
}>;
|
|
1550
|
+
editVisualBlock: EventEmitter<{
|
|
1551
|
+
rowIndex: number;
|
|
1552
|
+
columnIndex: number;
|
|
1553
|
+
itemId: string;
|
|
1554
|
+
}>;
|
|
1555
|
+
moveVisualBlock: EventEmitter<{
|
|
1556
|
+
rowIndex: number;
|
|
1557
|
+
columnIndex: number;
|
|
1558
|
+
itemId: string;
|
|
1559
|
+
direction: -1 | 1;
|
|
1560
|
+
}>;
|
|
1561
|
+
moveVisualBlockToColumn: EventEmitter<{
|
|
1562
|
+
rowIndex: number;
|
|
1563
|
+
columnIndex: number;
|
|
1564
|
+
targetColumnIndex: number;
|
|
1565
|
+
itemId: string;
|
|
1566
|
+
}>;
|
|
1567
|
+
removeVisualBlock: EventEmitter<{
|
|
1568
|
+
rowIndex: number;
|
|
1569
|
+
columnIndex: number;
|
|
1570
|
+
itemId: string;
|
|
1571
|
+
}>;
|
|
1415
1572
|
select: EventEmitter<any>;
|
|
1416
1573
|
activeDropIndex: number | null;
|
|
1574
|
+
protected readonly visualBlockPresets: readonly VisualBlockPreset[];
|
|
1575
|
+
private readonly i18n;
|
|
1417
1576
|
private hoverTimer;
|
|
1418
1577
|
protected readonly breakpoints: Breakpoint[];
|
|
1419
1578
|
previewBreakpoint: Breakpoint;
|
|
@@ -1426,6 +1585,19 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1426
1585
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1427
1586
|
private rebuildConnectedColumnsCache;
|
|
1428
1587
|
getFieldByName(fieldName: string): FieldMetadata;
|
|
1588
|
+
getColumnLayoutItems(column: FormColumn): FormLayoutItem[];
|
|
1589
|
+
hasColumnContent(column: FormColumn): boolean;
|
|
1590
|
+
getVisualBlockLabel(item: FormLayoutItem): string;
|
|
1591
|
+
private findRichContentLabel;
|
|
1592
|
+
private findRichNodeLabel;
|
|
1593
|
+
t(key: string, params?: Record<string, string | number | boolean | null | undefined>): string;
|
|
1594
|
+
getFieldLabel(field: FieldMetadata): string;
|
|
1595
|
+
selectVisualBlock(columnIndex: number, item: FormLayoutItem, event: MouseEvent): void;
|
|
1596
|
+
openVisualBlockEditor(columnIndex: number, item: FormLayoutItem, event: MouseEvent): void;
|
|
1597
|
+
moveVisualBlockItem(columnIndex: number, item: FormLayoutItem, direction: -1 | 1, event: MouseEvent): void;
|
|
1598
|
+
canMoveVisualBlockToColumn(columnIndex: number, direction: -1 | 1): boolean;
|
|
1599
|
+
moveVisualBlockToAdjacentColumn(columnIndex: number, item: FormLayoutItem, direction: -1 | 1, event: MouseEvent): void;
|
|
1600
|
+
removeVisualBlockItem(columnIndex: number, item: FormLayoutItem, event: MouseEvent): void;
|
|
1429
1601
|
drop(event: CdkDragDrop<string[]>): void;
|
|
1430
1602
|
selectRow(): void;
|
|
1431
1603
|
openColumnConfig(index: number): void;
|
|
@@ -1444,6 +1616,8 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1444
1616
|
removeRow(): void;
|
|
1445
1617
|
moveColumn(index: number, direction: number): void;
|
|
1446
1618
|
clearColumn(index: number): void;
|
|
1619
|
+
addVisualBlockToColumn(index: number, presetId: VisualBlockPresetId): void;
|
|
1620
|
+
addApiFieldToColumn(index: number, fieldName: string): void;
|
|
1447
1621
|
addFieldToColumn(index: number): void;
|
|
1448
1622
|
getColumnId(index: number): string;
|
|
1449
1623
|
private generateId;
|
|
@@ -1467,7 +1641,7 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1467
1641
|
adjustOffset(columnIndex: number, delta: number): void;
|
|
1468
1642
|
getSuggestedSpan(columnIndex: number): number | null;
|
|
1469
1643
|
static ɵfac: i0.ɵɵFactoryDeclaration<RowConfiguratorComponent, never>;
|
|
1470
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RowConfiguratorComponent, "praxis-row-configurator", never, { "row": { "alias": "row"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "sectionIndex": { "alias": "sectionIndex"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "isLastRow": { "alias": "isLastRow"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "availableFieldsListId": { "alias": "availableFieldsListId"; "required": false; }; "connectedDropListIds": { "alias": "connectedDropListIds"; "required": false; }; "gapGlobal": { "alias": "gapGlobal"; "required": false; }; }, { "rowChange": "rowChange"; "remove": "remove"; "applyRowGapAll": "applyRowGapAll"; "fieldDrop": "fieldDrop"; "select": "select"; }, never, never, true, never>;
|
|
1644
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RowConfiguratorComponent, "praxis-row-configurator", never, { "row": { "alias": "row"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "availableFields": { "alias": "availableFields"; "required": false; }; "sectionIndex": { "alias": "sectionIndex"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "isLastRow": { "alias": "isLastRow"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "availableFieldsListId": { "alias": "availableFieldsListId"; "required": false; }; "connectedDropListIds": { "alias": "connectedDropListIds"; "required": false; }; "gapGlobal": { "alias": "gapGlobal"; "required": false; }; }, { "rowChange": "rowChange"; "remove": "remove"; "applyRowGapAll": "applyRowGapAll"; "fieldDrop": "fieldDrop"; "addVisualBlock": "addVisualBlock"; "addApiField": "addApiField"; "editVisualBlock": "editVisualBlock"; "moveVisualBlock": "moveVisualBlock"; "moveVisualBlockToColumn": "moveVisualBlockToColumn"; "removeVisualBlock": "removeVisualBlock"; "select": "select"; }, never, never, true, never>;
|
|
1471
1645
|
}
|
|
1472
1646
|
|
|
1473
1647
|
declare class FieldConfiguratorComponent {
|
|
@@ -1581,6 +1755,7 @@ type ActionCatalogOption = {
|
|
|
1581
1755
|
id: string;
|
|
1582
1756
|
label: string;
|
|
1583
1757
|
description?: string;
|
|
1758
|
+
payloadSchema?: GlobalActionCatalogEntry['payloadSchema'];
|
|
1584
1759
|
param?: {
|
|
1585
1760
|
required?: boolean;
|
|
1586
1761
|
label?: string;
|
|
@@ -1634,7 +1809,6 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1634
1809
|
isBusy$: BehaviorSubject<boolean>;
|
|
1635
1810
|
private readonly globalActionCatalogSource;
|
|
1636
1811
|
private readonly i18n;
|
|
1637
|
-
readonly legacyActionSpecs: _praxisui_core.GlobalActionSpec[];
|
|
1638
1812
|
readonly globalActionCatalog: ActionCatalogOption[];
|
|
1639
1813
|
readonly customActionValue = "__custom__";
|
|
1640
1814
|
private destroy$;
|
|
@@ -1654,12 +1828,12 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1654
1828
|
label?: string;
|
|
1655
1829
|
}): string;
|
|
1656
1830
|
getHeaderActionSpecById(id: string): ActionCatalogOption | undefined;
|
|
1657
|
-
getHeaderActionSelectValue(value?: string): string;
|
|
1658
|
-
getHeaderActionParam(value?: string): string;
|
|
1659
|
-
getHeaderActionCustomValue(value?: string): string;
|
|
1660
|
-
getHeaderGlobalActionSchema(value?: string): _praxisui_core.GlobalActionUiSchema | undefined;
|
|
1661
|
-
getHeaderSurfaceOpenActionPayload(value?: string): SurfaceOpenPayload;
|
|
1662
|
-
isHeaderActionParamMissing(value?: string): boolean;
|
|
1831
|
+
getHeaderActionSelectValue(value?: string, globalAction?: GlobalActionRef): string;
|
|
1832
|
+
getHeaderActionParam(value?: string, globalAction?: GlobalActionRef): string;
|
|
1833
|
+
getHeaderActionCustomValue(value?: string, globalAction?: GlobalActionRef): string;
|
|
1834
|
+
getHeaderGlobalActionSchema(value?: string, globalAction?: GlobalActionRef): _praxisui_core.GlobalActionUiSchema | undefined;
|
|
1835
|
+
getHeaderSurfaceOpenActionPayload(value?: string, globalAction?: GlobalActionRef): SurfaceOpenPayload;
|
|
1836
|
+
isHeaderActionParamMissing(value?: string, globalAction?: GlobalActionRef): boolean;
|
|
1663
1837
|
onHeaderActionSelectChange(index: number, value: string): void;
|
|
1664
1838
|
onHeaderActionParamChange(index: number, value: string): void;
|
|
1665
1839
|
onHeaderActionCustomChange(index: number, value: string): void;
|
|
@@ -1693,6 +1867,7 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1693
1867
|
private normalizeHeaderActions;
|
|
1694
1868
|
private mapCatalogEntryToActionSpec;
|
|
1695
1869
|
private getActionCatalogDescription;
|
|
1870
|
+
private normalizeHeaderGlobalAction;
|
|
1696
1871
|
private headerActionStyleValidator;
|
|
1697
1872
|
private stringifyHeaderActionStyle;
|
|
1698
1873
|
private parseHeaderActionStyle;
|
|
@@ -1973,5 +2148,14 @@ declare const FORM_COMPONENT_AI_CAPABILITIES: CapabilityCatalog;
|
|
|
1973
2148
|
*/
|
|
1974
2149
|
declare function getFormAiCatalog(formConfig?: FormConfig): AiCapabilityCatalog;
|
|
1975
2150
|
|
|
1976
|
-
|
|
2151
|
+
/**
|
|
2152
|
+
* Manifesto de authoring canônico para o componente praxis-dynamic-form.
|
|
2153
|
+
* Este arquivo define as operações permitidas pela IA para editar formulários.
|
|
2154
|
+
*
|
|
2155
|
+
* @version 1.5.0
|
|
2156
|
+
* @status COMPLIANT - Alinhado com contrato v2, gate de aceitação e semântica local/schema-backed.
|
|
2157
|
+
*/
|
|
2158
|
+
declare const PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|
|
2159
|
+
|
|
2160
|
+
export { ActionsEditorComponent, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DynamicFormLayoutService, FORM_AI_CAPABILITIES, FORM_COMPONENT_AI_CAPABILITIES, FieldConfiguratorComponent, FieldEditorComponent, FormConfigService, FormContextService, FormLayoutService, JsonConfigEditorComponent, LayoutColorToken, LayoutEditorComponent, LayoutPrefsService, PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST, PRAXIS_DYNAMIC_FORM_COMPONENT_METADATA, PRAXIS_FILTER_FORM_COMPONENT_METADATA, PraxisDynamicForm, PraxisDynamicFormConfigEditor, PraxisFilterForm, PraxisFormActionsComponent, RowConfiguratorComponent, RowEditorComponent, SETTINGS_PANEL_DYNAMIC_FORM_PROVIDER, SectionEditorComponent, TASK_PRESETS, applyVisibilityRules, buildDynamicFormApplyPlan, createDynamicFormAuthoringDocument, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
|
|
1977
2161
|
export type { CanvasElement, CanvasElementType, CanvasPathPart, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, DynamicFieldRenderErrorEvent, DynamicFormApplyPlan, DynamicFormAuthoringDocument, DynamicFormBindings, DynamicFormContextSnapshot, DynamicFormMode, DynamicFormPresentationSnapshot, DynamicFormProjectionContext, DynamicFormResolvedRuntimeContract, DynamicFormRuntimeContext, DynamicFormRuntimeValueSource, DynamicFormSchemaPrefsSnapshot, DynamicFormValidationContext, EditorDiagnostic, EditorDocument, FieldPath, FieldPathContainer, FieldPathWithIndex, Capability as FormComponentCapability, CapabilityCatalog as FormComponentCapabilityCatalog, CapabilityCategory as FormComponentCapabilityCategory, ValueKind as FormComponentValueKind, FormConfigLike, IdPath, JsonEditorEvent, JsonValidationResult, LayoutChange, LayoutResult, Operation, Path, PathWithIndex, PraxisFormActionEvent, RemovePolicy, ValidationReport, ValueKind$1 as ValueKind };
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-form",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.12",
|
|
4
4
|
"description": "Angular dynamic form engine for Praxis UI: metadata-driven forms, hooks, and services integrating @praxisui/* packages.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^20.0.0",
|
|
7
7
|
"@angular/core": "^20.0.0",
|
|
8
8
|
"@angular/cdk": "^20.0.0",
|
|
9
|
-
"@praxisui/rich-content": "^8.0.0-beta.
|
|
10
|
-
"@praxisui/settings-panel": "^8.0.0-beta.
|
|
11
|
-
"@praxisui/visual-builder": "^8.0.0-beta.
|
|
12
|
-
"@praxisui/core": "^8.0.0-beta.
|
|
13
|
-
"@praxisui/cron-builder": "^8.0.0-beta.
|
|
9
|
+
"@praxisui/rich-content": "^8.0.0-beta.12",
|
|
10
|
+
"@praxisui/settings-panel": "^8.0.0-beta.12",
|
|
11
|
+
"@praxisui/visual-builder": "^8.0.0-beta.12",
|
|
12
|
+
"@praxisui/core": "^8.0.0-beta.12",
|
|
13
|
+
"@praxisui/cron-builder": "^8.0.0-beta.12"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"tslib": "^2.3.0",
|