UNPKG

47.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["src/Utilities.js"],"names":["addSeparators","nStr","thousandsSep","decimalSep","x","String","split","x1","x2","length","rgx","test","replace","numberFormat","opts_in","defaults","digitsAfterDecimal","scaler","prefix","suffix","opts","Object","assign","isNaN","isFinite","result","toFixed","rx","rd","rz","naturalSort","as","bs","nas","Number","nbs","a","b","match","a1","shift","b1","sortAs","order","mapping","l_mapping","i","toLowerCase","getSort","sorters","attr","sort","usFmt","usFmtInt","usFmtPct","aggregatorTemplates","count","formatter","push","value","format","uniques","fn","uniq","record","Array","from","includes","numInputs","sum","parseFloat","extremes","mode","data","val","sorter","Math","quantile","q","vals","floor","ceil","runningStat","ddof","n","m","s","m_new","sqrt","Error","sumOverSum","num","denom","sumNum","sumDenom","fractionOf","wrapped","type","rowKey","colKey","selector","total","row","col","inner","getAggregator","countUnique","f","listUnique","join","max","min","first","last","median","average","var","stdev","aggregators","Count","tpl","Sum","Average","Median","Minimum","Maximum","First","Last","locales","en","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","apply","cancel","totals","vs","by","mthNamesEn","dayNamesEn","zeroPad","number","substr","derivers","bin","binWidth","dateFormat","formatString","utcOutput","mthNames","dayNames","utc","date","Date","parse","p","PivotData","inputProps","props","defaultProps","checkPropTypes","propTypes","aggregator","aggregatorName","tree","rowKeys","colKeys","rowTotals","colTotals","allTotal","sorted","forEachRecord","derivedAttributes","filter","processRecord","k","valueFilter","criteria","callback","v","attrs","sortersArr","keys","comparison","r","c","rowOrder","arrSort","rows","colOrder","cols","sortKeys","flatRowKey","fromCharCode","flatColKey","agg","input","addRecord","getOwnPropertyNames","derived","isArray","compactRecord","j","result1","oneOfType","array","object","func","isRequired","string","arrayOf","objectOf","bool","oneOf"],"mappings":"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","file":"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(x => x.join(s), x => x);\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/*\nData Model class\n*/\n\nclass PivotData {\n constructor(inputProps = {}) {\n this.props = Object.assign({}, PivotData.defaultProps, inputProps);\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 // iterate through input, accumulating data for cells\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\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};\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};\n\nexport {\n aggregatorTemplates,\n aggregators,\n derivers,\n locales,\n naturalSort,\n numberFormat,\n getSort,\n sortAs,\n PivotData,\n};\n"]}
\No newline at end of file