Code coverage report for src/compiler/template.js

Statements: 52.17% (12 / 23)      Branches: 25% (4 / 16)      Functions: 33.33% (1 / 3)      Lines: 52.17% (12 / 23)      Ignored: none     

All files » src/compiler/ » template.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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62    1   1     1   1       2           2 1   1 1     2                               2                       1              
'use strict';
 
require('../globals');
 
var groupdef = require('./group').def,
  vlfield = require('../field');
 
module.exports = template;
 
function template(encoding, layout, stats) {
  // jshint unused:false
 
  // TODO(kanitw): Jul 22, 2015 - split this file into data and template
  var data = {name: RAW, format: {}},
    table = {name: TABLE, source: RAW},
    dataUrl = encoding.data().url,
    dataType = encoding.data().formatType,
    values = encoding.data().values;
 
  if (encoding.hasValues()) {
    data.values = values;
  } else {
    data.url = dataUrl;
    data.format.type = dataType;
  }
 
  encoding.forEach(function(field, encType) {
    var name;
    if (field.type == T) {
      data.format.parse = data.format.parse || {};
      data.format.parse[field.name] = 'date';
    } else if (field.type == Q) {
      data.format.parse = data.format.parse || {};
      if (vlfield.isCount(field)) {
        name = 'count';
      } else {
        name = field.name;
      }
      data.format.parse[name] = 'number';
    }
  });
 
  return {
    width: layout.width,
    height: layout.height,
    padding: 'auto',
    data: [data, table],
    marks: [groupdef('cell', {
      width: layout.cellWidth ? {value: layout.cellWidth} : undefined,
      height: layout.cellHeight ? {value: layout.cellHeight} : undefined
    })]
  };
}
 
template.spec = function(layout) {
  return {
    width: layout.width,
    height: layout.height,
    padding: 'auto'
  };
};