diff --git a/dist/pivot.es.js b/dist/pivot.es.js index 9f952204..0220a5ff 100644 --- a/dist/pivot.es.js +++ b/dist/pivot.es.js @@ -51,6 +51,8 @@ "Suma": tpl.sum(frFmt), "Suma de enteros": tpl.sum(frFmtInt), "Promedio": tpl.average(frFmt), + "Mínimo": tpl.min(frFmt), + "Máximo": tpl.max(frFmt), "Suma de sumas": tpl.sumOverSum(frFmt), "Cota 80% superior": tpl.sumOverSumBound80(true, frFmt), "Cota 80% inferior": tpl.sumOverSumBound80(false, frFmt), diff --git a/dist/pivot.es.js.map b/dist/pivot.es.js.map index 8a14caed..78a8cddd 100644 --- a/dist/pivot.es.js.map +++ b/dist/pivot.es.js.map @@ -1 +1 @@ -{"version":3,"sources":["pivot.es.coffee"],"names":[],"mappings":"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","file":"pivot.es.js","sourceRoot":"/source/","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.es = \n\n localeStrings:\n renderError: \"Ocurrió un error durante la interpretación de la tabla din´mica.\"\n computeError: \"Ocurrió un error durante el c´lculo de la tabla din´mica.\"\n uiRenderError: \"Ocurrió un error durante el dibujado de la tabla din´mica.\"\n selectAll: \"Seleccionar todo\"\n selectNone: \"Deseleccionar todo\"\n tooMany: \"(demasiados valores)\"\n filterResults: \"Filtrar resultados\"\n totals: \"Totales\"\n vs: \"vs\"\n by: \"por\"\n aggregators: \n \"Cuenta\": tpl.count(frFmtInt)\n \"Cuenta de valores únicos\": tpl.countUnique(frFmtInt)\n \"Lista de valores únicos\": tpl.listUnique(\", \")\n \"Suma\": tpl.sum(frFmt)\n \"Suma de enteros\": tpl.sum(frFmtInt)\n \"Promedio\": tpl.average(frFmt)\n \"Suma de sumas\": tpl.sumOverSum(frFmt)\n \"Cota 80% superior\": tpl.sumOverSumBound80(true, frFmt)\n \"Cota 80% inferior\": tpl.sumOverSumBound80(false, frFmt)\n \"Proporción del total (suma)\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Proporción de la fila (suma)\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Proporción de la columna (suma)\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Proporción del total (cuenta)\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Proporción de la fila (cuenta)\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Proporción de la columna (cuenta)\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Tabla\": $.pivotUtilities.renderers[\"Table\"]\n \"Tabla con barras\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Heatmap\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Heatmap por filas\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Heatmap por columnas\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"]} \ No newline at end of file +{"version":3,"sources":["pivot.es.coffee"],"names":[],"mappings":"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","file":"pivot.es.js","sourceRoot":"/source/","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.es = \n\n localeStrings:\n renderError: \"Ocurrió un error durante la interpretación de la tabla din´mica.\"\n computeError: \"Ocurrió un error durante el c´lculo de la tabla din´mica.\"\n uiRenderError: \"Ocurrió un error durante el dibujado de la tabla din´mica.\"\n selectAll: \"Seleccionar todo\"\n selectNone: \"Deseleccionar todo\"\n tooMany: \"(demasiados valores)\"\n filterResults: \"Filtrar resultados\"\n totals: \"Totales\"\n vs: \"vs\"\n by: \"por\"\n aggregators: \n \"Cuenta\": tpl.count(frFmtInt)\n \"Cuenta de valores únicos\": tpl.countUnique(frFmtInt)\n \"Lista de valores únicos\": tpl.listUnique(\", \")\n \"Suma\": tpl.sum(frFmt)\n \"Suma de enteros\": tpl.sum(frFmtInt)\n \"Promedio\": tpl.average(frFmt)\n \"Mínimo\": tpl.min(frFmt)\n \"Máximo\": tpl.max(frFmt)\n \"Suma de sumas\": tpl.sumOverSum(frFmt)\n \"Cota 80% superior\": tpl.sumOverSumBound80(true, frFmt)\n \"Cota 80% inferior\": tpl.sumOverSumBound80(false, frFmt)\n \"Proporción del total (suma)\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Proporción de la fila (suma)\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Proporción de la columna (suma)\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Proporción del total (cuenta)\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Proporción de la fila (cuenta)\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Proporción de la columna (cuenta)\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Tabla\": $.pivotUtilities.renderers[\"Table\"]\n \"Tabla con barras\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Heatmap\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Heatmap por filas\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Heatmap por columnas\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"]} \ No newline at end of file diff --git a/dist/pivot.es.min.js b/dist/pivot.es.min.js index 7a35e5e3..2f9c6d4d 100644 --- a/dist/pivot.es.min.js +++ b/dist/pivot.es.min.js @@ -1,2 +1,2 @@ -(function(){var e;(e=function(e){return"object"==typeof exports&&"object"==typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){var a,t,r,o,i;return o=e.pivotUtilities.numberFormat,i=e.pivotUtilities.aggregatorTemplates,a=o({thousandsSep:" ",decimalSep:","}),t=o({digitsAfterDecimal:0,thousandsSep:" ",decimalSep:","}),r=o({digitsAfterDecimal:1,scaler:100,suffix:"%",thousandsSep:" ",decimalSep:","}),e.pivotUtilities.locales.es={localeStrings:{renderError:"Ocurrió un error durante la interpretación de la tabla din´mica.",computeError:"Ocurrió un error durante el c´lculo de la tabla din´mica.",uiRenderError:"Ocurrió un error durante el dibujado de la tabla din´mica.",selectAll:"Seleccionar todo",selectNone:"Deseleccionar todo",tooMany:"(demasiados valores)",filterResults:"Filtrar resultados",totals:"Totales",vs:"vs",by:"por"},aggregators:{Cuenta:i.count(t),"Cuenta de valores únicos":i.countUnique(t),"Lista de valores únicos":i.listUnique(", "),Suma:i.sum(a),"Suma de enteros":i.sum(t),Promedio:i.average(a),"Suma de sumas":i.sumOverSum(a),"Cota 80% superior":i.sumOverSumBound80(!0,a),"Cota 80% inferior":i.sumOverSumBound80(!1,a),"Proporción del total (suma)":i.fractionOf(i.sum(),"total",r),"Proporción de la fila (suma)":i.fractionOf(i.sum(),"row",r),"Proporción de la columna (suma)":i.fractionOf(i.sum(),"col",r),"Proporción del total (cuenta)":i.fractionOf(i.count(),"total",r),"Proporción de la fila (cuenta)":i.fractionOf(i.count(),"row",r),"Proporción de la columna (cuenta)":i.fractionOf(i.count(),"col",r)},renderers:{Tabla:e.pivotUtilities.renderers.Table,"Tabla con barras":e.pivotUtilities.renderers["Table Barchart"],Heatmap:e.pivotUtilities.renderers.Heatmap,"Heatmap por filas":e.pivotUtilities.renderers["Row Heatmap"],"Heatmap por columnas":e.pivotUtilities.renderers["Col Heatmap"]}}})}).call(this); +(function(){var e;(e=function(e){return"object"==typeof exports&&"object"==typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){var a,t,r,o,i;return o=e.pivotUtilities.numberFormat,i=e.pivotUtilities.aggregatorTemplates,a=o({thousandsSep:" ",decimalSep:","}),t=o({digitsAfterDecimal:0,thousandsSep:" ",decimalSep:","}),r=o({digitsAfterDecimal:1,scaler:100,suffix:"%",thousandsSep:" ",decimalSep:","}),e.pivotUtilities.locales.es={localeStrings:{renderError:"Ocurrió un error durante la interpretación de la tabla din´mica.",computeError:"Ocurrió un error durante el c´lculo de la tabla din´mica.",uiRenderError:"Ocurrió un error durante el dibujado de la tabla din´mica.",selectAll:"Seleccionar todo",selectNone:"Deseleccionar todo",tooMany:"(demasiados valores)",filterResults:"Filtrar resultados",totals:"Totales",vs:"vs",by:"por"},aggregators:{Cuenta:i.count(t),"Cuenta de valores únicos":i.countUnique(t),"Lista de valores únicos":i.listUnique(", "),Suma:i.sum(a),"Suma de enteros":i.sum(t),Promedio:i.average(a),"Mínimo":i.min(a),"Máximo":i.max(a),"Suma de sumas":i.sumOverSum(a),"Cota 80% superior":i.sumOverSumBound80(!0,a),"Cota 80% inferior":i.sumOverSumBound80(!1,a),"Proporción del total (suma)":i.fractionOf(i.sum(),"total",r),"Proporción de la fila (suma)":i.fractionOf(i.sum(),"row",r),"Proporción de la columna (suma)":i.fractionOf(i.sum(),"col",r),"Proporción del total (cuenta)":i.fractionOf(i.count(),"total",r),"Proporción de la fila (cuenta)":i.fractionOf(i.count(),"row",r),"Proporción de la columna (cuenta)":i.fractionOf(i.count(),"col",r)},renderers:{Tabla:e.pivotUtilities.renderers.Table,"Tabla con barras":e.pivotUtilities.renderers["Table Barchart"],Heatmap:e.pivotUtilities.renderers.Heatmap,"Heatmap por filas":e.pivotUtilities.renderers["Row Heatmap"],"Heatmap por columnas":e.pivotUtilities.renderers["Col Heatmap"]}}})}).call(this); //# sourceMappingURL=pivot.es.min.js.map \ No newline at end of file diff --git a/dist/pivot.es.min.js.map b/dist/pivot.es.min.js.map index 52f5d158..401c36e6 100644 --- a/dist/pivot.es.min.js.map +++ b/dist/pivot.es.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["/source/pivot.es.coffee"],"names":[],"mappings":"CAAA,WAAA,GAAA,IAAA,EAAiB,SAAC,GACd,MAAqB,gBAAlB,UAAgD,gBAAjB,QAC9B,EAAY,QAAQ,WACC,kBAAjB,SAAgC,OAAO,IAC3C,QAAQ,UAAW,GAGnB,EAAY,UAEL,SAAC,GACZ,GAAA,GAAA,EAAA,EAAA,EAAA,QAAA,GAAK,EAAE,eAAe,aACtB,EAAM,EAAE,eAAe,oBAEvB,EAAW,GAAG,aAAc,IAAK,WAAY,MAC7C,EAAW,GAAG,mBAAoB,EAAG,aAAc,IAAK,WAAY,MACpE,EAAW,GAAG,mBAAoB,EAAG,OAAQ,IAAK,OAAQ,IAAK,aAAc,IAAK,WAAY,MAE9F,EAAE,eAAe,QAAQ,IAErB,eACI,YAAa,uFACb,aAAc,+EACd,cAAe,0EACf,UAAW,mBACX,WAAY,qBACZ,QAAS,uBACT,cAAe,qBACf,OAAQ,UACR,GAAI,KACJ,GAAI,OACR,aACI,OAAsC,EAAI,MAAM,GAChD,kCAA4C,EAAI,YAAY,GAC5D,iCAA4C,EAAI,WAAW,MAC3D,KAAqC,EAAI,IAAI,GAC7C,kBAAqC,EAAI,IAAI,GAC7C,SAAuC,EAAI,QAAQ,GACnD,gBAAoC,EAAI,WAAW,GACnD,oBAA4B,EAAI,mBAAkB,EAAM,GACxD,oBAA4B,EAAI,mBAAkB,EAAO,GACzD,qCAA2C,EAAI,WAAW,EAAI,MAAS,QAAS,GAChF,sCAA0C,EAAI,WAAW,EAAI,MAAS,MAAS,GAC/E,yCAA2C,EAAI,WAAW,EAAI,MAAS,MAAS,GAChF,uCAA4C,EAAI,WAAW,EAAI,QAAS,QAAS,GACjF,wCAA2C,EAAI,WAAW,EAAI,QAAS,MAAS,GAChF,2CAA4C,EAAI,WAAW,EAAI,QAAS,MAAS,IAErF,WACI,MAAmC,EAAE,eAAe,UAAU,MAC9D,mBAAkC,EAAE,eAAe,UAAU,kBAC7D,QAA0B,EAAE,eAAe,UAAU,QACrD,oBAA0B,EAAE,eAAe,UAAU,eACrD,uBAA2B,EAAE,eAAe,UAAU","file":"pivot.es.min.js","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.es = \n\n localeStrings:\n renderError: \"Ocurrió un error durante la interpretación de la tabla din´mica.\"\n computeError: \"Ocurrió un error durante el c´lculo de la tabla din´mica.\"\n uiRenderError: \"Ocurrió un error durante el dibujado de la tabla din´mica.\"\n selectAll: \"Seleccionar todo\"\n selectNone: \"Deseleccionar todo\"\n tooMany: \"(demasiados valores)\"\n filterResults: \"Filtrar resultados\"\n totals: \"Totales\"\n vs: \"vs\"\n by: \"por\"\n aggregators: \n \"Cuenta\": tpl.count(frFmtInt)\n \"Cuenta de valores únicos\": tpl.countUnique(frFmtInt)\n \"Lista de valores únicos\": tpl.listUnique(\", \")\n \"Suma\": tpl.sum(frFmt)\n \"Suma de enteros\": tpl.sum(frFmtInt)\n \"Promedio\": tpl.average(frFmt)\n \"Suma de sumas\": tpl.sumOverSum(frFmt)\n \"Cota 80% superior\": tpl.sumOverSumBound80(true, frFmt)\n \"Cota 80% inferior\": tpl.sumOverSumBound80(false, frFmt)\n \"Proporción del total (suma)\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Proporción de la fila (suma)\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Proporción de la columna (suma)\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Proporción del total (cuenta)\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Proporción de la fila (cuenta)\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Proporción de la columna (cuenta)\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Tabla\": $.pivotUtilities.renderers[\"Table\"]\n \"Tabla con barras\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Heatmap\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Heatmap por filas\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Heatmap por columnas\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["/source/pivot.es.coffee"],"names":[],"mappings":"CAAA,WAAA,GAAA,IAAA,EAAiB,SAAC,GACd,MAAqB,gBAAlB,UAAgD,gBAAjB,QAC9B,EAAY,QAAQ,WACC,kBAAjB,SAAgC,OAAO,IAC3C,QAAQ,UAAW,GAGnB,EAAY,UAEL,SAAC,GACZ,GAAA,GAAA,EAAA,EAAA,EAAA,QAAA,GAAK,EAAE,eAAe,aACtB,EAAM,EAAE,eAAe,oBAEvB,EAAW,GAAG,aAAc,IAAK,WAAY,MAC7C,EAAW,GAAG,mBAAoB,EAAG,aAAc,IAAK,WAAY,MACpE,EAAW,GAAG,mBAAoB,EAAG,OAAQ,IAAK,OAAQ,IAAK,aAAc,IAAK,WAAY,MAE9F,EAAE,eAAe,QAAQ,IAErB,eACI,YAAa,uFACb,aAAc,+EACd,cAAe,0EACf,UAAW,mBACX,WAAY,qBACZ,QAAS,uBACT,cAAe,qBACf,OAAQ,UACR,GAAI,KACJ,GAAI,OACR,aACI,OAAsC,EAAI,MAAM,GAChD,kCAA4C,EAAI,YAAY,GAC5D,iCAA4C,EAAI,WAAW,MAC3D,KAAqC,EAAI,IAAI,GAC7C,kBAAqC,EAAI,IAAI,GAC7C,SAAuC,EAAI,QAAQ,GACnD,SAAgD,EAAI,IAAI,GACxD,SAAgD,EAAI,IAAI,GACxD,gBAAoC,EAAI,WAAW,GACnD,oBAA4B,EAAI,mBAAkB,EAAM,GACxD,oBAA4B,EAAI,mBAAkB,EAAO,GACzD,qCAA2C,EAAI,WAAW,EAAI,MAAS,QAAS,GAChF,sCAA0C,EAAI,WAAW,EAAI,MAAS,MAAS,GAC/E,yCAA2C,EAAI,WAAW,EAAI,MAAS,MAAS,GAChF,uCAA4C,EAAI,WAAW,EAAI,QAAS,QAAS,GACjF,wCAA2C,EAAI,WAAW,EAAI,QAAS,MAAS,GAChF,2CAA4C,EAAI,WAAW,EAAI,QAAS,MAAS,IAErF,WACI,MAAmC,EAAE,eAAe,UAAU,MAC9D,mBAAkC,EAAE,eAAe,UAAU,kBAC7D,QAA0B,EAAE,eAAe,UAAU,QACrD,oBAA0B,EAAE,eAAe,UAAU,eACrD,uBAA2B,EAAE,eAAe,UAAU","file":"pivot.es.min.js","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.es = \n\n localeStrings:\n renderError: \"Ocurrió un error durante la interpretación de la tabla din´mica.\"\n computeError: \"Ocurrió un error durante el c´lculo de la tabla din´mica.\"\n uiRenderError: \"Ocurrió un error durante el dibujado de la tabla din´mica.\"\n selectAll: \"Seleccionar todo\"\n selectNone: \"Deseleccionar todo\"\n tooMany: \"(demasiados valores)\"\n filterResults: \"Filtrar resultados\"\n totals: \"Totales\"\n vs: \"vs\"\n by: \"por\"\n aggregators: \n \"Cuenta\": tpl.count(frFmtInt)\n \"Cuenta de valores únicos\": tpl.countUnique(frFmtInt)\n \"Lista de valores únicos\": tpl.listUnique(\", \")\n \"Suma\": tpl.sum(frFmt)\n \"Suma de enteros\": tpl.sum(frFmtInt)\n \"Promedio\": tpl.average(frFmt)\n \"Mínimo\": tpl.min(frFmt)\n \"Máximo\": tpl.max(frFmt)\n \"Suma de sumas\": tpl.sumOverSum(frFmt)\n \"Cota 80% superior\": tpl.sumOverSumBound80(true, frFmt)\n \"Cota 80% inferior\": tpl.sumOverSumBound80(false, frFmt)\n \"Proporción del total (suma)\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Proporción de la fila (suma)\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Proporción de la columna (suma)\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Proporción del total (cuenta)\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Proporción de la fila (cuenta)\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Proporción de la columna (cuenta)\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Tabla\": $.pivotUtilities.renderers[\"Table\"]\n \"Tabla con barras\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Heatmap\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Heatmap por filas\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Heatmap por columnas\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/pivot.fr.js b/dist/pivot.fr.js index ddcd6286..ae0eec7e 100644 --- a/dist/pivot.fr.js +++ b/dist/pivot.fr.js @@ -51,6 +51,8 @@ "Somme": tpl.sum(frFmt), "Somme en entiers": tpl.sum(frFmtInt), "Moyenne": tpl.average(frFmt), + "Minimum": tpl.min(frFmt), + "Maximum": tpl.max(frFmt), "Ratio de sommes": tpl.sumOverSum(frFmt), "Borne supérieure 80%": tpl.sumOverSumBound80(true, frFmt), "Borne inférieure 80%": tpl.sumOverSumBound80(false, frFmt), diff --git a/dist/pivot.fr.js.map b/dist/pivot.fr.js.map index 990531ee..938fbfa2 100644 --- a/dist/pivot.fr.js.map +++ b/dist/pivot.fr.js.map @@ -1 +1 @@ -{"version":3,"sources":["pivot.fr.coffee"],"names":[],"mappings":"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","file":"pivot.fr.js","sourceRoot":"/source/","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.fr = \n localeStrings:\n renderError: \"Une erreur est survenue en dessinant le tableau croisé.\"\n computeError: \"Une erreur est survenue en calculant le tableau croisé.\"\n uiRenderError: \"Une erreur est survenue en dessinant l'interface du tableau croisé dynamique.\"\n selectAll: \"Sélectionner tout\"\n selectNone: \"Sélectionner rien\"\n tooMany: \"(trop de valeurs à afficher)\"\n filterResults: \"Filtrer les valeurs\"\n totals: \"Totaux\"\n vs: \"sur\"\n by: \"par\"\n\n aggregators: \n \"Nombre\": tpl.count(frFmtInt)\n \"Nombre de valeurs uniques\": tpl.countUnique(frFmtInt)\n \"Liste de valeurs uniques\": tpl.listUnique(\", \")\n \"Somme\": tpl.sum(frFmt)\n \"Somme en entiers\": tpl.sum(frFmtInt)\n \"Moyenne\": tpl.average(frFmt)\n \"Ratio de sommes\": tpl.sumOverSum(frFmt)\n \"Borne supérieure 80%\": tpl.sumOverSumBound80(true, frFmt)\n \"Borne inférieure 80%\": tpl.sumOverSumBound80(false, frFmt)\n \"Somme en proportion du totale\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Somme en proportion de la ligne\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Somme en proportion de la colonne\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Nombre en proportion du totale\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Nombre en proportion de la ligne\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Nombre en proportion de la colonne\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Table\": $.pivotUtilities.renderers[\"Table\"]\n \"Table avec barres\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Carte de chaleur\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Carte de chaleur par ligne\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Carte de chaleur par colonne\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"]} \ No newline at end of file +{"version":3,"sources":["pivot.fr.coffee"],"names":[],"mappings":"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","file":"pivot.fr.js","sourceRoot":"/source/","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.fr = \n localeStrings:\n renderError: \"Une erreur est survenue en dessinant le tableau croisé.\"\n computeError: \"Une erreur est survenue en calculant le tableau croisé.\"\n uiRenderError: \"Une erreur est survenue en dessinant l'interface du tableau croisé dynamique.\"\n selectAll: \"Sélectionner tout\"\n selectNone: \"Sélectionner rien\"\n tooMany: \"(trop de valeurs à afficher)\"\n filterResults: \"Filtrer les valeurs\"\n totals: \"Totaux\"\n vs: \"sur\"\n by: \"par\"\n\n aggregators: \n \"Nombre\": tpl.count(frFmtInt)\n \"Nombre de valeurs uniques\": tpl.countUnique(frFmtInt)\n \"Liste de valeurs uniques\": tpl.listUnique(\", \")\n \"Somme\": tpl.sum(frFmt)\n \"Somme en entiers\": tpl.sum(frFmtInt)\n \"Moyenne\": tpl.average(frFmt)\n \"Minimum\": tpl.min(frFmt)\n \"Maximum\": tpl.max(frFmt)\n \"Ratio de sommes\": tpl.sumOverSum(frFmt)\n \"Borne supérieure 80%\": tpl.sumOverSumBound80(true, frFmt)\n \"Borne inférieure 80%\": tpl.sumOverSumBound80(false, frFmt)\n \"Somme en proportion du totale\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Somme en proportion de la ligne\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Somme en proportion de la colonne\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Nombre en proportion du totale\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Nombre en proportion de la ligne\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Nombre en proportion de la colonne\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Table\": $.pivotUtilities.renderers[\"Table\"]\n \"Table avec barres\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Carte de chaleur\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Carte de chaleur par ligne\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Carte de chaleur par colonne\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"]} \ No newline at end of file diff --git a/dist/pivot.fr.min.js b/dist/pivot.fr.min.js index 535793d2..153917f1 100644 --- a/dist/pivot.fr.min.js +++ b/dist/pivot.fr.min.js @@ -1,2 +1,2 @@ -(function(){var e;(e=function(e){return"object"==typeof exports&&"object"==typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){var r,t,o,n,i;return n=e.pivotUtilities.numberFormat,i=e.pivotUtilities.aggregatorTemplates,r=n({thousandsSep:" ",decimalSep:","}),t=n({digitsAfterDecimal:0,thousandsSep:" ",decimalSep:","}),o=n({digitsAfterDecimal:1,scaler:100,suffix:"%",thousandsSep:" ",decimalSep:","}),e.pivotUtilities.locales.fr={localeStrings:{renderError:"Une erreur est survenue en dessinant le tableau croisé.",computeError:"Une erreur est survenue en calculant le tableau croisé.",uiRenderError:"Une erreur est survenue en dessinant l'interface du tableau croisé dynamique.",selectAll:"Sélectionner tout",selectNone:"Sélectionner rien",tooMany:"(trop de valeurs à afficher)",filterResults:"Filtrer les valeurs",totals:"Totaux",vs:"sur",by:"par"},aggregators:{Nombre:i.count(t),"Nombre de valeurs uniques":i.countUnique(t),"Liste de valeurs uniques":i.listUnique(", "),Somme:i.sum(r),"Somme en entiers":i.sum(t),Moyenne:i.average(r),"Ratio de sommes":i.sumOverSum(r),"Borne supérieure 80%":i.sumOverSumBound80(!0,r),"Borne inférieure 80%":i.sumOverSumBound80(!1,r),"Somme en proportion du totale":i.fractionOf(i.sum(),"total",o),"Somme en proportion de la ligne":i.fractionOf(i.sum(),"row",o),"Somme en proportion de la colonne":i.fractionOf(i.sum(),"col",o),"Nombre en proportion du totale":i.fractionOf(i.count(),"total",o),"Nombre en proportion de la ligne":i.fractionOf(i.count(),"row",o),"Nombre en proportion de la colonne":i.fractionOf(i.count(),"col",o)},renderers:{Table:e.pivotUtilities.renderers.Table,"Table avec barres":e.pivotUtilities.renderers["Table Barchart"],"Carte de chaleur":e.pivotUtilities.renderers.Heatmap,"Carte de chaleur par ligne":e.pivotUtilities.renderers["Row Heatmap"],"Carte de chaleur par colonne":e.pivotUtilities.renderers["Col Heatmap"]}}})}).call(this); +(function(){var e;(e=function(e){return"object"==typeof exports&&"object"==typeof module?e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){var r,t,o,i,n;return i=e.pivotUtilities.numberFormat,n=e.pivotUtilities.aggregatorTemplates,r=i({thousandsSep:" ",decimalSep:","}),t=i({digitsAfterDecimal:0,thousandsSep:" ",decimalSep:","}),o=i({digitsAfterDecimal:1,scaler:100,suffix:"%",thousandsSep:" ",decimalSep:","}),e.pivotUtilities.locales.fr={localeStrings:{renderError:"Une erreur est survenue en dessinant le tableau croisé.",computeError:"Une erreur est survenue en calculant le tableau croisé.",uiRenderError:"Une erreur est survenue en dessinant l'interface du tableau croisé dynamique.",selectAll:"Sélectionner tout",selectNone:"Sélectionner rien",tooMany:"(trop de valeurs à afficher)",filterResults:"Filtrer les valeurs",totals:"Totaux",vs:"sur",by:"par"},aggregators:{Nombre:n.count(t),"Nombre de valeurs uniques":n.countUnique(t),"Liste de valeurs uniques":n.listUnique(", "),Somme:n.sum(r),"Somme en entiers":n.sum(t),Moyenne:n.average(r),Minimum:n.min(r),Maximum:n.max(r),"Ratio de sommes":n.sumOverSum(r),"Borne supérieure 80%":n.sumOverSumBound80(!0,r),"Borne inférieure 80%":n.sumOverSumBound80(!1,r),"Somme en proportion du totale":n.fractionOf(n.sum(),"total",o),"Somme en proportion de la ligne":n.fractionOf(n.sum(),"row",o),"Somme en proportion de la colonne":n.fractionOf(n.sum(),"col",o),"Nombre en proportion du totale":n.fractionOf(n.count(),"total",o),"Nombre en proportion de la ligne":n.fractionOf(n.count(),"row",o),"Nombre en proportion de la colonne":n.fractionOf(n.count(),"col",o)},renderers:{Table:e.pivotUtilities.renderers.Table,"Table avec barres":e.pivotUtilities.renderers["Table Barchart"],"Carte de chaleur":e.pivotUtilities.renderers.Heatmap,"Carte de chaleur par ligne":e.pivotUtilities.renderers["Row Heatmap"],"Carte de chaleur par colonne":e.pivotUtilities.renderers["Col Heatmap"]}}})}).call(this); //# sourceMappingURL=pivot.fr.min.js.map \ No newline at end of file diff --git a/dist/pivot.fr.min.js.map b/dist/pivot.fr.min.js.map index 346bd3dd..82f6ab04 100644 --- a/dist/pivot.fr.min.js.map +++ b/dist/pivot.fr.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["/source/pivot.fr.coffee"],"names":[],"mappings":"CAAA,WAAA,GAAA,IAAA,EAAiB,SAAC,GACd,MAAqB,gBAAlB,UAAgD,gBAAjB,QAC9B,EAAY,QAAQ,WACC,kBAAjB,SAAgC,OAAO,IAC3C,QAAQ,UAAW,GAGnB,EAAY,UAEL,SAAC,GACZ,GAAA,GAAA,EAAA,EAAA,EAAA,QAAA,GAAK,EAAE,eAAe,aACtB,EAAM,EAAE,eAAe,oBAEvB,EAAW,GAAG,aAAc,IAAK,WAAY,MAC7C,EAAW,GAAG,mBAAoB,EAAG,aAAc,IAAK,WAAY,MACpE,EAAW,GAAG,mBAAoB,EAAG,OAAQ,IAAK,OAAQ,IAAK,aAAc,IAAK,WAAY,MAE9F,EAAE,eAAe,QAAQ,IACrB,eACI,YAAa,iEACb,aAAc,iEACd,cAAe,uFACf,UAAW,2BACX,WAAY,2BACZ,QAAS,sCACT,cAAe,sBACf,OAAQ,SACR,GAAI,MACJ,GAAI,OAER,aACI,OAAsC,EAAI,MAAM,GAChD,4BAAsC,EAAI,YAAY,GACtD,2BAAsC,EAAI,WAAW,MACrD,MAAsC,EAAI,IAAI,GAC9C,mBAAsC,EAAI,IAAI,GAC9C,QAAsC,EAAI,QAAQ,GAClD,kBAAsC,EAAI,WAAW,GACrD,8BAAsC,EAAI,mBAAkB,EAAM,GAClE,8BAAsC,EAAI,mBAAkB,EAAO,GACnE,gCAAsC,EAAI,WAAW,EAAI,MAAS,QAAS,GAC3E,kCAAsC,EAAI,WAAW,EAAI,MAAS,MAAS,GAC3E,oCAAsC,EAAI,WAAW,EAAI,MAAS,MAAS,GAC3E,iCAAsC,EAAI,WAAW,EAAI,QAAS,QAAS,GAC3E,mCAAsC,EAAI,WAAW,EAAI,QAAS,MAAS,GAC3E,qCAAsC,EAAI,WAAW,EAAI,QAAS,MAAS,IAE/E,WACI,MAAmC,EAAE,eAAe,UAAU,MAC9D,oBAAmC,EAAE,eAAe,UAAU,kBAC9D,mBAAmC,EAAE,eAAe,UAAU,QAC9D,6BAAmC,EAAE,eAAe,UAAU,eAC9D,+BAAmC,EAAE,eAAe,UAAU","file":"pivot.fr.min.js","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.fr = \n localeStrings:\n renderError: \"Une erreur est survenue en dessinant le tableau croisé.\"\n computeError: \"Une erreur est survenue en calculant le tableau croisé.\"\n uiRenderError: \"Une erreur est survenue en dessinant l'interface du tableau croisé dynamique.\"\n selectAll: \"Sélectionner tout\"\n selectNone: \"Sélectionner rien\"\n tooMany: \"(trop de valeurs à afficher)\"\n filterResults: \"Filtrer les valeurs\"\n totals: \"Totaux\"\n vs: \"sur\"\n by: \"par\"\n\n aggregators: \n \"Nombre\": tpl.count(frFmtInt)\n \"Nombre de valeurs uniques\": tpl.countUnique(frFmtInt)\n \"Liste de valeurs uniques\": tpl.listUnique(\", \")\n \"Somme\": tpl.sum(frFmt)\n \"Somme en entiers\": tpl.sum(frFmtInt)\n \"Moyenne\": tpl.average(frFmt)\n \"Ratio de sommes\": tpl.sumOverSum(frFmt)\n \"Borne supérieure 80%\": tpl.sumOverSumBound80(true, frFmt)\n \"Borne inférieure 80%\": tpl.sumOverSumBound80(false, frFmt)\n \"Somme en proportion du totale\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Somme en proportion de la ligne\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Somme en proportion de la colonne\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Nombre en proportion du totale\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Nombre en proportion de la ligne\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Nombre en proportion de la colonne\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Table\": $.pivotUtilities.renderers[\"Table\"]\n \"Table avec barres\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Carte de chaleur\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Carte de chaleur par ligne\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Carte de chaleur par colonne\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["/source/pivot.fr.coffee"],"names":[],"mappings":"CAAA,WAAA,GAAA,IAAA,EAAiB,SAAC,GACd,MAAqB,gBAAlB,UAAgD,gBAAjB,QAC9B,EAAY,QAAQ,WACC,kBAAjB,SAAgC,OAAO,IAC3C,QAAQ,UAAW,GAGnB,EAAY,UAEL,SAAC,GACZ,GAAA,GAAA,EAAA,EAAA,EAAA,QAAA,GAAK,EAAE,eAAe,aACtB,EAAM,EAAE,eAAe,oBAEvB,EAAW,GAAG,aAAc,IAAK,WAAY,MAC7C,EAAW,GAAG,mBAAoB,EAAG,aAAc,IAAK,WAAY,MACpE,EAAW,GAAG,mBAAoB,EAAG,OAAQ,IAAK,OAAQ,IAAK,aAAc,IAAK,WAAY,MAE9F,EAAE,eAAe,QAAQ,IACrB,eACI,YAAa,iEACb,aAAc,iEACd,cAAe,uFACf,UAAW,2BACX,WAAY,2BACZ,QAAS,sCACT,cAAe,sBACf,OAAQ,SACR,GAAI,MACJ,GAAI,OAER,aACI,OAAsC,EAAI,MAAM,GAChD,4BAAsC,EAAI,YAAY,GACtD,2BAAsC,EAAI,WAAW,MACrD,MAAsC,EAAI,IAAI,GAC9C,mBAAsC,EAAI,IAAI,GAC9C,QAAsC,EAAI,QAAQ,GAClD,QAAsC,EAAI,IAAI,GAC9C,QAAsC,EAAI,IAAI,GAC9C,kBAAsC,EAAI,WAAW,GACrD,8BAAsC,EAAI,mBAAkB,EAAM,GAClE,8BAAsC,EAAI,mBAAkB,EAAO,GACnE,gCAAsC,EAAI,WAAW,EAAI,MAAS,QAAS,GAC3E,kCAAsC,EAAI,WAAW,EAAI,MAAS,MAAS,GAC3E,oCAAsC,EAAI,WAAW,EAAI,MAAS,MAAS,GAC3E,iCAAsC,EAAI,WAAW,EAAI,QAAS,QAAS,GAC3E,mCAAsC,EAAI,WAAW,EAAI,QAAS,MAAS,GAC3E,qCAAsC,EAAI,WAAW,EAAI,QAAS,MAAS,IAE/E,WACI,MAAmC,EAAE,eAAe,UAAU,MAC9D,oBAAmC,EAAE,eAAe,UAAU,kBAC9D,mBAAmC,EAAE,eAAe,UAAU,QAC9D,6BAAmC,EAAE,eAAe,UAAU,eAC9D,+BAAmC,EAAE,eAAe,UAAU","file":"pivot.fr.min.js","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n nf = $.pivotUtilities.numberFormat\n tpl = $.pivotUtilities.aggregatorTemplates\n\n frFmt = nf(thousandsSep: \" \", decimalSep: \",\")\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \" \", decimalSep: \",\")\n frFmtPct = nf(digitsAfterDecimal: 1, scaler: 100, suffix: \"%\", thousandsSep: \" \", decimalSep: \",\")\n\n $.pivotUtilities.locales.fr = \n localeStrings:\n renderError: \"Une erreur est survenue en dessinant le tableau croisé.\"\n computeError: \"Une erreur est survenue en calculant le tableau croisé.\"\n uiRenderError: \"Une erreur est survenue en dessinant l'interface du tableau croisé dynamique.\"\n selectAll: \"Sélectionner tout\"\n selectNone: \"Sélectionner rien\"\n tooMany: \"(trop de valeurs à afficher)\"\n filterResults: \"Filtrer les valeurs\"\n totals: \"Totaux\"\n vs: \"sur\"\n by: \"par\"\n\n aggregators: \n \"Nombre\": tpl.count(frFmtInt)\n \"Nombre de valeurs uniques\": tpl.countUnique(frFmtInt)\n \"Liste de valeurs uniques\": tpl.listUnique(\", \")\n \"Somme\": tpl.sum(frFmt)\n \"Somme en entiers\": tpl.sum(frFmtInt)\n \"Moyenne\": tpl.average(frFmt)\n \"Minimum\": tpl.min(frFmt)\n \"Maximum\": tpl.max(frFmt)\n \"Ratio de sommes\": tpl.sumOverSum(frFmt)\n \"Borne supérieure 80%\": tpl.sumOverSumBound80(true, frFmt)\n \"Borne inférieure 80%\": tpl.sumOverSumBound80(false, frFmt)\n \"Somme en proportion du totale\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Somme en proportion de la ligne\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Somme en proportion de la colonne\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Nombre en proportion du totale\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Nombre en proportion de la ligne\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Nombre en proportion de la colonne\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Table\": $.pivotUtilities.renderers[\"Table\"]\n \"Table avec barres\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Carte de chaleur\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Carte de chaleur par ligne\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Carte de chaleur par colonne\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/pivot.js b/dist/pivot.js index 7bbaee39..89d2cf17 100644 --- a/dist/pivot.js +++ b/dist/pivot.js @@ -20,7 +20,7 @@ /* Utilities */ - var PivotData, addSeparators, aggregatorTemplates, aggregators, dayNamesEn, derivers, locales, mthNamesEn, naturalSort, numberFormat, pivotTableRenderer, renderers, usFmt, usFmtInt, usFmtPct, zeroPad; + var PivotData, addSeparators, aggregatorTemplates, aggregators, dayNamesEn, derivers, getSort, locales, mthNamesEn, naturalSort, numberFormat, pivotTableRenderer, renderers, sortAs, usFmt, usFmtInt, usFmtPct, zeroPad; addSeparators = function(nStr, thousandsSep, decimalSep) { var rgx, x, x1, x2; nStr += ''; @@ -159,6 +159,58 @@ }; }; }, + min: function(formatter) { + if (formatter == null) { + formatter = usFmt; + } + return function(_arg) { + var attr; + attr = _arg[0]; + return function(data, rowKey, colKey) { + return { + val: null, + push: function(record) { + var x, _ref; + x = parseFloat(record[attr]); + if (!isNaN(x)) { + return this.val = Math.min(x, (_ref = this.val) != null ? _ref : x); + } + }, + value: function() { + return this.val; + }, + format: formatter, + numInputs: attr != null ? 0 : 1 + }; + }; + }; + }, + max: function(formatter) { + if (formatter == null) { + formatter = usFmt; + } + return function(_arg) { + var attr; + attr = _arg[0]; + return function(data, rowKey, colKey) { + return { + val: null, + push: function(record) { + var x, _ref; + x = parseFloat(record[attr]); + if (!isNaN(x)) { + return this.val = Math.max(x, (_ref = this.val) != null ? _ref : x); + } + }, + value: function() { + return this.val; + }, + format: formatter, + numInputs: attr != null ? 0 : 1 + }; + }; + }; + }, average: function(formatter) { if (formatter == null) { formatter = usFmt; @@ -285,6 +337,8 @@ "Sum": tpl.sum(usFmt), "Integer Sum": tpl.sum(usFmtInt), "Average": tpl.average(usFmt), + "Minimum": tpl.min(usFmt), + "Maximum": tpl.max(usFmt), "Sum over Sum": tpl.sumOverSum(usFmt), "80% Upper Bound": tpl.sumOverSumBound80(true, usFmt), "80% Lower Bound": tpl.sumOverSumBound80(false, usFmt), @@ -342,13 +396,18 @@ return record[col] - record[col] % binWidth; }; }, - dateFormat: function(col, formatString, mthNames, dayNames) { + dateFormat: function(col, formatString, utcOutput, mthNames, dayNames) { + var utc; + if (utcOutput == null) { + utcOutput = false; + } if (mthNames == null) { mthNames = mthNamesEn; } if (dayNames == null) { dayNames = dayNamesEn; } + utc = utcOutput ? "UTC" : ""; return function(record) { var date; date = new Date(Date.parse(record[col])); @@ -358,23 +417,23 @@ return formatString.replace(/%(.)/g, function(m, p) { switch (p) { case "y": - return date.getFullYear(); + return date["get" + utc + "FullYear"](); case "m": - return zeroPad(date.getMonth() + 1); + return zeroPad(date["get" + utc + "Month"]() + 1); case "n": - return mthNames[date.getMonth()]; + return mthNames[date["get" + utc + "Month"]()]; case "d": - return zeroPad(date.getDate()); + return zeroPad(date["get" + utc + "Date"]()); case "w": - return dayNames[date.getDay()]; + return dayNames[date["get" + utc + "Day"]()]; case "x": - return date.getDay(); + return date["get" + utc + "Day"](); case "H": - return zeroPad(date.getHours()); + return zeroPad(date["get" + utc + "Hours"]()); case "M": - return zeroPad(date.getMinutes()); + return zeroPad(date["get" + utc + "Minutes"]()); case "S": - return zeroPad(date.getSeconds()); + return zeroPad(date["get" + utc + "Seconds"]()); default: return "%" + p; } @@ -421,6 +480,34 @@ return a.length - b.length; }; })(this); + sortAs = function(order) { + var i, mapping, x; + mapping = {}; + for (i in order) { + x = order[i]; + mapping[x] = i; + } + return function(a, b) { + if ((mapping[a] != null) && (mapping[b] != null)) { + return mapping[a] - mapping[b]; + } else if (mapping[a] != null) { + return -1; + } else if (mapping[b] != null) { + return 1; + } else { + return naturalSort(a, b); + } + }; + }; + getSort = function(sorters, attr) { + var sort; + sort = sorters(attr); + if ($.isFunction(sort)) { + return sort; + } else { + return naturalSort; + } + }; $.pivotUtilities = { aggregatorTemplates: aggregatorTemplates, aggregators: aggregators, @@ -428,7 +515,8 @@ derivers: derivers, locales: locales, naturalSort: naturalSort, - numberFormat: numberFormat + numberFormat: numberFormat, + sortAs: sortAs }; /* @@ -441,12 +529,12 @@ this.getColKeys = __bind(this.getColKeys, this); this.sortKeys = __bind(this.sortKeys, this); this.arrSort = __bind(this.arrSort, this); - this.natSort = __bind(this.natSort, this); this.aggregator = opts.aggregator; this.aggregatorName = opts.aggregatorName; this.colAttrs = opts.cols; this.rowAttrs = opts.rows; this.valAttrs = opts.vals; + this.sorters = opts.sorters; this.tree = {}; this.rowKeys = []; this.colKeys = []; @@ -532,20 +620,36 @@ return result; }; - PivotData.prototype.natSort = function(as, bs) { - return naturalSort(as, bs); - }; - - PivotData.prototype.arrSort = function(a, b) { - return this.natSort(a.join(), b.join()); + PivotData.prototype.arrSort = function(attrs) { + var a, sortersArr; + sortersArr = (function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = attrs.length; _i < _len; _i++) { + a = attrs[_i]; + _results.push(getSort(this.sorters, a)); + } + return _results; + }).call(this); + return function(a, b) { + var comparison, i, sorter; + for (i in sortersArr) { + sorter = sortersArr[i]; + comparison = sorter(a[i], b[i]); + if (comparison !== 0) { + return comparison; + } + } + return 0; + }; }; PivotData.prototype.sortKeys = function() { if (!this.sorted) { - this.rowKeys.sort(this.arrSort); - this.colKeys.sort(this.arrSort); + this.sorted = true; + this.rowKeys.sort(this.arrSort(this.rowAttrs)); + return this.colKeys.sort(this.arrSort(this.colAttrs)); } - return this.sorted = true; }; PivotData.prototype.getColKeys = function() { @@ -812,6 +916,7 @@ }, aggregator: aggregatorTemplates.count()(), aggregatorName: "Count", + sorters: function() {}, derivedAttributes: {}, renderer: pivotTableRenderer, rendererOptions: null, @@ -874,6 +979,7 @@ filter: function() { return true; }, + sorters: function() {}, localeStrings: locales[locale].localeStrings }; existingOpts = this.data("pivotUIOptions"); @@ -1006,7 +1112,7 @@ }); })); checkContainer = $("
").addClass("pvtCheckContainer").appendTo(valueList); - _ref2 = keys.sort(naturalSort); + _ref2 = keys.sort(getSort(opts.sorters, c)); for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { k = _ref2[_k]; v = axisValues[c][k]; @@ -1097,11 +1203,12 @@ initialRender = true; refreshDelayed = (function(_this) { return function() { - var attr, exclusions, natSort, newDropdown, numInputsToProcess, pivotUIOptions, pvtVals, subopts, unusedAttrsContainer, vals, _len4, _m, _n, _ref5; + var attr, exclusions, newDropdown, numInputsToProcess, pivotUIOptions, pvtVals, subopts, unusedAttrsContainer, vals, _len4, _m, _n, _ref5; subopts = { derivedAttributes: opts.derivedAttributes, localeStrings: opts.localeStrings, rendererOptions: opts.rendererOptions, + sorters: opts.sorters, cols: [], rows: [] }; @@ -1183,10 +1290,9 @@ }); _this.data("pivotUIOptions", pivotUIOptions); if (opts.autoSortUnusedAttrs) { - natSort = $.pivotUtilities.naturalSort; unusedAttrsContainer = _this.find("td.pvtUnused.pvtAxisContainer"); $(unusedAttrsContainer).children("li").sort(function(a, b) { - return natSort($(a).text(), $(b).text()); + return naturalSort($(a).text(), $(b).text()); }).appendTo(unusedAttrsContainer); } pivotTable.css("opacity", 1); diff --git a/dist/pivot.js.map b/dist/pivot.js.map index d9ba3b02..78137316 100644 --- a/dist/pivot.js.map +++ b/dist/pivot.js.map @@ -1 +1 @@ -{"version":3,"sources":["pivot.coffee"],"names":[],"mappings":"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","file":"pivot.js","sourceRoot":"/source/","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n\n ###\n Utilities\n ###\n\n addSeparators = (nStr, thousandsSep, decimalSep) ->\n nStr += ''\n x = nStr.split('.')\n x1 = x[0]\n x2 = if x.length > 1 then decimalSep + x[1] else ''\n rgx = /(\\d+)(\\d{3})/\n x1 = x1.replace(rgx, '$1' + thousandsSep + '$2') while rgx.test(x1)\n return x1 + x2\n\n numberFormat = (opts) ->\n defaults = \n digitsAfterDecimal: 2, scaler: 1, \n thousandsSep: \",\", decimalSep: \".\"\n prefix: \"\", suffix: \"\"\n showZero: false\n opts = $.extend defaults, opts\n (x) ->\n return \"\" if isNaN(x) or not isFinite(x)\n return \"\" if x == 0 and not opts.showZero\n result = addSeparators (opts.scaler*x).toFixed(opts.digitsAfterDecimal), opts.thousandsSep, opts.decimalSep\n return \"\"+opts.prefix+result+opts.suffix\n\n #aggregator templates default to US number formatting but this is overrideable\n usFmt = numberFormat()\n usFmtInt = numberFormat(digitsAfterDecimal: 0)\n usFmtPct = numberFormat(digitsAfterDecimal:1, scaler: 100, suffix: \"%\")\n\n aggregatorTemplates =\n count: (formatter=usFmtInt) -> () -> (data, rowKey, colKey) ->\n count: 0\n push: -> @count++\n value: -> @count\n format: formatter\n\n countUnique: (formatter=usFmtInt) -> ([attr]) -> (data, rowKey, colKey) ->\n uniq: []\n push: (record) -> @uniq.push(record[attr]) if record[attr] not in @uniq\n value: -> @uniq.length\n format: formatter\n numInputs: if attr? then 0 else 1\n\n listUnique: (sep) -> ([attr]) -> (data, rowKey, colKey) ->\n uniq: []\n push: (record) -> @uniq.push(record[attr]) if record[attr] not in @uniq\n value: -> @uniq.join sep\n format: (x) -> x\n numInputs: if attr? then 0 else 1\n\n sum: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n sum: 0\n push: (record) -> @sum += parseFloat(record[attr]) if not isNaN parseFloat(record[attr])\n value: -> @sum\n format: formatter\n numInputs: if attr? then 0 else 1\n\n average: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n sum: 0\n len: 0\n push: (record) ->\n if not isNaN parseFloat(record[attr])\n @sum += parseFloat(record[attr])\n @len++\n value: -> @sum/@len\n format: formatter\n numInputs: if attr? then 0 else 1\n\n sumOverSum: (formatter=usFmt) -> ([num, denom]) -> (data, rowKey, colKey) ->\n sumNum: 0\n sumDenom: 0\n push: (record) ->\n @sumNum += parseFloat(record[num]) if not isNaN parseFloat(record[num])\n @sumDenom += parseFloat(record[denom]) if not isNaN parseFloat(record[denom])\n value: -> @sumNum/@sumDenom\n format: formatter\n numInputs: if num? and denom? then 0 else 2\n\n sumOverSumBound80: (upper=true, formatter=usFmt) -> ([num, denom]) -> (data, rowKey, colKey) ->\n sumNum: 0\n sumDenom: 0\n push: (record) ->\n @sumNum += parseFloat(record[num]) if not isNaN parseFloat(record[num])\n @sumDenom += parseFloat(record[denom]) if not isNaN parseFloat(record[denom])\n value: ->\n sign = if upper then 1 else -1\n (0.821187207574908/@sumDenom + @sumNum/@sumDenom + 1.2815515655446004*sign*\n Math.sqrt(0.410593603787454/ (@sumDenom*@sumDenom) + (@sumNum*(1 - @sumNum/ @sumDenom))/ (@sumDenom*@sumDenom)))/\n (1 + 1.642374415149816/@sumDenom)\n format: formatter\n numInputs: if num? and denom? then 0 else 2\n\n fractionOf: (wrapped, type=\"total\", formatter=usFmtPct) -> (x...) -> (data, rowKey, colKey) ->\n selector: {total:[[],[]],row:[rowKey,[]],col:[[],colKey]}[type]\n inner: wrapped(x...)(data, rowKey, colKey)\n push: (record) -> @inner.push record\n format: formatter\n value: -> @inner.value() / data.getAggregator(@selector...).inner.value()\n numInputs: wrapped(x...)().numInputs\n\n #default aggregators & renderers use US naming and number formatting\n aggregators = do (tpl = aggregatorTemplates) -> \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 \"Sum over Sum\": tpl.sumOverSum(usFmt)\n \"80% Upper Bound\": tpl.sumOverSumBound80(true, usFmt)\n \"80% Lower Bound\": tpl.sumOverSumBound80(false, 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\n renderers =\n \"Table\": (pvtData, opts) -> pivotTableRenderer(pvtData, opts)\n \"Table Barchart\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).barchart()\n \"Heatmap\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).heatmap()\n \"Row Heatmap\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).heatmap(\"rowheatmap\")\n \"Col Heatmap\": (pvtData, opts) -> $(pivotTableRenderer(pvtData, opts)).heatmap(\"colheatmap\")\n\n locales = \n en: \n aggregators: aggregators\n renderers: renderers\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 results\"\n totals: \"Totals\" #for table renderer\n vs: \"vs\" #for gchart renderer\n by: \"by\" #for gchart renderer\n\n #dateFormat deriver l10n requires month and day names to be passed in directly\n mthNamesEn = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]\n dayNamesEn = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]\n zeroPad = (number) -> (\"0\"+number).substr(-2,2)\n\n derivers =\n bin: (col, binWidth) -> (record) -> record[col] - record[col] % binWidth\n dateFormat: (col, formatString, mthNames=mthNamesEn, dayNames=dayNamesEn) ->\n (record) -> #thanks http://stackoverflow.com/a/12213072/112871\n date = new Date(Date.parse(record[col]))\n if isNaN(date) then return \"\"\n formatString.replace /%(.)/g, (m, p) ->\n switch p\n when \"y\" then date.getFullYear()\n when \"m\" then zeroPad(date.getMonth()+1)\n when \"n\" then mthNames[date.getMonth()]\n when \"d\" then zeroPad(date.getDate())\n when \"w\" then dayNames[date.getDay()]\n when \"x\" then date.getDay()\n when \"H\" then zeroPad(date.getHours())\n when \"M\" then zeroPad(date.getMinutes())\n when \"S\" then zeroPad(date.getSeconds())\n else \"%\" + p\n\n naturalSort = (as, bs) => #thanks http://stackoverflow.com/a/4373421/112871\n rx = /(\\d+)|(\\D+)/g\n rd = /\\d/\n rz = /^0/\n if typeof as is \"number\" or typeof bs is \"number\"\n return 1 if isNaN(as)\n return -1 if isNaN(bs)\n return as - bs\n a = String(as).toLowerCase()\n b = String(bs).toLowerCase()\n return 0 if a is b\n return (if a > b then 1 else -1) unless rd.test(a) and rd.test(b)\n a = a.match(rx)\n b = b.match(rx)\n while a.length and b.length\n a1 = a.shift()\n b1 = b.shift()\n if a1 isnt b1\n if rd.test(a1) and rd.test(b1)\n return a1.replace(rz, \".0\") - b1.replace(rz, \".0\")\n else\n return (if a1 > b1 then 1 else -1)\n a.length - b.length\n\n #expose these to the outside world\n $.pivotUtilities = {aggregatorTemplates, aggregators, renderers, derivers, locales,\n naturalSort, numberFormat}\n\n ###\n Data Model class\n ###\n\n class PivotData\n constructor: (input, opts) ->\n @aggregator = opts.aggregator\n @aggregatorName = opts.aggregatorName\n @colAttrs = opts.cols\n @rowAttrs = opts.rows\n @valAttrs = opts.vals\n @tree = {}\n @rowKeys = []\n @colKeys = []\n @rowTotals = {}\n @colTotals = {}\n @allTotal = @aggregator(this, [], [])\n @sorted = false\n\n # iterate through input, accumulating data for cells\n PivotData.forEachRecord input, opts.derivedAttributes, (record) =>\n @processRecord(record) if opts.filter(record)\n\n #can handle arrays or jQuery selections of tables\n @forEachRecord = (input, derivedAttributes, f) ->\n if $.isEmptyObject derivedAttributes\n addRecord = f\n else\n addRecord = (record) -> \n record[k] = v(record) ? record[k] for k, v of derivedAttributes\n f(record)\n\n #if it's a function, have it call us back\n if $.isFunction(input)\n input(addRecord)\n else if $.isArray(input)\n if $.isArray(input[0]) #array of arrays\n for own i, compactRecord of input when i > 0\n record = {}\n record[k] = compactRecord[j] for own j, k of input[0]\n addRecord(record)\n else #array of objects\n addRecord(record) for record in input\n else if input instanceof jQuery\n tblCols = []\n $(\"thead > tr > th\", input).each (i) -> tblCols.push $(this).text()\n $(\"tbody > tr\", input).each (i) ->\n record = {}\n $(\"td\", this).each (j) -> record[tblCols[j]] = $(this).html()\n addRecord(record)\n else\n throw new Error(\"unknown input format\")\n\n #converts to [{attr:val, attr:val},{attr:val, attr:val}] using method above\n @convertToArray = (input) ->\n result = []\n PivotData.forEachRecord input, {}, (record) -> result.push record\n return result\n\n natSort: (as, bs) => naturalSort(as, bs)\n\n arrSort: (a,b) => @natSort a.join(), b.join()\n\n sortKeys: () =>\n if not @sorted\n @rowKeys.sort @arrSort\n @colKeys.sort @arrSort\n @sorted = true\n\n getColKeys: () =>\n @sortKeys()\n return @colKeys\n\n getRowKeys: () =>\n @sortKeys()\n return @rowKeys\n\n processRecord: (record) -> #this code is called in a tight loop\n colKey = []\n rowKey = []\n colKey.push record[x] ? \"null\" for x in @colAttrs \n rowKey.push record[x] ? \"null\" for x in @rowAttrs\n flatRowKey = rowKey.join(String.fromCharCode(0))\n flatColKey = colKey.join(String.fromCharCode(0))\n\n @allTotal.push record\n\n if rowKey.length != 0\n if not @rowTotals[flatRowKey]\n @rowKeys.push rowKey\n @rowTotals[flatRowKey] = @aggregator(this, rowKey, [])\n @rowTotals[flatRowKey].push record\n\n if colKey.length != 0\n if not @colTotals[flatColKey]\n @colKeys.push colKey\n @colTotals[flatColKey] = @aggregator(this, [], colKey)\n @colTotals[flatColKey].push record\n\n if colKey.length != 0 and rowKey.length != 0\n if not @tree[flatRowKey]\n @tree[flatRowKey] = {}\n if not @tree[flatRowKey][flatColKey]\n @tree[flatRowKey][flatColKey] = @aggregator(this, rowKey, colKey)\n @tree[flatRowKey][flatColKey].push record\n\n getAggregator: (rowKey, colKey) =>\n flatRowKey = rowKey.join(String.fromCharCode(0))\n flatColKey = colKey.join(String.fromCharCode(0))\n if rowKey.length == 0 and colKey.length == 0\n agg = @allTotal\n else if rowKey.length == 0\n agg = @colTotals[flatColKey]\n else if colKey.length == 0\n agg = @rowTotals[flatRowKey]\n else\n agg = @tree[flatRowKey][flatColKey]\n return agg ? {value: (-> null), format: -> \"\"}\n\n ###\n Default Renderer for hierarchical table layout\n ###\n\n pivotTableRenderer = (pivotData, opts) ->\n\n defaults =\n localeStrings:\n totals: \"Totals\"\n\n opts = $.extend defaults, opts\n\n colAttrs = pivotData.colAttrs\n rowAttrs = pivotData.rowAttrs\n rowKeys = pivotData.getRowKeys()\n colKeys = pivotData.getColKeys()\n\n #now actually build the output\n result = document.createElement(\"table\")\n result.className = \"pvtTable\"\n\n #helper function for setting row/col-span in pivotTableRenderer\n spanSize = (arr, i, j) ->\n if i != 0\n noDraw = true\n for x in [0..j]\n if arr[i-1][x] != arr[i][x]\n noDraw = false\n if noDraw\n return -1 #do not draw cell\n len = 0\n while i+len < arr.length\n stop = false\n for x in [0..j]\n stop = true if arr[i][x] != arr[i+len][x]\n break if stop\n len++\n return len\n\n #the first few rows are for col headers\n for own j, c of colAttrs\n tr = document.createElement(\"tr\")\n if parseInt(j) == 0 and rowAttrs.length != 0\n th = document.createElement(\"th\")\n th.setAttribute(\"colspan\", rowAttrs.length)\n th.setAttribute(\"rowspan\", colAttrs.length)\n tr.appendChild th\n th = document.createElement(\"th\")\n th.className = \"pvtAxisLabel\"\n th.innerHTML = c\n tr.appendChild th\n for own i, colKey of colKeys\n x = spanSize(colKeys, parseInt(i), parseInt(j))\n if x != -1\n th = document.createElement(\"th\")\n th.className = \"pvtColLabel\"\n th.innerHTML = colKey[j]\n th.setAttribute(\"colspan\", x)\n if parseInt(j) == colAttrs.length-1 and rowAttrs.length != 0\n th.setAttribute(\"rowspan\", 2)\n tr.appendChild th\n if parseInt(j) == 0\n th = document.createElement(\"th\")\n th.className = \"pvtTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n th.setAttribute(\"rowspan\", colAttrs.length + (if rowAttrs.length ==0 then 0 else 1))\n tr.appendChild th\n result.appendChild tr\n\n #then a row for row header headers\n if rowAttrs.length !=0\n tr = document.createElement(\"tr\")\n for own i, r of rowAttrs\n th = document.createElement(\"th\")\n th.className = \"pvtAxisLabel\"\n th.innerHTML = r\n tr.appendChild th \n th = document.createElement(\"th\")\n if colAttrs.length ==0\n th.className = \"pvtTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n tr.appendChild th\n result.appendChild tr\n\n #now the actual data rows, with their row headers and totals\n for own i, rowKey of rowKeys\n tr = document.createElement(\"tr\")\n for own j, txt of rowKey\n x = spanSize(rowKeys, parseInt(i), parseInt(j))\n if x != -1\n th = document.createElement(\"th\")\n th.className = \"pvtRowLabel\"\n th.innerHTML = txt\n th.setAttribute(\"rowspan\", x)\n if parseInt(j) == rowAttrs.length-1 and colAttrs.length !=0\n th.setAttribute(\"colspan\",2)\n tr.appendChild th\n for own j, colKey of colKeys #this is the tight loop\n aggregator = pivotData.getAggregator(rowKey, colKey)\n val = aggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtVal row#{i} col#{j}\"\n td.innerHTML = aggregator.format(val)\n td.setAttribute(\"data-value\", val)\n tr.appendChild td\n\n totalAggregator = pivotData.getAggregator(rowKey, [])\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtTotal rowTotal\"\n td.innerHTML = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n td.setAttribute(\"data-for\", \"row\"+i)\n tr.appendChild td\n result.appendChild tr\n\n #finally, the row for col totals, and a grand total\n tr = document.createElement(\"tr\")\n th = document.createElement(\"th\")\n th.className = \"pvtTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n th.setAttribute(\"colspan\", rowAttrs.length + (if colAttrs.length == 0 then 0 else 1))\n tr.appendChild th\n for own j, colKey of colKeys\n totalAggregator = pivotData.getAggregator([], colKey)\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtTotal colTotal\"\n td.innerHTML = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n td.setAttribute(\"data-for\", \"col\"+j)\n tr.appendChild td\n totalAggregator = pivotData.getAggregator([], [])\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtGrandTotal\"\n td.innerHTML = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n tr.appendChild td\n result.appendChild tr\n\n #squirrel this away for later\n result.setAttribute(\"data-numrows\", rowKeys.length)\n result.setAttribute(\"data-numcols\", colKeys.length)\n\n return result\n\n ###\n Pivot Table core: create PivotData object and call Renderer on it\n ###\n\n $.fn.pivot = (input, opts) ->\n defaults =\n cols : []\n rows: []\n filter: -> true\n aggregator: aggregatorTemplates.count()()\n aggregatorName: \"Count\"\n derivedAttributes: {},\n renderer: pivotTableRenderer\n rendererOptions: null\n localeStrings: locales.en.localeStrings\n\n opts = $.extend defaults, opts\n\n result = null\n try\n pivotData = new PivotData(input, opts)\n try\n result = opts.renderer(pivotData, opts.rendererOptions)\n catch e\n console.error(e.stack) if console?\n result = $(\"\").html opts.localeStrings.renderError\n catch e\n console.error(e.stack) if console?\n result = $(\"\").html opts.localeStrings.computeError\n \n x = this[0]\n x.removeChild(x.lastChild) while x.hasChildNodes()\n return @append result\n\n\n ###\n Pivot Table UI: calls Pivot Table core above with options set by user\n ###\n\n $.fn.pivotUI = (input, inputOpts, overwrite = false, locale=\"en\") ->\n defaults =\n derivedAttributes: {}\n aggregators: locales[locale].aggregators\n renderers: locales[locale].renderers\n hiddenAttributes: []\n menuLimit: 200\n cols: [], rows: [], vals: []\n exclusions: {}\n unusedAttrsVertical: \"auto\"\n autoSortUnusedAttrs: false\n rendererOptions: localeStrings: locales[locale].localeStrings\n onRefresh: null\n filter: -> true\n localeStrings: locales[locale].localeStrings\n\n existingOpts = @data \"pivotUIOptions\"\n if not existingOpts? or overwrite\n opts = $.extend defaults, inputOpts\n else\n opts = existingOpts\n\n try\n #cache the input in some useful form\n input = PivotData.convertToArray(input)\n tblCols = (k for own k of input[0])\n tblCols.push c for own c of opts.derivedAttributes when (c not in tblCols)\n\n #figure out the cardinality and some stats\n axisValues = {}\n axisValues[x] = {} for x in tblCols\n\n PivotData.forEachRecord input, opts.derivedAttributes, (record) ->\n for own k, v of record when opts.filter(record)\n v ?= \"null\"\n axisValues[k][v] ?= 0\n axisValues[k][v]++\n\n #start building the output\n uiTable = $(\"\").attr(\"cellpadding\", 5)\n\n #renderer control\n rendererControl = $(\"\").appendTo(uiTable)\n\n #aggregator menu and value area\n\n aggregator = $(\"\").appendTo(uiTable)\n\n #row axes\n tr2.append $(\"\").append(rendererControl).append(colList)\n\n #render the UI in its default state\n @html uiTable\n\n #set up the UI initial state as requested by moving elements around\n\n for x in opts.cols\n @find(\".pvtCols\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n for x in opts.rows\n @find(\".pvtRows\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n if opts.aggregatorName?\n @find(\".pvtAggregator\").val opts.aggregatorName\n if opts.rendererName?\n @find(\".pvtRenderer\").val opts.rendererName\n\n initialRender = true\n\n #set up for refreshing\n refreshDelayed = =>\n subopts =\n derivedAttributes: opts.derivedAttributes\n localeStrings: opts.localeStrings\n rendererOptions: opts.rendererOptions\n cols: [], rows: []\n\n numInputsToProcess = opts.aggregators[aggregator.val()]([])().numInputs ? 0\n vals = []\n @find(\".pvtRows li span.pvtAttr\").each -> subopts.rows.push $(this).data(\"attrName\")\n @find(\".pvtCols li span.pvtAttr\").each -> subopts.cols.push $(this).data(\"attrName\")\n @find(\".pvtVals select.pvtAttrDropdown\").each ->\n if numInputsToProcess == 0\n $(this).remove()\n else\n numInputsToProcess--\n vals.push $(this).val() if $(this).val() != \"\"\n\n if numInputsToProcess != 0\n pvtVals = @find(\".pvtVals\")\n for x in [0...numInputsToProcess]\n newDropdown = $(\"
\")\n\n renderer = $(\"\").addClass('pvtAxisContainer pvtUnused')\n shownAttributes = (c for c in tblCols when c not in opts.hiddenAttributes)\n\n unusedAttrsVerticalAutoOverride = false\n if opts.unusedAttrsVertical == \"auto\"\n attrLength = 0\n attrLength += a.length for a in shownAttributes\n unusedAttrsVerticalAutoOverride = attrLength > 120\n\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n colList.addClass('pvtVertList')\n else\n colList.addClass('pvtHorizList')\n\n for own i, c of shownAttributes\n do (c) ->\n keys = (k for k of axisValues[c])\n hasExcludedItem = false\n valueList = $(\"
\").addClass('pvtFilterBox').hide()\n\n valueList.append $(\"

