import { RefField } from './RefField'; import { FieldChanged, Parent, Copy, ToScriptString, ToString } from './FieldSymbols'; import { ScriptingGlobals } from '../client/util/ScriptingGlobals'; import { Field } from './Doc'; export abstract class ObjectField { // prettier-ignore public [FieldChanged]?: (diff?: { op: '$addToSet' | '$remFromSet' | '$set'; items: Field[] | undefined; length: number | undefined; hint?: any }, serverOp?: any) => void; public [Parent]?: RefField | ObjectField; abstract [Copy](): ObjectField; abstract [ToScriptString](): string; abstract [ToString](): string; } export namespace ObjectField { export function MakeCopy(field: T) { return field?.[Copy](); } } ScriptingGlobals.add(ObjectField);