react-pivottable-plus 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Utilities.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Utilities.js","names":["_propTypes","_interopRequireDefault","require","e","__esModule","_classCallCheck","a","n","TypeError","_defineProperties","r","t","length","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","String","Number","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","l","u","f","next","done","push","value","addSeparators","nStr","thousandsSep","decimalSep","x","split","x1","x2","rgx","replace","concat","numberFormat","exports","opts_in","defaults","digitsAfterDecimal","scaler","prefix","suffix","opts","assign","isNaN","isFinite","result","toFixed","rx","rd","rz","naturalSort","as","bs","nas","nbs","b","match","a1","shift","b1","sortAs","order","mapping","l_mapping","toLowerCase","getSort","sorters","attr","sort","usFmt","usFmtInt","usFmtPct","aggregatorTemplates","count","formatter","arguments","undefined","format","uniques","fn","_ref","_ref2","uniq","record","includes","numInputs","sum","_ref3","_ref4","parseFloat","extremes","mode","_ref5","_ref6","data","val","sorter","Math","quantile","q","_ref7","_ref8","vals","floor","ceil","runningStat","ddof","_ref9","_ref0","m","s","m_new","sqrt","Error","sumOverSum","_ref1","_ref10","num","denom","sumNum","sumDenom","fractionOf","wrapped","type","_len","_key","rowKey","colKey","selector","total","row","col","inner","apply","getAggregator","countUnique","listUnique","join","max","min","first","last","median","average","stdev","aggregators","tpl","Count","Sum","Average","Median","Minimum","Maximum","First","Last","locales","en","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","cancel","totals","vs","by","mthNamesEn","dayNamesEn","zeroPad","number","substr","derivers","bin","binWidth","dateFormat","formatString","utcOutput","mthNames","dayNames","utc","date","Date","parse","p","flatKey","attrVals","fromCharCode","PivotData","_this","inputProps","props","defaultProps","PropTypes","checkPropTypes","propTypes","aggregator","aggregatorName","tree","rowKeys","colKeys","rowTotals","colTotals","allTotal","sorted","forEachRecord","derivedAttributes","filter","processRecord","k","valueFilter","forEachMatchingRecord","criteria","callback","_this2","v","arrSort","attrs","_this3","sortersArr","_i","_Array$from","_i2","_Object$keys","keys","comparison","sortKeys","_this4","c","rowOrder","rows","colOrder","cols","getColKeys","getRowKeys","_i3","_Array$from2","_i4","_Array$from3","flatRowKey","flatColKey","agg","forEachTotal","forEach","forEachCell","_this5","input","addRecord","getOwnPropertyNames","derived","_i5","_Object$keys2","compactRecord","_i6","_Object$keys3","j","result1","_i7","_Array$from4","pagination","pageSize","page","oneOfType","array","object","func","isRequired","string","arrayOf","objectOf","bool","oneOf"],"sources":["src/Utilities.js"],"sourcesContent":["import PropTypes from 'prop-types';\r\n\r\n/*\r\n * decaffeinate suggestions:\r\n * DS101: Remove unnecessary use of Array.from\r\n * DS102: Remove unnecessary code created because of implicit returns\r\n * DS104: Avoid inline assignments\r\n * DS201: Simplify complex destructure assignments\r\n * DS203: Remove `|| {}` from converted for-own loops\r\n * DS205: Consider reworking code to avoid use of IIFEs\r\n * DS207: Consider shorter variations of null checks\r\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\r\n */\r\n\r\nconst addSeparators = function(nStr, thousandsSep, decimalSep) {\r\n const x = String(nStr).split('.');\r\n let x1 = x[0];\r\n const x2 = x.length > 1 ? decimalSep + x[1] : '';\r\n const rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, `$1${thousandsSep}$2`);\r\n }\r\n return x1 + x2;\r\n};\r\n\r\nconst numberFormat = function(opts_in) {\r\n const defaults = {\r\n digitsAfterDecimal: 2,\r\n scaler: 1,\r\n thousandsSep: ',',\r\n decimalSep: '.',\r\n prefix: '',\r\n suffix: '',\r\n };\r\n const opts = Object.assign({}, defaults, opts_in);\r\n return function(x) {\r\n if (isNaN(x) || !isFinite(x)) {\r\n return '';\r\n }\r\n const result = addSeparators(\r\n (opts.scaler * x).toFixed(opts.digitsAfterDecimal),\r\n opts.thousandsSep,\r\n opts.decimalSep\r\n );\r\n return `${opts.prefix}${result}${opts.suffix}`;\r\n };\r\n};\r\n\r\nconst rx = /(\\d+)|(\\D+)/g;\r\nconst rd = /\\d/;\r\nconst rz = /^0/;\r\nconst naturalSort = (as, bs) => {\r\n // nulls first\r\n if (bs !== null && as === null) {\r\n return -1;\r\n }\r\n if (as !== null && bs === null) {\r\n return 1;\r\n }\r\n\r\n // then raw NaNs\r\n if (typeof as === 'number' && isNaN(as)) {\r\n return -1;\r\n }\r\n if (typeof bs === 'number' && isNaN(bs)) {\r\n return 1;\r\n }\r\n\r\n // numbers and numbery strings group together\r\n const nas = Number(as);\r\n const nbs = Number(bs);\r\n if (nas < nbs) {\r\n return -1;\r\n }\r\n if (nas > nbs) {\r\n return 1;\r\n }\r\n\r\n // within that, true numbers before numbery strings\r\n if (typeof as === 'number' && typeof bs !== 'number') {\r\n return -1;\r\n }\r\n if (typeof bs === 'number' && typeof as !== 'number') {\r\n return 1;\r\n }\r\n if (typeof as === 'number' && typeof bs === 'number') {\r\n return 0;\r\n }\r\n\r\n // 'Infinity' is a textual number, so less than 'A'\r\n if (isNaN(nbs) && !isNaN(nas)) {\r\n return -1;\r\n }\r\n if (isNaN(nas) && !isNaN(nbs)) {\r\n return 1;\r\n }\r\n\r\n // finally, \"smart\" string sorting per http://stackoverflow.com/a/4373421/112871\r\n let a = String(as);\r\n let b = String(bs);\r\n if (a === b) {\r\n return 0;\r\n }\r\n if (!rd.test(a) || !rd.test(b)) {\r\n return a > b ? 1 : -1;\r\n }\r\n\r\n // special treatment for strings containing digits\r\n a = a.match(rx);\r\n b = b.match(rx);\r\n while (a.length && b.length) {\r\n const a1 = a.shift();\r\n const b1 = b.shift();\r\n if (a1 !== b1) {\r\n if (rd.test(a1) && rd.test(b1)) {\r\n return a1.replace(rz, '.0') - b1.replace(rz, '.0');\r\n }\r\n return a1 > b1 ? 1 : -1;\r\n }\r\n }\r\n return a.length - b.length;\r\n};\r\n\r\nconst sortAs = function(order) {\r\n const mapping = {};\r\n\r\n // sort lowercased keys similarly\r\n const l_mapping = {};\r\n for (const i in order) {\r\n const x = order[i];\r\n mapping[x] = i;\r\n if (typeof x === 'string') {\r\n l_mapping[x.toLowerCase()] = i;\r\n }\r\n }\r\n return function(a, b) {\r\n if (a in mapping && b in mapping) {\r\n return mapping[a] - mapping[b];\r\n } else if (a in mapping) {\r\n return -1;\r\n } else if (b in mapping) {\r\n return 1;\r\n } else if (a in l_mapping && b in l_mapping) {\r\n return l_mapping[a] - l_mapping[b];\r\n } else if (a in l_mapping) {\r\n return -1;\r\n } else if (b in l_mapping) {\r\n return 1;\r\n }\r\n return naturalSort(a, b);\r\n };\r\n};\r\n\r\nconst getSort = function(sorters, attr) {\r\n if (sorters) {\r\n if (typeof sorters === 'function') {\r\n const sort = sorters(attr);\r\n if (typeof sort === 'function') {\r\n return sort;\r\n }\r\n } else if (attr in sorters) {\r\n return sorters[attr];\r\n }\r\n }\r\n return naturalSort;\r\n};\r\n\r\n// aggregator templates default to US number formatting but this is overrideable\r\nconst usFmt = numberFormat();\r\nconst usFmtInt = numberFormat({digitsAfterDecimal: 0});\r\nconst usFmtPct = numberFormat({\r\n digitsAfterDecimal: 1,\r\n scaler: 100,\r\n suffix: '%',\r\n});\r\n\r\nconst aggregatorTemplates = {\r\n count(formatter = usFmtInt) {\r\n return () =>\r\n function() {\r\n return {\r\n count: 0,\r\n push() {\r\n this.count++;\r\n },\r\n value() {\r\n return this.count;\r\n },\r\n format: formatter,\r\n };\r\n };\r\n },\r\n\r\n uniques(fn, formatter = usFmtInt) {\r\n return function([attr]) {\r\n return function() {\r\n return {\r\n uniq: [],\r\n push(record) {\r\n if (!Array.from(this.uniq).includes(record[attr])) {\r\n this.uniq.push(record[attr]);\r\n }\r\n },\r\n value() {\r\n return fn(this.uniq);\r\n },\r\n format: formatter,\r\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\r\n };\r\n };\r\n };\r\n },\r\n\r\n sum(formatter = usFmt) {\r\n return function([attr]) {\r\n return function() {\r\n return {\r\n sum: 0,\r\n push(record) {\r\n if (!isNaN(parseFloat(record[attr]))) {\r\n this.sum += parseFloat(record[attr]);\r\n }\r\n },\r\n value() {\r\n return this.sum;\r\n },\r\n format: formatter,\r\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\r\n };\r\n };\r\n };\r\n },\r\n\r\n extremes(mode, formatter = usFmt) {\r\n return function([attr]) {\r\n return function(data) {\r\n return {\r\n val: null,\r\n sorter: getSort(\r\n typeof data !== 'undefined' ? data.sorters : null,\r\n attr\r\n ),\r\n push(record) {\r\n let x = record[attr];\r\n if (['min', 'max'].includes(mode)) {\r\n x = parseFloat(x);\r\n if (!isNaN(x)) {\r\n this.val = Math[mode](x, this.val !== null ? this.val : x);\r\n }\r\n }\r\n if (\r\n mode === 'first' &&\r\n this.sorter(x, this.val !== null ? this.val : x) <= 0\r\n ) {\r\n this.val = x;\r\n }\r\n if (\r\n mode === 'last' &&\r\n this.sorter(x, this.val !== null ? this.val : x) >= 0\r\n ) {\r\n this.val = x;\r\n }\r\n },\r\n value() {\r\n return this.val;\r\n },\r\n format(x) {\r\n if (isNaN(x)) {\r\n return x;\r\n }\r\n return formatter(x);\r\n },\r\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\r\n };\r\n };\r\n };\r\n },\r\n\r\n quantile(q, formatter = usFmt) {\r\n return function([attr]) {\r\n return function() {\r\n return {\r\n vals: [],\r\n push(record) {\r\n const x = parseFloat(record[attr]);\r\n if (!isNaN(x)) {\r\n this.vals.push(x);\r\n }\r\n },\r\n value() {\r\n if (this.vals.length === 0) {\r\n return null;\r\n }\r\n this.vals.sort((a, b) => a - b);\r\n const i = (this.vals.length - 1) * q;\r\n return (this.vals[Math.floor(i)] + this.vals[Math.ceil(i)]) / 2.0;\r\n },\r\n format: formatter,\r\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\r\n };\r\n };\r\n };\r\n },\r\n\r\n runningStat(mode = 'mean', ddof = 1, formatter = usFmt) {\r\n return function([attr]) {\r\n return function() {\r\n return {\r\n n: 0.0,\r\n m: 0.0,\r\n s: 0.0,\r\n push(record) {\r\n const x = parseFloat(record[attr]);\r\n if (isNaN(x)) {\r\n return;\r\n }\r\n this.n += 1.0;\r\n if (this.n === 1.0) {\r\n this.m = x;\r\n }\r\n const m_new = this.m + (x - this.m) / this.n;\r\n this.s = this.s + (x - this.m) * (x - m_new);\r\n this.m = m_new;\r\n },\r\n value() {\r\n if (mode === 'mean') {\r\n if (this.n === 0) {\r\n return 0 / 0;\r\n }\r\n return this.m;\r\n }\r\n if (this.n <= ddof) {\r\n return 0;\r\n }\r\n switch (mode) {\r\n case 'var':\r\n return this.s / (this.n - ddof);\r\n case 'stdev':\r\n return Math.sqrt(this.s / (this.n - ddof));\r\n default:\r\n throw new Error('unknown mode for runningStat');\r\n }\r\n },\r\n format: formatter,\r\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\r\n };\r\n };\r\n };\r\n },\r\n\r\n sumOverSum(formatter = usFmt) {\r\n return function([num, denom]) {\r\n return function() {\r\n return {\r\n sumNum: 0,\r\n sumDenom: 0,\r\n push(record) {\r\n if (!isNaN(parseFloat(record[num]))) {\r\n this.sumNum += parseFloat(record[num]);\r\n }\r\n if (!isNaN(parseFloat(record[denom]))) {\r\n this.sumDenom += parseFloat(record[denom]);\r\n }\r\n },\r\n value() {\r\n return this.sumNum / this.sumDenom;\r\n },\r\n format: formatter,\r\n numInputs:\r\n typeof num !== 'undefined' && typeof denom !== 'undefined' ? 0 : 2,\r\n };\r\n };\r\n };\r\n },\r\n\r\n fractionOf(wrapped, type = 'total', formatter = usFmtPct) {\r\n return (...x) =>\r\n function(data, rowKey, colKey) {\r\n return {\r\n selector: {total: [[], []], row: [rowKey, []], col: [[], colKey]}[\r\n type\r\n ],\r\n inner: wrapped(...Array.from(x || []))(data, rowKey, colKey),\r\n push(record) {\r\n this.inner.push(record);\r\n },\r\n format: formatter,\r\n value() {\r\n return (\r\n this.inner.value() /\r\n data\r\n .getAggregator(...Array.from(this.selector || []))\r\n .inner.value()\r\n );\r\n },\r\n numInputs: wrapped(...Array.from(x || []))().numInputs,\r\n };\r\n };\r\n },\r\n};\r\n\r\naggregatorTemplates.countUnique = f =>\r\n aggregatorTemplates.uniques(x => x.length, f);\r\naggregatorTemplates.listUnique = s =>\r\n aggregatorTemplates.uniques(\r\n x => x.join(s),\r\n x => x\r\n );\r\naggregatorTemplates.max = f => aggregatorTemplates.extremes('max', f);\r\naggregatorTemplates.min = f => aggregatorTemplates.extremes('min', f);\r\naggregatorTemplates.first = f => aggregatorTemplates.extremes('first', f);\r\naggregatorTemplates.last = f => aggregatorTemplates.extremes('last', f);\r\naggregatorTemplates.median = f => aggregatorTemplates.quantile(0.5, f);\r\naggregatorTemplates.average = f =>\r\n aggregatorTemplates.runningStat('mean', 1, f);\r\naggregatorTemplates.var = (ddof, f) =>\r\n aggregatorTemplates.runningStat('var', ddof, f);\r\naggregatorTemplates.stdev = (ddof, f) =>\r\n aggregatorTemplates.runningStat('stdev', ddof, f);\r\n\r\n// default aggregators & renderers use US naming and number formatting\r\nconst aggregators = (tpl => ({\r\n Count: tpl.count(usFmtInt),\r\n 'Count Unique Values': tpl.countUnique(usFmtInt),\r\n 'List Unique Values': tpl.listUnique(', '),\r\n Sum: tpl.sum(usFmt),\r\n 'Integer Sum': tpl.sum(usFmtInt),\r\n Average: tpl.average(usFmt),\r\n Median: tpl.median(usFmt),\r\n 'Sample Variance': tpl.var(1, usFmt),\r\n 'Sample Standard Deviation': tpl.stdev(1, usFmt),\r\n Minimum: tpl.min(usFmt),\r\n Maximum: tpl.max(usFmt),\r\n First: tpl.first(usFmt),\r\n Last: tpl.last(usFmt),\r\n 'Sum over Sum': tpl.sumOverSum(usFmt),\r\n 'Sum as Fraction of Total': tpl.fractionOf(tpl.sum(), 'total', usFmtPct),\r\n 'Sum as Fraction of Rows': tpl.fractionOf(tpl.sum(), 'row', usFmtPct),\r\n 'Sum as Fraction of Columns': tpl.fractionOf(tpl.sum(), 'col', usFmtPct),\r\n 'Count as Fraction of Total': tpl.fractionOf(tpl.count(), 'total', usFmtPct),\r\n 'Count as Fraction of Rows': tpl.fractionOf(tpl.count(), 'row', usFmtPct),\r\n 'Count as Fraction of Columns': tpl.fractionOf(tpl.count(), 'col', usFmtPct),\r\n}))(aggregatorTemplates);\r\n\r\nconst locales = {\r\n en: {\r\n aggregators,\r\n localeStrings: {\r\n renderError: 'An error occurred rendering the PivotTable results.',\r\n computeError: 'An error occurred computing the PivotTable results.',\r\n uiRenderError: 'An error occurred rendering the PivotTable UI.',\r\n selectAll: 'Select All',\r\n selectNone: 'Select None',\r\n tooMany: '(too many to list)',\r\n filterResults: 'Filter values',\r\n apply: 'Apply',\r\n cancel: 'Cancel',\r\n totals: 'Totals',\r\n vs: 'vs',\r\n by: 'by',\r\n },\r\n },\r\n};\r\n\r\n// dateFormat deriver l10n requires month and day names to be passed in directly\r\nconst mthNamesEn = [\r\n 'Jan',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'May',\r\n 'Jun',\r\n 'Jul',\r\n 'Aug',\r\n 'Sep',\r\n 'Oct',\r\n 'Nov',\r\n 'Dec',\r\n];\r\nconst dayNamesEn = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\r\nconst zeroPad = number => `0${number}`.substr(-2, 2); // eslint-disable-line no-magic-numbers\r\n\r\nconst derivers = {\r\n bin(col, binWidth) {\r\n return record => record[col] - (record[col] % binWidth);\r\n },\r\n dateFormat(\r\n col,\r\n formatString,\r\n utcOutput = false,\r\n mthNames = mthNamesEn,\r\n dayNames = dayNamesEn\r\n ) {\r\n const utc = utcOutput ? 'UTC' : '';\r\n return function(record) {\r\n const date = new Date(Date.parse(record[col]));\r\n if (isNaN(date)) {\r\n return '';\r\n }\r\n return formatString.replace(/%(.)/g, function(m, p) {\r\n switch (p) {\r\n case 'y':\r\n return date[`get${utc}FullYear`]();\r\n case 'm':\r\n return zeroPad(date[`get${utc}Month`]() + 1);\r\n case 'n':\r\n return mthNames[date[`get${utc}Month`]()];\r\n case 'd':\r\n return zeroPad(date[`get${utc}Date`]());\r\n case 'w':\r\n return dayNames[date[`get${utc}Day`]()];\r\n case 'x':\r\n return date[`get${utc}Day`]();\r\n case 'H':\r\n return zeroPad(date[`get${utc}Hours`]());\r\n case 'M':\r\n return zeroPad(date[`get${utc}Minutes`]());\r\n case 'S':\r\n return zeroPad(date[`get${utc}Seconds`]());\r\n default:\r\n return `%${p}`;\r\n }\r\n });\r\n };\r\n },\r\n};\r\n\r\n// Given an array of attribute values, convert to a key that\r\n// can be used in objects.\r\nconst flatKey = attrVals => attrVals.join(String.fromCharCode(0));\r\n\r\n/*\r\nData Model class\r\n*/\r\n\r\nclass PivotData {\r\n constructor(inputProps = {}) {\r\n this.props = Object.assign({}, PivotData.defaultProps, inputProps);\r\n PropTypes.checkPropTypes(\r\n PivotData.propTypes,\r\n this.props,\r\n 'prop',\r\n 'PivotData'\r\n );\r\n\r\n this.aggregator = this.props.aggregators[this.props.aggregatorName](\r\n this.props.vals\r\n );\r\n this.tree = {};\r\n this.rowKeys = [];\r\n this.colKeys = [];\r\n this.rowTotals = {};\r\n this.colTotals = {};\r\n this.allTotal = this.aggregator(this, [], []);\r\n this.sorted = false;\r\n\r\n PivotData.forEachRecord(\r\n this.props.data,\r\n this.props.derivedAttributes,\r\n record => {\r\n if (this.filter(record)) {\r\n this.processRecord(record);\r\n }\r\n }\r\n );\r\n }\r\n\r\n filter(record) {\r\n for (const k in this.props.valueFilter) {\r\n if (record[k] in this.props.valueFilter[k]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n forEachMatchingRecord(criteria, callback) {\r\n return PivotData.forEachRecord(\r\n this.props.data,\r\n this.props.derivedAttributes,\r\n record => {\r\n if (!this.filter(record)) {\r\n return;\r\n }\r\n for (const k in criteria) {\r\n const v = criteria[k];\r\n if (v !== (k in record ? record[k] : 'null')) {\r\n return;\r\n }\r\n }\r\n callback(record);\r\n }\r\n );\r\n }\r\n\r\n arrSort(attrs) {\r\n let a;\r\n const sortersArr = (() => {\r\n const result = [];\r\n for (a of Array.from(attrs)) {\r\n result.push(getSort(this.props.sorters, a));\r\n }\r\n return result;\r\n })();\r\n return function(a, b) {\r\n for (const i of Object.keys(sortersArr || {})) {\r\n const sorter = sortersArr[i];\r\n const comparison = sorter(a[i], b[i]);\r\n if (comparison !== 0) {\r\n return comparison;\r\n }\r\n }\r\n return 0;\r\n };\r\n }\r\n\r\n sortKeys() {\r\n if (!this.sorted) {\r\n this.sorted = true;\r\n const v = (r, c) => this.getAggregator(r, c).value();\r\n switch (this.props.rowOrder) {\r\n case 'value_a_to_z':\r\n this.rowKeys.sort((a, b) => naturalSort(v(a, []), v(b, [])));\r\n break;\r\n case 'value_z_to_a':\r\n this.rowKeys.sort((a, b) => -naturalSort(v(a, []), v(b, [])));\r\n break;\r\n default:\r\n this.rowKeys.sort(this.arrSort(this.props.rows));\r\n }\r\n switch (this.props.colOrder) {\r\n case 'value_a_to_z':\r\n this.colKeys.sort((a, b) => naturalSort(v([], a), v([], b)));\r\n break;\r\n case 'value_z_to_a':\r\n this.colKeys.sort((a, b) => -naturalSort(v([], a), v([], b)));\r\n break;\r\n default:\r\n this.colKeys.sort(this.arrSort(this.props.cols));\r\n }\r\n }\r\n }\r\n\r\n getColKeys() {\r\n this.sortKeys();\r\n return this.colKeys;\r\n }\r\n\r\n getRowKeys() {\r\n this.sortKeys();\r\n return this.rowKeys;\r\n }\r\n\r\n processRecord(record) {\r\n // this code is called in a tight loop\r\n const colKey = [];\r\n const rowKey = [];\r\n for (const x of Array.from(this.props.cols)) {\r\n colKey.push(x in record ? record[x] : 'null');\r\n }\r\n for (const x of Array.from(this.props.rows)) {\r\n rowKey.push(x in record ? record[x] : 'null');\r\n }\r\n const flatRowKey = rowKey.join(String.fromCharCode(0));\r\n const flatColKey = colKey.join(String.fromCharCode(0));\r\n\r\n this.allTotal.push(record);\r\n\r\n if (rowKey.length !== 0) {\r\n if (!this.rowTotals[flatRowKey]) {\r\n this.rowKeys.push(rowKey);\r\n this.rowTotals[flatRowKey] = this.aggregator(this, rowKey, []);\r\n }\r\n this.rowTotals[flatRowKey].push(record);\r\n }\r\n\r\n if (colKey.length !== 0) {\r\n if (!this.colTotals[flatColKey]) {\r\n this.colKeys.push(colKey);\r\n this.colTotals[flatColKey] = this.aggregator(this, [], colKey);\r\n }\r\n this.colTotals[flatColKey].push(record);\r\n }\r\n\r\n if (colKey.length !== 0 && rowKey.length !== 0) {\r\n if (!this.tree[flatRowKey]) {\r\n this.tree[flatRowKey] = {};\r\n }\r\n if (!this.tree[flatRowKey][flatColKey]) {\r\n this.tree[flatRowKey][flatColKey] = this.aggregator(\r\n this,\r\n rowKey,\r\n colKey\r\n );\r\n }\r\n this.tree[flatRowKey][flatColKey].push(record);\r\n }\r\n }\r\n\r\n getAggregator(rowKey, colKey) {\r\n let agg;\r\n const flatRowKey = rowKey.join(String.fromCharCode(0));\r\n const flatColKey = colKey.join(String.fromCharCode(0));\r\n if (rowKey.length === 0 && colKey.length === 0) {\r\n agg = this.allTotal;\r\n } else if (rowKey.length === 0) {\r\n agg = this.colTotals[flatColKey];\r\n } else if (colKey.length === 0) {\r\n agg = this.rowTotals[flatRowKey];\r\n } else {\r\n agg = this.tree[flatRowKey][flatColKey];\r\n }\r\n return (\r\n agg || {\r\n value() {\r\n return null;\r\n },\r\n format() {\r\n return '';\r\n },\r\n }\r\n );\r\n }\r\n\r\n forEachTotal(callback) {\r\n // Process row totals\r\n this.getRowKeys().forEach((rowKey, i) => {\r\n callback([rowKey, null], i);\r\n });\r\n\r\n // Process column totals\r\n this.getColKeys().forEach((colKey, i) => {\r\n callback([null, colKey], i);\r\n });\r\n }\r\n\r\n forEachCell(callback) {\r\n this.getRowKeys().forEach(rowKey => {\r\n this.getColKeys().forEach(colKey => {\r\n const agg = this.getAggregator(rowKey, colKey);\r\n const value = agg.value();\r\n callback(value, rowKey, colKey);\r\n });\r\n });\r\n }\r\n}\r\n\r\n// can handle arrays or jQuery selections of tables\r\nPivotData.forEachRecord = function(input, derivedAttributes, f) {\r\n let addRecord, record;\r\n if (Object.getOwnPropertyNames(derivedAttributes).length === 0) {\r\n addRecord = f;\r\n } else {\r\n addRecord = function(record) {\r\n for (const k in derivedAttributes) {\r\n const derived = derivedAttributes[k](record);\r\n if (derived !== null) {\r\n record[k] = derived;\r\n }\r\n }\r\n return f(record);\r\n };\r\n }\r\n\r\n // if it's a function, have it call us back\r\n if (typeof input === 'function') {\r\n return input(addRecord);\r\n } else if (Array.isArray(input)) {\r\n if (Array.isArray(input[0])) {\r\n // array of arrays\r\n return (() => {\r\n const result = [];\r\n for (const i of Object.keys(input || {})) {\r\n const compactRecord = input[i];\r\n if (i > 0) {\r\n record = {};\r\n for (const j of Object.keys(input[0] || {})) {\r\n const k = input[0][j];\r\n record[k] = compactRecord[j];\r\n }\r\n result.push(addRecord(record));\r\n }\r\n }\r\n return result;\r\n })();\r\n }\r\n\r\n // array of objects\r\n return (() => {\r\n const result1 = [];\r\n for (record of Array.from(input)) {\r\n result1.push(addRecord(record));\r\n }\r\n return result1;\r\n })();\r\n }\r\n throw new Error('unknown input format');\r\n};\r\n\r\nPivotData.defaultProps = {\r\n aggregators: aggregators,\r\n cols: [],\r\n rows: [],\r\n vals: [],\r\n aggregatorName: 'Count',\r\n sorters: {},\r\n valueFilter: {},\r\n rowOrder: 'key_a_to_z',\r\n colOrder: 'key_a_to_z',\r\n derivedAttributes: {},\r\n pagination: false,\r\n pageSize: 20,\r\n page: 1,\r\n};\r\n\r\nPivotData.propTypes = {\r\n data: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.func])\r\n .isRequired,\r\n aggregatorName: PropTypes.string,\r\n cols: PropTypes.arrayOf(PropTypes.string),\r\n rows: PropTypes.arrayOf(PropTypes.string),\r\n vals: PropTypes.arrayOf(PropTypes.string),\r\n valueFilter: PropTypes.objectOf(PropTypes.objectOf(PropTypes.bool)),\r\n sorters: PropTypes.oneOfType([\r\n PropTypes.func,\r\n PropTypes.objectOf(PropTypes.func),\r\n ]),\r\n derivedAttributes: PropTypes.objectOf(PropTypes.func),\r\n rowOrder: PropTypes.oneOf(['key_a_to_z', 'value_a_to_z', 'value_z_to_a']),\r\n colOrder: PropTypes.oneOf(['key_a_to_z', 'value_a_to_z', 'value_z_to_a']),\r\n pagination: PropTypes.bool,\r\n pageSize: PropTypes.number,\r\n page: PropTypes.number,\r\n};\r\n\r\nexport {\r\n aggregatorTemplates,\r\n aggregators,\r\n derivers,\r\n locales,\r\n naturalSort,\r\n numberFormat,\r\n getSort,\r\n sortAs,\r\n flatKey,\r\n PivotData,\r\n};\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Utilities.js","names":["_propTypes","_interopRequireDefault","require","e","__esModule","_classCallCheck","a","n","TypeError","_defineProperties","r","t","length","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","String","Number","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","l","u","f","next","done","push","value","addSeparators","nStr","thousandsSep","decimalSep","x","split","x1","x2","rgx","replace","concat","numberFormat","exports","opts_in","defaults","digitsAfterDecimal","scaler","prefix","suffix","opts","assign","isNaN","isFinite","result","toFixed","rx","rd","rz","naturalSort","as","bs","nas","nbs","b","match","a1","shift","b1","sortAs","order","mapping","l_mapping","toLowerCase","getSort","sorters","attr","sort","usFmt","usFmtInt","usFmtPct","aggregatorTemplates","count","formatter","arguments","undefined","format","uniques","fn","_ref","_ref2","uniq","record","includes","numInputs","sum","_ref3","_ref4","parseFloat","extremes","mode","_ref5","_ref6","data","val","sorter","Math","quantile","q","_ref7","_ref8","vals","floor","ceil","runningStat","ddof","_ref9","_ref0","m","s","m_new","sqrt","Error","sumOverSum","_ref1","_ref10","num","denom","sumNum","sumDenom","fractionOf","wrapped","type","_len","_key","rowKey","colKey","selector","total","row","col","inner","apply","getAggregator","countUnique","listUnique","join","max","min","first","last","median","average","stdev","aggregators","tpl","Count","Sum","Average","Median","Minimum","Maximum","First","Last","locales","en","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","cancel","totals","vs","by","mthNamesEn","dayNamesEn","zeroPad","number","substr","derivers","bin","binWidth","dateFormat","formatString","utcOutput","mthNames","dayNames","utc","date","Date","parse","p","flatKey","attrVals","fromCharCode","PivotData","_this","inputProps","sanitizedProps","keys","reduce","acc","props","defaultProps","PropTypes","checkPropTypes","propTypes","aggregator","aggregatorName","tree","rowKeys","colKeys","rowTotals","colTotals","allTotal","sorted","forEachRecord","derivedAttributes","filter","processRecord","k","valueFilter","forEachMatchingRecord","criteria","callback","_this2","v","arrSort","attrs","_this3","sortersArr","_i","_Array$from","_i2","_Object$keys","comparison","sortKeys","_this4","c","rowOrder","rows","colOrder","cols","getColKeys","getRowKeys","_i3","_Array$from2","_i4","_Array$from3","flatRowKey","flatColKey","agg","forEachTotal","forEach","forEachCell","_this5","input","addRecord","getOwnPropertyNames","derived","_i5","_Object$keys2","compactRecord","_i6","_Object$keys3","j","result1","_i7","_Array$from4","pagination","pageSize","page","oneOfType","array","object","func","isRequired","string","arrayOf","objectOf","bool","oneOf"],"sources":["src/Utilities.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\n/*\n * decaffeinate suggestions:\n * DS101: Remove unnecessary use of Array.from\n * DS102: Remove unnecessary code created because of implicit returns\n * DS104: Avoid inline assignments\n * DS201: Simplify complex destructure assignments\n * DS203: Remove `|| {}` from converted for-own loops\n * DS205: Consider reworking code to avoid use of IIFEs\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\n\nconst addSeparators = function(nStr, thousandsSep, decimalSep) {\n const x = String(nStr).split('.');\n let x1 = x[0];\n const x2 = x.length > 1 ? decimalSep + x[1] : '';\n const rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, `$1${thousandsSep}$2`);\n }\n return x1 + x2;\n};\n\nconst numberFormat = function(opts_in) {\n const defaults = {\n digitsAfterDecimal: 2,\n scaler: 1,\n thousandsSep: ',',\n decimalSep: '.',\n prefix: '',\n suffix: '',\n };\n const opts = Object.assign({}, defaults, opts_in);\n return function(x) {\n if (isNaN(x) || !isFinite(x)) {\n return '';\n }\n const result = addSeparators(\n (opts.scaler * x).toFixed(opts.digitsAfterDecimal),\n opts.thousandsSep,\n opts.decimalSep\n );\n return `${opts.prefix}${result}${opts.suffix}`;\n };\n};\n\nconst rx = /(\\d+)|(\\D+)/g;\nconst rd = /\\d/;\nconst rz = /^0/;\nconst naturalSort = (as, bs) => {\n // nulls first\n if (bs !== null && as === null) {\n return -1;\n }\n if (as !== null && bs === null) {\n return 1;\n }\n\n // then raw NaNs\n if (typeof as === 'number' && isNaN(as)) {\n return -1;\n }\n if (typeof bs === 'number' && isNaN(bs)) {\n return 1;\n }\n\n // numbers and numbery strings group together\n const nas = Number(as);\n const nbs = Number(bs);\n if (nas < nbs) {\n return -1;\n }\n if (nas > nbs) {\n return 1;\n }\n\n // within that, true numbers before numbery strings\n if (typeof as === 'number' && typeof bs !== 'number') {\n return -1;\n }\n if (typeof bs === 'number' && typeof as !== 'number') {\n return 1;\n }\n if (typeof as === 'number' && typeof bs === 'number') {\n return 0;\n }\n\n // 'Infinity' is a textual number, so less than 'A'\n if (isNaN(nbs) && !isNaN(nas)) {\n return -1;\n }\n if (isNaN(nas) && !isNaN(nbs)) {\n return 1;\n }\n\n // finally, \"smart\" string sorting per http://stackoverflow.com/a/4373421/112871\n let a = String(as);\n let b = String(bs);\n if (a === b) {\n return 0;\n }\n if (!rd.test(a) || !rd.test(b)) {\n return a > b ? 1 : -1;\n }\n\n // special treatment for strings containing digits\n a = a.match(rx);\n b = b.match(rx);\n while (a.length && b.length) {\n const a1 = a.shift();\n const b1 = b.shift();\n if (a1 !== b1) {\n if (rd.test(a1) && rd.test(b1)) {\n return a1.replace(rz, '.0') - b1.replace(rz, '.0');\n }\n return a1 > b1 ? 1 : -1;\n }\n }\n return a.length - b.length;\n};\n\nconst sortAs = function(order) {\n const mapping = {};\n\n // sort lowercased keys similarly\n const l_mapping = {};\n for (const i in order) {\n const x = order[i];\n mapping[x] = i;\n if (typeof x === 'string') {\n l_mapping[x.toLowerCase()] = i;\n }\n }\n return function(a, b) {\n if (a in mapping && b in mapping) {\n return mapping[a] - mapping[b];\n } else if (a in mapping) {\n return -1;\n } else if (b in mapping) {\n return 1;\n } else if (a in l_mapping && b in l_mapping) {\n return l_mapping[a] - l_mapping[b];\n } else if (a in l_mapping) {\n return -1;\n } else if (b in l_mapping) {\n return 1;\n }\n return naturalSort(a, b);\n };\n};\n\nconst getSort = function(sorters, attr) {\n if (sorters) {\n if (typeof sorters === 'function') {\n const sort = sorters(attr);\n if (typeof sort === 'function') {\n return sort;\n }\n } else if (attr in sorters) {\n return sorters[attr];\n }\n }\n return naturalSort;\n};\n\n// aggregator templates default to US number formatting but this is overrideable\nconst usFmt = numberFormat();\nconst usFmtInt = numberFormat({digitsAfterDecimal: 0});\nconst usFmtPct = numberFormat({\n digitsAfterDecimal: 1,\n scaler: 100,\n suffix: '%',\n});\n\nconst aggregatorTemplates = {\n count(formatter = usFmtInt) {\n return () =>\n function() {\n return {\n count: 0,\n push() {\n this.count++;\n },\n value() {\n return this.count;\n },\n format: formatter,\n };\n };\n },\n\n uniques(fn, formatter = usFmtInt) {\n return function([attr]) {\n return function() {\n return {\n uniq: [],\n push(record) {\n if (!Array.from(this.uniq).includes(record[attr])) {\n this.uniq.push(record[attr]);\n }\n },\n value() {\n return fn(this.uniq);\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n sum(formatter = usFmt) {\n return function([attr]) {\n return function() {\n return {\n sum: 0,\n push(record) {\n if (!isNaN(parseFloat(record[attr]))) {\n this.sum += parseFloat(record[attr]);\n }\n },\n value() {\n return this.sum;\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n extremes(mode, formatter = usFmt) {\n return function([attr]) {\n return function(data) {\n return {\n val: null,\n sorter: getSort(\n typeof data !== 'undefined' ? data.sorters : null,\n attr\n ),\n push(record) {\n let x = record[attr];\n if (['min', 'max'].includes(mode)) {\n x = parseFloat(x);\n if (!isNaN(x)) {\n this.val = Math[mode](x, this.val !== null ? this.val : x);\n }\n }\n if (\n mode === 'first' &&\n this.sorter(x, this.val !== null ? this.val : x) <= 0\n ) {\n this.val = x;\n }\n if (\n mode === 'last' &&\n this.sorter(x, this.val !== null ? this.val : x) >= 0\n ) {\n this.val = x;\n }\n },\n value() {\n return this.val;\n },\n format(x) {\n if (isNaN(x)) {\n return x;\n }\n return formatter(x);\n },\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n quantile(q, formatter = usFmt) {\n return function([attr]) {\n return function() {\n return {\n vals: [],\n push(record) {\n const x = parseFloat(record[attr]);\n if (!isNaN(x)) {\n this.vals.push(x);\n }\n },\n value() {\n if (this.vals.length === 0) {\n return null;\n }\n this.vals.sort((a, b) => a - b);\n const i = (this.vals.length - 1) * q;\n return (this.vals[Math.floor(i)] + this.vals[Math.ceil(i)]) / 2.0;\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n runningStat(mode = 'mean', ddof = 1, formatter = usFmt) {\n return function([attr]) {\n return function() {\n return {\n n: 0.0,\n m: 0.0,\n s: 0.0,\n push(record) {\n const x = parseFloat(record[attr]);\n if (isNaN(x)) {\n return;\n }\n this.n += 1.0;\n if (this.n === 1.0) {\n this.m = x;\n }\n const m_new = this.m + (x - this.m) / this.n;\n this.s = this.s + (x - this.m) * (x - m_new);\n this.m = m_new;\n },\n value() {\n if (mode === 'mean') {\n if (this.n === 0) {\n return 0 / 0;\n }\n return this.m;\n }\n if (this.n <= ddof) {\n return 0;\n }\n switch (mode) {\n case 'var':\n return this.s / (this.n - ddof);\n case 'stdev':\n return Math.sqrt(this.s / (this.n - ddof));\n default:\n throw new Error('unknown mode for runningStat');\n }\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n sumOverSum(formatter = usFmt) {\n return function([num, denom]) {\n return function() {\n return {\n sumNum: 0,\n sumDenom: 0,\n push(record) {\n if (!isNaN(parseFloat(record[num]))) {\n this.sumNum += parseFloat(record[num]);\n }\n if (!isNaN(parseFloat(record[denom]))) {\n this.sumDenom += parseFloat(record[denom]);\n }\n },\n value() {\n return this.sumNum / this.sumDenom;\n },\n format: formatter,\n numInputs:\n typeof num !== 'undefined' && typeof denom !== 'undefined' ? 0 : 2,\n };\n };\n };\n },\n\n fractionOf(wrapped, type = 'total', formatter = usFmtPct) {\n return (...x) =>\n function(data, rowKey, colKey) {\n return {\n selector: {total: [[], []], row: [rowKey, []], col: [[], colKey]}[\n type\n ],\n inner: wrapped(...Array.from(x || []))(data, rowKey, colKey),\n push(record) {\n this.inner.push(record);\n },\n format: formatter,\n value() {\n return (\n this.inner.value() /\n data\n .getAggregator(...Array.from(this.selector || []))\n .inner.value()\n );\n },\n numInputs: wrapped(...Array.from(x || []))().numInputs,\n };\n };\n },\n};\n\naggregatorTemplates.countUnique = f =>\n aggregatorTemplates.uniques(x => x.length, f);\naggregatorTemplates.listUnique = s =>\n aggregatorTemplates.uniques(\n x => x.join(s),\n x => x\n );\naggregatorTemplates.max = f => aggregatorTemplates.extremes('max', f);\naggregatorTemplates.min = f => aggregatorTemplates.extremes('min', f);\naggregatorTemplates.first = f => aggregatorTemplates.extremes('first', f);\naggregatorTemplates.last = f => aggregatorTemplates.extremes('last', f);\naggregatorTemplates.median = f => aggregatorTemplates.quantile(0.5, f);\naggregatorTemplates.average = f =>\n aggregatorTemplates.runningStat('mean', 1, f);\naggregatorTemplates.var = (ddof, f) =>\n aggregatorTemplates.runningStat('var', ddof, f);\naggregatorTemplates.stdev = (ddof, f) =>\n aggregatorTemplates.runningStat('stdev', ddof, f);\n\n// default aggregators & renderers use US naming and number formatting\nconst aggregators = (tpl => ({\n Count: tpl.count(usFmtInt),\n 'Count Unique Values': tpl.countUnique(usFmtInt),\n 'List Unique Values': tpl.listUnique(', '),\n Sum: tpl.sum(usFmt),\n 'Integer Sum': tpl.sum(usFmtInt),\n Average: tpl.average(usFmt),\n Median: tpl.median(usFmt),\n 'Sample Variance': tpl.var(1, usFmt),\n 'Sample Standard Deviation': tpl.stdev(1, usFmt),\n Minimum: tpl.min(usFmt),\n Maximum: tpl.max(usFmt),\n First: tpl.first(usFmt),\n Last: tpl.last(usFmt),\n 'Sum over Sum': tpl.sumOverSum(usFmt),\n 'Sum as Fraction of Total': tpl.fractionOf(tpl.sum(), 'total', usFmtPct),\n 'Sum as Fraction of Rows': tpl.fractionOf(tpl.sum(), 'row', usFmtPct),\n 'Sum as Fraction of Columns': tpl.fractionOf(tpl.sum(), 'col', usFmtPct),\n 'Count as Fraction of Total': tpl.fractionOf(tpl.count(), 'total', usFmtPct),\n 'Count as Fraction of Rows': tpl.fractionOf(tpl.count(), 'row', usFmtPct),\n 'Count as Fraction of Columns': tpl.fractionOf(tpl.count(), 'col', usFmtPct),\n}))(aggregatorTemplates);\n\nconst locales = {\n en: {\n aggregators,\n localeStrings: {\n renderError: 'An error occurred rendering the PivotTable results.',\n computeError: 'An error occurred computing the PivotTable results.',\n uiRenderError: 'An error occurred rendering the PivotTable UI.',\n selectAll: 'Select All',\n selectNone: 'Select None',\n tooMany: '(too many to list)',\n filterResults: 'Filter values',\n apply: 'Apply',\n cancel: 'Cancel',\n totals: 'Totals',\n vs: 'vs',\n by: 'by',\n },\n },\n};\n\n// dateFormat deriver l10n requires month and day names to be passed in directly\nconst mthNamesEn = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\nconst dayNamesEn = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nconst zeroPad = number => `0${number}`.substr(-2, 2); // eslint-disable-line no-magic-numbers\n\nconst derivers = {\n bin(col, binWidth) {\n return record => record[col] - (record[col] % binWidth);\n },\n dateFormat(\n col,\n formatString,\n utcOutput = false,\n mthNames = mthNamesEn,\n dayNames = dayNamesEn\n ) {\n const utc = utcOutput ? 'UTC' : '';\n return function(record) {\n const date = new Date(Date.parse(record[col]));\n if (isNaN(date)) {\n return '';\n }\n return formatString.replace(/%(.)/g, function(m, p) {\n switch (p) {\n case 'y':\n return date[`get${utc}FullYear`]();\n case 'm':\n return zeroPad(date[`get${utc}Month`]() + 1);\n case 'n':\n return mthNames[date[`get${utc}Month`]()];\n case 'd':\n return zeroPad(date[`get${utc}Date`]());\n case 'w':\n return dayNames[date[`get${utc}Day`]()];\n case 'x':\n return date[`get${utc}Day`]();\n case 'H':\n return zeroPad(date[`get${utc}Hours`]());\n case 'M':\n return zeroPad(date[`get${utc}Minutes`]());\n case 'S':\n return zeroPad(date[`get${utc}Seconds`]());\n default:\n return `%${p}`;\n }\n });\n };\n },\n};\n\n// Given an array of attribute values, convert to a key that\n// can be used in objects.\nconst flatKey = attrVals => attrVals.join(String.fromCharCode(0));\n\n/*\nData Model class\n*/\n\nclass PivotData {\n constructor(inputProps = {}) {\n const sanitizedProps = Object.keys(inputProps).reduce((acc, key) => {\n if (inputProps[key] !== undefined) {\n acc[key] = inputProps[key];\n }\n return acc;\n }, {});\n this.props = Object.assign({}, PivotData.defaultProps, sanitizedProps);\n PropTypes.checkPropTypes(\n PivotData.propTypes,\n this.props,\n 'prop',\n 'PivotData'\n );\n\n this.aggregator = this.props.aggregators[this.props.aggregatorName](\n this.props.vals\n );\n this.tree = {};\n this.rowKeys = [];\n this.colKeys = [];\n this.rowTotals = {};\n this.colTotals = {};\n this.allTotal = this.aggregator(this, [], []);\n this.sorted = false;\n\n PivotData.forEachRecord(\n this.props.data,\n this.props.derivedAttributes,\n record => {\n if (this.filter(record)) {\n this.processRecord(record);\n }\n }\n );\n }\n\n filter(record) {\n for (const k in this.props.valueFilter) {\n if (record[k] in this.props.valueFilter[k]) {\n return false;\n }\n }\n return true;\n }\n\n forEachMatchingRecord(criteria, callback) {\n return PivotData.forEachRecord(\n this.props.data,\n this.props.derivedAttributes,\n record => {\n if (!this.filter(record)) {\n return;\n }\n for (const k in criteria) {\n const v = criteria[k];\n if (v !== (k in record ? record[k] : 'null')) {\n return;\n }\n }\n callback(record);\n }\n );\n }\n\n arrSort(attrs) {\n let a;\n const sortersArr = (() => {\n const result = [];\n for (a of Array.from(attrs)) {\n result.push(getSort(this.props.sorters, a));\n }\n return result;\n })();\n return function(a, b) {\n for (const i of Object.keys(sortersArr || {})) {\n const sorter = sortersArr[i];\n const comparison = sorter(a[i], b[i]);\n if (comparison !== 0) {\n return comparison;\n }\n }\n return 0;\n };\n }\n\n sortKeys() {\n if (!this.sorted) {\n this.sorted = true;\n const v = (r, c) => this.getAggregator(r, c).value();\n switch (this.props.rowOrder) {\n case 'value_a_to_z':\n this.rowKeys.sort((a, b) => naturalSort(v(a, []), v(b, [])));\n break;\n case 'value_z_to_a':\n this.rowKeys.sort((a, b) => -naturalSort(v(a, []), v(b, [])));\n break;\n default:\n this.rowKeys.sort(this.arrSort(this.props.rows));\n }\n switch (this.props.colOrder) {\n case 'value_a_to_z':\n this.colKeys.sort((a, b) => naturalSort(v([], a), v([], b)));\n break;\n case 'value_z_to_a':\n this.colKeys.sort((a, b) => -naturalSort(v([], a), v([], b)));\n break;\n default:\n this.colKeys.sort(this.arrSort(this.props.cols));\n }\n }\n }\n\n getColKeys() {\n this.sortKeys();\n return this.colKeys;\n }\n\n getRowKeys() {\n this.sortKeys();\n return this.rowKeys;\n }\n\n processRecord(record) {\n // this code is called in a tight loop\n const colKey = [];\n const rowKey = [];\n for (const x of Array.from(this.props.cols)) {\n colKey.push(x in record ? record[x] : 'null');\n }\n for (const x of Array.from(this.props.rows)) {\n rowKey.push(x in record ? record[x] : 'null');\n }\n const flatRowKey = rowKey.join(String.fromCharCode(0));\n const flatColKey = colKey.join(String.fromCharCode(0));\n\n this.allTotal.push(record);\n\n if (rowKey.length !== 0) {\n if (!this.rowTotals[flatRowKey]) {\n this.rowKeys.push(rowKey);\n this.rowTotals[flatRowKey] = this.aggregator(this, rowKey, []);\n }\n this.rowTotals[flatRowKey].push(record);\n }\n\n if (colKey.length !== 0) {\n if (!this.colTotals[flatColKey]) {\n this.colKeys.push(colKey);\n this.colTotals[flatColKey] = this.aggregator(this, [], colKey);\n }\n this.colTotals[flatColKey].push(record);\n }\n\n if (colKey.length !== 0 && rowKey.length !== 0) {\n if (!this.tree[flatRowKey]) {\n this.tree[flatRowKey] = {};\n }\n if (!this.tree[flatRowKey][flatColKey]) {\n this.tree[flatRowKey][flatColKey] = this.aggregator(\n this,\n rowKey,\n colKey\n );\n }\n this.tree[flatRowKey][flatColKey].push(record);\n }\n }\n\n getAggregator(rowKey, colKey) {\n let agg;\n const flatRowKey = rowKey.join(String.fromCharCode(0));\n const flatColKey = colKey.join(String.fromCharCode(0));\n if (rowKey.length === 0 && colKey.length === 0) {\n agg = this.allTotal;\n } else if (rowKey.length === 0) {\n agg = this.colTotals[flatColKey];\n } else if (colKey.length === 0) {\n agg = this.rowTotals[flatRowKey];\n } else {\n agg = this.tree[flatRowKey][flatColKey];\n }\n return (\n agg || {\n value() {\n return null;\n },\n format() {\n return '';\n },\n }\n );\n }\n\n forEachTotal(callback) {\n // Process row totals\n this.getRowKeys().forEach((rowKey, i) => {\n callback([rowKey, null], i);\n });\n\n // Process column totals\n this.getColKeys().forEach((colKey, i) => {\n callback([null, colKey], i);\n });\n }\n\n forEachCell(callback) {\n this.getRowKeys().forEach(rowKey => {\n this.getColKeys().forEach(colKey => {\n const agg = this.getAggregator(rowKey, colKey);\n const value = agg.value();\n callback(value, rowKey, colKey);\n });\n });\n }\n}\n\n// can handle arrays or jQuery selections of tables\nPivotData.forEachRecord = function(input, derivedAttributes, f) {\n let addRecord, record;\n if (Object.getOwnPropertyNames(derivedAttributes).length === 0) {\n addRecord = f;\n } else {\n addRecord = function(record) {\n for (const k in derivedAttributes) {\n const derived = derivedAttributes[k](record);\n if (derived !== null) {\n record[k] = derived;\n }\n }\n return f(record);\n };\n }\n\n // if it's a function, have it call us back\n if (typeof input === 'function') {\n return input(addRecord);\n } else if (Array.isArray(input)) {\n if (Array.isArray(input[0])) {\n // array of arrays\n return (() => {\n const result = [];\n for (const i of Object.keys(input || {})) {\n const compactRecord = input[i];\n if (i > 0) {\n record = {};\n for (const j of Object.keys(input[0] || {})) {\n const k = input[0][j];\n record[k] = compactRecord[j];\n }\n result.push(addRecord(record));\n }\n }\n return result;\n })();\n }\n\n // array of objects\n return (() => {\n const result1 = [];\n for (record of Array.from(input)) {\n result1.push(addRecord(record));\n }\n return result1;\n })();\n }\n throw new Error('unknown input format');\n};\n\nPivotData.defaultProps = {\n aggregators: aggregators,\n cols: [],\n rows: [],\n vals: [],\n aggregatorName: 'Count',\n sorters: {},\n valueFilter: {},\n rowOrder: 'key_a_to_z',\n colOrder: 'key_a_to_z',\n derivedAttributes: {},\n pagination: false,\n pageSize: 20,\n page: 1,\n};\n\nPivotData.propTypes = {\n data: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.func])\n .isRequired,\n aggregatorName: PropTypes.string,\n cols: PropTypes.arrayOf(PropTypes.string),\n rows: PropTypes.arrayOf(PropTypes.string),\n vals: PropTypes.arrayOf(PropTypes.string),\n valueFilter: PropTypes.objectOf(PropTypes.objectOf(PropTypes.bool)),\n sorters: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.objectOf(PropTypes.func),\n ]),\n derivedAttributes: PropTypes.objectOf(PropTypes.func),\n rowOrder: PropTypes.oneOf(['key_a_to_z', 'value_a_to_z', 'value_z_to_a']),\n colOrder: PropTypes.oneOf(['key_a_to_z', 'value_a_to_z', 'value_z_to_a']),\n pagination: PropTypes.bool,\n pageSize: PropTypes.number,\n page: PropTypes.number,\n};\n\nexport {\n aggregatorTemplates,\n aggregators,\n derivers,\n locales,\n naturalSort,\n numberFormat,\n getSort,\n sortAs,\n flatKey,\n PivotData,\n};\n"],"mappings":"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","ignoreList":[]}
package/grouping.css CHANGED
@@ -1,111 +1,111 @@
1
- :root {
2
- --pvt-row-padding: 5px;
3
- --pvt-row-indent: 20px;
4
- }
5
-
6
- table.pvtTable.rowGroupBefore tbody tr.pvtLevel1 td {
7
- border-top: 1px double #aaa;
8
- }
9
- table.pvtTable.rowGroupBefore tbody tr.pvtLevel2 td {
10
- border-top: 1px double black;
11
- }
12
- table.pvtTable.rowGroupBefore tbody tr.pvtLevel3 td {
13
- border-top: 1px double black;
14
- }
15
- table.pvtTable.rowGroupBefore tbody tr.pvtLevel4 td {
16
- border-top: 2px double black;
17
- }
18
-
19
-
20
- table.pvtTable.rowGroupAfter tbody tr.pvtLevel1 td {
21
- border-bottom: 1px double #aaa;
22
- }
23
- table.pvtTable.rowGroupAfter tbody tr.pvtLevel2 td {
24
- border-bottom: 1px double black;
25
- }
26
- table.pvtTable.rowGroupAfter tbody tr.pvtLevel3 td {
27
- border-bottom: 1px double black;
28
- }
29
- table.pvtTable.rowGroupAfter tbody tr.pvtLevel4 td {
30
- border-bottom: 2px double black;
31
- }
32
-
33
-
34
- table tbody tr.pvtLevel1 td,
35
- table tbody tr td.pvtLevel1 {
36
- font-weight: 700;
37
- background-color: #eee !important;
38
- }
39
- table tbody tr.pvtLevel2 td,
40
- table tbody tr td.pvtLevel2 {
41
- font-weight: 900;
42
- background-color: gainsboro !important;
43
- }
44
- table tbody tr.pvtLevel3 td,
45
- table tbody tr td.pvtLevel3 {
46
- font-weight: 900;
47
- background-color: #ccc !important;
48
- }
49
- table tbody tr.pvtLevel4 td,
50
- table tbody tr td.pvtLevel4 {
51
- font-weight: 900;
52
- background-color: darkgray !important;
53
- }
54
-
55
-
56
- /* tr.pvtData th:not(.pvtSubtotal) { */
57
- tr.pvtData th:last-of-type {
58
- font-weight: normal;
59
- }
60
-
61
-
62
- table.colGroupAfter td.pvtLevel1 {
63
- border-right: 1px double #aaa;
64
- }
65
- table.colGroupAfter td.pvtLevel2 {
66
- border-right: 1px double black;
67
- }
68
- table.colGroupAfter td.pvtLevel3 {
69
- border-right: 1px double black;
70
- }
71
- table.colGroupAfter td.pvtLevel4 {
72
- border-right: 2px double black;
73
- }
74
-
75
-
76
- table.colGroupBefore td.pvtLevel1 {
77
- border-left: 1px double #aaa;
78
- }
79
- table.colGroupBefore td.pvtLevel2 {
80
- border-left: 1px double black;
81
- }
82
- table.colGroupBefore td.pvtLevel3 {
83
- border-left: 1px double black;
84
- }
85
- table.colGroupBefore td.pvtLevel4 {
86
- border-left: 2px double black;
87
- }
88
-
89
- .pvtTotal,
90
- .pvtGrandTotal {
91
- background-color: #ccc !important;
92
- }
93
-
94
- .pvtClickable {
95
- cursor: pointer;
96
- }
97
-
98
- /* Folding */
99
- .pvtClickable:not(.closed):before
100
- {
101
- content: '\25E2';
102
- padding-right: 5px;
103
- font-size: smaller;
104
- }
105
-
106
- .pvtClickable.closed:before
107
- {
108
- content: '\25B7';
109
- padding-right: 5px;
110
- font-size: smaller;
111
- }
1
+ :root {
2
+ --pvt-row-padding: 5px;
3
+ --pvt-row-indent: 20px;
4
+ }
5
+
6
+ table.pvtTable.rowGroupBefore tbody tr.pvtLevel1 td {
7
+ border-top: 1px double #aaa;
8
+ }
9
+ table.pvtTable.rowGroupBefore tbody tr.pvtLevel2 td {
10
+ border-top: 1px double black;
11
+ }
12
+ table.pvtTable.rowGroupBefore tbody tr.pvtLevel3 td {
13
+ border-top: 1px double black;
14
+ }
15
+ table.pvtTable.rowGroupBefore tbody tr.pvtLevel4 td {
16
+ border-top: 2px double black;
17
+ }
18
+
19
+
20
+ table.pvtTable.rowGroupAfter tbody tr.pvtLevel1 td {
21
+ border-bottom: 1px double #aaa;
22
+ }
23
+ table.pvtTable.rowGroupAfter tbody tr.pvtLevel2 td {
24
+ border-bottom: 1px double black;
25
+ }
26
+ table.pvtTable.rowGroupAfter tbody tr.pvtLevel3 td {
27
+ border-bottom: 1px double black;
28
+ }
29
+ table.pvtTable.rowGroupAfter tbody tr.pvtLevel4 td {
30
+ border-bottom: 2px double black;
31
+ }
32
+
33
+
34
+ table tbody tr.pvtLevel1 td,
35
+ table tbody tr td.pvtLevel1 {
36
+ font-weight: 700;
37
+ background-color: #eee !important;
38
+ }
39
+ table tbody tr.pvtLevel2 td,
40
+ table tbody tr td.pvtLevel2 {
41
+ font-weight: 900;
42
+ background-color: gainsboro !important;
43
+ }
44
+ table tbody tr.pvtLevel3 td,
45
+ table tbody tr td.pvtLevel3 {
46
+ font-weight: 900;
47
+ background-color: #ccc !important;
48
+ }
49
+ table tbody tr.pvtLevel4 td,
50
+ table tbody tr td.pvtLevel4 {
51
+ font-weight: 900;
52
+ background-color: darkgray !important;
53
+ }
54
+
55
+
56
+ /* tr.pvtData th:not(.pvtSubtotal) { */
57
+ tr.pvtData th:last-of-type {
58
+ font-weight: normal;
59
+ }
60
+
61
+
62
+ table.colGroupAfter td.pvtLevel1 {
63
+ border-right: 1px double #aaa;
64
+ }
65
+ table.colGroupAfter td.pvtLevel2 {
66
+ border-right: 1px double black;
67
+ }
68
+ table.colGroupAfter td.pvtLevel3 {
69
+ border-right: 1px double black;
70
+ }
71
+ table.colGroupAfter td.pvtLevel4 {
72
+ border-right: 2px double black;
73
+ }
74
+
75
+
76
+ table.colGroupBefore td.pvtLevel1 {
77
+ border-left: 1px double #aaa;
78
+ }
79
+ table.colGroupBefore td.pvtLevel2 {
80
+ border-left: 1px double black;
81
+ }
82
+ table.colGroupBefore td.pvtLevel3 {
83
+ border-left: 1px double black;
84
+ }
85
+ table.colGroupBefore td.pvtLevel4 {
86
+ border-left: 2px double black;
87
+ }
88
+
89
+ .pvtTotal,
90
+ .pvtGrandTotal {
91
+ background-color: #ccc !important;
92
+ }
93
+
94
+ .pvtClickable {
95
+ cursor: pointer;
96
+ }
97
+
98
+ /* Folding */
99
+ .pvtClickable:not(.closed):before
100
+ {
101
+ content: '\25E2';
102
+ padding-right: 5px;
103
+ font-size: smaller;
104
+ }
105
+
106
+ .pvtClickable.closed:before
107
+ {
108
+ content: '\25B7';
109
+ padding-right: 5px;
110
+ font-size: smaller;
111
+ }
package/hooks/usePivot.js CHANGED
@@ -19,6 +19,13 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
19
19
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
20
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
21
  function usePivot(initialProps) {
22
+ var sanitizedInitialProps = Object.keys(initialProps).reduce(function (acc, key) {
23
+ if (initialProps[key] !== undefined) {
24
+ acc[key] = initialProps[key];
25
+ }
26
+ return acc;
27
+ }, {});
28
+
22
29
  // Mantener una referencia a las props iniciales para evitar cierres de ámbito (closures) obsoletos
23
30
  var initialPropsRef = (0, _react.useRef)(initialProps);
24
31
  (0, _react.useEffect)(function () {
@@ -42,7 +49,7 @@ function usePivot(initialProps) {
42
49
  pagination: false,
43
50
  pageSize: 20,
44
51
  page: 1
45
- }, initialProps)),
52
+ }, sanitizedInitialProps)),
46
53
  _useState2 = _slicedToArray(_useState, 2),
