@aemforms/af-core 0.22.136 → 0.22.138
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/esm/afb-runtime.js +255 -73
- package/esm/types/src/BaseNode.d.ts +12 -3
- package/esm/types/src/Checkbox.d.ts +6 -1
- package/esm/types/src/Container.d.ts +117 -3
- package/esm/types/src/Field.d.ts +6 -1
- package/esm/types/src/Form.d.ts +117 -3
- package/esm/types/src/controller/Logger.d.ts +1 -0
- package/esm/types/src/rules/FunctionRuntime.d.ts +13 -1
- package/esm/types/src/rules/RuleEngine.d.ts +1 -1
- package/esm/types/src/types/Model.d.ts +1 -1
- package/lib/BaseNode.d.ts +12 -3
- package/lib/BaseNode.js +33 -24
- package/lib/Checkbox.d.ts +6 -1
- package/lib/Container.d.ts +117 -3
- package/lib/Container.js +18 -18
- package/lib/Field.d.ts +6 -1
- package/lib/Field.js +1 -1
- package/lib/Form.d.ts +117 -3
- package/lib/PropertiesManager.d.ts +14 -0
- package/lib/PropertiesManager.js +102 -0
- package/lib/controller/EventQueue.js +13 -1
- package/lib/controller/Logger.d.ts +1 -0
- package/lib/controller/Logger.js +3 -0
- package/lib/rules/FunctionRuntime.d.ts +13 -1
- package/lib/rules/FunctionRuntime.js +73 -12
- package/lib/rules/RuleEngine.d.ts +1 -1
- package/lib/rules/RuleEngine.js +2 -2
- package/lib/types/Model.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Action, BaseModel, ContainerJson, ContainerModel, FieldModel, FieldsetModel, FormCreationMode, FormModel, IFormFieldFactory, RulesJson } from './types/index';
|
|
1
|
+
import { Action, BaseModel, ContainerJson, ContainerModel, FieldJson, FieldModel, FieldsetModel, FormCreationMode, FormModel, IFormFieldFactory, RulesJson } from './types/index';
|
|
2
2
|
import Scriptable from './Scriptable';
|
|
3
3
|
import DataGroup from './data/DataGroup';
|
|
4
4
|
declare abstract class Container<T extends ContainerJson & RulesJson> extends Scriptable<T> implements ContainerModel {
|
|
@@ -29,12 +29,126 @@ declare abstract class Container<T extends ContainerJson & RulesJson> extends Sc
|
|
|
29
29
|
private _getFormAndSitesState;
|
|
30
30
|
private getItemsState;
|
|
31
31
|
getState(isRepeatableChild?: boolean, forRestore?: boolean): T & {
|
|
32
|
-
items: any[];
|
|
33
32
|
enabled: boolean | undefined;
|
|
34
33
|
readOnly: any;
|
|
34
|
+
_itemTemplate?: {
|
|
35
|
+
description?: string | undefined;
|
|
36
|
+
rules?: import("./types/Json").Items<string> | undefined;
|
|
37
|
+
events?: import("./types/Json").Items<string | string[] | undefined> | undefined;
|
|
38
|
+
enumNames?: string[] | undefined;
|
|
39
|
+
enum?: any[] | undefined;
|
|
40
|
+
accept?: string[] | undefined;
|
|
41
|
+
enforceEnum?: boolean | undefined;
|
|
42
|
+
exclusiveMinimum?: string | number | undefined;
|
|
43
|
+
exclusiveMaximum?: string | number | undefined;
|
|
44
|
+
format?: string | undefined;
|
|
45
|
+
maxFileSize?: string | number | undefined;
|
|
46
|
+
maxLength?: number | undefined;
|
|
47
|
+
maximum?: string | number | undefined;
|
|
48
|
+
maxItems?: number | undefined;
|
|
49
|
+
minOccur?: number | undefined;
|
|
50
|
+
maxOccur?: number | undefined;
|
|
51
|
+
minLength?: number | undefined;
|
|
52
|
+
minimum?: string | number | undefined;
|
|
53
|
+
minItems?: number | undefined;
|
|
54
|
+
pattern?: string | undefined;
|
|
55
|
+
required?: boolean | undefined;
|
|
56
|
+
step?: number | undefined;
|
|
57
|
+
type?: string | undefined;
|
|
58
|
+
validationExpression?: string | undefined;
|
|
59
|
+
uniqueItems?: boolean | undefined;
|
|
60
|
+
dataRef?: string | null | undefined;
|
|
61
|
+
lang?: string | undefined;
|
|
62
|
+
':type'?: string | undefined;
|
|
63
|
+
appliedCssClassNames?: string | undefined;
|
|
64
|
+
label?: import("./types/Json").Label | undefined;
|
|
65
|
+
enabled?: boolean | undefined;
|
|
66
|
+
visible?: boolean | undefined;
|
|
67
|
+
name?: string | undefined;
|
|
68
|
+
constraintMessages?: import("./types/Json").ConstraintsMessages | undefined;
|
|
69
|
+
fieldType?: string | undefined;
|
|
70
|
+
errorMessage?: string | undefined;
|
|
71
|
+
properties?: {
|
|
72
|
+
[key: string]: any;
|
|
73
|
+
} | undefined;
|
|
74
|
+
repeatable?: boolean | undefined;
|
|
75
|
+
screenReaderText?: string | undefined;
|
|
76
|
+
tooltip?: string | undefined;
|
|
77
|
+
altText?: string | undefined;
|
|
78
|
+
viewType?: string | undefined;
|
|
79
|
+
buttonType?: string | undefined;
|
|
80
|
+
placeholder?: string | undefined;
|
|
81
|
+
readOnly?: boolean | undefined;
|
|
82
|
+
valid?: boolean | undefined;
|
|
83
|
+
validity?: any;
|
|
84
|
+
validationMessage?: string | undefined;
|
|
85
|
+
default?: any;
|
|
86
|
+
value?: any;
|
|
87
|
+
displayFormat?: string | undefined;
|
|
88
|
+
editFormat?: string | undefined;
|
|
89
|
+
editValue?: string | undefined;
|
|
90
|
+
displayValue?: string | undefined;
|
|
91
|
+
displayValueExpression?: string | undefined;
|
|
92
|
+
emptyValue?: "" | "undefined" | "null" | undefined;
|
|
93
|
+
checked?: boolean | undefined;
|
|
94
|
+
} | {
|
|
95
|
+
description?: string | undefined;
|
|
96
|
+
rules?: import("./types/Json").Items<string> | undefined;
|
|
97
|
+
events?: import("./types/Json").Items<string | string[] | undefined> | undefined;
|
|
98
|
+
enumNames?: string[] | undefined;
|
|
99
|
+
enum?: any[] | undefined;
|
|
100
|
+
accept?: string[] | undefined;
|
|
101
|
+
enforceEnum?: boolean | undefined;
|
|
102
|
+
exclusiveMinimum?: string | number | undefined;
|
|
103
|
+
exclusiveMaximum?: string | number | undefined;
|
|
104
|
+
format?: string | undefined;
|
|
105
|
+
maxFileSize?: string | number | undefined;
|
|
106
|
+
maxLength?: number | undefined;
|
|
107
|
+
maximum?: string | number | undefined;
|
|
108
|
+
maxItems?: number | undefined;
|
|
109
|
+
minOccur?: number | undefined;
|
|
110
|
+
maxOccur?: number | undefined;
|
|
111
|
+
minLength?: number | undefined;
|
|
112
|
+
minimum?: string | number | undefined;
|
|
113
|
+
minItems?: number | undefined;
|
|
114
|
+
pattern?: string | undefined;
|
|
115
|
+
required?: boolean | undefined;
|
|
116
|
+
step?: number | undefined;
|
|
117
|
+
type?: "object" | "array" | undefined;
|
|
118
|
+
validationExpression?: string | undefined;
|
|
119
|
+
uniqueItems?: boolean | undefined;
|
|
120
|
+
dataRef?: string | null | undefined;
|
|
121
|
+
lang?: string | undefined;
|
|
122
|
+
':type'?: string | undefined;
|
|
123
|
+
appliedCssClassNames?: string | undefined;
|
|
124
|
+
label?: import("./types/Json").Label | undefined;
|
|
125
|
+
enabled?: boolean | undefined;
|
|
126
|
+
visible?: boolean | undefined;
|
|
127
|
+
name?: string | undefined;
|
|
128
|
+
constraintMessages?: import("./types/Json").ConstraintsMessages | undefined;
|
|
129
|
+
fieldType?: string | undefined;
|
|
130
|
+
errorMessage?: string | undefined;
|
|
131
|
+
properties?: {
|
|
132
|
+
[key: string]: any;
|
|
133
|
+
} | undefined;
|
|
134
|
+
repeatable?: boolean | undefined;
|
|
135
|
+
screenReaderText?: string | undefined;
|
|
136
|
+
tooltip?: string | undefined;
|
|
137
|
+
altText?: string | undefined;
|
|
138
|
+
viewType?: string | undefined;
|
|
139
|
+
buttonType?: string | undefined;
|
|
140
|
+
items: (FieldJson | ContainerJson)[];
|
|
141
|
+
initialItems?: number | undefined;
|
|
142
|
+
activeChild?: string | undefined;
|
|
143
|
+
readOnly?: boolean | undefined;
|
|
144
|
+
} | undefined;
|
|
145
|
+
items: any[];
|
|
35
146
|
':items'?: undefined;
|
|
36
147
|
':itemsOrder'?: undefined;
|
|
37
|
-
_dependents?:
|
|
148
|
+
_dependents?: {
|
|
149
|
+
id: string;
|
|
150
|
+
propertyName: string | undefined;
|
|
151
|
+
}[] | undefined;
|
|
38
152
|
allowedComponents?: undefined;
|
|
39
153
|
columnClassNames?: undefined;
|
|
40
154
|
columnCount?: undefined;
|
package/esm/types/src/Field.d.ts
CHANGED
|
@@ -197,6 +197,8 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
|
|
|
197
197
|
errorMessage?: string | undefined;
|
|
198
198
|
properties: {
|
|
199
199
|
[key: string]: any;
|
|
200
|
+
} & {
|
|
201
|
+
[key: string]: any;
|
|
200
202
|
};
|
|
201
203
|
repeatable?: boolean | undefined;
|
|
202
204
|
screenReaderText?: string | undefined;
|
|
@@ -213,7 +215,10 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
|
|
|
213
215
|
displayValueExpression?: string | undefined;
|
|
214
216
|
emptyValue?: "" | "undefined" | "null" | undefined;
|
|
215
217
|
checked?: boolean | undefined;
|
|
216
|
-
_dependents?:
|
|
218
|
+
_dependents?: {
|
|
219
|
+
id: string;
|
|
220
|
+
propertyName: string | undefined;
|
|
221
|
+
}[] | undefined;
|
|
217
222
|
allowedComponents?: undefined;
|
|
218
223
|
columnClassNames?: undefined;
|
|
219
224
|
columnCount?: undefined;
|
package/esm/types/src/Form.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import SubmitMetaData from './SubmitMetaData';
|
|
|
4
4
|
import EventQueue from './controller/EventQueue';
|
|
5
5
|
import { LogLevel, Logger } from './controller/Logger';
|
|
6
6
|
import RuleEngine from './rules/RuleEngine';
|
|
7
|
-
import { Action, BaseModel, FieldModel, FieldsetModel, FocusOption, FormCreationMode, FormJson, FormModel, IFormFieldFactory } from './types/index';
|
|
7
|
+
import { Action, BaseModel, FieldModel, FieldsetModel, FocusOption, FormCreationMode, FormJson, FormModel, IFormFieldFactory, Items } from './types/index';
|
|
8
8
|
import { Version } from './utils/Version';
|
|
9
9
|
export declare const currentVersion: Version;
|
|
10
10
|
declare class Form extends Container<FormJson> implements FormModel {
|
|
@@ -97,12 +97,126 @@ declare class Form extends Container<FormJson> implements FormModel {
|
|
|
97
97
|
adaptiveform?: string | undefined;
|
|
98
98
|
lang?: string | undefined;
|
|
99
99
|
} & {
|
|
100
|
-
items: any[];
|
|
101
100
|
enabled: boolean | undefined;
|
|
102
101
|
readOnly: any;
|
|
102
|
+
_itemTemplate?: {
|
|
103
|
+
description?: string | undefined;
|
|
104
|
+
rules?: Items<string> | undefined;
|
|
105
|
+
events?: Items<string | string[] | undefined> | undefined;
|
|
106
|
+
enumNames?: string[] | undefined;
|
|
107
|
+
enum?: any[] | undefined;
|
|
108
|
+
accept?: string[] | undefined;
|
|
109
|
+
enforceEnum?: boolean | undefined;
|
|
110
|
+
exclusiveMinimum?: string | number | undefined;
|
|
111
|
+
exclusiveMaximum?: string | number | undefined;
|
|
112
|
+
format?: string | undefined;
|
|
113
|
+
maxFileSize?: string | number | undefined;
|
|
114
|
+
maxLength?: number | undefined;
|
|
115
|
+
maximum?: string | number | undefined;
|
|
116
|
+
maxItems?: number | undefined;
|
|
117
|
+
minOccur?: number | undefined;
|
|
118
|
+
maxOccur?: number | undefined;
|
|
119
|
+
minLength?: number | undefined;
|
|
120
|
+
minimum?: string | number | undefined;
|
|
121
|
+
minItems?: number | undefined;
|
|
122
|
+
pattern?: string | undefined;
|
|
123
|
+
required?: boolean | undefined;
|
|
124
|
+
step?: number | undefined;
|
|
125
|
+
type?: string | undefined;
|
|
126
|
+
validationExpression?: string | undefined;
|
|
127
|
+
uniqueItems?: boolean | undefined;
|
|
128
|
+
dataRef?: string | null | undefined;
|
|
129
|
+
lang?: string | undefined;
|
|
130
|
+
':type'?: string | undefined;
|
|
131
|
+
appliedCssClassNames?: string | undefined;
|
|
132
|
+
label?: import("./types/Json").Label | undefined;
|
|
133
|
+
enabled?: boolean | undefined;
|
|
134
|
+
visible?: boolean | undefined;
|
|
135
|
+
name?: string | undefined;
|
|
136
|
+
constraintMessages?: import("./types/Json").ConstraintsMessages | undefined;
|
|
137
|
+
fieldType?: string | undefined;
|
|
138
|
+
errorMessage?: string | undefined;
|
|
139
|
+
properties?: {
|
|
140
|
+
[key: string]: any;
|
|
141
|
+
} | undefined;
|
|
142
|
+
repeatable?: boolean | undefined;
|
|
143
|
+
screenReaderText?: string | undefined;
|
|
144
|
+
tooltip?: string | undefined;
|
|
145
|
+
altText?: string | undefined;
|
|
146
|
+
viewType?: string | undefined;
|
|
147
|
+
buttonType?: string | undefined;
|
|
148
|
+
placeholder?: string | undefined;
|
|
149
|
+
readOnly?: boolean | undefined;
|
|
150
|
+
valid?: boolean | undefined;
|
|
151
|
+
validity?: any;
|
|
152
|
+
validationMessage?: string | undefined;
|
|
153
|
+
default?: any;
|
|
154
|
+
value?: any;
|
|
155
|
+
displayFormat?: string | undefined;
|
|
156
|
+
editFormat?: string | undefined;
|
|
157
|
+
editValue?: string | undefined;
|
|
158
|
+
displayValue?: string | undefined;
|
|
159
|
+
displayValueExpression?: string | undefined;
|
|
160
|
+
emptyValue?: "" | "undefined" | "null" | undefined;
|
|
161
|
+
checked?: boolean | undefined;
|
|
162
|
+
} | {
|
|
163
|
+
description?: string | undefined;
|
|
164
|
+
rules?: Items<string> | undefined;
|
|
165
|
+
events?: Items<string | string[] | undefined> | undefined;
|
|
166
|
+
enumNames?: string[] | undefined;
|
|
167
|
+
enum?: any[] | undefined;
|
|
168
|
+
accept?: string[] | undefined;
|
|
169
|
+
enforceEnum?: boolean | undefined;
|
|
170
|
+
exclusiveMinimum?: string | number | undefined;
|
|
171
|
+
exclusiveMaximum?: string | number | undefined;
|
|
172
|
+
format?: string | undefined;
|
|
173
|
+
maxFileSize?: string | number | undefined;
|
|
174
|
+
maxLength?: number | undefined;
|
|
175
|
+
maximum?: string | number | undefined;
|
|
176
|
+
maxItems?: number | undefined;
|
|
177
|
+
minOccur?: number | undefined;
|
|
178
|
+
maxOccur?: number | undefined;
|
|
179
|
+
minLength?: number | undefined;
|
|
180
|
+
minimum?: string | number | undefined;
|
|
181
|
+
minItems?: number | undefined;
|
|
182
|
+
pattern?: string | undefined;
|
|
183
|
+
required?: boolean | undefined;
|
|
184
|
+
step?: number | undefined;
|
|
185
|
+
type?: "object" | "array" | undefined;
|
|
186
|
+
validationExpression?: string | undefined;
|
|
187
|
+
uniqueItems?: boolean | undefined;
|
|
188
|
+
dataRef?: string | null | undefined;
|
|
189
|
+
lang?: string | undefined;
|
|
190
|
+
':type'?: string | undefined;
|
|
191
|
+
appliedCssClassNames?: string | undefined;
|
|
192
|
+
label?: import("./types/Json").Label | undefined;
|
|
193
|
+
enabled?: boolean | undefined;
|
|
194
|
+
visible?: boolean | undefined;
|
|
195
|
+
name?: string | undefined;
|
|
196
|
+
constraintMessages?: import("./types/Json").ConstraintsMessages | undefined;
|
|
197
|
+
fieldType?: string | undefined;
|
|
198
|
+
errorMessage?: string | undefined;
|
|
199
|
+
properties?: {
|
|
200
|
+
[key: string]: any;
|
|
201
|
+
} | undefined;
|
|
202
|
+
repeatable?: boolean | undefined;
|
|
203
|
+
screenReaderText?: string | undefined;
|
|
204
|
+
tooltip?: string | undefined;
|
|
205
|
+
altText?: string | undefined;
|
|
206
|
+
viewType?: string | undefined;
|
|
207
|
+
buttonType?: string | undefined;
|
|
208
|
+
items: (import("./types/Json").FieldJson | import("./types/Json").ContainerJson)[];
|
|
209
|
+
initialItems?: number | undefined;
|
|
210
|
+
activeChild?: string | undefined;
|
|
211
|
+
readOnly?: boolean | undefined;
|
|
212
|
+
} | undefined;
|
|
213
|
+
items: any[];
|
|
103
214
|
':items'?: undefined;
|
|
104
215
|
':itemsOrder'?: undefined;
|
|
105
|
-
_dependents?:
|
|
216
|
+
_dependents?: {
|
|
217
|
+
id: string;
|
|
218
|
+
propertyName: string | undefined;
|
|
219
|
+
}[] | undefined;
|
|
106
220
|
allowedComponents?: undefined;
|
|
107
221
|
columnClassNames?: undefined;
|
|
108
222
|
columnCount?: undefined;
|
|
@@ -33,7 +33,7 @@ declare class FunctionRuntimeImpl {
|
|
|
33
33
|
_signature: never[];
|
|
34
34
|
};
|
|
35
35
|
importData: {
|
|
36
|
-
_func: (args: Array<unknown>, data: unknown, interpreter: any) =>
|
|
36
|
+
_func: (args: Array<unknown>, data: unknown, interpreter: any) => any;
|
|
37
37
|
_signature: never[];
|
|
38
38
|
};
|
|
39
39
|
submitForm: {
|
|
@@ -44,6 +44,14 @@ declare class FunctionRuntimeImpl {
|
|
|
44
44
|
_func: (args: Array<unknown>, data: unknown, interpreter: any) => {};
|
|
45
45
|
_signature: never[];
|
|
46
46
|
};
|
|
47
|
+
setVariable: {
|
|
48
|
+
_func: (args: Array<unknown>, data: unknown, interpreter: any) => {};
|
|
49
|
+
_signature: never[];
|
|
50
|
+
};
|
|
51
|
+
getVariable: {
|
|
52
|
+
_func: (args: Array<unknown>, data: unknown, interpreter: any) => any;
|
|
53
|
+
_signature: never[];
|
|
54
|
+
};
|
|
47
55
|
request: {
|
|
48
56
|
_func: (args: Array<unknown>, data: unknown, interpreter: any) => Promise<any>;
|
|
49
57
|
_signature: never[];
|
|
@@ -99,6 +107,10 @@ declare class FunctionRuntimeImpl {
|
|
|
99
107
|
_func: (args: Array<unknown>, data: unknown, interpreter: any) => number;
|
|
100
108
|
_signature: never[];
|
|
101
109
|
};
|
|
110
|
+
today: {
|
|
111
|
+
_func: () => number;
|
|
112
|
+
_signature: never[];
|
|
113
|
+
};
|
|
102
114
|
};
|
|
103
115
|
}
|
|
104
116
|
export declare const FunctionRuntime: FunctionRuntimeImpl;
|
|
@@ -12,7 +12,7 @@ declare class RuleEngine {
|
|
|
12
12
|
ast: any;
|
|
13
13
|
};
|
|
14
14
|
execute(node: any, data: any, globals: any, useValueOf: boolean | undefined, eString: string): any;
|
|
15
|
-
trackDependency(subscriber: BaseModel): void;
|
|
15
|
+
trackDependency(subscriber: BaseModel, propertyName?: string): void;
|
|
16
16
|
setDependencyTracking(track: boolean): void;
|
|
17
17
|
getDependencyTracking(): boolean;
|
|
18
18
|
}
|
|
@@ -79,7 +79,7 @@ export interface BaseModel extends ConstraintsJson, WithController {
|
|
|
79
79
|
getRuleNode(): any;
|
|
80
80
|
ruleNodeReference(): any;
|
|
81
81
|
_initialize(mode?: FormCreationMode): any;
|
|
82
|
-
_addDependent(dependent: BaseModel): any;
|
|
82
|
+
_addDependent(dependent: BaseModel, propertyName?: string): any;
|
|
83
83
|
_eventSource: EventSource;
|
|
84
84
|
readonly fragment: string;
|
|
85
85
|
}
|
package/lib/BaseNode.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Action, BaseJson, BaseModel, callbackFn, ContainerModel, FormCreationMode, FormModel, Primitives, ValidationError, EventSource } from './types/index';
|
|
2
|
+
import { PropertiesManager } from './PropertiesManager.js';
|
|
2
3
|
import DataGroup from './data/DataGroup';
|
|
3
4
|
import DataValue from './data/DataValue';
|
|
4
5
|
export declare const editableProperties: string[];
|
|
@@ -22,6 +23,7 @@ export declare abstract class BaseNode<T extends BaseJson> implements BaseModel
|
|
|
22
23
|
_eventSource: EventSource;
|
|
23
24
|
protected _fragment: string;
|
|
24
25
|
protected _idSet: Set<string> | undefined;
|
|
26
|
+
private _propertiesManager;
|
|
25
27
|
protected createIdSet(): Set<string> | undefined;
|
|
26
28
|
get isContainer(): boolean;
|
|
27
29
|
constructor(params: T, _options: {
|
|
@@ -56,9 +58,15 @@ export declare abstract class BaseNode<T extends BaseJson> implements BaseModel
|
|
|
56
58
|
set label(l: import("./types/Json").Label | undefined);
|
|
57
59
|
get uniqueItems(): boolean | undefined;
|
|
58
60
|
isTransparent(): boolean;
|
|
59
|
-
getDependents():
|
|
61
|
+
getDependents(): {
|
|
62
|
+
id: string;
|
|
63
|
+
propertyName: string | undefined;
|
|
64
|
+
}[];
|
|
60
65
|
getState(forRestore?: boolean): T & {
|
|
61
|
-
_dependents?:
|
|
66
|
+
_dependents?: {
|
|
67
|
+
id: string;
|
|
68
|
+
propertyName: string | undefined;
|
|
69
|
+
}[] | undefined;
|
|
62
70
|
allowedComponents?: undefined;
|
|
63
71
|
columnClassNames?: undefined;
|
|
64
72
|
columnCount?: undefined;
|
|
@@ -78,7 +86,7 @@ export declare abstract class BaseNode<T extends BaseJson> implements BaseModel
|
|
|
78
86
|
subscribe(callback: callbackFn, eventName?: string): {
|
|
79
87
|
unsubscribe: () => void;
|
|
80
88
|
};
|
|
81
|
-
_addDependent(dependent: BaseModel): void;
|
|
89
|
+
_addDependent(dependent: BaseModel, propertyName?: string): void;
|
|
82
90
|
removeDependent(dependent: BaseModel): void;
|
|
83
91
|
abstract validate(): Array<ValidationError>;
|
|
84
92
|
abstract executeAction(action: Action): any;
|
|
@@ -98,6 +106,7 @@ export declare abstract class BaseNode<T extends BaseJson> implements BaseModel
|
|
|
98
106
|
set properties(p: {
|
|
99
107
|
[key: string]: any;
|
|
100
108
|
});
|
|
109
|
+
getPropertiesManager(): PropertiesManager;
|
|
101
110
|
abstract defaultDataModel(name: string | number): DataValue | undefined;
|
|
102
111
|
abstract syncDataAndFormModel(a?: DataValue | DataGroup): any;
|
|
103
112
|
getNonTransparentParent(): ContainerModel;
|
package/lib/BaseNode.js
CHANGED
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.BaseNode = exports.exclude = exports.include = exports.dependencyTracked = exports.qualifiedName = exports.target = exports.staticFields = exports.dynamicProps = exports.editableProperties = void 0;
|
|
13
13
|
const index_1 = require("./types/index");
|
|
14
14
|
const Events_1 = require("./controller/Events");
|
|
15
|
+
const PropertiesManager_js_1 = require("./PropertiesManager.js");
|
|
15
16
|
const DataRefParser_1 = require("./utils/DataRefParser");
|
|
16
17
|
const EmptyDataValue_1 = __importDefault(require("./data/EmptyDataValue"));
|
|
17
18
|
const ValidationUtils_1 = require("./utils/ValidationUtils");
|
|
@@ -86,7 +87,7 @@ function dependencyTracked() {
|
|
|
86
87
|
const get = descriptor.get;
|
|
87
88
|
if (get != undefined) {
|
|
88
89
|
descriptor.get = function () {
|
|
89
|
-
this.ruleEngine.trackDependency(this);
|
|
90
|
+
this.ruleEngine.trackDependency(this, propertyKey);
|
|
90
91
|
return get.call(this);
|
|
91
92
|
};
|
|
92
93
|
}
|
|
@@ -133,6 +134,7 @@ class BaseNode {
|
|
|
133
134
|
else if ((_b = this.parent) === null || _b === void 0 ? void 0 : _b.fragment) {
|
|
134
135
|
this._fragment = this.parent.fragment;
|
|
135
136
|
}
|
|
137
|
+
this._propertiesManager = new PropertiesManager_js_1.PropertiesManager(this);
|
|
136
138
|
}
|
|
137
139
|
createIdSet() {
|
|
138
140
|
return new Set();
|
|
@@ -256,7 +258,11 @@ class BaseNode {
|
|
|
256
258
|
return this._jsonModel.label;
|
|
257
259
|
}
|
|
258
260
|
set label(l) {
|
|
259
|
-
|
|
261
|
+
const isLabelSame = (l !== null && this._jsonModel.label !== null &&
|
|
262
|
+
typeof l === 'object' && typeof this._jsonModel.label === 'object') ?
|
|
263
|
+
JSON.stringify(l) === JSON.stringify(this._jsonModel.label) :
|
|
264
|
+
l === this._jsonModel.label;
|
|
265
|
+
if (!isLabelSame) {
|
|
260
266
|
const changeAction = (0, Events_1.propertyChange)('label', l, this._jsonModel.label);
|
|
261
267
|
this._jsonModel = Object.assign(Object.assign({}, this._jsonModel), { label: l });
|
|
262
268
|
this.notifyDependents(changeAction);
|
|
@@ -271,20 +277,22 @@ class BaseNode {
|
|
|
271
277
|
return !this._jsonModel.name && !isNonTransparent;
|
|
272
278
|
}
|
|
273
279
|
getDependents() {
|
|
274
|
-
return this._dependents.map(x => x.node.id);
|
|
280
|
+
return this._dependents.map(x => ({ id: x.node.id, propertyName: x.propertyName }));
|
|
275
281
|
}
|
|
276
282
|
getState(forRestore = false) {
|
|
277
|
-
return
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
283
|
+
return this.withDependencyTrackingControl(true, () => {
|
|
284
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, this._jsonModel), { properties: this.properties, index: this.index, parent: undefined, qualifiedName: this.qualifiedName }), (this.repeatable === true ? {
|
|
285
|
+
repeatable: true,
|
|
286
|
+
minOccur: this.parent.minItems,
|
|
287
|
+
maxOccur: this.parent.maxItems
|
|
288
|
+
} : {})), { ':type': this[':type'] }), (forRestore ? {
|
|
289
|
+
_dependents: this._dependents.length ? this.getDependents() : undefined,
|
|
290
|
+
allowedComponents: undefined,
|
|
291
|
+
columnClassNames: undefined,
|
|
292
|
+
columnCount: undefined,
|
|
293
|
+
gridClassNames: undefined
|
|
294
|
+
} : {}));
|
|
295
|
+
});
|
|
288
296
|
}
|
|
289
297
|
subscribe(callback, eventName = 'change') {
|
|
290
298
|
this._callbacks[eventName] = this._callbacks[eventName] || [];
|
|
@@ -295,13 +303,14 @@ class BaseNode {
|
|
|
295
303
|
}
|
|
296
304
|
};
|
|
297
305
|
}
|
|
298
|
-
_addDependent(dependent) {
|
|
306
|
+
_addDependent(dependent, propertyName) {
|
|
299
307
|
if (this._dependents.find(({ node }) => node === dependent) === undefined) {
|
|
300
308
|
const subscription = this.subscribe((change) => {
|
|
301
309
|
const changes = change.payload.changes;
|
|
302
310
|
const propsToLook = [...exports.dynamicProps, 'items'];
|
|
303
311
|
const isPropChanged = changes.findIndex(x => {
|
|
304
|
-
|
|
312
|
+
const changedPropertyName = x.propertyName;
|
|
313
|
+
return propsToLook.includes(changedPropertyName) || (changedPropertyName.startsWith('properties.') && propertyName === changedPropertyName);
|
|
305
314
|
}) > -1;
|
|
306
315
|
if (isPropChanged) {
|
|
307
316
|
if (this.form.changeEventBehaviour === 'deps') {
|
|
@@ -312,7 +321,7 @@ class BaseNode {
|
|
|
312
321
|
}
|
|
313
322
|
}
|
|
314
323
|
});
|
|
315
|
-
this._dependents.push({ node: dependent, subscription });
|
|
324
|
+
this._dependents.push({ node: dependent, propertyName, subscription });
|
|
316
325
|
}
|
|
317
326
|
}
|
|
318
327
|
removeDependent(dependent) {
|
|
@@ -348,9 +357,9 @@ class BaseNode {
|
|
|
348
357
|
const depsToRestore = this._jsonModel._dependents;
|
|
349
358
|
if (depsToRestore) {
|
|
350
359
|
depsToRestore.forEach((x) => {
|
|
351
|
-
const node = this.form.getElement(x);
|
|
360
|
+
const node = this.form.getElement(x.id);
|
|
352
361
|
if (node) {
|
|
353
|
-
this._addDependent(node);
|
|
362
|
+
this._addDependent(node, x.propertyName);
|
|
354
363
|
}
|
|
355
364
|
});
|
|
356
365
|
this._jsonModel._dependents = undefined;
|
|
@@ -476,10 +485,13 @@ class BaseNode {
|
|
|
476
485
|
return this._lang;
|
|
477
486
|
}
|
|
478
487
|
get properties() {
|
|
479
|
-
return this.
|
|
488
|
+
return this._propertiesManager.properties;
|
|
480
489
|
}
|
|
481
490
|
set properties(p) {
|
|
482
|
-
this.
|
|
491
|
+
this._propertiesManager.properties = p;
|
|
492
|
+
}
|
|
493
|
+
getPropertiesManager() {
|
|
494
|
+
return this._propertiesManager;
|
|
483
495
|
}
|
|
484
496
|
getNonTransparentParent() {
|
|
485
497
|
let nonTransparentParent = this.parent;
|
|
@@ -570,7 +582,4 @@ __decorate([
|
|
|
570
582
|
__decorate([
|
|
571
583
|
dependencyTracked()
|
|
572
584
|
], BaseNode.prototype, "label", null);
|
|
573
|
-
__decorate([
|
|
574
|
-
dependencyTracked()
|
|
575
|
-
], BaseNode.prototype, "properties", null);
|
|
576
585
|
exports.BaseNode = BaseNode;
|
package/lib/Checkbox.d.ts
CHANGED
|
@@ -129,6 +129,8 @@ declare class Checkbox extends Field {
|
|
|
129
129
|
errorMessage?: string | undefined;
|
|
130
130
|
properties: {
|
|
131
131
|
[key: string]: any;
|
|
132
|
+
} & {
|
|
133
|
+
[key: string]: any;
|
|
132
134
|
};
|
|
133
135
|
repeatable?: boolean | undefined;
|
|
134
136
|
screenReaderText?: string | undefined;
|
|
@@ -144,7 +146,10 @@ declare class Checkbox extends Field {
|
|
|
144
146
|
value?: any;
|
|
145
147
|
displayValueExpression?: string | undefined;
|
|
146
148
|
emptyValue?: "" | "undefined" | "null" | undefined;
|
|
147
|
-
_dependents?:
|
|
149
|
+
_dependents?: {
|
|
150
|
+
id: string;
|
|
151
|
+
propertyName: string | undefined;
|
|
152
|
+
}[] | undefined;
|
|
148
153
|
allowedComponents?: undefined;
|
|
149
154
|
columnClassNames?: undefined;
|
|
150
155
|
columnCount?: undefined;
|