jqplot_rails 0.0.1
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.
- data/CHANGELOG.rdoc +2 -0
- data/LICENSE +0 -0
- data/README.rdoc +1 -0
- data/files/dist/MIT-LICENSE.txt +21 -0
- data/files/dist/README.txt +77 -0
- data/files/dist/changes.txt +395 -0
- data/files/dist/copyright.txt +56 -0
- data/files/dist/docs/files/MIT-LICENSE-txt.html +39 -0
- data/files/dist/docs/files/changes-txt.html +39 -0
- data/files/dist/docs/files/gpl-2-0-txt.html +39 -0
- data/files/dist/docs/files/images/background.jpg +0 -0
- data/files/dist/docs/files/images/basicline.png +0 -0
- data/files/dist/docs/files/images/basiclogaxis.png +0 -0
- data/files/dist/docs/files/images/basiclogoptions.png +0 -0
- data/files/dist/docs/files/images/basicoptions.png +0 -0
- data/files/dist/docs/files/images/dualaxis.png +0 -0
- data/files/dist/docs/files/images/logo.jpg +0 -0
- data/files/dist/docs/files/images/navdocs.png +0 -0
- data/files/dist/docs/files/images/navdocsover.png +0 -0
- data/files/dist/docs/files/images/navdownload.png +0 -0
- data/files/dist/docs/files/images/navdownloadover.png +0 -0
- data/files/dist/docs/files/images/navexamples.png +0 -0
- data/files/dist/docs/files/images/navexamplesover.png +0 -0
- data/files/dist/docs/files/images/navhome.png +0 -0
- data/files/dist/docs/files/images/navhomeover.png +0 -0
- data/files/dist/docs/files/images/new.png +0 -0
- data/files/dist/docs/files/images/sample3.png +0 -0
- data/files/dist/docs/files/images/samplesm.png +0 -0
- data/files/dist/docs/files/jqPlotCssStyling-txt.html +39 -0
- data/files/dist/docs/files/jqPlotOptions-txt.html +292 -0
- data/files/dist/docs/files/jqplot-axisLabelRenderer-js.html +47 -0
- data/files/dist/docs/files/jqplot-axisTickRenderer-js.html +71 -0
- data/files/dist/docs/files/jqplot-canvasGridRenderer-js.html +39 -0
- data/files/dist/docs/files/jqplot-core-js.html +385 -0
- data/files/dist/docs/files/jqplot-divTitleRenderer-js.html +39 -0
- data/files/dist/docs/files/jqplot-lineRenderer-js.html +69 -0
- data/files/dist/docs/files/jqplot-linearAxisRenderer-js.html +61 -0
- data/files/dist/docs/files/jqplot-markerRenderer-js.html +65 -0
- data/files/dist/docs/files/jqplot-shadowRenderer-js.html +61 -0
- data/files/dist/docs/files/jqplot-shapeRenderer-js.html +65 -0
- data/files/dist/docs/files/jqplot-themeEngine-js.html +191 -0
- data/files/dist/docs/files/jqplot-toImage-js.html +39 -0
- data/files/dist/docs/files/optionsTutorial-txt.html +120 -0
- data/files/dist/docs/files/plugins/jqplot-BezierCurveRenderer-js.html +45 -0
- data/files/dist/docs/files/plugins/jqplot-barRenderer-js.html +69 -0
- data/files/dist/docs/files/plugins/jqplot-blockRenderer-js.html +53 -0
- data/files/dist/docs/files/plugins/jqplot-bubbleRenderer-js.html +71 -0
- data/files/dist/docs/files/plugins/jqplot-canvasAxisLabelRenderer-js.html +63 -0
- data/files/dist/docs/files/plugins/jqplot-canvasAxisTickRenderer-js.html +79 -0
- data/files/dist/docs/files/plugins/jqplot-canvasOverlay-js.html +113 -0
- data/files/dist/docs/files/plugins/jqplot-categoryAxisRenderer-js.html +46 -0
- data/files/dist/docs/files/plugins/jqplot-ciParser-js.html +39 -0
- data/files/dist/docs/files/plugins/jqplot-cursor-js.html +93 -0
- data/files/dist/docs/files/plugins/jqplot-dateAxisRenderer-js.html +101 -0
- data/files/dist/docs/files/plugins/jqplot-donutRenderer-js.html +98 -0
- data/files/dist/docs/files/plugins/jqplot-dragable-js.html +45 -0
- data/files/dist/docs/files/plugins/jqplot-enhancedLegendRenderer-js.html +49 -0
- data/files/dist/docs/files/plugins/jqplot-funnelRenderer-js.html +87 -0
- data/files/dist/docs/files/plugins/jqplot-highlighter-js.html +80 -0
- data/files/dist/docs/files/plugins/jqplot-logAxisRenderer-js.html +47 -0
- data/files/dist/docs/files/plugins/jqplot-mekkoAxisRenderer-js.html +49 -0
- data/files/dist/docs/files/plugins/jqplot-mekkoRenderer-js.html +62 -0
- data/files/dist/docs/files/plugins/jqplot-meterGaugeRenderer-js.html +103 -0
- data/files/dist/docs/files/plugins/jqplot-ohlcRenderer-js.html +65 -0
- data/files/dist/docs/files/plugins/jqplot-pieRenderer-js.html +93 -0
- data/files/dist/docs/files/plugins/jqplot-pointLabels-js.html +72 -0
- data/files/dist/docs/files/plugins/jqplot-pyramidAxisRenderer-js.html +49 -0
- data/files/dist/docs/files/plugins/jqplot-pyramidGridRenderer-js.html +39 -0
- data/files/dist/docs/files/plugins/jqplot-pyramidRenderer-js.html +53 -0
- data/files/dist/docs/files/plugins/jqplot-trendline-js.html +67 -0
- data/files/dist/docs/files/usage-txt.html +58 -0
- data/files/dist/docs/index/Classes.html +70 -0
- data/files/dist/docs/index/Files.html +34 -0
- data/files/dist/docs/index/Functions.html +66 -0
- data/files/dist/docs/index/General.html +42 -0
- data/files/dist/docs/index/General2.html +42 -0
- data/files/dist/docs/index/General3.html +42 -0
- data/files/dist/docs/index/General4.html +46 -0
- data/files/dist/docs/index/General5.html +46 -0
- data/files/dist/docs/index/General6.html +34 -0
- data/files/dist/docs/index/General7.html +58 -0
- data/files/dist/docs/index/Hooks.html +46 -0
- data/files/dist/docs/index/Properties.html +42 -0
- data/files/dist/docs/index/Properties2.html +42 -0
- data/files/dist/docs/index/Properties3.html +46 -0
- data/files/dist/docs/index/Properties4.html +50 -0
- data/files/dist/docs/index/Properties5.html +34 -0
- data/files/dist/docs/index/Properties6.html +58 -0
- data/files/dist/docs/index.html +1 -0
- data/files/dist/docs/javascript/main.js +836 -0
- data/files/dist/docs/javascript/searchdata.js +182 -0
- data/files/dist/docs/search/ClassesA.html +20 -0
- data/files/dist/docs/search/ClassesD.html +20 -0
- data/files/dist/docs/search/ClassesG.html +20 -0
- data/files/dist/docs/search/ClassesH.html +20 -0
- data/files/dist/docs/search/ClassesJ.html +20 -0
- data/files/dist/docs/search/ClassesL.html +20 -0
- data/files/dist/docs/search/ClassesS.html +20 -0
- data/files/dist/docs/search/ClassesSymbols.html +20 -0
- data/files/dist/docs/search/ClassesT.html +20 -0
- data/files/dist/docs/search/ClassesV.html +20 -0
- data/files/dist/docs/search/FilesJ.html +20 -0
- data/files/dist/docs/search/FunctionsC.html +20 -0
- data/files/dist/docs/search/FunctionsD.html +20 -0
- data/files/dist/docs/search/FunctionsG.html +20 -0
- data/files/dist/docs/search/FunctionsI.html +20 -0
- data/files/dist/docs/search/FunctionsM.html +20 -0
- data/files/dist/docs/search/FunctionsN.html +20 -0
- data/files/dist/docs/search/FunctionsR.html +20 -0
- data/files/dist/docs/search/FunctionsS.html +20 -0
- data/files/dist/docs/search/FunctionsZ.html +20 -0
- data/files/dist/docs/search/GeneralA.html +20 -0
- data/files/dist/docs/search/GeneralB.html +20 -0
- data/files/dist/docs/search/GeneralC.html +20 -0
- data/files/dist/docs/search/GeneralD.html +20 -0
- data/files/dist/docs/search/GeneralE.html +20 -0
- data/files/dist/docs/search/GeneralF.html +20 -0
- data/files/dist/docs/search/GeneralG.html +20 -0
- data/files/dist/docs/search/GeneralH.html +20 -0
- data/files/dist/docs/search/GeneralI.html +20 -0
- data/files/dist/docs/search/GeneralJ.html +20 -0
- data/files/dist/docs/search/GeneralL.html +20 -0
- data/files/dist/docs/search/GeneralM.html +20 -0
- data/files/dist/docs/search/GeneralN.html +20 -0
- data/files/dist/docs/search/GeneralO.html +20 -0
- data/files/dist/docs/search/GeneralP.html +20 -0
- data/files/dist/docs/search/GeneralR.html +20 -0
- data/files/dist/docs/search/GeneralS.html +20 -0
- data/files/dist/docs/search/GeneralSymbols.html +20 -0
- data/files/dist/docs/search/GeneralT.html +20 -0
- data/files/dist/docs/search/GeneralU.html +20 -0
- data/files/dist/docs/search/GeneralV.html +20 -0
- data/files/dist/docs/search/GeneralW.html +20 -0
- data/files/dist/docs/search/GeneralX.html +20 -0
- data/files/dist/docs/search/GeneralY.html +20 -0
- data/files/dist/docs/search/GeneralZ.html +20 -0
- data/files/dist/docs/search/HooksA.html +20 -0
- data/files/dist/docs/search/HooksE.html +20 -0
- data/files/dist/docs/search/HooksJ.html +20 -0
- data/files/dist/docs/search/HooksP.html +20 -0
- data/files/dist/docs/search/NoResults.html +15 -0
- data/files/dist/docs/search/PropertiesA.html +20 -0
- data/files/dist/docs/search/PropertiesB.html +20 -0
- data/files/dist/docs/search/PropertiesC.html +20 -0
- data/files/dist/docs/search/PropertiesD.html +20 -0
- data/files/dist/docs/search/PropertiesE.html +20 -0
- data/files/dist/docs/search/PropertiesF.html +20 -0
- data/files/dist/docs/search/PropertiesG.html +20 -0
- data/files/dist/docs/search/PropertiesH.html +20 -0
- data/files/dist/docs/search/PropertiesI.html +20 -0
- data/files/dist/docs/search/PropertiesL.html +20 -0
- data/files/dist/docs/search/PropertiesM.html +20 -0
- data/files/dist/docs/search/PropertiesN.html +20 -0
- data/files/dist/docs/search/PropertiesO.html +20 -0
- data/files/dist/docs/search/PropertiesP.html +20 -0
- data/files/dist/docs/search/PropertiesR.html +20 -0
- data/files/dist/docs/search/PropertiesS.html +20 -0
- data/files/dist/docs/search/PropertiesT.html +20 -0
- data/files/dist/docs/search/PropertiesU.html +20 -0
- data/files/dist/docs/search/PropertiesV.html +20 -0
- data/files/dist/docs/search/PropertiesW.html +20 -0
- data/files/dist/docs/search/PropertiesX.html +20 -0
- data/files/dist/docs/search/PropertiesY.html +20 -0
- data/files/dist/docs/search/PropertiesZ.html +20 -0
- data/files/dist/docs/styles/1.css +767 -0
- data/files/dist/docs/styles/2.css +174 -0
- data/files/dist/docs/styles/main.css +2 -0
- data/files/dist/examples/KCPsample4.csv +25 -0
- data/files/dist/examples/ajax-loader.gif +0 -0
- data/files/dist/examples/area.html +139 -0
- data/files/dist/examples/axisLabelTests.html +157 -0
- data/files/dist/examples/axisLabelsRotatedText.html +229 -0
- data/files/dist/examples/axisScalingForceTickAt.html +242 -0
- data/files/dist/examples/bandedLine.html +310 -0
- data/files/dist/examples/bar-charts.html +219 -0
- data/files/dist/examples/barLineAnimated.html +165 -0
- data/files/dist/examples/barTest.html +299 -0
- data/files/dist/examples/bezierCurve.html +125 -0
- data/files/dist/examples/blockPlot.html +197 -0
- data/files/dist/examples/bubble-plots.html +213 -0
- data/files/dist/examples/bubbleChart.html +264 -0
- data/files/dist/examples/candlestick-charts.html +209 -0
- data/files/dist/examples/candlestick.html +322 -0
- data/files/dist/examples/cursor-highlighter.html +137 -0
- data/files/dist/examples/customHighlighterCursorTrendline.html +104 -0
- data/files/dist/examples/dashboardWidget.html +212 -0
- data/files/dist/examples/dashedLines.html +227 -0
- data/files/dist/examples/data-renderers.html +144 -0
- data/files/dist/examples/date-axes.html +107 -0
- data/files/dist/examples/dateAxisLogAxisZooming.html +105 -0
- data/files/dist/examples/dateAxisRenderer.html +292 -0
- data/files/dist/examples/example.js +114 -0
- data/files/dist/examples/example.min.js +1 -0
- data/files/dist/examples/examples.css +135 -0
- data/files/dist/examples/examples.min.css +1 -0
- data/files/dist/examples/fillBetweenLines.html +134 -0
- data/files/dist/examples/hiddenPlotsInTabs.html +225 -0
- data/files/dist/examples/images/logo.jpg +0 -0
- data/files/dist/examples/index.html +100 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-icons_454545_256x240.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-icons_888888_256x240.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/jquery-ui.css +612 -0
- data/files/dist/examples/jquery-ui/css/ui-lightness/jquery-ui.min.css +10 -0
- data/files/dist/examples/jquery-ui/js/jquery-ui.min.js +473 -0
- data/files/dist/examples/jquery-ui/js/jquery.effects.blind.js +80 -0
- data/files/dist/examples/jquery-ui/js/jquery.effects.blind.min.js +14 -0
- data/files/dist/examples/jquery-ui/js/jquery.effects.core.js +890 -0
- data/files/dist/examples/jquery-ui/js/jquery.effects.core.min.js +32 -0
- data/files/dist/examples/jsondata.txt +1 -0
- data/files/dist/examples/kcp_area.html +250 -0
- data/files/dist/examples/kcp_cdf.html +351 -0
- data/files/dist/examples/kcp_engel.html +244 -0
- data/files/dist/examples/kcp_lorenz.html +510 -0
- data/files/dist/examples/kcp_pdf.html +387 -0
- data/files/dist/examples/kcp_pyramid.html +580 -0
- data/files/dist/examples/kcp_pyramid2.html +568 -0
- data/files/dist/examples/line-charts.html +193 -0
- data/files/dist/examples/mekkoCharts.html +269 -0
- data/files/dist/examples/meterGauge.html +179 -0
- data/files/dist/examples/nav.inc +40 -0
- data/files/dist/examples/pie-donut-charts.html +160 -0
- data/files/dist/examples/pieTest.html +187 -0
- data/files/dist/examples/pieTest2.js +80 -0
- data/files/dist/examples/pieTest4.html +258 -0
- data/files/dist/examples/point-labels.html +193 -0
- data/files/dist/examples/resizablePlot.html +196 -0
- data/files/dist/examples/rotated-tick-labels.html +216 -0
- data/files/dist/examples/rotatedTickLabelsZoom.html +118 -0
- data/files/dist/examples/smoothedLine.html +137 -0
- data/files/dist/examples/syntaxhighlighter/LGPL-LICENSE +165 -0
- data/files/dist/examples/syntaxhighlighter/MIT-LICENSE +20 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shAutoloader.js +17 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shAutoloader.min.js +1 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shBrushJScript.js +52 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shBrushJScript.min.js +1 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shBrushXml.js +69 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shBrushXml.min.js +1 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shCore.js +17 -0
- data/files/dist/examples/syntaxhighlighter/scripts/shCore.min.js +1 -0
- data/files/dist/examples/syntaxhighlighter/styles/shCore.css +226 -0
- data/files/dist/examples/syntaxhighlighter/styles/shCore.min.css +1 -0
- data/files/dist/examples/syntaxhighlighter/styles/shCoreDefault.css +328 -0
- data/files/dist/examples/syntaxhighlighter/styles/shCoreDefault.min.css +1 -0
- data/files/dist/examples/syntaxhighlighter/styles/shThemeDefault.css +117 -0
- data/files/dist/examples/syntaxhighlighter/styles/shThemeDefault.min.css +1 -0
- data/files/dist/examples/syntaxhighlighter/styles/shThemejqPlot.css +138 -0
- data/files/dist/examples/syntaxhighlighter/styles/shThemejqPlot.min.css +1 -0
- data/files/dist/examples/theming.html +519 -0
- data/files/dist/examples/topbanner.inc +9 -0
- data/files/dist/examples/waterfall.html +162 -0
- data/files/dist/examples/waterfall2.html +231 -0
- data/files/dist/examples/yahooData.js +1807 -0
- data/files/dist/examples/yahooData.min.js +1 -0
- data/files/dist/examples/zoom1.html +149 -0
- data/files/dist/examples/zoomOptions.html +176 -0
- data/files/dist/examples/zoomProxy.html +110 -0
- data/files/dist/examples/zooming.html +209 -0
- data/files/dist/excanvas.js +1438 -0
- data/files/dist/excanvas.min.js +57 -0
- data/files/dist/gpl-2.0.txt +280 -0
- data/files/dist/jqPlotCssStyling.txt +53 -0
- data/files/dist/jqPlotOptions.txt +276 -0
- data/files/dist/jquery.jqplot.css +259 -0
- data/files/dist/jquery.jqplot.js +10901 -0
- data/files/dist/jquery.jqplot.min.css +1 -0
- data/files/dist/jquery.js +9046 -0
- data/files/dist/jquery.min.js +4 -0
- data/files/dist/optionsTutorial.txt +240 -0
- data/files/dist/plugins/jqplot.BezierCurveRenderer.js +312 -0
- data/files/dist/plugins/jqplot.BezierCurveRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.barRenderer.js +747 -0
- data/files/dist/plugins/jqplot.barRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.blockRenderer.js +234 -0
- data/files/dist/plugins/jqplot.blockRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.bubbleRenderer.js +754 -0
- data/files/dist/plugins/jqplot.bubbleRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.canvasAxisLabelRenderer.js +202 -0
- data/files/dist/plugins/jqplot.canvasAxisLabelRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.canvasAxisTickRenderer.js +242 -0
- data/files/dist/plugins/jqplot.canvasAxisTickRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.canvasOverlay.js +864 -0
- data/files/dist/plugins/jqplot.canvasOverlay.min.js +57 -0
- data/files/dist/plugins/jqplot.canvasTextRenderer.js +448 -0
- data/files/dist/plugins/jqplot.canvasTextRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.categoryAxisRenderer.js +636 -0
- data/files/dist/plugins/jqplot.categoryAxisRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.ciParser.js +115 -0
- data/files/dist/plugins/jqplot.ciParser.min.js +57 -0
- data/files/dist/plugins/jqplot.cursor.js +1093 -0
- data/files/dist/plugins/jqplot.cursor.min.js +57 -0
- data/files/dist/plugins/jqplot.dateAxisRenderer.js +702 -0
- data/files/dist/plugins/jqplot.dateAxisRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.donutRenderer.js +800 -0
- data/files/dist/plugins/jqplot.donutRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.dragable.js +224 -0
- data/files/dist/plugins/jqplot.dragable.min.js +57 -0
- data/files/dist/plugins/jqplot.enhancedLegendRenderer.js +241 -0
- data/files/dist/plugins/jqplot.enhancedLegendRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.funnelRenderer.js +938 -0
- data/files/dist/plugins/jqplot.funnelRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.highlighter.js +454 -0
- data/files/dist/plugins/jqplot.highlighter.min.js +57 -0
- data/files/dist/plugins/jqplot.json2.js +475 -0
- data/files/dist/plugins/jqplot.json2.min.js +57 -0
- data/files/dist/plugins/jqplot.logAxisRenderer.js +528 -0
- data/files/dist/plugins/jqplot.logAxisRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.mekkoAxisRenderer.js +610 -0
- data/files/dist/plugins/jqplot.mekkoAxisRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.mekkoRenderer.js +436 -0
- data/files/dist/plugins/jqplot.mekkoRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.meterGaugeRenderer.js +1029 -0
- data/files/dist/plugins/jqplot.meterGaugeRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.ohlcRenderer.js +372 -0
- data/files/dist/plugins/jqplot.ohlcRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.pieRenderer.js +899 -0
- data/files/dist/plugins/jqplot.pieRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.pointLabels.js +362 -0
- data/files/dist/plugins/jqplot.pointLabels.min.js +57 -0
- data/files/dist/plugins/jqplot.pyramidAxisRenderer.js +730 -0
- data/files/dist/plugins/jqplot.pyramidAxisRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.pyramidGridRenderer.js +423 -0
- data/files/dist/plugins/jqplot.pyramidGridRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.pyramidRenderer.js +490 -0
- data/files/dist/plugins/jqplot.pyramidRenderer.min.js +57 -0
- data/files/dist/plugins/jqplot.trendline.js +222 -0
- data/files/dist/plugins/jqplot.trendline.min.js +57 -0
- data/files/dist/usage.txt +126 -0
- data/files/javascripts/excanvas.min.js +57 -0
- data/files/javascripts/jquery.jqplot.min.js +57 -0
- data/files/javascripts/plugins/jqplot.BezierCurveRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.barRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.blockRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.bubbleRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.canvasAxisLabelRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.canvasAxisTickRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.canvasOverlay.min.js +57 -0
- data/files/javascripts/plugins/jqplot.canvasTextRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.categoryAxisRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.ciParser.min.js +57 -0
- data/files/javascripts/plugins/jqplot.cursor.min.js +57 -0
- data/files/javascripts/plugins/jqplot.dateAxisRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.donutRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.dragable.min.js +57 -0
- data/files/javascripts/plugins/jqplot.enhancedLegendRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.funnelRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.highlighter.min.js +57 -0
- data/files/javascripts/plugins/jqplot.json2.min.js +57 -0
- data/files/javascripts/plugins/jqplot.logAxisRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.mekkoAxisRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.mekkoRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.meterGaugeRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.ohlcRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.pieRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.pointLabels.min.js +57 -0
- data/files/javascripts/plugins/jqplot.pyramidAxisRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.pyramidGridRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.pyramidRenderer.min.js +57 -0
- data/files/javascripts/plugins/jqplot.trendline.min.js +57 -0
- data/files/stylesheets/jqplot_rails_overrides.css +3 -0
- data/files/stylesheets/jquery.jqplot.min.css +1 -0
- data/lib/jqplot_rails/jqplot_action_view.rb +106 -0
- data/lib/jqplot_rails/railtie.rb +29 -0
- data/lib/jqplot_rails/tasks.rb +58 -0
- data/lib/jqplot_rails/version.rb +17 -0
- data/lib/jqplot_rails.rb +5 -0
- metadata +473 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jqPlot
|
|
3
|
+
* Pure JavaScript plotting plugin using jQuery
|
|
4
|
+
*
|
|
5
|
+
* Version: 1.0.0b2_r1012
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2009-2011 Chris Leonello
|
|
8
|
+
* jqPlot is currently available for use in all personal or commercial projects
|
|
9
|
+
* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL
|
|
10
|
+
* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can
|
|
11
|
+
* choose the license that best suits your project and use it accordingly.
|
|
12
|
+
*
|
|
13
|
+
* Although not required, the author would appreciate an email letting him
|
|
14
|
+
* know of any substantial use of jqPlot. You can reach the author at:
|
|
15
|
+
* chris at jqplot dot com or see http://www.jqplot.com/info.php .
|
|
16
|
+
*
|
|
17
|
+
* If you are feeling kind and generous, consider supporting the project by
|
|
18
|
+
* making a donation at: http://www.jqplot.com/donate.php .
|
|
19
|
+
*
|
|
20
|
+
* sprintf functions contained in jqplot.sprintf.js by Ash Searle:
|
|
21
|
+
*
|
|
22
|
+
* version 2007.04.27
|
|
23
|
+
* author Ash Searle
|
|
24
|
+
* http://hexmen.com/blog/2007/03/printf-sprintf/
|
|
25
|
+
* http://hexmen.com/js/sprintf.js
|
|
26
|
+
* The author (Ash Searle) has placed this code in the public domain:
|
|
27
|
+
* "This code is unrestricted: you are free to use it however you like."
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
(function($) {
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Class: $.jqplot.Trendline
|
|
34
|
+
* Plugin which will automatically compute and draw trendlines for plotted data.
|
|
35
|
+
*/
|
|
36
|
+
$.jqplot.Trendline = function() {
|
|
37
|
+
// Group: Properties
|
|
38
|
+
|
|
39
|
+
// prop: show
|
|
40
|
+
// Wether or not to show the trend line.
|
|
41
|
+
this.show = $.jqplot.config.enablePlugins;
|
|
42
|
+
// prop: color
|
|
43
|
+
// CSS color spec for the trend line.
|
|
44
|
+
// By default this wil be the same color as the primary line.
|
|
45
|
+
this.color = '#666666';
|
|
46
|
+
// prop: renderer
|
|
47
|
+
// Renderer to use to draw the trend line.
|
|
48
|
+
// The data series that is plotted may not be rendered as a line.
|
|
49
|
+
// Therefore, we use our own line renderer here to draw a trend line.
|
|
50
|
+
this.renderer = new $.jqplot.LineRenderer();
|
|
51
|
+
// prop: rendererOptions
|
|
52
|
+
// Options to pass to the line renderer.
|
|
53
|
+
// By default, markers are not shown on trend lines.
|
|
54
|
+
this.rendererOptions = {marker:{show:false}};
|
|
55
|
+
// prop: label
|
|
56
|
+
// Label for the trend line to use in the legend.
|
|
57
|
+
this.label = '';
|
|
58
|
+
// prop: type
|
|
59
|
+
// Either 'exponential', 'exp', or 'linear'.
|
|
60
|
+
this.type = 'linear';
|
|
61
|
+
// prop: shadow
|
|
62
|
+
// true or false, wether or not to show the shadow.
|
|
63
|
+
this.shadow = true;
|
|
64
|
+
// prop: markerRenderer
|
|
65
|
+
// Renderer to use to draw markers on the line.
|
|
66
|
+
// I think this is wrong.
|
|
67
|
+
this.markerRenderer = {show:false};
|
|
68
|
+
// prop: lineWidth
|
|
69
|
+
// Width of the trend line.
|
|
70
|
+
this.lineWidth = 1.5;
|
|
71
|
+
// prop: shadowAngle
|
|
72
|
+
// Angle of the shadow on the trend line.
|
|
73
|
+
this.shadowAngle = 45;
|
|
74
|
+
// prop: shadowOffset
|
|
75
|
+
// pixel offset for each stroke of the shadow.
|
|
76
|
+
this.shadowOffset = 1.0;
|
|
77
|
+
// prop: shadowAlpha
|
|
78
|
+
// Alpha transparency of the shadow.
|
|
79
|
+
this.shadowAlpha = 0.07;
|
|
80
|
+
// prop: shadowDepth
|
|
81
|
+
// number of strokes to make of the shadow.
|
|
82
|
+
this.shadowDepth = 3;
|
|
83
|
+
this.isTrendline = true;
|
|
84
|
+
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
$.jqplot.postSeriesInitHooks.push(parseTrendLineOptions);
|
|
88
|
+
$.jqplot.postDrawSeriesHooks.push(drawTrendline);
|
|
89
|
+
$.jqplot.addLegendRowHooks.push(addTrendlineLegend);
|
|
90
|
+
|
|
91
|
+
// called witin scope of the legend object
|
|
92
|
+
// current series passed in
|
|
93
|
+
// must return null or an object {label:label, color:color}
|
|
94
|
+
function addTrendlineLegend(series) {
|
|
95
|
+
var ret = null;
|
|
96
|
+
if (series.trendline && series.trendline.show) {
|
|
97
|
+
var lt = series.trendline.label.toString();
|
|
98
|
+
if (lt) {
|
|
99
|
+
ret = {label:lt, color:series.trendline.color};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return ret;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// called within scope of a series
|
|
106
|
+
function parseTrendLineOptions (target, data, seriesDefaults, options, plot) {
|
|
107
|
+
if (this._type && (this._type === 'line' || this._type == 'bar')) {
|
|
108
|
+
this.trendline = new $.jqplot.Trendline();
|
|
109
|
+
options = options || {};
|
|
110
|
+
$.extend(true, this.trendline, {color:this.color}, seriesDefaults.trendline, options.trendline);
|
|
111
|
+
this.trendline.renderer.init.call(this.trendline, null);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// called within scope of series object
|
|
116
|
+
function drawTrendline(sctx, options) {
|
|
117
|
+
// if we have options, merge trendline options in with precedence
|
|
118
|
+
options = $.extend(true, {}, this.trendline, options);
|
|
119
|
+
|
|
120
|
+
if (this.trendline && options.show) {
|
|
121
|
+
var fit;
|
|
122
|
+
// this.renderer.setGridData.call(this);
|
|
123
|
+
var data = options.data || this.data;
|
|
124
|
+
fit = fitData(data, this.trendline.type);
|
|
125
|
+
var gridData = options.gridData || this.renderer.makeGridData.call(this, fit.data);
|
|
126
|
+
this.trendline.renderer.draw.call(this.trendline, sctx, gridData, {showLine:true, shadow:this.trendline.shadow});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function regression(x, y, typ) {
|
|
131
|
+
var type = (typ == null) ? 'linear' : typ;
|
|
132
|
+
var N = x.length;
|
|
133
|
+
var slope;
|
|
134
|
+
var intercept;
|
|
135
|
+
var SX = 0;
|
|
136
|
+
var SY = 0;
|
|
137
|
+
var SXX = 0;
|
|
138
|
+
var SXY = 0;
|
|
139
|
+
var SYY = 0;
|
|
140
|
+
var Y = [];
|
|
141
|
+
var X = [];
|
|
142
|
+
|
|
143
|
+
if (type == 'linear') {
|
|
144
|
+
X = x;
|
|
145
|
+
Y = y;
|
|
146
|
+
}
|
|
147
|
+
else if (type == 'exp' || type == 'exponential') {
|
|
148
|
+
for ( var i=0; i<y.length; i++) {
|
|
149
|
+
// ignore points <= 0, log undefined.
|
|
150
|
+
if (y[i] <= 0) {
|
|
151
|
+
N--;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
X.push(x[i]);
|
|
155
|
+
Y.push(Math.log(y[i]));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
for ( var i = 0; i < N; i++) {
|
|
161
|
+
SX = SX + X[i];
|
|
162
|
+
SY = SY + Y[i];
|
|
163
|
+
SXY = SXY + X[i]* Y[i];
|
|
164
|
+
SXX = SXX + X[i]* X[i];
|
|
165
|
+
SYY = SYY + Y[i]* Y[i];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
slope = (N*SXY - SX*SY)/(N*SXX - SX*SX);
|
|
169
|
+
intercept = (SY - slope*SX)/N;
|
|
170
|
+
|
|
171
|
+
return [slope, intercept];
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function linearRegression(X,Y) {
|
|
175
|
+
var ret;
|
|
176
|
+
ret = regression(X,Y,'linear');
|
|
177
|
+
return [ret[0],ret[1]];
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function expRegression(X,Y) {
|
|
181
|
+
var ret;
|
|
182
|
+
var x = X;
|
|
183
|
+
var y = Y;
|
|
184
|
+
ret = regression(x, y,'exp');
|
|
185
|
+
var base = Math.exp(ret[0]);
|
|
186
|
+
var coeff = Math.exp(ret[1]);
|
|
187
|
+
return [base, coeff];
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function fitData(data, typ) {
|
|
191
|
+
var type = (typ == null) ? 'linear' : typ;
|
|
192
|
+
var ret;
|
|
193
|
+
var res;
|
|
194
|
+
var x = [];
|
|
195
|
+
var y = [];
|
|
196
|
+
var ypred = [];
|
|
197
|
+
|
|
198
|
+
for (i=0; i<data.length; i++){
|
|
199
|
+
if (data[i] != null && data[i][0] != null && data[i][1] != null) {
|
|
200
|
+
x.push(data[i][0]);
|
|
201
|
+
y.push(data[i][1]);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (type == 'linear') {
|
|
206
|
+
ret = linearRegression(x,y);
|
|
207
|
+
for ( var i=0; i<x.length; i++){
|
|
208
|
+
res = ret[0]*x[i] + ret[1];
|
|
209
|
+
ypred.push([x[i], res]);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else if (type == 'exp' || type == 'exponential') {
|
|
213
|
+
ret = expRegression(x,y);
|
|
214
|
+
for ( var i=0; i<x.length; i++){
|
|
215
|
+
res = ret[1]*Math.pow(ret[0],x[i]);
|
|
216
|
+
ypred.push([x[i], res]);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return {data: ypred, slope: ret[0], intercept: ret[1]};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
})(jQuery);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jqPlot
|
|
3
|
+
* Pure JavaScript plotting plugin using jQuery
|
|
4
|
+
*
|
|
5
|
+
* Version: 1.0.0b2_r1012
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2009-2011 Chris Leonello
|
|
8
|
+
* jqPlot is currently available for use in all personal or commercial projects
|
|
9
|
+
* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL
|
|
10
|
+
* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can
|
|
11
|
+
* choose the license that best suits your project and use it accordingly.
|
|
12
|
+
*
|
|
13
|
+
* Although not required, the author would appreciate an email letting him
|
|
14
|
+
* know of any substantial use of jqPlot. You can reach the author at:
|
|
15
|
+
* chris at jqplot dot com or see http://www.jqplot.com/info.php .
|
|
16
|
+
*
|
|
17
|
+
* If you are feeling kind and generous, consider supporting the project by
|
|
18
|
+
* making a donation at: http://www.jqplot.com/donate.php .
|
|
19
|
+
*
|
|
20
|
+
* sprintf functions contained in jqplot.sprintf.js by Ash Searle:
|
|
21
|
+
*
|
|
22
|
+
* version 2007.04.27
|
|
23
|
+
* author Ash Searle
|
|
24
|
+
* http://hexmen.com/blog/2007/03/printf-sprintf/
|
|
25
|
+
* http://hexmen.com/js/sprintf.js
|
|
26
|
+
* The author (Ash Searle) has placed this code in the public domain:
|
|
27
|
+
* "This code is unrestricted: you are free to use it however you like."
|
|
28
|
+
*
|
|
29
|
+
* included jsDate library by Chris Leonello:
|
|
30
|
+
*
|
|
31
|
+
* Copyright (c) 2010-2011 Chris Leonello
|
|
32
|
+
*
|
|
33
|
+
* jsDate is currently available for use in all personal or commercial projects
|
|
34
|
+
* under both the MIT and GPL version 2.0 licenses. This means that you can
|
|
35
|
+
* choose the license that best suits your project and use it accordingly.
|
|
36
|
+
*
|
|
37
|
+
* jsDate borrows many concepts and ideas from the Date Instance
|
|
38
|
+
* Methods by Ken Snyder along with some parts of Ken's actual code.
|
|
39
|
+
*
|
|
40
|
+
* Ken's origianl Date Instance Methods and copyright notice:
|
|
41
|
+
*
|
|
42
|
+
* Ken Snyder (ken d snyder at gmail dot com)
|
|
43
|
+
* 2008-09-10
|
|
44
|
+
* version 2.0.2 (http://kendsnyder.com/sandbox/date/)
|
|
45
|
+
* Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
|
46
|
+
*
|
|
47
|
+
* jqplotToImage function based on Larry Siden's export-jqplot-to-png.js.
|
|
48
|
+
* Larry has generously given permission to adapt his code for inclusion
|
|
49
|
+
* into jqPlot.
|
|
50
|
+
*
|
|
51
|
+
* Larry's original code can be found here:
|
|
52
|
+
*
|
|
53
|
+
* https://github.com/lsiden/export-jqplot-to-png
|
|
54
|
+
*
|
|
55
|
+
*
|
|
56
|
+
*/
|
|
57
|
+
(function(f){f.jqplot.Trendline=function(){this.show=f.jqplot.config.enablePlugins;this.color="#666666";this.renderer=new f.jqplot.LineRenderer();this.rendererOptions={marker:{show:false}};this.label="";this.type="linear";this.shadow=true;this.markerRenderer={show:false};this.lineWidth=1.5;this.shadowAngle=45;this.shadowOffset=1;this.shadowAlpha=0.07;this.shadowDepth=3;this.isTrendline=true};f.jqplot.postSeriesInitHooks.push(e);f.jqplot.postDrawSeriesHooks.push(g);f.jqplot.addLegendRowHooks.push(a);function a(k){var j=null;if(k.trendline&&k.trendline.show){var i=k.trendline.label.toString();if(i){j={label:i,color:k.trendline.color}}}return j}function e(m,k,j,i,l){if(this._type&&(this._type==="line"||this._type=="bar")){this.trendline=new f.jqplot.Trendline();i=i||{};f.extend(true,this.trendline,{color:this.color},j.trendline,i.trendline);this.trendline.renderer.init.call(this.trendline,null)}}function g(m,i){i=f.extend(true,{},this.trendline,i);if(this.trendline&&i.show){var k;var l=i.data||this.data;k=c(l,this.trendline.type);var j=i.gridData||this.renderer.makeGridData.call(this,k.data);this.trendline.renderer.draw.call(this.trendline,m,j,{showLine:true,shadow:this.trendline.shadow})}}function b(w,v,n){var u=(n==null)?"linear":n;var s=w.length;var t;var z;var o=0;var m=0;var r=0;var q=0;var l=0;var j=[];var k=[];if(u=="linear"){k=w;j=v}else{if(u=="exp"||u=="exponential"){for(var p=0;p<v.length;p++){if(v[p]<=0){s--}else{k.push(w[p]);j.push(Math.log(v[p]))}}}}for(var p=0;p<s;p++){o=o+k[p];m=m+j[p];q=q+k[p]*j[p];r=r+k[p]*k[p];l=l+j[p]*j[p]}t=(s*q-o*m)/(s*r-o*o);z=(m-t*o)/s;return[t,z]}function h(k,j){var i;i=b(k,j,"linear");return[i[0],i[1]]}function d(o,m){var k;var i=o;var n=m;k=b(i,n,"exp");var l=Math.exp(k[0]);var j=Math.exp(k[1]);return[l,j]}function c(l,j){var p=(j==null)?"linear":j;var n;var o;var r=[];var q=[];var m=[];for(k=0;k<l.length;k++){if(l[k]!=null&&l[k][0]!=null&&l[k][1]!=null){r.push(l[k][0]);q.push(l[k][1])}}if(p=="linear"){n=h(r,q);for(var k=0;k<r.length;k++){o=n[0]*r[k]+n[1];m.push([r[k],o])}}else{if(p=="exp"||p=="exponential"){n=d(r,q);for(var k=0;k<r.length;k++){o=n[1]*Math.pow(n[0],r[k]);m.push([r[k],o])}}}return{data:m,slope:n[0],intercept:n[1]}}})(jQuery);
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
Title: jqPlot Usage
|
|
2
|
+
|
|
3
|
+
Usage Documentation:
|
|
4
|
+
|
|
5
|
+
Introduction:
|
|
6
|
+
|
|
7
|
+
jqPlot is a jQuery plugin to generate pure client-side javascript charts in your web pages.
|
|
8
|
+
|
|
9
|
+
The jqPlot home page is at <http://www.jqplot.com/>.
|
|
10
|
+
|
|
11
|
+
The project page and downloads are at <http://www.bitbucket.org/cleonello/jqplot/>.
|
|
12
|
+
|
|
13
|
+
Below are a few examples to demonstrate jqPlot usage. These plots are shown as static images.
|
|
14
|
+
Many more examples of dynamically rendered plots can be seen on the test and examples pages here: <../../tests/>.
|
|
15
|
+
|
|
16
|
+
Include the Files:
|
|
17
|
+
|
|
18
|
+
jqPlot requires jQuery (1.4+ required for certain features). jQuery is included in the distribution.
|
|
19
|
+
To use jqPlot include jquery, the jqPlot jQuery plugin, jqPlot css file and optionally the excanvas
|
|
20
|
+
script for IE support in your web page. Note, excanvas is required only for IE versions below 9. IE 9 includes
|
|
21
|
+
native support for the canvas element and does not require excanvas:
|
|
22
|
+
|
|
23
|
+
> <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
|
|
24
|
+
> <script language="javascript" type="text/javascript" src="jquery.min.js"></script>
|
|
25
|
+
> <script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
|
|
26
|
+
> <link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />
|
|
27
|
+
|
|
28
|
+
Add a plot container:
|
|
29
|
+
|
|
30
|
+
Add a container (target) to your web page where you want your plot to show up.
|
|
31
|
+
Be sure to give your target a width and a height:
|
|
32
|
+
|
|
33
|
+
> <div id="chartdiv" style="height:400px;width:300px; "></div>
|
|
34
|
+
|
|
35
|
+
Create a plot:
|
|
36
|
+
|
|
37
|
+
Then, create the actual plot by calling the
|
|
38
|
+
$.jqplot plugin with the id of your target and some data:
|
|
39
|
+
|
|
40
|
+
> $.jqplot('chartdiv', [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]]);
|
|
41
|
+
|
|
42
|
+
Which will produce a
|
|
43
|
+
chart like:
|
|
44
|
+
|
|
45
|
+
(see images/basicline.png)
|
|
46
|
+
|
|
47
|
+
Plot Options:
|
|
48
|
+
|
|
49
|
+
You can customize the plot by passing options to the $.jqplot function. Options are described in
|
|
50
|
+
<jqPlot Options> in the jqPlotOptions.txt file. An example of options usage:
|
|
51
|
+
|
|
52
|
+
> $.jqplot('chartdiv', [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
|
|
53
|
+
> { title:'Exponential Line',
|
|
54
|
+
> axes:{yaxis:{min:-10, max:240}},
|
|
55
|
+
> series:[{color:'#5FAB78'}]
|
|
56
|
+
> });
|
|
57
|
+
|
|
58
|
+
Which will produce
|
|
59
|
+
a plot like:
|
|
60
|
+
|
|
61
|
+
(see images/basicoptions.png)
|
|
62
|
+
|
|
63
|
+
Using Plugins:
|
|
64
|
+
|
|
65
|
+
You can use jqPlot plugins (that is, plugins to the jqPlot plugin) by including them in your html
|
|
66
|
+
after you include the jqPlot plugin. Here is how to include the log axis plugin:
|
|
67
|
+
|
|
68
|
+
> <link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />
|
|
69
|
+
> <!--[if IE]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]-->
|
|
70
|
+
> <script language="javascript" type="text/javascript" src="jquery.min.js"></script>
|
|
71
|
+
> <script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script>
|
|
72
|
+
> <script language="javascript" type="text/javascript" src="jqplot.logAxisRenderer.js"></script>
|
|
73
|
+
|
|
74
|
+
Important note: For jqplot builds r529 and above (0.9.7r529 and higher), you must explicitly
|
|
75
|
+
enable plugins via either the { show: true } plugin option to the plot or by using
|
|
76
|
+
the $.jqplot.config.enablePlugins = true; config options set on the page before plot creation.
|
|
77
|
+
Only plugins that can be immediately active upon loading are affected. This includes
|
|
78
|
+
non-renderer plugins like cursor, dragable, highlighter, and trendline.
|
|
79
|
+
|
|
80
|
+
Here is a the same $.jqplot call
|
|
81
|
+
but with a log y axis:
|
|
82
|
+
|
|
83
|
+
> $.jqplot('chartdiv', [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
|
|
84
|
+
> { title:'Exponential Line',
|
|
85
|
+
> axes:{yaxis:{renderer: $.jqplot.LogAxisRenderer}},
|
|
86
|
+
> series:[{color:'#5FAB78'}]
|
|
87
|
+
> });
|
|
88
|
+
|
|
89
|
+
Which produces
|
|
90
|
+
a plot like:
|
|
91
|
+
|
|
92
|
+
(see images/basiclogaxis.png)
|
|
93
|
+
|
|
94
|
+
You can further customize with options specific
|
|
95
|
+
to the log axis plugin:
|
|
96
|
+
|
|
97
|
+
> $.jqplot('chartdiv', [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],
|
|
98
|
+
> { title:'Exponential Line',
|
|
99
|
+
> axes:{yaxis:{renderer: $.jqplot.LogAxisRenderer, tickDistribution:'power'}},
|
|
100
|
+
> series:[{color:'#5FAB78'}]
|
|
101
|
+
> });
|
|
102
|
+
|
|
103
|
+
Which makes a
|
|
104
|
+
plot like:
|
|
105
|
+
|
|
106
|
+
(see images/basiclogoptions.png)
|
|
107
|
+
|
|
108
|
+
For a full list of options, see <jqPlot Options> in the jqPlotOptions.txt file.
|
|
109
|
+
|
|
110
|
+
You can add as many plugins as you wish. Order is generally not important.
|
|
111
|
+
Some plugins, like the highlighter plugin which highlights data points near the
|
|
112
|
+
mouse, don't need any extra options or setup to function. Highlighter does have
|
|
113
|
+
additional options which the user can set.
|
|
114
|
+
|
|
115
|
+
Other plugins, the barRenderer for example, provide functionality the must be specified
|
|
116
|
+
in the chart options object. To render a series as a bar graph with the bar renderer,
|
|
117
|
+
you would first include the plugin after jqPlot:
|
|
118
|
+
|
|
119
|
+
> <script language="javascript" type="text/javascript" src="plugins/jqplot.barRenderer.min.js"></script>
|
|
120
|
+
|
|
121
|
+
Then you would create
|
|
122
|
+
a chart like:
|
|
123
|
+
|
|
124
|
+
> $.jqplot('chartdiv', [[34.53, 56.32, 25.1, 18.6]], {series:[{renderer:$.jqplot.BarRenderer}]});
|
|
125
|
+
|
|
126
|
+
Here the default LineRenderer is replaced by a BarRenderer to generate a bar graph for the first (an only) series.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* jqPlot
|
|
3
|
+
* Pure JavaScript plotting plugin using jQuery
|
|
4
|
+
*
|
|
5
|
+
* Version: @VERSION
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2009-2011 Chris Leonello
|
|
8
|
+
* jqPlot is currently available for use in all personal or commercial projects
|
|
9
|
+
* under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL
|
|
10
|
+
* version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can
|
|
11
|
+
* choose the license that best suits your project and use it accordingly.
|
|
12
|
+
*
|
|
13
|
+
* Although not required, the author would appreciate an email letting him
|
|
14
|
+
* know of any substantial use of jqPlot. You can reach the author at:
|
|
15
|
+
* chris at jqplot dot com or see http://www.jqplot.com/info.php .
|
|
16
|
+
*
|
|
17
|
+
* If you are feeling kind and generous, consider supporting the project by
|
|
18
|
+
* making a donation at: http://www.jqplot.com/donate.php .
|
|
19
|
+
*
|
|
20
|
+
* sprintf functions contained in jqplot.sprintf.js by Ash Searle:
|
|
21
|
+
*
|
|
22
|
+
* version 2007.04.27
|
|
23
|
+
* author Ash Searle
|
|
24
|
+
* http://hexmen.com/blog/2007/03/printf-sprintf/
|
|
25
|
+
* http://hexmen.com/js/sprintf.js
|
|
26
|
+
* The author (Ash Searle) has placed this code in the public domain:
|
|
27
|
+
* "This code is unrestricted: you are free to use it however you like."
|
|
28
|
+
*
|
|
29
|
+
* included jsDate library by Chris Leonello:
|
|
30
|
+
*
|
|
31
|
+
* Copyright (c) 2010-2011 Chris Leonello
|
|
32
|
+
*
|
|
33
|
+
* jsDate is currently available for use in all personal or commercial projects
|
|
34
|
+
* under both the MIT and GPL version 2.0 licenses. This means that you can
|
|
35
|
+
* choose the license that best suits your project and use it accordingly.
|
|
36
|
+
*
|
|
37
|
+
* jsDate borrows many concepts and ideas from the Date Instance
|
|
38
|
+
* Methods by Ken Snyder along with some parts of Ken's actual code.
|
|
39
|
+
*
|
|
40
|
+
* Ken's origianl Date Instance Methods and copyright notice:
|
|
41
|
+
*
|
|
42
|
+
* Ken Snyder (ken d snyder at gmail dot com)
|
|
43
|
+
* 2008-09-10
|
|
44
|
+
* version 2.0.2 (http://kendsnyder.com/sandbox/date/)
|
|
45
|
+
* Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
|
46
|
+
*
|
|
47
|
+
* jqplotToImage function based on Larry Siden's export-jqplot-to-png.js.
|
|
48
|
+
* Larry has generously given permission to adapt his code for inclusion
|
|
49
|
+
* into jqPlot.
|
|
50
|
+
*
|
|
51
|
+
* Larry's original code can be found here:
|
|
52
|
+
*
|
|
53
|
+
* https://github.com/lsiden/export-jqplot-to-png
|
|
54
|
+
*
|
|
55
|
+
*
|
|
56
|
+
*/
|
|
57
|
+
if(!document.createElement("canvas").getContext){(function(){var ab=Math;var n=ab.round;var l=ab.sin;var A=ab.cos;var H=ab.abs;var N=ab.sqrt;var d=10;var f=d/2;var z=+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1];function y(){return this.context_||(this.context_=new D(this))}var t=Array.prototype.slice;function g(j,m,p){var i=t.call(arguments,2);return function(){return j.apply(m,i.concat(t.call(arguments)))}}function af(i){return String(i).replace(/&/g,"&").replace(/"/g,""")}function Y(m,j,i){if(!m.namespaces[j]){m.namespaces.add(j,i,"#default#VML")}}function R(j){Y(j,"g_vml_","urn:schemas-microsoft-com:vml");Y(j,"g_o_","urn:schemas-microsoft-com:office:office");if(!j.styleSheets.ex_canvas_){var i=j.createStyleSheet();i.owningElement.id="ex_canvas_";i.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}R(document);var e={init:function(i){var j=i||document;j.createElement("canvas");j.attachEvent("onreadystatechange",g(this.init_,this,j))},init_:function(p){var m=p.getElementsByTagName("canvas");for(var j=0;j<m.length;j++){this.initElement(m[j])}},initElement:function(j){if(!j.getContext){j.getContext=y;R(j.ownerDocument);j.innerHTML="";j.attachEvent("onpropertychange",x);j.attachEvent("onresize",W);var i=j.attributes;if(i.width&&i.width.specified){j.style.width=i.width.nodeValue+"px"}else{j.width=j.clientWidth}if(i.height&&i.height.specified){j.style.height=i.height.nodeValue+"px"}else{j.height=j.clientHeight}}return j},uninitElement:function(j){if(j.getContext){var i=j.getContext();delete i.element_;delete i.canvas;j.innerHTML="";j.context_=null;j.getContext=null;j.detachEvent("onpropertychange",x);j.detachEvent("onresize",W)}}};function x(j){var i=j.srcElement;switch(j.propertyName){case"width":i.getContext().clearRect();i.style.width=i.attributes.width.nodeValue+"px";i.firstChild.style.width=i.clientWidth+"px";break;case"height":i.getContext().clearRect();i.style.height=i.attributes.height.nodeValue+"px";i.firstChild.style.height=i.clientHeight+"px";break}}function W(j){var i=j.srcElement;if(i.firstChild){i.firstChild.style.width=i.clientWidth+"px";i.firstChild.style.height=i.clientHeight+"px"}}e.init();var k=[];for(var ae=0;ae<16;ae++){for(var ad=0;ad<16;ad++){k[ae*16+ad]=ae.toString(16)+ad.toString(16)}}function B(){return[[1,0,0],[0,1,0],[0,0,1]]}function J(p,m){var j=B();for(var i=0;i<3;i++){for(var ah=0;ah<3;ah++){var Z=0;for(var ag=0;ag<3;ag++){Z+=p[i][ag]*m[ag][ah]}j[i][ah]=Z}}return j}function v(j,i){i.fillStyle=j.fillStyle;i.lineCap=j.lineCap;i.lineJoin=j.lineJoin;i.lineWidth=j.lineWidth;i.miterLimit=j.miterLimit;i.shadowBlur=j.shadowBlur;i.shadowColor=j.shadowColor;i.shadowOffsetX=j.shadowOffsetX;i.shadowOffsetY=j.shadowOffsetY;i.strokeStyle=j.strokeStyle;i.globalAlpha=j.globalAlpha;i.font=j.font;i.textAlign=j.textAlign;i.textBaseline=j.textBaseline;i.arcScaleX_=j.arcScaleX_;i.arcScaleY_=j.arcScaleY_;i.lineScale_=j.lineScale_}var b={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"};function M(j){var p=j.indexOf("(",3);var i=j.indexOf(")",p+1);var m=j.substring(p+1,i).split(",");if(m.length!=4||j.charAt(3)!="a"){m[3]=1}return m}function c(i){return parseFloat(i)/100}function r(j,m,i){return Math.min(i,Math.max(m,j))}function I(ag){var i,ai,aj,ah,ak,Z;ah=parseFloat(ag[0])/360%360;if(ah<0){ah++}ak=r(c(ag[1]),0,1);Z=r(c(ag[2]),0,1);if(ak==0){i=ai=aj=Z}else{var j=Z<0.5?Z*(1+ak):Z+ak-Z*ak;var m=2*Z-j;i=a(m,j,ah+1/3);ai=a(m,j,ah);aj=a(m,j,ah-1/3)}return"#"+k[Math.floor(i*255)]+k[Math.floor(ai*255)]+k[Math.floor(aj*255)]}function a(j,i,m){if(m<0){m++}if(m>1){m--}if(6*m<1){return j+(i-j)*6*m}else{if(2*m<1){return i}else{if(3*m<2){return j+(i-j)*(2/3-m)*6}else{return j}}}}var C={};function F(j){if(j in C){return C[j]}var ag,Z=1;j=String(j);if(j.charAt(0)=="#"){ag=j}else{if(/^rgb/.test(j)){var p=M(j);var ag="#",ah;for(var m=0;m<3;m++){if(p[m].indexOf("%")!=-1){ah=Math.floor(c(p[m])*255)}else{ah=+p[m]}ag+=k[r(ah,0,255)]}Z=+p[3]}else{if(/^hsl/.test(j)){var p=M(j);ag=I(p);Z=p[3]}else{ag=b[j]||j}}}return C[j]={color:ag,alpha:Z}}var o={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"};var L={};function E(i){if(L[i]){return L[i]}var p=document.createElement("div");var m=p.style;try{m.font=i}catch(j){}return L[i]={style:m.fontStyle||o.style,variant:m.fontVariant||o.variant,weight:m.fontWeight||o.weight,size:m.fontSize||o.size,family:m.fontFamily||o.family}}function u(m,j){var i={};for(var ah in m){i[ah]=m[ah]}var ag=parseFloat(j.currentStyle.fontSize),Z=parseFloat(m.size);if(typeof m.size=="number"){i.size=m.size}else{if(m.size.indexOf("px")!=-1){i.size=Z}else{if(m.size.indexOf("em")!=-1){i.size=ag*Z}else{if(m.size.indexOf("%")!=-1){i.size=(ag/100)*Z}else{if(m.size.indexOf("pt")!=-1){i.size=Z/0.75}else{i.size=ag}}}}}i.size*=0.981;i.family="'"+i.family.replace(/(\'|\")/g,"").replace(/\s*,\s*/g,"', '")+"'";return i}function ac(i){return i.style+" "+i.variant+" "+i.weight+" "+i.size+"px "+i.family}var s={butt:"flat",round:"round"};function S(i){return s[i]||"square"}function D(i){this.m_=B();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=d*1;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=i;var m="width:"+i.clientWidth+"px;height:"+i.clientHeight+"px;overflow:hidden;position:absolute";var j=i.ownerDocument.createElement("div");j.style.cssText=m;i.appendChild(j);var p=j.cloneNode(false);p.style.backgroundColor="red";p.style.filter="alpha(opacity=0)";i.appendChild(p);this.element_=j;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var q=D.prototype;q.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(true);this.textMeasureEl_=null}this.element_.innerHTML=""};q.beginPath=function(){this.currentPath_=[]};q.moveTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"moveTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.lineTo=function(j,i){var m=V(this,j,i);this.currentPath_.push({type:"lineTo",x:m.x,y:m.y});this.currentX_=m.x;this.currentY_=m.y};q.bezierCurveTo=function(m,j,ak,aj,ai,ag){var i=V(this,ai,ag);var ah=V(this,m,j);var Z=V(this,ak,aj);K(this,ah,Z,i)};function K(i,Z,m,j){i.currentPath_.push({type:"bezierCurveTo",cp1x:Z.x,cp1y:Z.y,cp2x:m.x,cp2y:m.y,x:j.x,y:j.y});i.currentX_=j.x;i.currentY_=j.y}q.quadraticCurveTo=function(ai,m,j,i){var ah=V(this,ai,m);var ag=V(this,j,i);var aj={x:this.currentX_+2/3*(ah.x-this.currentX_),y:this.currentY_+2/3*(ah.y-this.currentY_)};var Z={x:aj.x+(ag.x-this.currentX_)/3,y:aj.y+(ag.y-this.currentY_)/3};K(this,aj,Z,ag)};q.arc=function(al,aj,ak,ag,j,m){ak*=d;var ap=m?"at":"wa";var am=al+A(ag)*ak-f;var ao=aj+l(ag)*ak-f;var i=al+A(j)*ak-f;var an=aj+l(j)*ak-f;if(am==i&&!m){am+=0.125}var Z=V(this,al,aj);var ai=V(this,am,ao);var ah=V(this,i,an);this.currentPath_.push({type:ap,x:Z.x,y:Z.y,radius:ak,xStart:ai.x,yStart:ai.y,xEnd:ah.x,yEnd:ah.y})};q.rect=function(m,j,i,p){this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath()};q.strokeRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.stroke();this.currentPath_=Z};q.fillRect=function(m,j,i,p){var Z=this.currentPath_;this.beginPath();this.moveTo(m,j);this.lineTo(m+i,j);this.lineTo(m+i,j+p);this.lineTo(m,j+p);this.closePath();this.fill();this.currentPath_=Z};q.createLinearGradient=function(j,p,i,m){var Z=new U("gradient");Z.x0_=j;Z.y0_=p;Z.x1_=i;Z.y1_=m;return Z};q.createRadialGradient=function(p,ag,m,j,Z,i){var ah=new U("gradientradial");ah.x0_=p;ah.y0_=ag;ah.r0_=m;ah.x1_=j;ah.y1_=Z;ah.r1_=i;return ah};q.drawImage=function(aq,m){var aj,ah,al,ay,ao,am,at,aA;var ak=aq.runtimeStyle.width;var ap=aq.runtimeStyle.height;aq.runtimeStyle.width="auto";aq.runtimeStyle.height="auto";var ai=aq.width;var aw=aq.height;aq.runtimeStyle.width=ak;aq.runtimeStyle.height=ap;if(arguments.length==3){aj=arguments[1];ah=arguments[2];ao=am=0;at=al=ai;aA=ay=aw}else{if(arguments.length==5){aj=arguments[1];ah=arguments[2];al=arguments[3];ay=arguments[4];ao=am=0;at=ai;aA=aw}else{if(arguments.length==9){ao=arguments[1];am=arguments[2];at=arguments[3];aA=arguments[4];aj=arguments[5];ah=arguments[6];al=arguments[7];ay=arguments[8]}else{throw Error("Invalid number of arguments")}}}var az=V(this,aj,ah);var p=at/2;var j=aA/2;var ax=[];var i=10;var ag=10;ax.push(" <g_vml_:group",' coordsize="',d*i,",",d*ag,'"',' coordorigin="0,0"',' style="width:',i,"px;height:",ag,"px;position:absolute;");if(this.m_[0][0]!=1||this.m_[0][1]||this.m_[1][1]!=1||this.m_[1][0]){var Z=[];Z.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",n(az.x/d),",","Dy=",n(az.y/d),"");var av=az;var au=V(this,aj+al,ah);var ar=V(this,aj,ah+ay);var an=V(this,aj+al,ah+ay);av.x=ab.max(av.x,au.x,ar.x,an.x);av.y=ab.max(av.y,au.y,ar.y,an.y);ax.push("padding:0 ",n(av.x/d),"px ",n(av.y/d),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",Z.join(""),", sizingmethod='clip');")}else{ax.push("top:",n(az.y/d),"px;left:",n(az.x/d),"px;")}ax.push(' ">','<g_vml_:image src="',aq.src,'"',' style="width:',d*al,"px;"," height:",d*ay,'px"',' cropleft="',ao/ai,'"',' croptop="',am/aw,'"',' cropright="',(ai-ao-at)/ai,'"',' cropbottom="',(aw-am-aA)/aw,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",ax.join(""))};q.stroke=function(al){var aj=[];var Z=false;var m=10;var am=10;aj.push("<g_vml_:shape",' filled="',!!al,'"',' style="position:absolute;width:',m,"px;height:",am,'px;"',' coordorigin="0,0"',' coordsize="',d*m,",",d*am,'"',' stroked="',!al,'"',' path="');var an=false;var ag={x:null,y:null};var ak={x:null,y:null};for(var ah=0;ah<this.currentPath_.length;ah++){var j=this.currentPath_[ah];var ai;switch(j.type){case"moveTo":ai=j;aj.push(" m ",n(j.x),",",n(j.y));break;case"lineTo":aj.push(" l ",n(j.x),",",n(j.y));break;case"close":aj.push(" x ");j=null;break;case"bezierCurveTo":aj.push(" c ",n(j.cp1x),",",n(j.cp1y),",",n(j.cp2x),",",n(j.cp2y),",",n(j.x),",",n(j.y));break;case"at":case"wa":aj.push(" ",j.type," ",n(j.x-this.arcScaleX_*j.radius),",",n(j.y-this.arcScaleY_*j.radius)," ",n(j.x+this.arcScaleX_*j.radius),",",n(j.y+this.arcScaleY_*j.radius)," ",n(j.xStart),",",n(j.yStart)," ",n(j.xEnd),",",n(j.yEnd));break}if(j){if(ag.x==null||j.x<ag.x){ag.x=j.x}if(ak.x==null||j.x>ak.x){ak.x=j.x}if(ag.y==null||j.y<ag.y){ag.y=j.y}if(ak.y==null||j.y>ak.y){ak.y=j.y}}}aj.push(' ">');if(!al){w(this,aj)}else{G(this,aj,ag,ak)}aj.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",aj.join(""))};function w(m,ag){var j=F(m.strokeStyle);var p=j.color;var Z=j.alpha*m.globalAlpha;var i=m.lineScale_*m.lineWidth;if(i<1){Z*=i}ag.push("<g_vml_:stroke",' opacity="',Z,'"',' joinstyle="',m.lineJoin,'"',' miterlimit="',m.miterLimit,'"',' endcap="',S(m.lineCap),'"',' weight="',i,'px"',' color="',p,'" />')}function G(aq,ai,aK,ar){var aj=aq.fillStyle;var aB=aq.arcScaleX_;var aA=aq.arcScaleY_;var j=ar.x-aK.x;var p=ar.y-aK.y;if(aj instanceof U){var an=0;var aF={x:0,y:0};var ax=0;var am=1;if(aj.type_=="gradient"){var al=aj.x0_/aB;var m=aj.y0_/aA;var ak=aj.x1_/aB;var aM=aj.y1_/aA;var aJ=V(aq,al,m);var aI=V(aq,ak,aM);var ag=aI.x-aJ.x;var Z=aI.y-aJ.y;an=Math.atan2(ag,Z)*180/Math.PI;if(an<0){an+=360}if(an<0.000001){an=0}}else{var aJ=V(aq,aj.x0_,aj.y0_);aF={x:(aJ.x-aK.x)/j,y:(aJ.y-aK.y)/p};j/=aB*d;p/=aA*d;var aD=ab.max(j,p);ax=2*aj.r0_/aD;am=2*aj.r1_/aD-ax}var av=aj.colors_;av.sort(function(aN,i){return aN.offset-i.offset});var ap=av.length;var au=av[0].color;var at=av[ap-1].color;var az=av[0].alpha*aq.globalAlpha;var ay=av[ap-1].alpha*aq.globalAlpha;var aE=[];for(var aH=0;aH<ap;aH++){var ao=av[aH];aE.push(ao.offset*am+ax+" "+ao.color)}ai.push('<g_vml_:fill type="',aj.type_,'"',' method="none" focus="100%"',' color="',au,'"',' color2="',at,'"',' colors="',aE.join(","),'"',' opacity="',ay,'"',' g_o_:opacity2="',az,'"',' angle="',an,'"',' focusposition="',aF.x,",",aF.y,'" />')}else{if(aj instanceof T){if(j&&p){var ah=-aK.x;var aC=-aK.y;ai.push("<g_vml_:fill",' position="',ah/j*aB*aB,",",aC/p*aA*aA,'"',' type="tile"',' src="',aj.src_,'" />')}}else{var aL=F(aq.fillStyle);var aw=aL.color;var aG=aL.alpha*aq.globalAlpha;ai.push('<g_vml_:fill color="',aw,'" opacity="',aG,'" />')}}}q.fill=function(){this.stroke(true)};q.closePath=function(){this.currentPath_.push({type:"close"})};function V(j,Z,p){var i=j.m_;return{x:d*(Z*i[0][0]+p*i[1][0]+i[2][0])-f,y:d*(Z*i[0][1]+p*i[1][1]+i[2][1])-f}}q.save=function(){var i={};v(this,i);this.aStack_.push(i);this.mStack_.push(this.m_);this.m_=J(B(),this.m_)};q.restore=function(){if(this.aStack_.length){v(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function h(i){return isFinite(i[0][0])&&isFinite(i[0][1])&&isFinite(i[1][0])&&isFinite(i[1][1])&&isFinite(i[2][0])&&isFinite(i[2][1])}function aa(j,i,p){if(!h(i)){return}j.m_=i;if(p){var Z=i[0][0]*i[1][1]-i[0][1]*i[1][0];j.lineScale_=N(H(Z))}}q.translate=function(m,j){var i=[[1,0,0],[0,1,0],[m,j,1]];aa(this,J(i,this.m_),false)};q.rotate=function(j){var p=A(j);var m=l(j);var i=[[p,m,0],[-m,p,0],[0,0,1]];aa(this,J(i,this.m_),false)};q.scale=function(m,j){this.arcScaleX_*=m;this.arcScaleY_*=j;var i=[[m,0,0],[0,j,0],[0,0,1]];aa(this,J(i,this.m_),true)};q.transform=function(Z,p,ah,ag,j,i){var m=[[Z,p,0],[ah,ag,0],[j,i,1]];aa(this,J(m,this.m_),true)};q.setTransform=function(ag,Z,ai,ah,p,j){var i=[[ag,Z,0],[ai,ah,0],[p,j,1]];aa(this,i,true)};q.drawText_=function(am,ak,aj,ap,ai){var ao=this.m_,at=1000,j=0,ar=at,ah={x:0,y:0},ag=[];var i=u(E(this.font),this.element_);var p=ac(i);var au=this.element_.currentStyle;var Z=this.textAlign.toLowerCase();switch(Z){case"left":case"center":case"right":break;case"end":Z=au.direction=="ltr"?"right":"left";break;case"start":Z=au.direction=="rtl"?"right":"left";break;default:Z="left"}switch(this.textBaseline){case"hanging":case"top":ah.y=i.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":ah.y=-i.size/2.25;break}switch(Z){case"right":j=at;ar=0.05;break;case"center":j=ar=at/2;break}var aq=V(this,ak+ah.x,aj+ah.y);ag.push('<g_vml_:line from="',-j,' 0" to="',ar,' 0.05" ',' coordsize="100 100" coordorigin="0 0"',' filled="',!ai,'" stroked="',!!ai,'" style="position:absolute;width:1px;height:1px;">');if(ai){w(this,ag)}else{G(this,ag,{x:-j,y:0},{x:ar,y:i.size})}var an=ao[0][0].toFixed(3)+","+ao[1][0].toFixed(3)+","+ao[0][1].toFixed(3)+","+ao[1][1].toFixed(3)+",0,0";var al=n(aq.x/d+1-ao[0][0])+","+n(aq.y/d-2*ao[1][0]);ag.push('<g_vml_:skew on="t" matrix="',an,'" ',' offset="',al,'" origin="',j,' 0" />','<g_vml_:path textpathok="true" />','<g_vml_:textpath on="true" string="',af(am),'" style="v-text-align:',Z,";font:",af(p),'" /></g_vml_:line>');this.element_.insertAdjacentHTML("beforeEnd",ag.join(""))};q.fillText=function(m,i,p,j){this.drawText_(m,i,p,j,false)};q.strokeText=function(m,i,p,j){this.drawText_(m,i,p,j,true)};q.measureText=function(m){if(!this.textMeasureEl_){var i='<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>';this.element_.insertAdjacentHTML("beforeEnd",i);this.textMeasureEl_=this.element_.lastChild}var j=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(j.createTextNode(m));return{width:this.textMeasureEl_.offsetWidth}};q.clip=function(){};q.arcTo=function(){};q.createPattern=function(j,i){return new T(j,i)};function U(i){this.type_=i;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}U.prototype.addColorStop=function(j,i){i=F(i);this.colors_.push({offset:j,color:i.color,alpha:i.alpha})};function T(j,i){Q(j);switch(i){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=i;break;default:O("SYNTAX_ERR")}this.src_=j.src;this.width_=j.width;this.height_=j.height}function O(i){throw new P(i)}function Q(i){if(!i||i.nodeType!=1||i.tagName!="IMG"){O("TYPE_MISMATCH_ERR")}if(i.readyState!="complete"){O("INVALID_STATE_ERR")}}function P(i){this.code=this[i];this.message=i+": DOM Exception "+this.code}var X=P.prototype=new Error;X.INDEX_SIZE_ERR=1;X.DOMSTRING_SIZE_ERR=2;X.HIERARCHY_REQUEST_ERR=3;X.WRONG_DOCUMENT_ERR=4;X.INVALID_CHARACTER_ERR=5;X.NO_DATA_ALLOWED_ERR=6;X.NO_MODIFICATION_ALLOWED_ERR=7;X.NOT_FOUND_ERR=8;X.NOT_SUPPORTED_ERR=9;X.INUSE_ATTRIBUTE_ERR=10;X.INVALID_STATE_ERR=11;X.SYNTAX_ERR=12;X.INVALID_MODIFICATION_ERR=13;X.NAMESPACE_ERR=14;X.INVALID_ACCESS_ERR=15;X.VALIDATION_ERR=16;X.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=e;CanvasRenderingContext2D=D;CanvasGradient=U;CanvasPattern=T;DOMException=P;G_vmlCanvasManager._version=888})()};
|