react-pivottable-plus 1.0.18 → 1.1.1

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.
@@ -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","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":[]}
1
+ {"version":3,"file":"Utilities.js","names":["_propTypes","_interopRequireDefault","require","e","__esModule","_createForOfIteratorHelper","r","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_classCallCheck","_defineProperties","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","l","push","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","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","map","comparison","sortKeys","_this4","c","rowOrder","rows","colOrder","cols","getColKeys","getRowKeys","_iterator","_step","err","_iterator2","_step2","flatRowKey","flatColKey","agg","forEachTotal","forEach","forEachCell","_this5","input","addRecord","getOwnPropertyNames","derived","headers","compactRecord","j","_iterator3","_step3","rec","pagination","pageSize","page","oneOfType","array","object","func","isRequired","string","arrayOf","objectOf","bool","oneOf"],"sources":["../src/Utilities.js"],"sourcesContent":["import PropTypes from 'prop-types';\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 const sortersArr = attrs.map(a => getSort(this.props.sorters, a));\n return function (a, b) {\n for (let i = 0; i < sortersArr.length; i++) {\n const comparison = sortersArr[i](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 this.props.cols) {\n colKey.push(x in record ? record[x] : 'null');\n }\n for (const x of 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 — first row is headers\n const headers = input[0];\n for (let i = 1; i < input.length; i++) {\n const compactRecord = input[i];\n record = {};\n for (let j = 0; j < headers.length; j++) {\n record[headers[j]] = compactRecord[j];\n }\n addRecord(record);\n }\n return;\n }\n\n // array of objects\n for (const rec of input) {\n addRecord(rec);\n }\n return;\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":[]}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+
3
+ var _PivotEngine = require("../core/PivotEngine");
4
+ var _FilterModule = require("../modules/FilterModule");
5
+ var _PaginationModule = require("../modules/PaginationModule");
6
+ var _SortModule = require("../modules/SortModule");
7
+ var testData = [{
8
+ Country: 'USA',
9
+ Year: '2020',
10
+ Sales: 100
11
+ }, {
12
+ Country: 'USA',
13
+ Year: '2021',
14
+ Sales: 150
15
+ }, {
16
+ Country: 'Canada',
17
+ Year: '2020',
18
+ Sales: 80
19
+ }, {
20
+ Country: 'Canada',
21
+ Year: '2021',
22
+ Sales: 120
23
+ }, {
24
+ Country: 'Mexico',
25
+ Year: '2020',
26
+ Sales: 60
27
+ }, {
28
+ Country: 'Mexico',
29
+ Year: '2021',
30
+ Sales: 90
31
+ }];
32
+ describe('FilterModule', function () {
33
+ var engine;
34
+ beforeEach(function () {
35
+ engine = new _PivotEngine.PivotEngine({
36
+ data: testData,
37
+ rows: ['Country'],
38
+ cols: ['Year'],
39
+ modules: [_FilterModule.FilterModule, _PaginationModule.PaginationModule, _SortModule.SortModule]
40
+ });
41
+ });
42
+ afterEach(function () {
43
+ engine.destroy();
44
+ });
45
+ it('setFilter excluye valores del filtro', function () {
46
+ engine.gridApi.setFilter('Country', ['USA']);
47
+ var filter = engine.gridApi.getFilter('Country');
48
+ expect(filter).toHaveProperty('USA', true);
49
+ var config = engine.gridApi.getConfig();
50
+ expect(config.valueFilter.Country.USA).toBe(true);
51
+ });
52
+ it('toggleFilter alterna un valor', function () {
53
+ // Activar filtro
54
+ engine.gridApi.toggleFilter('Country', 'USA');
55
+ expect(engine.gridApi.getFilter('Country')).toHaveProperty('USA', true);
56
+
57
+ // Desactivar filtro
58
+ engine.gridApi.toggleFilter('Country', 'USA');
59
+ expect(engine.gridApi.getFilter('Country')).not.toHaveProperty('USA');
60
+ });
61
+ it('clearFilter limpia un atributo específico', function () {
62
+ engine.gridApi.setFilter('Country', ['USA', 'Canada']);
63
+ engine.gridApi.clearFilter('Country');
64
+ var config = engine.gridApi.getConfig();
65
+ expect(config.valueFilter.Country).toBeUndefined();
66
+ });
67
+ it('clearAllFilters limpia todos los filtros', function () {
68
+ engine.gridApi.setFilter('Country', ['USA']);
69
+ engine.gridApi.setFilter('Year', ['2020']);
70
+ engine.gridApi.clearAllFilters();
71
+ var config = engine.gridApi.getConfig();
72
+ expect(config.valueFilter).toEqual({});
73
+ });
74
+ it('addValuesToFilter agrega valores al filtro existente', function () {
75
+ engine.gridApi.setFilter('Country', ['USA']);
76
+ engine.gridApi.addValuesToFilter('Country', ['Canada']);
77
+ var filter = engine.gridApi.getFilter('Country');
78
+ expect(filter).toHaveProperty('USA', true);
79
+ expect(filter).toHaveProperty('Canada', true);
80
+ });
81
+ it('removeValuesFromFilter remueve valores específicos', function () {
82
+ engine.gridApi.setFilter('Country', ['USA', 'Canada']);
83
+ engine.gridApi.removeValuesFromFilter('Country', ['USA']);
84
+ var filter = engine.gridApi.getFilter('Country');
85
+ expect(filter).not.toHaveProperty('USA');
86
+ expect(filter).toHaveProperty('Canada', true);
87
+ });
88
+ it('getAllFilters devuelve todos los filtros activos', function () {
89
+ engine.gridApi.setFilter('Country', ['USA']);
90
+ engine.gridApi.setFilter('Year', ['2020']);
91
+ var allFilters = engine.gridApi.getAllFilters();
92
+ expect(allFilters).toHaveProperty('Country');
93
+ expect(allFilters).toHaveProperty('Year');
94
+ });
95
+ it('emite evento filterChanged', function () {
96
+ var callback = jest.fn();
97
+ engine.gridApi.addEventListener('filterChanged', callback);
98
+ engine.gridApi.setFilter('Country', ['USA']);
99
+ expect(callback).toHaveBeenCalled();
100
+ });
101
+ });
102
+ describe('PaginationModule', function () {
103
+ var engine;
104
+ beforeEach(function () {
105
+ engine = new _PivotEngine.PivotEngine({
106
+ data: testData,
107
+ rows: ['Country'],
108
+ cols: ['Year'],
109
+ pagination: true,
110
+ pageSize: 2,
111
+ page: 1,
112
+ modules: [_FilterModule.FilterModule, _PaginationModule.PaginationModule, _SortModule.SortModule]
113
+ });
114
+ });
115
+ afterEach(function () {
116
+ engine.destroy();
117
+ });
118
+ it('getPaginationInfo devuelve info correcta', function () {
119
+ var info = engine.gridApi.getPaginationInfo();
120
+ expect(info.page).toBe(1);
121
+ expect(info.pageSize).toBe(2);
122
+ expect(info.pagination).toBe(true);
123
+ });
124
+ it('setPage cambia la página actual', function () {
125
+ engine.gridApi.setPage(2);
126
+ expect(engine.gridApi.getPaginationInfo().page).toBe(2);
127
+ });
128
+ it('setPageSize cambia el tamaño y resetea a página 1', function () {
129
+ engine.gridApi.setPage(2);
130
+ engine.gridApi.setPageSize(5);
131
+ var info = engine.gridApi.getPaginationInfo();
132
+ expect(info.pageSize).toBe(5);
133
+ expect(info.page).toBe(1);
134
+ });
135
+ it('nextPage incrementa la página', function () {
136
+ engine.gridApi.nextPage();
137
+ expect(engine.gridApi.getPaginationInfo().page).toBe(2);
138
+ });
139
+ it('prevPage decrementa la página (mínimo 1)', function () {
140
+ engine.gridApi.setPage(2);
141
+ engine.gridApi.prevPage();
142
+ expect(engine.gridApi.getPaginationInfo().page).toBe(1);
143
+
144
+ // No debería bajar de 1
145
+ engine.gridApi.prevPage();
146
+ expect(engine.gridApi.getPaginationInfo().page).toBe(1);
147
+ });
148
+ it('firstPage va a la página 1', function () {
149
+ engine.gridApi.setPage(3);
150
+ engine.gridApi.firstPage();
151
+ expect(engine.gridApi.getPaginationInfo().page).toBe(1);
152
+ });
153
+ it('lastPage va a la última página', function () {
154
+ engine.gridApi.lastPage(5);
155
+ expect(engine.gridApi.getPaginationInfo().page).toBe(5);
156
+ });
157
+ it('setPagination habilita/deshabilita paginación', function () {
158
+ engine.gridApi.setPagination(false);
159
+ expect(engine.gridApi.getPaginationInfo().pagination).toBe(false);
160
+ engine.gridApi.setPagination(true);
161
+ expect(engine.gridApi.getPaginationInfo().pagination).toBe(true);
162
+ });
163
+ it('emite evento pageChanged', function () {
164
+ var callback = jest.fn();
165
+ engine.gridApi.addEventListener('pageChanged', callback);
166
+ engine.gridApi.setPage(2);
167
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining({
168
+ page: 2,
169
+ pageSize: 2
170
+ }));
171
+ });
172
+ });
173
+ describe('SortModule', function () {
174
+ var engine;
175
+ beforeEach(function () {
176
+ engine = new _PivotEngine.PivotEngine({
177
+ data: testData,
178
+ rows: ['Country'],
179
+ cols: ['Year'],
180
+ rowOrder: 'key_a_to_z',
181
+ colOrder: 'key_a_to_z',
182
+ modules: [_FilterModule.FilterModule, _PaginationModule.PaginationModule, _SortModule.SortModule]
183
+ });
184
+ });
185
+ afterEach(function () {
186
+ engine.destroy();
187
+ });
188
+ it('getSortState devuelve el estado de orden', function () {
189
+ var state = engine.gridApi.getSortState();
190
+ expect(state.rowOrder).toBe('key_a_to_z');
191
+ expect(state.colOrder).toBe('key_a_to_z');
192
+ });
193
+ it('setRowOrder cambia el orden de filas', function () {
194
+ engine.gridApi.setRowOrder('value_a_to_z');
195
+ expect(engine.gridApi.getSortState().rowOrder).toBe('value_a_to_z');
196
+ });
197
+ it('setColOrder cambia el orden de columnas', function () {
198
+ engine.gridApi.setColOrder('value_z_to_a');
199
+ expect(engine.gridApi.getSortState().colOrder).toBe('value_z_to_a');
200
+ });
201
+ it('toggleRowOrder cicla el orden de filas', function () {
202
+ // key_a_to_z → value_a_to_z
203
+ engine.gridApi.toggleRowOrder();
204
+ expect(engine.gridApi.getSortState().rowOrder).toBe('value_a_to_z');
205
+
206
+ // value_a_to_z → value_z_to_a
207
+ engine.gridApi.toggleRowOrder();
208
+ expect(engine.gridApi.getSortState().rowOrder).toBe('value_z_to_a');
209
+
210
+ // value_z_to_a → key_a_to_z
211
+ engine.gridApi.toggleRowOrder();
212
+ expect(engine.gridApi.getSortState().rowOrder).toBe('key_a_to_z');
213
+ });
214
+ it('toggleColOrder cicla el orden de columnas', function () {
215
+ engine.gridApi.toggleColOrder();
216
+ expect(engine.gridApi.getSortState().colOrder).toBe('value_a_to_z');
217
+ });
218
+ it('emite evento sortChanged', function () {
219
+ var callback = jest.fn();
220
+ engine.gridApi.addEventListener('sortChanged', callback);
221
+ engine.gridApi.setRowOrder('value_z_to_a');
222
+ expect(callback).toHaveBeenCalledWith(expect.objectContaining({
223
+ rowOrder: 'value_z_to_a'
224
+ }));
225
+ });
226
+ });
227
+ //# sourceMappingURL=Modules.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modules.test.js","names":["_PivotEngine","require","_FilterModule","_PaginationModule","_SortModule","testData","Country","Year","Sales","describe","engine","beforeEach","PivotEngine","data","rows","cols","modules","FilterModule","PaginationModule","SortModule","afterEach","destroy","it","gridApi","setFilter","filter","getFilter","expect","toHaveProperty","config","getConfig","valueFilter","USA","toBe","toggleFilter","not","clearFilter","toBeUndefined","clearAllFilters","toEqual","addValuesToFilter","removeValuesFromFilter","allFilters","getAllFilters","callback","jest","fn","addEventListener","toHaveBeenCalled","pagination","pageSize","page","info","getPaginationInfo","setPage","setPageSize","nextPage","prevPage","firstPage","lastPage","setPagination","toHaveBeenCalledWith","objectContaining","rowOrder","colOrder","state","getSortState","setRowOrder","setColOrder","toggleRowOrder","toggleColOrder"],"sources":["../../src/__tests__/Modules.test.js"],"sourcesContent":["import { PivotEngine } from '../core/PivotEngine';\nimport { FilterModule } from '../modules/FilterModule';\nimport { PaginationModule } from '../modules/PaginationModule';\nimport { SortModule } from '../modules/SortModule';\n\nconst testData = [\n { Country: 'USA', Year: '2020', Sales: 100 },\n { Country: 'USA', Year: '2021', Sales: 150 },\n { Country: 'Canada', Year: '2020', Sales: 80 },\n { Country: 'Canada', Year: '2021', Sales: 120 },\n { Country: 'Mexico', Year: '2020', Sales: 60 },\n { Country: 'Mexico', Year: '2021', Sales: 90 },\n];\n\ndescribe('FilterModule', () => {\n let engine;\n\n beforeEach(() => {\n engine = new PivotEngine({\n data: testData,\n rows: ['Country'],\n cols: ['Year'],\n modules: [FilterModule, PaginationModule, SortModule],\n });\n });\n\n afterEach(() => {\n engine.destroy();\n });\n\n it('setFilter excluye valores del filtro', () => {\n engine.gridApi.setFilter('Country', ['USA']);\n const filter = engine.gridApi.getFilter('Country');\n expect(filter).toHaveProperty('USA', true);\n\n const config = engine.gridApi.getConfig();\n expect(config.valueFilter.Country.USA).toBe(true);\n });\n\n it('toggleFilter alterna un valor', () => {\n // Activar filtro\n engine.gridApi.toggleFilter('Country', 'USA');\n expect(engine.gridApi.getFilter('Country')).toHaveProperty('USA', true);\n\n // Desactivar filtro\n engine.gridApi.toggleFilter('Country', 'USA');\n expect(engine.gridApi.getFilter('Country')).not.toHaveProperty('USA');\n });\n\n it('clearFilter limpia un atributo específico', () => {\n engine.gridApi.setFilter('Country', ['USA', 'Canada']);\n engine.gridApi.clearFilter('Country');\n\n const config = engine.gridApi.getConfig();\n expect(config.valueFilter.Country).toBeUndefined();\n });\n\n it('clearAllFilters limpia todos los filtros', () => {\n engine.gridApi.setFilter('Country', ['USA']);\n engine.gridApi.setFilter('Year', ['2020']);\n engine.gridApi.clearAllFilters();\n\n const config = engine.gridApi.getConfig();\n expect(config.valueFilter).toEqual({});\n });\n\n it('addValuesToFilter agrega valores al filtro existente', () => {\n engine.gridApi.setFilter('Country', ['USA']);\n engine.gridApi.addValuesToFilter('Country', ['Canada']);\n\n const filter = engine.gridApi.getFilter('Country');\n expect(filter).toHaveProperty('USA', true);\n expect(filter).toHaveProperty('Canada', true);\n });\n\n it('removeValuesFromFilter remueve valores específicos', () => {\n engine.gridApi.setFilter('Country', ['USA', 'Canada']);\n engine.gridApi.removeValuesFromFilter('Country', ['USA']);\n\n const filter = engine.gridApi.getFilter('Country');\n expect(filter).not.toHaveProperty('USA');\n expect(filter).toHaveProperty('Canada', true);\n });\n\n it('getAllFilters devuelve todos los filtros activos', () => {\n engine.gridApi.setFilter('Country', ['USA']);\n engine.gridApi.setFilter('Year', ['2020']);\n\n const allFilters = engine.gridApi.getAllFilters();\n expect(allFilters).toHaveProperty('Country');\n expect(allFilters).toHaveProperty('Year');\n });\n\n it('emite evento filterChanged', () => {\n const callback = jest.fn();\n engine.gridApi.addEventListener('filterChanged', callback);\n engine.gridApi.setFilter('Country', ['USA']);\n expect(callback).toHaveBeenCalled();\n });\n});\n\ndescribe('PaginationModule', () => {\n let engine;\n\n beforeEach(() => {\n engine = new PivotEngine({\n data: testData,\n rows: ['Country'],\n cols: ['Year'],\n pagination: true,\n pageSize: 2,\n page: 1,\n modules: [FilterModule, PaginationModule, SortModule],\n });\n });\n\n afterEach(() => {\n engine.destroy();\n });\n\n it('getPaginationInfo devuelve info correcta', () => {\n const info = engine.gridApi.getPaginationInfo();\n expect(info.page).toBe(1);\n expect(info.pageSize).toBe(2);\n expect(info.pagination).toBe(true);\n });\n\n it('setPage cambia la página actual', () => {\n engine.gridApi.setPage(2);\n expect(engine.gridApi.getPaginationInfo().page).toBe(2);\n });\n\n it('setPageSize cambia el tamaño y resetea a página 1', () => {\n engine.gridApi.setPage(2);\n engine.gridApi.setPageSize(5);\n const info = engine.gridApi.getPaginationInfo();\n expect(info.pageSize).toBe(5);\n expect(info.page).toBe(1);\n });\n\n it('nextPage incrementa la página', () => {\n engine.gridApi.nextPage();\n expect(engine.gridApi.getPaginationInfo().page).toBe(2);\n });\n\n it('prevPage decrementa la página (mínimo 1)', () => {\n engine.gridApi.setPage(2);\n engine.gridApi.prevPage();\n expect(engine.gridApi.getPaginationInfo().page).toBe(1);\n\n // No debería bajar de 1\n engine.gridApi.prevPage();\n expect(engine.gridApi.getPaginationInfo().page).toBe(1);\n });\n\n it('firstPage va a la página 1', () => {\n engine.gridApi.setPage(3);\n engine.gridApi.firstPage();\n expect(engine.gridApi.getPaginationInfo().page).toBe(1);\n });\n\n it('lastPage va a la última página', () => {\n engine.gridApi.lastPage(5);\n expect(engine.gridApi.getPaginationInfo().page).toBe(5);\n });\n\n it('setPagination habilita/deshabilita paginación', () => {\n engine.gridApi.setPagination(false);\n expect(engine.gridApi.getPaginationInfo().pagination).toBe(false);\n engine.gridApi.setPagination(true);\n expect(engine.gridApi.getPaginationInfo().pagination).toBe(true);\n });\n\n it('emite evento pageChanged', () => {\n const callback = jest.fn();\n engine.gridApi.addEventListener('pageChanged', callback);\n engine.gridApi.setPage(2);\n expect(callback).toHaveBeenCalledWith(\n expect.objectContaining({ page: 2, pageSize: 2 })\n );\n });\n});\n\ndescribe('SortModule', () => {\n let engine;\n\n beforeEach(() => {\n engine = new PivotEngine({\n data: testData,\n rows: ['Country'],\n cols: ['Year'],\n rowOrder: 'key_a_to_z',\n colOrder: 'key_a_to_z',\n modules: [FilterModule, PaginationModule, SortModule],\n });\n });\n\n afterEach(() => {\n engine.destroy();\n });\n\n it('getSortState devuelve el estado de orden', () => {\n const state = engine.gridApi.getSortState();\n expect(state.rowOrder).toBe('key_a_to_z');\n expect(state.colOrder).toBe('key_a_to_z');\n });\n\n it('setRowOrder cambia el orden de filas', () => {\n engine.gridApi.setRowOrder('value_a_to_z');\n expect(engine.gridApi.getSortState().rowOrder).toBe('value_a_to_z');\n });\n\n it('setColOrder cambia el orden de columnas', () => {\n engine.gridApi.setColOrder('value_z_to_a');\n expect(engine.gridApi.getSortState().colOrder).toBe('value_z_to_a');\n });\n\n it('toggleRowOrder cicla el orden de filas', () => {\n // key_a_to_z → value_a_to_z\n engine.gridApi.toggleRowOrder();\n expect(engine.gridApi.getSortState().rowOrder).toBe('value_a_to_z');\n\n // value_a_to_z → value_z_to_a\n engine.gridApi.toggleRowOrder();\n expect(engine.gridApi.getSortState().rowOrder).toBe('value_z_to_a');\n\n // value_z_to_a → key_a_to_z\n engine.gridApi.toggleRowOrder();\n expect(engine.gridApi.getSortState().rowOrder).toBe('key_a_to_z');\n });\n\n it('toggleColOrder cicla el orden de columnas', () => {\n engine.gridApi.toggleColOrder();\n expect(engine.gridApi.getSortState().colOrder).toBe('value_a_to_z');\n });\n\n it('emite evento sortChanged', () => {\n const callback = jest.fn();\n engine.gridApi.addEventListener('sortChanged', callback);\n engine.gridApi.setRowOrder('value_z_to_a');\n expect(callback).toHaveBeenCalledWith(\n expect.objectContaining({ rowOrder: 'value_z_to_a' })\n );\n });\n});\n"],"mappings":"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","ignoreList":[]}