react-pivottable-plus 1.0.0

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.
@@ -0,0 +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":[]}
package/grouping.css ADDED
@@ -0,0 +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
+ }
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.usePivot = usePivot;
8
+ var _react = require("react");
9
+ var _Utilities = require("../Utilities");
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
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
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
+ function usePivot(initialProps) {
22
+ // Mantener una referencia a las props iniciales para evitar cierres de ámbito (closures) obsoletos
23
+ var initialPropsRef = (0, _react.useRef)(initialProps);
24
+ (0, _react.useEffect)(function () {
25
+ initialPropsRef.current = initialProps;
26
+ }, [initialProps]);
27
+ var _useState = (0, _react.useState)(_objectSpread({
28
+ data: [],
29
+ rows: [],
30
+ cols: [],
31
+ vals: [],
32
+ rowOrder: 'key_a_to_z',
33
+ colOrder: 'key_a_to_z',
34
+ aggregatorName: 'Count',
35
+ rendererName: 'Table',
36
+ valueFilter: {},
37
+ sorters: {},
38
+ derivedAttributes: {},
39
+ hiddenAttributes: [],
40
+ hiddenFromAggregators: [],
41
+ hiddenFromDragDrop: [],
42
+ pagination: false,
43
+ pageSize: 20,
44
+ page: 1
45
+ }, initialProps)),
46
+ _useState2 = _slicedToArray(_useState, 2),
47
+ props = _useState2[0],
48
+ setProps = _useState2[1];
49
+ var _useState3 = (0, _react.useState)({
50
+ attrValues: {},
51
+ materializedInput: [],
52
+ unusedOrder: []
53
+ }),
54
+ _useState4 = _slicedToArray(_useState3, 2),
55
+ state = _useState4[0],
56
+ setState = _useState4[1];
57
+
58
+ // Sincronizar props internas cuando cambian las externas, pero sin disparar onChange de vuelta
59
+ (0, _react.useEffect)(function () {
60
+ setProps(function (prev) {
61
+ return _objectSpread(_objectSpread({}, prev), initialProps);
62
+ });
63
+ }, [initialProps.data, initialProps.rows, initialProps.cols, initialProps.rendererName, initialProps.aggregatorName, initialProps.page, initialProps.pageSize]);
64
+
65
+ // Materializar la entrada
66
+ (0, _react.useEffect)(function () {
67
+ var materializedInput = [];
68
+ var attrValues = {};
69
+ var recordsProcessed = 0;
70
+ _Utilities.PivotData.forEachRecord(props.data, props.derivedAttributes, function (record) {
71
+ materializedInput.push(record);
72
+ for (var _i = 0, _Object$keys = Object.keys(record); _i < _Object$keys.length; _i++) {
73
+ var attr = _Object$keys[_i];
74
+ if (!(attr in attrValues)) {
75
+ attrValues[attr] = {};
76
+ if (recordsProcessed > 0) {
77
+ attrValues[attr]["null"] = recordsProcessed;
78
+ }
79
+ }
80
+ }
81
+ for (var _attr in attrValues) {
82
+ var value = _attr in record ? record[_attr] : 'null';
83
+ if (!(value in attrValues[_attr])) {
84
+ attrValues[_attr][value] = 0;
85
+ }
86
+ attrValues[_attr][value]++;
87
+ }
88
+ recordsProcessed++;
89
+ });
90
+ setState(function (s) {
91
+ return _objectSpread(_objectSpread({}, s), {}, {
92
+ attrValues: attrValues,
93
+ materializedInput: materializedInput
94
+ });
95
+ });
96
+ }, [props.data, props.derivedAttributes]);
97
+ var updateProp = (0, _react.useCallback)(function (key, value) {
98
+ setProps(function (prev) {
99
+ var finalValue = value;
100
+ if (Array.isArray(value) && (key === 'rows' || key === 'cols' || key === 'vals')) {
101
+ finalValue = value.filter(function (v) {
102
+ return v && v.trim() !== '';
103
+ });
104
+ }
105
+ var newProps = _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, key, finalValue));
106
+ if (key === 'rows') {
107
+ newProps.cols = prev.cols.filter(function (c) {
108
+ return !finalValue.includes(c);
109
+ });
110
+ } else if (key === 'cols') {
111
+ newProps.rows = prev.rows.filter(function (r) {
112
+ return !finalValue.includes(r);
113
+ });
114
+ }
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);
122
+ return newProps;
123
+ });
124
+ }, []);
125
+ var toggleFilter = (0, _react.useCallback)(function (attribute, value) {
126
+ setProps(function (prev) {
127
+ var filter = _objectSpread({}, prev.valueFilter[attribute]);
128
+ if (value in filter) {
129
+ delete filter[value];
130
+ } else {
131
+ filter[value] = true;
132
+ }
133
+ var newValueFilter = _objectSpread(_objectSpread({}, prev.valueFilter), {}, _defineProperty({}, attribute, filter));
134
+ var newProps = _objectSpread(_objectSpread({}, prev), {}, {
135
+ valueFilter: newValueFilter
136
+ });
137
+ setTimeout(function () {
138
+ if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
139
+ }, 0);
140
+ return newProps;
141
+ });
142
+ }, []);
143
+ var setValuesInFilter = (0, _react.useCallback)(function (attribute, values) {
144
+ setProps(function (prev) {
145
+ var newFilter = values.reduce(function (r, v) {
146
+ r[v] = true;
147
+ return r;
148
+ }, {});
149
+ var newProps = _objectSpread(_objectSpread({}, prev), {}, {
150
+ valueFilter: _objectSpread(_objectSpread({}, prev.valueFilter), {}, _defineProperty({}, attribute, newFilter))
151
+ });
152
+ setTimeout(function () {
153
+ if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
154
+ }, 0);
155
+ return newProps;
156
+ });
157
+ }, []);
158
+ return {
159
+ props: props,
160
+ state: state,
161
+ actions: {
162
+ setProps: setProps,
163
+ updateProp: updateProp,
164
+ toggleFilter: toggleFilter,
165
+ setValuesInFilter: setValuesInFilter,
166
+ setUnusedOrder: function setUnusedOrder(order) {
167
+ return setState(function (s) {
168
+ return _objectSpread(_objectSpread({}, s), {}, {
169
+ unusedOrder: order
170
+ });
171
+ });
172
+ }
173
+ }
174
+ };
175
+ }
176
+ //# sourceMappingURL=usePivot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePivot.js","names":["_react","require","_Utilities","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","isArray","usePivot","initialProps","initialPropsRef","useRef","useEffect","current","_useState","useState","data","rows","cols","vals","rowOrder","colOrder","aggregatorName","rendererName","valueFilter","sorters","derivedAttributes","hiddenAttributes","hiddenFromAggregators","hiddenFromDragDrop","pagination","pageSize","page","_useState2","props","setProps","_useState3","attrValues","materializedInput","unusedOrder","_useState4","state","setState","prev","recordsProcessed","PivotData","forEachRecord","record","_i","_Object$keys","attr","s","updateProp","useCallback","key","finalValue","v","trim","newProps","c","includes","setTimeout","onChange","toggleFilter","attribute","newValueFilter","setValuesInFilter","values","newFilter","reduce","actions","setUnusedOrder","order"],"sources":["../src/hooks/usePivot.js"],"sourcesContent":["import { useState, useMemo, useCallback, useEffect, useRef } from 'react';\r\nimport { PivotData } from '../Utilities';\r\n\r\nexport function usePivot(initialProps) {\r\n // Mantener una referencia a las props iniciales para evitar cierres de ámbito (closures) obsoletos\r\n const initialPropsRef = useRef(initialProps);\r\n useEffect(() => {\r\n initialPropsRef.current = initialProps;\r\n }, [initialProps]);\r\n\r\n const [props, setProps] = useState({\r\n data: [],\r\n rows: [],\r\n cols: [],\r\n vals: [],\r\n rowOrder: 'key_a_to_z',\r\n colOrder: 'key_a_to_z',\r\n aggregatorName: 'Count',\r\n rendererName: 'Table',\r\n valueFilter: {},\r\n sorters: {},\r\n derivedAttributes: {},\r\n hiddenAttributes: [],\r\n hiddenFromAggregators: [],\r\n hiddenFromDragDrop: [],\r\n pagination: false,\r\n pageSize: 20,\r\n page: 1,\r\n ...initialProps\r\n });\r\n\r\n const [state, setState] = useState({\r\n attrValues: {},\r\n materializedInput: [],\r\n unusedOrder: []\r\n });\r\n\r\n // Sincronizar props internas cuando cambian las externas, pero sin disparar onChange de vuelta\r\n useEffect(() => {\r\n setProps(prev => ({ ...prev, ...initialProps }));\r\n }, [initialProps.data, initialProps.rows, initialProps.cols, initialProps.rendererName, initialProps.aggregatorName, initialProps.page, initialProps.pageSize]);\r\n\r\n // Materializar la entrada\r\n useEffect(() => {\r\n const materializedInput = [];\r\n const attrValues = {};\r\n let recordsProcessed = 0;\r\n\r\n PivotData.forEachRecord(\r\n props.data,\r\n props.derivedAttributes,\r\n function(record) {\r\n materializedInput.push(record);\r\n for (const attr of Object.keys(record)) {\r\n if (!(attr in attrValues)) {\r\n attrValues[attr] = {};\r\n if (recordsProcessed > 0) {\r\n attrValues[attr].null = recordsProcessed;\r\n }\r\n }\r\n }\r\n for (const attr in attrValues) {\r\n const value = attr in record ? record[attr] : 'null';\r\n if (!(value in attrValues[attr])) {\r\n attrValues[attr][value] = 0;\r\n }\r\n attrValues[attr][value]++;\r\n }\r\n recordsProcessed++;\r\n }\r\n );\r\n\r\n setState(s => ({ ...s, attrValues, materializedInput }));\r\n }, [props.data, props.derivedAttributes]);\r\n\r\n const updateProp = useCallback((key, value) => {\r\n setProps(prev => {\r\n let finalValue = value;\r\n if (Array.isArray(value) && (key === 'rows' || key === 'cols' || key === 'vals')) {\r\n finalValue = value.filter(v => v && v.trim() !== '');\r\n }\r\n\r\n const newProps = { ...prev, [key]: finalValue };\r\n \r\n if (key === 'rows') {\r\n newProps.cols = prev.cols.filter(c => !finalValue.includes(c));\r\n } else if (key === 'cols') {\r\n newProps.rows = prev.rows.filter(r => !finalValue.includes(r));\r\n }\r\n\r\n // Programar el onChange en un microtask o después del renderizado para evitar el warning de Gallery\r\n setTimeout(() => {\r\n if (initialPropsRef.current.onChange) {\r\n initialPropsRef.current.onChange(newProps);\r\n }\r\n }, 0);\r\n\r\n return newProps;\r\n });\r\n }, []);\r\n\r\n const toggleFilter = useCallback((attribute, value) => {\r\n setProps(prev => {\r\n const filter = { ...prev.valueFilter[attribute] };\r\n if (value in filter) {\r\n delete filter[value];\r\n } else {\r\n filter[value] = true;\r\n }\r\n const newValueFilter = { ...prev.valueFilter, [attribute]: filter };\r\n const newProps = { ...prev, valueFilter: newValueFilter };\r\n \r\n setTimeout(() => {\r\n if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);\r\n }, 0);\r\n\r\n return newProps;\r\n });\r\n }, []);\r\n\r\n const setValuesInFilter = useCallback((attribute, values) => {\r\n setProps(prev => {\r\n const newFilter = values.reduce((r, v) => {\r\n r[v] = true;\r\n return r;\r\n }, {});\r\n const newProps = { ...prev, valueFilter: { ...prev.valueFilter, [attribute]: newFilter } };\r\n \r\n setTimeout(() => {\r\n if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);\r\n }, 0);\r\n\r\n return newProps;\r\n });\r\n }, []);\r\n\r\n return {\r\n props,\r\n state,\r\n actions: {\r\n setProps,\r\n updateProp,\r\n toggleFilter,\r\n setValuesInFilter,\r\n setUnusedOrder: (order) => setState(s => ({ ...s, unusedOrder: order }))\r\n }\r\n };\r\n}\r\n"],"mappings":"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","ignoreList":[]}
package/package.json ADDED
@@ -0,0 +1,102 @@
1
+ {
2
+ "name": "react-pivottable-plus",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "A React-based pivot table with grouping and modern UI (Tailwind, Radix, Shadcn)",
6
+ "main": "PivotTableUI.js",
7
+ "files": [
8
+ "PivotTable.js",
9
+ "PivotTableUI.js",
10
+ "PlotlyRenderers.js",
11
+ "TableRenderers.js",
12
+ "SubtotalsRenderers.js",
13
+ "Utilities.js",
14
+ "renderers/",
15
+ "hooks/",
16
+ "PivotTable.js.map",
17
+ "PivotTableUI.js.map",
18
+ "PlotlyRenderers.js.map",
19
+ "TableRenderers.js.map",
20
+ "Utilities.js.map",
21
+ "pivottable.css",
22
+ "grouping.css"
23
+ ],
24
+ "scripts": {
25
+ "dev": "vite",
26
+ "start": "npm run dev",
27
+ "test:eslint": "eslint src/*.js* && echo 'eslint: \\033[0;32m'PASS'\\033[0m'",
28
+ "test:eslint:fix": "eslint src/*.js* --fix",
29
+ "test:prettier": "prettier -l \"src/*.js*\" && echo 'prettier: \\033[0;32m'PASS'\\033[0m'",
30
+ "test:prettier:fix": "prettier --write \"src/*.js*\"",
31
+ "test:jest": "jest",
32
+ "test": "npm run test:eslint && npm run test:prettier && npm run test:jest",
33
+ "clean": "shx rm -rf __tests__ PivotTable.js* PivotTableUI.js* PlotlyRenderers.js* TableRenderers.js* Utilities.js* pivottable.css grouping.css",
34
+ "build": "npm run clean && shx cp src/pivottable.css . && shx cp src/grouping.css . && babel src --out-dir=. --source-maps --presets=@babel/preset-env,@babel/preset-react --plugins=babel-plugin-add-module-exports",
35
+ "build:examples": "vite build",
36
+ "doPublish": "npm run build && npm publish",
37
+ "postpublish": "npm run clean"
38
+ },
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/jasp402/react-pivottable-plus.git"
42
+ },
43
+ "keywords": [
44
+ "react",
45
+ "pivottable",
46
+ "grouping",
47
+ "subtotals",
48
+ "tailwind",
49
+ "radix-ui",
50
+ "shadcn"
51
+ ],
52
+ "author": "Jasp402 <https://github.com/jasp402>",
53
+ "license": "MIT",
54
+ "bugs": {
55
+ "url": "https://github.com/jasp402/react-pivottable-plus/issues"
56
+ },
57
+ "homepage": "https://github.com/jasp402/react-pivottable-plus#readme",
58
+ "dependencies": {
59
+ "@dnd-kit/core": "^6.3.1",
60
+ "@dnd-kit/sortable": "^10.0.0",
61
+ "@dnd-kit/utilities": "^3.2.2",
62
+ "@radix-ui/react-dialog": "^1.1.15",
63
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
64
+ "@radix-ui/react-label": "^2.1.8",
65
+ "@radix-ui/react-popover": "^1.1.15",
66
+ "@radix-ui/react-select": "^2.2.6",
67
+ "@radix-ui/react-slot": "^1.2.4",
68
+ "class-variance-authority": "^0.7.1",
69
+ "clsx": "^2.1.1",
70
+ "immutability-helper": "^2.3.1",
71
+ "lucide-react": "^0.575.0",
72
+ "prop-types": "^15.8.1",
73
+ "react-draggable": "^4.4.6",
74
+ "react-sortablejs": "^6.1.4",
75
+ "sortablejs": "^1.15.2",
76
+ "tailwind-merge": "^3.5.0"
77
+ },
78
+ "peerDependencies": {
79
+ "react": ">=19.0.0",
80
+ "react-dom": ">=19.0.0"
81
+ },
82
+ "devDependencies": {
83
+ "@babel/cli": "^7.28.6",
84
+ "@babel/core": "^7.24.0",
85
+ "@babel/preset-env": "^7.24.0",
86
+ "@babel/preset-react": "^7.24.0",
87
+ "@tailwindcss/vite": "^4.0.0",
88
+ "@vitejs/plugin-react": "^5.1.4",
89
+ "autoprefixer": "^10.4.18",
90
+ "babel-loader": "^9.1.3",
91
+ "babel-plugin-add-module-exports": "^1.0.4",
92
+ "postcss": "^8.4.35",
93
+ "prettier": "^3.2.5",
94
+ "react": "^19.0.0",
95
+ "react-dom": "^19.0.0",
96
+ "react-plotly.js": "^2.6.0",
97
+ "rimraf": "^6.1.3",
98
+ "shx": "^0.4.0",
99
+ "tailwindcss": "^4.0.0",
100
+ "vite": "^5.1.4"
101
+ }
102
+ }