Socket
Socket
Sign inDemoInstall

vega-util

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vega-util - npm Package Compare versions

Comparing version 1.13.2 to 1.14.0

src/getter.js

189

build/vega-util.js

@@ -21,2 +21,20 @@ (function (global, factory) {

function getter(path) {
return path.length === 1 ? get1(path[0]) : getN(path);
}
const get1 = field => function(obj) {
return obj[field];
};
const getN = path => {
const len = path.length;
return function(obj) {
for (let i = 0; i < len; ++i) {
obj = obj[path[i]];
}
return obj;
};
};
function error(message) {

@@ -88,28 +106,8 @@ throw Error(message);

var isArray = Array.isArray;
function isObject(_) {
return _ === Object(_);
}
function isString(_) {
return typeof _ === 'string';
}
function $(x) {
return isArray(x) ? '[' + x.map($) + ']'
: isObject(x) || isString(x) ?
// Output valid JSON and JS source strings.
// See http://timelessrepo.com/json-isnt-a-javascript-subset
JSON.stringify(x).replace('\u2028','\\u2028').replace('\u2029', '\\u2029')
: x;
}
function field(field, name) {
var path = splitAccessPath(field),
code = 'return _[' + path.map($).join('][') + '];';
function field(field, name, opt) {
const path = splitAccessPath(field);
field = path.length === 1 ? path[0] : field;
return accessor(
Function('_', code),
[(field = path.length===1 ? path[0] : field)],
(opt && opt.get || getter)(path),
[field],
name || field

@@ -174,2 +172,8 @@ );

var isArray = Array.isArray;
function isObject(_) {
return _ === Object(_);
}
const isLegalKey = key => key !== '__proto__';

@@ -364,66 +368,49 @@

function compare(fields, orders) {
var idx = [],
cmp = (fields = array(fields)).map(function(f, i) {
if (f == null) {
return null;
} else {
idx.push(i);
return isFunction(f) ? f
: splitAccessPath(f).map($).join('][');
}
}),
n = idx.length - 1,
ord = array(orders),
code = 'var u,v;return ',
i, j, f, u, v, d, t, lt, gt;
const DESCENDING = 'descending';
if (n < 0) return null;
function compare(fields, orders, opt) {
opt = opt || {};
orders = array(orders) || [];
for (j=0; j<=n; ++j) {
i = idx[j];
f = cmp[i];
const ord = [], get = [], fmap = {},
gen = opt.comparator || comparator;
if (isFunction(f)) {
d = 'f' + i;
u = '(u=this.' + d + '(a))';
v = '(v=this.' + d + '(b))';
(t = t || {})[d] = f;
} else {
u = '(u=a['+f+'])';
v = '(v=b['+f+'])';
}
array(fields).forEach((f, i) => {
if (f == null) return;
ord.push(orders[i] === DESCENDING ? -1 : 1);
get.push(f = isFunction(f) ? f : field(f, null, opt));
(accessorFields(f) || []).forEach(_ => fmap[_] = 1);
});
d = '((v=v instanceof Date?+v:v),(u=u instanceof Date?+u:u))';
return get.length === 0
? null
: accessor(gen(get, ord), Object.keys(fmap));
}
if (ord[i] !== 'descending') {
gt = 1;
lt = -1;
} else {
gt = -1;
lt = 1;
}
const compare$1 = (u, v) => (u < v || u == null) && v != null ? -1
: (u > v || v == null) && u != null ? 1
: ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? -1
: v !== v && u === u ? 1
: 0;
code += '(' + u+'<'+v+'||u==null)&&v!=null?' + lt
+ ':(u>v||v==null)&&u!=null?' + gt
+ ':'+d+'!==u&&v===v?' + lt
+ ':v!==v&&u===u?' + gt
+ (i < n ? ':' : ':0');
}
const comparator = (fields, orders) => fields.length === 1
? compare1(fields[0], orders[0])
: compareN(fields, orders, fields.length);
f = Function('a', 'b', code + ';');
if (t) f = f.bind(t);
const compare1 = (field, order) => function(a, b) {
return compare$1(field(a), field(b)) * order;
};
fields = fields.reduce(function(map, field) {
if (isFunction(field)) {
(accessorFields(field) || []).forEach(function(_) { map[_] = 1; });
} else if (field != null) {
map[field + ''] = 1;
const compareN = (fields, orders, n) => {
orders.push(0); // pad zero for convenient lookup
return function(a, b) {
let f, c = 0, i = -1;
while (c === 0 && ++i < n) {
f = fields[i];
c = compare$1(f(a), f(b));
}
return map;
}, {});
return c * orders[i];
};
};
return accessor(f, Object.keys(fields));
}
function constant(_) {

@@ -693,19 +680,32 @@ return isFunction(_) ? _ : function() { return _; };

function key(fields, flat) {
function isString(_) {
return typeof _ === 'string';
}
function key(fields, flat, opt) {
if (fields) {
fields = flat
? array(fields).map(function(f) { return f.replace(/\\(.)/g, '$1'); })
? array(fields).map(f => f.replace(/\\(.)/g, '$1'))
: array(fields);
}
var fn = !(fields && fields.length)
? function() { return ''; }
: Function('_', 'return \'\'+' +
fields.map(function(f) {
return '_[' + (flat
? $(f)
: splitAccessPath(f).map($).join('][')
) + ']';
}).join('+\'|\'+') + ';');
const len = fields && fields.length,
gen = opt && opt.get || getter,
map = f => gen(flat ? [f] : splitAccessPath(f));
let fn;
if (!len) {
fn = function() { return ''; };
} else if (len === 1) {
const get = map(fields[0]);
fn = function(_) { return '' + get(_); };
} else {
const get = fields.map(map);
fn = function(_) {
let s = '' + get[0](_), i = 0;
while (++i < len) s += '|' + get[i](_);
return s;
};
}
return accessor(fn, fields, 'key');

@@ -810,2 +810,11 @@ }

function $(x) {
return isArray(x) ? '[' + x.map($) + ']'
: isObject(x) || isString(x) ?
// Output valid JSON and JS source strings.
// See http://timelessrepo.com/json-isnt-a-javascript-subset
JSON.stringify(x).replace('\u2028','\\u2028').replace('\u2029', '\\u2029')
: x;
}
function toBoolean(_) {

@@ -812,0 +821,0 @@ return _ == null || _ === '' ? null : !_ || _ === 'false' || _ === '0' ? false : !!_;

@@ -1,1 +0,1 @@

!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n=n||self).vega={})}(this,(function(n){"use strict";function t(n,t,r){return n.fields=t||[],n.fname=r,n}function r(n){return null==n?null:n.fields}function e(n){throw Error(n)}function u(n){var t,r,u,o=[],i=null,c=0,f=n.length,l="";function a(){o.push(l+n.substring(t,r)),l="",t=r+1}for(n+="",t=r=0;r<f;++r)if("\\"===(u=n[r]))l+=n.substring(t,r),l+=n.substring(++r,++r),t=r;else if(u===i)a(),i=null,c=-1;else{if(i)continue;t===c&&'"'===u||t===c&&"'"===u?(t=r+1,i=u):"."!==u||c?"["===u?(r>t&&a(),c=t=r+1):"]"===u&&(c||e("Access path missing open bracket: "+n),c>0&&a(),c=0,t=r+1):r>t?a():t=r+1}return c&&e("Access path missing closing bracket: "+n),i&&e("Access path missing closing quote: "+n),r>t&&(r++,a()),o}var o=Array.isArray;function i(n){return n===Object(n)}function c(n){return"string"==typeof n}function f(n){return o(n)?"["+n.map(f)+"]":i(n)||c(n)?JSON.stringify(n).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):n}function l(n,r){var e=u(n),o="return _["+e.map(f).join("][")+"];";return t(Function("_",o),[n=1===e.length?e[0]:n],r||n)}var a=[],s=l("id"),h=t((function(n){return n}),a,"identity"),g=t((function(){return 0}),a,"zero"),p=t((function(){return 1}),a,"one"),v=t((function(){return!0}),a,"true"),m=t((function(){return!1}),a,"false");function y(n,t,r){var e=[t].concat([].slice.call(r));console[n].apply(console,e)}const b=n=>"__proto__"!==n;function d(n,t,r,e){var u,c;if(b(t))if(i(r)&&!o(r))for(u in c=i(n[t])?n[t]:n[t]={},r)e&&(!0===e||e[u])?d(c,u,r[u]):b(u)&&(c[u]=r[u]);else n[t]=r}function M(n,t){if(null==n)return t;const r={},e=[];function u(n){r[n.name]||(r[n.name]=1,e.push(n))}return t.forEach(u),n.forEach(u),e}function j(n){return n[n.length-1]}function O(n){return null==n||""===n?null:+n}function w(n){return function(t){return n*Math.exp(t)}}function x(n){return function(t){return Math.log(n*t)}}function z(n){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/n))}}function E(n){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*n}}function D(n){return function(t){return t<0?-Math.pow(-t,n):Math.pow(t,n)}}function _(n,t,r,e){var u=r(n[0]),o=r(j(n)),i=(o-u)*t;return[e(u-i),e(o-i)]}function k(n,t,r,e,u){var o=e(n[0]),i=e(j(n)),c=null!=t?e(t):(o+i)/2;return[u(c+(o-c)*r),u(c+(i-c)*r)]}function A(n){return null!=n?o(n)?n:[n]:[]}function S(n){return"function"==typeof n}const N=Object.prototype.hasOwnProperty;function R(n,t){return N.call(n,t)}var F={};function P(n){return"[object Date]"===Object.prototype.toString.call(n)}function C(n){return"number"==typeof n}function L(n,t){for(var r="";--t>=0;)r+=n;return r}function q(n){return C(n)||P(n)?n:Date.parse(n)}n.Debug=4,n.Error=1,n.Info=3,n.None=0,n.Warn=2,n.accessor=t,n.accessorFields=r,n.accessorName=function(n){return null==n?null:n.fname},n.array=A,n.clampRange=function(n,t,r){var e,u=n[0],o=n[1];return o<u&&(e=o,o=u,u=e),(e=o-u)>=r-t?[t,r]:[u=Math.min(Math.max(u,t),r-e),u+e]},n.compare=function(n,e){var o,i,c,l,a,s,h,g,p,v=[],m=(n=A(n)).map((function(n,t){return null==n?null:(v.push(t),S(n)?n:u(n).map(f).join("]["))})),y=v.length-1,b=A(e),d="var u,v;return ";if(y<0)return null;for(i=0;i<=y;++i)S(c=m[o=v[i]])?(l="(u=this."+(s="f"+o)+"(a))",a="(v=this."+s+"(b))",(h=h||{})[s]=c):(l="(u=a["+c+"])",a="(v=b["+c+"])"),s="((v=v instanceof Date?+v:v),(u=u instanceof Date?+u:u))","descending"!==b[o]?(p=1,g=-1):(p=-1,g=1),d+="("+l+"<"+a+"||u==null)&&v!=null?"+g+":(u>v||v==null)&&u!=null?"+p+":"+s+"!==u&&v===v?"+g+":v!==v&&u===u?"+p+(o<y?":":":0");return c=Function("a","b",d+";"),h&&(c=c.bind(h)),n=n.reduce((function(n,t){return S(t)?(r(t)||[]).forEach((function(t){n[t]=1})):null!=t&&(n[t+""]=1),n}),{}),t(c,Object.keys(n))},n.constant=function(n){return S(n)?n:function(){return n}},n.debounce=function(n,t){var r,e;function u(){t(e),r=e=null}return function(t){e=t,r&&clearTimeout(r),r=setTimeout(u,n)}},n.error=e,n.extend=function(n){for(var t,r,e=1,u=arguments.length;e<u;++e)for(r in t=arguments[e])n[r]=t[r];return n},n.extent=function(n,t){var r,e,u,o,i=0;if(n&&(r=n.length))if(null==t){for(e=n[i];i<r&&(null==e||e!=e);e=n[++i]);for(u=o=e;i<r;++i)null!=(e=n[i])&&(e<u&&(u=e),e>o&&(o=e))}else{for(e=t(n[i]);i<r&&(null==e||e!=e);e=t(n[++i]));for(u=o=e;i<r;++i)null!=(e=t(n[i]))&&(e<u&&(u=e),e>o&&(o=e))}return[u,o]},n.extentIndex=function(n,t){var r,e,u,o,i,c=-1,f=n.length;if(null==t){for(;++c<f;)if(null!=(e=n[c])&&e>=e){r=u=e;break}if(c===f)return[-1,-1];for(o=i=c;++c<f;)null!=(e=n[c])&&(r>e&&(r=e,o=c),u<e&&(u=e,i=c))}else{for(;++c<f;)if(null!=(e=t(n[c],c,n))&&e>=e){r=u=e;break}if(c===f)return[-1,-1];for(o=i=c;++c<f;)null!=(e=t(n[c],c,n))&&(r>e&&(r=e,o=c),u<e&&(u=e,i=c))}return[o,i]},n.falsy=m,n.fastmap=function(n){var t,r,e={};function u(n){return R(e,n)&&e[n]!==F}return t={size:0,empty:0,object:e,has:u,get:function(n){return u(n)?e[n]:void 0},set:function(n,r){return u(n)||(++t.size,e[n]===F&&--t.empty),e[n]=r,this},delete:function(n){return u(n)&&(--t.size,++t.empty,e[n]=F),this},clear:function(){t.size=t.empty=0,t.object=e={}},test:function(n){return arguments.length?(r=n,t):r},clean:function(){var n,u,o={},i=0;for(n in e)(u=e[n])===F||r&&r(u)||(o[n]=u,++i);t.size=i,t.empty=0,t.object=e=o}},n&&Object.keys(n).forEach((function(r){t.set(r,n[r])})),t},n.field=l,n.flush=function(n,t,r,e,u,o){if(!r&&0!==r)return o;var i,c,f=n[0],l=j(n),a=+r;return l<f&&(i=f,f=l,l=i),(i=Math.abs(t-f))<(c=Math.abs(l-t))&&i<=a?e:c<=a?u:o},n.hasOwnProperty=R,n.id=s,n.identity=h,n.inherits=function(n,t){var r=n.prototype=Object.create(t.prototype);return r.constructor=n,r},n.inrange=function(n,t,r,e){var u,o=t[0],i=t[t.length-1];return o>i&&(u=o,o=i,i=u),e=void 0===e||e,((r=void 0===r||r)?o<=n:o<n)&&(e?n<=i:n<i)},n.isArray=o,n.isBoolean=function(n){return"boolean"==typeof n},n.isDate=P,n.isFunction=S,n.isNumber=C,n.isObject=i,n.isRegExp=function(n){return"[object RegExp]"===Object.prototype.toString.call(n)},n.isString=c,n.key=function(n,r){return n&&(n=r?A(n).map((function(n){return n.replace(/\\(.)/g,"$1")})):A(n)),t(n&&n.length?Function("_","return ''+"+n.map((function(n){return"_["+(r?f(n):u(n).map(f).join("]["))+"]"})).join("+'|'+")+";"):function(){return""},n,"key")},n.lerp=function(n,t){const r=n[0],e=j(n),u=+t;return u?1===u?e:r+u*(e-r):r},n.logger=function(n,t){var r=n||0;return{level:function(n){return arguments.length?(r=+n,this):r},error:function(){return r>=1&&y(t||"error","ERROR",arguments),this},warn:function(){return r>=2&&y(t||"warn","WARN",arguments),this},info:function(){return r>=3&&y(t||"log","INFO",arguments),this},debug:function(){return r>=4&&y(t||"log","DEBUG",arguments),this}}},n.lruCache=function(n){let t,r,e;n=+n||1e4;const u=()=>{t={},r={},e=0},o=(u,o)=>(++e>n&&(r=t,t={},e=1),t[u]=o);return u(),{clear:u,has:n=>R(t,n)||R(r,n),get:n=>R(t,n)?t[n]:R(r,n)?o(n,r[n]):void 0,set:(n,r)=>R(t,n)?t[n]=r:o(n,r)}},n.merge=function(n,t,r,e){var u=t.length,o=r.length;if(!o)return t;if(!u)return r;for(var i=e||new t.constructor(u+o),c=0,f=0,l=0;c<u&&f<o;++l)i[l]=n(t[c],r[f])>0?r[f++]:t[c++];for(;c<u;++c,++l)i[l]=t[c];for(;f<o;++f,++l)i[l]=r[f];return i},n.mergeConfig=function(...n){return n.reduce((n,t)=>{for(var r in t)if("signals"===r)n.signals=M(n.signals,t.signals);else{var e="legend"===r?{layout:1}:"style"===r||null;d(n,r,t[r],e)}return n},{})},n.one=p,n.pad=function(n,t,r,e){var u=r||" ",o=n+"",i=t-o.length;return i<=0?o:"left"===e?L(u,i)+o:"center"===e?L(u,~~(i/2))+o+L(u,Math.ceil(i/2)):o+L(u,i)},n.panLinear=function(n,t){return _(n,t,O,h)},n.panLog=function(n,t){var r=Math.sign(n[0]);return _(n,t,x(r),w(r))},n.panPow=function(n,t,r){return _(n,t,D(r),D(1/r))},n.panSymlog=function(n,t,r){return _(n,t,z(r),E(r))},n.peek=j,n.quarter=function(n){return 1+~~(new Date(n).getMonth()/3)},n.repeat=L,n.span=function(n){return n&&j(n)-n[0]||0},n.splitAccessPath=u,n.stringValue=f,n.toBoolean=function(n){return null==n||""===n?null:!(!n||"false"===n||"0"===n)&&!!n},n.toDate=function(n,t){return t=t||q,null==n||""===n?null:t(n)},n.toNumber=O,n.toSet=function(n){for(var t={},r=0,e=n.length;r<e;++r)t[n[r]]=!0;return t},n.toString=function(n){return null==n||""===n?null:n+""},n.truncate=function(n,t,r,e){var u=null!=e?e:"…",o=n+"",i=o.length,c=Math.max(0,t-u.length);return i<=t?o:"left"===r?u+o.slice(i-c):"center"===r?o.slice(0,Math.ceil(c/2))+u+o.slice(i-~~(c/2)):o.slice(0,c)+u},n.truthy=v,n.utcquarter=function(n){return 1+~~(new Date(n).getUTCMonth()/3)},n.visitArray=function(n,t,r){if(n){var e,u=0,o=n.length;if(t)for(;u<o;++u)(e=t(n[u]))&&r(e,u,n);else n.forEach(r)}},n.writeConfig=d,n.zero=g,n.zoomLinear=function(n,t,r){return k(n,t,r,O,h)},n.zoomLog=function(n,t,r){var e=Math.sign(n[0]);return k(n,t,r,x(e),w(e))},n.zoomPow=function(n,t,r,e){return k(n,t,r,D(e),D(1/e))},n.zoomSymlog=function(n,t,r,e){return k(n,t,r,z(e),E(e))},Object.defineProperty(n,"__esModule",{value:!0})}));
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n=n||self).vega={})}(this,(function(n){"use strict";function t(n,t,r){return n.fields=t||[],n.fname=r,n}function r(n){return null==n?null:n.fields}function e(n){return 1===n.length?u(n[0]):o(n)}const u=n=>function(t){return t[n]},o=n=>{const t=n.length;return function(r){for(let e=0;e<t;++e)r=r[n[e]];return r}};function i(n){throw Error(n)}function c(n){var t,r,e,u=[],o=null,c=0,f=n.length,l="";function a(){u.push(l+n.substring(t,r)),l="",t=r+1}for(n+="",t=r=0;r<f;++r)if("\\"===(e=n[r]))l+=n.substring(t,r),l+=n.substring(++r,++r),t=r;else if(e===o)a(),o=null,c=-1;else{if(o)continue;t===c&&'"'===e||t===c&&"'"===e?(t=r+1,o=e):"."!==e||c?"["===e?(r>t&&a(),c=t=r+1):"]"===e&&(c||i("Access path missing open bracket: "+n),c>0&&a(),c=0,t=r+1):r>t?a():t=r+1}return c&&i("Access path missing closing bracket: "+n),o&&i("Access path missing closing quote: "+n),r>t&&(r++,a()),u}function f(n,r,u){const o=c(n);return n=1===o.length?o[0]:n,t((u&&u.get||e)(o),[n],r||n)}var l=[],a=f("id"),s=t((function(n){return n}),l,"identity"),g=t((function(){return 0}),l,"zero"),h=t((function(){return 1}),l,"one"),p=t((function(){return!0}),l,"true"),m=t((function(){return!1}),l,"false");function y(n,t,r){var e=[t].concat([].slice.call(r));console[n].apply(console,e)}var v=Array.isArray;function b(n){return n===Object(n)}const d=n=>"__proto__"!==n;function M(n,t,r,e){var u,o;if(d(t))if(b(r)&&!v(r))for(u in o=b(n[t])?n[t]:n[t]={},r)e&&(!0===e||e[u])?M(o,u,r[u]):d(u)&&(o[u]=r[u]);else n[t]=r}function j(n,t){if(null==n)return t;const r={},e=[];function u(n){r[n.name]||(r[n.name]=1,e.push(n))}return t.forEach(u),n.forEach(u),e}function O(n){return n[n.length-1]}function w(n){return null==n||""===n?null:+n}function x(n){return function(t){return n*Math.exp(t)}}function E(n){return function(t){return Math.log(n*t)}}function z(n){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/n))}}function D(n){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*n}}function k(n){return function(t){return t<0?-Math.pow(-t,n):Math.pow(t,n)}}function A(n,t,r,e){var u=r(n[0]),o=r(O(n)),i=(o-u)*t;return[e(u-i),e(o-i)]}function S(n,t,r,e,u){var o=e(n[0]),i=e(O(n)),c=null!=t?e(t):(o+i)/2;return[u(c+(o-c)*r),u(c+(i-c)*r)]}function N(n){return null!=n?v(n)?n:[n]:[]}function R(n){return"function"==typeof n}const P=(n,t)=>(n<t||null==n)&&null!=t?-1:(n>t||null==t)&&null!=n?1:(t=t instanceof Date?+t:t,(n=n instanceof Date?+n:n)!==n&&t==t?-1:t!=t&&n==n?1:0),_=(n,t)=>1===n.length?C(n[0],t[0]):L(n,t,n.length),C=(n,t)=>function(r,e){return P(n(r),n(e))*t},L=(n,t,r)=>(t.push(0),function(e,u){let o,i=0,c=-1;for(;0===i&&++c<r;)o=n[c],i=P(o(e),o(u));return i*t[c]});const q=Object.prototype.hasOwnProperty;function B(n,t){return q.call(n,t)}var F={};function I(n){return"[object Date]"===Object.prototype.toString.call(n)}function T(n){return"number"==typeof n}function U(n){return"string"==typeof n}function W(n,t){for(var r="";--t>=0;)r+=n;return r}function G(n){return T(n)||I(n)?n:Date.parse(n)}n.Debug=4,n.Error=1,n.Info=3,n.None=0,n.Warn=2,n.accessor=t,n.accessorFields=r,n.accessorName=function(n){return null==n?null:n.fname},n.array=N,n.clampRange=function(n,t,r){var e,u=n[0],o=n[1];return o<u&&(e=o,o=u,u=e),(e=o-u)>=r-t?[t,r]:[u=Math.min(Math.max(u,t),r-e),u+e]},n.compare=function(n,e,u){u=u||{},e=N(e)||[];const o=[],i=[],c={},l=u.comparator||_;return N(n).forEach((n,t)=>{null!=n&&(o.push("descending"===e[t]?-1:1),i.push(n=R(n)?n:f(n,null,u)),(r(n)||[]).forEach(n=>c[n]=1))}),0===i.length?null:t(l(i,o),Object.keys(c))},n.constant=function(n){return R(n)?n:function(){return n}},n.debounce=function(n,t){var r,e;function u(){t(e),r=e=null}return function(t){e=t,r&&clearTimeout(r),r=setTimeout(u,n)}},n.error=i,n.extend=function(n){for(var t,r,e=1,u=arguments.length;e<u;++e)for(r in t=arguments[e])n[r]=t[r];return n},n.extent=function(n,t){var r,e,u,o,i=0;if(n&&(r=n.length))if(null==t){for(e=n[i];i<r&&(null==e||e!=e);e=n[++i]);for(u=o=e;i<r;++i)null!=(e=n[i])&&(e<u&&(u=e),e>o&&(o=e))}else{for(e=t(n[i]);i<r&&(null==e||e!=e);e=t(n[++i]));for(u=o=e;i<r;++i)null!=(e=t(n[i]))&&(e<u&&(u=e),e>o&&(o=e))}return[u,o]},n.extentIndex=function(n,t){var r,e,u,o,i,c=-1,f=n.length;if(null==t){for(;++c<f;)if(null!=(e=n[c])&&e>=e){r=u=e;break}if(c===f)return[-1,-1];for(o=i=c;++c<f;)null!=(e=n[c])&&(r>e&&(r=e,o=c),u<e&&(u=e,i=c))}else{for(;++c<f;)if(null!=(e=t(n[c],c,n))&&e>=e){r=u=e;break}if(c===f)return[-1,-1];for(o=i=c;++c<f;)null!=(e=t(n[c],c,n))&&(r>e&&(r=e,o=c),u<e&&(u=e,i=c))}return[o,i]},n.falsy=m,n.fastmap=function(n){var t,r,e={};function u(n){return B(e,n)&&e[n]!==F}return t={size:0,empty:0,object:e,has:u,get:function(n){return u(n)?e[n]:void 0},set:function(n,r){return u(n)||(++t.size,e[n]===F&&--t.empty),e[n]=r,this},delete:function(n){return u(n)&&(--t.size,++t.empty,e[n]=F),this},clear:function(){t.size=t.empty=0,t.object=e={}},test:function(n){return arguments.length?(r=n,t):r},clean:function(){var n,u,o={},i=0;for(n in e)(u=e[n])===F||r&&r(u)||(o[n]=u,++i);t.size=i,t.empty=0,t.object=e=o}},n&&Object.keys(n).forEach((function(r){t.set(r,n[r])})),t},n.field=f,n.flush=function(n,t,r,e,u,o){if(!r&&0!==r)return o;var i,c,f=n[0],l=O(n),a=+r;return l<f&&(i=f,f=l,l=i),(i=Math.abs(t-f))<(c=Math.abs(l-t))&&i<=a?e:c<=a?u:o},n.hasOwnProperty=B,n.id=a,n.identity=s,n.inherits=function(n,t){var r=n.prototype=Object.create(t.prototype);return r.constructor=n,r},n.inrange=function(n,t,r,e){var u,o=t[0],i=t[t.length-1];return o>i&&(u=o,o=i,i=u),e=void 0===e||e,((r=void 0===r||r)?o<=n:o<n)&&(e?n<=i:n<i)},n.isArray=v,n.isBoolean=function(n){return"boolean"==typeof n},n.isDate=I,n.isFunction=R,n.isNumber=T,n.isObject=b,n.isRegExp=function(n){return"[object RegExp]"===Object.prototype.toString.call(n)},n.isString=U,n.key=function(n,r,u){n&&(n=r?N(n).map(n=>n.replace(/\\(.)/g,"$1")):N(n));const o=n&&n.length,i=u&&u.get||e,f=n=>i(r?[n]:c(n));let l;if(o)if(1===o){const t=f(n[0]);l=function(n){return""+t(n)}}else{const t=n.map(f);l=function(n){let r=""+t[0](n),e=0;for(;++e<o;)r+="|"+t[e](n);return r}}else l=function(){return""};return t(l,n,"key")},n.lerp=function(n,t){const r=n[0],e=O(n),u=+t;return u?1===u?e:r+u*(e-r):r},n.logger=function(n,t){var r=n||0;return{level:function(n){return arguments.length?(r=+n,this):r},error:function(){return r>=1&&y(t||"error","ERROR",arguments),this},warn:function(){return r>=2&&y(t||"warn","WARN",arguments),this},info:function(){return r>=3&&y(t||"log","INFO",arguments),this},debug:function(){return r>=4&&y(t||"log","DEBUG",arguments),this}}},n.lruCache=function(n){let t,r,e;n=+n||1e4;const u=()=>{t={},r={},e=0},o=(u,o)=>(++e>n&&(r=t,t={},e=1),t[u]=o);return u(),{clear:u,has:n=>B(t,n)||B(r,n),get:n=>B(t,n)?t[n]:B(r,n)?o(n,r[n]):void 0,set:(n,r)=>B(t,n)?t[n]=r:o(n,r)}},n.merge=function(n,t,r,e){var u=t.length,o=r.length;if(!o)return t;if(!u)return r;for(var i=e||new t.constructor(u+o),c=0,f=0,l=0;c<u&&f<o;++l)i[l]=n(t[c],r[f])>0?r[f++]:t[c++];for(;c<u;++c,++l)i[l]=t[c];for(;f<o;++f,++l)i[l]=r[f];return i},n.mergeConfig=function(...n){return n.reduce((n,t)=>{for(var r in t)if("signals"===r)n.signals=j(n.signals,t.signals);else{var e="legend"===r?{layout:1}:"style"===r||null;M(n,r,t[r],e)}return n},{})},n.one=h,n.pad=function(n,t,r,e){var u=r||" ",o=n+"",i=t-o.length;return i<=0?o:"left"===e?W(u,i)+o:"center"===e?W(u,~~(i/2))+o+W(u,Math.ceil(i/2)):o+W(u,i)},n.panLinear=function(n,t){return A(n,t,w,s)},n.panLog=function(n,t){var r=Math.sign(n[0]);return A(n,t,E(r),x(r))},n.panPow=function(n,t,r){return A(n,t,k(r),k(1/r))},n.panSymlog=function(n,t,r){return A(n,t,z(r),D(r))},n.peek=O,n.quarter=function(n){return 1+~~(new Date(n).getMonth()/3)},n.repeat=W,n.span=function(n){return n&&O(n)-n[0]||0},n.splitAccessPath=c,n.stringValue=function n(t){return v(t)?"["+t.map(n)+"]":b(t)||U(t)?JSON.stringify(t).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):t},n.toBoolean=function(n){return null==n||""===n?null:!(!n||"false"===n||"0"===n)&&!!n},n.toDate=function(n,t){return t=t||G,null==n||""===n?null:t(n)},n.toNumber=w,n.toSet=function(n){for(var t={},r=0,e=n.length;r<e;++r)t[n[r]]=!0;return t},n.toString=function(n){return null==n||""===n?null:n+""},n.truncate=function(n,t,r,e){var u=null!=e?e:"…",o=n+"",i=o.length,c=Math.max(0,t-u.length);return i<=t?o:"left"===r?u+o.slice(i-c):"center"===r?o.slice(0,Math.ceil(c/2))+u+o.slice(i-~~(c/2)):o.slice(0,c)+u},n.truthy=p,n.utcquarter=function(n){return 1+~~(new Date(n).getUTCMonth()/3)},n.visitArray=function(n,t,r){if(n){var e,u=0,o=n.length;if(t)for(;u<o;++u)(e=t(n[u]))&&r(e,u,n);else n.forEach(r)}},n.writeConfig=M,n.zero=g,n.zoomLinear=function(n,t,r){return S(n,t,r,w,s)},n.zoomLog=function(n,t,r){var e=Math.sign(n[0]);return S(n,t,r,E(e),x(e))},n.zoomPow=function(n,t,r,e){return S(n,t,r,k(e),k(1/e))},n.zoomSymlog=function(n,t,r,e){return S(n,t,r,z(e),D(e))},Object.defineProperty(n,"__esModule",{value:!0})}));
{
"name": "vega-util",
"version": "1.13.2",
"version": "1.14.0",
"description": "JavaScript utilities for Vega.",

@@ -25,3 +25,3 @@ "keywords": [

},
"gitHead": "35e31c5c6b54db9dc3a577b5adad8d15ec274d32"
"gitHead": "48c85218f2202242171aa569f2dca0f53cf2b51f"
}
import {default as accessor, accessorFields} from './accessor';
import array from './array';
import field from './field';
import isFunction from './isFunction';
import splitAccessPath from './splitAccessPath';
import stringValue from './stringValue';
export default function(fields, orders) {
var idx = [],
cmp = (fields = array(fields)).map(function(f, i) {
if (f == null) {
return null;
} else {
idx.push(i);
return isFunction(f) ? f
: splitAccessPath(f).map(stringValue).join('][');
}
}),
n = idx.length - 1,
ord = array(orders),
code = 'var u,v;return ',
i, j, f, u, v, d, t, lt, gt;
const DESCENDING = 'descending';
if (n < 0) return null;
export default function(fields, orders, opt) {
opt = opt || {};
orders = array(orders) || [];
for (j=0; j<=n; ++j) {
i = idx[j];
f = cmp[i];
const ord = [], get = [], fmap = {},
gen = opt.comparator || comparator;
if (isFunction(f)) {
d = 'f' + i;
u = '(u=this.' + d + '(a))';
v = '(v=this.' + d + '(b))';
(t = t || {})[d] = f;
} else {
u = '(u=a['+f+'])';
v = '(v=b['+f+'])';
}
array(fields).forEach((f, i) => {
if (f == null) return;
ord.push(orders[i] === DESCENDING ? -1 : 1);
get.push(f = isFunction(f) ? f : field(f, null, opt));
(accessorFields(f) || []).forEach(_ => fmap[_] = 1);
});
d = '((v=v instanceof Date?+v:v),(u=u instanceof Date?+u:u))';
return get.length === 0
? null
: accessor(gen(get, ord), Object.keys(fmap));
}
if (ord[i] !== 'descending') {
gt = 1;
lt = -1;
} else {
gt = -1;
lt = 1;
}
const compare = (u, v) => (u < v || u == null) && v != null ? -1
: (u > v || v == null) && u != null ? 1
: ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? -1
: v !== v && u === u ? 1
: 0;
code += '(' + u+'<'+v+'||u==null)&&v!=null?' + lt
+ ':(u>v||v==null)&&u!=null?' + gt
+ ':'+d+'!==u&&v===v?' + lt
+ ':v!==v&&u===u?' + gt
+ (i < n ? ':' : ':0');
}
const comparator = (fields, orders) => fields.length === 1
? compare1(fields[0], orders[0])
: compareN(fields, orders, fields.length);
f = Function('a', 'b', code + ';');
if (t) f = f.bind(t);
const compare1 = (field, order) => function(a, b) {
return compare(field(a), field(b)) * order;
};
fields = fields.reduce(function(map, field) {
if (isFunction(field)) {
(accessorFields(field) || []).forEach(function(_) { map[_] = 1; });
} else if (field != null) {
map[field + ''] = 1;
const compareN = (fields, orders, n) => {
orders.push(0); // pad zero for convenient lookup
return function(a, b) {
let f, c = 0, i = -1;
while (c === 0 && ++i < n) {
f = fields[i];
c = compare(f(a), f(b));
}
return map;
}, {});
return accessor(f, Object.keys(fields));
}
return c * orders[i];
};
};
import accessor from './accessor';
import getter from './getter';
import splitAccessPath from './splitAccessPath';
import stringValue from './stringValue';
export default function(field, name) {
var path = splitAccessPath(field),
code = 'return _[' + path.map(stringValue).join('][') + '];';
export default function(field, name, opt) {
const path = splitAccessPath(field);
field = path.length === 1 ? path[0] : field;
return accessor(
Function('_', code),
[(field = path.length===1 ? path[0] : field)],
(opt && opt.get || getter)(path),
[field],
name || field
);
}
import accessor from './accessor';
import array from './array';
import getter from './getter';
import splitAccessPath from './splitAccessPath';
import stringValue from './stringValue';
export default function(fields, flat) {
export default function(fields, flat, opt) {
if (fields) {
fields = flat
? array(fields).map(function(f) { return f.replace(/\\(.)/g, '$1'); })
? array(fields).map(f => f.replace(/\\(.)/g, '$1'))
: array(fields);
}
var fn = !(fields && fields.length)
? function() { return ''; }
: Function('_', 'return \'\'+' +
fields.map(function(f) {
return '_[' + (flat
? stringValue(f)
: splitAccessPath(f).map(stringValue).join('][')
) + ']';
}).join('+\'|\'+') + ';');
const len = fields && fields.length,
gen = opt && opt.get || getter,
map = f => gen(flat ? [f] : splitAccessPath(f));
let fn;
if (!len) {
fn = function() { return ''; };
} else if (len === 1) {
const get = map(fields[0]);
fn = function(_) { return '' + get(_); };
} else {
const get = fields.map(map);
fn = function(_) {
let s = '' + get[0](_), i = 0;
while (++i < len) s += '|' + get[i](_);
return s;
};
}
return accessor(fn, fields, 'key');
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc