@itwin/presentation-common 5.0.0-dev.50 → 5.0.0-dev.53
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/lib/cjs/presentation-common/content/ContentTraverser.d.ts +1 -1
- package/lib/cjs/presentation-common/content/ContentTraverser.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/ContentTraverser.js +31 -13
- package/lib/cjs/presentation-common/content/ContentTraverser.js.map +1 -1
- package/lib/cjs/presentation-common/content/Fields.d.ts +111 -8
- package/lib/cjs/presentation-common/content/Fields.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Fields.js +133 -95
- package/lib/cjs/presentation-common/content/Fields.js.map +1 -1
- package/lib/cjs/presentation-common/content/Item.d.ts +19 -0
- package/lib/cjs/presentation-common/content/Item.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Item.js +30 -28
- package/lib/cjs/presentation-common/content/Item.js.map +1 -1
- package/lib/esm/presentation-common/content/ContentTraverser.d.ts +1 -1
- package/lib/esm/presentation-common/content/ContentTraverser.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/ContentTraverser.js +31 -13
- package/lib/esm/presentation-common/content/ContentTraverser.js.map +1 -1
- package/lib/esm/presentation-common/content/Fields.d.ts +111 -8
- package/lib/esm/presentation-common/content/Fields.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Fields.js +133 -95
- package/lib/esm/presentation-common/content/Fields.js.map +1 -1
- package/lib/esm/presentation-common/content/Item.d.ts +19 -0
- package/lib/esm/presentation-common/content/Item.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Item.js +30 -28
- package/lib/esm/presentation-common/content/Item.js.map +1 -1
- package/package.json +10 -10
|
@@ -64,6 +64,32 @@ export interface NestedContentFieldJSON<TClassInfoJSON = ClassInfoJSON> extends
|
|
|
64
64
|
* @public
|
|
65
65
|
*/
|
|
66
66
|
export type FieldJSON<TClassInfoJSON = ClassInfoJSON> = BaseFieldJSON | PropertiesFieldJSON<TClassInfoJSON> | ArrayPropertiesFieldJSON<TClassInfoJSON> | StructPropertiesFieldJSON<TClassInfoJSON> | NestedContentFieldJSON<TClassInfoJSON>;
|
|
67
|
+
/**
|
|
68
|
+
* Props for creating [[Field]].
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
interface FieldProps {
|
|
72
|
+
/** Category information */
|
|
73
|
+
category: CategoryDescription;
|
|
74
|
+
/** Unique name */
|
|
75
|
+
name: string;
|
|
76
|
+
/** Display label */
|
|
77
|
+
label: string;
|
|
78
|
+
/** Description of this field's values data type */
|
|
79
|
+
type: TypeDescription;
|
|
80
|
+
/** Are values in this field read-only */
|
|
81
|
+
isReadonly: boolean;
|
|
82
|
+
/** Priority of the field */
|
|
83
|
+
priority: number;
|
|
84
|
+
/** Property editor used to edit values of this field */
|
|
85
|
+
editor?: EditorDescription;
|
|
86
|
+
/** Property renderer used to render values of this field */
|
|
87
|
+
renderer?: RendererDescription;
|
|
88
|
+
/** Extended data associated with this field */
|
|
89
|
+
extendedData?: {
|
|
90
|
+
[key: string]: unknown;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
67
93
|
/**
|
|
68
94
|
* Describes a single content field. A field is usually represented as a grid column
|
|
69
95
|
* or a property pane row.
|
|
@@ -94,7 +120,7 @@ export declare class Field {
|
|
|
94
120
|
/** Parent field */
|
|
95
121
|
private _parent?;
|
|
96
122
|
/**
|
|
97
|
-
* Creates an instance of Field.
|
|
123
|
+
* Creates an instance of [[Field]].
|
|
98
124
|
* @param category Category information
|
|
99
125
|
* @param name Unique name
|
|
100
126
|
* @param label Display label
|
|
@@ -104,10 +130,13 @@ export declare class Field {
|
|
|
104
130
|
* @param editor Property editor used to edit values of this field
|
|
105
131
|
* @param renderer Property renderer used to render values of this field
|
|
106
132
|
* @param extendedData Extended data associated with this field
|
|
133
|
+
* @deprecated in 5.0. Use an overload with `FieldProps` instead.
|
|
107
134
|
*/
|
|
108
135
|
constructor(category: CategoryDescription, name: string, label: string, type: TypeDescription, isReadonly: boolean, priority: number, editor?: EditorDescription, renderer?: RendererDescription, extendedData?: {
|
|
109
136
|
[key: string]: unknown;
|
|
110
137
|
});
|
|
138
|
+
/** Creates an instance of [[Field]]. */
|
|
139
|
+
constructor(props: FieldProps);
|
|
111
140
|
/**
|
|
112
141
|
* Is this a [[PropertiesField]]
|
|
113
142
|
*/
|
|
@@ -149,6 +178,14 @@ export declare class Field {
|
|
|
149
178
|
*/
|
|
150
179
|
matchesDescriptor(descriptor: FieldDescriptor): boolean;
|
|
151
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Props for creating [[PropertiesField]].
|
|
183
|
+
* @public
|
|
184
|
+
*/
|
|
185
|
+
interface PropertiesFieldProps extends FieldProps {
|
|
186
|
+
/** A list of properties this field is created from */
|
|
187
|
+
properties: Property[];
|
|
188
|
+
}
|
|
152
189
|
/**
|
|
153
190
|
* Describes a content field that's based on one or more similar
|
|
154
191
|
* EC properties.
|
|
@@ -159,7 +196,7 @@ export declare class PropertiesField extends Field {
|
|
|
159
196
|
/** A list of properties this field is created from */
|
|
160
197
|
properties: Property[];
|
|
161
198
|
/**
|
|
162
|
-
* Creates an instance of PropertiesField.
|
|
199
|
+
* Creates an instance of [[PropertiesField]].
|
|
163
200
|
* @param category Category information
|
|
164
201
|
* @param name Unique name
|
|
165
202
|
* @param label Display label
|
|
@@ -169,8 +206,11 @@ export declare class PropertiesField extends Field {
|
|
|
169
206
|
* @param properties A list of properties this field is created from
|
|
170
207
|
* @param editor Property editor used to edit values of this field
|
|
171
208
|
* @param renderer Property renderer used to render values of this field
|
|
209
|
+
* @deprecated in 5.0. Use an overload with `PropertiesFieldProps` instead.
|
|
172
210
|
*/
|
|
173
|
-
constructor(category: CategoryDescription, name: string, label: string,
|
|
211
|
+
constructor(category: CategoryDescription, name: string, label: string, type: TypeDescription, isReadonly: boolean, priority: number, properties: Property[], editor?: EditorDescription, renderer?: RendererDescription);
|
|
212
|
+
/** Creates an instance of [[PropertiesField]]. */
|
|
213
|
+
constructor(props: PropertiesFieldProps);
|
|
174
214
|
/** Is this a an array property field */
|
|
175
215
|
isArrayPropertiesField(): this is ArrayPropertiesField;
|
|
176
216
|
/** Is this a an struct property field */
|
|
@@ -202,13 +242,26 @@ export declare class PropertiesField extends Field {
|
|
|
202
242
|
*/
|
|
203
243
|
matchesDescriptor(descriptor: FieldDescriptor): boolean;
|
|
204
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* Props for creating [[ArrayPropertiesField]].
|
|
247
|
+
* @public
|
|
248
|
+
*/
|
|
249
|
+
interface ArrayPropertiesFieldProps extends PropertiesFieldProps {
|
|
250
|
+
itemsField: PropertiesField;
|
|
251
|
+
}
|
|
205
252
|
/**
|
|
206
253
|
* Describes a content field that's based on one or more similar EC array properties.
|
|
207
254
|
* @public
|
|
208
255
|
*/
|
|
209
256
|
export declare class ArrayPropertiesField extends PropertiesField {
|
|
210
257
|
itemsField: PropertiesField;
|
|
211
|
-
|
|
258
|
+
/**
|
|
259
|
+
* Creates an instance of [[ArrayPropertiesField]].
|
|
260
|
+
* @deprecated in 5.0. Use an overload with `ArrayPropertiesFieldProps` instead.
|
|
261
|
+
*/
|
|
262
|
+
constructor(category: CategoryDescription, name: string, label: string, type: TypeDescription, itemsField: PropertiesField, isReadonly: boolean, priority: number, properties: Property[], editor?: EditorDescription, renderer?: RendererDescription);
|
|
263
|
+
/** Creates an instance of [[ArrayPropertiesField]]. */
|
|
264
|
+
constructor(props: ArrayPropertiesFieldProps);
|
|
212
265
|
isArrayPropertiesField(): this is ArrayPropertiesField;
|
|
213
266
|
clone(): ArrayPropertiesField;
|
|
214
267
|
/** Serialize this object to JSON */
|
|
@@ -227,13 +280,26 @@ export declare class ArrayPropertiesField extends PropertiesField {
|
|
|
227
280
|
[id: string]: CompressedClassInfoJSON;
|
|
228
281
|
}, categories: CategoryDescription[]): ArrayPropertiesField;
|
|
229
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* Props for creating [[StructPropertiesField]].
|
|
285
|
+
* @public
|
|
286
|
+
*/
|
|
287
|
+
interface StructPropertiesFieldProps extends PropertiesFieldProps {
|
|
288
|
+
memberFields: PropertiesField[];
|
|
289
|
+
}
|
|
230
290
|
/**
|
|
231
291
|
* Describes a content field that's based on one or more similar EC struct properties.
|
|
232
292
|
* @public
|
|
233
293
|
*/
|
|
234
294
|
export declare class StructPropertiesField extends PropertiesField {
|
|
235
295
|
memberFields: PropertiesField[];
|
|
236
|
-
|
|
296
|
+
/**
|
|
297
|
+
* Creates an instance of [[StructPropertiesField]].
|
|
298
|
+
* @deprecated in 5.0. Use an overload with `StructPropertiesFieldProps` instead.
|
|
299
|
+
*/
|
|
300
|
+
constructor(category: CategoryDescription, name: string, label: string, type: TypeDescription, memberFields: PropertiesField[], isReadonly: boolean, priority: number, properties: Property[], editor?: EditorDescription, renderer?: RendererDescription);
|
|
301
|
+
/** Creates an instance of [[StructPropertiesField]]. */
|
|
302
|
+
constructor(props: StructPropertiesFieldProps);
|
|
237
303
|
isStructPropertiesField(): this is StructPropertiesField;
|
|
238
304
|
clone(): StructPropertiesField;
|
|
239
305
|
/** Serialize this object to JSON */
|
|
@@ -252,6 +318,39 @@ export declare class StructPropertiesField extends PropertiesField {
|
|
|
252
318
|
[id: string]: CompressedClassInfoJSON;
|
|
253
319
|
}, categories: CategoryDescription[]): StructPropertiesField;
|
|
254
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* Props for creating [[NestedContentField]].
|
|
323
|
+
* @public
|
|
324
|
+
*/
|
|
325
|
+
interface NestedContentFieldProps extends FieldProps {
|
|
326
|
+
/** Information about an ECClass whose properties are nested inside this field */
|
|
327
|
+
contentClassInfo: ClassInfo;
|
|
328
|
+
/** Relationship path to [Primary class]($docs/presentation/content/Terminology#primary-class) */
|
|
329
|
+
pathToPrimaryClass: RelationshipPath;
|
|
330
|
+
/**
|
|
331
|
+
* Meaning of the relationship between the [primary class]($docs/presentation/content/Terminology#primary-class)
|
|
332
|
+
* and content class of this field.
|
|
333
|
+
*
|
|
334
|
+
* The value is set up through [[RelatedPropertiesSpecification.relationshipMeaning]] attribute when setting up
|
|
335
|
+
* presentation rules for creating the content.
|
|
336
|
+
*/
|
|
337
|
+
relationshipMeaning?: RelationshipMeaning;
|
|
338
|
+
/**
|
|
339
|
+
* When content descriptor is requested in a polymorphic fashion, fields get created if at least one of the concrete classes
|
|
340
|
+
* has it. In certain situations it's necessary to know which concrete classes caused that and this attribute is
|
|
341
|
+
* here to help.
|
|
342
|
+
*
|
|
343
|
+
* **Example:** There's a base class `A` and it has two derived classes `B` and `C` and class `B` has a relationship to class `D`.
|
|
344
|
+
* When content descriptor is requested for class `A` polymorphically, it's going to contain fields for all properties of class `B`,
|
|
345
|
+
* class `C` and a nested content field for the `B -> D` relationship. The nested content field's `actualPrimaryClassIds` attribute
|
|
346
|
+
* will contain ID of class `B`, identifying that only this specific class has the relationship.
|
|
347
|
+
*/
|
|
348
|
+
actualPrimaryClassIds?: Id64String[];
|
|
349
|
+
/** Contained nested fields */
|
|
350
|
+
nestedFields: Field[];
|
|
351
|
+
/** Flag specifying whether field should be expanded */
|
|
352
|
+
autoExpand?: boolean;
|
|
353
|
+
}
|
|
255
354
|
/**
|
|
256
355
|
* Describes a content field that contains [Nested content]($docs/presentation/content/Terminology#nested-content).
|
|
257
356
|
*
|
|
@@ -286,7 +385,7 @@ export declare class NestedContentField extends Field {
|
|
|
286
385
|
/** Flag specifying whether field should be expanded */
|
|
287
386
|
autoExpand?: boolean;
|
|
288
387
|
/**
|
|
289
|
-
* Creates an instance of NestedContentField.
|
|
388
|
+
* Creates an instance of [[NestedContentField]].
|
|
290
389
|
* @param category Category information
|
|
291
390
|
* @param name Unique name
|
|
292
391
|
* @param label Display label
|
|
@@ -300,8 +399,11 @@ export declare class NestedContentField extends Field {
|
|
|
300
399
|
* @param autoExpand Flag specifying whether field should be expanded
|
|
301
400
|
* @param relationshipMeaning RelationshipMeaning of the field
|
|
302
401
|
* @param renderer Property renderer used to render values of this field
|
|
402
|
+
* @deprecated in 5.0. Use an overload with `NestedContentFieldProps` instead.
|
|
303
403
|
*/
|
|
304
|
-
constructor(category: CategoryDescription, name: string, label: string,
|
|
404
|
+
constructor(category: CategoryDescription, name: string, label: string, type: TypeDescription, isReadonly: boolean, priority: number, contentClassInfo: ClassInfo, pathToPrimaryClass: RelationshipPath, nestedFields: Field[], editor?: EditorDescription, autoExpand?: boolean, renderer?: RendererDescription);
|
|
405
|
+
/** Creates an instance of [[NestedContentField]]. */
|
|
406
|
+
constructor(props: NestedContentFieldProps);
|
|
305
407
|
clone(): NestedContentField;
|
|
306
408
|
/**
|
|
307
409
|
* Get field by its name
|
|
@@ -323,7 +425,7 @@ export declare class NestedContentField extends Field {
|
|
|
323
425
|
/** Deserialize a [[NestedContentField]] from compressed JSON. */
|
|
324
426
|
static fromCompressedJSON(json: NestedContentFieldJSON<Id64String>, classesMap: {
|
|
325
427
|
[id: string]: CompressedClassInfoJSON;
|
|
326
|
-
}, categories: CategoryDescription[]):
|
|
428
|
+
}, categories: CategoryDescription[]): NestedContentField;
|
|
327
429
|
private static fromCommonJSON;
|
|
328
430
|
/** Resets parent of this field and all nested fields. */
|
|
329
431
|
resetParentship(): void;
|
|
@@ -391,4 +493,5 @@ export interface PropertiesFieldDescriptor extends FieldDescriptorBase {
|
|
|
391
493
|
name: string;
|
|
392
494
|
}>;
|
|
393
495
|
}
|
|
496
|
+
export {};
|
|
394
497
|
//# sourceMappingURL=Fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Fields.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,SAAS,EACT,aAAa,EACb,uBAAuB,EAKvB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,8 @@ import { assert } from "@itwin/core-bentley";
|
|
|
9
9
|
import { NavigationPropertyInfo, RelatedClassInfo, RelationshipPath, } from "../EC";
|
|
10
10
|
import { PresentationError, PresentationStatus } from "../Error";
|
|
11
11
|
import { RelationshipMeaning } from "../rules/content/modifiers/RelatedPropertiesSpecification";
|
|
12
|
-
import { Property } from "./Property";
|
|
13
12
|
import { omitUndefined } from "../Utils";
|
|
13
|
+
import { Property } from "./Property";
|
|
14
14
|
function isPropertiesField(field) {
|
|
15
15
|
return !!field.properties;
|
|
16
16
|
}
|
|
@@ -30,28 +30,30 @@ function isNestedContentField(field) {
|
|
|
30
30
|
* @public
|
|
31
31
|
*/
|
|
32
32
|
export class Field {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.
|
|
49
|
-
this.
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
33
|
+
constructor(categoryOrProps, name, label, type, isReadonly, priority, editor, renderer, extendedData) {
|
|
34
|
+
/* istanbul ignore next */
|
|
35
|
+
const props = "category" in categoryOrProps
|
|
36
|
+
? categoryOrProps
|
|
37
|
+
: {
|
|
38
|
+
category: categoryOrProps,
|
|
39
|
+
name: name,
|
|
40
|
+
label: label,
|
|
41
|
+
type: type,
|
|
42
|
+
isReadonly: isReadonly,
|
|
43
|
+
priority: priority,
|
|
44
|
+
editor,
|
|
45
|
+
renderer,
|
|
46
|
+
extendedData,
|
|
47
|
+
};
|
|
48
|
+
this.category = props.category;
|
|
49
|
+
this.name = props.name;
|
|
50
|
+
this.label = props.label;
|
|
51
|
+
this.type = props.type;
|
|
52
|
+
this.isReadonly = props.isReadonly;
|
|
53
|
+
this.priority = props.priority;
|
|
54
|
+
this.editor = props.editor;
|
|
55
|
+
this.renderer = props.renderer;
|
|
56
|
+
this.extendedData = props.extendedData;
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
59
|
* Is this a [[PropertiesField]]
|
|
@@ -72,7 +74,7 @@ export class Field {
|
|
|
72
74
|
return this._parent;
|
|
73
75
|
}
|
|
74
76
|
clone() {
|
|
75
|
-
const clone = new Field(this
|
|
77
|
+
const clone = new Field(this);
|
|
76
78
|
clone.rebuildParentship(this.parent);
|
|
77
79
|
return clone;
|
|
78
80
|
}
|
|
@@ -106,8 +108,8 @@ export class Field {
|
|
|
106
108
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
107
109
|
return NestedContentField.fromJSON(json, categories);
|
|
108
110
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
+
return new Field({
|
|
112
|
+
...json,
|
|
111
113
|
category: Field.getCategoryFromFieldJson(json, categories),
|
|
112
114
|
});
|
|
113
115
|
}
|
|
@@ -122,8 +124,8 @@ export class Field {
|
|
|
122
124
|
if (isNestedContentField(json)) {
|
|
123
125
|
return NestedContentField.fromCompressedJSON(json, classesMap, categories);
|
|
124
126
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
+
return new Field({
|
|
128
|
+
...json,
|
|
127
129
|
category: Field.getCategoryFromFieldJson(json, categories),
|
|
128
130
|
});
|
|
129
131
|
}
|
|
@@ -167,21 +169,23 @@ export class Field {
|
|
|
167
169
|
* @public
|
|
168
170
|
*/
|
|
169
171
|
export class PropertiesField extends Field {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
172
|
+
constructor(categoryOrProps, name, label, type, isReadonly, priority, properties, editor, renderer) {
|
|
173
|
+
/* istanbul ignore next */
|
|
174
|
+
const props = "category" in categoryOrProps
|
|
175
|
+
? categoryOrProps
|
|
176
|
+
: {
|
|
177
|
+
category: categoryOrProps,
|
|
178
|
+
name: name,
|
|
179
|
+
label: label,
|
|
180
|
+
type: type,
|
|
181
|
+
isReadonly: isReadonly,
|
|
182
|
+
priority: priority,
|
|
183
|
+
editor,
|
|
184
|
+
renderer,
|
|
185
|
+
properties: properties,
|
|
186
|
+
};
|
|
187
|
+
super(props);
|
|
188
|
+
this.properties = props.properties;
|
|
185
189
|
}
|
|
186
190
|
/** Is this a an array property field */
|
|
187
191
|
isArrayPropertiesField() {
|
|
@@ -192,7 +196,7 @@ export class PropertiesField extends Field {
|
|
|
192
196
|
return false;
|
|
193
197
|
}
|
|
194
198
|
clone() {
|
|
195
|
-
const clone = new PropertiesField(this
|
|
199
|
+
const clone = new PropertiesField(this);
|
|
196
200
|
clone.rebuildParentship(this.parent);
|
|
197
201
|
return clone;
|
|
198
202
|
}
|
|
@@ -221,8 +225,8 @@ export class PropertiesField extends Field {
|
|
|
221
225
|
if (isStructPropertiesField(json)) {
|
|
222
226
|
return StructPropertiesField.fromJSON(json, categories);
|
|
223
227
|
}
|
|
224
|
-
|
|
225
|
-
|
|
228
|
+
return new PropertiesField({
|
|
229
|
+
...json,
|
|
226
230
|
category: this.getCategoryFromFieldJson(json, categories),
|
|
227
231
|
});
|
|
228
232
|
}
|
|
@@ -237,8 +241,8 @@ export class PropertiesField extends Field {
|
|
|
237
241
|
if (isStructPropertiesField(json)) {
|
|
238
242
|
return StructPropertiesField.fromCompressedJSON(json, classesMap, categories);
|
|
239
243
|
}
|
|
240
|
-
|
|
241
|
-
|
|
244
|
+
return new PropertiesField({
|
|
245
|
+
...json,
|
|
242
246
|
category: this.getCategoryFromFieldJson(json, categories),
|
|
243
247
|
properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),
|
|
244
248
|
});
|
|
@@ -299,15 +303,30 @@ export class PropertiesField extends Field {
|
|
|
299
303
|
* @public
|
|
300
304
|
*/
|
|
301
305
|
export class ArrayPropertiesField extends PropertiesField {
|
|
302
|
-
constructor(
|
|
303
|
-
|
|
304
|
-
|
|
306
|
+
constructor(categoryOrProps, name, label, type, itemsField, isReadonly, priority, properties, editor, renderer) {
|
|
307
|
+
/* istanbul ignore next */
|
|
308
|
+
const props = "category" in categoryOrProps
|
|
309
|
+
? categoryOrProps
|
|
310
|
+
: {
|
|
311
|
+
category: categoryOrProps,
|
|
312
|
+
name: name,
|
|
313
|
+
label: label,
|
|
314
|
+
type: type,
|
|
315
|
+
isReadonly: isReadonly,
|
|
316
|
+
priority: priority,
|
|
317
|
+
editor,
|
|
318
|
+
renderer,
|
|
319
|
+
properties: properties,
|
|
320
|
+
itemsField: itemsField,
|
|
321
|
+
};
|
|
322
|
+
super(props);
|
|
323
|
+
this.itemsField = props.itemsField;
|
|
305
324
|
}
|
|
306
325
|
isArrayPropertiesField() {
|
|
307
326
|
return true;
|
|
308
327
|
}
|
|
309
328
|
clone() {
|
|
310
|
-
const clone = new ArrayPropertiesField(this
|
|
329
|
+
const clone = new ArrayPropertiesField(this);
|
|
311
330
|
clone.rebuildParentship(this.parent);
|
|
312
331
|
return clone;
|
|
313
332
|
}
|
|
@@ -327,8 +346,8 @@ export class ArrayPropertiesField extends PropertiesField {
|
|
|
327
346
|
}
|
|
328
347
|
/** Deserialize [[ArrayPropertiesField]] from JSON */
|
|
329
348
|
static fromJSON(json, categories) {
|
|
330
|
-
|
|
331
|
-
|
|
349
|
+
return new ArrayPropertiesField({
|
|
350
|
+
...json,
|
|
332
351
|
category: this.getCategoryFromFieldJson(json, categories),
|
|
333
352
|
itemsField: PropertiesField.fromJSON(json.itemsField, categories),
|
|
334
353
|
});
|
|
@@ -338,8 +357,8 @@ export class ArrayPropertiesField extends PropertiesField {
|
|
|
338
357
|
* @public
|
|
339
358
|
*/
|
|
340
359
|
static fromCompressedJSON(json, classesMap, categories) {
|
|
341
|
-
|
|
342
|
-
|
|
360
|
+
return new ArrayPropertiesField({
|
|
361
|
+
...json,
|
|
343
362
|
category: this.getCategoryFromFieldJson(json, categories),
|
|
344
363
|
properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),
|
|
345
364
|
itemsField: PropertiesField.fromCompressedJSON(json.itemsField, classesMap, categories),
|
|
@@ -351,15 +370,30 @@ export class ArrayPropertiesField extends PropertiesField {
|
|
|
351
370
|
* @public
|
|
352
371
|
*/
|
|
353
372
|
export class StructPropertiesField extends PropertiesField {
|
|
354
|
-
constructor(
|
|
355
|
-
|
|
356
|
-
|
|
373
|
+
constructor(categoryOrProps, name, label, type, memberFields, isReadonly, priority, properties, editor, renderer) {
|
|
374
|
+
/* istanbul ignore next */
|
|
375
|
+
const props = "category" in categoryOrProps
|
|
376
|
+
? categoryOrProps
|
|
377
|
+
: {
|
|
378
|
+
category: categoryOrProps,
|
|
379
|
+
name: name,
|
|
380
|
+
label: label,
|
|
381
|
+
type: type,
|
|
382
|
+
isReadonly: isReadonly,
|
|
383
|
+
priority: priority,
|
|
384
|
+
editor,
|
|
385
|
+
renderer,
|
|
386
|
+
properties: properties,
|
|
387
|
+
memberFields: memberFields,
|
|
388
|
+
};
|
|
389
|
+
super(props);
|
|
390
|
+
this.memberFields = props.memberFields;
|
|
357
391
|
}
|
|
358
392
|
isStructPropertiesField() {
|
|
359
393
|
return true;
|
|
360
394
|
}
|
|
361
395
|
clone() {
|
|
362
|
-
const clone = new StructPropertiesField(this
|
|
396
|
+
const clone = new StructPropertiesField(this);
|
|
363
397
|
clone.rebuildParentship(this.parent);
|
|
364
398
|
return clone;
|
|
365
399
|
}
|
|
@@ -379,8 +413,8 @@ export class StructPropertiesField extends PropertiesField {
|
|
|
379
413
|
}
|
|
380
414
|
/** Deserialize [[StructPropertiesField]] from JSON */
|
|
381
415
|
static fromJSON(json, categories) {
|
|
382
|
-
|
|
383
|
-
|
|
416
|
+
return new StructPropertiesField({
|
|
417
|
+
...json,
|
|
384
418
|
category: this.getCategoryFromFieldJson(json, categories),
|
|
385
419
|
memberFields: json.memberFields.map((m) => PropertiesField.fromJSON(m, categories)),
|
|
386
420
|
});
|
|
@@ -390,8 +424,8 @@ export class StructPropertiesField extends PropertiesField {
|
|
|
390
424
|
* @public
|
|
391
425
|
*/
|
|
392
426
|
static fromCompressedJSON(json, classesMap, categories) {
|
|
393
|
-
|
|
394
|
-
|
|
427
|
+
return new StructPropertiesField({
|
|
428
|
+
...json,
|
|
395
429
|
category: this.getCategoryFromFieldJson(json, categories),
|
|
396
430
|
properties: json.properties.map((propertyJson) => fromCompressedPropertyJSON(propertyJson, classesMap)),
|
|
397
431
|
memberFields: json.memberFields.map((m) => PropertiesField.fromCompressedJSON(m, classesMap, categories)),
|
|
@@ -404,35 +438,37 @@ export class StructPropertiesField extends PropertiesField {
|
|
|
404
438
|
* @public
|
|
405
439
|
*/
|
|
406
440
|
export class NestedContentField extends Field {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
this.
|
|
427
|
-
this.
|
|
428
|
-
this.
|
|
429
|
-
this.
|
|
430
|
-
this.
|
|
441
|
+
constructor(categoryOrProps, name, label, type, isReadonly, priority, contentClassInfo, pathToPrimaryClass, nestedFields, editor, autoExpand, renderer) {
|
|
442
|
+
/* istanbul ignore next */
|
|
443
|
+
const props = "category" in categoryOrProps
|
|
444
|
+
? categoryOrProps
|
|
445
|
+
: {
|
|
446
|
+
category: categoryOrProps,
|
|
447
|
+
name: name,
|
|
448
|
+
label: label,
|
|
449
|
+
type: type,
|
|
450
|
+
isReadonly: isReadonly,
|
|
451
|
+
priority: priority,
|
|
452
|
+
editor,
|
|
453
|
+
renderer,
|
|
454
|
+
contentClassInfo: contentClassInfo,
|
|
455
|
+
pathToPrimaryClass: pathToPrimaryClass,
|
|
456
|
+
nestedFields: nestedFields,
|
|
457
|
+
autoExpand,
|
|
458
|
+
};
|
|
459
|
+
super(props);
|
|
460
|
+
this.contentClassInfo = props.contentClassInfo;
|
|
461
|
+
this.pathToPrimaryClass = props.pathToPrimaryClass;
|
|
462
|
+
this.relationshipMeaning = props.relationshipMeaning ?? RelationshipMeaning.RelatedInstance;
|
|
463
|
+
this.nestedFields = props.nestedFields;
|
|
464
|
+
this.autoExpand = props.autoExpand;
|
|
465
|
+
this.actualPrimaryClassIds = props.actualPrimaryClassIds ?? [];
|
|
431
466
|
}
|
|
432
467
|
clone() {
|
|
433
|
-
const clone = new NestedContentField(
|
|
434
|
-
|
|
435
|
-
|
|
468
|
+
const clone = new NestedContentField({
|
|
469
|
+
...this,
|
|
470
|
+
nestedFields: this.nestedFields.map((n) => n.clone()),
|
|
471
|
+
});
|
|
436
472
|
clone.rebuildParentship(this.parent);
|
|
437
473
|
return clone;
|
|
438
474
|
}
|
|
@@ -475,8 +511,9 @@ export class NestedContentField extends Field {
|
|
|
475
511
|
if (!json) {
|
|
476
512
|
return undefined;
|
|
477
513
|
}
|
|
478
|
-
|
|
479
|
-
|
|
514
|
+
return new NestedContentField({
|
|
515
|
+
...json,
|
|
516
|
+
...this.fromCommonJSON(json, categories),
|
|
480
517
|
nestedFields: json.nestedFields
|
|
481
518
|
.map((nestedFieldJson) => Field.fromJSON(nestedFieldJson, categories))
|
|
482
519
|
.filter((nestedField) => !!nestedField),
|
|
@@ -485,8 +522,9 @@ export class NestedContentField extends Field {
|
|
|
485
522
|
/** Deserialize a [[NestedContentField]] from compressed JSON. */
|
|
486
523
|
static fromCompressedJSON(json, classesMap, categories) {
|
|
487
524
|
assert(classesMap.hasOwnProperty(json.contentClassInfo));
|
|
488
|
-
|
|
489
|
-
|
|
525
|
+
return new NestedContentField({
|
|
526
|
+
...json,
|
|
527
|
+
...this.fromCommonJSON(json, categories),
|
|
490
528
|
category: this.getCategoryFromFieldJson(json, categories),
|
|
491
529
|
nestedFields: json.nestedFields
|
|
492
530
|
.map((nestedFieldJson) => Field.fromCompressedJSON(nestedFieldJson, classesMap, categories))
|