@fluid-experimental/property-properties 0.59.2001 → 0.59.3000-66610
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/dist/containerSerializer.d.ts +2 -2
- package/dist/containerSerializer.d.ts.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.d.ts +1 -1
- package/dist/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/dist/properties/arrayProperty.d.ts +9 -9
- package/dist/properties/arrayProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.js.map +1 -1
- package/dist/properties/containerProperty.d.ts +1 -6
- package/dist/properties/containerProperty.d.ts.map +1 -1
- package/dist/properties/enumProperty.d.ts +0 -9
- package/dist/properties/enumProperty.d.ts.map +1 -1
- package/dist/properties/floatProperties.d.ts +0 -18
- package/dist/properties/floatProperties.d.ts.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.d.ts +1 -1
- package/dist/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/dist/properties/intProperties.d.ts +0 -28
- package/dist/properties/intProperties.d.ts.map +1 -1
- package/dist/properties/mapProperty.d.ts +1 -1
- package/dist/properties/mapProperty.d.ts.map +1 -1
- package/dist/properties/nodeProperty.d.ts +0 -10
- package/dist/properties/nodeProperty.d.ts.map +1 -1
- package/dist/properties/referenceArrayProperty.d.ts +0 -10
- package/dist/properties/referenceArrayProperty.d.ts.map +1 -1
- package/dist/properties/referenceMapProperty.d.ts +0 -10
- package/dist/properties/referenceMapProperty.d.ts.map +1 -1
- package/dist/properties/referenceProperty.d.ts +0 -10
- package/dist/properties/referenceProperty.d.ts.map +1 -1
- package/dist/properties/setProperty.d.ts +3 -3
- package/dist/properties/setProperty.d.ts.map +1 -1
- package/dist/properties/uintProperties.d.ts +0 -27
- package/dist/properties/uintProperties.d.ts.map +1 -1
- package/dist/properties/valueArrayProperty.d.ts +0 -128
- package/dist/properties/valueArrayProperty.d.ts.map +1 -1
- package/dist/properties/valueMapProperty.d.ts +0 -129
- package/dist/properties/valueMapProperty.d.ts.map +1 -1
- package/dist/propertyFactory.js.map +1 -1
- package/dist/propertyTemplate.d.ts +1 -1
- package/dist/propertyTemplate.d.ts.map +1 -1
- package/dist/propertyTemplateWrapper.d.ts +5 -5
- package/dist/propertyTemplateWrapper.d.ts.map +1 -1
- package/dist/propertyUtils.d.ts +1 -1
- package/dist/propertyUtils.d.ts.map +1 -1
- package/dist/test/propertyFactory.spec.js +1 -0
- package/dist/test/propertyFactory.spec.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +1 -2387
- package/dist/test/utils.spec.js +12 -3
- package/dist/test/utils.spec.js.map +1 -1
- package/lib/containerSerializer.d.ts +2 -2
- package/lib/containerSerializer.d.ts.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.d.ts +1 -1
- package/lib/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/lib/properties/arrayProperty.d.ts +9 -9
- package/lib/properties/arrayProperty.d.ts.map +1 -1
- package/lib/properties/baseProperty.d.ts.map +1 -1
- package/lib/properties/baseProperty.js.map +1 -1
- package/lib/properties/containerProperty.d.ts +1 -6
- package/lib/properties/containerProperty.d.ts.map +1 -1
- package/lib/properties/enumProperty.d.ts +0 -9
- package/lib/properties/enumProperty.d.ts.map +1 -1
- package/lib/properties/floatProperties.d.ts +0 -18
- package/lib/properties/floatProperties.d.ts.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.d.ts +1 -1
- package/lib/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/lib/properties/intProperties.d.ts +0 -28
- package/lib/properties/intProperties.d.ts.map +1 -1
- package/lib/properties/mapProperty.d.ts +1 -1
- package/lib/properties/mapProperty.d.ts.map +1 -1
- package/lib/properties/nodeProperty.d.ts +0 -10
- package/lib/properties/nodeProperty.d.ts.map +1 -1
- package/lib/properties/referenceArrayProperty.d.ts +0 -10
- package/lib/properties/referenceArrayProperty.d.ts.map +1 -1
- package/lib/properties/referenceMapProperty.d.ts +0 -10
- package/lib/properties/referenceMapProperty.d.ts.map +1 -1
- package/lib/properties/referenceProperty.d.ts +0 -10
- package/lib/properties/referenceProperty.d.ts.map +1 -1
- package/lib/properties/setProperty.d.ts +3 -3
- package/lib/properties/setProperty.d.ts.map +1 -1
- package/lib/properties/uintProperties.d.ts +0 -27
- package/lib/properties/uintProperties.d.ts.map +1 -1
- package/lib/properties/valueArrayProperty.d.ts +0 -128
- package/lib/properties/valueArrayProperty.d.ts.map +1 -1
- package/lib/properties/valueMapProperty.d.ts +0 -129
- package/lib/properties/valueMapProperty.d.ts.map +1 -1
- package/lib/propertyFactory.js.map +1 -1
- package/lib/propertyTemplate.d.ts +1 -1
- package/lib/propertyTemplate.d.ts.map +1 -1
- package/lib/propertyTemplateWrapper.d.ts +5 -5
- package/lib/propertyTemplateWrapper.d.ts.map +1 -1
- package/lib/propertyUtils.d.ts +1 -1
- package/lib/propertyUtils.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @return {{}} JSON data of the document
|
|
6
6
|
* @alias property-properties.serialize
|
|
7
7
|
*/
|
|
8
|
-
export function serialize(in_psets: Array<
|
|
8
|
+
export function serialize(in_psets: Array<BaseProperty>, in_dirtyOnly: bool): {};
|
|
9
9
|
/**
|
|
10
10
|
* Deserialize the input document
|
|
11
11
|
* @param {{}} in_data the input JSON document data
|
|
@@ -23,5 +23,5 @@ export function deserialize(in_data: {}, in_scope: string | undefined, in_filter
|
|
|
23
23
|
* @return {array<BaseProperty>} an array of psets
|
|
24
24
|
* @alias property-properties.deserializeNonPrimitiveArrayElements
|
|
25
25
|
*/
|
|
26
|
-
export function deserializeNonPrimitiveArrayElements(in_data: any
|
|
26
|
+
export function deserializeNonPrimitiveArrayElements(in_data: array<any>, in_scope: string | undefined): array<BaseProperty>;
|
|
27
27
|
//# sourceMappingURL=containerSerializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerSerializer.d.ts","sourceRoot":"","sources":["../src/containerSerializer.js"],"names":[],"mappings":"AAwDA;;;;;;GAMG;AACH,oCALW,
|
|
1
|
+
{"version":3,"file":"containerSerializer.d.ts","sourceRoot":"","sources":["../src/containerSerializer.js"],"names":[],"mappings":"AAwDA;;;;;;GAMG;AACH,oCALW,mBAAmB,uBAElB,EAAE,CAmBb;AAED;;;;;;;;GAQG;AACH,qCAPW,EAAE,YACF,MAAM,GAAC,SAAS,6BAGf,EAAE,CAsEb;AACD;;;;;;GAMG;AACH,oFAJW,MAAM,GAAC,SAAS,uBAiC1B"}
|
|
@@ -19,7 +19,7 @@ export class AbstractStaticCollectionProperty extends BaseProperty {
|
|
|
19
19
|
*
|
|
20
20
|
* @return {property-properties.BaseProperty | undefined} The property you seek or undefined if none is found.
|
|
21
21
|
*/
|
|
22
|
-
_get(in_id: string | number):
|
|
22
|
+
_get(in_id: string | number): property;
|
|
23
23
|
/**
|
|
24
24
|
* Returns the GUID of this named property
|
|
25
25
|
* A Guid is a unique identifier for a branch, commit or repository,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractStaticCollectionProperty.d.ts","sourceRoot":"","sources":["../../src/properties/abstractStaticCollectionProperty.js"],"names":[],"mappings":"AAYA;;;;;GAKG;AAEH;IACI;;;OAGG;IACH,wBAQC;IAHO,oBAAyB;IAE7B,sBAA2B;IAkE/B;;;;;;OAMG;IACH,YAJY,MAAM,GAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"abstractStaticCollectionProperty.d.ts","sourceRoot":"","sources":["../../src/properties/abstractStaticCollectionProperty.js"],"names":[],"mappings":"AAYA;;;;;GAKG;AAEH;IACI;;;OAGG;IACH,wBAQC;IAHO,oBAAyB;IAE7B,sBAA2B;IAkE/B;;;;;;OAMG;IACH,YAJY,MAAM,GAAC,MAAM,YAMxB;IAiBD;;;;;;OAMG;IACH,WAFY,MAAM,CAKjB;IAED;;;;;;;;;;;;;;OAcG;IACH,iBAZY,MAAM,GAAC,MAAM,GAAC,MAAM,MAAM,GAAC,MAAM,CAAC,wBAiB7C;IAED;;;;;OAKG;IACH,0BASC;IAWD;;;;OAIG;IACH,WAFY,MAAO,MAAM,CAAC,CAIzB;IAED;;;;;;;;;OASG;IACH,aARY,MAAM,CAsBjB;IAED;;;;;OAKG;IACH,WAHW,MAAM,GACL,OAAO,CAIlB;IAiGD;;;;;;;;OAQG;IACH,sBALW,MAAM,YACN,OAAO,cACP,OAAO,QAyBjB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,qBALW,MAAM,QAchB;IAED;;;;;;;;;;;;OAYG;IACH,yDANW,OAAO,QA6BjB;IAED;;;;;;;;MAQE;IACF,yCAMC;IAmED;;;;;;;OAOG;IACH,sFAHW,MAAM,eAsBhB;IAkJD;;;;OAIG;IACH,0BAEC;IAED;;;OAGG;IACH,uCAIC;CACJ"}
|
|
@@ -53,18 +53,18 @@ export class ArrayProperty extends AbstractStaticCollectionProperty {
|
|
|
53
53
|
* @throws if trying to remove an item with a parent
|
|
54
54
|
* @return {property-properties.BaseProperty | * } the value that was removed.
|
|
55
55
|
*/
|
|
56
|
-
remove(in_position: number):
|
|
56
|
+
remove(in_position: number): property;
|
|
57
57
|
/**
|
|
58
58
|
* Removes the last element of the array or the last letter of a string (for StringProperty)
|
|
59
59
|
* @throws if trying to modify a referenced property
|
|
60
60
|
* @return {property-properties.BaseProperty|*} deleted element.
|
|
61
61
|
*/
|
|
62
|
-
pop():
|
|
62
|
+
pop(): property;
|
|
63
63
|
/**
|
|
64
64
|
* Removes an element from the front of the array or a letter from the beginning of a string (for StringProperty)
|
|
65
65
|
* @return {*|property-properties.BaseProperty} the element removed.
|
|
66
66
|
*/
|
|
67
|
-
shift(): any |
|
|
67
|
+
shift(): any | property;
|
|
68
68
|
/**
|
|
69
69
|
* Removes elements from the front of the queue (array)
|
|
70
70
|
*/
|
|
@@ -99,12 +99,12 @@ export class ArrayProperty extends AbstractStaticCollectionProperty {
|
|
|
99
99
|
* Returns the pending changeset for this object
|
|
100
100
|
* @return {property-properties.SerializedChangeSet} The pending changes
|
|
101
101
|
*/
|
|
102
|
-
_getPendingChanges():
|
|
102
|
+
_getPendingChanges(): property;
|
|
103
103
|
/**
|
|
104
104
|
* Returns the dirty changeset for this object
|
|
105
105
|
* @return {property-properties.SerializedChangeSet} The dirty changes
|
|
106
106
|
*/
|
|
107
|
-
_getDirtyChanges():
|
|
107
|
+
_getDirtyChanges(): property;
|
|
108
108
|
/**
|
|
109
109
|
* Sets the pending and dirty changesets
|
|
110
110
|
*
|
|
@@ -152,7 +152,7 @@ export class ArrayProperty extends AbstractStaticCollectionProperty {
|
|
|
152
152
|
* @return {Array<*>| Array<property-properties.BaseProperty>} an array containing the values or
|
|
153
153
|
* properties removed.
|
|
154
154
|
*/
|
|
155
|
-
removeRange(in_offset: number, in_deleteCount: number): Array<any> | Array<
|
|
155
|
+
removeRange(in_offset: number, in_deleteCount: number): Array<any> | Array<property>;
|
|
156
156
|
/**
|
|
157
157
|
* removes a given number of elements from the array property, and ensures, if this is not
|
|
158
158
|
* a primitive array, that any existing properties have their parent pointer cleared.
|
|
@@ -210,7 +210,7 @@ export class ArrayProperty extends AbstractStaticCollectionProperty {
|
|
|
210
210
|
* @return {property-properties.SerializedChangeSet} ChangeSet with the changes that actually were performed during the
|
|
211
211
|
* deserialization
|
|
212
212
|
*/
|
|
213
|
-
_deserializeNamedPropertyArray(in_serializedObj: any, in_reportToView?: boolean):
|
|
213
|
+
_deserializeNamedPropertyArray(in_serializedObj: any, in_reportToView?: boolean): property;
|
|
214
214
|
/**
|
|
215
215
|
* Function to deserialize special primitive types.
|
|
216
216
|
* Some primitive types (e.g. Int64, which is not natively supported by javascript) require
|
|
@@ -228,7 +228,7 @@ export class ArrayProperty extends AbstractStaticCollectionProperty {
|
|
|
228
228
|
* @param {*} in_obj - The object to be serialized
|
|
229
229
|
* @return {property-properties.SerializedChangeSet} the serialized object
|
|
230
230
|
*/
|
|
231
|
-
_serializeValue(in_obj: any):
|
|
231
|
+
_serializeValue(in_obj: any): property;
|
|
232
232
|
/**
|
|
233
233
|
* Function to serialize arrays of special primitive types.
|
|
234
234
|
* Some primitive types (e.g. Int64, which is not natively supported by javascript) require
|
|
@@ -237,7 +237,7 @@ export class ArrayProperty extends AbstractStaticCollectionProperty {
|
|
|
237
237
|
* @param {Array} in_array - The array of special objects to be serialized
|
|
238
238
|
* @return {Array<property-properties.SerializedChangeSet>} the serialized object
|
|
239
239
|
*/
|
|
240
|
-
_serializeArray(in_array: any[]): Array<
|
|
240
|
+
_serializeArray(in_array: any[]): Array<property>;
|
|
241
241
|
/**
|
|
242
242
|
* Function to deserialize arrays of special primitive types.
|
|
243
243
|
* Some primitive types (e.g. Int64, which is not natively supported by javascript) require
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrayProperty.d.ts","sourceRoot":"","sources":["../../src/properties/arrayProperty.js"],"names":[],"mappings":"AA6IA;IACI;;;;;;OAMG;IACH,wBAaC;IAJO,eAAsB;IAqD9B;;;;;;;;;OASG;IACH,oBAPW,MAAM,uBAShB;IAaD;;;;;;;OAOG;IACH,sBAFY,MAAM,CASjB;IAED;;OAEG;IACH,gCAEC;IAED;;;;;;;;;OASG;IACH,yBAFY,MAAM,CASjB;IAED;;;;;;;;;OASG;IACH,oBANW,MAAM,
|
|
1
|
+
{"version":3,"file":"arrayProperty.d.ts","sourceRoot":"","sources":["../../src/properties/arrayProperty.js"],"names":[],"mappings":"AA6IA;IACI;;;;;;OAMG;IACH,wBAaC;IAJO,eAAsB;IAqD9B;;;;;;;;;OASG;IACH,oBAPW,MAAM,uBAShB;IAaD;;;;;;;OAOG;IACH,sBAFY,MAAM,CASjB;IAED;;OAEG;IACH,gCAEC;IAED;;;;;;;;;OASG;IACH,yBAFY,MAAM,CASjB;IAED;;;;;;;;;OASG;IACH,oBANW,MAAM,YAUhB;IAED;;;;OAIG;IACH,gBASC;IAED;;;OAGG;IACH,SAFY,cAAU,CAUrB;IAED;;OAEG;IACH,eAEC;IAED;;;;;;;OAOG;IACH,iBALW,MAAM,uBAUhB;IAwCD;;;OAGG;IACH,8BAHW,UAAQ,MAAO,QA8BzB;IAuBD;;OAEG;IACH,cAIC;IAYD;;;;;;OAMG;IACH,uBAUC;IAED;;;OAGG;IACH,+BAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;;;;;;;OASG;IACH,kDAwCC;IAoCD;;;;;;;;;;;OAWG;IACH,uBARW,MAAM,YACN,UAAQ,QAsBlB;IAED;;;;;;;;OAQG;IACH,oCAgCC;IAED;;;;;;;;;;;;OAYG;IACH,uBATW,MAAM,kBACN,MAAM,GAKL,UAAQ,GAAE,eAAc,CAkBnC;IAED;;;;;;OAMG;IACH,oBAYC;IAED;;;;;;OAMG;IACH,oCAQC;IAED;;;;;;;;OAQG;IACH,oBALW,MAAM,uBAmBhB;IAED;;;;;;OAMG;IACH,oCAHW,MAAM,YACN,UAAQ,QAIlB;IAED;;;;;;OAMG;IACH,uCAHW,MAAM,YACN,UAAQ,QAmClB;IA4HD;;OAEG;IACH,oBAEC;IAkJD;;;;;;;;;;OAUG;IACH,wEANW,OAAO,YA+JjB;IAED;;;;;;;OAOG;IACH,8CAEC;IAED;;;;;;;OAOG;IACH,uCAGC;IAED;;;;;;;OAOG;IACH,kCAFY,eAAc,CAezB;IAED;;;;;;;OAOG;IACH,gDAEC;IAyGD;;;;MA4GC;IAmJD;;;OAGG;IACH,0CASC;IANG,kCAAsD;IAQ1D;;;OAGG;IACH,8BAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;;;OAKG;IACH,0CAEC;IAED;;;;OAIG;IACH,0DAEC;IAED;;;OAGG;IACH,gDAEC;IAED;;;;OAIG;IACH,kEAEC;IAED;;;;OAIG;IACH,oEAEC;IAED;;;;OAIG;IACH,+DAEC;IAyBD,wBAEC;IARD;;OAEG;IACH,qBAEC;CAIJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,SAAS,EACT,UAAU,EACV,mBAAmB,EAEtB,MAAM,wCAAwC,CAAC;AAOhD;;GAEG;AACH,aAAK,oBAAoB;IACrB,iEAAiE;IACjE,MAAM,IAAA;IACN,yGAAyG;IACzG,QAAQ,IAAA;IACR,kDAAkD;IAClD,KAAK,IAAA;CACR;AAED;;IAEI;AACJ,aAAK,oBAAoB;IACrB,gDAAgD;IAChD,KAAK,IAAA;IACL,2EAA2E;IAC3E,cAAc,IAAA;IACd,mHAAmH;IACnH,KAAK,IAAA;CACR;AAgBD,UAAU,mBAAmB;IACzB,yBAAyB;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6GAA6G;IAC7G,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAGhB,6EAA6E;IAC7E,UAAU,EAAE,YAAY,EAAE,CAAC;IAG3B,kFAAkF;IAClF,QAAQ,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"baseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseProperty.js","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/* eslint accessor-pairs: [2, { \"getWithoutSet\": false }] */\nimport _ from 'lodash';\nimport {\n ChangeSet,\n PathHelper,\n SerializedChangeSet,\n TypeIdHelper,\n} from '@fluid-experimental/property-changeset';\nimport { ConsoleUtils, constants } from '@fluid-experimental/property-common';\nimport { LazyLoadedProperties as Property } from './lazyLoadedProperties';\n\nconst { MSG, PROPERTY_PATH_DELIMITER } = constants;\nconst BREAK_TRAVERSAL = 'BREAK';\n\n/**\n * Determines in which cases a reference will automatically be resolved\n */\nenum REFERENCE_RESOLUTION {\n /** The resolution will always automatically follow references */\n ALWAYS,\n /** If a reference is the last entry during the path resolution, it will not automatically be resolved */\n NO_LEAFS,\n /** References are never automatically resolved */\n NEVER,\n}\n\n/**\n * Used to indicate the state of a property. These flags can be connected via OR.\n */\nenum MODIFIED_STATE_FLAGS {\n /** No changes to this property at the moment */\n CLEAN,\n /** The property is marked as changed in the currently pending ChangeSet */\n PENDING_CHANGE,\n /** The property has been modified and the result has not yet been reported to the application for scene updates */\n DIRTY,\n}\n\n/**\n * Token Types\n * @enum Object\n * Type of the token in the path string\n */\nconst PATH_TOKENS = {\n /** A / at the beginning of the path */\n ROOT: { 'token': 'ROOT' },\n /** A * that indicates a dereferencing operation */ // note: reversed!\n REF: { 'token': 'REF' },\n /** A ../ that indicates one step above the current path */\n UP: { 'token': 'UP' },\n};\n\ninterface IBasePropertyParams {\n /** id of the property */\n id?: string,\n /** The type unique identifier */\n typeid?: string,\n /** The length of the property. Only valid if the property is an array, otherwise the length defaults to 1 */\n length: number,\n /** The type of property this template represents i.e. single, array, map, set. */\n context: string,\n\n // TODO: UNUSED PARAMETER ??\n /** List of property templates that are used to define children properties */\n properties: BaseProperty[],\n\n // TODO: UNUSED PARAMETER ??\n /** List of property template typeids that this PropertyTemplate inherits from */\n inherits: string[]\n}\n\ninterface ISerializeOptions {\n /** Only include dirty entries in the serialization */\n dirtyOnly?: boolean,\n /** Include the typeid of the root of the hierarchy */\n includeRootTypeid?: boolean,\n /** The type of dirtiness to use when reporting dirty changes. */\n dirtinessType?: MODIFIED_STATE_FLAGS,\n /**\n * If this is set to true, the serialize\n * function will descend into referenced repositories. WARNING: if there are loops in the references\n * this can result in an infinite loop\n */\n includeReferencedRepositories?: boolean\n}\n\n/**\n * The options to selectively create only a subset of a property.\n *\n * For now the filtering options are propagated by many functions, but are actually used only by\n * functions that create properties from schemas. It is then possible to create only a subset of\n * the properties of a schema by providing a restricted list of paths.\n *\n * Thus, with the filtering options, it is NOT possible to prevent a part of a ChangeSet from being\n * processed (in `applyChangeSet()` for example), it is NOT possible to prevent a property from being\n * created by a direct call to a function like `deserialize()` or `createProperty()`.\n *\n */\nexport abstract class BaseProperty {\n protected _id: string | undefined;\n protected _isConstant: boolean;\n protected _dirty: MODIFIED_STATE_FLAGS;\n protected _typeid: string;\n protected _context: string;\n protected _parent: BaseProperty | undefined;\n protected _noDirtyInBase: boolean;\n\n _tree: any;\n _checkoutView: any;\n _checkedOutRepositoryInfo: any;\n\n constructor(in_params: IBasePropertyParams) {\n // Pre-conditions\n // This test has been disabled for performance reasons, if it would be incorrect,\n // the next line will throw anyways\n // ConsoleUtils.assert(in_params, MSG.PROP_CONSTRUCTOR_EXPECTS_OBJECTS);\n\n if (this._id !== in_params.id) {\n this._id = in_params.id;\n }\n\n // Makes sure context value is fine\n // This assertion has been disabled for performance reasons. This is not a user facing\n // constructor function and therefore we rely on PropertyFactory to correctly provide the context.\n /* ConsoleUtils.assert(!in_params.context || in_params.context === this._context,\n MSG.CONTEXT_NOT_AS_EXPECTED + this._context + ' != ' + in_params.context); */\n\n // Sets typeid if default value is not fine\n let typeId = in_params.typeid || 'BaseProperty';\n if (typeId !== this._typeid) {\n this._typeid = typeId;\n }\n\n this._parent = undefined;\n // internal management\n if (!this._noDirtyInBase) {\n this._dirty = MODIFIED_STATE_FLAGS.CLEAN;\n }\n }\n\n static MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS;\n static REFERENCE_RESOLUTION = REFERENCE_RESOLUTION;\n static PATH_TOKENS = PATH_TOKENS;\n\n /**\n * @returns The typeid of this property\n */\n getTypeid(): string {\n return this._typeid;\n }\n\n /**\n * @returns The context of this property\n */\n getContext(): string {\n return this._context;\n }\n\n /**\n * Get the scope to which this property belongs to.\n * @returns The guid representing the scope in which the\n * property belongs to\n */\n protected _getScope(): string | undefined {\n if (this._parent) {\n return this.getRoot()._getScope();\n } else {\n return undefined;\n }\n }\n\n /**\n * Returns the full property type identifier for the ChangeSet including the enum type id\n * @param in_hideCollection - if true the collection type (if applicable) will be omitted\n * since that is not applicable here, this param is ignored\n * @returns The typeid\n */\n getFullTypeid(in_hideCollection = false): string {\n return this._typeid;\n }\n\n /**\n * Updates the parent for the property\n *\n * @param in_property - The parent property\n */\n protected _setParent(in_property: BaseProperty) {\n this._parent = in_property;\n\n // If the property is dirty but not its parent, dirty the parent. In cases like named properties\n // and default values, a parent is set after a value is set; we get a case where the\n // property is dirty but not its parent and the change is not included in a changeSet.\n if (this._parent && this._isDirty() && !this._parent._isDirty()) {\n this._parent._setDirty(false, this);\n }\n }\n\n /**\n * Is this property the root of the property set tree?\n *\n * @returns True if it is a root, otherwise false.\n */\n isRoot(): boolean {\n // This checks, whether this is the root of a CheckOutView\n // (all other properties should have a parent property)\n return this._parent === undefined;\n }\n\n /**\n * Is this property the ancestor of in_otherProperty?\n * Note: A property is not considered an ancestor of itself\n * @param in_otherProperty - possible descendant\n * @throws if in_otherProperty is not defined.\n * @returns True if it is a ancestor, otherwise false.\n */\n isAncestorOf(in_otherProperty: BaseProperty): boolean {\n ConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n var parent = in_otherProperty.getParent();\n while (parent) {\n if (parent === this) {\n return true;\n } else {\n parent = parent.getParent();\n }\n }\n return false;\n }\n\n /**\n * Is this property the descendant of in_otherProperty?\n * Note: A property is not considered a descendant of itself\n * @param in_otherProperty - possible ancestor\n * @throws if in_otherProperty is not defined.\n * @returns True if it is a descendant, otherwise false.\n */\n isDescendantOf(in_otherProperty: BaseProperty): boolean {\n ConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n return in_otherProperty.isAncestorOf(this);\n }\n\n /**\n * Is this property a leaf node with regard to flattening?\n *\n * TODO: Which semantics should flattening have? It stops at primitive types and collections?\n *\n * @returns True if it is a leaf with regard to flattening\n */\n _isFlattenLeaf(): boolean {\n return false;\n }\n\n /**\n * Get the parent of this property\n *\n * @returns The parent of this property (or undefined if none exist)\n */\n getParent(): BaseProperty | undefined {\n return this._parent;\n }\n\n /**\n * checks whether the property is dynamic (only properties inherting from NodeProperty are)\n * @returns True if it is a dynamic property.\n */\n isDynamic() {\n return false;\n }\n\n /**\n * Sets the property as dirty and/or pending. This will add one or both flags if not already set and will\n * do the same for its parent. This does not clear any flag, it only sets.\n *\n * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n * and trigger a modified event there. When batching updates, this\n * can be prevented via this flag.\n * @param in_callingChild - The child which is dirtying its parent\n * @param in_flags - The flags to set.\n * @private\n */\n _setDirty(\n in_reportToView = true,\n in_callingChild: BaseProperty = undefined,\n in_flags: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n ) {\n if (in_flags === undefined) {\n in_flags = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n }\n var reportToView = in_reportToView;\n if (reportToView === undefined) {\n reportToView = true;\n }\n // We only update the flags upwards in the tree, when the corresponding nodes are not already flagged\n var oldFlags = this._getDirtyFlags();\n if ((oldFlags & in_flags) !== in_flags) { // only dirty once until clean.\n this._setDirtyFlags(oldFlags | in_flags);\n\n // Report dirtiness upwards in the hierarchy\n if (this._parent) {\n this._parent._setDirty(reportToView, this, in_flags);\n reportToView = false;\n }\n }\n if (reportToView) {\n this._reportDirtinessToView();\n }\n }\n\n /**\n * Sets the dirty flags for this property\n * @param in_flags - The dirty flags\n */\n _setDirtyFlags(in_flags: MODIFIED_STATE_FLAGS) {\n this._dirty = in_flags;\n }\n\n /**\n * Gets the dirty flags for this property\n * @returns The dirty flags\n */\n _getDirtyFlags(): MODIFIED_STATE_FLAGS {\n return this._dirty;\n }\n\n /**\n * Helper function, which reports the fact that a property has been dirtied to the checkout view\n * @private\n */\n // TODO: Cleaner way to make the property tree aware of the DDS hosting it.\n // Currently, this._tree is set in SharedPropertyTree constructor.\n _reportDirtinessToView() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let currentNode: BaseProperty = this;\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n while (currentNode._parent) {\n currentNode = currentNode._parent;\n }\n\n if (\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n currentNode._tree &&\n currentNode._tree.notificationDelayScope === 0 &&\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n currentNode._isDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY)\n ) {\n currentNode._tree._reportDirtinessToView();\n }\n }\n\n /**\n * Modifies the property according to the given changeset\n *\n * @param in_changeSet - The changeset to apply\n * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions]\n * The filtering options to consider while applying the ChangeSet.\n * @throws if in_changeSet is invalid.\n */\n applyChangeSet(in_changeSet: SerializedChangeSet) {\n this._checkIsNotReadOnly(false);\n\n // We just forward the call to the internal function\n this._applyChangeset(in_changeSet, true);\n }\n\n /**\n * Modifies the property according to the given changeset\n *\n * Internal function.\n *\n * @param in_changeSet - The changeset to apply\n * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n * and trigger a modified event there. When batching updates, this\n * can be prevented via this flag.\n * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions]\n * The filtering options to consider while applying the ChangeSet. For now it is only used to\n * control property creation, to prevent properties from being created outside the checked out\n * paths. It does not validate that a value inside the ChangeSet is outside those paths.\n */\n _applyChangeset(in_changeSet: SerializedChangeSet, in_reportToView = true, in_filteringOptions = undefined) {\n var typeids = _.keys(in_changeSet);\n for (const typeid of typeids) {\n if (ChangeSet.isReservedKeyword(typeid)) {\n continue; // Ignore the special keys\n }\n\n var paths = _.keys(in_changeSet[typeid]);\n for (const path of paths) {\n var property = this.resolvePath(path, { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER });\n if (property) {\n property._applyChangeset(in_changeSet[typeid][path], false);\n } else {\n throw new Error(MSG.INVALID_PATH + path);\n }\n }\n }\n\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n }\n\n /**\n * Re-apply dirty flags from changesets\n *\n * Internal function.\n *\n * @param in_pendingChangeSet - The pending changeset to apply\n * @param in_dirtyChangeSet - The dirty changeset to apply\n * @throws if changeset arguments are invalid.\n */\n _reapplyDirtyFlags(in_pendingChangeSet: SerializedChangeSet, in_dirtyChangeSet: SerializedChangeSet) {\n this._checkIsNotReadOnly(false);\n // Here we must walk both changesets in parallel. Sometimes there will be only an entry in one\n // changeset, sometimes only one in the other changeset, sometimes one in both.\n const typeids = _.keys(in_pendingChangeSet).concat(_.keys(in_dirtyChangeSet));\n for (const typeid of typeids) {\n if (ChangeSet.isReservedKeyword(typeid)) {\n continue; // Ignore the special keys\n }\n const pendingChangeSet = in_pendingChangeSet && in_pendingChangeSet[typeid];\n const dirtyChangeSet = in_dirtyChangeSet && in_dirtyChangeSet[typeid];\n\n const paths = _.keys(pendingChangeSet).concat(_.keys(dirtyChangeSet));\n for (const path of paths) {\n let property = this.resolvePath(path);\n if (property) {\n property._reapplyDirtyFlags(\n pendingChangeSet && pendingChangeSet[path],\n dirtyChangeSet && dirtyChangeSet[path]);\n } else {\n throw new Error(MSG.INVALID_PATH + path);\n }\n }\n }\n }\n\n protected resolvePath(path: string, params?: any): BaseProperty {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Removes the dirtiness flag from this property\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean, if none are supplied all\n * will be removed\n * @private\n */\n _cleanDirty(in_flags) {\n this._setDirtyFlags(in_flags === undefined ? MODIFIED_STATE_FLAGS.CLEAN :\n (this._getDirtyFlags() & ~in_flags));\n }\n\n /**\n * Removes the dirtiness flag from this property and recursively from all of its children\n *\n * @param in_flags - The flags to clean, if none are supplied all\n * will be removed\n */\n cleanDirty(in_flags: MODIFIED_STATE_FLAGS) {\n var dirtyChildren = this._getDirtyChildren(in_flags);\n for (const dirtyChild of dirtyChildren) {\n const child = this.get(\n dirtyChild,\n { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER },\n );\n child.cleanDirty(in_flags);\n child._cleanDirty(in_flags);\n }\n\n // after all paths are clean, we are also clean!\n this._cleanDirty(in_flags);\n }\n\n /**\n * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n * application for runtime scene updates.\n *\n * @param in_dirtinessType - The type of dirtiness to check for. By default this is DIRTY\n * @returns Is the property dirty?\n */\n _isDirty(in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY): boolean {\n return !!(this._getDirtyFlags() & in_dirtinessType);\n }\n\n /**\n * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n * application for runtime scene updates.\n *\n * @returns True if the property is dirty. False otherwise.\n */\n isDirty(): boolean {\n return this._isDirty();\n }\n\n /**\n * The property has pending changes in the current ChangeSet.\n * @returns True if the property has pending changes. False otherwise.\n */\n hasPendingChanges(): boolean {\n return this._isDirty(MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n }\n\n /**\n * Returns the ChangeSet of all sub-properties\n *\n * @returns The serialized changes\n */\n getPendingChanges(): ChangeSet {\n var serialized = this._serialize(true, false, BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n return new ChangeSet(serialized);\n }\n\n /**\n * Get the id of this property\n *\n * @returns The id of the property\n */\n getId(): string | undefined {\n return this._id;\n }\n\n /**\n * Sets the checkedOutRepositoryInfo.\n * @param {property-properties.CheckoutView~CheckedOutRepositoryInfo} value - The checkedOut repository info.\n * @protected\n */\n _setCheckoutView(value) {\n this._checkoutView = value;\n }\n\n /**\n * Returns the checkoutView\n * @return {property-properties.CheckoutView} - the checkout view\n */\n _getCheckoutView() {\n let checkedOutRepositoryInfo = this._getCheckedOutRepositoryInfo();\n return checkedOutRepositoryInfo ? checkedOutRepositoryInfo.getCheckoutView() : undefined;\n }\n\n /**\n * Returns the checkedOutRepositoryInfo.\n * @return {property-properties.CheckoutView~CheckedOutRepositoryInfo} The checkedOut repository info.\n * @protected\n */\n _getCheckedOutRepositoryInfo() {\n if (!this._parent) {\n return this._checkedOutRepositoryInfo;\n } else {\n return this.getRoot() ? this.getRoot()._getCheckedOutRepositoryInfo() : undefined;\n }\n }\n\n /**\n * Returns the Workspace\n * @returns The workspace containing the property.\n */\n getWorkspace() {\n const root = this.getRoot();\n return root ? root._tree : undefined;\n }\n\n /**\n * Returns the path segment for a child\n *\n * @param in_childNode - The child for which the path is returned\n *\n * @returns The path segment to resolve the child property under this property\n */\n _getPathSegmentForChildNode(in_childNode: BaseProperty): string {\n return PROPERTY_PATH_DELIMITER + PathHelper.quotePathSegmentIfNeeded(in_childNode.getId());\n }\n\n /**\n * Resolves a direct child node based on the given path segment\n *\n * @param {String} in_segment - The path segment to resolve\n * @param {property-properties.PathHelper.TOKEN_TYPES} in_segmentType - The type of segment in the tokenized path\n *\n * @return {property-properties.BaseProperty|undefined} The child property that has been resolved\n * @protected\n */\n _resolvePathSegment(in_segment: string, in_segmentType: PathHelper.TOKEN_TYPES) {\n // Base Properties only support paths separated via dots\n if (in_segmentType !== PathHelper.TOKEN_TYPES.PATH_SEGMENT_TOKEN) {\n throw new Error(MSG.INVALID_PATH_TOKEN + in_segment);\n }\n\n return this.get(in_segment, { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER });\n }\n\n /**\n * Set the id of this property\n *\n * @param {string} in_id - The id for this property\n *\n * @return {string} the new id\n * @private\n */\n _setId(in_id) {\n if (!_.isString(in_id) && !_.isNumber(in_id)) {\n throw new Error(MSG.ID_STRING_OR_NUMBER + in_id);\n }\n\n if (this._parent !== undefined) {\n throw new Error(MSG.ID_CHANGE_FOR_PROPERTY_WITH_PARENT + this._id + ' to id: ' + in_id);\n }\n\n this._id = String(in_id);\n\n // flush caches\n this._setDirty();\n\n return in_id;\n }\n\n /**\n * Return a clone of this property\n * @returns The cloned property\n */\n clone(): BaseProperty {\n const PropertyFactory = Property.PropertyFactory;\n var clone = PropertyFactory._createProperty(\n this.getFullTypeid(), null, undefined, this._getScope(), true,\n );\n\n // TODO: this is not very efficient. Clone should be overriden\n // by the child classes\n clone.deserialize(this._serialize());\n clone.cleanDirty(\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE |\n BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n );\n return clone;\n }\n\n /**\n * Returns true if the property is a primitive type\n * @return {boolean} true if the property is a primitive type\n */\n isPrimitiveType() {\n return TypeIdHelper.isPrimitiveType(this._typeid);\n }\n\n /**\n * Get a flattened, tree like representation of this object and all of it's\n * descendants. The flattening will stop at primitive properties and collections.\n *\n * For non-leaf nodes, it is possible to access the corresponding node object itself via the\n * propertyNode member of the flattened representation (warning, this will overwrite a\n * property of this name).\n * TODO: Do we want to have this feature or is it to dangerous?\n *\n * @returns the flat representation\n */\n private _flatten(): object {\n return { propertyNode: this };\n }\n\n /**\n * Repeatedly calls back the given function with human-readable string representations\n * of the property and of its sub-properties. By default it logs to the console.\n * If printFct is not a function, it will default to console.log\n * @param {function} [printFct=console.log] - Function to call for printing each property\n */\n prettyPrint(printFct) {\n if (typeof printFct !== 'function') {\n printFct = console.log;\n }\n this._prettyPrint('', '', printFct);\n }\n\n /**\n * Return a JSON representation of the properties and its children.\n * @return {object} A JSON representation of the properties and its children.\n * @private\n */\n _toJson() {\n var json = {\n id: this.getId(),\n context: this._context,\n typeid: this.getTypeid(),\n isConstant: this._isConstant,\n value: [],\n };\n\n var ids = this.getIds();\n for (const id of ids) {\n json.value.push(\n this.get(id, { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER })._toJson(),\n );\n }\n\n return json;\n }\n\n getIds(): string[] {\n return [];\n }\n\n get(id: string, params?: { referenceResolutionMode: REFERENCE_RESOLUTION }): BaseProperty | undefined {\n return undefined;\n }\n\n /**\n * Repeatedly calls back the given function with human-readable string\n * representations of the property and of its sub-properties.\n * @param {string} indent - Leading spaces to create the tree representation\n * @param {string} externalId - Name of the current property at the upper level.\n * Used for arrays.\n * @param {function} printFct - Function to call for printing each property\n */\n _prettyPrint(indent, externalId, printFct) {\n var context = '';\n switch (this._context) {\n case 'map': context = 'Map of '; break;\n case 'set': context = 'Set of '; break;\n default: break;\n }\n printFct(indent + externalId + this.getId() + ' (' + context + this.getTypeid() + '):');\n this._prettyPrintChildren(indent, printFct);\n }\n\n /**\n * Repeatedly calls back the given function with human-readable string\n * representations of the property's sub-properties.\n * @param {string} indent - Leading spaces to create the tree representation\n * @param {function} printFct - Function to call for printing each property\n */\n _prettyPrintChildren(indent, printFct) {\n indent += ' ';\n var ids = this.getIds();\n for (var i = 0; i < ids.length; i++) {\n this.get(ids[i], { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER })._prettyPrint(indent, '', printFct);\n }\n }\n\n /**\n * Returns the possible paths from the given from_property to this property. If multiple paths\n * through multiple repository references are possible, returns more than one path.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {Array<string | undefined>} The paths between from_property and this property\n * will return an empty array if trying to get the path from a child repo to a parent repo.\n * @private\n */\n _getPathsThroughRepoRef(in_fromProperty) {\n var paths = [];\n var that = this;\n var referenceProps = [];\n // get all reference properties in the referenceProps array\n this._getCheckoutView()._forEachCheckedOutRepository(function(repoInfo) {\n var keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n for (const key of keys) {\n if (key) {\n var repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key]\n ._repositoryReferenceProperties[key].property;\n if (that.getRoot() === repoRef.getReferencedRepositoryRoot()) {\n referenceProps.push(repoRef);\n }\n }\n }\n });\n\n // if no repo references point to the root of 'this', we can assume that 'this' is in the\n // parent repo, which cannot return a useful path.\n if (referenceProps.length === 0) {\n console.warn(MSG.NO_PATH_FROM_CHILD_REPO);\n return [];\n }\n\n // path from root of the child repo to 'this'\n var pathInChildRepo = this._getDirectPath(this.getRoot());\n\n // find possible paths from in_fromProperty to the referenceProps\n // concatenate each with pathInChildRepo\n for (const referenceProp of referenceProps) {\n var pathInParentRepo = referenceProp.getRelativePath(in_fromProperty);\n if (pathInParentRepo) {\n if (pathInChildRepo.length > 0) {\n paths.push(pathInParentRepo + '.' + pathInChildRepo);\n } else {\n paths.push(pathInParentRepo);\n }\n }\n }\n if (paths.length > 0) {\n return paths;\n }\n return [];\n }\n\n /**\n * Returns the possible paths from the given in_fromProperty to this property. If no direct paths\n * exist, it returns an indirect path between the two properties.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {string} The path between the given in_fromProperty and this property\n * @private\n */\n _getIndirectPath(in_fromProperty) {\n var path = [];\n var that = this;\n var foundPath = undefined;\n\n foundPath = in_fromProperty.traverseUp(function(in_node) {\n path.push('../');\n if (in_node === that) {\n return BREAK_TRAVERSAL;\n }\n var directPath = that._getDirectPath(in_node);\n if (directPath) {\n path.push(directPath);\n return BREAK_TRAVERSAL;\n }\n return undefined;\n });\n if (foundPath === BREAK_TRAVERSAL) {\n return path.join('');\n } else {\n return undefined;\n }\n }\n\n /**\n * Returns the path from the given in_fromProperty to this property if a direct path\n * exists between the two properties. Otherwise returns undefined.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {string} The path between the given in_fromProperty and this property\n * @private\n */\n _getDirectPath(in_fromProperty) {\n var path = [];\n var foundAncestor = undefined;\n if (in_fromProperty === this) {\n foundAncestor = BREAK_TRAVERSAL;\n } else if (this.getParent()) {\n path.push(this.getParent()._getPathSegmentForChildNode(this));\n\n foundAncestor = this.traverseUp(function(in_node) {\n // break where we meet the relative reference\n if (in_node === in_fromProperty) {\n return BREAK_TRAVERSAL;\n }\n\n if (in_node.getParent()) {\n path.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n }\n\n return undefined;\n });\n }\n\n if (foundAncestor === BREAK_TRAVERSAL) {\n var result = path.reverse().join('');\n\n // We don't use a PROPERTY_PATH_DELIMITER at the start of the path\n if (result[0] === PROPERTY_PATH_DELIMITER) {\n result = result.substr(1);\n }\n return result;\n } else {\n return undefined;\n }\n }\n\n /**\n * Returns the possible paths from the given in_fromProperty to this property.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {Array<string>} The paths between the given in_fromProperty and this property\n * @private\n */\n _getAllRelativePaths(in_fromProperty) {\n if (this.getRoot() !== in_fromProperty.getRoot()) {\n // if this and in_fromProperty have different roots, go through a repo ref\n // this is the case where we might have more than one path\n return this._getPathsThroughRepoRef(in_fromProperty);\n } else {\n var directPath = this._getDirectPath(in_fromProperty);\n if (directPath !== undefined) {\n return [directPath];\n } else {\n return [this._getIndirectPath(in_fromProperty)];\n }\n }\n }\n\n /**\n * Returns the path from the given fron_property to this node if such a path exists.\n * If more than one paths exist (as might be the case with multiple repository references\n * pointing to the same repository), it will return the first valid path found.\n * For example, if you have this structure:\n * <code>prop1\n * --prop2\n * ----prop3</code>\n * and call: <code>prop1.getRelativePath(prop3);</code>\n * You will get the path from prop3 to prop1, which would be '../../'\n * @param in_fromProperty - The property from which the\n * path is computed\n * @returns The path between the given in_fromProperty and this property\n * @throws if in_fromProperty is not a property\n */\n getRelativePath(in_fromProperty: BaseProperty): string {\n ConsoleUtils.assert(in_fromProperty instanceof BaseProperty, MSG.IN_FROMPROPERTY_MUST_BE_PROPERTY);\n var paths = this._getAllRelativePaths(in_fromProperty) || [];\n if (paths.length === 0) {\n console.warn(MSG.NO_PATH_BETWEEN +\n in_fromProperty.getAbsolutePath() +\n ' and ' +\n this.getAbsolutePath());\n } else if (paths.length > 1) {\n console.warn(MSG.MORE_THAN_ONE_PATH + in_fromProperty.getAbsolutePath() +\n ' and ' + this.getAbsolutePath());\n }\n return paths[0];\n }\n\n /**\n * Returns the path from the root of the workspace to this node\n * (including a slash at the beginning)\n *\n * @return {string} The path from the root\n */\n getAbsolutePath() {\n var that = this;\n var referenceProps = [];\n // get all reference properties pointing to the root the repository containing 'this'\n if (this._getCheckoutView()) {\n this._getCheckoutView()._forEachCheckedOutRepository(function(repoInfo) {\n var keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n for (const key of keys) {\n if (key) {\n let repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key];\n let refProperty = undefined;\n\n if (repoRef) {\n refProperty = repoRef._repositoryReferenceProperties[key] ?\n repoRef._repositoryReferenceProperties[key].property : undefined;\n }\n\n let refRoot;\n try {\n refRoot = refProperty ? refProperty.getReferencedRepositoryRoot() : undefined;\n } catch (e) {\n console.warn(e.message);\n }\n\n if (that.getRoot() === refRoot) {\n referenceProps.push(refProperty);\n break;\n }\n }\n }\n });\n }\n\n var path = this.isRoot() ? [] : [this.getParent()._getPathSegmentForChildNode(this)];\n this.traverseUp(function(in_node) {\n if (in_node.getParent()) {\n path.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n } else if (referenceProps.length > 0) {\n // recursively call getAbsolutePath, removing the '/' at the beginning of the path\n path.push(referenceProps[0].getAbsolutePath(referenceProps[0].getRoot()).slice(1));\n }\n });\n var absolutePath = path.reverse().join('');\n\n // We don't use the property path separator at the start of the path\n if (absolutePath[0] === PROPERTY_PATH_DELIMITER) {\n absolutePath = absolutePath.substr(1);\n }\n absolutePath = '/' + absolutePath;\n\n return absolutePath;\n }\n\n /**\n * Traverses the property hierarchy upwards until the a node without parent is reached\n *\n * @param {Function} in_callback - Callback to invoke for each of the parents. The traversal can be stopped\n * by returning BaseProperty.BREAK_TRAVERSAL\n * @throws if in_callback is not a function.\n * @return {string|undefined} Returns BaseProperty.BREAK_TRAVERSAL, if the traversal didn't reach the root,\n * otherwise undefined\n */\n traverseUp(in_callback) {\n ConsoleUtils.assert(_.isFunction(in_callback), MSG.CALLBACK_NOT_FCT);\n if (this._parent) {\n var result = in_callback(this._parent);\n if (result !== BREAK_TRAVERSAL) {\n return this._parent.traverseUp(in_callback);\n } else {\n return BREAK_TRAVERSAL;\n }\n }\n\n return undefined;\n }\n\n /**\n * @type {string} Constant to stop the traversal in traverseUp and traverseDown functions\n */\n static BREAK_TRAVERSAL = BREAK_TRAVERSAL;\n\n /**\n * Returns all children which are dirty (this only returns direct children, it does not travers recursively)\n *\n * @param in_flags - Which types of dirtiness are we looking for?\n * If none is given, all types are regarded as\n * dirty\n * @returns The list of keys identifying the dirty children\n */\n private _getDirtyChildren(in_flags: MODIFIED_STATE_FLAGS): string[] {\n return [];\n }\n\n /**\n * Returns the root of the property hierarchy\n * @returns The root property\n */\n getRoot(): BaseProperty {\n return this._parent ? this._parent.getRoot() : this;\n }\n\n /**\n * Traverses all children in the child hierarchy\n * TODO: How should this behave for collections?\n *\n * @param in_callback - Callback to invoke for every child\n * @param in_pathFromTraversalStart - Path from the root of the traversal to this node\n * @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted,\n * otherwise undefined\n * @private\n */\n _traverse(in_callback: Function, in_pathFromTraversalStart: string): string | undefined {\n return undefined;\n }\n\n /**\n * Deserialize takes a currently existing property and sets it to the hierarchy described in the normalized\n * ChangeSet passed as parameter. It will return a ChangeSet that describes the difference between the\n * current state of the property and the passed in normalized property\n *\n * @param in_serializedObj - The serialized changeset to apply to this node. This\n * has to be a normalized change-set (only containing insertions and property assignments. Deletes and Modify\n * must not appear)\n * @param in_filteringOptions\n * The filtering options to consider while deserializing the property.\n * @param in_createChangeSet\n * Should a changeset be created for this deserialization?\n * @param in_reportToView\n * Usually the dirtying should be reported to the view and trigger a modified\n * event there. This can be prevented via this flag.\n * @throws if called on a read-only property.\n * @returns ChangeSet with the changes that actually were performed during the\n * deserialization\n */\n deserialize(\n in_serializedObj: SerializedChangeSet,\n in_filteringOptions = {},\n in_createChangeSet = true,\n in_reportToView = false,\n ): SerializedChangeSet {\n this._checkIsNotReadOnly(false);\n return this._deserialize(in_serializedObj, in_reportToView, in_filteringOptions, in_createChangeSet);\n }\n\n /**\n * Sets the property to the state in the given normalized changeset\n *\n * @param in_serializedObj - The serialized changeset to apply. This\n * has to be a normalized change-set (only containing inserts. Removes and Modifies are forbidden).\n * @param in_reportToView - Usually the dirtying should be reported to the view\n * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n * @param in_filteringOptions\n * The filtering options to consider while deserializing the property.\n * @param in_createChangeSet\n * Should a changeset be created for this deserialization?\n * @returns ChangeSet with the changes that actually were performed during the\n * deserialization\n */\n _deserialize(\n in_serializedObj: SerializedChangeSet,\n in_reportToView: boolean,\n in_filteringOptions = {},\n in_createChangeSet = true,\n ): SerializedChangeSet {\n return {};\n }\n\n /**\n * Serialize the property into a changeSet\n *\n * @param in_dirtyOnly - Only include dirty entries in the serialization\n * @param in_includeRootTypeid - Include the typeid of the root of the hierarchy\n * @param in_dirtinessType -\n * The type of dirtiness to use when reporting dirty changes. By default this is\n * PENDING_CHANGE\n * @param in_includeReferencedRepositories - If this is set to true, the serialize\n * function will descend into referenced repositories. WARNING: if there are loops in the references\n * this can result in an infinite loop\n *\n * @returns The serialized representation of this property\n */\n _serialize(\n in_dirtyOnly: boolean = false,\n in_includeRootTypeid: boolean = false,\n in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n in_includeReferencedRepositories: boolean = false,\n ): object {\n return {};\n }\n\n /**\n * Serialize the property\n *\n * @param in_options - Options for the serialization\n * @throws if in_options is defined but is not an object.\n * @returns The serialized representation of this property\n */\n serialize(in_options: ISerializeOptions) {\n var opts = {\n dirtyOnly: false,\n includeRootTypeid: false,\n dirtinessType: MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n includeReferencedRepositories: false,\n };\n if (in_options !== undefined) {\n if (typeof in_options !== 'object') {\n throw new Error(MSG.SERIALIZE_TAKES_OBJECT);\n }\n Object.assign(opts, in_options);\n }\n\n return this._serialize(\n opts.dirtyOnly,\n opts.includeRootTypeid,\n opts.dirtinessType,\n opts.includeReferencedRepositories,\n );\n }\n\n /**\n * Indicate that all static members have been added to the property\n *\n * This function is invoked by the PropertyFactory once all static members have been added to the template\n * @protected\n */\n _signalAllStaticMembersHaveBeenAdded() { }\n\n /**\n * Tests whether this property may be modified\n * @param {checkConstant} in_checkConstant - Check if is readonly constant property\n */\n _checkIsNotReadOnly(in_checkConstant) {\n if (this._isConstant && in_checkConstant) {\n throw new Error(MSG.MODIFICATION_OF_CONSTANT_PROPERTY);\n }\n\n var root = this.getRoot();\n if (root && root._getCheckedOutRepositoryInfo) {\n var repositoryInfo = root._getCheckedOutRepositoryInfo();\n\n if (repositoryInfo && repositoryInfo._isReadOnly()) {\n throw new Error(MSG.MODIFICATION_OF_REFERENCED_PROPERTY);\n }\n }\n }\n\n /**\n * Set a property and its children as constants (readonly properties)\n */\n _setAsConstant() {\n this._isConstant = true;\n\n if (this instanceof Property.AbstractStaticCollectionProperty) {\n // Set all children properties as constants\n this.traverseDown(function(prop) {\n prop._isConstant = true;\n });\n }\n }\n\n traverseDown(arg0: (prop: any) => void) {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Unsets a property and its children as constants\n */\n _unsetAsConstant() {\n // Deleting this property will make the object\n // fall back to the entry in the prototype (false)\n delete this._isConstant;\n\n if (this instanceof Property.AbstractStaticCollectionProperty) {\n // Unset all children properties as constants\n this.traverseDown(function(prop) {\n // Deleting this property will make the object\n // fall back to the entry in the prototype (false)\n delete prop._isConstant;\n });\n }\n }\n\n /**\n * Dirties this node and all of its children\n *\n * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n * and trigger a modified event there. When batching updates, this\n * can be prevented via this flag.\n * @private\n */\n _setDirtyTree(in_reportToView = true) {\n this._traverse(function(node) {\n // Set all nodes to dirty, but prevent recursive updates up to the repository for the individual changes\n node._setDirty(false);\n }, '');\n // Now make one report\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n }\n\n /**\n * Determines whether a property can be inserted as a child of another property\n * This does NOT validate if the parent can accept the child property, it only validates if\n * the child property can be inserted in the parent.\n * @param in_targetParent - The parent property\n * @throws if the property can not be inserted\n */\n _validateInsertIn(in_targetParent: BaseProperty) {\n // A root?\n if (this._getCheckedOutRepositoryInfo() !== undefined) {\n throw new Error(MSG.INSERTED_ROOT_ENTRY);\n }\n\n // Would create a cycle?\n let parent = in_targetParent;\n while (parent !== undefined) {\n if (parent === this) {\n throw new Error(MSG.INSERTED_IN_OWN_CHILDREN);\n }\n parent = parent._parent;\n }\n\n // Already a child?\n if (this._parent !== undefined || this._getCheckoutView() !== undefined) {\n throw new Error(MSG.INSERTED_ENTRY_WITH_PARENT);\n }\n }\n\n /**\n * TODO: Remove it later. Kept not to modify tests\n *\n * Validates if the property and all its children are covered by the given list of paths.\n *\n * This function is expected to be used before inserting the property into its parent. That is the\n * reason for asking for the base path. This is the full path expected for this property.\n *\n * This function uses the canonical representation of the property paths.\n *\n * @param in_basePath - The property's absolute path in canonical form\n * @param in_paths - The array of paths that we wonder if it covers the property and its children\n * @returns If the property and all its children are included in the paths\n * @private\n */\n _coveredByPaths(in_basePath: string, in_paths: string[]): boolean {\n // First, get the coverage of the base property\n const coverage = PathHelper.getPathCoverage(in_basePath, in_paths);\n\n if (coverage.coverageExtent === PathHelper.CoverageExtent.FULLY_COVERED) {\n return true;\n } else if (coverage.coverageExtent === PathHelper.CoverageExtent.PARTLY_COVERED) {\n // We know that part of the property is covered, if we don't find any actual children not covered\n // by the paths it's because we're fully covered.\n if (this.isPrimitiveType()) {\n const childrenIds = this.getContext() === 'single' ? [] : this.getIds();\n for (const childId of childrenIds) {\n const childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n if (PathHelper.getPathCoverage(childPath, coverage.pathList).coverageExtent === PathHelper.CoverageExtent.UNCOVERED) {\n // this children is outside the list of paths\n return false;\n }\n }\n } else {\n const childrenIds = this.getIds();\n for (const childId of childrenIds) {\n const child = this.get(childId);\n const childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n if (!child._coveredByPaths(childPath, coverage.pathList)) {\n return false;\n }\n }\n }\n return true;\n }\n\n return false;\n }\n\n get _properties() {\n return this._flatten();\n }\n}\n\n(BaseProperty as any).prototype._isConstant = false;\n(BaseProperty as any).prototype._context = 'single';\n(BaseProperty as any).prototype._typeid = 'BaseProperty';\n"]}
|
|
1
|
+
{"version":3,"file":"baseProperty.js","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/* eslint accessor-pairs: [2, { \"getWithoutSet\": false }] */\nimport _ from 'lodash';\nimport {\n ChangeSet,\n PathHelper,\n SerializedChangeSet,\n TypeIdHelper,\n} from '@fluid-experimental/property-changeset';\nimport { ConsoleUtils, constants } from '@fluid-experimental/property-common';\nimport { LazyLoadedProperties as Property } from './lazyLoadedProperties';\n\nconst { MSG, PROPERTY_PATH_DELIMITER } = constants;\nconst BREAK_TRAVERSAL = 'BREAK';\n\n/**\n * Determines in which cases a reference will automatically be resolved\n */\nenum REFERENCE_RESOLUTION {\n /** The resolution will always automatically follow references */\n ALWAYS,\n /** If a reference is the last entry during the path resolution, it will not automatically be resolved */\n NO_LEAFS,\n /** References are never automatically resolved */\n NEVER,\n}\n\n/**\n * Used to indicate the state of a property. These flags can be connected via OR.\n */\nenum MODIFIED_STATE_FLAGS {\n /** No changes to this property at the moment */\n CLEAN,\n /** The property is marked as changed in the currently pending ChangeSet */\n PENDING_CHANGE,\n /** The property has been modified and the result has not yet been reported to the application for scene updates */\n DIRTY,\n}\n\n/**\n * Token Types\n * @enum Object\n * Type of the token in the path string\n */\nconst PATH_TOKENS = {\n /** A / at the beginning of the path */\n ROOT: { 'token': 'ROOT' },\n /** A * that indicates a dereferencing operation */ // note: reversed!\n REF: { 'token': 'REF' },\n /** A ../ that indicates one step above the current path */\n UP: { 'token': 'UP' },\n};\n\ninterface IBasePropertyParams {\n /** id of the property */\n id?: string;\n /** The type unique identifier */\n typeid?: string;\n /** The length of the property. Only valid if the property is an array, otherwise the length defaults to 1 */\n length: number;\n /** The type of property this template represents i.e. single, array, map, set. */\n context: string;\n\n // TODO: UNUSED PARAMETER ??\n /** List of property templates that are used to define children properties */\n properties: BaseProperty[];\n\n // TODO: UNUSED PARAMETER ??\n /** List of property template typeids that this PropertyTemplate inherits from */\n inherits: string[];\n}\n\ninterface ISerializeOptions {\n /** Only include dirty entries in the serialization */\n dirtyOnly?: boolean;\n /** Include the typeid of the root of the hierarchy */\n includeRootTypeid?: boolean;\n /** The type of dirtiness to use when reporting dirty changes. */\n dirtinessType?: MODIFIED_STATE_FLAGS;\n /**\n * If this is set to true, the serialize\n * function will descend into referenced repositories. WARNING: if there are loops in the references\n * this can result in an infinite loop\n */\n includeReferencedRepositories?: boolean;\n}\n\n/**\n * The options to selectively create only a subset of a property.\n *\n * For now the filtering options are propagated by many functions, but are actually used only by\n * functions that create properties from schemas. It is then possible to create only a subset of\n * the properties of a schema by providing a restricted list of paths.\n *\n * Thus, with the filtering options, it is NOT possible to prevent a part of a ChangeSet from being\n * processed (in `applyChangeSet()` for example), it is NOT possible to prevent a property from being\n * created by a direct call to a function like `deserialize()` or `createProperty()`.\n *\n */\nexport abstract class BaseProperty {\n protected _id: string | undefined;\n protected _isConstant: boolean;\n protected _dirty: MODIFIED_STATE_FLAGS;\n protected _typeid: string;\n protected _context: string;\n protected _parent: BaseProperty | undefined;\n protected _noDirtyInBase: boolean;\n\n _tree: any;\n _checkoutView: any;\n _checkedOutRepositoryInfo: any;\n\n constructor(in_params: IBasePropertyParams) {\n // Pre-conditions\n // This test has been disabled for performance reasons, if it would be incorrect,\n // the next line will throw anyways\n // ConsoleUtils.assert(in_params, MSG.PROP_CONSTRUCTOR_EXPECTS_OBJECTS);\n\n if (this._id !== in_params.id) {\n this._id = in_params.id;\n }\n\n // Makes sure context value is fine\n // This assertion has been disabled for performance reasons. This is not a user facing\n // constructor function and therefore we rely on PropertyFactory to correctly provide the context.\n /* ConsoleUtils.assert(!in_params.context || in_params.context === this._context,\n MSG.CONTEXT_NOT_AS_EXPECTED + this._context + ' != ' + in_params.context); */\n\n // Sets typeid if default value is not fine\n let typeId = in_params.typeid || 'BaseProperty';\n if (typeId !== this._typeid) {\n this._typeid = typeId;\n }\n\n this._parent = undefined;\n // internal management\n if (!this._noDirtyInBase) {\n this._dirty = MODIFIED_STATE_FLAGS.CLEAN;\n }\n }\n\n static MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS;\n static REFERENCE_RESOLUTION = REFERENCE_RESOLUTION;\n static PATH_TOKENS = PATH_TOKENS;\n\n /**\n * @returns The typeid of this property\n */\n getTypeid(): string {\n return this._typeid;\n }\n\n /**\n * @returns The context of this property\n */\n getContext(): string {\n return this._context;\n }\n\n /**\n * Get the scope to which this property belongs to.\n * @returns The guid representing the scope in which the\n * property belongs to\n */\n protected _getScope(): string | undefined {\n if (this._parent) {\n return this.getRoot()._getScope();\n } else {\n return undefined;\n }\n }\n\n /**\n * Returns the full property type identifier for the ChangeSet including the enum type id\n * @param in_hideCollection - if true the collection type (if applicable) will be omitted\n * since that is not applicable here, this param is ignored\n * @returns The typeid\n */\n getFullTypeid(in_hideCollection = false): string {\n return this._typeid;\n }\n\n /**\n * Updates the parent for the property\n *\n * @param in_property - The parent property\n */\n protected _setParent(in_property: BaseProperty) {\n this._parent = in_property;\n\n // If the property is dirty but not its parent, dirty the parent. In cases like named properties\n // and default values, a parent is set after a value is set; we get a case where the\n // property is dirty but not its parent and the change is not included in a changeSet.\n if (this._parent && this._isDirty() && !this._parent._isDirty()) {\n this._parent._setDirty(false, this);\n }\n }\n\n /**\n * Is this property the root of the property set tree?\n *\n * @returns True if it is a root, otherwise false.\n */\n isRoot(): boolean {\n // This checks, whether this is the root of a CheckOutView\n // (all other properties should have a parent property)\n return this._parent === undefined;\n }\n\n /**\n * Is this property the ancestor of in_otherProperty?\n * Note: A property is not considered an ancestor of itself\n * @param in_otherProperty - possible descendant\n * @throws if in_otherProperty is not defined.\n * @returns True if it is a ancestor, otherwise false.\n */\n isAncestorOf(in_otherProperty: BaseProperty): boolean {\n ConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n var parent = in_otherProperty.getParent();\n while (parent) {\n if (parent === this) {\n return true;\n } else {\n parent = parent.getParent();\n }\n }\n return false;\n }\n\n /**\n * Is this property the descendant of in_otherProperty?\n * Note: A property is not considered a descendant of itself\n * @param in_otherProperty - possible ancestor\n * @throws if in_otherProperty is not defined.\n * @returns True if it is a descendant, otherwise false.\n */\n isDescendantOf(in_otherProperty: BaseProperty): boolean {\n ConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n return in_otherProperty.isAncestorOf(this);\n }\n\n /**\n * Is this property a leaf node with regard to flattening?\n *\n * TODO: Which semantics should flattening have? It stops at primitive types and collections?\n *\n * @returns True if it is a leaf with regard to flattening\n */\n _isFlattenLeaf(): boolean {\n return false;\n }\n\n /**\n * Get the parent of this property\n *\n * @returns The parent of this property (or undefined if none exist)\n */\n getParent(): BaseProperty | undefined {\n return this._parent;\n }\n\n /**\n * checks whether the property is dynamic (only properties inherting from NodeProperty are)\n * @returns True if it is a dynamic property.\n */\n isDynamic() {\n return false;\n }\n\n /**\n * Sets the property as dirty and/or pending. This will add one or both flags if not already set and will\n * do the same for its parent. This does not clear any flag, it only sets.\n *\n * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n * and trigger a modified event there. When batching updates, this\n * can be prevented via this flag.\n * @param in_callingChild - The child which is dirtying its parent\n * @param in_flags - The flags to set.\n * @private\n */\n _setDirty(\n in_reportToView = true,\n in_callingChild: BaseProperty = undefined,\n in_flags: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n ) {\n if (in_flags === undefined) {\n in_flags = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n }\n var reportToView = in_reportToView;\n if (reportToView === undefined) {\n reportToView = true;\n }\n // We only update the flags upwards in the tree, when the corresponding nodes are not already flagged\n var oldFlags = this._getDirtyFlags();\n if ((oldFlags & in_flags) !== in_flags) { // only dirty once until clean.\n this._setDirtyFlags(oldFlags | in_flags);\n\n // Report dirtiness upwards in the hierarchy\n if (this._parent) {\n this._parent._setDirty(reportToView, this, in_flags);\n reportToView = false;\n }\n }\n if (reportToView) {\n this._reportDirtinessToView();\n }\n }\n\n /**\n * Sets the dirty flags for this property\n * @param in_flags - The dirty flags\n */\n _setDirtyFlags(in_flags: MODIFIED_STATE_FLAGS) {\n this._dirty = in_flags;\n }\n\n /**\n * Gets the dirty flags for this property\n * @returns The dirty flags\n */\n _getDirtyFlags(): MODIFIED_STATE_FLAGS {\n return this._dirty;\n }\n\n /**\n * Helper function, which reports the fact that a property has been dirtied to the checkout view\n * @private\n */\n // TODO: Cleaner way to make the property tree aware of the DDS hosting it.\n // Currently, this._tree is set in SharedPropertyTree constructor.\n _reportDirtinessToView() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let currentNode: BaseProperty = this;\n\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n while (currentNode._parent) {\n currentNode = currentNode._parent;\n }\n\n if (\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n currentNode._tree &&\n currentNode._tree.notificationDelayScope === 0 &&\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n currentNode._isDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY)\n ) {\n currentNode._tree._reportDirtinessToView();\n }\n }\n\n /**\n * Modifies the property according to the given changeset\n *\n * @param in_changeSet - The changeset to apply\n * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions]\n * The filtering options to consider while applying the ChangeSet.\n * @throws if in_changeSet is invalid.\n */\n applyChangeSet(in_changeSet: SerializedChangeSet) {\n this._checkIsNotReadOnly(false);\n\n // We just forward the call to the internal function\n this._applyChangeset(in_changeSet, true);\n }\n\n /**\n * Modifies the property according to the given changeset\n *\n * Internal function.\n *\n * @param in_changeSet - The changeset to apply\n * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n * and trigger a modified event there. When batching updates, this\n * can be prevented via this flag.\n * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions]\n * The filtering options to consider while applying the ChangeSet. For now it is only used to\n * control property creation, to prevent properties from being created outside the checked out\n * paths. It does not validate that a value inside the ChangeSet is outside those paths.\n */\n _applyChangeset(in_changeSet: SerializedChangeSet, in_reportToView = true, in_filteringOptions = undefined) {\n var typeids = _.keys(in_changeSet);\n for (const typeid of typeids) {\n if (ChangeSet.isReservedKeyword(typeid)) {\n continue; // Ignore the special keys\n }\n\n var paths = _.keys(in_changeSet[typeid]);\n for (const path of paths) {\n var property = this.resolvePath(path, { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER });\n if (property) {\n property._applyChangeset(in_changeSet[typeid][path], false);\n } else {\n throw new Error(MSG.INVALID_PATH + path);\n }\n }\n }\n\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n }\n\n /**\n * Re-apply dirty flags from changesets\n *\n * Internal function.\n *\n * @param in_pendingChangeSet - The pending changeset to apply\n * @param in_dirtyChangeSet - The dirty changeset to apply\n * @throws if changeset arguments are invalid.\n */\n _reapplyDirtyFlags(in_pendingChangeSet: SerializedChangeSet, in_dirtyChangeSet: SerializedChangeSet) {\n this._checkIsNotReadOnly(false);\n // Here we must walk both changesets in parallel. Sometimes there will be only an entry in one\n // changeset, sometimes only one in the other changeset, sometimes one in both.\n const typeids = _.keys(in_pendingChangeSet).concat(_.keys(in_dirtyChangeSet));\n for (const typeid of typeids) {\n if (ChangeSet.isReservedKeyword(typeid)) {\n continue; // Ignore the special keys\n }\n const pendingChangeSet = in_pendingChangeSet && in_pendingChangeSet[typeid];\n const dirtyChangeSet = in_dirtyChangeSet && in_dirtyChangeSet[typeid];\n\n const paths = _.keys(pendingChangeSet).concat(_.keys(dirtyChangeSet));\n for (const path of paths) {\n let property = this.resolvePath(path);\n if (property) {\n property._reapplyDirtyFlags(\n pendingChangeSet && pendingChangeSet[path],\n dirtyChangeSet && dirtyChangeSet[path]);\n } else {\n throw new Error(MSG.INVALID_PATH + path);\n }\n }\n }\n }\n\n protected resolvePath(path: string, params?: any): BaseProperty {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Removes the dirtiness flag from this property\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean, if none are supplied all\n * will be removed\n * @private\n */\n _cleanDirty(in_flags) {\n this._setDirtyFlags(in_flags === undefined ? MODIFIED_STATE_FLAGS.CLEAN :\n (this._getDirtyFlags() & ~in_flags));\n }\n\n /**\n * Removes the dirtiness flag from this property and recursively from all of its children\n *\n * @param in_flags - The flags to clean, if none are supplied all\n * will be removed\n */\n cleanDirty(in_flags: MODIFIED_STATE_FLAGS) {\n var dirtyChildren = this._getDirtyChildren(in_flags);\n for (const dirtyChild of dirtyChildren) {\n const child = this.get(\n dirtyChild,\n { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER },\n );\n child.cleanDirty(in_flags);\n child._cleanDirty(in_flags);\n }\n\n // after all paths are clean, we are also clean!\n this._cleanDirty(in_flags);\n }\n\n /**\n * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n * application for runtime scene updates.\n *\n * @param in_dirtinessType - The type of dirtiness to check for. By default this is DIRTY\n * @returns Is the property dirty?\n */\n _isDirty(in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY): boolean {\n return !!(this._getDirtyFlags() & in_dirtinessType);\n }\n\n /**\n * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n * application for runtime scene updates.\n *\n * @returns True if the property is dirty. False otherwise.\n */\n isDirty(): boolean {\n return this._isDirty();\n }\n\n /**\n * The property has pending changes in the current ChangeSet.\n * @returns True if the property has pending changes. False otherwise.\n */\n hasPendingChanges(): boolean {\n return this._isDirty(MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n }\n\n /**\n * Returns the ChangeSet of all sub-properties\n *\n * @returns The serialized changes\n */\n getPendingChanges(): ChangeSet {\n var serialized = this._serialize(true, false, BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n return new ChangeSet(serialized);\n }\n\n /**\n * Get the id of this property\n *\n * @returns The id of the property\n */\n getId(): string | undefined {\n return this._id;\n }\n\n /**\n * Sets the checkedOutRepositoryInfo.\n * @param {property-properties.CheckoutView~CheckedOutRepositoryInfo} value - The checkedOut repository info.\n * @protected\n */\n _setCheckoutView(value) {\n this._checkoutView = value;\n }\n\n /**\n * Returns the checkoutView\n * @return {property-properties.CheckoutView} - the checkout view\n */\n _getCheckoutView() {\n let checkedOutRepositoryInfo = this._getCheckedOutRepositoryInfo();\n return checkedOutRepositoryInfo ? checkedOutRepositoryInfo.getCheckoutView() : undefined;\n }\n\n /**\n * Returns the checkedOutRepositoryInfo.\n * @return {property-properties.CheckoutView~CheckedOutRepositoryInfo} The checkedOut repository info.\n * @protected\n */\n _getCheckedOutRepositoryInfo() {\n if (!this._parent) {\n return this._checkedOutRepositoryInfo;\n } else {\n return this.getRoot() ? this.getRoot()._getCheckedOutRepositoryInfo() : undefined;\n }\n }\n\n /**\n * Returns the Workspace\n * @returns The workspace containing the property.\n */\n getWorkspace() {\n const root = this.getRoot();\n return root ? root._tree : undefined;\n }\n\n /**\n * Returns the path segment for a child\n *\n * @param in_childNode - The child for which the path is returned\n *\n * @returns The path segment to resolve the child property under this property\n */\n _getPathSegmentForChildNode(in_childNode: BaseProperty): string {\n return PROPERTY_PATH_DELIMITER + PathHelper.quotePathSegmentIfNeeded(in_childNode.getId());\n }\n\n /**\n * Resolves a direct child node based on the given path segment\n *\n * @param {String} in_segment - The path segment to resolve\n * @param {property-properties.PathHelper.TOKEN_TYPES} in_segmentType - The type of segment in the tokenized path\n *\n * @return {property-properties.BaseProperty|undefined} The child property that has been resolved\n * @protected\n */\n _resolvePathSegment(in_segment: string, in_segmentType: PathHelper.TOKEN_TYPES) {\n // Base Properties only support paths separated via dots\n if (in_segmentType !== PathHelper.TOKEN_TYPES.PATH_SEGMENT_TOKEN) {\n throw new Error(MSG.INVALID_PATH_TOKEN + in_segment);\n }\n\n return this.get(in_segment, { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER });\n }\n\n /**\n * Set the id of this property\n *\n * @param {string} in_id - The id for this property\n *\n * @return {string} the new id\n * @private\n */\n _setId(in_id) {\n if (!_.isString(in_id) && !_.isNumber(in_id)) {\n throw new Error(MSG.ID_STRING_OR_NUMBER + in_id);\n }\n\n if (this._parent !== undefined) {\n throw new Error(MSG.ID_CHANGE_FOR_PROPERTY_WITH_PARENT + this._id + ' to id: ' + in_id);\n }\n\n this._id = String(in_id);\n\n // flush caches\n this._setDirty();\n\n return in_id;\n }\n\n /**\n * Return a clone of this property\n * @returns The cloned property\n */\n clone(): BaseProperty {\n const PropertyFactory = Property.PropertyFactory;\n var clone = PropertyFactory._createProperty(\n this.getFullTypeid(), null, undefined, this._getScope(), true,\n );\n\n // TODO: this is not very efficient. Clone should be overriden\n // by the child classes\n clone.deserialize(this._serialize());\n clone.cleanDirty(\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE |\n BaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n );\n return clone;\n }\n\n /**\n * Returns true if the property is a primitive type\n * @return {boolean} true if the property is a primitive type\n */\n isPrimitiveType() {\n return TypeIdHelper.isPrimitiveType(this._typeid);\n }\n\n /**\n * Get a flattened, tree like representation of this object and all of it's\n * descendants. The flattening will stop at primitive properties and collections.\n *\n * For non-leaf nodes, it is possible to access the corresponding node object itself via the\n * propertyNode member of the flattened representation (warning, this will overwrite a\n * property of this name).\n * TODO: Do we want to have this feature or is it to dangerous?\n *\n * @returns the flat representation\n */\n private _flatten(): object {\n return { propertyNode: this };\n }\n\n /**\n * Repeatedly calls back the given function with human-readable string representations\n * of the property and of its sub-properties. By default it logs to the console.\n * If printFct is not a function, it will default to console.log\n * @param {function} [printFct=console.log] - Function to call for printing each property\n */\n prettyPrint(printFct) {\n if (typeof printFct !== 'function') {\n printFct = console.log;\n }\n this._prettyPrint('', '', printFct);\n }\n\n /**\n * Return a JSON representation of the properties and its children.\n * @return {object} A JSON representation of the properties and its children.\n * @private\n */\n _toJson() {\n var json = {\n id: this.getId(),\n context: this._context,\n typeid: this.getTypeid(),\n isConstant: this._isConstant,\n value: [],\n };\n\n var ids = this.getIds();\n for (const id of ids) {\n json.value.push(\n this.get(id, { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER })._toJson(),\n );\n }\n\n return json;\n }\n\n getIds(): string[] {\n return [];\n }\n\n get(id: string, params?: { referenceResolutionMode: REFERENCE_RESOLUTION; }): BaseProperty | undefined {\n return undefined;\n }\n\n /**\n * Repeatedly calls back the given function with human-readable string\n * representations of the property and of its sub-properties.\n * @param {string} indent - Leading spaces to create the tree representation\n * @param {string} externalId - Name of the current property at the upper level.\n * Used for arrays.\n * @param {function} printFct - Function to call for printing each property\n */\n _prettyPrint(indent, externalId, printFct) {\n var context = '';\n switch (this._context) {\n case 'map': context = 'Map of '; break;\n case 'set': context = 'Set of '; break;\n default: break;\n }\n printFct(indent + externalId + this.getId() + ' (' + context + this.getTypeid() + '):');\n this._prettyPrintChildren(indent, printFct);\n }\n\n /**\n * Repeatedly calls back the given function with human-readable string\n * representations of the property's sub-properties.\n * @param {string} indent - Leading spaces to create the tree representation\n * @param {function} printFct - Function to call for printing each property\n */\n _prettyPrintChildren(indent, printFct) {\n indent += ' ';\n var ids = this.getIds();\n for (var i = 0; i < ids.length; i++) {\n this.get(ids[i], { referenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER })._prettyPrint(indent, '', printFct);\n }\n }\n\n /**\n * Returns the possible paths from the given from_property to this property. If multiple paths\n * through multiple repository references are possible, returns more than one path.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {Array<string | undefined>} The paths between from_property and this property\n * will return an empty array if trying to get the path from a child repo to a parent repo.\n * @private\n */\n _getPathsThroughRepoRef(in_fromProperty) {\n var paths = [];\n var that = this;\n var referenceProps = [];\n // get all reference properties in the referenceProps array\n this._getCheckoutView()._forEachCheckedOutRepository(function(repoInfo) {\n var keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n for (const key of keys) {\n if (key) {\n var repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key]\n ._repositoryReferenceProperties[key].property;\n if (that.getRoot() === repoRef.getReferencedRepositoryRoot()) {\n referenceProps.push(repoRef);\n }\n }\n }\n });\n\n // if no repo references point to the root of 'this', we can assume that 'this' is in the\n // parent repo, which cannot return a useful path.\n if (referenceProps.length === 0) {\n console.warn(MSG.NO_PATH_FROM_CHILD_REPO);\n return [];\n }\n\n // path from root of the child repo to 'this'\n var pathInChildRepo = this._getDirectPath(this.getRoot());\n\n // find possible paths from in_fromProperty to the referenceProps\n // concatenate each with pathInChildRepo\n for (const referenceProp of referenceProps) {\n var pathInParentRepo = referenceProp.getRelativePath(in_fromProperty);\n if (pathInParentRepo) {\n if (pathInChildRepo.length > 0) {\n paths.push(pathInParentRepo + '.' + pathInChildRepo);\n } else {\n paths.push(pathInParentRepo);\n }\n }\n }\n if (paths.length > 0) {\n return paths;\n }\n return [];\n }\n\n /**\n * Returns the possible paths from the given in_fromProperty to this property. If no direct paths\n * exist, it returns an indirect path between the two properties.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {string} The path between the given in_fromProperty and this property\n * @private\n */\n _getIndirectPath(in_fromProperty) {\n var path = [];\n var that = this;\n var foundPath = undefined;\n\n foundPath = in_fromProperty.traverseUp(function(in_node) {\n path.push('../');\n if (in_node === that) {\n return BREAK_TRAVERSAL;\n }\n var directPath = that._getDirectPath(in_node);\n if (directPath) {\n path.push(directPath);\n return BREAK_TRAVERSAL;\n }\n return undefined;\n });\n if (foundPath === BREAK_TRAVERSAL) {\n return path.join('');\n } else {\n return undefined;\n }\n }\n\n /**\n * Returns the path from the given in_fromProperty to this property if a direct path\n * exists between the two properties. Otherwise returns undefined.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {string} The path between the given in_fromProperty and this property\n * @private\n */\n _getDirectPath(in_fromProperty) {\n var path = [];\n var foundAncestor = undefined;\n if (in_fromProperty === this) {\n foundAncestor = BREAK_TRAVERSAL;\n } else if (this.getParent()) {\n path.push(this.getParent()._getPathSegmentForChildNode(this));\n\n foundAncestor = this.traverseUp(function(in_node) {\n // break where we meet the relative reference\n if (in_node === in_fromProperty) {\n return BREAK_TRAVERSAL;\n }\n\n if (in_node.getParent()) {\n path.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n }\n\n return undefined;\n });\n }\n\n if (foundAncestor === BREAK_TRAVERSAL) {\n var result = path.reverse().join('');\n\n // We don't use a PROPERTY_PATH_DELIMITER at the start of the path\n if (result[0] === PROPERTY_PATH_DELIMITER) {\n result = result.substr(1);\n }\n return result;\n } else {\n return undefined;\n }\n }\n\n /**\n * Returns the possible paths from the given in_fromProperty to this property.\n *\n * @param {property-properties.BaseProperty} in_fromProperty - The node from which the\n * path is computed\n * @return {Array<string>} The paths between the given in_fromProperty and this property\n * @private\n */\n _getAllRelativePaths(in_fromProperty) {\n if (this.getRoot() !== in_fromProperty.getRoot()) {\n // if this and in_fromProperty have different roots, go through a repo ref\n // this is the case where we might have more than one path\n return this._getPathsThroughRepoRef(in_fromProperty);\n } else {\n var directPath = this._getDirectPath(in_fromProperty);\n if (directPath !== undefined) {\n return [directPath];\n } else {\n return [this._getIndirectPath(in_fromProperty)];\n }\n }\n }\n\n /**\n * Returns the path from the given fron_property to this node if such a path exists.\n * If more than one paths exist (as might be the case with multiple repository references\n * pointing to the same repository), it will return the first valid path found.\n * For example, if you have this structure:\n * <code>prop1\n * --prop2\n * ----prop3</code>\n * and call: <code>prop1.getRelativePath(prop3);</code>\n * You will get the path from prop3 to prop1, which would be '../../'\n * @param in_fromProperty - The property from which the\n * path is computed\n * @returns The path between the given in_fromProperty and this property\n * @throws if in_fromProperty is not a property\n */\n getRelativePath(in_fromProperty: BaseProperty): string {\n ConsoleUtils.assert(in_fromProperty instanceof BaseProperty, MSG.IN_FROMPROPERTY_MUST_BE_PROPERTY);\n var paths = this._getAllRelativePaths(in_fromProperty) || [];\n if (paths.length === 0) {\n console.warn(MSG.NO_PATH_BETWEEN +\n in_fromProperty.getAbsolutePath() +\n ' and ' +\n this.getAbsolutePath());\n } else if (paths.length > 1) {\n console.warn(MSG.MORE_THAN_ONE_PATH + in_fromProperty.getAbsolutePath() +\n ' and ' + this.getAbsolutePath());\n }\n return paths[0];\n }\n\n /**\n * Returns the path from the root of the workspace to this node\n * (including a slash at the beginning)\n *\n * @return {string} The path from the root\n */\n getAbsolutePath() {\n var that = this;\n var referenceProps = [];\n // get all reference properties pointing to the root the repository containing 'this'\n if (this._getCheckoutView()) {\n this._getCheckoutView()._forEachCheckedOutRepository(function(repoInfo) {\n var keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n for (const key of keys) {\n if (key) {\n let repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key];\n let refProperty = undefined;\n\n if (repoRef) {\n refProperty = repoRef._repositoryReferenceProperties[key] ?\n repoRef._repositoryReferenceProperties[key].property : undefined;\n }\n\n let refRoot;\n try {\n refRoot = refProperty ? refProperty.getReferencedRepositoryRoot() : undefined;\n } catch (e) {\n console.warn(e.message);\n }\n\n if (that.getRoot() === refRoot) {\n referenceProps.push(refProperty);\n break;\n }\n }\n }\n });\n }\n\n var path = this.isRoot() ? [] : [this.getParent()._getPathSegmentForChildNode(this)];\n this.traverseUp(function(in_node) {\n if (in_node.getParent()) {\n path.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n } else if (referenceProps.length > 0) {\n // recursively call getAbsolutePath, removing the '/' at the beginning of the path\n path.push(referenceProps[0].getAbsolutePath(referenceProps[0].getRoot()).slice(1));\n }\n });\n var absolutePath = path.reverse().join('');\n\n // We don't use the property path separator at the start of the path\n if (absolutePath[0] === PROPERTY_PATH_DELIMITER) {\n absolutePath = absolutePath.substr(1);\n }\n absolutePath = '/' + absolutePath;\n\n return absolutePath;\n }\n\n /**\n * Traverses the property hierarchy upwards until the a node without parent is reached\n *\n * @param {Function} in_callback - Callback to invoke for each of the parents. The traversal can be stopped\n * by returning BaseProperty.BREAK_TRAVERSAL\n * @throws if in_callback is not a function.\n * @return {string|undefined} Returns BaseProperty.BREAK_TRAVERSAL, if the traversal didn't reach the root,\n * otherwise undefined\n */\n traverseUp(in_callback) {\n ConsoleUtils.assert(_.isFunction(in_callback), MSG.CALLBACK_NOT_FCT);\n if (this._parent) {\n var result = in_callback(this._parent);\n if (result !== BREAK_TRAVERSAL) {\n return this._parent.traverseUp(in_callback);\n } else {\n return BREAK_TRAVERSAL;\n }\n }\n\n return undefined;\n }\n\n /**\n * @type {string} Constant to stop the traversal in traverseUp and traverseDown functions\n */\n static BREAK_TRAVERSAL = BREAK_TRAVERSAL;\n\n /**\n * Returns all children which are dirty (this only returns direct children, it does not travers recursively)\n *\n * @param in_flags - Which types of dirtiness are we looking for?\n * If none is given, all types are regarded as\n * dirty\n * @returns The list of keys identifying the dirty children\n */\n private _getDirtyChildren(in_flags: MODIFIED_STATE_FLAGS): string[] {\n return [];\n }\n\n /**\n * Returns the root of the property hierarchy\n * @returns The root property\n */\n getRoot(): BaseProperty {\n return this._parent ? this._parent.getRoot() : this;\n }\n\n /**\n * Traverses all children in the child hierarchy\n * TODO: How should this behave for collections?\n *\n * @param in_callback - Callback to invoke for every child\n * @param in_pathFromTraversalStart - Path from the root of the traversal to this node\n * @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted,\n * otherwise undefined\n * @private\n */\n _traverse(in_callback: Function, in_pathFromTraversalStart: string): string | undefined {\n return undefined;\n }\n\n /**\n * Deserialize takes a currently existing property and sets it to the hierarchy described in the normalized\n * ChangeSet passed as parameter. It will return a ChangeSet that describes the difference between the\n * current state of the property and the passed in normalized property\n *\n * @param in_serializedObj - The serialized changeset to apply to this node. This\n * has to be a normalized change-set (only containing insertions and property assignments. Deletes and Modify\n * must not appear)\n * @param in_filteringOptions\n * The filtering options to consider while deserializing the property.\n * @param in_createChangeSet\n * Should a changeset be created for this deserialization?\n * @param in_reportToView\n * Usually the dirtying should be reported to the view and trigger a modified\n * event there. This can be prevented via this flag.\n * @throws if called on a read-only property.\n * @returns ChangeSet with the changes that actually were performed during the\n * deserialization\n */\n deserialize(\n in_serializedObj: SerializedChangeSet,\n in_filteringOptions = {},\n in_createChangeSet = true,\n in_reportToView = false,\n ): SerializedChangeSet {\n this._checkIsNotReadOnly(false);\n return this._deserialize(in_serializedObj, in_reportToView, in_filteringOptions, in_createChangeSet);\n }\n\n /**\n * Sets the property to the state in the given normalized changeset\n *\n * @param in_serializedObj - The serialized changeset to apply. This\n * has to be a normalized change-set (only containing inserts. Removes and Modifies are forbidden).\n * @param in_reportToView - Usually the dirtying should be reported to the view\n * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n * @param in_filteringOptions\n * The filtering options to consider while deserializing the property.\n * @param in_createChangeSet\n * Should a changeset be created for this deserialization?\n * @returns ChangeSet with the changes that actually were performed during the\n * deserialization\n */\n _deserialize(\n in_serializedObj: SerializedChangeSet,\n in_reportToView: boolean,\n in_filteringOptions = {},\n in_createChangeSet = true,\n ): SerializedChangeSet {\n return {};\n }\n\n /**\n * Serialize the property into a changeSet\n *\n * @param in_dirtyOnly - Only include dirty entries in the serialization\n * @param in_includeRootTypeid - Include the typeid of the root of the hierarchy\n * @param in_dirtinessType -\n * The type of dirtiness to use when reporting dirty changes. By default this is\n * PENDING_CHANGE\n * @param in_includeReferencedRepositories - If this is set to true, the serialize\n * function will descend into referenced repositories. WARNING: if there are loops in the references\n * this can result in an infinite loop\n *\n * @returns The serialized representation of this property\n */\n _serialize(\n in_dirtyOnly: boolean = false,\n in_includeRootTypeid: boolean = false,\n in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n in_includeReferencedRepositories: boolean = false,\n ): object {\n return {};\n }\n\n /**\n * Serialize the property\n *\n * @param in_options - Options for the serialization\n * @throws if in_options is defined but is not an object.\n * @returns The serialized representation of this property\n */\n serialize(in_options: ISerializeOptions) {\n var opts = {\n dirtyOnly: false,\n includeRootTypeid: false,\n dirtinessType: MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n includeReferencedRepositories: false,\n };\n if (in_options !== undefined) {\n if (typeof in_options !== 'object') {\n throw new Error(MSG.SERIALIZE_TAKES_OBJECT);\n }\n Object.assign(opts, in_options);\n }\n\n return this._serialize(\n opts.dirtyOnly,\n opts.includeRootTypeid,\n opts.dirtinessType,\n opts.includeReferencedRepositories,\n );\n }\n\n /**\n * Indicate that all static members have been added to the property\n *\n * This function is invoked by the PropertyFactory once all static members have been added to the template\n * @protected\n */\n _signalAllStaticMembersHaveBeenAdded() { }\n\n /**\n * Tests whether this property may be modified\n * @param {checkConstant} in_checkConstant - Check if is readonly constant property\n */\n _checkIsNotReadOnly(in_checkConstant) {\n if (this._isConstant && in_checkConstant) {\n throw new Error(MSG.MODIFICATION_OF_CONSTANT_PROPERTY);\n }\n\n var root = this.getRoot();\n if (root && root._getCheckedOutRepositoryInfo) {\n var repositoryInfo = root._getCheckedOutRepositoryInfo();\n\n if (repositoryInfo && repositoryInfo._isReadOnly()) {\n throw new Error(MSG.MODIFICATION_OF_REFERENCED_PROPERTY);\n }\n }\n }\n\n /**\n * Set a property and its children as constants (readonly properties)\n */\n _setAsConstant() {\n this._isConstant = true;\n\n if (this instanceof Property.AbstractStaticCollectionProperty) {\n // Set all children properties as constants\n this.traverseDown(function(prop) {\n prop._isConstant = true;\n });\n }\n }\n\n traverseDown(arg0: (prop: any) => void) {\n throw new Error(\"Method not implemented.\");\n }\n\n /**\n * Unsets a property and its children as constants\n */\n _unsetAsConstant() {\n // Deleting this property will make the object\n // fall back to the entry in the prototype (false)\n delete this._isConstant;\n\n if (this instanceof Property.AbstractStaticCollectionProperty) {\n // Unset all children properties as constants\n this.traverseDown(function(prop) {\n // Deleting this property will make the object\n // fall back to the entry in the prototype (false)\n delete prop._isConstant;\n });\n }\n }\n\n /**\n * Dirties this node and all of its children\n *\n * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n * and trigger a modified event there. When batching updates, this\n * can be prevented via this flag.\n * @private\n */\n _setDirtyTree(in_reportToView = true) {\n this._traverse(function(node) {\n // Set all nodes to dirty, but prevent recursive updates up to the repository for the individual changes\n node._setDirty(false);\n }, '');\n // Now make one report\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n }\n\n /**\n * Determines whether a property can be inserted as a child of another property\n * This does NOT validate if the parent can accept the child property, it only validates if\n * the child property can be inserted in the parent.\n * @param in_targetParent - The parent property\n * @throws if the property can not be inserted\n */\n _validateInsertIn(in_targetParent: BaseProperty) {\n // A root?\n if (this._getCheckedOutRepositoryInfo() !== undefined) {\n throw new Error(MSG.INSERTED_ROOT_ENTRY);\n }\n\n // Would create a cycle?\n let parent = in_targetParent;\n while (parent !== undefined) {\n if (parent === this) {\n throw new Error(MSG.INSERTED_IN_OWN_CHILDREN);\n }\n parent = parent._parent;\n }\n\n // Already a child?\n if (this._parent !== undefined || this._getCheckoutView() !== undefined) {\n throw new Error(MSG.INSERTED_ENTRY_WITH_PARENT);\n }\n }\n\n /**\n * TODO: Remove it later. Kept not to modify tests\n *\n * Validates if the property and all its children are covered by the given list of paths.\n *\n * This function is expected to be used before inserting the property into its parent. That is the\n * reason for asking for the base path. This is the full path expected for this property.\n *\n * This function uses the canonical representation of the property paths.\n *\n * @param in_basePath - The property's absolute path in canonical form\n * @param in_paths - The array of paths that we wonder if it covers the property and its children\n * @returns If the property and all its children are included in the paths\n * @private\n */\n _coveredByPaths(in_basePath: string, in_paths: string[]): boolean {\n // First, get the coverage of the base property\n const coverage = PathHelper.getPathCoverage(in_basePath, in_paths);\n\n if (coverage.coverageExtent === PathHelper.CoverageExtent.FULLY_COVERED) {\n return true;\n } else if (coverage.coverageExtent === PathHelper.CoverageExtent.PARTLY_COVERED) {\n // We know that part of the property is covered, if we don't find any actual children not covered\n // by the paths it's because we're fully covered.\n if (this.isPrimitiveType()) {\n const childrenIds = this.getContext() === 'single' ? [] : this.getIds();\n for (const childId of childrenIds) {\n const childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n if (PathHelper.getPathCoverage(childPath, coverage.pathList).coverageExtent === PathHelper.CoverageExtent.UNCOVERED) {\n // this children is outside the list of paths\n return false;\n }\n }\n } else {\n const childrenIds = this.getIds();\n for (const childId of childrenIds) {\n const child = this.get(childId);\n const childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n if (!child._coveredByPaths(childPath, coverage.pathList)) {\n return false;\n }\n }\n }\n return true;\n }\n\n return false;\n }\n\n get _properties() {\n return this._flatten();\n }\n}\n\n(BaseProperty as any).prototype._isConstant = false;\n(BaseProperty as any).prototype._context = 'single';\n(BaseProperty as any).prototype._typeid = 'BaseProperty';\n"]}
|
|
@@ -3,11 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
*/
|
|
5
5
|
export class ContainerProperty extends IndexedCollectionBaseProperty {
|
|
6
|
-
/**
|
|
7
|
-
* @param {Object} in_params - Input parameters for property creation
|
|
8
|
-
* @protected
|
|
9
|
-
*/
|
|
10
|
-
protected constructor();
|
|
11
6
|
_optionalChildren: {};
|
|
12
7
|
_dynamicChildren: {};
|
|
13
8
|
/**
|
|
@@ -51,7 +46,7 @@ export class ContainerProperty extends IndexedCollectionBaseProperty {
|
|
|
51
46
|
* @throws if trying to remove an entry that does not exist
|
|
52
47
|
* @return {property-properties.BaseProperty} the property removed.
|
|
53
48
|
*/
|
|
54
|
-
remove(in_property: any):
|
|
49
|
+
remove(in_property: any): property;
|
|
55
50
|
/**
|
|
56
51
|
* Validates if removing a property with specified id is valid.
|
|
57
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerProperty.d.ts","sourceRoot":"","sources":["../../src/properties/containerProperty.js"],"names":[],"mappings":"AAgBA;;;GAGG;AACH;
|
|
1
|
+
{"version":3,"file":"containerProperty.d.ts","sourceRoot":"","sources":["../../src/properties/containerProperty.js"],"names":[],"mappings":"AAgBA;;;GAGG;AACH;IASY,sBAA2B;IAC3B,qBAA0B;IAuBlC;;;;;OAKG;IACH,0BAMC;IAED;;;;;;;;;;;;;;OAcG;IACH,2CAyBC;IAED;;;;;;;;OAQG;IACH,iCANW,MAAM,eACN,MAAM,QAchB;IAkBD;;;;;;;OAOG;IACH,mCAcC;IAED;;;;;;;OAOG;IACH,iCALW,MAAM,QAahB;IAED;;;OAGG;IACH,cAGC;IA+CD;;;;;;;OAOG;IACH,+EAEC;IAcD;;;;OAIG;IACH,gBAFY,MAAO,MAAM,CAAC,CAIzB;IAED;;;;OAIG;IACH,iBAFY,MAAO,MAAM,CAAC,CAIzB;IAED;;;;;;;;MAQE;IACF,mCAEC;CA6BJ"}
|
|
@@ -2,15 +2,6 @@
|
|
|
2
2
|
* A primitive property for enums.
|
|
3
3
|
*/
|
|
4
4
|
export class EnumProperty extends Int32Property {
|
|
5
|
-
/**
|
|
6
|
-
* @param {Object=} in_params - the parameters
|
|
7
|
-
* @constructor
|
|
8
|
-
* @protected
|
|
9
|
-
* @extends property-properties.Int32Property
|
|
10
|
-
* @alias property-properties.EnumProperty
|
|
11
|
-
* @category Value Properties
|
|
12
|
-
*/
|
|
13
|
-
protected constructor();
|
|
14
5
|
_enumDictionary: any;
|
|
15
6
|
/**
|
|
16
7
|
* Returns the current enum string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enumProperty.d.ts","sourceRoot":"","sources":["../../src/properties/enumProperty.js"],"names":[],"mappings":"AAgBA;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"enumProperty.d.ts","sourceRoot":"","sources":["../../src/properties/enumProperty.js"],"names":[],"mappings":"AAgBA;;GAEG;AACH;IAcQ,qBAAgD;IAapD;;;;OAIG;IACH,iBAHY,MAAM,CAUjB;IAwBD;;;;;;OAMG;IACH,6BAJW,MAAM,QAahB;IAYD;;;OAGG;IACH,oBAFY,EAAE,CAIb;CACJ"}
|
|
@@ -2,30 +2,12 @@
|
|
|
2
2
|
* A primitive property for a 32 bit floating point value.
|
|
3
3
|
*/
|
|
4
4
|
export class Float32Property extends ValueProperty {
|
|
5
|
-
/**
|
|
6
|
-
* @param {Object=} in_params - the parameters
|
|
7
|
-
* @constructor
|
|
8
|
-
* @protected
|
|
9
|
-
* @extends property-properties.ValueProperty
|
|
10
|
-
* @alias property-properties.Float32Property
|
|
11
|
-
* @category Value Properties
|
|
12
|
-
*/
|
|
13
|
-
protected constructor();
|
|
14
5
|
_castFunctor: any;
|
|
15
6
|
}
|
|
16
7
|
/**
|
|
17
8
|
* A primitive property for a 64 bit floating point value.
|
|
18
9
|
*/
|
|
19
10
|
export class Float64Property extends ValueProperty {
|
|
20
|
-
/**
|
|
21
|
-
* @param {Object=} in_params - the parameters
|
|
22
|
-
* @constructor
|
|
23
|
-
* @protected
|
|
24
|
-
* @extends property-properties.ValueProperty
|
|
25
|
-
* @alias property-properties.Float64Property
|
|
26
|
-
* @category Value Properties
|
|
27
|
-
*/
|
|
28
|
-
protected constructor();
|
|
29
11
|
_castFunctor: any;
|
|
30
12
|
}
|
|
31
13
|
import { ValueProperty } from "./valueProperty";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floatProperties.d.ts","sourceRoot":"","sources":["../../src/properties/floatProperties.js"],"names":[],"mappings":"AAWA;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"floatProperties.d.ts","sourceRoot":"","sources":["../../src/properties/floatProperties.js"],"names":[],"mappings":"AAWA;;GAEG;AACH;IAgBA,kBAAsC;CADrC;AAID;;GAEG;AAEH;IAeA,kBAAsC;CADrC"}
|
|
@@ -66,7 +66,7 @@ export class IndexedCollectionBaseProperty extends AbstractStaticCollectionPrope
|
|
|
66
66
|
* @param {*} in_obj - The object to be serialized
|
|
67
67
|
* @return {property-properties.SerializedChangeSet} the serialized object
|
|
68
68
|
*/
|
|
69
|
-
_serializeValue(in_obj: any):
|
|
69
|
+
_serializeValue(in_obj: any): property;
|
|
70
70
|
/** Specifies, whether this is a collection of base types or of registered templates */
|
|
71
71
|
_containsPrimitiveTypes: boolean;
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexedCollectionBaseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/indexedCollectionBaseProperty.js"],"names":[],"mappings":"AAiBA;;;;;GAKG;AAEH;;;GAGG;AACH;IACI;;;;OAIG;IACH,4BAeC;IAbG,gGAAgG;IAChG;;;;MAIC;IAED,0GAA0G;IAC1G;;;;MAIC;IA6EL;;;;;;;;;;OAUG;IACH,gBARW,MAAM,kCAIN,OAAO,QAyDjB;IAED;;;;;;;;OAQG;IACH,qBANW,MAAM,mBAEN,OAAO,QAsCjB;IA2GD;;;;;;;OAOG;IACH,8CAEC;IAED;;;;;;;OAOG;IACH,
|
|
1
|
+
{"version":3,"file":"indexedCollectionBaseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/indexedCollectionBaseProperty.js"],"names":[],"mappings":"AAiBA;;;;;GAKG;AAEH;;;GAGG;AACH;IACI;;;;OAIG;IACH,4BAeC;IAbG,gGAAgG;IAChG;;;;MAIC;IAED,0GAA0G;IAC1G;;;;MAIC;IA6EL;;;;;;;;;;OAUG;IACH,gBARW,MAAM,kCAIN,OAAO,QAyDjB;IAED;;;;;;;;OAQG;IACH,qBANW,MAAM,mBAEN,OAAO,QAsCjB;IA2GD;;;;;;;OAOG;IACH,8CAEC;IAED;;;;;;;OAOG;IACH,uCAIC;IA6XL,uFAAuF;IACvF,iCAA+D;CAF9D"}
|