MCPcopy Index your code
hub / github.com/microsoft/SandDance / parseFacet

Function parseFacet

docs/app/js/sanddance-app.js:148304–148328  ·  view source on GitHub ↗
(spec, scope, group)

Source from the content-addressed store, hash-verified

148302 }
148303};
148304function parseFacet(spec, scope, group) {
148305 const facet = spec.from.facet, name = facet.name, data = getDataRef(facet, scope);
148306 let op;
148307 if (!facet.name) (0, _vegaUtil.error)("Facet must have a name: " + (0, _vegaUtil.stringValue)(facet));
148308 if (!facet.data) (0, _vegaUtil.error)("Facet must reference a data set: " + (0, _vegaUtil.stringValue)(facet));
148309 if (facet.field) op = scope.add(PreFacet({
148310 field: scope.fieldRef(facet.field),
148311 pulse: data
148312 }));
148313 else if (facet.groupby) op = scope.add(Facet({
148314 key: scope.keyRef(facet.groupby),
148315 group: ref(scope.proxy(group.parent)),
148316 pulse: data
148317 }));
148318 else (0, _vegaUtil.error)("Facet must specify groupby or field: " + (0, _vegaUtil.stringValue)(facet));
148319 // initialize facet subscope
148320 const subscope = scope.fork(), source = subscope.add(Collect()), values = subscope.add(Sieve({
148321 pulse: ref(source)
148322 }));
148323 subscope.addData(name, new DataScope(subscope, source, source, values));
148324 subscope.addSignal("parent", null); // parse faceted subflow
148325 op.params.subflow = {
148326 $subflow: subscope.parse(spec).toRuntime()
148327 };
148328}
148329function parseSubflow(spec, scope, input) {
148330 const op = scope.add(PreFacet({
148331 pulse: input.pulse

Callers 1

parseMarkFunction · 0.70

Calls 7

getDataRefFunction · 0.70
PreFacetFunction · 0.70
FacetFunction · 0.70
refFunction · 0.70
CollectFunction · 0.70
SieveFunction · 0.70
addMethod · 0.45

Tested by

no test coverage detected