content utilities

This commit is contained in:
Kevin Jahns
2026-01-11 00:25:03 +01:00
parent 65bc32f1ae
commit 241d9429cc
5 changed files with 29 additions and 7 deletions

View File

@@ -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'

View File

@@ -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`.
*

View File

@@ -393,7 +393,7 @@ export class UndoManager extends ObservableV2 {
/**
* @experimental
*
*
* This is not guaranteed to work on documents with gc enabled!
*
* @param {Doc} ydoc

View File

@@ -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

View File

@@ -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)