Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function properties(model, mark, spec) {
var config = model.config(),
code = "",
names = dl.keys(spec),
exprs = [], // parsed expressions injected in the generated code
i, len, name, ref, vars = {},
deps = {
signals: {},
scales: {},
data: {},
fields: {},
nested: [],
_nRefs: {}, // Temp stash to de-dupe nested refs.
reflow: false
};
code += "var o = trans ? {} : item, d=0, exprs=this.exprs, set=this.tpl.set, tmpl=signals||{}, t;\n" +
// Stash for dl.template
"tmpl.datum = item.datum;\n" +
"tmpl.group = group;\n" +
field = lookup(ref);
return {
data: getParent(field).name,
field: field._name
};
}
// More than one ref
for (i = 0, len = ref.length; i < len; ++i) {
field = lookup(ref[i]);
data = getParent(field);
sets[data._id] = sets[data._id] || (sets[data._id] = []);
sets[data._id].push(field);
}
keys = dl.keys(sets);
if (keys.length === 1) {
ref = {
data: data.name,
field: sets[data._id].map(fmap)
};
} else {
ref = {fields: []};
for (i = 0, len = keys.length; i < len; ++i) {
data = lookup(keys[i]);
ref.fields.push({
data: data.name,
field: sets[data._id].map(fmap)
});
}
}
}
function nsProperties(propset) {
dl.keys(propset).forEach(function(k) {
var p = propset[k];
if (p.signal) p.signal = ns(p.signal, sg);
else if (p.rule) {
p.rule.forEach(function(r) {
if (r.signal) r.signal = ns(r.signal, sg);
if (r.predicate) nsOperand(r);
});
}
});
}
prototype.data = function(data) {
var v = this;
if (!arguments.length) return v._model.values();
else if (dl.isString(data)) return streaming.call(v, data);
else if (dl.isObject(data)) {
dl.keys(data).forEach(function(k) {
var api = streaming.call(v, k);
data[k](api);
});
}
return this;
};
prototype.values = function(type, names, hash) {
var data = (type === Deps.SIGNALS ? this._signals : this._data),
n = (names !== undefined ? names : dl.keys(data)),
vals, i;
if (Array.isArray(n)) {
vals = hash || {};
for (i=0; i
prototype.values = function(type, names, hash) {
var data = (type === Deps.SIGNALS ? this._signals : this._data),
n = (names !== undefined ? names : dl.keys(data)),
vals, i;
if (Array.isArray(n)) {
vals = hash || {};
for (i=0; i
function inject() {
if (dl.keys(mk).length > 0) injectMarks(spec.marks);
spec.signals = dl.array(spec.signals);
spec.predicates = dl.array(spec.predicates);
spec.signals.unshift.apply(spec.signals, signals);
spec.predicates.unshift.apply(spec.predicates, predicates);
defFactory();
}