\").text(\"#{c} (#{keys.length})\")\n if keys.length > opts.menuLimit\n valueList.append $(\"

\").html(opts.localeStrings.tooMany)\n else\n btns = $(\"

\").appendTo(valueList)\n btns.append $(\"

\").addClass('pvtVals')\n .appendTo(tr1)\n .append(aggregator)\n .append($(\"
\"))\n\n #column axes\n $(\"
\").addClass('pvtAxisContainer pvtHorizList pvtCols').appendTo(tr1)\n\n tr2 = $(\"
\").addClass('pvtAxisContainer pvtRows').attr(\"valign\", \"top\")\n\n #the actual pivot table container\n pivotTable = $(\"\")\n .attr(\"valign\", \"top\")\n .addClass('pvtRendererArea')\n .appendTo(tr2)\n\n #finally the renderer dropdown and unused attribs are inserted at the requested location\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n uiTable.find('tr:nth-child(1)').prepend rendererControl\n uiTable.find('tr:nth-child(2)').prepend colList\n else\n uiTable.prepend $(\"
\").attr(\"cellpadding\", 5)\n\n #renderer control\n rendererControl = $(\"\").appendTo(uiTable)\n\n #aggregator menu and value area\n\n aggregator = $(\"\").appendTo(uiTable)\n\n #row axes\n tr2.append $(\"\").append(rendererControl).append(colList)\n\n #render the UI in its default state\n @html uiTable\n\n #set up the UI initial state as requested by moving elements around\n\n for x in opts.cols\n @find(\".pvtCols\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n for x in opts.rows\n @find(\".pvtRows\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n if opts.aggregatorName?\n @find(\".pvtAggregator\").val opts.aggregatorName\n if opts.rendererName?\n @find(\".pvtRenderer\").val opts.rendererName\n\n initialRender = true\n\n #set up for refreshing\n refreshDelayed = =>\n subopts =\n derivedAttributes: opts.derivedAttributes\n localeStrings: opts.localeStrings\n rendererOptions: opts.rendererOptions\n sorters: opts.sorters\n cols: [], rows: []\n\n numInputsToProcess = opts.aggregators[aggregator.val()]([])().numInputs ? 0\n vals = []\n @find(\".pvtRows li span.pvtAttr\").each -> subopts.rows.push $(this).data(\"attrName\")\n @find(\".pvtCols li span.pvtAttr\").each -> subopts.cols.push $(this).data(\"attrName\")\n @find(\".pvtVals select.pvtAttrDropdown\").each ->\n if numInputsToProcess == 0\n $(this).remove()\n else\n numInputsToProcess--\n vals.push $(this).val() if $(this).val() != \"\"\n\n if numInputsToProcess != 0\n pvtVals = @find(\".pvtVals\")\n for x in [0...numInputsToProcess]\n newDropdown = $(\"
\")\n\n renderer = $(\"\").addClass('pvtAxisContainer pvtUnused')\n shownAttributes = (c for c in tblCols when c not in opts.hiddenAttributes)\n\n unusedAttrsVerticalAutoOverride = false\n if opts.unusedAttrsVertical == \"auto\"\n attrLength = 0\n attrLength += a.length for a in shownAttributes\n unusedAttrsVerticalAutoOverride = attrLength > 120\n\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n colList.addClass('pvtVertList')\n else\n colList.addClass('pvtHorizList')\n\n for own i, c of shownAttributes\n do (c) ->\n keys = (k for k of axisValues[c])\n hasExcludedItem = false\n valueList = $(\"
\").addClass('pvtFilterBox').hide()\n\n valueList.append $(\"

