diff options
author | Sam Wilkins <samwilkins333@gmail.com> | 2020-02-07 15:45:18 -0500 |
---|---|---|
committer | Sam Wilkins <samwilkins333@gmail.com> | 2020-02-07 15:45:18 -0500 |
commit | 2193e515df95b5ced6ba67c54eebd6dabe01b2ea (patch) | |
tree | 632e2908901798e45413fc01b181f36e37a371e5 /src/new_fields/util.ts | |
parent | e9467b3b1133e62c1b96bf0749402d80e9a4f8f3 (diff) | |
parent | f028edcf9611d4311e1e8454a41b91667f2dc7ba (diff) |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web
Diffstat (limited to 'src/new_fields/util.ts')
-rw-r--r-- | src/new_fields/util.ts | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/src/new_fields/util.ts b/src/new_fields/util.ts index 45ec676b2..52bb7afcd 100644 --- a/src/new_fields/util.ts +++ b/src/new_fields/util.ts @@ -1,5 +1,5 @@ import { UndoManager } from "../client/util/UndoManager"; -import { Doc, Field, FieldResult, UpdatingFromServer } from "./Doc"; +import { Doc, Field, FieldResult, UpdatingFromServer, LayoutSym } from "./Doc"; import { SerializationHelper } from "../client/util/SerializationHelper"; import { ProxyField, PrefetchProxy } from "./Proxy"; import { RefField } from "./RefField"; @@ -104,41 +104,46 @@ let layoutProps = ["panX", "panY", "width", "height", "nativeWidth", "nativeHeig "LODdisable", "chromeStatus", "viewType", "gridGap", "xMargin", "yMargin", "autoHeight"]; export function setter(target: any, in_prop: string | symbol | number, value: any, receiver: any): boolean { let prop = in_prop; - if (typeof prop === "string" && prop !== "__id" && prop !== "__fields" && + if (typeof prop === "string" && prop !== "__id" && prop !== "__LAYOUT__" && prop !== "__fields" && ((prop as string).startsWith("_") || layoutProps.includes(prop))) { if (!prop.startsWith("_")) { console.log(prop + " is deprecated - switch to _" + prop); prop = "_" + prop; } - const resolvedLayout = getFieldImpl(target, getFieldImpl(target, "layoutKey", receiver), receiver); - if (resolvedLayout instanceof Doc) { - let x = resolvedLayout[Id]; - let layout = (resolvedLayout.layout as string).split("'")[1]; - let expanded = getFieldImpl(target, layout + "-layout[" + x + "]", receiver); - expanded && (expanded[prop] = value); - // resolvedLayout[prop] = value; + if (target.__LAYOUT__) { + target.__LAYOUT__[prop] = value; return true; } + // const resolvedLayout = getFieldImpl(target, getFieldImpl(target, "layoutKey", receiver), receiver); + // if (resolvedLayout instanceof Doc) { + // let x = resolvedLayout[Id]; + // let layout = (resolvedLayout.layout as string).split("'")[1]; + // let expanded = getFieldImpl(target, layout + "-layout[" + x + "]", receiver); + // //expanded && (expanded[prop] = value); + // // resolvedLayout[prop] = value; + // return true; + // } } return _setter(target, prop, value, receiver); } export function getter(target: any, in_prop: string | symbol | number, receiver: any): any { let prop = in_prop; - if (typeof prop === "string" && prop !== "__id" && prop !== "__fields" && + if (typeof prop === "string" && prop !== "__id" && prop !== "__LAYOUT__" && prop !== "__fields" && ((prop as string).startsWith("_") || layoutProps.includes(prop))) { if (!prop.startsWith("_")) { console.log(prop + " is deprecated - switch to _" + prop); prop = "_" + prop; } - const resolvedLayout = getFieldImpl(target, getFieldImpl(target, "layoutKey", receiver), receiver); - if (resolvedLayout instanceof Doc) { - let x = resolvedLayout[Id]; - let layout = (resolvedLayout.layout as string).split("'")[1]; - let expanded = getFieldImpl(target, layout + "-layout[" + x + "]", receiver); - return (expanded || resolvedLayout)?.[prop]; - //return resolvedLayout[prop]; - } + if (target.__LAYOUT__) return target.__LAYOUT__[prop]; + // const resolvedLayout = getFieldImpl(target, getFieldImpl(target, "layoutKey", receiver), receiver); + // if (resolvedLayout instanceof Doc) { + // let x = resolvedLayout[Id]; + // let layout = (resolvedLayout.layout as string).split("'")[1]; + // let expanded = getFieldImpl(target, layout + "-layout[" + x + "]", receiver); + // return (expanded)?.[prop]; + // //return resolvedLayout[prop]; + // } } if (prop === "then") {//If we're being awaited return undefined; |