diff options
author | jameshu111 <51237606+jameshu111@users.noreply.github.com> | 2023-02-27 16:54:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-27 16:54:51 -0500 |
commit | de60883c54d761b74017339d9d6ce441706e0f21 (patch) | |
tree | feb939d7b16fc943bbc929c56ba84a57643d73d2 /src/fields/ScriptField.ts | |
parent | 4f5f4b4da24dc0965f87dd33ff79279c6bfc2d7c (diff) | |
parent | cfef23fbe4f3c3fee33a6b6cc5e970fe13c7d7b6 (diff) |
Merge branch 'master' into james-text-icons
Diffstat (limited to 'src/fields/ScriptField.ts')
-rw-r--r-- | src/fields/ScriptField.ts | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/fields/ScriptField.ts b/src/fields/ScriptField.ts index b23732b45..5f02bd73d 100644 --- a/src/fields/ScriptField.ts +++ b/src/fields/ScriptField.ts @@ -185,9 +185,11 @@ export class ComputedField extends ScriptField { const compiled = ScriptField.CompileScript(script, params, false); return compiled.compiled ? new ComputedField(compiled) : undefined; } - public static MakeFunction(script: string, params: object = {}, capturedVariables?: { [name: string]: Doc | string | number | boolean }) { + public static MakeFunction(script: string, params: object = {}, capturedVariables?: { [name: string]: Doc | string | number | boolean }, setterscript?: string) { const compiled = ScriptField.CompileScript(script, params, true, capturedVariables); - return compiled.compiled ? new ComputedField(compiled) : undefined; + const compiledsetter = setterscript ? ScriptField.CompileScript(setterscript, { ...params, value: 'any' }, false, capturedVariables) : undefined; + const compiledsetscript = compiledsetter?.compiled ? compiledsetter : undefined; + return compiled.compiled ? new ComputedField(compiled, compiledsetscript) : undefined; } public static MakeInterpolatedNumber(fieldKey: string, interpolatorKey: string, doc: Doc, curTimecode: number, defaultVal: Opt<number>) { if (!doc[`${fieldKey}-indexed`]) { |