@fluid-experimental/property-properties 0.58.1001 → 0.58.2000-58133
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.map +1 -1
- package/dist/containerSerializer.js +4 -10
- package/dist/containerSerializer.js.map +1 -1
- package/dist/enableValidations.d.ts.map +1 -1
- package/dist/enableValidations.js +1 -1
- package/dist/enableValidations.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.d.ts.map +1 -1
- package/dist/properties/abstractStaticCollectionProperty.js +1 -28
- package/dist/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/dist/properties/arrayProperty.d.ts.map +1 -1
- package/dist/properties/arrayProperty.js +26 -85
- package/dist/properties/arrayProperty.js.map +1 -1
- package/dist/properties/baseProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.js +9 -71
- package/dist/properties/baseProperty.js.map +1 -1
- package/dist/properties/boolProperty.d.ts.map +1 -1
- package/dist/properties/boolProperty.js +0 -1
- package/dist/properties/boolProperty.js.map +1 -1
- package/dist/properties/containerProperty.d.ts.map +1 -1
- package/dist/properties/containerProperty.js +4 -22
- package/dist/properties/containerProperty.js.map +1 -1
- package/dist/properties/enumArrayProperty.d.ts.map +1 -1
- package/dist/properties/enumArrayProperty.js +2 -14
- package/dist/properties/enumArrayProperty.js.map +1 -1
- package/dist/properties/enumProperty.d.ts.map +1 -1
- package/dist/properties/enumProperty.js +3 -10
- package/dist/properties/enumProperty.js.map +1 -1
- package/dist/properties/floatProperties.js +0 -2
- package/dist/properties/floatProperties.js.map +1 -1
- package/dist/properties/index.d.ts +7 -38
- package/dist/properties/index.d.ts.map +1 -1
- package/dist/properties/index.js +37 -68
- package/dist/properties/index.js.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.d.ts.map +1 -1
- package/dist/properties/indexedCollectionBaseProperty.js +6 -18
- package/dist/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/dist/properties/intProperties.d.ts.map +1 -1
- package/dist/properties/intProperties.js +3 -20
- package/dist/properties/intProperties.js.map +1 -1
- package/dist/properties/lazyLoadedProperties.js.map +1 -1
- package/dist/properties/mapProperty.d.ts.map +1 -1
- package/dist/properties/mapProperty.js +4 -23
- package/dist/properties/mapProperty.js.map +1 -1
- package/dist/properties/namedNodeProperty.d.ts.map +1 -1
- package/dist/properties/namedNodeProperty.js.map +1 -1
- package/dist/properties/namedProperty.d.ts.map +1 -1
- package/dist/properties/namedProperty.js +0 -3
- package/dist/properties/namedProperty.js.map +1 -1
- package/dist/properties/nodeProperty.d.ts.map +1 -1
- package/dist/properties/nodeProperty.js +0 -3
- package/dist/properties/nodeProperty.js.map +1 -1
- package/dist/properties/primitiveTypeCasts.d.ts.map +1 -1
- package/dist/properties/primitiveTypeCasts.js +2 -2
- package/dist/properties/primitiveTypeCasts.js.map +1 -1
- package/dist/properties/referenceArrayProperty.d.ts.map +1 -1
- package/dist/properties/referenceArrayProperty.js +3 -16
- package/dist/properties/referenceArrayProperty.js.map +1 -1
- package/dist/properties/referenceMapProperty.d.ts.map +1 -1
- package/dist/properties/referenceMapProperty.js +3 -13
- package/dist/properties/referenceMapProperty.js.map +1 -1
- package/dist/properties/referenceProperty.d.ts.map +1 -1
- package/dist/properties/referenceProperty.js +4 -12
- package/dist/properties/referenceProperty.js.map +1 -1
- package/dist/properties/setProperty.d.ts.map +1 -1
- package/dist/properties/setProperty.js +3 -22
- package/dist/properties/setProperty.js.map +1 -1
- package/dist/properties/stringProperty.d.ts.map +1 -1
- package/dist/properties/stringProperty.js +12 -48
- package/dist/properties/stringProperty.js.map +1 -1
- package/dist/properties/uintProperties.js +0 -3
- package/dist/properties/uintProperties.js.map +1 -1
- package/dist/properties/valueArrayProperty.d.ts.map +1 -1
- package/dist/properties/valueArrayProperty.js +3 -45
- package/dist/properties/valueArrayProperty.js.map +1 -1
- package/dist/properties/valueMapProperty.d.ts.map +1 -1
- package/dist/properties/valueMapProperty.js +4 -29
- package/dist/properties/valueMapProperty.js.map +1 -1
- package/dist/properties/valueProperty.d.ts.map +1 -1
- package/dist/properties/valueProperty.js +2 -14
- package/dist/properties/valueProperty.js.map +1 -1
- package/dist/propertyFactory.d.ts.map +1 -1
- package/dist/propertyFactory.js +35 -72
- package/dist/propertyFactory.js.map +1 -1
- package/dist/propertyTemplate.d.ts.map +1 -1
- package/dist/propertyTemplate.js +0 -14
- package/dist/propertyTemplate.js.map +1 -1
- package/dist/propertyTemplateWrapper.d.ts.map +1 -1
- package/dist/propertyTemplateWrapper.js +4 -12
- package/dist/propertyTemplateWrapper.js.map +1 -1
- package/dist/propertyUtils.d.ts.map +1 -1
- package/dist/propertyUtils.js.map +1 -1
- package/dist/test/properties/arrayProperty.spec.js +82 -82
- package/dist/test/properties/arrayProperty.spec.js.map +1 -1
- package/dist/test/properties/baseProperty.spec.js +53 -53
- package/dist/test/properties/baseProperty.spec.js.map +1 -1
- package/dist/test/properties/containerProperty.spec.js +25 -25
- package/dist/test/properties/containerProperty.spec.js.map +1 -1
- package/dist/test/properties/customArrayProperty.spec.js +35 -35
- package/dist/test/properties/customArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumArrayProperty.spec.js +6 -6
- package/dist/test/properties/enumArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/enumProperty.spec.js +26 -26
- package/dist/test/properties/enumProperty.spec.js.map +1 -1
- package/dist/test/properties/float32.spec.js.map +1 -1
- package/dist/test/properties/int64ArrayProperty.spec.js +22 -22
- package/dist/test/properties/int64ArrayProperty.spec.js.map +1 -1
- package/dist/test/properties/int64MapProperty.spec.js +28 -28
- package/dist/test/properties/int64MapProperty.spec.js.map +1 -1
- package/dist/test/properties/int64Property.spec.js +11 -11
- package/dist/test/properties/int64Property.spec.js.map +1 -1
- package/dist/test/properties/isLeafNode.spec.js +25 -25
- package/dist/test/properties/isLeafNode.spec.js.map +1 -1
- package/dist/test/properties/mapProperty.spec.js +110 -110
- package/dist/test/properties/mapProperty.spec.js.map +1 -1
- package/dist/test/properties/namedNodeProperty.spec.js +5 -5
- package/dist/test/properties/namedNodeProperty.spec.js.map +1 -1
- package/dist/test/properties/nodeProperty.spec.js +160 -160
- package/dist/test/properties/nodeProperty.spec.js.map +1 -1
- package/dist/test/properties/referenceProperty.spec.js +21 -21
- package/dist/test/properties/referenceProperty.spec.js.map +1 -1
- package/dist/test/properties/relationshipProperty.spec.js +4 -4
- package/dist/test/properties/relationshipProperty.spec.js.map +1 -1
- package/dist/test/properties/setProperty.spec.js +32 -32
- package/dist/test/properties/setProperty.spec.js.map +1 -1
- package/dist/test/properties/stringProperty.spec.js +38 -38
- package/dist/test/properties/stringProperty.spec.js.map +1 -1
- package/dist/test/properties/uint64Property.spec.js +3 -3
- package/dist/test/properties/uint64Property.spec.js.map +1 -1
- package/dist/test/properties/valueMapProperty.spec.js +28 -28
- package/dist/test/properties/valueMapProperty.spec.js.map +1 -1
- package/dist/test/properties/valueProperty.spec.js +7 -7
- package/dist/test/properties/valueProperty.spec.js.map +1 -1
- package/dist/test/propertyFactory.spec.js +559 -560
- package/dist/test/propertyFactory.spec.js.map +1 -1
- package/dist/test/propertyTemplateWrapper.spec.js +38 -38
- package/dist/test/propertyTemplateWrapper.spec.js.map +1 -1
- package/dist/test/propertyUtils.spec.js +5 -5
- package/dist/test/propertyUtils.spec.js.map +1 -1
- package/dist/test/reversibleChangeset.spec.js +266 -266
- package/dist/test/reversibleChangeset.spec.js.map +1 -1
- package/dist/test/setup.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +145 -145
- package/dist/test/utils.spec.js +508 -517
- package/dist/test/utils.spec.js.map +1 -1
- package/dist/test/validation/badMissingSemverInTypeid.js +9 -9
- package/dist/test/validation/badMissingSemverInTypeid.js.map +1 -1
- package/dist/test/validation/badPrimitiveTypeid.js +5 -5
- package/dist/test/validation/badPrimitiveTypeid.js.map +1 -1
- package/dist/test/validation/goodColorId.js +42 -42
- package/dist/test/validation/goodColorId.js.map +1 -1
- package/dist/test/validation/goodColorPalette.js +2 -2
- package/dist/test/validation/goodColorPalette.js.map +1 -1
- package/dist/test/validation/goodPointId.js +9 -9
- package/dist/test/validation/goodPointId.js.map +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js +1 -1
- package/dist/test/validation/reversibleChangeSetTestData.js.map +1 -1
- package/lib/containerSerializer.js +4 -10
- package/lib/containerSerializer.js.map +1 -1
- package/lib/enableValidations.js +1 -1
- package/lib/enableValidations.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/properties/abstractStaticCollectionProperty.js +1 -28
- package/lib/properties/abstractStaticCollectionProperty.js.map +1 -1
- package/lib/properties/arrayProperty.js +26 -85
- package/lib/properties/arrayProperty.js.map +1 -1
- package/lib/properties/baseProperty.js +7 -69
- package/lib/properties/baseProperty.js.map +1 -1
- package/lib/properties/boolProperty.js +0 -1
- package/lib/properties/boolProperty.js.map +1 -1
- package/lib/properties/containerProperty.js +4 -22
- package/lib/properties/containerProperty.js.map +1 -1
- package/lib/properties/enumArrayProperty.js +2 -14
- package/lib/properties/enumArrayProperty.js.map +1 -1
- package/lib/properties/enumProperty.js +3 -10
- package/lib/properties/enumProperty.js.map +1 -1
- package/lib/properties/floatProperties.js +0 -2
- package/lib/properties/floatProperties.js.map +1 -1
- package/lib/properties/index.js +7 -38
- package/lib/properties/index.js.map +1 -1
- package/lib/properties/indexedCollectionBaseProperty.js +6 -18
- package/lib/properties/indexedCollectionBaseProperty.js.map +1 -1
- package/lib/properties/intProperties.js +3 -20
- package/lib/properties/intProperties.js.map +1 -1
- package/lib/properties/lazyLoadedProperties.js.map +1 -1
- package/lib/properties/mapProperty.js +4 -23
- package/lib/properties/mapProperty.js.map +1 -1
- package/lib/properties/namedNodeProperty.js.map +1 -1
- package/lib/properties/namedProperty.js +0 -3
- package/lib/properties/namedProperty.js.map +1 -1
- package/lib/properties/nodeProperty.js +0 -3
- package/lib/properties/nodeProperty.js.map +1 -1
- package/lib/properties/primitiveTypeCasts.js +2 -2
- package/lib/properties/primitiveTypeCasts.js.map +1 -1
- package/lib/properties/referenceArrayProperty.js +3 -16
- package/lib/properties/referenceArrayProperty.js.map +1 -1
- package/lib/properties/referenceMapProperty.js +3 -13
- package/lib/properties/referenceMapProperty.js.map +1 -1
- package/lib/properties/referenceProperty.js +4 -12
- package/lib/properties/referenceProperty.js.map +1 -1
- package/lib/properties/setProperty.js +3 -22
- package/lib/properties/setProperty.js.map +1 -1
- package/lib/properties/stringProperty.js +12 -48
- package/lib/properties/stringProperty.js.map +1 -1
- package/lib/properties/uintProperties.js +0 -3
- package/lib/properties/uintProperties.js.map +1 -1
- package/lib/properties/valueArrayProperty.js +3 -45
- package/lib/properties/valueArrayProperty.js.map +1 -1
- package/lib/properties/valueMapProperty.js +4 -29
- package/lib/properties/valueMapProperty.js.map +1 -1
- package/lib/properties/valueProperty.js +2 -14
- package/lib/properties/valueProperty.js.map +1 -1
- package/lib/propertyFactory.js +35 -72
- package/lib/propertyFactory.js.map +1 -1
- package/lib/propertyTemplate.js +0 -14
- package/lib/propertyTemplate.js.map +1 -1
- package/lib/propertyTemplateWrapper.js +4 -12
- package/lib/propertyTemplateWrapper.js.map +1 -1
- package/lib/propertyUtils.js.map +1 -1
- package/package.json +13 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexedCollectionBaseProperty.js","sourceRoot":"","sources":["../../src/properties/indexedCollectionBaseProperty.js"],"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\n/**\n * @fileoverview Abstract base class for indexed collections (sets and maps)\n */\nconst _ = require('lodash');\nconst { BaseProperty } = require('./baseProperty');\nconst { AbstractStaticCollectionProperty } = require('./abstractStaticCollectionProperty');\nconst { deserialize } = require('../containerSerializer');\nconst { ChangeSet } = require('@fluid-experimental/property-changeset');\nconst { ConsoleUtils } = require('@fluid-experimental/property-common');\nconst { MSG } = require('@fluid-experimental/property-common').constants;\nconst { validationsEnabled } = require('../enableValidations');\n\n/**\n * typedef {property-properties.BaseProperty|string|number|boolean} property-properties.IndexedCollectionBaseProperty~ValueType\n *\n * The type of the values that are set/inserted into the collection. Depending on the type of the collection, these\n * can either be property objects or primitive values\n */\n\n/**\n * A IndexedCollectionBaseProperty is the base class for indexed collections (maps and sets). It should not be used\n * directly.\n */\nexport class IndexedCollectionBaseProperty extends AbstractStaticCollectionProperty {\n\n /**\n * @param {Object} in_params - Input parameters for property creation\n *\n * @constructor\n */\n constructor(in_params) {\n super(in_params);\n /** Stores the pending changes in the property (those that are part of the current ChangeSet) */\n this._pendingChanges = {\n insert: {},\n remove: {},\n modify: {}\n };\n\n /** Stores the dirty changes in the property (those that have not yet been reported to the application) */\n this._dirtyChanges = {\n insert: {},\n remove: {},\n modify: {}\n };\n };\n\n /**\n * Removes the dirtiness flag from this property\n *\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 // Invoke parent\n BaseProperty.prototype._cleanDirty.call(this, in_flags);\n\n if (in_flags === undefined ||\n (in_flags & BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE) !== 0) {\n // We additionally have to remove the log on the changes to our entries\n this._pendingChanges.insert = {};\n this._pendingChanges.remove = {};\n this._pendingChanges.modify = {};\n }\n\n if (in_flags === undefined ||\n (in_flags & BaseProperty.MODIFIED_STATE_FLAGS.DIRTY) !== 0) {\n // We additionally have to remove the log on the changes to our entries\n this._dirtyChanges.insert = {};\n this._dirtyChanges.remove = {};\n this._dirtyChanges.modify = {};\n }\n };\n\n /**\n * Removes the dirtiness flag from this property and recursively from all of its children\n *\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean, if none are supplied all\n * will be removed\n */\n cleanDirty(in_flags) {\n in_flags = in_flags !== undefined ? in_flags : BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n\n // Clean all entries inside of the collection\n let cleanDirtiness = (collection) => {\n var entry;\n\n for (let key in collection) {\n entry = this._dynamicChildren[key];\n if (entry._isDirty(in_flags)) {\n entry.cleanDirty(in_flags);\n }\n }\n };\n\n if (!this._containsPrimitiveTypes) {\n if (in_flags === BaseProperty.MODIFIED_STATE_FLAGS.DIRTY) {\n // Only use the dirty entries\n cleanDirtiness(this._dirtyChanges.insert);\n cleanDirtiness(this._dirtyChanges.modify);\n } else if (in_flags === BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE) {\n // Only use the pending changes\n cleanDirtiness(this._pendingChanges.insert);\n cleanDirtiness(this._pendingChanges.modify);\n } else {\n cleanDirtiness(this._pendingChanges.insert);\n cleanDirtiness(this._pendingChanges.modify);\n cleanDirtiness(this._dirtyChanges.insert);\n cleanDirtiness(this._dirtyChanges.modify);\n }\n }\n\n // Invoke parent\n BaseProperty.prototype.cleanDirty.call(this, in_flags);\n\n // after all entries have been cleaned, we mark this property as clean\n this._cleanDirty(in_flags);\n };\n\n /**\n * Inserts a property into the collection\n *\n * @param {string} in_key -\n * Key of the entry in the collection\n * @param {property-properties.IndexedCollectionBaseProperty~ValueType} in_value -\n * The value to insert\n * @param {boolean} in_reportToView -\n * By default, the dirtying will always be reported to the checkout view and trigger a modified event there.\n * When batching updates, this can be prevented via this flag.\n */\n _insert(in_key, in_value, in_reportToView) {\n\t if (validationsEnabled.enabled) {\n\t this._checkIsNotReadOnly(false);\n\t }\n\n if (!this.has(in_key)) {\n // Make sure, the property we are inserting is not already part of some other collection\n if (validationsEnabled.enabled && !this._containsPrimitiveTypes) {\n in_value._validateInsertIn(this)\n }\n\n this._dynamicChildren[in_key] = in_value;\n\n // We have to make sure, both this node itself and the whole tree of the inserted\n // entry are marked as dirty to make sure, they get serialized\n // We don't yet report the dirtying to the view. This happens below.\n this._setDirty(false);\n\n if (!this._containsPrimitiveTypes) {\n // Dirty the tree (TODO: is this needed?)\n in_value._setDirtyTree(false);\n\n in_value._setParent(this);\n\n // In the case of a template property, we always mark it as inserted\n this._pendingChanges.insert[in_key] = true;\n this._dirtyChanges.insert[in_key] = true;\n } else {\n // For primitive types we squash remove/insert combinations to modifies\n if (this._pendingChanges.remove[in_key] &&\n !this._pendingChanges.insert[in_key]) {\n this._pendingChanges.modify[in_key] = true;\n delete this._pendingChanges.remove[in_key];\n } else {\n this._pendingChanges.insert[in_key] = true;\n }\n\n if (this._dirtyChanges.remove[in_key] &&\n !this._dirtyChanges.insert[in_key]) {\n this._dirtyChanges.modify[in_key] = true;\n delete this._dirtyChanges.remove[in_key];\n } else {\n this._dirtyChanges.insert[in_key] = true;\n }\n }\n\n // Now make one report\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n } else {\n throw new Error(MSG.PROPERTY_ALREADY_EXISTS + in_key);\n }\n };\n\n /**\n * Removes an entry with the given key\n *\n * @param {string} in_key -\n * key of the entry\n * @param {boolean} in_reportToView -\n * By default, the dirtying will always be reported to the checkout view and trigger a modified event there.\n * When batching updates, this can be prevented via this flag.\n */\n _removeByKey(in_key, in_reportToView) {\n this._checkIsNotReadOnly(false);\n\n if (this._dynamicChildren[in_key] !== undefined) {\n if (this._dynamicChildren[in_key] instanceof BaseProperty) {\n this._dynamicChildren[in_key]._setParent(undefined);\n }\n\n delete this._dynamicChildren[in_key];\n\n // make sure this is not present in the insert list!\n if (this._pendingChanges.insert[in_key]) {\n delete this._pendingChanges.insert[in_key];\n } else {\n this._pendingChanges.remove[in_key] = true;\n\n // Also remove modifies, if any are present\n delete this._pendingChanges.modify[in_key];\n }\n\n // also update the list of dirty changes\n if (this._dirtyChanges.insert[in_key]) {\n delete this._dirtyChanges.insert[in_key];\n } else {\n this._dirtyChanges.remove[in_key] = true;\n\n // Also remove modifies, if any are present\n delete this._dirtyChanges.modify[in_key];\n }\n\n this._setDirty(in_reportToView);\n } else {\n throw new Error(MSG.REMOVED_NON_EXISTING_ENTRY + in_key);\n }\n };\n\n /**\n * Serialize the property\n *\n * @param {boolean} in_dirtyOnly -\n * Only include dirty entries in the serialization\n * @param {boolean} in_includeRootTypeid -\n * Include the typeid of the root of the hierarchy\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_dirtinessType] -\n * The type of dirtiness to use when reporting dirty changes. By default this is\n * PENDING_CHANGE\n * @param {boolean} [in_includeReferencedRepositories=false] - 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 * @return {Object} The serialized representation of this property\n * @private\n */\n _serialize(in_dirtyOnly,\n in_includeRootTypeid,\n in_dirtinessType,\n in_includeReferencedRepositories) {\n var serialized = AbstractStaticCollectionProperty.prototype._serialize.call(this, in_dirtyOnly, in_includeRootTypeid,\n in_dirtinessType, in_includeReferencedRepositories);\n\n var that = this;\n\n // Helper function to decide whether to include a typeid or not in the ChangeSet\n var addEntryInChangeSet = function (in_changes, in_typeid, in_key, in_value) {\n // Determine where to insert the key. If necessary, an entry for the type is added.\n if (that._containsPrimitiveTypes) {\n in_changes[in_key] = that._serializeValue(in_value);\n } else {\n in_changes[in_typeid] = in_changes[in_typeid] || {};\n in_changes[in_typeid][in_key] = in_value;\n }\n };\n\n var changes = in_dirtinessType === BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE ?\n this._pendingChanges : this._dirtyChanges;\n var insert = {};\n var modify = {};\n // we only remove entries when computing the delta\n var remove = in_dirtyOnly ? _.keys(changes.remove) : [];\n\n // Iterate over all children (and not properties)\n var typeid;\n var entryKeys = in_dirtyOnly ?\n _.keys(changes.modify).concat(_.keys(changes.insert)) : // Only dirty keys\n _.keys(this._dynamicChildren); // All keys\n for (var i = 0; i < entryKeys.length; i++) {\n var key = entryKeys[i];\n var entry = this._dynamicChildren[key];\n typeid = this._containsPrimitiveTypes ? this.getFullTypeid(false) : entry.getFullTypeid(false);\n if (in_dirtyOnly) {\n\n if (changes.insert[key]) {\n // If the key was inserted in this ChangeSet include it into the inserted list\n if (this._containsPrimitiveTypes) {\n addEntryInChangeSet(insert, typeid, key, entry);\n } else {\n addEntryInChangeSet(insert, typeid, key, entry._serialize(false, false,\n undefined, in_includeReferencedRepositories));\n }\n } else {\n // Check whether this is a modified entry and serialize changes when needed\n if (this._containsPrimitiveTypes) {\n if (changes.modify[key]) {\n addEntryInChangeSet(modify, typeid, key, entry);\n }\n } else {\n if (entry._isDirty(in_dirtinessType)) {\n var serializedChild = entry._serialize(in_dirtyOnly, false,\n in_dirtinessType, in_includeReferencedRepositories);\n if (!ChangeSet.isEmptyChangeSet(serializedChild)) {\n addEntryInChangeSet(modify, typeid, key, serializedChild);\n }\n }\n }\n }\n } else {\n // If we serialize everything, all entries are inserted\n if (this._containsPrimitiveTypes) {\n insert[key] = this._serializeValue(entry);\n } else {\n insert[typeid] = insert[typeid] || {};\n insert[typeid][key] = entry._serialize(in_dirtyOnly, false, undefined, in_includeReferencedRepositories);\n }\n }\n }\n\n // Serialize the changes\n if (!_.isEmpty(insert)) {\n serialized.insert = insert;\n }\n\n if (!_.isEmpty(remove)) {\n serialized.remove = remove;\n }\n\n if (!_.isEmpty(modify)) {\n serialized.modify = modify;\n }\n\n return serialized;\n };\n\n /**\n * Function to deserialize special primitive types.\n * Some primitive types (e.g. Int64, which is not natively supported by javascript) require\n * special treatment on deserialization. For supported types, we can just return the input here.\n *\n * @param {property-properties.SerializedChangeSet} in_serializedObj - The object to be deserialized\n * @return {*} the deserialized value\n */\n _deserializeValue(in_serializedObj) {\n return in_serializedObj;\n };\n\n /**\n * Function to serialize special primitive types.\n * Some primitive types (e.g. Int64, which is not natively supported by javascript) require\n * special treatment on serialization. For supported types, we can just return the input here.\n *\n * @param {*} in_obj - The object to be serialized\n * @return {property-properties.SerializedChangeSet} the serialized object\n */\n _serializeValue(in_obj) {\n ConsoleUtils.assert(this._containsPrimitiveTypes, MSG.ASSERTION_FAILED +\n 'Function IndexedCollectionBaseProperty._serializeValue() called on non-primitive collection');\n return in_obj;\n };\n\n /**\n * @inheritdoc\n */\n // eslint-disable-next-line complexity\n _deserialize(in_serializedObj, in_reportToView,\n in_filteringOptions, in_createChangeSet) {\n\n var currentEntries = this._dynamicChildren;\n var allInsertedKeys = {};\n\n var appliedChangeset = AbstractStaticCollectionProperty.prototype._deserialize.call(\n this, in_serializedObj, false, in_filteringOptions, in_createChangeSet);\n\n // Perform updates to the children\n\n // We make copies on two levels, since those are modified by the calls below\n var insertedEntries = _.mapValues(in_serializedObj.insert, function (x) { return _.clone(x); }) || {};\n var removedEntries = {};\n var modifiedEntries = {};\n\n // Get a list of all keys that will be inserted\n if (this._containsPrimitiveTypes) {\n var dataKeys = _.keys(insertedEntries);\n for (var iData = 0; iData < dataKeys.length; iData++) {\n var key = dataKeys[iData];\n allInsertedKeys[key] = true;\n }\n } else {\n var classKeys = _.keys(insertedEntries);\n for (var iClass = 0; iClass < classKeys.length; iClass++) {\n var typeid = classKeys[iClass];\n var dataKeys = _.keys(insertedEntries[typeid]);\n for (var iData = 0; iData < dataKeys.length; iData++) {\n var key = dataKeys[iData];\n allInsertedKeys[key] = true;\n }\n }\n }\n\n // Intersect the list of current keys, with the list of keys that will\n // NOT be inserted. Then insert the difference in the remove list so that\n // no objects are left dangling\n var keys = _.keys(currentEntries);\n for (var i = 0; i < keys.length; i++) {\n if (!allInsertedKeys[keys[i]]) {\n removedEntries[keys[i]] = true;\n }\n }\n\n // Remap adds to modify if the items are already in the document.\n // We want to make sure we reuse the current document state as much as possible\n // and simply change the bits that need to be changed. In many cases the\n // document will already contain the items but they need to be modified to\n // match the state described in_changeSet.\n if (this._containsPrimitiveTypes) {\n var addedKeys = Object.keys(insertedEntries);\n for (i = 0; i < addedKeys.length; i++) {\n if (currentEntries[addedKeys[i]] !== undefined) {\n modifiedEntries[addedKeys[i]] = insertedEntries[addedKeys[i]];\n delete insertedEntries[addedKeys[i]];\n }\n }\n } else {\n classKeys = _.keys(insertedEntries);\n for (iClass = 0; iClass < classKeys.length; iClass++) {\n typeid = classKeys[iClass];\n var addedKeys = Object.keys(insertedEntries[typeid]);\n for (i = 0; i < addedKeys.length; i++) {\n if (currentEntries[addedKeys[i]] !== undefined) {\n modifiedEntries[typeid] = modifiedEntries[typeid] || {};\n modifiedEntries[typeid][addedKeys[i]] = insertedEntries[typeid][addedKeys[i]];\n delete insertedEntries[typeid][addedKeys[i]];\n }\n }\n\n // Remove add entries, when they are empty\n if (_.isEmpty(insertedEntries[typeid])) {\n delete insertedEntries[typeid];\n }\n }\n }\n\n // Begin by removing what needs to be removed.\n keys = Object.keys(removedEntries);\n for (i = 0; i < keys.length; i++) {\n this._removeByKey(keys[i], false);\n }\n\n // Now get the portion of the children that must be added\n // this is a straightforward deserialize.\n if (this._containsPrimitiveTypes) {\n keys = _.keys(insertedEntries);\n for (i = 0; i < keys.length; i++) {\n this._insert(keys[i], this._deserializeValue(insertedEntries[keys[i]]), false);\n }\n } else {\n var scope = this._getScope();\n var newPsets = deserialize(insertedEntries, scope);\n keys = _.keys(newPsets);\n for (i = 0; i < keys.length; i++) {\n this._insert(keys[i], newPsets[keys[i]], false);\n }\n }\n\n\n // If no typeids are included, we just use a placeholder for the iteration below\n var classKeys = this._containsPrimitiveTypes ? [undefined] : _.keys(modifiedEntries);\n\n // Finally modify the existing properties\n var mapWasChangedByModify = false;\n for (iClass = 0; iClass < classKeys.length; iClass++) {\n typeid = classKeys[iClass];\n var modifiedKeys = Object.keys(this._containsPrimitiveTypes ? modifiedEntries : modifiedEntries[typeid]);\n for (i = 0; i < modifiedKeys.length; i++) {\n var changes;\n var valueWasChanged = false;\n var modifiedEntriesMap;\n if (this._containsPrimitiveTypes) {\n changes = modifiedEntries[modifiedKeys[i]];\n // Determine if value has changed\n if (this._typeid === 'Int64' || this._typeid === 'Uint64') {\n // For (u)int64, we will compare (Ui/I)nt64 objects with arrays [low, high]\n valueWasChanged = this._dynamicChildren[modifiedKeys[i]].getValueLow() !== changes[0] ||\n this._dynamicChildren[modifiedKeys[i]].getValueHigh() !== changes[1];\n } else {\n valueWasChanged = this._dynamicChildren[modifiedKeys[i]] !== changes;\n }\n modifiedEntriesMap = modifiedEntries;\n if (valueWasChanged) {\n this._dynamicChildren[modifiedKeys[i]] = this._deserializeValue(changes);\n // After modifying an entry, we have to update the flags\n // If there is a pending insert, we don't need to mark this as\n // a modify, as it will just change the insert. Otherwise, this\n // has to be reported as modify\n if (!this._pendingChanges.insert[modifiedKeys[i]]) {\n this._pendingChanges.modify[modifiedKeys[i]] = true;\n mapWasChangedByModify = true;\n }\n if (!this._dirtyChanges.insert[modifiedKeys[i]]) {\n this._dirtyChanges.modify[modifiedKeys[i]] = true;\n mapWasChangedByModify = true;\n }\n }\n } else {\n changes = this._dynamicChildren[modifiedKeys[i]]._deserialize(\n modifiedEntries[typeid][modifiedKeys[i]],\n false, in_filteringOptions, in_createChangeSet);\n valueWasChanged = !ChangeSet.isEmptyChangeSet(changes);\n\n modifiedEntries[typeid] = modifiedEntries[typeid] || {};\n modifiedEntriesMap = modifiedEntries[typeid];\n }\n\n if (valueWasChanged) {\n modifiedEntriesMap[modifiedKeys[i]] = changes;\n } else {\n delete modifiedEntriesMap[modifiedKeys[i]];\n }\n }\n\n if (!this._containsPrimitiveTypes && _.isEmpty(modifiedEntries[typeid])) {\n delete modifiedEntries[typeid];\n }\n }\n\n // Create a ChangeSet with the actually applied changes\n if (!_.isEmpty(insertedEntries)) {\n appliedChangeset.insert = _.clone(insertedEntries);\n }\n\n if (!_.isEmpty(removedEntries)) {\n appliedChangeset.remove = _.keys(removedEntries);\n }\n\n if (!_.isEmpty(modifiedEntries)) {\n appliedChangeset.modify = modifiedEntries;\n }\n\n // If working with primitive types, we have to update the dirty flag, when one of the entries\n // was changed\n if (mapWasChangedByModify) {\n this._setDirty(false);\n }\n\n // Finally report the dirtiness to the view (we postponed this above)\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n\n return appliedChangeset;\n };\n\n /**\n * @inheritdoc\n */\n _applyChangeset(in_changeSet, in_reportToView) {\n BaseProperty.prototype._applyChangeset.call(this, in_changeSet, false);\n\n // Remove existing entries\n // (we remove before we add, so that a remove+add operation in effect becomes a replace)\n if (in_changeSet.remove) {\n if (_.isArray(in_changeSet.remove)) {\n for (var i = 0; i < in_changeSet.remove.length; i++) {\n var key = in_changeSet.remove[i];\n this._removeByKey(key, false);\n }\n } else {\n // handle remove is an object case:\n if (!this._containsPrimitiveTypes) {\n var types = Object.keys(in_changeSet.remove);\n for (var i = 0; i < types.length; i++) {\n var keys = Object.keys(in_changeSet.remove[types[i]]);\n for (var j = 0; j < keys.length; j++) {\n this._removeByKey(keys[j], false);\n }\n }\n } else {\n var keys = Object.keys(in_changeSet.remove);\n for (var j = 0; j < keys.length; j++) {\n this._removeByKey(keys[j], false);\n }\n }\n }\n }\n\n // Insert entries (we just have to deserialize and insert them)\n if (in_changeSet.insert) {\n var newPsets;\n if (this._containsPrimitiveTypes) {\n newPsets = in_changeSet.insert;\n } else {\n var scope = this._getScope();\n newPsets = deserialize(in_changeSet.insert, scope);\n }\n var keys = Object.keys(newPsets);\n for (var i = 0; i < keys.length; i++) {\n if (!this._dynamicChildren[keys[i]]) {\n this._insert(keys[i], newPsets[keys[i]], false);\n } else {\n throw new Error(MSG.INSERTED_EXISTING_ENTRY + keys[i]);\n }\n }\n }\n\n // Modify entries\n var mapWasChangedByModify = false;\n if (in_changeSet.modify) {\n var classKeys = this._containsPrimitiveTypes ? [undefined] : _.keys(in_changeSet.modify);\n for (var iClass = 0; iClass < classKeys.length; iClass++) {\n var modifiedEntries = this._containsPrimitiveTypes ?\n in_changeSet.modify :\n in_changeSet.modify[classKeys[iClass]];\n var keys = Object.keys(modifiedEntries);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (this._dynamicChildren[key] !== undefined) {\n if (this._containsPrimitiveTypes) {\n var modifiedEntry = modifiedEntries[key];\n if (typeof modifiedEntry === 'object') {\n modifiedEntry = modifiedEntry.value;\n }\n this._dynamicChildren[key] = modifiedEntry;\n\n // After modifying an entry, we have to update the flags\n // If there is a pending insert, we don't need to mark this as\n // a modify, as it will just change the insert. Otherwise, this\n // has to be reported as modify\n if (!this._pendingChanges.insert[key]) {\n this._pendingChanges.modify[key] = true;\n mapWasChangedByModify = true;\n }\n if (!this._dirtyChanges.insert[key]) {\n this._dirtyChanges.modify[key] = true;\n mapWasChangedByModify = true;\n }\n\n } else {\n this._dynamicChildren[key]._applyChangeset(modifiedEntries[key], false);\n }\n } else {\n throw new Error(MSG.MODIFY_NON_EXISTING_ENTRY + key);\n }\n }\n }\n }\n\n // If working with primitive types, we have to update the dirty flag, when one of the entries\n // was changed\n if (mapWasChangedByModify) {\n this._setDirty(false);\n }\n\n // Finally report the dirtiness to the view (we postponed this above)\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n };\n\n /**\n * @inheritdoc\n */\n _reapplyDirtyFlags(in_pendingChangeSet, in_dirtyChangeSet) {\n BaseProperty.prototype._reapplyDirtyFlags.call(this, in_pendingChangeSet, in_dirtyChangeSet);\n\n var i, j, types, keys, key;\n\n // Remove existing entries\n // (we remove before we add, so that a remove+add operation in effect becomes a replace)\n if (in_pendingChangeSet.remove) {\n if (_.isArray(in_pendingChangeSet.remove)) {\n for (i = 0; i < in_pendingChangeSet.remove.length; i++) {\n key = in_pendingChangeSet.remove[i];\n this._pendingChanges.remove[key] = true;\n }\n } else {\n // handle remove is an object case:\n types = Object.keys(in_pendingChangeSet.remove);\n for (i = 0; i < types.length; i++) {\n keys = Object.keys(in_pendingChangeSet.remove[types[i]]);\n for (j = 0; j < keys.length; j++) {\n this._pendingChanges.remove[keys[j]] = true;\n }\n }\n }\n }\n\n // Inserted entries\n if (in_pendingChangeSet.insert) {\n types = Object.keys(in_pendingChangeSet.insert);\n for (i = 0; i < types.length; i++) {\n keys = Object.keys(in_pendingChangeSet.insert[types[i]]);\n for (j = 0; j < keys.length; j++) {\n key = keys[j];\n if (this._dynamicChildren[key] !== undefined) {\n this._pendingChanges.insert[key] = true;\n } else {\n throw new Error(`${MSG.CANT_DIRTY_MISSING_PROPERTY}${key}`);\n }\n }\n }\n }\n\n // Modify entries\n if (in_pendingChangeSet.modify) {\n var classKeys = _.keys(in_pendingChangeSet.modify);\n for (var iClass = 0; iClass < classKeys.length; iClass++) {\n var modifiedPendingEntries = in_pendingChangeSet.modify && in_pendingChangeSet.modify[classKeys[iClass]] || {};\n var modifiedDirtyEntries = in_dirtyChangeSet.modify && in_dirtyChangeSet.modify[classKeys[iClass]] || {};\n keys = Object.keys(modifiedPendingEntries).concat(Object.keys(modifiedDirtyEntries));\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n if (this._dynamicChildren[key] !== undefined) {\n this._dynamicChildren[key]._reapplyDirtyFlags(modifiedPendingEntries[key], modifiedDirtyEntries[key]);\n } else {\n throw new Error(MSG.MODIFY_NON_EXISTING_ENTRY + key);\n }\n }\n }\n }\n };\n\n /**\n * @inheritdoc\n */\n _setDirty(in_reportToView, in_callingChild) {\n // Mark the child as modified\n if (in_callingChild && !this._containsPrimitiveTypes) {\n var key = in_callingChild.getId();\n if (this._dynamicChildren[key]) {\n\n if (!this._pendingChanges.insert[key]) {\n this._pendingChanges.modify[key] = true;\n }\n if (!this._dirtyChanges.insert[key]) {\n this._dirtyChanges.modify[key] = true;\n }\n }\n }\n\n // Forward dirtiness propagation to base class\n BaseProperty.prototype._setDirty.call(this, in_reportToView, in_callingChild);\n };\n}\n/** Specifies, whether this is a collection of base types or of registered templates */\nIndexedCollectionBaseProperty.prototype._containsPrimitiveTypes = false;\n"]}
|
|
1
|
+
{"version":3,"file":"indexedCollectionBaseProperty.js","sourceRoot":"","sources":["../../src/properties/indexedCollectionBaseProperty.js"],"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\n/**\n * @fileoverview Abstract base class for indexed collections (sets and maps)\n */\nconst { ChangeSet } = require('@fluid-experimental/property-changeset');\nconst { ConsoleUtils } = require('@fluid-experimental/property-common');\nconst { MSG } = require('@fluid-experimental/property-common').constants;\nconst _ = require('lodash');\nconst { deserialize } = require('../containerSerializer');\nconst { validationsEnabled } = require('../enableValidations');\nconst { BaseProperty } = require('./baseProperty');\nconst { AbstractStaticCollectionProperty } = require('./abstractStaticCollectionProperty');\n\n/**\n * typedef {property-properties.BaseProperty|string|number|boolean} property-properties.IndexedCollectionBaseProperty~ValueType\n *\n * The type of the values that are set/inserted into the collection. Depending on the type of the collection, these\n * can either be property objects or primitive values\n */\n\n/**\n * A IndexedCollectionBaseProperty is the base class for indexed collections (maps and sets). It should not be used\n * directly.\n */\nexport class IndexedCollectionBaseProperty extends AbstractStaticCollectionProperty {\n /**\n * @param {Object} in_params - Input parameters for property creation\n *\n * @constructor\n */\n constructor(in_params) {\n super(in_params);\n /** Stores the pending changes in the property (those that are part of the current ChangeSet) */\n this._pendingChanges = {\n insert: {},\n remove: {},\n modify: {},\n };\n\n /** Stores the dirty changes in the property (those that have not yet been reported to the application) */\n this._dirtyChanges = {\n insert: {},\n remove: {},\n modify: {},\n };\n }\n\n /**\n * Removes the dirtiness flag from this property\n *\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 // Invoke parent\n BaseProperty.prototype._cleanDirty.call(this, in_flags);\n\n if (in_flags === undefined ||\n (in_flags & BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE) !== 0) {\n // We additionally have to remove the log on the changes to our entries\n this._pendingChanges.insert = {};\n this._pendingChanges.remove = {};\n this._pendingChanges.modify = {};\n }\n\n if (in_flags === undefined ||\n (in_flags & BaseProperty.MODIFIED_STATE_FLAGS.DIRTY) !== 0) {\n // We additionally have to remove the log on the changes to our entries\n this._dirtyChanges.insert = {};\n this._dirtyChanges.remove = {};\n this._dirtyChanges.modify = {};\n }\n }\n\n /**\n * Removes the dirtiness flag from this property and recursively from all of its children\n *\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean, if none are supplied all\n * will be removed\n */\n cleanDirty(in_flags) {\n in_flags = in_flags !== undefined ? in_flags : BaseProperty.MODIFIED_STATE_FLAGS.DIRTY |\n BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n\n // Clean all entries inside of the collection\n let cleanDirtiness = (collection) => {\n var entry;\n\n for (let key in collection) {\n entry = this._dynamicChildren[key];\n if (entry._isDirty(in_flags)) {\n entry.cleanDirty(in_flags);\n }\n }\n };\n\n if (!this._containsPrimitiveTypes) {\n if (in_flags === BaseProperty.MODIFIED_STATE_FLAGS.DIRTY) {\n // Only use the dirty entries\n cleanDirtiness(this._dirtyChanges.insert);\n cleanDirtiness(this._dirtyChanges.modify);\n } else if (in_flags === BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE) {\n // Only use the pending changes\n cleanDirtiness(this._pendingChanges.insert);\n cleanDirtiness(this._pendingChanges.modify);\n } else {\n cleanDirtiness(this._pendingChanges.insert);\n cleanDirtiness(this._pendingChanges.modify);\n cleanDirtiness(this._dirtyChanges.insert);\n cleanDirtiness(this._dirtyChanges.modify);\n }\n }\n\n // Invoke parent\n BaseProperty.prototype.cleanDirty.call(this, in_flags);\n\n // after all entries have been cleaned, we mark this property as clean\n this._cleanDirty(in_flags);\n }\n\n /**\n * Inserts a property into the collection\n *\n * @param {string} in_key -\n * Key of the entry in the collection\n * @param {property-properties.IndexedCollectionBaseProperty~ValueType} in_value -\n * The value to insert\n * @param {boolean} in_reportToView -\n * By default, the dirtying will always be reported to the checkout view and trigger a modified event there.\n * When batching updates, this can be prevented via this flag.\n */\n _insert(in_key, in_value, in_reportToView) {\n if (validationsEnabled.enabled) {\n this._checkIsNotReadOnly(false);\n }\n\n if (!this.has(in_key)) {\n // Make sure, the property we are inserting is not already part of some other collection\n if (validationsEnabled.enabled && !this._containsPrimitiveTypes) {\n in_value._validateInsertIn(this);\n }\n\n this._dynamicChildren[in_key] = in_value;\n\n // We have to make sure, both this node itself and the whole tree of the inserted\n // entry are marked as dirty to make sure, they get serialized\n // We don't yet report the dirtying to the view. This happens below.\n this._setDirty(false);\n\n if (!this._containsPrimitiveTypes) {\n // Dirty the tree (TODO: is this needed?)\n in_value._setDirtyTree(false);\n\n in_value._setParent(this);\n\n // In the case of a template property, we always mark it as inserted\n this._pendingChanges.insert[in_key] = true;\n this._dirtyChanges.insert[in_key] = true;\n } else {\n // For primitive types we squash remove/insert combinations to modifies\n if (this._pendingChanges.remove[in_key] &&\n !this._pendingChanges.insert[in_key]) {\n this._pendingChanges.modify[in_key] = true;\n delete this._pendingChanges.remove[in_key];\n } else {\n this._pendingChanges.insert[in_key] = true;\n }\n\n if (this._dirtyChanges.remove[in_key] &&\n !this._dirtyChanges.insert[in_key]) {\n this._dirtyChanges.modify[in_key] = true;\n delete this._dirtyChanges.remove[in_key];\n } else {\n this._dirtyChanges.insert[in_key] = true;\n }\n }\n\n // Now make one report\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n } else {\n throw new Error(MSG.PROPERTY_ALREADY_EXISTS + in_key);\n }\n }\n\n /**\n * Removes an entry with the given key\n *\n * @param {string} in_key -\n * key of the entry\n * @param {boolean} in_reportToView -\n * By default, the dirtying will always be reported to the checkout view and trigger a modified event there.\n * When batching updates, this can be prevented via this flag.\n */\n _removeByKey(in_key, in_reportToView) {\n this._checkIsNotReadOnly(false);\n\n if (this._dynamicChildren[in_key] !== undefined) {\n if (this._dynamicChildren[in_key] instanceof BaseProperty) {\n this._dynamicChildren[in_key]._setParent(undefined);\n }\n\n delete this._dynamicChildren[in_key];\n\n // make sure this is not present in the insert list!\n if (this._pendingChanges.insert[in_key]) {\n delete this._pendingChanges.insert[in_key];\n } else {\n this._pendingChanges.remove[in_key] = true;\n\n // Also remove modifies, if any are present\n delete this._pendingChanges.modify[in_key];\n }\n\n // also update the list of dirty changes\n if (this._dirtyChanges.insert[in_key]) {\n delete this._dirtyChanges.insert[in_key];\n } else {\n this._dirtyChanges.remove[in_key] = true;\n\n // Also remove modifies, if any are present\n delete this._dirtyChanges.modify[in_key];\n }\n\n this._setDirty(in_reportToView);\n } else {\n throw new Error(MSG.REMOVED_NON_EXISTING_ENTRY + in_key);\n }\n }\n\n /**\n * Serialize the property\n *\n * @param {boolean} in_dirtyOnly -\n * Only include dirty entries in the serialization\n * @param {boolean} in_includeRootTypeid -\n * Include the typeid of the root of the hierarchy\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_dirtinessType] -\n * The type of dirtiness to use when reporting dirty changes. By default this is\n * PENDING_CHANGE\n * @param {boolean} [in_includeReferencedRepositories=false] - 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 * @return {Object} The serialized representation of this property\n * @private\n */\n _serialize(in_dirtyOnly,\n in_includeRootTypeid,\n in_dirtinessType,\n in_includeReferencedRepositories) {\n var serialized = AbstractStaticCollectionProperty.prototype._serialize.call(this, in_dirtyOnly, in_includeRootTypeid,\n in_dirtinessType, in_includeReferencedRepositories);\n\n var that = this;\n\n // Helper function to decide whether to include a typeid or not in the ChangeSet\n var addEntryInChangeSet = function(in_changes, in_typeid, in_key, in_value) {\n // Determine where to insert the key. If necessary, an entry for the type is added.\n if (that._containsPrimitiveTypes) {\n in_changes[in_key] = that._serializeValue(in_value);\n } else {\n in_changes[in_typeid] = in_changes[in_typeid] || {};\n in_changes[in_typeid][in_key] = in_value;\n }\n };\n\n var changes = in_dirtinessType === BaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE ?\n this._pendingChanges : this._dirtyChanges;\n var insert = {};\n var modify = {};\n // we only remove entries when computing the delta\n var remove = in_dirtyOnly ? _.keys(changes.remove) : [];\n\n // Iterate over all children (and not properties)\n var typeid;\n var entryKeys = in_dirtyOnly ?\n _.keys(changes.modify).concat(_.keys(changes.insert)) : // Only dirty keys\n _.keys(this._dynamicChildren); // All keys\n for (var i = 0; i < entryKeys.length; i++) {\n var key = entryKeys[i];\n var entry = this._dynamicChildren[key];\n typeid = this._containsPrimitiveTypes ? this.getFullTypeid(false) : entry.getFullTypeid(false);\n if (in_dirtyOnly) {\n if (changes.insert[key]) {\n // If the key was inserted in this ChangeSet include it into the inserted list\n if (this._containsPrimitiveTypes) {\n addEntryInChangeSet(insert, typeid, key, entry);\n } else {\n addEntryInChangeSet(insert, typeid, key, entry._serialize(false, false,\n undefined, in_includeReferencedRepositories));\n }\n } else {\n // Check whether this is a modified entry and serialize changes when needed\n if (this._containsPrimitiveTypes) {\n if (changes.modify[key]) {\n addEntryInChangeSet(modify, typeid, key, entry);\n }\n } else {\n if (entry._isDirty(in_dirtinessType)) {\n var serializedChild = entry._serialize(in_dirtyOnly, false,\n in_dirtinessType, in_includeReferencedRepositories);\n if (!ChangeSet.isEmptyChangeSet(serializedChild)) {\n addEntryInChangeSet(modify, typeid, key, serializedChild);\n }\n }\n }\n }\n } else {\n // If we serialize everything, all entries are inserted\n if (this._containsPrimitiveTypes) {\n insert[key] = this._serializeValue(entry);\n } else {\n insert[typeid] = insert[typeid] || {};\n insert[typeid][key] = entry._serialize(in_dirtyOnly, false, undefined, in_includeReferencedRepositories);\n }\n }\n }\n\n // Serialize the changes\n if (!_.isEmpty(insert)) {\n serialized.insert = insert;\n }\n\n if (!_.isEmpty(remove)) {\n serialized.remove = remove;\n }\n\n if (!_.isEmpty(modify)) {\n serialized.modify = modify;\n }\n\n return serialized;\n }\n\n /**\n * Function to deserialize special primitive types.\n * Some primitive types (e.g. Int64, which is not natively supported by javascript) require\n * special treatment on deserialization. For supported types, we can just return the input here.\n *\n * @param {property-properties.SerializedChangeSet} in_serializedObj - The object to be deserialized\n * @return {*} the deserialized value\n */\n _deserializeValue(in_serializedObj) {\n return in_serializedObj;\n }\n\n /**\n * Function to serialize special primitive types.\n * Some primitive types (e.g. Int64, which is not natively supported by javascript) require\n * special treatment on serialization. For supported types, we can just return the input here.\n *\n * @param {*} in_obj - The object to be serialized\n * @return {property-properties.SerializedChangeSet} the serialized object\n */\n _serializeValue(in_obj) {\n ConsoleUtils.assert(this._containsPrimitiveTypes, MSG.ASSERTION_FAILED +\n 'Function IndexedCollectionBaseProperty._serializeValue() called on non-primitive collection');\n return in_obj;\n }\n\n /**\n * @inheritdoc\n */\n // eslint-disable-next-line complexity\n _deserialize(in_serializedObj, in_reportToView,\n in_filteringOptions, in_createChangeSet) {\n var currentEntries = this._dynamicChildren;\n var allInsertedKeys = {};\n\n var appliedChangeset = AbstractStaticCollectionProperty.prototype._deserialize.call(\n this, in_serializedObj, false, in_filteringOptions, in_createChangeSet);\n\n // Perform updates to the children\n\n // We make copies on two levels, since those are modified by the calls below\n var insertedEntries = _.mapValues(in_serializedObj.insert, function(x) { return _.clone(x); }) || {};\n var removedEntries = {};\n var modifiedEntries = {};\n\n // Get a list of all keys that will be inserted\n if (this._containsPrimitiveTypes) {\n var dataKeys = _.keys(insertedEntries);\n for (var iData = 0; iData < dataKeys.length; iData++) {\n var key = dataKeys[iData];\n allInsertedKeys[key] = true;\n }\n } else {\n var classKeys = _.keys(insertedEntries);\n for (var iClass = 0; iClass < classKeys.length; iClass++) {\n var typeid = classKeys[iClass];\n var dataKeys = _.keys(insertedEntries[typeid]);\n for (var iData = 0; iData < dataKeys.length; iData++) {\n var key = dataKeys[iData];\n allInsertedKeys[key] = true;\n }\n }\n }\n\n // Intersect the list of current keys, with the list of keys that will\n // NOT be inserted. Then insert the difference in the remove list so that\n // no objects are left dangling\n var keys = _.keys(currentEntries);\n for (var i = 0; i < keys.length; i++) {\n if (!allInsertedKeys[keys[i]]) {\n removedEntries[keys[i]] = true;\n }\n }\n\n // Remap adds to modify if the items are already in the document.\n // We want to make sure we reuse the current document state as much as possible\n // and simply change the bits that need to be changed. In many cases the\n // document will already contain the items but they need to be modified to\n // match the state described in_changeSet.\n if (this._containsPrimitiveTypes) {\n var addedKeys = Object.keys(insertedEntries);\n for (i = 0; i < addedKeys.length; i++) {\n if (currentEntries[addedKeys[i]] !== undefined) {\n modifiedEntries[addedKeys[i]] = insertedEntries[addedKeys[i]];\n delete insertedEntries[addedKeys[i]];\n }\n }\n } else {\n classKeys = _.keys(insertedEntries);\n for (iClass = 0; iClass < classKeys.length; iClass++) {\n typeid = classKeys[iClass];\n var addedKeys = Object.keys(insertedEntries[typeid]);\n for (i = 0; i < addedKeys.length; i++) {\n if (currentEntries[addedKeys[i]] !== undefined) {\n modifiedEntries[typeid] = modifiedEntries[typeid] || {};\n modifiedEntries[typeid][addedKeys[i]] = insertedEntries[typeid][addedKeys[i]];\n delete insertedEntries[typeid][addedKeys[i]];\n }\n }\n\n // Remove add entries, when they are empty\n if (_.isEmpty(insertedEntries[typeid])) {\n delete insertedEntries[typeid];\n }\n }\n }\n\n // Begin by removing what needs to be removed.\n keys = Object.keys(removedEntries);\n for (i = 0; i < keys.length; i++) {\n this._removeByKey(keys[i], false);\n }\n\n // Now get the portion of the children that must be added\n // this is a straightforward deserialize.\n if (this._containsPrimitiveTypes) {\n keys = _.keys(insertedEntries);\n for (i = 0; i < keys.length; i++) {\n this._insert(keys[i], this._deserializeValue(insertedEntries[keys[i]]), false);\n }\n } else {\n var scope = this._getScope();\n var newPsets = deserialize(insertedEntries, scope);\n keys = _.keys(newPsets);\n for (i = 0; i < keys.length; i++) {\n this._insert(keys[i], newPsets[keys[i]], false);\n }\n }\n\n // If no typeids are included, we just use a placeholder for the iteration below\n var classKeys = this._containsPrimitiveTypes ? [undefined] : _.keys(modifiedEntries);\n\n // Finally modify the existing properties\n var mapWasChangedByModify = false;\n for (iClass = 0; iClass < classKeys.length; iClass++) {\n typeid = classKeys[iClass];\n var modifiedKeys = Object.keys(this._containsPrimitiveTypes ? modifiedEntries : modifiedEntries[typeid]);\n for (i = 0; i < modifiedKeys.length; i++) {\n var changes;\n var valueWasChanged = false;\n var modifiedEntriesMap;\n if (this._containsPrimitiveTypes) {\n changes = modifiedEntries[modifiedKeys[i]];\n // Determine if value has changed\n if (this._typeid === 'Int64' || this._typeid === 'Uint64') {\n // For (u)int64, we will compare (Ui/I)nt64 objects with arrays [low, high]\n valueWasChanged = this._dynamicChildren[modifiedKeys[i]].getValueLow() !== changes[0] ||\n this._dynamicChildren[modifiedKeys[i]].getValueHigh() !== changes[1];\n } else {\n valueWasChanged = this._dynamicChildren[modifiedKeys[i]] !== changes;\n }\n modifiedEntriesMap = modifiedEntries;\n if (valueWasChanged) {\n this._dynamicChildren[modifiedKeys[i]] = this._deserializeValue(changes);\n // After modifying an entry, we have to update the flags\n // If there is a pending insert, we don't need to mark this as\n // a modify, as it will just change the insert. Otherwise, this\n // has to be reported as modify\n if (!this._pendingChanges.insert[modifiedKeys[i]]) {\n this._pendingChanges.modify[modifiedKeys[i]] = true;\n mapWasChangedByModify = true;\n }\n if (!this._dirtyChanges.insert[modifiedKeys[i]]) {\n this._dirtyChanges.modify[modifiedKeys[i]] = true;\n mapWasChangedByModify = true;\n }\n }\n } else {\n changes = this._dynamicChildren[modifiedKeys[i]]._deserialize(\n modifiedEntries[typeid][modifiedKeys[i]],\n false, in_filteringOptions, in_createChangeSet);\n valueWasChanged = !ChangeSet.isEmptyChangeSet(changes);\n\n modifiedEntries[typeid] = modifiedEntries[typeid] || {};\n modifiedEntriesMap = modifiedEntries[typeid];\n }\n\n if (valueWasChanged) {\n modifiedEntriesMap[modifiedKeys[i]] = changes;\n } else {\n delete modifiedEntriesMap[modifiedKeys[i]];\n }\n }\n\n if (!this._containsPrimitiveTypes && _.isEmpty(modifiedEntries[typeid])) {\n delete modifiedEntries[typeid];\n }\n }\n\n // Create a ChangeSet with the actually applied changes\n if (!_.isEmpty(insertedEntries)) {\n appliedChangeset.insert = _.clone(insertedEntries);\n }\n\n if (!_.isEmpty(removedEntries)) {\n appliedChangeset.remove = _.keys(removedEntries);\n }\n\n if (!_.isEmpty(modifiedEntries)) {\n appliedChangeset.modify = modifiedEntries;\n }\n\n // If working with primitive types, we have to update the dirty flag, when one of the entries\n // was changed\n if (mapWasChangedByModify) {\n this._setDirty(false);\n }\n\n // Finally report the dirtiness to the view (we postponed this above)\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n\n return appliedChangeset;\n }\n\n /**\n * @inheritdoc\n */\n _applyChangeset(in_changeSet, in_reportToView) {\n BaseProperty.prototype._applyChangeset.call(this, in_changeSet, false);\n\n // Remove existing entries\n // (we remove before we add, so that a remove+add operation in effect becomes a replace)\n if (in_changeSet.remove) {\n if (_.isArray(in_changeSet.remove)) {\n for (var i = 0; i < in_changeSet.remove.length; i++) {\n var key = in_changeSet.remove[i];\n this._removeByKey(key, false);\n }\n } else {\n // handle remove is an object case:\n if (!this._containsPrimitiveTypes) {\n var types = Object.keys(in_changeSet.remove);\n for (var i = 0; i < types.length; i++) {\n var keys = Object.keys(in_changeSet.remove[types[i]]);\n for (var j = 0; j < keys.length; j++) {\n this._removeByKey(keys[j], false);\n }\n }\n } else {\n var keys = Object.keys(in_changeSet.remove);\n for (var j = 0; j < keys.length; j++) {\n this._removeByKey(keys[j], false);\n }\n }\n }\n }\n\n // Insert entries (we just have to deserialize and insert them)\n if (in_changeSet.insert) {\n var newPsets;\n if (this._containsPrimitiveTypes) {\n newPsets = in_changeSet.insert;\n } else {\n var scope = this._getScope();\n newPsets = deserialize(in_changeSet.insert, scope);\n }\n var keys = Object.keys(newPsets);\n for (var i = 0; i < keys.length; i++) {\n if (!this._dynamicChildren[keys[i]]) {\n this._insert(keys[i], newPsets[keys[i]], false);\n } else {\n throw new Error(MSG.INSERTED_EXISTING_ENTRY + keys[i]);\n }\n }\n }\n\n // Modify entries\n var mapWasChangedByModify = false;\n if (in_changeSet.modify) {\n var classKeys = this._containsPrimitiveTypes ? [undefined] : _.keys(in_changeSet.modify);\n for (var iClass = 0; iClass < classKeys.length; iClass++) {\n var modifiedEntries = this._containsPrimitiveTypes ?\n in_changeSet.modify :\n in_changeSet.modify[classKeys[iClass]];\n var keys = Object.keys(modifiedEntries);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (this._dynamicChildren[key] !== undefined) {\n if (this._containsPrimitiveTypes) {\n var modifiedEntry = modifiedEntries[key];\n if (typeof modifiedEntry === 'object') {\n modifiedEntry = modifiedEntry.value;\n }\n this._dynamicChildren[key] = modifiedEntry;\n\n // After modifying an entry, we have to update the flags\n // If there is a pending insert, we don't need to mark this as\n // a modify, as it will just change the insert. Otherwise, this\n // has to be reported as modify\n if (!this._pendingChanges.insert[key]) {\n this._pendingChanges.modify[key] = true;\n mapWasChangedByModify = true;\n }\n if (!this._dirtyChanges.insert[key]) {\n this._dirtyChanges.modify[key] = true;\n mapWasChangedByModify = true;\n }\n } else {\n this._dynamicChildren[key]._applyChangeset(modifiedEntries[key], false);\n }\n } else {\n throw new Error(MSG.MODIFY_NON_EXISTING_ENTRY + key);\n }\n }\n }\n }\n\n // If working with primitive types, we have to update the dirty flag, when one of the entries\n // was changed\n if (mapWasChangedByModify) {\n this._setDirty(false);\n }\n\n // Finally report the dirtiness to the view (we postponed this above)\n if (in_reportToView) {\n this._reportDirtinessToView();\n }\n }\n\n /**\n * @inheritdoc\n */\n _reapplyDirtyFlags(in_pendingChangeSet, in_dirtyChangeSet) {\n BaseProperty.prototype._reapplyDirtyFlags.call(this, in_pendingChangeSet, in_dirtyChangeSet);\n\n var i, j, types, keys, key;\n\n // Remove existing entries\n // (we remove before we add, so that a remove+add operation in effect becomes a replace)\n if (in_pendingChangeSet.remove) {\n if (_.isArray(in_pendingChangeSet.remove)) {\n for (i = 0; i < in_pendingChangeSet.remove.length; i++) {\n key = in_pendingChangeSet.remove[i];\n this._pendingChanges.remove[key] = true;\n }\n } else {\n // handle remove is an object case:\n types = Object.keys(in_pendingChangeSet.remove);\n for (i = 0; i < types.length; i++) {\n keys = Object.keys(in_pendingChangeSet.remove[types[i]]);\n for (j = 0; j < keys.length; j++) {\n this._pendingChanges.remove[keys[j]] = true;\n }\n }\n }\n }\n\n // Inserted entries\n if (in_pendingChangeSet.insert) {\n types = Object.keys(in_pendingChangeSet.insert);\n for (i = 0; i < types.length; i++) {\n keys = Object.keys(in_pendingChangeSet.insert[types[i]]);\n for (j = 0; j < keys.length; j++) {\n key = keys[j];\n if (this._dynamicChildren[key] !== undefined) {\n this._pendingChanges.insert[key] = true;\n } else {\n throw new Error(`${MSG.CANT_DIRTY_MISSING_PROPERTY}${key}`);\n }\n }\n }\n }\n\n // Modify entries\n if (in_pendingChangeSet.modify) {\n var classKeys = _.keys(in_pendingChangeSet.modify);\n for (var iClass = 0; iClass < classKeys.length; iClass++) {\n var modifiedPendingEntries = in_pendingChangeSet.modify && in_pendingChangeSet.modify[classKeys[iClass]] || {};\n var modifiedDirtyEntries = in_dirtyChangeSet.modify && in_dirtyChangeSet.modify[classKeys[iClass]] || {};\n keys = Object.keys(modifiedPendingEntries).concat(Object.keys(modifiedDirtyEntries));\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n if (this._dynamicChildren[key] !== undefined) {\n this._dynamicChildren[key]._reapplyDirtyFlags(modifiedPendingEntries[key], modifiedDirtyEntries[key]);\n } else {\n throw new Error(MSG.MODIFY_NON_EXISTING_ENTRY + key);\n }\n }\n }\n }\n }\n\n /**\n * @inheritdoc\n */\n _setDirty(in_reportToView, in_callingChild) {\n // Mark the child as modified\n if (in_callingChild && !this._containsPrimitiveTypes) {\n var key = in_callingChild.getId();\n if (this._dynamicChildren[key]) {\n if (!this._pendingChanges.insert[key]) {\n this._pendingChanges.modify[key] = true;\n }\n if (!this._dirtyChanges.insert[key]) {\n this._dirtyChanges.modify[key] = true;\n }\n }\n }\n\n // Forward dirtiness propagation to base class\n BaseProperty.prototype._setDirty.call(this, in_reportToView, in_callingChild);\n }\n}\n/** Specifies, whether this is a collection of base types or of registered templates */\nIndexedCollectionBaseProperty.prototype._containsPrimitiveTypes = false;\n"]}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
/* eslint-disable new-cap*/
|
|
5
|
+
/* eslint-disable new-cap */
|
|
6
6
|
/**
|
|
7
7
|
* @fileoverview Definition of the Int*Property classes
|
|
8
8
|
*/
|
|
9
9
|
const _ = require('lodash');
|
|
10
|
+
const { ChangeSet } = require('@fluid-experimental/property-changeset');
|
|
11
|
+
const { ConsoleUtils, constants: { MSG }, Uint64, Int64, } = require('@fluid-experimental/property-common');
|
|
10
12
|
const { ValueProperty } = require('./valueProperty');
|
|
11
13
|
const { _castFunctors } = require('./primitiveTypeCasts');
|
|
12
|
-
const { ChangeSet } = require('@fluid-experimental/property-changeset');
|
|
13
|
-
const { ConsoleUtils, constants: { MSG }, Uint64, Int64 } = require('@fluid-experimental/property-common');
|
|
14
14
|
const BIT32 = 4294967296;
|
|
15
15
|
export class Int8Property extends ValueProperty {
|
|
16
16
|
/**
|
|
@@ -27,7 +27,6 @@ export class Int8Property extends ValueProperty {
|
|
|
27
27
|
// default for this property type is '0'
|
|
28
28
|
this._data = 0;
|
|
29
29
|
}
|
|
30
|
-
;
|
|
31
30
|
}
|
|
32
31
|
Int8Property.prototype._typeid = 'Int8';
|
|
33
32
|
Int8Property.prototype._castFunctor = _castFunctors.Int8;
|
|
@@ -48,7 +47,6 @@ export class Int16Property extends ValueProperty {
|
|
|
48
47
|
// default for this property type is '0'
|
|
49
48
|
this._data = 0;
|
|
50
49
|
}
|
|
51
|
-
;
|
|
52
50
|
}
|
|
53
51
|
Int16Property.prototype._typeid = 'Int16';
|
|
54
52
|
Int16Property.prototype._castFunctor = _castFunctors.Int16;
|
|
@@ -69,7 +67,6 @@ export class Int32Property extends ValueProperty {
|
|
|
69
67
|
// default for this property type is '0'
|
|
70
68
|
this._data = 0;
|
|
71
69
|
}
|
|
72
|
-
;
|
|
73
70
|
}
|
|
74
71
|
Int32Property.prototype._typeid = 'Int32';
|
|
75
72
|
Int32Property.prototype._castFunctor = _castFunctors.Int32;
|
|
@@ -93,7 +90,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
93
90
|
// default for this property type is '0, 0'
|
|
94
91
|
this._data = new this.DataConstructor();
|
|
95
92
|
}
|
|
96
|
-
;
|
|
97
93
|
/**
|
|
98
94
|
* Internal function to update the value of the Integer64Property
|
|
99
95
|
*
|
|
@@ -117,21 +113,18 @@ export class Integer64Property extends ValueProperty {
|
|
|
117
113
|
}
|
|
118
114
|
return changed;
|
|
119
115
|
}
|
|
120
|
-
;
|
|
121
116
|
/**
|
|
122
117
|
* @return {number} the higher 32 bit integer part
|
|
123
118
|
*/
|
|
124
119
|
getValueHigh() {
|
|
125
120
|
return this._data.getValueHigh();
|
|
126
121
|
}
|
|
127
|
-
;
|
|
128
122
|
/**
|
|
129
123
|
* @return {number} the lower 32 bit integer part
|
|
130
124
|
*/
|
|
131
125
|
getValueLow() {
|
|
132
126
|
return this._data.getValueLow();
|
|
133
127
|
}
|
|
134
|
-
;
|
|
135
128
|
/**
|
|
136
129
|
* @param {number} in_high set the higher 32 bit integer part
|
|
137
130
|
* @throws if in_high is not a number
|
|
@@ -147,7 +140,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
147
140
|
}
|
|
148
141
|
return changed;
|
|
149
142
|
}
|
|
150
|
-
;
|
|
151
143
|
/**
|
|
152
144
|
* @param {number} in_low set the lower 32 bit integer part
|
|
153
145
|
* @throws if in_low is not a number
|
|
@@ -163,7 +155,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
163
155
|
}
|
|
164
156
|
return changed;
|
|
165
157
|
}
|
|
166
|
-
;
|
|
167
158
|
/**
|
|
168
159
|
* @inheritdoc
|
|
169
160
|
*/
|
|
@@ -178,7 +169,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
178
169
|
return changed ? this.serialize() : undefined;
|
|
179
170
|
}
|
|
180
171
|
}
|
|
181
|
-
;
|
|
182
172
|
/**
|
|
183
173
|
* @inheritdoc
|
|
184
174
|
*/
|
|
@@ -192,7 +182,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
192
182
|
this._setValue(newVal, in_reportToView);
|
|
193
183
|
}
|
|
194
184
|
}
|
|
195
|
-
;
|
|
196
185
|
/**
|
|
197
186
|
* Serialize the property
|
|
198
187
|
*
|
|
@@ -222,7 +211,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
222
211
|
return [this._data.getValueLow(), this._data.getValueHigh()];
|
|
223
212
|
}
|
|
224
213
|
}
|
|
225
|
-
;
|
|
226
214
|
/**
|
|
227
215
|
* The toString() method returns a string representing the specified Integer64 object.
|
|
228
216
|
*
|
|
@@ -233,7 +221,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
233
221
|
toString(in_radix) {
|
|
234
222
|
return this._data.toString(in_radix);
|
|
235
223
|
}
|
|
236
|
-
;
|
|
237
224
|
/**
|
|
238
225
|
* The Integer64.fromString() method parses a string argument updates object's lower and higher 32 bit integer parts.
|
|
239
226
|
*
|
|
@@ -251,7 +238,6 @@ export class Integer64Property extends ValueProperty {
|
|
|
251
238
|
this.setValueHigh(int.getValueHigh());
|
|
252
239
|
this.setValueLow(int.getValueLow());
|
|
253
240
|
}
|
|
254
|
-
;
|
|
255
241
|
}
|
|
256
242
|
/**
|
|
257
243
|
* A primitive property class for big signed integer values.
|
|
@@ -268,7 +254,6 @@ export class Int64Property extends Integer64Property {
|
|
|
268
254
|
constructor(in_params) {
|
|
269
255
|
super(in_params, Int64);
|
|
270
256
|
}
|
|
271
|
-
;
|
|
272
257
|
}
|
|
273
258
|
Int64Property.prototype._typeid = 'Int64';
|
|
274
259
|
Int64Property.prototype._castFunctor = _castFunctors.Int64;
|
|
@@ -287,9 +272,7 @@ export class Uint64Property extends Integer64Property {
|
|
|
287
272
|
constructor(in_params) {
|
|
288
273
|
super(in_params, Uint64);
|
|
289
274
|
}
|
|
290
|
-
;
|
|
291
275
|
}
|
|
292
|
-
;
|
|
293
276
|
Uint64Property.prototype._typeid = 'Uint64';
|
|
294
277
|
Uint64Property.prototype._castFunctor = _castFunctors.Uint64;
|
|
295
278
|
//# sourceMappingURL=intProperties.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intProperties.js","sourceRoot":"","sources":["../../src/properties/intProperties.js"],"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-disable new-cap*/\n/**\n * @fileoverview Definition of the Int*Property classes\n */\n\nconst _ = require('lodash');\nconst { ValueProperty } = require('./valueProperty');\nconst { _castFunctors } = require('./primitiveTypeCasts');\nconst { ChangeSet } = require('@fluid-experimental/property-changeset');\nconst {\n ConsoleUtils,\n constants: { MSG },\n Uint64,\n Int64\n} = require('@fluid-experimental/property-common');\n\nconst BIT32 = 4294967296;\n\nexport class Int8Property extends ValueProperty {\n /**\n * A primitive property for an signed 8 bit integer value.\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Int8Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params);\n // default for this property type is '0'\n this._data = 0;\n };\n}\nInt8Property.prototype._typeid = 'Int8';\nInt8Property.prototype._castFunctor = _castFunctors.Int8;\n\n/**\n * A primitive property for an signed 16 bit integer value.\n */\nexport class Int16Property extends ValueProperty {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Int16Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params);\n // default for this property type is '0'\n this._data = 0;\n\n };\n}\nInt16Property.prototype._typeid = 'Int16';\nInt16Property.prototype._castFunctor = _castFunctors.Int16;\n\n/**\n * A primitive property for an signed 32 bit integer value.\n */\nexport class Int32Property extends ValueProperty {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Int32Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params);\n // default for this property type is '0'\n this._data = 0;\n\n };\n}\nInt32Property.prototype._typeid = 'Int32';\nInt32Property.prototype._castFunctor = _castFunctors.Int32;\n\n/**\n * A primitive property base class for big integer values.\n */\nexport class Integer64Property extends ValueProperty {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Integer64Property\n * @protected\n * @abstract\n * @category Value Properties\n */\n constructor(in_params, dataConstructor) {\n super(in_params);\n this.DataConstructor = dataConstructor\n // default for this property type is '0, 0'\n this._data = new this.DataConstructor();\n };\n\n\n /**\n * Internal function to update the value of the Integer64Property\n *\n * @param {Int64|String|Number} in_value the new value\n * @param {boolean} [in_reportToView = true] - 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 * @return {boolean} true if the value was actually changed\n * @throws if in_value is a string that contains characters other than numbers\n */\n _setValue(in_value, in_reportToView) {\n var oldLowValue = this._data.getValueLow();\n var oldHighValue = this._data.getValueHigh();\n\n in_value = this._castFunctor(in_value);\n\n var newHighValue = in_value.getValueHigh();\n var newLowValue = in_value.getValueLow();\n\n var changed = oldHighValue !== newHighValue || oldLowValue !== newLowValue;\n\n if (changed) {\n this._data = in_value.clone();\n this._setDirty(in_reportToView);\n }\n return changed;\n };\n\n /**\n * @return {number} the higher 32 bit integer part\n */\n getValueHigh() {\n return this._data.getValueHigh();\n };\n\n /**\n * @return {number} the lower 32 bit integer part\n */\n getValueLow() {\n return this._data.getValueLow();\n };\n\n /**\n * @param {number} in_high set the higher 32 bit integer part\n * @throws if in_high is not a number\n * @return {boolen} true if the value was actually changed\n */\n setValueHigh(in_high) {\n ConsoleUtils.assert(_.isNumber(in_high), MSG.IN_HIGH_MUST_BE_NUMBER + in_high);\n var changed = this._data.getValueHigh() !== in_high;\n\n if (changed) {\n var newData = new this.DataConstructor(this.getValueLow(), in_high);\n this._data = newData;\n this._setDirty();\n }\n return changed;\n };\n\n /**\n * @param {number} in_low set the lower 32 bit integer part\n * @throws if in_low is not a number\n * @return {boolen} true if the value was actually changed\n */\n setValueLow(in_low) {\n ConsoleUtils.assert(_.isNumber(in_low), MSG.IN_LOW_MUST_BE_NUMBER + in_low);\n var changed = this._data.getValueLow() !== in_low;\n\n if (changed) {\n var newData = new this.DataConstructor(in_low, this.getValueHigh());\n this._data = newData;\n this._setDirty();\n }\n return changed;\n };\n\n /**\n * @inheritdoc\n */\n _deserialize(in_serializedObj, in_reportToView,\n in_filteringOptions, in_createChangeSet) {\n if (ChangeSet.isEmptyChangeSet(in_serializedObj)) {\n return undefined;\n } else {\n ConsoleUtils.assert(_.isArray(in_serializedObj) && in_serializedObj.length === 2, MSG.INVALID_INT64_CHANGESET);\n var readValue = new this.DataConstructor(in_serializedObj[0], in_serializedObj[1]);\n var changed = this._setValue(readValue, in_reportToView);\n return changed ? this.serialize() : undefined;\n }\n };\n\n /**\n * @inheritdoc\n */\n _applyChangeset(in_changeSet, in_reportToView, in_filteringOptions) {\n if (!ChangeSet.isEmptyChangeSet(in_changeSet)) {\n if (!_.isArray(in_changeSet)) {\n in_changeSet = in_changeSet.value;\n }\n ConsoleUtils.assert(_.isArray(in_changeSet) && in_changeSet.length === 2, MSG.INVALID_INT64_CHANGESET);\n var newVal = new this.DataConstructor(in_changeSet[0], in_changeSet[1]);\n this._setValue(newVal, in_reportToView);\n }\n };\n\n /**\n * Serialize the property\n *\n * @param {boolean} in_dirtyOnly -\n * Only include dirty entries in the serialization\n * @param {boolean} in_includeRootTypeid -\n * Include the typeid of the root of the hierarchy - has no effect for value properties\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_dirtinessType] -\n * The type of dirtiness to use when reporting dirty changes. By default this is\n * PENDING_CHANGE * @return {*} The serialized representation of this property\n * @param {boolean} [in_includeReferencedRepositories=false] - 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 * @return {*} The serialized representation of this property\n * @private\n */\n _serialize(in_dirtyOnly, in_includeRootTypeid,\n in_dirtinessType, in_includeReferencedRepositories) {\n if (in_dirtyOnly) {\n if (this._isDirty(in_dirtinessType)) {\n return [this._data.getValueLow(), this._data.getValueHigh()];\n } else {\n return {};\n }\n } else {\n return [this._data.getValueLow(), this._data.getValueHigh()];\n }\n };\n\n\n\n /**\n * The toString() method returns a string representing the specified Integer64 object.\n *\n * @param {number} [in_radix = 10] An integer between 2 and 36 specifying\n * the base to use for representing numeric values.\n * @return {string} A string representing the specified Integer64 object.\n */\n toString(in_radix) {\n return this._data.toString(in_radix);\n };\n\n /**\n * The Integer64.fromString() method parses a string argument updates object's lower and higher 32 bit integer parts.\n *\n * @param {string} in_string The value to parse. Leading whitespace in the string argument is ignored.\n * @param {number} [in_radix = 10] An integer between 2 and 36 that represents the\n * radix (the base in mathematical numeral systems) of the above mentioned string.\n * @throws if in_string is not a string\n * @throws if in_radix is entered but is not a number between 2 and 36\n * @throws if the property is a Uint64 property and in_string is a negative number\n * @throws if in_string contains characters other than numbers\n */\n fromString(in_string, in_radix) {\n ConsoleUtils.assert(_.isString(in_string), MSG.IN_STRING_MUST_BE_STRING + in_string);\n var int = this._castFunctor(in_string, in_radix);\n\n this.setValueHigh(int.getValueHigh());\n this.setValueLow(int.getValueLow());\n };\n\n}\n\n/**\n * A primitive property class for big signed integer values.\n */\nexport class Int64Property extends Integer64Property {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.Integer64Property\n * @alias property-properties.Int64Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params, Int64);\n };\n}\nInt64Property.prototype._typeid = 'Int64';\nInt64Property.prototype._castFunctor = _castFunctors.Int64;\n\n/**\n * A primitive property class for big unsingned integer values.\n */\nexport class Uint64Property extends Integer64Property {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.Integer64Property\n * @alias property-properties.Uint64Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params, Uint64);\n };\n};\nUint64Property.prototype._typeid = 'Uint64';\nUint64Property.prototype._castFunctor = _castFunctors.Uint64;\n"]}
|
|
1
|
+
{"version":3,"file":"intProperties.js","sourceRoot":"","sources":["../../src/properties/intProperties.js"],"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-disable new-cap */\n/**\n * @fileoverview Definition of the Int*Property classes\n */\n\nconst _ = require('lodash');\nconst { ChangeSet } = require('@fluid-experimental/property-changeset');\nconst {\n ConsoleUtils,\n constants: { MSG },\n Uint64,\n Int64,\n} = require('@fluid-experimental/property-common');\nconst { ValueProperty } = require('./valueProperty');\nconst { _castFunctors } = require('./primitiveTypeCasts');\n\nconst BIT32 = 4294967296;\n\nexport class Int8Property extends ValueProperty {\n /**\n * A primitive property for an signed 8 bit integer value.\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Int8Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params);\n // default for this property type is '0'\n this._data = 0;\n }\n}\nInt8Property.prototype._typeid = 'Int8';\nInt8Property.prototype._castFunctor = _castFunctors.Int8;\n\n/**\n * A primitive property for an signed 16 bit integer value.\n */\nexport class Int16Property extends ValueProperty {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Int16Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params);\n // default for this property type is '0'\n this._data = 0;\n }\n}\nInt16Property.prototype._typeid = 'Int16';\nInt16Property.prototype._castFunctor = _castFunctors.Int16;\n\n/**\n * A primitive property for an signed 32 bit integer value.\n */\nexport class Int32Property extends ValueProperty {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Int32Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params);\n // default for this property type is '0'\n this._data = 0;\n }\n}\nInt32Property.prototype._typeid = 'Int32';\nInt32Property.prototype._castFunctor = _castFunctors.Int32;\n\n/**\n * A primitive property base class for big integer values.\n */\nexport class Integer64Property extends ValueProperty {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.ValueProperty\n * @alias property-properties.Integer64Property\n * @protected\n * @abstract\n * @category Value Properties\n */\n constructor(in_params, dataConstructor) {\n super(in_params);\n this.DataConstructor = dataConstructor;\n // default for this property type is '0, 0'\n this._data = new this.DataConstructor();\n }\n\n /**\n * Internal function to update the value of the Integer64Property\n *\n * @param {Int64|String|Number} in_value the new value\n * @param {boolean} [in_reportToView = true] - 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 * @return {boolean} true if the value was actually changed\n * @throws if in_value is a string that contains characters other than numbers\n */\n _setValue(in_value, in_reportToView) {\n var oldLowValue = this._data.getValueLow();\n var oldHighValue = this._data.getValueHigh();\n\n in_value = this._castFunctor(in_value);\n\n var newHighValue = in_value.getValueHigh();\n var newLowValue = in_value.getValueLow();\n\n var changed = oldHighValue !== newHighValue || oldLowValue !== newLowValue;\n\n if (changed) {\n this._data = in_value.clone();\n this._setDirty(in_reportToView);\n }\n return changed;\n }\n\n /**\n * @return {number} the higher 32 bit integer part\n */\n getValueHigh() {\n return this._data.getValueHigh();\n }\n\n /**\n * @return {number} the lower 32 bit integer part\n */\n getValueLow() {\n return this._data.getValueLow();\n }\n\n /**\n * @param {number} in_high set the higher 32 bit integer part\n * @throws if in_high is not a number\n * @return {boolen} true if the value was actually changed\n */\n setValueHigh(in_high) {\n ConsoleUtils.assert(_.isNumber(in_high), MSG.IN_HIGH_MUST_BE_NUMBER + in_high);\n var changed = this._data.getValueHigh() !== in_high;\n\n if (changed) {\n var newData = new this.DataConstructor(this.getValueLow(), in_high);\n this._data = newData;\n this._setDirty();\n }\n return changed;\n }\n\n /**\n * @param {number} in_low set the lower 32 bit integer part\n * @throws if in_low is not a number\n * @return {boolen} true if the value was actually changed\n */\n setValueLow(in_low) {\n ConsoleUtils.assert(_.isNumber(in_low), MSG.IN_LOW_MUST_BE_NUMBER + in_low);\n var changed = this._data.getValueLow() !== in_low;\n\n if (changed) {\n var newData = new this.DataConstructor(in_low, this.getValueHigh());\n this._data = newData;\n this._setDirty();\n }\n return changed;\n }\n\n /**\n * @inheritdoc\n */\n _deserialize(in_serializedObj, in_reportToView,\n in_filteringOptions, in_createChangeSet) {\n if (ChangeSet.isEmptyChangeSet(in_serializedObj)) {\n return undefined;\n } else {\n ConsoleUtils.assert(_.isArray(in_serializedObj) && in_serializedObj.length === 2, MSG.INVALID_INT64_CHANGESET);\n var readValue = new this.DataConstructor(in_serializedObj[0], in_serializedObj[1]);\n var changed = this._setValue(readValue, in_reportToView);\n return changed ? this.serialize() : undefined;\n }\n }\n\n /**\n * @inheritdoc\n */\n _applyChangeset(in_changeSet, in_reportToView, in_filteringOptions) {\n if (!ChangeSet.isEmptyChangeSet(in_changeSet)) {\n if (!_.isArray(in_changeSet)) {\n in_changeSet = in_changeSet.value;\n }\n ConsoleUtils.assert(_.isArray(in_changeSet) && in_changeSet.length === 2, MSG.INVALID_INT64_CHANGESET);\n var newVal = new this.DataConstructor(in_changeSet[0], in_changeSet[1]);\n this._setValue(newVal, in_reportToView);\n }\n }\n\n /**\n * Serialize the property\n *\n * @param {boolean} in_dirtyOnly -\n * Only include dirty entries in the serialization\n * @param {boolean} in_includeRootTypeid -\n * Include the typeid of the root of the hierarchy - has no effect for value properties\n * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_dirtinessType] -\n * The type of dirtiness to use when reporting dirty changes. By default this is\n * PENDING_CHANGE * @return {*} The serialized representation of this property\n * @param {boolean} [in_includeReferencedRepositories=false] - 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 * @return {*} The serialized representation of this property\n * @private\n */\n _serialize(in_dirtyOnly, in_includeRootTypeid,\n in_dirtinessType, in_includeReferencedRepositories) {\n if (in_dirtyOnly) {\n if (this._isDirty(in_dirtinessType)) {\n return [this._data.getValueLow(), this._data.getValueHigh()];\n } else {\n return {};\n }\n } else {\n return [this._data.getValueLow(), this._data.getValueHigh()];\n }\n }\n\n /**\n * The toString() method returns a string representing the specified Integer64 object.\n *\n * @param {number} [in_radix = 10] An integer between 2 and 36 specifying\n * the base to use for representing numeric values.\n * @return {string} A string representing the specified Integer64 object.\n */\n toString(in_radix) {\n return this._data.toString(in_radix);\n }\n\n /**\n * The Integer64.fromString() method parses a string argument updates object's lower and higher 32 bit integer parts.\n *\n * @param {string} in_string The value to parse. Leading whitespace in the string argument is ignored.\n * @param {number} [in_radix = 10] An integer between 2 and 36 that represents the\n * radix (the base in mathematical numeral systems) of the above mentioned string.\n * @throws if in_string is not a string\n * @throws if in_radix is entered but is not a number between 2 and 36\n * @throws if the property is a Uint64 property and in_string is a negative number\n * @throws if in_string contains characters other than numbers\n */\n fromString(in_string, in_radix) {\n ConsoleUtils.assert(_.isString(in_string), MSG.IN_STRING_MUST_BE_STRING + in_string);\n var int = this._castFunctor(in_string, in_radix);\n\n this.setValueHigh(int.getValueHigh());\n this.setValueLow(int.getValueLow());\n }\n}\n\n/**\n * A primitive property class for big signed integer values.\n */\nexport class Int64Property extends Integer64Property {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.Integer64Property\n * @alias property-properties.Int64Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params, Int64);\n }\n}\nInt64Property.prototype._typeid = 'Int64';\nInt64Property.prototype._castFunctor = _castFunctors.Int64;\n\n/**\n * A primitive property class for big unsingned integer values.\n */\nexport class Uint64Property extends Integer64Property {\n /**\n * @param {Object=} in_params - the parameters\n * @constructor\n * @protected\n * @extends property-properties.Integer64Property\n * @alias property-properties.Uint64Property\n * @category Value Properties\n */\n constructor(in_params) {\n super(in_params, Uint64);\n }\n}\nUint64Property.prototype._typeid = 'Uint64';\nUint64Property.prototype._castFunctor = _castFunctors.Uint64;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazyLoadedProperties.js","sourceRoot":"","sources":["../../src/properties/lazyLoadedProperties.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,eAAe,EAAE,SAAS;IAC1B,gCAAgC,EAAE,SAAS;IAC3C,aAAa,EAAE,SAAS;IACxB,iBAAiB,EAAE,SAAS;IAC5B,iBAAiB,EAAE,SAAS;IAC5B,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,YAAY,EAAE,SAAS;IACvB,6BAA6B,EAAE,SAAS;CAC3C,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * @fileoverview This namespace is used to resolve cycles between the PropertyFactory and the property objects.\n * It will return an empty namespace, which then once the PropertyFactory has been created will\n * be initialized with the PropertyFactory and the property classes, so that the PropertyObjects\n * themselves can access the PropertyFactory at runtime.\n */\n\nexport const LazyLoadedProperties = {\n PropertyFactory: undefined,\n AbstractStaticCollectionProperty: undefined,\n ArrayProperty: undefined,\n EnumArrayProperty: undefined,\n ReferenceProperty: undefined,\n StringProperty: undefined,\n ValueProperty: undefined,\n ValueMapProperty: undefined,\n ReferenceMapProperty: undefined,\n NodeProperty: undefined,\n IndexedCollectionBaseProperty: undefined,\n};\n
|
|
1
|
+
{"version":3,"file":"lazyLoadedProperties.js","sourceRoot":"","sources":["../../src/properties/lazyLoadedProperties.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,eAAe,EAAE,SAAS;IAC1B,gCAAgC,EAAE,SAAS;IAC3C,aAAa,EAAE,SAAS;IACxB,iBAAiB,EAAE,SAAS;IAC5B,iBAAiB,EAAE,SAAS;IAC5B,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,SAAS;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,YAAY,EAAE,SAAS;IACvB,6BAA6B,EAAE,SAAS;CAC3C,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * @fileoverview This namespace is used to resolve cycles between the PropertyFactory and the property objects.\n * It will return an empty namespace, which then once the PropertyFactory has been created will\n * be initialized with the PropertyFactory and the property classes, so that the PropertyObjects\n * themselves can access the PropertyFactory at runtime.\n */\n\nexport const LazyLoadedProperties = {\n PropertyFactory: undefined,\n AbstractStaticCollectionProperty: undefined,\n ArrayProperty: undefined,\n EnumArrayProperty: undefined,\n ReferenceProperty: undefined,\n StringProperty: undefined,\n ValueProperty: undefined,\n ValueMapProperty: undefined,\n ReferenceMapProperty: undefined,\n NodeProperty: undefined,\n IndexedCollectionBaseProperty: undefined,\n};\n"]}
|