\").text(\"#{c} (#{keys.length})\")\n if keys.length > opts.menuLimit\n valueList.append $(\"

\").html(opts.localeStrings.tooMany)\n else\n btns = $(\"

\").appendTo(valueList)\n btns.append $(\"

\").addClass('pvtVals')\n .appendTo(tr1)\n .append(aggregator)\n .append($(\"
\"))\n\n #column axes\n $(\"
\").addClass('pvtAxisContainer pvtHorizList pvtCols').appendTo(tr1)\n\n tr2 = $(\"
\").addClass('pvtAxisContainer pvtRows').attr(\"valign\", \"top\")\n\n #the actual pivot table container\n pivotTable = $(\"\")\n .attr(\"valign\", \"top\")\n .addClass('pvtRendererArea')\n .appendTo(tr2)\n\n #finally the renderer dropdown and unused attribs are inserted at the requested location\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n uiTable.find('tr:nth-child(1)').prepend rendererControl\n uiTable.find('tr:nth-child(2)').prepend colList\n else\n uiTable.prepend $(\"
").attr("cellpadding",5),F=t("").appendTo(R),l=t("").appendTo(R),D.append(t("").append(F).append(g)),this.html(R),Q=w.cols,H=0,B=Q.length;B>H;H++)O=Q[H],this.find(".pvtCols").append(this.find(".axis_"+t.inArray(O,E)));for(W=w.rows,U=0,P=W.length;P>U;U++)O=W[U],this.find(".pvtRows").append(this.find(".axis_"+t.inArray(O,E)));null!=w.aggregatorName&&this.find(".pvtAggregator").val(w.aggregatorName),null!=w.rendererName&&this.find(".pvtRenderer").val(w.rendererName),y=!0,N=function(r){return function(){var a,o,i,s,u,c,p,h,d,f,g,m,v,b;if(h={derivedAttributes:w.derivedAttributes,localeStrings:w.localeStrings,rendererOptions:w.rendererOptions,cols:[],rows:[]},u=null!=(b=w.aggregators[l.val()]([])().numInputs)?b:0,f=[],r.find(".pvtRows li span.pvtAttr").each(function(){return h.rows.push(t(this).data("attrName"))}),r.find(".pvtCols li span.pvtAttr").each(function(){return h.cols.push(t(this).data("attrName"))}),r.find(".pvtVals select.pvtAttrDropdown").each(function(){return 0===u?t(this).remove():(u--,""!==t(this).val()?f.push(t(this).val()):void 0)}),0!==u)for(p=r.find(".pvtVals"),O=m=0;u>=0?u>m:m>u;O=u>=0?++m:--m){for(s=t("
"),x=t("").addClass("pvtAxisContainer pvtUnused"),E=function(){var t,n,r;for(r=[],t=0,n=L.length;n>t;t++)f=L[t],e.call(w.hiddenAttributes,f)<0&&r.push(f);return r}(),k=!1,"auto"===w.unusedAttrsVertical){for(c=0,q=0,j=E.length;j>q;q++)u=E[q],c+=u.length;k=c>120}g.addClass(w.unusedAttrsVertical===!0||k?"pvtVertList":"pvtHorizList"),I=function(n){var r,a,o,i,s,u,l,c,p,f,m,v,b,y,T;if(l=function(){var t;t=[];for(C in h[n])t.push(C);return t}(),u=!1,v=t("
").addClass("pvtFilterBox").hide(),v.append(t("

