postrest 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/lib/app.rb +1 -1
  3. data/public/index.htm +116 -0
  4. data/public/node_modules/pivottable/CONTRIBUTING.md +19 -0
  5. data/public/node_modules/pivottable/LICENSE.md +9 -0
  6. data/public/node_modules/pivottable/ReadMe.md +155 -0
  7. data/public/node_modules/pivottable/bower.json +31 -0
  8. data/public/node_modules/pivottable/c3_renderers.coffee +155 -0
  9. data/public/node_modules/pivottable/d3_renderers.coffee +73 -0
  10. data/public/node_modules/pivottable/dist/c3_renderers.js +256 -0
  11. data/public/node_modules/pivottable/dist/c3_renderers.js.map +1 -0
  12. data/public/node_modules/pivottable/dist/c3_renderers.min.js +2 -0
  13. data/public/node_modules/pivottable/dist/c3_renderers.min.js.map +1 -0
  14. data/public/node_modules/pivottable/dist/d3_renderers.js +105 -0
  15. data/public/node_modules/pivottable/dist/d3_renderers.js.map +1 -0
  16. data/public/node_modules/pivottable/dist/d3_renderers.min.js +2 -0
  17. data/public/node_modules/pivottable/dist/d3_renderers.min.js.map +1 -0
  18. data/public/node_modules/pivottable/dist/export_renderers.js +80 -0
  19. data/public/node_modules/pivottable/dist/export_renderers.js.map +1 -0
  20. data/public/node_modules/pivottable/dist/export_renderers.min.js +2 -0
  21. data/public/node_modules/pivottable/dist/export_renderers.min.js.map +1 -0
  22. data/public/node_modules/pivottable/dist/gchart_renderers.js +183 -0
  23. data/public/node_modules/pivottable/dist/gchart_renderers.js.map +1 -0
  24. data/public/node_modules/pivottable/dist/gchart_renderers.min.js +2 -0
  25. data/public/node_modules/pivottable/dist/gchart_renderers.min.js.map +1 -0
  26. data/public/node_modules/pivottable/dist/pivot.css +97 -0
  27. data/public/node_modules/pivottable/dist/pivot.es.js +78 -0
  28. data/public/node_modules/pivottable/dist/pivot.es.js.map +1 -0
  29. data/public/node_modules/pivottable/dist/pivot.es.min.js +2 -0
  30. data/public/node_modules/pivottable/dist/pivot.es.min.js.map +1 -0
  31. data/public/node_modules/pivottable/dist/pivot.fr.js +78 -0
  32. data/public/node_modules/pivottable/dist/pivot.fr.js.map +1 -0
  33. data/public/node_modules/pivottable/dist/pivot.fr.min.js +2 -0
  34. data/public/node_modules/pivottable/dist/pivot.fr.min.js.map +1 -0
  35. data/public/node_modules/pivottable/dist/pivot.js +1511 -0
  36. data/public/node_modules/pivottable/dist/pivot.js.map +1 -0
  37. data/public/node_modules/pivottable/dist/pivot.min.css +1 -0
  38. data/public/node_modules/pivottable/dist/pivot.min.js +2 -0
  39. data/public/node_modules/pivottable/dist/pivot.min.js.map +1 -0
  40. data/public/node_modules/pivottable/dist/pivot.nl.js +78 -0
  41. data/public/node_modules/pivottable/dist/pivot.nl.js.map +1 -0
  42. data/public/node_modules/pivottable/dist/pivot.nl.min.js +2 -0
  43. data/public/node_modules/pivottable/dist/pivot.nl.min.js.map +1 -0
  44. data/public/node_modules/pivottable/dist/pivot.pt.js +104 -0
  45. data/public/node_modules/pivottable/dist/pivot.pt.js.map +1 -0
  46. data/public/node_modules/pivottable/dist/pivot.pt.min.js +2 -0
  47. data/public/node_modules/pivottable/dist/pivot.pt.min.js.map +1 -0
  48. data/public/node_modules/pivottable/dist/pivot.ru.js +78 -0
  49. data/public/node_modules/pivottable/dist/pivot.ru.js.map +1 -0
  50. data/public/node_modules/pivottable/dist/pivot.ru.min.js +2 -0
  51. data/public/node_modules/pivottable/dist/pivot.ru.min.js.map +1 -0
  52. data/public/node_modules/pivottable/dist/pivot.tr.js +104 -0
  53. data/public/node_modules/pivottable/dist/pivot.tr.js.map +1 -0
  54. data/public/node_modules/pivottable/dist/pivot.tr.min.js +2 -0
  55. data/public/node_modules/pivottable/dist/pivot.tr.min.js.map +1 -0
  56. data/public/node_modules/pivottable/dist/tips_data.min.js +247 -0
  57. data/public/node_modules/pivottable/examples/c3.html +61 -0
  58. data/public/node_modules/pivottable/examples/d3.html +49 -0
  59. data/public/node_modules/pivottable/examples/fully_loaded.html +80 -0
  60. data/public/node_modules/pivottable/examples/gchart.html +53 -0
  61. data/public/node_modules/pivottable/examples/gh-fork-ribbon.css +140 -0
  62. data/public/node_modules/pivottable/examples/gh-fork-ribbon.ie.css +78 -0
  63. data/public/node_modules/pivottable/examples/index.html +85 -0
  64. data/public/node_modules/pivottable/examples/local.html +74 -0
  65. data/public/node_modules/pivottable/examples/montreal_2014.csv +366 -0
  66. data/public/node_modules/pivottable/examples/montreal_2014.html +106 -0
  67. data/public/node_modules/pivottable/examples/mps.csv +309 -0
  68. data/public/node_modules/pivottable/examples/mps.html +45 -0
  69. data/public/node_modules/pivottable/examples/mps.json +1 -0
  70. data/public/node_modules/pivottable/examples/mps_agg.html +44 -0
  71. data/public/node_modules/pivottable/examples/mps_csv.html +42 -0
  72. data/public/node_modules/pivottable/examples/mps_export.html +44 -0
  73. data/public/node_modules/pivottable/examples/mps_fr.html +40 -0
  74. data/public/node_modules/pivottable/examples/mps_prepop.html +42 -0
  75. data/public/node_modules/pivottable/examples/onrefresh.html +52 -0
  76. data/public/node_modules/pivottable/examples/rcsvs.html +87 -0
  77. data/public/node_modules/pivottable/examples/scatter.html +53 -0
  78. data/public/node_modules/pivottable/examples/show_code.js +17 -0
  79. data/public/node_modules/pivottable/examples/simple.html +41 -0
  80. data/public/node_modules/pivottable/examples/simple_agg.html +51 -0
  81. data/public/node_modules/pivottable/examples/simple_function.html +57 -0
  82. data/public/node_modules/pivottable/examples/simple_ui.html +42 -0
  83. data/public/node_modules/pivottable/examples/simple_ui_from_table.html +60 -0
  84. data/public/node_modules/pivottable/export_renderers.coffee +57 -0
  85. data/public/node_modules/pivottable/gchart_renderers.coffee +111 -0
  86. data/public/node_modules/pivottable/gulpFile.js +95 -0
  87. data/public/node_modules/pivottable/images/animation.gif +0 -0
  88. data/public/node_modules/pivottable/images/filters.png +0 -0
  89. data/public/node_modules/pivottable/images/gender_age_bins.png +0 -0
  90. data/public/node_modules/pivottable/images/gender_imbalance.png +0 -0
  91. data/public/node_modules/pivottable/images/gender_imbalance_instructions.png +0 -0
  92. data/public/node_modules/pivottable/images/initial_state.png +0 -0
  93. data/public/node_modules/pivottable/images/province_x_party_heatmap.png +0 -0
  94. data/public/node_modules/pivottable/images/province_x_party_heatmap_instructions.png +0 -0
  95. data/public/node_modules/pivottable/images/simple.png +0 -0
  96. data/public/node_modules/pivottable/images/simple_ui.png +0 -0
  97. data/public/node_modules/pivottable/images/whats_what.png +0 -0
  98. data/public/node_modules/pivottable/index.html +14 -0
  99. data/public/node_modules/pivottable/node_modules/jquery/AUTHORS.txt +278 -0
  100. data/public/node_modules/pivottable/node_modules/jquery/LICENSE.txt +36 -0
  101. data/public/node_modules/pivottable/node_modules/jquery/README.md +65 -0
  102. data/public/node_modules/pivottable/node_modules/jquery/bower.json +14 -0
  103. data/public/node_modules/pivottable/node_modules/jquery/dist/jquery.js +9842 -0
  104. data/public/node_modules/pivottable/node_modules/jquery/dist/jquery.min.js +4 -0
  105. data/public/node_modules/pivottable/node_modules/jquery/dist/jquery.min.map +1 -0
  106. data/public/node_modules/pivottable/node_modules/jquery/dist/jquery.slim.js +7877 -0
  107. data/public/node_modules/pivottable/node_modules/jquery/dist/jquery.slim.min.js +4 -0
  108. data/public/node_modules/pivottable/node_modules/jquery/dist/jquery.slim.min.map +1 -0
  109. data/public/node_modules/pivottable/node_modules/jquery/package.json +122 -0
  110. data/public/node_modules/pivottable/node_modules/jquery/sizzle/LICENSE.txt +36 -0
  111. data/public/node_modules/pivottable/node_modules/jquery/sizzle/dist/sizzle.js +2143 -0
  112. data/public/node_modules/pivottable/node_modules/jquery/sizzle/dist/sizzle.min.js +3 -0
  113. data/public/node_modules/pivottable/node_modules/jquery/sizzle/dist/sizzle.min.map +1 -0
  114. data/public/node_modules/pivottable/node_modules/jquery/src/ajax.js +845 -0
  115. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/jsonp.js +100 -0
  116. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/load.js +83 -0
  117. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/parseJSON.js +13 -0
  118. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/parseXML.js +27 -0
  119. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/script.js +68 -0
  120. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/var/location.js +3 -0
  121. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/var/nonce.js +5 -0
  122. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/var/rquery.js +3 -0
  123. data/public/node_modules/pivottable/node_modules/jquery/src/ajax/xhr.js +167 -0
  124. data/public/node_modules/pivottable/node_modules/jquery/src/attributes.js +11 -0
  125. data/public/node_modules/pivottable/node_modules/jquery/src/attributes/attr.js +142 -0
  126. data/public/node_modules/pivottable/node_modules/jquery/src/attributes/classes.js +177 -0
  127. data/public/node_modules/pivottable/node_modules/jquery/src/attributes/prop.js +125 -0
  128. data/public/node_modules/pivottable/node_modules/jquery/src/attributes/support.js +36 -0
  129. data/public/node_modules/pivottable/node_modules/jquery/src/attributes/val.js +177 -0
  130. data/public/node_modules/pivottable/node_modules/jquery/src/callbacks.js +232 -0
  131. data/public/node_modules/pivottable/node_modules/jquery/src/core.js +494 -0
  132. data/public/node_modules/pivottable/node_modules/jquery/src/core/DOMEval.js +14 -0
  133. data/public/node_modules/pivottable/node_modules/jquery/src/core/access.js +65 -0
  134. data/public/node_modules/pivottable/node_modules/jquery/src/core/init.js +134 -0
  135. data/public/node_modules/pivottable/node_modules/jquery/src/core/parseHTML.js +41 -0
  136. data/public/node_modules/pivottable/node_modules/jquery/src/core/ready.js +103 -0
  137. data/public/node_modules/pivottable/node_modules/jquery/src/core/support.js +18 -0
  138. data/public/node_modules/pivottable/node_modules/jquery/src/core/var/rsingleTag.js +5 -0
  139. data/public/node_modules/pivottable/node_modules/jquery/src/css.js +515 -0
  140. data/public/node_modules/pivottable/node_modules/jquery/src/css/addGetHookIf.js +24 -0
  141. data/public/node_modules/pivottable/node_modules/jquery/src/css/adjustCSS.js +65 -0
  142. data/public/node_modules/pivottable/node_modules/jquery/src/css/curCSS.js +60 -0
  143. data/public/node_modules/pivottable/node_modules/jquery/src/css/defaultDisplay.js +72 -0
  144. data/public/node_modules/pivottable/node_modules/jquery/src/css/hiddenVisibleSelectors.js +18 -0
  145. data/public/node_modules/pivottable/node_modules/jquery/src/css/showHide.js +48 -0
  146. data/public/node_modules/pivottable/node_modules/jquery/src/css/support.js +121 -0
  147. data/public/node_modules/pivottable/node_modules/jquery/src/css/var/cssExpand.js +3 -0
  148. data/public/node_modules/pivottable/node_modules/jquery/src/css/var/getStyles.js +15 -0
  149. data/public/node_modules/pivottable/node_modules/jquery/src/css/var/isHidden.js +16 -0
  150. data/public/node_modules/pivottable/node_modules/jquery/src/css/var/rmargin.js +3 -0
  151. data/public/node_modules/pivottable/node_modules/jquery/src/css/var/rnumnonpx.js +5 -0
  152. data/public/node_modules/pivottable/node_modules/jquery/src/css/var/swap.js +24 -0
  153. data/public/node_modules/pivottable/node_modules/jquery/src/data.js +187 -0
  154. data/public/node_modules/pivottable/node_modules/jquery/src/data/Data.js +200 -0
  155. data/public/node_modules/pivottable/node_modules/jquery/src/data/accepts.js +20 -0
  156. data/public/node_modules/pivottable/node_modules/jquery/src/data/support.js +23 -0
  157. data/public/node_modules/pivottable/node_modules/jquery/src/data/var/acceptData.js +18 -0
  158. data/public/node_modules/pivottable/node_modules/jquery/src/data/var/dataPriv.js +5 -0
  159. data/public/node_modules/pivottable/node_modules/jquery/src/data/var/dataUser.js +5 -0
  160. data/public/node_modules/pivottable/node_modules/jquery/src/deferred.js +158 -0
  161. data/public/node_modules/pivottable/node_modules/jquery/src/deferred/exceptionHook.js +19 -0
  162. data/public/node_modules/pivottable/node_modules/jquery/src/deprecated.js +32 -0
  163. data/public/node_modules/pivottable/node_modules/jquery/src/dimensions.js +54 -0
  164. data/public/node_modules/pivottable/node_modules/jquery/src/effects.js +629 -0
  165. data/public/node_modules/pivottable/node_modules/jquery/src/effects/Tween.js +121 -0
  166. data/public/node_modules/pivottable/node_modules/jquery/src/effects/animatedSelector.js +13 -0
  167. data/public/node_modules/pivottable/node_modules/jquery/src/effects/support.js +58 -0
  168. data/public/node_modules/pivottable/node_modules/jquery/src/event.js +710 -0
  169. data/public/node_modules/pivottable/node_modules/jquery/src/event/ajax.js +20 -0
  170. data/public/node_modules/pivottable/node_modules/jquery/src/event/alias.js +27 -0
  171. data/public/node_modules/pivottable/node_modules/jquery/src/event/focusin.js +53 -0
  172. data/public/node_modules/pivottable/node_modules/jquery/src/event/support.js +9 -0
  173. data/public/node_modules/pivottable/node_modules/jquery/src/event/trigger.js +199 -0
  174. data/public/node_modules/pivottable/node_modules/jquery/src/exports/amd.js +24 -0
  175. data/public/node_modules/pivottable/node_modules/jquery/src/exports/global.js +26 -0
  176. data/public/node_modules/pivottable/node_modules/jquery/src/intro.js +44 -0
  177. data/public/node_modules/pivottable/node_modules/jquery/src/jquery.js +37 -0
  178. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation.js +481 -0
  179. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/_evalUrl.js +20 -0
  180. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/buildFragment.js +102 -0
  181. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/createSafeFragment.js +20 -0
  182. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/getAll.js +21 -0
  183. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/setGlobalEval.js +20 -0
  184. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/support.js +33 -0
  185. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/var/nodeNames.js +5 -0
  186. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/var/rcheckableType.js +3 -0
  187. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/var/rleadingWhitespace.js +3 -0
  188. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/var/rscriptType.js +3 -0
  189. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/var/rtagName.js +3 -0
  190. data/public/node_modules/pivottable/node_modules/jquery/src/manipulation/wrapMap.js +27 -0
  191. data/public/node_modules/pivottable/node_modules/jquery/src/offset.js +218 -0
  192. data/public/node_modules/pivottable/node_modules/jquery/src/outro.js +2 -0
  193. data/public/node_modules/pivottable/node_modules/jquery/src/queue.js +143 -0
  194. data/public/node_modules/pivottable/node_modules/jquery/src/queue/delay.js +22 -0
  195. data/public/node_modules/pivottable/node_modules/jquery/src/selector-native.js +211 -0
  196. data/public/node_modules/pivottable/node_modules/jquery/src/selector-sizzle.js +14 -0
  197. data/public/node_modules/pivottable/node_modules/jquery/src/selector.js +1 -0
  198. data/public/node_modules/pivottable/node_modules/jquery/src/serialize.js +125 -0
  199. data/public/node_modules/pivottable/node_modules/jquery/src/support.js +63 -0
  200. data/public/node_modules/pivottable/node_modules/jquery/src/traversing.js +175 -0
  201. data/public/node_modules/pivottable/node_modules/jquery/src/traversing/findFilter.js +100 -0
  202. data/public/node_modules/pivottable/node_modules/jquery/src/traversing/var/dir.js +20 -0
  203. data/public/node_modules/pivottable/node_modules/jquery/src/traversing/var/rneedsContext.js +6 -0
  204. data/public/node_modules/pivottable/node_modules/jquery/src/traversing/var/siblings.js +15 -0
  205. data/public/node_modules/pivottable/node_modules/jquery/src/var/arr.js +3 -0
  206. data/public/node_modules/pivottable/node_modules/jquery/src/var/class2type.js +5 -0
  207. data/public/node_modules/pivottable/node_modules/jquery/src/var/concat.js +5 -0
  208. data/public/node_modules/pivottable/node_modules/jquery/src/var/deletedIds.js +3 -0
  209. data/public/node_modules/pivottable/node_modules/jquery/src/var/document.js +3 -0
  210. data/public/node_modules/pivottable/node_modules/jquery/src/var/documentElement.js +5 -0
  211. data/public/node_modules/pivottable/node_modules/jquery/src/var/hasOwn.js +5 -0
  212. data/public/node_modules/pivottable/node_modules/jquery/src/var/indexOf.js +5 -0
  213. data/public/node_modules/pivottable/node_modules/jquery/src/var/pnum.js +3 -0
  214. data/public/node_modules/pivottable/node_modules/jquery/src/var/push.js +5 -0
  215. data/public/node_modules/pivottable/node_modules/jquery/src/var/rcssNum.js +7 -0
  216. data/public/node_modules/pivottable/node_modules/jquery/src/var/rnotwhite.js +3 -0
  217. data/public/node_modules/pivottable/node_modules/jquery/src/var/slice.js +5 -0
  218. data/public/node_modules/pivottable/node_modules/jquery/src/var/support.js +5 -0
  219. data/public/node_modules/pivottable/node_modules/jquery/src/var/toString.js +5 -0
  220. data/public/node_modules/pivottable/node_modules/jquery/src/wrap.js +79 -0
  221. data/public/node_modules/pivottable/package.json +70 -0
  222. data/public/node_modules/pivottable/pivot.coffee +957 -0
  223. data/public/node_modules/pivottable/pivot.es.coffee +57 -0
  224. data/public/node_modules/pivottable/pivot.fr.coffee +57 -0
  225. data/public/node_modules/pivottable/pivot.nl.coffee +55 -0
  226. data/public/node_modules/pivottable/pivot.pt.coffee +80 -0
  227. data/public/node_modules/pivottable/pivot.ru.coffee +56 -0
  228. data/public/node_modules/pivottable/pivot.tr.coffee +80 -0
  229. data/public/node_modules/pivottable/pivottable.jquery.json +33 -0
  230. data/public/node_modules/pivottable/tests/boot.js +152 -0
  231. data/public/node_modules/pivottable/tests/index.html +35 -0
  232. data/public/node_modules/pivottable/tests/pivot_spec.coffee +458 -0
  233. data/public/vendor.js +5 -0
  234. metadata +232 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["pivot.coffee"],"names":[],"mappings":"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","file":"pivot.js","sourceRoot":"/source/","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery\n \ncallWithJQuery ($) ->\n\n ###\n Utilities\n ###\n\n addSeparators = (nStr, thousandsSep, decimalSep) ->\n nStr += ''\n x = nStr.split('.')\n x1 = x[0]\n x2 = if x.length > 1 then decimalSep + x[1] else ''\n rgx = /(\\d+)(\\d{3})/\n x1 = x1.replace(rgx, '$1' + thousandsSep + '$2') while rgx.test(x1)\n return x1 + x2\n\n numberFormat = (opts) ->\n defaults = \n digitsAfterDecimal: 2, scaler: 1, \n thousandsSep: \",\", decimalSep: \".\"\n prefix: \"\", suffix: \"\"\n showZero: false\n opts = $.extend defaults, opts\n (x) ->\n return \"\" if isNaN(x) or not isFinite(x)\n return \"\" if x == 0 and not opts.showZero\n result = addSeparators (opts.scaler*x).toFixed(opts.digitsAfterDecimal), opts.thousandsSep, opts.decimalSep\n return \"\"+opts.prefix+result+opts.suffix\n\n #aggregator templates default to US number formatting but this is overrideable\n usFmt = numberFormat()\n usFmtInt = numberFormat(digitsAfterDecimal: 0)\n usFmtPct = numberFormat(digitsAfterDecimal:1, scaler: 100, suffix: \"%\")\n\n aggregatorTemplates =\n count: (formatter=usFmtInt) -> () -> (data, rowKey, colKey) ->\n count: 0\n push: -> @count++\n value: -> @count\n format: formatter\n\n countUnique: (formatter=usFmtInt) -> ([attr]) -> (data, rowKey, colKey) ->\n uniq: []\n push: (record) -> @uniq.push(record[attr]) if record[attr] not in @uniq\n value: -> @uniq.length\n format: formatter\n numInputs: if attr? then 0 else 1\n\n listUnique: (sep) -> ([attr]) -> (data, rowKey, colKey) ->\n uniq: []\n push: (record) -> @uniq.push(record[attr]) if record[attr] not in @uniq\n value: -> @uniq.join sep\n format: (x) -> x\n numInputs: if attr? then 0 else 1\n\n sum: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n sum: 0\n push: (record) -> @sum += parseFloat(record[attr]) if not isNaN parseFloat(record[attr])\n value: -> @sum\n format: formatter\n numInputs: if attr? then 0 else 1\n\n 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 ###\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).text()\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 own 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 #expose these to the outside world\n $.pivotUtilities = {aggregatorTemplates, aggregators, renderers, derivers, locales,\n naturalSort, numberFormat, sortAs, PivotData}\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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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 if not locales[locale]?\n 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 inclusions: {}\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 = false\n if opts.inclusions[c]\n filterItemExcluded = (k not in opts.inclusions[c])\n else if opts.exclusions[c]\n filterItemExcluded = (k in opts.exclusions[c])\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>\").text 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 {left: clickLeft, top: clickTop, } = $(e.currentTarget).position()\n valueList.css(left: clickLeft+10, top: clickTop+10).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 inclusions: inclusions\n inclusionsInfo: inclusions #duplicated for backwards-compatibility\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"]}
