alinea
Version:
Headless git-based CMS
32 lines (31 loc) • 1.22 kB
TypeScript
import type { Entry } from 'alinea/core';
import { Type } from 'alinea/core/Type';
import * as Y from 'yjs';
export declare class Edits {
#private;
/** The mutable doc that we are editing */
doc: Y.Doc;
/** The state vector of the source doc */
sourceVector: Uint8Array | undefined;
sourceUpdate: Uint8Array | undefined;
/** The root map containing field data */
root: Y.Map<unknown>;
/** Did we make any local changes? */
hasChanges: import("jotai").PrimitiveAtom<boolean> & {
init: boolean;
};
/** Clear local changes, reset to source */
resetChanges: import("jotai").WritableAtom<null, [], void> & {
init: null;
};
yUpdate: import("jotai").Atom<Uint8Array>;
constructor(type: Type, entry: Entry);
hasData(): boolean;
/** A Y.js update that contains our own edits */
getLocalUpdate(): Uint8Array;
/** Update entry field data */
applyEntryData(entryData: Record<string, any>): void;
/** The field data */
getEntryData(type: Type): Record<string, any>;
}
export declare const entryEditsAtoms: import("jotai/vanilla/utils/atomFamily.js").AtomFamily<Entry<Record<string, unknown>>, import("jotai").Atom<Edits>>;