").text(""+n+" ("+l.length+")")),l.length>w.menuLimit)v.append(t("

").html(w.localeStrings.tooMany));else for(a=t("

").appendTo(v),a.append(t("

").addClass("pvtVals").appendTo(M).append(l).append(t("
")),t("
").addClass("pvtAxisContainer pvtHorizList pvtCols").appendTo(M),D=t("
").addClass("pvtAxisContainer pvtRows").attr("valign","top")),T=t("").attr("valign","top").addClass("pvtRendererArea").appendTo(D),w.unusedAttrsVertical===!0||k?(R.find("tr:nth-child(1)").prepend(F),R.find("tr:nth-child(2)").prepend(g)):R.prepend(t("
").attr("cellpadding",5),M=t("").appendTo(k),l=t("").appendTo(k),R.append(t("").append(M).append(m)),this.html(k),W=T.cols,U=0,P=W.length;P>U;U++)I=W[U],this.find(".pvtCols").append(this.find(".axis_"+t.inArray(I,E)));for(Y=T.rows,V=0,J=Y.length;J>V;V++)I=Y[V],this.find(".pvtRows").append(this.find(".axis_"+t.inArray(I,E)));null!=T.aggregatorName&&this.find(".pvtAggregator").val(T.aggregatorName),null!=T.rendererName&&this.find(".pvtRenderer").val(T.rendererName),y=!0,x=function(r){return function(){var a,o,i,s,u,c,p,h,d,g,m,v,b;if(p={derivedAttributes:T.derivedAttributes,localeStrings:T.localeStrings,rendererOptions:T.rendererOptions,sorters:T.sorters,cols:[],rows:[]},s=null!=(b=T.aggregators[l.val()]([])().numInputs)?b:0,d=[],r.find(".pvtRows li span.pvtAttr").each(function(){return p.rows.push(t(this).data("attrName"))}),r.find(".pvtCols li span.pvtAttr").each(function(){return p.cols.push(t(this).data("attrName"))}),r.find(".pvtVals select.pvtAttrDropdown").each(function(){return 0===s?t(this).remove():(s--,""!==t(this).val()?d.push(t(this).val()):void 0)}),0!==s)for(c=r.find(".pvtVals"),I=m=0;s>=0?s>m:m>s;I=s>=0?++m:--m){for(i=t("
"),F=t("").addClass("pvtAxisContainer pvtUnused"),E=function(){var t,n,r;for(r=[],t=0,n=L.length;n>t;t++)g=L[t],e.call(T.hiddenAttributes,g)<0&&r.push(g);return r}(),O=!1,"auto"===T.unusedAttrsVertical){for(c=0,H=0,B=E.length;B>H;H++)u=E[H],c+=u.length;O=c>120}m.addClass(T.unusedAttrsVertical===!0||O?"pvtVertList":"pvtHorizList"),K=function(n){var r,a,o,i,s,u,l,c,h,f,g,v,b,A,y;if(l=function(){var t;t=[];for(w in d[n])t.push(w);return t}(),u=!1,v=t("
").addClass("pvtFilterBox").hide(),v.append(t("

