mirror of
https://github.com/yjs/yjs.git
synced 2026-02-23 19:49:59 +01:00
content utilities
This commit is contained in:
@@ -118,13 +118,11 @@ export {
|
||||
getPathTo,
|
||||
Attributions,
|
||||
filterIdMap,
|
||||
undoContentIds,
|
||||
createContentIds,
|
||||
createContentMap,
|
||||
createContentIdsFromContentMap,
|
||||
createContentMapFromContentIds
|
||||
undoContentIds
|
||||
} from './internals.js'
|
||||
|
||||
export * from './utils/meta.js'
|
||||
|
||||
const glo = /** @type {any} */ (typeof globalThis !== 'undefined'
|
||||
? globalThis
|
||||
: typeof window !== 'undefined'
|
||||
|
||||
@@ -443,6 +443,8 @@ export const _insertIntoIdSet = (dest, src) => {
|
||||
export const insertIntoIdSet = _insertIntoIdSet
|
||||
|
||||
/**
|
||||
* @todo rename to excludeIdSet | excludeIdMap
|
||||
*
|
||||
* Remove all ranges from `exclude` from `ds`. The result is a fresh IdSet containing all ranges from `idSet` that are not
|
||||
* in `exclude`.
|
||||
*
|
||||
|
||||
@@ -393,7 +393,7 @@ export class UndoManager extends ObservableV2 {
|
||||
|
||||
/**
|
||||
* @experimental
|
||||
*
|
||||
*
|
||||
* This is not guaranteed to work on documents with gc enabled!
|
||||
*
|
||||
* @param {Doc} ydoc
|
||||
|
||||
@@ -28,6 +28,28 @@ export const createContentIdsFromContentMap = contentMap => createContentIds(
|
||||
idmap.createIdSetFromIdMap(contentMap.deletes)
|
||||
)
|
||||
|
||||
/**
|
||||
* @param {import('./Doc.js').Doc} ydoc
|
||||
*/
|
||||
export const createContentIdsFromDoc = ydoc => createContentIds(
|
||||
idset.createInsertSetFromStructStore(ydoc.store, false),
|
||||
idset.createDeleteSetFromStructStore(ydoc.store)
|
||||
)
|
||||
|
||||
/**
|
||||
* @param {import('./Doc.js').Doc} ydocPrev
|
||||
* @param {import('./Doc.js').Doc} ydocNext
|
||||
*/
|
||||
export const createContentIdsFromDocDiff = (ydocPrev, ydocNext) =>
|
||||
excludeContentIds(createContentIdsFromDoc(ydocPrev), createContentIdsFromDoc(ydocNext))
|
||||
|
||||
/**
|
||||
* @param {ContentIds} content
|
||||
* @param {ContentIds} excludeContent
|
||||
*/
|
||||
export const excludeContentIds = (content, excludeContent) =>
|
||||
createContentIds(idset.diffIdSet(content.inserts, excludeContent.inserts), idset.diffIdSet(content.deletes, excludeContent.deletes))
|
||||
|
||||
/**
|
||||
* @param {import('./IdMap.js').IdMap<any>} inserts
|
||||
* @param {import('./IdMap.js').IdMap<any>} deletes
|
||||
|
||||
@@ -2164,7 +2164,7 @@ const qChanges = [
|
||||
*/
|
||||
const checkResult = result => {
|
||||
for (let i = 1; i < result.testObjects.length; i++) {
|
||||
t.info('length of text = ' + result.users[i - 1].get('text').length)
|
||||
// t.info('length of text = ' + result.users[i - 1].get('text').length)
|
||||
const p1 = result.users[i - 1].get('text').toDeltaDeep().children
|
||||
const p2 = result.users[i].get('text').toDeltaDeep().children
|
||||
t.compare(p1, p2)
|
||||
|
||||
Reference in New Issue
Block a user