aboutsummaryrefslogtreecommitdiff
path: root/src/new_fields/Doc.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-07-03 13:44:09 -0400
committerTyler Schicke <tyler_schicke@brown.edu>2019-07-03 13:44:09 -0400
commit4a8d63248567443be3e1ab4678cb2d395a141c4e (patch)
treebf55f1118c728c40c94ace2366a4e3213e4d6977 /src/new_fields/Doc.ts
parent3cdc6f11e262e289b6070d6fa75a59fff7e59b1e (diff)
parent88cec4b18b8e49f8598cab817955ca4dccb6228c (diff)
Merge branch 'master' of github-tsch-brown:browngraphicslab/Dash-Web
Diffstat (limited to 'src/new_fields/Doc.ts')
-rw-r--r--src/new_fields/Doc.ts12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/new_fields/Doc.ts b/src/new_fields/Doc.ts
index 734a90731..29d35e19f 100644
--- a/src/new_fields/Doc.ts
+++ b/src/new_fields/Doc.ts
@@ -249,6 +249,18 @@ export namespace Doc {
return true;
}
+ export function ComputeContentBounds(doc: Doc) {
+ let bounds = DocListCast(doc.data).reduce((bounds, doc) => {
+ var [sptX, sptY] = [NumCast(doc.x), NumCast(doc.y)];
+ let [bptX, bptY] = [sptX + doc[WidthSym](), sptY + doc[HeightSym]()];
+ return {
+ x: Math.min(sptX, bounds.x), y: Math.min(sptY, bounds.y),
+ r: Math.max(bptX, bounds.r), b: Math.max(bptY, bounds.b)
+ };
+ }, { x: Number.MAX_VALUE, y: Number.MAX_VALUE, r: Number.MIN_VALUE, b: Number.MIN_VALUE });
+ return bounds;
+ }
+
//
// Resolves a reference to a field by returning 'doc' if o field extension is specified,
// otherwise, it returns the extension document stored in doc.<fieldKey>_ext.