@yourself.create/ngx-form-designer 0.0.11 → 0.0.13
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/uch-web-ngx-form-designer.mjs +194 -28
- package/fesm2022/uch-web-ngx-form-designer.mjs.map +1 -1
- package/lib/form-core/form-event-runner.d.ts +2 -0
- package/lib/form-core/models.d.ts +1 -1
- package/lib/form-designer/designer-state.service.d.ts +2 -0
- package/lib/form-designer/widget-inspector.component.d.ts +1 -1
- package/lib/form-renderer/form-journey-viewer.component.d.ts +5 -2
- package/lib/form-renderer/form-viewer/form-viewer.component.d.ts +4 -2
- package/lib/form-renderer/json-form-renderer.component.d.ts +6 -1
- package/lib/widgets/field-widgets/text-field/text-field.component.d.ts +1 -0
- package/lib/widgets/page-widgets/inline-quill-editor.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -24,6 +24,7 @@ export declare class FormEventRunner {
|
|
|
24
24
|
constructor(engine: FormEngine, loggerOrOptions?: FormEventLogger | FormEventRunnerOptions);
|
|
25
25
|
dispose(): void;
|
|
26
26
|
private handleEvent;
|
|
27
|
+
private clearInactiveApiBindingDatasources;
|
|
27
28
|
private executeAction;
|
|
28
29
|
private handleSetValue;
|
|
29
30
|
private handleApiAction;
|
|
@@ -39,4 +40,5 @@ export declare class FormEventRunner {
|
|
|
39
40
|
private collectSourceValues;
|
|
40
41
|
private resolveDatasourceId;
|
|
41
42
|
private normalizeRowsForDatasource;
|
|
43
|
+
private isEmptyEventValue;
|
|
42
44
|
}
|
|
@@ -11,7 +11,7 @@ export interface Html5ValidationProps {
|
|
|
11
11
|
pattern?: string;
|
|
12
12
|
}
|
|
13
13
|
export type LogicOperator = 'AND' | 'OR';
|
|
14
|
-
export type ConditionOperator = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'startsWith' | 'endsWith' | 'empty' | 'notEmpty' | 'truthy';
|
|
14
|
+
export type ConditionOperator = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'startsWith' | 'endsWith' | 'empty' | 'notEmpty' | 'truthy' | 'notTruthy';
|
|
15
15
|
export type ConditionValueSource = 'literal' | 'field';
|
|
16
16
|
export type RuleAction = 'visible' | 'hidden' | 'enable' | 'disable' | 'required' | 'optional';
|
|
17
17
|
export type RuleSeverity = 'error' | 'warn';
|
|
@@ -218,6 +218,8 @@ export declare class DesignerStateService {
|
|
|
218
218
|
private sameScope;
|
|
219
219
|
private isScopePrefix;
|
|
220
220
|
private cloneValue;
|
|
221
|
+
private cloneFieldForDuplication;
|
|
222
|
+
private createEventDatasourceId;
|
|
221
223
|
private clampIndex;
|
|
222
224
|
private isLayoutNode;
|
|
223
225
|
private detachNode;
|
|
@@ -17,7 +17,7 @@ export declare class WidgetInspectorComponent {
|
|
|
17
17
|
private readonly readOnlyFieldSnapshot;
|
|
18
18
|
readonly inspectorField: import("@angular/core").Signal<FieldSchema>;
|
|
19
19
|
currentStyle: import("@angular/core").Signal<Partial<StyleTokenSet>>;
|
|
20
|
-
dataConsumer: import("@angular/core").Signal<"image" | "
|
|
20
|
+
dataConsumer: import("@angular/core").Signal<"image" | "none" | "value" | "list">;
|
|
21
21
|
bindingShape: import("@angular/core").Signal<import("@uch-web/ngx-form-designer").DataShape | null>;
|
|
22
22
|
dataTargetPath: import("@angular/core").Signal<string>;
|
|
23
23
|
getWidgetIcon(): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { JsonFormRendererComponent, FormValidationResult, FormValueMap, FormSubmitResult } from './json-form-renderer.component';
|
|
2
|
+
import { JsonFormRendererComponent, FormValidationResult, FormValueMap, FormSubmitResult, type SeverityEvaluationMode } from './json-form-renderer.component';
|
|
3
3
|
import type { DesignerEventApiDefinition, FieldDisplayLabel, UploadedFileRef, WidgetEventApiExecutor } from '../form-core/models';
|
|
4
4
|
import type { FormJourneyProject } from '../form-core/form-journey.models';
|
|
5
5
|
import { type FieldDataAccessMap, type RuntimeFieldDataAccessApi } from '../data/runtime-field-data-access-registry.service';
|
|
@@ -8,6 +8,7 @@ export type JourneyFormDataByPage = Record<string, FormValueMap>;
|
|
|
8
8
|
export declare class FormJourneyViewerComponent {
|
|
9
9
|
journey: FormJourneyProject;
|
|
10
10
|
viewOnly: boolean;
|
|
11
|
+
severityEvaluationMode: SeverityEvaluationMode;
|
|
11
12
|
eventApis: DesignerEventApiDefinition[];
|
|
12
13
|
eventApiExecutor?: WidgetEventApiExecutor;
|
|
13
14
|
initialValues?: Record<string, unknown>;
|
|
@@ -16,6 +17,7 @@ export declare class FormJourneyViewerComponent {
|
|
|
16
17
|
fieldDataAccessApi?: RuntimeFieldDataAccessApi;
|
|
17
18
|
formContentId?: string;
|
|
18
19
|
formContentVersion?: string;
|
|
20
|
+
refreshKey?: unknown;
|
|
19
21
|
formDataChange: EventEmitter<FormValueMap>;
|
|
20
22
|
formDataByPageChange: EventEmitter<JourneyFormDataByPage>;
|
|
21
23
|
formValidationChange: EventEmitter<FormValidationResult>;
|
|
@@ -40,6 +42,7 @@ export declare class FormJourneyViewerComponent {
|
|
|
40
42
|
onSubmit(result: FormSubmitResult): void;
|
|
41
43
|
private normalizeInitialValues;
|
|
42
44
|
private normalizeInitialFieldLabels;
|
|
45
|
+
private resetViewerState;
|
|
43
46
|
private toValueScope;
|
|
44
47
|
private toFieldLabelScope;
|
|
45
48
|
private mergeValueScope;
|
|
@@ -47,5 +50,5 @@ export declare class FormJourneyViewerComponent {
|
|
|
47
50
|
private toJourneyValueMapByPage;
|
|
48
51
|
private flattenJourneyValueMapByPage;
|
|
49
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormJourneyViewerComponent, never>;
|
|
50
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormJourneyViewerComponent, "app-form-journey-viewer", never, { "journey": { "alias": "journey"; "required": true; }; "viewOnly": { "alias": "viewOnly"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; "initialValues": { "alias": "initialValues"; "required": false; }; "initialFieldLabels": { "alias": "initialFieldLabels"; "required": false; }; "fieldDataAccessMap": { "alias": "fieldDataAccessMap"; "required": false; }; "fieldDataAccessApi": { "alias": "fieldDataAccessApi"; "required": false; }; "formContentId": { "alias": "formContentId"; "required": false; }; "formContentVersion": { "alias": "formContentVersion"; "required": false; }; }, { "formDataChange": "formDataChange"; "formDataByPageChange": "formDataByPageChange"; "formValidationChange": "formValidationChange"; "uploadedFilesChange": "uploadedFilesChange"; "submit": "submit"; "activePageIdChange": "activePageIdChange"; }, never, never, true, never>;
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormJourneyViewerComponent, "app-form-journey-viewer", never, { "journey": { "alias": "journey"; "required": true; }; "viewOnly": { "alias": "viewOnly"; "required": false; }; "severityEvaluationMode": { "alias": "severityEvaluationMode"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; "initialValues": { "alias": "initialValues"; "required": false; }; "initialFieldLabels": { "alias": "initialFieldLabels"; "required": false; }; "fieldDataAccessMap": { "alias": "fieldDataAccessMap"; "required": false; }; "fieldDataAccessApi": { "alias": "fieldDataAccessApi"; "required": false; }; "formContentId": { "alias": "formContentId"; "required": false; }; "formContentVersion": { "alias": "formContentVersion"; "required": false; }; "refreshKey": { "alias": "refreshKey"; "required": false; }; }, { "formDataChange": "formDataChange"; "formDataByPageChange": "formDataByPageChange"; "formValidationChange": "formValidationChange"; "uploadedFilesChange": "uploadedFilesChange"; "submit": "submit"; "activePageIdChange": "activePageIdChange"; }, never, never, true, never>;
|
|
51
54
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { DesignerEventApiDefinition, FieldDisplayLabel, FormSchema, UploadedFileRef, WidgetEventApiExecutor } from '../../form-core/models';
|
|
3
|
-
import { JsonFormRendererComponent, FormSubmitResult, FormValidationResult, FormValueMap, GroupedFormValues, CombinedFormValues } from '../json-form-renderer.component';
|
|
3
|
+
import { JsonFormRendererComponent, FormSubmitResult, FormValidationResult, FormValueMap, GroupedFormValues, CombinedFormValues, type SeverityEvaluationMode } from '../json-form-renderer.component';
|
|
4
4
|
import { FormJourneyViewerComponent, type JourneyFormDataByPage } from '../form-journey-viewer.component';
|
|
5
5
|
import { type FieldDataAccessMap, type RuntimeFieldDataAccessApi } from '../../data/runtime-field-data-access-registry.service';
|
|
6
6
|
import type { FormJourneyProject } from '../../form-core/form-journey.models';
|
|
@@ -20,12 +20,14 @@ export declare class FormViewerComponent implements OnInit, OnDestroy {
|
|
|
20
20
|
get dataUsesFieldNameKeys(): boolean;
|
|
21
21
|
options: FormViewerOptions;
|
|
22
22
|
viewOnly: boolean;
|
|
23
|
+
severityEvaluationMode: SeverityEvaluationMode;
|
|
23
24
|
eventApis: DesignerEventApiDefinition[];
|
|
24
25
|
eventApiExecutor?: WidgetEventApiExecutor;
|
|
25
26
|
fieldDataAccessMap?: FieldDataAccessMap;
|
|
26
27
|
fieldDataAccessApi?: RuntimeFieldDataAccessApi;
|
|
27
28
|
formContentId?: string;
|
|
28
29
|
formContentVersion?: string;
|
|
30
|
+
refreshKey?: unknown;
|
|
29
31
|
formDataChange: EventEmitter<FormValueMap>;
|
|
30
32
|
formDataByPageChange: EventEmitter<JourneyFormDataByPage>;
|
|
31
33
|
formValidationChange: EventEmitter<FormValidationResult>;
|
|
@@ -74,5 +76,5 @@ export declare class FormViewerComponent implements OnInit, OnDestroy {
|
|
|
74
76
|
private isFieldIdValue;
|
|
75
77
|
private isRecord;
|
|
76
78
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormViewerComponent, never>;
|
|
77
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormViewerComponent, "app-form-viewer", never, { "schema": { "alias": "schema"; "required": false; }; "journey": { "alias": "journey"; "required": false; }; "data": { "alias": "data"; "required": false; }; "dataUsesFieldNameKeys": { "alias": "dataUsesFieldNameKeys"; "required": false; }; "options": { "alias": "options"; "required": false; }; "viewOnly": { "alias": "viewOnly"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; "fieldDataAccessMap": { "alias": "fieldDataAccessMap"; "required": false; }; "fieldDataAccessApi": { "alias": "fieldDataAccessApi"; "required": false; }; "formContentId": { "alias": "formContentId"; "required": false; }; "formContentVersion": { "alias": "formContentVersion"; "required": false; }; }, { "formDataChange": "formDataChange"; "formDataByPageChange": "formDataByPageChange"; "formValidationChange": "formValidationChange"; "uploadedFilesChange": "uploadedFilesChange"; "submit": "submit"; "activePageIdChange": "activePageIdChange"; }, never, never, true, never>;
|
|
79
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormViewerComponent, "app-form-viewer", never, { "schema": { "alias": "schema"; "required": false; }; "journey": { "alias": "journey"; "required": false; }; "data": { "alias": "data"; "required": false; }; "dataUsesFieldNameKeys": { "alias": "dataUsesFieldNameKeys"; "required": false; }; "options": { "alias": "options"; "required": false; }; "viewOnly": { "alias": "viewOnly"; "required": false; }; "severityEvaluationMode": { "alias": "severityEvaluationMode"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; "fieldDataAccessMap": { "alias": "fieldDataAccessMap"; "required": false; }; "fieldDataAccessApi": { "alias": "fieldDataAccessApi"; "required": false; }; "formContentId": { "alias": "formContentId"; "required": false; }; "formContentVersion": { "alias": "formContentVersion"; "required": false; }; "refreshKey": { "alias": "refreshKey"; "required": false; }; }, { "formDataChange": "formDataChange"; "formDataByPageChange": "formDataByPageChange"; "formValidationChange": "formValidationChange"; "uploadedFilesChange": "uploadedFilesChange"; "submit": "submit"; "activePageIdChange": "activePageIdChange"; }, never, never, true, never>;
|
|
78
80
|
}
|
|
@@ -15,6 +15,7 @@ export interface FormFieldValue {
|
|
|
15
15
|
export type FormValueMap = Record<string, FormFieldValue>;
|
|
16
16
|
export type GroupedFormValues = Record<string, FormValueMap>;
|
|
17
17
|
export type CombinedFormValues = Record<string, FormFieldValue | FormValueMap>;
|
|
18
|
+
export type SeverityEvaluationMode = 'rule-failed' | 'rule-matched';
|
|
18
19
|
export interface FormValidationResult {
|
|
19
20
|
errors: Record<string, string[]>;
|
|
20
21
|
isValid: boolean;
|
|
@@ -37,6 +38,7 @@ export interface FormFieldValidatorState {
|
|
|
37
38
|
source: 'required' | 'html5' | 'rule';
|
|
38
39
|
active: boolean;
|
|
39
40
|
valid: boolean;
|
|
41
|
+
isSeverityTriggered?: boolean;
|
|
40
42
|
value?: unknown;
|
|
41
43
|
message?: string;
|
|
42
44
|
severity?: RuleSeverity;
|
|
@@ -68,10 +70,12 @@ export declare class JsonFormRendererComponent implements OnInit, OnChanges, OnD
|
|
|
68
70
|
reason?: string;
|
|
69
71
|
}>;
|
|
70
72
|
uploadOnSubmit: boolean;
|
|
73
|
+
severityEvaluationMode: SeverityEvaluationMode;
|
|
71
74
|
fieldDataAccessMap?: FieldDataAccessMap;
|
|
72
75
|
fieldDataAccessApi?: RuntimeFieldDataAccessApi;
|
|
73
76
|
formContentId?: string;
|
|
74
77
|
formContentVersion?: string;
|
|
78
|
+
refreshKey?: unknown;
|
|
75
79
|
valueChange: EventEmitter<FormValueMap>;
|
|
76
80
|
groupedValueChange: EventEmitter<GroupedFormValues>;
|
|
77
81
|
combinedValueChange: EventEmitter<CombinedFormValues>;
|
|
@@ -107,6 +111,7 @@ export declare class JsonFormRendererComponent implements OnInit, OnChanges, OnD
|
|
|
107
111
|
private buildFieldValidationState;
|
|
108
112
|
private describeFieldValidators;
|
|
109
113
|
private hasRequiredValidation;
|
|
114
|
+
private isRuleSeverityTriggered;
|
|
110
115
|
private getRuleOutcomes;
|
|
111
116
|
private describeRuleName;
|
|
112
117
|
private getRuleValidationMessage;
|
|
@@ -136,5 +141,5 @@ export declare class JsonFormRendererComponent implements OnInit, OnChanges, OnD
|
|
|
136
141
|
private isGroupValue;
|
|
137
142
|
private isUploadedFileRef;
|
|
138
143
|
static ɵfac: i0.ɵɵFactoryDeclaration<JsonFormRendererComponent, never>;
|
|
139
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<JsonFormRendererComponent, "app-json-form-renderer", never, { "schema": { "alias": "schema"; "required": false; }; "initialValues": { "alias": "initialValues"; "required": false; }; "initialFieldLabels": { "alias": "initialFieldLabels"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "device": { "alias": "device"; "required": false; }; "showLayoutGuides": { "alias": "showLayoutGuides"; "required": false; }; "breakpoint": { "alias": "breakpoint"; "required": false; }; "eventLogger": { "alias": "eventLogger"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; "navigateToPage": { "alias": "navigateToPage"; "required": false; }; "uploadOnSubmit": { "alias": "uploadOnSubmit"; "required": false; }; "fieldDataAccessMap": { "alias": "fieldDataAccessMap"; "required": false; }; "fieldDataAccessApi": { "alias": "fieldDataAccessApi"; "required": false; }; "formContentId": { "alias": "formContentId"; "required": false; }; "formContentVersion": { "alias": "formContentVersion"; "required": false; }; }, { "valueChange": "valueChange"; "groupedValueChange": "groupedValueChange"; "combinedValueChange": "combinedValueChange"; "validationChange": "validationChange"; "uploadedFilesChange": "uploadedFilesChange"; "formSubmit": "formSubmit"; }, never, never, true, never>;
|
|
144
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<JsonFormRendererComponent, "app-json-form-renderer", never, { "schema": { "alias": "schema"; "required": false; }; "initialValues": { "alias": "initialValues"; "required": false; }; "initialFieldLabels": { "alias": "initialFieldLabels"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "device": { "alias": "device"; "required": false; }; "showLayoutGuides": { "alias": "showLayoutGuides"; "required": false; }; "breakpoint": { "alias": "breakpoint"; "required": false; }; "eventLogger": { "alias": "eventLogger"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; "navigateToPage": { "alias": "navigateToPage"; "required": false; }; "uploadOnSubmit": { "alias": "uploadOnSubmit"; "required": false; }; "severityEvaluationMode": { "alias": "severityEvaluationMode"; "required": false; }; "fieldDataAccessMap": { "alias": "fieldDataAccessMap"; "required": false; }; "fieldDataAccessApi": { "alias": "fieldDataAccessApi"; "required": false; }; "formContentId": { "alias": "formContentId"; "required": false; }; "formContentVersion": { "alias": "formContentVersion"; "required": false; }; "refreshKey": { "alias": "refreshKey"; "required": false; }; }, { "valueChange": "valueChange"; "groupedValueChange": "groupedValueChange"; "combinedValueChange": "combinedValueChange"; "validationChange": "validationChange"; "uploadedFilesChange": "uploadedFilesChange"; "formSubmit": "formSubmit"; }, never, never, true, never>;
|
|
140
145
|
}
|
|
@@ -53,6 +53,7 @@ export declare class TextFieldWidgetComponent implements OnInit, OnDestroy {
|
|
|
53
53
|
get error(): string | null;
|
|
54
54
|
private syncEnabledState;
|
|
55
55
|
private refreshValueFromDataSource;
|
|
56
|
+
private hasResolvedRows;
|
|
56
57
|
private clearResolvedValue;
|
|
57
58
|
private hasSelectedRowMatch;
|
|
58
59
|
private getDataConfigSignature;
|
|
@@ -26,6 +26,7 @@ export declare class InlineQuillEditorComponent implements AfterViewInit, OnChan
|
|
|
26
26
|
private applyEditorAppearance;
|
|
27
27
|
private focusToEnd;
|
|
28
28
|
onEditorMouseDown(event: MouseEvent): void;
|
|
29
|
+
onEditorClick(event: MouseEvent): void;
|
|
29
30
|
onEditorPointerDown(event: PointerEvent): void;
|
|
30
31
|
onEditorTouchStart(event: TouchEvent): void;
|
|
31
32
|
onEditorDragStart(event: DragEvent): void;
|