@fluidframework/tree 2.33.2 → 2.40.0
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/.vscode/settings.json +2 -0
- package/CHANGELOG.md +64 -0
- package/api-report/tree.alpha.api.md +124 -51
- package/api-report/tree.beta.api.md +31 -27
- package/api-report/tree.legacy.alpha.api.md +24 -23
- package/api-report/tree.legacy.public.api.md +24 -23
- package/api-report/tree.public.api.md +24 -23
- package/dist/alpha.d.ts +17 -1
- package/dist/beta.d.ts +2 -0
- package/dist/codec/codec.d.ts +5 -1
- package/dist/codec/codec.d.ts.map +1 -1
- package/dist/codec/codec.js +6 -2
- package/dist/codec/codec.js.map +1 -1
- package/dist/codec/index.d.ts +1 -1
- package/dist/codec/index.d.ts.map +1 -1
- package/dist/codec/index.js +2 -1
- package/dist/codec/index.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
- package/dist/core/schema-stored/formatV1.d.ts.map +1 -0
- package/dist/core/schema-stored/{format.js → formatV1.js} +1 -1
- package/dist/core/schema-stored/formatV1.js.map +1 -0
- package/dist/core/schema-stored/index.d.ts +3 -3
- package/dist/core/schema-stored/index.d.ts.map +1 -1
- package/dist/core/schema-stored/index.js +3 -3
- package/dist/core/schema-stored/index.js.map +1 -1
- package/dist/core/schema-stored/schema.d.ts +3 -1
- package/dist/core/schema-stored/schema.d.ts.map +1 -1
- package/dist/core/schema-stored/schema.js +8 -6
- package/dist/core/schema-stored/schema.js.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/dist/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/dist/core/schema-view/index.d.ts +1 -1
- package/dist/core/schema-view/index.d.ts.map +1 -1
- package/dist/core/schema-view/index.js +1 -2
- package/dist/core/schema-view/index.js.map +1 -1
- package/dist/core/schema-view/view.d.ts +0 -27
- package/dist/core/schema-view/view.d.ts.map +1 -1
- package/dist/core/schema-view/view.js +1 -35
- package/dist/core/schema-view/view.js.map +1 -1
- package/dist/core/tree/persistedTreeTextFormat.d.ts +4 -4
- package/dist/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
- package/dist/core/tree/persistedTreeTextFormat.js +1 -1
- package/dist/core/tree/persistedTreeTextFormat.js.map +1 -1
- package/dist/feature-libraries/forest-summary/format.d.ts +2 -2
- package/dist/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/dist/feature-libraries/forest-summary/format.js +1 -1
- package/dist/feature-libraries/forest-summary/format.js.map +1 -1
- package/dist/feature-libraries/index.d.ts +1 -1
- package/dist/feature-libraries/index.d.ts.map +1 -1
- package/dist/feature-libraries/index.js +4 -2
- package/dist/feature-libraries/index.js.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.d.ts +3 -3
- package/dist/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/dist/feature-libraries/mapTreeCursor.js +2 -2
- package/dist/feature-libraries/mapTreeCursor.js.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
- package/dist/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js +2 -2
- package/dist/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -5
- package/dist/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
- package/dist/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
- package/dist/feature-libraries/schema-index/codec.d.ts +34 -5
- package/dist/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/codec.js +63 -9
- package/dist/feature-libraries/schema-index/codec.js.map +1 -1
- package/{lib/feature-libraries/schema-index/format.d.ts → dist/feature-libraries/schema-index/formatV1.d.ts} +9 -9
- package/dist/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
- package/dist/feature-libraries/schema-index/{format.js → formatV1.js} +4 -4
- package/dist/feature-libraries/schema-index/formatV1.js.map +1 -0
- package/dist/feature-libraries/schema-index/index.d.ts +2 -2
- package/dist/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/index.js +6 -3
- package/dist/feature-libraries/schema-index/index.js.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
- package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/dist/feature-libraries/schema-index/schemaSummarizer.js +4 -4
- package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/internalTypes.d.ts +0 -1
- package/dist/internalTypes.d.ts.map +1 -1
- package/dist/internalTypes.js.map +1 -1
- package/dist/jsonDomainSchema.d.ts +2 -2
- package/dist/jsonDomainSchema.js +2 -2
- package/dist/jsonDomainSchema.js.map +1 -1
- package/dist/legacy.d.ts +2 -0
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +2 -0
- package/dist/serializableDomainSchema.d.ts +3 -3
- package/dist/serializableDomainSchema.js +2 -2
- package/dist/serializableDomainSchema.js.map +1 -1
- package/dist/shared-tree/independentView.d.ts +1 -1
- package/dist/shared-tree/independentView.d.ts.map +1 -1
- package/dist/shared-tree/independentView.js +1 -1
- package/dist/shared-tree/independentView.js.map +1 -1
- package/dist/shared-tree/index.d.ts +4 -3
- package/dist/shared-tree/index.d.ts.map +1 -1
- package/dist/shared-tree/index.js +6 -5
- package/dist/shared-tree/index.js.map +1 -1
- package/dist/shared-tree/schematizeTree.d.ts +10 -11
- package/dist/shared-tree/schematizeTree.d.ts.map +1 -1
- package/dist/shared-tree/schematizeTree.js +11 -36
- package/dist/shared-tree/schematizeTree.js.map +1 -1
- package/dist/shared-tree/schematizingTreeView.d.ts +3 -3
- package/dist/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/dist/shared-tree/schematizingTreeView.js +4 -7
- package/dist/shared-tree/schematizingTreeView.js.map +1 -1
- package/dist/shared-tree/sharedTree.d.ts +28 -3
- package/dist/shared-tree/sharedTree.d.ts.map +1 -1
- package/dist/shared-tree/sharedTree.js +29 -3
- package/dist/shared-tree/sharedTree.js.map +1 -1
- package/dist/shared-tree/{treeApi.d.ts → tree.d.ts} +58 -34
- package/dist/shared-tree/tree.d.ts.map +1 -0
- package/dist/shared-tree/{treeApi.js → tree.js} +6 -6
- package/dist/shared-tree/tree.js.map +1 -0
- package/{lib/shared-tree/treeApiAlpha.d.ts → dist/shared-tree/treeAlpha.d.ts} +24 -14
- package/dist/shared-tree/treeAlpha.d.ts.map +1 -0
- package/dist/shared-tree/{treeApiAlpha.js → treeAlpha.js} +7 -5
- package/dist/shared-tree/treeAlpha.js.map +1 -0
- package/dist/shared-tree-core/branchCommitEnricher.d.ts +0 -1
- package/dist/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/branchCommitEnricher.js +0 -1
- package/dist/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.d.ts +1 -1
- package/dist/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/dist/shared-tree-core/transactionEnricher.js +4 -1
- package/dist/shared-tree-core/transactionEnricher.js.map +1 -1
- package/dist/simple-tree/api/conciseTree.d.ts +1 -1
- package/dist/simple-tree/api/conciseTree.js.map +1 -1
- package/dist/simple-tree/api/configuration.d.ts +177 -0
- package/dist/simple-tree/api/configuration.d.ts.map +1 -0
- package/dist/simple-tree/api/configuration.js +163 -0
- package/dist/simple-tree/api/configuration.js.map +1 -0
- package/dist/simple-tree/api/getJsonSchema.js +2 -2
- package/dist/simple-tree/api/getJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/index.d.ts +9 -5
- package/dist/simple-tree/api/index.d.ts.map +1 -1
- package/dist/simple-tree/api/index.js +9 -7
- package/dist/simple-tree/api/index.js.map +1 -1
- package/dist/simple-tree/api/{view.d.ts → schemaCompatibilityTester.d.ts} +8 -10
- package/dist/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -0
- package/dist/simple-tree/api/{view.js → schemaCompatibilityTester.js} +9 -9
- package/dist/simple-tree/api/schemaCompatibilityTester.js.map +1 -0
- package/dist/simple-tree/api/schemaFactory.d.ts +25 -10
- package/dist/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactory.js +27 -12
- package/dist/simple-tree/api/schemaFactory.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts +12 -6
- package/dist/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFactoryAlpha.js +2 -2
- package/dist/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/dist/simple-tree/api/schemaFactoryRecursive.d.ts +67 -4
- 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/schemaFromSimple.d.ts +1 -1
- package/dist/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js +1 -1
- package/dist/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/dist/simple-tree/api/storedSchema.d.ts +11 -10
- package/dist/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/dist/simple-tree/api/storedSchema.js +16 -11
- package/dist/simple-tree/api/storedSchema.js.map +1 -1
- package/dist/simple-tree/api/tree.d.ts +30 -174
- package/dist/simple-tree/api/tree.d.ts.map +1 -1
- package/dist/simple-tree/api/tree.js +1 -156
- package/dist/simple-tree/api/tree.js.map +1 -1
- package/{lib/simple-tree/api/treeApiBeta.d.ts → dist/simple-tree/api/treeBeta.d.ts} +17 -6
- package/dist/simple-tree/api/treeBeta.d.ts.map +1 -0
- package/dist/simple-tree/api/{treeApiBeta.js → treeBeta.js} +5 -4
- package/dist/simple-tree/api/treeBeta.js.map +1 -0
- package/dist/simple-tree/api/treeChangeEvents.d.ts +83 -0
- package/dist/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
- package/dist/simple-tree/api/treeChangeEvents.js +7 -0
- package/dist/simple-tree/api/treeChangeEvents.js.map +1 -0
- package/dist/simple-tree/api/treeNodeApi.d.ts +2 -1
- package/dist/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/dist/simple-tree/api/treeNodeApi.js.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.d.ts +4 -9
- package/dist/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/dist/simple-tree/api/typesUnsafe.js.map +1 -1
- package/dist/simple-tree/arrayNode.d.ts +30 -2
- package/dist/simple-tree/arrayNode.d.ts.map +1 -1
- package/dist/simple-tree/arrayNode.js +3 -2
- package/dist/simple-tree/arrayNode.js.map +1 -1
- package/dist/simple-tree/arrayNodeTypes.d.ts +3 -3
- package/dist/simple-tree/arrayNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/arrayNodeTypes.js.map +1 -1
- package/dist/simple-tree/core/getOrCreateNode.d.ts +1 -1
- package/dist/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
- package/dist/simple-tree/core/getOrCreateNode.js.map +1 -1
- package/dist/simple-tree/core/index.d.ts +2 -1
- package/dist/simple-tree/core/index.d.ts.map +1 -1
- package/dist/simple-tree/core/index.js +5 -5
- package/dist/simple-tree/core/index.js.map +1 -1
- package/dist/simple-tree/core/treeNode.d.ts +94 -0
- package/dist/simple-tree/core/treeNode.d.ts.map +1 -0
- package/dist/simple-tree/core/treeNode.js +123 -0
- package/dist/simple-tree/core/treeNode.js.map +1 -0
- package/dist/simple-tree/core/treeNodeKernel.d.ts +2 -1
- package/dist/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/dist/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/dist/simple-tree/core/treeNodeSchema.d.ts +3 -1
- 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 -165
- package/dist/simple-tree/core/types.d.ts.map +1 -1
- package/dist/simple-tree/core/types.js +1 -113
- package/dist/simple-tree/core/types.js.map +1 -1
- package/dist/simple-tree/core/withType.d.ts +1 -1
- package/dist/simple-tree/core/withType.d.ts.map +1 -1
- package/dist/simple-tree/core/withType.js.map +1 -1
- package/dist/simple-tree/index.d.ts +4 -4
- package/dist/simple-tree/index.d.ts.map +1 -1
- package/dist/simple-tree/index.js +4 -3
- package/dist/simple-tree/index.js.map +1 -1
- package/dist/simple-tree/mapNode.d.ts +2 -2
- package/dist/simple-tree/mapNode.d.ts.map +1 -1
- package/dist/simple-tree/mapNode.js +1 -1
- package/dist/simple-tree/mapNode.js.map +1 -1
- package/dist/simple-tree/mapNodeTypes.d.ts +3 -3
- package/dist/simple-tree/mapNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/mapNodeTypes.js.map +1 -1
- package/dist/simple-tree/objectNode.d.ts +18 -5
- package/dist/simple-tree/objectNode.d.ts.map +1 -1
- package/dist/simple-tree/objectNode.js +4 -3
- package/dist/simple-tree/objectNode.js.map +1 -1
- package/dist/simple-tree/objectNodeTypes.d.ts +4 -4
- package/dist/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/dist/simple-tree/objectNodeTypes.js.map +1 -1
- package/dist/simple-tree/schemaTypes.d.ts +164 -13
- package/dist/simple-tree/schemaTypes.d.ts.map +1 -1
- package/dist/simple-tree/schemaTypes.js +107 -8
- package/dist/simple-tree/schemaTypes.js.map +1 -1
- package/dist/simple-tree/toStoredSchema.d.ts +8 -8
- package/dist/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/dist/simple-tree/toStoredSchema.js +27 -32
- package/dist/simple-tree/toStoredSchema.js.map +1 -1
- package/dist/simple-tree/treeNodeValid.js +2 -2
- package/dist/simple-tree/treeNodeValid.js.map +1 -1
- package/dist/tableSchema.d.ts +455 -125
- package/dist/tableSchema.d.ts.map +1 -1
- package/dist/tableSchema.js +398 -101
- package/dist/tableSchema.js.map +1 -1
- package/dist/treeFactory.d.ts +1 -1
- package/dist/treeFactory.d.ts.map +1 -1
- package/dist/treeFactory.js +30 -75
- package/dist/treeFactory.js.map +1 -1
- package/dist/util/typeUtils.d.ts +1 -1
- package/dist/util/typeUtils.js.map +1 -1
- package/lib/alpha.d.ts +17 -1
- package/lib/beta.d.ts +2 -0
- package/lib/codec/codec.d.ts +5 -1
- package/lib/codec/codec.d.ts.map +1 -1
- package/lib/codec/codec.js +5 -1
- package/lib/codec/codec.js.map +1 -1
- package/lib/codec/index.d.ts +1 -1
- package/lib/codec/index.d.ts.map +1 -1
- package/lib/codec/index.js +1 -1
- package/lib/codec/index.js.map +1 -1
- package/lib/core/index.d.ts +2 -2
- package/lib/core/index.d.ts.map +1 -1
- package/lib/core/index.js +2 -2
- package/lib/core/index.js.map +1 -1
- package/lib/core/schema-stored/{format.d.ts → formatV1.d.ts} +1 -1
- package/lib/core/schema-stored/formatV1.d.ts.map +1 -0
- package/lib/core/schema-stored/{format.js → formatV1.js} +1 -1
- package/lib/core/schema-stored/formatV1.js.map +1 -0
- package/lib/core/schema-stored/index.d.ts +3 -3
- package/lib/core/schema-stored/index.d.ts.map +1 -1
- package/lib/core/schema-stored/index.js +2 -2
- package/lib/core/schema-stored/index.js.map +1 -1
- package/lib/core/schema-stored/schema.d.ts +3 -1
- package/lib/core/schema-stored/schema.d.ts.map +1 -1
- package/lib/core/schema-stored/schema.js +3 -1
- package/lib/core/schema-stored/schema.js.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.d.ts.map +1 -1
- package/lib/core/schema-stored/storedSchemaRepository.js.map +1 -1
- package/lib/core/schema-view/index.d.ts +1 -1
- package/lib/core/schema-view/index.d.ts.map +1 -1
- package/lib/core/schema-view/index.js +1 -1
- package/lib/core/schema-view/index.js.map +1 -1
- package/lib/core/schema-view/view.d.ts +0 -27
- package/lib/core/schema-view/view.d.ts.map +1 -1
- package/lib/core/schema-view/view.js +0 -34
- package/lib/core/schema-view/view.js.map +1 -1
- package/lib/core/tree/persistedTreeTextFormat.d.ts +4 -4
- package/lib/core/tree/persistedTreeTextFormat.d.ts.map +1 -1
- package/lib/core/tree/persistedTreeTextFormat.js +2 -2
- package/lib/core/tree/persistedTreeTextFormat.js.map +1 -1
- package/lib/feature-libraries/forest-summary/format.d.ts +2 -2
- package/lib/feature-libraries/forest-summary/format.d.ts.map +1 -1
- package/lib/feature-libraries/forest-summary/format.js +2 -2
- package/lib/feature-libraries/forest-summary/format.js.map +1 -1
- package/lib/feature-libraries/index.d.ts +1 -1
- package/lib/feature-libraries/index.d.ts.map +1 -1
- package/lib/feature-libraries/index.js +1 -1
- package/lib/feature-libraries/index.js.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.d.ts +3 -3
- package/lib/feature-libraries/mapTreeCursor.d.ts.map +1 -1
- package/lib/feature-libraries/mapTreeCursor.js +2 -2
- package/lib/feature-libraries/mapTreeCursor.js.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts +9 -9
- package/lib/feature-libraries/modular-schema/modularChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js +3 -3
- package/lib/feature-libraries/modular-schema/modularChangeFormat.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts +14 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js +26 -6
- package/lib/feature-libraries/schema-edits/schemaChangeCodecs.js.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts +2 -2
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.d.ts.map +1 -1
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.js +3 -3
- package/lib/feature-libraries/schema-edits/schemaChangeFormat.js.map +1 -1
- package/lib/feature-libraries/schema-index/codec.d.ts +34 -5
- package/lib/feature-libraries/schema-index/codec.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/codec.js +61 -9
- package/lib/feature-libraries/schema-index/codec.js.map +1 -1
- package/{dist/feature-libraries/schema-index/format.d.ts → lib/feature-libraries/schema-index/formatV1.d.ts} +9 -9
- package/lib/feature-libraries/schema-index/formatV1.d.ts.map +1 -0
- package/lib/feature-libraries/schema-index/{format.js → formatV1.js} +5 -5
- package/lib/feature-libraries/schema-index/formatV1.js.map +1 -0
- package/lib/feature-libraries/schema-index/index.d.ts +2 -2
- package/lib/feature-libraries/schema-index/index.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/index.js +2 -2
- package/lib/feature-libraries/schema-index/index.js.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +5 -5
- package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
- package/lib/feature-libraries/schema-index/schemaSummarizer.js +5 -5
- package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/internalTypes.d.ts +0 -1
- package/lib/internalTypes.d.ts.map +1 -1
- package/lib/internalTypes.js.map +1 -1
- package/lib/jsonDomainSchema.d.ts +2 -2
- package/lib/jsonDomainSchema.js +2 -2
- package/lib/jsonDomainSchema.js.map +1 -1
- package/lib/legacy.d.ts +2 -0
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +2 -0
- package/lib/serializableDomainSchema.d.ts +3 -3
- package/lib/serializableDomainSchema.js +2 -2
- package/lib/serializableDomainSchema.js.map +1 -1
- package/lib/shared-tree/independentView.d.ts +1 -1
- package/lib/shared-tree/independentView.d.ts.map +1 -1
- package/lib/shared-tree/independentView.js +2 -2
- package/lib/shared-tree/independentView.js.map +1 -1
- package/lib/shared-tree/index.d.ts +4 -3
- package/lib/shared-tree/index.d.ts.map +1 -1
- package/lib/shared-tree/index.js +3 -3
- package/lib/shared-tree/index.js.map +1 -1
- package/lib/shared-tree/schematizeTree.d.ts +10 -11
- package/lib/shared-tree/schematizeTree.d.ts.map +1 -1
- package/lib/shared-tree/schematizeTree.js +12 -37
- package/lib/shared-tree/schematizeTree.js.map +1 -1
- package/lib/shared-tree/schematizingTreeView.d.ts +3 -3
- package/lib/shared-tree/schematizingTreeView.d.ts.map +1 -1
- package/lib/shared-tree/schematizingTreeView.js +6 -9
- package/lib/shared-tree/schematizingTreeView.js.map +1 -1
- package/lib/shared-tree/sharedTree.d.ts +28 -3
- package/lib/shared-tree/sharedTree.d.ts.map +1 -1
- package/lib/shared-tree/sharedTree.js +29 -4
- package/lib/shared-tree/sharedTree.js.map +1 -1
- package/lib/shared-tree/{treeApi.d.ts → tree.d.ts} +58 -34
- package/lib/shared-tree/tree.d.ts.map +1 -0
- package/lib/shared-tree/{treeApi.js → tree.js} +5 -5
- package/lib/shared-tree/tree.js.map +1 -0
- package/{dist/shared-tree/treeApiAlpha.d.ts → lib/shared-tree/treeAlpha.d.ts} +24 -14
- package/lib/shared-tree/treeAlpha.d.ts.map +1 -0
- package/lib/shared-tree/{treeApiAlpha.js → treeAlpha.js} +8 -6
- package/lib/shared-tree/treeAlpha.js.map +1 -0
- package/lib/shared-tree-core/branchCommitEnricher.d.ts +0 -1
- package/lib/shared-tree-core/branchCommitEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/branchCommitEnricher.js +0 -1
- package/lib/shared-tree-core/branchCommitEnricher.js.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.d.ts +1 -1
- package/lib/shared-tree-core/transactionEnricher.d.ts.map +1 -1
- package/lib/shared-tree-core/transactionEnricher.js +4 -1
- package/lib/shared-tree-core/transactionEnricher.js.map +1 -1
- package/lib/simple-tree/api/conciseTree.d.ts +1 -1
- package/lib/simple-tree/api/conciseTree.js.map +1 -1
- package/lib/simple-tree/api/configuration.d.ts +177 -0
- package/lib/simple-tree/api/configuration.d.ts.map +1 -0
- package/lib/simple-tree/api/configuration.js +157 -0
- package/lib/simple-tree/api/configuration.js.map +1 -0
- package/lib/simple-tree/api/getJsonSchema.js +1 -1
- package/lib/simple-tree/api/getJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/index.d.ts +9 -5
- package/lib/simple-tree/api/index.d.ts.map +1 -1
- package/lib/simple-tree/api/index.js +5 -4
- package/lib/simple-tree/api/index.js.map +1 -1
- package/lib/simple-tree/api/{view.d.ts → schemaCompatibilityTester.d.ts} +8 -10
- package/lib/simple-tree/api/schemaCompatibilityTester.d.ts.map +1 -0
- package/lib/simple-tree/api/{view.js → schemaCompatibilityTester.js} +7 -7
- package/lib/simple-tree/api/schemaCompatibilityTester.js.map +1 -0
- package/lib/simple-tree/api/schemaFactory.d.ts +25 -10
- package/lib/simple-tree/api/schemaFactory.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactory.js +27 -12
- package/lib/simple-tree/api/schemaFactory.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts +12 -6
- package/lib/simple-tree/api/schemaFactoryAlpha.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFactoryAlpha.js +2 -2
- package/lib/simple-tree/api/schemaFactoryAlpha.js.map +1 -1
- package/lib/simple-tree/api/schemaFactoryRecursive.d.ts +67 -4
- 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/schemaFromSimple.d.ts +1 -1
- package/lib/simple-tree/api/schemaFromSimple.d.ts.map +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js +1 -1
- package/lib/simple-tree/api/schemaFromSimple.js.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/simpleSchemaToJsonSchema.js.map +1 -1
- package/lib/simple-tree/api/storedSchema.d.ts +11 -10
- package/lib/simple-tree/api/storedSchema.d.ts.map +1 -1
- package/lib/simple-tree/api/storedSchema.js +20 -13
- package/lib/simple-tree/api/storedSchema.js.map +1 -1
- package/lib/simple-tree/api/tree.d.ts +30 -174
- package/lib/simple-tree/api/tree.d.ts.map +1 -1
- package/lib/simple-tree/api/tree.js +0 -152
- package/lib/simple-tree/api/tree.js.map +1 -1
- package/{dist/simple-tree/api/treeApiBeta.d.ts → lib/simple-tree/api/treeBeta.d.ts} +17 -6
- package/lib/simple-tree/api/treeBeta.d.ts.map +1 -0
- package/lib/simple-tree/api/{treeApiBeta.js → treeBeta.js} +5 -4
- package/lib/simple-tree/api/treeBeta.js.map +1 -0
- package/lib/simple-tree/api/treeChangeEvents.d.ts +83 -0
- package/lib/simple-tree/api/treeChangeEvents.d.ts.map +1 -0
- package/lib/simple-tree/api/treeChangeEvents.js +6 -0
- package/lib/simple-tree/api/treeChangeEvents.js.map +1 -0
- package/lib/simple-tree/api/treeNodeApi.d.ts +2 -1
- package/lib/simple-tree/api/treeNodeApi.d.ts.map +1 -1
- package/lib/simple-tree/api/treeNodeApi.js.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.d.ts +4 -9
- package/lib/simple-tree/api/typesUnsafe.d.ts.map +1 -1
- package/lib/simple-tree/api/typesUnsafe.js.map +1 -1
- package/lib/simple-tree/arrayNode.d.ts +30 -2
- package/lib/simple-tree/arrayNode.d.ts.map +1 -1
- package/lib/simple-tree/arrayNode.js +4 -3
- package/lib/simple-tree/arrayNode.js.map +1 -1
- package/lib/simple-tree/arrayNodeTypes.d.ts +3 -3
- package/lib/simple-tree/arrayNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/arrayNodeTypes.js.map +1 -1
- package/lib/simple-tree/core/getOrCreateNode.d.ts +1 -1
- package/lib/simple-tree/core/getOrCreateNode.d.ts.map +1 -1
- package/lib/simple-tree/core/getOrCreateNode.js.map +1 -1
- package/lib/simple-tree/core/index.d.ts +2 -1
- package/lib/simple-tree/core/index.d.ts.map +1 -1
- package/lib/simple-tree/core/index.js +1 -1
- package/lib/simple-tree/core/index.js.map +1 -1
- package/lib/simple-tree/core/treeNode.d.ts +94 -0
- package/lib/simple-tree/core/treeNode.d.ts.map +1 -0
- package/lib/simple-tree/core/treeNode.js +118 -0
- package/lib/simple-tree/core/treeNode.js.map +1 -0
- package/lib/simple-tree/core/treeNodeKernel.d.ts +2 -1
- package/lib/simple-tree/core/treeNodeKernel.d.ts.map +1 -1
- package/lib/simple-tree/core/treeNodeKernel.js.map +1 -1
- package/lib/simple-tree/core/treeNodeSchema.d.ts +3 -1
- 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 -165
- package/lib/simple-tree/core/types.d.ts.map +1 -1
- package/lib/simple-tree/core/types.js +0 -110
- package/lib/simple-tree/core/types.js.map +1 -1
- package/lib/simple-tree/core/withType.d.ts +1 -1
- package/lib/simple-tree/core/withType.d.ts.map +1 -1
- package/lib/simple-tree/core/withType.js.map +1 -1
- package/lib/simple-tree/index.d.ts +4 -4
- package/lib/simple-tree/index.d.ts.map +1 -1
- package/lib/simple-tree/index.js +1 -1
- package/lib/simple-tree/index.js.map +1 -1
- package/lib/simple-tree/mapNode.d.ts +2 -2
- package/lib/simple-tree/mapNode.d.ts.map +1 -1
- package/lib/simple-tree/mapNode.js +2 -2
- package/lib/simple-tree/mapNode.js.map +1 -1
- package/lib/simple-tree/mapNodeTypes.d.ts +3 -3
- package/lib/simple-tree/mapNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/mapNodeTypes.js.map +1 -1
- package/lib/simple-tree/objectNode.d.ts +18 -5
- package/lib/simple-tree/objectNode.d.ts.map +1 -1
- package/lib/simple-tree/objectNode.js +5 -4
- package/lib/simple-tree/objectNode.js.map +1 -1
- package/lib/simple-tree/objectNodeTypes.d.ts +4 -4
- package/lib/simple-tree/objectNodeTypes.d.ts.map +1 -1
- package/lib/simple-tree/objectNodeTypes.js.map +1 -1
- package/lib/simple-tree/schemaTypes.d.ts +164 -13
- package/lib/simple-tree/schemaTypes.d.ts.map +1 -1
- package/lib/simple-tree/schemaTypes.js +96 -8
- package/lib/simple-tree/schemaTypes.js.map +1 -1
- package/lib/simple-tree/toStoredSchema.d.ts +8 -8
- package/lib/simple-tree/toStoredSchema.d.ts.map +1 -1
- package/lib/simple-tree/toStoredSchema.js +26 -31
- package/lib/simple-tree/toStoredSchema.js.map +1 -1
- package/lib/simple-tree/treeNodeValid.js +2 -2
- package/lib/simple-tree/treeNodeValid.js.map +1 -1
- package/lib/tableSchema.d.ts +455 -125
- package/lib/tableSchema.d.ts.map +1 -1
- package/lib/tableSchema.js +398 -101
- package/lib/tableSchema.js.map +1 -1
- package/lib/treeFactory.d.ts +1 -1
- package/lib/treeFactory.d.ts.map +1 -1
- package/lib/treeFactory.js +30 -75
- package/lib/treeFactory.js.map +1 -1
- package/lib/util/typeUtils.d.ts +1 -1
- package/lib/util/typeUtils.js.map +1 -1
- package/package.json +21 -21
- package/src/codec/codec.ts +6 -1
- package/src/codec/index.ts +1 -0
- package/src/core/index.ts +1 -2
- package/src/core/schema-stored/index.ts +3 -3
- package/src/core/schema-stored/schema.ts +3 -1
- package/src/core/schema-stored/storedSchemaRepository.ts +1 -1
- package/src/core/schema-view/index.ts +0 -1
- package/src/core/schema-view/view.ts +0 -31
- package/src/core/tree/persistedTreeTextFormat.ts +2 -2
- package/src/feature-libraries/forest-summary/format.ts +2 -2
- package/src/feature-libraries/index.ts +7 -1
- package/src/feature-libraries/mapTreeCursor.ts +3 -3
- package/src/feature-libraries/modular-schema/modularChangeFormat.ts +3 -3
- package/src/feature-libraries/schema-edits/schemaChangeCodecs.ts +38 -9
- package/src/feature-libraries/schema-edits/schemaChangeFormat.ts +3 -4
- package/src/feature-libraries/schema-index/codec.ts +80 -12
- package/src/feature-libraries/schema-index/{format.ts → formatV1.ts} +4 -4
- package/src/feature-libraries/schema-index/index.ts +7 -2
- package/src/feature-libraries/schema-index/schemaSummarizer.ts +9 -9
- package/src/index.ts +18 -1
- package/src/internalTypes.ts +0 -2
- package/src/jsonDomainSchema.ts +2 -2
- package/src/packageVersion.ts +1 -1
- package/src/serializableDomainSchema.ts +3 -3
- package/src/shared-tree/independentView.ts +4 -3
- package/src/shared-tree/index.ts +5 -6
- package/src/shared-tree/schematizeTree.ts +10 -40
- package/src/shared-tree/schematizingTreeView.ts +12 -17
- package/src/shared-tree/sharedTree.ts +67 -6
- package/src/shared-tree/{treeApi.ts → tree.ts} +75 -51
- package/src/shared-tree/{treeApiAlpha.ts → treeAlpha.ts} +28 -16
- package/src/shared-tree-core/branchCommitEnricher.ts +0 -1
- package/src/shared-tree-core/transactionEnricher.ts +4 -1
- package/src/simple-tree/api/conciseTree.ts +1 -1
- package/src/simple-tree/api/configuration.ts +353 -0
- package/src/simple-tree/api/getJsonSchema.ts +1 -1
- package/src/simple-tree/api/index.ts +23 -15
- package/src/simple-tree/api/{view.ts → schemaCompatibilityTester.ts} +8 -15
- package/src/simple-tree/api/schemaFactory.ts +139 -19
- package/src/simple-tree/api/schemaFactoryAlpha.ts +7 -5
- package/src/simple-tree/api/schemaFactoryRecursive.ts +102 -38
- package/src/simple-tree/api/schemaFromSimple.ts +2 -2
- package/src/simple-tree/api/simpleSchemaToJsonSchema.ts +1 -1
- package/src/simple-tree/api/storedSchema.ts +32 -17
- package/src/simple-tree/api/tree.ts +38 -354
- package/src/simple-tree/api/{treeApiBeta.ts → treeBeta.ts} +20 -6
- package/src/simple-tree/api/treeChangeEvents.ts +84 -0
- package/src/simple-tree/api/treeNodeApi.ts +1 -1
- package/src/simple-tree/api/typesUnsafe.ts +15 -11
- package/src/simple-tree/arrayNode.ts +38 -5
- package/src/simple-tree/arrayNodeTypes.ts +8 -7
- package/src/simple-tree/core/getOrCreateNode.ts +1 -1
- package/src/simple-tree/core/index.ts +5 -4
- package/src/simple-tree/core/treeNode.ts +163 -0
- package/src/simple-tree/core/treeNodeKernel.ts +2 -1
- package/src/simple-tree/core/treeNodeSchema.ts +3 -1
- package/src/simple-tree/core/types.ts +0 -234
- package/src/simple-tree/core/withType.ts +1 -1
- package/src/simple-tree/index.ts +19 -2
- package/src/simple-tree/mapNode.ts +11 -3
- package/src/simple-tree/mapNodeTypes.ts +10 -7
- package/src/simple-tree/objectNode.ts +39 -15
- package/src/simple-tree/objectNodeTypes.ts +9 -5
- package/src/simple-tree/schemaTypes.ts +354 -25
- package/src/simple-tree/toStoredSchema.ts +42 -41
- package/src/simple-tree/treeNodeValid.ts +2 -2
- package/src/tableSchema.ts +1206 -434
- package/src/treeFactory.ts +56 -173
- package/src/util/typeUtils.ts +1 -1
- package/dist/core/schema-stored/format.d.ts.map +0 -1
- package/dist/core/schema-stored/format.js.map +0 -1
- package/dist/feature-libraries/schema-index/format.d.ts.map +0 -1
- package/dist/feature-libraries/schema-index/format.js.map +0 -1
- package/dist/shared-tree/treeApi.d.ts.map +0 -1
- package/dist/shared-tree/treeApi.js.map +0 -1
- package/dist/shared-tree/treeApiAlpha.d.ts.map +0 -1
- package/dist/shared-tree/treeApiAlpha.js.map +0 -1
- package/dist/simple-tree/api/treeApiBeta.d.ts.map +0 -1
- package/dist/simple-tree/api/treeApiBeta.js.map +0 -1
- package/dist/simple-tree/api/view.d.ts.map +0 -1
- package/dist/simple-tree/api/view.js.map +0 -1
- package/lib/core/schema-stored/format.d.ts.map +0 -1
- package/lib/core/schema-stored/format.js.map +0 -1
- package/lib/feature-libraries/schema-index/format.d.ts.map +0 -1
- package/lib/feature-libraries/schema-index/format.js.map +0 -1
- package/lib/shared-tree/treeApi.d.ts.map +0 -1
- package/lib/shared-tree/treeApi.js.map +0 -1
- package/lib/shared-tree/treeApiAlpha.d.ts.map +0 -1
- package/lib/shared-tree/treeApiAlpha.js.map +0 -1
- package/lib/simple-tree/api/treeApiBeta.d.ts.map +0 -1
- package/lib/simple-tree/api/treeApiBeta.js.map +0 -1
- package/lib/simple-tree/api/view.d.ts.map +0 -1
- package/lib/simple-tree/api/view.js.map +0 -1
- /package/src/core/schema-stored/{format.ts → formatV1.ts} +0 -0
package/lib/tableSchema.d.ts
CHANGED
|
@@ -2,57 +2,278 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { type ImplicitAllowedTypes, type InsertableTreeNodeFromImplicitAllowedTypes, type NodeKind, type SchemaFactoryAlpha, type ScopedSchemaName, TreeArrayNode, type TreeNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type WithType } from "./simple-tree/index.js";
|
|
5
|
+
import { type FieldHasDefault, type ImplicitAllowedTypes, type InsertableTreeNodeFromImplicitAllowedTypes, type NodeKind, type SchemaFactoryAlpha, type ScopedSchemaName, TreeArrayNode, type TreeNode, type TreeNodeFromImplicitAllowedTypes, type TreeNodeSchemaClass, type WithType, type TreeFieldFromImplicitField, type InsertableTreeFieldFromImplicitField, type InternalTreeNode, SchemaFactory, type ImplicitAnnotatedFieldSchema, type UnannotateImplicitFieldSchema } from "./simple-tree/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Not intended for use outside of this package.
|
|
8
|
+
*
|
|
9
|
+
* @privateRemarks
|
|
10
|
+
* This namespace is a collection of internal system types relate to {@link TableSchema}.
|
|
11
|
+
* This namespace should be strictly type-exported by the package.
|
|
12
|
+
* All members should be tagged with `@system`.
|
|
13
|
+
*
|
|
14
|
+
* @system @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare namespace System_TableSchema {
|
|
17
|
+
/**
|
|
18
|
+
* Default type used for column and row "props" fields.
|
|
19
|
+
* @privateRemarks
|
|
20
|
+
* Longer term, it would be better to simply omit "props" altogether by default.
|
|
21
|
+
* For now, this ensures that the user doesn't have to specify a "props" entry when initializing column/row nodes
|
|
22
|
+
* and ensures that they cannot set anything that might conflict with future evolutions of the schema.
|
|
23
|
+
* @system @internal
|
|
24
|
+
*/
|
|
25
|
+
type DefaultPropsType = ReturnType<typeof SchemaFactory.optional<[]>>;
|
|
26
|
+
/**
|
|
27
|
+
* A base interface for factory input options which include an schema factory.
|
|
28
|
+
* @remarks This interface should not be referenced directly.
|
|
29
|
+
* @privateRemarks This interface primarily exists to provide a single home for property documentation.
|
|
30
|
+
* @system @internal
|
|
31
|
+
*/
|
|
32
|
+
interface OptionsWithSchemaFactory<TSchemaFactory extends SchemaFactoryAlpha> {
|
|
33
|
+
/**
|
|
34
|
+
* Schema factory with which the Column schema will be associated.
|
|
35
|
+
* @remarks Can be used to associate the resulting schema with an existing {@link SchemaFactory.scope|scope}.
|
|
36
|
+
*/
|
|
37
|
+
readonly schemaFactory: TSchemaFactory;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A base interface for factory input options which include the table cell schema.
|
|
41
|
+
* @remarks This interface should not be referenced directly.
|
|
42
|
+
* @privateRemarks This interface primarily exists to provide a single home for property documentation.
|
|
43
|
+
* @system @internal
|
|
44
|
+
*/
|
|
45
|
+
interface OptionsWithCellSchema<TCellSchema extends ImplicitAllowedTypes> {
|
|
46
|
+
/**
|
|
47
|
+
* Schema for the table's cells.
|
|
48
|
+
*/
|
|
49
|
+
readonly cell: TCellSchema;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Base options for creating table cow schema.
|
|
53
|
+
* @remarks Includes parameters common to all column factory overloads.
|
|
54
|
+
* @system @internal
|
|
55
|
+
*/
|
|
56
|
+
type CreateColumnOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha> = OptionsWithSchemaFactory<TSchemaFactory>;
|
|
57
|
+
/**
|
|
58
|
+
* Factory for creating new table column schema.
|
|
59
|
+
* @system @internal
|
|
60
|
+
*/
|
|
61
|
+
function createColumnInternal<const TInputScope extends string | undefined, const TPropsSchema extends ImplicitAnnotatedFieldSchema>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Column">, NodeKind.Object, TreeNode & TableSchema.Column<TPropsSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Column">, NodeKind, unknown>, object & {
|
|
62
|
+
readonly id?: string | undefined;
|
|
63
|
+
} & (FieldHasDefault<UnannotateImplicitFieldSchema<TPropsSchema>> extends true ? {
|
|
64
|
+
/**
|
|
65
|
+
* The column's properties.
|
|
66
|
+
* @remarks This is a user-defined schema that can be used to store additional information about the column.
|
|
67
|
+
*/
|
|
68
|
+
props?: InsertableTreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TPropsSchema>> | undefined;
|
|
69
|
+
} : {
|
|
70
|
+
/**
|
|
71
|
+
* The column's properties.
|
|
72
|
+
* @remarks This is a user-defined schema that can be used to store additional information about the column.
|
|
73
|
+
*/
|
|
74
|
+
props: InsertableTreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TPropsSchema>>;
|
|
75
|
+
}), true, {
|
|
76
|
+
readonly props: TPropsSchema;
|
|
77
|
+
readonly id: import("./simple-tree/schemaTypes.js").FieldSchema<import("./simple-tree/schemaTypes.js").FieldKind.Identifier, import("./simple-tree/leafNodeSchema.js").LeafSchema<"string", string>, unknown>;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Base column schema type.
|
|
81
|
+
* @sealed @system @internal
|
|
82
|
+
*/
|
|
83
|
+
type ColumnSchemaBase<TScope extends string | undefined = string | undefined, TPropsSchema extends ImplicitAnnotatedFieldSchema = ImplicitAnnotatedFieldSchema> = ReturnType<typeof createColumnInternal<TScope, TPropsSchema>>;
|
|
84
|
+
/**
|
|
85
|
+
* Base options for creating table row schema.
|
|
86
|
+
* @remarks Includes parameters common to all row factory overloads.
|
|
87
|
+
* @system @internal
|
|
88
|
+
*/
|
|
89
|
+
type CreateRowOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
90
|
+
/**
|
|
91
|
+
* Factory for creating new table row schema.
|
|
92
|
+
*
|
|
93
|
+
* @sealed @internal
|
|
94
|
+
*/
|
|
95
|
+
function createRowInternal<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitAnnotatedFieldSchema>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row">, NodeKind.Object, TreeNode & TableSchema.Row<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row">, NodeKind, unknown>, object & {
|
|
96
|
+
readonly id?: string | undefined;
|
|
97
|
+
readonly cells: (import("./simple-tree/schemaTypes.js").InsertableTypedNode<TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, true, TCellSchema, undefined>, import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, true, TCellSchema, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, unknown> & (new (data?: InternalTreeNode | import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema> | undefined) => import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>)> | undefined) & import("./simple-tree/schemaTypes.js").InsertableTypedNode<TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, true, TCellSchema, undefined>, import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, true, TCellSchema, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, unknown> & (new (data?: InternalTreeNode | import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema> | undefined) => import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>)>;
|
|
98
|
+
} & (FieldHasDefault<UnannotateImplicitFieldSchema<TPropsSchema>> extends true ? {
|
|
99
|
+
/**
|
|
100
|
+
* The row's properties.
|
|
101
|
+
* @remarks This is a user-defined schema that can be used to store additional information
|
|
102
|
+
* about the row.
|
|
103
|
+
*/
|
|
104
|
+
props?: InsertableTreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TPropsSchema>> | undefined;
|
|
105
|
+
} : {
|
|
106
|
+
/**
|
|
107
|
+
* The row's properties.
|
|
108
|
+
* @remarks This is a user-defined schema that can be used to store additional information
|
|
109
|
+
* about the row.
|
|
110
|
+
*/
|
|
111
|
+
props: InsertableTreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TPropsSchema>>;
|
|
112
|
+
}), true, {
|
|
113
|
+
readonly props: TPropsSchema;
|
|
114
|
+
readonly id: import("./simple-tree/schemaTypes.js").FieldSchema<import("./simple-tree/schemaTypes.js").FieldKind.Identifier, import("./simple-tree/leafNodeSchema.js").LeafSchema<"string", string>, unknown>;
|
|
115
|
+
readonly cells: import("./simple-tree/schemaTypes.js").FieldSchema<import("./simple-tree/schemaTypes.js").FieldKind.Required, TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, true, TCellSchema, undefined>, unknown>;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Base row schema type.
|
|
119
|
+
* @sealed @system @internal
|
|
120
|
+
*/
|
|
121
|
+
type RowSchemaBase<TScope extends string | undefined = string | undefined, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitAnnotatedFieldSchema = ImplicitAnnotatedFieldSchema> = ReturnType<typeof createRowInternal<TScope, TCellSchema, TPropsSchema>>;
|
|
122
|
+
/**
|
|
123
|
+
* Base options for creating table schema.
|
|
124
|
+
* @remarks Includes parameters common to all table factory overloads.
|
|
125
|
+
* @system @internal
|
|
126
|
+
*/
|
|
127
|
+
type TableFactoryOptionsBase<TSchemaFactory extends SchemaFactoryAlpha = SchemaFactoryAlpha, TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCell>;
|
|
128
|
+
/**
|
|
129
|
+
* Factory for creating new table schema.
|
|
130
|
+
* @system @internal
|
|
131
|
+
*/
|
|
132
|
+
function createTableInternal<const TInputScope extends string | undefined, const TCellSchema extends ImplicitAllowedTypes, const TColumnSchema extends ColumnSchemaBase<TInputScope>, const TRowSchema extends RowSchemaBase<TInputScope, TCellSchema>>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table">, NodeKind.Object, TreeNode & TableSchema.Table<TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table">, NodeKind, unknown>, object & {
|
|
133
|
+
readonly rows: (import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRowSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>> | undefined) => TreeArrayNode<TRowSchema, [TRowSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRowSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRowSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRowSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>> | undefined) => TreeArrayNode<TRowSchema, [TRowSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRowSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRowSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>)> | undefined) & import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRowSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>> | undefined) => TreeArrayNode<TRowSchema, [TRowSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRowSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRowSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRowSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>> | undefined) => TreeArrayNode<TRowSchema, [TRowSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRowSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRowSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>)>;
|
|
134
|
+
readonly columns: (import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumnSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>> | undefined) => TreeArrayNode<TColumnSchema, [TColumnSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumnSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumnSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumnSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>> | undefined) => TreeArrayNode<TColumnSchema, [TColumnSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumnSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumnSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>)> | undefined) & import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumnSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>> | undefined) => TreeArrayNode<TColumnSchema, [TColumnSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumnSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumnSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumnSchema, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>>, unknown> & (new (data?: InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>> | undefined) => TreeArrayNode<TColumnSchema, [TColumnSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumnSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumnSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>)>;
|
|
135
|
+
}, true, {
|
|
136
|
+
readonly rows: TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, TreeArrayNode<TRowSchema, [TRowSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRowSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRowSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRowSchema>>, true, TRowSchema, undefined>;
|
|
137
|
+
readonly columns: TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, TreeArrayNode<TColumnSchema, [TColumnSchema] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumnSchema> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumnSchema] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumnSchema>>, true, TColumnSchema, undefined>;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* Base row schema type.
|
|
141
|
+
* @sealed @system @internal
|
|
142
|
+
*/
|
|
143
|
+
type TableSchemaBase<TScope extends string | undefined, TCell extends ImplicitAllowedTypes, TColumn extends ColumnSchemaBase<TScope>, TRow extends RowSchemaBase<TScope, TCell>> = ReturnType<typeof createTableInternal<TScope, TCell, TColumn, TRow>>;
|
|
144
|
+
}
|
|
6
145
|
/**
|
|
7
146
|
* Contains types and factories for creating schema to represent dynamic tabular data.
|
|
8
|
-
*
|
|
147
|
+
*
|
|
148
|
+
* @remarks
|
|
149
|
+
*
|
|
150
|
+
* Tables created using these APIs are...
|
|
151
|
+
*
|
|
152
|
+
* - sparse, meaning that cells may be omitted, and new rows are empty by default.
|
|
153
|
+
*
|
|
154
|
+
* - dynamic, meaning that their structure can be modified at runtime.
|
|
155
|
+
* Columns and rows can be inserted, removed, modified, and reordered.
|
|
156
|
+
* Cells can be inserted, removed, and modified.
|
|
157
|
+
*
|
|
158
|
+
* - row-major, meaning that operating on rows (including inserts, removal, moves, and traversal) is more efficient than operating on columns.
|
|
159
|
+
*
|
|
160
|
+
* Column and Row schema created using these APIs are extensible via the `props` field.
|
|
161
|
+
* This allows association of additional properties with column and row nodes.
|
|
162
|
+
*
|
|
163
|
+
* Note: for now it is possible for table cells to become "orphaned".
|
|
164
|
+
* That is, it is possible to enter a state where one or more rows contain cells with no corresponding column.
|
|
165
|
+
* To help avoid this situation, you can manually remove corresponding cells when removing columns.
|
|
166
|
+
* Either way, it is possible to enter such a state via the merging of edits.
|
|
167
|
+
* For example: one client might add a row while another concurrently removes a column, orphaning the cell where the column and row intersected.
|
|
168
|
+
*
|
|
169
|
+
* @example Using default Column and Row schema
|
|
170
|
+
*
|
|
171
|
+
* ```typescript
|
|
172
|
+
* class Cell extends schemaFactory.object("TableCell", {
|
|
173
|
+
* value: schemaFactory.string,
|
|
174
|
+
* }) {}
|
|
175
|
+
*
|
|
176
|
+
* class Table extends TableSchema.createTable({
|
|
177
|
+
* schemaFactory,
|
|
178
|
+
* cell: Cell,
|
|
179
|
+
* }) {}
|
|
180
|
+
*
|
|
181
|
+
* const table = new Table({
|
|
182
|
+
* columns: [{ id: "column-0" }],
|
|
183
|
+
* rows: [{ id: "row-0", cells: {} }],
|
|
184
|
+
* });
|
|
185
|
+
* ```
|
|
186
|
+
*
|
|
187
|
+
* @example Customizing Column and Row schema
|
|
188
|
+
*
|
|
189
|
+
* ```typescript
|
|
190
|
+
* class Cell extends schemaFactory.object("TableCell", {
|
|
191
|
+
* value: schemaFactory.string,
|
|
192
|
+
* }) {}
|
|
193
|
+
*
|
|
194
|
+
* class ColumnProps extends schemaFactory.object("TableColumnProps", {
|
|
195
|
+
* // Column label to display.
|
|
196
|
+
* label: schemaFactory.string,
|
|
197
|
+
* // The type of data represented by the cells. Default: string.
|
|
198
|
+
* dataType: schemaFactory.optional(schemaFactory.string),
|
|
199
|
+
* }) {}
|
|
200
|
+
*
|
|
201
|
+
* class Column extends TableSchema.createColumn({
|
|
202
|
+
* schemaFactory,
|
|
203
|
+
* props: ColumnProps,
|
|
204
|
+
* }) {}
|
|
205
|
+
*
|
|
206
|
+
* class Row extends TableSchema.createRow({
|
|
207
|
+
* schemaFactory,
|
|
208
|
+
* cell: Cell,
|
|
209
|
+
* }) {}
|
|
210
|
+
*
|
|
211
|
+
* class Table extends TableSchema.createTable({
|
|
212
|
+
* schemaFactory,
|
|
213
|
+
* cell: Cell,
|
|
214
|
+
* column: Column,
|
|
215
|
+
* row: Row,
|
|
216
|
+
* }) {}
|
|
217
|
+
*
|
|
218
|
+
* const table = new Table({
|
|
219
|
+
* columns: [
|
|
220
|
+
* new Column({ props: { label: "Entry", dataType: "string" } }),
|
|
221
|
+
* new Column({ props: { label: "Date", dataType: "date" } }),
|
|
222
|
+
* new Column({ props: { label: "Amount", dataType: "number" } }),
|
|
223
|
+
* ],
|
|
224
|
+
* rows: [],
|
|
225
|
+
* });
|
|
226
|
+
* ```
|
|
227
|
+
*
|
|
228
|
+
* @privateRemarks
|
|
229
|
+
* The above examples are backed by tests in `tableSchema.spec.ts`.
|
|
230
|
+
* Those tests and these examples should be kept in-sync to ensure that the examples are correct.
|
|
231
|
+
*
|
|
9
232
|
* @internal
|
|
10
233
|
*/
|
|
11
234
|
export declare namespace TableSchema {
|
|
12
235
|
/**
|
|
13
236
|
* A column in a table.
|
|
14
|
-
* @remarks Implemented by the schema class returned from {@link TableSchema.createColumn}.
|
|
237
|
+
* @remarks Implemented by the schema class returned from {@link TableSchema.(createColumn:2)}.
|
|
15
238
|
* @sealed @internal
|
|
16
239
|
*/
|
|
17
|
-
interface
|
|
240
|
+
interface Column<TProps extends ImplicitAnnotatedFieldSchema = ImplicitAnnotatedFieldSchema> {
|
|
18
241
|
/**
|
|
19
242
|
* The unique identifier of the column.
|
|
20
243
|
* @remarks Uniquely identifies the node within the entire tree, not just the table.
|
|
21
244
|
*/
|
|
22
245
|
readonly id: string;
|
|
23
246
|
/**
|
|
24
|
-
*
|
|
247
|
+
* The column's properties.
|
|
248
|
+
* @remarks This is a user-defined schema that can be used to store additional information about the column.
|
|
249
|
+
* @privateRemarks
|
|
250
|
+
* Note: these docs are duplicated on the inline type definitions in {@link createColumn}.
|
|
251
|
+
* If you update the docs here, please also update the inline type definitions.
|
|
25
252
|
*/
|
|
26
|
-
get props():
|
|
27
|
-
set props(value:
|
|
253
|
+
get props(): TreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TProps>>;
|
|
254
|
+
set props(value: InsertableTreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TProps>>);
|
|
28
255
|
}
|
|
29
256
|
/**
|
|
30
257
|
* Factory for creating new table column schema.
|
|
31
|
-
* @privateRemarks
|
|
32
|
-
* TODO:
|
|
33
|
-
* - Add overloads to make propsSchema optional.
|
|
34
|
-
* - Take field schema rather than node schema for `propsSchema`, in particular to allow making
|
|
35
|
-
* the additional properties optional.
|
|
36
258
|
* @internal
|
|
37
259
|
*/
|
|
38
|
-
function createColumn<const
|
|
39
|
-
readonly id?: string | undefined;
|
|
40
|
-
readonly props: InsertableTreeNodeFromImplicitAllowedTypes<TPropsSchema> | (undefined & InsertableTreeNodeFromImplicitAllowedTypes<TPropsSchema>);
|
|
41
|
-
}, true, {
|
|
42
|
-
readonly id: import("./simple-tree/schemaTypes.js").FieldSchema<import("./simple-tree/schemaTypes.js").FieldKind.Identifier, import("./simple-tree/leafNodeSchema.js").LeafSchema<"string", string>, unknown>;
|
|
43
|
-
readonly props: import("./simple-tree/schemaTypes.js").FieldSchema<import("./simple-tree/schemaTypes.js").FieldKind.Required, TPropsSchema, unknown>;
|
|
44
|
-
}>;
|
|
260
|
+
function createColumn<const TScope extends string | undefined>({ schemaFactory, }: System_TableSchema.CreateColumnOptionsBase<SchemaFactoryAlpha<TScope>>): System_TableSchema.ColumnSchemaBase<TScope, System_TableSchema.DefaultPropsType>;
|
|
45
261
|
/**
|
|
46
|
-
*
|
|
47
|
-
* @
|
|
262
|
+
* Factory for creating new table column schema.
|
|
263
|
+
* @internal
|
|
48
264
|
*/
|
|
49
|
-
|
|
265
|
+
function createColumn<const TScope extends string | undefined, const TProps extends ImplicitAnnotatedFieldSchema>({ schemaFactory, props, }: System_TableSchema.CreateColumnOptionsBase<SchemaFactoryAlpha<TScope>> & {
|
|
266
|
+
/**
|
|
267
|
+
* Optional column properties.
|
|
268
|
+
*/
|
|
269
|
+
readonly props: TProps;
|
|
270
|
+
}): System_TableSchema.ColumnSchemaBase<TScope, TProps>;
|
|
50
271
|
/**
|
|
51
272
|
* A row in a table.
|
|
52
|
-
* @remarks Implemented by the schema class returned from {@link TableSchema.createRow}.
|
|
273
|
+
* @remarks Implemented by the schema class returned from {@link TableSchema.(createRow:2)}.
|
|
53
274
|
* @sealed @internal
|
|
54
275
|
*/
|
|
55
|
-
interface
|
|
276
|
+
interface Row<TCell extends ImplicitAllowedTypes = ImplicitAllowedTypes, TProps extends ImplicitAnnotatedFieldSchema = ImplicitAnnotatedFieldSchema> {
|
|
56
277
|
/**
|
|
57
278
|
* The unique identifier of the row.
|
|
58
279
|
* @remarks Uniquely identifies the node within the entire tree, not just the table.
|
|
@@ -61,83 +282,80 @@ export declare namespace TableSchema {
|
|
|
61
282
|
/**
|
|
62
283
|
* Gets the cell in the specified column.
|
|
63
284
|
* @returns The cell if it exists, otherwise undefined.
|
|
285
|
+
* @privateRemarks TODO: throw if the column does not belong to the same table as the row.
|
|
64
286
|
*/
|
|
65
|
-
getCell(column:
|
|
287
|
+
getCell(column: Column): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
66
288
|
/**
|
|
67
289
|
* Gets the cell in the specified column, denoted by column ID.
|
|
68
290
|
* @returns The cell if it exists, otherwise undefined.
|
|
69
291
|
*/
|
|
70
|
-
getCell(columnId: string): TreeNodeFromImplicitAllowedTypes<
|
|
292
|
+
getCell(columnId: string): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
71
293
|
/**
|
|
72
294
|
* Sets the cell in the specified column.
|
|
73
|
-
* @remarks To remove a cell, call {@link TableSchema.
|
|
295
|
+
* @remarks To remove a cell, call {@link TableSchema.Row.(removeCell:1)} instead.
|
|
296
|
+
* @privateRemarks TODO: Throw an error if the column does not exist in the table.
|
|
74
297
|
*/
|
|
75
|
-
setCell(column:
|
|
298
|
+
setCell(column: Column, value: InsertableTreeNodeFromImplicitAllowedTypes<TCell>): void;
|
|
76
299
|
/**
|
|
77
300
|
* Sets the cell in the specified column, denoted by column ID.
|
|
78
|
-
* @remarks To remove a cell, call {@link TableSchema.
|
|
301
|
+
* @remarks To remove a cell, call {@link TableSchema.Row.(removeCell:2)} instead.
|
|
79
302
|
*/
|
|
80
|
-
setCell(columnId: string, value: InsertableTreeNodeFromImplicitAllowedTypes<
|
|
303
|
+
setCell(columnId: string, value: InsertableTreeNodeFromImplicitAllowedTypes<TCell>): void;
|
|
81
304
|
/**
|
|
82
305
|
* Removes the cell in the specified column.
|
|
83
|
-
* @
|
|
306
|
+
* @returns The cell if it exists, otherwise undefined.
|
|
307
|
+
* @privateRemarks TODO: Throw if the column does not belong to the same table as the row.
|
|
84
308
|
*/
|
|
85
|
-
removeCell(column:
|
|
309
|
+
removeCell(column: Column): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
86
310
|
/**
|
|
87
311
|
* Removes the cell in the specified column, denoted by column ID.
|
|
88
|
-
* @
|
|
312
|
+
* @returns The cell if it exists, otherwise undefined.
|
|
89
313
|
*/
|
|
90
|
-
removeCell(columnId: string):
|
|
314
|
+
removeCell(columnId: string): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
91
315
|
/**
|
|
92
|
-
*
|
|
316
|
+
* The row's properties.
|
|
317
|
+
* @remarks This is a user-defined schema that can be used to store additional information about the row.
|
|
318
|
+
* @privateRemarks
|
|
319
|
+
* Note: these docs are duplicated on the inline type definitions in {@link createColumn}.
|
|
320
|
+
* If you update the docs here, please also update the inline type definitions.
|
|
93
321
|
*/
|
|
94
|
-
get props():
|
|
95
|
-
set props(value:
|
|
322
|
+
get props(): TreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TProps>>;
|
|
323
|
+
set props(value: InsertableTreeFieldFromImplicitField<UnannotateImplicitFieldSchema<TProps>>);
|
|
96
324
|
}
|
|
97
325
|
/**
|
|
98
|
-
* Factory for creating new table
|
|
99
|
-
*
|
|
100
|
-
* @privateRemarks
|
|
101
|
-
* TODO:
|
|
102
|
-
* - Add overloads to make propsSchema optional.
|
|
103
|
-
* - Take field schema rather than node schema for `propsSchema`, in particular to allow making
|
|
104
|
-
* the additional properties optional.
|
|
105
|
-
*
|
|
106
|
-
* @sealed @internal
|
|
326
|
+
* Factory for creating new table column schema.
|
|
327
|
+
* @internal
|
|
107
328
|
*/
|
|
108
|
-
function createRow<const
|
|
109
|
-
readonly id?: string | undefined;
|
|
110
|
-
readonly cells: (import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, true, TCellSchema, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema> | undefined) => import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, true, TCellSchema, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema> | undefined) => import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>)> | undefined) & import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, true, TCellSchema, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema> | undefined) => import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, true, TCellSchema, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema> | undefined) => import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>)>;
|
|
111
|
-
readonly props: InsertableTreeNodeFromImplicitAllowedTypes<TPropsSchema> | (undefined & InsertableTreeNodeFromImplicitAllowedTypes<TPropsSchema>);
|
|
112
|
-
}, true, {
|
|
113
|
-
readonly id: import("./simple-tree/schemaTypes.js").FieldSchema<import("./simple-tree/schemaTypes.js").FieldKind.Identifier, import("./simple-tree/leafNodeSchema.js").LeafSchema<"string", string>, unknown>;
|
|
114
|
-
readonly cells: TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, import("./simple-tree/mapNode.js").TreeMapNode<TCellSchema> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Row.cells">, NodeKind.Map, unknown>, import("./simple-tree/mapNode.js").MapNodeInsertableData<TCellSchema>, true, TCellSchema, undefined>;
|
|
115
|
-
readonly props: import("./simple-tree/schemaTypes.js").FieldSchema<import("./simple-tree/schemaTypes.js").FieldKind.Required, TPropsSchema, unknown>;
|
|
116
|
-
}>;
|
|
329
|
+
function createRow<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes>({ schemaFactory, cell, }: System_TableSchema.CreateRowOptionsBase<SchemaFactoryAlpha<TScope>, TCell>): System_TableSchema.RowSchemaBase<TScope, TCell, System_TableSchema.DefaultPropsType>;
|
|
117
330
|
/**
|
|
118
|
-
*
|
|
119
|
-
* @
|
|
331
|
+
* Factory for creating new table column schema.
|
|
332
|
+
* @internal
|
|
120
333
|
*/
|
|
121
|
-
|
|
334
|
+
function createRow<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitAnnotatedFieldSchema>({ schemaFactory, cell, props, }: System_TableSchema.CreateRowOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
|
|
335
|
+
/**
|
|
336
|
+
* Optional row properties.
|
|
337
|
+
*/
|
|
338
|
+
readonly props: TProps;
|
|
339
|
+
}): System_TableSchema.RowSchemaBase<TScope, TCell, TProps>;
|
|
122
340
|
/**
|
|
123
|
-
* A key to uniquely identify a cell
|
|
124
|
-
* @
|
|
341
|
+
* A key to uniquely identify a cell within a table.
|
|
342
|
+
* @internal
|
|
125
343
|
*/
|
|
126
|
-
interface CellKey {
|
|
344
|
+
interface CellKey<TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
127
345
|
/**
|
|
128
|
-
* {@link TableSchema.
|
|
346
|
+
* {@link TableSchema.Column} or {@link TableSchema.Column.id} at which the cell is located.
|
|
129
347
|
*/
|
|
130
|
-
readonly
|
|
348
|
+
readonly column: string | TreeNodeFromImplicitAllowedTypes<TColumn>;
|
|
131
349
|
/**
|
|
132
|
-
* {@link TableSchema.
|
|
350
|
+
* {@link TableSchema.Row} or {@link TableSchema.Row.id} at which the cell is located.
|
|
133
351
|
*/
|
|
134
|
-
readonly
|
|
352
|
+
readonly row: string | TreeNodeFromImplicitAllowedTypes<TRow>;
|
|
135
353
|
}
|
|
136
354
|
/**
|
|
137
|
-
* {@link TableSchema.
|
|
138
|
-
* @
|
|
355
|
+
* {@link TableSchema.Table.insertColumn} parameters.
|
|
356
|
+
* @internal
|
|
139
357
|
*/
|
|
140
|
-
interface InsertColumnParameters<
|
|
358
|
+
interface InsertColumnParameters<TColumn extends ImplicitAllowedTypes> {
|
|
141
359
|
/**
|
|
142
360
|
* The index at which to insert the new column.
|
|
143
361
|
* @remarks If not provided, the column will be appended to the end of the table.
|
|
@@ -146,13 +364,43 @@ export declare namespace TableSchema {
|
|
|
146
364
|
/**
|
|
147
365
|
* The column to insert.
|
|
148
366
|
*/
|
|
149
|
-
readonly column:
|
|
367
|
+
readonly column: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>;
|
|
150
368
|
}
|
|
151
369
|
/**
|
|
152
|
-
* {@link TableSchema.
|
|
153
|
-
* @
|
|
370
|
+
* {@link TableSchema.Table.insertColumns} parameters.
|
|
371
|
+
* @internal
|
|
372
|
+
*/
|
|
373
|
+
interface InsertColumnsParameters<TColumn extends ImplicitAllowedTypes> {
|
|
374
|
+
/**
|
|
375
|
+
* The index at which to insert the new columns.
|
|
376
|
+
* @remarks If not provided, the columns will be appended to the end of the table.
|
|
377
|
+
*/
|
|
378
|
+
readonly index?: number | undefined;
|
|
379
|
+
/**
|
|
380
|
+
* The columns to insert.
|
|
381
|
+
*/
|
|
382
|
+
readonly columns: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* {@link TableSchema.Table.insertRow} parameters.
|
|
386
|
+
* @internal
|
|
154
387
|
*/
|
|
155
|
-
interface
|
|
388
|
+
interface InsertRowParameters<TRow extends ImplicitAllowedTypes> {
|
|
389
|
+
/**
|
|
390
|
+
* The index at which to insert the new row.
|
|
391
|
+
* @remarks If not provided, the row will be appended to the end of the table.
|
|
392
|
+
*/
|
|
393
|
+
readonly index?: number | undefined;
|
|
394
|
+
/**
|
|
395
|
+
* The row to insert.
|
|
396
|
+
*/
|
|
397
|
+
readonly row: InsertableTreeNodeFromImplicitAllowedTypes<TRow>;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* {@link TableSchema.Table.insertRows} parameters.
|
|
401
|
+
* @internal
|
|
402
|
+
*/
|
|
403
|
+
interface InsertRowsParameters<TRow extends ImplicitAllowedTypes> {
|
|
156
404
|
/**
|
|
157
405
|
* The index at which to insert the new rows.
|
|
158
406
|
* @remarks If not provided, the rows will be appended to the end of the table.
|
|
@@ -161,119 +409,201 @@ export declare namespace TableSchema {
|
|
|
161
409
|
/**
|
|
162
410
|
* The rows to insert.
|
|
163
411
|
*/
|
|
164
|
-
readonly rows:
|
|
412
|
+
readonly rows: InsertableTreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
165
413
|
}
|
|
166
414
|
/**
|
|
167
|
-
* {@link TableSchema.
|
|
168
|
-
* @
|
|
415
|
+
* {@link TableSchema.Table.setCell} parameters.
|
|
416
|
+
* @internal
|
|
169
417
|
*/
|
|
170
|
-
interface SetCellParameters<
|
|
418
|
+
interface SetCellParameters<TCell extends ImplicitAllowedTypes, TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
171
419
|
/**
|
|
172
420
|
* The key to uniquely identify a cell in a table.
|
|
173
421
|
*/
|
|
174
|
-
readonly key: CellKey
|
|
422
|
+
readonly key: CellKey<TColumn, TRow>;
|
|
175
423
|
/**
|
|
176
424
|
* The cell to set.
|
|
177
425
|
*/
|
|
178
|
-
readonly cell:
|
|
426
|
+
readonly cell: InsertableTreeNodeFromImplicitAllowedTypes<TCell>;
|
|
179
427
|
}
|
|
180
428
|
/**
|
|
181
429
|
* A table.
|
|
182
430
|
* @sealed @internal
|
|
183
431
|
*/
|
|
184
|
-
interface
|
|
432
|
+
interface Table<TCell extends ImplicitAllowedTypes, TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
185
433
|
/**
|
|
186
434
|
* The table's columns.
|
|
187
435
|
*/
|
|
188
|
-
readonly columns: TreeArrayNode<
|
|
436
|
+
readonly columns: TreeArrayNode<TColumn>;
|
|
189
437
|
/**
|
|
190
438
|
* The table's rows.
|
|
191
439
|
*/
|
|
192
|
-
readonly rows: TreeArrayNode<
|
|
440
|
+
readonly rows: TreeArrayNode<TRow>;
|
|
193
441
|
/**
|
|
194
|
-
* Gets a table column by its {@link TableSchema.
|
|
442
|
+
* Gets a table column by its {@link TableSchema.Column.id}.
|
|
195
443
|
*/
|
|
196
|
-
getColumn(id: string): TreeNodeFromImplicitAllowedTypes<
|
|
444
|
+
getColumn(id: string): TreeNodeFromImplicitAllowedTypes<TColumn> | undefined;
|
|
197
445
|
/**
|
|
198
|
-
* Gets a table row by its {@link TableSchema.
|
|
446
|
+
* Gets a table row by its {@link TableSchema.Row.id}.
|
|
199
447
|
*/
|
|
200
|
-
getRow(id: string): TreeNodeFromImplicitAllowedTypes<
|
|
448
|
+
getRow(id: string): TreeNodeFromImplicitAllowedTypes<TRow> | undefined;
|
|
201
449
|
/**
|
|
202
450
|
* Gets a cell in the table by column and row IDs.
|
|
203
451
|
* @param key - A key that uniquely distinguishes a cell in the table, represented as a combination of the column ID and row ID.
|
|
204
|
-
* @privateRemarks TODO: add overload that takes row and column nodes.
|
|
205
452
|
*/
|
|
206
|
-
getCell(key: CellKey): TreeNodeFromImplicitAllowedTypes<
|
|
453
|
+
getCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
207
454
|
/**
|
|
208
455
|
* Inserts a column into the table.
|
|
209
|
-
*
|
|
456
|
+
*
|
|
457
|
+
* @throws
|
|
458
|
+
* Throws an error in the following cases:
|
|
459
|
+
*
|
|
460
|
+
* - The column, or a column with the same ID is already in the tree.
|
|
461
|
+
*
|
|
462
|
+
* - The specified index is out of range.
|
|
463
|
+
*
|
|
464
|
+
* No column is inserted in these cases.
|
|
465
|
+
*/
|
|
466
|
+
insertColumn(params: InsertColumnParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>;
|
|
467
|
+
/**
|
|
468
|
+
* Inserts 0 or more columns into the table.
|
|
469
|
+
*
|
|
470
|
+
* @throws
|
|
471
|
+
* Throws an error in the following cases:
|
|
472
|
+
*
|
|
473
|
+
* - At least one column, or a column with the same ID is already in the tree.
|
|
474
|
+
*
|
|
475
|
+
* - The specified index is out of range.
|
|
476
|
+
*
|
|
477
|
+
* No columns are inserted in these cases.
|
|
478
|
+
*/
|
|
479
|
+
insertColumns(params: InsertColumnsParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
480
|
+
/**
|
|
481
|
+
* Inserts a row into the table.
|
|
482
|
+
*
|
|
483
|
+
* @throws
|
|
484
|
+
* Throws an error in the following cases:
|
|
485
|
+
*
|
|
486
|
+
* - The row, or a row with the same ID is already in the tree.
|
|
487
|
+
*
|
|
488
|
+
* - The row contains cells, but the table does not contain matching columns for one or more of those cells.
|
|
489
|
+
*
|
|
490
|
+
* - The specified index is out of range.
|
|
491
|
+
*
|
|
492
|
+
* No row is inserted in these cases.
|
|
210
493
|
*/
|
|
211
|
-
|
|
494
|
+
insertRow(params: InsertRowParameters<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>;
|
|
212
495
|
/**
|
|
213
496
|
* Inserts 0 or more rows into the table.
|
|
214
|
-
*
|
|
497
|
+
*
|
|
498
|
+
* @throws
|
|
499
|
+
* Throws an error in the following cases:
|
|
500
|
+
*
|
|
501
|
+
* - At least one row, or a row with the same ID is already in the tree.
|
|
502
|
+
*
|
|
503
|
+
* - The row contains cells, but the table does not contain matching columns for one or more of those cells.
|
|
504
|
+
*
|
|
505
|
+
* - The specified index is out of range.
|
|
506
|
+
*
|
|
507
|
+
* No rows are inserted in these cases.
|
|
215
508
|
*/
|
|
216
|
-
insertRows(params: InsertRowsParameters<
|
|
509
|
+
insertRows(params: InsertRowsParameters<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
217
510
|
/**
|
|
218
511
|
* Sets the cell at the specified location in the table.
|
|
219
|
-
* @remarks To remove a cell, call {@link TableSchema.
|
|
220
|
-
* @privateRemarks TODO: add overload that takes column/row nodes?
|
|
512
|
+
* @remarks To remove a cell, call {@link TableSchema.Table.removeCell} instead.
|
|
221
513
|
*/
|
|
222
|
-
setCell(params: SetCellParameters<
|
|
514
|
+
setCell(params: SetCellParameters<TCell, TColumn, TRow>): void;
|
|
223
515
|
/**
|
|
224
516
|
* Removes the specified column from the table.
|
|
225
|
-
*
|
|
226
|
-
* @
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
517
|
+
*
|
|
518
|
+
* @remarks
|
|
519
|
+
* Note: this does not remove any cells from the table's rows.
|
|
520
|
+
* To remove the corresponding cells, use {@link TableSchema.Table.removeCell}.
|
|
521
|
+
*
|
|
522
|
+
* @param column - The {@link TableSchema.Column | column} or {@link TableSchema.Column.id | column ID} to remove.
|
|
523
|
+
* @throws Throws an error if the column is not in the table.
|
|
524
|
+
* @privateRemarks TODO (future): Actually remove corresponding cells from table rows.
|
|
525
|
+
*/
|
|
526
|
+
removeColumn(column: string | TreeNodeFromImplicitAllowedTypes<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>;
|
|
527
|
+
/**
|
|
528
|
+
* Removes 0 or more columns from the table.
|
|
529
|
+
*
|
|
530
|
+
* @remarks
|
|
531
|
+
* Note: this does not remove any cells from the table's rows.
|
|
532
|
+
* To remove the corresponding cells, use {@link TableSchema.Table.removeCell}.
|
|
533
|
+
*
|
|
534
|
+
* @param columns - The columns to remove.
|
|
535
|
+
* @throws Throws an error if any of the columns are not in the table.
|
|
536
|
+
* In this case, no columns are removed.
|
|
537
|
+
*/
|
|
538
|
+
removeColumns(columns: readonly TreeNodeFromImplicitAllowedTypes<TColumn>[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
539
|
+
/**
|
|
540
|
+
* Removes 0 or more columns from the table.
|
|
541
|
+
*
|
|
542
|
+
* @remarks
|
|
543
|
+
* Note: this does not remove any cells from the table's rows.
|
|
544
|
+
* To remove the corresponding cells, use {@link TableSchema.Table.removeCell}.
|
|
545
|
+
*
|
|
546
|
+
* @param columns - The columns to remove, specified by their {@link TableSchema.Column.id}.
|
|
547
|
+
* @throws Throws an error if any of the columns are not in the table.
|
|
548
|
+
* In this case, no columns are removed.
|
|
549
|
+
*/
|
|
550
|
+
removeColumns(columns: readonly string[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
551
|
+
/**
|
|
552
|
+
* Removes all columns from the table.
|
|
553
|
+
* @returns The removed columns.
|
|
554
|
+
*/
|
|
555
|
+
removeAllColumns(): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
556
|
+
/**
|
|
557
|
+
* Removes the specified row from the table.
|
|
558
|
+
* @param row - The {@link TableSchema.Row | row} or {@link TableSchema.Row.id | row ID} to remove.
|
|
559
|
+
* @throws Throws an error if the row is not in the table.
|
|
230
560
|
*/
|
|
231
|
-
|
|
561
|
+
removeRow(row: string | TreeNodeFromImplicitAllowedTypes<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>;
|
|
232
562
|
/**
|
|
233
563
|
* Removes 0 or more rows from the table.
|
|
234
|
-
* @
|
|
564
|
+
* @param rows - The rows to remove.
|
|
565
|
+
* @throws Throws an error if any of the rows are not in the table.
|
|
566
|
+
* In this case, no rows are removed.
|
|
235
567
|
*/
|
|
236
|
-
removeRows
|
|
568
|
+
removeRows(rows: readonly TreeNodeFromImplicitAllowedTypes<TRow>[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
569
|
+
/**
|
|
570
|
+
* Removes 0 or more rows from the table.
|
|
571
|
+
* @param rows - The rows to remove, specified by their {@link TableSchema.Row.id}.
|
|
572
|
+
* @throws Throws an error if any of the rows are not in the table.
|
|
573
|
+
* In this case, no rows are removed.
|
|
574
|
+
*/
|
|
575
|
+
removeRows(rows: readonly string[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
237
576
|
/**
|
|
238
577
|
* Removes all rows from the table.
|
|
578
|
+
* @returns The removed rows.
|
|
239
579
|
*/
|
|
240
|
-
removeAllRows
|
|
580
|
+
removeAllRows(): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
241
581
|
/**
|
|
242
582
|
* Removes the cell at the specified location in the table.
|
|
243
|
-
* @
|
|
583
|
+
* @returns The cell if it exists, otherwise undefined.
|
|
584
|
+
* @throws Throws an error if the location does not exist in the table.
|
|
244
585
|
*/
|
|
245
|
-
removeCell
|
|
586
|
+
removeCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
246
587
|
}
|
|
247
588
|
/**
|
|
248
589
|
* Factory for creating new table schema without specifying row or column schema.
|
|
249
590
|
* @internal
|
|
250
591
|
*/
|
|
251
|
-
function createTable<const
|
|
592
|
+
function createTable<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes>({ schemaFactory, cell, }: System_TableSchema.TableFactoryOptionsBase<SchemaFactoryAlpha<TScope>, TCell>): System_TableSchema.TableSchemaBase<TScope, TCell, System_TableSchema.ColumnSchemaBase<TScope, System_TableSchema.DefaultPropsType>, System_TableSchema.RowSchemaBase<TScope, TCell, System_TableSchema.DefaultPropsType>>;
|
|
252
593
|
/**
|
|
253
|
-
* Factory for creating new table schema without specifying row schema
|
|
594
|
+
* Factory for creating new table schema without specifying row schema.
|
|
254
595
|
* @internal
|
|
255
596
|
*/
|
|
256
|
-
function createTable<const
|
|
597
|
+
function createTable<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TColumn extends System_TableSchema.ColumnSchemaBase<TScope>>({ schemaFactory, cell, column, }: System_TableSchema.TableFactoryOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
|
|
598
|
+
readonly column: TColumn;
|
|
599
|
+
}): System_TableSchema.TableSchemaBase<TScope, TCell, TColumn, System_TableSchema.RowSchemaBase<TScope, TCell, System_TableSchema.DefaultPropsType>>;
|
|
257
600
|
/**
|
|
258
601
|
* Factory for creating new table schema.
|
|
259
602
|
* @internal
|
|
260
603
|
*/
|
|
261
|
-
function createTable<const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
*/
|
|
266
|
-
function createTableInternal<const TInputScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TColumn extends ColumnSchemaBase<TInputScope, ImplicitAllowedTypes> = ColumnSchemaBase<TInputScope, ImplicitAllowedTypes>, const TRow extends RowSchemaBase<TInputScope, TCell, ImplicitAllowedTypes> = RowSchemaBase<TInputScope, TCell, ImplicitAllowedTypes>>(inputSchemaFactory: SchemaFactoryAlpha<TInputScope>, _cellSchema: TCell, columnSchema: TColumn, rowSchema: TRow): TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table">, NodeKind.Object, TreeNode & ITable<TCell, TColumn, TRow> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table">, NodeKind, unknown>, object & {
|
|
267
|
-
readonly rows: (import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRow, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>> | undefined) => TreeArrayNode<TRow, [TRow] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRow> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRow] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRow> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRow, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>> | undefined) => TreeArrayNode<TRow, [TRow] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRow> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRow] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRow> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>)> | undefined) & import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRow, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>> | undefined) => TreeArrayNode<TRow, [TRow] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRow> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRow] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRow> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, true, TRow, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>> | undefined) => TreeArrayNode<TRow, [TRow] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRow> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRow] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRow> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>)>;
|
|
268
|
-
readonly columns: (import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumn, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>> | undefined) => TreeArrayNode<TColumn, [TColumn] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumn> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumn] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumn> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumn, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>> | undefined) => TreeArrayNode<TColumn, [TColumn] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumn> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumn] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumn> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>)> | undefined) & import("./simple-tree/schemaTypes.js").InsertableTypedNode<import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumn, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>> | undefined) => TreeArrayNode<TColumn, [TColumn] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumn> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumn] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumn> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>), import("./simple-tree/index.js").TreeNodeSchemaCore<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, true, TColumn, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>>, unknown> & (new (data?: import("./simple-tree/index.js").InternalTreeNode | Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>> | undefined) => TreeArrayNode<TColumn, [TColumn] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumn> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumn] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumn> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>)>;
|
|
269
|
-
}, true, {
|
|
270
|
-
readonly rows: TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, TreeArrayNode<TRow, [TRow] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TRow> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TRow] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TRow> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.rows">, NodeKind.Array, unknown>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>>, true, TRow, undefined>;
|
|
271
|
-
readonly columns: TreeNodeSchemaClass<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, TreeArrayNode<TColumn, [TColumn] extends [ImplicitAllowedTypes] ? TreeNodeFromImplicitAllowedTypes<TColumn> : TreeNodeFromImplicitAllowedTypes<ImplicitAllowedTypes>, [TColumn] extends [ImplicitAllowedTypes] ? InsertableTreeNodeFromImplicitAllowedTypes<TColumn> : never, import("./simple-tree/arrayNode.js").ReadonlyArrayNode<TreeNode | import("./simple-tree/schemaTypes.js").TreeLeafValue>> & WithType<ScopedSchemaName<ScopedSchemaName<TInputScope, "table">, "Table.columns">, NodeKind.Array, unknown>, Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>>, true, TColumn, undefined>;
|
|
272
|
-
}>;
|
|
273
|
-
/**
|
|
274
|
-
* Base row schema type.
|
|
275
|
-
* @sealed @system @internal
|
|
276
|
-
*/
|
|
277
|
-
type TableSchemaBase<TScope extends string | undefined, TCell extends ImplicitAllowedTypes, TColumn extends ColumnSchemaBase<TScope, ImplicitAllowedTypes> = ColumnSchemaBase<TScope, ImplicitAllowedTypes>, TRow extends RowSchemaBase<TScope, TCell, ImplicitAllowedTypes> = RowSchemaBase<TScope, TCell, ImplicitAllowedTypes>> = ReturnType<typeof createTable<TScope, TCell, TColumn, TRow>>;
|
|
604
|
+
function createTable<const TScope extends string | undefined, const TCell extends ImplicitAllowedTypes, const TColumn extends System_TableSchema.ColumnSchemaBase<TScope>, const TRow extends System_TableSchema.RowSchemaBase<TScope, TCell>>({ schemaFactory, cell, column, row, }: System_TableSchema.TableFactoryOptionsBase<SchemaFactoryAlpha<TScope>, TCell> & {
|
|
605
|
+
readonly column: TColumn;
|
|
606
|
+
readonly row: TRow;
|
|
607
|
+
}): System_TableSchema.TableSchemaBase<TScope, TCell, TColumn, TRow>;
|
|
278
608
|
}
|
|
279
609
|
//# sourceMappingURL=tableSchema.d.ts.map
|