vega-lite-api
Version:
A JavaScript API for Vega-Lite.
60 lines (51 loc) • 1.18 kB
JavaScript
import {BaseObject, copy, get, id, init, isEventTarget, raw, set} from './__util__';
class Param extends BaseObject {
constructor(...args) {
super();
init(this);
set(this, "name", args[0] !== undefined ? args[0] : id("name"));
}
expr(value) {
if (arguments.length) {
const obj = copy(this);
set(obj, "expr", value);
return obj;
} else {
return get(this, "expr");
}
}
name(value) {
if (arguments.length) {
const obj = copy(this);
set(obj, "name", value);
return obj;
} else {
return get(this, "name");
}
}
value(value) {
if (arguments.length) {
const obj = copy(this);
set(obj, "value", value);
return obj;
} else {
return get(this, "value");
}
}
bind(value) {
if (arguments.length) {
const obj = copy(this);
value = isEventTarget(value) ? {element: raw(value)} : value;
set(obj, "bind", value);
return obj;
} else {
return get(this, "bind");
}
}
toObject(flag) {
return flag ? super.toObject() : {param: this.name()};
}
}
export function param(...args) {
return new Param(...args);
}