Code coverage report for src/compiler/stack.js

Statements: 93.33% (14 / 15)      Branches: 50% (2 / 4)      Functions: 100% (1 / 1)      Lines: 93.33% (14 / 15)      Ignored: none     

All files » src/compiler/ » stack.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42    1   1   1 8 8   8 8 8     8               8       8     8       8         8    
'use strict';
 
require('../globals');
 
module.exports = stacking;
 
function stacking(encoding, mdef, stack) {
  var groupby = stack.groupby;
  var field = stack.value;
 
  var valName = encoding.fieldRef(field);
  var startField = valName + '_start';
  var endField = valName + '_end';
 
  // add stack transform to mark
  var transform = {
    type: 'stack',
    groupby: [encoding.fieldRef(groupby)],
    field: encoding.fieldRef(field),
    sortby: [(stack.properties.reverse ? '' : '-') + encoding.fieldRef(stack.stack)],
    output: {start: startField, end: endField}
  };
 
  Iif (stack.properties.offset) {
    transform.offset = stack.properties.offset;
  }
 
  mdef.from.transform = [transform];
 
  // TODO(#276): This is super hack-ish -- consolidate into modular mark properties?
  mdef.properties.update[field] = mdef.properties.enter[field] = {
    scale: field,
    field: startField
  };
  mdef.properties.update[field + '2'] = mdef.properties.enter[field + '2'] = {
    scale: field,
    field: endField
  };
 
  return field; //return stack encoding
}