").text(""+n+" ("+l.length+")")),l.length>T.menuLimit)v.append(t("

").html(T.localeStrings.tooMany));else for(a=t("

").appendTo(v),a.append(t("

").addClass("pvtVals").appendTo(D).append(l).append(t("
")),t("
").addClass("pvtAxisContainer pvtHorizList pvtCols").appendTo(D),R=t("
").addClass("pvtAxisContainer pvtRows").attr("valign","top")),N=t("").attr("valign","top").addClass("pvtRendererArea").appendTo(R),T.unusedAttrsVertical===!0||O?(k.find("tr:nth-child(1)").prepend(M),k.find("tr:nth-child(2)").prepend(m)):k.prepend(t("
\").attr(\"cellpadding\", 5)\n\n #renderer control\n rendererControl = $(\"\").appendTo(uiTable)\n\n #aggregator menu and value area\n\n aggregator = $(\"\").appendTo(uiTable)\n\n #row axes\n tr2.append $(\"\").append(rendererControl).append(colList)\n\n #render the UI in its default state\n @html uiTable\n\n #set up the UI initial state as requested by moving elements around\n\n for x in opts.cols\n @find(\".pvtCols\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n for x in opts.rows\n @find(\".pvtRows\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n if opts.aggregatorName?\n @find(\".pvtAggregator\").val opts.aggregatorName\n if opts.rendererName?\n @find(\".pvtRenderer\").val opts.rendererName\n\n initialRender = true\n\n #set up for refreshing\n refreshDelayed = =>\n subopts =\n derivedAttributes: opts.derivedAttributes\n localeStrings: opts.localeStrings\n rendererOptions: opts.rendererOptions\n cols: [], rows: []\n\n numInputsToProcess = opts.aggregators[aggregator.val()]([])().numInputs ? 0\n vals = []\n @find(\".pvtRows li span.pvtAttr\").each -> subopts.rows.push $(this).data(\"attrName\")\n @find(\".pvtCols li span.pvtAttr\").each -> subopts.cols.push $(this).data(\"attrName\")\n @find(\".pvtVals select.pvtAttrDropdown\").each ->\n if numInputsToProcess == 0\n $(this).remove()\n else\n numInputsToProcess--\n vals.push $(this).val() if $(this).val() != \"\"\n\n if numInputsToProcess != 0\n pvtVals = @find(\".pvtVals\")\n for x in [0...numInputsToProcess]\n newDropdown = $(\"
\")\n\n renderer = $(\"\").addClass('pvtAxisContainer pvtUnused')\n shownAttributes = (c for c in tblCols when c not in opts.hiddenAttributes)\n\n unusedAttrsVerticalAutoOverride = false\n if opts.unusedAttrsVertical == \"auto\"\n attrLength = 0\n attrLength += a.length for a in shownAttributes\n unusedAttrsVerticalAutoOverride = attrLength > 120\n\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n colList.addClass('pvtVertList')\n else\n colList.addClass('pvtHorizList')\n\n for own i, c of shownAttributes\n do (c) ->\n keys = (k for k of axisValues[c])\n hasExcludedItem = false\n valueList = $(\"
\").addClass('pvtFilterBox').hide()\n\n valueList.append $(\"

