@difizen/libro-shared-model 0.0.2-alpha.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.
@@ -0,0 +1,656 @@
1
+ import type { IAttachments, IBaseCellMetadata, PartialJSONValue, IBaseCell, IOutput, ICodeCell, IRawCell, IMarkdownCell, INotebookMetadata } from '@difizen/libro-common';
2
+ import type { Event } from '@difizen/mana-common';
3
+ import { Emitter } from '@difizen/mana-common';
4
+ import { Awareness } from 'y-protocols/awareness';
5
+ import * as Y from 'yjs';
6
+ import type { CellChange, CellTypeAdaptor, DocumentChange, FileChange, IListChange, IMapChange, ISharedAttachmentsCell, ISharedBaseCell, ISharedCodeCell, ISharedDocument, ISharedFile, ISharedMarkdownCell, ISharedNotebook, ISharedRawCell, ISharedText, NotebookChange, SharedCell } from './api.js';
7
+ /**
8
+ * Abstract interface to define Shared Models that can be bound to a text editor using any existing
9
+ * Yjs-based editor binding.
10
+ */
11
+ export interface IYText extends ISharedText {
12
+ /**
13
+ * Shareable text
14
+ */
15
+ readonly ysource: Y.Text;
16
+ /**
17
+ * Shareable awareness
18
+ */
19
+ readonly awareness: Awareness | null;
20
+ /**
21
+ * Undo manager
22
+ */
23
+ readonly undoManager: Y.UndoManager | null;
24
+ }
25
+ /**
26
+ * Generic shareable document.
27
+ */
28
+ export declare class YDocument<T extends DocumentChange> implements ISharedDocument {
29
+ constructor();
30
+ /**
31
+ * YJS document
32
+ */
33
+ readonly ydoc: Y.Doc;
34
+ /**
35
+ * Shared state
36
+ */
37
+ readonly ystate: Y.Map<any>;
38
+ /**
39
+ * YJS document undo manager
40
+ */
41
+ readonly undoManager: Y.UndoManager;
42
+ /**
43
+ * Shared awareness
44
+ */
45
+ readonly awareness: Awareness;
46
+ /**
47
+ * The changed signal.
48
+ */
49
+ get changed(): Event<T>;
50
+ /**
51
+ * Whether the document is disposed or not.
52
+ */
53
+ get isDisposed(): boolean;
54
+ /**
55
+ * Whether the object can undo changes.
56
+ */
57
+ canUndo(): boolean;
58
+ /**
59
+ * Whether the object can redo changes.
60
+ */
61
+ canRedo(): boolean;
62
+ /**
63
+ * Dispose of the resources.
64
+ */
65
+ dispose(): void;
66
+ /**
67
+ * Undo an operation.
68
+ */
69
+ undo(): void;
70
+ /**
71
+ * Redo an operation.
72
+ */
73
+ redo(): void;
74
+ /**
75
+ * Clear the change stack.
76
+ */
77
+ clearUndoHistory(): void;
78
+ /**
79
+ * Perform a transaction. While the function f is called, all changes to the shared
80
+ * document are bundled into a single event.
81
+ */
82
+ transact(f: () => void, undoable?: boolean): void;
83
+ /**
84
+ * Handle a change to the ystate.
85
+ */
86
+ protected onStateChanged: (event: Y.YMapEvent<any>) => void;
87
+ protected _changedEmitter: Emitter<T>;
88
+ protected _changed: Event<T>;
89
+ private _isDisposed;
90
+ }
91
+ /**
92
+ * Shareable text file.
93
+ */
94
+ export declare class YFile extends YDocument<FileChange> implements ISharedFile, ISharedText, IYText {
95
+ /**
96
+ * Instantiate a new shareable file.
97
+ *
98
+ * @param source The initial file content
99
+ *
100
+ * @returns The file model
101
+ */
102
+ static create(source?: string): YFile;
103
+ constructor();
104
+ /**
105
+ * YJS file text.
106
+ */
107
+ readonly ysource: Y.Text;
108
+ /**
109
+ * File text
110
+ */
111
+ get source(): string;
112
+ set source(v: string);
113
+ /**
114
+ * Dispose of the resources.
115
+ */
116
+ dispose(): void;
117
+ /**
118
+ * Get the file text.
119
+ *
120
+ * @returns File text.
121
+ */
122
+ getSource(): string;
123
+ /**
124
+ * Set the file text.
125
+ *
126
+ * @param value New text
127
+ */
128
+ setSource(value: string): void;
129
+ /**
130
+ * Replace content from `start' to `end` with `value`.
131
+ *
132
+ * @param start: The start index of the range to replace (inclusive).
133
+ * @param end: The end index of the range to replace (exclusive).
134
+ * @param value: New source (optional).
135
+ */
136
+ updateSource(start: number, end: number, value?: string): void;
137
+ /**
138
+ * Handle a change to the ymodel.
139
+ */
140
+ private _modelObserver;
141
+ }
142
+ export declare const defaultCellTypeAdaptor: CellTypeAdaptor;
143
+ /**
144
+ * Create a new cell that cannot be inserted in an existing shared model.
145
+ *
146
+ * @param cell Cell JSON representation
147
+ */
148
+ export declare const createStandaloneCell: (cell: SharedCell.Cell, cellTypeAdaptor?: CellTypeAdaptor) => YCellType;
149
+ export declare class YBaseCell<Metadata extends IBaseCellMetadata> implements ISharedBaseCell<Metadata>, IYText {
150
+ /**
151
+ * Create a new YCell that works standalone. It cannot be
152
+ * inserted into a YNotebook because the Yjs model is already
153
+ * attached to an anonymous Y.Doc instance.
154
+ */
155
+ static createStandalone(id?: string): YBaseCell<any>;
156
+ /**
157
+ * Base cell constructor
158
+ *
159
+ * ### Notes
160
+ * Don't use the constructor directly - prefer using ``YNotebook.insertCell``
161
+ *
162
+ * The ``ysource`` is needed because ``ymodel.get('source')`` will
163
+ * not return the real source if the model is not yet attached to
164
+ * a document. Requesting it explicitly allows to introspect a non-empty
165
+ * source before the cell is attached to the document.
166
+ *
167
+ * @param ymodel Cell map
168
+ * @param ysource Cell source
169
+ * @param options { notebook?: The notebook the cell is attached to }
170
+ */
171
+ constructor(ymodel: Y.Map<any>, ysource: Y.Text, options?: SharedCell.IOptions);
172
+ /**
173
+ * Cell notebook awareness or null if the cell is standalone.
174
+ */
175
+ get awareness(): Awareness | null;
176
+ /**
177
+ * The type of the cell.
178
+ */
179
+ get cell_type(): any;
180
+ /**
181
+ * The changed signal.
182
+ */
183
+ get changed(): Event<CellChange<Metadata>>;
184
+ /**
185
+ * Cell id
186
+ */
187
+ get id(): string;
188
+ /**
189
+ * Whether the model has been disposed or not.
190
+ */
191
+ get isDisposed(): boolean;
192
+ /**
193
+ * Whether the cell is standalone or not.
194
+ *
195
+ * If the cell is standalone. It cannot be
196
+ * inserted into a YNotebook because the Yjs model is already
197
+ * attached to an anonymous Y.Doc instance.
198
+ */
199
+ get isStandalone(): boolean;
200
+ /**
201
+ * Cell metadata.
202
+ */
203
+ get metadata(): Partial<Metadata>;
204
+ set metadata(v: Partial<Metadata>);
205
+ /**
206
+ * Signal triggered when the cell metadata changes.
207
+ */
208
+ get metadataChanged(): Event<IMapChange>;
209
+ /**
210
+ * The notebook that this cell belongs to.
211
+ */
212
+ get notebook(): YNotebook | null;
213
+ /**
214
+ * Cell input content.
215
+ */
216
+ get source(): string;
217
+ set source(v: string);
218
+ /**
219
+ * The cell undo manager.
220
+ */
221
+ get undoManager(): Y.UndoManager | null;
222
+ /**
223
+ * Defer setting the undo manager as it requires the
224
+ * cell to be attached to the notebook Y document.
225
+ */
226
+ setUndoManager(): void;
227
+ readonly ymodel: Y.Map<any>;
228
+ get ysource(): Y.Text;
229
+ /**
230
+ * Whether the object can undo changes.
231
+ */
232
+ canUndo(): boolean;
233
+ /**
234
+ * Whether the object can redo changes.
235
+ */
236
+ canRedo(): boolean;
237
+ /**
238
+ * Clear the change stack.
239
+ */
240
+ clearUndoHistory(): void;
241
+ /**
242
+ * Undo an operation.
243
+ */
244
+ undo(): void;
245
+ /**
246
+ * Redo an operation.
247
+ */
248
+ redo(): void;
249
+ /**
250
+ * Dispose of the resources.
251
+ */
252
+ dispose(): void;
253
+ /**
254
+ * Get cell id.
255
+ *
256
+ * @returns Cell id
257
+ */
258
+ getId(): string;
259
+ /**
260
+ * Gets cell's source.
261
+ *
262
+ * @returns Cell's source.
263
+ */
264
+ getSource(): string;
265
+ /**
266
+ * Sets cell's source.
267
+ *
268
+ * @param value: New source.
269
+ */
270
+ setSource(value: string): void;
271
+ /**
272
+ * Replace content from `start' to `end` with `value`.
273
+ *
274
+ * @param start: The start index of the range to replace (inclusive).
275
+ *
276
+ * @param end: The end index of the range to replace (exclusive).
277
+ *
278
+ * @param value: New source (optional).
279
+ */
280
+ updateSource(start: number, end: number, value?: string): void;
281
+ /**
282
+ * Delete a metadata cell.
283
+ *
284
+ * @param key The key to delete
285
+ */
286
+ deleteMetadata(key: string): void;
287
+ /**
288
+ * Returns the metadata associated with the cell.
289
+ *
290
+ * @param key
291
+ * @returns Cell metadata.
292
+ */
293
+ getMetadata(key?: string): Partial<Metadata>;
294
+ /**
295
+ * Sets some cell metadata.
296
+ *
297
+ * If only one argument is provided, it will override all cell metadata.
298
+ * Otherwise a single key will be set to a new value.
299
+ *
300
+ * @param metadata Cell's metadata or key.
301
+ * @param value Metadata value
302
+ */
303
+ setMetadata(metadata: Partial<Metadata> | string, value?: PartialJSONValue): void;
304
+ /**
305
+ * Serialize the model to JSON.
306
+ */
307
+ toJSON(): IBaseCell;
308
+ /**
309
+ * Perform a transaction. While the function f is called, all changes to the shared
310
+ * document are bundled into a single event.
311
+ */
312
+ transact(f: () => void, undoable?: boolean): void;
313
+ /**
314
+ * Extract changes from YJS events
315
+ *
316
+ * @param events YJS events
317
+ * @returns Cell changes
318
+ */
319
+ protected getChanges(events: Y.YEvent<any>[]): Partial<CellChange<Metadata>>;
320
+ /**
321
+ * Handle a change to the ymodel.
322
+ */
323
+ private _modelObserver;
324
+ protected _metadataChangedEmitter: Emitter<IMapChange<any>>;
325
+ protected _metadataChanged: Event<IMapChange<any>>;
326
+ /**
327
+ * The notebook that this cell belongs to.
328
+ */
329
+ protected _notebook: YNotebook | null;
330
+ private _awareness;
331
+ private _changedEmitter;
332
+ private _changed;
333
+ private _isDisposed;
334
+ private _prevSourceLength;
335
+ private _undoManager;
336
+ private _ysource;
337
+ }
338
+ /**
339
+ * Shareable code cell.
340
+ */
341
+ export declare class YCodeCell extends YBaseCell<IBaseCellMetadata> implements ISharedCodeCell {
342
+ /**
343
+ * Create a new YCodeCell that works standalone. It cannot be
344
+ * inserted into a YNotebook because the Yjs model is already
345
+ * attached to an anonymous Y.Doc instance.
346
+ */
347
+ static createStandalone(id?: string): YCodeCell;
348
+ /**
349
+ * Code cell constructor
350
+ *
351
+ * ### Notes
352
+ * Don't use the constructor directly - prefer using ``YNotebook.insertCell``
353
+ *
354
+ * The ``ysource`` is needed because ``ymodel.get('source')`` will
355
+ * not return the real source if the model is not yet attached to
356
+ * a document. Requesting it explicitly allows to introspect a non-empty
357
+ * source before the cell is attached to the document.
358
+ *
359
+ * @param ymodel Cell map
360
+ * @param ysource Cell source
361
+ * @param youtputs Code cell outputs
362
+ * @param options { notebook?: The notebook the cell is attached to }
363
+ */
364
+ constructor(ymodel: Y.Map<any>, ysource: Y.Text, youtputs: Y.Array<any>, options?: SharedCell.IOptions);
365
+ /**
366
+ * The type of the cell.
367
+ */
368
+ get cell_type(): string;
369
+ /**
370
+ * The code cell's prompt number. Will be null if the cell has not been run.
371
+ */
372
+ get execution_count(): number | null;
373
+ set execution_count(count: number | null);
374
+ /**
375
+ * Cell outputs.
376
+ */
377
+ get outputs(): IOutput[];
378
+ set outputs(v: IOutput[]);
379
+ /**
380
+ * Execution, display, or stream outputs.
381
+ */
382
+ getOutputs(): IOutput[];
383
+ /**
384
+ * Replace all outputs.
385
+ */
386
+ setOutputs(outputs: IOutput[]): void;
387
+ /**
388
+ * Replace content from `start' to `end` with `outputs`.
389
+ *
390
+ * @param start: The start index of the range to replace (inclusive).
391
+ *
392
+ * @param end: The end index of the range to replace (exclusive).
393
+ *
394
+ * @param outputs: New outputs (optional).
395
+ */
396
+ updateOutputs(start: number, end: number, outputs?: IOutput[]): void;
397
+ /**
398
+ * Serialize the model to JSON.
399
+ */
400
+ toJSON(): ICodeCell;
401
+ /**
402
+ * Extract changes from YJS events
403
+ *
404
+ * @param events YJS events
405
+ * @returns Cell changes
406
+ */
407
+ protected getChanges(events: Y.YEvent<any>[]): Partial<CellChange<IBaseCellMetadata>>;
408
+ private _youtputs;
409
+ }
410
+ declare class YAttachmentCell extends YBaseCell<IBaseCellMetadata> implements ISharedAttachmentsCell {
411
+ /**
412
+ * Cell attachments
413
+ */
414
+ get attachments(): IAttachments | undefined;
415
+ set attachments(v: IAttachments | undefined);
416
+ /**
417
+ * Gets the cell attachments.
418
+ *
419
+ * @returns The cell attachments.
420
+ */
421
+ getAttachments(): IAttachments | undefined;
422
+ /**
423
+ * Sets the cell attachments
424
+ *
425
+ * @param attachments: The cell attachments.
426
+ */
427
+ setAttachments(attachments: IAttachments | undefined): void;
428
+ /**
429
+ * Extract changes from YJS events
430
+ *
431
+ * @param events YJS events
432
+ * @returns Cell changes
433
+ */
434
+ protected getChanges(events: Y.YEvent<any>[]): Partial<CellChange<IBaseCellMetadata>>;
435
+ }
436
+ /**
437
+ * Shareable raw cell.
438
+ */
439
+ export declare class YRawCell extends YAttachmentCell implements ISharedRawCell {
440
+ /**
441
+ * Create a new YRawCell that works standalone. It cannot be
442
+ * inserted into a YNotebook because the Yjs model is already
443
+ * attached to an anonymous Y.Doc instance.
444
+ */
445
+ static createStandalone(id?: string): YRawCell;
446
+ /**
447
+ * String identifying the type of cell.
448
+ */
449
+ get cell_type(): 'raw';
450
+ /**
451
+ * Serialize the model to JSON.
452
+ */
453
+ toJSON(): IRawCell;
454
+ }
455
+ /**
456
+ * Shareable markdown cell.
457
+ */
458
+ export declare class YMarkdownCell extends YAttachmentCell implements ISharedMarkdownCell {
459
+ /**
460
+ * Create a new YMarkdownCell that works standalone. It cannot be
461
+ * inserted into a YNotebook because the Yjs model is already
462
+ * attached to an anonymous Y.Doc instance.
463
+ */
464
+ static createStandalone(id?: string): YMarkdownCell;
465
+ /**
466
+ * String identifying the type of cell.
467
+ */
468
+ get cell_type(): 'markdown';
469
+ /**
470
+ * Serialize the model to JSON.
471
+ */
472
+ toJSON(): IMarkdownCell;
473
+ }
474
+ /**
475
+ * Cell type.
476
+ */
477
+ export type YCellType = YRawCell | YCodeCell | YMarkdownCell;
478
+ /**
479
+ * Shared implementation of the Shared Document types.
480
+ *
481
+ * Shared cells can be inserted into a SharedNotebook.
482
+ * Shared cells only start emitting events when they are connected to a SharedNotebook.
483
+ *
484
+ * "Standalone" cells must not be inserted into a (Shared)Notebook.
485
+ * Standalone cells emit events immediately after they have been created, but they must not
486
+ * be included into a (Shared)Notebook.
487
+ */
488
+ export declare class YNotebook extends YDocument<NotebookChange> implements ISharedNotebook {
489
+ protected _undoChangedEmitter: Emitter<boolean>;
490
+ /**
491
+ * Signal triggered when a undo stack changed.
492
+ */
493
+ get undoChanged(): Event<boolean>;
494
+ protected _redoChangedEmitter: Emitter<boolean>;
495
+ /**
496
+ * Signal triggered when a undo stack changed.
497
+ */
498
+ get redoChanged(): Event<boolean>;
499
+ /**
500
+ * Create a new YNotebook.
501
+ */
502
+ static create(options?: ISharedNotebook.IOptions): ISharedNotebook;
503
+ protected _canRedo: boolean;
504
+ protected _canUndo: boolean;
505
+ constructor(options?: ISharedNotebook.IOptions);
506
+ protected handleUndoChanged: () => void;
507
+ cellTypeAdaptor: CellTypeAdaptor;
508
+ /**
509
+ * YJS map for the notebook metadata
510
+ */
511
+ readonly ymeta: Y.Map<any>;
512
+ /**
513
+ * Cells list
514
+ */
515
+ readonly cells: YCellType[];
516
+ /**
517
+ * Signal triggered when the cells list changes.
518
+ */
519
+ get cellsChanged(): Event<IListChange>;
520
+ /**
521
+ * Wether the undo/redo logic should be
522
+ * considered on the full document across all cells.
523
+ *
524
+ * Default: false
525
+ */
526
+ get disableDocumentWideUndoRedo(): boolean;
527
+ /**
528
+ * Notebook metadata
529
+ */
530
+ get metadata(): INotebookMetadata;
531
+ set metadata(v: INotebookMetadata);
532
+ /**
533
+ * Signal triggered when a metadata changes.
534
+ */
535
+ get metadataChanged(): Event<IMapChange>;
536
+ /**
537
+ * nbformat major version
538
+ */
539
+ get nbformat(): number;
540
+ set nbformat(value: number);
541
+ /**
542
+ * nbformat minor version
543
+ */
544
+ get nbformat_minor(): number;
545
+ set nbformat_minor(value: number);
546
+ /**
547
+ * Dispose of the resources.
548
+ */
549
+ dispose(): void;
550
+ /**
551
+ * Get a shared cell by index.
552
+ *
553
+ * @param index: Cell's position.
554
+ *
555
+ * @returns The requested shared cell.
556
+ */
557
+ getCell(index: number): YCellType;
558
+ /**
559
+ * Add a shared cell at the notebook bottom.
560
+ *
561
+ * @param cell Cell to add.
562
+ *
563
+ * @returns The added cell.
564
+ */
565
+ addCell(cell: SharedCell.Cell): YBaseCell<IBaseCellMetadata>;
566
+ /**
567
+ * Insert a shared cell into a specific position.
568
+ *
569
+ * @param index: Cell's position.
570
+ * @param cell: Cell to insert.
571
+ *
572
+ * @returns The inserted cell.
573
+ */
574
+ insertCell(index: number, cell: SharedCell.Cell): YBaseCell<IBaseCellMetadata>;
575
+ /**
576
+ * Insert a list of shared cells into a specific position.
577
+ *
578
+ * @param index: Position to insert the cells.
579
+ * @param cells: Array of shared cells to insert.
580
+ *
581
+ * @returns The inserted cells.
582
+ */
583
+ insertCells(index: number, cells: SharedCell.Cell[]): YBaseCell<IBaseCellMetadata>[];
584
+ /**
585
+ * Move a cell.
586
+ *
587
+ * @param fromIndex: Index of the cell to move.
588
+ * @param toIndex: New position of the cell.
589
+ */
590
+ moveCell(fromIndex: number, toIndex: number): void;
591
+ /**
592
+ * Remove a cell.
593
+ *
594
+ * @param index: Index of the cell to remove.
595
+ */
596
+ deleteCell(index: number): void;
597
+ /**
598
+ * Remove a range of cells.
599
+ *
600
+ * @param from: The start index of the range to remove (inclusive).
601
+ * @param to: The end index of the range to remove (exclusive).
602
+ */
603
+ deleteCellRange(from: number, to: number): void;
604
+ /**
605
+ * Delete a metadata notebook.
606
+ *
607
+ * @param key The key to delete
608
+ */
609
+ deleteMetadata(key: string): void;
610
+ /**
611
+ * Returns some metadata associated with the notebook.
612
+ *
613
+ * If no `key` is provided, it will return all metadata.
614
+ * Else it will return the value for that key.
615
+ *
616
+ * @param key Key to get from the metadata
617
+ * @returns Notebook's metadata.
618
+ */
619
+ getMetadata(key?: string): INotebookMetadata;
620
+ /**
621
+ * Sets some metadata associated with the notebook.
622
+ *
623
+ * If only one argument is provided, it will override all notebook metadata.
624
+ * Otherwise a single key will be set to a new value.
625
+ *
626
+ * @param metadata All Notebook's metadata or the key to set.
627
+ * @param value New metadata value
628
+ */
629
+ setMetadata(metadata: INotebookMetadata | string, value?: PartialJSONValue): void;
630
+ /**
631
+ * Updates the metadata associated with the notebook.
632
+ *
633
+ * @param value: Metadata's attribute to update.
634
+ */
635
+ updateMetadata(value: Partial<INotebookMetadata>): void;
636
+ /**
637
+ * Handle a change to the ystate.
638
+ */
639
+ private _onMetaChanged;
640
+ /**
641
+ * Handle a change to the list of cells.
642
+ */
643
+ private _onYCellsChanged;
644
+ protected _cellsChangedEmitter: Emitter<IListChange<any>>;
645
+ protected _cellsChanged: Event<IListChange<any>>;
646
+ protected _metadataChangedEmitter: Emitter<IMapChange<any>>;
647
+ protected _metadataChanged: Event<IMapChange<any>>;
648
+ /**
649
+ * Internal Yjs cells list
650
+ */
651
+ protected readonly _ycells: Y.Array<Y.Map<any>>;
652
+ private _disableDocumentWideUndoRedo;
653
+ private _ycellMapping;
654
+ }
655
+ export {};
656
+ //# sourceMappingURL=ymodels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ymodels.d.ts","sourceRoot":"","sources":["../src/ymodels.ts"],"names":[],"mappings":"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"}