@fluidframework/tree 2.3.1 → 2.4.0-297027
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/api-report/tree.alpha.api.md +77 -38
- package/api-report/tree.beta.api.md +50 -30
- package/api-report/tree.legacy.alpha.api.md +50 -30
- package/api-report/tree.legacy.public.api.md +50 -30
- package/api-report/tree.public.api.md +50 -30
- package/dist/alpha.d.ts +7 -0
- package/dist/beta.d.ts +4 -0
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/rebase/index.d.ts +1 -1
- package/dist/core/rebase/index.d.ts.map +1 -1
- package/dist/core/rebase/index.js +2 -1
- package/dist/core/rebase/index.js.map +1 -1
- package/dist/core/rebase/types.d.ts +1 -0
- package/dist/core/rebase/types.d.ts.map +1 -1
- package/dist/core/rebase/types.js +8 -1
- package/dist/core/rebase/types.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +7 -0
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +9 -0
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/tree/anchorSet.d.ts +1 -2
- package/dist/core/tree/anchorSet.d.ts.map +1 -1
- package/dist/core/tree/anchorSet.js +2 -2
- package/dist/core/tree/anchorSet.js.map +1 -1
- package/dist/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/dist/core/tree/detachedFieldIndex.js +13 -2
- package/dist/core/tree/detachedFieldIndex.js.map +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/dist/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/dist/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/dist/feature-libraries/editableTreeBinder.js +1 -539
- package/dist/feature-libraries/editableTreeBinder.js.map +1 -1
- package/dist/feature-libraries/flex-tree/context.d.ts +7 -14
- package/dist/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/context.js +3 -3
- package/dist/feature-libraries/flex-tree/context.js.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- package/dist/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts +2 -3
- package/dist/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/dist/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/dist/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyField.js +18 -20
- package/dist/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/dist/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/dist/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/dist/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js +1 -1
- package/dist/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +4 -7
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +5 -31
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +7 -0
- package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js +61 -17
- package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/compose.js +3 -0
- package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
- package/dist/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/dist/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/dist/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/dist/feature-libraries/sequence-field/utils.js +1 -4
- package/dist/feature-libraries/sequence-field/utils.js.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/dist/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/flexList.js +1 -13
- package/dist/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/dist/feature-libraries/typed-schema/index.d.ts +2 -4
- package/dist/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/index.js +1 -19
- package/dist/feature-libraries/typed-schema/index.js.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/dist/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js +0 -266
- package/dist/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +1 -1
- package/dist/internalTypes.d.ts.map +1 -1
- package/dist/internalTypes.js.map +1 -1
- package/dist/legacy.d.ts +4 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +4 -0
- package/dist/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/dist/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js +1 -1
- package/dist/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +3 -3
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +2 -3
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +1 -40
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +2 -11
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +9 -7
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +19 -8
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +19 -2
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +10 -2
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/treeCheckout.d.ts +71 -41
- package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
- package/dist/shared-tree/treeCheckout.js +116 -84
- package/dist/shared-tree/treeCheckout.js.map +1 -1
- package/dist/shared-tree-core/branch.d.ts +8 -11
- package/dist/shared-tree-core/branch.d.ts.map +1 -1
- package/dist/shared-tree-core/branch.js +12 -15
- package/dist/shared-tree-core/branch.js.map +1 -1
- package/dist/simple-tree/api/create.d.ts +1 -1
- package/dist/simple-tree/api/create.d.ts.map +1 -1
- package/dist/simple-tree/api/create.js +11 -13
- package/dist/simple-tree/api/create.js.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/dist/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getJsonSchema.js +1 -1
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +2 -1
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +3 -1
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/jsonSchema.d.ts +13 -14
- package/dist/simple-tree/api/jsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/jsonSchema.js.map +1 -1
- package/dist/simple-tree/api/schemaFactory.d.ts +14 -8
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +21 -2
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/dist/simple-tree/api/simpleSchema.d.ts +18 -10
- package/dist/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchema.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js +30 -17
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +16 -6
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +4 -4
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js +8 -6
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/dist/simple-tree/api/verboseTree.js +6 -10
- package/dist/simple-tree/api/verboseTree.js.map +1 -1
- package/{lib/feature-libraries/typed-schema → dist/simple-tree/api}/view.d.ts +4 -11
- package/dist/simple-tree/api/view.d.ts.map +1 -0
- package/dist/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/dist/simple-tree/api/view.js.map +1 -0
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js +11 -1
- package/dist/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +147 -14
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +32 -20
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/core/context.d.ts +55 -0
- package/dist/simple-tree/core/context.d.ts.map +1 -0
- package/dist/simple-tree/core/context.js +60 -0
- package/dist/simple-tree/core/context.js.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/dist/simple-tree/core/getOrCreateNode.js +36 -0
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/dist/simple-tree/core/index.d.ts +7 -3
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +16 -7
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/schemaCaching.d.ts +5 -13
- package/dist/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/dist/simple-tree/core/schemaCaching.js +16 -45
- package/dist/simple-tree/core/schemaCaching.js.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js +94 -58
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/dist/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/dist/simple-tree/core/types.d.ts +0 -5
- package/dist/simple-tree/core/types.d.ts.map +1 -1
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts +139 -0
- package/dist/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/dist/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +112 -132
- package/dist/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/dist/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/dist/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/dist/simple-tree/core/walkSchema.js +34 -0
- package/dist/simple-tree/core/walkSchema.js.map +1 -0
- package/dist/simple-tree/createContext.d.ts +11 -0
- package/dist/simple-tree/createContext.d.ts.map +1 -0
- package/dist/simple-tree/createContext.js +25 -0
- package/dist/simple-tree/createContext.js.map +1 -0
- package/dist/simple-tree/index.d.ts +4 -5
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +7 -7
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/leafNodeSchema.d.ts +1 -0
- package/dist/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/dist/simple-tree/leafNodeSchema.js +1 -2
- package/dist/simple-tree/leafNodeSchema.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +4 -4
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +9 -5
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +8 -8
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +33 -14
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/objectNodeTypes.d.ts +7 -3
- package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/proxies.d.ts +1 -2
- package/dist/simple-tree/proxies.d.ts.map +1 -1
- package/dist/simple-tree/proxies.js +6 -22
- package/dist/simple-tree/proxies.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +44 -4
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +10 -0
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toFlexSchema.d.ts +6 -36
- package/dist/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/dist/simple-tree/toFlexSchema.js +58 -142
- package/dist/simple-tree/toFlexSchema.js.map +1 -1
- package/dist/simple-tree/toMapTree.d.ts.map +1 -1
- package/dist/simple-tree/toMapTree.js +2 -2
- package/dist/simple-tree/toMapTree.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.d.ts +13 -5
- package/dist/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +19 -10
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/simple-tree/typesUnsafe.d.ts +4 -4
- package/dist/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/walkFieldSchema.d.ts +11 -0
- package/dist/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/dist/simple-tree/walkFieldSchema.js +17 -0
- package/dist/simple-tree/walkFieldSchema.js.map +1 -0
- package/dist/util/index.d.ts +1 -1
- package/dist/util/index.d.ts.map +1 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/typeUtils.d.ts +14 -45
- package/dist/util/typeUtils.d.ts.map +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/lib/alpha.d.ts +7 -0
- package/lib/beta.d.ts +4 -0
- package/lib/core/index.d.ts +1 -1
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/rebase/index.d.ts +1 -1
- package/lib/core/rebase/index.d.ts.map +1 -1
- package/lib/core/rebase/index.js +1 -1
- package/lib/core/rebase/index.js.map +1 -1
- package/lib/core/rebase/types.d.ts +1 -0
- package/lib/core/rebase/types.d.ts.map +1 -1
- package/lib/core/rebase/types.js +6 -0
- package/lib/core/rebase/types.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +7 -0
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +9 -0
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/tree/anchorSet.d.ts +1 -2
- package/lib/core/tree/anchorSet.d.ts.map +1 -1
- package/lib/core/tree/anchorSet.js +2 -2
- package/lib/core/tree/anchorSet.js.map +1 -1
- package/lib/core/tree/detachedFieldIndex.d.ts.map +1 -1
- package/lib/core/tree/detachedFieldIndex.js +13 -2
- package/lib/core/tree/detachedFieldIndex.js.map +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.d.ts +1 -1
- package/lib/core/tree/detachedFieldIndexTypes.js.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.d.ts +3 -230
- package/lib/feature-libraries/editableTreeBinder.d.ts.map +1 -1
- package/lib/feature-libraries/editableTreeBinder.js +1 -532
- package/lib/feature-libraries/editableTreeBinder.js.map +1 -1
- package/lib/feature-libraries/flex-tree/context.d.ts +7 -14
- package/lib/feature-libraries/flex-tree/context.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/context.js +3 -3
- package/lib/feature-libraries/flex-tree/context.js.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts +2 -16
- package/lib/feature-libraries/flex-tree/flexTreeTypes.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/flexTreeTypes.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts +2 -3
- package/lib/feature-libraries/flex-tree/lazyEntity.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyEntity.js +1 -2
- package/lib/feature-libraries/flex-tree/lazyEntity.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.d.ts +10 -15
- package/lib/feature-libraries/flex-tree/lazyField.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyField.js +18 -20
- package/lib/feature-libraries/flex-tree/lazyField.js.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts +4 -5
- package/lib/feature-libraries/flex-tree/lazyNode.d.ts.map +1 -1
- package/lib/feature-libraries/flex-tree/lazyNode.js +13 -23
- package/lib/feature-libraries/flex-tree/lazyNode.js.map +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js +1 -1
- package/lib/feature-libraries/flex-tree/utilities.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +4 -7
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +4 -6
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +7 -0
- package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js +62 -18
- package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/compose.js +3 -0
- package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
- package/lib/feature-libraries/sequence-field/formatV1.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV2.d.ts +18 -18
- package/lib/feature-libraries/sequence-field/formatV3.d.ts +27 -27
- package/lib/feature-libraries/sequence-field/utils.d.ts.map +1 -1
- package/lib/feature-libraries/sequence-field/utils.js +2 -5
- package/lib/feature-libraries/sequence-field/utils.js.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.d.ts +1 -46
- package/lib/feature-libraries/typed-schema/flexList.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/flexList.js +0 -11
- package/lib/feature-libraries/typed-schema/flexList.js.map +1 -1
- package/lib/feature-libraries/typed-schema/index.d.ts +2 -4
- package/lib/feature-libraries/typed-schema/index.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/index.js +0 -3
- package/lib/feature-libraries/typed-schema/index.js.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts +0 -212
- package/lib/feature-libraries/typed-schema/typedTreeSchema.d.ts.map +1 -1
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js +1 -253
- package/lib/feature-libraries/typed-schema/typedTreeSchema.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internalTypes.d.ts +1 -1
- package/lib/internalTypes.d.ts.map +1 -1
- package/lib/internalTypes.js.map +1 -1
- package/lib/legacy.d.ts +4 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +4 -0
- package/lib/shared-tree/checkoutFlexTreeView.d.ts +3 -3
- package/lib/shared-tree/checkoutFlexTreeView.d.ts.map +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js +1 -1
- package/lib/shared-tree/checkoutFlexTreeView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +3 -3
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +1 -2
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +1 -40
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +1 -9
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +9 -7
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +22 -11
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +19 -2
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +10 -3
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/treeCheckout.d.ts +71 -41
- package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
- package/lib/shared-tree/treeCheckout.js +118 -86
- package/lib/shared-tree/treeCheckout.js.map +1 -1
- package/lib/shared-tree-core/branch.d.ts +8 -11
- package/lib/shared-tree-core/branch.d.ts.map +1 -1
- package/lib/shared-tree-core/branch.js +12 -15
- package/lib/shared-tree-core/branch.js.map +1 -1
- package/lib/simple-tree/api/create.d.ts +1 -1
- package/lib/simple-tree/api/create.d.ts.map +1 -1
- package/lib/simple-tree/api/create.js +14 -16
- package/lib/simple-tree/api/create.js.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.d.ts +3 -3
- package/lib/simple-tree/api/getJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getJsonSchema.js +1 -1
- package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/getSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/getSimpleSchema.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +2 -1
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +1 -0
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/jsonSchema.d.ts +13 -14
- package/lib/simple-tree/api/jsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/jsonSchema.js.map +1 -1
- package/lib/simple-tree/api/schemaFactory.d.ts +14 -8
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +21 -2
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +3 -3
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.js.map +1 -1
- package/lib/simple-tree/api/simpleSchema.d.ts +18 -10
- package/lib/simple-tree/api/simpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchema.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js +31 -18
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +16 -6
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +4 -4
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js +10 -8
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/verboseTree.d.ts.map +1 -1
- package/lib/simple-tree/api/verboseTree.js +6 -10
- package/lib/simple-tree/api/verboseTree.js.map +1 -1
- package/{dist/feature-libraries/typed-schema → lib/simple-tree/api}/view.d.ts +4 -11
- package/lib/simple-tree/api/view.d.ts.map +1 -0
- package/lib/{feature-libraries/typed-schema → simple-tree/api}/view.js +9 -9
- package/lib/simple-tree/api/view.js.map +1 -0
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts +2 -2
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js +11 -1
- package/lib/simple-tree/api/viewSchemaToSimpleSchema.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +147 -14
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +37 -25
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/core/context.d.ts +55 -0
- package/lib/simple-tree/core/context.d.ts.map +1 -0
- package/lib/simple-tree/core/context.js +55 -0
- package/lib/simple-tree/core/context.js.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts +15 -0
- package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -0
- package/lib/simple-tree/core/getOrCreateNode.js +32 -0
- package/lib/simple-tree/core/getOrCreateNode.js.map +1 -0
- package/lib/simple-tree/core/index.d.ts +7 -3
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +6 -2
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/schemaCaching.d.ts +5 -13
- package/lib/simple-tree/core/schemaCaching.d.ts.map +1 -1
- package/lib/simple-tree/core/schemaCaching.js +13 -39
- package/lib/simple-tree/core/schemaCaching.js.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts +29 -7
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js +89 -54
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +24 -0
- package/lib/simple-tree/core/treeNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.js.map +1 -1
- package/lib/simple-tree/core/types.d.ts +0 -5
- package/lib/simple-tree/core/types.d.ts.map +1 -1
- package/lib/simple-tree/core/types.js.map +1 -1
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts +139 -0
- package/lib/simple-tree/core/unhydratedFlexTree.d.ts.map +1 -0
- package/lib/{feature-libraries/flex-map-tree/mapTreeNode.js → simple-tree/core/unhydratedFlexTree.js} +110 -128
- package/lib/simple-tree/core/unhydratedFlexTree.js.map +1 -0
- package/lib/simple-tree/{walkSchema.d.ts → core/walkSchema.d.ts} +8 -4
- package/lib/simple-tree/core/walkSchema.d.ts.map +1 -0
- package/lib/simple-tree/core/walkSchema.js +29 -0
- package/lib/simple-tree/core/walkSchema.js.map +1 -0
- package/lib/simple-tree/createContext.d.ts +11 -0
- package/lib/simple-tree/createContext.d.ts.map +1 -0
- package/lib/simple-tree/createContext.js +21 -0
- package/lib/simple-tree/createContext.js.map +1 -0
- package/lib/simple-tree/index.d.ts +4 -5
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +3 -4
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/leafNodeSchema.d.ts +1 -0
- package/lib/simple-tree/leafNodeSchema.d.ts.map +1 -1
- package/lib/simple-tree/leafNodeSchema.js +3 -4
- package/lib/simple-tree/leafNodeSchema.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +4 -4
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +12 -8
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +8 -8
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +36 -17
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/objectNodeTypes.d.ts +7 -3
- package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/proxies.d.ts +1 -2
- package/lib/simple-tree/proxies.d.ts.map +1 -1
- package/lib/simple-tree/proxies.js +7 -22
- package/lib/simple-tree/proxies.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +44 -4
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +10 -0
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toFlexSchema.d.ts +6 -36
- package/lib/simple-tree/toFlexSchema.d.ts.map +1 -1
- package/lib/simple-tree/toFlexSchema.js +61 -142
- package/lib/simple-tree/toFlexSchema.js.map +1 -1
- package/lib/simple-tree/toMapTree.d.ts.map +1 -1
- package/lib/simple-tree/toMapTree.js +4 -4
- package/lib/simple-tree/toMapTree.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.d.ts +13 -5
- package/lib/simple-tree/treeNodeValid.d.ts.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +21 -12
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/simple-tree/typesUnsafe.d.ts +4 -4
- package/lib/simple-tree/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/walkFieldSchema.d.ts +11 -0
- package/lib/simple-tree/walkFieldSchema.d.ts.map +1 -0
- package/lib/simple-tree/walkFieldSchema.js +13 -0
- package/lib/simple-tree/walkFieldSchema.js.map +1 -0
- package/lib/util/index.d.ts +1 -1
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js.map +1 -1
- package/lib/util/typeUtils.d.ts +14 -45
- package/lib/util/typeUtils.d.ts.map +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +41 -22
- package/src/core/index.ts +1 -0
- package/src/core/rebase/index.ts +1 -0
- package/src/core/rebase/types.ts +11 -0
- package/src/core/schema-stored/schema.ts +18 -0
- package/src/core/tree/anchorSet.ts +3 -4
- package/src/core/tree/detachedFieldIndex.ts +14 -3
- package/src/core/tree/detachedFieldIndexTypes.ts +1 -1
- package/src/feature-libraries/editableTreeBinder.ts +2 -915
- package/src/feature-libraries/flex-tree/context.ts +7 -20
- package/src/feature-libraries/flex-tree/flexTreeTypes.ts +2 -18
- package/src/feature-libraries/flex-tree/lazyEntity.ts +1 -4
- package/src/feature-libraries/flex-tree/lazyField.ts +22 -78
- package/src/feature-libraries/flex-tree/lazyNode.ts +24 -39
- package/src/feature-libraries/flex-tree/utilities.ts +1 -1
- package/src/feature-libraries/index.ts +3 -71
- package/src/feature-libraries/modular-schema/modularChangeFamily.ts +97 -10
- package/src/feature-libraries/sequence-field/compose.ts +3 -0
- package/src/feature-libraries/sequence-field/utils.ts +2 -4
- package/src/feature-libraries/typed-schema/flexList.ts +3 -84
- package/src/feature-libraries/typed-schema/index.ts +1 -33
- package/src/feature-libraries/typed-schema/typedTreeSchema.ts +0 -458
- package/src/index.ts +7 -0
- package/src/internalTypes.ts +0 -1
- package/src/packageVersion.ts +1 -1
- package/src/shared-tree/checkoutFlexTreeView.ts +3 -3
- package/src/shared-tree/index.ts +4 -8
- package/src/shared-tree/schematizeTree.ts +2 -56
- package/src/shared-tree/schematizingTreeView.ts +38 -15
- package/src/shared-tree/sharedTree.ts +36 -8
- package/src/shared-tree/treeCheckout.ts +225 -128
- package/src/shared-tree-core/branch.ts +15 -26
- package/src/simple-tree/api/create.ts +18 -20
- package/src/simple-tree/api/getJsonSchema.ts +3 -3
- package/src/simple-tree/api/getSimpleSchema.ts +2 -2
- package/src/simple-tree/api/index.ts +2 -0
- package/src/simple-tree/api/jsonSchema.ts +19 -17
- package/src/simple-tree/api/schemaFactory.ts +53 -18
- package/src/simple-tree/api/schemaFactoryRecursive.ts +3 -6
- package/src/simple-tree/api/simpleSchema.ts +20 -10
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +40 -19
- package/src/simple-tree/api/tree.ts +20 -9
- package/src/simple-tree/api/treeNodeApi.ts +12 -10
- package/src/simple-tree/api/verboseTree.ts +6 -12
- package/src/{feature-libraries/typed-schema → simple-tree/api}/view.ts +9 -22
- package/src/simple-tree/api/viewSchemaToSimpleSchema.ts +18 -4
- package/src/simple-tree/arrayNode.ts +202 -53
- package/src/simple-tree/core/context.ts +78 -0
- package/src/simple-tree/core/getOrCreateNode.ts +38 -0
- package/src/simple-tree/core/index.ts +11 -7
- package/src/simple-tree/core/schemaCaching.ts +13 -50
- package/src/simple-tree/core/treeNodeKernel.ts +117 -78
- package/src/simple-tree/core/treeNodeSchema.ts +35 -1
- package/src/simple-tree/core/types.ts +0 -5
- package/src/{feature-libraries/flex-map-tree/mapTreeNode.ts → simple-tree/core/unhydratedFlexTree.ts} +167 -210
- package/src/simple-tree/{walkSchema.ts → core/walkSchema.ts} +12 -34
- package/src/simple-tree/createContext.ts +24 -0
- package/src/simple-tree/index.ts +6 -2
- package/src/simple-tree/leafNodeSchema.ts +3 -9
- package/src/simple-tree/mapNode.ts +20 -17
- package/src/simple-tree/objectNode.ts +63 -38
- package/src/simple-tree/objectNodeTypes.ts +8 -5
- package/src/simple-tree/proxies.ts +8 -26
- package/src/simple-tree/schemaTypes.ts +55 -5
- package/src/simple-tree/toFlexSchema.ts +71 -204
- package/src/simple-tree/toMapTree.ts +5 -5
- package/src/simple-tree/treeNodeValid.ts +28 -22
- package/src/simple-tree/typesUnsafe.ts +4 -4
- package/src/simple-tree/walkFieldSchema.ts +19 -0
- package/src/util/index.ts +1 -5
- package/src/util/typeUtils.ts +14 -56
- package/dist/feature-libraries/fieldGenerator.d.ts +0 -43
- package/dist/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/dist/feature-libraries/fieldGenerator.js +0 -13
- package/dist/feature-libraries/fieldGenerator.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/dist/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/index.js +0 -14
- package/dist/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/dist/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/dist/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/dist/feature-libraries/storedToViewSchema.js +0 -67
- package/dist/feature-libraries/storedToViewSchema.js.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/dist/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/schemaCollection.js +0 -160
- package/dist/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/dist/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/typeUtils.js +0 -14
- package/dist/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/dist/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/dist/feature-libraries/typed-schema/view.js.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/dist/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/dist/simple-tree/getSimpleFieldSchema.js +0 -29
- package/dist/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/dist/simple-tree/walkSchema.d.ts.map +0 -1
- package/dist/simple-tree/walkSchema.js +0 -49
- package/dist/simple-tree/walkSchema.js.map +0 -1
- package/lib/feature-libraries/fieldGenerator.d.ts +0 -43
- package/lib/feature-libraries/fieldGenerator.d.ts.map +0 -1
- package/lib/feature-libraries/fieldGenerator.js +0 -12
- package/lib/feature-libraries/fieldGenerator.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.d.ts +0 -6
- package/lib/feature-libraries/flex-map-tree/index.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/index.js +0 -6
- package/lib/feature-libraries/flex-map-tree/index.js.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts +0 -157
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.d.ts.map +0 -1
- package/lib/feature-libraries/flex-map-tree/mapTreeNode.js.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.d.ts +0 -17
- package/lib/feature-libraries/storedToViewSchema.d.ts.map +0 -1
- package/lib/feature-libraries/storedToViewSchema.js +0 -62
- package/lib/feature-libraries/storedToViewSchema.js.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts +0 -58
- package/lib/feature-libraries/typed-schema/schemaCollection.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/schemaCollection.js +0 -153
- package/lib/feature-libraries/typed-schema/schemaCollection.js.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts +0 -15
- package/lib/feature-libraries/typed-schema/typeUtils.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/typeUtils.js +0 -10
- package/lib/feature-libraries/typed-schema/typeUtils.js.map +0 -1
- package/lib/feature-libraries/typed-schema/view.d.ts.map +0 -1
- package/lib/feature-libraries/typed-schema/view.js.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.d.ts +0 -14
- package/lib/simple-tree/getSimpleFieldSchema.d.ts.map +0 -1
- package/lib/simple-tree/getSimpleFieldSchema.js +0 -25
- package/lib/simple-tree/getSimpleFieldSchema.js.map +0 -1
- package/lib/simple-tree/walkSchema.d.ts.map +0 -1
- package/lib/simple-tree/walkSchema.js +0 -43
- package/lib/simple-tree/walkSchema.js.map +0 -1
- package/src/feature-libraries/fieldGenerator.ts +0 -47
- package/src/feature-libraries/flex-map-tree/index.ts +0 -14
- package/src/feature-libraries/storedToViewSchema.ts +0 -100
- package/src/feature-libraries/typed-schema/schemaCollection.ts +0 -254
- package/src/feature-libraries/typed-schema/typeUtils.ts +0 -29
- package/src/simple-tree/getSimpleFieldSchema.ts +0 -36
|
@@ -2,23 +2,15 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import type { FlexTreeNodeSchema, TreeNodeSchemaBase } from "../../feature-libraries/index.js";
|
|
6
5
|
import type { TreeNodeSchema } from "./treeNodeSchema.js";
|
|
7
6
|
import type { InnerNode } from "./treeNodeKernel.js";
|
|
8
|
-
|
|
9
|
-
export declare function setFlexSchemaFromClassSchema(simple: TreeNodeSchema, flex: TreeNodeSchemaBase): void;
|
|
7
|
+
import { type Context } from "./context.js";
|
|
10
8
|
/**
|
|
11
|
-
* Gets the {@link TreeNodeSchema}
|
|
12
|
-
* Returns `undefined` if no cached value is found.
|
|
13
|
-
*/
|
|
14
|
-
export declare function tryGetSimpleNodeSchema(flexSchema: FlexTreeNodeSchema): TreeNodeSchema | undefined;
|
|
15
|
-
/**
|
|
16
|
-
* Gets the {@link TreeNodeSchema} cached on the provided {@link FlexTreeNodeSchema | flexSchema}.
|
|
17
|
-
* Fails if no cached value is found.
|
|
9
|
+
* Gets the {@link TreeNodeSchema} for the {@link InnerNode}.
|
|
18
10
|
*/
|
|
19
|
-
export declare function
|
|
11
|
+
export declare function getSimpleNodeSchemaFromInnerNode(innerNode: InnerNode): TreeNodeSchema;
|
|
20
12
|
/**
|
|
21
|
-
* Gets the {@link
|
|
13
|
+
* Gets the {@link Context} for the {@link InnerNode}.
|
|
22
14
|
*/
|
|
23
|
-
export declare function
|
|
15
|
+
export declare function getSimpleContextFromInnerNode(innerNode: InnerNode): Context;
|
|
24
16
|
//# sourceMappingURL=schemaCaching.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaCaching.d.ts","sourceRoot":"","sources":["../../../src/simple-tree/core/schemaCaching.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"schemaCaching.d.ts","sourceRoot":"","sources":["../../../src/simple-tree/core/schemaCaching.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/D;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,SAAS,GAAG,cAAc,CAGrF;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAS3E"}
|
|
@@ -4,58 +4,29 @@
|
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
7
|
+
exports.getSimpleContextFromInnerNode = exports.getSimpleNodeSchemaFromInnerNode = void 0;
|
|
8
8
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
9
|
const index_js_1 = require("../../util/index.js");
|
|
10
|
+
const unhydratedFlexTree_js_1 = require("./unhydratedFlexTree.js");
|
|
11
|
+
const context_js_1 = require("./context.js");
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
12
|
-
* Eagerly set on leaves, and lazily set for other cases.
|
|
13
|
-
*/
|
|
14
|
-
const flexSchemaSymbol = Symbol(`flexSchema`);
|
|
15
|
-
/**
|
|
16
|
-
* A symbol for storing TreeNodeSchema on FlexTreeNode's schema.
|
|
13
|
+
* Gets the {@link TreeNodeSchema} for the {@link InnerNode}.
|
|
17
14
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return schema[flexSchemaSymbol];
|
|
15
|
+
function getSimpleNodeSchemaFromInnerNode(innerNode) {
|
|
16
|
+
const context = getSimpleContextFromInnerNode(innerNode);
|
|
17
|
+
return context.schema.get(innerNode.schema) ?? (0, index_js_1.fail)("missing schema from context");
|
|
22
18
|
}
|
|
23
|
-
exports.
|
|
24
|
-
function setFlexSchemaFromClassSchema(simple, flex) {
|
|
25
|
-
(0, internal_1.assert)(!(flexSchemaSymbol in simple), 0x91f /* simple schema already marked */);
|
|
26
|
-
(0, internal_1.assert)(!(simpleNodeSchemaSymbol in flex), 0x920 /* flex schema already marked */);
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
-
simple[flexSchemaSymbol] = flex;
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
-
flex[simpleNodeSchemaSymbol] = simple;
|
|
31
|
-
}
|
|
32
|
-
exports.setFlexSchemaFromClassSchema = setFlexSchemaFromClassSchema;
|
|
19
|
+
exports.getSimpleNodeSchemaFromInnerNode = getSimpleNodeSchemaFromInnerNode;
|
|
33
20
|
/**
|
|
34
|
-
* Gets the {@link
|
|
35
|
-
* Returns `undefined` if no cached value is found.
|
|
21
|
+
* Gets the {@link Context} for the {@link InnerNode}.
|
|
36
22
|
*/
|
|
37
|
-
function
|
|
38
|
-
if (
|
|
39
|
-
return
|
|
23
|
+
function getSimpleContextFromInnerNode(innerNode) {
|
|
24
|
+
if (innerNode instanceof unhydratedFlexTree_js_1.UnhydratedFlexTreeNode) {
|
|
25
|
+
return innerNode.simpleContext;
|
|
40
26
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Gets the {@link TreeNodeSchema} cached on the provided {@link FlexTreeNodeSchema | flexSchema}.
|
|
46
|
-
* Fails if no cached value is found.
|
|
47
|
-
*/
|
|
48
|
-
function getSimpleNodeSchema(flexSchema) {
|
|
49
|
-
return tryGetSimpleNodeSchema(flexSchema) ?? (0, index_js_1.fail)("missing simple schema");
|
|
50
|
-
}
|
|
51
|
-
exports.getSimpleNodeSchema = getSimpleNodeSchema;
|
|
52
|
-
/**
|
|
53
|
-
* Gets the {@link TreeNodeSchema} for the {@link InnerNode}.
|
|
54
|
-
*/
|
|
55
|
-
function getSimpleNodeSchemaFromNode(innerNode) {
|
|
56
|
-
// TODO: to make this work without depending on flex tree schema, a new caching/lookup mechanism will be required, likely leveraging the FlexTreeContext:
|
|
57
|
-
// A SimpleTreeContext could be defined and associated with the FlexTreeContext, and used to look up simple-tree schema by identifier.
|
|
58
|
-
return getSimpleNodeSchema(innerNode.flexSchema);
|
|
27
|
+
const context = innerNode.anchorNode.anchorSet.slots.get(context_js_1.SimpleContextSlot);
|
|
28
|
+
(0, internal_1.assert)(context !== undefined, "missing simple tree context");
|
|
29
|
+
return context;
|
|
59
30
|
}
|
|
60
|
-
exports.
|
|
31
|
+
exports.getSimpleContextFromInnerNode = getSimpleContextFromInnerNode;
|
|
61
32
|
//# sourceMappingURL=schemaCaching.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaCaching.js","sourceRoot":"","sources":["../../../src/simple-tree/core/schemaCaching.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA6D;
|
|
1
|
+
{"version":3,"file":"schemaCaching.js","sourceRoot":"","sources":["../../../src/simple-tree/core/schemaCaching.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAA6D;AAE7D,kDAA2C;AAI3C,mEAAiE;AACjE,6CAA+D;AAE/D;;GAEG;AACH,SAAgB,gCAAgC,CAAC,SAAoB;IACpE,MAAM,OAAO,GAAY,6BAA6B,CAAC,SAAS,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAA,eAAI,EAAC,6BAA6B,CAAC,CAAC;AACpF,CAAC;AAHD,4EAGC;AAED;;GAEG;AACH,SAAgB,6BAA6B,CAAC,SAAoB;IACjE,IAAI,SAAS,YAAY,8CAAsB,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC,aAAa,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,8BAAiB,CAAC,CAAC;IAC5E,IAAA,iBAAM,EAAC,OAAO,KAAK,SAAS,EAAE,6BAA6B,CAAC,CAAC;IAE7D,OAAO,OAAO,CAAC;AAChB,CAAC;AATD,sEASC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\n\nimport { fail } from \"../../util/index.js\";\n\nimport type { TreeNodeSchema } from \"./treeNodeSchema.js\";\nimport type { InnerNode } from \"./treeNodeKernel.js\";\nimport { UnhydratedFlexTreeNode } from \"./unhydratedFlexTree.js\";\nimport { SimpleContextSlot, type Context } from \"./context.js\";\n\n/**\n * Gets the {@link TreeNodeSchema} for the {@link InnerNode}.\n */\nexport function getSimpleNodeSchemaFromInnerNode(innerNode: InnerNode): TreeNodeSchema {\n\tconst context: Context = getSimpleContextFromInnerNode(innerNode);\n\treturn context.schema.get(innerNode.schema) ?? fail(\"missing schema from context\");\n}\n\n/**\n * Gets the {@link Context} for the {@link InnerNode}.\n */\nexport function getSimpleContextFromInnerNode(innerNode: InnerNode): Context {\n\tif (innerNode instanceof UnhydratedFlexTreeNode) {\n\t\treturn innerNode.simpleContext;\n\t}\n\n\tconst context = innerNode.anchorNode.anchorSet.slots.get(SimpleContextSlot);\n\tassert(context !== undefined, \"missing simple tree context\");\n\n\treturn context;\n}\n"]}
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
import { type Listenable, type Off } from "../../events/index.js";
|
|
6
6
|
import type { TreeNode, Unhydrated } from "./types.js";
|
|
7
7
|
import { type AnchorEvents, type AnchorNode, type AnchorSet, type UpPath } from "../../core/index.js";
|
|
8
|
-
import { TreeStatus, type FlexTreeNode
|
|
8
|
+
import { TreeStatus, type FlexTreeNode } from "../../feature-libraries/index.js";
|
|
9
9
|
import type { TreeNodeSchema } from "./treeNodeSchema.js";
|
|
10
|
+
import { type Context } from "./context.js";
|
|
11
|
+
import { UnhydratedFlexTreeNode } from "./unhydratedFlexTree.js";
|
|
10
12
|
export declare function getKernel(node: TreeNode): TreeNodeKernel;
|
|
11
13
|
/**
|
|
12
14
|
* Detects if the given 'candidate' is a TreeNode.
|
|
@@ -42,6 +44,7 @@ export declare class TreeNodeKernel implements Listenable<KernelEvents> {
|
|
|
42
44
|
readonly node: TreeNode;
|
|
43
45
|
readonly schema: TreeNodeSchema;
|
|
44
46
|
private innerNode;
|
|
47
|
+
private readonly initialContext;
|
|
45
48
|
private disposed;
|
|
46
49
|
/**
|
|
47
50
|
* Generation number which is incremented any time we have an edit on the node.
|
|
@@ -57,20 +60,21 @@ export declare class TreeNodeKernel implements Listenable<KernelEvents> {
|
|
|
57
60
|
/**
|
|
58
61
|
* Create a TreeNodeKernel which can be looked up with {@link getKernel}.
|
|
59
62
|
*
|
|
63
|
+
* @param initialContext - context from when this node was originally crated.
|
|
60
64
|
* @param innerNode - When unhydrated/raw or marinated the MapTreeNode. FlexTreeNode when cooked.
|
|
61
65
|
* @remarks
|
|
62
66
|
* Exactly one kernel per TreeNode should be created.
|
|
63
67
|
*/
|
|
64
|
-
constructor(node: TreeNode, schema: TreeNodeSchema, innerNode: InnerNode);
|
|
68
|
+
constructor(node: TreeNode, schema: TreeNodeSchema, innerNode: InnerNode, initialContext: Context);
|
|
69
|
+
get context(): Context;
|
|
65
70
|
/**
|
|
66
71
|
* Transition from {@link Unhydrated} to hydrated.
|
|
67
72
|
* Bi-directionally associates the given hydrated TreeNode to the given anchor node.
|
|
68
73
|
* @remarks
|
|
69
74
|
* Happens at most once for any given node.
|
|
70
|
-
* Cleans up mappings to {@link
|
|
75
|
+
* Cleans up mappings to {@link UnhydratedFlexTreeNode} - it is assumed that they are no longer needed once the proxy has an anchor node.
|
|
71
76
|
*/
|
|
72
77
|
hydrate(anchorNode: AnchorNode): void;
|
|
73
|
-
isHydrated(): boolean;
|
|
74
78
|
getStatus(): TreeStatus;
|
|
75
79
|
on<K extends keyof KernelEvents>(eventName: K, listener: KernelEvents[K]): Off;
|
|
76
80
|
dispose(): void;
|
|
@@ -118,11 +122,29 @@ type KernelEvents = Pick<AnchorEvents, (typeof kernelEvents)[number]>;
|
|
|
118
122
|
* TODO: The inconsistent handling of "marinated" cases should be cleaned up.
|
|
119
123
|
* Maybe getOrCreateInnerNode should cook marinated nodes so they have a proper InnerNode?
|
|
120
124
|
*/
|
|
121
|
-
export type InnerNode = FlexTreeNode |
|
|
125
|
+
export type InnerNode = FlexTreeNode | UnhydratedFlexTreeNode;
|
|
122
126
|
/**
|
|
123
|
-
*
|
|
127
|
+
* {@inheritdoc proxyToMapTreeNode}
|
|
124
128
|
*/
|
|
125
|
-
export declare
|
|
129
|
+
export declare const mapTreeNodeToProxy: WeakMap<UnhydratedFlexTreeNode, TreeNode>;
|
|
130
|
+
/**
|
|
131
|
+
* An anchor slot which associates an anchor with its corresponding TreeNode, if there is one.
|
|
132
|
+
* @remarks
|
|
133
|
+
* For this to work, we have to require that there is at most a single view using a given AnchorSet.
|
|
134
|
+
* FlexTree already has this assumption, and we also assume there is a single simple-tree per FlexTree, so this is valid.
|
|
135
|
+
*/
|
|
136
|
+
export declare const proxySlot: import("../../core/index.js").AnchorSlot<TreeNode>;
|
|
137
|
+
/**
|
|
138
|
+
* Retrieves the node associated with the given MapTreeNode node if any.
|
|
139
|
+
*/
|
|
140
|
+
export declare function tryGetTreeNodeFromMapNode(flexNode: UnhydratedFlexTreeNode): TreeNode | undefined;
|
|
126
141
|
export declare function tryDisposeTreeNode(anchorNode: AnchorNode): void;
|
|
142
|
+
/**
|
|
143
|
+
* Lookup a TreeNodeSchema from a Hydrated FlexTreeNode.
|
|
144
|
+
* @privateRemarks
|
|
145
|
+
* This provides a way to access simple tree schema from the flex tree without depending on {@link FlexTreeSchema} which is in the process of being removed.
|
|
146
|
+
* This is currently limited to hydrated nodes: this limitation will have to be fixed before {@link FlexTreeSchema} can be fully removed.
|
|
147
|
+
*/
|
|
148
|
+
export declare function getTreeNodeSchemaFromHydratedFlexNode(flexNode: FlexTreeNode): TreeNodeSchema;
|
|
127
149
|
export {};
|
|
128
150
|
//# sourceMappingURL=treeNodeKernel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeNodeKernel.d.ts","sourceRoot":"","sources":["../../../src/simple-tree/core/treeNodeKernel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"treeNodeKernel.d.ts","sourceRoot":"","sources":["../../../src/simple-tree/core/treeNodeKernel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,MAAM,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAON,UAAU,EAEV,KAAK,YAAY,EACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAIxD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAE3F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,cAAc,CAG/E;AAqBD;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,UAAU,CAAC,YAAY,CAAC;;aAoC7C,IAAI,EAAE,QAAQ;aACd,MAAM,EAAE,cAAc;IACtC,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAtChC,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;;;OASG;IACI,gBAAgB,EAAE,MAAM,CAAK;IAcpC;;;;;;;OAOG;gBAEc,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACX,cAAc,EAAE,OAAO;IAuCzC,IAAW,OAAO,IAAI,OAAO,CAS5B;IAED;;;;;;OAMG;IACI,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAqCrC,SAAS,IAAI,UAAU;IAoBvB,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG;IAS9E,OAAO,IAAI,IAAI;IAUtB;;;;;;;OAOG;IACI,oBAAoB,CAAC,UAAU,UAAQ,GAAG,SAAS;IAgC1D;;;;;;;;;;OAUG;IACI,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAiBhE;;;;;;OAMG;IACI,eAAe,IAAI,SAAS,GAAG,SAAS;CAe/C;AAOD,QAAA,MAAM,YAAY,oEAAqE,CAAC;AAExF,KAAK,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,sBAAsB,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,2CAAkD,CAAC;AAElF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,oDAAyB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,sBAAsB,GAC9B,QAAQ,GAAG,SAAS,CAEtB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,qCAAqC,CAAC,QAAQ,EAAE,YAAY,GAAG,cAAc,CAW5F"}
|
|
@@ -14,9 +14,9 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
14
14
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
15
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
16
|
};
|
|
17
|
-
var
|
|
17
|
+
var _TreeNodeKernel_hydrationState, _TreeNodeKernel_unhydratedEvents;
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.tryDisposeTreeNode = exports.
|
|
19
|
+
exports.getTreeNodeSchemaFromHydratedFlexNode = exports.tryDisposeTreeNode = exports.tryGetTreeNodeFromMapNode = exports.proxySlot = exports.mapTreeNodeToProxy = exports.TreeNodeKernel = exports.tryGetTreeNodeSchema = exports.isTreeNode = exports.getKernel = void 0;
|
|
20
20
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
21
21
|
const index_js_1 = require("../../events/index.js");
|
|
22
22
|
const index_js_2 = require("../../core/index.js");
|
|
@@ -25,6 +25,8 @@ const index_js_4 = require("../../util/index.js");
|
|
|
25
25
|
// TODO: decide how to deal with dependencies on flex-tree implementation.
|
|
26
26
|
// eslint-disable-next-line import/no-internal-modules
|
|
27
27
|
const lazyNode_js_1 = require("../../feature-libraries/flex-tree/lazyNode.js");
|
|
28
|
+
const context_js_1 = require("./context.js");
|
|
29
|
+
const unhydratedFlexTree_js_1 = require("./unhydratedFlexTree.js");
|
|
28
30
|
const treeNodeToKernel = new WeakMap();
|
|
29
31
|
function getKernel(node) {
|
|
30
32
|
const kernel = treeNodeToKernel.get(node);
|
|
@@ -62,6 +64,10 @@ function tryGetTreeNodeSchema(value) {
|
|
|
62
64
|
return kernel?.schema;
|
|
63
65
|
}
|
|
64
66
|
exports.tryGetTreeNodeSchema = tryGetTreeNodeSchema;
|
|
67
|
+
/** True if and only if the given {@link HydrationState} is post-hydration */
|
|
68
|
+
function isHydrated(state) {
|
|
69
|
+
return typeof state === "object";
|
|
70
|
+
}
|
|
65
71
|
/**
|
|
66
72
|
* Contains state and an internal API for managing {@link TreeNode}s.
|
|
67
73
|
* @remarks All {@link TreeNode}s have an associated kernel object.
|
|
@@ -72,15 +78,16 @@ class TreeNodeKernel {
|
|
|
72
78
|
/**
|
|
73
79
|
* Create a TreeNodeKernel which can be looked up with {@link getKernel}.
|
|
74
80
|
*
|
|
81
|
+
* @param initialContext - context from when this node was originally crated.
|
|
75
82
|
* @param innerNode - When unhydrated/raw or marinated the MapTreeNode. FlexTreeNode when cooked.
|
|
76
83
|
* @remarks
|
|
77
84
|
* Exactly one kernel per TreeNode should be created.
|
|
78
85
|
*/
|
|
79
|
-
constructor(node, schema, innerNode) {
|
|
80
|
-
_TreeNodeKernel_instances.add(this);
|
|
86
|
+
constructor(node, schema, innerNode, initialContext) {
|
|
81
87
|
this.node = node;
|
|
82
88
|
this.schema = schema;
|
|
83
89
|
this.innerNode = innerNode;
|
|
90
|
+
this.initialContext = initialContext;
|
|
84
91
|
this.disposed = false;
|
|
85
92
|
/**
|
|
86
93
|
* Generation number which is incremented any time we have an edit on the node.
|
|
@@ -93,42 +100,70 @@ class TreeNodeKernel {
|
|
|
93
100
|
* but they only way to do that is add a separate public accessor and make it private, which was deemed not worth the boilerplate, runtime overhead and bundle size.
|
|
94
101
|
*/
|
|
95
102
|
this.generationNumber = 0;
|
|
96
|
-
|
|
103
|
+
_TreeNodeKernel_hydrationState.set(this, () => { });
|
|
97
104
|
/**
|
|
98
105
|
* Events registered before hydration.
|
|
99
106
|
* @remarks
|
|
100
|
-
*
|
|
107
|
+
* Since these are usually not used, they are allocated lazily as an optimization.
|
|
108
|
+
* The laziness also avoids extra forwarding overhead for events from this kernel's anchor node and also avoids registering for events that are unneeded.
|
|
109
|
+
* This means optimizations like skipping processing data in subtrees where no subtreeChanged events are subscribed to would be able to work,
|
|
110
|
+
* since the kernel does not unconditionally subscribe to those events (like a design which simply forwards all events would).
|
|
101
111
|
*/
|
|
102
|
-
|
|
112
|
+
_TreeNodeKernel_unhydratedEvents.set(this, new internal_1.Lazy((index_js_1.createEmitter)));
|
|
103
113
|
(0, internal_1.assert)(!treeNodeToKernel.has(node), 0xa1a /* only one kernel per node can be made */);
|
|
104
114
|
treeNodeToKernel.set(node, this);
|
|
105
|
-
if (
|
|
115
|
+
if (innerNode instanceof unhydratedFlexTree_js_1.UnhydratedFlexTreeNode) {
|
|
106
116
|
// Unhydrated case
|
|
107
|
-
mapTreeNodeToProxy.set(innerNode, node);
|
|
117
|
+
exports.mapTreeNodeToProxy.set(innerNode, node);
|
|
118
|
+
// Register for change events from the unhydrated flex node.
|
|
119
|
+
// These will be fired if the unhydrated node is edited, and will also be forwarded later to the hydrated node.
|
|
120
|
+
__classPrivateFieldSet(this, _TreeNodeKernel_hydrationState, innerNode.events.on("childrenChangedAfterBatch", ({ changedFields }) => {
|
|
121
|
+
__classPrivateFieldGet(this, _TreeNodeKernel_unhydratedEvents, "f").value.emit("childrenChangedAfterBatch", {
|
|
122
|
+
changedFields,
|
|
123
|
+
});
|
|
124
|
+
let n = innerNode;
|
|
125
|
+
while (n !== undefined) {
|
|
126
|
+
const treeNode = exports.mapTreeNodeToProxy.get(n);
|
|
127
|
+
if (treeNode !== undefined) {
|
|
128
|
+
const kernel = getKernel(treeNode);
|
|
129
|
+
__classPrivateFieldGet(kernel, _TreeNodeKernel_unhydratedEvents, "f").value.emit("subtreeChangedAfterBatch");
|
|
130
|
+
}
|
|
131
|
+
// This cast is safe because the parent (if it exists) of an unhydrated flex node is always another unhydrated flex node.
|
|
132
|
+
n = n.parentField.parent.parent;
|
|
133
|
+
}
|
|
134
|
+
}), "f");
|
|
108
135
|
}
|
|
109
136
|
else {
|
|
110
137
|
// Hydrated case
|
|
111
|
-
(0, internal_1.assert)(!innerNode.anchorNode.slots.has(proxySlot), 0x7f5 /* Cannot associate an flex node with multiple simple-tree nodes */);
|
|
138
|
+
(0, internal_1.assert)(!innerNode.anchorNode.slots.has(exports.proxySlot), 0x7f5 /* Cannot associate an flex node with multiple simple-tree nodes */);
|
|
112
139
|
this.hydrate(innerNode.anchorNode);
|
|
113
140
|
}
|
|
114
141
|
}
|
|
142
|
+
get context() {
|
|
143
|
+
if (isHydrated(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f"))) {
|
|
144
|
+
// This can't be cached on this.#hydrated during hydration since initial tree is hydrated before the context is cached on the anchorSet.
|
|
145
|
+
return (__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f")?.anchorNode.anchorSet.slots.get(context_js_1.SimpleContextSlot) ??
|
|
146
|
+
(0, index_js_4.fail)("missing simple-tree context"));
|
|
147
|
+
}
|
|
148
|
+
return this.initialContext;
|
|
149
|
+
}
|
|
115
150
|
/**
|
|
116
151
|
* Transition from {@link Unhydrated} to hydrated.
|
|
117
152
|
* Bi-directionally associates the given hydrated TreeNode to the given anchor node.
|
|
118
153
|
* @remarks
|
|
119
154
|
* Happens at most once for any given node.
|
|
120
|
-
* Cleans up mappings to {@link
|
|
155
|
+
* Cleans up mappings to {@link UnhydratedFlexTreeNode} - it is assumed that they are no longer needed once the proxy has an anchor node.
|
|
121
156
|
*/
|
|
122
157
|
hydrate(anchorNode) {
|
|
123
158
|
(0, internal_1.assert)(!this.disposed, 0xa2a /* cannot hydrate a disposed node */);
|
|
124
|
-
(0, internal_1.assert)(__classPrivateFieldGet(this,
|
|
159
|
+
(0, internal_1.assert)(!isHydrated(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f")), 0xa2b /* hydration should only happen once */);
|
|
125
160
|
// If the this node is raw and thus has a MapTreeNode, forget it:
|
|
126
|
-
if (
|
|
127
|
-
mapTreeNodeToProxy.delete(this.innerNode);
|
|
161
|
+
if (this.innerNode instanceof unhydratedFlexTree_js_1.UnhydratedFlexTreeNode) {
|
|
162
|
+
exports.mapTreeNodeToProxy.delete(this.innerNode);
|
|
128
163
|
}
|
|
129
164
|
// However, it's fine for an anchor node to rotate through different proxies when the content at that place in the tree is replaced.
|
|
130
|
-
anchorNode.slots.set(proxySlot, this.node);
|
|
131
|
-
__classPrivateFieldSet(this,
|
|
165
|
+
anchorNode.slots.set(exports.proxySlot, this.node);
|
|
166
|
+
__classPrivateFieldSet(this, _TreeNodeKernel_hydrationState, {
|
|
132
167
|
anchorNode,
|
|
133
168
|
offAnchorNode: new Set([
|
|
134
169
|
anchorNode.on("afterDestroy", () => this.dispose()),
|
|
@@ -139,45 +174,48 @@ class TreeNodeKernel {
|
|
|
139
174
|
]),
|
|
140
175
|
}, "f");
|
|
141
176
|
// If needed, register forwarding emitters for events from before hydration
|
|
142
|
-
if (__classPrivateFieldGet(this,
|
|
177
|
+
if (__classPrivateFieldGet(this, _TreeNodeKernel_unhydratedEvents, "f").evaluated) {
|
|
178
|
+
const events = __classPrivateFieldGet(this, _TreeNodeKernel_unhydratedEvents, "f").value;
|
|
143
179
|
for (const eventName of kernelEvents) {
|
|
144
|
-
if (
|
|
145
|
-
__classPrivateFieldGet(this,
|
|
180
|
+
if (events.hasListeners(eventName)) {
|
|
181
|
+
__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f").offAnchorNode.add(
|
|
146
182
|
// Argument is forwarded between matching events, so the type should be correct.
|
|
147
183
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
148
|
-
anchorNode.on(eventName, (arg) =>
|
|
184
|
+
anchorNode.on(eventName, (arg) => events.emit(eventName, arg)));
|
|
149
185
|
}
|
|
150
186
|
}
|
|
151
187
|
}
|
|
152
188
|
}
|
|
153
|
-
isHydrated() {
|
|
154
|
-
(0, internal_1.assert)(!this.disposed, 0xa2c /* cannot use a disposed node */);
|
|
155
|
-
return __classPrivateFieldGet(this, _TreeNodeKernel_hydrated, "f") !== undefined;
|
|
156
|
-
}
|
|
157
189
|
getStatus() {
|
|
158
190
|
if (this.disposed) {
|
|
159
191
|
return index_js_3.TreeStatus.Deleted;
|
|
160
192
|
}
|
|
161
|
-
if (__classPrivateFieldGet(this,
|
|
193
|
+
if (!isHydrated(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f"))) {
|
|
162
194
|
return index_js_3.TreeStatus.New;
|
|
163
195
|
}
|
|
164
196
|
// TODO: Replace this check with the proper check against the cursor state when the cursor becomes part of the kernel
|
|
165
|
-
const flex = __classPrivateFieldGet(this,
|
|
197
|
+
const flex = __classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f").anchorNode.slots.get(index_js_3.flexTreeSlot);
|
|
166
198
|
if (flex !== undefined) {
|
|
167
199
|
(0, internal_1.assert)(flex instanceof index_js_3.LazyEntity, 0x9b4 /* Unexpected flex node implementation */);
|
|
168
200
|
if (flex[index_js_3.isFreedSymbol]()) {
|
|
169
201
|
return index_js_3.TreeStatus.Deleted;
|
|
170
202
|
}
|
|
171
203
|
}
|
|
172
|
-
return (0, index_js_3.treeStatusFromAnchorCache)(__classPrivateFieldGet(this,
|
|
204
|
+
return (0, index_js_3.treeStatusFromAnchorCache)(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f").anchorNode);
|
|
173
205
|
}
|
|
174
206
|
on(eventName, listener) {
|
|
175
|
-
|
|
207
|
+
// Retrieve the correct events object based on whether this node is pre or post hydration.
|
|
208
|
+
const events = isHydrated(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f"))
|
|
209
|
+
? __classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f").anchorNode
|
|
210
|
+
: __classPrivateFieldGet(this, _TreeNodeKernel_unhydratedEvents, "f").value;
|
|
211
|
+
return events.on(eventName, listener);
|
|
176
212
|
}
|
|
177
213
|
dispose() {
|
|
178
214
|
this.disposed = true;
|
|
179
|
-
|
|
180
|
-
off()
|
|
215
|
+
if (isHydrated(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f"))) {
|
|
216
|
+
for (const off of __classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f").offAnchorNode) {
|
|
217
|
+
off();
|
|
218
|
+
}
|
|
181
219
|
}
|
|
182
220
|
// TODO: go to the context and remove myself from withAnchors
|
|
183
221
|
}
|
|
@@ -190,16 +228,15 @@ class TreeNodeKernel {
|
|
|
190
228
|
* Note that for "marinated" nodes, this FlexTreeNode exists and returns it: it does not return the MapTreeNode which is the current InnerNode.
|
|
191
229
|
*/
|
|
192
230
|
getOrCreateInnerNode(allowFreed = false) {
|
|
193
|
-
if (!(
|
|
231
|
+
if (!(this.innerNode instanceof unhydratedFlexTree_js_1.UnhydratedFlexTreeNode)) {
|
|
194
232
|
// Cooked case
|
|
195
233
|
return this.innerNode;
|
|
196
234
|
}
|
|
197
|
-
if (__classPrivateFieldGet(this,
|
|
198
|
-
// Unhydrated case
|
|
235
|
+
if (!isHydrated(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f"))) {
|
|
199
236
|
return this.innerNode;
|
|
200
237
|
}
|
|
201
238
|
// Marinated case -> cooked
|
|
202
|
-
const anchorNode = __classPrivateFieldGet(this,
|
|
239
|
+
const anchorNode = __classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f").anchorNode;
|
|
203
240
|
// The proxy is bound to an anchor node, but it may or may not have an actual flex node yet
|
|
204
241
|
const flexNode = anchorNode.slots.get(index_js_3.flexTreeSlot);
|
|
205
242
|
if (flexNode !== undefined) {
|
|
@@ -258,26 +295,17 @@ class TreeNodeKernel {
|
|
|
258
295
|
// Cooked case
|
|
259
296
|
return this.innerNode;
|
|
260
297
|
}
|
|
261
|
-
if (__classPrivateFieldGet(this,
|
|
262
|
-
// Unhydrated case
|
|
298
|
+
if (!isHydrated(__classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f"))) {
|
|
263
299
|
return this.innerNode;
|
|
264
300
|
}
|
|
265
301
|
// Marinated case -> cooked
|
|
266
|
-
const anchorNode = __classPrivateFieldGet(this,
|
|
302
|
+
const anchorNode = __classPrivateFieldGet(this, _TreeNodeKernel_hydrationState, "f").anchorNode;
|
|
267
303
|
// The proxy is bound to an anchor node, but it may or may not have an actual flex node yet
|
|
268
304
|
return anchorNode.slots.get(index_js_3.flexTreeSlot);
|
|
269
305
|
}
|
|
270
306
|
}
|
|
271
307
|
exports.TreeNodeKernel = TreeNodeKernel;
|
|
272
|
-
|
|
273
|
-
if (__classPrivateFieldGet(this, _TreeNodeKernel_hydrated, "f") === undefined) {
|
|
274
|
-
__classPrivateFieldSet(this, _TreeNodeKernel_preHydrationEvents, __classPrivateFieldGet(this, _TreeNodeKernel_preHydrationEvents, "f") ?? (0, index_js_1.createEmitter)(), "f");
|
|
275
|
-
return __classPrivateFieldGet(this, _TreeNodeKernel_preHydrationEvents, "f");
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
return __classPrivateFieldGet(this, _TreeNodeKernel_hydrated, "f").anchorNode;
|
|
279
|
-
}
|
|
280
|
-
};
|
|
308
|
+
_TreeNodeKernel_hydrationState = new WeakMap(), _TreeNodeKernel_unhydratedEvents = new WeakMap();
|
|
281
309
|
/**
|
|
282
310
|
* Used by {@link anchorProxy} as an optimization to ensure that only one anchor is remembered at a time for a given anchor node
|
|
283
311
|
*/
|
|
@@ -286,32 +314,40 @@ const kernelEvents = ["childrenChangedAfterBatch", "subtreeChangedAfterBatch"];
|
|
|
286
314
|
/**
|
|
287
315
|
* {@inheritdoc proxyToMapTreeNode}
|
|
288
316
|
*/
|
|
289
|
-
|
|
317
|
+
exports.mapTreeNodeToProxy = new WeakMap();
|
|
290
318
|
/**
|
|
291
319
|
* An anchor slot which associates an anchor with its corresponding TreeNode, if there is one.
|
|
292
320
|
* @remarks
|
|
293
321
|
* For this to work, we have to require that there is at most a single view using a given AnchorSet.
|
|
294
322
|
* FlexTree already has this assumption, and we also assume there is a single simple-tree per FlexTree, so this is valid.
|
|
295
323
|
*/
|
|
296
|
-
|
|
324
|
+
exports.proxySlot = (0, index_js_2.anchorSlot)();
|
|
297
325
|
/**
|
|
298
|
-
* Retrieves the
|
|
326
|
+
* Retrieves the node associated with the given MapTreeNode node if any.
|
|
299
327
|
*/
|
|
300
|
-
function
|
|
301
|
-
|
|
302
|
-
// Unhydrated case
|
|
303
|
-
return mapTreeNodeToProxy.get(flexNode);
|
|
304
|
-
}
|
|
305
|
-
// Hydrated case
|
|
306
|
-
return flexNode.anchorNode.slots.get(proxySlot);
|
|
328
|
+
function tryGetTreeNodeFromMapNode(flexNode) {
|
|
329
|
+
return exports.mapTreeNodeToProxy.get(flexNode);
|
|
307
330
|
}
|
|
308
|
-
exports.
|
|
331
|
+
exports.tryGetTreeNodeFromMapNode = tryGetTreeNodeFromMapNode;
|
|
309
332
|
function tryDisposeTreeNode(anchorNode) {
|
|
310
|
-
const treeNode = anchorNode.slots.get(proxySlot);
|
|
333
|
+
const treeNode = anchorNode.slots.get(exports.proxySlot);
|
|
311
334
|
if (treeNode !== undefined) {
|
|
312
335
|
const kernel = getKernel(treeNode);
|
|
313
336
|
kernel.dispose();
|
|
314
337
|
}
|
|
315
338
|
}
|
|
316
339
|
exports.tryDisposeTreeNode = tryDisposeTreeNode;
|
|
340
|
+
/**
|
|
341
|
+
* Lookup a TreeNodeSchema from a Hydrated FlexTreeNode.
|
|
342
|
+
* @privateRemarks
|
|
343
|
+
* This provides a way to access simple tree schema from the flex tree without depending on {@link FlexTreeSchema} which is in the process of being removed.
|
|
344
|
+
* This is currently limited to hydrated nodes: this limitation will have to be fixed before {@link FlexTreeSchema} can be fully removed.
|
|
345
|
+
*/
|
|
346
|
+
function getTreeNodeSchemaFromHydratedFlexNode(flexNode) {
|
|
347
|
+
(0, internal_1.assert)(flexNode.context.isHydrated(), "getTreeNodeSchemaFromHydratedFlexNode only allows hydrated flex tree nodes");
|
|
348
|
+
const context = flexNode.anchorNode.anchorSet.slots.get(context_js_1.SimpleContextSlot) ??
|
|
349
|
+
(0, index_js_4.fail)("Missing SimpleContextSlot");
|
|
350
|
+
return context.schema.get(flexNode.schema) ?? (0, index_js_4.fail)("Missing schema");
|
|
351
|
+
}
|
|
352
|
+
exports.getTreeNodeSchemaFromHydratedFlexNode = getTreeNodeSchemaFromHydratedFlexNode;
|
|
317
353
|
//# sourceMappingURL=treeNodeKernel.js.map
|