fluid-framework 2.81.1 → 2.82.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/CHANGELOG.md +125 -0
- package/api-report/fluid-framework.alpha.api.md +58 -26
- package/api-report/fluid-framework.beta.api.md +150 -1
- package/api-report/fluid-framework.legacy.beta.api.md +150 -1
- package/api-report/fluid-framework.legacy.public.api.md +1 -0
- package/api-report/fluid-framework.public.api.md +1 -0
- package/dist/alpha.d.ts +8 -2
- package/dist/beta.d.ts +3 -0
- package/dist/legacy.d.ts +3 -0
- package/eslint.config.mts +1 -12
- package/lib/alpha.d.ts +8 -2
- package/lib/beta.d.ts +3 -0
- package/lib/legacy.d.ts +3 -0
- package/package.json +14 -14
- package/biome.jsonc +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,130 @@
|
|
|
1
1
|
# fluid-framework
|
|
2
2
|
|
|
3
|
+
## 2.82.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Promote MinimumVersionForCollab to beta ([#26342](https://github.com/microsoft/FluidFramework/pull/26342)) [2bb53c5c3f1](https://github.com/microsoft/FluidFramework/commit/2bb53c5c3f1aa9e3232d4a1f1e4a6a32d09248eb)
|
|
8
|
+
|
|
9
|
+
Promotes the [MinimumVersionForCollab](https://fluidframework.com/docs/api/runtime-definitions/minimumversionforcollab-typealias) type to beta, and adds option to [configuredSharedTreeBeta](https://fluidframework.com/docs/api/fluid-framework#configuredsharedtreebeta-function) for specifying it when creating a new `SharedTree`.
|
|
10
|
+
|
|
11
|
+
This allows users to opt into new features and optimizations that are only available when certain minimum version thresholds are guaranteed.
|
|
12
|
+
For more details, see [FluidClientVersion](https://fluidframework.com/docs/api/fluid-framework#fluidclientversion-variable)
|
|
13
|
+
|
|
14
|
+
#### Example usage
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Configure SharedTree DDS to limit the features it requires of collaborators and future document users to only those available in version `2.80.0` and later, overriding the `MinimumVersionForCollab` provided by the runtime (default: "2.0.0").
|
|
18
|
+
// Edits made to this DDS by this client might cause clients older than the specified version to be unable to open the document and/or error out of collaboration sessions.
|
|
19
|
+
const SharedTree = configuredSharedTreeBeta({
|
|
20
|
+
minVersionForCollab: FluidClientVersion.v2_80,
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- Add "push" as alias for insertAtEnd on TreeArrayNode ([#26260](https://github.com/microsoft/FluidFramework/pull/26260)) [e2ed71b014d](https://github.com/microsoft/FluidFramework/commit/e2ed71b014d44762e433841cada4667dd501e9c1)
|
|
25
|
+
|
|
26
|
+
Adds `push` as an alias to make the API more intuitive and reduce friction for both `LLM`-generated code and developers familiar with JavaScript array semantics.
|
|
27
|
+
|
|
28
|
+
#### Usage
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
import { TreeArrayNode } from "@fluidframework/tree";
|
|
32
|
+
|
|
33
|
+
// `inventory` is a TreeArrayNode from your schema.
|
|
34
|
+
inventory.push({ name: "Apples", quantity: 3 });
|
|
35
|
+
|
|
36
|
+
// Insert multiple items in one call.
|
|
37
|
+
inventory.push(
|
|
38
|
+
TreeArrayNode.spread([
|
|
39
|
+
{ name: "Oranges", quantity: 2 },
|
|
40
|
+
{ name: "Bananas", quantity: 5 },
|
|
41
|
+
]),
|
|
42
|
+
);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- Promote TableSchema APIs to beta ([#26339](https://github.com/microsoft/FluidFramework/pull/26339)) [36a625a3058](https://github.com/microsoft/FluidFramework/commit/36a625a305878a267d2010ace377ff0d80d3367d)
|
|
46
|
+
|
|
47
|
+
Promotes the `SharedTree` [TableSchema](https://fluidframework.com/docs/api/fluid-framework/tableschema-namespace) from alpha to beta.
|
|
48
|
+
These APIs can now be imported via `@fluidframework/tree/beta`.
|
|
49
|
+
Documents from before this are not supported with the beta version of the schema to ensure orphan cell invariants can be guaranteed.
|
|
50
|
+
|
|
51
|
+
- Fix bug in multi-step move of array elements ([#26344](https://github.com/microsoft/FluidFramework/pull/26344)) [1bca56c3fb2](https://github.com/microsoft/FluidFramework/commit/1bca56c3fb2ade3ad876e8761366053e5295490b)
|
|
52
|
+
|
|
53
|
+
A multi-step move can be authored by moving the same array element multiple times within the scope of a single transaction.
|
|
54
|
+
Such multi-step would lead to errors in the following scenarios:
|
|
55
|
+
- Reverting a multi-step move would fail with error code 0x92a on the peer attempting the revert, thus putting the peer in a broken read-only state without corrupting the document.
|
|
56
|
+
- If the set of pending edits generated by a peer included an edit with a multi-step move, followed by further edits to any of the moved items, reconciling these edits with concurrent edits sequenced earlier could lead to a document corruption with error code 0x9c7.
|
|
57
|
+
|
|
58
|
+
These operations are now safe.
|
|
59
|
+
|
|
60
|
+
- Adds optional "label" parameter to runTransaction for grouping changes ([#25938](https://github.com/microsoft/FluidFramework/pull/25938)) [cca4db29c72](https://github.com/microsoft/FluidFramework/commit/cca4db29c722aca3fbfa5c0b45a852cd8499a17a)
|
|
61
|
+
|
|
62
|
+
Transaction labels can be used to group multiple changes for undo/redo, where groups of changes with the same label can be undone together. When multiple labels are used in nested transactions, only the outermost label will be used.
|
|
63
|
+
|
|
64
|
+
The following example demonstrates how to implement label-based undo/redo grouping. It listens to the `changed` event on the checkout to collect all commits with the same label into a group. When `undoLatestGroup()` is called, all transactions in that group are reverted together with a single operation.
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
interface LabeledGroup {
|
|
68
|
+
label: unknown;
|
|
69
|
+
revertibles: { revert(): void }[];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const undoGroups: LabeledGroup[] = [];
|
|
73
|
+
|
|
74
|
+
// The callback on the "changed" event can be used to group the commits.
|
|
75
|
+
view.checkout.events.on("changed", (meta, getRevertible) => {
|
|
76
|
+
// Only process local edits, not remote changes or Undo/Redo operations
|
|
77
|
+
if (getRevertible !== undefined && meta.kind === CommitKind.Default) {
|
|
78
|
+
const label = meta.label;
|
|
79
|
+
const revertible = getRevertible();
|
|
80
|
+
|
|
81
|
+
// Check if the latest group contains the same label.
|
|
82
|
+
const latestGroup = undoGroups[undoGroups.length - 1];
|
|
83
|
+
if (
|
|
84
|
+
label !== undefined &&
|
|
85
|
+
latestGroup !== undefined &&
|
|
86
|
+
label === latestGroup.label
|
|
87
|
+
) {
|
|
88
|
+
latestGroup.revertibles.push(revertible);
|
|
89
|
+
} else {
|
|
90
|
+
undoGroups.push({ label, revertibles: [revertible] });
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const undoLatestGroup = () => {
|
|
96
|
+
const latestGroup =
|
|
97
|
+
undoGroups.pop() ?? fail("There are currently no undo groups.");
|
|
98
|
+
for (const revertible of latestGroup.revertibles.reverse()) {
|
|
99
|
+
revertible.revert();
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// Group multiple transactions with the same label
|
|
104
|
+
view.runTransaction(
|
|
105
|
+
() => {
|
|
106
|
+
view.root.content = 1;
|
|
107
|
+
},
|
|
108
|
+
{ label: "EditGroup" },
|
|
109
|
+
);
|
|
110
|
+
view.runTransaction(
|
|
111
|
+
() => {
|
|
112
|
+
view.root.content = 2;
|
|
113
|
+
},
|
|
114
|
+
{ label: "EditGroup" },
|
|
115
|
+
);
|
|
116
|
+
view.runTransaction(
|
|
117
|
+
() => {
|
|
118
|
+
view.root.content = 3;
|
|
119
|
+
},
|
|
120
|
+
{ label: "EditGroup" },
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
// This would undo all three transactions together.
|
|
124
|
+
undoLatestGroup();
|
|
125
|
+
// view.root.content is now back to 0 (the initial state).
|
|
126
|
+
```
|
|
127
|
+
|
|
3
128
|
## 2.81.0
|
|
4
129
|
|
|
5
130
|
### Minor Changes
|
|
@@ -114,6 +114,11 @@ export const ArrayNodeSchema: {
|
|
|
114
114
|
readonly [Symbol.hasInstance]: (value: TreeNodeSchema) => value is ArrayNodeSchema;
|
|
115
115
|
};
|
|
116
116
|
|
|
117
|
+
// @alpha @sealed
|
|
118
|
+
export interface ArrayPlaceAnchor {
|
|
119
|
+
get index(): number;
|
|
120
|
+
}
|
|
121
|
+
|
|
117
122
|
// @alpha
|
|
118
123
|
export function asAlpha<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): TreeViewAlpha<TSchema>;
|
|
119
124
|
|
|
@@ -160,12 +165,16 @@ export function cloneWithReplacements(root: unknown, rootKey: string, replacer:
|
|
|
160
165
|
export type CodecName = string;
|
|
161
166
|
|
|
162
167
|
// @alpha @input
|
|
163
|
-
export interface CodecWriteOptions extends ICodecOptions {
|
|
168
|
+
export interface CodecWriteOptions extends ICodecOptions, CodecWriteOptionsBeta {
|
|
164
169
|
readonly allowPossiblyIncompatibleWriteVersionOverrides?: boolean;
|
|
165
|
-
readonly minVersionForCollab: MinimumVersionForCollab;
|
|
166
170
|
readonly writeVersionOverrides?: ReadonlyMap<CodecName, FormatVersion>;
|
|
167
171
|
}
|
|
168
172
|
|
|
173
|
+
// @beta @input
|
|
174
|
+
export interface CodecWriteOptionsBeta {
|
|
175
|
+
readonly minVersionForCollab: MinimumVersionForCollab;
|
|
176
|
+
}
|
|
177
|
+
|
|
169
178
|
// @public
|
|
170
179
|
export enum CommitKind {
|
|
171
180
|
Default = 0,
|
|
@@ -231,19 +240,22 @@ export interface ContainerSchema {
|
|
|
231
240
|
// @alpha
|
|
232
241
|
export const contentSchemaSymbol: unique symbol;
|
|
233
242
|
|
|
243
|
+
// @alpha
|
|
244
|
+
export function createArrayInsertionAnchor(node: TreeArrayNode, currentIndex: number): ArrayPlaceAnchor;
|
|
245
|
+
|
|
234
246
|
// @alpha
|
|
235
247
|
export function createIdentifierIndex<TSchema extends ImplicitFieldSchema>(view: TreeView<TSchema>): IdentifierIndex;
|
|
236
248
|
|
|
237
249
|
// @alpha
|
|
238
|
-
export function createIndependentTreeAlpha<const TSchema extends ImplicitFieldSchema>(options?:
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
250
|
+
export function createIndependentTreeAlpha<const TSchema extends ImplicitFieldSchema>(options?: CreateIndependentTreeAlphaOptions): ViewableTree & Pick<ITreeAlpha, "exportVerbose" | "exportSimpleSchema">;
|
|
251
|
+
|
|
252
|
+
// @alpha
|
|
253
|
+
export type CreateIndependentTreeAlphaOptions = ForestOptions & ((IndependentViewOptions & {
|
|
254
|
+
content?: never;
|
|
242
255
|
}) | (ICodecOptions & {
|
|
243
256
|
content: ViewContent;
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}))): ViewableTree & Pick<ITreeAlpha, "exportVerbose" | "exportSimpleSchema">;
|
|
257
|
+
idCompressor?: never;
|
|
258
|
+
}));
|
|
247
259
|
|
|
248
260
|
// @beta
|
|
249
261
|
export function createIndependentTreeBeta<const TSchema extends ImplicitFieldSchema>(options?: ForestOptions): ViewableTree;
|
|
@@ -316,6 +328,17 @@ export function evaluateLazySchema<T extends TreeNodeSchema>(value: LazyItem<T>)
|
|
|
316
328
|
// @alpha
|
|
317
329
|
export function exportCompatibilitySchemaSnapshot(config: Pick<TreeViewConfiguration, "schema">): JsonCompatibleReadOnly;
|
|
318
330
|
|
|
331
|
+
// @alpha
|
|
332
|
+
export namespace ExtensibleSchemaUnion {
|
|
333
|
+
export function extensibleSchemaUnion<const T extends readonly TreeNodeSchema[], const TScope extends string, const TName extends string>(types: T, inputSchemaFactory: SchemaFactoryBeta<TScope>, name: TName): Statics<T> & TreeNodeSchemaCore_2<ScopedSchemaName_2<`com.fluidframework.extensibleSchemaUnion<${TScope}>`, TName>, NodeKind_2, false, unknown, never, unknown> & (new (data: InternalTreeNode_2) => Members<TreeNodeFromImplicitAllowedTypes<T>> & TreeNode_2 & WithType_2<ScopedSchemaName_2<`com.fluidframework.extensibleSchemaUnion<${TScope}>`, TName>, NodeKind_2, unknown>);
|
|
334
|
+
export interface Members<T> {
|
|
335
|
+
readonly child: T | undefined;
|
|
336
|
+
}
|
|
337
|
+
export interface Statics<T extends readonly TreeNodeSchema[]> {
|
|
338
|
+
create<TThis extends TreeNodeSchema>(this: TThis, child: TreeNodeFromImplicitAllowedTypes<T>): TreeFieldFromImplicitField<TThis>;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
319
342
|
// @public @system
|
|
320
343
|
type ExtractItemType<Item extends LazyItem> = Item extends () => infer Result ? Result : Item;
|
|
321
344
|
|
|
@@ -779,9 +802,12 @@ export const incrementalSummaryHint: unique symbol;
|
|
|
779
802
|
export function independentInitializedView<const TSchema extends ImplicitFieldSchema>(config: TreeViewConfiguration<TSchema>, options: ForestOptions & ICodecOptions, content: ViewContent): TreeViewAlpha<TSchema>;
|
|
780
803
|
|
|
781
804
|
// @alpha
|
|
782
|
-
export function independentView<const TSchema extends ImplicitFieldSchema>(config: TreeViewConfiguration<TSchema>, options?:
|
|
783
|
-
|
|
784
|
-
|
|
805
|
+
export function independentView<const TSchema extends ImplicitFieldSchema>(config: TreeViewConfiguration<TSchema>, options?: IndependentViewOptions): TreeViewAlpha<TSchema>;
|
|
806
|
+
|
|
807
|
+
// @alpha @input
|
|
808
|
+
export interface IndependentViewOptions extends ForestOptions, Partial<CodecWriteOptions> {
|
|
809
|
+
idCompressor?: IIdCompressor | undefined;
|
|
810
|
+
}
|
|
785
811
|
|
|
786
812
|
// @public
|
|
787
813
|
export type InitialObjects<T extends ContainerSchema> = {
|
|
@@ -1059,6 +1085,7 @@ export interface LocalChangeMetadata extends CommitMetadata {
|
|
|
1059
1085
|
getChange(): JsonCompatibleReadOnly;
|
|
1060
1086
|
getRevertible(onDisposed?: (revertible: RevertibleAlpha) => void): RevertibleAlpha | undefined;
|
|
1061
1087
|
readonly isLocal: true;
|
|
1088
|
+
readonly label?: unknown;
|
|
1062
1089
|
}
|
|
1063
1090
|
|
|
1064
1091
|
// @public @sealed
|
|
@@ -1239,6 +1266,7 @@ export interface RemoteChangeMetadata extends CommitMetadata {
|
|
|
1239
1266
|
readonly getChange?: undefined;
|
|
1240
1267
|
readonly getRevertible?: undefined;
|
|
1241
1268
|
readonly isLocal: false;
|
|
1269
|
+
readonly label?: undefined;
|
|
1242
1270
|
}
|
|
1243
1271
|
|
|
1244
1272
|
// @alpha
|
|
@@ -1314,6 +1342,7 @@ export interface RunTransaction {
|
|
|
1314
1342
|
|
|
1315
1343
|
// @alpha @input
|
|
1316
1344
|
export interface RunTransactionParams {
|
|
1345
|
+
readonly label?: unknown;
|
|
1317
1346
|
readonly preconditions?: readonly TransactionConstraintAlpha[];
|
|
1318
1347
|
}
|
|
1319
1348
|
|
|
@@ -1477,7 +1506,7 @@ export interface SharedTreeOptions extends SharedTreeOptionsBeta, Partial<CodecW
|
|
|
1477
1506
|
}
|
|
1478
1507
|
|
|
1479
1508
|
// @beta @input
|
|
1480
|
-
export type SharedTreeOptionsBeta = ForestOptions
|
|
1509
|
+
export type SharedTreeOptionsBeta = ForestOptions & Partial<CodecWriteOptionsBeta>;
|
|
1481
1510
|
|
|
1482
1511
|
// @alpha @sealed
|
|
1483
1512
|
export interface SimpleAllowedTypeAttributes<out Type extends SchemaType = SchemaType> {
|
|
@@ -1572,14 +1601,14 @@ export interface SnapshotFileSystem {
|
|
|
1572
1601
|
}): void;
|
|
1573
1602
|
}
|
|
1574
1603
|
|
|
1575
|
-
// @
|
|
1604
|
+
// @beta @system
|
|
1576
1605
|
export namespace System_TableSchema {
|
|
1577
1606
|
// @sealed @system
|
|
1578
1607
|
export type ColumnSchemaBase<TUserScope extends string = string, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createColumnSchema<TUserScope, TCellSchema, TPropsSchema>>;
|
|
1579
1608
|
// @system
|
|
1580
1609
|
export type CreateColumnOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
1581
1610
|
// @system
|
|
1582
|
-
export function createColumnSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.
|
|
1611
|
+
export function createColumnSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Column">, NodeKind.Object, TreeNode & TableSchema.Column<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Column">, NodeKind, unknown>, object & {
|
|
1583
1612
|
readonly id?: string | undefined;
|
|
1584
1613
|
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1585
1614
|
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
@@ -1591,10 +1620,10 @@ export namespace System_TableSchema {
|
|
|
1591
1620
|
}>;
|
|
1592
1621
|
// @system
|
|
1593
1622
|
export type CreateRowOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
1594
|
-
// @
|
|
1595
|
-
export function createRowSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.
|
|
1623
|
+
// @system
|
|
1624
|
+
export function createRowSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind.Object, TreeNode & TableSchema.Row<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind, unknown>, object & {
|
|
1596
1625
|
readonly id?: string | undefined;
|
|
1597
|
-
readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.
|
|
1626
|
+
readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>> | undefined) & InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>>;
|
|
1598
1627
|
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1599
1628
|
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
1600
1629
|
} : {
|
|
@@ -1602,12 +1631,12 @@ export namespace System_TableSchema {
|
|
|
1602
1631
|
}), true, {
|
|
1603
1632
|
readonly props: TPropsSchema;
|
|
1604
1633
|
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
1605
|
-
readonly cells: FieldSchema_2<FieldKind_2.Required, TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.
|
|
1634
|
+
readonly cells: FieldSchema_2<FieldKind_2.Required, TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>, unknown>;
|
|
1606
1635
|
}>;
|
|
1607
1636
|
// @system
|
|
1608
1637
|
export function createTableSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TColumnSchema extends ColumnSchemaBase<TUserScope, TCellSchema>, const TRowSchema extends RowSchemaBase<TUserScope, TCellSchema>>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): {
|
|
1609
|
-
create<TThis extends new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.
|
|
1610
|
-
} & (new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.
|
|
1638
|
+
create<TThis extends new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown>>(this: TThis, initialContents?: TableSchema.TableFactoryMethodParameters<TUserScope, TCellSchema, TColumnSchema, TRowSchema> | undefined): InstanceType<TThis>;
|
|
1639
|
+
} & (new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown>) & TreeNodeSchemaCore<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot"> & string, NodeKind, false, unknown, never, unknown> & (new (data: InternalTreeNode) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot"> & string, NodeKind, unknown>);
|
|
1611
1640
|
// @system
|
|
1612
1641
|
export type DefaultPropsType = ReturnType<typeof SchemaFactory.optional<[]>>;
|
|
1613
1642
|
// @system
|
|
@@ -1718,7 +1747,7 @@ export namespace System_Unsafe {
|
|
|
1718
1747
|
export type TreeObjectNodeUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
1719
1748
|
}
|
|
1720
1749
|
|
|
1721
|
-
// @
|
|
1750
|
+
// @beta
|
|
1722
1751
|
export namespace TableSchema {
|
|
1723
1752
|
// @input
|
|
1724
1753
|
export interface CellKey<TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
@@ -1866,14 +1895,14 @@ export interface TreeAlpha {
|
|
|
1866
1895
|
children(node: TreeNode): Iterable<[propertyKey: string | number, child: TreeNode | TreeLeafValue]>;
|
|
1867
1896
|
create<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: InsertableField<TSchema>): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
|
|
1868
1897
|
exportCompressed(tree: TreeNode | TreeLeafValue, options: {
|
|
1869
|
-
idCompressor?:
|
|
1898
|
+
idCompressor?: IIdCompressor_2;
|
|
1870
1899
|
} & Pick<CodecWriteOptions, "minVersionForCollab">): JsonCompatible<IFluidHandle>;
|
|
1871
1900
|
exportConcise(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): ConciseTree;
|
|
1872
1901
|
exportConcise(node: TreeNode | TreeLeafValue | undefined, options?: TreeEncodingOptions): ConciseTree | undefined;
|
|
1873
1902
|
exportVerbose(node: TreeNode | TreeLeafValue, options?: TreeEncodingOptions): VerboseTree;
|
|
1874
1903
|
readonly identifier: TreeIdentifierUtils;
|
|
1875
1904
|
importCompressed<const TSchema extends ImplicitFieldSchema>(schema: TSchema, compressedData: JsonCompatible<IFluidHandle>, options: {
|
|
1876
|
-
idCompressor?:
|
|
1905
|
+
idCompressor?: IIdCompressor_2;
|
|
1877
1906
|
} & ICodecOptions): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
1878
1907
|
importConcise<const TSchema extends ImplicitFieldSchema | UnsafeUnknownSchema>(schema: UnsafeUnknownSchema extends TSchema ? ImplicitFieldSchema : TSchema & ImplicitFieldSchema, data: ConciseTree | undefined): Unhydrated<TSchema extends ImplicitFieldSchema ? TreeFieldFromImplicitField<TSchema> : TreeNode | TreeLeafValue | undefined>;
|
|
1879
1908
|
importVerbose<const TSchema extends ImplicitFieldSchema>(schema: TSchema, data: VerboseTree | undefined, options?: TreeParsingOptions): Unhydrated<TreeFieldFromImplicitField<TSchema>>;
|
|
@@ -1903,6 +1932,7 @@ export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.ImplicitAllow
|
|
|
1903
1932
|
moveToIndex(destinationGap: number, sourceIndex: number, source: TMoveFrom): void;
|
|
1904
1933
|
moveToStart(sourceIndex: number): void;
|
|
1905
1934
|
moveToStart(sourceIndex: number, source: TMoveFrom): void;
|
|
1935
|
+
push(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1906
1936
|
removeAt(index: number): void;
|
|
1907
1937
|
removeRange(start?: number, end?: number): void;
|
|
1908
1938
|
values(): IterableIterator<T>;
|
|
@@ -1943,12 +1973,14 @@ export interface TreeBranchAlpha extends TreeBranch {
|
|
|
1943
1973
|
hasRootSchema<TSchema extends ImplicitFieldSchema>(schema: TSchema): this is TreeViewAlpha<TSchema>;
|
|
1944
1974
|
runTransaction<TSuccessValue, TFailureValue>(transaction: () => TransactionCallbackStatus<TSuccessValue, TFailureValue>, params?: RunTransactionParams): TransactionResultExt<TSuccessValue, TFailureValue>;
|
|
1945
1975
|
runTransaction(transaction: () => VoidTransactionCallbackStatus | void, params?: RunTransactionParams): TransactionResult;
|
|
1976
|
+
runTransactionAsync<TSuccessValue, TFailureValue>(transaction: () => Promise<TransactionCallbackStatus<TSuccessValue, TFailureValue>>, params?: RunTransactionParams): Promise<TransactionResultExt<TSuccessValue, TFailureValue>>;
|
|
1977
|
+
runTransactionAsync(transaction: () => Promise<VoidTransactionCallbackStatus | void>, params?: RunTransactionParams): Promise<TransactionResult>;
|
|
1946
1978
|
}
|
|
1947
1979
|
|
|
1948
1980
|
// @alpha @sealed
|
|
1949
1981
|
export interface TreeBranchEvents extends Omit<TreeViewEvents, "commitApplied"> {
|
|
1950
1982
|
changed(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
|
|
1951
|
-
commitApplied(data:
|
|
1983
|
+
commitApplied(data: ChangeMetadata, getRevertible?: RevertibleAlphaFactory): void;
|
|
1952
1984
|
}
|
|
1953
1985
|
|
|
1954
1986
|
// @alpha @sealed
|
|
@@ -2256,7 +2288,7 @@ export interface ViewableTree {
|
|
|
2256
2288
|
|
|
2257
2289
|
// @alpha
|
|
2258
2290
|
export interface ViewContent {
|
|
2259
|
-
readonly idCompressor:
|
|
2291
|
+
readonly idCompressor: IIdCompressor;
|
|
2260
2292
|
readonly schema: JsonCompatible;
|
|
2261
2293
|
readonly tree: JsonCompatible<IFluidHandle>;
|
|
2262
2294
|
}
|
|
@@ -96,6 +96,11 @@ export enum AttachState {
|
|
|
96
96
|
Detached = "Detached"
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
// @beta @input
|
|
100
|
+
export interface CodecWriteOptionsBeta {
|
|
101
|
+
readonly minVersionForCollab: MinimumVersionForCollab;
|
|
102
|
+
}
|
|
103
|
+
|
|
99
104
|
// @public
|
|
100
105
|
export enum CommitKind {
|
|
101
106
|
Default = 0,
|
|
@@ -934,7 +939,7 @@ export interface SharedObjectKind<out TSharedObject = unknown> extends ErasedTyp
|
|
|
934
939
|
export const SharedTree: SharedObjectKind<ITree>;
|
|
935
940
|
|
|
936
941
|
// @beta @input
|
|
937
|
-
export type SharedTreeOptionsBeta = ForestOptions
|
|
942
|
+
export type SharedTreeOptionsBeta = ForestOptions & Partial<CodecWriteOptionsBeta>;
|
|
938
943
|
|
|
939
944
|
// @public @sealed @system
|
|
940
945
|
export interface SimpleNodeSchemaBase<out TNodeKind extends NodeKind, out TCustomMetadata = unknown> {
|
|
@@ -947,6 +952,69 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
947
952
|
readonly value: TName;
|
|
948
953
|
}, Record<string, never>, true, Record<string, never>, undefined>;
|
|
949
954
|
|
|
955
|
+
// @beta @system
|
|
956
|
+
export namespace System_TableSchema {
|
|
957
|
+
// @sealed @system
|
|
958
|
+
export type ColumnSchemaBase<TUserScope extends string = string, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createColumnSchema<TUserScope, TCellSchema, TPropsSchema>>;
|
|
959
|
+
// @system
|
|
960
|
+
export type CreateColumnOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
961
|
+
// @system
|
|
962
|
+
export function createColumnSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Column">, NodeKind.Object, TreeNode & TableSchema.Column<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Column">, NodeKind, unknown>, object & {
|
|
963
|
+
readonly id?: string | undefined;
|
|
964
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
965
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
966
|
+
} : {
|
|
967
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
968
|
+
}), true, {
|
|
969
|
+
readonly props: TPropsSchema;
|
|
970
|
+
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
971
|
+
}>;
|
|
972
|
+
// @system
|
|
973
|
+
export type CreateRowOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
974
|
+
// @system
|
|
975
|
+
export function createRowSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind.Object, TreeNode & TableSchema.Row<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind, unknown>, object & {
|
|
976
|
+
readonly id?: string | undefined;
|
|
977
|
+
readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>> | undefined) & InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>>;
|
|
978
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
979
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
980
|
+
} : {
|
|
981
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
982
|
+
}), true, {
|
|
983
|
+
readonly props: TPropsSchema;
|
|
984
|
+
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
985
|
+
readonly cells: FieldSchema_2<FieldKind_2.Required, TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>, unknown>;
|
|
986
|
+
}>;
|
|
987
|
+
// @system
|
|
988
|
+
export function createTableSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TColumnSchema extends ColumnSchemaBase<TUserScope, TCellSchema>, const TRowSchema extends RowSchemaBase<TUserScope, TCellSchema>>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): {
|
|
989
|
+
create<TThis extends new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown>>(this: TThis, initialContents?: TableSchema.TableFactoryMethodParameters<TUserScope, TCellSchema, TColumnSchema, TRowSchema> | undefined): InstanceType<TThis>;
|
|
990
|
+
} & (new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown>) & TreeNodeSchemaCore<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot"> & string, NodeKind, false, unknown, never, unknown> & (new (data: InternalTreeNode) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot"> & string, NodeKind, unknown>);
|
|
991
|
+
// @system
|
|
992
|
+
export type DefaultPropsType = ReturnType<typeof SchemaFactory.optional<[]>>;
|
|
993
|
+
// @system
|
|
994
|
+
export interface OptionsWithCellSchema<TCellSchema extends ImplicitAllowedTypes> {
|
|
995
|
+
readonly cell: TCellSchema;
|
|
996
|
+
}
|
|
997
|
+
// @system
|
|
998
|
+
export interface OptionsWithSchemaFactory<TSchemaFactory extends SchemaFactoryBeta> {
|
|
999
|
+
readonly schemaFactory: TSchemaFactory;
|
|
1000
|
+
}
|
|
1001
|
+
// @system
|
|
1002
|
+
export type RearrangeableList<TItemSchema extends ImplicitAllowedTypes> = TreeNode & readonly TreeNodeFromImplicitAllowedTypes<TItemSchema>[] & {
|
|
1003
|
+
moveToEnd(sourceIndex: number): void;
|
|
1004
|
+
moveToStart(sourceIndex: number): void;
|
|
1005
|
+
moveToIndex(sourceIndex: number, destinationIndex: number): void;
|
|
1006
|
+
moveRangeToEnd(startIndex: number, endIndex: number): void;
|
|
1007
|
+
moveRangeToStart(startIndex: number, endIndex: number): void;
|
|
1008
|
+
moveRangeToIndex(startIndex: number, endIndex: number, destinationIndex: number): void;
|
|
1009
|
+
};
|
|
1010
|
+
// @sealed @system
|
|
1011
|
+
export type RowSchemaBase<TUserScope extends string = string, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createRowSchema<TUserScope, TCellSchema, TPropsSchema>>;
|
|
1012
|
+
// @system
|
|
1013
|
+
export type TableFactoryOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
1014
|
+
// @sealed @system
|
|
1015
|
+
export type TableSchemaBase<TUserScope extends string, TCellSchema extends ImplicitAllowedTypes, TColumnSchema extends ColumnSchemaBase<TUserScope, TCellSchema>, TRowSchema extends RowSchemaBase<TUserScope, TCellSchema>> = ReturnType<typeof createTableSchema<TUserScope, TCellSchema, TColumnSchema, TRowSchema>>;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
950
1018
|
// @public @system
|
|
951
1019
|
export namespace System_Unsafe {
|
|
952
1020
|
// @system
|
|
@@ -1030,6 +1098,86 @@ export namespace System_Unsafe {
|
|
|
1030
1098
|
export type TreeObjectNodeUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
1031
1099
|
}
|
|
1032
1100
|
|
|
1101
|
+
// @beta
|
|
1102
|
+
export namespace TableSchema {
|
|
1103
|
+
// @input
|
|
1104
|
+
export interface CellKey<TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
1105
|
+
readonly column: string | number | TreeNodeFromImplicitAllowedTypes<TColumn>;
|
|
1106
|
+
readonly row: string | number | TreeNodeFromImplicitAllowedTypes<TRow>;
|
|
1107
|
+
}
|
|
1108
|
+
// @sealed
|
|
1109
|
+
export interface Column<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1110
|
+
readonly id: string;
|
|
1111
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1112
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1113
|
+
}
|
|
1114
|
+
export function column<const TUserScope extends string, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.CreateColumnOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell>): System_TableSchema.ColumnSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>;
|
|
1115
|
+
export function column<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateColumnOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1116
|
+
readonly props: TProps;
|
|
1117
|
+
}): System_TableSchema.ColumnSchemaBase<TUserScope, TCell, TProps>;
|
|
1118
|
+
// @input
|
|
1119
|
+
export interface InsertColumnsParameters<TColumn extends ImplicitAllowedTypes> {
|
|
1120
|
+
readonly columns: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1121
|
+
readonly index?: number | undefined;
|
|
1122
|
+
}
|
|
1123
|
+
// @input
|
|
1124
|
+
export interface InsertRowsParameters<TRow extends ImplicitAllowedTypes> {
|
|
1125
|
+
readonly index?: number | undefined;
|
|
1126
|
+
readonly rows: InsertableTreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1127
|
+
}
|
|
1128
|
+
// @sealed
|
|
1129
|
+
export interface Row<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1130
|
+
readonly id: string;
|
|
1131
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1132
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1133
|
+
}
|
|
1134
|
+
export function row<const TUserScope extends string, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.CreateRowOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell>): System_TableSchema.RowSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>;
|
|
1135
|
+
export function row<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateRowOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1136
|
+
readonly props: TProps;
|
|
1137
|
+
}): System_TableSchema.RowSchemaBase<TUserScope, TCell, TProps>;
|
|
1138
|
+
// @input
|
|
1139
|
+
export interface SetCellParameters<TCell extends ImplicitAllowedTypes, TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
1140
|
+
readonly cell: InsertableTreeNodeFromImplicitAllowedTypes<TCell>;
|
|
1141
|
+
readonly key: CellKey<TColumn, TRow>;
|
|
1142
|
+
}
|
|
1143
|
+
// @sealed
|
|
1144
|
+
export interface Table<TUserScope extends string, TCell extends ImplicitAllowedTypes, TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>, TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>> {
|
|
1145
|
+
readonly columns: System_TableSchema.RearrangeableList<TColumn>;
|
|
1146
|
+
getCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1147
|
+
getColumn(id: string): TreeNodeFromImplicitAllowedTypes<TColumn> | undefined;
|
|
1148
|
+
getColumn(index: number): TreeNodeFromImplicitAllowedTypes<TColumn> | undefined;
|
|
1149
|
+
getRow(id: string): TreeNodeFromImplicitAllowedTypes<TRow> | undefined;
|
|
1150
|
+
getRow(index: number): TreeNodeFromImplicitAllowedTypes<TRow> | undefined;
|
|
1151
|
+
insertColumns(params: InsertColumnsParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1152
|
+
insertRows(params: InsertRowsParameters<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1153
|
+
removeCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1154
|
+
removeColumns(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1155
|
+
removeColumns(columns: readonly TreeNodeFromImplicitAllowedTypes<TColumn>[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1156
|
+
removeColumns(columns: readonly string[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1157
|
+
removeRows(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1158
|
+
removeRows(rows: readonly TreeNodeFromImplicitAllowedTypes<TRow>[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1159
|
+
removeRows(rows: readonly string[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1160
|
+
readonly rows: System_TableSchema.RearrangeableList<TRow>;
|
|
1161
|
+
setCell(params: SetCellParameters<TCell, TColumn, TRow>): void;
|
|
1162
|
+
}
|
|
1163
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell>): System_TableSchema.TableSchemaBase<TUserScope, TCell, System_TableSchema.ColumnSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>, System_TableSchema.RowSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>>;
|
|
1164
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1165
|
+
readonly column: TColumn;
|
|
1166
|
+
}): System_TableSchema.TableSchemaBase<TUserScope, TCell, TColumn, System_TableSchema.RowSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>>;
|
|
1167
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1168
|
+
readonly row: TRow;
|
|
1169
|
+
}): System_TableSchema.TableSchemaBase<TUserScope, TCell, System_TableSchema.ColumnSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>, TRow>;
|
|
1170
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>, const TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1171
|
+
readonly column: TColumn;
|
|
1172
|
+
readonly row: TRow;
|
|
1173
|
+
}): System_TableSchema.TableSchemaBase<TUserScope, TCell, TColumn, TRow>;
|
|
1174
|
+
// @input
|
|
1175
|
+
export interface TableFactoryMethodParameters<TUserScope extends string, TCell extends ImplicitAllowedTypes, TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>, TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>> {
|
|
1176
|
+
readonly columns?: Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>> | undefined;
|
|
1177
|
+
readonly rows?: Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>> | undefined;
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1033
1181
|
// @public
|
|
1034
1182
|
export interface Tagged<V, T extends string = string> {
|
|
1035
1183
|
// (undocumented)
|
|
@@ -1073,6 +1221,7 @@ export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.ImplicitAllow
|
|
|
1073
1221
|
moveToIndex(destinationGap: number, sourceIndex: number, source: TMoveFrom): void;
|
|
1074
1222
|
moveToStart(sourceIndex: number): void;
|
|
1075
1223
|
moveToStart(sourceIndex: number, source: TMoveFrom): void;
|
|
1224
|
+
push(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1076
1225
|
removeAt(index: number): void;
|
|
1077
1226
|
removeRange(start?: number, end?: number): void;
|
|
1078
1227
|
values(): IterableIterator<T>;
|
|
@@ -96,6 +96,11 @@ export enum AttachState {
|
|
|
96
96
|
Detached = "Detached"
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
// @beta @input
|
|
100
|
+
export interface CodecWriteOptionsBeta {
|
|
101
|
+
readonly minVersionForCollab: MinimumVersionForCollab;
|
|
102
|
+
}
|
|
103
|
+
|
|
99
104
|
// @public
|
|
100
105
|
export enum CommitKind {
|
|
101
106
|
Default = 0,
|
|
@@ -1292,7 +1297,7 @@ export type SharedStringSegment = TextSegment | Marker;
|
|
|
1292
1297
|
export const SharedTree: SharedObjectKind<ITree>;
|
|
1293
1298
|
|
|
1294
1299
|
// @beta @input
|
|
1295
|
-
export type SharedTreeOptionsBeta = ForestOptions
|
|
1300
|
+
export type SharedTreeOptionsBeta = ForestOptions & Partial<CodecWriteOptionsBeta>;
|
|
1296
1301
|
|
|
1297
1302
|
export { Side }
|
|
1298
1303
|
|
|
@@ -1307,6 +1312,69 @@ export function singletonSchema<TScope extends string, TName extends string | nu
|
|
|
1307
1312
|
readonly value: TName;
|
|
1308
1313
|
}, Record<string, never>, true, Record<string, never>, undefined>;
|
|
1309
1314
|
|
|
1315
|
+
// @beta @system
|
|
1316
|
+
export namespace System_TableSchema {
|
|
1317
|
+
// @sealed @system
|
|
1318
|
+
export type ColumnSchemaBase<TUserScope extends string = string, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createColumnSchema<TUserScope, TCellSchema, TPropsSchema>>;
|
|
1319
|
+
// @system
|
|
1320
|
+
export type CreateColumnOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
1321
|
+
// @system
|
|
1322
|
+
export function createColumnSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Column">, NodeKind.Object, TreeNode & TableSchema.Column<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Column">, NodeKind, unknown>, object & {
|
|
1323
|
+
readonly id?: string | undefined;
|
|
1324
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1325
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
1326
|
+
} : {
|
|
1327
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
1328
|
+
}), true, {
|
|
1329
|
+
readonly props: TPropsSchema;
|
|
1330
|
+
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
1331
|
+
}>;
|
|
1332
|
+
// @system
|
|
1333
|
+
export type CreateRowOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
1334
|
+
// @system
|
|
1335
|
+
export function createRowSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TPropsSchema extends ImplicitFieldSchema>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, cellSchema: TCellSchema, propsSchema: TPropsSchema): TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind.Object, TreeNode & TableSchema.Row<TCellSchema, TPropsSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row">, NodeKind, unknown>, object & {
|
|
1336
|
+
readonly id?: string | undefined;
|
|
1337
|
+
readonly cells: (InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>> | undefined) & InsertableTypedNode_2<TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>>;
|
|
1338
|
+
} & (FieldHasDefault<TPropsSchema> extends true ? {
|
|
1339
|
+
props?: InsertableTreeFieldFromImplicitField<TPropsSchema> | undefined;
|
|
1340
|
+
} : {
|
|
1341
|
+
props: InsertableTreeFieldFromImplicitField<TPropsSchema>;
|
|
1342
|
+
}), true, {
|
|
1343
|
+
readonly props: TPropsSchema;
|
|
1344
|
+
readonly id: FieldSchema_2<FieldKind_2.Identifier, LeafSchema_2<"string", string>, unknown>;
|
|
1345
|
+
readonly cells: FieldSchema_2<FieldKind_2.Required, TreeNodeSchemaClass<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, TreeRecordNode<TCellSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "Row.cells">, NodeKind.Record, unknown>, RecordNodeInsertableData_2<TCellSchema>, true, TCellSchema, undefined, unknown>, unknown>;
|
|
1346
|
+
}>;
|
|
1347
|
+
// @system
|
|
1348
|
+
export function createTableSchema<const TUserScope extends string, const TCellSchema extends ImplicitAllowedTypes, const TColumnSchema extends ColumnSchemaBase<TUserScope, TCellSchema>, const TRowSchema extends RowSchemaBase<TUserScope, TCellSchema>>(inputSchemaFactory: SchemaFactoryBeta<TUserScope>, _cellSchema: TCellSchema, columnSchema: TColumnSchema, rowSchema: TRowSchema): {
|
|
1349
|
+
create<TThis extends new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown>>(this: TThis, initialContents?: TableSchema.TableFactoryMethodParameters<TUserScope, TCellSchema, TColumnSchema, TRowSchema> | undefined): InstanceType<TThis>;
|
|
1350
|
+
} & (new (data?: InternalTreeNode | undefined) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown>) & TreeNodeSchemaCore<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot"> & string, NodeKind, false, unknown, never, unknown> & (new (data: InternalTreeNode) => TreeNode & TableSchema.Table<TUserScope, TCellSchema, TColumnSchema, TRowSchema> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot">, NodeKind, unknown> & WithType<ScopedSchemaName<`com.fluidframework.tableV2<${TUserScope}>`, "TableRoot"> & string, NodeKind, unknown>);
|
|
1351
|
+
// @system
|
|
1352
|
+
export type DefaultPropsType = ReturnType<typeof SchemaFactory.optional<[]>>;
|
|
1353
|
+
// @system
|
|
1354
|
+
export interface OptionsWithCellSchema<TCellSchema extends ImplicitAllowedTypes> {
|
|
1355
|
+
readonly cell: TCellSchema;
|
|
1356
|
+
}
|
|
1357
|
+
// @system
|
|
1358
|
+
export interface OptionsWithSchemaFactory<TSchemaFactory extends SchemaFactoryBeta> {
|
|
1359
|
+
readonly schemaFactory: TSchemaFactory;
|
|
1360
|
+
}
|
|
1361
|
+
// @system
|
|
1362
|
+
export type RearrangeableList<TItemSchema extends ImplicitAllowedTypes> = TreeNode & readonly TreeNodeFromImplicitAllowedTypes<TItemSchema>[] & {
|
|
1363
|
+
moveToEnd(sourceIndex: number): void;
|
|
1364
|
+
moveToStart(sourceIndex: number): void;
|
|
1365
|
+
moveToIndex(sourceIndex: number, destinationIndex: number): void;
|
|
1366
|
+
moveRangeToEnd(startIndex: number, endIndex: number): void;
|
|
1367
|
+
moveRangeToStart(startIndex: number, endIndex: number): void;
|
|
1368
|
+
moveRangeToIndex(startIndex: number, endIndex: number, destinationIndex: number): void;
|
|
1369
|
+
};
|
|
1370
|
+
// @sealed @system
|
|
1371
|
+
export type RowSchemaBase<TUserScope extends string = string, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes, TPropsSchema extends ImplicitFieldSchema = ImplicitFieldSchema> = ReturnType<typeof createRowSchema<TUserScope, TCellSchema, TPropsSchema>>;
|
|
1372
|
+
// @system
|
|
1373
|
+
export type TableFactoryOptionsBase<TUserScope extends string = string, TSchemaFactory extends SchemaFactoryBeta<TUserScope> = SchemaFactoryBeta<TUserScope>, TCellSchema extends ImplicitAllowedTypes = ImplicitAllowedTypes> = OptionsWithSchemaFactory<TSchemaFactory> & OptionsWithCellSchema<TCellSchema>;
|
|
1374
|
+
// @sealed @system
|
|
1375
|
+
export type TableSchemaBase<TUserScope extends string, TCellSchema extends ImplicitAllowedTypes, TColumnSchema extends ColumnSchemaBase<TUserScope, TCellSchema>, TRowSchema extends RowSchemaBase<TUserScope, TCellSchema>> = ReturnType<typeof createTableSchema<TUserScope, TCellSchema, TColumnSchema, TRowSchema>>;
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1310
1378
|
// @public @system
|
|
1311
1379
|
export namespace System_Unsafe {
|
|
1312
1380
|
// @system
|
|
@@ -1390,6 +1458,86 @@ export namespace System_Unsafe {
|
|
|
1390
1458
|
export type TreeObjectNodeUnsafe<T extends RestrictiveStringRecord<ImplicitFieldSchemaUnsafe>, TypeName extends string = string> = TreeNode & ObjectFromSchemaRecordUnsafe<T> & WithType<TypeName, NodeKind.Object, T>;
|
|
1391
1459
|
}
|
|
1392
1460
|
|
|
1461
|
+
// @beta
|
|
1462
|
+
export namespace TableSchema {
|
|
1463
|
+
// @input
|
|
1464
|
+
export interface CellKey<TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
1465
|
+
readonly column: string | number | TreeNodeFromImplicitAllowedTypes<TColumn>;
|
|
1466
|
+
readonly row: string | number | TreeNodeFromImplicitAllowedTypes<TRow>;
|
|
1467
|
+
}
|
|
1468
|
+
// @sealed
|
|
1469
|
+
export interface Column<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1470
|
+
readonly id: string;
|
|
1471
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1472
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1473
|
+
}
|
|
1474
|
+
export function column<const TUserScope extends string, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.CreateColumnOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell>): System_TableSchema.ColumnSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>;
|
|
1475
|
+
export function column<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateColumnOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1476
|
+
readonly props: TProps;
|
|
1477
|
+
}): System_TableSchema.ColumnSchemaBase<TUserScope, TCell, TProps>;
|
|
1478
|
+
// @input
|
|
1479
|
+
export interface InsertColumnsParameters<TColumn extends ImplicitAllowedTypes> {
|
|
1480
|
+
readonly columns: InsertableTreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1481
|
+
readonly index?: number | undefined;
|
|
1482
|
+
}
|
|
1483
|
+
// @input
|
|
1484
|
+
export interface InsertRowsParameters<TRow extends ImplicitAllowedTypes> {
|
|
1485
|
+
readonly index?: number | undefined;
|
|
1486
|
+
readonly rows: InsertableTreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1487
|
+
}
|
|
1488
|
+
// @sealed
|
|
1489
|
+
export interface Row<TCell extends ImplicitAllowedTypes, TProps extends ImplicitFieldSchema = ImplicitFieldSchema> {
|
|
1490
|
+
readonly id: string;
|
|
1491
|
+
get props(): TreeFieldFromImplicitField<TProps>;
|
|
1492
|
+
set props(value: InsertableTreeFieldFromImplicitField<TProps>);
|
|
1493
|
+
}
|
|
1494
|
+
export function row<const TUserScope extends string, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.CreateRowOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell>): System_TableSchema.RowSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>;
|
|
1495
|
+
export function row<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TProps extends ImplicitFieldSchema>(params: System_TableSchema.CreateRowOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1496
|
+
readonly props: TProps;
|
|
1497
|
+
}): System_TableSchema.RowSchemaBase<TUserScope, TCell, TProps>;
|
|
1498
|
+
// @input
|
|
1499
|
+
export interface SetCellParameters<TCell extends ImplicitAllowedTypes, TColumn extends ImplicitAllowedTypes, TRow extends ImplicitAllowedTypes> {
|
|
1500
|
+
readonly cell: InsertableTreeNodeFromImplicitAllowedTypes<TCell>;
|
|
1501
|
+
readonly key: CellKey<TColumn, TRow>;
|
|
1502
|
+
}
|
|
1503
|
+
// @sealed
|
|
1504
|
+
export interface Table<TUserScope extends string, TCell extends ImplicitAllowedTypes, TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>, TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>> {
|
|
1505
|
+
readonly columns: System_TableSchema.RearrangeableList<TColumn>;
|
|
1506
|
+
getCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1507
|
+
getColumn(id: string): TreeNodeFromImplicitAllowedTypes<TColumn> | undefined;
|
|
1508
|
+
getColumn(index: number): TreeNodeFromImplicitAllowedTypes<TColumn> | undefined;
|
|
1509
|
+
getRow(id: string): TreeNodeFromImplicitAllowedTypes<TRow> | undefined;
|
|
1510
|
+
getRow(index: number): TreeNodeFromImplicitAllowedTypes<TRow> | undefined;
|
|
1511
|
+
insertColumns(params: InsertColumnsParameters<TColumn>): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1512
|
+
insertRows(params: InsertRowsParameters<TRow>): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1513
|
+
removeCell(key: CellKey<TColumn, TRow>): TreeNodeFromImplicitAllowedTypes<TCell> | undefined;
|
|
1514
|
+
removeColumns(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1515
|
+
removeColumns(columns: readonly TreeNodeFromImplicitAllowedTypes<TColumn>[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1516
|
+
removeColumns(columns: readonly string[]): TreeNodeFromImplicitAllowedTypes<TColumn>[];
|
|
1517
|
+
removeRows(index?: number | undefined, count?: number | undefined): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1518
|
+
removeRows(rows: readonly TreeNodeFromImplicitAllowedTypes<TRow>[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1519
|
+
removeRows(rows: readonly string[]): TreeNodeFromImplicitAllowedTypes<TRow>[];
|
|
1520
|
+
readonly rows: System_TableSchema.RearrangeableList<TRow>;
|
|
1521
|
+
setCell(params: SetCellParameters<TCell, TColumn, TRow>): void;
|
|
1522
|
+
}
|
|
1523
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell>): System_TableSchema.TableSchemaBase<TUserScope, TCell, System_TableSchema.ColumnSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>, System_TableSchema.RowSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>>;
|
|
1524
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1525
|
+
readonly column: TColumn;
|
|
1526
|
+
}): System_TableSchema.TableSchemaBase<TUserScope, TCell, TColumn, System_TableSchema.RowSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>>;
|
|
1527
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1528
|
+
readonly row: TRow;
|
|
1529
|
+
}): System_TableSchema.TableSchemaBase<TUserScope, TCell, System_TableSchema.ColumnSchemaBase<TUserScope, TCell, System_TableSchema.DefaultPropsType>, TRow>;
|
|
1530
|
+
export function table<const TUserScope extends string, const TCell extends ImplicitAllowedTypes, const TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>, const TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>>(params: System_TableSchema.TableFactoryOptionsBase<TUserScope, SchemaFactoryBeta<TUserScope>, TCell> & {
|
|
1531
|
+
readonly column: TColumn;
|
|
1532
|
+
readonly row: TRow;
|
|
1533
|
+
}): System_TableSchema.TableSchemaBase<TUserScope, TCell, TColumn, TRow>;
|
|
1534
|
+
// @input
|
|
1535
|
+
export interface TableFactoryMethodParameters<TUserScope extends string, TCell extends ImplicitAllowedTypes, TColumn extends System_TableSchema.ColumnSchemaBase<TUserScope, TCell>, TRow extends System_TableSchema.RowSchemaBase<TUserScope, TCell>> {
|
|
1536
|
+
readonly columns?: Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TColumn>> | undefined;
|
|
1537
|
+
readonly rows?: Iterable<InsertableTreeNodeFromImplicitAllowedTypes<TRow>> | undefined;
|
|
1538
|
+
}
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1393
1541
|
// @public
|
|
1394
1542
|
export interface Tagged<V, T extends string = string> {
|
|
1395
1543
|
// (undocumented)
|
|
@@ -1433,6 +1581,7 @@ export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.ImplicitAllow
|
|
|
1433
1581
|
moveToIndex(destinationGap: number, sourceIndex: number, source: TMoveFrom): void;
|
|
1434
1582
|
moveToStart(sourceIndex: number): void;
|
|
1435
1583
|
moveToStart(sourceIndex: number, source: TMoveFrom): void;
|
|
1584
|
+
push(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
1436
1585
|
removeAt(index: number): void;
|
|
1437
1586
|
removeRange(start?: number, end?: number): void;
|
|
1438
1587
|
values(): IterableIterator<T>;
|
|
@@ -890,6 +890,7 @@ export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.ImplicitAllow
|
|
|
890
890
|
moveToIndex(destinationGap: number, sourceIndex: number, source: TMoveFrom): void;
|
|
891
891
|
moveToStart(sourceIndex: number): void;
|
|
892
892
|
moveToStart(sourceIndex: number, source: TMoveFrom): void;
|
|
893
|
+
push(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
893
894
|
removeAt(index: number): void;
|
|
894
895
|
removeRange(start?: number, end?: number): void;
|
|
895
896
|
values(): IterableIterator<T>;
|
|
@@ -856,6 +856,7 @@ export interface TreeArrayNode<TAllowedTypes extends System_Unsafe.ImplicitAllow
|
|
|
856
856
|
moveToIndex(destinationGap: number, sourceIndex: number, source: TMoveFrom): void;
|
|
857
857
|
moveToStart(sourceIndex: number): void;
|
|
858
858
|
moveToStart(sourceIndex: number, source: TMoveFrom): void;
|
|
859
|
+
push(...value: readonly (TNew | IterableTreeArrayContent<TNew>)[]): void;
|
|
859
860
|
removeAt(index: number): void;
|
|
860
861
|
removeRange(start?: number, end?: number): void;
|
|
861
862
|
values(): IterableIterator<T>;
|
package/dist/alpha.d.ts
CHANGED
|
@@ -149,6 +149,7 @@ export {
|
|
|
149
149
|
AnnotatedAllowedTypeUnsafe,
|
|
150
150
|
AnnotatedAllowedTypes,
|
|
151
151
|
AnnotatedAllowedTypesUnsafe,
|
|
152
|
+
CodecWriteOptionsBeta,
|
|
152
153
|
ConciseTree,
|
|
153
154
|
ErasedBaseType,
|
|
154
155
|
FixRecursiveArraySchema,
|
|
@@ -169,6 +170,8 @@ export {
|
|
|
169
170
|
SchemaStaticsBeta,
|
|
170
171
|
SchemaUpgrade,
|
|
171
172
|
SharedTreeOptionsBeta,
|
|
173
|
+
System_TableSchema,
|
|
174
|
+
TableSchema,
|
|
172
175
|
TreeBeta,
|
|
173
176
|
TreeBranch,
|
|
174
177
|
TreeChangeEventsBeta,
|
|
@@ -194,12 +197,15 @@ export {
|
|
|
194
197
|
ArrayNodeCustomizableSchemaUnsafe,
|
|
195
198
|
ArrayNodePojoEmulationSchema,
|
|
196
199
|
ArrayNodeSchema,
|
|
200
|
+
ArrayPlaceAnchor,
|
|
197
201
|
BranchableTree,
|
|
198
202
|
ChangeMetadata,
|
|
199
203
|
CodecName,
|
|
200
204
|
CodecWriteOptions,
|
|
205
|
+
CreateIndependentTreeAlphaOptions,
|
|
201
206
|
DirtyTreeMap,
|
|
202
207
|
DirtyTreeStatus,
|
|
208
|
+
ExtensibleSchemaUnion,
|
|
203
209
|
FactoryContent,
|
|
204
210
|
FactoryContentObject,
|
|
205
211
|
FieldPropsAlpha,
|
|
@@ -215,6 +221,7 @@ export {
|
|
|
215
221
|
ITreeAlpha,
|
|
216
222
|
IdentifierIndex,
|
|
217
223
|
IncrementalEncodingPolicy,
|
|
224
|
+
IndependentViewOptions,
|
|
218
225
|
Insertable,
|
|
219
226
|
InsertableContent,
|
|
220
227
|
InsertableField,
|
|
@@ -273,8 +280,6 @@ export {
|
|
|
273
280
|
SimpleTreeIndex,
|
|
274
281
|
SimpleTreeSchema,
|
|
275
282
|
SnapshotFileSystem,
|
|
276
|
-
System_TableSchema,
|
|
277
|
-
TableSchema,
|
|
278
283
|
TransactionCallbackStatus,
|
|
279
284
|
TransactionConstraintAlpha,
|
|
280
285
|
TransactionResult,
|
|
@@ -311,6 +316,7 @@ export {
|
|
|
311
316
|
configuredSharedTree,
|
|
312
317
|
configuredSharedTreeAlpha,
|
|
313
318
|
contentSchemaSymbol,
|
|
319
|
+
createArrayInsertionAnchor,
|
|
314
320
|
createIdentifierIndex,
|
|
315
321
|
createIndependentTreeAlpha,
|
|
316
322
|
createSimpleTreeIndex,
|
package/dist/beta.d.ts
CHANGED
|
@@ -149,6 +149,7 @@ export {
|
|
|
149
149
|
AnnotatedAllowedTypeUnsafe,
|
|
150
150
|
AnnotatedAllowedTypes,
|
|
151
151
|
AnnotatedAllowedTypesUnsafe,
|
|
152
|
+
CodecWriteOptionsBeta,
|
|
152
153
|
ConciseTree,
|
|
153
154
|
ErasedBaseType,
|
|
154
155
|
FixRecursiveArraySchema,
|
|
@@ -169,6 +170,8 @@ export {
|
|
|
169
170
|
SchemaStaticsBeta,
|
|
170
171
|
SchemaUpgrade,
|
|
171
172
|
SharedTreeOptionsBeta,
|
|
173
|
+
System_TableSchema,
|
|
174
|
+
TableSchema,
|
|
172
175
|
TreeBeta,
|
|
173
176
|
TreeBranch,
|
|
174
177
|
TreeChangeEventsBeta,
|
package/dist/legacy.d.ts
CHANGED
|
@@ -156,6 +156,7 @@ export {
|
|
|
156
156
|
AnnotatedAllowedTypeUnsafe,
|
|
157
157
|
AnnotatedAllowedTypes,
|
|
158
158
|
AnnotatedAllowedTypesUnsafe,
|
|
159
|
+
CodecWriteOptionsBeta,
|
|
159
160
|
ConciseTree,
|
|
160
161
|
ErasedBaseType,
|
|
161
162
|
FixRecursiveArraySchema,
|
|
@@ -176,6 +177,8 @@ export {
|
|
|
176
177
|
SchemaStaticsBeta,
|
|
177
178
|
SchemaUpgrade,
|
|
178
179
|
SharedTreeOptionsBeta,
|
|
180
|
+
System_TableSchema,
|
|
181
|
+
TableSchema,
|
|
179
182
|
TreeBeta,
|
|
180
183
|
TreeBranch,
|
|
181
184
|
TreeChangeEventsBeta,
|
package/eslint.config.mts
CHANGED
|
@@ -6,17 +6,6 @@
|
|
|
6
6
|
import type { Linter } from "eslint";
|
|
7
7
|
import { strict } from "../../../common/build/eslint-config-fluid/flat.mts";
|
|
8
8
|
|
|
9
|
-
const config: Linter.Config[] = [
|
|
10
|
-
...strict,
|
|
11
|
-
{
|
|
12
|
-
files: ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"],
|
|
13
|
-
languageOptions: {
|
|
14
|
-
parserOptions: {
|
|
15
|
-
projectService: false,
|
|
16
|
-
project: ["./tsconfig.json"],
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
];
|
|
9
|
+
const config: Linter.Config[] = [...strict];
|
|
21
10
|
|
|
22
11
|
export default config;
|
package/lib/alpha.d.ts
CHANGED
|
@@ -149,6 +149,7 @@ export {
|
|
|
149
149
|
AnnotatedAllowedTypeUnsafe,
|
|
150
150
|
AnnotatedAllowedTypes,
|
|
151
151
|
AnnotatedAllowedTypesUnsafe,
|
|
152
|
+
CodecWriteOptionsBeta,
|
|
152
153
|
ConciseTree,
|
|
153
154
|
ErasedBaseType,
|
|
154
155
|
FixRecursiveArraySchema,
|
|
@@ -169,6 +170,8 @@ export {
|
|
|
169
170
|
SchemaStaticsBeta,
|
|
170
171
|
SchemaUpgrade,
|
|
171
172
|
SharedTreeOptionsBeta,
|
|
173
|
+
System_TableSchema,
|
|
174
|
+
TableSchema,
|
|
172
175
|
TreeBeta,
|
|
173
176
|
TreeBranch,
|
|
174
177
|
TreeChangeEventsBeta,
|
|
@@ -194,12 +197,15 @@ export {
|
|
|
194
197
|
ArrayNodeCustomizableSchemaUnsafe,
|
|
195
198
|
ArrayNodePojoEmulationSchema,
|
|
196
199
|
ArrayNodeSchema,
|
|
200
|
+
ArrayPlaceAnchor,
|
|
197
201
|
BranchableTree,
|
|
198
202
|
ChangeMetadata,
|
|
199
203
|
CodecName,
|
|
200
204
|
CodecWriteOptions,
|
|
205
|
+
CreateIndependentTreeAlphaOptions,
|
|
201
206
|
DirtyTreeMap,
|
|
202
207
|
DirtyTreeStatus,
|
|
208
|
+
ExtensibleSchemaUnion,
|
|
203
209
|
FactoryContent,
|
|
204
210
|
FactoryContentObject,
|
|
205
211
|
FieldPropsAlpha,
|
|
@@ -215,6 +221,7 @@ export {
|
|
|
215
221
|
ITreeAlpha,
|
|
216
222
|
IdentifierIndex,
|
|
217
223
|
IncrementalEncodingPolicy,
|
|
224
|
+
IndependentViewOptions,
|
|
218
225
|
Insertable,
|
|
219
226
|
InsertableContent,
|
|
220
227
|
InsertableField,
|
|
@@ -273,8 +280,6 @@ export {
|
|
|
273
280
|
SimpleTreeIndex,
|
|
274
281
|
SimpleTreeSchema,
|
|
275
282
|
SnapshotFileSystem,
|
|
276
|
-
System_TableSchema,
|
|
277
|
-
TableSchema,
|
|
278
283
|
TransactionCallbackStatus,
|
|
279
284
|
TransactionConstraintAlpha,
|
|
280
285
|
TransactionResult,
|
|
@@ -311,6 +316,7 @@ export {
|
|
|
311
316
|
configuredSharedTree,
|
|
312
317
|
configuredSharedTreeAlpha,
|
|
313
318
|
contentSchemaSymbol,
|
|
319
|
+
createArrayInsertionAnchor,
|
|
314
320
|
createIdentifierIndex,
|
|
315
321
|
createIndependentTreeAlpha,
|
|
316
322
|
createSimpleTreeIndex,
|
package/lib/beta.d.ts
CHANGED
|
@@ -149,6 +149,7 @@ export {
|
|
|
149
149
|
AnnotatedAllowedTypeUnsafe,
|
|
150
150
|
AnnotatedAllowedTypes,
|
|
151
151
|
AnnotatedAllowedTypesUnsafe,
|
|
152
|
+
CodecWriteOptionsBeta,
|
|
152
153
|
ConciseTree,
|
|
153
154
|
ErasedBaseType,
|
|
154
155
|
FixRecursiveArraySchema,
|
|
@@ -169,6 +170,8 @@ export {
|
|
|
169
170
|
SchemaStaticsBeta,
|
|
170
171
|
SchemaUpgrade,
|
|
171
172
|
SharedTreeOptionsBeta,
|
|
173
|
+
System_TableSchema,
|
|
174
|
+
TableSchema,
|
|
172
175
|
TreeBeta,
|
|
173
176
|
TreeBranch,
|
|
174
177
|
TreeChangeEventsBeta,
|
package/lib/legacy.d.ts
CHANGED
|
@@ -156,6 +156,7 @@ export {
|
|
|
156
156
|
AnnotatedAllowedTypeUnsafe,
|
|
157
157
|
AnnotatedAllowedTypes,
|
|
158
158
|
AnnotatedAllowedTypesUnsafe,
|
|
159
|
+
CodecWriteOptionsBeta,
|
|
159
160
|
ConciseTree,
|
|
160
161
|
ErasedBaseType,
|
|
161
162
|
FixRecursiveArraySchema,
|
|
@@ -176,6 +177,8 @@ export {
|
|
|
176
177
|
SchemaStaticsBeta,
|
|
177
178
|
SchemaUpgrade,
|
|
178
179
|
SharedTreeOptionsBeta,
|
|
180
|
+
System_TableSchema,
|
|
181
|
+
TableSchema,
|
|
179
182
|
TreeBeta,
|
|
180
183
|
TreeBranch,
|
|
181
184
|
TreeChangeEventsBeta,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fluid-framework",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.82.0",
|
|
4
4
|
"description": "The main entry point into Fluid Framework public packages",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -57,17 +57,17 @@
|
|
|
57
57
|
"main": "lib/index.js",
|
|
58
58
|
"types": "lib/public.d.ts",
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@fluidframework/container-definitions": "~2.
|
|
61
|
-
"@fluidframework/container-loader": "~2.
|
|
62
|
-
"@fluidframework/core-interfaces": "~2.
|
|
63
|
-
"@fluidframework/core-utils": "~2.
|
|
64
|
-
"@fluidframework/driver-definitions": "~2.
|
|
65
|
-
"@fluidframework/fluid-static": "~2.
|
|
66
|
-
"@fluidframework/map": "~2.
|
|
67
|
-
"@fluidframework/runtime-utils": "~2.
|
|
68
|
-
"@fluidframework/sequence": "~2.
|
|
69
|
-
"@fluidframework/shared-object-base": "~2.
|
|
70
|
-
"@fluidframework/tree": "~2.
|
|
60
|
+
"@fluidframework/container-definitions": "~2.82.0",
|
|
61
|
+
"@fluidframework/container-loader": "~2.82.0",
|
|
62
|
+
"@fluidframework/core-interfaces": "~2.82.0",
|
|
63
|
+
"@fluidframework/core-utils": "~2.82.0",
|
|
64
|
+
"@fluidframework/driver-definitions": "~2.82.0",
|
|
65
|
+
"@fluidframework/fluid-static": "~2.82.0",
|
|
66
|
+
"@fluidframework/map": "~2.82.0",
|
|
67
|
+
"@fluidframework/runtime-utils": "~2.82.0",
|
|
68
|
+
"@fluidframework/sequence": "~2.82.0",
|
|
69
|
+
"@fluidframework/shared-object-base": "~2.82.0",
|
|
70
|
+
"@fluidframework/tree": "~2.82.0"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
"@fluid-tools/build-cli": "^0.63.0",
|
|
76
76
|
"@fluidframework/build-common": "^2.0.3",
|
|
77
77
|
"@fluidframework/build-tools": "^0.63.0",
|
|
78
|
-
"@fluidframework/eslint-config-fluid": "~2.
|
|
78
|
+
"@fluidframework/eslint-config-fluid": "~2.82.0",
|
|
79
79
|
"@microsoft/api-extractor": "7.52.11",
|
|
80
|
-
"@types/node": "
|
|
80
|
+
"@types/node": "~20.19.30",
|
|
81
81
|
"concurrently": "^9.2.1",
|
|
82
82
|
"copyfiles": "^2.4.1",
|
|
83
83
|
"eslint": "~9.39.1",
|
package/biome.jsonc
DELETED