\").text(\"#{c} (#{keys.length})\")\n if keys.length > opts.menuLimit\n valueList.append $(\"

\").html(opts.localeStrings.tooMany)\n else\n btns = $(\"

\").appendTo(valueList)\n btns.append $(\"

\").addClass('pvtVals')\n .appendTo(tr1)\n .append(aggregator)\n .append($(\"
\"))\n\n #column axes\n $(\"
\").addClass('pvtAxisContainer pvtHorizList pvtCols').appendTo(tr1)\n\n tr2 = $(\"
\").addClass('pvtAxisContainer pvtRows').attr(\"valign\", \"top\")\n\n #the actual pivot table container\n pivotTable = $(\"\")\n .attr(\"valign\", \"top\")\n .addClass('pvtRendererArea')\n .appendTo(tr2)\n\n #finally the renderer dropdown and unused attribs are inserted at the requested location\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n uiTable.find('tr:nth-child(1)').prepend rendererControl\n uiTable.find('tr:nth-child(2)').prepend colList\n else\n uiTable.prepend $(\"
\").attr(\"cellpadding\", 5)\n\n #renderer control\n rendererControl = $(\"\").appendTo(uiTable)\n\n #aggregator menu and value area\n\n aggregator = $(\"\").appendTo(uiTable)\n\n #row axes\n tr2.append $(\"\").append(rendererControl).append(colList)\n\n #render the UI in its default state\n @html uiTable\n\n #set up the UI initial state as requested by moving elements around\n\n for x in opts.cols\n @find(\".pvtCols\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n for x in opts.rows\n @find(\".pvtRows\").append @find(\".axis_#{$.inArray(x, shownAttributes)}\")\n if opts.aggregatorName?\n @find(\".pvtAggregator\").val opts.aggregatorName\n if opts.rendererName?\n @find(\".pvtRenderer\").val opts.rendererName\n\n initialRender = true\n\n #set up for refreshing\n refreshDelayed = =>\n subopts =\n derivedAttributes: opts.derivedAttributes\n localeStrings: opts.localeStrings\n rendererOptions: opts.rendererOptions\n sorters: opts.sorters\n cols: [], rows: []\n\n numInputsToProcess = opts.aggregators[aggregator.val()]([])().numInputs ? 0\n vals = []\n @find(\".pvtRows li span.pvtAttr\").each -> subopts.rows.push $(this).data(\"attrName\")\n @find(\".pvtCols li span.pvtAttr\").each -> subopts.cols.push $(this).data(\"attrName\")\n @find(\".pvtVals select.pvtAttrDropdown\").each ->\n if numInputsToProcess == 0\n $(this).remove()\n else\n numInputsToProcess--\n vals.push $(this).val() if $(this).val() != \"\"\n\n if numInputsToProcess != 0\n pvtVals = @find(\".pvtVals\")\n for x in [0...numInputsToProcess]\n newDropdown = $(\"
\")\n\n renderer = $(\"\").addClass('pvtAxisContainer pvtUnused')\n shownAttributes = (c for c in tblCols when c not in opts.hiddenAttributes)\n\n unusedAttrsVerticalAutoOverride = false\n if opts.unusedAttrsVertical == \"auto\"\n attrLength = 0\n attrLength += a.length for a in shownAttributes\n unusedAttrsVerticalAutoOverride = attrLength > 120\n\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n colList.addClass('pvtVertList')\n else\n colList.addClass('pvtHorizList')\n\n for own i, c of shownAttributes\n do (c) ->\n keys = (k for k of axisValues[c])\n hasExcludedItem = false\n valueList = $(\"
\").addClass('pvtFilterBox').hide()\n\n valueList.append $(\"

\").text(\"#{c} (#{keys.length})\")\n if keys.length > opts.menuLimit\n valueList.append $(\"

\").html(opts.localeStrings.tooMany)\n else\n btns = $(\"

\").appendTo(valueList)\n btns.append $(\"

\").addClass('pvtVals')\n .appendTo(tr1)\n .append(aggregator)\n .append($(\"
\"))\n\n #column axes\n $(\"
\").addClass('pvtAxisContainer pvtHorizList pvtCols').appendTo(tr1)\n\n tr2 = $(\"
\").addClass('pvtAxisContainer pvtRows').attr(\"valign\", \"top\")\n\n #the actual pivot table container\n pivotTable = $(\"\")\n .attr(\"valign\", \"top\")\n .addClass('pvtRendererArea')\n .appendTo(tr2)\n\n #finally the renderer dropdown and unused attribs are inserted at the requested location\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n uiTable.find('tr:nth-child(1)').prepend rendererControl\n uiTable.find('tr:nth-child(2)').prepend colList\n else\n uiTable.prepend $(\"