@@ -0,0 +1 @@
1
+ .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{-webkit-text-size-adjust:100%;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}
@@ -0,0 +1,2 @@
1
+ (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},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).text()}),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,o,i;for(o in n)if(a.call(n,o)&&(i=n[o],r=i(t[o],e[o]),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}(),t.pivotUtilities={aggregatorTemplates:s,aggregators:u,renderers:v,derivers:c,locales:h,naturalSort:f,numberFormat:g,sortAs:b,PivotData:o},m=function(e,n){var r,o,i,s,u,l,c,p,h,d,f,g,m,v,b,A,C,y,w,x,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.textContent=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.textContent=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.textContent=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.textContent=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),x=r.value(),b=document.createElement("td"),b.className="pvtVal row"+c+" col"+p,b.textContent=r.format(x),b.setAttribute("data-value",x),y.appendChild(b));C=e.getAggregator(g,[]),x=C.value(),b=document.createElement("td"),b.className="pvtTotal rowTotal",b.textContent=C.format(x),b.setAttribute("data-value",x),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),x=C.value(),b=document.createElement("td"),b.className="pvtTotal colTotal",b.textContent=C.format(x),b.setAttribute("data-value",x),b.setAttribute("data-for","col"+p),y.appendChild(b));return C=e.getAggregator([],[]),x=C.value(),b=document.createElement("td"),b.className="pvtGrandTotal",b.textContent=C.format(x),b.setAttribute("data-value",x),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,c,p;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),c=null;try{l=new o(e,n);try{c=n.renderer(l,n.rendererOptions)}catch(i){a=i,"undefined"!=typeof console&&null!==console&&console.error(a.stack),c=t("<span>").html(n.localeStrings.renderError)}}catch(u){a=u,"undefined"!=typeof console&&null!==console&&console.error(a.stack),c=t("<span>").html(n.localeStrings.computeError)}for(p=this[0];p.hasChildNodes();)p.removeChild(p.lastChild);return this.append(c)},t.fn.pivotUI=function(n,r,i,s){var u,l,c,d,g,m,v,b,A,C,y,w,x,N,T,S,F,E,D,k,R,I,O,M,K,L,q,U,V,j,H,B,P,J,_,z,Q,W,Z,$,G;null==i&&(i=!1),null==s&&(s="en"),null==h[s]&&(s="en"),v={derivedAttributes:{},aggregators:h[s].aggregators,renderers:h[s].renderers,hiddenAttributes:[],menuLimit:200,cols:[],rows:[],vals:[],exclusions:{},inclusions:{},unusedAttrsVertical:85,autoSortUnusedAttrs:!1,rendererOptions:{localeStrings:h[s].localeStrings},onRefresh:null,filter:function(){return!0},sorters:function(){},localeStrings:h[s].localeStrings},C=this.data("pivotUIOptions"),I=null==C||i?t.extend(v,r):C;try{n=o.convertToArray(n),_=function(){var t,e;t=n[0],e=[];for(N in t)a.call(t,N)&&e.push(N);return e}(),K=I.derivedAttributes;for(g in K)a.call(K,g)&&e.call(_,g)<0&&_.push(g);for(d={},T=0,S=_.length;S>T;T++)G=_[T],d[G]={};o.forEachRecord(n,I.derivedAttributes,function(t){var e,n,r;n=[];for(N in t)a.call(t,N)&&(r=t[N],I.filter(t)&&(null==r&&(r="null"),null==(e=d[N])[r]&&(e[r]=0),n.push(d[N][r]++)));return n}),W=t("<table>",{"class":"pvtUi"}).attr("cellpadding",5),P=t("<td>"),B=t("<select>").addClass("pvtRenderer").appendTo(P).bind("change",function(){return j()}),L=I.renderers;for(G in L)a.call(L,G)&&t("<option>").val(G).html(G).appendTo(B);if(m=t("<td>").addClass("pvtAxisContainer pvtUnused"),J=function(){var t,n,r;for(r=[],n=0,t=_.length;t>n;n++)g=_[n],e.call(I.hiddenAttributes,g)<0&&r.push(g);return r}(),$=!1,Z="auto"===I.unusedAttrsVertical?120:parseInt(I.unusedAttrsVertical),!isNaN(Z)){for(c=0,k=0,F=J.length;F>k;k++)u=J[k],c+=u.length;$=c>Z}I.unusedAttrsVertical===!0||$?m.addClass("pvtVertList"):m.addClass("pvtHorizList"),y=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(N in d[n])t.push(N);return t}(),u=!1,C=t("<div>").addClass("pvtFilterBox").hide(),C.append(t("<h4>").text(n+" ("+l.length+")")),l.length>I.menuLimit)C.append(t("<p>").html(I.localeStrings.tooMany));else for(a=t("<p>").appendTo(C),a.append(t("<button>",{type:"button"}).html(I.localeStrings.selectAll).bind("click",function(){return C.find("input:visible").prop("checked",!0)})),a.append(t("<button>",{type:"button"}).html(I.localeStrings.selectNone).bind("click",function(){return C.find("input:visible").prop("checked",!1)})),a.append(t("<br>")),a.append(t("<input>",{type:"text",placeholder:I.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(I.sorters,n)),h=0,c=f.length;c>h;h++)N=f[h],A=d[n][N],i=t("<label>"),s=!1,I.inclusions[n]?s=e.call(I.inclusions[n],N)<0:I.exclusions[n]&&(s=e.call(I.exclusions[n],N)>=0),u||(u=s),t("<input>").attr("type","checkbox").addClass("pvtFilter").attr("checked",!s).data("filter",[n,N]).appendTo(i),i.append(t("<span>").text(N)),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>I.menuLimit?C.toggle():C.toggle(0,j)},t("<p>").appendTo(C).append(t("<button>",{type:"button"}).text("OK").bind("click",b)),g=function(e){var n,r,a;return a=t(e.currentTarget).position(),n=a.left,r=a.top,C.css({left:n+10,top:r+10}).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_"+w).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(w in J)a.call(J,w)&&(g=J[w],y(g));z=t("<tr>").appendTo(W),l=t("<select>").addClass("pvtAggregator").bind("change",function(){return j()}),q=I.aggregators;for(G in q)a.call(q,G)&&l.append(t("<option>").val(G).html(G));for(t("<td>").addClass("pvtVals").appendTo(z).append(l).append(t("<br>")),t("<td>").addClass("pvtAxisContainer pvtHorizList pvtCols").appendTo(z),Q=t("<tr>").appendTo(W),Q.append(t("<td>").addClass("pvtAxisContainer pvtRows").attr("valign","top")),O=t("<td>").attr("valign","top").addClass("pvtRendererArea").appendTo(Q),I.unusedAttrsVertical===!0||$?(W.find("tr:nth-child(1)").prepend(P),W.find("tr:nth-child(2)").prepend(m)):W.prepend(t("<tr>").append(P).append(m)),this.html(W),U=I.cols,R=0,E=U.length;E>R;R++)G=U[R],this.find(".pvtCols").append(this.find(".axis_"+t.inArray(G,J)));for(V=I.rows,M=0,D=V.length;D>M;M++)G=V[M],this.find(".pvtRows").append(this.find(".axis_"+t.inArray(G,J)));null!=I.aggregatorName&&this.find(".pvtAggregator").val(I.aggregatorName),null!=I.rendererName&&this.find(".pvtRenderer").val(I.rendererName),x=!0,H=function(r){return function(){var a,o,i,s,u,c,p,h,d,g,m,v,b,A,C;if(v={derivedAttributes:I.derivedAttributes,localeStrings:I.localeStrings,rendererOptions:I.rendererOptions,sorters:I.sorters,cols:[],rows:[]},c=null!=(d=I.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"),G=m=0,g=c;g>=0?g>m:m>g;G=g>=0?++m:--m){for(u=t("<select>").addClass("pvtAttrDropdown").append(t("<option>")).bind("change",function(){return j()}),b=0,s=J.length;s>b;b++)a=J[b],u.append(t("<option>").val(a).text(a));h.append(u)}return x&&(C=I.vals,w=0,r.find(".pvtVals select.pvtAttrDropdown").each(function(){return t(this).val(C[w]),w++}),x=!1),v.aggregatorName=l.val(),v.vals=C,v.aggregator=I.aggregators[l.val()](C),v.renderer=I.renderers[B.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(!I.filter(t))return!1;for(N in o)if(n=o[N],r=""+t[N],e.call(n,r)>=0)return!1;return!0},O.pivot(n,v),p=t.extend(I,{cols:v.cols,rows:v.rows,vals:C,exclusions:o,inclusions:i,inclusionsInfo:i,aggregatorName:l.val(),rendererName:B.val()}),r.data("pivotUIOptions",p),I.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)),O.css("opacity",1),null!=I.onRefresh?I.onRefresh(p):void 0}}(this),j=function(t){return function(){return O.css("opacity",.5),setTimeout(H,10)}}(this),j(),this.find(".pvtAxisContainer").sortable({update:function(t,e){return null==e.sender?j():void 0},connectWith:this.find(".pvtAxisContainer"),items:"li",placeholder:"pvtPlaceholder"})}catch(A){b=A,"undefined"!=typeof console&&null!==console&&console.error(b.stack),this.html(I.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);
2
+ //# sourceMappingURL=pivot.min.js.map
@@ -0,0 +1 @@
1
+ {"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","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","Error","convertToArray","prototype","attrs","sortersArr","comparison","sorter","flatColKey","flatRowKey","len2","n","ref1","ref2","ref3","fromCharCode","agg","pivotUtilities","pivotData","c","r","spanSize","td","th","totalAggregator","tr","txt","document","createElement","className","arr","noDraw","stop","parseInt","setAttribute","appendChild","textContent","innerHTML","pivot","e","error","error1","renderer","rendererOptions","console","stack","html","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","inclusions","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","clickLeft","clickTop","currentTarget","position","left","top","css","prepend","inArray","rendererName","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","height","bottom","right","background-color","padding-left","padding-right","padding","padding-top","text-align"],"mappings":"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","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 ###\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).text()\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 own 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 #expose these to the outside world\n $.pivotUtilities = {aggregatorTemplates, aggregators, renderers, derivers, locales,\n naturalSort, numberFormat, sortAs, PivotData}\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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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 if not locales[locale]?\n 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 inclusions: {}\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 = false\n if opts.inclusions[c]\n filterItemExcluded = (k not in opts.inclusions[c])\n else if opts.exclusions[c]\n filterItemExcluded = (k in opts.exclusions[c])\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>\").text 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 {left: clickLeft, top: clickTop, } = $(e.currentTarget).position()\n valueList.css(left: clickLeft+10, top: clickTop+10).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 inclusions: inclusions\n inclusionsInfo: inclusions #duplicated for backwards-compatibility\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() {\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\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).text();\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 if (!hasProp.call(sortersArr, i)) continue;\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 $.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 PivotData: PivotData\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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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.textContent = 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, error, error1, 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 (error1) {\n e = error1;\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, error, 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 if (locales[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 inclusions: {},\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 = false;\n if (opts.inclusions[c]) {\n filterItemExcluded = (indexOf.call(opts.inclusions[c], k) < 0);\n } else if (opts.exclusions[c]) {\n filterItemExcluded = (indexOf.call(opts.exclusions[c], k) >= 0);\n }\n hasExcludedItem || (hasExcludedItem = filterItemExcluded);\n $(\"<input>\").attr(\"type\", \"checkbox\").addClass('pvtFilter').attr(\"checked\", !filterItemExcluded).data(\"filter\", [c, k]).appendTo(filterItem);\n filterItem.append($(\"<span>\").text(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 var clickLeft, clickTop, ref3;\n ref3 = $(e.currentTarget).position(), clickLeft = ref3.left, clickTop = ref3.top;\n valueList.css({\n left: clickLeft + 10,\n top: clickTop + 10\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 inclusions: inclusions,\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\n"],"sourceRoot":"/source/"}
@@ -0,0 +1,78 @@
1
+ (function() {
2
+ var callWithJQuery;
3
+
4
+ callWithJQuery = function(pivotModule) {
5
+ if (typeof exports === "object" && typeof module === "object") {
6
+ return pivotModule(require("jquery"));
7
+ } else if (typeof define === "function" && define.amd) {
8
+ return define(["jquery"], pivotModule);
9
+ } else {
10
+ return pivotModule(jQuery);
11
+ }
12
+ };
13
+
14
+ callWithJQuery(function($) {
15
+ var frFmt, frFmtInt, frFmtPct, nf, tpl;
16
+ nf = $.pivotUtilities.numberFormat;
17
+ tpl = $.pivotUtilities.aggregatorTemplates;
18
+ frFmt = nf({
19
+ thousandsSep: " ",
20
+ decimalSep: ","
21
+ });
22
+ frFmtInt = nf({
23
+ digitsAfterDecimal: 0,
24
+ thousandsSep: " ",
25
+ decimalSep: ","
26
+ });
27
+ frFmtPct = nf({
28
+ digitsAfterDecimal: 1,
29
+ scaler: 100,
30
+ suffix: "%",
31
+ thousandsSep: " ",
32
+ decimalSep: ","
33
+ });
34
+ return $.pivotUtilities.locales.fr = {
35
+ localeStrings: {
36
+ renderError: "Er is een fout opgetreden bij het renderen van de kruistabel..",
37
+ computeError: "Er is een fout opgetreden bij het berekenen van de kruistabel.",
38
+ uiRenderError: "Er is een fout opgetreden bij het tekenen van de interface van de kruistabel.",
39
+ selectAll: "Alles selecteren",
40
+ selectNone: "Niets selecteren",
41
+ tooMany: "(te veel waarden om weer te geven)",
42
+ filterResults: "Filter resultaten",
43
+ totals: "Totaal",
44
+ vs: "versus",
45
+ by: "per"
46
+ },
47
+ aggregators: {
48
+ "Aantal": tpl.count(frFmtInt),
49
+ "Aantal unieke waarden": tpl.countUnique(frFmtInt),
50
+ "Lijst unieke waarden": tpl.listUnique(", "),
51
+ "Som": tpl.sum(frFmt),
52
+ "Som van gehele getallen": tpl.sum(frFmtInt),
53
+ "Gemiddelde": tpl.average(frFmt),
54
+ "Minimum": tpl.min(frFmt),
55
+ "Maximum": tpl.max(frFmt),
56
+ "Som over som": tpl.sumOverSum(frFmt),
57
+ "80% bovengrens": tpl.sumOverSumBound80(true, frFmt),
58
+ "80% ondergrens": tpl.sumOverSumBound80(false, frFmt),
59
+ "Som in verhouding tot het totaal": tpl.fractionOf(tpl.sum(), "total", frFmtPct),
60
+ "Som in verhouding tot de rij": tpl.fractionOf(tpl.sum(), "row", frFmtPct),
61
+ "Som in verhouding tot de kolom": tpl.fractionOf(tpl.sum(), "col", frFmtPct),
62
+ "Aantal in verhouding tot het totaal": tpl.fractionOf(tpl.count(), "total", frFmtPct),
63
+ "Aantal in verhouding tot de rij": tpl.fractionOf(tpl.count(), "row", frFmtPct),
64
+ "Aantal in verhouding tot de kolom": tpl.fractionOf(tpl.count(), "col", frFmtPct)
65
+ },
66
+ renderers: {
67
+ "Tabel": $.pivotUtilities.renderers["Table"],
68
+ "Tabel met staafdiagrammen": $.pivotUtilities.renderers["Table Barchart"],
69
+ "Warmtekaart": $.pivotUtilities.renderers["Heatmap"],
70
+ "Warmtekaart per rij": $.pivotUtilities.renderers["Row Heatmap"],
71
+ "Warmtekaart per kolom": $.pivotUtilities.renderers["Col Heatmap"]
72
+ }
73
+ };
74
+ });
75
+
76
+ }).call(this);
77
+
78
+ //# sourceMappingURL=pivot.nl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["pivot.nl.coffee"],"names":[],"mappings":"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","file":"pivot.nl.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: \"Er is een fout opgetreden bij het renderen van de kruistabel..\"\n computeError: \"Er is een fout opgetreden bij het berekenen van de kruistabel.\"\n uiRenderError: \"Er is een fout opgetreden bij het tekenen van de interface van de kruistabel.\"\n selectAll: \"Alles selecteren\"\n selectNone: \"Niets selecteren\"\n tooMany: \"(te veel waarden om weer te geven)\"\n filterResults: \"Filter resultaten\"\n totals: \"Totaal\"\n vs: \"versus\"\n by: \"per\"\n\n aggregators: \n \"Aantal\": tpl.count(frFmtInt)\n \"Aantal unieke waarden\": tpl.countUnique(frFmtInt)\n \"Lijst unieke waarden\": tpl.listUnique(\", \")\n \"Som\": tpl.sum(frFmt)\n \"Som van gehele getallen\": tpl.sum(frFmtInt)\n \"Gemiddelde\": tpl.average(frFmt)\n \"Minimum\": tpl.min(frFmt)\n \"Maximum\": tpl.max(frFmt)\n \"Som over som\": tpl.sumOverSum(frFmt)\n \"80% bovengrens\": tpl.sumOverSumBound80(true, frFmt)\n \"80% ondergrens\": \t\t\t tpl.sumOverSumBound80(false, frFmt)\n \"Som in verhouding tot het totaal\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Som in verhouding tot de rij\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Som in verhouding tot de kolom\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Aantal in verhouding tot het totaal\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Aantal in verhouding tot de rij\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Aantal in verhouding tot de kolom\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Tabel\": $.pivotUtilities.renderers[\"Table\"]\n \"Tabel met staafdiagrammen\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Warmtekaart\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Warmtekaart per rij\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Warmtekaart per kolom\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n"]}
@@ -0,0 +1,2 @@
1
+ (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 t,r,i,n,o;return n=e.pivotUtilities.numberFormat,o=e.pivotUtilities.aggregatorTemplates,t=n({thousandsSep:" ",decimalSep:","}),r=n({digitsAfterDecimal:0,thousandsSep:" ",decimalSep:","}),i=n({digitsAfterDecimal:1,scaler:100,suffix:"%",thousandsSep:" ",decimalSep:","}),e.pivotUtilities.locales.fr={localeStrings:{renderError:"Er is een fout opgetreden bij het renderen van de kruistabel..",computeError:"Er is een fout opgetreden bij het berekenen van de kruistabel.",uiRenderError:"Er is een fout opgetreden bij het tekenen van de interface van de kruistabel.",selectAll:"Alles selecteren",selectNone:"Niets selecteren",tooMany:"(te veel waarden om weer te geven)",filterResults:"Filter resultaten",totals:"Totaal",vs:"versus",by:"per"},aggregators:{Aantal:o.count(r),"Aantal unieke waarden":o.countUnique(r),"Lijst unieke waarden":o.listUnique(", "),Som:o.sum(t),"Som van gehele getallen":o.sum(r),Gemiddelde:o.average(t),Minimum:o.min(t),Maximum:o.max(t),"Som over som":o.sumOverSum(t),"80% bovengrens":o.sumOverSumBound80(!0,t),"80% ondergrens":o.sumOverSumBound80(!1,t),"Som in verhouding tot het totaal":o.fractionOf(o.sum(),"total",i),"Som in verhouding tot de rij":o.fractionOf(o.sum(),"row",i),"Som in verhouding tot de kolom":o.fractionOf(o.sum(),"col",i),"Aantal in verhouding tot het totaal":o.fractionOf(o.count(),"total",i),"Aantal in verhouding tot de rij":o.fractionOf(o.count(),"row",i),"Aantal in verhouding tot de kolom":o.fractionOf(o.count(),"col",i)},renderers:{Tabel:e.pivotUtilities.renderers.Table,"Tabel met staafdiagrammen":e.pivotUtilities.renderers["Table Barchart"],Warmtekaart:e.pivotUtilities.renderers.Heatmap,"Warmtekaart per rij":e.pivotUtilities.renderers["Row Heatmap"],"Warmtekaart per kolom":e.pivotUtilities.renderers["Col Heatmap"]}}})}).call(this);
2
+ //# sourceMappingURL=pivot.nl.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/source/pivot.nl.coffee","pivot.nl.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","Aantal","count","Aantal unieke waarden","countUnique","Lijst unieke waarden","listUnique","Som","sum","Som van gehele getallen","Gemiddelde","average","Minimum","min","Maximum","max","Som over som","sumOverSum","80% bovengrens","sumOverSumBound80","80% ondergrens","Som in verhouding tot het totaal","fractionOf","Som in verhouding tot de rij","Som in verhouding tot de kolom","Aantal in verhouding tot het totaal","Aantal in verhouding tot de rij","Aantal in verhouding tot de kolom","renderers","Tabel","Tabel met staafdiagrammen","Warmtekaart","Warmtekaart per rij","Warmtekaart per kolom","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAXC,UAAyC,gBAAVC,QACrCF,EAAYG,QAAQ,WACC,kBAAVC,SAAyBA,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,gFACfC,UAAW,mBACXC,WAAY,mBACZC,QAAS,qCACTC,cAAe,oBACfC,OAAQ,SACRC,GAAI,SACJC,GAAI,OAERC,aACIC,OAAuCvB,EAAIwB,MAAM3B,GACjD4B,wBAAuCzB,EAAI0B,YAAY7B,GACvD8B,uBAAuC3B,EAAI4B,WAAW,MACtDC,IAAuC7B,EAAI8B,IAAIlC,GAC/CmC,0BAAuC/B,EAAI8B,IAAIjC,GAC/CmC,WAAuChC,EAAIiC,QAAQrC,GACnDsC,QAAuClC,EAAImC,IAAIvC,GAC/CwC,QAAuCpC,EAAIqC,IAAIzC,GAC/C0C,eAAuCtC,EAAIuC,WAAW3C,GACtD4C,iBAAuCxC,EAAIyC,mBAAkB,EAAM7C,GACnE8C,iBAA+B1C,EAAIyC,mBAAkB,EAAO7C,GAC5D+C,mCAAuC3C,EAAI4C,WAAW5C,EAAI8B,MAAS,QAAShC,GAC5E+C,+BAAuC7C,EAAI4C,WAAW5C,EAAI8B,MAAS,MAAShC,GAC5EgD,iCAAuC9C,EAAI4C,WAAW5C,EAAI8B,MAAS,MAAShC,GAC5EiD,sCAAuC/C,EAAI4C,WAAW5C,EAAIwB,QAAS,QAAS1B,GAC5EkD,kCAAuChD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAS1B,GAC5EmD,oCAAuCjD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAS1B,IAEhFoD,WACIC,MAAmCxD,EAAEM,eAAeiD,UAAU,MAC9DE,4BAA2CzD,EAAEM,eAAeiD,UAAU,kBACtEG,YAAmC1D,EAAEM,eAAeiD,UAAU,QAC9DI,sBAAmC3D,EAAEM,eAAeiD,UAAU,eAC9DK,wBAAmC5D,EAAEM,eAAeiD,UAAU,qBCqBvEM,KAAKC","file":"pivot.nl.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: \"Er is een fout opgetreden bij het renderen van de kruistabel..\"\n computeError: \"Er is een fout opgetreden bij het berekenen van de kruistabel.\"\n uiRenderError: \"Er is een fout opgetreden bij het tekenen van de interface van de kruistabel.\"\n selectAll: \"Alles selecteren\"\n selectNone: \"Niets selecteren\"\n tooMany: \"(te veel waarden om weer te geven)\"\n filterResults: \"Filter resultaten\"\n totals: \"Totaal\"\n vs: \"versus\"\n by: \"per\"\n\n aggregators: \n \"Aantal\": tpl.count(frFmtInt)\n \"Aantal unieke waarden\": tpl.countUnique(frFmtInt)\n \"Lijst unieke waarden\": tpl.listUnique(\", \")\n \"Som\": tpl.sum(frFmt)\n \"Som van gehele getallen\": tpl.sum(frFmtInt)\n \"Gemiddelde\": tpl.average(frFmt)\n \"Minimum\": tpl.min(frFmt)\n \"Maximum\": tpl.max(frFmt)\n \"Som over som\": tpl.sumOverSum(frFmt)\n \"80% bovengrens\": tpl.sumOverSumBound80(true, frFmt)\n \"80% ondergrens\": \t\t\t tpl.sumOverSumBound80(false, frFmt)\n \"Som in verhouding tot het totaal\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct)\n \"Som in verhouding tot de rij\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct)\n \"Som in verhouding tot de kolom\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct)\n \"Aantal in verhouding tot het totaal\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct)\n \"Aantal in verhouding tot de rij\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct)\n \"Aantal in verhouding tot de kolom\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Tabel\": $.pivotUtilities.renderers[\"Table\"]\n \"Tabel met staafdiagrammen\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Warmtekaart\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Warmtekaart per rij\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Warmtekaart per kolom\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n","(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: \"Er is een fout opgetreden bij het renderen van de kruistabel..\",\n computeError: \"Er is een fout opgetreden bij het berekenen van de kruistabel.\",\n uiRenderError: \"Er is een fout opgetreden bij het tekenen van de interface van de kruistabel.\",\n selectAll: \"Alles selecteren\",\n selectNone: \"Niets selecteren\",\n tooMany: \"(te veel waarden om weer te geven)\",\n filterResults: \"Filter resultaten\",\n totals: \"Totaal\",\n vs: \"versus\",\n by: \"per\"\n },\n aggregators: {\n \"Aantal\": tpl.count(frFmtInt),\n \"Aantal unieke waarden\": tpl.countUnique(frFmtInt),\n \"Lijst unieke waarden\": tpl.listUnique(\", \"),\n \"Som\": tpl.sum(frFmt),\n \"Som van gehele getallen\": tpl.sum(frFmtInt),\n \"Gemiddelde\": tpl.average(frFmt),\n \"Minimum\": tpl.min(frFmt),\n \"Maximum\": tpl.max(frFmt),\n \"Som over som\": tpl.sumOverSum(frFmt),\n \"80% bovengrens\": tpl.sumOverSumBound80(true, frFmt),\n \"80% ondergrens\": tpl.sumOverSumBound80(false, frFmt),\n \"Som in verhouding tot het totaal\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct),\n \"Som in verhouding tot de rij\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct),\n \"Som in verhouding tot de kolom\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct),\n \"Aantal in verhouding tot het totaal\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct),\n \"Aantal in verhouding tot de rij\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct),\n \"Aantal in verhouding tot de kolom\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n },\n renderers: {\n \"Tabel\": $.pivotUtilities.renderers[\"Table\"],\n \"Tabel met staafdiagrammen\": $.pivotUtilities.renderers[\"Table Barchart\"],\n \"Warmtekaart\": $.pivotUtilities.renderers[\"Heatmap\"],\n \"Warmtekaart per rij\": $.pivotUtilities.renderers[\"Row Heatmap\"],\n \"Warmtekaart per kolom\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n }\n };\n });\n\n}).call(this);\n\n//# sourceMappingURL=pivot.nl.js.map\n"],"sourceRoot":"/source/"}
@@ -0,0 +1,104 @@
1
+ (function() {
2
+ var callWithJQuery;
3
+
4
+ callWithJQuery = function(pivotModule) {
5
+ if (typeof exports === "object" && typeof module === "object") {
6
+ return pivotModule(require("jquery"));
7
+ } else if (typeof define === "function" && define.amd) {
8
+ return define(["jquery"], pivotModule);
9
+ } else {
10
+ return pivotModule(jQuery);
11
+ }
12
+ };
13
+
14
+ callWithJQuery(function($) {
15
+ var c3r, d3r, frFmt, frFmtInt, frFmtPct, gcr, nf, r, tpl;
16
+ nf = $.pivotUtilities.numberFormat;
17
+ tpl = $.pivotUtilities.aggregatorTemplates;
18
+ r = $.pivotUtilities.renderers;
19
+ gcr = $.pivotUtilities.gchart_renderers;
20
+ d3r = $.pivotUtilities.d3_renderers;
21
+ c3r = $.pivotUtilities.c3_renderers;
22
+ frFmt = nf({
23
+ thousandsSep: ".",
24
+ decimalSep: ","
25
+ });
26
+ frFmtInt = nf({
27
+ digitsAfterDecimal: 0,
28
+ thousandsSep: ".",
29
+ decimalSep: ","
30
+ });
31
+ frFmtPct = nf({
32
+ digitsAfterDecimal: 2,
33
+ scaler: 100,
34
+ suffix: "%",
35
+ thousandsSep: ".",
36
+ decimalSep: ","
37
+ });
38
+ $.pivotUtilities.locales.pt = {
39
+ localeStrings: {
40
+ renderError: "Ocorreu um error ao renderizar os resultados da Tabela Din&atilde;mica.",
41
+ computeError: "Ocorreu um error ao computar os resultados da Tabela Din&atilde;mica.",
42
+ uiRenderError: "Ocorreu um error ao renderizar a interface da Tabela Din&atilde;mica.",
43
+ selectAll: "Selecionar Tudo",
44
+ selectNone: "Selecionar Nenhum",
45
+ tooMany: "(demais para listar)",
46
+ filterResults: "Filtrar resultados",
47
+ totals: "Totais",
48
+ vs: "vs",
49
+ by: "por"
50
+ },
51
+ aggregators: {
52
+ "Contagem": tpl.count(frFmtInt),
53
+ "Contagem de Valores &uacute;nicos": tpl.countUnique(frFmtInt),
54
+ "Lista de Valores &uacute;nicos": tpl.listUnique(", "),
55
+ "Soma": tpl.sum(frFmt),
56
+ "Soma de Inteiros": tpl.sum(frFmtInt),
57
+ "Média": tpl.average(frFmt),
58
+ "Mínimo": tpl.min(frFmt),
59
+ "Máximo": tpl.max(frFmt),
60
+ "Soma sobre Soma": tpl.sumOverSum(frFmt),
61
+ "Limite Superior a 80%": tpl.sumOverSumBound80(true, frFmt),
62
+ "Limite Inferior a 80%": tpl.sumOverSumBound80(false, frFmt),
63
+ "Soma como Fra&ccedil;&atilde;o do Total": tpl.fractionOf(tpl.sum(), "total", frFmtPct),
64
+ "Soma como Fra&ccedil;&atilde;o da Linha": tpl.fractionOf(tpl.sum(), "row", frFmtPct),
65
+ "Soma como Fra&ccedil;&atilde;o da Coluna": tpl.fractionOf(tpl.sum(), "col", frFmtPct),
66
+ "Contagem como Fra&ccedil;&atilde;o do Total": tpl.fractionOf(tpl.count(), "total", frFmtPct),
67
+ "Contagem como Fra&ccedil;&atilde;o da Linha": tpl.fractionOf(tpl.count(), "row", frFmtPct),
68
+ "Contagem como Fra&ccedil;&atilde;o da Coluna": tpl.fractionOf(tpl.count(), "col", frFmtPct)
69
+ },
70
+ renderers: {
71
+ "Tabela": r["Table"],
72
+ "Tabela com Barras": r["Table Barchart"],
73
+ "Mapa de Calor": r["Heatmap"],
74
+ "Mapa de Calor por Linhas": r["Row Heatmap"],
75
+ "Mapa de Calor por Colunas": r["Col Heatmap"]
76
+ }
77
+ };
78
+ if (gcr) {
79
+ $.pivotUtilities.locales.pt.gchart_renderers = {
80
+ "Gr&aacute;fico de Linhas": gcr["Line Chart"],
81
+ "Gr&aacute;fico de Barras": gcr["Bar Chart"],
82
+ "Gr&aacute;fico de Barras Empilhadas": gcr["Stacked Bar Chart"],
83
+ "Gr&aacute;fico de &Aacute;rea": gcr["Area Chart"]
84
+ };
85
+ }
86
+ if (d3r) {
87
+ $.pivotUtilities.locales.pt.d3_renderers = {
88
+ "Mapa de Árvore": d3r["Treemap"]
89
+ };
90
+ }
91
+ if (c3r) {
92
+ $.pivotUtilities.locales.pt.c3_renderers = {
93
+ "Gr&aacute;fico de Linhas": c3r["Line Chart"],
94
+ "Gr&aacute;fico de Barras": c3r["Bar Chart"],
95
+ "Gr&aacute;fico de Barras Empilhadas": c3r["Stacked Bar Chart"],
96
+ "Gr&aacute;fico de &Aacute;rea": c3r["Area Chart"]
97
+ };
98
+ }
99
+ return $.pivotUtilities.locales.pt;
100
+ });
101
+
102
+ }).call(this);
103
+
104
+ //# sourceMappingURL=pivot.pt.js.map
@@ -0,0 +1 @@
1
+ {"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\"]\n \"Gr&aacute;fico de Barras\": c3r[\"Bar Chart\"]\n \"Gr&aacute;fico de Barras Empilhadas\": c3r[\"Stacked Bar Chart\"]\n \"Gr&aacute;fico de &Aacute;rea\": c3r[\"Area Chart\"]\n\n return $.pivotUtilities.locales.pt\n"]}
@@ -0,0 +1,2 @@
1
+ (function(){var a;(a=function(a){return"object"==typeof exports&&"object"==typeof module?a(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)})(function(a){var e,r,o,t,i,c,l,s,d;return l=a.pivotUtilities.numberFormat,d=a.pivotUtilities.aggregatorTemplates,s=a.pivotUtilities.renderers,c=a.pivotUtilities.gchart_renderers,r=a.pivotUtilities.d3_renderers,e=a.pivotUtilities.c3_renderers,o=l({thousandsSep:".",decimalSep:","}),t=l({digitsAfterDecimal:0,thousandsSep:".",decimalSep:","}),i=l({digitsAfterDecimal:2,scaler:100,suffix:"%",thousandsSep:".",decimalSep:","}),a.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:d.count(t),"Contagem de Valores &uacute;nicos":d.countUnique(t),"Lista de Valores &uacute;nicos":d.listUnique(", "),Soma:d.sum(o),"Soma de Inteiros":d.sum(t),"Média":d.average(o),"Mínimo":d.min(o),"Máximo":d.max(o),"Soma sobre Soma":d.sumOverSum(o),"Limite Superior a 80%":d.sumOverSumBound80(!0,o),"Limite Inferior a 80%":d.sumOverSumBound80(!1,o),"Soma como Fra&ccedil;&atilde;o do Total":d.fractionOf(d.sum(),"total",i),"Soma como Fra&ccedil;&atilde;o da Linha":d.fractionOf(d.sum(),"row",i),"Soma como Fra&ccedil;&atilde;o da Coluna":d.fractionOf(d.sum(),"col",i),"Contagem como Fra&ccedil;&atilde;o do Total":d.fractionOf(d.count(),"total",i),"Contagem como Fra&ccedil;&atilde;o da Linha":d.fractionOf(d.count(),"row",i),"Contagem como Fra&ccedil;&atilde;o da Coluna":d.fractionOf(d.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&&(a.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&&(a.pivotUtilities.locales.pt.d3_renderers={"Mapa de Árvore":r.Treemap}),e&&(a.pivotUtilities.locales.pt.c3_renderers={"Gr&aacute;fico de Linhas":e["Line Chart"],"Gr&aacute;fico de Barras":e["Bar Chart"],"Gr&aacute;fico de Barras Empilhadas":e["Stacked Bar Chart"],"Gr&aacute;fico de &Aacute;rea":e["Area Chart"]}),a.pivotUtilities.locales.pt})}).call(this);
2
+ //# sourceMappingURL=pivot.pt.min.js.map
@@ -0,0 +1 @@
1
+ {"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,gBAAXC,UAAyC,gBAAVC,QACrCF,EAAYG,QAAQ,WACC,kBAAVC,SAAyBA,OAAOC,IAC3CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAEL,SAACC,GACZ,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAqEA,OArEAF,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,cAChCoE,2BAA4BpE,EAAI,aAChCqE,sCAAuCrE,EAAI,qBAC3CsE,gCAAuCtE,EAAI,gBAExCD,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\"]\n \"Gr&aacute;fico de Barras\": c3r[\"Bar Chart\"]\n \"Gr&aacute;fico de Barras Empilhadas\": c3r[\"Stacked Bar Chart\"]\n \"Gr&aacute;fico de &Aacute;rea\": c3r[\"Area Chart\"]\n\n return $.pivotUtilities.locales.pt\n","(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\"],\n \"Gr&aacute;fico de Barras\": c3r[\"Bar Chart\"],\n \"Gr&aacute;fico de Barras Empilhadas\": c3r[\"Stacked Bar Chart\"],\n \"Gr&aacute;fico de &Aacute;rea\": c3r[\"Area Chart\"]\n };\n }\n return $.pivotUtilities.locales.pt;\n });\n\n}).call(this);\n\n//# sourceMappingURL=pivot.pt.js.map\n"],"sourceRoot":"/source/"}
@@ -0,0 +1,78 @@
1
+ (function() {
2
+ var callWithJQuery;
3
+
4
+ callWithJQuery = function(pivotModule) {
5
+ if (typeof exports === "object" && typeof module === "object") {
6
+ return pivotModule(require("jquery"));
7
+ } else if (typeof define === "function" && define.amd) {
8
+ return define(["jquery"], pivotModule);
9
+ } else {
10
+ return pivotModule(jQuery);
11
+ }
12
+ };
13
+
14
+ callWithJQuery(function($) {
15
+ var frFmt, frFmtInt, frFmtPct, nf, tpl;
16
+ nf = $.pivotUtilities.numberFormat;
17
+ tpl = $.pivotUtilities.aggregatorTemplates;
18
+ frFmt = nf({
19
+ thousandsSep: " ",
20
+ decimalSep: ","
21
+ });
22
+ frFmtInt = nf({
23
+ digitsAfterDecimal: 0,
24
+ thousandsSep: " ",
25
+ decimalSep: ","
26
+ });
27
+ frFmtPct = nf({
28
+ digitsAfterDecimal: 1,
29
+ scaler: 100,
30
+ suffix: "%",
31
+ thousandsSep: " ",
32
+ decimalSep: ","
33
+ });
34
+ return $.pivotUtilities.locales.ru = {
35
+ localeStrings: {
36
+ renderError: "Ошибка рендеринга страницы;.",
37
+ computeError: "Ошибка табличных расчетов;.",
38
+ uiRenderError: "Ошибка во время прорисовки и динамического расчета таблицы.",
39
+ selectAll: "Выбрать все",
40
+ selectNone: "Ничего не выбирать",
41
+ tooMany: "(Выбрано слишком много значений)",
42
+ filterResults: "Значение фильтра",
43
+ totals: "Всего",
44
+ vs: "на",
45
+ by: "с"
46
+ },
47
+ aggregators: {
48
+ "Счет": tpl.count(frFmtInt),
49
+ "Счет уникальных": tpl.countUnique(frFmtInt),
50
+ "Список уникальных": tpl.listUnique(", "),
51
+ "Сумма": tpl.sum(frFmt),
52
+ "Сумма целых": tpl.sum(frFmtInt),
53
+ "Среднее": tpl.average(frFmt),
54
+ "Минимум": tpl.min(frFmt),
55
+ "Максимум": tpl.max(frFmt),
56
+ "Сумма по сумме": tpl.sumOverSum(frFmt),
57
+ "80% верхней границы": tpl.sumOverSumBound80(true, frFmt),
58
+ "80% нижней границы": tpl.sumOverSumBound80(false, frFmt),
59
+ "Доля по всему": tpl.fractionOf(tpl.sum(), "total", frFmtPct),
60
+ "Доля по строке": tpl.fractionOf(tpl.sum(), "row", frFmtPct),
61
+ "Доля по столбцу": tpl.fractionOf(tpl.sum(), "col", frFmtPct),
62
+ "Счет по всему": tpl.fractionOf(tpl.count(), "total", frFmtPct),
63
+ "Счет по строке": tpl.fractionOf(tpl.count(), "row", frFmtPct),
64
+ "Счет по столбцу": tpl.fractionOf(tpl.count(), "col", frFmtPct)
65
+ },
66
+ renderers: {
67
+ "Таблица": $.pivotUtilities.renderers["Table"],
68
+ "График столбцы": $.pivotUtilities.renderers["Table Barchart"],
69
+ "Теплова карта": $.pivotUtilities.renderers["Heatmap"],
70
+ "Тепловая карта по строке": $.pivotUtilities.renderers["Row Heatmap"],
71
+ "Тепловая карта по столбцу": $.pivotUtilities.renderers["Col Heatmap"]
72
+ }
73
+ };
74
+ });
75
+
76
+ }).call(this);
77
+
78
+ //# sourceMappingURL=pivot.ru.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["pivot.ru.coffee"],"names":[],"mappings":"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","file":"pivot.ru.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.ru = \n localeStrings:\n renderError: \"Ошибка рендеринга страницы;.\",\n computeError: \"Ошибка табличных расчетов;.\",\n uiRenderError: \"Ошибка во время прорисовки и динамического расчета таблицы.\",\n selectAll: \"Выбрать все\",\n selectNone: \"Ничего не выбирать\",\n tooMany: \"(Выбрано слишком много значений)\",\n filterResults: \"Значение фильтра\",\n totals: \"Всего\",\n vs: \"на\",\n by: \"с\"\n\n aggregators: \n \"Счет\": tpl.count(frFmtInt),\n \"Счет уникальных\": tpl.countUnique(frFmtInt),\n \"Список уникальных\": tpl.listUnique(\", \"),\n \"Сумма\": tpl.sum(frFmt),\n \"Сумма целых\": tpl.sum(frFmtInt),\n \"Среднее\": tpl.average(frFmt),\n \"Минимум\": tpl.min(frFmt),\n \"Максимум\": tpl.max(frFmt),\n \"Сумма по сумме\": tpl.sumOverSum(frFmt),\n \"80% верхней границы\": tpl.sumOverSumBound80(true, frFmt),\n \"80% нижней границы\": tpl.sumOverSumBound80(false, frFmt),\n \"Доля по всему\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct),\n \"Доля по строке\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct),\n \"Доля по столбцу\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct),\n \"Счет по всему\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct),\n \"Счет по строке\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct),\n \"Счет по столбцу\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Таблица\": $.pivotUtilities.renderers[\"Table\"]\n \"График столбцы\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Теплова карта\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Тепловая карта по строке\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Тепловая карта по столбцу\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n"]}
@@ -0,0 +1,2 @@
1
+ (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 t,r,i,o,s;return o=e.pivotUtilities.numberFormat,s=e.pivotUtilities.aggregatorTemplates,t=o({thousandsSep:" ",decimalSep:","}),r=o({digitsAfterDecimal:0,thousandsSep:" ",decimalSep:","}),i=o({digitsAfterDecimal:1,scaler:100,suffix:"%",thousandsSep:" ",decimalSep:","}),e.pivotUtilities.locales.ru={localeStrings:{renderError:"Ошибка рендеринга страницы;.",computeError:"Ошибка табличных расчетов;.",uiRenderError:"Ошибка во время прорисовки и динамического расчета таблицы.",selectAll:"Выбрать все",selectNone:"Ничего не выбирать",tooMany:"(Выбрано слишком много значений)",filterResults:"Значение фильтра",totals:"Всего",vs:"на",by:"с"},aggregators:{"Счет":s.count(r),"Счет уникальных":s.countUnique(r),"Список уникальных":s.listUnique(", "),"Сумма":s.sum(t),"Сумма целых":s.sum(r),"Среднее":s.average(t),"Минимум":s.min(t),"Максимум":s.max(t),"Сумма по сумме":s.sumOverSum(t),"80% верхней границы":s.sumOverSumBound80(!0,t),"80% нижней границы":s.sumOverSumBound80(!1,t),"Доля по всему":s.fractionOf(s.sum(),"total",i),"Доля по строке":s.fractionOf(s.sum(),"row",i),"Доля по столбцу":s.fractionOf(s.sum(),"col",i),"Счет по всему":s.fractionOf(s.count(),"total",i),"Счет по строке":s.fractionOf(s.count(),"row",i),"Счет по столбцу":s.fractionOf(s.count(),"col",i)},renderers:{"Таблица":e.pivotUtilities.renderers.Table,"График столбцы":e.pivotUtilities.renderers["Table Barchart"],"Теплова карта":e.pivotUtilities.renderers.Heatmap,"Тепловая карта по строке":e.pivotUtilities.renderers["Row Heatmap"],"Тепловая карта по столбцу":e.pivotUtilities.renderers["Col Heatmap"]}}})}).call(this);
2
+ //# sourceMappingURL=pivot.ru.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/source/pivot.ru.coffee","pivot.ru.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","ru","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","totals","vs","by","aggregators","Счет","count","Счет уникальных","countUnique","Список уникальных","listUnique","Сумма","sum","Сумма целых","Среднее","average","Минимум","min","Максимум","max","Сумма по сумме","sumOverSum","80% верхней границы","sumOverSumBound80","80% нижней границы","Доля по всему","fractionOf","Доля по строке","Доля по столбцу","Счет по всему","Счет по строке","Счет по столбцу","renderers","Таблица","График столбцы","Теплова карта","Тепловая карта по строке","Тепловая карта по столбцу","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAXC,UAAyC,gBAAVC,QACrCF,EAAYG,QAAQ,WACC,kBAAVC,SAAyBA,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,+BACbC,aAAc,8BACdC,cAAe,8DACfC,UAAW,cACXC,WAAY,qBACZC,QAAS,mCACTC,cAAe,mBACfC,OAAQ,QACRC,GAAI,KACJC,GAAI,KAERC,aACIC,OAAQvB,EAAIwB,MAAM3B,GAClB4B,kBAAmBzB,EAAI0B,YAAY7B,GACnC8B,oBAAqB3B,EAAI4B,WAAW,MACpCC,QAAS7B,EAAI8B,IAAIlC,GACjBmC,cAAe/B,EAAI8B,IAAIjC,GACvBmC,UAAWhC,EAAIiC,QAAQrC,GACvBsC,UAAWlC,EAAImC,IAAIvC,GACnBwC,WAAYpC,EAAIqC,IAAIzC,GACpB0C,iBAAkBtC,EAAIuC,WAAW3C,GACjC4C,sBAAuBxC,EAAIyC,mBAAkB,EAAM7C,GACnD8C,qBAAsB1C,EAAIyC,mBAAkB,EAAO7C,GACnD+C,gBAAiB3C,EAAI4C,WAAW5C,EAAI8B,MAAO,QAAShC,GACpD+C,iBAAkB7C,EAAI4C,WAAW5C,EAAI8B,MAAO,MAAOhC,GACnDgD,kBAAmB9C,EAAI4C,WAAW5C,EAAI8B,MAAO,MAAOhC,GACpDiD,gBAAiB/C,EAAI4C,WAAW5C,EAAIwB,QAAS,QAAS1B,GACtDkD,iBAAkBhD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAO1B,GACrDmD,kBAAmBjD,EAAI4C,WAAW5C,EAAIwB,QAAS,MAAO1B,IAE1DoD,WACIC,UAAWxD,EAAEM,eAAeiD,UAAU,MACtCE,iBAAkBzD,EAAEM,eAAeiD,UAAU,kBAC7CG,gBAAiB1D,EAAEM,eAAeiD,UAAU,QAC5CI,2BAA4B3D,EAAEM,eAAeiD,UAAU,eACvDK,4BAA6B5D,EAAEM,eAAeiD,UAAU,qBCqBjEM,KAAKC","file":"pivot.ru.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.ru = \n localeStrings:\n renderError: \"Ошибка рендеринга страницы;.\",\n computeError: \"Ошибка табличных расчетов;.\",\n uiRenderError: \"Ошибка во время прорисовки и динамического расчета таблицы.\",\n selectAll: \"Выбрать все\",\n selectNone: \"Ничего не выбирать\",\n tooMany: \"(Выбрано слишком много значений)\",\n filterResults: \"Значение фильтра\",\n totals: \"Всего\",\n vs: \"на\",\n by: \"с\"\n\n aggregators: \n \"Счет\": tpl.count(frFmtInt),\n \"Счет уникальных\": tpl.countUnique(frFmtInt),\n \"Список уникальных\": tpl.listUnique(\", \"),\n \"Сумма\": tpl.sum(frFmt),\n \"Сумма целых\": tpl.sum(frFmtInt),\n \"Среднее\": tpl.average(frFmt),\n \"Минимум\": tpl.min(frFmt),\n \"Максимум\": tpl.max(frFmt),\n \"Сумма по сумме\": tpl.sumOverSum(frFmt),\n \"80% верхней границы\": tpl.sumOverSumBound80(true, frFmt),\n \"80% нижней границы\": tpl.sumOverSumBound80(false, frFmt),\n \"Доля по всему\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct),\n \"Доля по строке\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct),\n \"Доля по столбцу\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct),\n \"Счет по всему\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct),\n \"Счет по строке\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct),\n \"Счет по столбцу\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n\n renderers:\n \"Таблица\": $.pivotUtilities.renderers[\"Table\"]\n \"График столбцы\": $.pivotUtilities.renderers[\"Table Barchart\"]\n \"Теплова карта\": $.pivotUtilities.renderers[\"Heatmap\"]\n \"Тепловая карта по строке\": $.pivotUtilities.renderers[\"Row Heatmap\"]\n \"Тепловая карта по столбцу\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n\n","(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.ru = {\n localeStrings: {\n renderError: \"Ошибка рендеринга страницы;.\",\n computeError: \"Ошибка табличных расчетов;.\",\n uiRenderError: \"Ошибка во время прорисовки и динамического расчета таблицы.\",\n selectAll: \"Выбрать все\",\n selectNone: \"Ничего не выбирать\",\n tooMany: \"(Выбрано слишком много значений)\",\n filterResults: \"Значение фильтра\",\n totals: \"Всего\",\n vs: \"на\",\n by: \"с\"\n },\n aggregators: {\n \"Счет\": tpl.count(frFmtInt),\n \"Счет уникальных\": tpl.countUnique(frFmtInt),\n \"Список уникальных\": tpl.listUnique(\", \"),\n \"Сумма\": tpl.sum(frFmt),\n \"Сумма целых\": tpl.sum(frFmtInt),\n \"Среднее\": tpl.average(frFmt),\n \"Минимум\": tpl.min(frFmt),\n \"Максимум\": tpl.max(frFmt),\n \"Сумма по сумме\": tpl.sumOverSum(frFmt),\n \"80% верхней границы\": tpl.sumOverSumBound80(true, frFmt),\n \"80% нижней границы\": tpl.sumOverSumBound80(false, frFmt),\n \"Доля по всему\": tpl.fractionOf(tpl.sum(), \"total\", frFmtPct),\n \"Доля по строке\": tpl.fractionOf(tpl.sum(), \"row\", frFmtPct),\n \"Доля по столбцу\": tpl.fractionOf(tpl.sum(), \"col\", frFmtPct),\n \"Счет по всему\": tpl.fractionOf(tpl.count(), \"total\", frFmtPct),\n \"Счет по строке\": tpl.fractionOf(tpl.count(), \"row\", frFmtPct),\n \"Счет по столбцу\": tpl.fractionOf(tpl.count(), \"col\", frFmtPct)\n },\n renderers: {\n \"Таблица\": $.pivotUtilities.renderers[\"Table\"],\n \"График столбцы\": $.pivotUtilities.renderers[\"Table Barchart\"],\n \"Теплова карта\": $.pivotUtilities.renderers[\"Heatmap\"],\n \"Тепловая карта по строке\": $.pivotUtilities.renderers[\"Row Heatmap\"],\n \"Тепловая карта по столбцу\": $.pivotUtilities.renderers[\"Col Heatmap\"]\n }\n };\n });\n\n}).call(this);\n\n//# sourceMappingURL=pivot.ru.js.map\n"],"sourceRoot":"/source/"}
@@ -0,0 +1,104 @@
1
+ (function() {
2
+ var callWithJQuery;
3
+
4
+ callWithJQuery = function(pivotModule) {
5
+ if (typeof exports === "object" && typeof module === "object") {
6
+ return pivotModule(require("jquery"));
7
+ } else if (typeof define === "function" && define.amd) {
8
+ return define(["jquery"], pivotModule);
9
+ } else {
10
+ return pivotModule(jQuery);
11
+ }
12
+ };
13
+
14
+ callWithJQuery(function($) {
15
+ var c3r, d3r, frFmt, frFmtInt, frFmtPct, gcr, nf, r, tpl;
16
+ nf = $.pivotUtilities.numberFormat;
17
+ tpl = $.pivotUtilities.aggregatorTemplates;
18
+ r = $.pivotUtilities.renderers;
19
+ gcr = $.pivotUtilities.gchart_renderers;
20
+ d3r = $.pivotUtilities.d3_renderers;
21
+ c3r = $.pivotUtilities.c3_renderers;
22
+ frFmt = nf({
23
+ thousandsSep: ".",
24
+ decimalSep: ","
25
+ });
26
+ frFmtInt = nf({
27
+ digitsAfterDecimal: 0,
28
+ thousandsSep: ".",
29
+ decimalSep: ","
30
+ });
31
+ frFmtPct = nf({
32
+ digitsAfterDecimal: 2,
33
+ scaler: 100,
34
+ suffix: "%",
35
+ thousandsSep: ".",
36
+ decimalSep: ","
37
+ });
38
+ $.pivotUtilities.locales.tr = {
39
+ localeStrings: {
40
+ renderError: "PivotTable sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu",
41
+ computeError: "PivotTable sonu&ccedil;lar&#305;n&#305; i&#351;lerken hata olu&#351;tu",
42
+ uiRenderError: "PivotTable UI sonu&ccedil;lar&#305;n&#305; olu&#351;tuturken hata olu&#351;tu",
43
+ selectAll: "T&uuml;m&uuml;n&uuml; Se&ccedil;",
44
+ selectNone: "T&uuml;m&uuml;n&uuml; B&#305;rak",
45
+ tooMany: "(listelemek i&ccedil;in fazla)",
46
+ filterResults: "Sonu&ccedil;lar&#305; filtrele",
47
+ totals: "Toplam",
48
+ vs: "vs",
49
+ by: "ile"
50
+ },
51
+ aggregators: {
52
+ "Say&#305;": tpl.count(frFmtInt),
53
+ "Benzersiz de&#287;erler say&#305;s&#305;": tpl.countUnique(frFmtInt),
54
+ "Benzersiz de&#287;erler listesi": tpl.listUnique(", "),
55
+ "Toplam": tpl.sum(frFmt),
56
+ "Toplam (tam say&#305;)": tpl.sum(frFmtInt),
57
+ "Ortalama": tpl.average(frFmt),
58
+ "Min": tpl.min(frFmt),
59
+ "Maks": tpl.max(frFmt),
60
+ "Miktarlar&#305;n toplam&#305;": tpl.sumOverSum(frFmt),
61
+ "%80 daha y&uuml;ksek": tpl.sumOverSumBound80(true, frFmt),
62
+ "%80 daha d&uuml;&#351;&uuml;k": tpl.sumOverSumBound80(false, frFmt),
63
+ "Toplam oran&#305; (toplam)": tpl.fractionOf(tpl.sum(), "total", frFmtPct),
64
+ "Sat&#305;r oran&#305; (toplam)": tpl.fractionOf(tpl.sum(), "row", frFmtPct),
65
+ "S&uuml;tunun oran&#305; (toplam)": tpl.fractionOf(tpl.sum(), "col", frFmtPct),
66
+ "Toplam oran&#305; (say&#305;)": tpl.fractionOf(tpl.count(), "total", frFmtPct),
67
+ "Sat&#305;r oran&#305; (say&#305;)": tpl.fractionOf(tpl.count(), "row", frFmtPct),
68
+ "S&uuml;tunun oran&#305; (say&#305;)": tpl.fractionOf(tpl.count(), "col", frFmtPct)
69
+ },
70
+ renderers: {
71
+ "Tablo": r["Table"],
72
+ "Tablo (&Ccedil;ubuklar)": r["Table Barchart"],
73
+ "&#304;lgi haritas&#305;": r["Heatmap"],
74
+ "Sat&#305;r ilgi haritas&#305;": r["Row Heatmap"],
75
+ "S&uuml;tun ilgi haritas&#305;": r["Col Heatmap"]
76
+ }
77
+ };
78
+ if (gcr) {
79
+ $.pivotUtilities.locales.tr.gchart_renderers = {
80
+ "&Ccedil;izgi Grafi&#287;i": gcr["Line Chart"],
81
+ "Bar Grafi&#287;i": gcr["Bar Chart"],
82
+ "Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik ": gcr["Stacked Bar Chart"],
83
+ "Alan Grafi&#287;i": gcr["Area Chart"]
84
+ };
85
+ }
86
+ if (d3r) {
87
+ $.pivotUtilities.locales.tr.d3_renderers = {
88
+ "Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)": d3r["Treemap"]
89
+ };
90
+ }
91
+ if (c3r) {
92
+ $.pivotUtilities.locales.tr.c3_renderers = {
93
+ "&Ccedil;izgi Grafi&#287;i": c3r["Line Chart"],
94
+ "Bar Grafi&#287;i": c3r["Bar Chart"],
95
+ "Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik ": c3r["Stacked Bar Chart"],
96
+ "Alan Grafi&#287;i": c3r["Area Chart"]
97
+ };
98
+ }
99
+ return $.pivotUtilities.locales.tr;
100
+ });
101
+
102
+ }).call(this);
103
+
104
+ //# sourceMappingURL=pivot.tr.js.map
@@ -0,0 +1 @@
1
+ {"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\": gcr[\"Line Chart\"]\n \"Bar Grafi&#287;i\": gcr[\"Bar Chart\"]\n \"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik \": gcr[\"Stacked Bar Chart\"]\n \"Alan Grafi&#287;i\": 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\": c3r[\"Line Chart\"]\n \"Bar Grafi&#287;i\": c3r[\"Bar Chart\"]\n \"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik \": c3r[\"Stacked Bar Chart\"]\n \"Alan Grafi&#287;i\": c3r[\"Area Chart\"]\n\n return $.pivotUtilities.locales.tr\n\n"]}
@@ -0,0 +1,2 @@
1
+ (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":o["Line Chart"],"Bar Grafi&#287;i":o["Bar Chart"],"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik ":o["Stacked Bar Chart"],"Alan Grafi&#287;i":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":a["Line Chart"],"Bar Grafi&#287;i":a["Bar Chart"],"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik ":a["Stacked Bar Chart"],"Alan Grafi&#287;i":a["Area Chart"]}),e.pivotUtilities.locales.tr})}).call(this);
2
+ //# sourceMappingURL=pivot.tr.min.js.map
@@ -0,0 +1 @@
1
+ {"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","Bar Grafi&#287;i","Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik ","Alan Grafi&#287;i","Hiyerar&#351;ik Alan Grafi&#287;i (Treemap)","call","this"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GAChB,MAAqB,gBAAXC,UAAyC,gBAAVC,QACvCF,EAAYG,QAAQ,WACG,kBAAVC,SAAyBA,OAAOC,IAC7CD,QAAQ,UAAWJ,GAGnBA,EAAYM,UAED,SAACC,GACd,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAoEA,OApEAF,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,4BAA6B9D,EAAI,cACjC+D,mBAAoB/D,EAAI,aACxBgE,yDAA0DhE,EAAI,qBAC9DiE,oBAAqBjE,EAAI,gBAE1BJ,IACDF,EAAEU,eAAeY,QAAQC,GAAGR,cAC1ByD,8CAA+CtE,EAAI,UAEpDD,IACDD,EAAEU,eAAeY,QAAQC,GAAGP,cAC1BoD,4BAA6BnE,EAAI,cACjCoE,mBAAoBpE,EAAI,aACxBqE,yDAA0DrE,EAAI,qBAC9DsE,oBAAqBtE,EAAI,gBAEtBD,EAAEU,eAAeY,QAAQC,OCuB/BkD,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\": gcr[\"Line Chart\"]\n \"Bar Grafi&#287;i\": gcr[\"Bar Chart\"]\n \"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik \": gcr[\"Stacked Bar Chart\"]\n \"Alan Grafi&#287;i\": 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\": c3r[\"Line Chart\"]\n \"Bar Grafi&#287;i\": c3r[\"Bar Chart\"]\n \"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik \": c3r[\"Stacked Bar Chart\"]\n \"Alan Grafi&#287;i\": c3r[\"Area Chart\"]\n\n return $.pivotUtilities.locales.tr\n\n","(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\": gcr[\"Line Chart\"],\n \"Bar Grafi&#287;i\": gcr[\"Bar Chart\"],\n \"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik \": gcr[\"Stacked Bar Chart\"],\n \"Alan Grafi&#287;i\": 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\": c3r[\"Line Chart\"],\n \"Bar Grafi&#287;i\": c3r[\"Bar Chart\"],\n \"Y&#305;&#287;&#305;lm&#305;&#351; &Ccedil;ubuk Grafik \": c3r[\"Stacked Bar Chart\"],\n \"Alan Grafi&#287;i\": c3r[\"Area Chart\"]\n };\n }\n return $.pivotUtilities.locales.tr;\n });\n\n}).call(this);\n\n//# sourceMappingURL=pivot.tr.js.map\n"],"sourceRoot":"/source/"}
@@ -0,0 +1,247 @@
1
+ $.pivotUtilities.tipsData = [
2
+ ["row","total_bill","tip","sex","smoker","day","time","size"],
3
+ ["1",16.99,1.01,"Female","No","Sun","Dinner",2],
4
+ ["2",10.34,1.66,"Male","No","Sun","Dinner",3],
5
+ ["3",21.01,3.5,"Male","No","Sun","Dinner",3],
6
+ ["4",23.68,3.31,"Male","No","Sun","Dinner",2],
7
+ ["5",24.59,3.61,"Female","No","Sun","Dinner",4],
8
+ ["6",25.29,4.71,"Male","No","Sun","Dinner",4],
9
+ ["7",8.77,2,"Male","No","Sun","Dinner",2],
10
+ ["8",26.88,3.12,"Male","No","Sun","Dinner",4],
11
+ ["9",15.04,1.96,"Male","No","Sun","Dinner",2],
12
+ ["10",14.78,3.23,"Male","No","Sun","Dinner",2],
13
+ ["11",10.27,1.71,"Male","No","Sun","Dinner",2],
14
+ ["12",35.26,5,"Female","No","Sun","Dinner",4],
15
+ ["13",15.42,1.57,"Male","No","Sun","Dinner",2],
16
+ ["14",18.43,3,"Male","No","Sun","Dinner",4],
17
+ ["15",14.83,3.02,"Female","No","Sun","Dinner",2],
18
+ ["16",21.58,3.92,"Male","No","Sun","Dinner",2],
19
+ ["17",10.33,1.67,"Female","No","Sun","Dinner",3],
20
+ ["18",16.29,3.71,"Male","No","Sun","Dinner",3],
21
+ ["19",16.97,3.5,"Female","No","Sun","Dinner",3],
22
+ ["20",20.65,3.35,"Male","No","Sat","Dinner",3],
23
+ ["21",17.92,4.08,"Male","No","Sat","Dinner",2],
24
+ ["22",20.29,2.75,"Female","No","Sat","Dinner",2],
25
+ ["23",15.77,2.23,"Female","No","Sat","Dinner",2],
26
+ ["24",39.42,7.58,"Male","No","Sat","Dinner",4],
27
+ ["25",19.82,3.18,"Male","No","Sat","Dinner",2],
28
+ ["26",17.81,2.34,"Male","No","Sat","Dinner",4],
29
+ ["27",13.37,2,"Male","No","Sat","Dinner",2],
30
+ ["28",12.69,2,"Male","No","Sat","Dinner",2],
31
+ ["29",21.7,4.3,"Male","No","Sat","Dinner",2],
32
+ ["30",19.65,3,"Female","No","Sat","Dinner",2],
33
+ ["31",9.55,1.45,"Male","No","Sat","Dinner",2],
34
+ ["32",18.35,2.5,"Male","No","Sat","Dinner",4],
35
+ ["33",15.06,3,"Female","No","Sat","Dinner",2],
36
+ ["34",20.69,2.45,"Female","No","Sat","Dinner",4],
37
+ ["35",17.78,3.27,"Male","No","Sat","Dinner",2],
38
+ ["36",24.06,3.6,"Male","No","Sat","Dinner",3],
39
+ ["37",16.31,2,"Male","No","Sat","Dinner",3],
40
+ ["38",16.93,3.07,"Female","No","Sat","Dinner",3],
41
+ ["39",18.69,2.31,"Male","No","Sat","Dinner",3],
42
+ ["40",31.27,5,"Male","No","Sat","Dinner",3],
43
+ ["41",16.04,2.24,"Male","No","Sat","Dinner",3],
44
+ ["42",17.46,2.54,"Male","No","Sun","Dinner",2],
45
+ ["43",13.94,3.06,"Male","No","Sun","Dinner",2],
46
+ ["44",9.68,1.32,"Male","No","Sun","Dinner",2],
47
+ ["45",30.4,5.6,"Male","No","Sun","Dinner",4],
48
+ ["46",18.29,3,"Male","No","Sun","Dinner",2],
49
+ ["47",22.23,5,"Male","No","Sun","Dinner",2],
50
+ ["48",32.4,6,"Male","No","Sun","Dinner",4],
51
+ ["49",28.55,2.05,"Male","No","Sun","Dinner",3],
52
+ ["50",18.04,3,"Male","No","Sun","Dinner",2],
53
+ ["51",12.54,2.5,"Male","No","Sun","Dinner",2],
54
+ ["52",10.29,2.6,"Female","No","Sun","Dinner",2],
55
+ ["53",34.81,5.2,"Female","No","Sun","Dinner",4],
56
+ ["54",9.94,1.56,"Male","No","Sun","Dinner",2],
57
+ ["55",25.56,4.34,"Male","No","Sun","Dinner",4],
58
+ ["56",19.49,3.51,"Male","No","Sun","Dinner",2],
59
+ ["57",38.01,3,"Male","Yes","Sat","Dinner",4],
60
+ ["58",26.41,1.5,"Female","No","Sat","Dinner",2],
61
+ ["59",11.24,1.76,"Male","Yes","Sat","Dinner",2],
62
+ ["60",48.27,6.73,"Male","No","Sat","Dinner",4],
63
+ ["61",20.29,3.21,"Male","Yes","Sat","Dinner",2],
64
+ ["62",13.81,2,"Male","Yes","Sat","Dinner",2],
65
+ ["63",11.02,1.98,"Male","Yes","Sat","Dinner",2],
66
+ ["64",18.29,3.76,"Male","Yes","Sat","Dinner",4],
67
+ ["65",17.59,2.64,"Male","No","Sat","Dinner",3],
68
+ ["66",20.08,3.15,"Male","No","Sat","Dinner",3],
69
+ ["67",16.45,2.47,"Female","No","Sat","Dinner",2],
70
+ ["68",3.07,1,"Female","Yes","Sat","Dinner",1],
71
+ ["69",20.23,2.01,"Male","No","Sat","Dinner",2],
72
+ ["70",15.01,2.09,"Male","Yes","Sat","Dinner",2],
73
+ ["71",12.02,1.97,"Male","No","Sat","Dinner",2],
74
+ ["72",17.07,3,"Female","No","Sat","Dinner",3],
75
+ ["73",26.86,3.14,"Female","Yes","Sat","Dinner",2],
76
+ ["74",25.28,5,"Female","Yes","Sat","Dinner",2],
77
+ ["75",14.73,2.2,"Female","No","Sat","Dinner",2],
78
+ ["76",10.51,1.25,"Male","No","Sat","Dinner",2],
79
+ ["77",17.92,3.08,"Male","Yes","Sat","Dinner",2],
80
+ ["78",27.2,4,"Male","No","Thur","Lunch",4],
81
+ ["79",22.76,3,"Male","No","Thur","Lunch",2],
82
+ ["80",17.29,2.71,"Male","No","Thur","Lunch",2],
83
+ ["81",19.44,3,"Male","Yes","Thur","Lunch",2],
84
+ ["82",16.66,3.4,"Male","No","Thur","Lunch",2],
85
+ ["83",10.07,1.83,"Female","No","Thur","Lunch",1],
86
+ ["84",32.68,5,"Male","Yes","Thur","Lunch",2],
87
+ ["85",15.98,2.03,"Male","No","Thur","Lunch",2],
88
+ ["86",34.83,5.17,"Female","No","Thur","Lunch",4],
89
+ ["87",13.03,2,"Male","No","Thur","Lunch",2],
90
+ ["88",18.28,4,"Male","No","Thur","Lunch",2],
91
+ ["89",24.71,5.85,"Male","No","Thur","Lunch",2],
92
+ ["90",21.16,3,"Male","No","Thur","Lunch",2],
93
+ ["91",28.97,3,"Male","Yes","Fri","Dinner",2],
94
+ ["92",22.49,3.5,"Male","No","Fri","Dinner",2],
95
+ ["93",5.75,1,"Female","Yes","Fri","Dinner",2],
96
+ ["94",16.32,4.3,"Female","Yes","Fri","Dinner",2],
97
+ ["95",22.75,3.25,"Female","No","Fri","Dinner",2],
98
+ ["96",40.17,4.73,"Male","Yes","Fri","Dinner",4],
99
+ ["97",27.28,4,"Male","Yes","Fri","Dinner",2],
100
+ ["98",12.03,1.5,"Male","Yes","Fri","Dinner",2],
101
+ ["99",21.01,3,"Male","Yes","Fri","Dinner",2],
102
+ ["100",12.46,1.5,"Male","No","Fri","Dinner",2],
103
+ ["101",11.35,2.5,"Female","Yes","Fri","Dinner",2],
104
+ ["102",15.38,3,"Female","Yes","Fri","Dinner",2],
105
+ ["103",44.3,2.5,"Female","Yes","Sat","Dinner",3],
106
+ ["104",22.42,3.48,"Female","Yes","Sat","Dinner",2],
107
+ ["105",20.92,4.08,"Female","No","Sat","Dinner",2],
108
+ ["106",15.36,1.64,"Male","Yes","Sat","Dinner",2],
109
+ ["107",20.49,4.06,"Male","Yes","Sat","Dinner",2],
110
+ ["108",25.21,4.29,"Male","Yes","Sat","Dinner",2],
111
+ ["109",18.24,3.76,"Male","No","Sat","Dinner",2],
112
+ ["110",14.31,4,"Female","Yes","Sat","Dinner",2],
113
+ ["111",14,3,"Male","No","Sat","Dinner",2],
114
+ ["112",7.25,1,"Female","No","Sat","Dinner",1],
115
+ ["113",38.07,4,"Male","No","Sun","Dinner",3],
116
+ ["114",23.95,2.55,"Male","No","Sun","Dinner",2],
117
+ ["115",25.71,4,"Female","No","Sun","Dinner",3],
118
+ ["116",17.31,3.5,"Female","No","Sun","Dinner",2],
119
+ ["117",29.93,5.07,"Male","No","Sun","Dinner",4],
120
+ ["118",10.65,1.5,"Female","No","Thur","Lunch",2],
121
+ ["119",12.43,1.8,"Female","No","Thur","Lunch",2],
122
+ ["120",24.08,2.92,"Female","No","Thur","Lunch",4],
123
+ ["121",11.69,2.31,"Male","No","Thur","Lunch",2],
124
+ ["122",13.42,1.68,"Female","No","Thur","Lunch",2],
125
+ ["123",14.26,2.5,"Male","No","Thur","Lunch",2],
126
+ ["124",15.95,2,"Male","No","Thur","Lunch",2],
127
+ ["125",12.48,2.52,"Female","No","Thur","Lunch",2],
128
+ ["126",29.8,4.2,"Female","No","Thur","Lunch",6],
129
+ ["127",8.52,1.48,"Male","No","Thur","Lunch",2],
130
+ ["128",14.52,2,"Female","No","Thur","Lunch",2],
131
+ ["129",11.38,2,"Female","No","Thur","Lunch",2],
132
+ ["130",22.82,2.18,"Male","No","Thur","Lunch",3],
133
+ ["131",19.08,1.5,"Male","No","Thur","Lunch",2],
134
+ ["132",20.27,2.83,"Female","No","Thur","Lunch",2],
135
+ ["133",11.17,1.5,"Female","No","Thur","Lunch",2],
136
+ ["134",12.26,2,"Female","No","Thur","Lunch",2],
137
+ ["135",18.26,3.25,"Female","No","Thur","Lunch",2],
138
+ ["136",8.51,1.25,"Female","No","Thur","Lunch",2],
139
+ ["137",10.33,2,"Female","No","Thur","Lunch",2],
140
+ ["138",14.15,2,"Female","No","Thur","Lunch",2],
141
+ ["139",16,2,"Male","Yes","Thur","Lunch",2],
142
+ ["140",13.16,2.75,"Female","No","Thur","Lunch",2],
143
+ ["141",17.47,3.5,"Female","No","Thur","Lunch",2],
144
+ ["142",34.3,6.7,"Male","No","Thur","Lunch",6],
145
+ ["143",41.19,5,"Male","No","Thur","Lunch",5],
146
+ ["144",27.05,5,"Female","No","Thur","Lunch",6],
147
+ ["145",16.43,2.3,"Female","No","Thur","Lunch",2],
148
+ ["146",8.35,1.5,"Female","No","Thur","Lunch",2],
149
+ ["147",18.64,1.36,"Female","No","Thur","Lunch",3],
150
+ ["148",11.87,1.63,"Female","No","Thur","Lunch",2],
151
+ ["149",9.78,1.73,"Male","No","Thur","Lunch",2],
152
+ ["150",7.51,2,"Male","No","Thur","Lunch",2],
153
+ ["151",14.07,2.5,"Male","No","Sun","Dinner",2],
154
+ ["152",13.13,2,"Male","No","Sun","Dinner",2],
155
+ ["153",17.26,2.74,"Male","No","Sun","Dinner",3],
156
+ ["154",24.55,2,"Male","No","Sun","Dinner",4],
157
+ ["155",19.77,2,"Male","No","Sun","Dinner",4],
158
+ ["156",29.85,5.14,"Female","No","Sun","Dinner",5],
159
+ ["157",48.17,5,"Male","No","Sun","Dinner",6],
160
+ ["158",25,3.75,"Female","No","Sun","Dinner",4],
161
+ ["159",13.39,2.61,"Female","No","Sun","Dinner",2],
162
+ ["160",16.49,2,"Male","No","Sun","Dinner",4],
163
+ ["161",21.5,3.5,"Male","No","Sun","Dinner",4],
164
+ ["162",12.66,2.5,"Male","No","Sun","Dinner",2],
165
+ ["163",16.21,2,"Female","No","Sun","Dinner",3],
166
+ ["164",13.81,2,"Male","No","Sun","Dinner",2],
167
+ ["165",17.51,3,"Female","Yes","Sun","Dinner",2],
168
+ ["166",24.52,3.48,"Male","No","Sun","Dinner",3],
169
+ ["167",20.76,2.24,"Male","No","Sun","Dinner",2],
170
+ ["168",31.71,4.5,"Male","No","Sun","Dinner",4],
171
+ ["169",10.59,1.61,"Female","Yes","Sat","Dinner",2],
172
+ ["170",10.63,2,"Female","Yes","Sat","Dinner",2],
173
+ ["171",50.81,10,"Male","Yes","Sat","Dinner",3],
174
+ ["172",15.81,3.16,"Male","Yes","Sat","Dinner",2],
175
+ ["173",7.25,5.15,"Male","Yes","Sun","Dinner",2],
176
+ ["174",31.85,3.18,"Male","Yes","Sun","Dinner",2],
177
+ ["175",16.82,4,"Male","Yes","Sun","Dinner",2],
178
+ ["176",32.9,3.11,"Male","Yes","Sun","Dinner",2],
179
+ ["177",17.89,2,"Male","Yes","Sun","Dinner",2],
180
+ ["178",14.48,2,"Male","Yes","Sun","Dinner",2],
181
+ ["179",9.6,4,"Female","Yes","Sun","Dinner",2],
182
+ ["180",34.63,3.55,"Male","Yes","Sun","Dinner",2],
183
+ ["181",34.65,3.68,"Male","Yes","Sun","Dinner",4],
184
+ ["182",23.33,5.65,"Male","Yes","Sun","Dinner",2],
185
+ ["183",45.35,3.5,"Male","Yes","Sun","Dinner",3],
186
+ ["184",23.17,6.5,"Male","Yes","Sun","Dinner",4],
187
+ ["185",40.55,3,"Male","Yes","Sun","Dinner",2],
188
+ ["186",20.69,5,"Male","No","Sun","Dinner",5],
189
+ ["187",20.9,3.5,"Female","Yes","Sun","Dinner",3],
190
+ ["188",30.46,2,"Male","Yes","Sun","Dinner",5],
191
+ ["189",18.15,3.5,"Female","Yes","Sun","Dinner",3],
192
+ ["190",23.1,4,"Male","Yes","Sun","Dinner",3],
193
+ ["191",15.69,1.5,"Male","Yes","Sun","Dinner",2],
194
+ ["192",19.81,4.19,"Female","Yes","Thur","Lunch",2],
195
+ ["193",28.44,2.56,"Male","Yes","Thur","Lunch",2],
196
+ ["194",15.48,2.02,"Male","Yes","Thur","Lunch",2],
197
+ ["195",16.58,4,"Male","Yes","Thur","Lunch",2],
198
+ ["196",7.56,1.44,"Male","No","Thur","Lunch",2],
199
+ ["197",10.34,2,"Male","Yes","Thur","Lunch",2],
200
+ ["198",43.11,5,"Female","Yes","Thur","Lunch",4],
201
+ ["199",13,2,"Female","Yes","Thur","Lunch",2],
202
+ ["200",13.51,2,"Male","Yes","Thur","Lunch",2],
203
+ ["201",18.71,4,"Male","Yes","Thur","Lunch",3],
204
+ ["202",12.74,2.01,"Female","Yes","Thur","Lunch",2],
205
+ ["203",13,2,"Female","Yes","Thur","Lunch",2],
206
+ ["204",16.4,2.5,"Female","Yes","Thur","Lunch",2],
207
+ ["205",20.53,4,"Male","Yes","Thur","Lunch",4],
208
+ ["206",16.47,3.23,"Female","Yes","Thur","Lunch",3],
209
+ ["207",26.59,3.41,"Male","Yes","Sat","Dinner",3],
210
+ ["208",38.73,3,"Male","Yes","Sat","Dinner",4],
211
+ ["209",24.27,2.03,"Male","Yes","Sat","Dinner",2],
212
+ ["210",12.76,2.23,"Female","Yes","Sat","Dinner",2],
213
+ ["211",30.06,2,"Male","Yes","Sat","Dinner",3],
214
+ ["212",25.89,5.16,"Male","Yes","Sat","Dinner",4],
215
+ ["213",48.33,9,"Male","No","Sat","Dinner",4],
216
+ ["214",13.27,2.5,"Female","Yes","Sat","Dinner",2],
217
+ ["215",28.17,6.5,"Female","Yes","Sat","Dinner",3],
218
+ ["216",12.9,1.1,"Female","Yes","Sat","Dinner",2],
219
+ ["217",28.15,3,"Male","Yes","Sat","Dinner",5],
220
+ ["218",11.59,1.5,"Male","Yes","Sat","Dinner",2],
221
+ ["219",7.74,1.44,"Male","Yes","Sat","Dinner",2],
222
+ ["220",30.14,3.09,"Female","Yes","Sat","Dinner",4],
223
+ ["221",12.16,2.2,"Male","Yes","Fri","Lunch",2],
224
+ ["222",13.42,3.48,"Female","Yes","Fri","Lunch",2],
225
+ ["223",8.58,1.92,"Male","Yes","Fri","Lunch",1],
226
+ ["224",15.98,3,"Female","No","Fri","Lunch",3],
227
+ ["225",13.42,1.58,"Male","Yes","Fri","Lunch",2],
228
+ ["226",16.27,2.5,"Female","Yes","Fri","Lunch",2],
229
+ ["227",10.09,2,"Female","Yes","Fri","Lunch",2],
230
+ ["228",20.45,3,"Male","No","Sat","Dinner",4],
231
+ ["229",13.28,2.72,"Male","No","Sat","Dinner",2],
232
+ ["230",22.12,2.88,"Female","Yes","Sat","Dinner",2],
233
+ ["231",24.01,2,"Male","Yes","Sat","Dinner",4],
234
+ ["232",15.69,3,"Male","Yes","Sat","Dinner",3],
235
+ ["233",11.61,3.39,"Male","No","Sat","Dinner",2],
236
+ ["234",10.77,1.47,"Male","No","Sat","Dinner",2],
237
+ ["235",15.53,3,"Male","Yes","Sat","Dinner",2],
238
+ ["236",10.07,1.25,"Male","No","Sat","Dinner",2],
239
+ ["237",12.6,1,"Male","Yes","Sat","Dinner",2],
240
+ ["238",32.83,1.17,"Male","Yes","Sat","Dinner",2],
241
+ ["239",35.83,4.67,"Female","No","Sat","Dinner",3],
242
+ ["240",29.03,5.92,"Male","No","Sat","Dinner",3],
243
+ ["241",27.18,2,"Female","Yes","Sat","Dinner",2],
244
+ ["242",22.67,2,"Male","Yes","Sat","Dinner",2],
245
+ ["243",17.82,1.75,"Male","No","Sat","Dinner",2],
246
+ ["244",18.78,3,"Female","No","Thur","Dinner",2]
247
+ ];