47
54
  props = _useState2[0],
48
55
  setProps = _useState2[1];
@@ -57,8 +64,14 @@ function usePivot(initialProps) {
57
64
 
58
65
  // Sincronizar props internas cuando cambian las externas, pero sin disparar onChange de vuelta
59
66
  (0, _react.useEffect)(function () {
67
+ var sanitizedSync = Object.keys(initialProps).reduce(function (acc, key) {
68
+ if (initialProps[key] !== undefined) {
69
+ acc[key] = initialProps[key];
70
+ }
71
+ return acc;
72
+ }, {});
60
73
  setProps(function (prev) {
61
- return _objectSpread(_objectSpread({}, prev), initialProps);
74
+ return _objectSpread(_objectSpread({}, prev), sanitizedSync);
62
75
  });
63
76
  }, [initialProps.data, initialProps.rows, initialProps.cols, initialProps.rendererName, initialProps.aggregatorName, initialProps.page, initialProps.pageSize]);
64
77
 
@@ -112,13 +125,9 @@ function usePivot(initialProps) {
112
125
  return !finalValue.includes(r);
113
126
  });
114
127
  }
115
-
116
- // Programar el onChange en un microtask o después del renderizado para evitar el warning de Gallery
117
- setTimeout(function () {
118
- if (initialPropsRef.current.onChange) {
119
- initialPropsRef.current.onChange(newProps);
120
- }
121
- }, 0);
128
+ if (initialPropsRef.current.onChange) {
129
+ initialPropsRef.current.onChange(newProps);
130
+ }
122
131
  return newProps;
123
132
  });
124
133
  }, []);
@@ -134,9 +143,7 @@ function usePivot(initialProps) {
134
143
  var newProps = _objectSpread(_objectSpread({}, prev), {}, {
135
144
  valueFilter: newValueFilter
136
145
  });
137
- setTimeout(function () {
138
- if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
139
- }, 0);
146
+ if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
140
147
  return newProps;
141
148
  });
142
149
  }, []);
@@ -149,9 +156,7 @@ function usePivot(initialProps) {
149
156
  var newProps = _objectSpread(_objectSpread({}, prev), {}, {
150
157
  valueFilter: _objectSpread(_objectSpread({}, prev.valueFilter), {}, _defineProperty({}, attribute, newFilter))
151
158
  });
152
- setTimeout(function () {
153
- if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
154
- }, 0);
159
+ if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
155
160
  return newProps;
156
161
  });
157
162
  }, []);