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

Function parseView

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

Source from the content-addressed store, hash-verified

149361 }
149362 }, spec);
149363function parseView(spec, scope) {
149364 const config = scope.config; // add scenegraph root
149365 const root = ref(scope.root = scope.add(operator())); // parse top-level signal definitions
149366 const signals = collectSignals(spec, config);
149367 signals.forEach((_)=>parseSignal(_, scope)); // assign description, event, legend, and locale configuration
149368 scope.description = spec.description || config.description;
149369 scope.eventConfig = config.events;
149370 scope.legends = scope.objectProperty(config.legend && config.legend.layout);
149371 scope.locale = config.locale; // store root group item
149372 const input = scope.add(Collect()); // encode root group item
149373 const encode = scope.add(Encode(parseEncode(rootEncode(spec.encode), GroupMark, FrameRole, spec.style, scope, {
149374 pulse: ref(input)
149375 }))); // perform view layout
149376 const parent = scope.add(ViewLayout({
149377 layout: scope.objectProperty(spec.layout),
149378 legends: scope.legends,
149379 autosize: scope.signalRef("autosize"),
149380 mark: root,
149381 pulse: ref(encode)
149382 }));
149383 scope.operators.pop(); // parse remainder of specification
149384 scope.pushState(ref(encode), ref(parent), null);
149385 parseScope(spec, scope, signals);
149386 scope.operators.push(parent); // bound / render / sieve root item
149387 let op = scope.add(Bound({
149388 mark: root,
149389 pulse: ref(parent)
149390 }));
149391 op = scope.add(Render({
149392 pulse: ref(op)
149393 }));
149394 op = scope.add(Sieve({
149395 pulse: ref(op)
149396 })); // track metadata for root item
149397 scope.addData("root", new DataScope(scope, input, input, op));
149398 return scope;
149399}
149400function signalObject(name, value19) {
149401 return value19 && value19.signal ? {
149402 name,

Callers 1

parseFunction · 0.70

Calls 15

refFunction · 0.70
operatorFunction · 0.70
collectSignalsFunction · 0.70
parseSignalFunction · 0.70
CollectFunction · 0.70
EncodeFunction · 0.70
parseEncodeFunction · 0.70
rootEncodeFunction · 0.70
ViewLayoutFunction · 0.70
parseScopeFunction · 0.70
BoundFunction · 0.70
RenderFunction · 0.70

Tested by

no test coverage detected