@visactor/vgrammar-util
Advanced tools
Comparing version 0.3.2 to 0.4.0
@@ -1,2 +0,2 @@ | ||
import type { FieldGetterGeneratorOptions } from './types'; | ||
export declare const field: (fieldStr: string, name?: string, opt?: FieldGetterGeneratorOptions) => any; | ||
import type { FieldGetterFunction, FieldGetterGeneratorOptions } from './types'; | ||
export declare const field: (fieldStr: string | string[] | FieldGetterFunction | FieldGetterFunction[], name?: string, opt?: FieldGetterGeneratorOptions) => any; |
@@ -7,5 +7,12 @@ "use strict"; | ||
const accessor_1 = require("./accessor"), getter_1 = require("./getter"), splitAccessPath_1 = require("./splitAccessPath"), field = (fieldStr, name, opt = {}) => { | ||
const vutils_1 = require("@visactor/vutils"), accessor_1 = require("./accessor"), getter_1 = require("./getter"), splitAccessPath_1 = require("./splitAccessPath"), fieldSingle = (fieldStr, name, opt = {}) => { | ||
if ((0, vutils_1.isFunction)(fieldStr)) return fieldStr; | ||
const path = (0, splitAccessPath_1.splitAccessPath)(fieldStr), parsedField = 1 === path.length ? path[0] : fieldStr; | ||
return (0, accessor_1.accessor)((opt && opt.get || getter_1.getter)(path), [ parsedField ], name || parsedField); | ||
}, field = (fieldStr, name, opt = {}) => { | ||
if ((0, vutils_1.isArray)(fieldStr)) { | ||
const funcs = fieldStr.map((entry => fieldSingle(entry, name, opt))); | ||
return datum => funcs.map((func => func(datum))); | ||
} | ||
return fieldSingle(fieldStr, name, opt); | ||
}; | ||
@@ -12,0 +19,0 @@ |
@@ -322,3 +322,3 @@ (function (global, factory) { | ||
const isType = (value, type) => toString.call(value) === `[object ${type}]`; | ||
const isType = (value, type) => Object.prototype.toString.call(value) === `[object ${type}]`; | ||
@@ -375,2 +375,7 @@ const isFunction = value => "function" == typeof value; | ||
var LoggerLevel$1; | ||
!function (LoggerLevel) { | ||
LoggerLevel[LoggerLevel.None = 0] = "None", LoggerLevel[LoggerLevel.Error = 1] = "Error", LoggerLevel[LoggerLevel.Warn = 2] = "Warn", LoggerLevel[LoggerLevel.Info = 3] = "Info", LoggerLevel[LoggerLevel.Debug = 4] = "Debug"; | ||
}(LoggerLevel$1 || (LoggerLevel$1 = {})); | ||
const accessor = (fn, fields, name) => { | ||
@@ -562,3 +567,6 @@ fn.fields = fields || []; | ||
const field = (fieldStr, name, opt = {}) => { | ||
const fieldSingle = (fieldStr, name, opt = {}) => { | ||
if (isFunction(fieldStr)) { | ||
return fieldStr; | ||
} | ||
const path = splitAccessPath(fieldStr); | ||
@@ -568,2 +576,11 @@ const parsedField = path.length === 1 ? path[0] : fieldStr; | ||
}; | ||
const field = (fieldStr, name, opt = {}) => { | ||
if (isArray(fieldStr)) { | ||
const funcs = fieldStr.map(entry => fieldSingle(entry, name, opt)); | ||
return (datum) => { | ||
return funcs.map(func => func(datum)); | ||
}; | ||
} | ||
return fieldSingle(fieldStr, name, opt); | ||
}; | ||
@@ -570,0 +587,0 @@ const id = field('id'); |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).VGrammar=e.VGrammar||{},e.VGrammar.Util={}))}(this,(function(e){"use strict";!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,s||e,i),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],c]:e._events[l].push(c):(e._events[l]=c,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function c(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),c.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,i=new Array(s);o<s;o++)i[o]=r[o].fn;return i},c.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},c.prototype.emit=function(e,t,r,o,s,i){var c=n?n+e:e;if(!this._events[c])return!1;var l,u,f=this._events[c],a=arguments.length;if(f.fn){switch(f.once&&this.removeListener(e,f.fn,void 0,!0),a){case 1:return f.fn.call(f.context),!0;case 2:return f.fn.call(f.context,t),!0;case 3:return f.fn.call(f.context,t,r),!0;case 4:return f.fn.call(f.context,t,r,o),!0;case 5:return f.fn.call(f.context,t,r,o,s),!0;case 6:return f.fn.call(f.context,t,r,o,s,i),!0}for(u=1,l=new Array(a-1);u<a;u++)l[u-1]=arguments[u];f.fn.apply(f.context,l)}else{var h,p=f.length;for(u=0;u<p;u++)switch(f[u].once&&this.removeListener(e,f[u].fn,void 0,!0),a){case 1:f[u].fn.call(f[u].context);break;case 2:f[u].fn.call(f[u].context,t);break;case 3:f[u].fn.call(f[u].context,t,r);break;case 4:f[u].fn.call(f[u].context,t,r,o);break;default:if(!l)for(h=1,l=new Array(a-1);h<a;h++)l[h-1]=arguments[h];f[u].fn.apply(f[u].context,l)}}return!0},c.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,r,o){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return i(this,s),this;var c=this._events[s];if(c.fn)c.fn!==t||o&&!c.once||r&&c.context!==r||i(this,s);else{for(var l=0,u=[],f=c.length;l<f;l++)(c[l].fn!==t||o&&!c[l].once||r&&c[l].context!==r)&&u.push(c[l]);u.length?this._events[s]=1===u.length?u[0]:u:i(this,s)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=n,c.EventEmitter=c,e.exports=c}({exports:{}});const t=(e,t)=>toString.call(e)===`[object ${t}]`,n=e=>"function"==typeof e,r=e=>null==e,o=e=>{const t=typeof e;return null!==e&&"object"===t||"function"===t},s=e=>"object"==typeof e&&null!==e,i=function(e){const n=typeof e;return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"string"===n:"string"===n||t(e,"String")},c=e=>Array.isArray?Array.isArray(e):t(e,"Array"),l=function(e){const n=typeof e;return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"number"===n:"number"===n||t(e,"Number")};function u(e){return null!=e?c(e)?e:[e]:[]}let f=!1;try{f="function"==typeof requestAnimationFrame&&"function"==typeof cancelAnimationFrame}catch(e){f=!1}var a;f=!1,function(e){e[e.NONE=0]="NONE",e[e.BBOX1=1]="BBOX1",e[e.BBOX2=2]="BBOX2"}(a||(a={}));const h=(e,t,n)=>(e.fields=t||[],e.fname=n,e);function p(e){return r(e)?null:e.fields}const v=e=>t=>((e,t,n)=>{const r=i(t)?t.split("."):t;for(let t=0;t<r.length;t++)e=e?e[r[t]]:void 0;return void 0===e?n:e})(t,e);function g(e,t,n){const r=[t].concat([].slice.call(n));console[e].apply(console,r)}var y;!function(e){e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Info=3]="Info",e[e.Debug=4]="Debug"}(y||(y={}));class m{_level;_method;constructor(e=y.None,t){this._level=e,this._method=t}canLogInfo(){return this._level>=y.Info}canLogDebug(){return this._level>=y.Debug}canLogError(){return this._level>=y.Error}canLogWarn(){return this._level>=y.Warn}level(e){return arguments.length?(this._level=+e,this):this._level}error(...e){return this._level>=y.Error&&g(this._method??"error","ERROR",e),this}warn(...e){return this._level>=y.Warn&&g(this._method||"warn","WARN",e),this}info(...e){return this._level>=y.Info&&g(this._method||"log","INFO",e),this}debug(...e){return this._level>=y.Debug&&g(this._method||"log","DEBUG",e),this}}let _=null;const b=(e,t)=>(_&&l(e)?_.level(e):_||(_=new m(e,t)),_),d=e=>{b().error(e)},N=e=>{const t=[],n=e.length;let r,o,s,i=null,c=0,l="";e+="";const u=()=>{t.push(l+e.substring(r,o)),l="",r=o+1};for(r=0,o=0;o<n;o+=1)if(s=e[o],"\\"===s)l+=e.substring(r,o),l+=e.substring(++o,++o),r=o;else if(s===i)u(),i=null,c=-1;else{if(i)continue;r===c&&'"'===s||r===c&&"'"===s?(r=o+1,i=s):"."!==s||c?"["===s?(o>r&&u(),r=o+1,c=r):"]"===s&&(c||d("Access path missing open bracket: "+e),c>0&&u(),c=0,r=o+1):o>r?u():r=o+1}return c&&d("Access path missing closing bracket: "+e),i&&d("Access path missing closing quote: "+e),o>r&&(o+=1,u()),t},x=(e,t,n={})=>{const r=N(e),o=1===r.length?r[0]:e;return h((n&&n.get||v)(r),[o],t||o)},O=x("id"),w=h((function(e){return e}),[],"identity"),L=h((function(){return 0}),[],"zero"),A=h((function(){return 1}),[],"one"),E=h((function(){return!0}),[],"true"),j=h((function(){return!1}),[],"false"),k=h((function(){return{}}),[],"emptyObject"),B=(e,t)=>{if((e<t||r(e))&&!r(t))return-1;if((e>t||r(t))&&!r(e))return 1;const n=t instanceof Date?+t:t,o=e instanceof Date?+e:e;return Number.isNaN(o)&&!Number.isNaN(n)?-1:Number.isNaN(n)&&!Number.isNaN(o)?1:0},D=(e,t)=>{return 1===e.length?(n=e[0],r=t[0],(e,t)=>B(n(e),n(t))*r):((e,t,n)=>(t.push(0),(r,o)=>{let s,i=0,c=-1;for(;0===i&&c+1<n;)c+=1,s=e[c],i=B(s(r),s(o));return i*t[c]}))(e,t,e.length);var n,r},C=(e,t,n,i=!0)=>{if(t===n)return!0;if(r(t)||r(n))return r(t)&&r(n);if(!s(t)&&!s(n))return t===n;const l=c(t)?t:t[e],u=c(n)?n:n[e];return l===u||!1!==i&&(c(u)?!(!c(l)||u.length!==l.length||!u.every(((e,t)=>e===l[t]))):!!o(u)&&!(!o(l)||Object.keys(u).length!==Object.keys(l).length||!Object.keys(u).every((e=>C(e,u,l)))))};function I(e,t,n,o){let s,i,c=-1;e.forEach((e=>{s=t(e),i=n(e),!r(s)&&(s=+s)>=s&&!r(i)&&(i=+i)>=i&&o(s,i,++c)}))}function W(e,t,n,r,o){let s=0,i=0;return I(e,t,n,((e,t)=>{const n=t-o(e),c=t-r;s+=n*n,i+=c*c})),1-s/i}e.Logger=m,e.accessor=h,e.accessorFields=p,e.accessorName=function(e){return r(e)?null:e.fname},e.ascending=B,e.clearLogger=()=>{_=null},e.compare=(e,t,o={})=>{const s=u(t)||[],i=[],c=[],l={},f=o.comparator||D;return u(e).forEach(((e,t)=>{if(r(e))return;i.push("desc"===s[t]?-1:1);const u=n(e)?e:x(e,null,o);c.push(u),(p(u)||[]).forEach((e=>{l[e]=1}))})),0===c.length?null:h(f(c,i),Object.keys(l))},e.emptyObject=k,e.error=d,e.extent=(e,t)=>{const o=n(t)?t:e=>e;let s,i;if(e&&e.length){const t=e.length;for(let n=0;n<t;n+=1){const t=o(e[n]);l(t)&&!Number.isNaN(t)&&(r(s)?(s=t,i=t):(s=Math.min(s,t),i=Math.max(i,t)))}return[s,i]}return[s,i]},e.falsy=j,e.field=x,e.getLogger=b,e.getter=v,e.id=O,e.identity=w,e.isEqual=C,e.one=A,e.regressionLinear=function(e,t=(e=>e.x),n=(e=>e.y)){let r=0,o=0,s=0,i=0,c=0;I(e,t,n,((e,t)=>{++c,r+=(e-r)/c,o+=(t-o)/c,s+=(e*t-s)/c,i+=(e*e-i)/c}));const l=function(e,t,n,r){const o=r-e*e,s=Math.abs(o)<1e-24?0:(n-e*t)/o;return[t-s*e,s]}(r,o,s,i),u=e=>l[0]+l[1]*e;return{coef:l,predict:u,rSquared:W(e,t,n,o,u)}},e.setLogLevel=e=>{_?_.level(e):_=new m(e)},e.setLogger=e=>{_=e},e.splitAccessPath=N,e.toPercent=(e,t)=>r(e)?t:Math.min(i(e)?t*parseFloat(e)/100:e,t),e.truthy=E,e.zero=L})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).VGrammar=e.VGrammar||{},e.VGrammar.Util={}))}(this,(function(e){"use strict";!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,s||e,i),u=n?n+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],c]:e._events[u].push(c):(e._events[u]=c,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function c(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),c.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,i=new Array(s);o<s;o++)i[o]=r[o].fn;return i},c.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},c.prototype.emit=function(e,t,r,o,s,i){var c=n?n+e:e;if(!this._events[c])return!1;var u,l,f=this._events[c],a=arguments.length;if(f.fn){switch(f.once&&this.removeListener(e,f.fn,void 0,!0),a){case 1:return f.fn.call(f.context),!0;case 2:return f.fn.call(f.context,t),!0;case 3:return f.fn.call(f.context,t,r),!0;case 4:return f.fn.call(f.context,t,r,o),!0;case 5:return f.fn.call(f.context,t,r,o,s),!0;case 6:return f.fn.call(f.context,t,r,o,s,i),!0}for(l=1,u=new Array(a-1);l<a;l++)u[l-1]=arguments[l];f.fn.apply(f.context,u)}else{var h,p=f.length;for(l=0;l<p;l++)switch(f[l].once&&this.removeListener(e,f[l].fn,void 0,!0),a){case 1:f[l].fn.call(f[l].context);break;case 2:f[l].fn.call(f[l].context,t);break;case 3:f[l].fn.call(f[l].context,t,r);break;case 4:f[l].fn.call(f[l].context,t,r,o);break;default:if(!u)for(h=1,u=new Array(a-1);h<a;h++)u[h-1]=arguments[h];f[l].fn.apply(f[l].context,u)}}return!0},c.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,r,o){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return i(this,s),this;var c=this._events[s];if(c.fn)c.fn!==t||o&&!c.once||r&&c.context!==r||i(this,s);else{for(var u=0,l=[],f=c.length;u<f;u++)(c[u].fn!==t||o&&!c[u].once||r&&c[u].context!==r)&&l.push(c[u]);l.length?this._events[s]=1===l.length?l[0]:l:i(this,s)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=n,c.EventEmitter=c,e.exports=c}({exports:{}});const t=(e,t)=>Object.prototype.toString.call(e)===`[object ${t}]`,n=e=>"function"==typeof e,r=e=>null==e,o=e=>{const t=typeof e;return null!==e&&"object"===t||"function"===t},s=e=>"object"==typeof e&&null!==e,i=function(e){const n=typeof e;return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"string"===n:"string"===n||t(e,"String")},c=e=>Array.isArray?Array.isArray(e):t(e,"Array"),u=function(e){const n=typeof e;return arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"number"===n:"number"===n||t(e,"Number")};function l(e){return null!=e?c(e)?e:[e]:[]}let f=!1;try{f="function"==typeof requestAnimationFrame&&"function"==typeof cancelAnimationFrame}catch(e){f=!1}var a,h;f=!1,function(e){e[e.NONE=0]="NONE",e[e.BBOX1=1]="BBOX1",e[e.BBOX2=2]="BBOX2"}(a||(a={})),function(e){e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Info=3]="Info",e[e.Debug=4]="Debug"}(h||(h={}));const p=(e,t,n)=>(e.fields=t||[],e.fname=n,e);function v(e){return r(e)?null:e.fields}const g=e=>t=>((e,t,n)=>{const r=i(t)?t.split("."):t;for(let t=0;t<r.length;t++)e=e?e[r[t]]:void 0;return void 0===e?n:e})(t,e);function y(e,t,n){const r=[t].concat([].slice.call(n));console[e].apply(console,r)}var m;!function(e){e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Info=3]="Info",e[e.Debug=4]="Debug"}(m||(m={}));class b{_level;_method;constructor(e=m.None,t){this._level=e,this._method=t}canLogInfo(){return this._level>=m.Info}canLogDebug(){return this._level>=m.Debug}canLogError(){return this._level>=m.Error}canLogWarn(){return this._level>=m.Warn}level(e){return arguments.length?(this._level=+e,this):this._level}error(...e){return this._level>=m.Error&&y(this._method??"error","ERROR",e),this}warn(...e){return this._level>=m.Warn&&y(this._method||"warn","WARN",e),this}info(...e){return this._level>=m.Info&&y(this._method||"log","INFO",e),this}debug(...e){return this._level>=m.Debug&&y(this._method||"log","DEBUG",e),this}}let _=null;const d=(e,t)=>(_&&u(e)?_.level(e):_||(_=new b(e,t)),_),N=e=>{d().error(e)},x=e=>{const t=[],n=e.length;let r,o,s,i=null,c=0,u="";e+="";const l=()=>{t.push(u+e.substring(r,o)),u="",r=o+1};for(r=0,o=0;o<n;o+=1)if(s=e[o],"\\"===s)u+=e.substring(r,o),u+=e.substring(++o,++o),r=o;else if(s===i)l(),i=null,c=-1;else{if(i)continue;r===c&&'"'===s||r===c&&"'"===s?(r=o+1,i=s):"."!==s||c?"["===s?(o>r&&l(),r=o+1,c=r):"]"===s&&(c||N("Access path missing open bracket: "+e),c>0&&l(),c=0,r=o+1):o>r?l():r=o+1}return c&&N("Access path missing closing bracket: "+e),i&&N("Access path missing closing quote: "+e),o>r&&(o+=1,l()),t},O=(e,t,r={})=>{if(n(e))return e;const o=x(e),s=1===o.length?o[0]:e;return p((r&&r.get||g)(o),[s],t||s)},w=(e,t,n={})=>{if(c(e)){const r=e.map((e=>O(e,t,n)));return e=>r.map((t=>t(e)))}return O(e,t,n)},E=w("id"),L=p((function(e){return e}),[],"identity"),j=p((function(){return 0}),[],"zero"),A=p((function(){return 1}),[],"one"),k=p((function(){return!0}),[],"true"),D=p((function(){return!1}),[],"false"),B=p((function(){return{}}),[],"emptyObject"),I=(e,t)=>{if((e<t||r(e))&&!r(t))return-1;if((e>t||r(t))&&!r(e))return 1;const n=t instanceof Date?+t:t,o=e instanceof Date?+e:e;return Number.isNaN(o)&&!Number.isNaN(n)?-1:Number.isNaN(n)&&!Number.isNaN(o)?1:0},W=(e,t)=>{return 1===e.length?(n=e[0],r=t[0],(e,t)=>I(n(e),n(t))*r):((e,t,n)=>(t.push(0),(r,o)=>{let s,i=0,c=-1;for(;0===i&&c+1<n;)c+=1,s=e[c],i=I(s(r),s(o));return i*t[c]}))(e,t,e.length);var n,r},C=(e,t,n,i=!0)=>{if(t===n)return!0;if(r(t)||r(n))return r(t)&&r(n);if(!s(t)&&!s(n))return t===n;const u=c(t)?t:t[e],l=c(n)?n:n[e];return u===l||!1!==i&&(c(l)?!(!c(u)||l.length!==u.length||!l.every(((e,t)=>e===u[t]))):!!o(l)&&!(!o(u)||Object.keys(l).length!==Object.keys(u).length||!Object.keys(l).every((e=>C(e,l,u)))))};function F(e,t,n,o){let s,i,c=-1;e.forEach((e=>{s=t(e),i=n(e),!r(s)&&(s=+s)>=s&&!r(i)&&(i=+i)>=i&&o(s,i,++c)}))}function P(e,t,n,r,o){let s=0,i=0;return F(e,t,n,((e,t)=>{const n=t-o(e),c=t-r;s+=n*n,i+=c*c})),1-s/i}e.Logger=b,e.accessor=p,e.accessorFields=v,e.accessorName=function(e){return r(e)?null:e.fname},e.ascending=I,e.clearLogger=()=>{_=null},e.compare=(e,t,o={})=>{const s=l(t)||[],i=[],c=[],u={},f=o.comparator||W;return l(e).forEach(((e,t)=>{if(r(e))return;i.push("desc"===s[t]?-1:1);const l=n(e)?e:w(e,null,o);c.push(l),(v(l)||[]).forEach((e=>{u[e]=1}))})),0===c.length?null:p(f(c,i),Object.keys(u))},e.emptyObject=B,e.error=N,e.extent=(e,t)=>{const o=n(t)?t:e=>e;let s,i;if(e&&e.length){const t=e.length;for(let n=0;n<t;n+=1){const t=o(e[n]);u(t)&&!Number.isNaN(t)&&(r(s)?(s=t,i=t):(s=Math.min(s,t),i=Math.max(i,t)))}return[s,i]}return[s,i]},e.falsy=D,e.field=w,e.getLogger=d,e.getter=g,e.id=E,e.identity=L,e.isEqual=C,e.one=A,e.regressionLinear=function(e,t=(e=>e.x),n=(e=>e.y)){let r=0,o=0,s=0,i=0,c=0;F(e,t,n,((e,t)=>{++c,r+=(e-r)/c,o+=(t-o)/c,s+=(e*t-s)/c,i+=(e*e-i)/c}));const u=function(e,t,n,r){const o=r-e*e,s=Math.abs(o)<1e-24?0:(n-e*t)/o;return[t-s*e,s]}(r,o,s,i),l=e=>u[0]+u[1]*e;return{coef:u,predict:l,rSquared:P(e,t,n,o,l)}},e.setLogLevel=e=>{_?_.level(e):_=new b(e)},e.setLogger=e=>{_=e},e.splitAccessPath=x,e.toPercent=(e,t)=>r(e)?t:Math.min(i(e)?t*parseFloat(e)/100:e,t),e.truthy=k,e.zero=j})); |
@@ -1,2 +0,2 @@ | ||
import type { FieldGetterGeneratorOptions } from './types'; | ||
export declare const field: (fieldStr: string, name?: string, opt?: FieldGetterGeneratorOptions) => any; | ||
import type { FieldGetterFunction, FieldGetterGeneratorOptions } from './types'; | ||
export declare const field: (fieldStr: string | string[] | FieldGetterFunction | FieldGetterFunction[], name?: string, opt?: FieldGetterGeneratorOptions) => any; |
@@ -0,1 +1,3 @@ | ||
import { isArray, isFunction } from "@visactor/vutils"; | ||
import { accessor } from "./accessor"; | ||
@@ -7,6 +9,15 @@ | ||
export const field = (fieldStr, name, opt = {}) => { | ||
const fieldSingle = (fieldStr, name, opt = {}) => { | ||
if (isFunction(fieldStr)) return fieldStr; | ||
const path = splitAccessPath(fieldStr), parsedField = 1 === path.length ? path[0] : fieldStr; | ||
return accessor((opt && opt.get || getter)(path), [ parsedField ], name || parsedField); | ||
}; | ||
export const field = (fieldStr, name, opt = {}) => { | ||
if (isArray(fieldStr)) { | ||
const funcs = fieldStr.map((entry => fieldSingle(entry, name, opt))); | ||
return datum => funcs.map((func => func(datum))); | ||
} | ||
return fieldSingle(fieldStr, name, opt); | ||
}; | ||
//# sourceMappingURL=field.js.map |
{ | ||
"name": "@visactor/vgrammar-util", | ||
"version": "0.3.2", | ||
"version": "0.4.0", | ||
"description": "The common utils functions of VGrammar", | ||
@@ -27,3 +27,3 @@ "keywords": [ | ||
"dependencies": { | ||
"@visactor/vutils": "~0.11.1" | ||
"@visactor/vutils": "~0.13.0" | ||
}, | ||
@@ -36,2 +36,3 @@ "devDependencies": { | ||
"jest": "~29.5.0", | ||
"jest-environment-jsdom": "~29.5.0", | ||
"@jest/globals": "~29.5.0", | ||
@@ -38,0 +39,0 @@ "ts-jest": "~29.1.0", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
143098
1655
14
+ Added@visactor/vutils@0.13.3(transitive)
- Removed@visactor/vutils@0.11.1(transitive)
Updated@visactor/vutils@~0.13.0