-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathJCalculator.min.js
1 lines (1 loc) · 9.84 KB
/
JCalculator.min.js
1
!function(){var n="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this,r=(n.jc,Array.prototype),e=Object.prototype,t=(r.push,r.slice,e.toString),i=(e.hasOwnProperty,Array.isArray),o=Object.keys,f=Object.values?Object.values:function(r){return o(r).map(function(n){return r[n]})},s=(Object.create,function(n){return n instanceof s?n:this instanceof s?void(this._wrapped=n):new s(n)});function c(n,r,e){return s.isNoVal(n)||s.isNoVal(r)?s.isNoVal(n)?r:n:(e="max"==e?r<n:n<r)?n:r}function l(r,n){var e={};return s.isArray(n)?s.map(n,function(n){e[r+n]=n}):s.isObject(n)?s.forIn(n,function(n,r){e[n]=r}):s.isString(n)&&(e[r+n]=n),e}function p(n,r){var i={},o=n.length,u={};return s.map(n,function(t){s.isObjEmpty(r.colObj)||s.forIn(r.colObj,function(n,r){var e=s.isFunction(r)?r(t):t[r];i[n]=e}),s.isObjEmpty(r.sumObj)||s.forIn(r.sumObj,function(n,r){var e=s.isFunction(r)?r(t):t[r];i[n]?i[n]+=e||0:i[n]=e||0}),s.isObjEmpty(r.avgObj)||s.forIn(r.avgObj,function(n,r){u[n]||(u[n]=0);var e=s.isFunction(r)?r(t):t[r];i[n]?i[n]+=e||0:i[n]=e||0,!e&&0!=e||u[n]++}),s.isObjEmpty(r.maxObj)||s.forIn(r.maxObj,function(n,r){var e=s.isFunction(r)?r(t):t[r];i[n]=c(i[n],e,"max")}),s.isObjEmpty(r.minObj)||s.forIn(r.minObj,function(n,r){var e=s.isFunction(r)?r(t):t[r];i[n]=c(i[n],e,"min")}),s.isObjEmpty(r.countObj)||s.forIn(r.countObj,function(n,r){var e=s.isFunction(r)?r(t):t[r];switch(s.isUndefined(i[n])&&(i[n]=0),n){case"*"==r?n:"count_*":i[n]=o;break;default:s.isUndefined(e)||null==e||i[n]++}})}),s.forIn(r.avgObj,function(n,r){i[n]=i[n]/u[n]}),i}function u(n,r){if(!r)return n;if(s.isObject(r)&&!s.isFunction(r)){var u=o(r),c=f(r);n.sort(function(n,r){for(var e,t,i=u.length,o=0;o<i&&(e=u[o],t=c[o],n[e]===r[e]);o++);if(n[e]!==r[e]){if(n[e]>r[e]||void 0===r[e])return"desc"===t||"DESC"===t?-1:1;if(n[e]<r[e]||void 0===n[e])return"desc"===t||"DESC"===t?1:-1}return"desc"===t||"DESC"===t?r[e]-n[e]:n[e]-r[e]})}else s.isFunction(r)&&n.sort(r);return n}function a(n,r){if(!r&&0!=r)return n;var e=[],t=n.length,i=0;if(s.isNumber(r))t=t<r?t:r;else if(s.isArray(r)){if(r[0]>t)return[];r[0]<t&&(i=r[0]),t=r[0]+r[1]<t?r[0]+r[1]:t}for(;i<t;i++)e.push(n[i]);return e}"undefined"==typeof exports||exports.nodeType?n.jc=s:("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=s),exports.jc=s),s.VERSION="1.1.0",s.map=function(n,r){return s.isArray(n)?n.map(r):[]},s.forIn=function(n,r){if(!s.isObject(n))return{};var e=0;for(var t in n)r(t,n[t],e),e++},s.filter=function(n,r){return s.isArray(n)?n.filter(r):[]},s.where=function(n,e){var r;if(s.isFunction(e))r=s.filter(n,e);else{if(!s.isObject(e))return[];r=s.filter(n,function(r){return o(e).every(function(n){return e[n]===r[n]})})}return r},s.limit=function(n,r){return a(n,r)},s.order=s.orderBy=function(n,r){return u(n,r)},s.tree=function(n,e){var r;e.children||(e.children="children"),s.isString(e.retain)?r=[e.retain,e.id,e.parent]:s.isArray(e.retain)?((r=e.retain).push(e.id),r.push(e.parent)):s.isObject(e.retain)?((r=e.retain)[e.id]=e.id,r[e.parent]=e.parent):n=s.extend(!0,[],n),r&&(n=s.sql({select:{col:r},from:n}));var t={},i=s.groupBy(n,function(n){return n[e.id]==e.root&&(t=n),n[e.parent]});return s.map(n,function(n){var r=n[e.id];i[r]&&(n[e.children]=i[r])}),s.isObjEmpty(t)&&(t[e.children]=i[e.root]),t},s.treeDic=function(n,r){var e={id:"id",children:"children",deleteEmptyChildren:!0};s.isObject(r)&&s.extend(e,r),s.isObject(n)&&(n=[n]);var t={};return function r(n){n.map(function(n){(t[n[e.id]]=n)[e.children]&&0!=n[e.children].length||!e.deleteEmptyChildren?r(n[e.children]):delete n[e.children]})}(n),t},s.treeFilter=function(n,r){var t={root:"0",id:"id",parent:"pid",children:"children",deleteEmptyChildren:!0};s.isObject(r)&&s.extend(t,r),s.isObject(n)&&(n=[n]),n=s.extend([],n);var i=[];!function e(n){n.map(function(n){if(i.push(n),n[t.children]&&0<n[t.children].length){var r=n[t.children];delete n[t.children],e(r)}})}(n);var e=s.where(i,t.filter);return s.tree(e,t)},s.treeMap=function(n,r){var e={root:"0",id:"id",parent:"pid",children:"children",deleteEmptyChildren:!0,map:function(n){return n}};return s.isObject(r)&&s.extend(e,r),function r(n){n.map(function(n){e.map(n),n[e.children]&&0!=n[e.children].length||!e.deleteEmptyChildren?r(n[e.children]):delete n[e.children]})}(s.isObject(n)?[n]:n),n},s.treeSearch=function(n,r){var t={children:"children",search:{}};s.isObject(r)&&s.extend(t,r);var e=s.isObject(n)?[n]:n,i=[];return function e(n){n.map(function(n){var r=t.search;0<s.where([n],r).length&&i.push(n),n[t.children]&&0!=n[t.children].length&&e(n[t.children])})}(e),i},s.treePath=function(n,r){var e={root:"0",id:"id",parent:"pid",children:"children",path:""};s.isObject(r)&&s.extend(e,r);var t=s.treeDic(n,e),i=[];return function n(r){t[r]&&(i.unshift(t[r]),t[r][e.parent]&&n(t[r][e.parent]))}(e.path),i},s.extend=function(){var n,r,e,t,i,o,u=arguments[0]||{},c=1,a=arguments.length,f=!1;for("boolean"==typeof u&&(f=u,u=arguments[1]||{},c++),"object"==typeof u||s.isFunction(u)||(u={}),a===c&&(u=this,--c);c<a;c++)if(null!=(n=arguments[c]))for(r in n)e=u[r],u!==(t=n[r])&&(f&&t&&(s.isObject(t)||(i=s.isArray(t)))?(o=i?(i=!1,e&&s.isArray(e)?e:[]):e&&s.isObject(e)?e:{},u[r]=s.extend(f,o,t)):void 0!==t&&(u[r]=t));return u},s.unique=function(n){if(!n||0==n.length)return n;var e={},t=[];s.map(n,function(n){var r=JSON.stringify(n);e[r]=n});return s.forIn(e,function(n,r){t.push(r)}),t},s.spaceFix=function(n,r){if(!n||0==n.length)return n;var e=[];0<n[0][r.key]-r.start&&((f={})[r.key]=r.start,s.map(r.zeroFill,function(n){f[n]=0}),n.unshift(f));n[n.length-1][r.key]<r.end&&((f={})[r.key]=r.end,s.map(r.zeroFill,function(n){f[n]=0}),n.push(f));for(var t=1,i=n.length;t<i&&!(1e4<t);t++){var o=n[t][r.key]-n[t-1][r.key];if(o<=r.space)e.push(n[t]);else{for(var u=r.space,c=0,a=o/r.space;c<a-1&&!(1e4<c);c++){var f;(f={})[r.key]=parseInt(n[t-1][r.key])+parseInt(u),s.map(r.zeroFill,function(n){f[n]=0}),e.push(f),u+=r.space}e.push(n[t])}}return e.unshift(n[0]),e},s.keyArray=function(n,r){if(!n||0==n.length)return n;s.isString(r)&&(r=[r]);var t={};return s.map(n,function(e,n){s.map(r,function(n,r){t[n]||(t[n]=[]),t[n].push(e[n])})}),t},s.keyBreak=function(n,t){if(!n||0==n.length)return n;var i=[],o=t.key,u=t.value;return s.map(n,function(e){s.map(t.break,function(n){var r={};r[o]=n,r[u]=e[n],s.map(t.retain,function(n){r[n]=e[n]}),i.push(r)})}),i},s.index=function(n,r){if(!n||0==n.length)return n;var e={};return s.map(n,function(n){e[n[r]]=n}),e},s.max=function(n,t){if(!n||0==n.length)return n;var i;if(s.isString(t)){var r=t;t=function(n){return n[r]}}else s.isUndefined(t)&&(t=function(n){return n});return s.map(n,function(n){var r=i?t(i):i,e=n?t(n):n;i=s.isNoVal(r)||s.isNoVal(e)?s.isNoVal(r)?n:i:e<r?i:n}),i},s.min=function(n,t){if(!n||0==n.length)return n;var i;if(s.isString(t)){var r=t;t=function(n){return n[r]}}else s.isUndefined(t)&&(t=function(n){return n});return s.map(n,function(n){var r=i?t(i):i,e=n?t(n):n;i=s.isNoVal(r)||s.isNoVal(e)?s.isNoVal(r)?n:i:r<e?i:n}),i},s.group=s.groupBy=function(n,r){if(!n||0==n.length)return n;var i={};return s.map(n,function(e,n){var t=[];s.isArray(r)?s.map(r,function(n,r){s.isFunction(n)?t.push(n(e)):t.push(e[n])}):s.isString(r)?t.push(e[r]):s.isFunction(r)&&(t=r(e,n)),i[t]||(i[t]=[]),i[t].push(e)}),i},s.sql=function(n){return function(n){if(!n.from)throw new Error("From is not defined","Error from");if(!n.select)throw new Error("Select is not defined","Error select");!function(n){var r=n.select,e=n.groupBy;if(!(r.sum||r.avg||r.count||r.max||r.min))return;if(r.col&&!n.groupBy)return;var t=l("",r.col);t=f(t);var i=[],o=!1;s.isArray(e)?s.map(e,function(n,r){i.push(n)}):s.isString(e)?i.push(e):s.isFunction(e)&&(i=[e]);for(var u=0,c=t.length;u<c;u++){for(var a=0;a<c;a++){if(t[u]==i[a]){o=!0;break}if(s.isObject(t[u])&&s.isObject(i[a])&&String(t[u])===String(i[a])){o=!0;break}}if(!o)throw new Error("groupBy should contain select.col","Error groupBy");o=!1}}(n)}(n),0!=n.from.length&&s.isArray(n.from)?a(u(function(n,r){if(!r)throw new Error("Select is not defined","Error select");var o=[],u={};r.col&&(u.colObj=l("",r.col));r.sum&&(u.sumObj=l("sum_",r.sum));r.avg&&(u.avgObj=l("avg_",r.avg));r.max&&(u.maxObj=l("max_",r.max));r.min&&(u.minObj=l("min_",r.min));r.count&&(u.countObj=l("count_",r.count));s.isArray(n)?s.map(n,function(n,r){var e=p([n],u);o.push(e)}):s.forIn(n,function(n,r,e,t){var i=p(r,u);o.push(i)});return o}(function(n,c){if(!c)return n;var a={sumObj:{},avgObj:{},maxObj:{},minObj:{},countObj:{}},f={};return s.forIn(c,function(n,r){var e=n.split("_"),t=e.shift(),i=e.join("_");switch(i=i.replace(/[1-9a-zA-z_\$\@]+/g,function(n){return"row['"+n+"']"}),t){case"sum":a.sumObj[n]=function(n){return new Function("row","return "+i)(n)};break;case"avg":a.avgObj[n]=function(n){return new Function("row","return "+i)(n)};break;case"max":a.maxObj[n]=function(n){return new Function("row","return "+i)(n)};break;case"min":a.minObj[n]=function(n){return new Function("row","return "+i)(n)};break;case"count":a.countObj[n]=function(n){return new Function("row","return "+i)(n)}}}),s.forIn(n,function(n,r,e,t){var i,o=p(r,a);for(var u in c)if(foo=new Function("return "+o[u]+c[u]),!(i=foo()))break;i&&(f[n]=r)}),f}(function(n,r){var e;return s.forIn(r.select,function(n,r){e=!!("col"!=n)||e}),r.groupBy||e?r.groupBy||r.select.col?s.group(n,r.groupBy):{table:n}:n}(function(n,r){return r?s.where(n,r):n}(n.from,n.where),n),n.having),n.select),n.orderBy),n.limit):[]},s.isObjEmpty=function(n){for(var r in n)return!1;return!0},s.isNoVal=function(n){return s.isUndefined(n)||null==n||n!=n},s.isArray=i||function(n){return"[object Array]"===t.call(n)},s.isObject=function(n){return"object"==typeof n&&!s.isArray(n)&&!!n},s.map(["Arguments","Function","String","Number","Date","RegExp","Error","Symbol","Map","WeakMap","Set","WeakSet"],function(r){s["is"+r]=function(n){return{}.toString.call(n)==="[object "+r+"]"}}),s.isUndefined=function(n){return void 0===n},"function"==typeof define&&define.amd&&define("jc",[],function(){return s})}();