Commit b329ddae authored by Jérome Perrin's avatar Jérome Perrin

erp5_pivot_table: initial submission

parent 9b8ce3fa
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_pivot_table</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>pivottable</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>c3_renderers.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["c3_renderers.coffee"],"names":[],"mappings":"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","file":"c3_renderers.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 makeC3Chart = (chartOpts = {}) -> (pivotData, opts) ->\\n defaults =\\n localeStrings:\\n vs: \\"vs\\"\\n by: \\"by\\"\\n c3:\\n width: -> window.innerWidth / 1.4\\n height: -> window.innerHeight / 1.4\\n\\n opts = $.extend defaults, opts\\n chartOpts.type ?= \\"line\\"\\n\\n rowKeys = pivotData.getRowKeys()\\n rowKeys.push [] if rowKeys.length == 0\\n colKeys = pivotData.getColKeys()\\n colKeys.push [] if colKeys.length == 0\\n\\n headers = (h.join(\\"-\\") for h in colKeys)\\n\\n fullAggName = pivotData.aggregatorName \\n if pivotData.valAttrs.length\\n fullAggName += \\"(#{pivotData.valAttrs.join(\\", \\")})\\"\\n\\n if chartOpts.type == \\"scatter\\"\\n dataArray = []\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n vAxisTitle = pivotData.rowAttrs.join(\\"-\\")\\n for y, tree2 of pivotData.tree\\n for x, agg of tree2\\n datum = {}\\n datum[hAxisTitle] = parseFloat(x)\\n datum[vAxisTitle] = parseFloat(y)\\n datum[\\"tooltip\\"] = agg.format(agg.value())\\n dataArray.push datum\\n else\\n columns = []\\n for rowKey in rowKeys\\n rowHeader = rowKey.join(\\"-\\")\\n row = [if rowHeader == \\"\\" then pivotData.aggregatorName else rowHeader]\\n for colKey in colKeys\\n agg = pivotData.getAggregator(rowKey, colKey)\\n if agg.value()?\\n val = agg.value()\\n if $.isNumeric val\\n if val < 1\\n row.push parseFloat(val.toPrecision(3))\\n else\\n row.push parseFloat(val.toFixed(3))\\n else\\n row.push val\\n\\n else row.push null\\n columns.push row\\n\\n\\n vAxisTitle = pivotData.aggregatorName+ \\n if pivotData.valAttrs.length then \\"(#{pivotData.valAttrs.join(\\", \\")})\\" else \\"\\"\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n\\n params = \\n size:\\n height: opts.c3.height()\\n width: opts.c3.width()\\n axis: \\n y: label: vAxisTitle\\n x: label: hAxisTitle\\n data: \\n type: chartOpts.type\\n tooltip:\\n grouped: false\\n\\n if chartOpts.type == \\"scatter\\"\\n params.data.x = hAxisTitle\\n params.axis.x.tick = fit: false\\n params.data.json = dataArray\\n params.data.keys = value: [hAxisTitle,vAxisTitle]\\n params.legend = show: false \\n params.tooltip.format = \\n title: -> fullAggName\\n name: -> \\"\\"\\n value: (a,b,c,d) -> dataArray[d].tooltip\\n else\\n params.axis.x.type= \'category\'\\n params.axis.x.categories = headers\\n params.data.columns = columns\\n\\n\\n if chartOpts.stacked?\\n params.data.groups = [x.join(\\"-\\") for x in rowKeys]\\n renderArea = $(\\"<div>\\", style: \\"display:none;\\").appendTo $(\\"body\\")\\n result = $(\\"<div>\\").appendTo renderArea\\n params.bindto = result[0]\\n c3.generate params\\n result.detach()\\n renderArea.remove()\\n return result\\n\\n $.pivotUtilities.c3_renderers = \\n \\"Line Chart\\": makeC3Chart()\\n \\"Bar Chart\\": makeC3Chart(type: \\"bar\\")\\n \\"Stacked Bar Chart\\": makeC3Chart(type: \\"bar\\", stacked: true)\\n \\"Area Chart\\": makeC3Chart(type: \\"area\\", stacked: true)\\n \\"Scatter Chart\\": makeC3Chart(type: \\"scatter\\")\\n"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626242.82</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>c3_renderers.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
var makeC3Chart;\n
makeC3Chart = function(chartOpts) {\n
if (chartOpts == null) {\n
chartOpts = {};\n
}\n
return function(pivotData, opts) {\n
var agg, colKey, colKeys, columns, dataArray, datum, defaults, fullAggName, h, hAxisTitle, headers, i, j, len, len1, params, ref, renderArea, result, row, rowHeader, rowKey, rowKeys, tree2, vAxisTitle, val, x, y;\n
defaults = {\n
localeStrings: {\n
vs: "vs",\n
by: "by"\n
},\n
c3: {\n
width: function() {\n
return window.innerWidth / 1.4;\n
},\n
height: function() {\n
return window.innerHeight / 1.4;\n
}\n
}\n
};\n
opts = $.extend(defaults, opts);\n
if (chartOpts.type == null) {\n
chartOpts.type = "line";\n
}\n
rowKeys = pivotData.getRowKeys();\n
if (rowKeys.length === 0) {\n
rowKeys.push([]);\n
}\n
colKeys = pivotData.getColKeys();\n
if (colKeys.length === 0) {\n
colKeys.push([]);\n
}\n
headers = (function() {\n
var i, len, results;\n
results = [];\n
for (i = 0, len = colKeys.length; i < len; i++) {\n
h = colKeys[i];\n
results.push(h.join("-"));\n
}\n
return results;\n
})();\n
fullAggName = pivotData.aggregatorName;\n
if (pivotData.valAttrs.length) {\n
fullAggName += "(" + (pivotData.valAttrs.join(", ")) + ")";\n
}\n
if (chartOpts.type === "scatter") {\n
dataArray = [];\n
hAxisTitle = pivotData.colAttrs.join("-");\n
vAxisTitle = pivotData.rowAttrs.join("-");\n
ref = pivotData.tree;\n
for (y in ref) {\n
tree2 = ref[y];\n
for (x in tree2) {\n
agg = tree2[x];\n
datum = {};\n
datum[hAxisTitle] = parseFloat(x);\n
datum[vAxisTitle] = parseFloat(y);\n
datum["tooltip"] = agg.format(agg.value());\n
dataArray.push(datum);\n
}\n
}\n
} else {\n
columns = [];\n
for (i = 0, len = rowKeys.length; i < len; i++) {\n
rowKey = rowKeys[i];\n
rowHeader = rowKey.join("-");\n
row = [rowHeader === "" ? pivotData.aggregatorName : rowHeader];\n
for (j = 0, len1 = colKeys.length; j < len1; j++) {\n
colKey = colKeys[j];\n
agg = pivotData.getAggregator(rowKey, colKey);\n
if (agg.value() != null) {\n
val = agg.value();\n
if ($.isNumeric(val)) {\n
if (val < 1) {\n
row.push(parseFloat(val.toPrecision(3)));\n
} else {\n
row.push(parseFloat(val.toFixed(3)));\n
}\n
} else {\n
row.push(val);\n
}\n
} else {\n
row.push(null);\n
}\n
}\n
columns.push(row);\n
}\n
vAxisTitle = pivotData.aggregatorName + (pivotData.valAttrs.length ? "(" + (pivotData.valAttrs.join(", ")) + ")" : "");\n
hAxisTitle = pivotData.colAttrs.join("-");\n
}\n
params = {\n
size: {\n
height: opts.c3.height(),\n
width: opts.c3.width()\n
},\n
axis: {\n
y: {\n
label: vAxisTitle\n
},\n
x: {\n
label: hAxisTitle\n
}\n
},\n
data: {\n
type: chartOpts.type\n
},\n
tooltip: {\n
grouped: false\n
}\n
};\n
if (chartOpts.type === "scatter") {\n
params.data.x = hAxisTitle;\n
params.axis.x.tick = {\n
fit: false\n
};\n
params.data.json = dataArray;\n
params.data.keys = {\n
value: [hAxisTitle, vAxisTitle]\n
};\n
params.legend = {\n
show: false\n
};\n
params.tooltip.format = {\n
title: function() {\n
return fullAggName;\n
},\n
name: function() {\n
return "";\n
},\n
value: function(a, b, c, d) {\n
return dataArray[d].tooltip;\n
}\n
};\n
} else {\n
params.axis.x.type = \'category\';\n
params.axis.x.categories = headers;\n
params.data.columns = columns;\n
}\n
if (chartOpts.stacked != null) {\n
params.data.groups = [\n
(function() {\n
var k, len2, results;\n
results = [];\n
for (k = 0, len2 = rowKeys.length; k < len2; k++) {\n
x = rowKeys[k];\n
results.push(x.join("-"));\n
}\n
return results;\n
})()\n
];\n
}\n
renderArea = $("<div>", {\n
style: "display:none;"\n
}).appendTo($("body"));\n
result = $("<div>").appendTo(renderArea);\n
params.bindto = result[0];\n
c3.generate(params);\n
result.detach();\n
renderArea.remove();\n
return result;\n
};\n
};\n
return $.pivotUtilities.c3_renderers = {\n
"Line Chart": makeC3Chart(),\n
"Bar Chart": makeC3Chart({\n
type: "bar"\n
}),\n
"Stacked Bar Chart": makeC3Chart({\n
type: "bar",\n
stacked: true\n
}),\n
"Area Chart": makeC3Chart({\n
type: "area",\n
stacked: true\n
}),\n
"Scatter Chart": makeC3Chart({\n
type: "scatter"\n
})\n
};\n
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=c3_renderers.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>5972</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>c3_renderers.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/c3_renderers.coffee","c3_renderers.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","makeC3Chart","chartOpts","pivotData","opts","agg","colKey","colKeys","columns","dataArray","datum","defaults","fullAggName","h","hAxisTitle","headers","i","j","len","len1","params","ref","renderArea","result","row","rowHeader","rowKey","rowKeys","tree2","vAxisTitle","val","x","y","localeStrings","vs","by","c3","width","window","innerWidth","height","innerHeight","extend","type","getRowKeys","length","push","getColKeys","results","join","aggregatorName","valAttrs","colAttrs","rowAttrs","tree","parseFloat","format","value","getAggregator","isNumeric","toPrecision","toFixed","size","axis","label","data","tooltip","grouped","tick","fit","json","keys","legend","show","title","name","a","b","c","d","categories","stacked","groups","k","len2","style","appendTo","bindto","generate","detach","remove","pivotUtilities","c3_renderers","Line Chart","Bar Chart","Stacked Bar Chart","Area Chart","Scatter Chart","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,WACC,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GAEZ,GAAAC,ECsKA,ODtKAA,GAAc,SAACC,GCQb,MAHiB,OAAbA,IDLSA,MAAmB,SAACC,EAAWC,GAC1C,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAsBA,IAtBArB,GACIsB,eACIC,GAAI,KACJC,GAAI,MACRC,IACIC,MAAO,WCWT,MDXYC,QAAOC,WAAa,KAC9BC,OAAQ,WCaV,MDbaF,QAAOG,YAAc,OAExCrC,EAAOJ,EAAE0C,OAAO/B,EAAUP,GCgBJ,MAAlBF,EAAUyC,ODfdzC,EAAUyC,KAAQ,QAElBhB,EAAUxB,EAAUyC,aACiB,IAAlBjB,EAAQkB,QAA3BlB,EAAQmB,SACRvC,EAAUJ,EAAU4C,aACiB,IAAlBxC,EAAQsC,QAA3BtC,EAAQuC,SAER/B,EAAA,WCoBE,GAAIC,GAAGE,EAAK8B,CAEZ,KDtBSA,KAAAhC,EAAA,EAAAE,EAAAX,EAAAsC,OAAA3B,EAAAF,EAAAA,ICuBPH,EAAIN,EAAQS,GDvBLgC,EAAAF,KAAAjC,EAAEoC,KAAK,KC0BhB,OAAOD,MDxBTpC,EAAcT,EAAU+C,eACrB/C,EAAUgD,SAASN,SAClBjC,GAAe,IAAIT,EAAUgD,SAASF,KAAK,MAAM,KAEhC,YAAlB/C,EAAUyC,KAAb,CACIlC,KACAK,EAAaX,EAAUiD,SAASH,KAAK,KACrCpB,EAAa1B,EAAUkD,SAASJ,KAAK,KACrC5B,EAAAlB,EAAAmD,IAAA,KAAAtB,IAAAX,GAAA,CC4BAO,EAAQP,EAAIW,ED3BR,KAAAD,IAAAH,GC6BFvB,EAAMuB,EAAMG,GD5BNrB,KACAA,EAAMI,GAAcyC,WAAWxB,GAC/BrB,EAAMmB,GAAc0B,WAAWvB,GAC/BtB,EAAM,QAAaL,EAAImD,OAAOnD,EAAIoD,SAClChD,EAAUqC,KAAKpC,QAV3B,CAaI,IADAF,KACAQ,EAAA,EAAAE,EAAAS,EAAAkB,OAAA3B,EAAAF,EAAAA,IAAA,CAGI,IC6BJU,EAASC,EAAQX,GD/BbS,EAAYC,EAAOuB,KAAK,KACxBzB,GAAuB,KAAbC,EAAqBtB,EAAU+C,eAAoBzB,GAC7DR,EAAA,EAAAE,EAAAZ,EAAAsC,OAAA1B,EAAAF,EAAAA,ICiCFX,EAASC,EAAQU,GDhCXZ,EAAMF,EAAUuD,cAAchC,EAAQpB,GACnC,MAAAD,EAAAoD,SACC3B,EAAMzB,EAAIoD,QAGFjC,EAAIsB,KAFT9C,EAAE2D,UAAU7B,GACF,EAANA,EACUyB,WAAWzB,EAAI8B,YAAY,IAE3BL,WAAWzB,EAAI+B,QAAQ,IAE3B/B,IAEZN,EAAIsB,KAAK,KAClBtC,GAAQsC,KAAKtB,GAGjBK,EAAa1B,EAAU+C,gBAChB/C,EAAUgD,SAASN,OAAY,IAAI1C,EAAUgD,SAASF,KAAK,MAAM,IAAQ,IAChFnC,EAAaX,EAAUiD,SAASH,KAAK,KAsCzC,MApCA7B,IACI0C,MACItB,OAAQpC,EAAKgC,GAAGI,SAChBH,MAAOjC,EAAKgC,GAAGC,SACnB0B,MACI/B,GAAGgC,MAAOnC,GACVE,GAAGiC,MAAOlD,IACdmD,MACItB,KAAMzC,EAAUyC,MACpBuB,SACIC,SAAS,IAEI,YAAlBjE,EAAUyC,MACTvB,EAAO6C,KAAKlC,EAAIjB,EAChBM,EAAO2C,KAAKhC,EAAEqC,MAAOC,KAAK,GAC1BjD,EAAO6C,KAAKK,KAAO7D,EACnBW,EAAO6C,KAAKM,MAAOd,OAAQ3C,EAAWe,IACtCT,EAAOoD,QAASC,MAAM,GACtBrD,EAAO8C,QAAQV,QACXkB,MAAO,WCkDT,MDlDY9D,IACV+D,KAAM,WCoDR,MDpDW,IACTlB,MAAO,SAACmB,EAAEC,EAAEC,EAAEC,GCsDhB,MDtDsBtE,GAAUsE,GAAGb,YAErC9C,EAAO2C,KAAKhC,EAAEY,KAAM,WACpBvB,EAAO2C,KAAKhC,EAAEiD,WAAajE,EAC3BK,EAAO6C,KAAKzD,QAAUA,GAGvB,MAAAN,EAAA+E,UACC7D,EAAO6C,KAAKiB,QCwDZ,WACE,GAAIC,GAAGC,EAAMpC,CAEb,KD3DoBA,KAAAmC,EAAA,EAAAC,EAAAzD,EAAAkB,OAAAuC,EAAAD,EAAAA,IC4DlBpD,EAAIJ,EAAQwD,GD5DMnC,EAAAF,KAAAf,EAAEkB,KAAK,KC+D3B,OAAOD,QD9Db1B,EAAatB,EAAE,SAASqF,MAAO,kBAAiBC,SAAStF,EAAE,SAC3DuB,EAASvB,EAAE,SAASsF,SAAShE,GAC7BF,EAAOmE,OAAShE,EAAO,GACvBa,GAAGoD,SAASpE,GACZG,EAAOkE,SACPnE,EAAWoE,SACJnE,IAEXvB,EAAE2F,eAAeC,cACbC,aAAc5F,IACd6F,YAAa7F,GAAY0C,KAAM,QAC/BoD,oBAAqB9F,GAAY0C,KAAM,MAAOsC,SAAS,IACvDe,aAAc/F,GAAY0C,KAAM,OAAQsC,SAAS,IACjDgB,gBAAiBhG,GAAY0C,KAAM,iBCmFxCuD,KAAKC","file":"c3_renderers.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\\n makeC3Chart = (chartOpts = {}) -> (pivotData, opts) ->\\n defaults =\\n localeStrings:\\n vs: \\"vs\\"\\n by: \\"by\\"\\n c3:\\n width: -> window.innerWidth / 1.4\\n height: -> window.innerHeight / 1.4\\n\\n opts = $.extend defaults, opts\\n chartOpts.type ?= \\"line\\"\\n\\n rowKeys = pivotData.getRowKeys()\\n rowKeys.push [] if rowKeys.length == 0\\n colKeys = pivotData.getColKeys()\\n colKeys.push [] if colKeys.length == 0\\n\\n headers = (h.join(\\"-\\") for h in colKeys)\\n\\n fullAggName = pivotData.aggregatorName \\n if pivotData.valAttrs.length\\n fullAggName += \\"(#{pivotData.valAttrs.join(\\", \\")})\\"\\n\\n if chartOpts.type == \\"scatter\\"\\n dataArray = []\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n vAxisTitle = pivotData.rowAttrs.join(\\"-\\")\\n for y, tree2 of pivotData.tree\\n for x, agg of tree2\\n datum = {}\\n datum[hAxisTitle] = parseFloat(x)\\n datum[vAxisTitle] = parseFloat(y)\\n datum[\\"tooltip\\"] = agg.format(agg.value())\\n dataArray.push datum\\n else\\n columns = []\\n for rowKey in rowKeys\\n rowHeader = rowKey.join(\\"-\\")\\n row = [if rowHeader == \\"\\" then pivotData.aggregatorName else rowHeader]\\n for colKey in colKeys\\n agg = pivotData.getAggregator(rowKey, colKey)\\n if agg.value()?\\n val = agg.value()\\n if $.isNumeric val\\n if val < 1\\n row.push parseFloat(val.toPrecision(3))\\n else\\n row.push parseFloat(val.toFixed(3))\\n else\\n row.push val\\n\\n else row.push null\\n columns.push row\\n\\n\\n vAxisTitle = pivotData.aggregatorName+ \\n if pivotData.valAttrs.length then \\"(#{pivotData.valAttrs.join(\\", \\")})\\" else \\"\\"\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n\\n params = \\n size:\\n height: opts.c3.height()\\n width: opts.c3.width()\\n axis: \\n y: label: vAxisTitle\\n x: label: hAxisTitle\\n data: \\n type: chartOpts.type\\n tooltip:\\n grouped: false\\n\\n if chartOpts.type == \\"scatter\\"\\n params.data.x = hAxisTitle\\n params.axis.x.tick = fit: false\\n params.data.json = dataArray\\n params.data.keys = value: [hAxisTitle,vAxisTitle]\\n params.legend = show: false \\n params.tooltip.format = \\n title: -> fullAggName\\n name: -> \\"\\"\\n value: (a,b,c,d) -> dataArray[d].tooltip\\n else\\n params.axis.x.type= \'category\'\\n params.axis.x.categories = headers\\n params.data.columns = columns\\n\\n\\n if chartOpts.stacked?\\n params.data.groups = [x.join(\\"-\\") for x in rowKeys]\\n renderArea = $(\\"<div>\\", style: \\"display:none;\\").appendTo $(\\"body\\")\\n result = $(\\"<div>\\").appendTo renderArea\\n params.bindto = result[0]\\n c3.generate params\\n result.detach()\\n renderArea.remove()\\n return result\\n\\n $.pivotUtilities.c3_renderers = \\n \\"Line Chart\\": makeC3Chart()\\n \\"Bar Chart\\": makeC3Chart(type: \\"bar\\")\\n \\"Stacked Bar Chart\\": makeC3Chart(type: \\"bar\\", stacked: true)\\n \\"Area Chart\\": makeC3Chart(type: \\"area\\", stacked: true)\\n \\"Scatter Chart\\": makeC3Chart(type: \\"scatter\\")\\n","(function(){var t;(t=function(t){return\\"object\\"==typeof exports&&\\"object\\"==typeof module?t(require(\\"jquery\\")):\\"function\\"==typeof define&&define.amd?define([\\"jquery\\"],t):t(jQuery)})(function(t){var e;return e=function(e){return null==e&&(e={}),function(r,n){var a,o,i,l,u,s,c,p,h,d,g,f,y,v,j,x,m,b,w,A,k,C,F,N,q,S,B,K;if(c={localeStrings:{vs:\\"vs\\",by:\\"by\\"},c3:{width:function(){return window.innerWidth/1.4},height:function(){return window.innerHeight/1.4}}},n=t.extend(c,n),null==e.type&&(e.type=\\"line\\"),F=r.getRowKeys(),0===F.length&&F.push([]),i=r.getColKeys(),0===i.length&&i.push([]),g=function(){var t,e,r;for(r=[],t=0,e=i.length;e>t;t++)h=i[t],r.push(h.join(\\"-\\"));return r}(),p=r.aggregatorName,r.valAttrs.length&&(p+=\\"(\\"+r.valAttrs.join(\\", \\")+\\")\\"),\\"scatter\\"===e.type){u=[],d=r.colAttrs.join(\\"-\\"),q=r.rowAttrs.join(\\"-\\"),m=r.tree;for(K in m){N=m[K];for(B in N)a=N[B],s={},s[d]=parseFloat(B),s[q]=parseFloat(K),s.tooltip=a.format(a.value()),u.push(s)}}else{for(l=[],f=0,v=F.length;v>f;f++){for(C=F[f],k=C.join(\\"-\\"),A=[\\"\\"===k?r.aggregatorName:k],y=0,j=i.length;j>y;y++)o=i[y],a=r.getAggregator(C,o),null!=a.value()?(S=a.value(),A.push(t.isNumeric(S)?1>S?parseFloat(S.toPrecision(3)):parseFloat(S.toFixed(3)):S)):A.push(null);l.push(A)}q=r.aggregatorName+(r.valAttrs.length?\\"(\\"+r.valAttrs.join(\\", \\")+\\")\\":\\"\\"),d=r.colAttrs.join(\\"-\\")}return x={size:{height:n.c3.height(),width:n.c3.width()},axis:{y:{label:q},x:{label:d}},data:{type:e.type},tooltip:{grouped:!1}},\\"scatter\\"===e.type?(x.data.x=d,x.axis.x.tick={fit:!1},x.data.json=u,x.data.keys={value:[d,q]},x.legend={show:!1},x.tooltip.format={title:function(){return p},name:function(){return\\"\\"},value:function(t,e,r,n){return u[n].tooltip}}):(x.axis.x.type=\\"category\\",x.axis.x.categories=g,x.data.columns=l),null!=e.stacked&&(x.data.groups=[function(){var t,e,r;for(r=[],t=0,e=F.length;e>t;t++)B=F[t],r.push(B.join(\\"-\\"));return r}()]),b=t(\\"<div>\\",{style:\\"display:none;\\"}).appendTo(t(\\"body\\")),w=t(\\"<div>\\").appendTo(b),x.bindto=w[0],c3.generate(x),w.detach(),b.remove(),w}},t.pivotUtilities.c3_renderers={\\"Line Chart\\":e(),\\"Bar Chart\\":e({type:\\"bar\\"}),\\"Stacked Bar Chart\\":e({type:\\"bar\\",stacked:!0}),\\"Area Chart\\":e({type:\\"area\\",stacked:!0}),\\"Scatter Chart\\":e({type:\\"scatter\\"})}})}).call(this);\\n//# sourceMappingURL=c3_renderers.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626240.61</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>c3_renderers.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function(){var t;(t=function(t){return"object"==typeof exports&&"object"==typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){var e;return e=function(e){return null==e&&(e={}),function(r,n){var a,o,i,l,u,s,c,p,h,d,g,f,y,v,j,x,m,b,w,A,k,C,F,N,q,S,B,K;if(c={localeStrings:{vs:"vs",by:"by"},c3:{width:function(){return window.innerWidth/1.4},height:function(){return window.innerHeight/1.4}}},n=t.extend(c,n),null==e.type&&(e.type="line"),F=r.getRowKeys(),0===F.length&&F.push([]),i=r.getColKeys(),0===i.length&&i.push([]),g=function(){var t,e,r;for(r=[],t=0,e=i.length;e>t;t++)h=i[t],r.push(h.join("-"));return r}(),p=r.aggregatorName,r.valAttrs.length&&(p+="("+r.valAttrs.join(", ")+")"),"scatter"===e.type){u=[],d=r.colAttrs.join("-"),q=r.rowAttrs.join("-"),m=r.tree;for(K in m){N=m[K];for(B in N)a=N[B],s={},s[d]=parseFloat(B),s[q]=parseFloat(K),s.tooltip=a.format(a.value()),u.push(s)}}else{for(l=[],f=0,v=F.length;v>f;f++){for(C=F[f],k=C.join("-"),A=[""===k?r.aggregatorName:k],y=0,j=i.length;j>y;y++)o=i[y],a=r.getAggregator(C,o),null!=a.value()?(S=a.value(),A.push(t.isNumeric(S)?1>S?parseFloat(S.toPrecision(3)):parseFloat(S.toFixed(3)):S)):A.push(null);l.push(A)}q=r.aggregatorName+(r.valAttrs.length?"("+r.valAttrs.join(", ")+")":""),d=r.colAttrs.join("-")}return x={size:{height:n.c3.height(),width:n.c3.width()},axis:{y:{label:q},x:{label:d}},data:{type:e.type},tooltip:{grouped:!1}},"scatter"===e.type?(x.data.x=d,x.axis.x.tick={fit:!1},x.data.json=u,x.data.keys={value:[d,q]},x.legend={show:!1},x.tooltip.format={title:function(){return p},name:function(){return""},value:function(t,e,r,n){return u[n].tooltip}}):(x.axis.x.type="category",x.axis.x.categories=g,x.data.columns=l),null!=e.stacked&&(x.data.groups=[function(){var t,e,r;for(r=[],t=0,e=F.length;e>t;t++)B=F[t],r.push(B.join("-"));return r}()]),b=t("<div>",{style:"display:none;"}).appendTo(t("body")),w=t("<div>").appendTo(b),x.bindto=w[0],c3.generate(x),w.detach(),b.remove(),w}},t.pivotUtilities.c3_renderers={"Line Chart":e(),"Bar Chart":e({type:"bar"}),"Stacked Bar Chart":e({type:"bar",stacked:!0}),"Area Chart":e({type:"area",stacked:!0}),"Scatter Chart":e({type:"scatter"})}})}).call(this);\n
//# sourceMappingURL=c3_renderers.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>2283</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>d3_renderers.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["d3_renderers.coffee"],"names":[],"mappings":"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","file":"d3_renderers.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 $.pivotUtilities.d3_renderers = Treemap: (pivotData, opts) ->\\n defaults =\\n localeStrings: {}\\n d3:\\n width: -> $(window).width() / 1.4\\n height: -> $(window).height() / 1.4\\n\\n opts = $.extend defaults, opts\\n\\n\\n result = $(\\"<div>\\").css(width: \\"100%\\", height: \\"100%\\")\\n\\n tree = name: \\"All\\", children: []\\n addToTree = (tree, path, value) ->\\n if path.length == 0\\n tree.value = value\\n return\\n tree.children ?= []\\n x = path.shift()\\n for child in tree.children when child.name == x\\n addToTree(child, path, value)\\n return\\n newChild = name: x\\n addToTree(newChild, path, value)\\n tree.children.push newChild\\n\\n for rowKey in pivotData.getRowKeys()\\n value = pivotData.getAggregator(rowKey, []).value()\\n if value?\\n addToTree(tree, rowKey, value)\\n\\n color = d3.scale.category10()\\n width = opts.d3.width()\\n height = opts.d3.height()\\n\\n treemap = d3.layout.treemap()\\n .size([width, height])\\n .sticky(true)\\n .value( (d) -> d.size )\\n\\n d3.select(result[0])\\n .append(\\"div\\")\\n .style(\\"position\\", \\"relative\\")\\n .style(\\"width\\", width + \\"px\\")\\n .style(\\"height\\", height + \\"px\\")\\n .datum(tree).selectAll(\\".node\\")\\n .data(treemap.padding([15,0,0,0]).value( (d) -> d.value ).nodes)\\n .enter().append(\\"div\\")\\n .attr(\\"class\\", \\"node\\")\\n .style(\\"background\\", (d) -> if d.children? then \\"lightgrey\\" else color(d.name) )\\n .text( (d) -> d.name )\\n .call ->\\n this.style(\\"left\\", (d) -> d.x+\\"px\\" )\\n .style(\\"top\\", (d) -> d.y+\\"px\\" )\\n .style(\\"width\\", (d) -> Math.max(0, d.dx - 1)+\\"px\\" )\\n .style(\\"height\\",(d) -> Math.max(0, d.dy - 1)+\\"px\\" )\\n return\\n \\n return result\\n \\n\\n\\n"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626250.2</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>d3_renderers.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
return $.pivotUtilities.d3_renderers = {\n
Treemap: function(pivotData, opts) {\n
var addToTree, color, defaults, height, i, len, ref, result, rowKey, tree, treemap, value, width;\n
defaults = {\n
localeStrings: {},\n
d3: {\n
width: function() {\n
return $(window).width() / 1.4;\n
},\n
height: function() {\n
return $(window).height() / 1.4;\n
}\n
}\n
};\n
opts = $.extend(defaults, opts);\n
result = $("<div>").css({\n
width: "100%",\n
height: "100%"\n
});\n
tree = {\n
name: "All",\n
children: []\n
};\n
addToTree = function(tree, path, value) {\n
var child, i, len, newChild, ref, x;\n
if (path.length === 0) {\n
tree.value = value;\n
return;\n
}\n
if (tree.children == null) {\n
tree.children = [];\n
}\n
x = path.shift();\n
ref = tree.children;\n
for (i = 0, len = ref.length; i < len; i++) {\n
child = ref[i];\n
if (!(child.name === x)) {\n
continue;\n
}\n
addToTree(child, path, value);\n
return;\n
}\n
newChild = {\n
name: x\n
};\n
addToTree(newChild, path, value);\n
return tree.children.push(newChild);\n
};\n
ref = pivotData.getRowKeys();\n
for (i = 0, len = ref.length; i < len; i++) {\n
rowKey = ref[i];\n
value = pivotData.getAggregator(rowKey, []).value();\n
if (value != null) {\n
addToTree(tree, rowKey, value);\n
}\n
}\n
color = d3.scale.category10();\n
width = opts.d3.width();\n
height = opts.d3.height();\n
treemap = d3.layout.treemap().size([width, height]).sticky(true).value(function(d) {\n
return d.size;\n
});\n
d3.select(result[0]).append("div").style("position", "relative").style("width", width + "px").style("height", height + "px").datum(tree).selectAll(".node").data(treemap.padding([15, 0, 0, 0]).value(function(d) {\n
return d.value;\n
}).nodes).enter().append("div").attr("class", "node").style("background", function(d) {\n
if (d.children != null) {\n
return "lightgrey";\n
} else {\n
return color(d.name);\n
}\n
}).text(function(d) {\n
return d.name;\n
}).call(function() {\n
this.style("left", function(d) {\n
return d.x + "px";\n
}).style("top", function(d) {\n
return d.y + "px";\n
}).style("width", function(d) {\n
return Math.max(0, d.dx - 1) + "px";\n
}).style("height", function(d) {\n
return Math.max(0, d.dy - 1) + "px";\n
});\n
});\n
return result;\n
}\n
};\n
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=d3_renderers.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3334</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>d3_renderers.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/d3_renderers.coffee","d3_renderers.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","pivotUtilities","d3_renderers","Treemap","pivotData","opts","addToTree","color","defaults","height","i","len","ref","result","rowKey","tree","treemap","value","width","localeStrings","d3","window","extend","css","name","children","path","child","newChild","x","length","shift","push","getRowKeys","getAggregator","scale","category10","layout","size","sticky","d","select","append","style","datum","selectAll","data","padding","nodes","enter","attr","text","call","this","y","Math","max","dx","dy"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,WACC,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GCKZ,MDHAA,GAAEC,eAAeC,cAAeC,QAAS,SAACC,EAAWC,GACjD,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAyBA,KAzBAV,GACIW,iBACAC,IACIF,MAAO,WCMT,MDNYlB,GAAEqB,QAAQH,QAAU,KAC9BT,OAAQ,WCQV,MDRaT,GAAEqB,QAAQZ,SAAW,OAExCJ,EAAOL,EAAEsB,OAAOd,EAAUH,GAG1BQ,EAASb,EAAE,SAASuB,KAAIL,MAAO,OAAQT,OAAQ,SAE/CM,GAAOS,KAAM,MAAOC,aACpBnB,EAAY,SAACS,EAAMW,EAAMT,GACrB,GAAAU,GAAAjB,EAAAC,EAAAiB,EAAAhB,EAAAiB,CAAA,IAAkB,IAAfH,EAAKI,OAEJ,YADAf,EAAKE,MAAQA,EAIjB,KCamB,MAAjBF,EAAKU,WDfPV,EAAKU,aACLI,EAAIH,EAAKK,QACTnB,EAAAG,EAAAU,SAAAf,EAAA,EAAAC,EAAAC,EAAAkB,OAAAnB,EAAAD,EAAAA,ICoBA,GADAiB,EAAQf,EAAIF,GDnBoBiB,EAAMH,OAAQK,EAE1C,WADAvB,GAAUqB,EAAOD,EAAMT,EC6B7B,OD3BEW,IAAWJ,KAAMK,GACjBvB,EAAUsB,EAAUF,EAAMT,GAC1BF,EAAKU,SAASO,KAAKJ,IAEvBhB,EAAAR,EAAA6B,aAAAvB,EAAA,EAAAC,EAAAC,EAAAkB,OAAAnB,EAAAD,EAAAA,IC2BEI,EAASF,EAAIF,GD1BXO,EAAQb,EAAU8B,cAAcpB,MAAYG,QACzC,MAAAA,GACCX,EAAUS,EAAMD,EAAQG,EA6BhC,OA3BAV,GAAQa,GAAGe,MAAMC,aACjBlB,EAAQb,EAAKe,GAAGF,QAChBT,EAASJ,EAAKe,GAAGX,SAEjBO,EAAUI,GAAGiB,OAAOrB,UACfsB,MAAMpB,EAAOT,IACb8B,QAAO,GACPtB,MAAO,SAACuB,GCyBX,MDzBiBA,GAAEF,OAErBlB,GAAGqB,OAAO5B,EAAO,IACZ6B,OAAO,OACHC,MAAM,WAAY,YAClBA,MAAM,QAASzB,EAAQ,MACvByB,MAAM,SAAUlC,EAAS,MAC7BmC,MAAM7B,GAAM8B,UAAU,SAClBC,KAAK9B,EAAQ+B,SAAS,GAAG,EAAE,EAAE,IAAI9B,MAAO,SAACuB,GCoBhD,MDpBsDA,GAAEvB,QAAQ+B,OAC7DC,QAAQP,OAAO,OACfQ,KAAK,QAAS,QACdP,MAAM,aAAc,SAACH,GAAM,MAAG,OAAAA,EAAAf,SAAiB,YAAiBlB,EAAMiC,EAAEhB,QACxE2B,KAAM,SAACX,GCwBV,MDxBgBA,GAAEhB,OACf4B,KAAK,WACEC,KAAKV,MAAM,OAAS,SAACH,GCyB7B,MDzBmCA,GAAEX,EAAE,OAC1Bc,MAAM,MAAS,SAACH,GC0B7B,MD1BmCA,GAAEc,EAAE,OAC1BX,MAAM,QAAS,SAACH,GC2B7B,MD3BmCe,MAAKC,IAAI,EAAGhB,EAAEiB,GAAK,GAAG,OAC5Cd,MAAM,SAAS,SAACH,GC4B7B,MD5BmCe,MAAKC,IAAI,EAAGhB,EAAEkB,GAAK,GAAG,SAGtD7C,QCiCZuC,KAAKC","file":"d3_renderers.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\\n $.pivotUtilities.d3_renderers = Treemap: (pivotData, opts) ->\\n defaults =\\n localeStrings: {}\\n d3:\\n width: -> $(window).width() / 1.4\\n height: -> $(window).height() / 1.4\\n\\n opts = $.extend defaults, opts\\n\\n\\n result = $(\\"<div>\\").css(width: \\"100%\\", height: \\"100%\\")\\n\\n tree = name: \\"All\\", children: []\\n addToTree = (tree, path, value) ->\\n if path.length == 0\\n tree.value = value\\n return\\n tree.children ?= []\\n x = path.shift()\\n for child in tree.children when child.name == x\\n addToTree(child, path, value)\\n return\\n newChild = name: x\\n addToTree(newChild, path, value)\\n tree.children.push newChild\\n\\n for rowKey in pivotData.getRowKeys()\\n value = pivotData.getAggregator(rowKey, []).value()\\n if value?\\n addToTree(tree, rowKey, value)\\n\\n color = d3.scale.category10()\\n width = opts.d3.width()\\n height = opts.d3.height()\\n\\n treemap = d3.layout.treemap()\\n .size([width, height])\\n .sticky(true)\\n .value( (d) -> d.size )\\n\\n d3.select(result[0])\\n .append(\\"div\\")\\n .style(\\"position\\", \\"relative\\")\\n .style(\\"width\\", width + \\"px\\")\\n .style(\\"height\\", height + \\"px\\")\\n .datum(tree).selectAll(\\".node\\")\\n .data(treemap.padding([15,0,0,0]).value( (d) -> d.value ).nodes)\\n .enter().append(\\"div\\")\\n .attr(\\"class\\", \\"node\\")\\n .style(\\"background\\", (d) -> if d.children? then \\"lightgrey\\" else color(d.name) )\\n .text( (d) -> d.name )\\n .call ->\\n this.style(\\"left\\", (d) -> d.x+\\"px\\" )\\n .style(\\"top\\", (d) -> d.y+\\"px\\" )\\n .style(\\"width\\", (d) -> Math.max(0, d.dx - 1)+\\"px\\" )\\n .style(\\"height\\",(d) -> Math.max(0, d.dy - 1)+\\"px\\" )\\n return\\n \\n return result\\n \\n\\n\\n","(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){return e.pivotUtilities.d3_renderers={Treemap:function(t,n){var i,r,u,l,d,o,a,c,h,f,s,p,y;for(u={localeStrings:{},d3:{width:function(){return e(window).width()/1.4},height:function(){return e(window).height()/1.4}}},n=e.extend(u,n),c=e(\\"<div>\\").css({width:\\"100%\\",height:\\"100%\\"}),f={name:\\"All\\",children:[]},i=function(e,t,n){var r,u,l,d,o,a;if(0===t.length)return void(e.value=n);for(null==e.children&&(e.children=[]),a=t.shift(),o=e.children,u=0,l=o.length;l>u;u++)if(r=o[u],r.name===a)return void i(r,t,n);return d={name:a},i(d,t,n),e.children.push(d)},a=t.getRowKeys(),d=0,o=a.length;o>d;d++)h=a[d],p=t.getAggregator(h,[]).value(),null!=p&&i(f,h,p);return r=d3.scale.category10(),y=n.d3.width(),l=n.d3.height(),s=d3.layout.treemap().size([y,l]).sticky(!0).value(function(e){return e.size}),d3.select(c[0]).append(\\"div\\").style(\\"position\\",\\"relative\\").style(\\"width\\",y+\\"px\\").style(\\"height\\",l+\\"px\\").datum(f).selectAll(\\".node\\").data(s.padding([15,0,0,0]).value(function(e){return e.value}).nodes).enter().append(\\"div\\").attr(\\"class\\",\\"node\\").style(\\"background\\",function(e){return null!=e.children?\\"lightgrey\\":r(e.name)}).text(function(e){return e.name}).call(function(){this.style(\\"left\\",function(e){return e.x+\\"px\\"}).style(\\"top\\",function(e){return e.y+\\"px\\"}).style(\\"width\\",function(e){return Math.max(0,e.dx-1)+\\"px\\"}).style(\\"height\\",function(e){return Math.max(0,e.dy-1)+\\"px\\"})}),c}}})}).call(this);\\n//# sourceMappingURL=d3_renderers.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626244.86</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>d3_renderers.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(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){return e.pivotUtilities.d3_renderers={Treemap:function(t,n){var i,r,u,l,d,o,a,c,h,f,s,p,y;for(u={localeStrings:{},d3:{width:function(){return e(window).width()/1.4},height:function(){return e(window).height()/1.4}}},n=e.extend(u,n),c=e("<div>").css({width:"100%",height:"100%"}),f={name:"All",children:[]},i=function(e,t,n){var r,u,l,d,o,a;if(0===t.length)return void(e.value=n);for(null==e.children&&(e.children=[]),a=t.shift(),o=e.children,u=0,l=o.length;l>u;u++)if(r=o[u],r.name===a)return void i(r,t,n);return d={name:a},i(d,t,n),e.children.push(d)},a=t.getRowKeys(),d=0,o=a.length;o>d;d++)h=a[d],p=t.getAggregator(h,[]).value(),null!=p&&i(f,h,p);return r=d3.scale.category10(),y=n.d3.width(),l=n.d3.height(),s=d3.layout.treemap().size([y,l]).sticky(!0).value(function(e){return e.size}),d3.select(c[0]).append("div").style("position","relative").style("width",y+"px").style("height",l+"px").datum(f).selectAll(".node").data(s.padding([15,0,0,0]).value(function(e){return e.value}).nodes).enter().append("div").attr("class","node").style("background",function(e){return null!=e.children?"lightgrey":r(e.name)}).text(function(e){return e.name}).call(function(){this.style("left",function(e){return e.x+"px"}).style("top",function(e){return e.y+"px"}).style("width",function(e){return Math.max(0,e.dx-1)+"px"}).style("height",function(e){return Math.max(0,e.dy-1)+"px"})}),c}}})}).call(this);\n
//# sourceMappingURL=d3_renderers.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>1632</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>export_renderers.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["export_renderers.coffee"],"names":[],"mappings":"AAAA;AAAA,MAAA,cAAA;;AAAA,EAAA,cAAA,GAAiB,SAAC,WAAD,GAAA;AACb,IAAA,IAAG,MAAA,CAAA,OAAA,KAAkB,QAAlB,IAA+B,MAAA,CAAA,MAAA,KAAiB,QAAnD;aACI,WAAA,CAAY,OAAA,CAAQ,QAAR,CAAZ,EADJ;KAAA,MAEK,IAAG,MAAA,CAAA,MAAA,KAAiB,UAAjB,IAAgC,MAAM,CAAC,GAA1C;aACD,MAAA,CAAO,CAAC,QAAD,CAAP,EAAmB,WAAnB,EADC;KAAA,MAAA;aAID,WAAA,CAAY,MAAZ,EAJC;KAHQ;EAAA,CAAjB,CAAA;;AAAA,EASA,cAAA,CAAe,SAAC,CAAD,GAAA;WAEX,CAAC,CAAC,cAAc,CAAC,gBAAjB,GAAoC;AAAA,MAAA,YAAA,EAAc,SAAC,SAAD,EAAY,IAAZ,GAAA;AAC9C,YAAA,uJAAA;AAAA,QAAA,QAAA,GACI;AAAA,UAAA,aAAA,EAAe,EAAf;SADJ,CAAA;AAAA,QAGA,IAAA,GAAO,CAAC,CAAC,MAAF,CAAS,QAAT,EAAmB,IAAnB,CAHP,CAAA;AAAA,QAKA,OAAA,GAAU,SAAS,CAAC,UAAV,CAAA,CALV,CAAA;AAMA,QAAA,IAAmB,OAAO,CAAC,MAAR,KAAkB,CAArC;AAAA,UAAA,OAAO,CAAC,IAAR,CAAa,EAAb,CAAA,CAAA;SANA;AAAA,QAOA,OAAA,GAAU,SAAS,CAAC,UAAV,CAAA,CAPV,CAAA;AAQA,QAAA,IAAmB,OAAO,CAAC,MAAR,KAAkB,CAArC;AAAA,UAAA,OAAO,CAAC,IAAR,CAAa,EAAb,CAAA,CAAA;SARA;AAAA,QASA,QAAA,GAAW,SAAS,CAAC,QATrB,CAAA;AAAA,QAUA,QAAA,GAAW,SAAS,CAAC,QAVrB,CAAA;AAAA,QAYA,MAAA,GAAS,EAZT,CAAA;AAAA,QAcA,GAAA,GAAM,EAdN,CAAA;AAeA,aAAA,0CAAA;gCAAA;AACI,UAAA,GAAG,CAAC,IAAJ,CAAS,OAAT,CAAA,CADJ;AAAA,SAfA;AAiBA,QAAA,IAAG,OAAO,CAAC,MAAR,KAAkB,CAAlB,IAAwB,OAAQ,CAAA,CAAA,CAAE,CAAC,MAAX,KAAqB,CAAhD;AACI,UAAA,GAAG,CAAC,IAAJ,CAAS,SAAS,CAAC,cAAnB,CAAA,CADJ;SAAA,MAAA;AAGI,eAAA,2CAAA;gCAAA;AACI,YAAA,GAAG,CAAC,IAAJ,CAAS,MAAM,CAAC,IAAP,CAAY,GAAZ,CAAT,CAAA,CADJ;AAAA,WAHJ;SAjBA;AAAA,QAuBA,MAAM,CAAC,IAAP,CAAY,GAAZ,CAvBA,CAAA;AAyBA,aAAA,2CAAA;8BAAA;AACI,UAAA,GAAA,GAAM,EAAN,CAAA;AACA,eAAA,0CAAA;0BAAA;AACI,YAAA,GAAG,CAAC,IAAJ,CAAS,CAAT,CAAA,CADJ;AAAA,WADA;AAIA,eAAA,2CAAA;gCAAA;AACI,YAAA,GAAA,GAAM,SAAS,CAAC,aAAV,CAAwB,MAAxB,EAAgC,MAAhC,CAAN,CAAA;AACA,YAAA,IAAG,mBAAH;AACI,cAAA,GAAG,CAAC,IAAJ,CAAS,GAAG,CAAC,KAAJ,CAAA,CAAT,CAAA,CADJ;aAAA,MAAA;AAGI,cAAA,GAAG,CAAC,IAAJ,CAAS,EAAT,CAAA,CAHJ;aAFJ;AAAA,WAJA;AAAA,UAUA,MAAM,CAAC,IAAP,CAAY,GAAZ,CAVA,CADJ;AAAA,SAzBA;AAAA,QAqCA,IAAA,GAAO,EArCP,CAAA;AAsCA,aAAA,0CAAA;wBAAA;AACI,UAAA,IAAA,IAAQ,CAAC,CAAC,IAAF,CAAO,IAAP,CAAA,GAAa,IAArB,CADJ;AAAA,SAtCA;AAyCA,eAAO,CAAA,CAAE,YAAF,CAAe,CAAC,IAAhB,CAAqB,IAArB,CAA0B,CAAC,GAA3B,CACC;AAAA,UAAA,KAAA,EAAO,CAAC,CAAA,CAAE,MAAF,CAAS,CAAC,KAAV,CAAA,CAAA,GAAoB,CAArB,CAAA,GAA0B,IAAjC;AAAA,UACA,MAAA,EAAQ,CAAC,CAAA,CAAE,MAAF,CAAS,CAAC,MAAV,CAAA,CAAA,GAAqB,CAAtB,CAAA,GAA2B,IADnC;SADD,CAAP,CA1C8C;MAAA,CAAd;MAFzB;EAAA,CAAf,CATA,CAAA;AAAA","file":"export_renderers.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 $.pivotUtilities.export_renderers = \\"TSV Export\\": (pivotData, opts) ->\\n defaults =\\n localeStrings: {}\\n\\n opts = $.extend defaults, opts\\n\\n rowKeys = pivotData.getRowKeys()\\n rowKeys.push [] if rowKeys.length == 0\\n colKeys = pivotData.getColKeys()\\n colKeys.push [] if colKeys.length == 0\\n rowAttrs = pivotData.rowAttrs\\n colAttrs = pivotData.colAttrs\\n\\n result = []\\n\\n row = []\\n for rowAttr in rowAttrs\\n row.push rowAttr\\n if colKeys.length == 1 and colKeys[0].length == 0\\n row.push pivotData.aggregatorName\\n else\\n for colKey in colKeys\\n row.push colKey.join(\\"-\\")\\n\\n result.push row\\n\\n for rowKey in rowKeys\\n row = []\\n for r in rowKey\\n row.push r\\n\\n for colKey in colKeys\\n agg = pivotData.getAggregator(rowKey, colKey)\\n if agg.value()?\\n row.push agg.value()\\n else\\n row.push \\"\\"\\n result.push row\\n text = \\"\\"\\n for r in result\\n text += r.join(\\"\\\\t\\")+\\"\\\\n\\"\\n \\n return $(\\"<textarea>\\").text(text).css(\\n width: ($(window).width() / 2) + \\"px\\", \\n height: ($(window).height() / 2) + \\"px\\")\\n \\n"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626248.09</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>export_renderers.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
return $.pivotUtilities.export_renderers = {\n
"TSV Export": function(pivotData, opts) {\n
var agg, colAttrs, colKey, colKeys, defaults, i, j, k, l, len, len1, len2, len3, len4, len5, m, n, r, result, row, rowAttr, rowAttrs, rowKey, rowKeys, text;\n
defaults = {\n
localeStrings: {}\n
};\n
opts = $.extend(defaults, opts);\n
rowKeys = pivotData.getRowKeys();\n
if (rowKeys.length === 0) {\n
rowKeys.push([]);\n
}\n
colKeys = pivotData.getColKeys();\n
if (colKeys.length === 0) {\n
colKeys.push([]);\n
}\n
rowAttrs = pivotData.rowAttrs;\n
colAttrs = pivotData.colAttrs;\n
result = [];\n
row = [];\n
for (i = 0, len = rowAttrs.length; i < len; i++) {\n
rowAttr = rowAttrs[i];\n
row.push(rowAttr);\n
}\n
if (colKeys.length === 1 && colKeys[0].length === 0) {\n
row.push(pivotData.aggregatorName);\n
} else {\n
for (j = 0, len1 = colKeys.length; j < len1; j++) {\n
colKey = colKeys[j];\n
row.push(colKey.join("-"));\n
}\n
}\n
result.push(row);\n
for (k = 0, len2 = rowKeys.length; k < len2; k++) {\n
rowKey = rowKeys[k];\n
row = [];\n
for (l = 0, len3 = rowKey.length; l < len3; l++) {\n
r = rowKey[l];\n
row.push(r);\n
}\n
for (m = 0, len4 = colKeys.length; m < len4; m++) {\n
colKey = colKeys[m];\n
agg = pivotData.getAggregator(rowKey, colKey);\n
if (agg.value() != null) {\n
row.push(agg.value());\n
} else {\n
row.push("");\n
}\n
}\n
result.push(row);\n
}\n
text = "";\n
for (n = 0, len5 = result.length; n < len5; n++) {\n
r = result[n];\n
text += r.join("\\t") + "\\n";\n
}\n
return $("<textarea>").text(text).css({\n
width: ($(window).width() / 2) + "px",\n
height: ($(window).height() / 2) + "px"\n
});\n
}\n
};\n
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=export_renderers.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>2515</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>export_renderers.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/export_renderers.coffee","export_renderers.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","pivotUtilities","export_renderers","TSV Export","pivotData","opts","agg","colAttrs","colKey","colKeys","defaults","i","j","k","l","len","len1","len2","len3","len4","len5","m","n","r","result","row","rowAttr","rowAttrs","rowKey","rowKeys","text","localeStrings","extend","getRowKeys","length","push","getColKeys","aggregatorName","join","getAggregator","value","css","width","window","height","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,WACC,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GCKZ,MDHAA,GAAEC,eAAeC,kBAAmBC,aAAc,SAACC,EAAWC,GAC1D,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAeA,KAfApB,GACIqB,kBAEJ1B,EAAOL,EAAEgC,OAAOtB,EAAUL,GAE1BwB,EAAUzB,EAAU6B,aACiB,IAAlBJ,EAAQK,QAA3BL,EAAQM,SACR1B,EAAUL,EAAUgC,aACiB,IAAlB3B,EAAQyB,QAA3BzB,EAAQ0B,SACRR,EAAWvB,EAAUuB,SACrBpB,EAAWH,EAAUG,SAErBiB,KAEAC,KACAd,EAAA,EAAAI,EAAAY,EAAAO,OAAAnB,EAAAJ,EAAAA,ICOEe,EAAUC,EAAShB,GDNjBc,EAAIU,KAAKT,EACb,IAAqB,IAAlBjB,EAAQyB,QAAqC,IAArBzB,EAAQ,GAAGyB,OAClCT,EAAIU,KAAK/B,EAAUiC,oBAEnB,KAAAzB,EAAA,EAAAI,EAAAP,EAAAyB,OAAAlB,EAAAJ,EAAAA,ICSAJ,EAASC,EAAQG,GDRba,EAAIU,KAAK3B,EAAO8B,KAAK,KAI7B,KAFAd,EAAOW,KAAKV,GAEZZ,EAAA,EAAAI,EAAAY,EAAAK,OAAAjB,EAAAJ,EAAAA,IAAA,CAEI,ICQFe,EAASC,EAAQhB,GDTfY,KACAX,EAAA,EAAAI,EAAAU,EAAAM,OAAAhB,EAAAJ,EAAAA,ICWAS,EAAIK,EAAOd,GDVPW,EAAIU,KAAKZ,EAEb,KAAAF,EAAA,EAAAF,EAAAV,EAAAyB,OAAAf,EAAAE,EAAAA,ICYAb,EAASC,EAAQY,GDXbf,EAAMF,EAAUmC,cAAcX,EAAQpB,GAElCiB,EAAIU,KADL,MAAA7B,EAAAkC,QACUlC,EAAIkC,QAEJ,GACjBhB,GAAOW,KAAKV,GAEhB,IADAK,EAAO,GACPR,EAAA,EAAAF,EAAAI,EAAAU,OAAAd,EAAAE,EAAAA,ICgBEC,EAAIC,EAAOF,GDfTQ,GAAQP,EAAEe,KAAK,KAAM,IAEzB,OAAOtC,GAAE,cAAc8B,KAAKA,GAAMW,KAC1BC,MAAQ1C,EAAE2C,QAAQD,QAAU,EAAK,KACjCE,OAAS5C,EAAE2C,QAAQC,SAAW,EAAK,aCsBhDC,KAAKC","file":"export_renderers.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\\n $.pivotUtilities.export_renderers = \\"TSV Export\\": (pivotData, opts) ->\\n defaults =\\n localeStrings: {}\\n\\n opts = $.extend defaults, opts\\n\\n rowKeys = pivotData.getRowKeys()\\n rowKeys.push [] if rowKeys.length == 0\\n colKeys = pivotData.getColKeys()\\n colKeys.push [] if colKeys.length == 0\\n rowAttrs = pivotData.rowAttrs\\n colAttrs = pivotData.colAttrs\\n\\n result = []\\n\\n row = []\\n for rowAttr in rowAttrs\\n row.push rowAttr\\n if colKeys.length == 1 and colKeys[0].length == 0\\n row.push pivotData.aggregatorName\\n else\\n for colKey in colKeys\\n row.push colKey.join(\\"-\\")\\n\\n result.push row\\n\\n for rowKey in rowKeys\\n row = []\\n for r in rowKey\\n row.push r\\n\\n for colKey in colKeys\\n agg = pivotData.getAggregator(rowKey, colKey)\\n if agg.value()?\\n row.push agg.value()\\n else\\n row.push \\"\\"\\n result.push row\\n text = \\"\\"\\n for r in result\\n text += r.join(\\"\\\\t\\")+\\"\\\\n\\"\\n \\n return $(\\"<textarea>\\").text(text).css(\\n width: ($(window).width() / 2) + \\"px\\", \\n height: ($(window).height() / 2) + \\"px\\")\\n \\n","(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){return e.pivotUtilities.export_renderers={\\"TSV Export\\":function(t,n){var r,o,h,u,i,l,g,s,f,p,a,c,d,w,x,y,j,v,m,q,A,b,K,S,C;for(i={localeStrings:{}},n=e.extend(i,n),S=t.getRowKeys(),0===S.length&&S.push([]),u=t.getColKeys(),0===u.length&&u.push([]),b=t.rowAttrs,o=t.colAttrs,m=[],q=[],l=0,p=b.length;p>l;l++)A=b[l],q.push(A);if(1===u.length&&0===u[0].length)q.push(t.aggregatorName);else for(g=0,a=u.length;a>g;g++)h=u[g],q.push(h.join(\\"-\\"));for(m.push(q),s=0,c=S.length;c>s;s++){for(K=S[s],q=[],f=0,d=K.length;d>f;f++)v=K[f],q.push(v);for(y=0,w=u.length;w>y;y++)h=u[y],r=t.getAggregator(K,h),q.push(null!=r.value()?r.value():\\"\\");m.push(q)}for(C=\\"\\",j=0,x=m.length;x>j;j++)v=m[j],C+=v.join(\\"\\t\\")+\\"\\\\n\\";return e(\\"<textarea>\\").text(C).css({width:e(window).width()/2+\\"px\\",height:e(window).height()/2+\\"px\\"})}}})}).call(this);\\n//# sourceMappingURL=export_renderers.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626246.14</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>export_renderers.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(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){return e.pivotUtilities.export_renderers={"TSV Export":function(t,n){var r,o,h,u,i,l,g,s,f,p,a,c,d,w,x,y,j,v,m,q,A,b,K,S,C;for(i={localeStrings:{}},n=e.extend(i,n),S=t.getRowKeys(),0===S.length&&S.push([]),u=t.getColKeys(),0===u.length&&u.push([]),b=t.rowAttrs,o=t.colAttrs,m=[],q=[],l=0,p=b.length;p>l;l++)A=b[l],q.push(A);if(1===u.length&&0===u[0].length)q.push(t.aggregatorName);else for(g=0,a=u.length;a>g;g++)h=u[g],q.push(h.join("-"));for(m.push(q),s=0,c=S.length;c>s;s++){for(K=S[s],q=[],f=0,d=K.length;d>f;f++)v=K[f],q.push(v);for(y=0,w=u.length;w>y;y++)h=u[y],r=t.getAggregator(K,h),q.push(null!=r.value()?r.value():"");m.push(q)}for(C="",j=0,x=m.length;x>j;j++)v=m[j],C+=v.join("\t")+"\\n";return e("<textarea>").text(C).css({width:e(window).width()/2+"px",height:e(window).height()/2+"px"})}}})}).call(this);\n
//# sourceMappingURL=export_renderers.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>1059</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gchart_renderers.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["gchart_renderers.coffee"],"names":[],"mappings":"AAAA;AAAA,MAAA,cAAA;;AAAA,EAAA,cAAA,GAAiB,SAAC,WAAD,GAAA;AACb,IAAA,IAAG,MAAA,CAAA,OAAA,KAAkB,QAAlB,IAA+B,MAAA,CAAA,MAAA,KAAiB,QAAnD;aACI,WAAA,CAAY,OAAA,CAAQ,QAAR,CAAZ,EADJ;KAAA,MAEK,IAAG,MAAA,CAAA,MAAA,KAAiB,UAAjB,IAAgC,MAAM,CAAC,GAA1C;aACD,MAAA,CAAO,CAAC,QAAD,CAAP,EAAmB,WAAnB,EADC;KAAA,MAAA;aAID,WAAA,CAAY,MAAZ,EAJC;KAHQ;EAAA,CAAjB,CAAA;;AAAA,EASA,cAAA,CAAe,SAAC,CAAD,GAAA;AAEX,QAAA,eAAA;AAAA,IAAA,eAAA,GAAkB,SAAC,SAAD,EAAY,YAAZ,GAAA;aAA6B,SAAC,SAAD,EAAY,IAAZ,GAAA;AAC3C,YAAA,yOAAA;AAAA,QAAA,QAAA,GACI;AAAA,UAAA,aAAA,EACI;AAAA,YAAA,EAAA,EAAI,IAAJ;AAAA,YACA,EAAA,EAAI,IADJ;WADJ;AAAA,UAGA,MAAA,EACI;AAAA,YAAA,KAAA,EAAO,SAAA,GAAA;qBAAG,MAAM,CAAC,UAAP,GAAoB,IAAvB;YAAA,CAAP;AAAA,YACA,MAAA,EAAQ,SAAA,GAAA;qBAAG,MAAM,CAAC,WAAP,GAAqB,IAAxB;YAAA,CADR;WAJJ;SADJ,CAAA;AAAA,QAQA,IAAA,GAAO,CAAC,CAAC,MAAF,CAAS,QAAT,EAAmB,IAAnB,CARP,CAAA;AAAA,QAUA,OAAA,GAAU,SAAS,CAAC,UAAV,CAAA,CAVV,CAAA;AAWA,QAAA,IAAmB,OAAO,CAAC,MAAR,KAAkB,CAArC;AAAA,UAAA,OAAO,CAAC,IAAR,CAAa,EAAb,CAAA,CAAA;SAXA;AAAA,QAYA,OAAA,GAAU,SAAS,CAAC,UAAV,CAAA,CAZV,CAAA;AAaA,QAAA,IAAmB,OAAO,CAAC,MAAR,KAAkB,CAArC;AAAA,UAAA,OAAO,CAAC,IAAR,CAAa,EAAb,CAAA,CAAA;SAbA;AAAA,QAcA,WAAA,GAAc,SAAS,CAAC,cAdxB,CAAA;AAeA,QAAA,IAAG,SAAS,CAAC,QAAQ,CAAC,MAAtB;AACI,UAAA,WAAA,IAAe,GAAA,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAnB,CAAwB,IAAxB,CAAD,CAAH,GAAkC,GAAjD,CADJ;SAfA;AAAA,QAiBA,OAAA;;AAAW;eAAA,yCAAA;2BAAA;AAAA,yBAAA,CAAC,CAAC,IAAF,CAAO,GAAP,EAAA,CAAA;AAAA;;YAjBX,CAAA;AAAA,QAkBA,OAAO,CAAC,OAAR,CAAgB,EAAhB,CAlBA,CAAA;AAAA,QAoBA,eAAA,GAAkB,CApBlB,CAAA;AAqBA,QAAA,IAAG,SAAA,KAAa,cAAhB;AACI,UAAA,SAAA,GAAY,EAAZ,CAAA;AACA;AAAA,eAAA,QAAA;2BAAA;AACI,iBAAA,UAAA;6BAAA;AACK,cAAA,SAAS,CAAC,IAAV,CAAe,CACZ,UAAA,CAAW,CAAX,CADY,EAEZ,UAAA,CAAW,CAAX,CAFY,EAGZ,WAAA,GAAY,MAAZ,GAAmB,GAAG,CAAC,MAAJ,CAAW,GAAG,CAAC,KAAJ,CAAA,CAAX,CAHP,CAAf,CAAA,CADL;AAAA,aADJ;AAAA,WADA;AAAA,UAQA,SAAA,GAAgB,IAAA,MAAM,CAAC,aAAa,CAAC,SAArB,CAAA,CARhB,CAAA;AAAA,UASA,SAAS,CAAC,SAAV,CAAoB,QAApB,EAA8B,SAAS,CAAC,QAAQ,CAAC,IAAnB,CAAwB,GAAxB,CAA9B,CATA,CAAA;AAAA,UAUA,SAAS,CAAC,SAAV,CAAoB,QAApB,EAA8B,SAAS,CAAC,QAAQ,CAAC,IAAnB,CAAwB,GAAxB,CAA9B,CAVA,CAAA;AAAA,UAWA,SAAS,CAAC,SAAV,CAAoB;AAAA,YAAA,IAAA,EAAM,QAAN;AAAA,YAAgB,IAAA,EAAM,SAAtB;WAApB,CAXA,CAAA;AAAA,UAYA,SAAS,CAAC,OAAV,CAAkB,SAAlB,CAZA,CAAA;AAAA,UAaA,UAAA,GAAa,SAAS,CAAC,QAAQ,CAAC,IAAnB,CAAwB,GAAxB,CAbb,CAAA;AAAA,UAcA,UAAA,GAAa,SAAS,CAAC,QAAQ,CAAC,IAAnB,CAAwB,GAAxB,CAdb,CAAA;AAAA,UAeA,KAAA,GAAQ,EAfR,CADJ;SAAA,MAAA;AAkBI,UAAA,SAAA,GAAY,CAAC,OAAD,CAAZ,CAAA;AACA,eAAA,yCAAA;gCAAA;AACI,YAAA,GAAA,GAAM,CAAC,MAAM,CAAC,IAAP,CAAY,GAAZ,CAAD,CAAN,CAAA;AAAA,YACA,eAAA,IAAmB,GAAI,CAAA,CAAA,CAAE,CAAC,MAD1B,CAAA;AAEA,iBAAA,2CAAA;kCAAA;AACI,cAAA,GAAA,GAAM,SAAS,CAAC,aAAV,CAAwB,MAAxB,EAAgC,MAAhC,CAAN,CAAA;AACA,cAAA,IAAG,mBAAH;AACI,gBAAA,GAAA,GAAM,GAAG,CAAC,KAAJ,CAAA,CAAN,CAAA;AACA,gBAAA,IAAG,CAAC,CAAC,SAAF,CAAY,GAAZ,CAAH;AACI,kBAAA,IAAG,GAAA,GAAM,CAAT;AACI,oBAAA,GAAG,CAAC,IAAJ,CAAS,UAAA,CAAW,GAAG,CAAC,WAAJ,CAAgB,CAAhB,CAAX,CAAT,CAAA,CADJ;mBAAA,MAAA;AAGI,oBAAA,GAAG,CAAC,IAAJ,CAAS,UAAA,CAAW,GAAG,CAAC,OAAJ,CAAY,CAAZ,CAAX,CAAT,CAAA,CAHJ;mBADJ;iBAAA,MAAA;AAMI,kBAAA,GAAG,CAAC,IAAJ,CAAS,GAAT,CAAA,CANJ;iBAFJ;eAAA,MAAA;AASK,gBAAA,GAAG,CAAC,IAAJ,CAAS,IAAT,CAAA,CATL;eAFJ;AAAA,aAFA;AAAA,YAcA,SAAS,CAAC,IAAV,CAAe,GAAf,CAdA,CADJ;AAAA,WADA;AAAA,UAkBA,SAAA,GAAY,MAAM,CAAC,aAAa,CAAC,gBAArB,CAAsC,SAAtC,CAlBZ,CAAA;AAAA,UAoBA,KAAA,GAAQ,UAAA,GAAa,WApBrB,CAAA;AAAA,UAqBA,UAAA,GAAa,SAAS,CAAC,QAAQ,CAAC,IAAnB,CAAwB,GAAxB,CArBb,CAAA;AAsBA,UAAA,IAAsD,UAAA,KAAc,EAApE;AAAA,YAAA,KAAA,IAAS,GAAA,GAAI,IAAI,CAAC,aAAa,CAAC,EAAvB,GAA0B,GAA1B,GAA6B,UAAtC,CAAA;WAtBA;AAAA,UAuBA,YAAA,GAAe,SAAS,CAAC,QAAQ,CAAC,IAAnB,CAAwB,GAAxB,CAvBf,CAAA;AAwBA,UAAA,IAAwD,YAAA,KAAgB,EAAxE;AAAA,YAAA,KAAA,IAAS,GAAA,GAAI,IAAI,CAAC,aAAa,CAAC,EAAvB,GAA0B,GAA1B,GAA6B,YAAtC,CAAA;WA1CJ;SArBA;AAAA,QAiEA,OAAA,GACI;AAAA,UAAA,KAAA,EAAO,IAAI,CAAC,MAAM,CAAC,KAAZ,CAAA,CAAP;AAAA,UACA,MAAA,EAAQ,IAAI,CAAC,MAAM,CAAC,MAAZ,CAAA,CADR;AAAA,UAEA,KAAA,EAAO,KAFP;AAAA,UAGA,KAAA,EAAO;AAAA,YAAC,KAAA,EAAO,UAAR;AAAA,YAAoB,WAAA,EAAa,eAAA,GAAkB,EAAnD;WAHP;AAAA,UAIA,KAAA,EAAO;AAAA,YAAC,KAAA,EAAO,UAAR;WAJP;AAAA,UAKA,OAAA,EAAS;AAAA,YAAE,SAAA,EAAW;AAAA,cAAE,QAAA,EAAU,OAAZ;AAAA,cAAqB,QAAA,EAAU,EAA/B;aAAb;WALT;SAlEJ,CAAA;AAyEA,QAAA,IAAG,SAAA,KAAa,aAAhB;AACI,UAAA,OAAO,CAAC,KAAK,CAAC,QAAd,GAAyB,CAAzB,CADJ;SAzEA;AA4EA,QAAA,IAAG,SAAA,KAAa,cAAhB;AACI,UAAA,OAAO,CAAC,MAAR,GAAiB;AAAA,YAAA,QAAA,EAAU,MAAV;WAAjB,CAAA;AAAA,UACA,OAAO,CAAC,SAAR,GAAoB;AAAA,YAAC,OAAA,EAAS,KAAV;AAAA,YAAiB,QAAA,EAAU,KAA3B;WADpB,CADJ;SAAA,MAIK,IAAG,SAAU,CAAA,CAAA,CAAE,CAAC,MAAb,KAAuB,CAAvB,IAA6B,SAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAb,KAAoB,EAApD;AACD,UAAA,OAAO,CAAC,MAAR,GAAiB;AAAA,YAAA,QAAA,EAAU,MAAV;WAAjB,CADC;SAhFL;AAmFA,aAAA,iBAAA;8BAAA;AAAA,UAAA,OAAQ,CAAA,CAAA,CAAR,GAAa,CAAb,CAAA;AAAA,SAnFA;AAAA,QAqFA,MAAA,GAAS,CAAA,CAAE,OAAF,CAAU,CAAC,GAAX,CAAe;AAAA,UAAA,KAAA,EAAO,MAAP;AAAA,UAAe,MAAA,EAAQ,MAAvB;SAAf,CArFT,CAAA;AAAA,QAsFA,OAAA,GAAc,IAAA,MAAM,CAAC,aAAa,CAAC,YAArB,CAAkC;AAAA,UAAC,WAAA,SAAD;AAAA,UAAY,WAAA,SAAZ;AAAA,UAAuB,SAAA,OAAvB;SAAlC,CAtFd,CAAA;AAAA,QAuFA,OAAO,CAAC,IAAR,CAAa,MAAO,CAAA,CAAA,CAApB,CAvFA,CAAA;AAAA,QAwFA,MAAM,CAAC,IAAP,CAAY,UAAZ,EAAwB,SAAA,GAAA;AACpB,cAAA,MAAA;AAAA,UAAA,MAAA,GAAa,IAAA,MAAM,CAAC,aAAa,CAAC,WAArB,CAAA,CAAb,CAAA;AAAA,UACA,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,WAA5B,CAAwC,MAAxC,EAAgD,IAAhD,EAAsD,SAAA,GAAA;mBAClD,MAAM,CAAC,eAAP,CAAA,CAAwB,CAAC,IAAzB,CAA8B,MAAO,CAAA,CAAA,CAArC,EADkD;UAAA,CAAtD,CADA,CAAA;iBAGA,MAAM,CAAC,UAAP,CAAkB,OAAlB,EAJoB;QAAA,CAAxB,CAxFA,CAAA;AA6FA,eAAO,MAAP,CA9F2C;MAAA,EAA7B;IAAA,CAAlB,CAAA;WAgGA,CAAC,CAAC,cAAc,CAAC,gBAAjB,GACI;AAAA,MAAA,YAAA,EAAc,eAAA,CAAgB,WAAhB,CAAd;AAAA,MACA,WAAA,EAAa,eAAA,CAAgB,aAAhB,CADb;AAAA,MAEA,mBAAA,EAAqB,eAAA,CAAgB,aAAhB,EAA+B;AAAA,QAAA,SAAA,EAAW,IAAX;OAA/B,CAFrB;AAAA,MAGA,YAAA,EAAc,eAAA,CAAgB,WAAhB,EAA6B;AAAA,QAAA,SAAA,EAAW,IAAX;OAA7B,CAHd;AAAA,MAIA,eAAA,EAAiB,eAAA,CAAgB,cAAhB,CAJjB;MAnGO;EAAA,CAAf,CATA,CAAA;AAAA","file":"gchart_renderers.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 makeGoogleChart = (chartType, extraOptions) -> (pivotData, opts) ->\\n defaults =\\n localeStrings:\\n vs: \\"vs\\"\\n by: \\"by\\"\\n gchart:\\n width: -> window.innerWidth / 1.4\\n height: -> window.innerHeight / 1.4\\n\\n opts = $.extend defaults, opts\\n\\n rowKeys = pivotData.getRowKeys()\\n rowKeys.push [] if rowKeys.length == 0\\n colKeys = pivotData.getColKeys()\\n colKeys.push [] if colKeys.length == 0\\n fullAggName = pivotData.aggregatorName \\n if pivotData.valAttrs.length\\n fullAggName += \\"(#{pivotData.valAttrs.join(\\", \\")})\\"\\n headers = (h.join(\\"-\\") for h in rowKeys)\\n headers.unshift \\"\\"\\n\\n numCharsInHAxis = 0\\n if chartType == \\"ScatterChart\\"\\n dataArray = []\\n for y, tree2 of pivotData.tree\\n for x, agg of tree2\\n dataArray.push [\\n parseFloat(x),\\n parseFloat(y),\\n fullAggName+\\": \\\\n\\"+agg.format(agg.value())\\n ]\\n dataTable = new google.visualization.DataTable()\\n dataTable.addColumn \'number\', pivotData.colAttrs.join(\\"-\\")\\n dataTable.addColumn \'number\', pivotData.rowAttrs.join(\\"-\\") \\n dataTable.addColumn type: \\"string\\", role: \\"tooltip\\"\\n dataTable.addRows dataArray\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n vAxisTitle = pivotData.rowAttrs.join(\\"-\\")\\n title = \\"\\"\\n else\\n dataArray = [headers]\\n for colKey in colKeys\\n row = [colKey.join(\\"-\\")]\\n numCharsInHAxis += row[0].length\\n for rowKey in rowKeys\\n agg = pivotData.getAggregator(rowKey, colKey)\\n if agg.value()?\\n val = agg.value()\\n if $.isNumeric val\\n if val < 1\\n row.push parseFloat(val.toPrecision(3))\\n else\\n row.push parseFloat(val.toFixed(3))\\n else\\n row.push val\\n else row.push null\\n dataArray.push row\\n\\n dataTable = google.visualization.arrayToDataTable(dataArray)\\n\\n title = vAxisTitle = fullAggName\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n title += \\" #{opts.localeStrings.vs} #{hAxisTitle}\\" if hAxisTitle != \\"\\"\\n groupByTitle = pivotData.rowAttrs.join(\\"-\\")\\n title += \\" #{opts.localeStrings.by} #{groupByTitle}\\" if groupByTitle != \\"\\"\\n\\n options = \\n width: opts.gchart.width()\\n height: opts.gchart.height()\\n title: title\\n hAxis: {title: hAxisTitle, slantedText: numCharsInHAxis > 50}\\n vAxis: {title: vAxisTitle}\\n tooltip: { textStyle: { fontName: \'Arial\', fontSize: 12 } }\\n\\n if chartType == \\"ColumnChart\\"\\n options.vAxis.minValue = 0\\n\\n if chartType == \\"ScatterChart\\"\\n options.legend = position: \\"none\\"\\n options.chartArea = {\'width\': \'80%\', \'height\': \'80%\'}\\n\\n else if dataArray[0].length == 2 and dataArray[0][1] == \\"\\"\\n options.legend = position: \\"none\\"\\n\\n options[k] = v for k, v of extraOptions\\n\\n result = $(\\"<div>\\").css(width: \\"100%\\", height: \\"100%\\")\\n wrapper = new google.visualization.ChartWrapper {dataTable, chartType, options}\\n wrapper.draw(result[0]) \\n result.bind \\"dblclick\\", -> \\n editor = new google.visualization.ChartEditor()\\n google.visualization.events.addListener editor, \'ok\', -> \\n editor.getChartWrapper().draw(result[0])\\n editor.openDialog(wrapper)\\n return result\\n\\n $.pivotUtilities.gchart_renderers = \\n \\"Line Chart\\": makeGoogleChart(\\"LineChart\\")\\n \\"Bar Chart\\": makeGoogleChart(\\"ColumnChart\\")\\n \\"Stacked Bar Chart\\": makeGoogleChart(\\"ColumnChart\\", isStacked: true)\\n \\"Area Chart\\": makeGoogleChart(\\"AreaChart\\", isStacked: true)\\n \\"Scatter Chart\\": makeGoogleChart(\\"ScatterChart\\")\\n"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626242.52</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>gchart_renderers.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
var makeGoogleChart;\n
makeGoogleChart = function(chartType, extraOptions) {\n
return function(pivotData, opts) {\n
var agg, colKey, colKeys, dataArray, dataTable, defaults, fullAggName, groupByTitle, h, hAxisTitle, headers, i, j, k, len, len1, numCharsInHAxis, options, ref, result, row, rowKey, rowKeys, title, tree2, v, vAxisTitle, val, wrapper, x, y;\n
defaults = {\n
localeStrings: {\n
vs: "vs",\n
by: "by"\n
},\n
gchart: {\n
width: function() {\n
return window.innerWidth / 1.4;\n
},\n
height: function() {\n
return window.innerHeight / 1.4;\n
}\n
}\n
};\n
opts = $.extend(defaults, opts);\n
rowKeys = pivotData.getRowKeys();\n
if (rowKeys.length === 0) {\n
rowKeys.push([]);\n
}\n
colKeys = pivotData.getColKeys();\n
if (colKeys.length === 0) {\n
colKeys.push([]);\n
}\n
fullAggName = pivotData.aggregatorName;\n
if (pivotData.valAttrs.length) {\n
fullAggName += "(" + (pivotData.valAttrs.join(", ")) + ")";\n
}\n
headers = (function() {\n
var i, len, results;\n
results = [];\n
for (i = 0, len = rowKeys.length; i < len; i++) {\n
h = rowKeys[i];\n
results.push(h.join("-"));\n
}\n
return results;\n
})();\n
headers.unshift("");\n
numCharsInHAxis = 0;\n
if (chartType === "ScatterChart") {\n
dataArray = [];\n
ref = pivotData.tree;\n
for (y in ref) {\n
tree2 = ref[y];\n
for (x in tree2) {\n
agg = tree2[x];\n
dataArray.push([parseFloat(x), parseFloat(y), fullAggName + ": \\n" + agg.format(agg.value())]);\n
}\n
}\n
dataTable = new google.visualization.DataTable();\n
dataTable.addColumn(\'number\', pivotData.colAttrs.join("-"));\n
dataTable.addColumn(\'number\', pivotData.rowAttrs.join("-"));\n
dataTable.addColumn({\n
type: "string",\n
role: "tooltip"\n
});\n
dataTable.addRows(dataArray);\n
hAxisTitle = pivotData.colAttrs.join("-");\n
vAxisTitle = pivotData.rowAttrs.join("-");\n
title = "";\n
} else {\n
dataArray = [headers];\n
for (i = 0, len = colKeys.length; i < len; i++) {\n
colKey = colKeys[i];\n
row = [colKey.join("-")];\n
numCharsInHAxis += row[0].length;\n
for (j = 0, len1 = rowKeys.length; j < len1; j++) {\n
rowKey = rowKeys[j];\n
agg = pivotData.getAggregator(rowKey, colKey);\n
if (agg.value() != null) {\n
val = agg.value();\n
if ($.isNumeric(val)) {\n
if (val < 1) {\n
row.push(parseFloat(val.toPrecision(3)));\n
} else {\n
row.push(parseFloat(val.toFixed(3)));\n
}\n
} else {\n
row.push(val);\n
}\n
} else {\n
row.push(null);\n
}\n
}\n
dataArray.push(row);\n
}\n
dataTable = google.visualization.arrayToDataTable(dataArray);\n
title = vAxisTitle = fullAggName;\n
hAxisTitle = pivotData.colAttrs.join("-");\n
if (hAxisTitle !== "") {\n
title += " " + opts.localeStrings.vs + " " + hAxisTitle;\n
}\n
groupByTitle = pivotData.rowAttrs.join("-");\n
if (groupByTitle !== "") {\n
title += " " + opts.localeStrings.by + " " + groupByTitle;\n
}\n
}\n
options = {\n
width: opts.gchart.width(),\n
height: opts.gchart.height(),\n
title: title,\n
hAxis: {\n
title: hAxisTitle,\n
slantedText: numCharsInHAxis > 50\n
},\n
vAxis: {\n
title: vAxisTitle\n
},\n
tooltip: {\n
textStyle: {\n
fontName: \'Arial\',\n
fontSize: 12\n
}\n
}\n
};\n
if (chartType === "ColumnChart") {\n
options.vAxis.minValue = 0;\n
}\n
if (chartType === "ScatterChart") {\n
options.legend = {\n
position: "none"\n
};\n
options.chartArea = {\n
\'width\': \'80%\',\n
\'height\': \'80%\'\n
};\n
} else if (dataArray[0].length === 2 && dataArray[0][1] === "") {\n
options.legend = {\n
position: "none"\n
};\n
}\n
for (k in extraOptions) {\n
v = extraOptions[k];\n
options[k] = v;\n
}\n
result = $("<div>").css({\n
width: "100%",\n
height: "100%"\n
});\n
wrapper = new google.visualization.ChartWrapper({\n
dataTable: dataTable,\n
chartType: chartType,\n
options: options\n
});\n
wrapper.draw(result[0]);\n
result.bind("dblclick", function() {\n
var editor;\n
editor = new google.visualization.ChartEditor();\n
google.visualization.events.addListener(editor, \'ok\', function() {\n
return editor.getChartWrapper().draw(result[0]);\n
});\n
return editor.openDialog(wrapper);\n
});\n
return result;\n
};\n
};\n
return $.pivotUtilities.gchart_renderers = {\n
"Line Chart": makeGoogleChart("LineChart"),\n
"Bar Chart": makeGoogleChart("ColumnChart"),\n
"Stacked Bar Chart": makeGoogleChart("ColumnChart", {\n
isStacked: true\n
}),\n
"Area Chart": makeGoogleChart("AreaChart", {\n
isStacked: true\n
}),\n
"Scatter Chart": makeGoogleChart("ScatterChart")\n
};\n
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=gchart_renderers.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>6188</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gchart_renderers.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/gchart_renderers.coffee","gchart_renderers.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","makeGoogleChart","chartType","extraOptions","pivotData","opts","agg","colKey","colKeys","dataArray","dataTable","defaults","fullAggName","groupByTitle","h","hAxisTitle","headers","i","j","k","len","len1","numCharsInHAxis","options","ref","result","row","rowKey","rowKeys","title","tree2","v","vAxisTitle","val","wrapper","x","y","localeStrings","vs","by","gchart","width","window","innerWidth","height","innerHeight","extend","getRowKeys","length","push","getColKeys","aggregatorName","valAttrs","join","results","unshift","tree","parseFloat","format","value","google","visualization","DataTable","addColumn","colAttrs","rowAttrs","type","role","addRows","getAggregator","isNumeric","toPrecision","toFixed","arrayToDataTable","hAxis","slantedText","vAxis","tooltip","textStyle","fontName","fontSize","minValue","legend","position","chartArea","css","ChartWrapper","draw","bind","editor","ChartEditor","events","addListener","getChartWrapper","openDialog","pivotUtilities","gchart_renderers","Line Chart","Bar Chart","Stacked Bar Chart","isStacked","Area Chart","Scatter Chart","call","this"],"mappings":"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","file":"gchart_renderers.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\\n makeGoogleChart = (chartType, extraOptions) -> (pivotData, opts) ->\\n defaults =\\n localeStrings:\\n vs: \\"vs\\"\\n by: \\"by\\"\\n gchart:\\n width: -> window.innerWidth / 1.4\\n height: -> window.innerHeight / 1.4\\n\\n opts = $.extend defaults, opts\\n\\n rowKeys = pivotData.getRowKeys()\\n rowKeys.push [] if rowKeys.length == 0\\n colKeys = pivotData.getColKeys()\\n colKeys.push [] if colKeys.length == 0\\n fullAggName = pivotData.aggregatorName \\n if pivotData.valAttrs.length\\n fullAggName += \\"(#{pivotData.valAttrs.join(\\", \\")})\\"\\n headers = (h.join(\\"-\\") for h in rowKeys)\\n headers.unshift \\"\\"\\n\\n numCharsInHAxis = 0\\n if chartType == \\"ScatterChart\\"\\n dataArray = []\\n for y, tree2 of pivotData.tree\\n for x, agg of tree2\\n dataArray.push [\\n parseFloat(x),\\n parseFloat(y),\\n fullAggName+\\": \\\\n\\"+agg.format(agg.value())\\n ]\\n dataTable = new google.visualization.DataTable()\\n dataTable.addColumn \'number\', pivotData.colAttrs.join(\\"-\\")\\n dataTable.addColumn \'number\', pivotData.rowAttrs.join(\\"-\\") \\n dataTable.addColumn type: \\"string\\", role: \\"tooltip\\"\\n dataTable.addRows dataArray\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n vAxisTitle = pivotData.rowAttrs.join(\\"-\\")\\n title = \\"\\"\\n else\\n dataArray = [headers]\\n for colKey in colKeys\\n row = [colKey.join(\\"-\\")]\\n numCharsInHAxis += row[0].length\\n for rowKey in rowKeys\\n agg = pivotData.getAggregator(rowKey, colKey)\\n if agg.value()?\\n val = agg.value()\\n if $.isNumeric val\\n if val < 1\\n row.push parseFloat(val.toPrecision(3))\\n else\\n row.push parseFloat(val.toFixed(3))\\n else\\n row.push val\\n else row.push null\\n dataArray.push row\\n\\n dataTable = google.visualization.arrayToDataTable(dataArray)\\n\\n title = vAxisTitle = fullAggName\\n hAxisTitle = pivotData.colAttrs.join(\\"-\\")\\n title += \\" #{opts.localeStrings.vs} #{hAxisTitle}\\" if hAxisTitle != \\"\\"\\n groupByTitle = pivotData.rowAttrs.join(\\"-\\")\\n title += \\" #{opts.localeStrings.by} #{groupByTitle}\\" if groupByTitle != \\"\\"\\n\\n options = \\n width: opts.gchart.width()\\n height: opts.gchart.height()\\n title: title\\n hAxis: {title: hAxisTitle, slantedText: numCharsInHAxis > 50}\\n vAxis: {title: vAxisTitle}\\n tooltip: { textStyle: { fontName: \'Arial\', fontSize: 12 } }\\n\\n if chartType == \\"ColumnChart\\"\\n options.vAxis.minValue = 0\\n\\n if chartType == \\"ScatterChart\\"\\n options.legend = position: \\"none\\"\\n options.chartArea = {\'width\': \'80%\', \'height\': \'80%\'}\\n\\n else if dataArray[0].length == 2 and dataArray[0][1] == \\"\\"\\n options.legend = position: \\"none\\"\\n\\n options[k] = v for k, v of extraOptions\\n\\n result = $(\\"<div>\\").css(width: \\"100%\\", height: \\"100%\\")\\n wrapper = new google.visualization.ChartWrapper {dataTable, chartType, options}\\n wrapper.draw(result[0]) \\n result.bind \\"dblclick\\", -> \\n editor = new google.visualization.ChartEditor()\\n google.visualization.events.addListener editor, \'ok\', -> \\n editor.getChartWrapper().draw(result[0])\\n editor.openDialog(wrapper)\\n return result\\n\\n $.pivotUtilities.gchart_renderers = \\n \\"Line Chart\\": makeGoogleChart(\\"LineChart\\")\\n \\"Bar Chart\\": makeGoogleChart(\\"ColumnChart\\")\\n \\"Stacked Bar Chart\\": makeGoogleChart(\\"ColumnChart\\", isStacked: true)\\n \\"Area Chart\\": makeGoogleChart(\\"AreaChart\\", isStacked: true)\\n \\"Scatter Chart\\": makeGoogleChart(\\"ScatterChart\\")\\n","(function(){var t;(t=function(t){return\\"object\\"==typeof exports&&\\"object\\"==typeof module?t(require(\\"jquery\\")):\\"function\\"==typeof define&&define.amd?define([\\"jquery\\"],t):t(jQuery)})(function(t){var e;return e=function(e,r){return function(n,i){var o,a,l,h,s,u,g,d,c,f,p,v,C,w,A,m,y,j,b,S,x,z,T,k,F,q,D,L,N,W,B;if(u={localeStrings:{vs:\\"vs\\",by:\\"by\\"},gchart:{width:function(){return window.innerWidth/1.4},height:function(){return window.innerHeight/1.4}}},i=t.extend(u,i),T=n.getRowKeys(),0===T.length&&T.push([]),l=n.getColKeys(),0===l.length&&l.push([]),g=n.aggregatorName,n.valAttrs.length&&(g+=\\"(\\"+n.valAttrs.join(\\", \\")+\\")\\"),p=function(){var t,e,r;for(r=[],t=0,e=T.length;e>t;t++)c=T[t],r.push(c.join(\\"-\\"));return r}(),p.unshift(\\"\\"),y=0,\\"ScatterChart\\"===e){h=[],b=n.tree;for(B in b){F=b[B];for(W in F)o=F[W],h.push([parseFloat(W),parseFloat(B),g+\\": \\\\n\\"+o.format(o.value())])}s=new google.visualization.DataTable,s.addColumn(\\"number\\",n.colAttrs.join(\\"-\\")),s.addColumn(\\"number\\",n.rowAttrs.join(\\"-\\")),s.addColumn({type:\\"string\\",role:\\"tooltip\\"}),s.addRows(h),f=n.colAttrs.join(\\"-\\"),D=n.rowAttrs.join(\\"-\\"),k=\\"\\"}else{for(h=[p],v=0,A=l.length;A>v;v++){for(a=l[v],x=[a.join(\\"-\\")],y+=x[0].length,C=0,m=T.length;m>C;C++)z=T[C],o=n.getAggregator(z,a),null!=o.value()?(L=o.value(),x.push(t.isNumeric(L)?1>L?parseFloat(L.toPrecision(3)):parseFloat(L.toFixed(3)):L)):x.push(null);h.push(x)}s=google.visualization.arrayToDataTable(h),k=D=g,f=n.colAttrs.join(\\"-\\"),\\"\\"!==f&&(k+=\\" \\"+i.localeStrings.vs+\\" \\"+f),d=n.rowAttrs.join(\\"-\\"),\\"\\"!==d&&(k+=\\" \\"+i.localeStrings.by+\\" \\"+d)}j={width:i.gchart.width(),height:i.gchart.height(),title:k,hAxis:{title:f,slantedText:y>50},vAxis:{title:D},tooltip:{textStyle:{fontName:\\"Arial\\",fontSize:12}}},\\"ColumnChart\\"===e&&(j.vAxis.minValue=0),\\"ScatterChart\\"===e?(j.legend={position:\\"none\\"},j.chartArea={width:\\"80%\\",height:\\"80%\\"}):2===h[0].length&&\\"\\"===h[0][1]&&(j.legend={position:\\"none\\"});for(w in r)q=r[w],j[w]=q;return S=t(\\"<div>\\").css({width:\\"100%\\",height:\\"100%\\"}),N=new google.visualization.ChartWrapper({dataTable:s,chartType:e,options:j}),N.draw(S[0]),S.bind(\\"dblclick\\",function(){var t;return t=new google.visualization.ChartEditor,google.visualization.events.addListener(t,\\"ok\\",function(){return t.getChartWrapper().draw(S[0])}),t.openDialog(N)}),S}},t.pivotUtilities.gchart_renderers={\\"Line Chart\\":e(\\"LineChart\\"),\\"Bar Chart\\":e(\\"ColumnChart\\"),\\"Stacked Bar Chart\\":e(\\"ColumnChart\\",{isStacked:!0}),\\"Area Chart\\":e(\\"AreaChart\\",{isStacked:!0}),\\"Scatter Chart\\":e(\\"ScatterChart\\")}})}).call(this);\\n//# sourceMappingURL=gchart_renderers.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626245.44</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>gchart_renderers.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function(){var t;(t=function(t){return"object"==typeof exports&&"object"==typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){var e;return e=function(e,r){return function(n,i){var o,a,l,h,s,u,g,d,c,f,p,v,C,w,A,m,y,j,b,S,x,z,T,k,F,q,D,L,N,W,B;if(u={localeStrings:{vs:"vs",by:"by"},gchart:{width:function(){return window.innerWidth/1.4},height:function(){return window.innerHeight/1.4}}},i=t.extend(u,i),T=n.getRowKeys(),0===T.length&&T.push([]),l=n.getColKeys(),0===l.length&&l.push([]),g=n.aggregatorName,n.valAttrs.length&&(g+="("+n.valAttrs.join(", ")+")"),p=function(){var t,e,r;for(r=[],t=0,e=T.length;e>t;t++)c=T[t],r.push(c.join("-"));return r}(),p.unshift(""),y=0,"ScatterChart"===e){h=[],b=n.tree;for(B in b){F=b[B];for(W in F)o=F[W],h.push([parseFloat(W),parseFloat(B),g+": \\n"+o.format(o.value())])}s=new google.visualization.DataTable,s.addColumn("number",n.colAttrs.join("-")),s.addColumn("number",n.rowAttrs.join("-")),s.addColumn({type:"string",role:"tooltip"}),s.addRows(h),f=n.colAttrs.join("-"),D=n.rowAttrs.join("-"),k=""}else{for(h=[p],v=0,A=l.length;A>v;v++){for(a=l[v],x=[a.join("-")],y+=x[0].length,C=0,m=T.length;m>C;C++)z=T[C],o=n.getAggregator(z,a),null!=o.value()?(L=o.value(),x.push(t.isNumeric(L)?1>L?parseFloat(L.toPrecision(3)):parseFloat(L.toFixed(3)):L)):x.push(null);h.push(x)}s=google.visualization.arrayToDataTable(h),k=D=g,f=n.colAttrs.join("-"),""!==f&&(k+=" "+i.localeStrings.vs+" "+f),d=n.rowAttrs.join("-"),""!==d&&(k+=" "+i.localeStrings.by+" "+d)}j={width:i.gchart.width(),height:i.gchart.height(),title:k,hAxis:{title:f,slantedText:y>50},vAxis:{title:D},tooltip:{textStyle:{fontName:"Arial",fontSize:12}}},"ColumnChart"===e&&(j.vAxis.minValue=0),"ScatterChart"===e?(j.legend={position:"none"},j.chartArea={width:"80%",height:"80%"}):2===h[0].length&&""===h[0][1]&&(j.legend={position:"none"});for(w in r)q=r[w],j[w]=q;return S=t("<div>").css({width:"100%",height:"100%"}),N=new google.visualization.ChartWrapper({dataTable:s,chartType:e,options:j}),N.draw(S[0]),S.bind("dblclick",function(){var t;return t=new google.visualization.ChartEditor,google.visualization.events.addListener(t,"ok",function(){return t.getChartWrapper().draw(S[0])}),t.openDialog(N)}),S}},t.pivotUtilities.gchart_renderers={"Line Chart":e("LineChart"),"Bar Chart":e("ColumnChart"),"Stacked Bar Chart":e("ColumnChart",{isStacked:!0}),"Area Chart":e("AreaChart",{isStacked:!0}),"Scatter Chart":e("ScatterChart")}})}).call(this);\n
//# sourceMappingURL=gchart_renderers.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>2559</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>.pvtUi { color: #333; }\n
\n
\n
table.pvtTable {\n
font-size: 8pt;\n
text-align: left;\n
border-collapse: collapse;\n
}\n
table.pvtTable tr th, table.pvtTable tr th {\n
background-color: #e6EEEE;\n
border: 1px solid #CDCDCD;\n
font-size: 8pt;\n
padding: 5px;\n
}\n
\n
table.pvtTable .pvtColLabel {text-align: center;}\n
table.pvtTable .pvtTotalLabel {text-align: right;}\n
\n
table.pvtTable tr td {\n
color: #3D3D3D;\n
padding: 5px;\n
background-color: #FFF;\n
border: 1px solid #CDCDCD;\n
vertical-align: top;\n
text-align: right;\n
}\n
\n
.pvtTotal, .pvtGrandTotal { font-weight: bold; }\n
\n
.pvtVals { text-align: center;}\n
.pvtAggregator { margin-bottom: 5px ;}\n
\n
.pvtAxisContainer, .pvtVals {\n
border: 1px solid gray;\n
background: #EEE;\n
padding: 5px;\n
min-width: 20px;\n
min-height: 20px;\n
}\n
.pvtAxisContainer li {\n
padding: 8px 6px;\n
list-style-type: none;\n
cursor:move;\n
}\n
.pvtAxisContainer li.pvtPlaceholder {\n
-webkit-border-radius: 5px;\n
padding: 3px 15px;\n
-moz-border-radius: 5px;\n
border-radius: 5px;\n
border: 1px dashed #aaa;\n
}\n
\n
.pvtAxisContainer li span.pvtAttr {\n
background: #F3F3F3;\n
border: 1px solid #DEDEDE;\n
padding: 2px 5px;\n
white-space:nowrap;\n
-webkit-border-radius: 5px;\n
-moz-border-radius: 5px;\n
border-radius: 5px;\n
}\n
\n
.pvtTriangle {\n
cursor:pointer;\n
color: grey;\n
}\n
\n
.pvtHorizList li { display: inline; }\n
.pvtVertList { vertical-align: top; }\n
\n
.pvtFilteredAttribute { font-style: italic }\n
\n
.pvtFilterBox{\n
z-index: 100;\n
width: 280px;\n
border: 1px solid gray;\n
background-color: #fff;\n
position: absolute;\n
padding: 20px;\n
text-align: center;\n
}\n
\n
.pvtFilterBox h4{ margin:0; }\n
.pvtFilterBox p { margin: 1em auto; }\n
.pvtFilterBox label { font-weight: normal; }\n
.pvtFilterBox input[type=\'checkbox\'] { margin-right: 5px; }\n
\n
.pvtCheckContainer{\n
text-align: left;\n
overflow: scroll;\n
width: 100%;\n
max-height: 200px;\n
}\n
.pvtCheckContainer p{ margin: 5px; }\n
\n
.pvtRendererArea { padding: 5px;}</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.es.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"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&oacute; un error durante la interpretaci&oacute;n de la tabla din&acute;mica.\\"\\n computeError: \\"Ocurri&oacute; un error durante el c&acute;lculo de la tabla din&acute;mica.\\"\\n uiRenderError: \\"Ocurri&oacute; un error durante el dibujado de la tabla din&acute;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 &uacute;nicos\\": tpl.countUnique(frFmtInt)\\n \\"Lista de valores &uacute;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&oacute;n del total (suma)\\": tpl.fractionOf(tpl.sum(), \\"total\\", frFmtPct)\\n \\"Proporci&oacute;n de la fila (suma)\\": tpl.fractionOf(tpl.sum(), \\"row\\", frFmtPct)\\n \\"Proporci&oacute;n de la columna (suma)\\": tpl.fractionOf(tpl.sum(), \\"col\\", frFmtPct)\\n \\"Proporci&oacute;n del total (cuenta)\\": tpl.fractionOf(tpl.count(), \\"total\\", frFmtPct)\\n \\"Proporci&oacute;n de la fila (cuenta)\\": tpl.fractionOf(tpl.count(), \\"row\\", frFmtPct)\\n \\"Proporci&oacute;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"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626250.5</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.es.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
var frFmt, frFmtInt, frFmtPct, nf, tpl;\n
nf = $.pivotUtilities.numberFormat;\n
tpl = $.pivotUtilities.aggregatorTemplates;\n
frFmt = nf({\n
thousandsSep: " ",\n
decimalSep: ","\n
});\n
frFmtInt = nf({\n
digitsAfterDecimal: 0,\n
thousandsSep: " ",\n
decimalSep: ","\n
});\n
frFmtPct = nf({\n
digitsAfterDecimal: 1,\n
scaler: 100,\n
suffix: "%",\n
thousandsSep: " ",\n
decimalSep: ","\n
});\n
return $.pivotUtilities.locales.es = {\n
localeStrings: {\n
renderError: "Ocurri&oacute; un error durante la interpretaci&oacute;n de la tabla din&acute;mica.",\n
computeError: "Ocurri&oacute; un error durante el c&acute;lculo de la tabla din&acute;mica.",\n
uiRenderError: "Ocurri&oacute; un error durante el dibujado de la tabla din&acute;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
},\n
aggregators: {\n
"Cuenta": tpl.count(frFmtInt),\n
"Cuenta de valores &uacute;nicos": tpl.countUnique(frFmtInt),\n
"Lista de valores &uacute;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&oacute;n del total (suma)": tpl.fractionOf(tpl.sum(), "total", frFmtPct),\n
"Proporci&oacute;n de la fila (suma)": tpl.fractionOf(tpl.sum(), "row", frFmtPct),\n
"Proporci&oacute;n de la columna (suma)": tpl.fractionOf(tpl.sum(), "col", frFmtPct),\n
"Proporci&oacute;n del total (cuenta)": tpl.fractionOf(tpl.count(), "total", frFmtPct),\n
"Proporci&oacute;n de la fila (cuenta)": tpl.fractionOf(tpl.count(), "row", frFmtPct),\n
"Proporci&oacute;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
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=pivot.es.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3015</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.es.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/pivot.es.coffee","pivot.es.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","frFmt","frFmtInt","frFmtPct","nf","tpl","pivotUtilities","numberFormat","aggregatorTemplates","thousandsSep","decimalSep","digitsAfterDecimal","scaler","suffix","locales","es","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","totals","vs","by","aggregators","Cuenta","count","Cuenta de valores &uacute;nicos","countUnique","Lista de valores &uacute;nicos","listUnique","Suma","sum","Suma de enteros","Promedio","average","Mínimo","min","Máximo","max","Suma de sumas","sumOverSum","Cota 80% superior","sumOverSumBound80","Cota 80% inferior","Proporci&oacute;n del total (suma)","fractionOf","Proporci&oacute;n de la fila (suma)","Proporci&oacute;n de la columna (suma)","Proporci&oacute;n del total (cuenta)","Proporci&oacute;n de la fila (cuenta)","Proporci&oacute;n de la columna (cuenta)","renderers","Tabla","Tabla con barras","Heatmap","Heatmap por filas","Heatmap por columnas","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,WACC,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GACZ,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,CCuBA,ODvBAD,GAAKJ,EAAEM,eAAeC,aACtBF,EAAML,EAAEM,eAAeE,oBAEvBP,EAAWG,GAAGK,aAAc,IAAKC,WAAY,MAC7CR,EAAWE,GAAGO,mBAAoB,EAAGF,aAAc,IAAKC,WAAY,MACpEP,EAAWC,GAAGO,mBAAoB,EAAGC,OAAQ,IAAKC,OAAQ,IAAKJ,aAAc,IAAKC,WAAY,MAE9FV,EAAEM,eAAeQ,QAAQC,IAErBC,eACIC,YAAa,uFACbC,aAAc,+EACdC,cAAe,0EACfC,UAAW,mBACXC,WAAY,qBACZC,QAAS,uBACTC,cAAe,qBACfC,OAAQ,UACRC,GAAI,KACJC,GAAI,OACRC,aACIC,OAAsCvB,EAAIwB,MAAM3B,GAChD4B,kCAA4CzB,EAAI0B,YAAY7B,GAC5D8B,iCAA4C3B,EAAI4B,WAAW,MAC3DC,KAAqC7B,EAAI8B,IAAIlC,GAC7CmC,kBAAqC/B,EAAI8B,IAAIjC,GAC7CmC,SAAuChC,EAAIiC,QAAQrC,GACnDsC,SAAgDlC,EAAImC,IAAIvC,GACxDwC,SAAgDpC,EAAIqC,IAAIzC,GACxD0C,gBAAoCtC,EAAIuC,WAAW3C,GACnD4C,oBAA4BxC,EAAIyC,mBAAkB,EAAM7C,GACxD8C,oBAA4B1C,EAAIyC,mBAAkB,EAAO7C,GACzD+C,qCAA2C3C,EAAI4C,WAAW5C,EAAI8B,MAAS,QAAShC,GAChF+C,sCAA0C7C,EAAI4C,WAAW5C,EAAI8B,MAAS,MAAShC,GAC/EgD,yCAA2C9C,EAAI4C,WAAW5C,EAAI8B,MAAS,MAAShC,GAChFiD,uCAA4C/C,EAAI4C,WAAW5C,EAAIwB,QAAS,QAAS1B,GACjFkD,wCAA2ChD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAS1B,GAChFmD,2CAA4CjD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAS1B,IAErFoD,WACIC,MAAmCxD,EAAEM,eAAeiD,UAAU,MAC9DE,mBAAkCzD,EAAEM,eAAeiD,UAAU,kBAC7DG,QAA0B1D,EAAEM,eAAeiD,UAAU,QACrDI,oBAA0B3D,EAAEM,eAAeiD,UAAU,eACrDK,uBAA2B5D,EAAEM,eAAeiD,UAAU,qBCqB/DM,KAAKC","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&oacute; un error durante la interpretaci&oacute;n de la tabla din&acute;mica.\\"\\n computeError: \\"Ocurri&oacute; un error durante el c&acute;lculo de la tabla din&acute;mica.\\"\\n uiRenderError: \\"Ocurri&oacute; un error durante el dibujado de la tabla din&acute;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 &uacute;nicos\\": tpl.countUnique(frFmtInt)\\n \\"Lista de valores &uacute;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&oacute;n del total (suma)\\": tpl.fractionOf(tpl.sum(), \\"total\\", frFmtPct)\\n \\"Proporci&oacute;n de la fila (suma)\\": tpl.fractionOf(tpl.sum(), \\"row\\", frFmtPct)\\n \\"Proporci&oacute;n de la columna (suma)\\": tpl.fractionOf(tpl.sum(), \\"col\\", frFmtPct)\\n \\"Proporci&oacute;n del total (cuenta)\\": tpl.fractionOf(tpl.count(), \\"total\\", frFmtPct)\\n \\"Proporci&oacute;n de la fila (cuenta)\\": tpl.fractionOf(tpl.count(), \\"row\\", frFmtPct)\\n \\"Proporci&oacute;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","(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&oacute; un error durante la interpretaci&oacute;n de la tabla din&acute;mica.\\",computeError:\\"Ocurri&oacute; un error durante el c&acute;lculo de la tabla din&acute;mica.\\",uiRenderError:\\"Ocurri&oacute; un error durante el dibujado de la tabla din&acute;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 &uacute;nicos\\":i.countUnique(t),\\"Lista de valores &uacute;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&oacute;n del total (suma)\\":i.fractionOf(i.sum(),\\"total\\",r),\\"Proporci&oacute;n de la fila (suma)\\":i.fractionOf(i.sum(),\\"row\\",r),\\"Proporci&oacute;n de la columna (suma)\\":i.fractionOf(i.sum(),\\"col\\",r),\\"Proporci&oacute;n del total (cuenta)\\":i.fractionOf(i.count(),\\"total\\",r),\\"Proporci&oacute;n de la fila (cuenta)\\":i.fractionOf(i.count(),\\"row\\",r),\\"Proporci&oacute;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);\\n//# sourceMappingURL=pivot.es.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626245.77</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.es.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(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&oacute; un error durante la interpretaci&oacute;n de la tabla din&acute;mica.",computeError:"Ocurri&oacute; un error durante el c&acute;lculo de la tabla din&acute;mica.",uiRenderError:"Ocurri&oacute; un error durante el dibujado de la tabla din&acute;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 &uacute;nicos":i.countUnique(t),"Lista de valores &uacute;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&oacute;n del total (suma)":i.fractionOf(i.sum(),"total",r),"Proporci&oacute;n de la fila (suma)":i.fractionOf(i.sum(),"row",r),"Proporci&oacute;n de la columna (suma)":i.fractionOf(i.sum(),"col",r),"Proporci&oacute;n del total (cuenta)":i.fractionOf(i.count(),"total",r),"Proporci&oacute;n de la fila (cuenta)":i.fractionOf(i.count(),"row",r),"Proporci&oacute;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);\n
//# sourceMappingURL=pivot.es.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>2081</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.fr.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"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&eacute;.\\"\\n computeError: \\"Une erreur est survenue en calculant le tableau crois&eacute;.\\"\\n uiRenderError: \\"Une erreur est survenue en dessinant l\'interface du tableau crois&eacute; dynamique.\\"\\n selectAll: \\"S&eacute;lectionner tout\\"\\n selectNone: \\"S&eacute;lectionner rien\\"\\n tooMany: \\"(trop de valeurs &agrave; 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&eacute;rieure 80%\\": tpl.sumOverSumBound80(true, frFmt)\\n \\"Borne inf&eacute;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"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626243.45</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.fr.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
var frFmt, frFmtInt, frFmtPct, nf, tpl;\n
nf = $.pivotUtilities.numberFormat;\n
tpl = $.pivotUtilities.aggregatorTemplates;\n
frFmt = nf({\n
thousandsSep: " ",\n
decimalSep: ","\n
});\n
frFmtInt = nf({\n
digitsAfterDecimal: 0,\n
thousandsSep: " ",\n
decimalSep: ","\n
});\n
frFmtPct = nf({\n
digitsAfterDecimal: 1,\n
scaler: 100,\n
suffix: "%",\n
thousandsSep: " ",\n
decimalSep: ","\n
});\n
return $.pivotUtilities.locales.fr = {\n
localeStrings: {\n
renderError: "Une erreur est survenue en dessinant le tableau crois&eacute;.",\n
computeError: "Une erreur est survenue en calculant le tableau crois&eacute;.",\n
uiRenderError: "Une erreur est survenue en dessinant l\'interface du tableau crois&eacute; dynamique.",\n
selectAll: "S&eacute;lectionner tout",\n
selectNone: "S&eacute;lectionner rien",\n
tooMany: "(trop de valeurs &agrave; 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&eacute;rieure 80%": tpl.sumOverSumBound80(true, frFmt),\n
"Borne inf&eacute;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
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=pivot.fr.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3029</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.fr.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/pivot.fr.coffee","pivot.fr.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","frFmt","frFmtInt","frFmtPct","nf","tpl","pivotUtilities","numberFormat","aggregatorTemplates","thousandsSep","decimalSep","digitsAfterDecimal","scaler","suffix","locales","fr","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","totals","vs","by","aggregators","Nombre","count","Nombre de valeurs uniques","countUnique","Liste de valeurs uniques","listUnique","Somme","sum","Somme en entiers","Moyenne","average","Minimum","min","Maximum","max","Ratio de sommes","sumOverSum","Borne sup&eacute;rieure 80%","sumOverSumBound80","Borne inf&eacute;rieure 80%","Somme en proportion du totale","fractionOf","Somme en proportion de la ligne","Somme en proportion de la colonne","Nombre en proportion du totale","Nombre en proportion de la ligne","Nombre en proportion de la colonne","renderers","Table","Table avec barres","Carte de chaleur","Carte de chaleur par ligne","Carte de chaleur par colonne","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,WACC,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GACZ,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,CCuBA,ODvBAD,GAAKJ,EAAEM,eAAeC,aACtBF,EAAML,EAAEM,eAAeE,oBAEvBP,EAAWG,GAAGK,aAAc,IAAKC,WAAY,MAC7CR,EAAWE,GAAGO,mBAAoB,EAAGF,aAAc,IAAKC,WAAY,MACpEP,EAAWC,GAAGO,mBAAoB,EAAGC,OAAQ,IAAKC,OAAQ,IAAKJ,aAAc,IAAKC,WAAY,MAE9FV,EAAEM,eAAeQ,QAAQC,IACrBC,eACIC,YAAa,iEACbC,aAAc,iEACdC,cAAe,uFACfC,UAAW,2BACXC,WAAY,2BACZC,QAAS,sCACTC,cAAe,sBACfC,OAAQ,SACRC,GAAI,MACJC,GAAI,OAERC,aACIC,OAAsCvB,EAAIwB,MAAM3B,GAChD4B,4BAAsCzB,EAAI0B,YAAY7B,GACtD8B,2BAAsC3B,EAAI4B,WAAW,MACrDC,MAAsC7B,EAAI8B,IAAIlC,GAC9CmC,mBAAsC/B,EAAI8B,IAAIjC,GAC9CmC,QAAsChC,EAAIiC,QAAQrC,GAClDsC,QAAsClC,EAAImC,IAAIvC,GAC9CwC,QAAsCpC,EAAIqC,IAAIzC,GAC9C0C,kBAAsCtC,EAAIuC,WAAW3C,GACrD4C,8BAAsCxC,EAAIyC,mBAAkB,EAAM7C,GAClE8C,8BAAsC1C,EAAIyC,mBAAkB,EAAO7C,GACnE+C,gCAAsC3C,EAAI4C,WAAW5C,EAAI8B,MAAS,QAAShC,GAC3E+C,kCAAsC7C,EAAI4C,WAAW5C,EAAI8B,MAAS,MAAShC,GAC3EgD,oCAAsC9C,EAAI4C,WAAW5C,EAAI8B,MAAS,MAAShC,GAC3EiD,iCAAsC/C,EAAI4C,WAAW5C,EAAIwB,QAAS,QAAS1B,GAC3EkD,mCAAsChD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAS1B,GAC3EmD,qCAAsCjD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAS1B,IAE/EoD,WACIC,MAAmCxD,EAAEM,eAAeiD,UAAU,MAC9DE,oBAAmCzD,EAAEM,eAAeiD,UAAU,kBAC9DG,mBAAmC1D,EAAEM,eAAeiD,UAAU,QAC9DI,6BAAmC3D,EAAEM,eAAeiD,UAAU,eAC9DK,+BAAmC5D,EAAEM,eAAeiD,UAAU,qBCqBvEM,KAAKC","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&eacute;.\\"\\n computeError: \\"Une erreur est survenue en calculant le tableau crois&eacute;.\\"\\n uiRenderError: \\"Une erreur est survenue en dessinant l\'interface du tableau crois&eacute; dynamique.\\"\\n selectAll: \\"S&eacute;lectionner tout\\"\\n selectNone: \\"S&eacute;lectionner rien\\"\\n tooMany: \\"(trop de valeurs &agrave; 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&eacute;rieure 80%\\": tpl.sumOverSumBound80(true, frFmt)\\n \\"Borne inf&eacute;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","(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&eacute;.\\",computeError:\\"Une erreur est survenue en calculant le tableau crois&eacute;.\\",uiRenderError:\\"Une erreur est survenue en dessinant l\'interface du tableau crois&eacute; dynamique.\\",selectAll:\\"S&eacute;lectionner tout\\",selectNone:\\"S&eacute;lectionner rien\\",tooMany:\\"(trop de valeurs &agrave; 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&eacute;rieure 80%\\":n.sumOverSumBound80(!0,r),\\"Borne inf&eacute;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);\\n//# sourceMappingURL=pivot.fr.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626243.74</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.fr.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(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&eacute;.",computeError:"Une erreur est survenue en calculant le tableau crois&eacute;.",uiRenderError:"Une erreur est survenue en dessinant l\'interface du tableau crois&eacute; dynamique.",selectAll:"S&eacute;lectionner tout",selectNone:"S&eacute;lectionner rien",tooMany:"(trop de valeurs &agrave; 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&eacute;rieure 80%":n.sumOverSumBound80(!0,r),"Borne inf&eacute;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);\n
//# sourceMappingURL=pivot.fr.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>2093</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["pivot.coffee"],"names":[],"mappings":"AAAA;AAAA,MAAA,cAAA;IAAA;;;+BAAA;;AAAA,EAAA,cAAA,GAAiB,SAAC,WAAD,GAAA;AACb,IAAA,IAAG,MAAA,CAAA,OAAA,KAAkB,QAAlB,IAA+B,MAAA,CAAA,MAAA,KAAiB,QAAnD;aACI,WAAA,CAAY,OAAA,CAAQ,QAAR,CAAZ,EADJ;KAAA,MAEK,IAAG,MAAA,CAAA,MAAA,KAAiB,UAAjB,IAAgC,MAAM,CAAC,GAA1C;aACD,MAAA,CAAO,CAAC,QAAD,CAAP,EAAmB,WAAnB,EADC;KAAA,MAAA;aAID,WAAA,CAAY,MAAZ,EAJC;KAHQ;EAAA,CAAjB,CAAA;;AAAA,EASA,cAAA,CAAe,SAAC,CAAD,GAAA;AAEX;AAAA;;OAAA;AAAA,QAAA,oNAAA;AAAA,IAIA,aAAA,GAAgB,SAAC,IAAD,EAAO,YAAP,EAAqB,UAArB,GAAA;AACZ,UAAA,cAAA;AAAA,MAAA,IAAA,IAAQ,EAAR,CAAA;AAAA,MACA,CAAA,GAAI,IAAI,CAAC,KAAL,CAAW,GAAX,CADJ,CAAA;AAAA,MAEA,EAAA,GAAK,CAAE,CAAA,CAAA,CAFP,CAAA;AAAA,MAGA,EAAA,GAAQ,CAAC,CAAC,MAAF,GAAW,CAAd,GAAsB,UAAA,GAAa,CAAE,CAAA,CAAA,CAArC,GAA6C,EAHlD,CAAA;AAAA,MAIA,GAAA,GAAM,cAJN,CAAA;AAKiD,aAAM,GAAG,CAAC,IAAJ,CAAS,EAAT,CAAN,GAAA;AAAjD,QAAA,EAAA,GAAK,EAAE,CAAC,OAAH,CAAW,GAAX,EAAgB,IAAA,GAAO,YAAP,GAAsB,IAAtC,CAAL,CAAiD;MAAA,CALjD;AAMA,aAAO,EAAA,GAAK,EAAZ,CAPY;IAAA,CAJhB,CAAA;AAAA,IAaA,YAAA,GAAe,SAAC,IAAD,GAAA;AACX,UAAA,QAAA;AAAA,MAAA,QAAA,GACI;AAAA,QAAA,kBAAA,EAAoB,CAApB;AAAA,QAAuB,MAAA,EAAQ,CAA/B;AAAA,QACA,YAAA,EAAc,GADd;AAAA,QACmB,UAAA,EAAY,GAD/B;AAAA,QAEA,MAAA,EAAQ,EAFR;AAAA,QAEY,MAAA,EAAQ,EAFpB;AAAA,QAGA,QAAA,EAAU,KAHV;OADJ,CAAA;AAAA,MAKA,IAAA,GAAO,CAAC,CAAC,MAAF,CAAS,QAAT,EAAmB,IAAnB,CALP,CAAA;aAMA,SAAC,CAAD,GAAA;AACI,YAAA,MAAA;AAAA,QAAA,IAAa,KAAA,CAAM,CAAN,CAAA,IAAY,CAAA,QAAI,CAAS,CAAT,CAA7B;AAAA,iBAAO,EAAP,CAAA;SAAA;AACA,QAAA,IAAa,CAAA,KAAK,CAAL,IAAW,CAAA,IAAQ,CAAC,QAAjC;AAAA,iBAAO,EAAP,CAAA;SADA;AAAA,QAEA,MAAA,GAAS,aAAA,CAAc,CAAC,IAAI,CAAC,MAAL,GAAY,CAAb,CAAe,CAAC,OAAhB,CAAwB,IAAI,CAAC,kBAA7B,CAAd,EAAgE,IAAI,CAAC,YAArE,EAAmF,IAAI,CAAC,UAAxF,CAFT,CAAA;AAGA,eAAO,EAAA,GAAG,IAAI,CAAC,MAAR,GAAe,MAAf,GAAsB,IAAI,CAAC,MAAlC,CAJJ;MAAA,EAPW;IAAA,CAbf,CAAA;AAAA,IA2BA,KAAA,GAAQ,YAAA,CAAA,CA3BR,CAAA;AAAA,IA4BA,QAAA,GAAW,YAAA,CAAa;AAAA,MAAA,kBAAA,EAAoB,CAApB;KAAb,CA5BX,CAAA;AAAA,IA6BA,QAAA,GAAW,YAAA,CAAa;AAAA,MAAA,kBAAA,EAAmB,CAAnB;AAAA,MAAsB,MAAA,EAAQ,GAA9B;AAAA,MAAmC,MAAA,EAAQ,GAA3C;KAAb,CA7BX,CAAA;AAAA,IA+BA,mBAAA,GACI;AAAA,MAAA,KAAA,EAAO,SAAC,SAAD,GAAA;;UAAC,YAAU;SAAa;eAAA,SAAA,GAAA;iBAAM,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBACjC;AAAA,cAAA,KAAA,EAAO,CAAP;AAAA,cACA,IAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,KAAD,GAAH;cAAA,CADP;AAAA,cAEA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,MAAJ;cAAA,CAFP;AAAA,cAGA,MAAA,EAAQ,SAHR;cADiC;UAAA,EAAN;QAAA,EAAxB;MAAA,CAAP;AAAA,MAMA,WAAA,EAAa,SAAC,SAAD,GAAA;;UAAC,YAAU;SAAa;eAAA,SAAC,GAAD,GAAA;AAAY,cAAA,IAAA;AAAA,UAAV,OAAD,MAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBAC7C;AAAA,cAAA,IAAA,EAAM,EAAN;AAAA,cACA,IAAA,EAAM,SAAC,MAAD,GAAA;AAAY,oBAAA,GAAA;AAAA,gBAAA,UAA4B,MAAO,CAAA,IAAA,CAAP,EAAA,aAAoB,IAAC,CAAA,IAArB,EAAA,GAAA,KAA5B;yBAAA,IAAC,CAAA,IAAI,CAAC,IAAN,CAAW,MAAO,CAAA,IAAA,CAAlB,EAAA;iBAAZ;cAAA,CADN;AAAA,cAEA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,IAAI,CAAC,OAAT;cAAA,CAFP;AAAA,cAGA,MAAA,EAAQ,SAHR;AAAA,cAIA,SAAA,EAAc,YAAH,GAAc,CAAd,GAAqB,CAJhC;cAD6C;UAAA,EAAZ;QAAA,EAAxB;MAAA,CANb;AAAA,MAaA,UAAA,EAAY,SAAC,GAAD,GAAA;eAAS,SAAC,GAAD,GAAA;AAAY,cAAA,IAAA;AAAA,UAAV,OAAD,MAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBAC7B;AAAA,cAAA,IAAA,EAAM,EAAN;AAAA,cACA,IAAA,EAAM,SAAC,MAAD,GAAA;AAAY,oBAAA,GAAA;AAAA,gBAAA,UAA4B,MAAO,CAAA,IAAA,CAAP,EAAA,aAAoB,IAAC,CAAA,IAArB,EAAA,GAAA,KAA5B;yBAAA,IAAC,CAAA,IAAI,CAAC,IAAN,CAAW,MAAO,CAAA,IAAA,CAAlB,EAAA;iBAAZ;cAAA,CADN;AAAA,cAEA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,IAAI,CAAC,IAAN,CAAW,GAAX,EAAH;cAAA,CAFP;AAAA,cAGA,MAAA,EAAQ,SAAC,CAAD,GAAA;uBAAO,EAAP;cAAA,CAHR;AAAA,cAIA,SAAA,EAAc,YAAH,GAAc,CAAd,GAAqB,CAJhC;cAD6B;UAAA,EAAZ;QAAA,EAAT;MAAA,CAbZ;AAAA,MAoBA,GAAA,EAAK,SAAC,SAAD,GAAA;;UAAC,YAAU;SAAU;eAAA,SAAC,GAAD,GAAA;AAAY,cAAA,IAAA;AAAA,UAAV,OAAD,MAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBAClC;AAAA,cAAA,GAAA,EAAK,CAAL;AAAA,cACA,IAAA,EAAM,SAAC,MAAD,GAAA;AAAY,gBAAA,IAAoC,CAAA,KAAI,CAAM,UAAA,CAAW,MAAO,CAAA,IAAA,CAAlB,CAAN,CAAxC;yBAAA,IAAC,CAAA,GAAD,IAAQ,UAAA,CAAW,MAAO,CAAA,IAAA,CAAlB,EAAR;iBAAZ;cAAA,CADN;AAAA,cAEA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,IAAJ;cAAA,CAFP;AAAA,cAGA,MAAA,EAAQ,SAHR;AAAA,cAIA,SAAA,EAAc,YAAH,GAAc,CAAd,GAAqB,CAJhC;cADkC;UAAA,EAAZ;QAAA,EAArB;MAAA,CApBL;AAAA,MA2BA,GAAA,EAAK,SAAC,SAAD,GAAA;;UAAC,YAAU;SAAU;eAAA,SAAC,GAAD,GAAA;AAAY,cAAA,IAAA;AAAA,UAAV,OAAD,MAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBAClC;AAAA,cAAA,GAAA,EAAK,IAAL;AAAA,cACA,IAAA,EAAM,SAAC,MAAD,GAAA;AACF,oBAAA,MAAA;AAAA,gBAAA,CAAA,GAAI,UAAA,CAAW,MAAO,CAAA,IAAA,CAAlB,CAAJ,CAAA;AACA,gBAAA,IAAG,CAAA,KAAI,CAAM,CAAN,CAAP;yBAAoB,IAAC,CAAA,GAAD,GAAO,IAAI,CAAC,GAAL,CAAS,CAAT,mCAAmB,CAAnB,EAA3B;iBAFE;cAAA,CADN;AAAA,cAIA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,IAAJ;cAAA,CAJP;AAAA,cAKA,MAAA,EAAQ,SALR;AAAA,cAMA,SAAA,EAAc,YAAH,GAAc,CAAd,GAAqB,CANhC;cADkC;UAAA,EAAZ;QAAA,EAArB;MAAA,CA3BL;AAAA,MAoCA,GAAA,EAAK,SAAC,SAAD,GAAA;;UAAC,YAAU;SAAU;eAAA,SAAC,GAAD,GAAA;AAAY,cAAA,IAAA;AAAA,UAAV,OAAD,MAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBAClC;AAAA,cAAA,GAAA,EAAK,IAAL;AAAA,cACA,IAAA,EAAM,SAAC,MAAD,GAAA;AACF,oBAAA,MAAA;AAAA,gBAAA,CAAA,GAAI,UAAA,CAAW,MAAO,CAAA,IAAA,CAAlB,CAAJ,CAAA;AACA,gBAAA,IAAG,CAAA,KAAI,CAAM,CAAN,CAAP;yBAAoB,IAAC,CAAA,GAAD,GAAO,IAAI,CAAC,GAAL,CAAS,CAAT,mCAAmB,CAAnB,EAA3B;iBAFE;cAAA,CADN;AAAA,cAIA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,IAAJ;cAAA,CAJP;AAAA,cAKA,MAAA,EAAQ,SALR;AAAA,cAMA,SAAA,EAAc,YAAH,GAAc,CAAd,GAAqB,CANhC;cADkC;UAAA,EAAZ;QAAA,EAArB;MAAA,CApCL;AAAA,MA6CA,OAAA,EAAU,SAAC,SAAD,GAAA;;UAAC,YAAU;SAAU;eAAA,SAAC,GAAD,GAAA;AAAY,cAAA,IAAA;AAAA,UAAV,OAAD,MAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBACvC;AAAA,cAAA,GAAA,EAAK,CAAL;AAAA,cACA,GAAA,EAAK,CADL;AAAA,cAEA,IAAA,EAAM,SAAC,MAAD,GAAA;AACF,gBAAA,IAAG,CAAA,KAAI,CAAM,UAAA,CAAW,MAAO,CAAA,IAAA,CAAlB,CAAN,CAAP;AACI,kBAAA,IAAC,CAAA,GAAD,IAAQ,UAAA,CAAW,MAAO,CAAA,IAAA,CAAlB,CAAR,CAAA;yBACA,IAAC,CAAA,GAAD,GAFJ;iBADE;cAAA,CAFN;AAAA,cAMA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,GAAD,GAAK,IAAC,CAAA,IAAT;cAAA,CANP;AAAA,cAOA,MAAA,EAAQ,SAPR;AAAA,cAQA,SAAA,EAAc,YAAH,GAAc,CAAd,GAAqB,CARhC;cADuC;UAAA,EAAZ;QAAA,EAArB;MAAA,CA7CV;AAAA,MAwDA,UAAA,EAAY,SAAC,SAAD,GAAA;;UAAC,YAAU;SAAU;eAAA,SAAC,GAAD,GAAA;AAAkB,cAAA,UAAA;AAAA,UAAhB,cAAK,cAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBAC/C;AAAA,cAAA,MAAA,EAAQ,CAAR;AAAA,cACA,QAAA,EAAU,CADV;AAAA,cAEA,IAAA,EAAM,SAAC,MAAD,GAAA;AACF,gBAAA,IAA0C,CAAA,KAAI,CAAM,UAAA,CAAW,MAAO,CAAA,GAAA,CAAlB,CAAN,CAA9C;AAAA,kBAAA,IAAC,CAAA,MAAD,IAAa,UAAA,CAAW,MAAO,CAAA,GAAA,CAAlB,CAAb,CAAA;iBAAA;AACA,gBAAA,IAA0C,CAAA,KAAI,CAAM,UAAA,CAAW,MAAO,CAAA,KAAA,CAAlB,CAAN,CAA9C;yBAAA,IAAC,CAAA,QAAD,IAAa,UAAA,CAAW,MAAO,CAAA,KAAA,CAAlB,EAAb;iBAFE;cAAA,CAFN;AAAA,cAKA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,MAAD,GAAQ,IAAC,CAAA,SAAZ;cAAA,CALP;AAAA,cAMA,MAAA,EAAQ,SANR;AAAA,cAOA,SAAA,EAAc,aAAA,IAAS,eAAZ,GAAwB,CAAxB,GAA+B,CAP1C;cAD+C;UAAA,EAAlB;QAAA,EAArB;MAAA,CAxDZ;AAAA,MAkEA,iBAAA,EAAmB,SAAC,KAAD,EAAa,SAAb,GAAA;;UAAC,QAAM;SAA0B;;UAApB,YAAU;SAAU;eAAA,SAAC,GAAD,GAAA;AAAkB,cAAA,UAAA;AAAA,UAAhB,cAAK,cAAW,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBAClE;AAAA,cAAA,MAAA,EAAQ,CAAR;AAAA,cACA,QAAA,EAAU,CADV;AAAA,cAEA,IAAA,EAAM,SAAC,MAAD,GAAA;AACF,gBAAA,IAA0C,CAAA,KAAI,CAAM,UAAA,CAAW,MAAO,CAAA,GAAA,CAAlB,CAAN,CAA9C;AAAA,kBAAA,IAAC,CAAA,MAAD,IAAa,UAAA,CAAW,MAAO,CAAA,GAAA,CAAlB,CAAb,CAAA;iBAAA;AACA,gBAAA,IAA0C,CAAA,KAAI,CAAM,UAAA,CAAW,MAAO,CAAA,KAAA,CAAlB,CAAN,CAA9C;yBAAA,IAAC,CAAA,QAAD,IAAa,UAAA,CAAW,MAAO,CAAA,KAAA,CAAlB,EAAb;iBAFE;cAAA,CAFN;AAAA,cAKA,KAAA,EAAO,SAAA,GAAA;AACH,oBAAA,IAAA;AAAA,gBAAA,IAAA,GAAU,KAAH,GAAc,CAAd,GAAqB,CAAA,CAA5B,CAAA;uBACA,CAAC,iBAAA,GAAkB,IAAC,CAAA,QAAnB,GAA8B,IAAC,CAAA,MAAD,GAAQ,IAAC,CAAA,QAAvC,GAAkD,kBAAA,GAAmB,IAAnB,GAC/C,IAAI,CAAC,IAAL,CAAU,iBAAA,GAAmB,CAAC,IAAC,CAAA,QAAD,GAAU,IAAC,CAAA,QAAZ,CAAnB,GAA2C,CAAC,IAAC,CAAA,MAAD,GAAQ,CAAC,CAAA,GAAI,IAAC,CAAA,MAAD,GAAS,IAAC,CAAA,QAAf,CAAT,CAAA,GAAoC,CAAC,IAAC,CAAA,QAAD,GAAU,IAAC,CAAA,QAAZ,CAAzF,CADJ,CAAA,GAEI,CAAC,CAAA,GAAI,iBAAA,GAAkB,IAAC,CAAA,QAAxB,EAJD;cAAA,CALP;AAAA,cAUA,MAAA,EAAQ,SAVR;AAAA,cAWA,SAAA,EAAc,aAAA,IAAS,eAAZ,GAAwB,CAAxB,GAA+B,CAX1C;cADkE;UAAA,EAAlB;QAAA,EAAjC;MAAA,CAlEnB;AAAA,MAgFA,UAAA,EAAY,SAAC,OAAD,EAAU,IAAV,EAAwB,SAAxB,GAAA;;UAAU,OAAK;SAAgC;;UAAvB,YAAU;SAAa;eAAA,SAAA,GAAA;AAAU,cAAA,CAAA;AAAA,UAAT,yDAAS,CAAA;iBAAA,SAAC,IAAD,EAAO,MAAP,EAAe,MAAf,GAAA;mBACjE;AAAA,cAAA,QAAA,EAAU;AAAA,gBAAC,KAAA,EAAM,CAAC,EAAD,EAAI,EAAJ,CAAP;AAAA,gBAAe,GAAA,EAAI,CAAC,MAAD,EAAQ,EAAR,CAAnB;AAAA,gBAA+B,GAAA,EAAI,CAAC,EAAD,EAAI,MAAJ,CAAnC;eAAgD,CAAA,IAAA,CAA1D;AAAA,cACA,KAAA,EAAO,OAAA,aAAQ,CAAR,CAAA,CAAc,IAAd,EAAoB,MAApB,EAA4B,MAA5B,CADP;AAAA,cAEA,IAAA,EAAM,SAAC,MAAD,GAAA;uBAAY,IAAC,CAAA,KAAK,CAAC,IAAP,CAAY,MAAZ,EAAZ;cAAA,CAFN;AAAA,cAGA,MAAA,EAAQ,SAHR;AAAA,cAIA,KAAA,EAAO,SAAA,GAAA;uBAAG,IAAC,CAAA,KAAK,CAAC,KAAP,CAAA,CAAA,GAAiB,IAAI,CAAC,aAAL,aAAmB,IAAC,CAAA,QAApB,CAAgC,CAAC,KAAK,CAAC,KAAvC,CAAA,EAApB;cAAA,CAJP;AAAA,cAKA,SAAA,EAAW,OAAA,aAAQ,CAAR,CAAA,CAAA,CAAe,CAAC,SAL3B;cADiE;UAAA,EAAV;QAAA,EAA/C;MAAA,CAhFZ;KAhCJ,CAAA;AAAA,IAyHA,WAAA,GAAiB,CAAA,SAAC,GAAD,GAAA;aACb;AAAA,QAAA,OAAA,EAAwB,GAAG,CAAC,KAAJ,CAAU,QAAV,CAAxB;AAAA,QACA,qBAAA,EAAwB,GAAG,CAAC,WAAJ,CAAgB,QAAhB,CADxB;AAAA,QAEA,oBAAA,EAAwB,GAAG,CAAC,UAAJ,CAAe,IAAf,CAFxB;AAAA,QAGA,KAAA,EAAwB,GAAG,CAAC,GAAJ,CAAQ,KAAR,CAHxB;AAAA,QAIA,aAAA,EAAwB,GAAG,CAAC,GAAJ,CAAQ,QAAR,CAJxB;AAAA,QAKA,SAAA,EAAwB,GAAG,CAAC,OAAJ,CAAY,KAAZ,CALxB;AAAA,QAMA,SAAA,EAAwB,GAAG,CAAC,GAAJ,CAAQ,KAAR,CANxB;AAAA,QAOA,SAAA,EAAwB,GAAG,CAAC,GAAJ,CAAQ,KAAR,CAPxB;AAAA,QAQA,cAAA,EAAwB,GAAG,CAAC,UAAJ,CAAe,KAAf,CARxB;AAAA,QASA,iBAAA,EAAwB,GAAG,CAAC,iBAAJ,CAAsB,IAAtB,EAA4B,KAA5B,CATxB;AAAA,QAUA,iBAAA,EAAwB,GAAG,CAAC,iBAAJ,CAAsB,KAAtB,EAA6B,KAA7B,CAVxB;AAAA,QAWA,0BAAA,EAAgC,GAAG,CAAC,UAAJ,CAAe,GAAG,CAAC,GAAJ,CAAA,CAAf,EAA4B,OAA5B,EAAqC,QAArC,CAXhC;AAAA,QAYA,yBAAA,EAAgC,GAAG,CAAC,UAAJ,CAAe,GAAG,CAAC,GAAJ,CAAA,CAAf,EAA4B,KAA5B,EAAqC,QAArC,CAZhC;AAAA,QAaA,4BAAA,EAAgC,GAAG,CAAC,UAAJ,CAAe,GAAG,CAAC,GAAJ,CAAA,CAAf,EAA4B,KAA5B,EAAqC,QAArC,CAbhC;AAAA,QAcA,4BAAA,EAAgC,GAAG,CAAC,UAAJ,CAAe,GAAG,CAAC,KAAJ,CAAA,CAAf,EAA4B,OAA5B,EAAqC,QAArC,CAdhC;AAAA,QAeA,2BAAA,EAAgC,GAAG,CAAC,UAAJ,CAAe,GAAG,CAAC,KAAJ,CAAA,CAAf,EAA4B,KAA5B,EAAqC,QAArC,CAfhC;AAAA,QAgBA,8BAAA,EAAgC,GAAG,CAAC,UAAJ,CAAe,GAAG,CAAC,KAAJ,CAAA,CAAf,EAA4B,KAA5B,EAAqC,QAArC,CAhBhC;QADa;IAAA,CAAA,CAAH,CAAU,mBAAV,CAzHd,CAAA;AAAA,IA4IA,SAAA,GACI;AAAA,MAAA,OAAA,EAAkB,SAAC,OAAD,EAAU,IAAV,GAAA;eAAqB,kBAAA,CAAmB,OAAnB,EAA4B,IAA5B,EAArB;MAAA,CAAlB;AAAA,MACA,gBAAA,EAAkB,SAAC,OAAD,EAAU,IAAV,GAAA;eAAmB,CAAA,CAAE,kBAAA,CAAmB,OAAnB,EAA4B,IAA5B,CAAF,CAAoC,CAAC,QAArC,CAAA,EAAnB;MAAA,CADlB;AAAA,MAEA,SAAA,EAAkB,SAAC,OAAD,EAAU,IAAV,GAAA;eAAmB,CAAA,CAAE,kBAAA,CAAmB,OAAnB,EAA4B,IAA5B,CAAF,CAAoC,CAAC,OAArC,CAAA,EAAnB;MAAA,CAFlB;AAAA,MAGA,aAAA,EAAkB,SAAC,OAAD,EAAU,IAAV,GAAA;eAAmB,CAAA,CAAE,kBAAA,CAAmB,OAAnB,EAA4B,IAA5B,CAAF,CAAoC,CAAC,OAArC,CAA6C,YAA7C,EAAnB;MAAA,CAHlB;AAAA,MAIA,aAAA,EAAkB,SAAC,OAAD,EAAU,IAAV,GAAA;eAAmB,CAAA,CAAE,kBAAA,CAAmB,OAAnB,EAA4B,IAA5B,CAAF,CAAoC,CAAC,OAArC,CAA6C,YAA7C,EAAnB;MAAA,CAJlB;KA7IJ,CAAA;AAAA,IAmJA,OAAA,GACI;AAAA,MAAA,EAAA,EACI;AAAA,QAAA,WAAA,EAAa,WAAb;AAAA,QACA,SAAA,EAAW,SADX;AAAA,QAEA,aAAA,EACI;AAAA,UAAA,WAAA,EAAa,qDAAb;AAAA,UACA,YAAA,EAAc,qDADd;AAAA,UAEA,aAAA,EAAe,gDAFf;AAAA,UAGA,SAAA,EAAW,YAHX;AAAA,UAIA,UAAA,EAAY,aAJZ;AAAA,UAKA,OAAA,EAAS,oBALT;AAAA,UAMA,aAAA,EAAe,gBANf;AAAA,UAOA,MAAA,EAAQ,QAPR;AAAA,UAQA,EAAA,EAAI,IARJ;AAAA,UASA,EAAA,EAAI,IATJ;SAHJ;OADJ;KApJJ,CAAA;AAAA,IAoKA,UAAA,GAAa,CAAC,KAAD,EAAO,KAAP,EAAa,KAAb,EAAmB,KAAnB,EAAyB,KAAzB,EAA+B,KAA/B,EAAqC,KAArC,EAA2C,KAA3C,EAAiD,KAAjD,EAAuD,KAAvD,EAA6D,KAA7D,EAAmE,KAAnE,CApKb,CAAA;AAAA,IAqKA,UAAA,GAAa,CAAC,KAAD,EAAO,KAAP,EAAa,KAAb,EAAmB,KAAnB,EAAyB,KAAzB,EAA+B,KAA/B,EAAqC,KAArC,CArKb,CAAA;AAAA,IAsKA,OAAA,GAAU,SAAC,MAAD,GAAA;aAAY,CAAC,GAAA,GAAI,MAAL,CAAY,CAAC,MAAb,CAAoB,CAAA,CAApB,EAAuB,CAAvB,EAAZ;IAAA,CAtKV,CAAA;AAAA,IAwKA,QAAA,GACI;AAAA,MAAA,GAAA,EAAK,SAAC,GAAD,EAAM,QAAN,GAAA;eAAmB,SAAC,MAAD,GAAA;iBAAY,MAAO,CAAA,GAAA,CAAP,GAAc,MAAO,CAAA,GAAA,CAAP,GAAc,SAAxC;QAAA,EAAnB;MAAA,CAAL;AAAA,MACA,UAAA,EAAY,SAAC,GAAD,EAAM,YAAN,EAAoB,SAApB,EAAqC,QAArC,EAA0D,QAA1D,GAAA;AACR,YAAA,GAAA;;UAD4B,YAAU;SACtC;;UAD6C,WAAS;SACtD;;UADkE,WAAS;SAC3E;AAAA,QAAA,GAAA,GAAS,SAAH,GAAkB,KAAlB,GAA6B,EAAnC,CAAA;eACA,SAAC,MAAD,GAAA;AACI,cAAA,IAAA;AAAA,UAAA,IAAA,GAAW,IAAA,IAAA,CAAK,IAAI,CAAC,KAAL,CAAW,MAAO,CAAA,GAAA,CAAlB,CAAL,CAAX,CAAA;AACA,UAAA,IAAG,KAAA,CAAM,IAAN,CAAH;AAAoB,mBAAO,EAAP,CAApB;WADA;iBAEA,YAAY,CAAC,OAAb,CAAqB,OAArB,EAA8B,SAAC,CAAD,EAAI,CAAJ,GAAA;AAC1B,oBAAO,CAAP;AAAA,mBACS,GADT;uBACkB,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,UAAV,CAAL,CAAA,EADlB;AAAA,mBAES,GAFT;uBAEkB,OAAA,CAAQ,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,OAAV,CAAL,CAAA,CAAA,GAAyB,CAAjC,EAFlB;AAAA,mBAGS,GAHT;uBAGkB,QAAS,CAAA,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,OAAV,CAAL,CAAA,CAAA,EAH3B;AAAA,mBAIS,GAJT;uBAIkB,OAAA,CAAQ,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,MAAV,CAAL,CAAA,CAAR,EAJlB;AAAA,mBAKS,GALT;uBAKkB,QAAS,CAAA,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,KAAV,CAAL,CAAA,CAAA,EAL3B;AAAA,mBAMS,GANT;uBAMkB,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,KAAV,CAAL,CAAA,EANlB;AAAA,mBAOS,GAPT;uBAOkB,OAAA,CAAQ,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,OAAV,CAAL,CAAA,CAAR,EAPlB;AAAA,mBAQS,GART;uBAQkB,OAAA,CAAQ,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,SAAV,CAAL,CAAA,CAAR,EARlB;AAAA,mBASS,GATT;uBASkB,OAAA,CAAQ,IAAK,CAAA,KAAA,GAAM,GAAN,GAAU,SAAV,CAAL,CAAA,CAAR,EATlB;AAAA;uBAUS,GAAA,GAAM,EAVf;AAAA,aAD0B;UAAA,CAA9B,EAHJ;QAAA,EAFQ;MAAA,CADZ;KAzKJ,CAAA;AAAA,IA4LA,WAAA,GAAc,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,EAAD,EAAK,EAAL,GAAA;AACV,YAAA,wBAAA;AAAA,QAAA,EAAA,GAAK,cAAL,CAAA;AAAA,QACA,EAAA,GAAK,IADL,CAAA;AAAA,QAEA,EAAA,GAAK,IAFL,CAAA;AAGA,QAAA,IAAG,MAAA,CAAA,EAAA,KAAa,QAAb,IAAyB,MAAA,CAAA,EAAA,KAAa,QAAzC;AACI,UAAA,IAAa,KAAA,CAAM,EAAN,CAAb;AAAA,mBAAO,CAAP,CAAA;WAAA;AACA,UAAA,IAAc,KAAA,CAAM,EAAN,CAAd;AAAA,mBAAO,CAAA,CAAP,CAAA;WADA;AAEA,iBAAO,EAAA,GAAK,EAAZ,CAHJ;SAHA;AAAA,QAOA,CAAA,GAAI,MAAA,CAAO,EAAP,CAAU,CAAC,WAAX,CAAA,CAPJ,CAAA;AAAA,QAQA,CAAA,GAAI,MAAA,CAAO,EAAP,CAAU,CAAC,WAAX,CAAA,CARJ,CAAA;AASA,QAAA,IAAa,CAAA,KAAK,CAAlB;AAAA,iBAAO,CAAP,CAAA;SATA;AAUA,QAAA,IAAA,CAAA,CAAyC,EAAE,CAAC,IAAH,CAAQ,CAAR,CAAA,IAAe,EAAE,CAAC,IAAH,CAAQ,CAAR,CAAxD,CAAA;AAAA,iBAAO,CAAI,CAAA,GAAI,CAAP,GAAc,CAAd,GAAqB,CAAA,CAAtB,CAAP,CAAA;SAVA;AAAA,QAWA,CAAA,GAAI,CAAC,CAAC,KAAF,CAAQ,EAAR,CAXJ,CAAA;AAAA,QAYA,CAAA,GAAI,CAAC,CAAC,KAAF,CAAQ,EAAR,CAZJ,CAAA;AAaA,eAAM,CAAC,CAAC,MAAF,IAAa,CAAC,CAAC,MAArB,GAAA;AACI,UAAA,EAAA,GAAK,CAAC,CAAC,KAAF,CAAA,CAAL,CAAA;AAAA,UACA,EAAA,GAAK,CAAC,CAAC,KAAF,CAAA,CADL,CAAA;AAEA,UAAA,IAAG,EAAA,KAAQ,EAAX;AACI,YAAA,IAAG,EAAE,CAAC,IAAH,CAAQ,EAAR,CAAA,IAAgB,EAAE,CAAC,IAAH,CAAQ,EAAR,CAAnB;AACI,qBAAO,EAAE,CAAC,OAAH,CAAW,EAAX,EAAe,IAAf,CAAA,GAAuB,EAAE,CAAC,OAAH,CAAW,EAAX,EAAe,IAAf,CAA9B,CADJ;aAAA,MAAA;AAGI,qBAAO,CAAI,EAAA,GAAK,EAAR,GAAgB,CAAhB,GAAuB,CAAA,CAAxB,CAAP,CAHJ;aADJ;WAHJ;QAAA,CAbA;eAqBA,CAAC,CAAC,MAAF,GAAW,CAAC,CAAC,OAtBH;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CA5Ld,CAAA;AAAA,IAoNA,MAAA,GAAS,SAAC,KAAD,GAAA;AACL,UAAA,aAAA;AAAA,MAAA,OAAA,GAAU,EAAV,CAAA;AACA,WAAA,UAAA;qBAAA;AACI,QAAA,OAAQ,CAAA,CAAA,CAAR,GAAa,CAAb,CADJ;AAAA,OADA;aAGA,SAAC,CAAD,EAAI,CAAJ,GAAA;AACI,QAAA,IAAG,oBAAA,IAAgB,oBAAnB;AACI,iBAAO,OAAQ,CAAA,CAAA,CAAR,GAAa,OAAQ,CAAA,CAAA,CAA5B,CADJ;SAAA,MAEK,IAAG,kBAAH;AACD,iBAAO,CAAA,CAAP,CADC;SAAA,MAEA,IAAG,kBAAH;AACD,iBAAO,CAAP,CADC;SAAA,MAAA;AAGD,iBAAO,WAAA,CAAY,CAAZ,EAAc,CAAd,CAAP,CAHC;SALT;MAAA,EAJK;IAAA,CApNT,CAAA;AAAA,IAkOA,OAAA,GAAU,SAAC,OAAD,EAAU,IAAV,GAAA;AACN,UAAA,IAAA;AAAA,MAAA,IAAA,GAAO,OAAA,CAAQ,IAAR,CAAP,CAAA;AACA,MAAA,IAAG,CAAC,CAAC,UAAF,CAAa,IAAb,CAAH;AACI,eAAO,IAAP,CADJ;OAAA,MAAA;AAGI,eAAO,WAAP,CAHJ;OAFM;IAAA,CAlOV,CAAA;AAAA,IA0OA,CAAC,CAAC,cAAF,GAAmB;AAAA,MAAC,qBAAA,mBAAD;AAAA,MAAsB,aAAA,WAAtB;AAAA,MAAmC,WAAA,SAAnC;AAAA,MAA8C,UAAA,QAA9C;AAAA,MAAwD,SAAA,OAAxD;AAAA,MACf,aAAA,WADe;AAAA,MACF,cAAA,YADE;AAAA,MACY,QAAA,MADZ;KA1OnB,CAAA;AA6OA;AAAA;;OA7OA;AAAA,IAiPM;AACW,MAAA,mBAAC,KAAD,EAAQ,IAAR,GAAA;AACT,2DAAA,CAAA;AAAA,qDAAA,CAAA;AAAA,qDAAA,CAAA;AAAA,iDAAA,CAAA;AAAA,+CAAA,CAAA;AAAA,QAAA,IAAC,CAAA,UAAD,GAAc,IAAI,CAAC,UAAnB,CAAA;AAAA,QACA,IAAC,CAAA,cAAD,GAAkB,IAAI,CAAC,cADvB,CAAA;AAAA,QAEA,IAAC,CAAA,QAAD,GAAY,IAAI,CAAC,IAFjB,CAAA;AAAA,QAGA,IAAC,CAAA,QAAD,GAAY,IAAI,CAAC,IAHjB,CAAA;AAAA,QAIA,IAAC,CAAA,QAAD,GAAY,IAAI,CAAC,IAJjB,CAAA;AAAA,QAKA,IAAC,CAAA,OAAD,GAAW,IAAI,CAAC,OALhB,CAAA;AAAA,QAMA,IAAC,CAAA,IAAD,GAAQ,EANR,CAAA;AAAA,QAOA,IAAC,CAAA,OAAD,GAAW,EAPX,CAAA;AAAA,QAQA,IAAC,CAAA,OAAD,GAAW,EARX,CAAA;AAAA,QASA,IAAC,CAAA,SAAD,GAAa,EATb,CAAA;AAAA,QAUA,IAAC,CAAA,SAAD,GAAa,EAVb,CAAA;AAAA,QAWA,IAAC,CAAA,QAAD,GAAY,IAAC,CAAA,UAAD,CAAY,IAAZ,EAAkB,EAAlB,EAAsB,EAAtB,CAXZ,CAAA;AAAA,QAYA,IAAC,CAAA,MAAD,GAAU,KAZV,CAAA;AAAA,QAeA,SAAS,CAAC,aAAV,CAAwB,KAAxB,EAA+B,IAAI,CAAC,iBAApC,EAAuD,CAAA,SAAA,KAAA,GAAA;iBAAA,SAAC,MAAD,GAAA;AACnD,YAAA,IAA0B,IAAI,CAAC,MAAL,CAAY,MAAZ,CAA1B;qBAAA,KAAC,CAAA,aAAD,CAAe,MAAf,EAAA;aADmD;UAAA,EAAA;QAAA,CAAA,CAAA,CAAA,IAAA,CAAvD,CAfA,CADS;MAAA,CAAb;;AAAA,MAoBA,SAAC,CAAA,aAAD,GAAiB,SAAC,KAAD,EAAQ,iBAAR,EAA2B,CAA3B,GAAA;AACb,YAAA,mFAAA;AAAA,QAAA,IAAG,CAAC,CAAC,aAAF,CAAgB,iBAAhB,CAAH;AACI,UAAA,SAAA,GAAY,CAAZ,CADJ;SAAA,MAAA;AAGI,UAAA,SAAA,GAAY,SAAC,MAAD,GAAA;AACR,gBAAA,SAAA;AAAA,iBAAA,sBAAA;uCAAA;AAAA,cAAA,MAAO,CAAA,CAAA,CAAP,qCAAwB,MAAO,CAAA,CAAA,CAA/B,CAAA;AAAA,aAAA;mBACA,CAAA,CAAE,MAAF,EAFQ;UAAA,CAAZ,CAHJ;SAAA;AAQA,QAAA,IAAG,CAAC,CAAC,UAAF,CAAa,KAAb,CAAH;iBACI,KAAA,CAAM,SAAN,EADJ;SAAA,MAEK,IAAG,CAAC,CAAC,OAAF,CAAU,KAAV,CAAH;AACD,UAAA,IAAG,CAAC,CAAC,OAAF,CAAU,KAAM,CAAA,CAAA,CAAhB,CAAH;AACI;iBAAA,UAAA;;uCAAA;oBAAuC,CAAA,GAAI;;eACvC;AAAA,cAAA,MAAA,GAAS,EAAT,CAAA;AACA;AAAA,mBAAA,QAAA;;2BAAA;AAAA,gBAAA,MAAO,CAAA,CAAA,CAAP,GAAY,aAAc,CAAA,CAAA,CAA1B,CAAA;AAAA,eADA;AAAA,2BAEA,SAAA,CAAU,MAAV,EAFA,CADJ;AAAA;2BADJ;WAAA,MAAA;AAMI;iBAAA,yCAAA;gCAAA;AAAA,4BAAA,SAAA,CAAU,MAAV,EAAA,CAAA;AAAA;4BANJ;WADC;SAAA,MAQA,IAAG,KAAA,YAAiB,MAApB;AACD,UAAA,OAAA,GAAU,EAAV,CAAA;AAAA,UACA,CAAA,CAAE,iBAAF,EAAqB,KAArB,CAA2B,CAAC,IAA5B,CAAiC,SAAC,CAAD,GAAA;mBAAO,OAAO,CAAC,IAAR,CAAa,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAA,CAAb,EAAP;UAAA,CAAjC,CADA,CAAA;iBAEA,CAAA,CAAE,YAAF,EAAgB,KAAhB,CAAsB,CAAC,IAAvB,CAA4B,SAAC,CAAD,GAAA;AACxB,YAAA,MAAA,GAAS,EAAT,CAAA;AAAA,YACA,CAAA,CAAE,IAAF,EAAQ,IAAR,CAAa,CAAC,IAAd,CAAmB,SAAC,CAAD,GAAA;qBAAO,MAAO,CAAA,OAAQ,CAAA,CAAA,CAAR,CAAP,GAAqB,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAA,EAA5B;YAAA,CAAnB,CADA,CAAA;mBAEA,SAAA,CAAU,MAAV,EAHwB;UAAA,CAA5B,EAHC;SAAA,MAAA;AAQD,gBAAU,IAAA,KAAA,CAAM,sBAAN,CAAV,CARC;SAnBQ;MAAA,CApBjB,CAAA;;AAAA,MAkDA,SAAC,CAAA,cAAD,GAAkB,SAAC,KAAD,GAAA;AACd,YAAA,MAAA;AAAA,QAAA,MAAA,GAAS,EAAT,CAAA;AAAA,QACA,SAAS,CAAC,aAAV,CAAwB,KAAxB,EAA+B,EAA/B,EAAmC,SAAC,MAAD,GAAA;iBAAY,MAAM,CAAC,IAAP,CAAY,MAAZ,EAAZ;QAAA,CAAnC,CADA,CAAA;AAEA,eAAO,MAAP,CAHc;MAAA,CAlDlB,CAAA;;AAAA,0BAuDA,OAAA,GAAS,SAAC,KAAD,GAAA;AACL,YAAA,aAAA;AAAA,QAAA,UAAA;;AAAc;eAAA,yCAAA;yBAAA;AAAA,yBAAA,OAAA,CAAQ,IAAC,CAAA,OAAT,EAAkB,CAAlB,EAAA,CAAA;AAAA;;qBAAd,CAAA;eACA,SAAC,CAAD,EAAG,CAAH,GAAA;AACI,cAAA,qBAAA;AAAA,eAAA,eAAA;mCAAA;AACI,YAAA,UAAA,GAAa,MAAA,CAAO,CAAE,CAAA,CAAA,CAAT,EAAa,CAAE,CAAA,CAAA,CAAf,CAAb,CAAA;AACA,YAAA,IAAqB,UAAA,KAAc,CAAnC;AAAA,qBAAO,UAAP,CAAA;aAFJ;AAAA,WAAA;AAGA,iBAAO,CAAP,CAJJ;QAAA,EAFK;MAAA,CAvDT,CAAA;;AAAA,0BA+DA,QAAA,GAAU,SAAA,GAAA;AACN,QAAA,IAAG,CAAA,IAAK,CAAA,MAAR;AACI,UAAA,IAAC,CAAA,MAAD,GAAU,IAAV,CAAA;AAAA,UACA,IAAC,CAAA,OAAO,CAAC,IAAT,CAAc,IAAC,CAAA,OAAD,CAAS,IAAC,CAAA,QAAV,CAAd,CADA,CAAA;iBAEA,IAAC,CAAA,OAAO,CAAC,IAAT,CAAc,IAAC,CAAA,OAAD,CAAS,IAAC,CAAA,QAAV,CAAd,EAHJ;SADM;MAAA,CA/DV,CAAA;;AAAA,0BAqEA,UAAA,GAAY,SAAA,GAAA;AACR,QAAA,IAAC,CAAA,QAAD,CAAA,CAAA,CAAA;AACA,eAAO,IAAC,CAAA,OAAR,CAFQ;MAAA,CArEZ,CAAA;;AAAA,0BAyEA,UAAA,GAAY,SAAA,GAAA;AACR,QAAA,IAAC,CAAA,QAAD,CAAA,CAAA,CAAA;AACA,eAAO,IAAC,CAAA,OAAR,CAFQ;MAAA,CAzEZ,CAAA;;AAAA,0BA6EA,aAAA,GAAe,SAAC,MAAD,GAAA;AACX,YAAA,kFAAA;AAAA,QAAA,MAAA,GAAS,EAAT,CAAA;AAAA,QACA,MAAA,GAAS,EADT,CAAA;AAEA;AAAA,aAAA,uCAAA;qBAAA;AAAA,UAAA,MAAM,CAAC,IAAP,qCAAwB,MAAxB,CAAA,CAAA;AAAA,SAFA;AAGA;AAAA,aAAA,wCAAA;sBAAA;AAAA,UAAA,MAAM,CAAC,IAAP,qCAAwB,MAAxB,CAAA,CAAA;AAAA,SAHA;AAAA,QAIA,UAAA,GAAa,MAAM,CAAC,IAAP,CAAY,MAAM,CAAC,YAAP,CAAoB,CAApB,CAAZ,CAJb,CAAA;AAAA,QAKA,UAAA,GAAa,MAAM,CAAC,IAAP,CAAY,MAAM,CAAC,YAAP,CAAoB,CAApB,CAAZ,CALb,CAAA;AAAA,QAOA,IAAC,CAAA,QAAQ,CAAC,IAAV,CAAe,MAAf,CAPA,CAAA;AASA,QAAA,IAAG,MAAM,CAAC,MAAP,KAAiB,CAApB;AACI,UAAA,IAAG,CAAA,IAAK,CAAA,SAAU,CAAA,UAAA,CAAlB;AACI,YAAA,IAAC,CAAA,OAAO,CAAC,IAAT,CAAc,MAAd,CAAA,CAAA;AAAA,YACA,IAAC,CAAA,SAAU,CAAA,UAAA,CAAX,GAAyB,IAAC,CAAA,UAAD,CAAY,IAAZ,EAAkB,MAAlB,EAA0B,EAA1B,CADzB,CADJ;WAAA;AAAA,UAGA,IAAC,CAAA,SAAU,CAAA,UAAA,CAAW,CAAC,IAAvB,CAA4B,MAA5B,CAHA,CADJ;SATA;AAeA,QAAA,IAAG,MAAM,CAAC,MAAP,KAAiB,CAApB;AACI,UAAA,IAAG,CAAA,IAAK,CAAA,SAAU,CAAA,UAAA,CAAlB;AACI,YAAA,IAAC,CAAA,OAAO,CAAC,IAAT,CAAc,MAAd,CAAA,CAAA;AAAA,YACA,IAAC,CAAA,SAAU,CAAA,UAAA,CAAX,GAAyB,IAAC,CAAA,UAAD,CAAY,IAAZ,EAAkB,EAAlB,EAAsB,MAAtB,CADzB,CADJ;WAAA;AAAA,UAGA,IAAC,CAAA,SAAU,CAAA,UAAA,CAAW,CAAC,IAAvB,CAA4B,MAA5B,CAHA,CADJ;SAfA;AAqBA,QAAA,IAAG,MAAM,CAAC,MAAP,KAAiB,CAAjB,IAAuB,MAAM,CAAC,MAAP,KAAiB,CAA3C;AACI,UAAA,IAAG,CAAA,IAAK,CAAA,IAAK,CAAA,UAAA,CAAb;AACI,YAAA,IAAC,CAAA,IAAK,CAAA,UAAA,CAAN,GAAoB,EAApB,CADJ;WAAA;AAEA,UAAA,IAAG,CAAA,IAAK,CAAA,IAAK,CAAA,UAAA,CAAY,CAAA,UAAA,CAAzB;AACI,YAAA,IAAC,CAAA,IAAK,CAAA,UAAA,CAAY,CAAA,UAAA,CAAlB,GAAgC,IAAC,CAAA,UAAD,CAAY,IAAZ,EAAkB,MAAlB,EAA0B,MAA1B,CAAhC,CADJ;WAFA;iBAIA,IAAC,CAAA,IAAK,CAAA,UAAA,CAAY,CAAA,UAAA,CAAW,CAAC,IAA9B,CAAmC,MAAnC,EALJ;SAtBW;MAAA,CA7Ef,CAAA;;AAAA,0BA0GA,aAAA,GAAe,SAAC,MAAD,EAAS,MAAT,GAAA;AACX,YAAA,2BAAA;AAAA,QAAA,UAAA,GAAa,MAAM,CAAC,IAAP,CAAY,MAAM,CAAC,YAAP,CAAoB,CAApB,CAAZ,CAAb,CAAA;AAAA,QACA,UAAA,GAAa,MAAM,CAAC,IAAP,CAAY,MAAM,CAAC,YAAP,CAAoB,CAApB,CAAZ,CADb,CAAA;AAEA,QAAA,IAAG,MAAM,CAAC,MAAP,KAAiB,CAAjB,IAAuB,MAAM,CAAC,MAAP,KAAiB,CAA3C;AACI,UAAA,GAAA,GAAM,IAAC,CAAA,QAAP,CADJ;SAAA,MAEK,IAAG,MAAM,CAAC,MAAP,KAAiB,CAApB;AACD,UAAA,GAAA,GAAM,IAAC,CAAA,SAAU,CAAA,UAAA,CAAjB,CADC;SAAA,MAEA,IAAG,MAAM,CAAC,MAAP,KAAiB,CAApB;AACD,UAAA,GAAA,GAAM,IAAC,CAAA,SAAU,CAAA,UAAA,CAAjB,CADC;SAAA,MAAA;AAGD,UAAA,GAAA,GAAM,IAAC,CAAA,IAAK,CAAA,UAAA,CAAY,CAAA,UAAA,CAAxB,CAHC;SANL;AAUA,6BAAO,MAAM;AAAA,UAAC,KAAA,EAAO,CAAC,SAAA,GAAA;mBAAG,KAAH;UAAA,CAAD,CAAR;AAAA,UAAmB,MAAA,EAAQ,SAAA,GAAA;mBAAG,GAAH;UAAA,CAA3B;SAAb,CAXW;MAAA,CA1Gf,CAAA;;uBAAA;;QAlPJ,CAAA;AAyWA;AAAA;;OAzWA;AAAA,IA6WA,kBAAA,GAAqB,SAAC,SAAD,EAAY,IAAZ,GAAA;AAEjB,UAAA,kJAAA;AAAA,MAAA,QAAA,GACI;AAAA,QAAA,aAAA,EACI;AAAA,UAAA,MAAA,EAAQ,QAAR;SADJ;OADJ,CAAA;AAAA,MAIA,IAAA,GAAO,CAAC,CAAC,MAAF,CAAS,QAAT,EAAmB,IAAnB,CAJP,CAAA;AAAA,MAMA,QAAA,GAAW,SAAS,CAAC,QANrB,CAAA;AAAA,MAOA,QAAA,GAAW,SAAS,CAAC,QAPrB,CAAA;AAAA,MAQA,OAAA,GAAU,SAAS,CAAC,UAAV,CAAA,CARV,CAAA;AAAA,MASA,OAAA,GAAU,SAAS,CAAC,UAAV,CAAA,CATV,CAAA;AAAA,MAYA,MAAA,GAAS,QAAQ,CAAC,aAAT,CAAuB,OAAvB,CAZT,CAAA;AAAA,MAaA,MAAM,CAAC,SAAP,GAAmB,UAbnB,CAAA;AAAA,MAgBA,QAAA,GAAW,SAAC,GAAD,EAAM,CAAN,EAAS,CAAT,GAAA;AACP,YAAA,qCAAA;AAAA,QAAA,IAAG,CAAA,KAAK,CAAR;AACI,UAAA,MAAA,GAAS,IAAT,CAAA;AACA,eAAS,4EAAT,GAAA;AACI,YAAA,IAAG,GAAI,CAAA,CAAA,GAAE,CAAF,CAAK,CAAA,CAAA,CAAT,KAAe,GAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAzB;AACI,cAAA,MAAA,GAAS,KAAT,CADJ;aADJ;AAAA,WADA;AAIA,UAAA,IAAG,MAAH;AACE,mBAAO,CAAA,CAAP,CADF;WALJ;SAAA;AAAA,QAOA,GAAA,GAAM,CAPN,CAAA;AAQA,eAAM,CAAA,GAAE,GAAF,GAAQ,GAAG,CAAC,MAAlB,GAAA;AACI,UAAA,IAAA,GAAO,KAAP,CAAA;AACA,eAAS,iFAAT,GAAA;AACI,YAAA,IAAe,GAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAP,KAAa,GAAI,CAAA,CAAA,GAAE,GAAF,CAAO,CAAA,CAAA,CAAvC;AAAA,cAAA,IAAA,GAAO,IAAP,CAAA;aADJ;AAAA,WADA;AAGA,UAAA,IAAS,IAAT;AAAA,kBAAA;WAHA;AAAA,UAIA,GAAA,EAJA,CADJ;QAAA,CARA;AAcA,eAAO,GAAP,CAfO;MAAA,CAhBX,CAAA;AAkCA,WAAA,aAAA;;wBAAA;AACI,QAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AACA,QAAA,IAAG,QAAA,CAAS,CAAT,CAAA,KAAe,CAAf,IAAqB,QAAQ,CAAC,MAAT,KAAmB,CAA3C;AACI,UAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AAAA,UACA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA2B,QAAQ,CAAC,MAApC,CADA,CAAA;AAAA,UAEA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA2B,QAAQ,CAAC,MAApC,CAFA,CAAA;AAAA,UAGA,EAAE,CAAC,WAAH,CAAe,EAAf,CAHA,CADJ;SADA;AAAA,QAMA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CANL,CAAA;AAAA,QAOA,EAAE,CAAC,SAAH,GAAe,cAPf,CAAA;AAAA,QAQA,EAAE,CAAC,SAAH,GAAe,CARf,CAAA;AAAA,QASA,EAAE,CAAC,WAAH,CAAe,EAAf,CATA,CAAA;AAUA,aAAA,YAAA;;8BAAA;AACI,UAAA,CAAA,GAAI,QAAA,CAAS,OAAT,EAAkB,QAAA,CAAS,CAAT,CAAlB,EAA+B,QAAA,CAAS,CAAT,CAA/B,CAAJ,CAAA;AACA,UAAA,IAAG,CAAA,KAAK,CAAA,CAAR;AACI,YAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AAAA,YACA,EAAE,CAAC,SAAH,GAAe,aADf,CAAA;AAAA,YAEA,EAAE,CAAC,SAAH,GAAe,MAAO,CAAA,CAAA,CAFtB,CAAA;AAAA,YAGA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA2B,CAA3B,CAHA,CAAA;AAIA,YAAA,IAAG,QAAA,CAAS,CAAT,CAAA,KAAe,QAAQ,CAAC,MAAT,GAAgB,CAA/B,IAAqC,QAAQ,CAAC,MAAT,KAAmB,CAA3D;AACI,cAAA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA2B,CAA3B,CAAA,CADJ;aAJA;AAAA,YAMA,EAAE,CAAC,WAAH,CAAe,EAAf,CANA,CADJ;WAFJ;AAAA,SAVA;AAoBA,QAAA,IAAG,QAAA,CAAS,CAAT,CAAA,KAAe,CAAlB;AACI,UAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AAAA,UACA,EAAE,CAAC,SAAH,GAAe,eADf,CAAA;AAAA,UAEA,EAAE,CAAC,SAAH,GAAe,IAAI,CAAC,aAAa,CAAC,MAFlC,CAAA;AAAA,UAGA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA2B,QAAQ,CAAC,MAAT,GAAkB,CAAI,QAAQ,CAAC,MAAT,KAAkB,CAArB,GAA4B,CAA5B,GAAmC,CAApC,CAA7C,CAHA,CAAA;AAAA,UAIA,EAAE,CAAC,WAAH,CAAe,EAAf,CAJA,CADJ;SApBA;AAAA,QA0BA,MAAM,CAAC,WAAP,CAAmB,EAAnB,CA1BA,CADJ;AAAA,OAlCA;AAgEA,MAAA,IAAG,QAAQ,CAAC,MAAT,KAAkB,CAArB;AACI,QAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AACA,aAAA,aAAA;;0BAAA;AACI,UAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AAAA,UACA,EAAE,CAAC,SAAH,GAAe,cADf,CAAA;AAAA,UAEA,EAAE,CAAC,SAAH,GAAe,CAFf,CAAA;AAAA,UAGA,EAAE,CAAC,WAAH,CAAe,EAAf,CAHA,CADJ;AAAA,SADA;AAAA,QAMA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CANL,CAAA;AAOA,QAAA,IAAG,QAAQ,CAAC,MAAT,KAAkB,CAArB;AACI,UAAA,EAAE,CAAC,SAAH,GAAe,eAAf,CAAA;AAAA,UACA,EAAE,CAAC,SAAH,GAAe,IAAI,CAAC,aAAa,CAAC,MADlC,CADJ;SAPA;AAAA,QAUA,EAAE,CAAC,WAAH,CAAe,EAAf,CAVA,CAAA;AAAA,QAWA,MAAM,CAAC,WAAP,CAAmB,EAAnB,CAXA,CADJ;OAhEA;AA+EA,WAAA,YAAA;;4BAAA;AACI,QAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AACA,aAAA,WAAA;;0BAAA;AACI,UAAA,CAAA,GAAI,QAAA,CAAS,OAAT,EAAkB,QAAA,CAAS,CAAT,CAAlB,EAA+B,QAAA,CAAS,CAAT,CAA/B,CAAJ,CAAA;AACA,UAAA,IAAG,CAAA,KAAK,CAAA,CAAR;AACI,YAAA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAL,CAAA;AAAA,YACA,EAAE,CAAC,SAAH,GAAe,aADf,CAAA;AAAA,YAEA,EAAE,CAAC,SAAH,GAAe,GAFf,CAAA;AAAA,YAGA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA2B,CAA3B,CAHA,CAAA;AAIA,YAAA,IAAG,QAAA,CAAS,CAAT,CAAA,KAAe,QAAQ,CAAC,MAAT,GAAgB,CAA/B,IAAqC,QAAQ,CAAC,MAAT,KAAkB,CAA1D;AACI,cAAA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA0B,CAA1B,CAAA,CADJ;aAJA;AAAA,YAMA,EAAE,CAAC,WAAH,CAAe,EAAf,CANA,CADJ;WAFJ;AAAA,SADA;AAWA,aAAA,YAAA;;8BAAA;AACI,UAAA,UAAA,GAAa,SAAS,CAAC,aAAV,CAAwB,MAAxB,EAAgC,MAAhC,CAAb,CAAA;AAAA,UACA,GAAA,GAAM,UAAU,CAAC,KAAX,CAAA,CADN,CAAA;AAAA,UAEA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAFL,CAAA;AAAA,UAGA,EAAE,CAAC,SAAH,GAAe,YAAA,GAAa,CAAb,GAAe,MAAf,GAAqB,CAHpC,CAAA;AAAA,UAIA,EAAE,CAAC,SAAH,GAAe,UAAU,CAAC,MAAX,CAAkB,GAAlB,CAJf,CAAA;AAAA,UAKA,EAAE,CAAC,YAAH,CAAgB,YAAhB,EAA8B,GAA9B,CALA,CAAA;AAAA,UAMA,EAAE,CAAC,WAAH,CAAe,EAAf,CANA,CADJ;AAAA,SAXA;AAAA,QAoBA,eAAA,GAAkB,SAAS,CAAC,aAAV,CAAwB,MAAxB,EAAgC,EAAhC,CApBlB,CAAA;AAAA,QAqBA,GAAA,GAAM,eAAe,CAAC,KAAhB,CAAA,CArBN,CAAA;AAAA,QAsBA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAtBL,CAAA;AAAA,QAuBA,EAAE,CAAC,SAAH,GAAe,mBAvBf,CAAA;AAAA,QAwBA,EAAE,CAAC,SAAH,GAAe,eAAe,CAAC,MAAhB,CAAuB,GAAvB,CAxBf,CAAA;AAAA,QAyBA,EAAE,CAAC,YAAH,CAAgB,YAAhB,EAA8B,GAA9B,CAzBA,CAAA;AAAA,QA0BA,EAAE,CAAC,YAAH,CAAgB,UAAhB,EAA4B,KAAA,GAAM,CAAlC,CA1BA,CAAA;AAAA,QA2BA,EAAE,CAAC,WAAH,CAAe,EAAf,CA3BA,CAAA;AAAA,QA4BA,MAAM,CAAC,WAAP,CAAmB,EAAnB,CA5BA,CADJ;AAAA,OA/EA;AAAA,MA+GA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CA/GL,CAAA;AAAA,MAgHA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAhHL,CAAA;AAAA,MAiHA,EAAE,CAAC,SAAH,GAAe,eAjHf,CAAA;AAAA,MAkHA,EAAE,CAAC,SAAH,GAAe,IAAI,CAAC,aAAa,CAAC,MAlHlC,CAAA;AAAA,MAmHA,EAAE,CAAC,YAAH,CAAgB,SAAhB,EAA2B,QAAQ,CAAC,MAAT,GAAkB,CAAI,QAAQ,CAAC,MAAT,KAAmB,CAAtB,GAA6B,CAA7B,GAAoC,CAArC,CAA7C,CAnHA,CAAA;AAAA,MAoHA,EAAE,CAAC,WAAH,CAAe,EAAf,CApHA,CAAA;AAqHA,WAAA,YAAA;;4BAAA;AACI,QAAA,eAAA,GAAkB,SAAS,CAAC,aAAV,CAAwB,EAAxB,EAA4B,MAA5B,CAAlB,CAAA;AAAA,QACA,GAAA,GAAM,eAAe,CAAC,KAAhB,CAAA,CADN,CAAA;AAAA,QAEA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAFL,CAAA;AAAA,QAGA,EAAE,CAAC,SAAH,GAAe,mBAHf,CAAA;AAAA,QAIA,EAAE,CAAC,SAAH,GAAe,eAAe,CAAC,MAAhB,CAAuB,GAAvB,CAJf,CAAA;AAAA,QAKA,EAAE,CAAC,YAAH,CAAgB,YAAhB,EAA8B,GAA9B,CALA,CAAA;AAAA,QAMA,EAAE,CAAC,YAAH,CAAgB,UAAhB,EAA4B,KAAA,GAAM,CAAlC,CANA,CAAA;AAAA,QAOA,EAAE,CAAC,WAAH,CAAe,EAAf,CAPA,CADJ;AAAA,OArHA;AAAA,MA8HA,eAAA,GAAkB,SAAS,CAAC,aAAV,CAAwB,EAAxB,EAA4B,EAA5B,CA9HlB,CAAA;AAAA,MA+HA,GAAA,GAAM,eAAe,CAAC,KAAhB,CAAA,CA/HN,CAAA;AAAA,MAgIA,EAAA,GAAK,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAhIL,CAAA;AAAA,MAiIA,EAAE,CAAC,SAAH,GAAe,eAjIf,CAAA;AAAA,MAkIA,EAAE,CAAC,SAAH,GAAe,eAAe,CAAC,MAAhB,CAAuB,GAAvB,CAlIf,CAAA;AAAA,MAmIA,EAAE,CAAC,YAAH,CAAgB,YAAhB,EAA8B,GAA9B,CAnIA,CAAA;AAAA,MAoIA,EAAE,CAAC,WAAH,CAAe,EAAf,CApIA,CAAA;AAAA,MAqIA,MAAM,CAAC,WAAP,CAAmB,EAAnB,CArIA,CAAA;AAAA,MAwIA,MAAM,CAAC,YAAP,CAAoB,cAApB,EAAoC,OAAO,CAAC,MAA5C,CAxIA,CAAA;AAAA,MAyIA,MAAM,CAAC,YAAP,CAAoB,cAApB,EAAoC,OAAO,CAAC,MAA5C,CAzIA,CAAA;AA2IA,aAAO,MAAP,CA7IiB;IAAA,CA7WrB,CAAA;AA4fA;AAAA;;OA5fA;AAAA,IAggBA,CAAC,CAAC,EAAE,CAAC,KAAL,GAAa,SAAC,KAAD,EAAQ,IAAR,GAAA;AACT,UAAA,iCAAA;AAAA,MAAA,QAAA,GACI;AAAA,QAAA,IAAA,EAAO,EAAP;AAAA,QACA,IAAA,EAAM,EADN;AAAA,QAEA,IAAA,EAAM,EAFN;AAAA,QAGA,MAAA,EAAQ,SAAA,GAAA;iBAAG,KAAH;QAAA,CAHR;AAAA,QAIA,UAAA,EAAY,mBAAmB,CAAC,KAApB,CAAA,CAAA,CAAA,CAJZ;AAAA,QAKA,cAAA,EAAgB,OALhB;AAAA,QAMA,OAAA,EAAS,SAAA,GAAA,CANT;AAAA,QAOA,iBAAA,EAAmB,EAPnB;AAAA,QAQA,QAAA,EAAU,kBARV;AAAA,QASA,eAAA,EAAiB,IATjB;AAAA,QAUA,aAAA,EAAe,OAAO,CAAC,EAAE,CAAC,aAV1B;OADJ,CAAA;AAAA,MAaA,IAAA,GAAO,CAAC,CAAC,MAAF,CAAS,QAAT,EAAmB,IAAnB,CAbP,CAAA;AAAA,MAeA,MAAA,GAAS,IAfT,CAAA;AAgBA;AACI,QAAA,SAAA,GAAgB,IAAA,SAAA,CAAU,KAAV,EAAiB,IAAjB,CAAhB,CAAA;AACA;AACI,UAAA,MAAA,GAAS,IAAI,CAAC,QAAL,CAAc,SAAd,EAAyB,IAAI,CAAC,eAA9B,CAAT,CADJ;SAAA,cAAA;AAGI,UADE,UACF,CAAA;AAAA,UAAA,IAA0B,kDAA1B;AAAA,YAAA,OAAO,CAAC,KAAR,CAAc,CAAC,CAAC,KAAhB,CAAA,CAAA;WAAA;AAAA,UACA,MAAA,GAAS,CAAA,CAAE,QAAF,CAAW,CAAC,IAAZ,CAAiB,IAAI,CAAC,aAAa,CAAC,WAApC,CADT,CAHJ;SAFJ;OAAA,cAAA;AAQI,QADE,UACF,CAAA;AAAA,QAAA,IAA0B,kDAA1B;AAAA,UAAA,OAAO,CAAC,KAAR,CAAc,CAAC,CAAC,KAAhB,CAAA,CAAA;SAAA;AAAA,QACA,MAAA,GAAS,CAAA,CAAE,QAAF,CAAW,CAAC,IAAZ,CAAiB,IAAI,CAAC,aAAa,CAAC,YAApC,CADT,CARJ;OAhBA;AAAA,MA2BA,CAAA,GAAI,IAAK,CAAA,CAAA,CA3BT,CAAA;AA4B2B,aAAM,CAAC,CAAC,aAAF,CAAA,CAAN,GAAA;AAA3B,QAAA,CAAC,CAAC,WAAF,CAAc,CAAC,CAAC,SAAhB,CAAA,CAA2B;MAAA,CA5B3B;AA6BA,aAAO,IAAC,CAAA,MAAD,CAAQ,MAAR,CAAP,CA9BS;IAAA,CAhgBb,CAAA;AAiiBA;AAAA;;OAjiBA;AAAA,IAqiBA,CAAC,CAAC,EAAE,CAAC,OAAL,GAAe,SAAC,KAAD,EAAQ,SAAR,EAAmB,SAAnB,EAAsC,MAAtC,GAAA;AACX,UAAA,4VAAA;;QAD8B,YAAY;OAC1C;;QADiD,SAAO;OACxD;AAAA,MAAA,QAAA,GACI;AAAA,QAAA,iBAAA,EAAmB,EAAnB;AAAA,QACA,WAAA,EAAa,OAAQ,CAAA,MAAA,CAAO,CAAC,WAD7B;AAAA,QAEA,SAAA,EAAW,OAAQ,CAAA,MAAA,CAAO,CAAC,SAF3B;AAAA,QAGA,gBAAA,EAAkB,EAHlB;AAAA,QAIA,SAAA,EAAW,GAJX;AAAA,QAKA,IAAA,EAAM,EALN;AAAA,QAKU,IAAA,EAAM,EALhB;AAAA,QAKoB,IAAA,EAAM,EAL1B;AAAA,QAMA,UAAA,EAAY,EANZ;AAAA,QAOA,mBAAA,EAAqB,EAPrB;AAAA,QAQA,mBAAA,EAAqB,KARrB;AAAA,QASA,eAAA,EAAiB;AAAA,UAAA,aAAA,EAAe,OAAQ,CAAA,MAAA,CAAO,CAAC,aAA/B;SATjB;AAAA,QAUA,SAAA,EAAW,IAVX;AAAA,QAWA,MAAA,EAAQ,SAAA,GAAA;iBAAG,KAAH;QAAA,CAXR;AAAA,QAYA,OAAA,EAAS,SAAA,GAAA,CAZT;AAAA,QAaA,aAAA,EAAe,OAAQ,CAAA,MAAA,CAAO,CAAC,aAb/B;OADJ,CAAA;AAAA,MAgBA,YAAA,GAAe,IAAC,CAAA,IAAD,CAAM,gBAAN,CAhBf,CAAA;AAiBA,MAAA,IAAO,sBAAJ,IAAqB,SAAxB;AACI,QAAA,IAAA,GAAO,CAAC,CAAC,MAAF,CAAS,QAAT,EAAmB,SAAnB,CAAP,CADJ;OAAA,MAAA;AAGI,QAAA,IAAA,GAAO,YAAP,CAHJ;OAjBA;AAsBA;AAEI,QAAA,KAAA,GAAQ,SAAS,CAAC,cAAV,CAAyB,KAAzB,CAAR,CAAA;AAAA,QACA,OAAA;;AAAW;AAAA;eAAA,QAAA;gDAAA;AAAA,yBAAA,EAAA,CAAA;AAAA;;YADX,CAAA;AAEA;AAAA,aAAA,QAAA;8CAAA;cAAwD,CAAC,aAAS,OAAT,EAAA,CAAA,KAAD;AAAxD,YAAA,OAAO,CAAC,IAAR,CAAa,CAAb,CAAA;WAAA;AAAA,SAFA;AAAA,QAKA,UAAA,GAAa,EALb,CAAA;AAMA,aAAA,2CAAA;yBAAA;AAAA,UAAA,UAAW,CAAA,CAAA,CAAX,GAAgB,EAAhB,CAAA;AAAA,SANA;AAAA,QAQA,SAAS,CAAC,aAAV,CAAwB,KAAxB,EAA+B,IAAI,CAAC,iBAApC,EAAuD,SAAC,MAAD,GAAA;AACnD,cAAA,gBAAA;AAAA;eAAA,WAAA;;0BAAA;kBAA4B,IAAI,CAAC,MAAL,CAAY,MAAZ;;aACxB;;cAAA,IAAK;aAAL;;kBACc,CAAA,CAAA,IAAM;aADpB;AAAA,yBAEA,UAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAd,GAFA,CADJ;AAAA;yBADmD;QAAA,CAAvD,CARA,CAAA;AAAA,QAeA,OAAA,GAAU,CAAA,CAAE,SAAF,EAAa;AAAA,UAAA,OAAA,EAAS,OAAT;SAAb,CAA8B,CAAC,IAA/B,CAAoC,aAApC,EAAmD,CAAnD,CAfV,CAAA;AAAA,QAkBA,eAAA,GAAkB,CAAA,CAAE,MAAF,CAlBlB,CAAA;AAAA,QAoBA,QAAA,GAAW,CAAA,CAAE,UAAF,CACP,CAAC,QADM,CACG,aADH,CAEP,CAAC,QAFM,CAEG,eAFH,CAGP,CAAC,IAHM,CAGD,QAHC,EAGS,SAAA,GAAA;iBAAG,OAAA,CAAA,EAAH;QAAA,CAHT,CApBX,CAAA;AAwBA;AAAA,aAAA,SAAA;+CAAA;AACI,UAAA,CAAA,CAAE,UAAF,CAAa,CAAC,GAAd,CAAkB,CAAlB,CAAoB,CAAC,IAArB,CAA0B,CAA1B,CAA4B,CAAC,QAA7B,CAAsC,QAAtC,CAAA,CADJ;AAAA,SAxBA;AAAA,QA6BA,OAAA,GAAU,CAAA,CAAE,MAAF,CAAS,CAAC,QAAV,CAAmB,4BAAnB,CA7BV,CAAA;AAAA,QA8BA,eAAA;;AAAmB;eAAA,2CAAA;2BAAA;gBAAwB,aAAS,IAAI,CAAC,gBAAd,EAAA,CAAA;AAAxB,2BAAA,EAAA;aAAA;AAAA;;YA9BnB,CAAA;AAAA,QAgCA,+BAAA,GAAkC,KAhClC,CAAA;AAiCA,QAAA,IAAG,IAAI,CAAC,mBAAL,KAA4B,MAA/B;AACI,UAAA,6BAAA,GAAgC,GAAhC,CADJ;SAAA,MAAA;AAGI,UAAA,6BAAA,GAAgC,QAAA,CAAS,IAAI,CAAC,mBAAd,CAAhC,CAHJ;SAjCA;AAsCA,QAAA,IAAG,CAAA,KAAI,CAAM,6BAAN,CAAP;AACI,UAAA,UAAA,GAAa,CAAb,CAAA;AACA,eAAA,mDAAA;mCAAA;AAAA,YAAA,UAAA,IAAc,CAAC,CAAC,MAAhB,CAAA;AAAA,WADA;AAAA,UAEA,+BAAA,GAAkC,UAAA,GAAa,6BAF/C,CADJ;SAtCA;AA2CA,QAAA,IAAG,IAAI,CAAC,mBAAL,KAA4B,IAA5B,IAAoC,+BAAvC;AACI,UAAA,OAAO,CAAC,QAAR,CAAiB,aAAjB,CAAA,CADJ;SAAA,MAAA;AAGI,UAAA,OAAO,CAAC,QAAR,CAAiB,cAAjB,CAAA,CAHJ;SA3CA;AAgDA,aACO,SAAC,CAAD,GAAA;AACC,cAAA,8JAAA;AAAA,UAAA,IAAA;;AAAQ;iBAAA,kBAAA,GAAA;AAAA,2BAAA,EAAA,CAAA;AAAA;;cAAR,CAAA;AAAA,UACA,eAAA,GAAkB,KADlB,CAAA;AAAA,UAEA,SAAA,GAAY,CAAA,CAAE,OAAF,CAAU,CAAC,QAAX,CAAoB,cAApB,CAAmC,CAAC,IAApC,CAAA,CAFZ,CAAA;AAAA,UAIA,SAAS,CAAC,MAAV,CAAiB,CAAA,CAAE,MAAF,CAAS,CAAC,IAAV,CAAkB,CAAD,GAAG,IAAH,GAAO,IAAI,CAAC,MAAZ,GAAmB,GAApC,CAAjB,CAJA,CAAA;AAKA,UAAA,IAAG,IAAI,CAAC,MAAL,GAAc,IAAI,CAAC,SAAtB;AACI,YAAA,SAAS,CAAC,MAAV,CAAiB,CAAA,CAAE,KAAF,CAAQ,CAAC,IAAT,CAAc,IAAI,CAAC,aAAa,CAAC,OAAjC,CAAjB,CAAA,CADJ;WAAA,MAAA;AAGI,YAAA,IAAA,GAAO,CAAA,CAAE,KAAF,CAAQ,CAAC,QAAT,CAAkB,SAAlB,CAAP,CAAA;AAAA,YACA,IAAI,CAAC,MAAL,CAAY,CAAA,CAAE,UAAF,EAAc;AAAA,cAAC,IAAA,EAAK,QAAN;aAAd,CAA8B,CAAC,IAA/B,CAAoC,IAAI,CAAC,aAAa,CAAC,SAAvD,CAAiE,CAAC,IAAlE,CAAuE,OAAvE,EAAgF,SAAA,GAAA;qBACxF,SAAS,CAAC,IAAV,CAAe,eAAf,CAA+B,CAAC,IAAhC,CAAqC,SAArC,EAAgD,IAAhD,EADwF;YAAA,CAAhF,CAAZ,CADA,CAAA;AAAA,YAGA,IAAI,CAAC,MAAL,CAAY,CAAA,CAAE,UAAF,EAAc;AAAA,cAAC,IAAA,EAAK,QAAN;aAAd,CAA8B,CAAC,IAA/B,CAAoC,IAAI,CAAC,aAAa,CAAC,UAAvD,CAAkE,CAAC,IAAnE,CAAwE,OAAxE,EAAiF,SAAA,GAAA;qBACzF,SAAS,CAAC,IAAV,CAAe,eAAf,CAA+B,CAAC,IAAhC,CAAqC,SAArC,EAAgD,KAAhD,EADyF;YAAA,CAAjF,CAAZ,CAHA,CAAA;AAAA,YAKA,IAAI,CAAC,MAAL,CAAY,CAAA,CAAE,MAAF,CAAZ,CALA,CAAA;AAAA,YAMA,IAAI,CAAC,MAAL,CAAY,CAAA,CAAE,SAAF,EAAa;AAAA,cAAC,IAAA,EAAM,MAAP;AAAA,cAAe,WAAA,EAAa,IAAI,CAAC,aAAa,CAAC,aAA/C;AAAA,cAA8D,OAAA,EAAO,WAArE;aAAb,CAA+F,CAAC,IAAhG,CAAqG,OAArG,EAA8G,SAAA,GAAA;AACtH,kBAAA,MAAA;AAAA,cAAA,MAAA,GAAS,CAAA,CAAE,IAAF,CAAO,CAAC,GAAR,CAAA,CAAa,CAAC,WAAd,CAAA,CAAT,CAAA;qBACA,SAAS,CAAC,IAAV,CAAe,sBAAf,CAAsC,CAAC,IAAvC,CAA4C,SAAA,GAAA;AACxC,oBAAA,UAAA;AAAA,gBAAA,UAAA,GAAa,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAA,CAAc,CAAC,WAAf,CAAA,CAA4B,CAAC,OAA7B,CAAqC,MAArC,CAAb,CAAA;AACA,gBAAA,IAAG,UAAA,KAAgB,CAAA,CAAnB;yBACI,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAA,EADJ;iBAAA,MAAA;yBAGI,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAA,EAHJ;iBAFwC;cAAA,CAA5C,EAFsH;YAAA,CAA9G,CAAZ,CANA,CAAA;AAAA,YAeA,cAAA,GAAiB,CAAA,CAAE,OAAF,CAAU,CAAC,QAAX,CAAoB,mBAApB,CAAwC,CAAC,QAAzC,CAAkD,SAAlD,CAfjB,CAAA;AAiBA;AAAA,iBAAA,wCAAA;0BAAA;AACK,cAAA,CAAA,GAAI,UAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAlB,CAAA;AAAA,cACA,UAAA,GAAa,CAAA,CAAE,SAAF,CADb,CAAA;AAAA,cAEA,kBAAA,GAAwB,IAAI,CAAC,UAAW,CAAA,CAAA,CAAnB,GAA2B,CAAC,aAAK,IAAI,CAAC,UAAW,CAAA,CAAA,CAArB,EAAA,CAAA,MAAD,CAA3B,GAA0D,KAF/E,CAAA;AAAA,cAGA,oBAAA,kBAAoB,mBAHpB,CAAA;AAAA,cAIA,CAAA,CAAE,SAAF,CACG,CAAC,IADJ,CACS,MADT,EACiB,UADjB,CAC4B,CAAC,QAD7B,CACsC,WADtC,CAEG,CAAC,IAFJ,CAES,SAFT,EAEoB,CAAA,kBAFpB,CAEwC,CAAC,IAFzC,CAE8C,QAF9C,EAEwD,CAAC,CAAD,EAAG,CAAH,CAFxD,CAGG,CAAC,QAHJ,CAGa,UAHb,CAJA,CAAA;AAAA,cAQA,UAAU,CAAC,MAAX,CAAkB,CAAA,CAAE,QAAF,CAAW,CAAC,IAAZ,CAAiB,CAAjB,CAAlB,CARA,CAAA;AAAA,cASA,UAAU,CAAC,MAAX,CAAkB,CAAA,CAAE,QAAF,CAAW,CAAC,IAAZ,CAAiB,IAAA,GAAK,CAAL,GAAO,GAAxB,CAAlB,CATA,CAAA;AAAA,cAUA,cAAc,CAAC,MAAf,CAAsB,CAAA,CAAE,KAAF,CAAQ,CAAC,MAAT,CAAgB,UAAhB,CAAtB,CAVA,CADL;AAAA,aApBJ;WALA;AAAA,UAsCA,YAAA,GAAe,SAAA,GAAA;AACX,gBAAA,eAAA;AAAA,YAAA,eAAA,GAAkB,SAAS,CAAC,IAAV,CAAe,mBAAf,CAAmC,CAAC,MAApC,GACA,SAAS,CAAC,IAAV,CAAe,2BAAf,CAA2C,CAAC,MAD9D,CAAA;AAEA,YAAA,IAAG,eAAA,GAAkB,CAArB;AACI,cAAA,QAAQ,CAAC,QAAT,CAAkB,sBAAlB,CAAA,CADJ;aAAA,MAAA;AAGI,cAAA,QAAQ,CAAC,WAAT,CAAqB,sBAArB,CAAA,CAHJ;aAFA;AAMA,YAAA,IAAG,IAAI,CAAC,MAAL,GAAc,IAAI,CAAC,SAAtB;qBACI,SAAS,CAAC,MAAV,CAAA,EADJ;aAAA,MAAA;qBAGI,SAAS,CAAC,MAAV,CAAiB,CAAjB,EAAoB,OAApB,EAHJ;aAPW;UAAA,CAtCf,CAAA;AAAA,UAkDA,CAAA,CAAE,KAAF,CAAQ,CAAC,QAAT,CAAkB,SAAlB,CACI,CAAC,MADL,CACY,CAAA,CAAE,UAAF,EAAc;AAAA,YAAC,IAAA,EAAK,QAAN;WAAd,CAA8B,CAAC,IAA/B,CAAoC,IAApC,CAAyC,CAAC,IAA1C,CAA+C,OAA/C,EAAwD,YAAxD,CADZ,CAlDA,CAAA;AAAA,UAqDA,cAAA,GAAiB,SAAC,CAAD,GAAA;AACb,YAAA,SAAS,CAAC,GAAV,CAAc;AAAA,cAAA,IAAA,EAAM,CAAC,CAAC,KAAR;AAAA,cAAe,GAAA,EAAK,CAAC,CAAC,KAAtB;aAAd,CAA0C,CAAC,MAA3C,CAAA,CAAA,CAAA;AAAA,YACA,SAAS,CAAC,IAAV,CAAe,YAAf,CAA4B,CAAC,GAA7B,CAAiC,EAAjC,CADA,CAAA;mBAEA,SAAS,CAAC,IAAV,CAAe,sBAAf,CAAsC,CAAC,IAAvC,CAAA,EAHa;UAAA,CArDjB,CAAA;AAAA,UA0DA,YAAA,GAAe,CAAA,CAAE,QAAF,CAAW,CAAC,QAAZ,CAAqB,aAArB,CAAmC,CAAC,IAApC,CAAyC,WAAzC,CACX,CAAC,IADU,CACL,OADK,EACI,cADJ,CA1Df,CAAA;AAAA,UA6DA,QAAA,GAAW,CAAA,CAAE,MAAF,CAAS,CAAC,QAAV,CAAmB,OAAA,GAAQ,CAA3B,CACP,CAAC,MADM,CACC,CAAA,CAAE,QAAF,CAAW,CAAC,QAAZ,CAAqB,SAArB,CAA+B,CAAC,IAAhC,CAAqC,CAArC,CAAuC,CAAC,IAAxC,CAA6C,UAA7C,EAAyD,CAAzD,CAA2D,CAAC,MAA5D,CAAmE,YAAnE,CADD,CA7DX,CAAA;AA+DA,UAAA,IAA6C,eAA7C;AAAA,YAAA,QAAQ,CAAC,QAAT,CAAkB,sBAAlB,CAAA,CAAA;WA/DA;AAAA,UAgEA,OAAO,CAAC,MAAR,CAAe,QAAf,CAAwB,CAAC,MAAzB,CAAgC,SAAhC,CAhEA,CAAA;iBAkEA,QAAQ,CAAC,IAAT,CAAc,UAAd,EAA0B,cAA1B,EAnED;QAAA,CADP;AAAA,aAAA,oBAAA;;iCAAA;AACI,aAAI,EAAJ,CADJ;AAAA,SAhDA;AAAA,QAsHA,GAAA,GAAM,CAAA,CAAE,MAAF,CAAS,CAAC,QAAV,CAAmB,OAAnB,CAtHN,CAAA;AAAA,QA0HA,UAAA,GAAa,CAAA,CAAE,UAAF,CAAa,CAAC,QAAd,CAAuB,eAAvB,CACT,CAAC,IADQ,CACH,QADG,EACO,SAAA,GAAA;iBAAG,OAAA,CAAA,EAAH;QAAA,CADP,CA1Hb,CAAA;AA4HA;AAAA,aAAA,SAAA;+CAAA;AACI,UAAA,UAAU,CAAC,MAAX,CAAkB,CAAA,CAAE,UAAF,CAAa,CAAC,GAAd,CAAkB,CAAlB,CAAoB,CAAC,IAArB,CAA0B,CAA1B,CAAlB,CAAA,CADJ;AAAA,SA5HA;AAAA,QA+HA,CAAA,CAAE,MAAF,CAAS,CAAC,QAAV,CAAmB,SAAnB,CACE,CAAC,QADH,CACY,GADZ,CAEE,CAAC,MAFH,CAEU,UAFV,CAGE,CAAC,MAHH,CAGU,CAAA,CAAE,MAAF,CAHV,CA/HA,CAAA;AAAA,QAqIA,CAAA,CAAE,MAAF,CAAS,CAAC,QAAV,CAAmB,uCAAnB,CAA2D,CAAC,QAA5D,CAAqE,GAArE,CArIA,CAAA;AAAA,QAuIA,GAAA,GAAM,CAAA,CAAE,MAAF,CAAS,CAAC,QAAV,CAAmB,OAAnB,CAvIN,CAAA;AAAA,QA0IA,GAAG,CAAC,MAAJ,CAAW,CAAA,CAAE,MAAF,CAAS,CAAC,QAAV,CAAmB,0BAAnB,CAA8C,CAAC,IAA/C,CAAoD,QAApD,EAA8D,KAA9D,CAAX,CA1IA,CAAA;AAAA,QA6IA,UAAA,GAAa,CAAA,CAAE,MAAF,CACT,CAAC,IADQ,CACH,QADG,EACO,KADP,CAET,CAAC,QAFQ,CAEC,iBAFD,CAGT,CAAC,QAHQ,CAGC,GAHD,CA7Ib,CAAA;AAmJA,QAAA,IAAG,IAAI,CAAC,mBAAL,KAA4B,IAA5B,IAAoC,+BAAvC;AACI,UAAA,OAAO,CAAC,IAAR,CAAa,iBAAb,CAA+B,CAAC,OAAhC,CAAwC,eAAxC,CAAA,CAAA;AAAA,UACA,OAAO,CAAC,IAAR,CAAa,iBAAb,CAA+B,CAAC,OAAhC,CAAwC,OAAxC,CADA,CADJ;SAAA,MAAA;AAII,UAAA,OAAO,CAAC,OAAR,CAAgB,CAAA,CAAE,MAAF,CAAS,CAAC,MAAV,CAAiB,eAAjB,CAAiC,CAAC,MAAlC,CAAyC,OAAzC,CAAhB,CAAA,CAJJ;SAnJA;AAAA,QA0JA,IAAC,CAAA,IAAD,CAAM,OAAN,CA1JA,CAAA;AA8JA;AAAA,aAAA,wCAAA;sBAAA;AACI,UAAA,IAAC,CAAA,IAAD,CAAM,UAAN,CAAiB,CAAC,MAAlB,CAAyB,IAAC,CAAA,IAAD,CAAM,QAAA,GAAQ,CAAC,CAAC,CAAC,OAAF,CAAU,CAAV,EAAa,eAAb,CAAD,CAAd,CAAzB,CAAA,CADJ;AAAA,SA9JA;AAgKA;AAAA,aAAA,wCAAA;sBAAA;AACI,UAAA,IAAC,CAAA,IAAD,CAAM,UAAN,CAAiB,CAAC,MAAlB,CAAyB,IAAC,CAAA,IAAD,CAAM,QAAA,GAAQ,CAAC,CAAC,CAAC,OAAF,CAAU,CAAV,EAAa,eAAb,CAAD,CAAd,CAAzB,CAAA,CADJ;AAAA,SAhKA;AAkKA,QAAA,IAAG,2BAAH;AACI,UAAA,IAAC,CAAA,IAAD,CAAM,gBAAN,CAAuB,CAAC,GAAxB,CAA4B,IAAI,CAAC,cAAjC,CAAA,CADJ;SAlKA;AAoKA,QAAA,IAAG,yBAAH;AACI,UAAA,IAAC,CAAA,IAAD,CAAM,cAAN,CAAqB,CAAC,GAAtB,CAA0B,IAAI,CAAC,YAA/B,CAAA,CADJ;SApKA;AAAA,QAuKA,aAAA,GAAgB,IAvKhB,CAAA;AAAA,QA0KA,cAAA,GAAiB,CAAA,SAAA,KAAA,GAAA;iBAAA,SAAA,GAAA;AACb,gBAAA,mJAAA;AAAA,YAAA,OAAA,GACI;AAAA,cAAA,iBAAA,EAAmB,IAAI,CAAC,iBAAxB;AAAA,cACA,aAAA,EAAe,IAAI,CAAC,aADpB;AAAA,cAEA,eAAA,EAAiB,IAAI,CAAC,eAFtB;AAAA,cAGA,OAAA,EAAS,IAAI,CAAC,OAHd;AAAA,cAIA,IAAA,EAAM,EAJN;AAAA,cAIU,IAAA,EAAM,EAJhB;aADJ,CAAA;AAAA,YAOA,kBAAA,gFAA0E,CAP1E,CAAA;AAAA,YAQA,IAAA,GAAO,EARP,CAAA;AAAA,YASA,KAAC,CAAA,IAAD,CAAM,0BAAN,CAAiC,CAAC,IAAlC,CAAuC,SAAA,GAAA;qBAAG,OAAO,CAAC,IAAI,CAAC,IAAb,CAAkB,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAa,UAAb,CAAlB,EAAH;YAAA,CAAvC,CATA,CAAA;AAAA,YAUA,KAAC,CAAA,IAAD,CAAM,0BAAN,CAAiC,CAAC,IAAlC,CAAuC,SAAA,GAAA;qBAAG,OAAO,CAAC,IAAI,CAAC,IAAb,CAAkB,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAa,UAAb,CAAlB,EAAH;YAAA,CAAvC,CAVA,CAAA;AAAA,YAWA,KAAC,CAAA,IAAD,CAAM,iCAAN,CAAwC,CAAC,IAAzC,CAA8C,SAAA,GAAA;AAC1C,cAAA,IAAG,kBAAA,KAAsB,CAAzB;uBACI,CAAA,CAAE,IAAF,CAAO,CAAC,MAAR,CAAA,EADJ;eAAA,MAAA;AAGI,gBAAA,kBAAA,EAAA,CAAA;AACA,gBAAA,IAA2B,CAAA,CAAE,IAAF,CAAO,CAAC,GAAR,CAAA,CAAA,KAAiB,EAA5C;yBAAA,IAAI,CAAC,IAAL,CAAU,CAAA,CAAE,IAAF,CAAO,CAAC,GAAR,CAAA,CAAV,EAAA;iBAJJ;eAD0C;YAAA,CAA9C,CAXA,CAAA;AAkBA,YAAA,IAAG,kBAAA,KAAsB,CAAzB;AACI,cAAA,OAAA,GAAU,KAAC,CAAA,IAAD,CAAM,UAAN,CAAV,CAAA;AACA,mBAAS,gGAAT,GAAA;AACI,gBAAA,WAAA,GAAc,CAAA,CAAE,UAAF,CACV,CAAC,QADS,CACA,iBADA,CAEV,CAAC,MAFS,CAEF,CAAA,CAAE,UAAF,CAFE,CAGV,CAAC,IAHS,CAGJ,QAHI,EAGM,SAAA,GAAA;yBAAG,OAAA,CAAA,EAAH;gBAAA,CAHN,CAAd,CAAA;AAIA,qBAAA,mDAAA;4CAAA;AACI,kBAAA,WAAW,CAAC,MAAZ,CAAmB,CAAA,CAAE,UAAF,CAAa,CAAC,GAAd,CAAkB,IAAlB,CAAuB,CAAC,IAAxB,CAA6B,IAA7B,CAAnB,CAAA,CADJ;AAAA,iBAJA;AAAA,gBAMA,OAAO,CAAC,MAAR,CAAe,WAAf,CANA,CADJ;AAAA,eAFJ;aAlBA;AA6BA,YAAA,IAAG,aAAH;AACI,cAAA,IAAA,GAAO,IAAI,CAAC,IAAZ,CAAA;AAAA,cACA,CAAA,GAAI,CADJ,CAAA;AAAA,cAEA,KAAC,CAAA,IAAD,CAAM,iCAAN,CAAwC,CAAC,IAAzC,CAA8C,SAAA,GAAA;AAC1C,gBAAA,CAAA,CAAE,IAAF,CAAO,CAAC,GAAR,CAAY,IAAK,CAAA,CAAA,CAAjB,CAAA,CAAA;uBACA,CAAA,GAF0C;cAAA,CAA9C,CAFA,CAAA;AAAA,cAKA,aAAA,GAAgB,KALhB,CADJ;aA7BA;AAAA,YAqCA,OAAO,CAAC,cAAR,GAAyB,UAAU,CAAC,GAAX,CAAA,CArCzB,CAAA;AAAA,YAsCA,OAAO,CAAC,IAAR,GAAe,IAtCf,CAAA;AAAA,YAuCA,OAAO,CAAC,UAAR,GAAqB,IAAI,CAAC,WAAY,CAAA,UAAU,CAAC,GAAX,CAAA,CAAA,CAAjB,CAAmC,IAAnC,CAvCrB,CAAA;AAAA,YAwCA,OAAO,CAAC,QAAR,GAAmB,IAAI,CAAC,SAAU,CAAA,QAAQ,CAAC,GAAT,CAAA,CAAA,CAxClC,CAAA;AAAA,YA2CA,UAAA,GAAa,EA3Cb,CAAA;AAAA,YA4CA,KAAC,CAAA,IAAD,CAAM,iBAAN,CAAwB,CAAC,GAAzB,CAA6B,UAA7B,CAAwC,CAAC,IAAzC,CAA8C,SAAA,GAAA;AAC1C,kBAAA,MAAA;AAAA,cAAA,MAAA,GAAS,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAa,QAAb,CAAT,CAAA;AACA,cAAA,IAAG,6BAAH;uBACI,UAAW,CAAA,MAAO,CAAA,CAAA,CAAP,CAAU,CAAC,IAAtB,CAA4B,MAAO,CAAA,CAAA,CAAnC,EADJ;eAAA,MAAA;uBAGI,UAAW,CAAA,MAAO,CAAA,CAAA,CAAP,CAAX,GAAwB,CAAE,MAAO,CAAA,CAAA,CAAT,EAH5B;eAF0C;YAAA,CAA9C,CA5CA,CAAA;AAAA,YAmDA,UAAA,GAAa,EAnDb,CAAA;AAAA,YAoDA,KAAC,CAAA,IAAD,CAAM,yBAAN,CAAgC,CAAC,IAAjC,CAAsC,SAAA,GAAA;AAClC,kBAAA,MAAA;AAAA,cAAA,MAAA,GAAS,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAa,QAAb,CAAT,CAAA;AACA,cAAA,IAAG,6BAAH;AACI,gBAAA,IAAG,6BAAH;yBACI,UAAW,CAAA,MAAO,CAAA,CAAA,CAAP,CAAU,CAAC,IAAtB,CAA4B,MAAO,CAAA,CAAA,CAAnC,EADJ;iBAAA,MAAA;yBAGI,UAAW,CAAA,MAAO,CAAA,CAAA,CAAP,CAAX,GAAwB,CAAE,MAAO,CAAA,CAAA,CAAT,EAH5B;iBADJ;eAFkC;YAAA,CAAtC,CApDA,CAAA;AAAA,YA4DA,OAAO,CAAC,MAAR,GAAiB,SAAC,MAAD,GAAA;AACb,kBAAA,mBAAA;AAAA,cAAA,IAAgB,CAAA,IAAQ,CAAC,MAAL,CAAY,MAAZ,CAApB;AAAA,uBAAO,KAAP,CAAA;eAAA;AACA,mBAAA,eAAA;8CAAA;AACI,gBAAA,WAAgB,EAAA,GAAG,MAAO,CAAA,CAAA,CAAV,EAAA,aAAgB,aAAhB,EAAA,IAAA,MAAhB;AAAA,yBAAO,KAAP,CAAA;iBADJ;AAAA,eADA;AAGA,qBAAO,IAAP,CAJa;YAAA,CA5DjB,CAAA;AAAA,YAkEA,UAAU,CAAC,KAAX,CAAiB,KAAjB,EAAuB,OAAvB,CAlEA,CAAA;AAAA,YAmEA,cAAA,GAAiB,CAAC,CAAC,MAAF,CAAS,IAAT,EACb;AAAA,cAAA,IAAA,EAAM,OAAO,CAAC,IAAd;AAAA,cACA,IAAA,EAAM,OAAO,CAAC,IADd;AAAA,cAEA,IAAA,EAAM,IAFN;AAAA,cAGA,UAAA,EAAY,UAHZ;AAAA,cAKA,cAAA,EAAgB,UALhB;AAAA,cAMA,cAAA,EAAgB,UAAU,CAAC,GAAX,CAAA,CANhB;AAAA,cAOA,YAAA,EAAc,QAAQ,CAAC,GAAT,CAAA,CAPd;aADa,CAnEjB,CAAA;AAAA,YA6EA,KAAC,CAAA,IAAD,CAAM,gBAAN,EAAwB,cAAxB,CA7EA,CAAA;AAgFA,YAAA,IAAG,IAAI,CAAC,mBAAR;AACI,cAAA,oBAAA,GAAuB,KAAC,CAAA,IAAD,CAAM,+BAAN,CAAvB,CAAA;AAAA,cACA,CAAA,CAAE,oBAAF,CAAuB,CAAC,QAAxB,CAAiC,IAAjC,CACI,CAAC,IADL,CACU,SAAC,CAAD,EAAI,CAAJ,GAAA;uBAAU,WAAA,CAAY,CAAA,CAAE,CAAF,CAAI,CAAC,IAAL,CAAA,CAAZ,EAAyB,CAAA,CAAE,CAAF,CAAI,CAAC,IAAL,CAAA,CAAzB,EAAV;cAAA,CADV,CAEI,CAAC,QAFL,CAEc,oBAFd,CADA,CADJ;aAhFA;AAAA,YAsFA,UAAU,CAAC,GAAX,CAAe,SAAf,EAA0B,CAA1B,CAtFA,CAAA;AAuFA,YAAA,IAAkC,sBAAlC;qBAAA,IAAI,CAAC,SAAL,CAAe,cAAf,EAAA;aAxFa;UAAA,EAAA;QAAA,CAAA,CAAA,CAAA,IAAA,CA1KjB,CAAA;AAAA,QAoQA,OAAA,GAAU,CAAA,SAAA,KAAA,GAAA;iBAAA,SAAA,GAAA;AACN,YAAA,UAAU,CAAC,GAAX,CAAe,SAAf,EAA0B,GAA1B,CAAA,CAAA;mBACA,UAAA,CAAW,cAAX,EAA2B,EAA3B,EAFM;UAAA,EAAA;QAAA,CAAA,CAAA,CAAA,IAAA,CApQV,CAAA;AAAA,QAyQA,OAAA,CAAA,CAzQA,CAAA;AAAA,QA2QA,IAAC,CAAA,IAAD,CAAM,mBAAN,CAA0B,CAAC,QAA3B,CACQ;AAAA,UAAA,MAAA,EAAQ,SAAC,CAAD,EAAI,EAAJ,GAAA;AAAW,YAAA,IAAiB,iBAAjB;qBAAA,OAAA,CAAA,EAAA;aAAX;UAAA,CAAR;AAAA,UACA,WAAA,EAAa,IAAC,CAAA,IAAD,CAAM,mBAAN,CADb;AAAA,UAEA,KAAA,EAAO,IAFP;AAAA,UAGA,WAAA,EAAa,gBAHb;SADR,CA3QA,CAFJ;OAAA,cAAA;AAmRI,QADE,UACF,CAAA;AAAA,QAAA,IAA0B,kDAA1B;AAAA,UAAA,OAAO,CAAC,KAAR,CAAc,CAAC,CAAC,KAAhB,CAAA,CAAA;SAAA;AAAA,QACA,IAAC,CAAA,IAAD,CAAM,IAAI,CAAC,aAAa,CAAC,aAAzB,CADA,CAnRJ;OAtBA;AA2SA,aAAO,IAAP,CA5SW;IAAA,CAriBf,CAAA;AAm1BA;AAAA;;OAn1BA;AAAA,IAu1BA,CAAC,CAAC,EAAE,CAAC,OAAL,GAAe,SAAC,KAAD,GAAA;AACX,UAAA,6DAAA;;QADY,QAAQ;OACpB;AAAA,MAAA,OAAA,GAAU,IAAC,CAAA,IAAD,CAAM,SAAN,CAAV,CAAA;AAAA,MACA,OAAA,GAAU,IAAC,CAAA,IAAD,CAAM,SAAN,CADV,CAAA;AAAA,MAGA,QAAA,GAAW,SAAC,KAAD,EAAQ,GAAR,EAAa,GAAb,GAAA;AACP,YAAA,MAAA;AAAA,QAAA,MAAA;AAAS,kBAAO,KAAP;AAAA,iBACA,KADA;qBACa,SAAC,GAAD,GAAA;uBAAS,IAAA,GAAK,GAAL,GAAW,IAApB;cAAA,EADb;AAAA,iBAEA,OAFA;qBAEa,SAAC,GAAD,GAAA;uBAAY,GAAD,GAAK,IAAL,GAAS,IAApB;cAAA,EAFb;AAAA,iBAGA,MAHA;qBAGa,SAAC,GAAD,GAAA;uBAAS,EAAA,GAAG,GAAH,GAAS,GAAT,GAAa,KAAtB;cAAA,EAHb;AAAA;YAAT,CAAA;AAKA,eAAO,SAAC,CAAD,GAAA;AACH,cAAA,cAAA;AAAA,UAAA,SAAA,GAAY,GAAA,GAAM,IAAI,CAAC,KAAL,CAAW,GAAA,GAAI,CAAC,CAAA,GAAE,GAAH,CAAJ,GAAY,CAAC,GAAA,GAAI,GAAL,CAAvB,CAAlB,CAAA;AAAA,UACA,GAAA,GAAM,SAAS,CAAC,QAAV,CAAmB,EAAnB,CAAsB,CAAC,KAAvB,CAA6B,GAA7B,CAAkC,CAAA,CAAA,CADxC,CAAA;AAEA,UAAA,IAAe,GAAG,CAAC,MAAJ,KAAc,CAA7B;AAAA,YAAA,GAAA,GAAM,CAAA,GAAE,GAAR,CAAA;WAFA;AAGA,iBAAO,MAAA,CAAO,GAAP,CAAP,CAJG;QAAA,CAAP,CANO;MAAA,CAHX,CAAA;AAAA,MAeA,UAAA,GAAa,CAAA,SAAA,KAAA,GAAA;eAAA,SAAC,KAAD,EAAQ,KAAR,GAAA;AACT,cAAA,6BAAA;AAAA,UAAA,WAAA,GAAc,SAAC,CAAD,GAAA;mBACV,KAAC,CAAA,IAAD,CAAM,KAAN,CAAY,CAAC,IAAb,CAAkB,SAAA,GAAA;AACd,kBAAA,CAAA;AAAA,cAAA,CAAA,GAAI,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAa,OAAb,CAAJ,CAAA;AACA,cAAA,IAAiB,WAAA,IAAO,QAAA,CAAS,CAAT,CAAxB;uBAAA,CAAA,CAAE,CAAF,EAAK,CAAA,CAAE,IAAF,CAAL,EAAA;eAFc;YAAA,CAAlB,EADU;UAAA,CAAd,CAAA;AAAA,UAKA,MAAA,GAAS,EALT,CAAA;AAAA,UAMA,WAAA,CAAY,SAAC,CAAD,GAAA;mBAAO,MAAM,CAAC,IAAP,CAAY,CAAZ,EAAP;UAAA,CAAZ,CANA,CAAA;AAAA,UAOA,QAAA,GAAW,QAAA,CAAS,KAAT,EAAgB,IAAI,CAAC,GAAL,aAAS,MAAT,CAAhB,EAAqC,IAAI,CAAC,GAAL,aAAS,MAAT,CAArC,CAPX,CAAA;iBAQA,WAAA,CAAY,SAAC,CAAD,EAAI,IAAJ,GAAA;mBAAa,IAAI,CAAC,GAAL,CAAS,kBAAT,EAA6B,GAAA,GAAM,QAAA,CAAS,CAAT,CAAnC,EAAb;UAAA,CAAZ,EATS;QAAA,EAAA;MAAA,CAAA,CAAA,CAAA,IAAA,CAfb,CAAA;AA0BA,cAAO,KAAP;AAAA,aACS,SADT;AAEQ,UAAA,UAAA,CAAW,SAAX,EAAsB,KAAtB,CAAA,CAFR;AACS;AADT,aAGS,YAHT;AAIQ,eAA6C,gFAA7C,GAAA;AAAA,YAAA,UAAA,CAAW,aAAA,GAAc,CAAzB,EAA8B,KAA9B,CAAA,CAAA;AAAA,WAJR;AAGS;AAHT,aAKS,YALT;AAMQ,eAA6C,qFAA7C,GAAA;AAAA,YAAA,UAAA,CAAW,aAAA,GAAc,CAAzB,EAA8B,KAA9B,CAAA,CAAA;AAAA,WANR;AAAA,OA1BA;AAAA,MAkCA,UAAA,CAAW,oBAAX,EAAiC,KAAjC,CAlCA,CAAA;AAAA,MAmCA,UAAA,CAAW,oBAAX,EAAiC,KAAjC,CAnCA,CAAA;AAqCA,aAAO,IAAP,CAtCW;IAAA,CAv1Bf,CAAA;AA+3BA;AAAA;;OA/3BA;WAm4BA,CAAC,CAAC,EAAE,CAAC,QAAL,GAAiB,SAAA,GAAA;AACb,UAAA,uCAAA;AAAA,MAAA,OAAA,GAAU,IAAC,CAAA,IAAD,CAAM,SAAN,CAAV,CAAA;AAAA,MACA,OAAA,GAAU,IAAC,CAAA,IAAD,CAAM,SAAN,CADV,CAAA;AAAA,MAGA,UAAA,GAAa,CAAA,SAAA,KAAA,GAAA;eAAA,SAAC,KAAD,GAAA;AACT,cAAA,gCAAA;AAAA,UAAA,WAAA,GAAc,SAAC,CAAD,GAAA;mBACV,KAAC,CAAA,IAAD,CAAM,KAAN,CAAY,CAAC,IAAb,CAAkB,SAAA,GAAA;AACd,kBAAA,CAAA;AAAA,cAAA,CAAA,GAAI,CAAA,CAAE,IAAF,CAAO,CAAC,IAAR,CAAa,OAAb,CAAJ,CAAA;AACA,cAAA,IAAiB,WAAA,IAAO,QAAA,CAAS,CAAT,CAAxB;uBAAA,CAAA,CAAE,CAAF,EAAK,CAAA,CAAE,IAAF,CAAL,EAAA;eAFc;YAAA,CAAlB,EADU;UAAA,CAAd,CAAA;AAAA,UAKA,MAAA,GAAS,EALT,CAAA;AAAA,UAMA,WAAA,CAAY,SAAC,CAAD,GAAA;mBAAO,MAAM,CAAC,IAAP,CAAY,CAAZ,EAAP;UAAA,CAAZ,CANA,CAAA;AAAA,UAOA,GAAA,GAAM,IAAI,CAAC,GAAL,aAAS,MAAT,CAPN,CAAA;AAAA,UAQA,MAAA,GAAS,SAAC,CAAD,GAAA;mBAAO,GAAA,GAAI,CAAJ,GAAM,CAAC,GAAA,GAAI,GAAL,EAAb;UAAA,CART,CAAA;iBASA,WAAA,CAAY,SAAC,CAAD,EAAI,IAAJ,GAAA;AACR,gBAAA,aAAA;AAAA,YAAA,IAAA,GAAO,IAAI,CAAC,IAAL,CAAA,CAAP,CAAA;AAAA,YACA,OAAA,GAAU,CAAA,CAAE,OAAF,CAAU,CAAC,GAAX,CACN;AAAA,cAAA,UAAA,EAAY,UAAZ;AAAA,cACA,QAAA,EAAU,MADV;aADM,CADV,CAAA;AAAA,YAIA,OAAO,CAAC,MAAR,CAAe,CAAA,CAAE,OAAF,CAAU,CAAC,GAAX,CACX;AAAA,cAAA,UAAA,EAAY,UAAZ;AAAA,cACA,QAAA,EAAU,CADV;AAAA,cAEA,MAAA,EAAQ,CAFR;AAAA,cAGA,OAAA,EAAS,CAHT;AAAA,cAIA,QAAA,EAAU,MAAA,CAAO,CAAP,CAAA,GAAY,GAJtB;AAAA,cAKA,kBAAA,EAAoB,MALpB;aADW,CAAf,CAJA,CAAA;AAAA,YAWA,OAAO,CAAC,MAAR,CAAe,CAAA,CAAE,OAAF,CAAU,CAAC,IAAX,CAAgB,IAAhB,CAAqB,CAAC,GAAtB,CACX;AAAA,cAAA,UAAA,EAAW,UAAX;AAAA,cACA,cAAA,EAAe,KADf;AAAA,cAEA,eAAA,EAAgB,KAFhB;aADW,CAAf,CAXA,CAAA;mBAgBA,IAAI,CAAC,GAAL,CAAS;AAAA,cAAA,SAAA,EAAW,CAAX;AAAA,cAAa,aAAA,EAAe,KAA5B;AAAA,cAAmC,YAAA,EAAc,QAAjD;aAAT,CAAmE,CAAC,IAApE,CAAyE,OAAzE,EAjBQ;UAAA,CAAZ,EAVS;QAAA,EAAA;MAAA,CAAA,CAAA,CAAA,IAAA,CAHb,CAAA;AAgCA,WAAsC,gFAAtC,GAAA;AAAA,QAAA,UAAA,CAAW,aAAA,GAAc,CAAzB,CAAA,CAAA;AAAA,OAhCA;AAAA,MAiCA,UAAA,CAAW,oBAAX,CAjCA,CAAA;AAmCA,aAAO,IAAP,CApCa;IAAA,EAr4BN;EAAA,CAAf,CATA,CAAA;AAAA","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 min: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\\n val: null\\n push: (record) ->\\n x = parseFloat(record[attr])\\n if not isNaN x then @val = Math.min(x, @val ? x)\\n value: -> @val\\n format: formatter\\n numInputs: if attr? then 0 else 1\\n\\n max: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\\n val: null\\n push: (record) -> \\n x = parseFloat(record[attr])\\n if not isNaN x then @val = Math.max(x, @val ? x)\\n value: -> @val\\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 \\"Minimum\\": tpl.min(usFmt)\\n \\"Maximum\\": tpl.max(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, utcOutput=false, mthNames=mthNamesEn, dayNames=dayNamesEn) ->\\n utc = if utcOutput then \\"UTC\\" else \\"\\"\\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[\\"get#{utc}FullYear\\"]()\\n when \\"m\\" then zeroPad(date[\\"get#{utc}Month\\"]()+1)\\n when \\"n\\" then mthNames[date[\\"get#{utc}Month\\"]()]\\n when \\"d\\" then zeroPad(date[\\"get#{utc}Date\\"]())\\n when \\"w\\" then dayNames[date[\\"get#{utc}Day\\"]()]\\n when \\"x\\" then date[\\"get#{utc}Day\\"]()\\n when \\"H\\" then zeroPad(date[\\"get#{utc}Hours\\"]())\\n when \\"M\\" then zeroPad(date[\\"get#{utc}Minutes\\"]())\\n when \\"S\\" then zeroPad(date[\\"get#{utc}Seconds\\"]())\\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 sortAs = (order) -> \\n mapping = {}\\n for i, x of order\\n mapping[x] = i\\n (a, b) ->\\n if mapping[a]? and mapping[b]?\\n return mapping[a] - mapping[b]\\n else if mapping[a]?\\n return -1\\n else if mapping[b]?\\n return 1\\n else\\n return naturalSort(a,b)\\n\\n getSort = (sorters, attr) ->\\n sort = sorters(attr)\\n if $.isFunction(sort)\\n return sort \\n else\\n return naturalSort\\n\\n #expose these to the outside world\\n $.pivotUtilities = {aggregatorTemplates, aggregators, renderers, derivers, locales,\\n naturalSort, numberFormat, sortAs}\\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 @sorters = opts.sorters\\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 arrSort: (attrs) => \\n sortersArr = (getSort(@sorters, a) for a in attrs)\\n (a,b) -> \\n for i, sorter of sortersArr\\n comparison = sorter(a[i], b[i])\\n return comparison if comparison != 0\\n return 0\\n\\n sortKeys: () =>\\n if not @sorted\\n @sorted = true\\n @rowKeys.sort @arrSort(@rowAttrs)\\n @colKeys.sort @arrSort(@colAttrs)\\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 vals: []\\n filter: -> true\\n aggregator: aggregatorTemplates.count()()\\n aggregatorName: \\"Count\\"\\n sorters: -> \\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 = $(\\"<span>\\").html opts.localeStrings.renderError\\n catch e\\n console.error(e.stack) if console?\\n result = $(\\"<span>\\").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: 85\\n autoSortUnusedAttrs: false\\n rendererOptions: localeStrings: locales[locale].localeStrings\\n onRefresh: null\\n filter: -> true\\n sorters: -> \\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 = $(\\"<table>\\", \\"class\\": \\"pvtUi\\").attr(\\"cellpadding\\", 5)\\n\\n #renderer control\\n rendererControl = $(\\"<td>\\")\\n\\n renderer = $(\\"<select>\\")\\n .addClass(\'pvtRenderer\')\\n .appendTo(rendererControl)\\n .bind \\"change\\", -> refresh() #capture reference\\n for own x of opts.renderers\\n $(\\"<option>\\").val(x).html(x).appendTo(renderer)\\n\\n\\n #axis list, including the double-click menu\\n colList = $(\\"<td>\\").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 unusedAttrsVerticalAutoCutoff = 120 # legacy support\\n else\\n unusedAttrsVerticalAutoCutoff = parseInt opts.unusedAttrsVertical\\n\\n if not isNaN(unusedAttrsVerticalAutoCutoff)\\n attrLength = 0\\n attrLength += a.length for a in shownAttributes\\n unusedAttrsVerticalAutoOverride = attrLength > unusedAttrsVerticalAutoCutoff\\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 = $(\\"<div>\\").addClass(\'pvtFilterBox\').hide()\\n\\n valueList.append $(\\"<h4>\\").text(\\"#{c} (#{keys.length})\\")\\n if keys.length > opts.menuLimit\\n valueList.append $(\\"<p>\\").html(opts.localeStrings.tooMany)\\n else\\n btns = $(\\"<p>\\").appendTo(valueList)\\n btns.append $(\\"<button>\\", {type:\\"button\\"}).html(opts.localeStrings.selectAll).bind \\"click\\", ->\\n valueList.find(\\"input:visible\\").prop \\"checked\\", true\\n btns.append $(\\"<button>\\", {type:\\"button\\"}).html(opts.localeStrings.selectNone).bind \\"click\\", ->\\n valueList.find(\\"input:visible\\").prop \\"checked\\", false\\n btns.append $(\\"<br>\\")\\n btns.append $(\\"<input>\\", {type: \\"text\\", placeholder: opts.localeStrings.filterResults, class: \\"pvtSearch\\"}).bind \\"keyup\\", ->\\n filter = $(this).val().toLowerCase()\\n valueList.find(\'.pvtCheckContainer p\').each ->\\n testString = $(this).text().toLowerCase().indexOf(filter)\\n if testString isnt -1\\n $(this).show()\\n else\\n $(this).hide()\\n\\n checkContainer = $(\\"<div>\\").addClass(\\"pvtCheckContainer\\").appendTo(valueList)\\n\\n for k in keys.sort(getSort(opts.sorters, c))\\n v = axisValues[c][k]\\n filterItem = $(\\"<label>\\")\\n filterItemExcluded = if opts.exclusions[c] then (k in opts.exclusions[c]) else false\\n hasExcludedItem ||= filterItemExcluded\\n $(\\"<input>\\")\\n .attr(\\"type\\", \\"checkbox\\").addClass(\'pvtFilter\')\\n .attr(\\"checked\\", !filterItemExcluded).data(\\"filter\\", [c,k])\\n .appendTo filterItem\\n filterItem.append $(\\"<span>\\").html k\\n filterItem.append $(\\"<span>\\").text \\" (\\"+v+\\")\\"\\n checkContainer.append $(\\"<p>\\").append(filterItem)\\n\\n updateFilter = ->\\n unselectedCount = valueList.find(\\"[type=\'checkbox\']\\").length -\\n valueList.find(\\"[type=\'checkbox\']:checked\\").length\\n if unselectedCount > 0\\n attrElem.addClass \\"pvtFilteredAttribute\\"\\n else\\n attrElem.removeClass \\"pvtFilteredAttribute\\"\\n if keys.length > opts.menuLimit\\n valueList.toggle()\\n else\\n valueList.toggle(0, refresh)\\n\\n $(\\"<p>\\").appendTo(valueList)\\n .append $(\\"<button>\\", {type:\\"button\\"}).text(\\"OK\\").bind \\"click\\", updateFilter\\n\\n showFilterList = (e) ->\\n valueList.css(left: e.pageX, top: e.pageY).toggle()\\n valueList.find(\'.pvtSearch\').val(\'\')\\n valueList.find(\'.pvtCheckContainer p\').show()\\n\\n triangleLink = $(\\"<span>\\").addClass(\'pvtTriangle\').html(\\" &#x25BE;\\")\\n .bind \\"click\\", showFilterList\\n\\n attrElem = $(\\"<li>\\").addClass(\\"axis_#{i}\\")\\n .append $(\\"<span>\\").addClass(\'pvtAttr\').text(c).data(\\"attrName\\", c).append(triangleLink)\\n attrElem.addClass(\'pvtFilteredAttribute\') if hasExcludedItem\\n colList.append(attrElem).append(valueList)\\n\\n attrElem.bind \\"dblclick\\", showFilterList\\n\\n tr1 = $(\\"<tr>\\").appendTo(uiTable)\\n\\n #aggregator menu and value area\\n\\n aggregator = $(\\"<select>\\").addClass(\'pvtAggregator\')\\n .bind \\"change\\", -> refresh() #capture reference\\n for own x of opts.aggregators\\n aggregator.append $(\\"<option>\\").val(x).html(x)\\n\\n $(\\"<td>\\").addClass(\'pvtVals\')\\n .appendTo(tr1)\\n .append(aggregator)\\n .append($(\\"<br>\\"))\\n\\n #column axes\\n $(\\"<td>\\").addClass(\'pvtAxisContainer pvtHorizList pvtCols\').appendTo(tr1)\\n\\n tr2 = $(\\"<tr>\\").appendTo(uiTable)\\n\\n #row axes\\n tr2.append $(\\"<td>\\").addClass(\'pvtAxisContainer pvtRows\').attr(\\"valign\\", \\"top\\")\\n\\n #the actual pivot table container\\n pivotTable = $(\\"<td>\\")\\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 $(\\"<tr>\\").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 = $(\\"<select>\\")\\n .addClass(\'pvtAttrDropdown\')\\n .append($(\\"<option>\\"))\\n .bind \\"change\\", -> refresh()\\n for attr in shownAttributes\\n newDropdown.append($(\\"<option>\\").val(attr).text(attr))\\n pvtVals.append(newDropdown)\\n\\n if initialRender\\n vals = opts.vals\\n i = 0\\n @find(\\".pvtVals select.pvtAttrDropdown\\").each ->\\n $(this).val vals[i]\\n i++\\n initialRender = false\\n\\n subopts.aggregatorName = aggregator.val()\\n subopts.vals = vals\\n subopts.aggregator = opts.aggregators[aggregator.val()](vals)\\n subopts.renderer = opts.renderers[renderer.val()]\\n\\n #construct filter here\\n exclusions = {}\\n @find(\'input.pvtFilter\').not(\':checked\').each ->\\n filter = $(this).data(\\"filter\\")\\n if exclusions[filter[0]]?\\n exclusions[filter[0]].push( filter[1] )\\n else\\n exclusions[filter[0]] = [ filter[1] ]\\n #include inclusions when exclusions present\\n inclusions = {}\\n @find(\'input.pvtFilter:checked\').each ->\\n filter = $(this).data(\\"filter\\")\\n if exclusions[filter[0]]?\\n if inclusions[filter[0]]?\\n inclusions[filter[0]].push( filter[1] )\\n else\\n inclusions[filter[0]] = [ filter[1] ]\\n\\n subopts.filter = (record) ->\\n return false if not opts.filter(record)\\n for k,excludedItems of exclusions\\n return false if \\"\\"+record[k] in excludedItems\\n return true\\n\\n pivotTable.pivot(input,subopts)\\n pivotUIOptions = $.extend opts,\\n cols: subopts.cols\\n rows: subopts.rows\\n vals: vals\\n exclusions: exclusions\\n #to indicate inclusions are informational only\\n inclusionsInfo: inclusions\\n aggregatorName: aggregator.val()\\n rendererName: renderer.val()\\n\\n @data \\"pivotUIOptions\\", pivotUIOptions\\n\\n # if requested make sure unused columns are in alphabetical order\\n if opts.autoSortUnusedAttrs\\n unusedAttrsContainer = @find(\\"td.pvtUnused.pvtAxisContainer\\")\\n $(unusedAttrsContainer).children(\\"li\\")\\n .sort((a, b) => naturalSort($(a).text(), $(b).text()))\\n .appendTo unusedAttrsContainer\\n\\n pivotTable.css(\\"opacity\\", 1)\\n opts.onRefresh(pivotUIOptions) if opts.onRefresh?\\n\\n refresh = =>\\n pivotTable.css(\\"opacity\\", 0.5)\\n setTimeout refreshDelayed, 10\\n\\n #the very first refresh will actually display the table\\n refresh()\\n\\n @find(\\".pvtAxisContainer\\").sortable\\n update: (e, ui) -> refresh() if not ui.sender?\\n connectWith: @find(\\".pvtAxisContainer\\")\\n items: \'li\'\\n placeholder: \'pvtPlaceholder\'\\n catch e\\n console.error(e.stack) if console?\\n @html opts.localeStrings.uiRenderError\\n return this\\n\\n ###\\n Heatmap post-processing\\n ###\\n\\n $.fn.heatmap = (scope = \\"heatmap\\") ->\\n numRows = @data \\"numrows\\"\\n numCols = @data \\"numcols\\"\\n\\n colorGen = (color, min, max) ->\\n hexGen = switch color\\n when \\"red\\" then (hex) -> \\"ff#{hex}#{hex}\\"\\n when \\"green\\" then (hex) -> \\"#{hex}ff#{hex}\\"\\n when \\"blue\\" then (hex) -> \\"#{hex}#{hex}ff\\"\\n\\n return (x) ->\\n intensity = 255 - Math.round 255*(x-min)/(max-min)\\n hex = intensity.toString(16).split(\\".\\")[0]\\n hex = 0+hex if hex.length == 1\\n return hexGen(hex)\\n\\n heatmapper = (scope, color) =>\\n forEachCell = (f) =>\\n @find(scope).each ->\\n x = $(this).data(\\"value\\")\\n f(x, $(this)) if x? and isFinite(x)\\n\\n values = []\\n forEachCell (x) -> values.push x\\n colorFor = colorGen color, Math.min(values...), Math.max(values...)\\n forEachCell (x, elem) -> elem.css \\"background-color\\", \\"#\\" + colorFor(x)\\n\\n switch scope\\n when \\"heatmap\\"\\n heatmapper \\".pvtVal\\", \\"red\\"\\n when \\"rowheatmap\\"\\n heatmapper \\".pvtVal.row#{i}\\", \\"red\\" for i in [0...numRows]\\n when \\"colheatmap\\"\\n heatmapper \\".pvtVal.col#{j}\\", \\"red\\" for j in [0...numCols]\\n\\n heatmapper \\".pvtTotal.rowTotal\\", \\"red\\"\\n heatmapper \\".pvtTotal.colTotal\\", \\"red\\"\\n\\n return this\\n\\n ###\\n Barchart post-processing\\n ###\\n\\n $.fn.barchart = ->\\n numRows = @data \\"numrows\\"\\n numCols = @data \\"numcols\\"\\n\\n barcharter = (scope) =>\\n forEachCell = (f) =>\\n @find(scope).each ->\\n x = $(this).data(\\"value\\")\\n f(x, $(this)) if x? and isFinite(x)\\n\\n values = []\\n forEachCell (x) -> values.push x\\n max = Math.max(values...)\\n scaler = (x) -> 100*x/(1.4*max)\\n forEachCell (x, elem) ->\\n text = elem.text()\\n wrapper = $(\\"<div>\\").css\\n \\"position\\": \\"relative\\"\\n \\"height\\": \\"55px\\"\\n wrapper.append $(\\"<div>\\").css\\n \\"position\\": \\"absolute\\"\\n \\"bottom\\": 0\\n \\"left\\": 0\\n \\"right\\": 0\\n \\"height\\": scaler(x) + \\"%\\"\\n \\"background-color\\": \\"gray\\"\\n wrapper.append $(\\"<div>\\").text(text).css\\n \\"position\\":\\"relative\\"\\n \\"padding-left\\":\\"5px\\"\\n \\"padding-right\\":\\"5px\\"\\n\\n elem.css(\\"padding\\": 0,\\"padding-top\\": \\"5px\\", \\"text-align\\": \\"center\\").html wrapper\\n\\n barcharter \\".pvtVal.row#{i}\\" for i in [0...numRows]\\n barcharter \\".pvtTotal.colTotal\\"\\n\\n return this\\n\\n\\n"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626249.89</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery,\n
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n
slice = [].slice,\n
bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n
hasProp = {}.hasOwnProperty;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
\n
/*\n
Utilities\n
*/\n
var PivotData, addSeparators, aggregatorTemplates, aggregators, dayNamesEn, derivers, getSort, locales, mthNamesEn, naturalSort, numberFormat, pivotTableRenderer, renderers, sortAs, usFmt, usFmtInt, usFmtPct, zeroPad;\n
addSeparators = function(nStr, thousandsSep, decimalSep) {\n
var rgx, x, x1, x2;\n
nStr += \'\';\n
x = nStr.split(\'.\');\n
x1 = x[0];\n
x2 = x.length > 1 ? decimalSep + x[1] : \'\';\n
rgx = /(\\d+)(\\d{3})/;\n
while (rgx.test(x1)) {\n
x1 = x1.replace(rgx, \'$1\' + thousandsSep + \'$2\');\n
}\n
return x1 + x2;\n
};\n
numberFormat = function(opts) {\n
var defaults;\n
defaults = {\n
digitsAfterDecimal: 2,\n
scaler: 1,\n
thousandsSep: ",",\n
decimalSep: ".",\n
prefix: "",\n
suffix: "",\n
showZero: false\n
};\n
opts = $.extend(defaults, opts);\n
return function(x) {\n
var result;\n
if (isNaN(x) || !isFinite(x)) {\n
return "";\n
}\n
if (x === 0 && !opts.showZero) {\n
return "";\n
}\n
result = addSeparators((opts.scaler * x).toFixed(opts.digitsAfterDecimal), opts.thousandsSep, opts.decimalSep);\n
return "" + opts.prefix + result + opts.suffix;\n
};\n
};\n
usFmt = numberFormat();\n
usFmtInt = numberFormat({\n
digitsAfterDecimal: 0\n
});\n
usFmtPct = numberFormat({\n
digitsAfterDecimal: 1,\n
scaler: 100,\n
suffix: "%"\n
});\n
aggregatorTemplates = {\n
count: function(formatter) {\n
if (formatter == null) {\n
formatter = usFmtInt;\n
}\n
return function() {\n
return function(data, rowKey, colKey) {\n
return {\n
count: 0,\n
push: function() {\n
return this.count++;\n
},\n
value: function() {\n
return this.count;\n
},\n
format: formatter\n
};\n
};\n
};\n
},\n
countUnique: function(formatter) {\n
if (formatter == null) {\n
formatter = usFmtInt;\n
}\n
return function(arg) {\n
var attr;\n
attr = arg[0];\n
return function(data, rowKey, colKey) {\n
return {\n
uniq: [],\n
push: function(record) {\n
var ref;\n
if (ref = record[attr], indexOf.call(this.uniq, ref) < 0) {\n
return this.uniq.push(record[attr]);\n
}\n
},\n
value: function() {\n
return this.uniq.length;\n
},\n
format: formatter,\n
numInputs: attr != null ? 0 : 1\n
};\n
};\n
};\n
},\n
listUnique: function(sep) {\n
return function(arg) {\n
var attr;\n
attr = arg[0];\n
return function(data, rowKey, colKey) {\n
return {\n
uniq: [],\n
push: function(record) {\n
var ref;\n
if (ref = record[attr], indexOf.call(this.uniq, ref) < 0) {\n
return this.uniq.push(record[attr]);\n
}\n
},\n
value: function() {\n
return this.uniq.join(sep);\n
},\n
format: function(x) {\n
return x;\n
},\n
numInputs: attr != null ? 0 : 1\n
};\n
};\n
};\n
},\n
sum: function(formatter) {\n
if (formatter == null) {\n
formatter = usFmt;\n
}\n
return function(arg) {\n
var attr;\n
attr = arg[0];\n
return function(data, rowKey, colKey) {\n
return {\n
sum: 0,\n
push: function(record) {\n
if (!isNaN(parseFloat(record[attr]))) {\n
return this.sum += parseFloat(record[attr]);\n
}\n
},\n
value: function() {\n
return this.sum;\n
},\n
format: formatter,\n
numInputs: attr != null ? 0 : 1\n
};\n
};\n
};\n
},\n
min: function(formatter) {\n
if (formatter == null) {\n
formatter = usFmt;\n
}\n
return function(arg) {\n
var attr;\n
attr = arg[0];\n
return function(data, rowKey, colKey) {\n
return {\n
val: null,\n
push: function(record) {\n
var ref, x;\n
x = parseFloat(record[attr]);\n
if (!isNaN(x)) {\n
return this.val = Math.min(x, (ref = this.val) != null ? ref : x);\n
}\n
},\n
value: function() {\n
return this.val;\n
},\n
format: formatter,\n
numInputs: attr != null ? 0 : 1\n
};\n
};\n
};\n
},\n
max: function(formatter) {\n
if (formatter == null) {\n
formatter = usFmt;\n
}\n
return function(arg) {\n
var attr;\n
attr = arg[0];\n
return function(data, rowKey, colKey) {\n
return {\n
val: null,\n
push: function(record) {\n
var ref, x;\n
x = parseFloat(record[attr]);\n
if (!isNaN(x)) {\n
return this.val = Math.max(x, (ref = this.val) != null ? ref : x);\n
}\n
},\n
value: function() {\n
return this.val;\n
},\n
format: formatter,\n
numInputs: attr != null ? 0 : 1\n
};\n
};\n
};\n
},\n
average: function(formatter) {\n
if (formatter == null) {\n
formatter = usFmt;\n
}\n
return function(arg) {\n
var attr;\n
attr = arg[0];\n
return function(data, rowKey, colKey) {\n
return {\n
sum: 0,\n
len: 0,\n
push: function(record) {\n
if (!isNaN(parseFloat(record[attr]))) {\n
this.sum += parseFloat(record[attr]);\n
return this.len++;\n
}\n
},\n
value: function() {\n
return this.sum / this.len;\n
},\n
format: formatter,\n
numInputs: attr != null ? 0 : 1\n
};\n
};\n
};\n
},\n
sumOverSum: function(formatter) {\n
if (formatter == null) {\n
formatter = usFmt;\n
}\n
return function(arg) {\n
var denom, num;\n
num = arg[0], denom = arg[1];\n
return function(data, rowKey, colKey) {\n
return {\n
sumNum: 0,\n
sumDenom: 0,\n
push: function(record) {\n
if (!isNaN(parseFloat(record[num]))) {\n
this.sumNum += parseFloat(record[num]);\n
}\n
if (!isNaN(parseFloat(record[denom]))) {\n
return this.sumDenom += parseFloat(record[denom]);\n
}\n
},\n
value: function() {\n
return this.sumNum / this.sumDenom;\n
},\n
format: formatter,\n
numInputs: (num != null) && (denom != null) ? 0 : 2\n
};\n
};\n
};\n
},\n
sumOverSumBound80: function(upper, formatter) {\n
if (upper == null) {\n
upper = true;\n
}\n
if (formatter == null) {\n
formatter = usFmt;\n
}\n
return function(arg) {\n
var denom, num;\n
num = arg[0], denom = arg[1];\n
return function(data, rowKey, colKey) {\n
return {\n
sumNum: 0,\n
sumDenom: 0,\n
push: function(record) {\n
if (!isNaN(parseFloat(record[num]))) {\n
this.sumNum += parseFloat(record[num]);\n
}\n
if (!isNaN(parseFloat(record[denom]))) {\n
return this.sumDenom += parseFloat(record[denom]);\n
}\n
},\n
value: function() {\n
var sign;\n
sign = upper ? 1 : -1;\n
return (0.821187207574908 / this.sumDenom + this.sumNum / this.sumDenom + 1.2815515655446004 * sign * Math.sqrt(0.410593603787454 / (this.sumDenom * this.sumDenom) + (this.sumNum * (1 - this.sumNum / this.sumDenom)) / (this.sumDenom * this.sumDenom))) / (1 + 1.642374415149816 / this.sumDenom);\n
},\n
format: formatter,\n
numInputs: (num != null) && (denom != null) ? 0 : 2\n
};\n
};\n
};\n
},\n
fractionOf: function(wrapped, type, formatter) {\n
if (type == null) {\n
type = "total";\n
}\n
if (formatter == null) {\n
formatter = usFmtPct;\n
}\n
return function() {\n
var x;\n
x = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n
return function(data, rowKey, colKey) {\n
return {\n
selector: {\n
total: [[], []],\n
row: [rowKey, []],\n
col: [[], colKey]\n
}[type],\n
inner: wrapped.apply(null, x)(data, rowKey, colKey),\n
push: function(record) {\n
return this.inner.push(record);\n
},\n
format: formatter,\n
value: function() {\n
return this.inner.value() / data.getAggregator.apply(data, this.selector).inner.value();\n
},\n
numInputs: wrapped.apply(null, x)().numInputs\n
};\n
};\n
};\n
}\n
};\n
aggregators = (function(tpl) {\n
return {\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
"Minimum": tpl.min(usFmt),\n
"Maximum": tpl.max(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
})(aggregatorTemplates);\n
renderers = {\n
"Table": function(pvtData, opts) {\n
return pivotTableRenderer(pvtData, opts);\n
},\n
"Table Barchart": function(pvtData, opts) {\n
return $(pivotTableRenderer(pvtData, opts)).barchart();\n
},\n
"Heatmap": function(pvtData, opts) {\n
return $(pivotTableRenderer(pvtData, opts)).heatmap();\n
},\n
"Row Heatmap": function(pvtData, opts) {\n
return $(pivotTableRenderer(pvtData, opts)).heatmap("rowheatmap");\n
},\n
"Col Heatmap": function(pvtData, opts) {\n
return $(pivotTableRenderer(pvtData, opts)).heatmap("colheatmap");\n
}\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",\n
vs: "vs",\n
by: "by"\n
}\n
}\n
};\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 = function(number) {\n
return ("0" + number).substr(-2, 2);\n
};\n
derivers = {\n
bin: function(col, binWidth) {\n
return function(record) {\n
return record[col] - record[col] % binWidth;\n
};\n
},\n
dateFormat: function(col, formatString, utcOutput, mthNames, dayNames) {\n
var utc;\n
if (utcOutput == null) {\n
utcOutput = false;\n
}\n
if (mthNames == null) {\n
mthNames = mthNamesEn;\n
}\n
if (dayNames == null) {\n
dayNames = dayNamesEn;\n
}\n
utc = utcOutput ? "UTC" : "";\n
return function(record) {\n
var date;\n
date = new Date(Date.parse(record[col]));\n
if (isNaN(date)) {\n
return "";\n
}\n
return formatString.replace(/%(.)/g, function(m, p) {\n
switch (p) {\n
case "y":\n
return date["get" + utc + "FullYear"]();\n
case "m":\n
return zeroPad(date["get" + utc + "Month"]() + 1);\n
case "n":\n
return mthNames[date["get" + utc + "Month"]()];\n
case "d":\n
return zeroPad(date["get" + utc + "Date"]());\n
case "w":\n
return dayNames[date["get" + utc + "Day"]()];\n
case "x":\n
return date["get" + utc + "Day"]();\n
case "H":\n
return zeroPad(date["get" + utc + "Hours"]());\n
case "M":\n
return zeroPad(date["get" + utc + "Minutes"]());\n
case "S":\n
return zeroPad(date["get" + utc + "Seconds"]());\n
default:\n
return "%" + p;\n
}\n
});\n
};\n
}\n
};\n
naturalSort = (function(_this) {\n
return function(as, bs) {\n
var a, a1, b, b1, rd, rx, rz;\n
rx = /(\\d+)|(\\D+)/g;\n
rd = /\\d/;\n
rz = /^0/;\n
if (typeof as === "number" || typeof bs === "number") {\n
if (isNaN(as)) {\n
return 1;\n
}\n
if (isNaN(bs)) {\n
return -1;\n
}\n
return as - bs;\n
}\n
a = String(as).toLowerCase();\n
b = String(bs).toLowerCase();\n
if (a === b) {\n
return 0;\n
}\n
if (!(rd.test(a) && rd.test(b))) {\n
return (a > b ? 1 : -1);\n
}\n
a = a.match(rx);\n
b = b.match(rx);\n
while (a.length && b.length) {\n
a1 = a.shift();\n
b1 = b.shift();\n
if (a1 !== b1) {\n
if (rd.test(a1) && rd.test(b1)) {\n
return a1.replace(rz, ".0") - b1.replace(rz, ".0");\n
} else {\n
return (a1 > b1 ? 1 : -1);\n
}\n
}\n
}\n
return a.length - b.length;\n
};\n
})(this);\n
sortAs = function(order) {\n
var i, mapping, x;\n
mapping = {};\n
for (i in order) {\n
x = order[i];\n
mapping[x] = i;\n
}\n
return function(a, b) {\n
if ((mapping[a] != null) && (mapping[b] != null)) {\n
return mapping[a] - mapping[b];\n
} else if (mapping[a] != null) {\n
return -1;\n
} else if (mapping[b] != null) {\n
return 1;\n
} else {\n
return naturalSort(a, b);\n
}\n
};\n
};\n
getSort = function(sorters, attr) {\n
var sort;\n
sort = sorters(attr);\n
if ($.isFunction(sort)) {\n
return sort;\n
} else {\n
return naturalSort;\n
}\n
};\n
$.pivotUtilities = {\n
aggregatorTemplates: aggregatorTemplates,\n
aggregators: aggregators,\n
renderers: renderers,\n
derivers: derivers,\n
locales: locales,\n
naturalSort: naturalSort,\n
numberFormat: numberFormat,\n
sortAs: sortAs\n
};\n
\n
/*\n
Data Model class\n
*/\n
PivotData = (function() {\n
function PivotData(input, opts) {\n
this.getAggregator = bind(this.getAggregator, this);\n
this.getRowKeys = bind(this.getRowKeys, this);\n
this.getColKeys = bind(this.getColKeys, this);\n
this.sortKeys = bind(this.sortKeys, this);\n
this.arrSort = bind(this.arrSort, this);\n
this.aggregator = opts.aggregator;\n
this.aggregatorName = opts.aggregatorName;\n
this.colAttrs = opts.cols;\n
this.rowAttrs = opts.rows;\n
this.valAttrs = opts.vals;\n
this.sorters = opts.sorters;\n
this.tree = {};\n
this.rowKeys = [];\n
this.colKeys = [];\n
this.rowTotals = {};\n
this.colTotals = {};\n
this.allTotal = this.aggregator(this, [], []);\n
this.sorted = false;\n
PivotData.forEachRecord(input, opts.derivedAttributes, (function(_this) {\n
return function(record) {\n
if (opts.filter(record)) {\n
return _this.processRecord(record);\n
}\n
};\n
})(this));\n
}\n
\n
PivotData.forEachRecord = function(input, derivedAttributes, f) {\n
var addRecord, compactRecord, i, j, k, l, len1, record, ref, results, results1, tblCols;\n
if ($.isEmptyObject(derivedAttributes)) {\n
addRecord = f;\n
} else {\n
addRecord = function(record) {\n
var k, ref, v;\n
for (k in derivedAttributes) {\n
v = derivedAttributes[k];\n
record[k] = (ref = v(record)) != null ? ref : record[k];\n
}\n
return f(record);\n
};\n
}\n
if ($.isFunction(input)) {\n
return input(addRecord);\n
} else if ($.isArray(input)) {\n
if ($.isArray(input[0])) {\n
results = [];\n
for (i in input) {\n
if (!hasProp.call(input, i)) continue;\n
compactRecord = input[i];\n
if (!(i > 0)) {\n
continue;\n
}\n
record = {};\n
ref = input[0];\n
for (j in ref) {\n
if (!hasProp.call(ref, j)) continue;\n
k = ref[j];\n
record[k] = compactRecord[j];\n
}\n
results.push(addRecord(record));\n
}\n
return results;\n
} else {\n
results1 = [];\n
for (l = 0, len1 = input.length; l < len1; l++) {\n
record = input[l];\n
results1.push(addRecord(record));\n
}\n
return results1;\n
}\n
} else if (input instanceof jQuery) {\n
tblCols = [];\n
$("thead > tr > th", input).each(function(i) {\n
return tblCols.push($(this).text());\n
});\n
return $("tbody > tr", input).each(function(i) {\n
record = {};\n
$("td", this).each(function(j) {\n
return record[tblCols[j]] = $(this).html();\n
});\n
return addRecord(record);\n
});\n
} else {\n
throw new Error("unknown input format");\n
}\n
};\n
\n
PivotData.convertToArray = function(input) {\n
var result;\n
result = [];\n
PivotData.forEachRecord(input, {}, function(record) {\n
return result.push(record);\n
});\n
return result;\n
};\n
\n
PivotData.prototype.arrSort = function(attrs) {\n
var a, sortersArr;\n
sortersArr = (function() {\n
var l, len1, results;\n
results = [];\n
for (l = 0, len1 = attrs.length; l < len1; l++) {\n
a = attrs[l];\n
results.push(getSort(this.sorters, a));\n
}\n
return results;\n
}).call(this);\n
return function(a, b) {\n
var comparison, i, sorter;\n
for (i in sortersArr) {\n
sorter = sortersArr[i];\n
comparison = sorter(a[i], b[i]);\n
if (comparison !== 0) {\n
return comparison;\n
}\n
}\n
return 0;\n
};\n
};\n
\n
PivotData.prototype.sortKeys = function() {\n
if (!this.sorted) {\n
this.sorted = true;\n
this.rowKeys.sort(this.arrSort(this.rowAttrs));\n
return this.colKeys.sort(this.arrSort(this.colAttrs));\n
}\n
};\n
\n
PivotData.prototype.getColKeys = function() {\n
this.sortKeys();\n
return this.colKeys;\n
};\n
\n
PivotData.prototype.getRowKeys = function() {\n
this.sortKeys();\n
return this.rowKeys;\n
};\n
\n
PivotData.prototype.processRecord = function(record) {\n
var colKey, flatColKey, flatRowKey, l, len1, len2, n, ref, ref1, ref2, ref3, rowKey, x;\n
colKey = [];\n
rowKey = [];\n
ref = this.colAttrs;\n
for (l = 0, len1 = ref.length; l < len1; l++) {\n
x = ref[l];\n
colKey.push((ref1 = record[x]) != null ? ref1 : "null");\n
}\n
ref2 = this.rowAttrs;\n
for (n = 0, len2 = ref2.length; n < len2; n++) {\n
x = ref2[n];\n
rowKey.push((ref3 = record[x]) != null ? ref3 : "null");\n
}\n
flatRowKey = rowKey.join(String.fromCharCode(0));\n
flatColKey = colKey.join(String.fromCharCode(0));\n
this.allTotal.push(record);\n
if (rowKey.length !== 0) {\n
if (!this.rowTotals[flatRowKey]) {\n
this.rowKeys.push(rowKey);\n
this.rowTotals[flatRowKey] = this.aggregator(this, rowKey, []);\n
}\n
this.rowTotals[flatRowKey].push(record);\n
}\n
if (colKey.length !== 0) {\n
if (!this.colTotals[flatColKey]) {\n
this.colKeys.push(colKey);\n
this.colTotals[flatColKey] = this.aggregator(this, [], colKey);\n
}\n
this.colTotals[flatColKey].push(record);\n
}\n
if (colKey.length !== 0 && rowKey.length !== 0) {\n
if (!this.tree[flatRowKey]) {\n
this.tree[flatRowKey] = {};\n
}\n
if (!this.tree[flatRowKey][flatColKey]) {\n
this.tree[flatRowKey][flatColKey] = this.aggregator(this, rowKey, colKey);\n
}\n
return this.tree[flatRowKey][flatColKey].push(record);\n
}\n
};\n
\n
PivotData.prototype.getAggregator = function(rowKey, colKey) {\n
var agg, flatColKey, flatRowKey;\n
flatRowKey = rowKey.join(String.fromCharCode(0));\n
flatColKey = colKey.join(String.fromCharCode(0));\n
if (rowKey.length === 0 && colKey.length === 0) {\n
agg = this.allTotal;\n
} else if (rowKey.length === 0) {\n
agg = this.colTotals[flatColKey];\n
} else if (colKey.length === 0) {\n
agg = this.rowTotals[flatRowKey];\n
} else {\n
agg = this.tree[flatRowKey][flatColKey];\n
}\n
return agg != null ? agg : {\n
value: (function() {\n
return null;\n
}),\n
format: function() {\n
return "";\n
}\n
};\n
};\n
\n
return PivotData;\n
\n
})();\n
\n
/*\n
Default Renderer for hierarchical table layout\n
*/\n
pivotTableRenderer = function(pivotData, opts) {\n
var aggregator, c, colAttrs, colKey, colKeys, defaults, i, j, r, result, rowAttrs, rowKey, rowKeys, spanSize, td, th, totalAggregator, tr, txt, val, x;\n
defaults = {\n
localeStrings: {\n
totals: "Totals"\n
}\n
};\n
opts = $.extend(defaults, opts);\n
colAttrs = pivotData.colAttrs;\n
rowAttrs = pivotData.rowAttrs;\n
rowKeys = pivotData.getRowKeys();\n
colKeys = pivotData.getColKeys();\n
result = document.createElement("table");\n
result.className = "pvtTable";\n
spanSize = function(arr, i, j) {\n
var l, len, n, noDraw, ref, ref1, stop, x;\n
if (i !== 0) {\n
noDraw = true;\n
for (x = l = 0, ref = j; 0 <= ref ? l <= ref : l >= ref; x = 0 <= ref ? ++l : --l) {\n
if (arr[i - 1][x] !== arr[i][x]) {\n
noDraw = false;\n
}\n
}\n
if (noDraw) {\n
return -1;\n
}\n
}\n
len = 0;\n
while (i + len < arr.length) {\n
stop = false;\n
for (x = n = 0, ref1 = j; 0 <= ref1 ? n <= ref1 : n >= ref1; x = 0 <= ref1 ? ++n : --n) {\n
if (arr[i][x] !== arr[i + len][x]) {\n
stop = true;\n
}\n
}\n
if (stop) {\n
break;\n
}\n
len++;\n
}\n
return len;\n
};\n
for (j in colAttrs) {\n
if (!hasProp.call(colAttrs, j)) continue;\n
c = colAttrs[j];\n
tr = document.createElement("tr");\n
if (parseInt(j) === 0 && 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
}\n
th = document.createElement("th");\n
th.className = "pvtAxisLabel";\n
th.innerHTML = c;\n
tr.appendChild(th);\n
for (i in colKeys) {\n
if (!hasProp.call(colKeys, i)) continue;\n
colKey = colKeys[i];\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 && rowAttrs.length !== 0) {\n
th.setAttribute("rowspan", 2);\n
}\n
tr.appendChild(th);\n
}\n
}\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 + (rowAttrs.length === 0 ? 0 : 1));\n
tr.appendChild(th);\n
}\n
result.appendChild(tr);\n
}\n
if (rowAttrs.length !== 0) {\n
tr = document.createElement("tr");\n
for (i in rowAttrs) {\n
if (!hasProp.call(rowAttrs, i)) continue;\n
r = rowAttrs[i];\n
th = document.createElement("th");\n
th.className = "pvtAxisLabel";\n
th.innerHTML = r;\n
tr.appendChild(th);\n
}\n
th = document.createElement("th");\n
if (colAttrs.length === 0) {\n
th.className = "pvtTotalLabel";\n
th.innerHTML = opts.localeStrings.totals;\n
}\n
tr.appendChild(th);\n
result.appendChild(tr);\n
}\n
for (i in rowKeys) {\n
if (!hasProp.call(rowKeys, i)) continue;\n
rowKey = rowKeys[i];\n
tr = document.createElement("tr");\n
for (j in rowKey) {\n
if (!hasProp.call(rowKey, j)) continue;\n
txt = rowKey[j];\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 && colAttrs.length !== 0) {\n
th.setAttribute("colspan", 2);\n
}\n
tr.appendChild(th);\n
}\n
}\n
for (j in colKeys) {\n
if (!hasProp.call(colKeys, j)) continue;\n
colKey = colKeys[j];\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
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 + (colAttrs.length === 0 ? 0 : 1));\n
tr.appendChild(th);\n
for (j in colKeys) {\n
if (!hasProp.call(colKeys, j)) continue;\n
colKey = colKeys[j];\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
}\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
result.setAttribute("data-numrows", rowKeys.length);\n
result.setAttribute("data-numcols", colKeys.length);\n
return result;\n
};\n
\n
/*\n
Pivot Table core: create PivotData object and call Renderer on it\n
*/\n
$.fn.pivot = function(input, opts) {\n
var defaults, e, pivotData, result, x;\n
defaults = {\n
cols: [],\n
rows: [],\n
vals: [],\n
filter: function() {\n
return true;\n
},\n
aggregator: aggregatorTemplates.count()(),\n
aggregatorName: "Count",\n
sorters: function() {},\n
derivedAttributes: {},\n
renderer: pivotTableRenderer,\n
rendererOptions: null,\n
localeStrings: locales.en.localeStrings\n
};\n
opts = $.extend(defaults, opts);\n
result = null;\n
try {\n
pivotData = new PivotData(input, opts);\n
try {\n
result = opts.renderer(pivotData, opts.rendererOptions);\n
} catch (_error) {\n
e = _error;\n
if (typeof console !== "undefined" && console !== null) {\n
console.error(e.stack);\n
}\n
result = $("<span>").html(opts.localeStrings.renderError);\n
}\n
} catch (_error) {\n
e = _error;\n
if (typeof console !== "undefined" && console !== null) {\n
console.error(e.stack);\n
}\n
result = $("<span>").html(opts.localeStrings.computeError);\n
}\n
x = this[0];\n
while (x.hasChildNodes()) {\n
x.removeChild(x.lastChild);\n
}\n
return this.append(result);\n
};\n
\n
/*\n
Pivot Table UI: calls Pivot Table core above with options set by user\n
*/\n
$.fn.pivotUI = function(input, inputOpts, overwrite, locale) {\n
var a, aggregator, attrLength, axisValues, c, colList, defaults, e, existingOpts, fn, i, initialRender, k, l, len1, len2, len3, len4, n, o, opts, pivotTable, q, ref, ref1, ref2, ref3, ref4, refresh, refreshDelayed, renderer, rendererControl, shownAttributes, tblCols, tr1, tr2, uiTable, unusedAttrsVerticalAutoCutoff, unusedAttrsVerticalAutoOverride, x;\n
if (overwrite == null) {\n
overwrite = false;\n
}\n
if (locale == null) {\n
locale = "en";\n
}\n
defaults = {\n
derivedAttributes: {},\n
aggregators: locales[locale].aggregators,\n
renderers: locales[locale].renderers,\n
hiddenAttributes: [],\n
menuLimit: 200,\n
cols: [],\n
rows: [],\n
vals: [],\n
exclusions: {},\n
unusedAttrsVertical: 85,\n
autoSortUnusedAttrs: false,\n
rendererOptions: {\n
localeStrings: locales[locale].localeStrings\n
},\n
onRefresh: null,\n
filter: function() {\n
return true;\n
},\n
sorters: function() {},\n
localeStrings: locales[locale].localeStrings\n
};\n
existingOpts = this.data("pivotUIOptions");\n
if ((existingOpts == null) || overwrite) {\n
opts = $.extend(defaults, inputOpts);\n
} else {\n
opts = existingOpts;\n
}\n
try {\n
input = PivotData.convertToArray(input);\n
tblCols = (function() {\n
var ref, results;\n
ref = input[0];\n
results = [];\n
for (k in ref) {\n
if (!hasProp.call(ref, k)) continue;\n
results.push(k);\n
}\n
return results;\n
})();\n
ref = opts.derivedAttributes;\n
for (c in ref) {\n
if (!hasProp.call(ref, c)) continue;\n
if ((indexOf.call(tblCols, c) < 0)) {\n
tblCols.push(c);\n
}\n
}\n
axisValues = {};\n
for (l = 0, len1 = tblCols.length; l < len1; l++) {\n
x = tblCols[l];\n
axisValues[x] = {};\n
}\n
PivotData.forEachRecord(input, opts.derivedAttributes, function(record) {\n
var base, results, v;\n
results = [];\n
for (k in record) {\n
if (!hasProp.call(record, k)) continue;\n
v = record[k];\n
if (!(opts.filter(record))) {\n
continue;\n
}\n
if (v == null) {\n
v = "null";\n
}\n
if ((base = axisValues[k])[v] == null) {\n
base[v] = 0;\n
}\n
results.push(axisValues[k][v]++);\n
}\n
return results;\n
});\n
uiTable = $("<table>", {\n
"class": "pvtUi"\n
}).attr("cellpadding", 5);\n
rendererControl = $("<td>");\n
renderer = $("<select>").addClass(\'pvtRenderer\').appendTo(rendererControl).bind("change", function() {\n
return refresh();\n
});\n
ref1 = opts.renderers;\n
for (x in ref1) {\n
if (!hasProp.call(ref1, x)) continue;\n
$("<option>").val(x).html(x).appendTo(renderer);\n
}\n
colList = $("<td>").addClass(\'pvtAxisContainer pvtUnused\');\n
shownAttributes = (function() {\n
var len2, n, results;\n
results = [];\n
for (n = 0, len2 = tblCols.length; n < len2; n++) {\n
c = tblCols[n];\n
if (indexOf.call(opts.hiddenAttributes, c) < 0) {\n
results.push(c);\n
}\n
}\n
return results;\n
})();\n
unusedAttrsVerticalAutoOverride = false;\n
if (opts.unusedAttrsVertical === "auto") {\n
unusedAttrsVerticalAutoCutoff = 120;\n
} else {\n
unusedAttrsVerticalAutoCutoff = parseInt(opts.unusedAttrsVertical);\n
}\n
if (!isNaN(unusedAttrsVerticalAutoCutoff)) {\n
attrLength = 0;\n
for (n = 0, len2 = shownAttributes.length; n < len2; n++) {\n
a = shownAttributes[n];\n
attrLength += a.length;\n
}\n
unusedAttrsVerticalAutoOverride = attrLength > unusedAttrsVerticalAutoCutoff;\n
}\n
if (opts.unusedAttrsVertical === true || unusedAttrsVerticalAutoOverride) {\n
colList.addClass(\'pvtVertList\');\n
} else {\n
colList.addClass(\'pvtHorizList\');\n
}\n
fn = function(c) {\n
var attrElem, btns, checkContainer, filterItem, filterItemExcluded, hasExcludedItem, keys, len3, o, ref2, showFilterList, triangleLink, updateFilter, v, valueList;\n
keys = (function() {\n
var results;\n
results = [];\n
for (k in axisValues[c]) {\n
results.push(k);\n
}\n
return results;\n
})();\n
hasExcludedItem = false;\n
valueList = $("<div>").addClass(\'pvtFilterBox\').hide();\n
valueList.append($("<h4>").text(c + " (" + keys.length + ")"));\n
if (keys.length > opts.menuLimit) {\n
valueList.append($("<p>").html(opts.localeStrings.tooMany));\n
} else {\n
btns = $("<p>").appendTo(valueList);\n
btns.append($("<button>", {\n
type: "button"\n
}).html(opts.localeStrings.selectAll).bind("click", function() {\n
return valueList.find("input:visible").prop("checked", true);\n
}));\n
btns.append($("<button>", {\n
type: "button"\n
}).html(opts.localeStrings.selectNone).bind("click", function() {\n
return valueList.find("input:visible").prop("checked", false);\n
}));\n
btns.append($("<br>"));\n
btns.append($("<input>", {\n
type: "text",\n
placeholder: opts.localeStrings.filterResults,\n
"class": "pvtSearch"\n
}).bind("keyup", function() {\n
var filter;\n
filter = $(this).val().toLowerCase();\n
return valueList.find(\'.pvtCheckContainer p\').each(function() {\n
var testString;\n
testString = $(this).text().toLowerCase().indexOf(filter);\n
if (testString !== -1) {\n
return $(this).show();\n
} else {\n
return $(this).hide();\n
}\n
});\n
}));\n
checkContainer = $("<div>").addClass("pvtCheckContainer").appendTo(valueList);\n
ref2 = keys.sort(getSort(opts.sorters, c));\n
for (o = 0, len3 = ref2.length; o < len3; o++) {\n
k = ref2[o];\n
v = axisValues[c][k];\n
filterItem = $("<label>");\n
filterItemExcluded = opts.exclusions[c] ? (indexOf.call(opts.exclusions[c], k) >= 0) : false;\n
hasExcludedItem || (hasExcludedItem = filterItemExcluded);\n
$("<input>").attr("type", "checkbox").addClass(\'pvtFilter\').attr("checked", !filterItemExcluded).data("filter", [c, k]).appendTo(filterItem);\n
filterItem.append($("<span>").html(k));\n
filterItem.append($("<span>").text(" (" + v + ")"));\n
checkContainer.append($("<p>").append(filterItem));\n
}\n
}\n
updateFilter = function() {\n
var unselectedCount;\n
unselectedCount = valueList.find("[type=\'checkbox\']").length - valueList.find("[type=\'checkbox\']:checked").length;\n
if (unselectedCount > 0) {\n
attrElem.addClass("pvtFilteredAttribute");\n
} else {\n
attrElem.removeClass("pvtFilteredAttribute");\n
}\n
if (keys.length > opts.menuLimit) {\n
return valueList.toggle();\n
} else {\n
return valueList.toggle(0, refresh);\n
}\n
};\n
$("<p>").appendTo(valueList).append($("<button>", {\n
type: "button"\n
}).text("OK").bind("click", updateFilter));\n
showFilterList = function(e) {\n
valueList.css({\n
left: e.pageX,\n
top: e.pageY\n
}).toggle();\n
valueList.find(\'.pvtSearch\').val(\'\');\n
return valueList.find(\'.pvtCheckContainer p\').show();\n
};\n
triangleLink = $("<span>").addClass(\'pvtTriangle\').html(" &#x25BE;").bind("click", showFilterList);\n
attrElem = $("<li>").addClass("axis_" + i).append($("<span>").addClass(\'pvtAttr\').text(c).data("attrName", c).append(triangleLink));\n
if (hasExcludedItem) {\n
attrElem.addClass(\'pvtFilteredAttribute\');\n
}\n
colList.append(attrElem).append(valueList);\n
return attrElem.bind("dblclick", showFilterList);\n
};\n
for (i in shownAttributes) {\n
if (!hasProp.call(shownAttributes, i)) continue;\n
c = shownAttributes[i];\n
fn(c);\n
}\n
tr1 = $("<tr>").appendTo(uiTable);\n
aggregator = $("<select>").addClass(\'pvtAggregator\').bind("change", function() {\n
return refresh();\n
});\n
ref2 = opts.aggregators;\n
for (x in ref2) {\n
if (!hasProp.call(ref2, x)) continue;\n
aggregator.append($("<option>").val(x).html(x));\n
}\n
$("<td>").addClass(\'pvtVals\').appendTo(tr1).append(aggregator).append($("<br>"));\n
$("<td>").addClass(\'pvtAxisContainer pvtHorizList pvtCols\').appendTo(tr1);\n
tr2 = $("<tr>").appendTo(uiTable);\n
tr2.append($("<td>").addClass(\'pvtAxisContainer pvtRows\').attr("valign", "top"));\n
pivotTable = $("<td>").attr("valign", "top").addClass(\'pvtRendererArea\').appendTo(tr2);\n
if (opts.unusedAttrsVertical === true || unusedAttrsVerticalAutoOverride) {\n
uiTable.find(\'tr:nth-child(1)\').prepend(rendererControl);\n
uiTable.find(\'tr:nth-child(2)\').prepend(colList);\n
} else {\n
uiTable.prepend($("<tr>").append(rendererControl).append(colList));\n
}\n
this.html(uiTable);\n
ref3 = opts.cols;\n
for (o = 0, len3 = ref3.length; o < len3; o++) {\n
x = ref3[o];\n
this.find(".pvtCols").append(this.find(".axis_" + ($.inArray(x, shownAttributes))));\n
}\n
ref4 = opts.rows;\n
for (q = 0, len4 = ref4.length; q < len4; q++) {\n
x = ref4[q];\n
this.find(".pvtRows").append(this.find(".axis_" + ($.inArray(x, shownAttributes))));\n
}\n
if (opts.aggregatorName != null) {\n
this.find(".pvtAggregator").val(opts.aggregatorName);\n
}\n
if (opts.rendererName != null) {\n
this.find(".pvtRenderer").val(opts.rendererName);\n
}\n
initialRender = true;\n
refreshDelayed = (function(_this) {\n
return function() {\n
var attr, exclusions, inclusions, len5, newDropdown, numInputsToProcess, pivotUIOptions, pvtVals, ref5, ref6, s, subopts, t, unusedAttrsContainer, vals;\n
subopts = {\n
derivedAttributes: opts.derivedAttributes,\n
localeStrings: opts.localeStrings,\n
rendererOptions: opts.rendererOptions,\n
sorters: opts.sorters,\n
cols: [],\n
rows: []\n
};\n
numInputsToProcess = (ref5 = opts.aggregators[aggregator.val()]([])().numInputs) != null ? ref5 : 0;\n
vals = [];\n
_this.find(".pvtRows li span.pvtAttr").each(function() {\n
return subopts.rows.push($(this).data("attrName"));\n
});\n
_this.find(".pvtCols li span.pvtAttr").each(function() {\n
return subopts.cols.push($(this).data("attrName"));\n
});\n
_this.find(".pvtVals select.pvtAttrDropdown").each(function() {\n
if (numInputsToProcess === 0) {\n
return $(this).remove();\n
} else {\n
numInputsToProcess--;\n
if ($(this).val() !== "") {\n
return vals.push($(this).val());\n
}\n
}\n
});\n
if (numInputsToProcess !== 0) {\n
pvtVals = _this.find(".pvtVals");\n
for (x = s = 0, ref6 = numInputsToProcess; 0 <= ref6 ? s < ref6 : s > ref6; x = 0 <= ref6 ? ++s : --s) {\n
newDropdown = $("<select>").addClass(\'pvtAttrDropdown\').append($("<option>")).bind("change", function() {\n
return refresh();\n
});\n
for (t = 0, len5 = shownAttributes.length; t < len5; t++) {\n
attr = shownAttributes[t];\n
newDropdown.append($("<option>").val(attr).text(attr));\n
}\n
pvtVals.append(newDropdown);\n
}\n
}\n
if (initialRender) {\n
vals = opts.vals;\n
i = 0;\n
_this.find(".pvtVals select.pvtAttrDropdown").each(function() {\n
$(this).val(vals[i]);\n
return i++;\n
});\n
initialRender = false;\n
}\n
subopts.aggregatorName = aggregator.val();\n
subopts.vals = vals;\n
subopts.aggregator = opts.aggregators[aggregator.val()](vals);\n
subopts.renderer = opts.renderers[renderer.val()];\n
exclusions = {};\n
_this.find(\'input.pvtFilter\').not(\':checked\').each(function() {\n
var filter;\n
filter = $(this).data("filter");\n
if (exclusions[filter[0]] != null) {\n
return exclusions[filter[0]].push(filter[1]);\n
} else {\n
return exclusions[filter[0]] = [filter[1]];\n
}\n
});\n
inclusions = {};\n
_this.find(\'input.pvtFilter:checked\').each(function() {\n
var filter;\n
filter = $(this).data("filter");\n
if (exclusions[filter[0]] != null) {\n
if (inclusions[filter[0]] != null) {\n
return inclusions[filter[0]].push(filter[1]);\n
} else {\n
return inclusions[filter[0]] = [filter[1]];\n
}\n
}\n
});\n
subopts.filter = function(record) {\n
var excludedItems, ref7;\n
if (!opts.filter(record)) {\n
return false;\n
}\n
for (k in exclusions) {\n
excludedItems = exclusions[k];\n
if (ref7 = "" + record[k], indexOf.call(excludedItems, ref7) >= 0) {\n
return false;\n
}\n
}\n
return true;\n
};\n
pivotTable.pivot(input, subopts);\n
pivotUIOptions = $.extend(opts, {\n
cols: subopts.cols,\n
rows: subopts.rows,\n
vals: vals,\n
exclusions: exclusions,\n
inclusionsInfo: inclusions,\n
aggregatorName: aggregator.val(),\n
rendererName: renderer.val()\n
});\n
_this.data("pivotUIOptions", pivotUIOptions);\n
if (opts.autoSortUnusedAttrs) {\n
unusedAttrsContainer = _this.find("td.pvtUnused.pvtAxisContainer");\n
$(unusedAttrsContainer).children("li").sort(function(a, b) {\n
return naturalSort($(a).text(), $(b).text());\n
}).appendTo(unusedAttrsContainer);\n
}\n
pivotTable.css("opacity", 1);\n
if (opts.onRefresh != null) {\n
return opts.onRefresh(pivotUIOptions);\n
}\n
};\n
})(this);\n
refresh = (function(_this) {\n
return function() {\n
pivotTable.css("opacity", 0.5);\n
return setTimeout(refreshDelayed, 10);\n
};\n
})(this);\n
refresh();\n
this.find(".pvtAxisContainer").sortable({\n
update: function(e, ui) {\n
if (ui.sender == null) {\n
return refresh();\n
}\n
},\n
connectWith: this.find(".pvtAxisContainer"),\n
items: \'li\',\n
placeholder: \'pvtPlaceholder\'\n
});\n
} catch (_error) {\n
e = _error;\n
if (typeof console !== "undefined" && console !== null) {\n
console.error(e.stack);\n
}\n
this.html(opts.localeStrings.uiRenderError);\n
}\n
return this;\n
};\n
\n
/*\n
Heatmap post-processing\n
*/\n
$.fn.heatmap = function(scope) {\n
var colorGen, heatmapper, i, j, l, n, numCols, numRows, ref, ref1;\n
if (scope == null) {\n
scope = "heatmap";\n
}\n
numRows = this.data("numrows");\n
numCols = this.data("numcols");\n
colorGen = function(color, min, max) {\n
var hexGen;\n
hexGen = (function() {\n
switch (color) {\n
case "red":\n
return function(hex) {\n
return "ff" + hex + hex;\n
};\n
case "green":\n
return function(hex) {\n
return hex + "ff" + hex;\n
};\n
case "blue":\n
return function(hex) {\n
return "" + hex + hex + "ff";\n
};\n
}\n
})();\n
return function(x) {\n
var hex, intensity;\n
intensity = 255 - Math.round(255 * (x - min) / (max - min));\n
hex = intensity.toString(16).split(".")[0];\n
if (hex.length === 1) {\n
hex = 0 + hex;\n
}\n
return hexGen(hex);\n
};\n
};\n
heatmapper = (function(_this) {\n
return function(scope, color) {\n
var colorFor, forEachCell, values;\n
forEachCell = function(f) {\n
return _this.find(scope).each(function() {\n
var x;\n
x = $(this).data("value");\n
if ((x != null) && isFinite(x)) {\n
return f(x, $(this));\n
}\n
});\n
};\n
values = [];\n
forEachCell(function(x) {\n
return values.push(x);\n
});\n
colorFor = colorGen(color, Math.min.apply(Math, values), Math.max.apply(Math, values));\n
return forEachCell(function(x, elem) {\n
return elem.css("background-color", "#" + colorFor(x));\n
});\n
};\n
})(this);\n
switch (scope) {\n
case "heatmap":\n
heatmapper(".pvtVal", "red");\n
break;\n
case "rowheatmap":\n
for (i = l = 0, ref = numRows; 0 <= ref ? l < ref : l > ref; i = 0 <= ref ? ++l : --l) {\n
heatmapper(".pvtVal.row" + i, "red");\n
}\n
break;\n
case "colheatmap":\n
for (j = n = 0, ref1 = numCols; 0 <= ref1 ? n < ref1 : n > ref1; j = 0 <= ref1 ? ++n : --n) {\n
heatmapper(".pvtVal.col" + j, "red");\n
}\n
}\n
heatmapper(".pvtTotal.rowTotal", "red");\n
heatmapper(".pvtTotal.colTotal", "red");\n
return this;\n
};\n
\n
/*\n
Barchart post-processing\n
*/\n
return $.fn.barchart = function() {\n
var barcharter, i, l, numCols, numRows, ref;\n
numRows = this.data("numrows");\n
numCols = this.data("numcols");\n
barcharter = (function(_this) {\n
return function(scope) {\n
var forEachCell, max, scaler, values;\n
forEachCell = function(f) {\n
return _this.find(scope).each(function() {\n
var x;\n
x = $(this).data("value");\n
if ((x != null) && isFinite(x)) {\n
return f(x, $(this));\n
}\n
});\n
};\n
values = [];\n
forEachCell(function(x) {\n
return values.push(x);\n
});\n
max = Math.max.apply(Math, values);\n
scaler = function(x) {\n
return 100 * x / (1.4 * max);\n
};\n
return forEachCell(function(x, elem) {\n
var text, wrapper;\n
text = elem.text();\n
wrapper = $("<div>").css({\n
"position": "relative",\n
"height": "55px"\n
});\n
wrapper.append($("<div>").css({\n
"position": "absolute",\n
"bottom": 0,\n
"left": 0,\n
"right": 0,\n
"height": scaler(x) + "%",\n
"background-color": "gray"\n
}));\n
wrapper.append($("<div>").text(text).css({\n
"position": "relative",\n
"padding-left": "5px",\n
"padding-right": "5px"\n
}));\n
return elem.css({\n
"padding": 0,\n
"padding-top": "5px",\n
"text-align": "center"\n
}).html(wrapper);\n
});\n
};\n
})(this);\n
for (i = l = 0, ref = numRows; 0 <= ref ? l < ref : l > ref; i = 0 <= ref ? ++l : --l) {\n
barcharter(".pvtVal.row" + i);\n
}\n
barcharter(".pvtTotal.colTotal");\n
return this;\n
};\n
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=pivot.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>51802</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.min.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>.pvtUi{color:#333}table.pvtTable{font-size:8pt;text-align:left;border-collapse:collapse}table.pvtTable tr th{background-color:#e6EEEE;border:1px solid #CDCDCD;font-size:8pt;padding:5px}table.pvtTable .pvtColLabel{text-align:center}table.pvtTable .pvtTotalLabel{text-align:right}table.pvtTable tr td{color:#3D3D3D;padding:5px;background-color:#FFF;border:1px solid #CDCDCD;vertical-align:top;text-align:right}.pvtGrandTotal,.pvtTotal{font-weight:700}.pvtVals{text-align:center}.pvtAggregator{margin-bottom:5px}.pvtAxisContainer,.pvtVals{border:1px solid gray;background:#EEE;padding:5px;min-width:20px;min-height:20px}.pvtAxisContainer li{padding:8px 6px;list-style-type:none;cursor:move}.pvtAxisContainer li.pvtPlaceholder{-webkit-border-radius:5px;padding:3px 15px;-moz-border-radius:5px;border-radius:5px;border:1px dashed #aaa}.pvtAxisContainer li span.pvtAttr{background:#F3F3F3;border:1px solid #DEDEDE;padding:2px 5px;white-space:nowrap;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.pvtTriangle{cursor:pointer;color:grey}.pvtHorizList li{display:inline}.pvtVertList{vertical-align:top}.pvtFilteredAttribute{font-style:italic}.pvtFilterBox{z-index:100;width:280px;border:1px solid gray;background-color:#fff;position:absolute;padding:20px;text-align:center}.pvtFilterBox h4{margin:0}.pvtFilterBox p{margin:1em auto}.pvtFilterBox label{font-weight:400}.pvtFilterBox input[type=checkbox]{margin-right:5px}.pvtCheckContainer{text-align:left;overflow:scroll;width:100%;max-height:200px}.pvtCheckContainer p{margin:5px}.pvtRendererArea{padding:5px}</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/pivot.coffee","pivot.min.js"],"names":["callWithJQuery","indexOf","item","i","l","this","length","slice","bind","fn","me","apply","arguments","hasProp","hasOwnProperty","pivotModule","exports","module","require","define","amd","jQuery","$","PivotData","addSeparators","aggregatorTemplates","aggregators","dayNamesEn","derivers","getSort","locales","mthNamesEn","naturalSort","numberFormat","pivotTableRenderer","renderers","sortAs","usFmt","usFmtInt","usFmtPct","zeroPad","nStr","thousandsSep","decimalSep","rgx","x","x1","x2","split","test","replace","opts","defaults","digitsAfterDecimal","scaler","prefix","suffix","showZero","extend","result","isNaN","isFinite","toFixed","count","formatter","data","rowKey","colKey","push","value","format","countUnique","arg","attr","uniq","record","ref","call","numInputs","listUnique","sep","join","sum","parseFloat","min","val","Math","max","average","len","sumOverSum","denom","num","sumNum","sumDenom","sumOverSumBound80","upper","sign","sqrt","fractionOf","wrapped","type","selector","total","row","col","inner","getAggregator","tpl","Count","Count Unique Values","List Unique Values","Sum","Integer Sum","Average","Minimum","Maximum","Sum over Sum","80% Upper Bound","80% Lower Bound","Sum as Fraction of Total","Sum as Fraction of Rows","Sum as Fraction of Columns","Count as Fraction of Total","Count as Fraction of Rows","Count as Fraction of Columns","Table","pvtData","Table Barchart","barchart","Heatmap","heatmap","Row Heatmap","Col Heatmap","en","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","totals","vs","by","number","substr","bin","binWidth","dateFormat","formatString","utcOutput","mthNames","dayNames","utc","date","Date","parse","m","p","_this","as","bs","a","a1","b","b1","rd","rx","rz","String","toLowerCase","match","shift","order","mapping","sorters","sort","isFunction","pivotUtilities","input","getRowKeys","getColKeys","sortKeys","arrSort","aggregator","aggregatorName","colAttrs","cols","rowAttrs","rows","valAttrs","vals","tree","rowKeys","colKeys","rowTotals","colTotals","allTotal","sorted","forEachRecord","derivedAttributes","filter","processRecord","f","addRecord","compactRecord","j","k","len1","results","results1","tblCols","isEmptyObject","v","isArray","each","text","html","Error","convertToArray","prototype","attrs","sortersArr","comparison","sorter","flatColKey","flatRowKey","len2","n","ref1","ref2","ref3","fromCharCode","agg","pivotData","c","r","spanSize","td","th","totalAggregator","tr","txt","document","createElement","className","arr","noDraw","stop","parseInt","setAttribute","appendChild","innerHTML","pivot","e","renderer","rendererOptions","_error","console","error","stack","hasChildNodes","removeChild","lastChild","append","pivotUI","inputOpts","overwrite","locale","attrLength","axisValues","colList","existingOpts","initialRender","len3","len4","o","pivotTable","q","ref4","refresh","refreshDelayed","rendererControl","shownAttributes","tr1","tr2","uiTable","unusedAttrsVerticalAutoCutoff","unusedAttrsVerticalAutoOverride","hiddenAttributes","menuLimit","exclusions","unusedAttrsVertical","autoSortUnusedAttrs","onRefresh","base","class","addClass","appendTo","attrElem","btns","checkContainer","filterItem","filterItemExcluded","hasExcludedItem","keys","showFilterList","triangleLink","updateFilter","valueList","hide","find","prop","placeholder","testString","show","unselectedCount","removeClass","toggle","css","left","pageX","top","pageY","prepend","inArray","rendererName","inclusions","len5","newDropdown","numInputsToProcess","pivotUIOptions","pvtVals","ref5","ref6","s","subopts","t","unusedAttrsContainer","remove","not","excludedItems","ref7","inclusionsInfo","children","setTimeout","sortable","update","ui","sender","connectWith","items","scope","colorGen","heatmapper","numCols","numRows","color","hexGen","hex","intensity","round","toString","colorFor","forEachCell","values","elem","barcharter","wrapper","position","height","bottom","right","background-color","padding-left","padding-right","padding","padding-top","text-align"],"mappings":"CAAA,WAAA,GAAAA,GAAAC,KAAAA,SAAA,SAAAC,GAAA,IAAA,GAAAC,GAAA,EAAAC,EAAAC,KAAAC,OAAAF,EAAAD,EAAAA,IAAA,GAAAA,IAAAE,OAAAA,KAAAF,KAAAD,EAAA,MAAAC,EAAA,OAAA,ICGII,KAAWA,MACXC,EAAO,SAASC,EAAIC,GAAK,MAAO,YAAY,MAAOD,GAAGE,MAAMD,EAAIE,aAChEC,KAAaC,gBDLjBd,EAAiB,SAACe,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,WACC,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GAEZ,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CC+4CA,OD34CAhB,GAAgB,SAACiB,EAAMC,EAAcC,GACjC,GAAAC,GAAAC,EAAAC,EAAAC,CAKiD,KALjDN,GAAQ,GACRI,EAAIJ,EAAKO,MAAM,KACfF,EAAKD,EAAE,GACPE,EAAQF,EAAEvC,OAAS,EAAQqC,EAAaE,EAAE,GAAQ,GAClDD,EAAM,eACiDA,EAAIK,KAAKH,IAAhEA,EAAKA,EAAGI,QAAQN,EAAK,KAAOF,EAAe,KAC3C,OAAOI,GAAKC,GAEhBd,EAAe,SAACkB,GACZ,GAAAC,ECsBF,ODtBEA,IACIC,mBAAoB,EAAGC,OAAQ,EAC/BZ,aAAc,IAAKC,WAAY,IAC/BY,OAAQ,GAAIC,OAAQ,GACpBC,UAAU,GACdN,EAAO7B,EAAEoC,OAAON,EAAUD,GAC1B,SAACN,GACG,GAAAc,EAAA,OAAaC,OAAMf,KAAMgB,SAAahB,GAA/B,GACW,IAALA,GAAWM,EAASM,UACjCE,EAASnC,GAAe2B,EAAKG,OAAOT,GAAGiB,QAAQX,EAAKE,oBAAqBF,EAAKT,aAAcS,EAAKR,YAC1F,GAAGQ,EAAKI,OAAOI,EAAOR,EAAKK,QAF3B,KAKfnB,EAAQJ,IACRK,EAAWL,GAAaoB,mBAAoB,IAC5Cd,EAAWN,GAAaoB,mBAAmB,EAAGC,OAAQ,IAAKE,OAAQ,MAEnE/B,GACIsC,MAAO,SAACC,GC8BR,MAHiB,OAAbA,ID3BIA,EAAU1B,GAAa,WC+B7B,MD/BmC,UAAC2B,EAAMC,EAAQC,GCgChD,OD/BAJ,MAAO,EACPK,KAAO,WCiCH,MDjCM/D,MAAC0D,SACXM,MAAO,WCmCH,MDnCMhE,MAAC0D,OACXO,OAAQN,MAEZO,YAAa,SAACP,GC2Cd,MAHiB,OAAbA,IDxCUA,EAAU1B,GAAa,SAACkC,GAAW,GAAAC,EC8C/C,OD9CqCA,GAADD,EAAA,GAAW,SAACP,EAAMC,EAAQC,GC+C5D,OD9CAO,QACAN,KAAM,SAACO,GAAW,GAAAC,EAAA,OAAAA,GAA4BD,EAAOF,GAAPxE,EAAA4E,KAAoBxE,KAACqE,KAArBE,GAAA,EAA5BvE,KAACqE,KAAKN,KAAKO,EAAOF,IAAlB,QAClBJ,MAAO,WCqDH,MDrDMhE,MAACqE,KAAKpE,QAChBgE,OAAQN,EACRc,UAAc,MAAAL,EAAW,EAAO,MAEpCM,WAAY,SAACC,GC0Db,MD1DqB,UAACR,GAAW,GAAAC,EC6D/B,OD7DqBA,GAADD,EAAA,GAAW,SAACP,EAAMC,EAAQC,GC8D5C,OD7DAO,QACAN,KAAM,SAACO,GAAW,GAAAC,EAAA,OAAAA,GAA4BD,EAAOF,GAAPxE,EAAA4E,KAAoBxE,KAACqE,KAArBE,GAAA,EAA5BvE,KAACqE,KAAKN,KAAKO,EAAOF,IAAlB,QAClBJ,MAAO,WCoEH,MDpEMhE,MAACqE,KAAKO,KAAKD,IACrBV,OAAQ,SAACzB,GCsEL,MDtEWA,IACfiC,UAAc,MAAAL,EAAW,EAAO,MAEpCS,IAAK,SAAClB,GC8EN,MAHiB,OAAbA,ID3EEA,EAAU3B,GAAU,SAACmC,GAAW,GAAAC,ECiFpC,ODjF0BA,GAADD,EAAA,GAAW,SAACP,EAAMC,EAAQC,GCkFjD,ODjFAe,IAAK,EACLd,KAAM,SAACO,GAAW,MAAoCf,OAAUuB,WAAWR,EAAOF,KAAhE,OAAApE,KAAC6E,KAAOC,WAAWR,EAAOF,KAC5CJ,MAAO,WCuFH,MDvFMhE,MAAC6E,KACXZ,OAAQN,EACRc,UAAc,MAAAL,EAAW,EAAO,MAEpCW,IAAK,SAACpB,GC+FN,MAHiB,OAAbA,ID5FEA,EAAU3B,GAAU,SAACmC,GAAW,GAAAC,ECkGpC,ODlG0BA,GAADD,EAAA,GAAW,SAACP,EAAMC,EAAQC,GCmGjD,ODlGAkB,IAAK,KACLjB,KAAM,SAACO,GACH,GAAAC,GAAA/B,CACA,OADAA,GAAIsC,WAAWR,EAAOF,IACnBb,MAAUf,GAAb,OAAoBxC,KAACgF,IAAMC,KAAKF,IAAIvC,EAAT,OAAA+B,EAAAvE,KAAAgF,KAAAT,EAAmB/B,IAClDwB,MAAO,WCwGH,MDxGMhE,MAACgF,KACXf,OAAQN,EACRc,UAAc,MAAAL,EAAW,EAAO,MAEpCc,IAAK,SAACvB,GCgHN,MAHiB,OAAbA,ID7GEA,EAAU3B,GAAU,SAACmC,GAAW,GAAAC,ECmHpC,ODnH0BA,GAADD,EAAA,GAAW,SAACP,EAAMC,EAAQC,GCoHjD,ODnHAkB,IAAK,KACLjB,KAAM,SAACO,GACH,GAAAC,GAAA/B,CACA,OADAA,GAAIsC,WAAWR,EAAOF,IACnBb,MAAUf,GAAb,OAAoBxC,KAACgF,IAAMC,KAAKC,IAAI1C,EAAT,OAAA+B,EAAAvE,KAAAgF,KAAAT,EAAmB/B,IAClDwB,MAAO,WCyHH,MDzHMhE,MAACgF,KACXf,OAAQN,EACRc,UAAc,MAAAL,EAAW,EAAO,MAEpCe,QAAU,SAACxB,GCiIX,MAHiB,OAAbA,ID9HOA,EAAU3B,GAAU,SAACmC,GAAW,GAAAC,ECoIzC,ODpI+BA,GAADD,EAAA,GAAW,SAACP,EAAMC,EAAQC,GCqItD,ODpIAe,IAAK,EACLO,IAAK,EACLrB,KAAM,SAACO,GACH,MAAGf,OAAUuB,WAAWR,EAAOF,KAA/B,QACIpE,KAAC6E,KAAOC,WAAWR,EAAOF,IAC1BpE,KAACoF,QACTpB,MAAO,WCwIH,MDxIMhE,MAAC6E,IAAI7E,KAACoF,KAChBnB,OAAQN,EACRc,UAAc,MAAAL,EAAW,EAAO,MAEpCiB,WAAY,SAAC1B,GCgJb,MAHiB,OAAbA,ID7ISA,EAAU3B,GAAU,SAACmC,GAAiB,GAAAmB,GAAAC,CCmJjD,ODnJiCA,GAAApB,EAAA,GAAKmB,EAAAnB,EAAA,GAAW,SAACP,EAAMC,EAAQC,GCoJ9D,ODnJA0B,OAAQ,EACRC,SAAU,EACV1B,KAAM,SAACO,GAEH,MAD0Cf,OAAUuB,WAAWR,EAAOiB,OAAtEvF,KAACwF,QAAYV,WAAWR,EAAOiB,KACWhC,MAAUuB,WAAWR,EAAOgB,KAAtE,OAAAtF,KAACyF,UAAYX,WAAWR,EAAOgB,KACnCtB,MAAO,WC0JH,MD1JMhE,MAACwF,OAAOxF,KAACyF,UACnBxB,OAAQN,EACRc,UAAc,MAAAc,GAAS,MAAAD,EAAY,EAAO,MAE9CI,kBAAmB,SAACC,EAAYhC,GCqKhC,MANa,OAATgC,ID/JgBA,GAAM,GCkKT,MAAbhC,IDlK4BA,EAAU3B,GAAU,SAACmC,GAAiB,GAAAmB,GAAAC,CCwKpE,ODxKoDA,GAAApB,EAAA,GAAKmB,EAAAnB,EAAA,GAAW,SAACP,EAAMC,EAAQC,GCyKjF,ODxKA0B,OAAQ,EACRC,SAAU,EACV1B,KAAM,SAACO,GAEH,MAD0Cf,OAAUuB,WAAWR,EAAOiB,OAAtEvF,KAACwF,QAAYV,WAAWR,EAAOiB,KACWhC,MAAUuB,WAAWR,EAAOgB,KAAtE,OAAAtF,KAACyF,UAAYX,WAAWR,EAAOgB,KACnCtB,MAAO,WACH,GAAA4B,ECgLA,ODhLAA,GAAUD,EAAW,EAAO,IAC3B,iBAAkB3F,KAACyF,SAAWzF,KAACwF,OAAOxF,KAACyF,SAAW,mBAAmBG,EAClEX,KAAKY,KAAK,kBAAoB7F,KAACyF,SAASzF,KAACyF,UAAazF,KAACwF,QAAQ,EAAIxF,KAACwF,OAAQxF,KAACyF,WAAazF,KAACyF,SAASzF,KAACyF,aACpG,EAAI,kBAAkBzF,KAACyF,WAChCxB,OAAQN,EACRc,UAAc,MAAAc,GAAS,MAAAD,EAAY,EAAO,MAE9CQ,WAAY,SAACC,EAASC,EAAcrC,GCwLpC,MANY,OAARqC,IDlLkBA,EAAK,SCqLV,MAAbrC,IDrLgCA,EAAUzB,GAAa,WAAU,GAAAM,EC2LnE,OD3L0DA,GAAA,GAAAjC,UAAAN,OAAAC,EAAAsE,KAAAjE,UAAA,MAAS,SAACqD,EAAMC,EAAQC,GC4LhF,OD3LAmC,UAAWC,cAAcC,KAAKtC,MAAWuC,QAAQtC,IAASkC,GAC1DK,MAAON,EAAAzF,MAAA,KAAQkC,GAAMoB,EAAMC,EAAQC,GACnCC,KAAM,SAACO,GCiMH,MDjMctE,MAACqG,MAAMtC,KAAKO,IAC9BL,OAAQN,EACRK,MAAO,WCmMH,MDnMMhE,MAACqG,MAAMrC,QAAUJ,EAAK0C,cAALhG,MAAAsD,EAAmB5D,KAACiG,UAAaI,MAAMrC,SAClES,UAAWsB,EAAAzF,MAAA,KAAQkC,KAAQiC,eAGnCpD,EAAiB,SAACkF,GCwMhB,ODvMEC,MAAwBD,EAAI7C,MAAMzB,GAClCwE,sBAAwBF,EAAIrC,YAAYjC,GACxCyE,qBAAwBH,EAAI7B,WAAW,MACvCiC,IAAwBJ,EAAI1B,IAAI7C,GAChC4E,cAAwBL,EAAI1B,IAAI5C,GAChC4E,QAAwBN,EAAIpB,QAAQnD,GACpC8E,QAAwBP,EAAIxB,IAAI/C,GAChC+E,QAAwBR,EAAIrB,IAAIlD,GAChCgF,eAAwBT,EAAIlB,WAAWrD,GACvCiF,kBAAwBV,EAAIb,mBAAkB,EAAM1D,GACpDkF,kBAAwBX,EAAIb,mBAAkB,EAAO1D,GACrDmF,2BAAgCZ,EAAIT,WAAWS,EAAI1B,MAAS,QAAS3C,GACrEkF,0BAAgCb,EAAIT,WAAWS,EAAI1B,MAAS,MAAS3C,GACrEmF,6BAAgCd,EAAIT,WAAWS,EAAI1B,MAAS,MAAS3C,GACrEoF,6BAAgCf,EAAIT,WAAWS,EAAI7C,QAAS,QAASxB,GACrEqF,4BAAgChB,EAAIT,WAAWS,EAAI7C,QAAS,MAASxB,GACrEsF,+BAAgCjB,EAAIT,WAAWS,EAAI7C,QAAS,MAASxB,KAjBjDd,GAmBxBU,GACI2F,MAAkB,SAACC,EAAS5E,GC0M5B,MD1MuCjB,GAAmB6F,EAAS5E,IACnE6E,iBAAkB,SAACD,EAAS5E,GC4M5B,MD5MqC7B,GAAEY,EAAmB6F,EAAS5E,IAAO8E,YAC1EC,QAAkB,SAACH,EAAS5E,GC8M5B,MD9MqC7B,GAAEY,EAAmB6F,EAAS5E,IAAOgF,WAC1EC,cAAkB,SAACL,EAAS5E,GCgN5B,MDhNqC7B,GAAEY,EAAmB6F,EAAS5E,IAAOgF,QAAQ,eAClFE,cAAkB,SAACN,EAAS5E,GCkN5B,MDlNqC7B,GAAEY,EAAmB6F,EAAS5E,IAAOgF,QAAQ,gBAEtFrG,GACIwG,IACI5G,YAAaA,EACbS,UAAWA,EACXoG,eACIC,YAAa,sDACbC,aAAc,sDACdC,cAAe,iDACfC,UAAW,aACXC,WAAY,cACZC,QAAS,qBACTC,cAAe,iBACfC,OAAQ,SACRC,GAAI,KACJC,GAAI,QAGhBlH,GAAc,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAChFJ,GAAc,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAClDa,EAAU,SAAC0G,GCqNT,ODrNqB,IAAIA,GAAQC,OAAO,GAAG,IAE7CvH,GACIwH,IAAK,SAAC3C,EAAK4C,GCsNX,MDtNwB,UAAC1E,GCuNvB,MDvNkCA,GAAO8B,GAAO9B,EAAO8B,GAAO4C,IAChEC,WAAY,SAAC7C,EAAK8C,EAAcC,EAAiBC,EAAqBC,GAClE,GAAAC,ECoOJ,OAViB,OAAbH,ID3N4BA,GAAU,GC8N1B,MAAZC,ID9N6CA,EAAS1H,GCiO1C,MAAZ2H,IDjOkEA,EAAS/H,GAC3EgI,EAASH,EAAe,MAAW,GACnC,SAAC7E,GACG,GAAAiF,EACA,OADAA,GAAW,GAAAC,MAAKA,KAAKC,MAAMnF,EAAO8B,KAC/B7C,MAAMgG,GAAkB,GAC3BL,EAAarG,QAAQ,QAAS,SAAC6G,EAAGC,GAC9B,OAAOA,GAAP,IACS,ICuOb,MDvOsBJ,GAAK,MAAMD,EAAI,aADjC,KAES,ICwOb,MDxOsBnH,GAAQoH,EAAK,MAAMD,EAAI,WAAU,EAFnD,KAGS,ICyOb,MDzOsBF,GAASG,EAAK,MAAMD,EAAI,WAH1C,KAIS,IC0Ob,MD1OsBnH,GAAQoH,EAAK,MAAMD,EAAI,UAJzC,KAKS,IC2Ob,MD3OsBD,GAASE,EAAK,MAAMD,EAAI,SAL1C,KAMS,IC4Ob,MD5OsBC,GAAK,MAAMD,EAAI,QANjC,KAOS,IC6Ob,MD7OsBnH,GAAQoH,EAAK,MAAMD,EAAI,WAPzC,KAQS,IC8Ob,MD9OsBnH,GAAQoH,EAAK,MAAMD,EAAI,aARzC,KASS,IC+Ob,MD/OsBnH,GAAQoH,EAAK,MAAMD,EAAI,aATzC,SC0PJ,MDhPa,IAAMK,QAE/BhI,EAAc,SAAAiI,GCqPZ,MDrPY,UAACC,EAAIC,GACf,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAGA,IAHAD,EAAK,eACLD,EAAK,KACLE,EAAK,KACW,gBAAbR,IAAsC,gBAAbC,GACxB,MAAavG,OAAMsG,GAAZ,EACOtG,MAAMuG,GAAb,GACAD,EAAKC,CAGhB,IAFAC,EAAIO,OAAOT,GAAIU,cACfN,EAAIK,OAAOR,GAAIS,cACFR,IAAKE,EAAlB,MAAO,EACP,KAAyCE,EAAGvH,KAAKmH,KAAOI,EAAGvH,KAAKqH,GAAhE,MAAWF,GAAIE,EAAO,EAAO,EAG7B,KAFAF,EAAIA,EAAES,MAAMJ,GACZH,EAAIA,EAAEO,MAAMJ,GACNL,EAAE9J,QAAWgK,EAAEhK,QAGjB,GAFA+J,EAAKD,EAAEU,QACPP,EAAKD,EAAEQ,QACJT,IAAQE,EACP,MAAGC,GAAGvH,KAAKoH,IAAQG,EAAGvH,KAAKsH,GAChBF,EAAGnH,QAAQwH,EAAI,MAAQH,EAAGrH,QAAQwH,EAAI,MAElCL,EAAKE,EAAQ,EAAO,ECmQ3C,ODlQAH,GAAE9J,OAASgK,EAAEhK,SAtBHD,MAwBd+B,EAAS,SAAC2I,GACN,GAAA5K,GAAA6K,EAAAnI,CAAAmI,KACA,KAAA7K,IAAA4K,GCqQAlI,EAAIkI,EAAM5K,GDpQN6K,EAAQnI,GAAK1C,CCuQnB,ODtQE,UAACiK,EAAGE,GACA,MAAG,OAAAU,EAAAZ,IAAgB,MAAAY,EAAAV,GACRU,EAAQZ,GAAKY,EAAQV,GACxB,MAAAU,EAAAZ,GACG,GACH,MAAAY,EAAAV,GACG,EAEAtI,EAAYoI,EAAEE,KAEjCzI,EAAU,SAACoJ,EAASxG,GAChB,GAAAyG,EACA,OADAA,GAAOD,EAAQxG,GACZnD,EAAE6J,WAAWD,GACLA,EAEAlJ,GAGfV,EAAE8J,gBAAkB3J,oBAAAA,EAAqBC,YAAAA,EAAaS,UAAAA,EAAWP,SAAAA,EAAUE,QAAAA,EACvEE,YAAAA,EAAaC,aAAAA,EAAcG,OAAAA,GAMzBb,EAAA,WACW,QAAAA,GAAC8J,EAAOlI,GACjB9C,KAAAsG,cAAAnG,EAAAH,KAAAsG,cAAAtG,MAAAA,KAAAiL,WAAA9K,EAAAH,KAAAiL,WAAAjL,MAAAA,KAAAkL,WAAA/K,EAAAH,KAAAkL,WAAAlL,MAAAA,KAAAmL,SAAAhL,EAAAH,KAAAmL,SAAAnL,MAAAA,KAAAoL,QAAAjL,EAAAH,KAAAoL,QAAApL,MAAAA,KAACqL,WAAavI,EAAKuI,WACnBrL,KAACsL,eAAiBxI,EAAKwI,eACvBtL,KAACuL,SAAWzI,EAAK0I,KACjBxL,KAACyL,SAAW3I,EAAK4I,KACjB1L,KAAC2L,SAAW7I,EAAK8I,KACjB5L,KAAC4K,QAAU9H,EAAK8H,QAChB5K,KAAC6L,QACD7L,KAAC8L,WACD9L,KAAC+L,WACD/L,KAACgM,aACDhM,KAACiM,aACDjM,KAACkM,SAAWlM,KAACqL,WAAWrL,YACxBA,KAACmM,QAAS,EAGVjL,EAAUkL,cAAcpB,EAAOlI,EAAKuJ,kBAAmB,SAAAzC,GCoRzD,MDpRyD,UAACtF,GACpD,MAA0BxB,GAAKwJ,OAAOhI,GAAtCsF,EAAC2C,cAAcjI,GAAf,SADmDtE,OC4c7D,MDxcEkB,GAACkL,cAAgB,SAACpB,EAAOqB,EAAmBG,GACxC,GAAAC,GAAAC,EAAA5M,EAAA6M,EAAAC,EAAA7M,EAAA8M,EAAAvI,EAAAC,EAAAuI,EAAAC,EAAAC,CAQA,IAPIP,EADDxL,EAAEgM,cAAcZ,GACHG,EAEA,SAAClI,GACT,GAAAsI,GAAArI,EAAA2I,CAAA,KAAAN,IAAAP,GC2RNa,EAAIb,EAAkBO,GD3RhBtI,EAAOsI,GAAP,OAAArI,EAAA2I,EAAA5I,IAAAC,EAAwBD,EAAOsI,EC8RvC,OD7RQJ,GAAElI,IAGPrD,EAAE6J,WAAWE,GC8RlB,MD7RMA,GAAMyB,EACL,IAAGxL,EAAEkM,QAAQnC,GAAb,CACD,GAAG/J,EAAEkM,QAAQnC,EAAM,IAAnB,CACI8B,IC8RR,KD9RQhN,IAAAkL,GC+RN,GAAKxK,EAAQgE,KAAKwG,EAAOlL,KACzB4M,EAAgB1B,EAAMlL,GDhSuBA,EAAI,GCiSjD,CDhSUwE,KACAC,EAAAyG,EAAA,EAAA,KAAA2B,IAAApI,GCqSH/D,EAAQgE,KAAKD,EAAKoI,KACvBC,EAAIrI,EAAIoI,GDtSArI,EAAOsI,GAAKF,EAAcC,GAD1BG,GAAA/I,KAEA0I,EAAUnI,IC0StB,MAAOwI,GAGP,ID3SQC,KAAAhN,EAAA,EAAA8M,EAAA7B,EAAA/K,OAAA4M,EAAA9M,EAAAA,IC4SNuE,EAAS0G,EAAMjL,GD5STgN,EAAAhJ,KAAA0I,EAAUnI,GC+SlB,OAAOyI,GD9SF,GAAG/B,YAAiBhK,QCqT3B,MDpTMgM,MACA/L,EAAE,kBAAmB+J,GAAOoC,KAAK,SAACtN,GCiTtC,MDjT4CkN,GAAQjJ,KAAK9C,EAAEjB,MAAMqN,UAC7DpM,EAAE,aAAc+J,GAAOoC,KAAK,SAACtN,GCuTjC,MDtTQwE,MACArD,EAAE,KAAMjB,MAAMoN,KAAK,SAACT,GCmT1B,MDnTgCrI,GAAO0I,EAAQL,IAAM1L,EAAEjB,MAAMsN,SACvDb,EAAUnI,IAEd,MAAU,IAAAiJ,OAAM,yBAGxBrM,EAACsM,eAAiB,SAACxC,GACf,GAAA1H,EAEA,OAFAA,MACApC,EAAUkL,cAAcpB,KAAW,SAAC1G,GCwTtC,MDxTiDhB,GAAOS,KAAKO,KACpDhB,GArDXpC,EAAAuM,UAuDArC,QAAS,SAACsC,GACN,GAAA3D,GAAA4D,CCoUJ,ODpUIA,GAAA,WC4TF,GAAI5N,GAAG8M,EAAMC,CAEb,KD9TgBA,KAAA/M,EAAA,EAAA8M,EAAAa,EAAAzN,OAAA4M,EAAA9M,EAAAA,IC+TdgK,EAAI2D,EAAM3N,GD/TI+M,EAAA/I,KAAAvC,EAAQxB,KAAC4K,QAASb,GCkUlC,OAAO+C,IACNtI,KAAKxE,MDlUJ,SAAC+J,EAAEE,GACC,GAAA2D,GAAA9N,EAAA+N,CAAA,KAAA/N,IAAA6N,GAEI,GCmURE,EAASF,EAAW7N,GDpUZ8N,EAAaC,EAAO9D,EAAEjK,GAAImK,EAAEnK,IACO,IAAd8N,EAArB,MAAOA,EACX,OAAO,KA7Df1M,EAAAuM,UA+DAtC,SAAU,WACN,MAAGnL,MAAKmM,OAAR,QACInM,KAACmM,QAAS,EACVnM,KAAC8L,QAAQjB,KAAK7K,KAACoL,QAAQpL,KAACyL,WACxBzL,KAAC+L,QAAQlB,KAAK7K,KAACoL,QAAQpL,KAACuL,aAnEhCrK,EAAAuM,UAqEAvC,WAAY,WAER,MADAlL,MAACmL,WACMnL,KAAC+L,SAvEZ7K,EAAAuM,UAyEAxC,WAAY,WAER,MADAjL,MAACmL,WACMnL,KAAC8L,SA3EZ5K,EAAAuM,UA6EAlB,cAAe,SAACjI,GACZ,GAAAR,GAAAgK,EAAAC,EAAAhO,EAAA8M,EAAAmB,EAAAC,EAAA1J,EAAA2J,EAAAC,EAAAC,EAAAvK,EAAArB,CAEA,KAFAsB,KACAD,KACAU,EAAAvE,KAAAuL,SAAAxL,EAAA,EAAA8M,EAAAtI,EAAAtE,OAAA4M,EAAA9M,EAAAA,ICiVFyC,EAAI+B,EAAIxE,GDjVN+D,EAAOC,KAAP,OAAAmK,EAAA5J,EAAA9B,IAAA0L,EAAwB,OACxB,KAAAC,EAAAnO,KAAAyL,SAAAwC,EAAA,EAAAD,EAAAG,EAAAlO,OAAA+N,EAAAC,EAAAA,ICqVFzL,EAAI2L,EAAKF,GDrVPpK,EAAOE,KAAP,OAAAqK,EAAA9J,EAAA9B,IAAA4L,EAAwB,OAkBxB,OAjBAL,GAAalK,EAAOe,KAAK0F,OAAO+D,aAAa,IAC7CP,EAAahK,EAAOc,KAAK0F,OAAO+D,aAAa,IAE7CrO,KAACkM,SAASnI,KAAKO,GAEK,IAAjBT,EAAO5D,SACHD,KAAKgM,UAAU+B,KACd/N,KAAC8L,QAAQ/H,KAAKF,GACd7D,KAACgM,UAAU+B,GAAc/N,KAACqL,WAAWrL,KAAM6D,OAC/C7D,KAACgM,UAAU+B,GAAYhK,KAAKO,IAEZ,IAAjBR,EAAO7D,SACHD,KAAKiM,UAAU6B,KACd9N,KAAC+L,QAAQhI,KAAKD,GACd9D,KAACiM,UAAU6B,GAAc9N,KAACqL,WAAWrL,QAAU8D,IACnD9D,KAACiM,UAAU6B,GAAY/J,KAAKO,IAEZ,IAAjBR,EAAO7D,QAAiC,IAAjB4D,EAAO5D,QAC1BD,KAAK6L,KAAKkC,KACT/N,KAAC6L,KAAKkC,OACP/N,KAAK6L,KAAKkC,GAAYD,KACrB9N,KAAC6L,KAAKkC,GAAYD,GAAc9N,KAACqL,WAAWrL,KAAM6D,EAAQC,IAC9D9D,KAAC6L,KAAKkC,GAAYD,GAAY/J,KAAKO,IALvC,QAnGJpD,EAAAuM,UA0GAnH,cAAe,SAACzC,EAAQC,GACpB,GAAAwK,GAAAR,EAAAC,CAUA,OAVAA,GAAalK,EAAOe,KAAK0F,OAAO+D,aAAa,IAC7CP,EAAahK,EAAOc,KAAK0F,OAAO+D,aAAa,IAEzCC,EADgB,IAAjBzK,EAAO5D,QAAiC,IAAjB6D,EAAO7D,OACvBD,KAACkM,SACc,IAAjBrI,EAAO5D,OACLD,KAACiM,UAAU6B,GACI,IAAjBhK,EAAO7D,OACLD,KAACgM,UAAU+B,GAEX/N,KAAC6L,KAAKkC,GAAYD,GAC5B,MAAAQ,EAAOA,GAAOtK,MAAO,WC+VrB,MD/VyB,OAAOC,OAAQ,WCkWxC,MDlW2C,MCuW1C/C,KDjWTW,EAAqB,SAAC0M,EAAWzL,GAE7B,GAAAuI,GAAAmD,EAAAjD,EAAAzH,EAAAiI,EAAAhJ,EAAAjD,EAAA6M,EAAA8B,EAAAnL,EAAAmI,EAAA5H,EAAAiI,EAAA4C,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA/J,EAAAxC,CAAAO,IACImF,eACIQ,OAAQ,WAEhB5F,EAAO7B,EAAEoC,OAAON,EAAUD,GAE1ByI,EAAWgD,EAAUhD,SACrBE,EAAW8C,EAAU9C,SACrBK,EAAUyC,EAAUtD,aACpBc,EAAUwC,EAAUrD,aAGpB5H,EAAS0L,SAASC,cAAc,SAChC3L,EAAO4L,UAAY,WAGnBR,EAAW,SAACS,EAAKrP,EAAG6M,GAChB,GAAA5M,GAAAqF,EAAA6I,EAAAmB,EAAA7K,EAAA2J,EAAAmB,EAAA7M,CAAA,IAAQ,IAAL1C,EAAH,CAEI,IADAsP,GAAS,EACA5M,EAAAzC,EAAA,EAAAwE,EAAAoI,EAAApI,GAAA,EAAAA,GAAAxE,EAAAA,GAAAwE,EAAA/B,EAAA+B,GAAA,IAAAxE,IAAAA,EACFoP,EAAIrP,EAAE,GAAG0C,KAAM2M,EAAIrP,GAAG0C,KACrB4M,GAAS,EACjB,IAAGA,EACD,MAAO,GAEb,IADAhK,EAAM,EACAtF,EAAEsF,EAAM+J,EAAIlP,QAAlB,CAEI,IADAoP,GAAO,EACE7M,EAAAyL,EAAA,EAAAC,EAAAvB,EAAAuB,GAAA,EAAAA,GAAAD,EAAAA,GAAAC,EAAA1L,EAAA0L,GAAA,IAAAD,IAAAA,EACUkB,EAAIrP,GAAG0C,KAAM2M,EAAIrP,EAAEsF,GAAK5C,KAAvC6M,GAAO,EACX,IAASA,EAAT,KACAjK,KACJ,MAAOA,GAGX,KAAAuH,IAAApB,GC+WA,GAAK/K,EAAQgE,KAAK+G,EAAUoB,GAA5B,CACA6B,EAAIjD,EAASoB,GD/WTmC,EAAKE,SAASC,cAAc,MACV,IAAfK,SAAS3C,IAA+B,IAAnBlB,EAASxL,SAC7B2O,EAAKI,SAASC,cAAc,MAC5BL,EAAGW,aAAa,UAAW9D,EAASxL,QACpC2O,EAAGW,aAAa,UAAWhE,EAAStL,QACpC6O,EAAGU,YAAYZ,IACnBA,EAAKI,SAASC,cAAc,MAC5BL,EAAGM,UAAY,eACfN,EAAGa,UAAYjB,EACfM,EAAGU,YAAYZ,EACf,KAAA9O,IAAAiM,GCkXGvL,EAAQgE,KAAKuH,EAASjM,KAC3BgE,EAASiI,EAAQjM,GDlXX0C,EAAIkM,EAAS3C,EAASuD,SAASxP,GAAIwP,SAAS3C,IACpC,KAALnK,IACCoM,EAAKI,SAASC,cAAc,MAC5BL,EAAGM,UAAY,cACfN,EAAGa,UAAY3L,EAAO6I,GACtBiC,EAAGW,aAAa,UAAW/M,GACxB8M,SAAS3C,KAAMpB,EAAStL,OAAO,GAAyB,IAAnBwL,EAASxL,QAC7C2O,EAAGW,aAAa,UAAW,GAC/BT,EAAGU,YAAYZ,IACL,KAAfU,SAAS3C,KACRiC,EAAKI,SAASC,cAAc,MAC5BL,EAAGM,UAAY,gBACfN,EAAGa,UAAY3M,EAAKoF,cAAcQ,OAClCkG,EAAGW,aAAa,UAAWhE,EAAStL,QAA+B,IAAlBwL,EAASxL,OAAgB,EAAO,IACjF6O,EAAGU,YAAYZ,IACnBtL,EAAOkM,YAAYV,GAGvB,GAAqB,IAAlBrD,EAASxL,OAAZ,CACI6O,EAAKE,SAASC,cAAc,KAC5B,KAAAnP,IAAA2L,GCuXGjL,EAAQgE,KAAKiH,EAAU3L,KAC5B2O,EAAIhD,EAAS3L,GDvXP8O,EAAKI,SAASC,cAAc,MAC5BL,EAAGM,UAAY,eACfN,EAAGa,UAAYhB,EACfK,EAAGU,YAAYZ,GACnBA,GAAKI,SAASC,cAAc,MACP,IAAlB1D,EAAStL,SACR2O,EAAGM,UAAY,gBACfN,EAAGa,UAAY3M,EAAKoF,cAAcQ,QACtCoG,EAAGU,YAAYZ,GACftL,EAAOkM,YAAYV,GAGvB,IAAAhP,IAAAgM,GC0XA,GAAKtL,EAAQgE,KAAKsH,EAAShM,GAA3B,CACA+D,EAASiI,EAAQhM,GD1XbgP,EAAKE,SAASC,cAAc,KAC5B,KAAAtC,IAAA9I,GC4XGrD,EAAQgE,KAAKX,EAAQ8I,KAC1BoC,EAAMlL,EAAO8I,GD5XPnK,EAAIkM,EAAS5C,EAASwD,SAASxP,GAAIwP,SAAS3C,IACpC,KAALnK,IACCoM,EAAKI,SAASC,cAAc,MAC5BL,EAAGM,UAAY,cACfN,EAAGa,UAAYV,EACfH,EAAGW,aAAa,UAAW/M,GACxB8M,SAAS3C,KAAMlB,EAASxL,OAAO,GAAwB,IAAlBsL,EAAStL,QAC7C2O,EAAGW,aAAa,UAAU,GAC9BT,EAAGU,YAAYZ,IACvB,KAAAjC,IAAAZ,GCiYGvL,EAAQgE,KAAKuH,EAASY,KAC3B7I,EAASiI,EAAQY,GDjYXtB,EAAakD,EAAUjI,cAAczC,EAAQC,GAC7CkB,EAAMqG,EAAWrH,QACjB2K,EAAKK,SAASC,cAAc,MAC5BN,EAAGO,UAAY,aAAapP,EAAE,OAAM6M,EACpCgC,EAAGc,UAAYpE,EAAWpH,OAAOe,GACjC2J,EAAGY,aAAa,aAAcvK,GAC9B8J,EAAGU,YAAYb,GAEnBE,GAAkBN,EAAUjI,cAAczC,MAC1CmB,EAAM6J,EAAgB7K,QACtB2K,EAAKK,SAASC,cAAc,MAC5BN,EAAGO,UAAY,oBACfP,EAAGc,UAAYZ,EAAgB5K,OAAOe,GACtC2J,EAAGY,aAAa,aAAcvK,GAC9B2J,EAAGY,aAAa,WAAY,MAAMzP,GAClCgP,EAAGU,YAAYb,GACfrL,EAAOkM,YAAYV,GAGvBA,EAAKE,SAASC,cAAc,MAC5BL,EAAKI,SAASC,cAAc,MAC5BL,EAAGM,UAAY,gBACfN,EAAGa,UAAY3M,EAAKoF,cAAcQ,OAClCkG,EAAGW,aAAa,UAAW9D,EAASxL,QAAgC,IAAnBsL,EAAStL,OAAiB,EAAO,IAClF6O,EAAGU,YAAYZ,EACf,KAAAjC,IAAAZ,GCkYKvL,EAAQgE,KAAKuH,EAASY,KAC3B7I,EAASiI,EAAQY,GDlYbkC,EAAkBN,EAAUjI,iBAAkBxC,GAC9CkB,EAAM6J,EAAgB7K,QACtB2K,EAAKK,SAASC,cAAc,MAC5BN,EAAGO,UAAY,oBACfP,EAAGc,UAAYZ,EAAgB5K,OAAOe,GACtC2J,EAAGY,aAAa,aAAcvK,GAC9B2J,EAAGY,aAAa,WAAY,MAAM5C,GAClCmC,EAAGU,YAAYb,GAcnB,OAbAE,GAAkBN,EAAUjI,qBAC5BtB,EAAM6J,EAAgB7K,QACtB2K,EAAKK,SAASC,cAAc,MAC5BN,EAAGO,UAAY,gBACfP,EAAGc,UAAYZ,EAAgB5K,OAAOe,GACtC2J,EAAGY,aAAa,aAAcvK,GAC9B8J,EAAGU,YAAYb,GACfrL,EAAOkM,YAAYV,GAGnBxL,EAAOiM,aAAa,eAAgBzD,EAAQ7L,QAC5CqD,EAAOiM,aAAa,eAAgBxD,EAAQ9L,QAErCqD,GAMXrC,EAAEb,GAAGsP,MAAQ,SAAC1E,EAAOlI,GACjB,GAAAC,GAAA4M,EAAApB,EAAAjL,EAAAd,CAAAO,IACIyI,QACAE,QACAE,QACAU,OAAQ,WCmYV,ODnYa,GACXjB,WAAYjK,EAAoBsC,UAChC4H,eAAgB,QAChBV,QAAS,aACTyB,qBACAuD,SAAU/N,EACVgO,gBAAiB,KACjB3H,cAAezG,EAAQwG,GAAGC,eAE9BpF,EAAO7B,EAAEoC,OAAON,EAAUD,GAE1BQ,EAAS,IACT,KACIiL,EAAgB,GAAArN,GAAU8J,EAAOlI,EACjC,KACIQ,EAASR,EAAK8M,SAASrB,EAAWzL,EAAK+M,iBAD3C,MAAAC,GAEMH,EAAAG,EACwB,mBAAAC,UAAA,OAAAA,SAA1BA,QAAQC,MAAML,EAAEM,OAChB3M,EAASrC,EAAE,UAAUqM,KAAKxK,EAAKoF,cAAcC,cANrD,MAAA2H,GAOMH,EAAAG,EACwB,mBAAAC,UAAA,OAAAA,SAA1BA,QAAQC,MAAML,EAAEM,OAChB3M,EAASrC,EAAE,UAAUqM,KAAKxK,EAAKoF,cAAcE,cAGtB,IAD3B5F,EAAIxC,KAAK,GACwBwC,EAAE0N,iBAAnC1N,EAAE2N,YAAY3N,EAAE4N,UAChB,OAAOpQ,MAACqQ,OAAO/M,IAOnBrC,EAAEb,GAAGkQ,QAAU,SAACtF,EAAOuF,EAAWC,EAAmBC,GACjD,GAAA1G,GAAAsB,EAAAqF,EAAAC,EAAAnC,EAAAoC,EAAA7N,EAAA4M,EAAAkB,EAAAzQ,EAAAN,EAAAgR,EAAAlE,EAAA7M,EAAA8M,EAAAmB,EAAA+C,EAAAC,EAAA/C,EAAAgD,EAAAnO,EAAAoO,EAAAC,EAAA5M,EAAA2J,EAAAC,EAAAC,EAAAgD,EAAAC,EAAAC,EAAA1B,EAAA2B,EAAAC,EAAAxE,EAAAyE,EAAAC,EAAAC,EAAAC,EAAAC,EAAArP,CC4Ye,OAAbgO,ID7Y4BA,GAAY,GCgZ9B,MAAVC,IDhZ+CA,EAAO,MACxD1N,GACIsJ,qBACAhL,YAAaI,EAAQgP,GAAQpP,YAC7BS,UAAWL,EAAQgP,GAAQ3O,UAC3BgQ,oBACAC,UAAW,IACXvG,QAAUE,QAAUE,QACpBoG,cACAC,oBAAqB,GACrBC,qBAAqB,EACrBrC,iBAAiB3H,cAAezG,EAAQgP,GAAQvI,eAChDiK,UAAW,KACX7F,OAAQ,WCuZV,ODvZa,GACX1B,QAAS,aACT1C,cAAezG,EAAQgP,GAAQvI,eAEnC2I,EAAe7Q,KAAC4D,KAAK,kBAEjBd,EADG,MAAA+N,GAAiBL,EACbvP,EAAEoC,OAAON,EAAUwN,GAEnBM,CAEX,KAEI7F,EAAQ9J,EAAUsM,eAAexC,GACjCgC,EAAA,WCwZF,GAAIzI,GAAKuI,CDxZIvI,GAAAyG,EAAA,GAAA8B,IC2Zb,KD3ZaF,IAAArI,GC4ZN/D,EAAQgE,KAAKD,EAAKqI,ID5ZZE,EAAA/I,KAAA6I,EC+Zb,OAAOE,MD9ZLvI,EAAAzB,EAAAuJ,iBAAA,KAAAmC,IAAAjK,GCkaG/D,EAAQgE,KAAKD,EAAKiK,IDlaoC5O,EAAA4E,KAASwI,EAATwB,GAAA,GAAzDxB,EAAQjJ,KAAKyK,EAIb,KADAmC,KACA5Q,EAAA,EAAA8M,EAAAG,EAAA/M,OAAA4M,EAAA9M,EAAAA,ICqaFyC,EAAIwK,EAAQjN,GDraV4Q,EAAWnO,KAEXtB,GAAUkL,cAAcpB,EAAOlI,EAAKuJ,kBAAmB,SAAC/H,GACpD,GAAA8N,GAAAtF,EAAAI,CAAAJ,KCwaN,KDxaMF,IAAAtI,GCyaC9D,EAAQgE,KAAKF,EAAQsI,KAC1BM,EAAI5I,EAAOsI,GD1aqB9J,EAAKwJ,OAAOhI,KC8anC,MAAL4I,ID7aIA,EAAK,QCgboB,OAA5BkF,EAAOzB,EAAW/D,IAAIM,KACzBkF,EDhboBlF,GAAM,GADpBJ,EAAA/I,KAEA4M,EAAW/D,GAAGM,OCmbxB,OAAOJ,KDhbL6E,EAAU1Q,EAAE,WAAWoR,QAAS,UAASjO,KAAK,cAAe,GAG7DmN,EAAkBtQ,EAAE,QAEpB2O,EAAW3O,EAAE,YACRqR,SAAS,eACTC,SAAShB,GACTpR,KAAK,SAAU,WC+atB,MD/ayBkR,OACvBnD,EAAApL,EAAAhB,SAAA,KAAAU,IAAA0L,GCkbG1N,EAAQgE,KAAK0J,EAAM1L,IDjblBvB,EAAE,YAAY+D,IAAIxC,GAAG8K,KAAK9K,GAAG+P,SAAS3C,EAa1C,IATAgB,EAAU3P,EAAE,QAAQqR,SAAS,8BAC7Bd,EAAA,WCibF,GAAIxD,GAAMC,EAAGnB,CAEb,KDnbqBA,KAAAmB,EAAA,EAAAD,EAAAhB,EAAA/M,OAAA+N,EAAAC,EAAAA,ICobnBO,EAAIxB,EAAQiB,GDpb+BrO,EAAA4E,KAAS1B,EAAKgP,iBAAdtD,GAAA,GAAxB1B,EAAA/I,KAAAyK,ECybrB,OAAO1B,MDvbL+E,GAAkC,EAE9BD,EAD2B,SAA5B9O,EAAKmP,oBAC4B,IAEA3C,SAASxM,EAAKmP,sBAE/C1O,MAAUqO,GAAb,CAEI,IADAlB,EAAa,EACbzC,EAAA,EAAAD,EAAAwD,EAAAvR,OAAA+N,EAAAC,EAAAA,IC0bJlE,EAAIyH,EAAgBvD,GD1bhByC,GAAc3G,EAAE9J,MAChB4R,GAAkCnB,EAAakB,EAG/ChB,EAAQ0B,SADTxP,EAAKmP,uBAAuB,GAAQJ,EAClB,cAEA,gBAErBzR,EACO,SAACoO,GACA,GAAAgE,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA/B,EAAAE,EAAA9C,EAAA4E,EAAAC,EAAAC,EAAA/F,EAAAgG,CAKA,IALAJ,EAAA,WC6bR,GAAIhG,ED7bYA,KC+bhB,KD/bgBF,IAAA+D,GAAAnC,GAAA1B,EAAA/I,KAAA6I,ECkchB,OAAOE,MDjcC+F,GAAkB,EAClBK,EAAYjS,EAAE,SAASqR,SAAS,gBAAgBa,OAEhDD,EAAU7C,OAAOpP,EAAE,QAAQoM,KAAQmB,EAAE,KAAIsE,EAAK7S,OAAO,MAClD6S,EAAK7S,OAAS6C,EAAKiP,UAClBmB,EAAU7C,OAAOpP,EAAE,OAAOqM,KAAKxK,EAAKoF,cAAcM,cAmBlD,KAjBAiK,EAAOxR,EAAE,OAAOsR,SAASW,GACzBT,EAAKpC,OAAOpP,EAAE,YAAa+E,KAAK,WAAWsH,KAAKxK,EAAKoF,cAAcI,WAAWnI,KAAK,QAAS,WCqctG,MDpcc+S,GAAUE,KAAK,iBAAiBC,KAAK,WAAW,MACpDZ,EAAKpC,OAAOpP,EAAE,YAAa+E,KAAK,WAAWsH,KAAKxK,EAAKoF,cAAcK,YAAYpI,KAAK,QAAS,WCwcvG,MDvcc+S,GAAUE,KAAK,iBAAiBC,KAAK,WAAW,MACpDZ,EAAKpC,OAAOpP,EAAE,SACdwR,EAAKpC,OAAOpP,EAAE,WAAY+E,KAAM,OAAQsN,YAAaxQ,EAAKoF,cAAcO,cAAe4J,QAAO,cAAclS,KAAK,QAAS,WACtH,GAAAmM,EC8cd,OD9ccA,GAASrL,EAAEjB,MAAMgF,MAAMuF,cACvB2I,EAAUE,KAAK,wBAAwBhG,KAAK,WACxC,GAAAmG,EACA,OADAA,GAAatS,EAAEjB,MAAMqN,OAAO9C,cAAc3K,QAAQ0M,GAC/B,KAAhBiH,EACCtS,EAAEjB,MAAMwT,OAERvS,EAAEjB,MAAMmT,YAEpBT,EAAiBzR,EAAE,SAASqR,SAAS,qBAAqBC,SAASW,GAEnE/E,EAAA2E,EAAAjI,KAAArJ,EAAAsB,EAAA8H,QAAA4D,IAAAyC,EAAA,EAAAF,EAAA5C,EAAAlO,OAAA8Q,EAAAE,EAAAA,ICidVrE,EAAIuB,EAAK8C,GDhdM/D,EAAIyD,EAAWnC,GAAG5B,GAClB+F,EAAa1R,EAAE,WACf2R,EAAwB9P,EAAKkP,WAAWxD,GAAS5O,EAAA4E,KAAK1B,EAAKkP,WAAWxD,GAArB5B,IAAA,GAA8B,EAC/EiG,IAAAA,EAAoBD,GACpB3R,EAAE,WACEmD,KAAK,OAAQ,YAAYkO,SAAS,aAClClO,KAAK,WAAWwO,GAAqBhP,KAAK,UAAW4K,EAAE5B,IACvD2F,SAASI,GACbA,EAAWtC,OAAOpP,EAAE,UAAUqM,KAAKV,IACnC+F,EAAWtC,OAAOpP,EAAE,UAAUoM,KAAK,KAAKH,EAAE,MAC1CwF,EAAerC,OAAOpP,EAAE,OAAOoP,OAAOsC,GCgfzD,OD9eUM,GAAe,WACX,GAAAQ,EAMA,OANAA,GAAkBP,EAAUE,KAAK,qBAAqBnT,OACpCiT,EAAUE,KAAK,6BAA6BnT,OAC3DwT,EAAkB,EACjBjB,EAASF,SAAS,wBAElBE,EAASkB,YAAY,wBACtBZ,EAAK7S,OAAS6C,EAAKiP,UAClBmB,EAAUS,SAEVT,EAAUS,OAAO,EAAGtC,IAE5BpQ,EAAE,OAAOsR,SAASW,GACb7C,OAAOpP,EAAE,YAAa+E,KAAK,WAAWqH,KAAK,MAAMlN,KAAK,QAAS8S,IAEpEF,EAAiB,SAACpD,GCud1B,MDtdYuD,GAAUU,KAAIC,KAAMlE,EAAEmE,MAAOC,IAAKpE,EAAEqE,QAAOL,SAC3CT,EAAUE,KAAK,cAAcpO,IAAI,IACjCkO,EAAUE,KAAK,wBAAwBI,QAE3CR,EAAe/R,EAAE,UAAUqR,SAAS,eAAehF,KAAK,aACnDnN,KAAK,QAAS4S,GAEnBP,EAAWvR,EAAE,QAAQqR,SAAS,QAAQxS,GACjCuQ,OAAOpP,EAAE,UAAUqR,SAAS,WAAWjF,KAAKmB,GAAG5K,KAAK,WAAY4K,GAAG6B,OAAO2C,IAClCH,GAA7CL,EAASF,SAAS,wBAClB1B,EAAQP,OAAOmC,GAAUnC,OAAO6C,GAEhCV,EAASrS,KAAK,WAAY4S,GApElC,KAAAjT,IAAA0R,GCyhBGhR,EAAQgE,KAAKgN,EAAiB1R,KACnC0O,EAAIgD,EAAgB1R,GDzhBdM,EAAIoO,GAqERiD,GAAMxQ,EAAE,QAAQsR,SAASZ,GAIzBtG,EAAapK,EAAE,YAAYqR,SAAS,iBAC/BnS,KAAK,SAAU,WCodtB,MDpdyBkR,OACvBlD,EAAArL,EAAAzB,WAAA,KAAAmB,IAAA2L,GCudG3N,EAAQgE,KAAK2J,EAAM3L,IDtdlB6I,EAAWgF,OAAOpP,EAAE,YAAY+D,IAAIxC,GAAG8K,KAAK9K,GAiChD,KA/BAvB,EAAE,QAAQqR,SAAS,WAChBC,SAASd,GACTpB,OAAOhF,GACPgF,OAAOpP,EAAE,SAGZA,EAAE,QAAQqR,SAAS,yCAAyCC,SAASd,GAErEC,EAAMzQ,EAAE,QAAQsR,SAASZ,GAGzBD,EAAIrB,OAAOpP,EAAE,QAAQqR,SAAS,4BAA4BlO,KAAK,SAAU,QAGzE8M,EAAajQ,EAAE,QACVmD,KAAK,SAAU,OACfkO,SAAS,mBACTC,SAASb,GAGX5O,EAAKmP,uBAAuB,GAAQJ,GACnCF,EAAQyB,KAAK,mBAAmBa,QAAQ1C,GACxCI,EAAQyB,KAAK,mBAAmBa,QAAQrD,IAExCe,EAAQsC,QAAQhT,EAAE,QAAQoP,OAAOkB,GAAiBlB,OAAOO,IAG7D5Q,KAACsN,KAAKqE,GAINvD,EAAAtL,EAAA0I,KAAAyF,EAAA,EAAAF,EAAA3C,EAAAnO,OAAA8Q,EAAAE,EAAAA,ICscFzO,EAAI4L,EAAK6C,GDrcHjR,KAACoT,KAAK,YAAY/C,OAAOrQ,KAACoT,KAAK,SAASnS,EAAEiT,QAAQ1R,EAAGgP,IACzD,KAAAJ,EAAAtO,EAAA4I,KAAAyF,EAAA,EAAAH,EAAAI,EAAAnR,OAAA+Q,EAAAG,EAAAA,ICycF3O,EAAI4O,EAAKD,GDxcHnR,KAACoT,KAAK,YAAY/C,OAAOrQ,KAACoT,KAAK,SAASnS,EAAEiT,QAAQ1R,EAAGgP,IACtD,OAAA1O,EAAAwI,gBACCtL,KAACoT,KAAK,kBAAkBpO,IAAIlC,EAAKwI,gBAClC,MAAAxI,EAAAqR,cACCnU,KAACoT,KAAK,gBAAgBpO,IAAIlC,EAAKqR,cAEnCrD,GAAgB,EAGhBQ,EAAiB,SAAA1H,GC0cnB,MD1cmB,YACb,GAAAxF,GAAA4N,EAAAoC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAnJ,CAkBA,IAlBAiJ,GACIxI,kBAAmBvJ,EAAKuJ,kBACxBnE,cAAepF,EAAKoF,cACpB2H,gBAAiB/M,EAAK+M,gBACtBjF,QAAS9H,EAAK8H,QACdY,QAAUE,SAEd6I,EAAA,OAAAG,EAAA5R,EAAAzB,YAAAgK,EAAArG,aAAAP,WAAAiQ,EAA0E,EAC1E9I,KACAhC,EAACwJ,KAAK,4BAA4BhG,KAAK,WC6czC,MD7c4CyH,GAAQnJ,KAAK3H,KAAK9C,EAAEjB,MAAM4D,KAAK,eACzEgG,EAACwJ,KAAK,4BAA4BhG,KAAK,WC+czC,MD/c4CyH,GAAQrJ,KAAKzH,KAAK9C,EAAEjB,MAAM4D,KAAK,eACzEgG,EAACwJ,KAAK,mCAAmChG,KAAK,WAC1C,MAAyB,KAAtBmH,EACCtT,EAAEjB,MAAMgV,UAERT,IAC4C,KAAjBtT,EAAEjB,MAAMgF,MAAnC4G,EAAK7H,KAAK9C,EAAEjB,MAAMgF,OAAlB,UAEiB,IAAtBuP,EAEC,IADAE,EAAU7K,EAACwJ,KAAK,YACP5Q,EAAAoS,EAAA,EAAAD,EAAAJ,EAAAI,GAAA,EAAAA,EAAAC,EAAAA,EAAAD,EAAAnS,EAAAmS,GAAA,IAAAC,IAAAA,EAAT,CAKI,IAJAN,EAAcrT,EAAE,YACXqR,SAAS,mBACTjC,OAAOpP,EAAE,aACTd,KAAK,SAAU,WCid1B,MDjd6BkR,OACvByD,EAAA,EAAAT,EAAA7C,EAAAvR,OAAAoU,EAAAS,EAAAA,ICmdN1Q,EAAOoN,EAAgBsD,GDldbR,EAAYjE,OAAOpP,EAAE,YAAY+D,IAAIZ,GAAMiJ,KAAKjJ,GACpDqQ,GAAQpE,OAAOiE,GA4DvB,MA1DGxD,KACClF,EAAO9I,EAAK8I,KACZ9L,EAAI,EACJ8J,EAACwJ,KAAK,mCAAmChG,KAAK,WCudlD,MDtdQnM,GAAEjB,MAAMgF,IAAI4G,EAAK9L,IACjBA,MACJgR,GAAgB,GAEpB+D,EAAQvJ,eAAiBD,EAAWrG,MACpC6P,EAAQjJ,KAAOA,EACfiJ,EAAQxJ,WAAavI,EAAKzB,YAAYgK,EAAWrG,OAAO4G,GACxDiJ,EAAQjF,SAAW9M,EAAKhB,UAAU8N,EAAS5K,OAG3CgN,KACApI,EAACwJ,KAAK,mBAAmB6B,IAAI,YAAY7H,KAAK,WAC1C,GAAAd,EACA,OADAA,GAASrL,EAAEjB,MAAM4D,KAAK,UACnB,MAAAoO,EAAA1F,EAAA,IACC0F,EAAW1F,EAAO,IAAIvI,KAAMuI,EAAO,IAEnC0F,EAAW1F,EAAO,KAAQA,EAAO,MAEzC8H,KACAxK,EAACwJ,KAAK,2BAA2BhG,KAAK,WAClC,GAAAd,EACA,OADAA,GAASrL,EAAEjB,MAAM4D,KAAK,UACnB,MAAAoO,EAAA1F,EAAA,IACI,MAAA8H,EAAA9H,EAAA,IACC8H,EAAW9H,EAAO,IAAIvI,KAAMuI,EAAO,IAEnC8H,EAAW9H,EAAO,KAAQA,EAAO,IAJzC,SAMJuI,EAAQvI,OAAS,SAAChI,GACd,GAAA4Q,GAAAC,CAAA,KAAgBrS,EAASwJ,OAAOhI,GAAhC,OAAO,CACP,KAAAsI,IAAAoF,GACI,GC4dRkD,EAAgBlD,EAAWpF,GD5dnBuI,EAAgB,GAAG7Q,EAAOsI,GAAVhN,EAAA4E,KAAgB0Q,EAAhBC,IAAA,EAAhB,OAAO,CACX,QAAO,GAEXjE,EAAWxB,MAAM1E,EAAM6J,GACvBL,EAAiBvT,EAAEoC,OAAOP,GACtB0I,KAAMqJ,EAAQrJ,KACdE,KAAMmJ,EAAQnJ,KACdE,KAAMA,EACNoG,WAAYA,EAEZoD,eAAgBhB,EAChB9I,eAAgBD,EAAWrG,MAC3BmP,aAAcvE,EAAS5K,QAE3B4E,EAAChG,KAAK,iBAAkB4Q,GAGrB1R,EAAKoP,sBACJ6C,EAAuBnL,EAACwJ,KAAK,iCAC7BnS,EAAE8T,GAAsBM,SAAS,MAC5BxK,KAAK,SAACd,EAAGE,GC6dlB,MD7dwBtI,GAAYV,EAAE8I,GAAGsD,OAAQpM,EAAEgJ,GAAGoD,UAC7CkF,SAASwC,IAElB7D,EAAW0C,IAAI,UAAW,GACQ,MAAA9Q,EAAAqP,UAAlCrP,EAAKqP,UAAUqC,GAAf,SAxFaxU,MA0FjBqR,EAAU,SAAAzH,GCieZ,MDjeY,YCmeV,MDleIsH,GAAW0C,IAAI,UAAW,IAC1B0B,WAAWhE,EAAgB,MAFrBtR,MAKVqR,IAEArR,KAACoT,KAAK,qBAAqBmC,UACnBC,OAAQ,SAAC7F,EAAG8F,GAAO,MAAiB,OAAAA,EAAAC,OAAjBrE,IAAA,QACnBsE,YAAa3V,KAACoT,KAAK,qBACnBwC,MAAO,KACPtC,YAAa,mBAjRzB,MAAAxD,GAkRMH,EAAAG,EACwB,mBAAAC,UAAA,OAAAA,SAA1BA,QAAQC,MAAML,EAAEM,OAChBjQ,KAACsN,KAAKxK,EAAKoF,cAAcG,eAC7B,MAAOrI,OAMXiB,EAAEb,GAAG0H,QAAU,SAAC+N,GACZ,GAAAC,GAAAC,EAAAjW,EAAA6M,EAAA5M,EAAAkO,EAAA+H,EAAAC,EAAA1R,EAAA2J,CA0BA,QCgdW,MAAT2H,ID3eUA,EAAQ,WACpBI,EAAUjW,KAAC4D,KAAK,WAChBoS,EAAUhW,KAAC4D,KAAK,WAEhBkS,EAAW,SAACI,EAAOnR,EAAKG,GACpB,GAAAiR,EAKA,OALAA,GAAA,WAAS,OAAOD,GAAP,IACA,MC+eP,MD/eoB,UAACE,GCgfnB,MDhf2B,KAAKA,EAAMA,EADjC,KAEA,QCkfP,MDlfoB,UAACA,GCmfnB,MDnf8BA,GAAI,KAAIA,EAFjC,KAGA,OCqfP,MDrfoB,UAACA,GCsfnB,MDtf2B,GAAGA,EAAMA,EAAI,UAErC,SAAC5T,GACJ,GAAA4T,GAAAC,CAGA,OAHAA,GAAY,IAAMpR,KAAKqR,MAAM,KAAK9T,EAAEuC,IAAMG,EAAIH,IAC9CqR,EAAMC,EAAUE,SAAS,IAAI5T,MAAM,KAAK,GACX,IAAdyT,EAAInW,SAAnBmW,EAAM,EAAEA,GACDD,EAAOC,KAEtBL,EAAa,SAAAnM,GC6fb,MD7fa,UAACiM,EAAOK,GACjB,GAAAM,GAAAC,EAAAC,CC4gBF,OD5gBED,GAAc,SAACjK,GC+ff,MD9fI5C,GAACwJ,KAAKyC,GAAOzI,KAAK,WACd,GAAA5K,EACA,OADAA,GAAIvB,EAAEjB,MAAM4D,KAAK,SACA,MAAApB,GAAOgB,SAAShB,GAAjCgK,EAAEhK,EAAGvB,EAAEjB,OAAP,UAER0W,KACAD,EAAY,SAACjU,GCmgBb,MDngBmBkU,GAAO3S,KAAKvB,KAC/BgU,EAAWV,EAASI,EAAOjR,KAAKF,IAALzE,MAAA2E,KAASyR,GAAYzR,KAAKC,IAAL5E,MAAA2E,KAASyR,IACzDD,EAAY,SAACjU,EAAGmU,GCqgBhB,MDrgByBA,GAAK/C,IAAI,mBAAoB,IAAM4C,EAAShU,QAT5DxC,MAWN6V,GAAP,IACS,UACDE,EAAW,UAAW,MADrB,MADT,KAGS,aACD,IAA6CjW,EAAAC,EAAA,EAAAwE,EAAA0R,EAAA1R,GAAA,EAAAA,EAAAxE,EAAAA,EAAAwE,EAAAzE,EAAAyE,GAAA,IAAAxE,IAAAA,EAA7CgW,EAAW,cAAcjW,EAAK,MAD7B,MAHT,KAKS,aACD,IAA6C6M,EAAAsB,EAAA,EAAAC,EAAA8H,EAAA9H,GAAA,EAAAA,EAAAD,EAAAA,EAAAC,EAAAvB,EAAAuB,GAAA,IAAAD,IAAAA,EAA7C8H,EAAW,cAAcpJ,EAAK,OAKtC,MAHAoJ,GAAW,qBAAsB,OACjCA,EAAW,qBAAsB,OAE1B/V,MAMXiB,EAAEb,GAAGwH,SAAY,WACb,GAAAgP,GAAA9W,EAAAC,EAAAiW,EAAAC,EAAA1R,CAgCA,KAhCA0R,EAAUjW,KAAC4D,KAAK,WAChBoS,EAAUhW,KAAC4D,KAAK,WAEhBgT,EAAa,SAAAhN,GC6gBb,MD7gBa,UAACiM,GACV,GAAAY,GAAAvR,EAAAjC,EAAAyT,CC+hBF,OD/hBED,GAAc,SAACjK,GC+gBf,MD9gBI5C,GAACwJ,KAAKyC,GAAOzI,KAAK,WACd,GAAA5K,EACA,OADAA,GAAIvB,EAAEjB,MAAM4D,KAAK,SACA,MAAApB,GAAOgB,SAAShB,GAAjCgK,EAAEhK,EAAGvB,EAAEjB,OAAP,UAER0W,KACAD,EAAY,SAACjU,GCmhBb,MDnhBmBkU,GAAO3S,KAAKvB,KAC/B0C,EAAMD,KAAKC,IAAL5E,MAAA2E,KAASyR,GACfzT,EAAS,SAACT,GCqhBV,MDrhBgB,KAAIA,GAAG,IAAI0C,IAC3BuR,EAAY,SAACjU,EAAGmU,GACZ,GAAAtJ,GAAAwJ,CCyiBJ,ODziBIxJ,GAAOsJ,EAAKtJ,OACZwJ,EAAU5V,EAAE,SAAS2S,KACjBkD,SAAY,WACZC,OAAU,SACdF,EAAQxG,OAAOpP,EAAE,SAAS2S,KACtBkD,SAAY,WACZE,OAAU,EACVnD,KAAQ,EACRoD,MAAS,EACTF,OAAU9T,EAAOT,GAAK,IACtB0U,mBAAoB,UACxBL,EAAQxG,OAAOpP,EAAE,SAASoM,KAAKA,GAAMuG,KACjCkD,SAAW,WACXK,eAAe,MACfC,gBAAgB,SAEpBT,EAAK/C,KAAIyD,QAAW,EAAEC,cAAe,MAAOC,aAAc,WAAUjK,KAAKuJ,OA3BpE7W,MA6ByBF,EAAAC,EAAA,EAAAwE,EAAA0R,EAAA1R,GAAA,EAAAA,EAAAxE,EAAAA,EAAAwE,EAAAzE,EAAAyE,GAAA,IAAAxE,IAAAA,EAAtC6W,EAAW,cAAc9W,EAGzB,OAFA8W,GAAW,sBAEJ5W,UCoiBZwE,KAAKxE","file":"pivot.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\\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 min: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\\n val: null\\n push: (record) ->\\n x = parseFloat(record[attr])\\n if not isNaN x then @val = Math.min(x, @val ? x)\\n value: -> @val\\n format: formatter\\n numInputs: if attr? then 0 else 1\\n\\n max: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\\n val: null\\n push: (record) -> \\n x = parseFloat(record[attr])\\n if not isNaN x then @val = Math.max(x, @val ? x)\\n value: -> @val\\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 \\"Minimum\\": tpl.min(usFmt)\\n \\"Maximum\\": tpl.max(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, utcOutput=false, mthNames=mthNamesEn, dayNames=dayNamesEn) ->\\n utc = if utcOutput then \\"UTC\\" else \\"\\"\\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[\\"get#{utc}FullYear\\"]()\\n when \\"m\\" then zeroPad(date[\\"get#{utc}Month\\"]()+1)\\n when \\"n\\" then mthNames[date[\\"get#{utc}Month\\"]()]\\n when \\"d\\" then zeroPad(date[\\"get#{utc}Date\\"]())\\n when \\"w\\" then dayNames[date[\\"get#{utc}Day\\"]()]\\n when \\"x\\" then date[\\"get#{utc}Day\\"]()\\n when \\"H\\" then zeroPad(date[\\"get#{utc}Hours\\"]())\\n when \\"M\\" then zeroPad(date[\\"get#{utc}Minutes\\"]())\\n when \\"S\\" then zeroPad(date[\\"get#{utc}Seconds\\"]())\\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 sortAs = (order) -> \\n mapping = {}\\n for i, x of order\\n mapping[x] = i\\n (a, b) ->\\n if mapping[a]? and mapping[b]?\\n return mapping[a] - mapping[b]\\n else if mapping[a]?\\n return -1\\n else if mapping[b]?\\n return 1\\n else\\n return naturalSort(a,b)\\n\\n getSort = (sorters, attr) ->\\n sort = sorters(attr)\\n if $.isFunction(sort)\\n return sort \\n else\\n return naturalSort\\n\\n #expose these to the outside world\\n $.pivotUtilities = {aggregatorTemplates, aggregators, renderers, derivers, locales,\\n naturalSort, numberFormat, sortAs}\\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 @sorters = opts.sorters\\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 arrSort: (attrs) => \\n sortersArr = (getSort(@sorters, a) for a in attrs)\\n (a,b) -> \\n for i, sorter of sortersArr\\n comparison = sorter(a[i], b[i])\\n return comparison if comparison != 0\\n return 0\\n\\n sortKeys: () =>\\n if not @sorted\\n @sorted = true\\n @rowKeys.sort @arrSort(@rowAttrs)\\n @colKeys.sort @arrSort(@colAttrs)\\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 vals: []\\n filter: -> true\\n aggregator: aggregatorTemplates.count()()\\n aggregatorName: \\"Count\\"\\n sorters: -> \\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 = $(\\"<span>\\").html opts.localeStrings.renderError\\n catch e\\n console.error(e.stack) if console?\\n result = $(\\"<span>\\").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: 85\\n autoSortUnusedAttrs: false\\n rendererOptions: localeStrings: locales[locale].localeStrings\\n onRefresh: null\\n filter: -> true\\n sorters: -> \\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 = $(\\"<table>\\", \\"class\\": \\"pvtUi\\").attr(\\"cellpadding\\", 5)\\n\\n #renderer control\\n rendererControl = $(\\"<td>\\")\\n\\n renderer = $(\\"<select>\\")\\n .addClass(\'pvtRenderer\')\\n .appendTo(rendererControl)\\n .bind \\"change\\", -> refresh() #capture reference\\n for own x of opts.renderers\\n $(\\"<option>\\").val(x).html(x).appendTo(renderer)\\n\\n\\n #axis list, including the double-click menu\\n colList = $(\\"<td>\\").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 unusedAttrsVerticalAutoCutoff = 120 # legacy support\\n else\\n unusedAttrsVerticalAutoCutoff = parseInt opts.unusedAttrsVertical\\n\\n if not isNaN(unusedAttrsVerticalAutoCutoff)\\n attrLength = 0\\n attrLength += a.length for a in shownAttributes\\n unusedAttrsVerticalAutoOverride = attrLength > unusedAttrsVerticalAutoCutoff\\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 = $(\\"<div>\\").addClass(\'pvtFilterBox\').hide()\\n\\n valueList.append $(\\"<h4>\\").text(\\"#{c} (#{keys.length})\\")\\n if keys.length > opts.menuLimit\\n valueList.append $(\\"<p>\\").html(opts.localeStrings.tooMany)\\n else\\n btns = $(\\"<p>\\").appendTo(valueList)\\n btns.append $(\\"<button>\\", {type:\\"button\\"}).html(opts.localeStrings.selectAll).bind \\"click\\", ->\\n valueList.find(\\"input:visible\\").prop \\"checked\\", true\\n btns.append $(\\"<button>\\", {type:\\"button\\"}).html(opts.localeStrings.selectNone).bind \\"click\\", ->\\n valueList.find(\\"input:visible\\").prop \\"checked\\", false\\n btns.append $(\\"<br>\\")\\n btns.append $(\\"<input>\\", {type: \\"text\\", placeholder: opts.localeStrings.filterResults, class: \\"pvtSearch\\"}).bind \\"keyup\\", ->\\n filter = $(this).val().toLowerCase()\\n valueList.find(\'.pvtCheckContainer p\').each ->\\n testString = $(this).text().toLowerCase().indexOf(filter)\\n if testString isnt -1\\n $(this).show()\\n else\\n $(this).hide()\\n\\n checkContainer = $(\\"<div>\\").addClass(\\"pvtCheckContainer\\").appendTo(valueList)\\n\\n for k in keys.sort(getSort(opts.sorters, c))\\n v = axisValues[c][k]\\n filterItem = $(\\"<label>\\")\\n filterItemExcluded = if opts.exclusions[c] then (k in opts.exclusions[c]) else false\\n hasExcludedItem ||= filterItemExcluded\\n $(\\"<input>\\")\\n .attr(\\"type\\", \\"checkbox\\").addClass(\'pvtFilter\')\\n .attr(\\"checked\\", !filterItemExcluded).data(\\"filter\\", [c,k])\\n .appendTo filterItem\\n filterItem.append $(\\"<span>\\").html k\\n filterItem.append $(\\"<span>\\").text \\" (\\"+v+\\")\\"\\n checkContainer.append $(\\"<p>\\").append(filterItem)\\n\\n updateFilter = ->\\n unselectedCount = valueList.find(\\"[type=\'checkbox\']\\").length -\\n valueList.find(\\"[type=\'checkbox\']:checked\\").length\\n if unselectedCount > 0\\n attrElem.addClass \\"pvtFilteredAttribute\\"\\n else\\n attrElem.removeClass \\"pvtFilteredAttribute\\"\\n if keys.length > opts.menuLimit\\n valueList.toggle()\\n else\\n valueList.toggle(0, refresh)\\n\\n $(\\"<p>\\").appendTo(valueList)\\n .append $(\\"<button>\\", {type:\\"button\\"}).text(\\"OK\\").bind \\"click\\", updateFilter\\n\\n showFilterList = (e) ->\\n valueList.css(left: e.pageX, top: e.pageY).toggle()\\n valueList.find(\'.pvtSearch\').val(\'\')\\n valueList.find(\'.pvtCheckContainer p\').show()\\n\\n triangleLink = $(\\"<span>\\").addClass(\'pvtTriangle\').html(\\" &#x25BE;\\")\\n .bind \\"click\\", showFilterList\\n\\n attrElem = $(\\"<li>\\").addClass(\\"axis_#{i}\\")\\n .append $(\\"<span>\\").addClass(\'pvtAttr\').text(c).data(\\"attrName\\", c).append(triangleLink)\\n attrElem.addClass(\'pvtFilteredAttribute\') if hasExcludedItem\\n colList.append(attrElem).append(valueList)\\n\\n attrElem.bind \\"dblclick\\", showFilterList\\n\\n tr1 = $(\\"<tr>\\").appendTo(uiTable)\\n\\n #aggregator menu and value area\\n\\n aggregator = $(\\"<select>\\").addClass(\'pvtAggregator\')\\n .bind \\"change\\", -> refresh() #capture reference\\n for own x of opts.aggregators\\n aggregator.append $(\\"<option>\\").val(x).html(x)\\n\\n $(\\"<td>\\").addClass(\'pvtVals\')\\n .appendTo(tr1)\\n .append(aggregator)\\n .append($(\\"<br>\\"))\\n\\n #column axes\\n $(\\"<td>\\").addClass(\'pvtAxisContainer pvtHorizList pvtCols\').appendTo(tr1)\\n\\n tr2 = $(\\"<tr>\\").appendTo(uiTable)\\n\\n #row axes\\n tr2.append $(\\"<td>\\").addClass(\'pvtAxisContainer pvtRows\').attr(\\"valign\\", \\"top\\")\\n\\n #the actual pivot table container\\n pivotTable = $(\\"<td>\\")\\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 $(\\"<tr>\\").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 = $(\\"<select>\\")\\n .addClass(\'pvtAttrDropdown\')\\n .append($(\\"<option>\\"))\\n .bind \\"change\\", -> refresh()\\n for attr in shownAttributes\\n newDropdown.append($(\\"<option>\\").val(attr).text(attr))\\n pvtVals.append(newDropdown)\\n\\n if initialRender\\n vals = opts.vals\\n i = 0\\n @find(\\".pvtVals select.pvtAttrDropdown\\").each ->\\n $(this).val vals[i]\\n i++\\n initialRender = false\\n\\n subopts.aggregatorName = aggregator.val()\\n subopts.vals = vals\\n subopts.aggregator = opts.aggregators[aggregator.val()](vals)\\n subopts.renderer = opts.renderers[renderer.val()]\\n\\n #construct filter here\\n exclusions = {}\\n @find(\'input.pvtFilter\').not(\':checked\').each ->\\n filter = $(this).data(\\"filter\\")\\n if exclusions[filter[0]]?\\n exclusions[filter[0]].push( filter[1] )\\n else\\n exclusions[filter[0]] = [ filter[1] ]\\n #include inclusions when exclusions present\\n inclusions = {}\\n @find(\'input.pvtFilter:checked\').each ->\\n filter = $(this).data(\\"filter\\")\\n if exclusions[filter[0]]?\\n if inclusions[filter[0]]?\\n inclusions[filter[0]].push( filter[1] )\\n else\\n inclusions[filter[0]] = [ filter[1] ]\\n\\n subopts.filter = (record) ->\\n return false if not opts.filter(record)\\n for k,excludedItems of exclusions\\n return false if \\"\\"+record[k] in excludedItems\\n return true\\n\\n pivotTable.pivot(input,subopts)\\n pivotUIOptions = $.extend opts,\\n cols: subopts.cols\\n rows: subopts.rows\\n vals: vals\\n exclusions: exclusions\\n #to indicate inclusions are informational only\\n inclusionsInfo: inclusions\\n aggregatorName: aggregator.val()\\n rendererName: renderer.val()\\n\\n @data \\"pivotUIOptions\\", pivotUIOptions\\n\\n # if requested make sure unused columns are in alphabetical order\\n if opts.autoSortUnusedAttrs\\n unusedAttrsContainer = @find(\\"td.pvtUnused.pvtAxisContainer\\")\\n $(unusedAttrsContainer).children(\\"li\\")\\n .sort((a, b) => naturalSort($(a).text(), $(b).text()))\\n .appendTo unusedAttrsContainer\\n\\n pivotTable.css(\\"opacity\\", 1)\\n opts.onRefresh(pivotUIOptions) if opts.onRefresh?\\n\\n refresh = =>\\n pivotTable.css(\\"opacity\\", 0.5)\\n setTimeout refreshDelayed, 10\\n\\n #the very first refresh will actually display the table\\n refresh()\\n\\n @find(\\".pvtAxisContainer\\").sortable\\n update: (e, ui) -> refresh() if not ui.sender?\\n connectWith: @find(\\".pvtAxisContainer\\")\\n items: \'li\'\\n placeholder: \'pvtPlaceholder\'\\n catch e\\n console.error(e.stack) if console?\\n @html opts.localeStrings.uiRenderError\\n return this\\n\\n ###\\n Heatmap post-processing\\n ###\\n\\n $.fn.heatmap = (scope = \\"heatmap\\") ->\\n numRows = @data \\"numrows\\"\\n numCols = @data \\"numcols\\"\\n\\n colorGen = (color, min, max) ->\\n hexGen = switch color\\n when \\"red\\" then (hex) -> \\"ff#{hex}#{hex}\\"\\n when \\"green\\" then (hex) -> \\"#{hex}ff#{hex}\\"\\n when \\"blue\\" then (hex) -> \\"#{hex}#{hex}ff\\"\\n\\n return (x) ->\\n intensity = 255 - Math.round 255*(x-min)/(max-min)\\n hex = intensity.toString(16).split(\\".\\")[0]\\n hex = 0+hex if hex.length == 1\\n return hexGen(hex)\\n\\n heatmapper = (scope, color) =>\\n forEachCell = (f) =>\\n @find(scope).each ->\\n x = $(this).data(\\"value\\")\\n f(x, $(this)) if x? and isFinite(x)\\n\\n values = []\\n forEachCell (x) -> values.push x\\n colorFor = colorGen color, Math.min(values...), Math.max(values...)\\n forEachCell (x, elem) -> elem.css \\"background-color\\", \\"#\\" + colorFor(x)\\n\\n switch scope\\n when \\"heatmap\\"\\n heatmapper \\".pvtVal\\", \\"red\\"\\n when \\"rowheatmap\\"\\n heatmapper \\".pvtVal.row#{i}\\", \\"red\\" for i in [0...numRows]\\n when \\"colheatmap\\"\\n heatmapper \\".pvtVal.col#{j}\\", \\"red\\" for j in [0...numCols]\\n\\n heatmapper \\".pvtTotal.rowTotal\\", \\"red\\"\\n heatmapper \\".pvtTotal.colTotal\\", \\"red\\"\\n\\n return this\\n\\n ###\\n Barchart post-processing\\n ###\\n\\n $.fn.barchart = ->\\n numRows = @data \\"numrows\\"\\n numCols = @data \\"numcols\\"\\n\\n barcharter = (scope) =>\\n forEachCell = (f) =>\\n @find(scope).each ->\\n x = $(this).data(\\"value\\")\\n f(x, $(this)) if x? and isFinite(x)\\n\\n values = []\\n forEachCell (x) -> values.push x\\n max = Math.max(values...)\\n scaler = (x) -> 100*x/(1.4*max)\\n forEachCell (x, elem) ->\\n text = elem.text()\\n wrapper = $(\\"<div>\\").css\\n \\"position\\": \\"relative\\"\\n \\"height\\": \\"55px\\"\\n wrapper.append $(\\"<div>\\").css\\n \\"position\\": \\"absolute\\"\\n \\"bottom\\": 0\\n \\"left\\": 0\\n \\"right\\": 0\\n \\"height\\": scaler(x) + \\"%\\"\\n \\"background-color\\": \\"gray\\"\\n wrapper.append $(\\"<div>\\").text(text).css\\n \\"position\\":\\"relative\\"\\n \\"padding-left\\":\\"5px\\"\\n \\"padding-right\\":\\"5px\\"\\n\\n elem.css(\\"padding\\": 0,\\"padding-top\\": \\"5px\\", \\"text-align\\": \\"center\\").html wrapper\\n\\n barcharter \\".pvtVal.row#{i}\\" for i in [0...numRows]\\n barcharter \\".pvtTotal.colTotal\\"\\n\\n return this\\n\\n\\n","(function(){var t,e=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},n=[].slice,r=function(t,e){return function(){return t.apply(e,arguments)}},a={}.hasOwnProperty;(t=function(t){return\\"object\\"==typeof exports&&\\"object\\"==typeof module?t(require(\\"jquery\\")):\\"function\\"==typeof define&&define.amd?define([\\"jquery\\"],t):t(jQuery)})(function(t){var o,i,s,u,l,c,p,h,d,f,g,m,v,b,A,C,y,w;return i=function(t,e,n){var r,a,o,i;for(t+=\\"\\",a=t.split(\\".\\"),o=a[0],i=a.length>1?n+a[1]:\\"\\",r=/(\\\\d+)(\\\\d{3})/;r.test(o);)o=o.replace(r,\\"$1\\"+e+\\"$2\\");return o+i},g=function(e){var n;return n={digitsAfterDecimal:2,scaler:1,thousandsSep:\\",\\",decimalSep:\\".\\",prefix:\\"\\",suffix:\\"\\",showZero:!1},e=t.extend(n,e),function(t){var n;return isNaN(t)||!isFinite(t)?\\"\\":0!==t||e.showZero?(n=i((e.scaler*t).toFixed(e.digitsAfterDecimal),e.thousandsSep,e.decimalSep),\\"\\"+e.prefix+n+e.suffix):\\"\\"}},A=g(),C=g({digitsAfterDecimal:0}),y=g({digitsAfterDecimal:1,scaler:100,suffix:\\"%\\"}),s={count:function(t){return null==t&&(t=C),function(){return function(e,n,r){return{count:0,push:function(){return this.count++},value:function(){return this.count},format:t}}}},countUnique:function(t){return null==t&&(t=C),function(n){var r;return r=n[0],function(n,a,o){return{uniq:[],push:function(t){var n;return n=t[r],e.call(this.uniq,n)<0?this.uniq.push(t[r]):void 0},value:function(){return this.uniq.length},format:t,numInputs:null!=r?0:1}}}},listUnique:function(t){return function(n){var r;return r=n[0],function(n,a,o){return{uniq:[],push:function(t){var n;return n=t[r],e.call(this.uniq,n)<0?this.uniq.push(t[r]):void 0},value:function(){return this.uniq.join(t)},format:function(t){return t},numInputs:null!=r?0:1}}}},sum:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{sum:0,push:function(t){return isNaN(parseFloat(t[n]))?void 0:this.sum+=parseFloat(t[n])},value:function(){return this.sum},format:t,numInputs:null!=n?0:1}}}},min:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{val:null,push:function(t){var e,r;return r=parseFloat(t[n]),isNaN(r)?void 0:this.val=Math.min(r,null!=(e=this.val)?e:r)},value:function(){return this.val},format:t,numInputs:null!=n?0:1}}}},max:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{val:null,push:function(t){var e,r;return r=parseFloat(t[n]),isNaN(r)?void 0:this.val=Math.max(r,null!=(e=this.val)?e:r)},value:function(){return this.val},format:t,numInputs:null!=n?0:1}}}},average:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{sum:0,len:0,push:function(t){return isNaN(parseFloat(t[n]))?void 0:(this.sum+=parseFloat(t[n]),this.len++)},value:function(){return this.sum/this.len},format:t,numInputs:null!=n?0:1}}}},sumOverSum:function(t){return null==t&&(t=A),function(e){var n,r;return r=e[0],n=e[1],function(e,a,o){return{sumNum:0,sumDenom:0,push:function(t){return isNaN(parseFloat(t[r]))||(this.sumNum+=parseFloat(t[r])),isNaN(parseFloat(t[n]))?void 0:this.sumDenom+=parseFloat(t[n])},value:function(){return this.sumNum/this.sumDenom},format:t,numInputs:null!=r&&null!=n?0:2}}}},sumOverSumBound80:function(t,e){return null==t&&(t=!0),null==e&&(e=A),function(n){var r,a;return a=n[0],r=n[1],function(n,o,i){return{sumNum:0,sumDenom:0,push:function(t){return isNaN(parseFloat(t[a]))||(this.sumNum+=parseFloat(t[a])),isNaN(parseFloat(t[r]))?void 0:this.sumDenom+=parseFloat(t[r])},value:function(){var e;return e=t?1:-1,(.821187207574908/this.sumDenom+this.sumNum/this.sumDenom+1.2815515655446004*e*Math.sqrt(.410593603787454/(this.sumDenom*this.sumDenom)+this.sumNum*(1-this.sumNum/this.sumDenom)/(this.sumDenom*this.sumDenom)))/(1+1.642374415149816/this.sumDenom)},format:e,numInputs:null!=a&&null!=r?0:2}}}},fractionOf:function(t,e,r){return null==e&&(e=\\"total\\"),null==r&&(r=y),function(){var a;return a=1<=arguments.length?n.call(arguments,0):[],function(n,o,i){return{selector:{total:[[],[]],row:[o,[]],col:[[],i]}[e],inner:t.apply(null,a)(n,o,i),push:function(t){return this.inner.push(t)},format:r,value:function(){return this.inner.value()/n.getAggregator.apply(n,this.selector).inner.value()},numInputs:t.apply(null,a)().numInputs}}}}},u=function(t){return{Count:t.count(C),\\"Count Unique Values\\":t.countUnique(C),\\"List Unique Values\\":t.listUnique(\\", \\"),Sum:t.sum(A),\\"Integer Sum\\":t.sum(C),Average:t.average(A),Minimum:t.min(A),Maximum:t.max(A),\\"Sum over Sum\\":t.sumOverSum(A),\\"80% Upper Bound\\":t.sumOverSumBound80(!0,A),\\"80% Lower Bound\\":t.sumOverSumBound80(!1,A),\\"Sum as Fraction of Total\\":t.fractionOf(t.sum(),\\"total\\",y),\\"Sum as Fraction of Rows\\":t.fractionOf(t.sum(),\\"row\\",y),\\"Sum as Fraction of Columns\\":t.fractionOf(t.sum(),\\"col\\",y),\\"Count as Fraction of Total\\":t.fractionOf(t.count(),\\"total\\",y),\\"Count as Fraction of Rows\\":t.fractionOf(t.count(),\\"row\\",y),\\"Count as Fraction of Columns\\":t.fractionOf(t.count(),\\"col\\",y)}}(s),v={Table:function(t,e){return m(t,e)},\\"Table Barchart\\":function(e,n){return t(m(e,n)).barchart()},Heatmap:function(e,n){return t(m(e,n)).heatmap()},\\"Row Heatmap\\":function(e,n){return t(m(e,n)).heatmap(\\"rowheatmap\\")},\\"Col Heatmap\\":function(e,n){return t(m(e,n)).heatmap(\\"colheatmap\\")}},h={en:{aggregators:u,renderers:v,localeStrings:{renderError:\\"An error occurred rendering the PivotTable results.\\",computeError:\\"An error occurred computing the PivotTable results.\\",uiRenderError:\\"An error occurred rendering the PivotTable UI.\\",selectAll:\\"Select All\\",selectNone:\\"Select None\\",tooMany:\\"(too many to list)\\",filterResults:\\"Filter results\\",totals:\\"Totals\\",vs:\\"vs\\",by:\\"by\\"}}},d=[\\"Jan\\",\\"Feb\\",\\"Mar\\",\\"Apr\\",\\"May\\",\\"Jun\\",\\"Jul\\",\\"Aug\\",\\"Sep\\",\\"Oct\\",\\"Nov\\",\\"Dec\\"],l=[\\"Sun\\",\\"Mon\\",\\"Tue\\",\\"Wed\\",\\"Thu\\",\\"Fri\\",\\"Sat\\"],w=function(t){return(\\"0\\"+t).substr(-2,2)},c={bin:function(t,e){return function(n){return n[t]-n[t]%e}},dateFormat:function(t,e,n,r,a){var o;return null==n&&(n=!1),null==r&&(r=d),null==a&&(a=l),o=n?\\"UTC\\":\\"\\",function(n){var i;return i=new Date(Date.parse(n[t])),isNaN(i)?\\"\\":e.replace(/%(.)/g,function(t,e){switch(e){case\\"y\\":return i[\\"get\\"+o+\\"FullYear\\"]();case\\"m\\":return w(i[\\"get\\"+o+\\"Month\\"]()+1);case\\"n\\":return r[i[\\"get\\"+o+\\"Month\\"]()];case\\"d\\":return w(i[\\"get\\"+o+\\"Date\\"]());case\\"w\\":return a[i[\\"get\\"+o+\\"Day\\"]()];case\\"x\\":return i[\\"get\\"+o+\\"Day\\"]();case\\"H\\":return w(i[\\"get\\"+o+\\"Hours\\"]());case\\"M\\":return w(i[\\"get\\"+o+\\"Minutes\\"]());case\\"S\\":return w(i[\\"get\\"+o+\\"Seconds\\"]());default:return\\"%\\"+e}})}}},f=function(t){return function(t,e){var n,r,a,o,i,s,u;if(s=/(\\\\d+)|(\\\\D+)/g,i=/\\\\d/,u=/^0/,\\"number\\"==typeof t||\\"number\\"==typeof e)return isNaN(t)?1:isNaN(e)?-1:t-e;if(n=String(t).toLowerCase(),a=String(e).toLowerCase(),n===a)return 0;if(!i.test(n)||!i.test(a))return n>a?1:-1;for(n=n.match(s),a=a.match(s);n.length&&a.length;)if(r=n.shift(),o=a.shift(),r!==o)return i.test(r)&&i.test(o)?r.replace(u,\\".0\\")-o.replace(u,\\".0\\"):r>o?1:-1;return n.length-a.length}}(this),b=function(t){var e,n,r;n={};for(e in t)r=t[e],n[r]=e;return function(t,e){return null!=n[t]&&null!=n[e]?n[t]-n[e]:null!=n[t]?-1:null!=n[e]?1:f(t,e)}},p=function(e,n){var r;return r=e(n),t.isFunction(r)?r:f},t.pivotUtilities={aggregatorTemplates:s,aggregators:u,renderers:v,derivers:c,locales:h,naturalSort:f,numberFormat:g,sortAs:b},o=function(){function e(t,n){this.getAggregator=r(this.getAggregator,this),this.getRowKeys=r(this.getRowKeys,this),this.getColKeys=r(this.getColKeys,this),this.sortKeys=r(this.sortKeys,this),this.arrSort=r(this.arrSort,this),this.aggregator=n.aggregator,this.aggregatorName=n.aggregatorName,this.colAttrs=n.cols,this.rowAttrs=n.rows,this.valAttrs=n.vals,this.sorters=n.sorters,this.tree={},this.rowKeys=[],this.colKeys=[],this.rowTotals={},this.colTotals={},this.allTotal=this.aggregator(this,[],[]),this.sorted=!1,e.forEachRecord(t,n.derivedAttributes,function(t){return function(e){return n.filter(e)?t.processRecord(e):void 0}}(this))}return e.forEachRecord=function(e,n,r){var o,i,s,u,l,c,p,h,d,f,g,m;if(o=t.isEmptyObject(n)?r:function(t){var e,a,o;for(e in n)o=n[e],t[e]=null!=(a=o(t))?a:t[e];return r(t)},t.isFunction(e))return e(o);if(t.isArray(e)){if(t.isArray(e[0])){f=[];for(s in e)if(a.call(e,s)&&(i=e[s],s>0)){h={},d=e[0];for(u in d)a.call(d,u)&&(l=d[u],h[l]=i[u]);f.push(o(h))}return f}for(g=[],c=0,p=e.length;p>c;c++)h=e[c],g.push(o(h));return g}if(e instanceof jQuery)return m=[],t(\\"thead > tr > th\\",e).each(function(e){return m.push(t(this).text())}),t(\\"tbody > tr\\",e).each(function(e){return h={},t(\\"td\\",this).each(function(e){return h[m[e]]=t(this).html()}),o(h)});throw new Error(\\"unknown input format\\")},e.convertToArray=function(t){var n;return n=[],e.forEachRecord(t,{},function(t){return n.push(t)}),n},e.prototype.arrSort=function(t){var e,n;return n=function(){var n,r,a;for(a=[],n=0,r=t.length;r>n;n++)e=t[n],a.push(p(this.sorters,e));return a}.call(this),function(t,e){var r,a,o;for(a in n)if(o=n[a],r=o(t[a],e[a]),0!==r)return r;return 0}},e.prototype.sortKeys=function(){return this.sorted?void 0:(this.sorted=!0,this.rowKeys.sort(this.arrSort(this.rowAttrs)),this.colKeys.sort(this.arrSort(this.colAttrs)))},e.prototype.getColKeys=function(){return this.sortKeys(),this.colKeys},e.prototype.getRowKeys=function(){return this.sortKeys(),this.rowKeys},e.prototype.processRecord=function(t){var e,n,r,a,o,i,s,u,l,c,p,h,d;for(e=[],h=[],u=this.colAttrs,a=0,o=u.length;o>a;a++)d=u[a],e.push(null!=(l=t[d])?l:\\"null\\");for(c=this.rowAttrs,s=0,i=c.length;i>s;s++)d=c[s],h.push(null!=(p=t[d])?p:\\"null\\");return r=h.join(String.fromCharCode(0)),n=e.join(String.fromCharCode(0)),this.allTotal.push(t),0!==h.length&&(this.rowTotals[r]||(this.rowKeys.push(h),this.rowTotals[r]=this.aggregator(this,h,[])),this.rowTotals[r].push(t)),0!==e.length&&(this.colTotals[n]||(this.colKeys.push(e),this.colTotals[n]=this.aggregator(this,[],e)),this.colTotals[n].push(t)),0!==e.length&&0!==h.length?(this.tree[r]||(this.tree[r]={}),this.tree[r][n]||(this.tree[r][n]=this.aggregator(this,h,e)),this.tree[r][n].push(t)):void 0},e.prototype.getAggregator=function(t,e){var n,r,a;return a=t.join(String.fromCharCode(0)),r=e.join(String.fromCharCode(0)),n=0===t.length&&0===e.length?this.allTotal:0===t.length?this.colTotals[r]:0===e.length?this.rowTotals[a]:this.tree[a][r],null!=n?n:{value:function(){return null},format:function(){return\\"\\"}}},e}(),m=function(e,n){var r,o,i,s,u,l,c,p,h,d,f,g,m,v,b,A,C,y,w,T,N;l={localeStrings:{totals:\\"Totals\\"}},n=t.extend(l,n),i=e.colAttrs,f=e.rowAttrs,m=e.getRowKeys(),u=e.getColKeys(),d=document.createElement(\\"table\\"),d.className=\\"pvtTable\\",v=function(t,e,n){var r,a,o,i,s,u,l,c;if(0!==e){for(i=!0,c=r=0,s=n;s>=0?s>=r:r>=s;c=s>=0?++r:--r)t[e-1][c]!==t[e][c]&&(i=!1);if(i)return-1}for(a=0;e+a<t.length;){for(l=!1,c=o=0,u=n;u>=0?u>=o:o>=u;c=u>=0?++o:--o)t[e][c]!==t[e+a][c]&&(l=!0);if(l)break;a++}return a};for(p in i)if(a.call(i,p)){o=i[p],y=document.createElement(\\"tr\\"),0===parseInt(p)&&0!==f.length&&(A=document.createElement(\\"th\\"),A.setAttribute(\\"colspan\\",f.length),A.setAttribute(\\"rowspan\\",i.length),y.appendChild(A)),A=document.createElement(\\"th\\"),A.className=\\"pvtAxisLabel\\",A.innerHTML=o,y.appendChild(A);for(c in u)a.call(u,c)&&(s=u[c],N=v(u,parseInt(c),parseInt(p)),-1!==N&&(A=document.createElement(\\"th\\"),A.className=\\"pvtColLabel\\",A.innerHTML=s[p],A.setAttribute(\\"colspan\\",N),parseInt(p)===i.length-1&&0!==f.length&&A.setAttribute(\\"rowspan\\",2),y.appendChild(A)));0===parseInt(p)&&(A=document.createElement(\\"th\\"),A.className=\\"pvtTotalLabel\\",A.innerHTML=n.localeStrings.totals,A.setAttribute(\\"rowspan\\",i.length+(0===f.length?0:1)),y.appendChild(A)),d.appendChild(y)}if(0!==f.length){y=document.createElement(\\"tr\\");for(c in f)a.call(f,c)&&(h=f[c],A=document.createElement(\\"th\\"),A.className=\\"pvtAxisLabel\\",A.innerHTML=h,y.appendChild(A));A=document.createElement(\\"th\\"),0===i.length&&(A.className=\\"pvtTotalLabel\\",A.innerHTML=n.localeStrings.totals),y.appendChild(A),d.appendChild(y)}for(c in m)if(a.call(m,c)){g=m[c],y=document.createElement(\\"tr\\");for(p in g)a.call(g,p)&&(w=g[p],N=v(m,parseInt(c),parseInt(p)),-1!==N&&(A=document.createElement(\\"th\\"),A.className=\\"pvtRowLabel\\",A.innerHTML=w,A.setAttribute(\\"rowspan\\",N),parseInt(p)===f.length-1&&0!==i.length&&A.setAttribute(\\"colspan\\",2),y.appendChild(A)));for(p in u)a.call(u,p)&&(s=u[p],r=e.getAggregator(g,s),T=r.value(),b=document.createElement(\\"td\\"),b.className=\\"pvtVal row\\"+c+\\" col\\"+p,b.innerHTML=r.format(T),b.setAttribute(\\"data-value\\",T),y.appendChild(b));C=e.getAggregator(g,[]),T=C.value(),b=document.createElement(\\"td\\"),b.className=\\"pvtTotal rowTotal\\",b.innerHTML=C.format(T),b.setAttribute(\\"data-value\\",T),b.setAttribute(\\"data-for\\",\\"row\\"+c),y.appendChild(b),d.appendChild(y)}y=document.createElement(\\"tr\\"),A=document.createElement(\\"th\\"),A.className=\\"pvtTotalLabel\\",A.innerHTML=n.localeStrings.totals,A.setAttribute(\\"colspan\\",f.length+(0===i.length?0:1)),y.appendChild(A);for(p in u)a.call(u,p)&&(s=u[p],C=e.getAggregator([],s),T=C.value(),b=document.createElement(\\"td\\"),b.className=\\"pvtTotal colTotal\\",b.innerHTML=C.format(T),b.setAttribute(\\"data-value\\",T),b.setAttribute(\\"data-for\\",\\"col\\"+p),y.appendChild(b));return C=e.getAggregator([],[]),T=C.value(),b=document.createElement(\\"td\\"),b.className=\\"pvtGrandTotal\\",b.innerHTML=C.format(T),b.setAttribute(\\"data-value\\",T),y.appendChild(b),d.appendChild(y),d.setAttribute(\\"data-numrows\\",m.length),d.setAttribute(\\"data-numcols\\",u.length),d},t.fn.pivot=function(e,n){var r,a,i,u,l;r={cols:[],rows:[],vals:[],filter:function(){return!0},aggregator:s.count()(),aggregatorName:\\"Count\\",sorters:function(){},derivedAttributes:{},renderer:m,rendererOptions:null,localeStrings:h.en.localeStrings},n=t.extend(r,n),u=null;try{i=new o(e,n);try{u=n.renderer(i,n.rendererOptions)}catch(c){a=c,\\"undefined\\"!=typeof console&&null!==console&&console.error(a.stack),u=t(\\"<span>\\").html(n.localeStrings.renderError)}}catch(c){a=c,\\"undefined\\"!=typeof console&&null!==console&&console.error(a.stack),u=t(\\"<span>\\").html(n.localeStrings.computeError)}for(l=this[0];l.hasChildNodes();)l.removeChild(l.lastChild);return this.append(u)},t.fn.pivotUI=function(n,r,i,s){var u,l,c,d,g,m,v,b,A,C,y,w,T,N,S,x,F,M,E,L,k,D,R,I,O,K,q,H,U,V,j,B,P,J,_,z,Q,W,Y,Z;null==i&&(i=!1),null==s&&(s=\\"en\\"),v={derivedAttributes:{},aggregators:h[s].aggregators,renderers:h[s].renderers,hiddenAttributes:[],menuLimit:200,cols:[],rows:[],vals:[],exclusions:{},unusedAttrsVertical:85,autoSortUnusedAttrs:!1,rendererOptions:{localeStrings:h[s].localeStrings},onRefresh:null,filter:function(){return!0},sorters:function(){},localeStrings:h[s].localeStrings},A=this.data(\\"pivotUIOptions\\"),k=null==A||i?t.extend(v,r):A;try{n=o.convertToArray(n),J=function(){var t,e;t=n[0],e=[];for(T in t)a.call(t,T)&&e.push(T);return e}(),I=k.derivedAttributes;for(g in I)a.call(I,g)&&e.call(J,g)<0&&J.push(g);for(d={},N=0,S=J.length;S>N;N++)Z=J[N],d[Z]={};o.forEachRecord(n,k.derivedAttributes,function(t){var e,n,r;n=[];for(T in t)a.call(t,T)&&(r=t[T],k.filter(t)&&(null==r&&(r=\\"null\\"),null==(e=d[T])[r]&&(e[r]=0),n.push(d[T][r]++)));return n}),Q=t(\\"<table>\\",{\\"class\\":\\"pvtUi\\"}).attr(\\"cellpadding\\",5),B=t(\\"<td>\\"),j=t(\\"<select>\\").addClass(\\"pvtRenderer\\").appendTo(B).bind(\\"change\\",function(){return U()}),O=k.renderers;for(Z in O)a.call(O,Z)&&t(\\"<option>\\").val(Z).html(Z).appendTo(j);if(m=t(\\"<td>\\").addClass(\\"pvtAxisContainer pvtUnused\\"),P=function(){var t,n,r;for(r=[],n=0,t=J.length;t>n;n++)g=J[n],e.call(k.hiddenAttributes,g)<0&&r.push(g);return r}(),Y=!1,W=\\"auto\\"===k.unusedAttrsVertical?120:parseInt(k.unusedAttrsVertical),!isNaN(W)){for(c=0,E=0,x=P.length;x>E;E++)u=P[E],c+=u.length;Y=c>W}m.addClass(k.unusedAttrsVertical===!0||Y?\\"pvtVertList\\":\\"pvtHorizList\\"),C=function(n){var r,a,o,i,s,u,l,c,h,f,g,v,b,A,C;if(l=function(){var t;t=[];for(T in d[n])t.push(T);return t}(),u=!1,C=t(\\"<div>\\").addClass(\\"pvtFilterBox\\").hide(),C.append(t(\\"<h4>\\").text(n+\\" (\\"+l.length+\\")\\")),l.length>k.menuLimit)C.append(t(\\"<p>\\").html(k.localeStrings.tooMany));else for(a=t(\\"<p>\\").appendTo(C),a.append(t(\\"<button>\\",{type:\\"button\\"}).html(k.localeStrings.selectAll).bind(\\"click\\",function(){return C.find(\\"input:visible\\").prop(\\"checked\\",!0)})),a.append(t(\\"<button>\\",{type:\\"button\\"}).html(k.localeStrings.selectNone).bind(\\"click\\",function(){return C.find(\\"input:visible\\").prop(\\"checked\\",!1)})),a.append(t(\\"<br>\\")),a.append(t(\\"<input>\\",{type:\\"text\\",placeholder:k.localeStrings.filterResults,\\"class\\":\\"pvtSearch\\"}).bind(\\"keyup\\",function(){var e;return e=t(this).val().toLowerCase(),C.find(\\".pvtCheckContainer p\\").each(function(){var n;return n=t(this).text().toLowerCase().indexOf(e),-1!==n?t(this).show():t(this).hide()})})),o=t(\\"<div>\\").addClass(\\"pvtCheckContainer\\").appendTo(C),f=l.sort(p(k.sorters,n)),h=0,c=f.length;c>h;h++)T=f[h],A=d[n][T],i=t(\\"<label>\\"),s=k.exclusions[n]?e.call(k.exclusions[n],T)>=0:!1,u||(u=s),t(\\"<input>\\").attr(\\"type\\",\\"checkbox\\").addClass(\\"pvtFilter\\").attr(\\"checked\\",!s).data(\\"filter\\",[n,T]).appendTo(i),i.append(t(\\"<span>\\").html(T)),i.append(t(\\"<span>\\").text(\\" (\\"+A+\\")\\")),o.append(t(\\"<p>\\").append(i));return b=function(){var t;return t=C.find(\\"[type=\'checkbox\']\\").length-C.find(\\"[type=\'checkbox\']:checked\\").length,t>0?r.addClass(\\"pvtFilteredAttribute\\"):r.removeClass(\\"pvtFilteredAttribute\\"),l.length>k.menuLimit?C.toggle():C.toggle(0,U)},t(\\"<p>\\").appendTo(C).append(t(\\"<button>\\",{type:\\"button\\"}).text(\\"OK\\").bind(\\"click\\",b)),g=function(t){return C.css({left:t.pageX,top:t.pageY}).toggle(),C.find(\\".pvtSearch\\").val(\\"\\"),C.find(\\".pvtCheckContainer p\\").show()},v=t(\\"<span>\\").addClass(\\"pvtTriangle\\").html(\\" &#x25BE;\\").bind(\\"click\\",g),r=t(\\"<li>\\").addClass(\\"axis_\\"+y).append(t(\\"<span>\\").addClass(\\"pvtAttr\\").text(n).data(\\"attrName\\",n).append(v)),u&&r.addClass(\\"pvtFilteredAttribute\\"),m.append(r).append(C),r.bind(\\"dblclick\\",g)};for(y in P)a.call(P,y)&&(g=P[y],C(g));_=t(\\"<tr>\\").appendTo(Q),l=t(\\"<select>\\").addClass(\\"pvtAggregator\\").bind(\\"change\\",function(){return U()}),K=k.aggregators;for(Z in K)a.call(K,Z)&&l.append(t(\\"<option>\\").val(Z).html(Z));for(t(\\"<td>\\").addClass(\\"pvtVals\\").appendTo(_).append(l).append(t(\\"<br>\\")),t(\\"<td>\\").addClass(\\"pvtAxisContainer pvtHorizList pvtCols\\").appendTo(_),z=t(\\"<tr>\\").appendTo(Q),z.append(t(\\"<td>\\").addClass(\\"pvtAxisContainer pvtRows\\").attr(\\"valign\\",\\"top\\")),D=t(\\"<td>\\").attr(\\"valign\\",\\"top\\").addClass(\\"pvtRendererArea\\").appendTo(z),k.unusedAttrsVertical===!0||Y?(Q.find(\\"tr:nth-child(1)\\").prepend(B),Q.find(\\"tr:nth-child(2)\\").prepend(m)):Q.prepend(t(\\"<tr>\\").append(B).append(m)),this.html(Q),q=k.cols,L=0,F=q.length;F>L;L++)Z=q[L],this.find(\\".pvtCols\\").append(this.find(\\".axis_\\"+t.inArray(Z,P)));for(H=k.rows,R=0,M=H.length;M>R;R++)Z=H[R],this.find(\\".pvtRows\\").append(this.find(\\".axis_\\"+t.inArray(Z,P)));null!=k.aggregatorName&&this.find(\\".pvtAggregator\\").val(k.aggregatorName),null!=k.rendererName&&this.find(\\".pvtRenderer\\").val(k.rendererName),w=!0,V=function(r){return function(){var a,o,i,s,u,c,p,h,d,g,m,v,b,A,C;if(v={derivedAttributes:k.derivedAttributes,localeStrings:k.localeStrings,rendererOptions:k.rendererOptions,sorters:k.sorters,cols:[],rows:[]},c=null!=(d=k.aggregators[l.val()]([])().numInputs)?d:0,C=[],r.find(\\".pvtRows li span.pvtAttr\\").each(function(){return v.rows.push(t(this).data(\\"attrName\\"))}),r.find(\\".pvtCols li span.pvtAttr\\").each(function(){return v.cols.push(t(this).data(\\"attrName\\"))}),r.find(\\".pvtVals select.pvtAttrDropdown\\").each(function(){return 0===c?t(this).remove():(c--,\\"\\"!==t(this).val()?C.push(t(this).val()):void 0)}),0!==c)for(h=r.find(\\".pvtVals\\"),Z=m=0,g=c;g>=0?g>m:m>g;Z=g>=0?++m:--m){for(u=t(\\"<select>\\").addClass(\\"pvtAttrDropdown\\").append(t(\\"<option>\\")).bind(\\"change\\",function(){return U()}),b=0,s=P.length;s>b;b++)a=P[b],u.append(t(\\"<option>\\").val(a).text(a));h.append(u)}return w&&(C=k.vals,y=0,r.find(\\".pvtVals select.pvtAttrDropdown\\").each(function(){return t(this).val(C[y]),y++}),w=!1),v.aggregatorName=l.val(),v.vals=C,v.aggregator=k.aggregators[l.val()](C),v.renderer=k.renderers[j.val()],o={},r.find(\\"input.pvtFilter\\").not(\\":checked\\").each(function(){var e;return e=t(this).data(\\"filter\\"),null!=o[e[0]]?o[e[0]].push(e[1]):o[e[0]]=[e[1]]}),i={},r.find(\\"input.pvtFilter:checked\\").each(function(){var e;return e=t(this).data(\\"filter\\"),null!=o[e[0]]?null!=i[e[0]]?i[e[0]].push(e[1]):i[e[0]]=[e[1]]:void 0}),v.filter=function(t){var n,r;if(!k.filter(t))return!1;for(T in o)if(n=o[T],r=\\"\\"+t[T],e.call(n,r)>=0)return!1;return!0},D.pivot(n,v),p=t.extend(k,{cols:v.cols,rows:v.rows,vals:C,exclusions:o,inclusionsInfo:i,aggregatorName:l.val(),rendererName:j.val()}),r.data(\\"pivotUIOptions\\",p),k.autoSortUnusedAttrs&&(A=r.find(\\"td.pvtUnused.pvtAxisContainer\\"),t(A).children(\\"li\\").sort(function(e,n){return f(t(e).text(),t(n).text())}).appendTo(A)),D.css(\\"opacity\\",1),null!=k.onRefresh?k.onRefresh(p):void 0}}(this),U=function(t){return function(){return D.css(\\"opacity\\",.5),setTimeout(V,10)}}(this),U(),this.find(\\".pvtAxisContainer\\").sortable({update:function(t,e){return null==e.sender?U():void 0},connectWith:this.find(\\".pvtAxisContainer\\"),items:\\"li\\",placeholder:\\"pvtPlaceholder\\"})}catch($){b=$,\\"undefined\\"!=typeof console&&null!==console&&console.error(b.stack),this.html(k.localeStrings.uiRenderError)}return this},t.fn.heatmap=function(e){var n,r,a,o,i,s,u,l,c,p;switch(null==e&&(e=\\"heatmap\\"),l=this.data(\\"numrows\\"),u=this.data(\\"numcols\\"),n=function(t,e,n){var r;return r=function(){switch(t){case\\"red\\":return function(t){return\\"ff\\"+t+t};case\\"green\\":return function(t){return t+\\"ff\\"+t};case\\"blue\\":return function(t){return\\"\\"+t+t+\\"ff\\"}}}(),function(t){var a,o;return o=255-Math.round(255*(t-e)/(n-e)),a=o.toString(16).split(\\".\\")[0],1===a.length&&(a=0+a),r(a)}},r=function(e){return function(r,a){var o,i,s;return i=function(n){return e.find(r).each(function(){var e;return e=t(this).data(\\"value\\"),null!=e&&isFinite(e)?n(e,t(this)):void 0})},s=[],i(function(t){return s.push(t)}),o=n(a,Math.min.apply(Math,s),Math.max.apply(Math,s)),i(function(t,e){return e.css(\\"background-color\\",\\"#\\"+o(t))})}}(this),e){case\\"heatmap\\":r(\\".pvtVal\\",\\"red\\");break;case\\"rowheatmap\\":for(a=i=0,c=l;c>=0?c>i:i>c;a=c>=0?++i:--i)r(\\".pvtVal.row\\"+a,\\"red\\");break;case\\"colheatmap\\":for(o=s=0,p=u;p>=0?p>s:s>p;o=p>=0?++s:--s)r(\\".pvtVal.col\\"+o,\\"red\\")}return r(\\".pvtTotal.rowTotal\\",\\"red\\"),r(\\".pvtTotal.colTotal\\",\\"red\\"),this},t.fn.barchart=function(){var e,n,r,a,o,i;for(o=this.data(\\"numrows\\"),a=this.data(\\"numcols\\"),e=function(e){return function(n){var r,a,o,i;return r=function(r){return e.find(n).each(function(){var e;return e=t(this).data(\\"value\\"),null!=e&&isFinite(e)?r(e,t(this)):void 0})},i=[],r(function(t){return i.push(t)}),a=Math.max.apply(Math,i),o=function(t){return 100*t/(1.4*a)},r(function(e,n){var r,a;return r=n.text(),a=t(\\"<div>\\").css({position:\\"relative\\",height:\\"55px\\"}),a.append(t(\\"<div>\\").css({position:\\"absolute\\",bottom:0,left:0,right:0,height:o(e)+\\"%\\",\\"background-color\\":\\"gray\\"})),a.append(t(\\"<div>\\").text(r).css({position:\\"relative\\",\\"padding-left\\":\\"5px\\",\\"padding-right\\":\\"5px\\"})),n.css({padding:0,\\"padding-top\\":\\"5px\\",\\"text-align\\":\\"center\\"}).html(a)})}}(this),n=r=0,i=o;i>=0?i>r:r>i;n=i>=0?++r:--r)e(\\".pvtVal.row\\"+n);return e(\\".pvtTotal.colTotal\\"),this}})}).call(this);\\n//# sourceMappingURL=pivot.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626240.95</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function(){var t,e=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},n=[].slice,r=function(t,e){return function(){return t.apply(e,arguments)}},a={}.hasOwnProperty;(t=function(t){return"object"==typeof exports&&"object"==typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){var o,i,s,u,l,c,p,h,d,f,g,m,v,b,A,C,y,w;return i=function(t,e,n){var r,a,o,i;for(t+="",a=t.split("."),o=a[0],i=a.length>1?n+a[1]:"",r=/(\\d+)(\\d{3})/;r.test(o);)o=o.replace(r,"$1"+e+"$2");return o+i},g=function(e){var n;return n={digitsAfterDecimal:2,scaler:1,thousandsSep:",",decimalSep:".",prefix:"",suffix:"",showZero:!1},e=t.extend(n,e),function(t){var n;return isNaN(t)||!isFinite(t)?"":0!==t||e.showZero?(n=i((e.scaler*t).toFixed(e.digitsAfterDecimal),e.thousandsSep,e.decimalSep),""+e.prefix+n+e.suffix):""}},A=g(),C=g({digitsAfterDecimal:0}),y=g({digitsAfterDecimal:1,scaler:100,suffix:"%"}),s={count:function(t){return null==t&&(t=C),function(){return function(e,n,r){return{count:0,push:function(){return this.count++},value:function(){return this.count},format:t}}}},countUnique:function(t){return null==t&&(t=C),function(n){var r;return r=n[0],function(n,a,o){return{uniq:[],push:function(t){var n;return n=t[r],e.call(this.uniq,n)<0?this.uniq.push(t[r]):void 0},value:function(){return this.uniq.length},format:t,numInputs:null!=r?0:1}}}},listUnique:function(t){return function(n){var r;return r=n[0],function(n,a,o){return{uniq:[],push:function(t){var n;return n=t[r],e.call(this.uniq,n)<0?this.uniq.push(t[r]):void 0},value:function(){return this.uniq.join(t)},format:function(t){return t},numInputs:null!=r?0:1}}}},sum:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{sum:0,push:function(t){return isNaN(parseFloat(t[n]))?void 0:this.sum+=parseFloat(t[n])},value:function(){return this.sum},format:t,numInputs:null!=n?0:1}}}},min:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{val:null,push:function(t){var e,r;return r=parseFloat(t[n]),isNaN(r)?void 0:this.val=Math.min(r,null!=(e=this.val)?e:r)},value:function(){return this.val},format:t,numInputs:null!=n?0:1}}}},max:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{val:null,push:function(t){var e,r;return r=parseFloat(t[n]),isNaN(r)?void 0:this.val=Math.max(r,null!=(e=this.val)?e:r)},value:function(){return this.val},format:t,numInputs:null!=n?0:1}}}},average:function(t){return null==t&&(t=A),function(e){var n;return n=e[0],function(e,r,a){return{sum:0,len:0,push:function(t){return isNaN(parseFloat(t[n]))?void 0:(this.sum+=parseFloat(t[n]),this.len++)},value:function(){return this.sum/this.len},format:t,numInputs:null!=n?0:1}}}},sumOverSum:function(t){return null==t&&(t=A),function(e){var n,r;return r=e[0],n=e[1],function(e,a,o){return{sumNum:0,sumDenom:0,push:function(t){return isNaN(parseFloat(t[r]))||(this.sumNum+=parseFloat(t[r])),isNaN(parseFloat(t[n]))?void 0:this.sumDenom+=parseFloat(t[n])},value:function(){return this.sumNum/this.sumDenom},format:t,numInputs:null!=r&&null!=n?0:2}}}},sumOverSumBound80:function(t,e){return null==t&&(t=!0),null==e&&(e=A),function(n){var r,a;return a=n[0],r=n[1],function(n,o,i){return{sumNum:0,sumDenom:0,push:function(t){return isNaN(parseFloat(t[a]))||(this.sumNum+=parseFloat(t[a])),isNaN(parseFloat(t[r]))?void 0:this.sumDenom+=parseFloat(t[r])},value:function(){var e;return e=t?1:-1,(.821187207574908/this.sumDenom+this.sumNum/this.sumDenom+1.2815515655446004*e*Math.sqrt(.410593603787454/(this.sumDenom*this.sumDenom)+this.sumNum*(1-this.sumNum/this.sumDenom)/(this.sumDenom*this.sumDenom)))/(1+1.642374415149816/this.sumDenom)},format:e,numInputs:null!=a&&null!=r?0:2}}}},fractionOf:function(t,e,r){return null==e&&(e="total"),null==r&&(r=y),function(){var a;return a=1<=arguments.length?n.call(arguments,0):[],function(n,o,i){return{selector:{total:[[],[]],row:[o,[]],col:[[],i]}[e],inner:t.apply(null,a)(n,o,i),push:function(t){return this.inner.push(t)},format:r,value:function(){return this.inner.value()/n.getAggregator.apply(n,this.selector).inner.value()},numInputs:t.apply(null,a)().numInputs}}}}},u=function(t){return{Count:t.count(C),"Count Unique Values":t.countUnique(C),"List Unique Values":t.listUnique(", "),Sum:t.sum(A),"Integer Sum":t.sum(C),Average:t.average(A),Minimum:t.min(A),Maximum:t.max(A),"Sum over Sum":t.sumOverSum(A),"80% Upper Bound":t.sumOverSumBound80(!0,A),"80% Lower Bound":t.sumOverSumBound80(!1,A),"Sum as Fraction of Total":t.fractionOf(t.sum(),"total",y),"Sum as Fraction of Rows":t.fractionOf(t.sum(),"row",y),"Sum as Fraction of Columns":t.fractionOf(t.sum(),"col",y),"Count as Fraction of Total":t.fractionOf(t.count(),"total",y),"Count as Fraction of Rows":t.fractionOf(t.count(),"row",y),"Count as Fraction of Columns":t.fractionOf(t.count(),"col",y)}}(s),v={Table:function(t,e){return m(t,e)},"Table Barchart":function(e,n){return t(m(e,n)).barchart()},Heatmap:function(e,n){return t(m(e,n)).heatmap()},"Row Heatmap":function(e,n){return t(m(e,n)).heatmap("rowheatmap")},"Col Heatmap":function(e,n){return t(m(e,n)).heatmap("colheatmap")}},h={en:{aggregators:u,renderers:v,localeStrings:{renderError:"An error occurred rendering the PivotTable results.",computeError:"An error occurred computing the PivotTable results.",uiRenderError:"An error occurred rendering the PivotTable UI.",selectAll:"Select All",selectNone:"Select None",tooMany:"(too many to list)",filterResults:"Filter results",totals:"Totals",vs:"vs",by:"by"}}},d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],l=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],w=function(t){return("0"+t).substr(-2,2)},c={bin:function(t,e){return function(n){return n[t]-n[t]%e}},dateFormat:function(t,e,n,r,a){var o;return null==n&&(n=!1),null==r&&(r=d),null==a&&(a=l),o=n?"UTC":"",function(n){var i;return i=new Date(Date.parse(n[t])),isNaN(i)?"":e.replace(/%(.)/g,function(t,e){switch(e){case"y":return i["get"+o+"FullYear"]();case"m":return w(i["get"+o+"Month"]()+1);case"n":return r[i["get"+o+"Month"]()];case"d":return w(i["get"+o+"Date"]());case"w":return a[i["get"+o+"Day"]()];case"x":return i["get"+o+"Day"]();case"H":return w(i["get"+o+"Hours"]());case"M":return w(i["get"+o+"Minutes"]());case"S":return w(i["get"+o+"Seconds"]());default:return"%"+e}})}}},f=function(t){return function(t,e){var n,r,a,o,i,s,u;if(s=/(\\d+)|(\\D+)/g,i=/\\d/,u=/^0/,"number"==typeof t||"number"==typeof e)return isNaN(t)?1:isNaN(e)?-1:t-e;if(n=String(t).toLowerCase(),a=String(e).toLowerCase(),n===a)return 0;if(!i.test(n)||!i.test(a))return n>a?1:-1;for(n=n.match(s),a=a.match(s);n.length&&a.length;)if(r=n.shift(),o=a.shift(),r!==o)return i.test(r)&&i.test(o)?r.replace(u,".0")-o.replace(u,".0"):r>o?1:-1;return n.length-a.length}}(this),b=function(t){var e,n,r;n={};for(e in t)r=t[e],n[r]=e;return function(t,e){return null!=n[t]&&null!=n[e]?n[t]-n[e]:null!=n[t]?-1:null!=n[e]?1:f(t,e)}},p=function(e,n){var r;return r=e(n),t.isFunction(r)?r:f},t.pivotUtilities={aggregatorTemplates:s,aggregators:u,renderers:v,derivers:c,locales:h,naturalSort:f,numberFormat:g,sortAs:b},o=function(){function e(t,n){this.getAggregator=r(this.getAggregator,this),this.getRowKeys=r(this.getRowKeys,this),this.getColKeys=r(this.getColKeys,this),this.sortKeys=r(this.sortKeys,this),this.arrSort=r(this.arrSort,this),this.aggregator=n.aggregator,this.aggregatorName=n.aggregatorName,this.colAttrs=n.cols,this.rowAttrs=n.rows,this.valAttrs=n.vals,this.sorters=n.sorters,this.tree={},this.rowKeys=[],this.colKeys=[],this.rowTotals={},this.colTotals={},this.allTotal=this.aggregator(this,[],[]),this.sorted=!1,e.forEachRecord(t,n.derivedAttributes,function(t){return function(e){return n.filter(e)?t.processRecord(e):void 0}}(this))}return e.forEachRecord=function(e,n,r){var o,i,s,u,l,c,p,h,d,f,g,m;if(o=t.isEmptyObject(n)?r:function(t){var e,a,o;for(e in n)o=n[e],t[e]=null!=(a=o(t))?a:t[e];return r(t)},t.isFunction(e))return e(o);if(t.isArray(e)){if(t.isArray(e[0])){f=[];for(s in e)if(a.call(e,s)&&(i=e[s],s>0)){h={},d=e[0];for(u in d)a.call(d,u)&&(l=d[u],h[l]=i[u]);f.push(o(h))}return f}for(g=[],c=0,p=e.length;p>c;c++)h=e[c],g.push(o(h));return g}if(e instanceof jQuery)return m=[],t("thead > tr > th",e).each(function(e){return m.push(t(this).text())}),t("tbody > tr",e).each(function(e){return h={},t("td",this).each(function(e){return h[m[e]]=t(this).html()}),o(h)});throw new Error("unknown input format")},e.convertToArray=function(t){var n;return n=[],e.forEachRecord(t,{},function(t){return n.push(t)}),n},e.prototype.arrSort=function(t){var e,n;return n=function(){var n,r,a;for(a=[],n=0,r=t.length;r>n;n++)e=t[n],a.push(p(this.sorters,e));return a}.call(this),function(t,e){var r,a,o;for(a in n)if(o=n[a],r=o(t[a],e[a]),0!==r)return r;return 0}},e.prototype.sortKeys=function(){return this.sorted?void 0:(this.sorted=!0,this.rowKeys.sort(this.arrSort(this.rowAttrs)),this.colKeys.sort(this.arrSort(this.colAttrs)))},e.prototype.getColKeys=function(){return this.sortKeys(),this.colKeys},e.prototype.getRowKeys=function(){return this.sortKeys(),this.rowKeys},e.prototype.processRecord=function(t){var e,n,r,a,o,i,s,u,l,c,p,h,d;for(e=[],h=[],u=this.colAttrs,a=0,o=u.length;o>a;a++)d=u[a],e.push(null!=(l=t[d])?l:"null");for(c=this.rowAttrs,s=0,i=c.length;i>s;s++)d=c[s],h.push(null!=(p=t[d])?p:"null");return r=h.join(String.fromCharCode(0)),n=e.join(String.fromCharCode(0)),this.allTotal.push(t),0!==h.length&&(this.rowTotals[r]||(this.rowKeys.push(h),this.rowTotals[r]=this.aggregator(this,h,[])),this.rowTotals[r].push(t)),0!==e.length&&(this.colTotals[n]||(this.colKeys.push(e),this.colTotals[n]=this.aggregator(this,[],e)),this.colTotals[n].push(t)),0!==e.length&&0!==h.length?(this.tree[r]||(this.tree[r]={}),this.tree[r][n]||(this.tree[r][n]=this.aggregator(this,h,e)),this.tree[r][n].push(t)):void 0},e.prototype.getAggregator=function(t,e){var n,r,a;return a=t.join(String.fromCharCode(0)),r=e.join(String.fromCharCode(0)),n=0===t.length&&0===e.length?this.allTotal:0===t.length?this.colTotals[r]:0===e.length?this.rowTotals[a]:this.tree[a][r],null!=n?n:{value:function(){return null},format:function(){return""}}},e}(),m=function(e,n){var r,o,i,s,u,l,c,p,h,d,f,g,m,v,b,A,C,y,w,T,N;l={localeStrings:{totals:"Totals"}},n=t.extend(l,n),i=e.colAttrs,f=e.rowAttrs,m=e.getRowKeys(),u=e.getColKeys(),d=document.createElement("table"),d.className="pvtTable",v=function(t,e,n){var r,a,o,i,s,u,l,c;if(0!==e){for(i=!0,c=r=0,s=n;s>=0?s>=r:r>=s;c=s>=0?++r:--r)t[e-1][c]!==t[e][c]&&(i=!1);if(i)return-1}for(a=0;e+a<t.length;){for(l=!1,c=o=0,u=n;u>=0?u>=o:o>=u;c=u>=0?++o:--o)t[e][c]!==t[e+a][c]&&(l=!0);if(l)break;a++}return a};for(p in i)if(a.call(i,p)){o=i[p],y=document.createElement("tr"),0===parseInt(p)&&0!==f.length&&(A=document.createElement("th"),A.setAttribute("colspan",f.length),A.setAttribute("rowspan",i.length),y.appendChild(A)),A=document.createElement("th"),A.className="pvtAxisLabel",A.innerHTML=o,y.appendChild(A);for(c in u)a.call(u,c)&&(s=u[c],N=v(u,parseInt(c),parseInt(p)),-1!==N&&(A=document.createElement("th"),A.className="pvtColLabel",A.innerHTML=s[p],A.setAttribute("colspan",N),parseInt(p)===i.length-1&&0!==f.length&&A.setAttribute("rowspan",2),y.appendChild(A)));0===parseInt(p)&&(A=document.createElement("th"),A.className="pvtTotalLabel",A.innerHTML=n.localeStrings.totals,A.setAttribute("rowspan",i.length+(0===f.length?0:1)),y.appendChild(A)),d.appendChild(y)}if(0!==f.length){y=document.createElement("tr");for(c in f)a.call(f,c)&&(h=f[c],A=document.createElement("th"),A.className="pvtAxisLabel",A.innerHTML=h,y.appendChild(A));A=document.createElement("th"),0===i.length&&(A.className="pvtTotalLabel",A.innerHTML=n.localeStrings.totals),y.appendChild(A),d.appendChild(y)}for(c in m)if(a.call(m,c)){g=m[c],y=document.createElement("tr");for(p in g)a.call(g,p)&&(w=g[p],N=v(m,parseInt(c),parseInt(p)),-1!==N&&(A=document.createElement("th"),A.className="pvtRowLabel",A.innerHTML=w,A.setAttribute("rowspan",N),parseInt(p)===f.length-1&&0!==i.length&&A.setAttribute("colspan",2),y.appendChild(A)));for(p in u)a.call(u,p)&&(s=u[p],r=e.getAggregator(g,s),T=r.value(),b=document.createElement("td"),b.className="pvtVal row"+c+" col"+p,b.innerHTML=r.format(T),b.setAttribute("data-value",T),y.appendChild(b));C=e.getAggregator(g,[]),T=C.value(),b=document.createElement("td"),b.className="pvtTotal rowTotal",b.innerHTML=C.format(T),b.setAttribute("data-value",T),b.setAttribute("data-for","row"+c),y.appendChild(b),d.appendChild(y)}y=document.createElement("tr"),A=document.createElement("th"),A.className="pvtTotalLabel",A.innerHTML=n.localeStrings.totals,A.setAttribute("colspan",f.length+(0===i.length?0:1)),y.appendChild(A);for(p in u)a.call(u,p)&&(s=u[p],C=e.getAggregator([],s),T=C.value(),b=document.createElement("td"),b.className="pvtTotal colTotal",b.innerHTML=C.format(T),b.setAttribute("data-value",T),b.setAttribute("data-for","col"+p),y.appendChild(b));return C=e.getAggregator([],[]),T=C.value(),b=document.createElement("td"),b.className="pvtGrandTotal",b.innerHTML=C.format(T),b.setAttribute("data-value",T),y.appendChild(b),d.appendChild(y),d.setAttribute("data-numrows",m.length),d.setAttribute("data-numcols",u.length),d},t.fn.pivot=function(e,n){var r,a,i,u,l;r={cols:[],rows:[],vals:[],filter:function(){return!0},aggregator:s.count()(),aggregatorName:"Count",sorters:function(){},derivedAttributes:{},renderer:m,rendererOptions:null,localeStrings:h.en.localeStrings},n=t.extend(r,n),u=null;try{i=new o(e,n);try{u=n.renderer(i,n.rendererOptions)}catch(c){a=c,"undefined"!=typeof console&&null!==console&&console.error(a.stack),u=t("<span>").html(n.localeStrings.renderError)}}catch(c){a=c,"undefined"!=typeof console&&null!==console&&console.error(a.stack),u=t("<span>").html(n.localeStrings.computeError)}for(l=this[0];l.hasChildNodes();)l.removeChild(l.lastChild);return this.append(u)},t.fn.pivotUI=function(n,r,i,s){var u,l,c,d,g,m,v,b,A,C,y,w,T,N,S,x,F,M,E,L,k,D,R,I,O,K,q,H,U,V,j,B,P,J,_,z,Q,W,Y,Z;null==i&&(i=!1),null==s&&(s="en"),v={derivedAttributes:{},aggregators:h[s].aggregators,renderers:h[s].renderers,hiddenAttributes:[],menuLimit:200,cols:[],rows:[],vals:[],exclusions:{},unusedAttrsVertical:85,autoSortUnusedAttrs:!1,rendererOptions:{localeStrings:h[s].localeStrings},onRefresh:null,filter:function(){return!0},sorters:function(){},localeStrings:h[s].localeStrings},A=this.data("pivotUIOptions"),k=null==A||i?t.extend(v,r):A;try{n=o.convertToArray(n),J=function(){var t,e;t=n[0],e=[];for(T in t)a.call(t,T)&&e.push(T);return e}(),I=k.derivedAttributes;for(g in I)a.call(I,g)&&e.call(J,g)<0&&J.push(g);for(d={},N=0,S=J.length;S>N;N++)Z=J[N],d[Z]={};o.forEachRecord(n,k.derivedAttributes,function(t){var e,n,r;n=[];for(T in t)a.call(t,T)&&(r=t[T],k.filter(t)&&(null==r&&(r="null"),null==(e=d[T])[r]&&(e[r]=0),n.push(d[T][r]++)));return n}),Q=t("<table>",{"class":"pvtUi"}).attr("cellpadding",5),B=t("<td>"),j=t("<select>").addClass("pvtRenderer").appendTo(B).bind("change",function(){return U()}),O=k.renderers;for(Z in O)a.call(O,Z)&&t("<option>").val(Z).html(Z).appendTo(j);if(m=t("<td>").addClass("pvtAxisContainer pvtUnused"),P=function(){var t,n,r;for(r=[],n=0,t=J.length;t>n;n++)g=J[n],e.call(k.hiddenAttributes,g)<0&&r.push(g);return r}(),Y=!1,W="auto"===k.unusedAttrsVertical?120:parseInt(k.unusedAttrsVertical),!isNaN(W)){for(c=0,E=0,x=P.length;x>E;E++)u=P[E],c+=u.length;Y=c>W}m.addClass(k.unusedAttrsVertical===!0||Y?"pvtVertList":"pvtHorizList"),C=function(n){var r,a,o,i,s,u,l,c,h,f,g,v,b,A,C;if(l=function(){var t;t=[];for(T in d[n])t.push(T);return t}(),u=!1,C=t("<div>").addClass("pvtFilterBox").hide(),C.append(t("<h4>").text(n+" ("+l.length+")")),l.length>k.menuLimit)C.append(t("<p>").html(k.localeStrings.tooMany));else for(a=t("<p>").appendTo(C),a.append(t("<button>",{type:"button"}).html(k.localeStrings.selectAll).bind("click",function(){return C.find("input:visible").prop("checked",!0)})),a.append(t("<button>",{type:"button"}).html(k.localeStrings.selectNone).bind("click",function(){return C.find("input:visible").prop("checked",!1)})),a.append(t("<br>")),a.append(t("<input>",{type:"text",placeholder:k.localeStrings.filterResults,"class":"pvtSearch"}).bind("keyup",function(){var e;return e=t(this).val().toLowerCase(),C.find(".pvtCheckContainer p").each(function(){var n;return n=t(this).text().toLowerCase().indexOf(e),-1!==n?t(this).show():t(this).hide()})})),o=t("<div>").addClass("pvtCheckContainer").appendTo(C),f=l.sort(p(k.sorters,n)),h=0,c=f.length;c>h;h++)T=f[h],A=d[n][T],i=t("<label>"),s=k.exclusions[n]?e.call(k.exclusions[n],T)>=0:!1,u||(u=s),t("<input>").attr("type","checkbox").addClass("pvtFilter").attr("checked",!s).data("filter",[n,T]).appendTo(i),i.append(t("<span>").html(T)),i.append(t("<span>").text(" ("+A+")")),o.append(t("<p>").append(i));return b=function(){var t;return t=C.find("[type=\'checkbox\']").length-C.find("[type=\'checkbox\']:checked").length,t>0?r.addClass("pvtFilteredAttribute"):r.removeClass("pvtFilteredAttribute"),l.length>k.menuLimit?C.toggle():C.toggle(0,U)},t("<p>").appendTo(C).append(t("<button>",{type:"button"}).text("OK").bind("click",b)),g=function(t){return C.css({left:t.pageX,top:t.pageY}).toggle(),C.find(".pvtSearch").val(""),C.find(".pvtCheckContainer p").show()},v=t("<span>").addClass("pvtTriangle").html(" &#x25BE;").bind("click",g),r=t("<li>").addClass("axis_"+y).append(t("<span>").addClass("pvtAttr").text(n).data("attrName",n).append(v)),u&&r.addClass("pvtFilteredAttribute"),m.append(r).append(C),r.bind("dblclick",g)};for(y in P)a.call(P,y)&&(g=P[y],C(g));_=t("<tr>").appendTo(Q),l=t("<select>").addClass("pvtAggregator").bind("change",function(){return U()}),K=k.aggregators;for(Z in K)a.call(K,Z)&&l.append(t("<option>").val(Z).html(Z));for(t("<td>").addClass("pvtVals").appendTo(_).append(l).append(t("<br>")),t("<td>").addClass("pvtAxisContainer pvtHorizList pvtCols").appendTo(_),z=t("<tr>").appendTo(Q),z.append(t("<td>").addClass("pvtAxisContainer pvtRows").attr("valign","top")),D=t("<td>").attr("valign","top").addClass("pvtRendererArea").appendTo(z),k.unusedAttrsVertical===!0||Y?(Q.find("tr:nth-child(1)").prepend(B),Q.find("tr:nth-child(2)").prepend(m)):Q.prepend(t("<tr>").append(B).append(m)),this.html(Q),q=k.cols,L=0,F=q.length;F>L;L++)Z=q[L],this.find(".pvtCols").append(this.find(".axis_"+t.inArray(Z,P)));for(H=k.rows,R=0,M=H.length;M>R;R++)Z=H[R],this.find(".pvtRows").append(this.find(".axis_"+t.inArray(Z,P)));null!=k.aggregatorName&&this.find(".pvtAggregator").val(k.aggregatorName),null!=k.rendererName&&this.find(".pvtRenderer").val(k.rendererName),w=!0,V=function(r){return function(){var a,o,i,s,u,c,p,h,d,g,m,v,b,A,C;if(v={derivedAttributes:k.derivedAttributes,localeStrings:k.localeStrings,rendererOptions:k.rendererOptions,sorters:k.sorters,cols:[],rows:[]},c=null!=(d=k.aggregators[l.val()]([])().numInputs)?d:0,C=[],r.find(".pvtRows li span.pvtAttr").each(function(){return v.rows.push(t(this).data("attrName"))}),r.find(".pvtCols li span.pvtAttr").each(function(){return v.cols.push(t(this).data("attrName"))}),r.find(".pvtVals select.pvtAttrDropdown").each(function(){return 0===c?t(this).remove():(c--,""!==t(this).val()?C.push(t(this).val()):void 0)}),0!==c)for(h=r.find(".pvtVals"),Z=m=0,g=c;g>=0?g>m:m>g;Z=g>=0?++m:--m){for(u=t("<select>").addClass("pvtAttrDropdown").append(t("<option>")).bind("change",function(){return U()}),b=0,s=P.length;s>b;b++)a=P[b],u.append(t("<option>").val(a).text(a));h.append(u)}return w&&(C=k.vals,y=0,r.find(".pvtVals select.pvtAttrDropdown").each(function(){return t(this).val(C[y]),y++}),w=!1),v.aggregatorName=l.val(),v.vals=C,v.aggregator=k.aggregators[l.val()](C),v.renderer=k.renderers[j.val()],o={},r.find("input.pvtFilter").not(":checked").each(function(){var e;return e=t(this).data("filter"),null!=o[e[0]]?o[e[0]].push(e[1]):o[e[0]]=[e[1]]}),i={},r.find("input.pvtFilter:checked").each(function(){var e;return e=t(this).data("filter"),null!=o[e[0]]?null!=i[e[0]]?i[e[0]].push(e[1]):i[e[0]]=[e[1]]:void 0}),v.filter=function(t){var n,r;if(!k.filter(t))return!1;for(T in o)if(n=o[T],r=""+t[T],e.call(n,r)>=0)return!1;return!0},D.pivot(n,v),p=t.extend(k,{cols:v.cols,rows:v.rows,vals:C,exclusions:o,inclusionsInfo:i,aggregatorName:l.val(),rendererName:j.val()}),r.data("pivotUIOptions",p),k.autoSortUnusedAttrs&&(A=r.find("td.pvtUnused.pvtAxisContainer"),t(A).children("li").sort(function(e,n){return f(t(e).text(),t(n).text())}).appendTo(A)),D.css("opacity",1),null!=k.onRefresh?k.onRefresh(p):void 0}}(this),U=function(t){return function(){return D.css("opacity",.5),setTimeout(V,10)}}(this),U(),this.find(".pvtAxisContainer").sortable({update:function(t,e){return null==e.sender?U():void 0},connectWith:this.find(".pvtAxisContainer"),items:"li",placeholder:"pvtPlaceholder"})}catch($){b=$,"undefined"!=typeof console&&null!==console&&console.error(b.stack),this.html(k.localeStrings.uiRenderError)}return this},t.fn.heatmap=function(e){var n,r,a,o,i,s,u,l,c,p;switch(null==e&&(e="heatmap"),l=this.data("numrows"),u=this.data("numcols"),n=function(t,e,n){var r;return r=function(){switch(t){case"red":return function(t){return"ff"+t+t};case"green":return function(t){return t+"ff"+t};case"blue":return function(t){return""+t+t+"ff"}}}(),function(t){var a,o;return o=255-Math.round(255*(t-e)/(n-e)),a=o.toString(16).split(".")[0],1===a.length&&(a=0+a),r(a)}},r=function(e){return function(r,a){var o,i,s;return i=function(n){return e.find(r).each(function(){var e;return e=t(this).data("value"),null!=e&&isFinite(e)?n(e,t(this)):void 0})},s=[],i(function(t){return s.push(t)}),o=n(a,Math.min.apply(Math,s),Math.max.apply(Math,s)),i(function(t,e){return e.css("background-color","#"+o(t))})}}(this),e){case"heatmap":r(".pvtVal","red");break;case"rowheatmap":for(a=i=0,c=l;c>=0?c>i:i>c;a=c>=0?++i:--i)r(".pvtVal.row"+a,"red");break;case"colheatmap":for(o=s=0,p=u;p>=0?p>s:s>p;o=p>=0?++s:--s)r(".pvtVal.col"+o,"red")}return r(".pvtTotal.rowTotal","red"),r(".pvtTotal.colTotal","red"),this},t.fn.barchart=function(){var e,n,r,a,o,i;for(o=this.data("numrows"),a=this.data("numcols"),e=function(e){return function(n){var r,a,o,i;return r=function(r){return e.find(n).each(function(){var e;return e=t(this).data("value"),null!=e&&isFinite(e)?r(e,t(this)):void 0})},i=[],r(function(t){return i.push(t)}),a=Math.max.apply(Math,i),o=function(t){return 100*t/(1.4*a)},r(function(e,n){var r,a;return r=n.text(),a=t("<div>").css({position:"relative",height:"55px"}),a.append(t("<div>").css({position:"absolute",bottom:0,left:0,right:0,height:o(e)+"%","background-color":"gray"})),a.append(t("<div>").text(r).css({position:"relative","padding-left":"5px","padding-right":"5px"})),n.css({padding:0,"padding-top":"5px","text-align":"center"}).html(a)})}}(this),n=r=0,i=o;i>=0?i>r:r>i;n=i>=0?++r:--r)e(".pvtVal.row"+n);return e(".pvtTotal.colTotal"),this}})}).call(this);\n
//# sourceMappingURL=pivot.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>22974</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.pt.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["pivot.pt.coffee"],"names":[],"mappings":"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","file":"pivot.pt.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 r = $.pivotUtilities.renderers\\n gcr = $.pivotUtilities.gchart_renderers\\n d3r = $.pivotUtilities.d3_renderers\\n c3r = $.pivotUtilities.c3_renderers\\n\\n frFmt = nf(thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtPct = nf(digitsAfterDecimal: 2, scaler: 100, suffix: \\"%\\", thousandsSep: \\".\\", decimalSep: \\",\\")\\n\\n $.pivotUtilities.locales.pt = \\n\\n localeStrings:\\n renderError: \\"Ocorreu um error ao renderizar os resultados da Tabela Din&atilde;mica.\\"\\n computeError: \\"Ocorreu um error ao computar os resultados da Tabela Din&atilde;mica.\\"\\n uiRenderError: \\"Ocorreu um error ao renderizar a interface da Tabela Din&atilde;mica.\\"\\n selectAll: \\"Selecionar Tudo\\"\\n selectNone: \\"Selecionar Nenhum\\"\\n tooMany: \\"(demais para listar)\\"\\n filterResults: \\"Filtrar resultados\\"\\n totals: \\"Totais\\"\\n vs: \\"vs\\"\\n by: \\"por\\"\\n\\n aggregators:\\n \\"Contagem\\": tpl.count(frFmtInt)\\n \\"Contagem de Valores &uacute;nicos\\": tpl.countUnique(frFmtInt)\\n \\"Lista de Valores &uacute;nicos\\": tpl.listUnique(\\", \\")\\n \\"Soma\\": tpl.sum(frFmt)\\n \\"Soma de Inteiros\\": tpl.sum(frFmtInt)\\n \\"Média\\": tpl.average(frFmt)\\n \\"Mínimo\\": tpl.min(frFmt)\\n \\"Máximo\\": tpl.max(frFmt)\\n \\"Soma sobre Soma\\": tpl.sumOverSum(frFmt)\\n \\"Limite Superior a 80%\\": tpl.sumOverSumBound80(true, frFmt)\\n \\"Limite Inferior a 80%\\": tpl.sumOverSumBound80(false, frFmt)\\n \\"Soma como Fra&ccedil;&atilde;o do Total\\": tpl.fractionOf(tpl.sum(), \\"total\\", frFmtPct)\\n \\"Soma como Fra&ccedil;&atilde;o da Linha\\": tpl.fractionOf(tpl.sum(), \\"row\\", frFmtPct)\\n \\"Soma como Fra&ccedil;&atilde;o da Coluna\\": tpl.fractionOf(tpl.sum(), \\"col\\", frFmtPct)\\n \\"Contagem como Fra&ccedil;&atilde;o do Total\\": tpl.fractionOf(tpl.count(), \\"total\\", frFmtPct)\\n \\"Contagem como Fra&ccedil;&atilde;o da Linha\\": tpl.fractionOf(tpl.count(), \\"row\\", frFmtPct)\\n \\"Contagem como Fra&ccedil;&atilde;o da Coluna\\": tpl.fractionOf(tpl.count(), \\"col\\", frFmtPct)\\n\\n renderers:\\n \\"Tabela\\": r[\\"Table\\"]\\n \\"Tabela com Barras\\": r[\\"Table Barchart\\"]\\n \\"Mapa de Calor\\": r[\\"Heatmap\\"]\\n \\"Mapa de Calor por Linhas\\": r[\\"Row Heatmap\\"]\\n \\"Mapa de Calor por Colunas\\": r[\\"Col Heatmap\\"]\\n\\n if gcr\\n $.pivotUtilities.locales.pt.gchart_renderers =\\n \\"Gr&aacute;fico de Linhas\\": gcr[\\"Line Chart\\"]\\n \\"Gr&aacute;fico de Barras\\": gcr[\\"Bar Chart\\"]\\n \\"Gr&aacute;fico de Barras Empilhadas\\": gcr[\\"Stacked Bar Chart\\"]\\n \\"Gr&aacute;fico de &Aacute;rea\\": gcr[\\"Area Chart\\"]\\n\\n if d3r\\n $.pivotUtilities.locales.pt.d3_renderers =\\n \\"Mapa de Árvore\\": d3r[\\"Treemap\\"]\\n\\n if c3r\\n $.pivotUtilities.locales.pt.c3_renderers =\\n \\"Gr&aacute;fico de Linhas\\": c3r[\\"Line Chart C3\\"]\\n \\"Gr&aacute;fico de Barras\\": c3r[\\"Bar Chart C3\\"]\\n\\n return $.pivotUtilities.locales.pt\\n"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626249.5</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.pt.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
var c3r, d3r, frFmt, frFmtInt, frFmtPct, gcr, nf, r, tpl;\n
nf = $.pivotUtilities.numberFormat;\n
tpl = $.pivotUtilities.aggregatorTemplates;\n
r = $.pivotUtilities.renderers;\n
gcr = $.pivotUtilities.gchart_renderers;\n
d3r = $.pivotUtilities.d3_renderers;\n
c3r = $.pivotUtilities.c3_renderers;\n
frFmt = nf({\n
thousandsSep: ".",\n
decimalSep: ","\n
});\n
frFmtInt = nf({\n
digitsAfterDecimal: 0,\n
thousandsSep: ".",\n
decimalSep: ","\n
});\n
frFmtPct = nf({\n
digitsAfterDecimal: 2,\n
scaler: 100,\n
suffix: "%",\n
thousandsSep: ".",\n
decimalSep: ","\n
});\n
$.pivotUtilities.locales.pt = {\n
localeStrings: {\n
renderError: "Ocorreu um error ao renderizar os resultados da Tabela Din&atilde;mica.",\n
computeError: "Ocorreu um error ao computar os resultados da Tabela Din&atilde;mica.",\n
uiRenderError: "Ocorreu um error ao renderizar a interface da Tabela Din&atilde;mica.",\n
selectAll: "Selecionar Tudo",\n
selectNone: "Selecionar Nenhum",\n
tooMany: "(demais para listar)",\n
filterResults: "Filtrar resultados",\n
totals: "Totais",\n
vs: "vs",\n
by: "por"\n
},\n
aggregators: {\n
"Contagem": tpl.count(frFmtInt),\n
"Contagem de Valores &uacute;nicos": tpl.countUnique(frFmtInt),\n
"Lista de Valores &uacute;nicos": tpl.listUnique(", "),\n
"Soma": tpl.sum(frFmt),\n
"Soma de Inteiros": tpl.sum(frFmtInt),\n
"Média": tpl.average(frFmt),\n
"Mínimo": tpl.min(frFmt),\n
"Máximo": tpl.max(frFmt),\n
"Soma sobre Soma": tpl.sumOverSum(frFmt),\n
"Limite Superior a 80%": tpl.sumOverSumBound80(true, frFmt),\n
"Limite Inferior a 80%": tpl.sumOverSumBound80(false, frFmt),\n
"Soma como Fra&ccedil;&atilde;o do Total": tpl.fractionOf(tpl.sum(), "total", frFmtPct),\n
"Soma como Fra&ccedil;&atilde;o da Linha": tpl.fractionOf(tpl.sum(), "row", frFmtPct),\n
"Soma como Fra&ccedil;&atilde;o da Coluna": tpl.fractionOf(tpl.sum(), "col", frFmtPct),\n
"Contagem como Fra&ccedil;&atilde;o do Total": tpl.fractionOf(tpl.count(), "total", frFmtPct),\n
"Contagem como Fra&ccedil;&atilde;o da Linha": tpl.fractionOf(tpl.count(), "row", frFmtPct),\n
"Contagem como Fra&ccedil;&atilde;o da Coluna": tpl.fractionOf(tpl.count(), "col", frFmtPct)\n
},\n
renderers: {\n
"Tabela": r["Table"],\n
"Tabela com Barras": r["Table Barchart"],\n
"Mapa de Calor": r["Heatmap"],\n
"Mapa de Calor por Linhas": r["Row Heatmap"],\n
"Mapa de Calor por Colunas": r["Col Heatmap"]\n
}\n
};\n
if (gcr) {\n
$.pivotUtilities.locales.pt.gchart_renderers = {\n
"Gr&aacute;fico de Linhas": gcr["Line Chart"],\n
"Gr&aacute;fico de Barras": gcr["Bar Chart"],\n
"Gr&aacute;fico de Barras Empilhadas": gcr["Stacked Bar Chart"],\n
"Gr&aacute;fico de &Aacute;rea": gcr["Area Chart"]\n
};\n
}\n
if (d3r) {\n
$.pivotUtilities.locales.pt.d3_renderers = {\n
"Mapa de Árvore": d3r["Treemap"]\n
};\n
}\n
if (c3r) {\n
$.pivotUtilities.locales.pt.c3_renderers = {\n
"Gr&aacute;fico de Linhas": c3r["Line Chart C3"],\n
"Gr&aacute;fico de Barras": c3r["Bar Chart C3"]\n
};\n
}\n
return $.pivotUtilities.locales.pt;\n
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=pivot.pt.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3784</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.pt.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/pivot.pt.coffee","pivot.pt.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","c3r","d3r","frFmt","frFmtInt","frFmtPct","gcr","nf","r","tpl","pivotUtilities","numberFormat","aggregatorTemplates","renderers","gchart_renderers","d3_renderers","c3_renderers","thousandsSep","decimalSep","digitsAfterDecimal","scaler","suffix","locales","pt","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","totals","vs","by","aggregators","Contagem","count","Contagem de Valores &uacute;nicos","countUnique","Lista de Valores &uacute;nicos","listUnique","Soma","sum","Soma de Inteiros","Média","average","Mínimo","min","Máximo","max","Soma sobre Soma","sumOverSum","Limite Superior a 80%","sumOverSumBound80","Limite Inferior a 80%","Soma como Fra&ccedil;&atilde;o do Total","fractionOf","Soma como Fra&ccedil;&atilde;o da Linha","Soma como Fra&ccedil;&atilde;o da Coluna","Contagem como Fra&ccedil;&atilde;o do Total","Contagem como Fra&ccedil;&atilde;o da Linha","Contagem como Fra&ccedil;&atilde;o da Coluna","Tabela","Tabela com Barras","Mapa de Calor","Mapa de Calor por Linhas","Mapa de Calor por Colunas","Gr&aacute;fico de Linhas","Gr&aacute;fico de Barras","Gr&aacute;fico de Barras Empilhadas","Gr&aacute;fico de &Aacute;rea","Mapa de Árvore","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,WACC,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GACZ,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAmEA,OAnEAF,GAAKP,EAAEU,eAAeC,aACtBF,EAAMT,EAAEU,eAAeE,oBACvBJ,EAAIR,EAAEU,eAAeG,UACrBP,EAAMN,EAAEU,eAAeI,iBACvBZ,EAAMF,EAAEU,eAAeK,aACvBd,EAAMD,EAAEU,eAAeM,aAEvBb,EAAWI,GAAGU,aAAc,IAAKC,WAAY,MAC7Cd,EAAWG,GAAGY,mBAAoB,EAAGF,aAAc,IAAKC,WAAY,MACpEb,EAAWE,GAAGY,mBAAoB,EAAGC,OAAQ,IAAKC,OAAQ,IAAKJ,aAAc,IAAKC,WAAY,MAE9FlB,EAAEU,eAAeY,QAAQC,IAErBC,eACIC,YAAa,0EACbC,aAAc,wEACdC,cAAe,wEACfC,UAAW,kBACXC,WAAY,oBACZC,QAAS,uBACTC,cAAe,qBACfC,OAAQ,SACRC,GAAI,KACJC,GAAI,OAERC,aACIC,SAAgD3B,EAAI4B,MAAMjC,GAC1DkC,oCAAgD7B,EAAI8B,YAAYnC,GAChEoC,iCAAgD/B,EAAIgC,WAAW,MAC/DC,KAAgDjC,EAAIkC,IAAIxC,GACxDyC,mBAAgDnC,EAAIkC,IAAIvC,GACxDyC,QAAgDpC,EAAIqC,QAAQ3C,GAC5D4C,SAAgDtC,EAAIuC,IAAI7C,GACxD8C,SAAgDxC,EAAIyC,IAAI/C,GACxDgD,kBAAgD1C,EAAI2C,WAAWjD,GAC/DkD,wBAAgD5C,EAAI6C,mBAAkB,EAAMnD,GAC5EoD,wBAAgD9C,EAAI6C,mBAAkB,EAAOnD,GAC7EqD,0CAAgD/C,EAAIgD,WAAWhD,EAAIkC,MAAS,QAAStC,GACrFqD,0CAAgDjD,EAAIgD,WAAWhD,EAAIkC,MAAS,MAAStC,GACrFsD,2CAAgDlD,EAAIgD,WAAWhD,EAAIkC,MAAS,MAAStC,GACrFuD,8CAAgDnD,EAAIgD,WAAWhD,EAAI4B,QAAS,QAAShC,GACrFwD,8CAAgDpD,EAAIgD,WAAWhD,EAAI4B,QAAS,MAAShC,GACrFyD,+CAAgDrD,EAAIgD,WAAWhD,EAAI4B,QAAS,MAAShC,IAEzFQ,WACIkD,OAA6BvD,EAAE,MAC/BwD,oBAA6BxD,EAAE,kBAC/ByD,gBAA6BzD,EAAE,QAC/B0D,2BAA6B1D,EAAE,eAC/B2D,4BAA6B3D,EAAE,iBAEpCF,IACCN,EAAEU,eAAeY,QAAQC,GAAGT,kBACxBsD,2BAAuC9D,EAAI,cAC3C+D,2BAAuC/D,EAAI,aAC3CgE,sCAAuChE,EAAI,qBAC3CiE,gCAAuCjE,EAAI,gBAEhDJ,IACCF,EAAEU,eAAeY,QAAQC,GAAGR,cACxByD,iBAAkBtE,EAAI,UAE3BD,IACDD,EAAEU,eAAeY,QAAQC,GAAGP,cAC1BoD,2BAA4BnE,EAAI,iBAChCoE,2BAA4BpE,EAAI,kBAE7BD,EAAEU,eAAeY,QAAQC,OCsBjCkD,KAAKC","file":"pivot.pt.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 r = $.pivotUtilities.renderers\\n gcr = $.pivotUtilities.gchart_renderers\\n d3r = $.pivotUtilities.d3_renderers\\n c3r = $.pivotUtilities.c3_renderers\\n\\n frFmt = nf(thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtPct = nf(digitsAfterDecimal: 2, scaler: 100, suffix: \\"%\\", thousandsSep: \\".\\", decimalSep: \\",\\")\\n\\n $.pivotUtilities.locales.pt = \\n\\n localeStrings:\\n renderError: \\"Ocorreu um error ao renderizar os resultados da Tabela Din&atilde;mica.\\"\\n computeError: \\"Ocorreu um error ao computar os resultados da Tabela Din&atilde;mica.\\"\\n uiRenderError: \\"Ocorreu um error ao renderizar a interface da Tabela Din&atilde;mica.\\"\\n selectAll: \\"Selecionar Tudo\\"\\n selectNone: \\"Selecionar Nenhum\\"\\n tooMany: \\"(demais para listar)\\"\\n filterResults: \\"Filtrar resultados\\"\\n totals: \\"Totais\\"\\n vs: \\"vs\\"\\n by: \\"por\\"\\n\\n aggregators:\\n \\"Contagem\\": tpl.count(frFmtInt)\\n \\"Contagem de Valores &uacute;nicos\\": tpl.countUnique(frFmtInt)\\n \\"Lista de Valores &uacute;nicos\\": tpl.listUnique(\\", \\")\\n \\"Soma\\": tpl.sum(frFmt)\\n \\"Soma de Inteiros\\": tpl.sum(frFmtInt)\\n \\"Média\\": tpl.average(frFmt)\\n \\"Mínimo\\": tpl.min(frFmt)\\n \\"Máximo\\": tpl.max(frFmt)\\n \\"Soma sobre Soma\\": tpl.sumOverSum(frFmt)\\n \\"Limite Superior a 80%\\": tpl.sumOverSumBound80(true, frFmt)\\n \\"Limite Inferior a 80%\\": tpl.sumOverSumBound80(false, frFmt)\\n \\"Soma como Fra&ccedil;&atilde;o do Total\\": tpl.fractionOf(tpl.sum(), \\"total\\", frFmtPct)\\n \\"Soma como Fra&ccedil;&atilde;o da Linha\\": tpl.fractionOf(tpl.sum(), \\"row\\", frFmtPct)\\n \\"Soma como Fra&ccedil;&atilde;o da Coluna\\": tpl.fractionOf(tpl.sum(), \\"col\\", frFmtPct)\\n \\"Contagem como Fra&ccedil;&atilde;o do Total\\": tpl.fractionOf(tpl.count(), \\"total\\", frFmtPct)\\n \\"Contagem como Fra&ccedil;&atilde;o da Linha\\": tpl.fractionOf(tpl.count(), \\"row\\", frFmtPct)\\n \\"Contagem como Fra&ccedil;&atilde;o da Coluna\\": tpl.fractionOf(tpl.count(), \\"col\\", frFmtPct)\\n\\n renderers:\\n \\"Tabela\\": r[\\"Table\\"]\\n \\"Tabela com Barras\\": r[\\"Table Barchart\\"]\\n \\"Mapa de Calor\\": r[\\"Heatmap\\"]\\n \\"Mapa de Calor por Linhas\\": r[\\"Row Heatmap\\"]\\n \\"Mapa de Calor por Colunas\\": r[\\"Col Heatmap\\"]\\n\\n if gcr\\n $.pivotUtilities.locales.pt.gchart_renderers =\\n \\"Gr&aacute;fico de Linhas\\": gcr[\\"Line Chart\\"]\\n \\"Gr&aacute;fico de Barras\\": gcr[\\"Bar Chart\\"]\\n \\"Gr&aacute;fico de Barras Empilhadas\\": gcr[\\"Stacked Bar Chart\\"]\\n \\"Gr&aacute;fico de &Aacute;rea\\": gcr[\\"Area Chart\\"]\\n\\n if d3r\\n $.pivotUtilities.locales.pt.d3_renderers =\\n \\"Mapa de Árvore\\": d3r[\\"Treemap\\"]\\n\\n if c3r\\n $.pivotUtilities.locales.pt.c3_renderers =\\n \\"Gr&aacute;fico de Linhas\\": c3r[\\"Line Chart C3\\"]\\n \\"Gr&aacute;fico de Barras\\": c3r[\\"Bar Chart C3\\"]\\n\\n return $.pivotUtilities.locales.pt\\n","(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,r,o,t,i,c,l,s,n;return l=e.pivotUtilities.numberFormat,n=e.pivotUtilities.aggregatorTemplates,s=e.pivotUtilities.renderers,c=e.pivotUtilities.gchart_renderers,r=e.pivotUtilities.d3_renderers,a=e.pivotUtilities.c3_renderers,o=l({thousandsSep:\\".\\",decimalSep:\\",\\"}),t=l({digitsAfterDecimal:0,thousandsSep:\\".\\",decimalSep:\\",\\"}),i=l({digitsAfterDecimal:2,scaler:100,suffix:\\"%\\",thousandsSep:\\".\\",decimalSep:\\",\\"}),e.pivotUtilities.locales.pt={localeStrings:{renderError:\\"Ocorreu um error ao renderizar os resultados da Tabela Din&atilde;mica.\\",computeError:\\"Ocorreu um error ao computar os resultados da Tabela Din&atilde;mica.\\",uiRenderError:\\"Ocorreu um error ao renderizar a interface da Tabela Din&atilde;mica.\\",selectAll:\\"Selecionar Tudo\\",selectNone:\\"Selecionar Nenhum\\",tooMany:\\"(demais para listar)\\",filterResults:\\"Filtrar resultados\\",totals:\\"Totais\\",vs:\\"vs\\",by:\\"por\\"},aggregators:{Contagem:n.count(t),\\"Contagem de Valores &uacute;nicos\\":n.countUnique(t),\\"Lista de Valores &uacute;nicos\\":n.listUnique(\\", \\"),Soma:n.sum(o),\\"Soma de Inteiros\\":n.sum(t),\\"Média\\":n.average(o),\\"Mínimo\\":n.min(o),\\"Máximo\\":n.max(o),\\"Soma sobre Soma\\":n.sumOverSum(o),\\"Limite Superior a 80%\\":n.sumOverSumBound80(!0,o),\\"Limite Inferior a 80%\\":n.sumOverSumBound80(!1,o),\\"Soma como Fra&ccedil;&atilde;o do Total\\":n.fractionOf(n.sum(),\\"total\\",i),\\"Soma como Fra&ccedil;&atilde;o da Linha\\":n.fractionOf(n.sum(),\\"row\\",i),\\"Soma como Fra&ccedil;&atilde;o da Coluna\\":n.fractionOf(n.sum(),\\"col\\",i),\\"Contagem como Fra&ccedil;&atilde;o do Total\\":n.fractionOf(n.count(),\\"total\\",i),\\"Contagem como Fra&ccedil;&atilde;o da Linha\\":n.fractionOf(n.count(),\\"row\\",i),\\"Contagem como Fra&ccedil;&atilde;o da Coluna\\":n.fractionOf(n.count(),\\"col\\",i)},renderers:{Tabela:s.Table,\\"Tabela com Barras\\":s[\\"Table Barchart\\"],\\"Mapa de Calor\\":s.Heatmap,\\"Mapa de Calor por Linhas\\":s[\\"Row Heatmap\\"],\\"Mapa de Calor por Colunas\\":s[\\"Col Heatmap\\"]}},c&&(e.pivotUtilities.locales.pt.gchart_renderers={\\"Gr&aacute;fico de Linhas\\":c[\\"Line Chart\\"],\\"Gr&aacute;fico de Barras\\":c[\\"Bar Chart\\"],\\"Gr&aacute;fico de Barras Empilhadas\\":c[\\"Stacked Bar Chart\\"],\\"Gr&aacute;fico de &Aacute;rea\\":c[\\"Area Chart\\"]}),r&&(e.pivotUtilities.locales.pt.d3_renderers={\\"Mapa de Árvore\\":r.Treemap}),a&&(e.pivotUtilities.locales.pt.c3_renderers={\\"Gr&aacute;fico de Linhas\\":a[\\"Line Chart C3\\"],\\"Gr&aacute;fico de Barras\\":a[\\"Bar Chart C3\\"]}),e.pivotUtilities.locales.pt})}).call(this);\\n//# sourceMappingURL=pivot.pt.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626247.76</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.pt.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(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,r,o,t,i,c,l,s,n;return l=e.pivotUtilities.numberFormat,n=e.pivotUtilities.aggregatorTemplates,s=e.pivotUtilities.renderers,c=e.pivotUtilities.gchart_renderers,r=e.pivotUtilities.d3_renderers,a=e.pivotUtilities.c3_renderers,o=l({thousandsSep:".",decimalSep:","}),t=l({digitsAfterDecimal:0,thousandsSep:".",decimalSep:","}),i=l({digitsAfterDecimal:2,scaler:100,suffix:"%",thousandsSep:".",decimalSep:","}),e.pivotUtilities.locales.pt={localeStrings:{renderError:"Ocorreu um error ao renderizar os resultados da Tabela Din&atilde;mica.",computeError:"Ocorreu um error ao computar os resultados da Tabela Din&atilde;mica.",uiRenderError:"Ocorreu um error ao renderizar a interface da Tabela Din&atilde;mica.",selectAll:"Selecionar Tudo",selectNone:"Selecionar Nenhum",tooMany:"(demais para listar)",filterResults:"Filtrar resultados",totals:"Totais",vs:"vs",by:"por"},aggregators:{Contagem:n.count(t),"Contagem de Valores &uacute;nicos":n.countUnique(t),"Lista de Valores &uacute;nicos":n.listUnique(", "),Soma:n.sum(o),"Soma de Inteiros":n.sum(t),"Média":n.average(o),"Mínimo":n.min(o),"Máximo":n.max(o),"Soma sobre Soma":n.sumOverSum(o),"Limite Superior a 80%":n.sumOverSumBound80(!0,o),"Limite Inferior a 80%":n.sumOverSumBound80(!1,o),"Soma como Fra&ccedil;&atilde;o do Total":n.fractionOf(n.sum(),"total",i),"Soma como Fra&ccedil;&atilde;o da Linha":n.fractionOf(n.sum(),"row",i),"Soma como Fra&ccedil;&atilde;o da Coluna":n.fractionOf(n.sum(),"col",i),"Contagem como Fra&ccedil;&atilde;o do Total":n.fractionOf(n.count(),"total",i),"Contagem como Fra&ccedil;&atilde;o da Linha":n.fractionOf(n.count(),"row",i),"Contagem como Fra&ccedil;&atilde;o da Coluna":n.fractionOf(n.count(),"col",i)},renderers:{Tabela:s.Table,"Tabela com Barras":s["Table Barchart"],"Mapa de Calor":s.Heatmap,"Mapa de Calor por Linhas":s["Row Heatmap"],"Mapa de Calor por Colunas":s["Col Heatmap"]}},c&&(e.pivotUtilities.locales.pt.gchart_renderers={"Gr&aacute;fico de Linhas":c["Line Chart"],"Gr&aacute;fico de Barras":c["Bar Chart"],"Gr&aacute;fico de Barras Empilhadas":c["Stacked Bar Chart"],"Gr&aacute;fico de &Aacute;rea":c["Area Chart"]}),r&&(e.pivotUtilities.locales.pt.d3_renderers={"Mapa de Árvore":r.Treemap}),a&&(e.pivotUtilities.locales.pt.c3_renderers={"Gr&aacute;fico de Linhas":a["Line Chart C3"],"Gr&aacute;fico de Barras":a["Bar Chart C3"]}),e.pivotUtilities.locales.pt})}).call(this);\n
//# sourceMappingURL=pivot.pt.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>2622</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.tr.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["pivot.tr.coffee"],"names":[],"mappings":"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","file":"pivot.tr.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 r = $.pivotUtilities.renderers\\n gcr = $.pivotUtilities.gchart_renderers\\n d3r = $.pivotUtilities.d3_renderers\\n c3r = $.pivotUtilities.c3_renderers\\n\\n frFmt = nf(thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtPct = nf(digitsAfterDecimal: 2, scaler: 100, suffix: \\"%\\", thousandsSep: \\".\\", decimalSep: \\",\\")\\n\\n $.pivotUtilities.locales.tr =\\n\\n localeStrings:\\n renderError: \\"PivotTable sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu\\"\\n computeError: \\"PivotTable sonu&ccedil;lar&#305;n&#305; i&#351;lerken hata olu&#351;tu\\"\\n uiRenderError: \\"PivotTable UI sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu\\"\\n selectAll: \\"T&uuml;m&uuml;n&uuml; Se&ccedil;\\"\\n selectNone: \\"T&uuml;m&uuml;n&uuml; B&#305;rak\\"\\n tooMany: \\"(listelemek i&ccedil;in fazla)\\"\\n filterResults: \\"Sonu&ccedil;lar&#305; filtrele\\"\\n totals: \\"Toplam\\"\\n vs: \\"vs\\"\\n by: \\"ile\\"\\n\\n aggregators:\\n \\"Say&#305;\\": tpl.count(frFmtInt)\\n \\"Benzersiz de&#287;erler say&#305;s&#305;\\": tpl.countUnique(frFmtInt)\\n \\"Benzersiz de&#287;erler listesi\\": tpl.listUnique(\\", \\")\\n \\"Toplam\\": tpl.sum(frFmt)\\n \\"Toplam (tam say&#305;)\\": tpl.sum(frFmtInt)\\n \\"Ortalama\\": tpl.average(frFmt)\\n \\"Min\\": tpl.min(frFmt)\\n \\"Maks\\": tpl.max(frFmt)\\n \\"Miktarlar&#305;n toplam&#305;\\": tpl.sumOverSum(frFmt)\\n \\"%80 daha y&uuml;ksek\\": tpl.sumOverSumBound80(true, frFmt)\\n \\"%80 daha d&uuml;&#351;&uuml;k\\": tpl.sumOverSumBound80(false, frFmt)\\n \\"Toplam oran&#305; (toplam)\\": tpl.fractionOf(tpl.sum(), \\"total\\", frFmtPct)\\n \\"Sat&#305;r oran&#305; (toplam)\\": tpl.fractionOf(tpl.sum(), \\"row\\", frFmtPct)\\n \\"S&uuml;tunun oran&#305; (toplam)\\": tpl.fractionOf(tpl.sum(), \\"col\\", frFmtPct)\\n \\"Toplam oran&#305; (say&#305;)\\": tpl.fractionOf(tpl.count(), \\"total\\", frFmtPct)\\n \\"Sat&#305;r oran&#305; (say&#305;)\\": tpl.fractionOf(tpl.count(), \\"row\\", frFmtPct)\\n \\"S&uuml;tunun oran&#305; (say&#305;)\\": tpl.fractionOf(tpl.count(), \\"col\\", frFmtPct)\\n\\n renderers:\\n \\"Tablo\\": r[\\"Table\\"]\\n \\"Tablo (&Ccedil;ubuklar)\\": r[\\"Table Barchart\\"]\\n \\"&#304;lgi haritas&#305;\\": r[\\"Heatmap\\"]\\n \\"Sat&#305;r ilgi haritas&#305;\\": r[\\"Row Heatmap\\"]\\n \\"S&uuml;tun ilgi haritas&#305;\\": r[\\"Col Heatmap\\"]\\n if gcr\\n $.pivotUtilities.locales.tr.gchart_renderers =\\n \\"&Ccedil;izgi Grafi&#287;i (gchart)\\": gcr[\\"Line Chart\\"]\\n \\"Bar Grafi&#287;i (gchart)\\": gcr[\\"Bar Chart\\"]\\n \\"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik (gchart)\\": gcr[\\"Stacked Bar Chart\\"]\\n \\"Alan Grafi&#287;i (gchart)\\": gcr[\\"Area Chart\\"]\\n\\n if d3r\\n $.pivotUtilities.locales.tr.d3_renderers =\\n \\"Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)\\": d3r[\\"Treemap\\"]\\n\\n if c3r\\n $.pivotUtilities.locales.tr.c3_renderers =\\n \\"&Ccedil;izgi Grafi&#287;i (C3)\\": c3r[\\"Line Chart C3\\"]\\n \\"Bar Grafi&#287;i (C3)\\": c3r[\\"Bar Chart C3\\"]\\n\\n return $.pivotUtilities.locales.tr\\n\\n"]}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626247.13</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.tr.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(function() {\n
var callWithJQuery;\n
\n
callWithJQuery = function(pivotModule) {\n
if (typeof exports === "object" && typeof module === "object") {\n
return pivotModule(require("jquery"));\n
} else if (typeof define === "function" && define.amd) {\n
return define(["jquery"], pivotModule);\n
} else {\n
return pivotModule(jQuery);\n
}\n
};\n
\n
callWithJQuery(function($) {\n
var c3r, d3r, frFmt, frFmtInt, frFmtPct, gcr, nf, r, tpl;\n
nf = $.pivotUtilities.numberFormat;\n
tpl = $.pivotUtilities.aggregatorTemplates;\n
r = $.pivotUtilities.renderers;\n
gcr = $.pivotUtilities.gchart_renderers;\n
d3r = $.pivotUtilities.d3_renderers;\n
c3r = $.pivotUtilities.c3_renderers;\n
frFmt = nf({\n
thousandsSep: ".",\n
decimalSep: ","\n
});\n
frFmtInt = nf({\n
digitsAfterDecimal: 0,\n
thousandsSep: ".",\n
decimalSep: ","\n
});\n
frFmtPct = nf({\n
digitsAfterDecimal: 2,\n
scaler: 100,\n
suffix: "%",\n
thousandsSep: ".",\n
decimalSep: ","\n
});\n
$.pivotUtilities.locales.tr = {\n
localeStrings: {\n
renderError: "PivotTable sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu",\n
computeError: "PivotTable sonu&ccedil;lar&#305;n&#305; i&#351;lerken hata olu&#351;tu",\n
uiRenderError: "PivotTable UI sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu",\n
selectAll: "T&uuml;m&uuml;n&uuml; Se&ccedil;",\n
selectNone: "T&uuml;m&uuml;n&uuml; B&#305;rak",\n
tooMany: "(listelemek i&ccedil;in fazla)",\n
filterResults: "Sonu&ccedil;lar&#305; filtrele",\n
totals: "Toplam",\n
vs: "vs",\n
by: "ile"\n
},\n
aggregators: {\n
"Say&#305;": tpl.count(frFmtInt),\n
"Benzersiz de&#287;erler say&#305;s&#305;": tpl.countUnique(frFmtInt),\n
"Benzersiz de&#287;erler listesi": tpl.listUnique(", "),\n
"Toplam": tpl.sum(frFmt),\n
"Toplam (tam say&#305;)": tpl.sum(frFmtInt),\n
"Ortalama": tpl.average(frFmt),\n
"Min": tpl.min(frFmt),\n
"Maks": tpl.max(frFmt),\n
"Miktarlar&#305;n toplam&#305;": tpl.sumOverSum(frFmt),\n
"%80 daha y&uuml;ksek": tpl.sumOverSumBound80(true, frFmt),\n
"%80 daha d&uuml;&#351;&uuml;k": tpl.sumOverSumBound80(false, frFmt),\n
"Toplam oran&#305; (toplam)": tpl.fractionOf(tpl.sum(), "total", frFmtPct),\n
"Sat&#305;r oran&#305; (toplam)": tpl.fractionOf(tpl.sum(), "row", frFmtPct),\n
"S&uuml;tunun oran&#305; (toplam)": tpl.fractionOf(tpl.sum(), "col", frFmtPct),\n
"Toplam oran&#305; (say&#305;)": tpl.fractionOf(tpl.count(), "total", frFmtPct),\n
"Sat&#305;r oran&#305; (say&#305;)": tpl.fractionOf(tpl.count(), "row", frFmtPct),\n
"S&uuml;tunun oran&#305; (say&#305;)": tpl.fractionOf(tpl.count(), "col", frFmtPct)\n
},\n
renderers: {\n
"Tablo": r["Table"],\n
"Tablo (&Ccedil;ubuklar)": r["Table Barchart"],\n
"&#304;lgi haritas&#305;": r["Heatmap"],\n
"Sat&#305;r ilgi haritas&#305;": r["Row Heatmap"],\n
"S&uuml;tun ilgi haritas&#305;": r["Col Heatmap"]\n
}\n
};\n
if (gcr) {\n
$.pivotUtilities.locales.tr.gchart_renderers = {\n
"&Ccedil;izgi Grafi&#287;i (gchart)": gcr["Line Chart"],\n
"Bar Grafi&#287;i (gchart)": gcr["Bar Chart"],\n
"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik (gchart)": gcr["Stacked Bar Chart"],\n
"Alan Grafi&#287;i (gchart)": gcr["Area Chart"]\n
};\n
}\n
if (d3r) {\n
$.pivotUtilities.locales.tr.d3_renderers = {\n
"Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)": d3r["Treemap"]\n
};\n
}\n
if (c3r) {\n
$.pivotUtilities.locales.tr.c3_renderers = {\n
"&Ccedil;izgi Grafi&#287;i (C3)": c3r["Line Chart C3"],\n
"Bar Grafi&#287;i (C3)": c3r["Bar Chart C3"]\n
};\n
}\n
return $.pivotUtilities.locales.tr;\n
});\n
\n
}).call(this);\n
\n
//# sourceMappingURL=pivot.tr.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>3910</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLMethod" module="OFS.DTMLMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.tr.min.js.map</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
{"version":3,"sources":["/source/pivot.tr.coffee","pivot.tr.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","c3r","d3r","frFmt","frFmtInt","frFmtPct","gcr","nf","r","tpl","pivotUtilities","numberFormat","aggregatorTemplates","renderers","gchart_renderers","d3_renderers","c3_renderers","thousandsSep","decimalSep","digitsAfterDecimal","scaler","suffix","locales","tr","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","totals","vs","by","aggregators","Say&#305;","count","Benzersiz de&#287;erler say&#305;s&#305;","countUnique","Benzersiz de&#287;erler listesi","listUnique","Toplam","sum","Toplam (tam say&#305;)","Ortalama","average","Min","min","Maks","max","Miktarlar&#305;n toplam&#305;","sumOverSum","%80 daha y&uuml;ksek","sumOverSumBound80","%80 daha d&uuml;&#351;&uuml;k","Toplam oran&#305; (toplam)","fractionOf","Sat&#305;r oran&#305; (toplam)","S&uuml;tunun oran&#305; (toplam)","Toplam oran&#305; (say&#305;)","Sat&#305;r oran&#305; (say&#305;)","S&uuml;tunun oran&#305; (say&#305;)","Tablo","Tablo (&Ccedil;ubuklar)","&#304;lgi haritas&#305;","Sat&#305;r ilgi haritas&#305;","S&uuml;tun ilgi haritas&#305;","&Ccedil;izgi Grafi&#287;i (gchart)","Bar Grafi&#287;i (gchart)","Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik (gchart)","Alan Grafi&#287;i (gchart)","Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)","&Ccedil;izgi Grafi&#287;i (C3)","Bar Grafi&#287;i (C3)","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GAChB,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAChCF,EAAYG,QAAQ,WACG,kBAAjBC,SAAgCA,OAAOC,IAC7CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAED,SAACC,GACd,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAkEA,OAlEAF,GAAKP,EAAEU,eAAeC,aACtBF,EAAMT,EAAEU,eAAeE,oBACvBJ,EAAIR,EAAEU,eAAeG,UACrBP,EAAMN,EAAEU,eAAeI,iBACvBZ,EAAMF,EAAEU,eAAeK,aACvBd,EAAMD,EAAEU,eAAeM,aAEvBb,EAAQI,GAAGU,aAAc,IAAKC,WAAY,MAC1Cd,EAAWG,GAAGY,mBAAoB,EAAGF,aAAc,IAAKC,WAAY,MACpEb,EAAWE,GAAGY,mBAAoB,EAAGC,OAAQ,IAAKC,OAAQ,IAAKJ,aAAc,IAAKC,WAAY,MAE9FlB,EAAEU,eAAeY,QAAQC,IAEvBC,eACEC,YAAa,6EACbC,aAAc,yEACdC,cAAe,gFACfC,UAAW,mCACXC,WAAY,mCACZC,QAAS,iCACTC,cAAe,iCACfC,OAAQ,SACRC,GAAI,KACJC,GAAI,OAENC,aACEC,YAAa3B,EAAI4B,MAAMjC,GACvBkC,2CAA4C7B,EAAI8B,YAAYnC,GAC5DoC,kCAAmC/B,EAAIgC,WAAW,MAClDC,OAAUjC,EAAIkC,IAAIxC,GAClByC,yBAA0BnC,EAAIkC,IAAIvC,GAClCyC,SAAYpC,EAAIqC,QAAQ3C,GACxB4C,IAAOtC,EAAIuC,IAAI7C,GACf8C,KAAQxC,EAAIyC,IAAI/C,GAChBgD,gCAAiC1C,EAAI2C,WAAWjD,GAChDkD,uBAAwB5C,EAAI6C,mBAAkB,EAAMnD,GACpDoD,gCAAiC9C,EAAI6C,mBAAkB,EAAOnD,GAC9DqD,6BAA8B/C,EAAIgD,WAAWhD,EAAIkC,MAAO,QAAStC,GACjEqD,iCAAkCjD,EAAIgD,WAAWhD,EAAIkC,MAAO,MAAOtC,GACnEsD,mCAAoClD,EAAIgD,WAAWhD,EAAIkC,MAAO,MAAOtC,GACrEuD,gCAAiCnD,EAAIgD,WAAWhD,EAAI4B,QAAS,QAAShC,GACtEwD,oCAAqCpD,EAAIgD,WAAWhD,EAAI4B,QAAS,MAAOhC,GACxEyD,sCAAuCrD,EAAIgD,WAAWhD,EAAI4B,QAAS,MAAOhC,IAE5EQ,WACEkD,MAASvD,EAAE,MACXwD,0BAA2BxD,EAAE,kBAC7ByD,0BAA2BzD,EAAE,QAC7B0D,gCAAiC1D,EAAE,eACnC2D,gCAAiC3D,EAAE,iBACpCF,IACDN,EAAEU,eAAeY,QAAQC,GAAGT,kBAC1BsD,qCAAsC9D,EAAI,cAC1C+D,4BAA6B/D,EAAI,aACjCgE,iEAAkEhE,EAAI,qBACtEiE,6BAA8BjE,EAAI,gBAEnCJ,IACDF,EAAEU,eAAeY,QAAQC,GAAGR,cAC1ByD,8CAA+CtE,EAAI,UAEpDD,IACDD,EAAEU,eAAeY,QAAQC,GAAGP,cAC1ByD,iCAAkCxE,EAAI,iBACtCyE,wBAAyBzE,EAAI,kBAE1BD,EAAEU,eAAeY,QAAQC,OCuB/BoD,KAAKC","file":"pivot.tr.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 r = $.pivotUtilities.renderers\\n gcr = $.pivotUtilities.gchart_renderers\\n d3r = $.pivotUtilities.d3_renderers\\n c3r = $.pivotUtilities.c3_renderers\\n\\n frFmt = nf(thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtInt = nf(digitsAfterDecimal: 0, thousandsSep: \\".\\", decimalSep: \\",\\")\\n frFmtPct = nf(digitsAfterDecimal: 2, scaler: 100, suffix: \\"%\\", thousandsSep: \\".\\", decimalSep: \\",\\")\\n\\n $.pivotUtilities.locales.tr =\\n\\n localeStrings:\\n renderError: \\"PivotTable sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu\\"\\n computeError: \\"PivotTable sonu&ccedil;lar&#305;n&#305; i&#351;lerken hata olu&#351;tu\\"\\n uiRenderError: \\"PivotTable UI sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu\\"\\n selectAll: \\"T&uuml;m&uuml;n&uuml; Se&ccedil;\\"\\n selectNone: \\"T&uuml;m&uuml;n&uuml; B&#305;rak\\"\\n tooMany: \\"(listelemek i&ccedil;in fazla)\\"\\n filterResults: \\"Sonu&ccedil;lar&#305; filtrele\\"\\n totals: \\"Toplam\\"\\n vs: \\"vs\\"\\n by: \\"ile\\"\\n\\n aggregators:\\n \\"Say&#305;\\": tpl.count(frFmtInt)\\n \\"Benzersiz de&#287;erler say&#305;s&#305;\\": tpl.countUnique(frFmtInt)\\n \\"Benzersiz de&#287;erler listesi\\": tpl.listUnique(\\", \\")\\n \\"Toplam\\": tpl.sum(frFmt)\\n \\"Toplam (tam say&#305;)\\": tpl.sum(frFmtInt)\\n \\"Ortalama\\": tpl.average(frFmt)\\n \\"Min\\": tpl.min(frFmt)\\n \\"Maks\\": tpl.max(frFmt)\\n \\"Miktarlar&#305;n toplam&#305;\\": tpl.sumOverSum(frFmt)\\n \\"%80 daha y&uuml;ksek\\": tpl.sumOverSumBound80(true, frFmt)\\n \\"%80 daha d&uuml;&#351;&uuml;k\\": tpl.sumOverSumBound80(false, frFmt)\\n \\"Toplam oran&#305; (toplam)\\": tpl.fractionOf(tpl.sum(), \\"total\\", frFmtPct)\\n \\"Sat&#305;r oran&#305; (toplam)\\": tpl.fractionOf(tpl.sum(), \\"row\\", frFmtPct)\\n \\"S&uuml;tunun oran&#305; (toplam)\\": tpl.fractionOf(tpl.sum(), \\"col\\", frFmtPct)\\n \\"Toplam oran&#305; (say&#305;)\\": tpl.fractionOf(tpl.count(), \\"total\\", frFmtPct)\\n \\"Sat&#305;r oran&#305; (say&#305;)\\": tpl.fractionOf(tpl.count(), \\"row\\", frFmtPct)\\n \\"S&uuml;tunun oran&#305; (say&#305;)\\": tpl.fractionOf(tpl.count(), \\"col\\", frFmtPct)\\n\\n renderers:\\n \\"Tablo\\": r[\\"Table\\"]\\n \\"Tablo (&Ccedil;ubuklar)\\": r[\\"Table Barchart\\"]\\n \\"&#304;lgi haritas&#305;\\": r[\\"Heatmap\\"]\\n \\"Sat&#305;r ilgi haritas&#305;\\": r[\\"Row Heatmap\\"]\\n \\"S&uuml;tun ilgi haritas&#305;\\": r[\\"Col Heatmap\\"]\\n if gcr\\n $.pivotUtilities.locales.tr.gchart_renderers =\\n \\"&Ccedil;izgi Grafi&#287;i (gchart)\\": gcr[\\"Line Chart\\"]\\n \\"Bar Grafi&#287;i (gchart)\\": gcr[\\"Bar Chart\\"]\\n \\"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik (gchart)\\": gcr[\\"Stacked Bar Chart\\"]\\n \\"Alan Grafi&#287;i (gchart)\\": gcr[\\"Area Chart\\"]\\n\\n if d3r\\n $.pivotUtilities.locales.tr.d3_renderers =\\n \\"Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)\\": d3r[\\"Treemap\\"]\\n\\n if c3r\\n $.pivotUtilities.locales.tr.c3_renderers =\\n \\"&Ccedil;izgi Grafi&#287;i (C3)\\": c3r[\\"Line Chart C3\\"]\\n \\"Bar Grafi&#287;i (C3)\\": c3r[\\"Bar Chart C3\\"]\\n\\n return $.pivotUtilities.locales.tr\\n\\n","(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,r,t,i,l,o,u,n,s;return u=e.pivotUtilities.numberFormat,s=e.pivotUtilities.aggregatorTemplates,n=e.pivotUtilities.renderers,o=e.pivotUtilities.gchart_renderers,r=e.pivotUtilities.d3_renderers,a=e.pivotUtilities.c3_renderers,t=u({thousandsSep:\\".\\",decimalSep:\\",\\"}),i=u({digitsAfterDecimal:0,thousandsSep:\\".\\",decimalSep:\\",\\"}),l=u({digitsAfterDecimal:2,scaler:100,suffix:\\"%\\",thousandsSep:\\".\\",decimalSep:\\",\\"}),e.pivotUtilities.locales.tr={localeStrings:{renderError:\\"PivotTable sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu\\",computeError:\\"PivotTable sonu&ccedil;lar&#305;n&#305; i&#351;lerken hata olu&#351;tu\\",uiRenderError:\\"PivotTable UI sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu\\",selectAll:\\"T&uuml;m&uuml;n&uuml; Se&ccedil;\\",selectNone:\\"T&uuml;m&uuml;n&uuml; B&#305;rak\\",tooMany:\\"(listelemek i&ccedil;in fazla)\\",filterResults:\\"Sonu&ccedil;lar&#305; filtrele\\",totals:\\"Toplam\\",vs:\\"vs\\",by:\\"ile\\"},aggregators:{\\"Say&#305;\\":s.count(i),\\"Benzersiz de&#287;erler say&#305;s&#305;\\":s.countUnique(i),\\"Benzersiz de&#287;erler listesi\\":s.listUnique(\\", \\"),Toplam:s.sum(t),\\"Toplam (tam say&#305;)\\":s.sum(i),Ortalama:s.average(t),Min:s.min(t),Maks:s.max(t),\\"Miktarlar&#305;n toplam&#305;\\":s.sumOverSum(t),\\"%80 daha y&uuml;ksek\\":s.sumOverSumBound80(!0,t),\\"%80 daha d&uuml;&#351;&uuml;k\\":s.sumOverSumBound80(!1,t),\\"Toplam oran&#305; (toplam)\\":s.fractionOf(s.sum(),\\"total\\",l),\\"Sat&#305;r oran&#305; (toplam)\\":s.fractionOf(s.sum(),\\"row\\",l),\\"S&uuml;tunun oran&#305; (toplam)\\":s.fractionOf(s.sum(),\\"col\\",l),\\"Toplam oran&#305; (say&#305;)\\":s.fractionOf(s.count(),\\"total\\",l),\\"Sat&#305;r oran&#305; (say&#305;)\\":s.fractionOf(s.count(),\\"row\\",l),\\"S&uuml;tunun oran&#305; (say&#305;)\\":s.fractionOf(s.count(),\\"col\\",l)},renderers:{Tablo:n.Table,\\"Tablo (&Ccedil;ubuklar)\\":n[\\"Table Barchart\\"],\\"&#304;lgi haritas&#305;\\":n.Heatmap,\\"Sat&#305;r ilgi haritas&#305;\\":n[\\"Row Heatmap\\"],\\"S&uuml;tun ilgi haritas&#305;\\":n[\\"Col Heatmap\\"]}},o&&(e.pivotUtilities.locales.tr.gchart_renderers={\\"&Ccedil;izgi Grafi&#287;i (gchart)\\":o[\\"Line Chart\\"],\\"Bar Grafi&#287;i (gchart)\\":o[\\"Bar Chart\\"],\\"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik (gchart)\\":o[\\"Stacked Bar Chart\\"],\\"Alan Grafi&#287;i (gchart)\\":o[\\"Area Chart\\"]}),r&&(e.pivotUtilities.locales.tr.d3_renderers={\\"Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)\\":r.Treemap}),a&&(e.pivotUtilities.locales.tr.c3_renderers={\\"&Ccedil;izgi Grafi&#287;i (C3)\\":a[\\"Line Chart C3\\"],\\"Bar Grafi&#287;i (C3)\\":a[\\"Bar Chart C3\\"]}),e.pivotUtilities.locales.tr})}).call(this);\\n//# sourceMappingURL=pivot.tr.min.js.map"],"sourceRoot":"/source/"}
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts32626243.98</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>pivot.tr.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
(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,r,t,i,l,o,u,n,s;return u=e.pivotUtilities.numberFormat,s=e.pivotUtilities.aggregatorTemplates,n=e.pivotUtilities.renderers,o=e.pivotUtilities.gchart_renderers,r=e.pivotUtilities.d3_renderers,a=e.pivotUtilities.c3_renderers,t=u({thousandsSep:".",decimalSep:","}),i=u({digitsAfterDecimal:0,thousandsSep:".",decimalSep:","}),l=u({digitsAfterDecimal:2,scaler:100,suffix:"%",thousandsSep:".",decimalSep:","}),e.pivotUtilities.locales.tr={localeStrings:{renderError:"PivotTable sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu",computeError:"PivotTable sonu&ccedil;lar&#305;n&#305; i&#351;lerken hata olu&#351;tu",uiRenderError:"PivotTable UI sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu",selectAll:"T&uuml;m&uuml;n&uuml; Se&ccedil;",selectNone:"T&uuml;m&uuml;n&uuml; B&#305;rak",tooMany:"(listelemek i&ccedil;in fazla)",filterResults:"Sonu&ccedil;lar&#305; filtrele",totals:"Toplam",vs:"vs",by:"ile"},aggregators:{"Say&#305;":s.count(i),"Benzersiz de&#287;erler say&#305;s&#305;":s.countUnique(i),"Benzersiz de&#287;erler listesi":s.listUnique(", "),Toplam:s.sum(t),"Toplam (tam say&#305;)":s.sum(i),Ortalama:s.average(t),Min:s.min(t),Maks:s.max(t),"Miktarlar&#305;n toplam&#305;":s.sumOverSum(t),"%80 daha y&uuml;ksek":s.sumOverSumBound80(!0,t),"%80 daha d&uuml;&#351;&uuml;k":s.sumOverSumBound80(!1,t),"Toplam oran&#305; (toplam)":s.fractionOf(s.sum(),"total",l),"Sat&#305;r oran&#305; (toplam)":s.fractionOf(s.sum(),"row",l),"S&uuml;tunun oran&#305; (toplam)":s.fractionOf(s.sum(),"col",l),"Toplam oran&#305; (say&#305;)":s.fractionOf(s.count(),"total",l),"Sat&#305;r oran&#305; (say&#305;)":s.fractionOf(s.count(),"row",l),"S&uuml;tunun oran&#305; (say&#305;)":s.fractionOf(s.count(),"col",l)},renderers:{Tablo:n.Table,"Tablo (&Ccedil;ubuklar)":n["Table Barchart"],"&#304;lgi haritas&#305;":n.Heatmap,"Sat&#305;r ilgi haritas&#305;":n["Row Heatmap"],"S&uuml;tun ilgi haritas&#305;":n["Col Heatmap"]}},o&&(e.pivotUtilities.locales.tr.gchart_renderers={"&Ccedil;izgi Grafi&#287;i (gchart)":o["Line Chart"],"Bar Grafi&#287;i (gchart)":o["Bar Chart"],"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik (gchart)":o["Stacked Bar Chart"],"Alan Grafi&#287;i (gchart)":o["Area Chart"]}),r&&(e.pivotUtilities.locales.tr.d3_renderers={"Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)":r.Treemap}),a&&(e.pivotUtilities.locales.tr.c3_renderers={"&Ccedil;izgi Grafi&#287;i (C3)":a["Line Chart C3"],"Bar Grafi&#287;i (C3)":a["Bar Chart C3"]}),e.pivotUtilities.locales.tr})}).call(this);\n
//# sourceMappingURL=pivot.tr.min.js.map
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>2744</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
javascript pivot table library https://github.com/nicolaskruchten
\ No newline at end of file
erp5_pivot_table
\ No newline at end of file
erp5_pivot_table
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment