@yourself.create/ngx-form-designer 0.0.3 → 0.0.5
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 +4359 -1414
- package/fesm2022/uch-web-ngx-form-designer.mjs.map +1 -1
- package/lib/ai/provide-form-designer-angai-feature.d.ts +16 -0
- package/lib/form-core/form-engine.d.ts +7 -3
- package/lib/form-core/form-event-runner.d.ts +14 -0
- package/lib/form-core/form-journey.models.d.ts +30 -0
- package/lib/form-core/models.d.ts +7 -12
- package/lib/form-designer/designer-state.service.d.ts +34 -0
- package/lib/form-designer/dynamic-properties/dynamic-properties.component.d.ts +3 -5
- package/lib/form-designer/events-workspace.component.d.ts +28 -3
- package/lib/form-designer/form-designer-shell.component.d.ts +30 -5
- package/lib/form-designer/form-journey-state.service.d.ts +28 -0
- package/lib/form-designer/form-preview.component.d.ts +20 -1
- package/lib/form-designer/inspector-sections/inspector-backgrounds-section.component.d.ts +5 -0
- package/lib/form-designer/inspector-sections/inspector-transform-section.component.d.ts +12 -0
- package/lib/form-designer/inspector-sections/inspector-typography-section.component.d.ts +1 -0
- package/lib/form-designer/json-form-designer.component.d.ts +21 -2
- package/lib/form-designer/layout-canvas.component.d.ts +13 -1
- package/lib/form-designer/properties-panel.component.d.ts +4 -0
- package/lib/form-designer/template-library.d.ts +2 -0
- package/lib/form-renderer/form-journey-viewer.component.d.ts +51 -0
- package/lib/form-renderer/form-viewer/form-viewer.component.d.ts +16 -3
- package/lib/form-renderer/json-form-renderer.component.d.ts +34 -3
- package/lib/form-renderer/layout-node.component.d.ts +12 -1
- package/lib/ui/ui-color-swatch.component.d.ts +1 -0
- package/lib/widgets/field-widgets/checkbox-group/checkbox-group-widget.component.d.ts +5 -0
- package/lib/widgets/field-widgets/option-field-labels.d.ts +3 -0
- package/lib/widgets/field-widgets/radio/radio-widget.component.d.ts +5 -0
- package/lib/widgets/field-widgets/search/search-widget.component.d.ts +4 -0
- package/lib/widgets/field-widgets/select/select-widget.component.d.ts +9 -0
- package/lib/widgets/field-widgets/text-field/text-field.component.d.ts +3 -0
- package/lib/widgets/widget-definition.d.ts +1 -1
- package/package.json +3 -2
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Provider } from '@angular/core';
|
|
2
|
+
import { type AiToolRuntimeContext } from '@uch-web/angai';
|
|
3
|
+
import type { DesignerEventApiDefinition } from '../form-core/models';
|
|
4
|
+
import { DesignerStateService } from '../form-designer/designer-state.service';
|
|
5
|
+
import { type FormDesignerToolContext } from './plugins/form-designer-tool-plugin';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class FormDesignerAiFeatureStateService {
|
|
8
|
+
private readonly widgetDefinitions;
|
|
9
|
+
private readonly eventApisSignal;
|
|
10
|
+
setEventApis(apis: DesignerEventApiDefinition[]): void;
|
|
11
|
+
createToolContext(state: DesignerStateService): FormDesignerToolContext;
|
|
12
|
+
createDiscoveryContext(state: DesignerStateService): AiToolRuntimeContext;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormDesignerAiFeatureStateService, never>;
|
|
14
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FormDesignerAiFeatureStateService>;
|
|
15
|
+
}
|
|
16
|
+
export declare function provideFormDesignerAngaiFeature(): Provider[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FormSchema, WidgetEventType } from './models';
|
|
1
|
+
import { FieldDisplayLabel, FormSchema, WidgetEventType } from './models';
|
|
2
2
|
/**
|
|
3
3
|
* A framework-agnostic engine to handle form state, validation, and visibility logic.
|
|
4
4
|
*/
|
|
@@ -17,6 +17,7 @@ export interface DataSourceUpdateEvent {
|
|
|
17
17
|
export declare class FormEngine {
|
|
18
18
|
private schema;
|
|
19
19
|
private values;
|
|
20
|
+
private fieldLabels;
|
|
20
21
|
private errors;
|
|
21
22
|
private ruleEvaluator;
|
|
22
23
|
private valueSubject;
|
|
@@ -31,12 +32,15 @@ export declare class FormEngine {
|
|
|
31
32
|
value: Record<string, unknown>;
|
|
32
33
|
valueChanges: Observable<Record<string, unknown>>;
|
|
33
34
|
};
|
|
34
|
-
constructor(schema: FormSchema, initialValues?: Record<string, unknown>);
|
|
35
|
+
constructor(schema: FormSchema, initialValues?: Record<string, unknown>, initialFieldLabels?: Record<string, FieldDisplayLabel>);
|
|
35
36
|
getSchema(): FormSchema;
|
|
36
37
|
updateSchema(schema: FormSchema): void;
|
|
37
38
|
getValue(fieldName: string): unknown;
|
|
38
39
|
setValue(fieldName: string, value: unknown): void;
|
|
39
40
|
getValues(): Record<string, unknown>;
|
|
41
|
+
getFieldLabel(fieldName: string): FieldDisplayLabel | undefined;
|
|
42
|
+
getFieldLabels(): Record<string, FieldDisplayLabel>;
|
|
43
|
+
setFieldLabel(fieldName: string, label: FieldDisplayLabel | undefined): void;
|
|
40
44
|
getErrors(): Record<string, string[]>;
|
|
41
45
|
getError(fieldName: string): string | null;
|
|
42
46
|
emitUiEvent(event: Omit<UiEvent, 'ts'>): void;
|
|
@@ -53,4 +57,4 @@ export declare class FormEngine {
|
|
|
53
57
|
private evaluateEnterpriseRules;
|
|
54
58
|
private applyRuleAction;
|
|
55
59
|
}
|
|
56
|
-
export declare function createFormEngine(schema: FormSchema, initialValues?: Record<string, unknown>): FormEngine;
|
|
60
|
+
export declare function createFormEngine(schema: FormSchema, initialValues?: Record<string, unknown>, initialFieldLabels?: Record<string, FieldDisplayLabel>): FormEngine;
|
|
@@ -8,6 +8,10 @@ export interface FormEventRunnerOptions {
|
|
|
8
8
|
logger?: FormEventLogger;
|
|
9
9
|
apiExecutor?: WidgetEventApiExecutor;
|
|
10
10
|
dataSourceWriter?: WidgetEventDatasourceWriter;
|
|
11
|
+
navigateToPage?: (pageId: string) => Promise<{
|
|
12
|
+
ok: boolean;
|
|
13
|
+
reason?: string;
|
|
14
|
+
}>;
|
|
11
15
|
}
|
|
12
16
|
export declare class FormEventRunner {
|
|
13
17
|
private engine;
|
|
@@ -16,12 +20,22 @@ export declare class FormEventRunner {
|
|
|
16
20
|
private readonly logger;
|
|
17
21
|
private readonly apiExecutor?;
|
|
18
22
|
private readonly dataSourceWriter?;
|
|
23
|
+
private readonly navigateToPage?;
|
|
19
24
|
constructor(engine: FormEngine, loggerOrOptions?: FormEventLogger | FormEventRunnerOptions);
|
|
20
25
|
dispose(): void;
|
|
21
26
|
private handleEvent;
|
|
22
27
|
private executeAction;
|
|
23
28
|
private handleSetValue;
|
|
24
29
|
private handleApiAction;
|
|
30
|
+
private handleNavigateAction;
|
|
31
|
+
private evaluateNavigateCondition;
|
|
32
|
+
private evaluateLogicGroup;
|
|
33
|
+
private isLogicCondition;
|
|
34
|
+
private evaluateLogicCondition;
|
|
35
|
+
private compareValues;
|
|
36
|
+
private containsValue;
|
|
37
|
+
private isEmptyValue;
|
|
38
|
+
private getFieldValue;
|
|
25
39
|
private collectSourceValues;
|
|
26
40
|
private resolveDatasourceId;
|
|
27
41
|
private normalizeRowsForDatasource;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { FormSchema } from './models';
|
|
2
|
+
export interface FormJourneyPage {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
route: string;
|
|
6
|
+
schema: FormSchema;
|
|
7
|
+
}
|
|
8
|
+
export interface FormJourneyProject {
|
|
9
|
+
id: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
pages: FormJourneyPage[];
|
|
12
|
+
startPageId: string;
|
|
13
|
+
metadata?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createFormJourneyPage(opts?: {
|
|
16
|
+
id?: string;
|
|
17
|
+
name?: string;
|
|
18
|
+
route?: string;
|
|
19
|
+
schema?: FormSchema;
|
|
20
|
+
}): FormJourneyPage;
|
|
21
|
+
export declare function createFormJourneyProject(opts?: {
|
|
22
|
+
id?: string;
|
|
23
|
+
title?: string;
|
|
24
|
+
pages?: FormJourneyPage[];
|
|
25
|
+
startPageId?: string;
|
|
26
|
+
metadata?: Record<string, unknown>;
|
|
27
|
+
}): FormJourneyProject;
|
|
28
|
+
export declare function isFormJourneyProject(value: unknown): value is FormJourneyProject;
|
|
29
|
+
export declare function normalizeToJourney(value: FormSchema | FormJourneyProject): FormJourneyProject;
|
|
30
|
+
export declare function unwrapSinglePageJourney(value: FormJourneyProject): FormSchema | FormJourneyProject;
|
|
@@ -114,12 +114,9 @@ export interface FieldSchema {
|
|
|
114
114
|
appearance?: 'outline' | 'fill' | 'standard';
|
|
115
115
|
readonly?: boolean;
|
|
116
116
|
disabled?: boolean;
|
|
117
|
-
prefixIcon?: string;
|
|
118
|
-
suffixIcon?: string;
|
|
119
117
|
html5?: Html5ValidationProps;
|
|
120
118
|
validation?: ValidationRule[];
|
|
121
119
|
dependencies?: DependencyRule[];
|
|
122
|
-
conditionalVisibility?: ConditionalVisibility;
|
|
123
120
|
rules?: FormRule[];
|
|
124
121
|
dataConfig?: DataSourceConfig;
|
|
125
122
|
events?: WidgetEventBinding[];
|
|
@@ -195,7 +192,12 @@ export interface WidgetEventActionApi {
|
|
|
195
192
|
inputTransformScript?: string;
|
|
196
193
|
outputTransformScript?: string;
|
|
197
194
|
}
|
|
198
|
-
export
|
|
195
|
+
export interface WidgetEventActionNavigate {
|
|
196
|
+
type: 'navigate';
|
|
197
|
+
targetPageId: string;
|
|
198
|
+
when?: LogicGroup;
|
|
199
|
+
}
|
|
200
|
+
export type WidgetEventAction = WidgetEventActionSetValue | WidgetEventActionLog | WidgetEventActionApi | WidgetEventActionNavigate;
|
|
199
201
|
export interface WidgetEventApiExecutionRequest {
|
|
200
202
|
eventId: string;
|
|
201
203
|
action: WidgetEventActionApi;
|
|
@@ -280,15 +282,11 @@ export interface DataDependencyBinding {
|
|
|
280
282
|
fieldId: string;
|
|
281
283
|
paramKey: string;
|
|
282
284
|
}
|
|
283
|
-
export interface ConditionalVisibility {
|
|
284
|
-
fieldName: string;
|
|
285
|
-
operator: 'equals' | 'notEquals' | 'contains' | 'isEmpty' | 'isNotEmpty' | 'greaterThan' | 'lessThan';
|
|
286
|
-
value?: unknown;
|
|
287
|
-
}
|
|
288
285
|
export interface OptionSchema {
|
|
289
286
|
label: string;
|
|
290
287
|
value: string | number;
|
|
291
288
|
}
|
|
289
|
+
export type FieldDisplayLabel = string | string[];
|
|
292
290
|
export interface DependencyRule {
|
|
293
291
|
effect: 'show' | 'hide' | 'enable' | 'disable' | 'require' | 'optional';
|
|
294
292
|
when: string;
|
|
@@ -359,7 +357,4 @@ export interface FormSchema {
|
|
|
359
357
|
fields: FieldSchema[];
|
|
360
358
|
layout: LayoutNode;
|
|
361
359
|
ui?: FormUIConfig;
|
|
362
|
-
submitButtonText?: string;
|
|
363
|
-
resetButtonText?: string;
|
|
364
|
-
showResetButton?: boolean;
|
|
365
360
|
}
|
|
@@ -30,6 +30,7 @@ export interface DesignerFieldMoveOptions {
|
|
|
30
30
|
position?: 'before' | 'after';
|
|
31
31
|
index?: number;
|
|
32
32
|
}
|
|
33
|
+
type RelativeInsertPosition = 'before' | 'after';
|
|
33
34
|
interface DragDropEventLike {
|
|
34
35
|
previousContainer: unknown;
|
|
35
36
|
container: unknown;
|
|
@@ -69,6 +70,10 @@ export declare class DesignerStateService {
|
|
|
69
70
|
fields: FieldSchema[];
|
|
70
71
|
scopePath: string[];
|
|
71
72
|
} | null>;
|
|
73
|
+
readonly pendingFieldInsert: import("@angular/core").WritableSignal<{
|
|
74
|
+
referenceFieldId: string;
|
|
75
|
+
position: RelativeInsertPosition;
|
|
76
|
+
} | null>;
|
|
72
77
|
private readonly history;
|
|
73
78
|
private readonly historyIndex;
|
|
74
79
|
private readonly historyLength;
|
|
@@ -78,6 +83,16 @@ export declare class DesignerStateService {
|
|
|
78
83
|
constructor();
|
|
79
84
|
readonly layoutIndex: import("@angular/core").Signal<LayoutIndex>;
|
|
80
85
|
readonly selectedNode: import("@angular/core").Signal<LayoutNode | null>;
|
|
86
|
+
readonly selectedEntry: import("@angular/core").Signal<LayoutIndexEntry | null>;
|
|
87
|
+
readonly selectedColumnId: import("@angular/core").Signal<string | null>;
|
|
88
|
+
readonly selectedRowId: import("@angular/core").Signal<string | null>;
|
|
89
|
+
readonly canInsertColumnBeforeSelection: import("@angular/core").Signal<boolean>;
|
|
90
|
+
readonly canInsertColumnAfterSelection: import("@angular/core").Signal<boolean>;
|
|
91
|
+
readonly canInsertRowInSelectedColumn: import("@angular/core").Signal<boolean>;
|
|
92
|
+
readonly canInsertRowBeforeSelection: import("@angular/core").Signal<boolean>;
|
|
93
|
+
readonly canInsertRowAfterSelection: import("@angular/core").Signal<boolean>;
|
|
94
|
+
readonly canArmFieldInsertBeforeSelection: import("@angular/core").Signal<boolean>;
|
|
95
|
+
readonly canArmFieldInsertAfterSelection: import("@angular/core").Signal<boolean>;
|
|
81
96
|
readonly selectedField: import("@angular/core").Signal<FieldSchema | null>;
|
|
82
97
|
updateSchema(schema: FormSchema): void;
|
|
83
98
|
setFlavor(flavor: DesignerFlavor): void;
|
|
@@ -88,6 +103,8 @@ export declare class DesignerStateService {
|
|
|
88
103
|
selectNode(id: string | null): void;
|
|
89
104
|
toggleNodeSelection(id: string): void;
|
|
90
105
|
isNodeSelected(nodeId: string): boolean;
|
|
106
|
+
isSelectionRowAncestor(nodeId: string): boolean;
|
|
107
|
+
isSelectionColumnAncestor(nodeId: string): boolean;
|
|
91
108
|
composeScopedNodeId(scopePath: string[], nodeId: string): string;
|
|
92
109
|
getSelectedScopeFields(): FieldSchema[];
|
|
93
110
|
isSelectionInScope(scopePath: string[]): boolean;
|
|
@@ -117,6 +134,13 @@ export declare class DesignerStateService {
|
|
|
117
134
|
private insertNodeIntoLayout;
|
|
118
135
|
handleDrop(event: DragDropEventLike, targetColId: string): void;
|
|
119
136
|
pushField(widgetDef: WidgetDefinition): void;
|
|
137
|
+
insertColumnBeforeSelection(): void;
|
|
138
|
+
insertColumnAfterSelection(): void;
|
|
139
|
+
insertRowBeforeSelection(): void;
|
|
140
|
+
insertRowAfterSelection(): void;
|
|
141
|
+
insertRowInSelectedColumn(): void;
|
|
142
|
+
armFieldInsertBeforeSelection(): void;
|
|
143
|
+
armFieldInsertAfterSelection(): void;
|
|
120
144
|
insertField(options: DesignerFieldInsertOptions): DesignerFieldInsertResult | null;
|
|
121
145
|
deleteFields(fieldIds: string[]): void;
|
|
122
146
|
moveField(fieldId: string, options: DesignerFieldMoveOptions): boolean;
|
|
@@ -170,10 +194,19 @@ export declare class DesignerStateService {
|
|
|
170
194
|
*/
|
|
171
195
|
private updateNodeInTree;
|
|
172
196
|
private resolveEntry;
|
|
197
|
+
private findSelectionColumnEntry;
|
|
198
|
+
private findSelectionRowEntry;
|
|
199
|
+
private findAncestorEntryByType;
|
|
173
200
|
private resolveSchemaAtScope;
|
|
174
201
|
private findFieldByIdInScope;
|
|
175
202
|
private resolveInsertionScopePath;
|
|
176
203
|
private resolveTargetColumnForFieldInsert;
|
|
204
|
+
private resolveColumnInsertTarget;
|
|
205
|
+
private insertColumnRelativeToSelection;
|
|
206
|
+
private resolveRelativeRowInsertTarget;
|
|
207
|
+
private insertRowRelativeToSelection;
|
|
208
|
+
private armFieldInsertForSelection;
|
|
209
|
+
private getSelectedFieldReference;
|
|
177
210
|
private resolveFieldWidgetDefinition;
|
|
178
211
|
private normalizeFieldTypeAlias;
|
|
179
212
|
private normalizeLookupValue;
|
|
@@ -188,6 +221,7 @@ export declare class DesignerStateService {
|
|
|
188
221
|
private clampIndex;
|
|
189
222
|
private isLayoutNode;
|
|
190
223
|
private detachNode;
|
|
224
|
+
private pruneEmptyRows;
|
|
191
225
|
private findWidgetByRefId;
|
|
192
226
|
private findParentCol;
|
|
193
227
|
private removeWidgetByRefId;
|
|
@@ -11,7 +11,7 @@ export declare class DynamicPropertiesComponent implements OnChanges {
|
|
|
11
11
|
onPropertyChange?: () => void;
|
|
12
12
|
private readonly designerCtx;
|
|
13
13
|
protected readonly validatorTypeOptions: NativeSelectOption<string>[];
|
|
14
|
-
protected readonly
|
|
14
|
+
protected readonly builtinValidatorOptions: NativeSelectOption<string>[];
|
|
15
15
|
get properties(): PropertySection[];
|
|
16
16
|
getFieldReferenceCandidates(field: PropertyField): FieldSchema[];
|
|
17
17
|
fieldReferenceOptions(field: PropertyField): NativeSelectOption<string>[];
|
|
@@ -91,10 +91,8 @@ export declare class DynamicPropertiesComponent implements OnChanges {
|
|
|
91
91
|
addValidator(path: string): void;
|
|
92
92
|
removeValidator(path: string, index: number): void;
|
|
93
93
|
updateValidator(path: string, index: number, field: string, value: any): void;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
disableConditional(path: string): void;
|
|
97
|
-
updateConditional(path: string, field: string, value: any): void;
|
|
94
|
+
private createDefaultValidationRule;
|
|
95
|
+
private defaultValidationMessage;
|
|
98
96
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicPropertiesComponent, never>;
|
|
99
97
|
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicPropertiesComponent, "app-dynamic-properties", never, { "onPropertyChange": { "alias": "onPropertyChange"; "required": false; }; "config": { "alias": "config"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "includeSections": { "alias": "includeSections"; "required": false; }; "excludeSections": { "alias": "excludeSections"; "required": false; }; "allFields": { "alias": "allFields"; "required": false; }; }, { "configChange": "configChange"; }, never, never, true, never>;
|
|
100
98
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DesignerEventApiBrowser, DesignerEventApiDefinition, EventsWorkspaceSavePayload, FieldSchema, FormSchema, WidgetEventAction, WidgetEventActionApi, WidgetEventActionLog, WidgetEventActionSetValue, WidgetEventBinding, WidgetEventType } from '../form-core/models';
|
|
1
|
+
import { ConditionOperator, DesignerEventApiBrowser, DesignerEventApiDefinition, EventsWorkspaceSavePayload, FieldSchema, FormSchema, LogicGroup, WidgetEventAction, WidgetEventActionApi, WidgetEventActionLog, WidgetEventActionNavigate, WidgetEventActionSetValue, WidgetEventBinding, WidgetEventType } from '../form-core/models';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
type WorkspaceTab = 'fields' | 'input' | 'output';
|
|
4
4
|
interface WorkspaceFieldItem {
|
|
@@ -25,11 +25,16 @@ interface ApiSchemaState {
|
|
|
25
25
|
loading: boolean;
|
|
26
26
|
error: string | null;
|
|
27
27
|
}
|
|
28
|
+
interface WorkspacePageOption {
|
|
29
|
+
id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
}
|
|
28
32
|
export declare class EventsWorkspaceComponent {
|
|
29
33
|
readonly schema: import("@angular/core").InputSignal<FormSchema>;
|
|
30
34
|
readonly readOnly: import("@angular/core").InputSignal<boolean>;
|
|
31
35
|
readonly eventApis: import("@angular/core").InputSignal<DesignerEventApiDefinition[]>;
|
|
32
36
|
readonly eventApiBrowser: import("@angular/core").InputSignal<DesignerEventApiBrowser | undefined>;
|
|
37
|
+
readonly pages: import("@angular/core").InputSignal<WorkspacePageOption[]>;
|
|
33
38
|
readonly schemaChange: import("@angular/core").OutputEmitterRef<FormSchema>;
|
|
34
39
|
readonly eventsSave: import("@angular/core").OutputEmitterRef<EventsWorkspaceSavePayload>;
|
|
35
40
|
readonly draftSchema: import("@angular/core").WritableSignal<FormSchema | null>;
|
|
@@ -45,6 +50,10 @@ export declare class EventsWorkspaceComponent {
|
|
|
45
50
|
label: string;
|
|
46
51
|
value: string;
|
|
47
52
|
}[];
|
|
53
|
+
readonly conditionOperatorOptions: Array<{
|
|
54
|
+
label: string;
|
|
55
|
+
value: ConditionOperator;
|
|
56
|
+
}>;
|
|
48
57
|
readonly currentSchema: import("@angular/core").Signal<FormSchema>;
|
|
49
58
|
readonly fields: import("@angular/core").Signal<WorkspaceFieldItem[]>;
|
|
50
59
|
readonly filteredFields: import("@angular/core").Signal<WorkspaceFieldItem[]>;
|
|
@@ -80,7 +89,7 @@ export declare class EventsWorkspaceComponent {
|
|
|
80
89
|
removeAction(bindingIndex: number, actionIndex: number): void;
|
|
81
90
|
setActionType(action: WidgetEventAction, type: WidgetEventAction['type']): void;
|
|
82
91
|
updateActionType(bindingIndex: number, actionIndex: number, type: WidgetEventAction['type']): void;
|
|
83
|
-
patchAction(bindingIndex: number, actionIndex: number, patch: Partial<WidgetEventActionSetValue> | Partial<WidgetEventActionLog> | Partial<WidgetEventActionApi>): void;
|
|
92
|
+
patchAction(bindingIndex: number, actionIndex: number, patch: Partial<WidgetEventActionSetValue> | Partial<WidgetEventActionLog> | Partial<WidgetEventActionApi> | Partial<WidgetEventActionNavigate>): void;
|
|
84
93
|
patchApiAction(action: WidgetEventAction, patch: Partial<WidgetEventActionApi>): void;
|
|
85
94
|
getSelectableActionFields(action: WidgetEventAction): WorkspaceFieldItem[];
|
|
86
95
|
actionFieldSearch(action: WidgetEventAction): string;
|
|
@@ -107,6 +116,19 @@ export declare class EventsWorkspaceComponent {
|
|
|
107
116
|
asSetValue(action: WidgetEventAction): WidgetEventActionSetValue;
|
|
108
117
|
asLog(action: WidgetEventAction): WidgetEventActionLog;
|
|
109
118
|
asApi(action: WidgetEventAction): WidgetEventActionApi;
|
|
119
|
+
asNavigate(action: WidgetEventAction): WidgetEventActionNavigate;
|
|
120
|
+
updateNavigateTarget(bindingIndex: number, actionIndex: number, targetPageId: string): void;
|
|
121
|
+
hasNavigateCondition(action: WidgetEventActionNavigate): boolean;
|
|
122
|
+
toggleNavigateCondition(bindingIndex: number, actionIndex: number, enabled: boolean): void;
|
|
123
|
+
updateNavigateConditionGroup(bindingIndex: number, actionIndex: number, group?: LogicGroup): void;
|
|
124
|
+
navigateConditionFieldId(action: WidgetEventActionNavigate): string;
|
|
125
|
+
navigateConditionOperator(action: WidgetEventActionNavigate): ConditionOperator;
|
|
126
|
+
navigateConditionValue(action: WidgetEventActionNavigate): string;
|
|
127
|
+
updateNavigateConditionField(bindingIndex: number, actionIndex: number, fieldId: string): void;
|
|
128
|
+
updateNavigateConditionOperator(bindingIndex: number, actionIndex: number, operator: ConditionOperator): void;
|
|
129
|
+
updateNavigateConditionValue(bindingIndex: number, actionIndex: number, value: string): void;
|
|
130
|
+
navigateOperatorNeedsValue(operator: ConditionOperator): boolean;
|
|
131
|
+
navigateConditionFields(): FieldSchema[];
|
|
110
132
|
trackFieldById(_: number, field: WorkspaceFieldItem): string;
|
|
111
133
|
trackBindingById(_: number, binding: WidgetEventBinding): string;
|
|
112
134
|
trackActionByIndex(index: number): number;
|
|
@@ -116,6 +138,9 @@ export declare class EventsWorkspaceComponent {
|
|
|
116
138
|
isEventExpanded(bindingId: string): boolean;
|
|
117
139
|
toggleEventExpansion(bindingId: string): void;
|
|
118
140
|
private getFieldsExcludingSelected;
|
|
141
|
+
private firstNavigateCondition;
|
|
142
|
+
private isLogicCondition;
|
|
143
|
+
private toNavigateLogicGroup;
|
|
119
144
|
private updateSelectedEvents;
|
|
120
145
|
private buildActionByType;
|
|
121
146
|
private flattenFields;
|
|
@@ -141,6 +166,6 @@ export declare class EventsWorkspaceComponent {
|
|
|
141
166
|
private clone;
|
|
142
167
|
private createEventDatasourceId;
|
|
143
168
|
static ɵfac: i0.ɵɵFactoryDeclaration<EventsWorkspaceComponent, never>;
|
|
144
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EventsWorkspaceComponent, "app-events-workspace", never, { "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "eventApis": { "alias": "eventApis"; "required": false; "isSignal": true; }; "eventApiBrowser": { "alias": "eventApiBrowser"; "required": false; "isSignal": true; }; }, { "schemaChange": "schemaChange"; "eventsSave": "eventsSave"; }, never, never, true, never>;
|
|
169
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EventsWorkspaceComponent, "app-events-workspace", never, { "schema": { "alias": "schema"; "required": true; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "eventApis": { "alias": "eventApis"; "required": false; "isSignal": true; }; "eventApiBrowser": { "alias": "eventApiBrowser"; "required": false; "isSignal": true; }; "pages": { "alias": "pages"; "required": false; "isSignal": true; }; }, { "schemaChange": "schemaChange"; "eventsSave": "eventsSave"; }, never, never, true, never>;
|
|
145
170
|
}
|
|
146
171
|
export {};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { EventEmitter, SimpleChanges, OnChanges } from '@angular/core';
|
|
2
2
|
import { FormEngine } from '../form-core/form-engine';
|
|
3
3
|
import { FormSchema, DesignerEventApiBrowser, DesignerEventApiDefinition, DesignerFlavor, EventsWorkspaceSavePayload, WidgetEventApiExecutor } from '../form-core/models';
|
|
4
|
+
import type { FormJourneyProject } from '../form-core/form-journey.models';
|
|
4
5
|
import { DesignerStateService } from './designer-state.service';
|
|
5
6
|
import { DesignerTemplateDefinition } from './template-library';
|
|
6
7
|
import { ExternalDataSource } from '../data/external-data-source';
|
|
8
|
+
import { FormJourneyStateService } from './form-journey-state.service';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
export interface FormDesignerShellSchemaMetadata {
|
|
9
11
|
id?: string;
|
|
@@ -13,9 +15,11 @@ export interface FormDesignerShellSchemaMetadata {
|
|
|
13
15
|
}
|
|
14
16
|
export declare class FormDesignerShellComponent implements OnChanges {
|
|
15
17
|
protected readonly state: DesignerStateService;
|
|
18
|
+
protected readonly journeyState: FormJourneyStateService;
|
|
16
19
|
protected readonly aiAvailable: boolean;
|
|
17
|
-
private readonly
|
|
20
|
+
private readonly aiFeatureState;
|
|
18
21
|
schema?: FormSchema;
|
|
22
|
+
journey?: FormJourneyProject;
|
|
19
23
|
schemaMetadata?: FormDesignerShellSchemaMetadata;
|
|
20
24
|
flavor: DesignerFlavor;
|
|
21
25
|
flavors: DesignerFlavor[];
|
|
@@ -34,10 +38,13 @@ export declare class FormDesignerShellComponent implements OnChanges {
|
|
|
34
38
|
eventApiBrowser?: DesignerEventApiBrowser;
|
|
35
39
|
eventApiExecutor?: WidgetEventApiExecutor;
|
|
36
40
|
flavorChange: EventEmitter<DesignerFlavor>;
|
|
37
|
-
edit: EventEmitter<FormSchema>;
|
|
38
|
-
save: EventEmitter<FormSchema>;
|
|
39
|
-
push: EventEmitter<FormSchema>;
|
|
41
|
+
edit: EventEmitter<FormSchema | FormJourneyProject>;
|
|
42
|
+
save: EventEmitter<FormSchema | FormJourneyProject>;
|
|
43
|
+
push: EventEmitter<FormSchema | FormJourneyProject>;
|
|
40
44
|
eventsSave: EventEmitter<EventsWorkspaceSavePayload>;
|
|
45
|
+
saveDocument: EventEmitter<FormSchema | FormJourneyProject>;
|
|
46
|
+
pushDocument: EventEmitter<FormSchema | FormJourneyProject>;
|
|
47
|
+
editDocument: EventEmitter<FormSchema | FormJourneyProject>;
|
|
41
48
|
private catalog;
|
|
42
49
|
private managedSourceIds;
|
|
43
50
|
private managedEventSourceIds;
|
|
@@ -48,9 +55,17 @@ export declare class FormDesignerShellComponent implements OnChanges {
|
|
|
48
55
|
selectedTemplateId: string | null;
|
|
49
56
|
pendingTemplate: DesignerTemplateDefinition | null;
|
|
50
57
|
private lastSavedSchemaSnapshot;
|
|
58
|
+
readonly designerPages: import("@angular/core").Signal<{
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
route: string;
|
|
62
|
+
}[]>;
|
|
63
|
+
private readonly journeySyncEnabled;
|
|
64
|
+
private readonly schemaSync;
|
|
51
65
|
get engine(): FormEngine;
|
|
52
66
|
get filteredTemplates(): DesignerTemplateDefinition[];
|
|
53
67
|
get selectedTemplate(): DesignerTemplateDefinition | null;
|
|
68
|
+
constructor();
|
|
54
69
|
get resolvedHeaderLabel(): string;
|
|
55
70
|
ngOnChanges(changes: SimpleChanges): void;
|
|
56
71
|
private syncDataSources;
|
|
@@ -63,6 +78,11 @@ export declare class FormDesignerShellComponent implements OnChanges {
|
|
|
63
78
|
openEventsWorkspace(): void;
|
|
64
79
|
openAiWorkspace(): void;
|
|
65
80
|
closeAiWorkspace(): void;
|
|
81
|
+
addPage(): void;
|
|
82
|
+
selectPage(id: string): void;
|
|
83
|
+
removePage(id: string): void;
|
|
84
|
+
renamePage(id: string, name: string): void;
|
|
85
|
+
updatePageRoute(id: string, route: string): void;
|
|
66
86
|
onEventsSchemaChange(schema: FormSchema): void;
|
|
67
87
|
onEventsSave(payload: EventsWorkspaceSavePayload): void;
|
|
68
88
|
selectTemplate(template: DesignerTemplateDefinition): void;
|
|
@@ -78,10 +98,15 @@ export declare class FormDesignerShellComponent implements OnChanges {
|
|
|
78
98
|
private hasUnsavedChanges;
|
|
79
99
|
private serializeSchema;
|
|
80
100
|
private applyTemplate;
|
|
101
|
+
private parseTemplateJourney;
|
|
81
102
|
private syncTemplateSelection;
|
|
82
103
|
private createSchemaId;
|
|
104
|
+
private loadExternalDocument;
|
|
105
|
+
private loadActivePage;
|
|
106
|
+
private persistActivePage;
|
|
107
|
+
private getResolvedExternalDocument;
|
|
83
108
|
private getResolvedExternalSchema;
|
|
84
109
|
private applySchemaMetadata;
|
|
85
110
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormDesignerShellComponent, never>;
|
|
86
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormDesignerShellComponent, "app-form-designer-shell", never, { "schema": { "alias": "schema"; "required": false; }; "schemaMetadata": { "alias": "schemaMetadata"; "required": false; }; "flavor": { "alias": "flavor"; "required": false; }; "flavors": { "alias": "flavors"; "required": false; }; "templates": { "alias": "templates"; "required": false; }; "headerLabel": { "alias": "headerLabel"; "required": false; }; "enableTemplateLibrary": { "alias": "enableTemplateLibrary"; "required": false; }; "enableGlobalDataManager": { "alias": "enableGlobalDataManager"; "required": false; }; "enableAiAssistant": { "alias": "enableAiAssistant"; "required": false; }; "showEditButton": { "alias": "showEditButton"; "required": false; }; "showSaveButton": { "alias": "showSaveButton"; "required": false; }; "showPushButton": { "alias": "showPushButton"; "required": false; }; "showEmailPreview": { "alias": "showEmailPreview"; "required": false; }; "isReadOnly": { "alias": "isReadOnly"; "required": false; }; "dataSources": { "alias": "dataSources"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiBrowser": { "alias": "eventApiBrowser"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; }, { "flavorChange": "flavorChange"; "edit": "edit"; "save": "save"; "push": "push"; "eventsSave": "eventsSave"; }, never, never, true, never>;
|
|
111
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormDesignerShellComponent, "app-form-designer-shell", never, { "schema": { "alias": "schema"; "required": false; }; "journey": { "alias": "journey"; "required": false; }; "schemaMetadata": { "alias": "schemaMetadata"; "required": false; }; "flavor": { "alias": "flavor"; "required": false; }; "flavors": { "alias": "flavors"; "required": false; }; "templates": { "alias": "templates"; "required": false; }; "headerLabel": { "alias": "headerLabel"; "required": false; }; "enableTemplateLibrary": { "alias": "enableTemplateLibrary"; "required": false; }; "enableGlobalDataManager": { "alias": "enableGlobalDataManager"; "required": false; }; "enableAiAssistant": { "alias": "enableAiAssistant"; "required": false; }; "showEditButton": { "alias": "showEditButton"; "required": false; }; "showSaveButton": { "alias": "showSaveButton"; "required": false; }; "showPushButton": { "alias": "showPushButton"; "required": false; }; "showEmailPreview": { "alias": "showEmailPreview"; "required": false; }; "isReadOnly": { "alias": "isReadOnly"; "required": false; }; "dataSources": { "alias": "dataSources"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiBrowser": { "alias": "eventApiBrowser"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; }, { "flavorChange": "flavorChange"; "edit": "edit"; "save": "save"; "push": "push"; "eventsSave": "eventsSave"; "saveDocument": "saveDocument"; "pushDocument": "pushDocument"; "editDocument": "editDocument"; }, never, never, true, never>;
|
|
87
112
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { FormSchema } from '../form-core/models';
|
|
2
|
+
import type { FormJourneyPage, FormJourneyProject } from '../form-core/form-journey.models';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class FormJourneyStateService {
|
|
5
|
+
private readonly documentSignal;
|
|
6
|
+
private readonly sourceWasPlainSchema;
|
|
7
|
+
readonly document: import("@angular/core").Signal<FormJourneyProject>;
|
|
8
|
+
readonly pages: import("@angular/core").Signal<FormJourneyPage[]>;
|
|
9
|
+
readonly activePageId: import("@angular/core").WritableSignal<string>;
|
|
10
|
+
readonly activePage: import("@angular/core").Signal<FormJourneyPage | null>;
|
|
11
|
+
readonly canRemovePage: import("@angular/core").Signal<boolean>;
|
|
12
|
+
readonly isJourneyMode: import("@angular/core").Signal<boolean>;
|
|
13
|
+
setDocument(input: FormSchema | FormJourneyProject): void;
|
|
14
|
+
setActivePage(id: string): void;
|
|
15
|
+
addPage(): FormJourneyPage;
|
|
16
|
+
removePage(id: string): void;
|
|
17
|
+
renamePage(id: string, name: string): void;
|
|
18
|
+
updateRoute(id: string, route: string): void;
|
|
19
|
+
updateActivePageSchema(schema: FormSchema): void;
|
|
20
|
+
updatePageSchema(id: string, schema: FormSchema): void;
|
|
21
|
+
compatibleOutput(): FormSchema | FormJourneyProject;
|
|
22
|
+
private isJourneyInput;
|
|
23
|
+
private nextPageName;
|
|
24
|
+
private ensureUniqueRoute;
|
|
25
|
+
private normalizeRoute;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormJourneyStateService, never>;
|
|
27
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FormJourneyStateService>;
|
|
28
|
+
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
1
2
|
import { DesignerStateService } from './designer-state.service';
|
|
2
3
|
import { type FieldDataAccessMap, type RuntimeFieldDataAccessApi } from '../data/runtime-field-data-access-registry.service';
|
|
3
4
|
import { DesignerEventApiDefinition, WidgetEventApiExecutor } from '../form-core/models';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
type PreviewPage = {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
route: string;
|
|
10
|
+
};
|
|
5
11
|
export declare class FormPreviewComponent {
|
|
6
12
|
state: DesignerStateService;
|
|
7
13
|
eventApis: DesignerEventApiDefinition[];
|
|
@@ -10,6 +16,9 @@ export declare class FormPreviewComponent {
|
|
|
10
16
|
fieldDataAccessApi?: RuntimeFieldDataAccessApi;
|
|
11
17
|
formContentId?: string;
|
|
12
18
|
formContentVersion?: string;
|
|
19
|
+
pages: PreviewPage[];
|
|
20
|
+
activePageId: string | null;
|
|
21
|
+
pageSelect: EventEmitter<string>;
|
|
13
22
|
breakpoints: readonly ["xs", "sm", "md", "lg", "xl", "2xl"];
|
|
14
23
|
breakpoint: import("@angular/core").WritableSignal<"xs" | "sm" | "md" | "lg" | "xl" | "2xl">;
|
|
15
24
|
activeDevice: import("@angular/core").Signal<"mobile" | "desktop">;
|
|
@@ -17,6 +26,13 @@ export declare class FormPreviewComponent {
|
|
|
17
26
|
combinedFormData: any;
|
|
18
27
|
constructor(state: DesignerStateService);
|
|
19
28
|
setBreakpoint(bp: any): void;
|
|
29
|
+
hasJourneyPages(): boolean;
|
|
30
|
+
isPageActive(pageId: string): boolean;
|
|
31
|
+
requestPageSelect(pageId: string): void;
|
|
32
|
+
readonly navigateToPage: (pageId: string) => Promise<{
|
|
33
|
+
ok: boolean;
|
|
34
|
+
reason?: string;
|
|
35
|
+
}>;
|
|
20
36
|
getContainerWidth(): "100%" | "375px" | "576px" | "768px" | "992px" | "1200px" | "1400px";
|
|
21
37
|
getPageStyle(): Record<string, any>;
|
|
22
38
|
close(): void;
|
|
@@ -31,6 +47,9 @@ export declare class FormPreviewComponent {
|
|
|
31
47
|
private isBytePayload;
|
|
32
48
|
private isBase64Payload;
|
|
33
49
|
private isLikelyBase64;
|
|
50
|
+
trackPageById(_: number, page: PreviewPage): string;
|
|
51
|
+
private resolveActivePageId;
|
|
34
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormPreviewComponent, never>;
|
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FormPreviewComponent, "app-form-preview", never, { "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; }; }, {}, never, never, true, never>;
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormPreviewComponent, "app-form-preview", never, { "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; }; "pages": { "alias": "pages"; "required": false; }; "activePageId": { "alias": "activePageId"; "required": false; }; }, { "pageSelect": "pageSelect"; }, never, never, true, never>;
|
|
36
54
|
}
|
|
55
|
+
export {};
|
|
@@ -15,8 +15,13 @@ export declare class InspectorBackgroundsSectionComponent {
|
|
|
15
15
|
value: string;
|
|
16
16
|
}[];
|
|
17
17
|
showImageUrl: boolean;
|
|
18
|
+
protected backgroundColorValue(): string;
|
|
18
19
|
getBackgroundPreview(): string;
|
|
20
|
+
protected onBackgroundPickerChange(value: string): void;
|
|
21
|
+
protected onBackgroundColorInputChange(value: string): void;
|
|
19
22
|
updateStyle(key: string, value: any): void;
|
|
23
|
+
private normalizeBackgroundColor;
|
|
24
|
+
private isTransparentColor;
|
|
20
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<InspectorBackgroundsSectionComponent, never>;
|
|
21
26
|
static ɵcmp: i0.ɵɵComponentDeclaration<InspectorBackgroundsSectionComponent, "inspector-backgrounds-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
|
|
22
27
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StyleTokenSet } from '../../form-core/models';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
type TransformKey = 'transformX' | 'transformY' | 'transformZ' | 'rotate' | 'scale';
|
|
4
|
+
export declare class InspectorTransformSectionComponent {
|
|
5
|
+
readonly style: import("@angular/core").InputSignal<Partial<StyleTokenSet>>;
|
|
6
|
+
readonly styleChange: import("@angular/core").OutputEmitterRef<Partial<StyleTokenSet>>;
|
|
7
|
+
protected numberValue(key: TransformKey, fallback: number): number;
|
|
8
|
+
protected updateTransform(key: TransformKey, value: unknown): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InspectorTransformSectionComponent, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InspectorTransformSectionComponent, "inspector-transform-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -25,6 +25,7 @@ export declare class InspectorTypographySectionComponent {
|
|
|
25
25
|
isBoldActive(): boolean;
|
|
26
26
|
isItalicActive(): boolean;
|
|
27
27
|
isUnderlineActive(): boolean;
|
|
28
|
+
colorValue(): string;
|
|
28
29
|
updateStyle(key: string, value: any): void;
|
|
29
30
|
static ɵfac: i0.ɵɵFactoryDeclaration<InspectorTypographySectionComponent, never>;
|
|
30
31
|
static ɵcmp: i0.ɵɵComponentDeclaration<InspectorTypographySectionComponent, "inspector-typography-section", never, { "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "styleChange": "styleChange"; }, never, never, true, never>;
|
|
@@ -1,17 +1,36 @@
|
|
|
1
|
-
import { OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { DesignerStateService } from './designer-state.service';
|
|
3
3
|
import { DesignerEventApiDefinition, DesignerFlavor, WidgetEventApiExecutor } from '../form-core/models';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
type DesignerMode = 'edit' | 'view';
|
|
6
|
+
type DesignerPage = {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
route: string;
|
|
10
|
+
};
|
|
6
11
|
export declare class JsonFormDesignerComponent implements OnInit, OnChanges {
|
|
7
12
|
flavor: DesignerFlavor;
|
|
8
13
|
mode: DesignerMode;
|
|
9
14
|
eventApis: DesignerEventApiDefinition[];
|
|
10
15
|
eventApiExecutor?: WidgetEventApiExecutor;
|
|
16
|
+
pages: DesignerPage[] | null;
|
|
17
|
+
activePageId: string | null;
|
|
18
|
+
canRemovePage: boolean;
|
|
19
|
+
readonly pageAdd: EventEmitter<void>;
|
|
20
|
+
readonly pageSelect: EventEmitter<string>;
|
|
21
|
+
readonly pageRemove: EventEmitter<string>;
|
|
22
|
+
readonly pageRename: EventEmitter<{
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
}>;
|
|
26
|
+
readonly pageRouteChange: EventEmitter<{
|
|
27
|
+
id: string;
|
|
28
|
+
route: string;
|
|
29
|
+
}>;
|
|
11
30
|
state: DesignerStateService;
|
|
12
31
|
ngOnInit(): void;
|
|
13
32
|
ngOnChanges(changes: SimpleChanges): void;
|
|
14
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<JsonFormDesignerComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<JsonFormDesignerComponent, "app-json-form-designer", never, { "flavor": { "alias": "flavor"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; }, {}, never, never, true, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<JsonFormDesignerComponent, "app-json-form-designer", never, { "flavor": { "alias": "flavor"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "eventApis": { "alias": "eventApis"; "required": false; }; "eventApiExecutor": { "alias": "eventApiExecutor"; "required": false; }; "pages": { "alias": "pages"; "required": false; }; "activePageId": { "alias": "activePageId"; "required": false; }; "canRemovePage": { "alias": "canRemovePage"; "required": false; }; }, { "pageAdd": "pageAdd"; "pageSelect": "pageSelect"; "pageRemove": "pageRemove"; "pageRename": "pageRename"; "pageRouteChange": "pageRouteChange"; }, never, never, true, never>;
|
|
16
35
|
}
|
|
17
36
|
export {};
|