old_sql 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. data/README.md +24 -13
  2. data/app/controllers/old_sql/report_controller.rb +3 -17
  3. data/app/views/layouts/old_sql/chart.html.erb +11 -0
  4. data/app/views/old_sql/report/chart.html.erb +8 -25
  5. data/lib/generators/old_sql/templates/user_design_template.csv +2 -3
  6. data/lib/generators/old_sql/templates/user_old_sql_demo_chart_design.yml +18 -9
  7. data/lib/old_sql/report_design/chart.rb +2 -2
  8. data/lib/old_sql/report_design/chart_item.rb +4 -4
  9. data/lib/old_sql/report_design/chart_parser.rb +2 -2
  10. data/public/javascripts/old_sql/chart.js +33 -0
  11. metadata +5 -265
  12. data/public/javascripts/old_sql/MochiKit-1.4.2/Changes +0 -362
  13. data/public/javascripts/old_sql/MochiKit-1.4.2/LICENSE.txt +0 -69
  14. data/public/javascripts/old_sql/MochiKit-1.4.2/MANIFEST +0 -179
  15. data/public/javascripts/old_sql/MochiKit-1.4.2/META.json +0 -17
  16. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Async.html +0 -814
  17. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Base.html +0 -1703
  18. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Color.html +0 -755
  19. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DOM.html +0 -1197
  20. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DateTime.html +0 -168
  21. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DragAndDrop.html +0 -187
  22. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Format.html +0 -300
  23. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Iter.html +0 -524
  24. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Logging.html +0 -420
  25. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/LoggingPane.html +0 -142
  26. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Position.html +0 -38
  27. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Selector.html +0 -240
  28. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Signal.html +0 -508
  29. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Sortable.html +0 -244
  30. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Style.html +0 -385
  31. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/VersionHistory.html +0 -384
  32. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Visual.html +0 -1161
  33. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/index.html +0 -447
  34. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/js/toc.js +0 -113
  35. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Async.rst +0 -767
  36. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Base.rst +0 -1445
  37. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Color.rst +0 -651
  38. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DOM.rst +0 -1143
  39. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DateTime.rst +0 -145
  40. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DragAndDrop.rst +0 -197
  41. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Format.rst +0 -258
  42. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Iter.rst +0 -454
  43. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Logging.rst +0 -348
  44. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/LoggingPane.rst +0 -128
  45. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Position.rst +0 -26
  46. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Selector.rst +0 -203
  47. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Signal.rst +0 -498
  48. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Sortable.rst +0 -186
  49. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Style.rst +0 -353
  50. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/VersionHistory.rst +0 -362
  51. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Visual.rst +0 -895
  52. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/index.rst +0 -83
  53. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.css +0 -69
  54. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.js +0 -401
  55. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.json +0 -10
  56. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.xml +0 -40
  57. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/index.html +0 -96
  58. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.css +0 -4
  59. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.js +0 -95
  60. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/index.html +0 -31
  61. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dnd_sortable.css +0 -23
  62. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dropmarker.png +0 -0
  63. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/icon.png +0 -0
  64. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/index.html +0 -54
  65. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable2_test.html +0 -150
  66. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable3_test.html +0 -42
  67. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable4_test.html +0 -90
  68. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable5_test.html +0 -29
  69. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_test.html +0 -38
  70. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_tree_test.html +0 -189
  71. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.css +0 -28
  72. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.js +0 -73
  73. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/index.html +0 -38
  74. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_bigslide.html +0 -36
  75. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blind.html +0 -65
  76. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blindslide.html +0 -31
  77. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_combi.css +0 -18
  78. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_fadeappear.html +0 -61
  79. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_grow_shrink.html +0 -38
  80. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_onload.html +0 -67
  81. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue.html +0 -67
  82. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue_limit.html +0 -30
  83. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_scroll.html +0 -483
  84. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_slide.html +0 -62
  85. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/full.html +0 -71
  86. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/icon.png +0 -0
  87. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/index.html +0 -150
  88. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/index.html +0 -88
  89. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.css +0 -54
  90. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.js +0 -373
  91. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/index.html +0 -78
  92. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.css +0 -5
  93. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.js +0 -85
  94. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/index.html +0 -46
  95. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.css +0 -78
  96. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.js +0 -11
  97. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/index.html +0 -74
  98. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.css +0 -73
  99. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.js +0 -125
  100. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/index.html +0 -88
  101. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.css +0 -17
  102. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.js +0 -59
  103. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/index.html +0 -28
  104. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.css +0 -3
  105. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.js +0 -19
  106. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_boxes.html +0 -45
  107. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_full.html +0 -119
  108. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_ghost.html +0 -40
  109. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_hoverclass.html +0 -43
  110. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_scroll.html +0 -91
  111. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_snap.html +0 -54
  112. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/index.html +0 -93
  113. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/simple_dnd.css +0 -64
  114. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/index.html +0 -71
  115. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.css +0 -66
  116. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.js +0 -203
  117. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/SyntaxHighlighter.css +0 -177
  118. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/Tests.html +0 -339
  119. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushCSharp.js +0 -30
  120. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushDelphi.js +0 -31
  121. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushJScript.js +0 -22
  122. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPhp.js +0 -23
  123. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPython.js +0 -71
  124. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushSql.js +0 -40
  125. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushVb.js +0 -29
  126. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushXml.js +0 -61
  127. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shCore.js +0 -622
  128. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.css +0 -1
  129. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.html +0 -19
  130. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.js +0 -70
  131. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/bg_docheader.gif +0 -0
  132. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_bullet.gif +0 -0
  133. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_logo_doc.gif +0 -0
  134. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/documentation.css +0 -130
  135. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/general.css +0 -48
  136. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Async.js +0 -682
  137. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Base.js +0 -1489
  138. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Color.js +0 -863
  139. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DOM.js +0 -1256
  140. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DateTime.js +0 -222
  141. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DragAndDrop.js +0 -793
  142. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Format.js +0 -304
  143. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Iter.js +0 -844
  144. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Logging.js +0 -315
  145. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/LoggingPane.js +0 -353
  146. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MochiKit.js +0 -188
  147. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MockDOM.js +0 -115
  148. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Position.js +0 -236
  149. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Selector.js +0 -415
  150. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Signal.js +0 -897
  151. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Sortable.js +0 -589
  152. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Style.js +0 -594
  153. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Test.js +0 -162
  154. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Visual.js +0 -2026
  155. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/__package__.js +0 -18
  156. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/MochiKit.js +0 -7829
  157. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/__package__.js +0 -6
  158. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/customize.html +0 -251
  159. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/FakeJSAN.js +0 -40
  160. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/SimpleTest.js +0 -381
  161. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/TestRunner.js +0 -159
  162. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/test.css +0 -28
  163. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/cli.js +0 -6
  164. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/index.html +0 -25
  165. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/standalone.js +0 -16
  166. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Base.js +0 -577
  167. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Color.js +0 -137
  168. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DateTime.js +0 -52
  169. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DragAndDrop.js +0 -30
  170. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Format.js +0 -89
  171. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Iter.js +0 -186
  172. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Logging.js +0 -88
  173. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.html +0 -408
  174. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.json +0 -1
  175. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Base.html +0 -34
  176. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Color.html +0 -84
  177. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM-Safari.html +0 -48
  178. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM.html +0 -363
  179. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DateTime.html +0 -39
  180. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DragAndDrop.html +0 -54
  181. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Format.html +0 -39
  182. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Iter.html +0 -38
  183. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-JSAN.html +0 -32
  184. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Logging.html +0 -40
  185. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-MochiKit.html +0 -18
  186. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Selector.html +0 -295
  187. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Signal.html +0 -43
  188. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Style.html +0 -223
  189. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Visual.html +0 -197
  190. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Signal.js +0 -481
  191. data/public/javascripts/old_sql/plotkit-0.9.1/COPYING +0 -28
  192. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Base.js +0 -406
  193. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Canvas.js +0 -683
  194. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/EasyPlot.js +0 -161
  195. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Layout.js +0 -756
  196. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit.js +0 -151
  197. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit_Packed.js +0 -2177
  198. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SVG.js +0 -705
  199. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetCanvas.js +0 -348
  200. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetSVG.js +0 -247
  201. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/dummy.svg +0 -9
  202. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/excanvas.js +0 -723
  203. data/public/javascripts/old_sql/plotkit-0.9.1/README +0 -1
  204. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.html +0 -2
  205. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.txt +0 -2
  206. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.html +0 -302
  207. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.txt +0 -139
  208. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.html +0 -172
  209. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.txt +0 -81
  210. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.html +0 -155
  211. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.txt +0 -50
  212. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.html +0 -428
  213. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.txt +0 -330
  214. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.html +0 -368
  215. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.txt +0 -256
  216. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.html +0 -436
  217. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.txt +0 -299
  218. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.html +0 -159
  219. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.txt +0 -64
  220. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.html +0 -131
  221. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.txt +0 -34
  222. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.html +0 -131
  223. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.txt +0 -34
  224. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.html +0 -334
  225. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.txt +0 -151
  226. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.html +0 -304
  227. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.txt +0 -144
  228. data/public/javascripts/old_sql/plotkit-0.9.1/doc/barsample.png +0 -0
  229. data/public/javascripts/old_sql/plotkit-0.9.1/doc/black.png +0 -0
  230. data/public/javascripts/old_sql/plotkit-0.9.1/doc/blue.png +0 -0
  231. data/public/javascripts/old_sql/plotkit-0.9.1/doc/cyan.png +0 -0
  232. data/public/javascripts/old_sql/plotkit-0.9.1/doc/doc.css +0 -62
  233. data/public/javascripts/old_sql/plotkit-0.9.1/doc/generate.py +0 -37
  234. data/public/javascripts/old_sql/plotkit-0.9.1/doc/green.png +0 -0
  235. data/public/javascripts/old_sql/plotkit-0.9.1/doc/orange.png +0 -0
  236. data/public/javascripts/old_sql/plotkit-0.9.1/doc/piesample.png +0 -0
  237. data/public/javascripts/old_sql/plotkit-0.9.1/doc/purple.png +0 -0
  238. data/public/javascripts/old_sql/plotkit-0.9.1/doc/red.png +0 -0
  239. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/custom_rhino.jar +0 -0
  240. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/pack.py +0 -58
  241. data/public/javascripts/old_sql/plotkit-0.9.1/tests/axis.html +0 -31
  242. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.html +0 -25
  243. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.js +0 -143
  244. data/public/javascripts/old_sql/plotkit-0.9.1/tests/debug.html +0 -56
  245. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.html +0 -58
  246. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.js +0 -133
  247. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.html +0 -57
  248. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.js +0 -136
  249. data/public/javascripts/old_sql/plotkit-0.9.1/tests/dynamic.html +0 -161
  250. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/firefox.png +0 -0
  251. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/konqueror.png +0 -0
  252. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/mozilla.ico +0 -0
  253. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/msie.gif +0 -0
  254. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/opera.ico +0 -0
  255. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/safari.gif +0 -0
  256. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels-img.html +0 -38
  257. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels.html +0 -43
  258. data/public/javascripts/old_sql/plotkit-0.9.1/tests/prototype_compat.html +0 -28
  259. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-easy.html +0 -29
  260. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-horiz.html +0 -53
  261. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-neg.html +0 -29
  262. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-svg.html +0 -61
  263. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart.html +0 -57
  264. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sample.txt +0 -6
  265. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.html +0 -29
  266. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.js +0 -141
  267. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.html +0 -26
  268. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.js +0 -147
  269. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.html +0 -24
  270. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.js +0 -89
  271. data/public/javascripts/old_sql/plotkit-0.9.1/tests/tests.css +0 -66
  272. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.html +0 -20
  273. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.js +0 -31
@@ -1,161 +0,0 @@
1
- /*
2
- PlotKit EasyPlot
3
- ================
4
-
5
- User friendly wrapper around the common plotting functions.
6
-
7
- Copyright
8
- ---------
9
- Copyright 2005,2006 (c) Alastair Tse <alastair^liquidx.net>
10
- For use under the BSD license. <http://www.liquidx.net/plotkit>
11
-
12
- */
13
-
14
- try {
15
- if (typeof(PlotKit.CanvasRenderer) == 'undefined')
16
- {
17
- throw ""
18
- }
19
- }
20
- catch (e) {
21
- throw "PlotKit.EasyPlot depends on all of PlotKit's components";
22
- }
23
-
24
- // --------------------------------------------------------------------
25
- // Start of EasyPlot definition
26
- // --------------------------------------------------------------------
27
-
28
- if (typeof(PlotKit.EasyPlot) == 'undefined') {
29
- PlotKit.EasyPlot = {};
30
- }
31
-
32
- PlotKit.EasyPlot.NAME = "PlotKit.EasyPlot";
33
- PlotKit.EasyPlot.VERSION = PlotKit.VERSION;
34
-
35
- PlotKit.EasyPlot.__repr__ = function() {
36
- return "[" + this.NAME + " " + this.VERSION + "]";
37
- };
38
-
39
- PlotKit.EasyPlot.toString = function() {
40
- return this.__repr__();
41
- }
42
-
43
- // --------------------------------------------------------------------
44
- // Start of EasyPlot definition
45
- // --------------------------------------------------------------------
46
-
47
- PlotKit.EasyPlot = function(style, options, divElem, datasources) {
48
- this.layout = new Layout(style, options);
49
- this.divElem = divElem;
50
- this.width = parseInt(divElem.getAttribute('width'));
51
- this.height = parseInt(divElem.getAttribute('height'));
52
- this.deferredCount = 0;
53
-
54
- // make sure we have non-zero width
55
- if (this.width < 1) {
56
- this.width = this.divElem.width ? this.divElem.width : 300;
57
- }
58
-
59
- if (this.height < 1) {
60
- this.height = this.divElem.height ? this.divElem.height : 300;
61
- }
62
-
63
- // load data sources
64
- if (isArrayLike(datasources)) {
65
- for (var i = 0; i < datasources.length; i++) {
66
- if (typeof(datasources[i]) == "string") {
67
- this.deferredCount++;
68
- // load CSV via ajax
69
- var d = MochiKit.Async.doSimpleXMLHttpRequest(datasources[i]);
70
- d.addCallback(MochiKit.Base.bind(PlotKit.EasyPlot.onDataLoaded, this));
71
- }
72
- else if (isArrayLike(datasources[i])) {
73
- this.layout.addDataset("data-" + i, datasources[i]);
74
- }
75
- }
76
- }
77
- else if (!isUndefinedOrNull(datasources)) {
78
- throw "Passed datasources are not Array like";
79
- }
80
-
81
- // setup canvas to render
82
-
83
- if (CanvasRenderer.isSupported()) {
84
- this.element = CANVAS({"id": this.divElem.getAttribute("id") + "-canvas",
85
- "width": this.width,
86
- "height": this.height}, "");
87
- this.divElem.appendChild(this.element);
88
- this.renderer = new SweetCanvasRenderer(this.element, this.layout, options);
89
- }
90
- else if (SVGRenderer.isSupported()) {
91
- this.element = SVGRenderer.SVG({"id": this.divElem.getAttribute("id") + "-svg",
92
- "width": this.width,
93
- "height": this.height,
94
- "version": "1.1",
95
- "baseProfile": "full"}, "");
96
- this.divElem.appendChild(this.element);
97
- this.renderer = new SweetSVGRenderer(this.element, this.layout, options);
98
- }
99
-
100
- if ((this.deferredCount == 0) && (PlotKit.Base.keys(this.layout.datasets).length > 0)) {
101
- this.layout.evaluate();
102
- this.renderer.clear();
103
- this.renderer.render();
104
- }
105
-
106
- };
107
-
108
- PlotKit.EasyPlot.onDataLoaded = function(request) {
109
-
110
- // very primitive CSV parser, should fix to make it more compliant.
111
- var table = new Array();
112
- var lines = request.responseText.split('\n');
113
- for (var i = 0; i < lines.length; i++) {
114
- var stripped = MochiKit.Format.strip(lines[i]);
115
- if ((stripped.length > 1) && (stripped.charAt(0) != '#')) {
116
- table.push(stripped.split(','));
117
- }
118
- }
119
-
120
- this.layout.addDataset("data-ajax-" + this.deferredCount, table);
121
- this.deferredCount--;
122
-
123
- if ((this.deferredCount == 0) && (PlotKit.Base.keys(this.layout.datasets).length > 0)) {
124
- this.layout.evaluate();
125
- this.renderer.clear();
126
- this.renderer.render();
127
- }
128
- };
129
-
130
- PlotKit.EasyPlot.prototype.reload = function() {
131
- this.layout.evaluate();
132
- this.renderer.clear();
133
- this.renderer.render();
134
- };
135
-
136
- // Namespace Iniitialisation
137
-
138
- PlotKit.EasyPlotModule = {};
139
- PlotKit.EasyPlotModule.EasyPlot = PlotKit.EasyPlot;
140
-
141
- PlotKit.EasyPlotModule.EXPORT = [
142
- "EasyPlot"
143
- ];
144
-
145
- PlotKit.EasyPlotModule.EXPORT_OK = [];
146
-
147
- PlotKit.EasyPlotModule.__new__ = function() {
148
- var m = MochiKit.Base;
149
-
150
- m.nameFunctions(this);
151
-
152
- this.EXPORT_TAGS = {
153
- ":common": this.EXPORT,
154
- ":all": m.concat(this.EXPORT, this.EXPORT_OK)
155
- };
156
- };
157
-
158
- PlotKit.EasyPlotModule.__new__();
159
- MochiKit.Base._exportSymbols(this, PlotKit.EasyPlotModule);
160
-
161
-
@@ -1,756 +0,0 @@
1
- /*
2
- PlotKit Layout
3
- ==============
4
-
5
- Handles laying out data on to a virtual canvas square canvas between 0.0
6
- and 1.0. If you want to add new chart/plot types such as point plots,
7
- you need to add them here.
8
-
9
- Copyright
10
- ---------
11
- Copyright 2005,2006 (c) Alastair Tse <alastair^liquidx.net>
12
- For use under the BSD license. <http://www.liquidx.net/plotkit>
13
-
14
- */
15
-
16
- try {
17
- if (typeof(PlotKit.Base) == 'undefined')
18
- {
19
- throw ""
20
- }
21
- }
22
- catch (e) {
23
- throw "PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.Base"
24
- }
25
-
26
- // --------------------------------------------------------------------
27
- // Start of Layout definition
28
- // --------------------------------------------------------------------
29
-
30
- if (typeof(PlotKit.Layout) == 'undefined') {
31
- PlotKit.Layout = {};
32
- }
33
-
34
- PlotKit.Layout.NAME = "PlotKit.Layout";
35
- PlotKit.Layout.VERSION = PlotKit.VERSION;
36
-
37
- PlotKit.Layout.__repr__ = function() {
38
- return "[" + this.NAME + " " + this.VERSION + "]";
39
- };
40
-
41
- PlotKit.Layout.toString = function() {
42
- return this.__repr__();
43
- }
44
-
45
- PlotKit.Layout.valid_styles = ["bar", "line", "pie", "point"];
46
-
47
- // --------------------------------------------------------------------
48
- // Start of Layout definition
49
- // --------------------------------------------------------------------
50
-
51
- PlotKit.Layout = function(style, options) {
52
-
53
- this.options = {
54
- "barWidthFillFraction": 0.75,
55
- "barOrientation": "vertical",
56
- "xOriginIsZero": true,
57
- "yOriginIsZero": true,
58
- "xAxis": null, // [xmin, xmax]
59
- "yAxis": null, // [ymin, ymax]
60
- "xTicks": null, // [{label: "somelabel", v: value}, ..] (label opt.)
61
- "yTicks": null, // [{label: "somelabel", v: value}, ..] (label opt.)
62
- "xNumberOfTicks": 10,
63
- "yNumberOfTicks": 5,
64
- "xTickPrecision": 1,
65
- "yTickPrecision": 1,
66
- "pieRadius": 0.4
67
- };
68
-
69
- // valid external options : TODO: input verification
70
- this.style = style;
71
- MochiKit.Base.update(this.options, options ? options : {});
72
-
73
- // externally visible states
74
- // overriden if xAxis and yAxis are set in options
75
- if (!MochiKit.Base.isUndefinedOrNull(this.options.xAxis)) {
76
- this.minxval = this.options.xAxis[0];
77
- this.maxxval = this.options.xAxis[1];
78
- this.xscale = this.maxxval - this.minxval;
79
- }
80
- else {
81
- this.minxval = 0;
82
- this.maxxval = null;
83
- this.xscale = null; // val -> pos factor (eg, xval * xscale = xpos)
84
- }
85
-
86
- if (!MochiKit.Base.isUndefinedOrNull(this.options.yAxis)) {
87
- this.minyval = this.options.yAxis[0];
88
- this.maxyval = this.options.yAxis[1];
89
- this.yscale = this.maxyval - this.minyval;
90
- }
91
- else {
92
- this.minyval = 0;
93
- this.maxyval = null;
94
- this.yscale = null;
95
- }
96
-
97
- this.bars = new Array(); // array of bars to plot for bar charts
98
- this.points = new Array(); // array of points to plot for line plots
99
- this.slices = new Array(); // array of slices to draw for pie charts
100
-
101
- this.xticks = new Array();
102
- this.yticks = new Array();
103
-
104
- // internal states
105
- this.datasets = new Array();
106
- this.minxdelta = 0;
107
- this.xrange = 1;
108
- this.yrange = 1;
109
-
110
- this.hitTestCache = {x2maxy: null};
111
-
112
- };
113
-
114
- // --------------------------------------------------------------------
115
- // Dataset Manipulation
116
- // --------------------------------------------------------------------
117
-
118
-
119
- PlotKit.Layout.prototype.addDataset = function(setname, set_xy) {
120
- this.datasets[setname] = set_xy;
121
- };
122
-
123
- PlotKit.Layout.prototype.removeDataset = function(setname, set_xy) {
124
- delete this.datasets[setname];
125
- };
126
-
127
- PlotKit.Layout.prototype.addDatasetFromTable = function(name, tableElement, xcol, ycol, lcol) {
128
- var isNil = MochiKit.Base.isUndefinedOrNull;
129
- var scrapeText = MochiKit.DOM.scrapeText;
130
- var strip = MochiKit.Format.strip;
131
-
132
- if (isNil(xcol))
133
- xcol = 0;
134
- if (isNil(ycol))
135
- ycol = 1;
136
- if (isNil(lcol))
137
- lcol = -1;
138
-
139
- var rows = tableElement.tBodies[0].rows;
140
- var data = new Array();
141
- var labels = new Array();
142
-
143
- if (!isNil(rows)) {
144
- for (var i = 0; i < rows.length; i++) {
145
- data.push([parseFloat(strip(scrapeText(rows[i].cells[xcol]))),
146
- parseFloat(strip(scrapeText(rows[i].cells[ycol])))]);
147
- if (lcol >= 0){
148
- labels.push({v: parseFloat(strip(scrapeText(rows[i].cells[xcol]))),
149
- label: strip(scrapeText(rows[i].cells[lcol]))});
150
- }
151
- }
152
- this.addDataset(name, data);
153
- if (lcol >= 0) {
154
- this.options.xTicks = labels;
155
- }
156
- return true;
157
- }
158
- return false;
159
- };
160
-
161
- // --------------------------------------------------------------------
162
- // Evaluates the layout for the current data and style.
163
- // --------------------------------------------------------------------
164
-
165
- PlotKit.Layout.prototype.evaluate = function() {
166
- this._evaluateLimits();
167
- this._evaluateScales();
168
- if (this.style == "bar") {
169
- if (this.options.barOrientation == "horizontal") {
170
- this._evaluateHorizBarCharts();
171
- }
172
- else {
173
- this._evaluateBarCharts();
174
- }
175
- this._evaluateBarTicks();
176
- }
177
- else if (this.style == "line") {
178
- this._evaluateLineCharts();
179
- this._evaluateLineTicks();
180
- }
181
- else if (this.style == "pie") {
182
- this._evaluatePieCharts();
183
- this._evaluatePieTicks();
184
- }
185
- };
186
-
187
-
188
-
189
- // Given the fractional x, y positions, report the corresponding
190
- // x, y values.
191
- PlotKit.Layout.prototype.hitTest = function(x, y) {
192
- // TODO: make this more efficient with better datastructures
193
- // for this.bars, this.points and this.slices
194
-
195
- var f = MochiKit.Format.twoDigitFloat;
196
-
197
- if ((this.style == "bar") && this.bars && (this.bars.length > 0)) {
198
- for (var i = 0; i < this.bars.length; i++) {
199
- var bar = this.bars[i];
200
- if ((x >= bar.x) && (x <= bar.x + bar.w)
201
- && (y >= bar.y) && (y - bar.y <= bar.h))
202
- return bar;
203
- }
204
- }
205
-
206
- else if (this.style == "line") {
207
- if (this.hitTestCache.x2maxy == null) {
208
- this._regenerateHitTestCache();
209
- }
210
-
211
- // 1. find the xvalues that equal or closest to the give x
212
- var xval = x / this.xscale;
213
- var xvalues = this.hitTestCache.xvalues;
214
- var xbefore = null;
215
- var xafter = null;
216
-
217
- for (var i = 1; i < xvalues.length; i++) {
218
- if (xvalues[i] > xval) {
219
- xbefore = xvalues[i-1];
220
- xafter = xvalues[i];
221
- break;
222
- }
223
- }
224
-
225
- if ((xbefore != null)) {
226
- var ybefore = this.hitTestCache.x2maxy[xbefore];
227
- var yafter = this.hitTestCache.x2maxy[xafter];
228
- var yval = (1.0 - y)/this.yscale;
229
-
230
- // interpolate whether we will fall inside or outside
231
- var gradient = (yafter - ybefore) / (xafter - xbefore);
232
- var projmaxy = ybefore + gradient * (xval - xbefore);
233
- if (projmaxy >= yval) {
234
- // inside the highest curve (roughly)
235
- var obj = {xval: xval, yval: yval,
236
- xafter: xafter, yafter: yafter,
237
- xbefore: xbefore, ybefore: ybefore,
238
- yprojected: projmaxy
239
- };
240
- return obj;
241
- }
242
- }
243
- }
244
-
245
- else if (this.style == "pie") {
246
- var dist = Math.sqrt((y-0.5)*(y-0.5) + (x-0.5)*(x-0.5));
247
- if (dist > this.options.pieRadius)
248
- return null;
249
-
250
- // TODO: actually doesn't work if we don't know how the Canvas
251
- // lays it out, need to fix!
252
- var angle = Math.atan2(y - 0.5, x - 0.5) - Math.PI/2;
253
- for (var i = 0; i < this.slices.length; i++) {
254
- var slice = this.slices[i];
255
- if (slice.startAngle < angle && slice.endAngle >= angle)
256
- return slice;
257
- }
258
- }
259
-
260
- return null;
261
- };
262
-
263
- // Reports valid position rectangle for X value (only valid for bar charts)
264
- PlotKit.Layout.prototype.rectForX = function(x) {
265
- return null;
266
- };
267
-
268
- // Reports valid angles through which X value encloses (only valid for pie charts)
269
- PlotKit.Layout.prototype.angleRangeForX = function(x) {
270
- return null;
271
- };
272
-
273
- // --------------------------------------------------------------------
274
- // START Internal Functions
275
- // --------------------------------------------------------------------
276
-
277
- PlotKit.Layout.prototype._evaluateLimits = function() {
278
- // take all values from all datasets and find max and min
279
- var map = PlotKit.Base.map;
280
- var items = PlotKit.Base.items;
281
- var itemgetter = MochiKit.Base.itemgetter;
282
- var collapse = PlotKit.Base.collapse;
283
- var listMin = MochiKit.Base.listMin;
284
- var listMax = MochiKit.Base.listMax;
285
- var isNil = MochiKit.Base.isUndefinedOrNull;
286
-
287
-
288
- var all = collapse(map(itemgetter(1), items(this.datasets)));
289
- if (isNil(this.options.xAxis)) {
290
- if (this.options.xOriginIsZero)
291
- this.minxval = 0;
292
- else
293
- this.minxval = listMin(map(parseFloat, map(itemgetter(0), all)));
294
-
295
- this.maxxval = listMax(map(parseFloat, map(itemgetter(0), all)));
296
- }
297
- else {
298
- this.minxval = this.options.xAxis[0];
299
- this.maxxval = this.options.xAxis[1];
300
- this.xscale = this.maxval - this.minxval;
301
- }
302
-
303
- if (isNil(this.options.yAxis)) {
304
- if (this.options.yOriginIsZero)
305
- this.minyval = 0;
306
- else
307
- this.minyval = listMin(map(parseFloat, map(itemgetter(1), all)));
308
-
309
- this.maxyval = listMax(map(parseFloat, map(itemgetter(1), all)));
310
- }
311
- else {
312
- this.minyval = this.options.yAxis[0];
313
- this.maxyval = this.options.yAxis[1];
314
- this.yscale = this.maxyval - this.minyval;
315
- }
316
-
317
- };
318
-
319
- PlotKit.Layout.prototype._evaluateScales = function() {
320
- var isNil = MochiKit.Base.isUndefinedOrNull;
321
-
322
- this.xrange = this.maxxval - this.minxval;
323
- if (this.xrange == 0)
324
- this.xscale = 1.0;
325
- else
326
- this.xscale = 1/this.xrange;
327
-
328
- this.yrange = this.maxyval - this.minyval;
329
- if (this.yrange == 0)
330
- this.yscale = 1.0;
331
- else
332
- this.yscale = 1/this.yrange;
333
- };
334
-
335
- PlotKit.Layout.prototype._uniqueXValues = function() {
336
- var collapse = PlotKit.Base.collapse;
337
- var map = PlotKit.Base.map;
338
- var uniq = PlotKit.Base.uniq;
339
- var getter = MochiKit.Base.itemgetter;
340
- var items = PlotKit.Base.items;
341
-
342
- var xvalues = map(parseFloat, map(getter(0), collapse(map(getter(1), items(this.datasets)))));
343
- xvalues.sort(MochiKit.Base.compare);
344
- return uniq(xvalues);
345
- };
346
-
347
- // Create the bars
348
- PlotKit.Layout.prototype._evaluateBarCharts = function() {
349
- var items = PlotKit.Base.items;
350
-
351
- var setCount = items(this.datasets).length;
352
-
353
- // work out how far separated values are
354
- var xdelta = 10000000;
355
- var xvalues = this._uniqueXValues();
356
- for (var i = 1; i < xvalues.length; i++) {
357
- xdelta = Math.min(Math.abs(xvalues[i] - xvalues[i-1]), xdelta);
358
- }
359
-
360
- var barWidth = 0;
361
- var barWidthForSet = 0;
362
- var barMargin = 0;
363
- if (xvalues.length == 1) {
364
- // note we have to do something smarter if we only plot one value
365
- xdelta = 1.0;
366
- this.xscale = 1.0;
367
- this.minxval = xvalues[0];
368
- barWidth = 1.0 * this.options.barWidthFillFraction;
369
- barWidthForSet = barWidth/setCount;
370
- barMargin = (1.0 - this.options.barWidthFillFraction)/2;
371
- }
372
- else {
373
- // readjust xscale to fix with bar charts
374
- if (this.xrange == 1) {
375
- this.xscale = 0.5;
376
- }
377
- else if (this.xrange == 2) {
378
- this.xscale = 1/3.0;
379
- }
380
- else {
381
- this.xscale = (1.0 - xdelta/this.xrange)/this.xrange;
382
- }
383
- barWidth = xdelta * this.xscale * this.options.barWidthFillFraction;
384
- barWidthForSet = barWidth / setCount;
385
- barMargin = xdelta * this.xscale * (1.0 - this.options.barWidthFillFraction)/2;
386
- }
387
-
388
- this.minxdelta = xdelta; // need this for tick positions
389
-
390
- // add all the rects
391
- this.bars = new Array();
392
- var i = 0;
393
- for (var setName in this.datasets) {
394
- var dataset = this.datasets[setName];
395
- if (PlotKit.Base.isFuncLike(dataset)) continue;
396
- for (var j = 0; j < dataset.length; j++) {
397
- var item = dataset[j];
398
- var rect = {
399
- x: ((parseFloat(item[0]) - this.minxval) * this.xscale) + (i * barWidthForSet) + barMargin,
400
- y: 1.0 - ((parseFloat(item[1]) - this.minyval) * this.yscale),
401
- w: barWidthForSet,
402
- h: ((parseFloat(item[1]) - this.minyval) * this.yscale),
403
- xval: parseFloat(item[0]),
404
- yval: parseFloat(item[1]),
405
- name: setName
406
- };
407
- if ((rect.x >= 0.0) && (rect.x <= 1.0) &&
408
- (rect.y >= 0.0) && (rect.y <= 1.0)) {
409
- this.bars.push(rect);
410
- }
411
- }
412
- i++;
413
- }
414
- };
415
-
416
- // Create the horizontal bars
417
- PlotKit.Layout.prototype._evaluateHorizBarCharts = function() {
418
- var items = PlotKit.Base.items;
419
-
420
- var setCount = items(this.datasets).length;
421
-
422
- // work out how far separated values are
423
- var xdelta = 10000000;
424
- var xvalues = this._uniqueXValues();
425
- for (var i = 1; i < xvalues.length; i++) {
426
- xdelta = Math.min(Math.abs(xvalues[i] - xvalues[i-1]), xdelta);
427
- }
428
-
429
- var barWidth = 0;
430
- var barWidthForSet = 0;
431
- var barMargin = 0;
432
-
433
- // work out how far each far each bar is separated
434
- if (xvalues.length == 1) {
435
- // do something smarter if we only plot one value
436
- xdelta = 1.0;
437
- this.xscale = 1.0;
438
- this.minxval = xvalues[0];
439
- barWidth = 1.0 * this.options.barWidthFillFraction;
440
- barWidthForSet = barWidth/setCount;
441
- barMargin = (1.0 - this.options.barWidthFillFraction)/2;
442
- }
443
- else {
444
- // readjust yscale to fix with bar charts
445
- this.xscale = (1.0 - xdelta/this.xrange)/this.xrange;
446
- barWidth = xdelta * this.xscale * this.options.barWidthFillFraction;
447
- barWidthForSet = barWidth / setCount;
448
- barMargin = xdelta * this.xscale * (1.0 - this.options.barWidthFillFraction)/2;
449
- }
450
-
451
- this.minxdelta = xdelta; // need this for tick positions
452
-
453
- // add all the rects
454
- this.bars = new Array();
455
- var i = 0;
456
- for (var setName in this.datasets) {
457
- var dataset = this.datasets[setName];
458
- if (PlotKit.Base.isFuncLike(dataset)) continue;
459
- for (var j = 0; j < dataset.length; j++) {
460
- var item = dataset[j];
461
- var rect = {
462
- y: ((parseFloat(item[0]) - this.minxval) * this.xscale) + (i * barWidthForSet) + barMargin,
463
- x: 0.0,
464
- h: barWidthForSet,
465
- w: ((parseFloat(item[1]) - this.minyval) * this.yscale),
466
- xval: parseFloat(item[0]),
467
- yval: parseFloat(item[1]),
468
- name: setName
469
- };
470
-
471
- // limit the x, y values so they do not overdraw
472
- if (rect.y <= 0.0) {
473
- rect.y = 0.0;
474
- }
475
- if (rect.y >= 1.0) {
476
- rect.y = 1.0;
477
- }
478
- if ((rect.x >= 0.0) && (rect.x <= 1.0)) {
479
- this.bars.push(rect);
480
- }
481
- }
482
- i++;
483
- }
484
- };
485
-
486
-
487
- // Create the line charts
488
- PlotKit.Layout.prototype._evaluateLineCharts = function() {
489
- var items = PlotKit.Base.items;
490
-
491
- var setCount = items(this.datasets).length;
492
-
493
- // add all the rects
494
- this.points = new Array();
495
- var i = 0;
496
- for (var setName in this.datasets) {
497
- var dataset = this.datasets[setName];
498
- if (PlotKit.Base.isFuncLike(dataset)) continue;
499
- dataset.sort(function(a, b) { return compare(parseFloat(a[0]), parseFloat(b[0])); });
500
- for (var j = 0; j < dataset.length; j++) {
501
- var item = dataset[j];
502
- var point = {
503
- x: ((parseFloat(item[0]) - this.minxval) * this.xscale),
504
- y: 1.0 - ((parseFloat(item[1]) - this.minyval) * this.yscale),
505
- xval: parseFloat(item[0]),
506
- yval: parseFloat(item[1]),
507
- name: setName
508
- };
509
-
510
- // limit the x, y values so they do not overdraw
511
- if (point.y <= 0.0) {
512
- point.y = 0.0;
513
- }
514
- if (point.y >= 1.0) {
515
- point.y = 1.0;
516
- }
517
- if ((point.x >= 0.0) && (point.x <= 1.0)) {
518
- this.points.push(point);
519
- }
520
- }
521
- i++;
522
- }
523
- };
524
-
525
- // Create the pie charts
526
- PlotKit.Layout.prototype._evaluatePieCharts = function() {
527
- var items = PlotKit.Base.items;
528
- var sum = MochiKit.Iter.sum;
529
- var getter = MochiKit.Base.itemgetter;
530
-
531
- var setCount = items(this.datasets).length;
532
-
533
- // we plot the y values of the first dataset
534
- var dataset = items(this.datasets)[0][1];
535
- var total = sum(map(getter(1), dataset));
536
-
537
- this.slices = new Array();
538
- var currentAngle = 0.0;
539
- for (var i = 0; i < dataset.length; i++) {
540
- var fraction = dataset[i][1] / total;
541
- var startAngle = currentAngle * Math.PI * 2;
542
- var endAngle = (currentAngle + fraction) * Math.PI * 2;
543
-
544
- var slice = {fraction: fraction,
545
- xval: dataset[i][0],
546
- yval: dataset[i][1],
547
- startAngle: startAngle,
548
- endAngle: endAngle
549
- };
550
- if (dataset[i][1] != 0) {
551
- this.slices.push(slice);
552
- }
553
- currentAngle += fraction;
554
- }
555
- };
556
-
557
- PlotKit.Layout.prototype._evaluateLineTicksForXAxis = function() {
558
- var isNil = MochiKit.Base.isUndefinedOrNull;
559
-
560
- if (this.options.xTicks) {
561
- // we use use specified ticks with optional labels
562
-
563
- this.xticks = new Array();
564
- var makeTicks = function(tick) {
565
- var label = tick.label;
566
- if (isNil(label))
567
- label = tick.v.toString();
568
- var pos = this.xscale * (tick.v - this.minxval);
569
- if ((pos >= 0.0) && (pos <= 1.0)) {
570
- this.xticks.push([pos, label]);
571
- }
572
- };
573
- MochiKit.Iter.forEach(this.options.xTicks, bind(makeTicks, this));
574
- }
575
- else if (this.options.xNumberOfTicks) {
576
- // we use defined number of ticks as hint to auto generate
577
- var xvalues = this._uniqueXValues();
578
- var roughSeparation = this.xrange / this.options.xNumberOfTicks;
579
- var tickCount = 0;
580
-
581
- this.xticks = new Array();
582
- for (var i = 0; i <= xvalues.length; i++) {
583
- if ((xvalues[i] - this.minxval) >= (tickCount * roughSeparation)) {
584
- var pos = this.xscale * (xvalues[i] - this.minxval);
585
- if ((pos > 1.0) || (pos < 0.0))
586
- continue;
587
- this.xticks.push([pos, xvalues[i]]);
588
- tickCount++;
589
- }
590
- if (tickCount > this.options.xNumberOfTicks)
591
- break;
592
- }
593
- }
594
- };
595
-
596
- PlotKit.Layout.prototype._evaluateLineTicksForYAxis = function() {
597
- var isNil = MochiKit.Base.isUndefinedOrNull;
598
-
599
-
600
- if (this.options.yTicks) {
601
- this.yticks = new Array();
602
- var makeTicks = function(tick) {
603
- var label = tick.label;
604
- if (isNil(label))
605
- label = tick.v.toString();
606
- var pos = 1.0 - (this.yscale * (tick.v - this.minyval));
607
- if ((pos >= 0.0) && (pos <= 1.0)) {
608
- this.yticks.push([pos, label]);
609
- }
610
- };
611
- MochiKit.Iter.forEach(this.options.yTicks, bind(makeTicks, this));
612
- }
613
- else if (this.options.yNumberOfTicks) {
614
- // We use the optionally defined number of ticks as a guide
615
- this.yticks = new Array();
616
-
617
- // if we get this separation right, we'll have good looking graphs
618
- var roundInt = PlotKit.Base.roundInterval;
619
- var prec = this.options.yTickPrecision;
620
- var roughSeparation = roundInt(this.yrange,
621
- this.options.yNumberOfTicks, prec);
622
-
623
- // round off each value of the y-axis to the precision
624
- // eg. 1.3333 at precision 1 -> 1.3
625
- for (var i = 0; i <= this.options.yNumberOfTicks; i++) {
626
- var yval = this.minyval + (i * roughSeparation);
627
- var pos = 1.0 - ((yval - this.minyval) * this.yscale);
628
- if ((pos > 1.0) || (pos < 0.0))
629
- continue;
630
- this.yticks.push([pos, MochiKit.Format.roundToFixed(yval, prec)]);
631
- }
632
- }
633
- };
634
-
635
- PlotKit.Layout.prototype._evaluateLineTicks = function() {
636
- this._evaluateLineTicksForXAxis();
637
- this._evaluateLineTicksForYAxis();
638
- };
639
-
640
- PlotKit.Layout.prototype._evaluateBarTicks = function() {
641
- this._evaluateLineTicks();
642
- var centerInBar = function(tick) {
643
- return [tick[0] + (this.minxdelta * this.xscale)/2, tick[1]];
644
- };
645
- this.xticks = MochiKit.Base.map(bind(centerInBar, this), this.xticks);
646
-
647
- if (this.options.barOrientation == "horizontal") {
648
- // swap scales
649
- var tempticks = this.xticks;
650
- this.xticks = this.yticks;
651
- this.yticks = tempticks;
652
-
653
- // we need to invert the "yaxis" (which is now the xaxis when drawn)
654
- var invert = function(tick) {
655
- return [1.0 - tick[0], tick[1]];
656
- }
657
- this.xticks = MochiKit.Base.map(invert, this.xticks);
658
- }
659
- };
660
-
661
- PlotKit.Layout.prototype._evaluatePieTicks = function() {
662
- var isNil = MochiKit.Base.isUndefinedOrNull;
663
- var formatter = MochiKit.Format.numberFormatter("#%");
664
-
665
- this.xticks = new Array();
666
- if (this.options.xTicks) {
667
- // make a lookup dict for x->slice values
668
- var lookup = new Array();
669
- for (var i = 0; i < this.slices.length; i++) {
670
- lookup[this.slices[i].xval] = this.slices[i];
671
- }
672
-
673
- for (var i =0; i < this.options.xTicks.length; i++) {
674
- var tick = this.options.xTicks[i];
675
- var slice = lookup[tick.v];
676
- var label = tick.label;
677
- if (slice) {
678
- if (isNil(label))
679
- label = tick.v.toString();
680
- label += " (" + formatter(slice.fraction) + ")";
681
- this.xticks.push([tick.v, label]);
682
- }
683
- }
684
- }
685
- else {
686
- // we make our own labels from all the slices
687
- for (var i =0; i < this.slices.length; i++) {
688
- var slice = this.slices[i];
689
- var label = slice.xval + " (" + formatter(slice.fraction) + ")";
690
- this.xticks.push([slice.xval, label]);
691
- }
692
- }
693
- };
694
-
695
- PlotKit.Layout.prototype._regenerateHitTestCache = function() {
696
- this.hitTestCache.xvalues = this._uniqueXValues();
697
- this.hitTestCache.xlookup = new Array();
698
- this.hitTestCache.x2maxy = new Array();
699
-
700
- var listMax = MochiKit.Base.listMax;
701
- var itemgetter = MochiKit.Base.itemgetter;
702
- var map = MochiKit.Base.map;
703
-
704
- // generate a lookup table for x values to y values
705
- var setNames = keys(this.datasets);
706
- for (var i = 0; i < setNames.length; i++) {
707
- var dataset = this.datasets[setNames[i]];
708
- for (var j = 0; j < dataset.length; j++) {
709
- var xval = dataset[j][0];
710
- var yval = dataset[j][1];
711
- if (this.hitTestCache.xlookup[xval])
712
- this.hitTestCache.xlookup[xval].push([yval, setNames[i]]);
713
- else
714
- this.hitTestCache.xlookup[xval] = [[yval, setNames[i]]];
715
- }
716
- }
717
-
718
- for (var x in this.hitTestCache.xlookup) {
719
- var yvals = this.hitTestCache.xlookup[x];
720
- this.hitTestCache.x2maxy[x] = listMax(map(itemgetter(0), yvals));
721
- }
722
-
723
-
724
- };
725
-
726
- // --------------------------------------------------------------------
727
- // END Internal Functions
728
- // --------------------------------------------------------------------
729
-
730
-
731
- // Namespace Iniitialisation
732
-
733
- PlotKit.LayoutModule = {};
734
- PlotKit.LayoutModule.Layout = PlotKit.Layout;
735
-
736
- PlotKit.LayoutModule.EXPORT = [
737
- "Layout"
738
- ];
739
-
740
- PlotKit.LayoutModule.EXPORT_OK = [];
741
-
742
- PlotKit.LayoutModule.__new__ = function() {
743
- var m = MochiKit.Base;
744
-
745
- m.nameFunctions(this);
746
-
747
- this.EXPORT_TAGS = {
748
- ":common": this.EXPORT,
749
- ":all": m.concat(this.EXPORT, this.EXPORT_OK)
750
- };
751
- };
752
-
753
- PlotKit.LayoutModule.__new__();
754
- MochiKit.Base._exportSymbols(this, PlotKit.LayoutModule);
755
-
756
-