@datagrok/helm 2.3.2 → 2.3.3
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.
- package/CHANGELOG.md +12 -0
- package/dist/package-test.js +1 -1
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/package.json +4 -4
- package/src/cell-renderer.ts +5 -4
- package/src/helm-helper.ts +6 -6
- package/src/helm-monomer-placer.ts +1 -1
- package/src/helm-web-editor.ts +5 -5
- package/src/package-test.ts +0 -1
- package/src/package-utils.ts +228 -69
- package/src/package.ts +7 -69
- package/src/tests/findMonomers-tests.ts +2 -1
- package/src/tests/get-monomer-tests.ts +1 -49
- package/src/utils/get-monomer.ts +49 -1
- package/src/utils/helm-grid-cell-renderer.ts +8 -9
- package/src/utils/index.ts +2 -3
- package/src/widgets/helm-input.ts +4 -4
- package/vendor/dojo-1.10.10/dijit/BackgroundIframe.js +63 -0
- package/vendor/dojo-1.10.10/dijit/BackgroundIframe.js.uncompressed.js +116 -0
- package/vendor/dojo-1.10.10/dijit/Destroyable.js +35 -0
- package/vendor/dojo-1.10.10/dijit/Destroyable.js.uncompressed.js +83 -0
- package/vendor/dojo-1.10.10/dijit/Tooltip.js +240 -0
- package/vendor/dojo-1.10.10/dijit/Tooltip.js.uncompressed.js +612 -0
- package/vendor/dojo-1.10.10/dijit/Viewport.js +44 -0
- package/vendor/dojo-1.10.10/dijit/Viewport.js.uncompressed.js +87 -0
- package/vendor/dojo-1.10.10/dijit/WidgetSet.js +76 -0
- package/vendor/dojo-1.10.10/dijit/WidgetSet.js.uncompressed.js +247 -0
- package/vendor/dojo-1.10.10/dijit/_AttachMixin.js +94 -0
- package/vendor/dojo-1.10.10/dijit/_AttachMixin.js.uncompressed.js +238 -0
- package/vendor/dojo-1.10.10/dijit/_Contained.js +17 -0
- package/vendor/dojo-1.10.10/dijit/_Contained.js.uncompressed.js +56 -0
- package/vendor/dojo-1.10.10/dijit/_Container.js +47 -0
- package/vendor/dojo-1.10.10/dijit/_Container.js.uncompressed.js +108 -0
- package/vendor/dojo-1.10.10/dijit/_CssStateMixin.js +198 -0
- package/vendor/dojo-1.10.10/dijit/_CssStateMixin.js.uncompressed.js +372 -0
- package/vendor/dojo-1.10.10/dijit/_FocusMixin.js +11 -0
- package/vendor/dojo-1.10.10/dijit/_FocusMixin.js.uncompressed.js +66 -0
- package/vendor/dojo-1.10.10/dijit/_HasDropDown.js +188 -0
- package/vendor/dojo-1.10.10/dijit/_HasDropDown.js.uncompressed.js +472 -0
- package/vendor/dojo-1.10.10/dijit/_OnDijitClickMixin.js +8 -0
- package/vendor/dojo-1.10.10/dijit/_OnDijitClickMixin.js.uncompressed.js +31 -0
- package/vendor/dojo-1.10.10/dijit/_TemplatedMixin.js +90 -0
- package/vendor/dojo-1.10.10/dijit/_TemplatedMixin.js.uncompressed.js +205 -0
- package/vendor/dojo-1.10.10/dijit/_Widget.js +66 -0
- package/vendor/dojo-1.10.10/dijit/_Widget.js.uncompressed.js +352 -0
- package/vendor/dojo-1.10.10/dijit/_WidgetBase.js +353 -0
- package/vendor/dojo-1.10.10/dijit/_WidgetBase.js.uncompressed.js +1200 -0
- package/vendor/dojo-1.10.10/dijit/_base/focus.js +68 -0
- package/vendor/dojo-1.10.10/dijit/_base/focus.js.uncompressed.js +207 -0
- package/vendor/dojo-1.10.10/dijit/_base/manager.js +10 -0
- package/vendor/dojo-1.10.10/dijit/_base/manager.js.uncompressed.js +35 -0
- package/vendor/dojo-1.10.10/dijit/_base/place.js +52 -0
- package/vendor/dojo-1.10.10/dijit/_base/place.js.uncompressed.js +131 -0
- package/vendor/dojo-1.10.10/dijit/_base/popup.js +23 -0
- package/vendor/dojo-1.10.10/dijit/_base/popup.js.uncompressed.js +58 -0
- package/vendor/dojo-1.10.10/dijit/_base/scroll.js +6 -0
- package/vendor/dojo-1.10.10/dijit/_base/scroll.js.uncompressed.js +22 -0
- package/vendor/dojo-1.10.10/dijit/_base/sniff.js +3 -0
- package/vendor/dojo-1.10.10/dijit/_base/sniff.js.uncompressed.js +12 -0
- package/vendor/dojo-1.10.10/dijit/_base/typematic.js +3 -0
- package/vendor/dojo-1.10.10/dijit/_base/typematic.js.uncompressed.js +10 -0
- package/vendor/dojo-1.10.10/dijit/_base/wai.js +32 -0
- package/vendor/dojo-1.10.10/dijit/_base/wai.js.uncompressed.js +109 -0
- package/vendor/dojo-1.10.10/dijit/_base/window.js +6 -0
- package/vendor/dojo-1.10.10/dijit/_base/window.js.uncompressed.js +18 -0
- package/vendor/dojo-1.10.10/dijit/_base.js +4 -0
- package/vendor/dojo-1.10.10/dijit/a11y.js +109 -0
- package/vendor/dojo-1.10.10/dijit/a11y.js.uncompressed.js +191 -0
- package/vendor/dojo-1.10.10/dijit/a11yclick.js +66 -0
- package/vendor/dojo-1.10.10/dijit/a11yclick.js.uncompressed.js +139 -0
- package/vendor/dojo-1.10.10/dijit/focus.js +188 -0
- package/vendor/dojo-1.10.10/dijit/focus.js.uncompressed.js +371 -0
- package/vendor/dojo-1.10.10/dijit/form/Button.js +49 -0
- package/vendor/dojo-1.10.10/dijit/form/Button.js.uncompressed.js +130 -0
- package/vendor/dojo-1.10.10/dijit/form/ComboBox.js +4 -0
- package/vendor/dojo-1.10.10/dijit/form/ComboBox.js.uncompressed.js +27 -0
- package/vendor/dojo-1.10.10/dijit/form/ComboButton.js +21 -0
- package/vendor/dojo-1.10.10/dijit/form/ComboButton.js.uncompressed.js +86 -0
- package/vendor/dojo-1.10.10/dijit/form/DropDownButton.js +38 -0
- package/vendor/dojo-1.10.10/dijit/form/DropDownButton.js.uncompressed.js +102 -0
- package/vendor/dojo-1.10.10/dijit/form/ToggleButton.js +7 -0
- package/vendor/dojo-1.10.10/dijit/form/ToggleButton.js.uncompressed.js +26 -0
- package/vendor/dojo-1.10.10/dijit/form/_ButtonMixin.js +50 -0
- package/vendor/dojo-1.10.10/dijit/form/_ButtonMixin.js.uncompressed.js +116 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormValueMixin.js +26 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormValueMixin.js.uncompressed.js +81 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormValueWidget.js +24 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormValueWidget.js.uncompressed.js +51 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormWidget.js +22 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormWidget.js.uncompressed.js +67 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormWidgetMixin.js +111 -0
- package/vendor/dojo-1.10.10/dijit/form/_FormWidgetMixin.js.uncompressed.js +254 -0
- package/vendor/dojo-1.10.10/dijit/form/_ToggleButtonMixin.js +32 -0
- package/vendor/dojo-1.10.10/dijit/form/_ToggleButtonMixin.js.uncompressed.js +69 -0
- package/vendor/dojo-1.10.10/dijit/hccss.js +9 -0
- package/vendor/dojo-1.10.10/dijit/hccss.js.uncompressed.js +21 -0
- package/vendor/dojo-1.10.10/dijit/layout/AccordionContainer.js +215 -0
- package/vendor/dojo-1.10.10/dijit/layout/AccordionContainer.js.uncompressed.js +550 -0
- package/vendor/dojo-1.10.10/dijit/layout/AccordionPane.js +7 -0
- package/vendor/dojo-1.10.10/dijit/layout/AccordionPane.js.uncompressed.js +25 -0
- package/vendor/dojo-1.10.10/dijit/layout/ContentPane.js +235 -0
- package/vendor/dojo-1.10.10/dijit/layout/ContentPane.js.uncompressed.js +653 -0
- package/vendor/dojo-1.10.10/dijit/layout/StackContainer.js +171 -0
- package/vendor/dojo-1.10.10/dijit/layout/StackContainer.js.uncompressed.js +411 -0
- package/vendor/dojo-1.10.10/dijit/layout/StackController.js +194 -0
- package/vendor/dojo-1.10.10/dijit/layout/StackController.js.uncompressed.js +410 -0
- package/vendor/dojo-1.10.10/dijit/layout/_ContentPaneResizeMixin.js +99 -0
- package/vendor/dojo-1.10.10/dijit/layout/_ContentPaneResizeMixin.js.uncompressed.js +236 -0
- package/vendor/dojo-1.10.10/dijit/layout/_LayoutWidget.js +47 -0
- package/vendor/dojo-1.10.10/dijit/layout/_LayoutWidget.js.uncompressed.js +190 -0
- package/vendor/dojo-1.10.10/dijit/layout/utils.js +77 -0
- package/vendor/dojo-1.10.10/dijit/layout/utils.js.uncompressed.js +151 -0
- package/vendor/dojo-1.10.10/dijit/main.js +4 -0
- package/vendor/dojo-1.10.10/dijit/main.js.uncompressed.js +16 -0
- package/vendor/dojo-1.10.10/dijit/nls/dijit-all_en-us.js +2 -0
- package/vendor/dojo-1.10.10/dijit/nls/dijit-all_en-us.js.uncompressed.js +21 -0
- package/vendor/dojo-1.10.10/dijit/nls/loading.js +2 -0
- package/vendor/dojo-1.10.10/dijit/nls/loading.js.uncompressed.js +47 -0
- package/vendor/dojo-1.10.10/dijit/place.js +142 -0
- package/vendor/dojo-1.10.10/dijit/place.js.uncompressed.js +407 -0
- package/vendor/dojo-1.10.10/dijit/popup.js +162 -0
- package/vendor/dojo-1.10.10/dijit/popup.js.uncompressed.js +441 -0
- package/vendor/dojo-1.10.10/dijit/registry.js +79 -0
- package/vendor/dojo-1.10.10/dijit/registry.js.uncompressed.js +159 -0
- package/vendor/dojo-1.10.10/dijit/selection.js +364 -0
- package/vendor/dojo-1.10.10/dijit/selection.js.uncompressed.js +525 -0
- package/vendor/dojo-1.10.10/dijit/typematic.js +96 -0
- package/vendor/dojo-1.10.10/dijit/typematic.js.uncompressed.js +211 -0
- package/vendor/dojo-1.10.10/dojo/NodeList-manipulate.js +195 -0
- package/vendor/dojo-1.10.10/dojo/NodeList-manipulate.js.uncompressed.js +761 -0
- package/vendor/dojo-1.10.10/dojo/Stateful.js +90 -0
- package/vendor/dojo-1.10.10/dojo/Stateful.js.uncompressed.js +218 -0
- package/vendor/dojo-1.10.10/dojo/_base/url.js +87 -0
- package/vendor/dojo-1.10.10/dojo/_base/url.js.uncompressed.js +109 -0
- package/vendor/dojo-1.10.10/dojo/cache.js +9 -0
- package/vendor/dojo-1.10.10/dojo/cache.js.uncompressed.js +7 -0
- package/vendor/dojo-1.10.10/dojo/colors.js +74 -0
- package/vendor/dojo-1.10.10/dojo/colors.js.uncompressed.js +232 -0
- package/vendor/dojo-1.10.10/dojo/cookie.js +48 -0
- package/vendor/dojo-1.10.10/dojo/cookie.js.uncompressed.js +98 -0
- package/vendor/dojo-1.10.10/dojo/date/stamp.js +82 -0
- package/vendor/dojo-1.10.10/dojo/date/stamp.js.uncompressed.js +144 -0
- package/vendor/dojo-1.10.10/dojo/dojo.js +7 -0
- package/vendor/dojo-1.10.10/dojo/dojo.js.uncompressed.js +18680 -0
- package/vendor/dojo-1.10.10/dojo/fx/Toggler.js +27 -0
- package/vendor/dojo-1.10.10/dojo/fx/Toggler.js.uncompressed.js +101 -0
- package/vendor/dojo-1.10.10/dojo/fx/easing.js +165 -0
- package/vendor/dojo-1.10.10/dojo/fx/easing.js.uncompressed.js +276 -0
- package/vendor/dojo-1.10.10/dojo/fx.js +271 -0
- package/vendor/dojo-1.10.10/dojo/fx.js.uncompressed.js +443 -0
- package/vendor/dojo-1.10.10/dojo/hccss.js +26 -0
- package/vendor/dojo-1.10.10/dojo/hccss.js.uncompressed.js +52 -0
- package/vendor/dojo-1.10.10/dojo/html.js +161 -0
- package/vendor/dojo-1.10.10/dojo/html.js.uncompressed.js +370 -0
- package/vendor/dojo-1.10.10/dojo/io/iframe.js +71 -0
- package/vendor/dojo-1.10.10/dojo/io/iframe.js.uncompressed.js +190 -0
- package/vendor/dojo-1.10.10/dojo/io/script.js +112 -0
- package/vendor/dojo-1.10.10/dojo/io/script.js.uncompressed.js +280 -0
- package/vendor/dojo-1.10.10/dojo/parser.js +437 -0
- package/vendor/dojo-1.10.10/dojo/parser.js.uncompressed.js +915 -0
- package/vendor/dojo-1.10.10/dojo/promise/all.js +59 -0
- package/vendor/dojo-1.10.10/dojo/promise/all.js.uncompressed.js +77 -0
- package/vendor/dojo-1.10.10/dojo/regexp.js +32 -0
- package/vendor/dojo-1.10.10/dojo/regexp.js.uncompressed.js +70 -0
- package/vendor/dojo-1.10.10/dojo/request/iframe.js +291 -0
- package/vendor/dojo-1.10.10/dojo/request/iframe.js.uncompressed.js +438 -0
- package/vendor/dojo-1.10.10/dojo/request/script.js +129 -0
- package/vendor/dojo-1.10.10/dojo/request/script.js.uncompressed.js +237 -0
- package/vendor/dojo-1.10.10/dojo/require.js +11 -0
- package/vendor/dojo-1.10.10/dojo/require.js.uncompressed.js +7 -0
- package/vendor/dojo-1.10.10/dojo/resources/blank.gif +0 -0
- package/vendor/dojo-1.10.10/dojo/string.js +67 -0
- package/vendor/dojo-1.10.10/dojo/string.js.uncompressed.js +181 -0
- package/vendor/dojo-1.10.10/dojo/touch.js +191 -0
- package/vendor/dojo-1.10.10/dojo/touch.js.uncompressed.js +468 -0
- package/vendor/dojo-1.10.10/dojo/uacss.js +36 -0
- package/vendor/dojo-1.10.10/dojo/uacss.js.uncompressed.js +85 -0
- package/vendor/dojo-1.10.10/dojo/window.js +141 -0
- package/vendor/dojo-1.10.10/dojo/window.js.uncompressed.js +241 -0
- package/vendor/dojo-1.10.10/dojox/charting/Chart.js +626 -0
- package/vendor/dojo-1.10.10/dojox/charting/Chart.js.uncompressed.js +1220 -0
- package/vendor/dojo-1.10.10/dojox/charting/Chart2D.js +5 -0
- package/vendor/dojo-1.10.10/dojox/charting/Chart2D.js.uncompressed.js +16 -0
- package/vendor/dojo-1.10.10/dojox/charting/Element.js +247 -0
- package/vendor/dojo-1.10.10/dojox/charting/Element.js.uncompressed.js +402 -0
- package/vendor/dojo-1.10.10/dojox/charting/Series.js +24 -0
- package/vendor/dojo-1.10.10/dojox/charting/Series.js.uncompressed.js +58 -0
- package/vendor/dojo-1.10.10/dojox/charting/SimpleTheme.js +191 -0
- package/vendor/dojo-1.10.10/dojox/charting/SimpleTheme.js.uncompressed.js +577 -0
- package/vendor/dojo-1.10.10/dojox/charting/Theme.js +42 -0
- package/vendor/dojo-1.10.10/dojox/charting/Theme.js.uncompressed.js +120 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Base.js +11 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Base.js.uncompressed.js +36 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Highlight.js +77 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Highlight.js.uncompressed.js +144 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Magnify.js +58 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Magnify.js.uncompressed.js +123 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/MoveSlice.js +54 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/MoveSlice.js.uncompressed.js +124 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/PlotAction.js +28 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/PlotAction.js.uncompressed.js +74 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Tooltip.js +116 -0
- package/vendor/dojo-1.10.10/dojox/charting/action2d/Tooltip.js.uncompressed.js +178 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/Base.js +24 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/Base.js.uncompressed.js +83 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/Default.js +557 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/Default.js.uncompressed.js +980 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/Invisible.js +65 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/Invisible.js.uncompressed.js +224 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/common.js +91 -0
- package/vendor/dojo-1.10.10/dojox/charting/axis2d/common.js.uncompressed.js +164 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Areas.js +7 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Areas.js.uncompressed.js +14 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bars.js +168 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bars.js.uncompressed.js +311 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Base.js +61 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Base.js.uncompressed.js +161 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bubble.js +141 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bubble.js.uncompressed.js +242 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Candlesticks.js +126 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Candlesticks.js.uncompressed.js +243 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/CartesianBase.js +108 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/CartesianBase.js.uncompressed.js +290 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredBars.js +13 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredBars.js.uncompressed.js +14 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredColumns.js +13 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredColumns.js.uncompressed.js +14 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Columns.js +153 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Columns.js.uncompressed.js +249 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Default.js +253 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Default.js.uncompressed.js +472 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Grid.js +182 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Grid.js.uncompressed.js +356 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Lines.js +6 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Lines.js.uncompressed.js +12 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Markers.js +6 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Markers.js.uncompressed.js +12 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/MarkersOnly.js +7 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/MarkersOnly.js.uncompressed.js +13 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/OHLC.js +110 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/OHLC.js.uncompressed.js +208 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Pie.js +303 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Pie.js.uncompressed.js +547 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Scatter.js +134 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Scatter.js.uncompressed.js +207 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Spider.js +299 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Spider.js.uncompressed.js +537 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Stacked.js +24 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/Stacked.js.uncompressed.js +44 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedAreas.js +7 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedAreas.js.uncompressed.js +14 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedBars.js +22 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedBars.js.uncompressed.js +33 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedColumns.js +20 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedColumns.js.uncompressed.js +31 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedLines.js +6 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedLines.js.uncompressed.js +12 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/_PlotEvents.js +68 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/_PlotEvents.js.uncompressed.js +120 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/common.js +209 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/common.js.uncompressed.js +214 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/commonStacked.js +76 -0
- package/vendor/dojo-1.10.10/dojox/charting/plot2d/commonStacked.js.uncompressed.js +77 -0
- package/vendor/dojo-1.10.10/dojox/charting/scaler/common.js +59 -0
- package/vendor/dojo-1.10.10/dojox/charting/scaler/common.js.uncompressed.js +70 -0
- package/vendor/dojo-1.10.10/dojox/charting/scaler/linear.js +220 -0
- package/vendor/dojo-1.10.10/dojox/charting/scaler/linear.js.uncompressed.js +262 -0
- package/vendor/dojo-1.10.10/dojox/charting/scaler/primitive.js +23 -0
- package/vendor/dojo-1.10.10/dojox/charting/scaler/primitive.js.uncompressed.js +36 -0
- package/vendor/dojo-1.10.10/dojox/charting/themes/Claro.js +39 -0
- package/vendor/dojo-1.10.10/dojox/charting/themes/Claro.js.uncompressed.js +106 -0
- package/vendor/dojo-1.10.10/dojox/charting/themes/Wetland.js +5 -0
- package/vendor/dojo-1.10.10/dojox/charting/themes/Wetland.js.uncompressed.js +12 -0
- package/vendor/dojo-1.10.10/dojox/charting/themes/common.js +4 -0
- package/vendor/dojo-1.10.10/dojox/charting/themes/common.js.uncompressed.js +3 -0
- package/vendor/dojo-1.10.10/dojox/charting/widget/Legend.js +102 -0
- package/vendor/dojo-1.10.10/dojox/charting/widget/Legend.js.uncompressed.js +165 -0
- package/vendor/dojo-1.10.10/dojox/color/Palette.js +163 -0
- package/vendor/dojo-1.10.10/dojox/color/Palette.js.uncompressed.js +460 -0
- package/vendor/dojo-1.10.10/dojox/color/_base.js +174 -0
- package/vendor/dojo-1.10.10/dojox/color/_base.js.uncompressed.js +196 -0
- package/vendor/dojo-1.10.10/dojox/gfx/fx.js +297 -0
- package/vendor/dojo-1.10.10/dojox/gfx/fx.js.uncompressed.js +350 -0
- package/vendor/dojo-1.10.10/dojox/gfx/gradutils.js +63 -0
- package/vendor/dojo-1.10.10/dojox/gfx/gradutils.js.uncompressed.js +91 -0
- package/vendor/dojo-1.10.10/dojox/gfx/matrix.js +170 -0
- package/vendor/dojo-1.10.10/dojox/gfx/matrix.js.uncompressed.js +501 -0
- package/vendor/dojo-1.10.10/dojox/gfx/path.js +319 -0
- package/vendor/dojo-1.10.10/dojox/gfx/path.js.uncompressed.js +478 -0
- package/vendor/dojo-1.10.10/dojox/gfx/shape.js +459 -0
- package/vendor/dojo-1.10.10/dojox/gfx/shape.js.uncompressed.js +1091 -0
- package/vendor/dojo-1.10.10/dojox/gfx/svg.js +662 -0
- package/vendor/dojo-1.10.10/dojox/gfx/svg.js.uncompressed.js +1023 -0
- package/vendor/dojo-1.10.10/dojox/gfx/utils.js +199 -0
- package/vendor/dojo-1.10.10/dojox/gfx/utils.js.uncompressed.js +322 -0
- package/vendor/dojo-1.10.10/dojox/gfx.js +2 -0
- package/vendor/dojo-1.10.10/dojox/gfx.js.uncompressed.js +1136 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/array.js +151 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/array.js.uncompressed.js +169 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/fold.js +93 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/fold.js.uncompressed.js +125 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/lambda.js +81 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/lambda.js.uncompressed.js +132 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/object.js +54 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/object.js.uncompressed.js +78 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/reversed.js +61 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/reversed.js.uncompressed.js +77 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/scan.js +87 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional/scan.js.uncompressed.js +107 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional.js +4 -0
- package/vendor/dojo-1.10.10/dojox/lang/functional.js.uncompressed.js +3 -0
- package/vendor/dojo-1.10.10/dojox/lang/utils.js +86 -0
- package/vendor/dojo-1.10.10/dojox/lang/utils.js.uncompressed.js +121 -0
- package/vendor/dojo-1.10.10/dojox/main.js +4 -0
- package/vendor/dojo-1.10.10/dojox/main.js.uncompressed.js +14 -0
- package/vendor/dojo-1.10.10/dojox/storage/LocalStorageProvider.js +112 -0
- package/vendor/dojo-1.10.10/dojox/storage/LocalStorageProvider.js.uncompressed.js +208 -0
- package/vendor/dojo-1.10.10/dojox/storage/Provider.js +62 -0
- package/vendor/dojo-1.10.10/dojox/storage/Provider.js.uncompressed.js +344 -0
- package/vendor/dojo-1.10.10/dojox/storage/manager.js +110 -0
- package/vendor/dojo-1.10.10/dojox/storage/manager.js.uncompressed.js +263 -0
|
@@ -0,0 +1,537 @@
|
|
|
1
|
+
define("dojox/charting/plot2d/Spider", ["dojo/_base/lang", "dojo/_base/declare", "dojo/_base/connect", "dojo/_base/array",
|
|
2
|
+
"dojo/dom-geometry", "dojo/_base/fx", "dojo/fx", "dojo/sniff",
|
|
3
|
+
"./Base", "./_PlotEvents", "./common", "../axis2d/common",
|
|
4
|
+
"dojox/gfx", "dojox/gfx/matrix", "dojox/gfx/fx", "dojox/lang/functional",
|
|
5
|
+
"dojox/lang/utils", "dojo/fx/easing"],
|
|
6
|
+
function(lang, declare, hub, arr, domGeom, baseFx, coreFx, has,
|
|
7
|
+
Base, PlotEvents, dc, da, g, m, gfxfx, df, du, easing){
|
|
8
|
+
|
|
9
|
+
var FUDGE_FACTOR = 0.2; // use to overlap fans
|
|
10
|
+
|
|
11
|
+
var Spider = declare("dojox.charting.plot2d.Spider", [Base, PlotEvents], {
|
|
12
|
+
// summary:
|
|
13
|
+
// The plot that represents a typical Spider chart.
|
|
14
|
+
defaultParams: {
|
|
15
|
+
labels: true,
|
|
16
|
+
ticks: false,
|
|
17
|
+
fixed: true,
|
|
18
|
+
precision: 1,
|
|
19
|
+
labelOffset: -10,
|
|
20
|
+
labelStyle: "default", // default/rows/auto
|
|
21
|
+
htmlLabels: true, // use HTML to draw labels
|
|
22
|
+
startAngle: -90, // start angle for slices in degrees
|
|
23
|
+
divisions: 3, // radius tick count
|
|
24
|
+
axisColor: "", // spider axis color
|
|
25
|
+
axisWidth: 0, // spider axis stroke width
|
|
26
|
+
spiderColor: "", // spider web color
|
|
27
|
+
spiderWidth: 0, // spider web stroke width
|
|
28
|
+
seriesWidth: 0, // plot border with
|
|
29
|
+
seriesFillAlpha: 0.2, // plot fill alpha
|
|
30
|
+
spiderOrigin: 0.16,
|
|
31
|
+
markerSize: 3, // radius of plot vertex (px)
|
|
32
|
+
spiderType: "polygon", //"circle"
|
|
33
|
+
animationType: easing.backOut,
|
|
34
|
+
animate: null,
|
|
35
|
+
axisTickFont: "",
|
|
36
|
+
axisTickFontColor: "",
|
|
37
|
+
axisFont: "",
|
|
38
|
+
axisFontColor: ""
|
|
39
|
+
},
|
|
40
|
+
optionalParams: {
|
|
41
|
+
radius: 0,
|
|
42
|
+
font: "",
|
|
43
|
+
fontColor: ""
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
constructor: function(chart, kwArgs){
|
|
47
|
+
// summary:
|
|
48
|
+
// Create a Spider plot.
|
|
49
|
+
// chart: dojox/charting/Chart
|
|
50
|
+
// The chart this plot belongs to.
|
|
51
|
+
// kwArgs: dojox.charting.plot2d.__DefaultCtorArgs?
|
|
52
|
+
// An optional keyword arguments object to help define this plot's parameters.
|
|
53
|
+
this.opt = lang.clone(this.defaultParams);
|
|
54
|
+
du.updateWithObject(this.opt, kwArgs);
|
|
55
|
+
du.updateWithPattern(this.opt, kwArgs, this.optionalParams);
|
|
56
|
+
this.dyn = [];
|
|
57
|
+
this.datas = {};
|
|
58
|
+
this.labelKey = [];
|
|
59
|
+
this.oldSeriePoints = {};
|
|
60
|
+
this.animate = this.opt.animate === null ? {} : this.opt.animate;
|
|
61
|
+
this.animations = {};
|
|
62
|
+
},
|
|
63
|
+
clear: function(){
|
|
64
|
+
// summary:
|
|
65
|
+
// Clear out all of the information tied to this plot.
|
|
66
|
+
// returns: dojox/charting/plot2d/Spider
|
|
67
|
+
// A reference to this plot for functional chaining.
|
|
68
|
+
this.inherited(arguments);
|
|
69
|
+
this.dyn = [];
|
|
70
|
+
this.axes = [];
|
|
71
|
+
this.datas = {};
|
|
72
|
+
this.labelKey = [];
|
|
73
|
+
this.oldSeriePoints = {};
|
|
74
|
+
this.animations = {};
|
|
75
|
+
return this; // dojox/charting/plot2d/Spider
|
|
76
|
+
},
|
|
77
|
+
setAxis: function(axis){
|
|
78
|
+
// summary:
|
|
79
|
+
// Optionally set axis min and max property.
|
|
80
|
+
// returns: dojox/charting/plot2d/Spider
|
|
81
|
+
// The reference to this plot for functional chaining.
|
|
82
|
+
|
|
83
|
+
// override the computed min/max with provided values if any
|
|
84
|
+
if(axis){
|
|
85
|
+
if(axis.opt.min != undefined){
|
|
86
|
+
this.datas[axis.name].min = axis.opt.min;
|
|
87
|
+
}
|
|
88
|
+
if(axis.opt.max != undefined){
|
|
89
|
+
this.datas[axis.name].max = axis.opt.max;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return this; // dojox/charting/plot2d/Spider
|
|
93
|
+
},
|
|
94
|
+
addSeries: function(run){
|
|
95
|
+
// summary:
|
|
96
|
+
// Add a data series to this plot.
|
|
97
|
+
// run: dojox.charting.Series
|
|
98
|
+
// The series to be added.
|
|
99
|
+
// returns: dojox/charting/plot2d/Base
|
|
100
|
+
// A reference to this plot for functional chaining.
|
|
101
|
+
this.series.push(run);
|
|
102
|
+
var key;
|
|
103
|
+
for(key in run.data){
|
|
104
|
+
var val = run.data[key],
|
|
105
|
+
data = this.datas[key];
|
|
106
|
+
if(data){
|
|
107
|
+
data.vlist.push(val);
|
|
108
|
+
data.min = Math.min(data.min, val);
|
|
109
|
+
data.max = Math.max(data.max, val);
|
|
110
|
+
}else{
|
|
111
|
+
var axisKey = "__"+key;
|
|
112
|
+
this.axes.push(axisKey);
|
|
113
|
+
this[axisKey] = key;
|
|
114
|
+
this.datas[key] = {min: val, max: val, vlist: [val]};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if(this.labelKey.length <= 0){
|
|
118
|
+
for(key in run.data){
|
|
119
|
+
this.labelKey.push(key);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return this; // dojox.charting.plot2d.Base
|
|
123
|
+
},
|
|
124
|
+
getSeriesStats: function(){
|
|
125
|
+
// summary:
|
|
126
|
+
// Calculate the min/max on all attached series in both directions.
|
|
127
|
+
// returns: Object
|
|
128
|
+
// {hmin, hmax, vmin, vmax} min/max in both directions.
|
|
129
|
+
return dc.collectSimpleStats(this.series); // Object
|
|
130
|
+
},
|
|
131
|
+
render: function(dim, offsets){
|
|
132
|
+
// summary:
|
|
133
|
+
// Render the plot on the chart.
|
|
134
|
+
// dim: Object
|
|
135
|
+
// An object of the form { width, height }.
|
|
136
|
+
// offsets: Object
|
|
137
|
+
// An object of the form { l, r, t, b }.
|
|
138
|
+
// returns: dojox/charting/plot2d/Spider
|
|
139
|
+
// A reference to this plot for functional chaining.
|
|
140
|
+
if(!this.dirty){ return this; }
|
|
141
|
+
this.dirty = false;
|
|
142
|
+
this.cleanGroup();
|
|
143
|
+
var s = this.group, t = this.chart.theme;
|
|
144
|
+
this.resetEvents();
|
|
145
|
+
|
|
146
|
+
if(!this.series || !this.series.length){
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// calculate the geometry
|
|
151
|
+
var o = this.opt, ta = t.axis,
|
|
152
|
+
rx = (dim.width - offsets.l - offsets.r) / 2,
|
|
153
|
+
ry = (dim.height - offsets.t - offsets.b) / 2,
|
|
154
|
+
r = Math.min(rx, ry),
|
|
155
|
+
axisTickFont = o.font || (ta.majorTick && ta.majorTick.font) || (ta.tick && ta.tick.font) || "normal normal normal 7pt Tahoma",
|
|
156
|
+
axisFont = o.axisFont || (ta.tick && ta.tick.titleFont) || "normal normal normal 11pt Tahoma",
|
|
157
|
+
axisTickFontColor = o.axisTickFontColor || (ta.majorTick && ta.majorTick.fontColor) || (ta.tick && ta.tick.fontColor) || "silver",
|
|
158
|
+
axisFontColor = o.axisFontColor || (ta.tick && ta.tick.titleFontColor) || "black",
|
|
159
|
+
axisColor = o.axisColor || (ta.tick && ta.tick.axisColor) || "silver",
|
|
160
|
+
spiderColor = o.spiderColor || (ta.tick && ta.tick.spiderColor) || "silver",
|
|
161
|
+
axisWidth = o.axisWidth || (ta.stroke && ta.stroke.width) || 2,
|
|
162
|
+
spiderWidth = o.spiderWidth || (ta.stroke && ta.stroke.width) || 2,
|
|
163
|
+
seriesWidth = o.seriesWidth || (ta.stroke && ta.stroke.width) || 2,
|
|
164
|
+
asize = g.normalizedLength(g.splitFontString(axisFont).size),
|
|
165
|
+
startAngle = m._degToRad(o.startAngle),
|
|
166
|
+
start = startAngle, labels, shift, labelR,
|
|
167
|
+
outerPoints, innerPoints, divisionPoints, divisionRadius, labelPoints,
|
|
168
|
+
ro = o.spiderOrigin, dv = o.divisions >= 3 ? o.divisions : 3, ms = o.markerSize,
|
|
169
|
+
spt = o.spiderType, at = o.animationType, lboffset = o.labelOffset < -10 ? o.labelOffset : -10,
|
|
170
|
+
axisExtra = 0.2,
|
|
171
|
+
i, j, point, len, fontWidth, render, serieEntry, run, data, min, max, distance;
|
|
172
|
+
|
|
173
|
+
if(o.labels){
|
|
174
|
+
labels = arr.map(this.series, function(s){
|
|
175
|
+
return s.name;
|
|
176
|
+
}, this);
|
|
177
|
+
shift = df.foldl1(df.map(labels, function(label){
|
|
178
|
+
var font = t.series.font;
|
|
179
|
+
return g._base._getTextBox(label, {
|
|
180
|
+
font: font
|
|
181
|
+
}).w;
|
|
182
|
+
}, this), "Math.max(a, b)") / 2;
|
|
183
|
+
r = Math.min(rx - 2 * shift, ry - asize) + lboffset;
|
|
184
|
+
labelR = r - lboffset;
|
|
185
|
+
}
|
|
186
|
+
if("radius" in o){
|
|
187
|
+
r = o.radius;
|
|
188
|
+
labelR = r - lboffset;
|
|
189
|
+
}
|
|
190
|
+
r /= (1+axisExtra);
|
|
191
|
+
var circle = {
|
|
192
|
+
cx: offsets.l + rx,
|
|
193
|
+
cy: offsets.t + ry,
|
|
194
|
+
r: r
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
for (i = this.series.length - 1; i >= 0; i--){
|
|
198
|
+
serieEntry = this.series[i];
|
|
199
|
+
if(!this.dirty && !serieEntry.dirty){
|
|
200
|
+
t.skip();
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
serieEntry.cleanGroup();
|
|
204
|
+
run = serieEntry.data;
|
|
205
|
+
if(run !== null){
|
|
206
|
+
len = this._getObjectLength(run);
|
|
207
|
+
//construct connect points
|
|
208
|
+
if(!outerPoints || outerPoints.length <= 0){
|
|
209
|
+
outerPoints = [], innerPoints = [], labelPoints = [];
|
|
210
|
+
this._buildPoints(outerPoints, len, circle, r, start, true, dim);
|
|
211
|
+
this._buildPoints(innerPoints, len, circle, r*ro, start, true, dim);
|
|
212
|
+
this._buildPoints(labelPoints, len, circle, labelR, start, false, dim);
|
|
213
|
+
if(dv > 2){
|
|
214
|
+
divisionPoints = [], divisionRadius = [];
|
|
215
|
+
for (j = 0; j < dv - 2; j++){
|
|
216
|
+
divisionPoints[j] = [];
|
|
217
|
+
this._buildPoints(divisionPoints[j], len, circle, r*(ro + (1-ro)*(j+1)/(dv-1)), start, true, dim);
|
|
218
|
+
divisionRadius[j] = r*(ro + (1-ro)*(j+1)/(dv-1));
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
//draw Spider
|
|
226
|
+
//axis
|
|
227
|
+
var axisGroup = s.createGroup(), axisStroke = {color: axisColor, width: axisWidth},
|
|
228
|
+
spiderStroke = {color: spiderColor, width: spiderWidth};
|
|
229
|
+
for (j = outerPoints.length - 1; j >= 0; --j){
|
|
230
|
+
point = outerPoints[j];
|
|
231
|
+
var st = {
|
|
232
|
+
x: point.x + (point.x - circle.cx) * axisExtra,
|
|
233
|
+
y: point.y + (point.y - circle.cy) * axisExtra
|
|
234
|
+
},
|
|
235
|
+
nd = {
|
|
236
|
+
x: point.x + (point.x - circle.cx) * axisExtra / 2,
|
|
237
|
+
y: point.y + (point.y - circle.cy) * axisExtra / 2
|
|
238
|
+
};
|
|
239
|
+
axisGroup.createLine({
|
|
240
|
+
x1: circle.cx,
|
|
241
|
+
y1: circle.cy,
|
|
242
|
+
x2: st.x,
|
|
243
|
+
y2: st.y
|
|
244
|
+
}).setStroke(axisStroke);
|
|
245
|
+
//arrow
|
|
246
|
+
this._drawArrow(axisGroup, st, nd, axisStroke);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// draw the label
|
|
250
|
+
var labelGroup = s.createGroup();
|
|
251
|
+
for (j = labelPoints.length - 1; j >= 0; --j){
|
|
252
|
+
point = labelPoints[j];
|
|
253
|
+
fontWidth = g._base._getTextBox(this.labelKey[j], {font: axisFont}).w || 0;
|
|
254
|
+
render = this.opt.htmlLabels && g.renderer != "vml" ? "html" : "gfx";
|
|
255
|
+
var elem = da.createText[render](this.chart, labelGroup, (!domGeom.isBodyLtr() && render == "html") ? (point.x + fontWidth - dim.width) : point.x, point.y,
|
|
256
|
+
"middle", this.labelKey[j], axisFont, axisFontColor);
|
|
257
|
+
if(this.opt.htmlLabels){
|
|
258
|
+
this.htmlElements.push(elem);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
//spider web: polygon or circle
|
|
263
|
+
var spiderGroup = s.createGroup();
|
|
264
|
+
if(spt == "polygon"){
|
|
265
|
+
spiderGroup.createPolyline(outerPoints).setStroke(spiderStroke);
|
|
266
|
+
spiderGroup.createPolyline(innerPoints).setStroke(spiderStroke);
|
|
267
|
+
if(divisionPoints.length > 0){
|
|
268
|
+
for (j = divisionPoints.length - 1; j >= 0; --j){
|
|
269
|
+
spiderGroup.createPolyline(divisionPoints[j]).setStroke(spiderStroke);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}else{//circle
|
|
273
|
+
spiderGroup.createCircle({cx: circle.cx, cy: circle.cy, r: r}).setStroke(spiderStroke);
|
|
274
|
+
spiderGroup.createCircle({cx: circle.cx, cy: circle.cy, r: r*ro}).setStroke(spiderStroke);
|
|
275
|
+
if(divisionRadius.length > 0){
|
|
276
|
+
for (j = divisionRadius.length - 1; j >= 0; --j){
|
|
277
|
+
spiderGroup.createCircle({cx: circle.cx, cy: circle.cy, r: divisionRadius[j]}).setStroke(spiderStroke);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
//text
|
|
282
|
+
len = this._getObjectLength(this.datas);
|
|
283
|
+
var textGroup = s.createGroup(), k = 0;
|
|
284
|
+
for(var key in this.datas){
|
|
285
|
+
data = this.datas[key];
|
|
286
|
+
min = data.min;
|
|
287
|
+
max = data.max;
|
|
288
|
+
distance = max - min;
|
|
289
|
+
end = start + 2 * Math.PI * k / len;
|
|
290
|
+
for (i = 0; i < dv; i++){
|
|
291
|
+
var text = min + distance*i/(dv-1);
|
|
292
|
+
point = this._getCoordinate(circle, r*(ro + (1-ro)*i/(dv-1)), end, dim);
|
|
293
|
+
text = this._getLabel(text);
|
|
294
|
+
fontWidth = g._base._getTextBox(text, {font: axisTickFont}).w || 0;
|
|
295
|
+
render = this.opt.htmlLabels && g.renderer != "vml" ? "html" : "gfx";
|
|
296
|
+
if(this.opt.htmlLabels){
|
|
297
|
+
this.htmlElements.push(da.createText[render]
|
|
298
|
+
(this.chart, textGroup, (!domGeom.isBodyLtr() && render == "html") ? (point.x + fontWidth - dim.width) : point.x, point.y,
|
|
299
|
+
"start", text, axisTickFont, axisTickFontColor));
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
k++;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
//draw series (animation)
|
|
306
|
+
this.chart.seriesShapes = {};
|
|
307
|
+
for (i = this.series.length - 1; i >= 0; i--){
|
|
308
|
+
serieEntry = this.series[i];
|
|
309
|
+
run = serieEntry.data;
|
|
310
|
+
if(run !== null){
|
|
311
|
+
var theme = t.next("spider", [o, serieEntry]),
|
|
312
|
+
f = g.normalizeColor(theme.series.fill),
|
|
313
|
+
sk = {color: theme.series.fill, width: seriesWidth};
|
|
314
|
+
f.a = o.seriesFillAlpha;
|
|
315
|
+
serieEntry.dyn = {fill: f, stroke: sk};
|
|
316
|
+
if(serieEntry.hidden){
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
//series polygon
|
|
320
|
+
var seriePoints = [], tipData = [];
|
|
321
|
+
k = 0;
|
|
322
|
+
for(key in run){
|
|
323
|
+
data = this.datas[key];
|
|
324
|
+
min = data.min;
|
|
325
|
+
max = data.max;
|
|
326
|
+
distance = max - min;
|
|
327
|
+
var entry = run[key], end = start + 2 * Math.PI * k / len;
|
|
328
|
+
point = this._getCoordinate(circle, r*(ro + (1-ro)*(entry-min)/distance), end, dim);
|
|
329
|
+
seriePoints.push(point);
|
|
330
|
+
tipData.push({sname: serieEntry.name, key: key, data: entry});
|
|
331
|
+
k++;
|
|
332
|
+
}
|
|
333
|
+
seriePoints[seriePoints.length] = seriePoints[0];
|
|
334
|
+
tipData[tipData.length] = tipData[0];
|
|
335
|
+
var polygonBoundRect = this._getBoundary(seriePoints),
|
|
336
|
+
ts = serieEntry.group;
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
var osps = this.oldSeriePoints[serieEntry.name];
|
|
340
|
+
var cs = this._createSeriesEntry(ts, (osps || innerPoints), seriePoints, f, sk, r, ro, ms, at);
|
|
341
|
+
this.chart.seriesShapes[serieEntry.name] = cs;
|
|
342
|
+
this.oldSeriePoints[serieEntry.name] = seriePoints;
|
|
343
|
+
|
|
344
|
+
var po = {
|
|
345
|
+
element: "spider_poly",
|
|
346
|
+
index: i,
|
|
347
|
+
id: "spider_poly_"+serieEntry.name,
|
|
348
|
+
run: serieEntry,
|
|
349
|
+
plot: this,
|
|
350
|
+
shape: cs.poly,
|
|
351
|
+
parent: ts,
|
|
352
|
+
brect: polygonBoundRect,
|
|
353
|
+
cx: circle.cx,
|
|
354
|
+
cy: circle.cy,
|
|
355
|
+
cr: r,
|
|
356
|
+
f: f,
|
|
357
|
+
s: s
|
|
358
|
+
};
|
|
359
|
+
this._connectEvents(po);
|
|
360
|
+
|
|
361
|
+
var so = {
|
|
362
|
+
element: "spider_plot",
|
|
363
|
+
index: i,
|
|
364
|
+
id: "spider_plot_"+serieEntry.name,
|
|
365
|
+
run: serieEntry,
|
|
366
|
+
plot: this,
|
|
367
|
+
shape: serieEntry.group
|
|
368
|
+
};
|
|
369
|
+
this._connectEvents(so);
|
|
370
|
+
|
|
371
|
+
arr.forEach(cs.circles, function(c, i){
|
|
372
|
+
var co = {
|
|
373
|
+
element: "spider_circle",
|
|
374
|
+
index: i,
|
|
375
|
+
id: "spider_circle_"+serieEntry.name+i,
|
|
376
|
+
run: serieEntry,
|
|
377
|
+
plot: this,
|
|
378
|
+
shape: c,
|
|
379
|
+
parent: ts,
|
|
380
|
+
tdata: tipData[i],
|
|
381
|
+
cx: seriePoints[i].x,
|
|
382
|
+
cy: seriePoints[i].y,
|
|
383
|
+
f: f,
|
|
384
|
+
s: s
|
|
385
|
+
};
|
|
386
|
+
this._connectEvents(co);
|
|
387
|
+
}, this);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
return this; // dojox/charting/plot2d/Spider
|
|
391
|
+
},
|
|
392
|
+
_createSeriesEntry: function(ts, osps, sps, f, sk, r, ro, ms, at){
|
|
393
|
+
//polygon
|
|
394
|
+
var initpoints = this.animate?osps:sps;
|
|
395
|
+
var spoly = ts.createPolyline(initpoints).setFill(f).setStroke(sk), scircle = [];
|
|
396
|
+
for (var j = 0; j < initpoints.length; j++){
|
|
397
|
+
var point = initpoints[j], cr = ms;
|
|
398
|
+
var circle = ts.createCircle({cx: point.x, cy: point.y, r: cr}).setFill(f).setStroke(sk);
|
|
399
|
+
scircle.push(circle);
|
|
400
|
+
}
|
|
401
|
+
if(this.animate) {
|
|
402
|
+
var anims = arr.map(sps, function (np, j) {
|
|
403
|
+
// create animation
|
|
404
|
+
var sp = osps[j],
|
|
405
|
+
anim = new baseFx.Animation(lang.delegate({
|
|
406
|
+
duration: 1000,
|
|
407
|
+
easing: at,
|
|
408
|
+
curve: [sp.y, np.y]
|
|
409
|
+
}, this.animate));
|
|
410
|
+
var spl = spoly, sc = scircle[j];
|
|
411
|
+
hub.connect(anim, "onAnimate", function (y) {
|
|
412
|
+
//apply poly
|
|
413
|
+
var pshape = spl.getShape();
|
|
414
|
+
pshape.points[j].y = y;
|
|
415
|
+
spl.setShape(pshape);
|
|
416
|
+
//apply circle
|
|
417
|
+
var cshape = sc.getShape();
|
|
418
|
+
cshape.cy = y;
|
|
419
|
+
sc.setShape(cshape);
|
|
420
|
+
});
|
|
421
|
+
return anim;
|
|
422
|
+
}, this);
|
|
423
|
+
|
|
424
|
+
var anims1 = arr.map(sps, function (np, j) {
|
|
425
|
+
// create animation
|
|
426
|
+
var sp = osps[j],
|
|
427
|
+
anim = new baseFx.Animation(lang.delegate({
|
|
428
|
+
duration: 1000,
|
|
429
|
+
easing: at,
|
|
430
|
+
curve: [sp.x, np.x]
|
|
431
|
+
}, this.animate));
|
|
432
|
+
var spl = spoly, sc = scircle[j];
|
|
433
|
+
hub.connect(anim, "onAnimate", function (x) {
|
|
434
|
+
//apply poly
|
|
435
|
+
var pshape = spl.getShape();
|
|
436
|
+
pshape.points[j].x = x;
|
|
437
|
+
spl.setShape(pshape);
|
|
438
|
+
//apply circle
|
|
439
|
+
var cshape = sc.getShape();
|
|
440
|
+
cshape.cx = x;
|
|
441
|
+
sc.setShape(cshape);
|
|
442
|
+
});
|
|
443
|
+
return anim;
|
|
444
|
+
}, this);
|
|
445
|
+
var masterAnimation = coreFx.combine(anims.concat(anims1)); //dojo.fx.chain(anims);
|
|
446
|
+
masterAnimation.play();
|
|
447
|
+
}
|
|
448
|
+
return {group :ts, poly: spoly, circles: scircle};
|
|
449
|
+
},
|
|
450
|
+
plotEvent: function(o){
|
|
451
|
+
// summary:
|
|
452
|
+
// Stub function for use by specific plots.
|
|
453
|
+
// o: Object
|
|
454
|
+
// An object intended to represent event parameters.
|
|
455
|
+
if(o.element == "spider_plot"){
|
|
456
|
+
//dojo gfx function "moveToFront" not work in IE
|
|
457
|
+
if(o.type == "onmouseover" && !has("ie")){
|
|
458
|
+
o.shape.moveToFront();
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
|
|
463
|
+
tooltipFunc: function(o){
|
|
464
|
+
if(o.element == "spider_circle"){
|
|
465
|
+
return o.tdata.sname + "<br/>" + o.tdata.key + "<br/>" + o.tdata.data;
|
|
466
|
+
}else{
|
|
467
|
+
return null;
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
|
|
471
|
+
_getBoundary: function(points){
|
|
472
|
+
var xmax = points[0].x,
|
|
473
|
+
xmin = points[0].x,
|
|
474
|
+
ymax = points[0].y,
|
|
475
|
+
ymin = points[0].y;
|
|
476
|
+
for(var i = 0; i < points.length; i++){
|
|
477
|
+
var point = points[i];
|
|
478
|
+
xmax = Math.max(point.x, xmax);
|
|
479
|
+
ymax = Math.max(point.y, ymax);
|
|
480
|
+
xmin = Math.min(point.x, xmin);
|
|
481
|
+
ymin = Math.min(point.y, ymin);
|
|
482
|
+
}
|
|
483
|
+
return {
|
|
484
|
+
x: xmin,
|
|
485
|
+
y: ymin,
|
|
486
|
+
width: xmax - xmin,
|
|
487
|
+
height: ymax - ymin
|
|
488
|
+
};
|
|
489
|
+
},
|
|
490
|
+
|
|
491
|
+
_drawArrow: function(s, start, end, stroke){
|
|
492
|
+
var len = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2)),
|
|
493
|
+
sin = (end.y - start.y)/len, cos = (end.x - start.x)/len,
|
|
494
|
+
point2 = {x: end.x + (len/3)*(-sin), y: end.y + (len/3)*cos},
|
|
495
|
+
point3 = {x: end.x + (len/3)*sin, y: end.y + (len/3)*(-cos)};
|
|
496
|
+
s.createPolyline([start, point2, point3]).setFill(stroke.color).setStroke(stroke);
|
|
497
|
+
},
|
|
498
|
+
|
|
499
|
+
_buildPoints: function(points, count, circle, radius, angle, recursive, dim){
|
|
500
|
+
for(var i = 0; i < count; i++){
|
|
501
|
+
var end = angle + 2 * Math.PI * i / count;
|
|
502
|
+
points.push(this._getCoordinate(circle, radius, end, dim));
|
|
503
|
+
}
|
|
504
|
+
if(recursive){
|
|
505
|
+
points.push(this._getCoordinate(circle, radius, angle + 2 * Math.PI, dim));
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
|
|
509
|
+
_getCoordinate: function(circle, radius, angle, dim){
|
|
510
|
+
var x = circle.cx + radius * Math.cos(angle);
|
|
511
|
+
if(has("dojo-bidi") && this.chart.isRightToLeft() && dim){
|
|
512
|
+
x = dim.width - x;
|
|
513
|
+
}
|
|
514
|
+
return {
|
|
515
|
+
x: x,
|
|
516
|
+
y: circle.cy + radius * Math.sin(angle)
|
|
517
|
+
}
|
|
518
|
+
},
|
|
519
|
+
|
|
520
|
+
_getObjectLength: function(obj){
|
|
521
|
+
var count = 0;
|
|
522
|
+
if(lang.isObject(obj)){
|
|
523
|
+
for(var key in obj){
|
|
524
|
+
count++;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
return count;
|
|
528
|
+
},
|
|
529
|
+
|
|
530
|
+
// utilities
|
|
531
|
+
_getLabel: function(number){
|
|
532
|
+
return dc.getLabel(number, this.opt.fixed, this.opt.precision);
|
|
533
|
+
}
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
return Spider; // dojox/plot2d/Spider
|
|
537
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//>>built
|
|
2
|
+
define("dojox/charting/plot2d/Stacked",["dojo/_base/declare","./Default","./commonStacked"],function(_1,_2,_3){
|
|
3
|
+
return _1("dojox.charting.plot2d.Stacked",_2,{getSeriesStats:function(){
|
|
4
|
+
var _4=_3.collectStats(this.series);
|
|
5
|
+
return _4;
|
|
6
|
+
},buildSegments:function(i,_5){
|
|
7
|
+
var _6=this.series[i],_7=_5?Math.max(0,Math.floor(this._hScaler.bounds.from-1)):0,_8=_5?Math.min(_6.data.length-1,Math.ceil(this._hScaler.bounds.to)):_6.data.length-1,_9=null,_a=[];
|
|
8
|
+
for(var j=_7;j<=_8;j++){
|
|
9
|
+
var _b=_5?_3.getIndexValue(this.series,i,j):_3.getValue(this.series,i,_6.data[j]?_6.data[j].x:null);
|
|
10
|
+
if(_b[0]!=null&&(_5||_b[0].y!=null)){
|
|
11
|
+
if(!_9){
|
|
12
|
+
_9=[];
|
|
13
|
+
_a.push({index:j,rseg:_9});
|
|
14
|
+
}
|
|
15
|
+
_9.push(_b[0]);
|
|
16
|
+
}else{
|
|
17
|
+
if(!this.opt.interpolate||_5){
|
|
18
|
+
_9=null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return _a;
|
|
23
|
+
}});
|
|
24
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
define("dojox/charting/plot2d/Stacked", ["dojo/_base/declare", "./Default", "./commonStacked"],
|
|
2
|
+
function(declare, Default, commonStacked){
|
|
3
|
+
|
|
4
|
+
return declare("dojox.charting.plot2d.Stacked", Default, {
|
|
5
|
+
// summary:
|
|
6
|
+
// Like the default plot, Stacked sets up lines, areas and markers
|
|
7
|
+
// in a stacked fashion (values on the y axis added to each other)
|
|
8
|
+
// as opposed to a direct one.
|
|
9
|
+
getSeriesStats: function(){
|
|
10
|
+
// summary:
|
|
11
|
+
// Calculate the min/max on all attached series in both directions.
|
|
12
|
+
// returns: Object
|
|
13
|
+
// {hmin, hmax, vmin, vmax} min/max in both directions.
|
|
14
|
+
var stats = commonStacked.collectStats(this.series);
|
|
15
|
+
return stats; // Object
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
buildSegments: function(i, indexed){
|
|
19
|
+
var run = this.series[i],
|
|
20
|
+
min = indexed?Math.max(0, Math.floor(this._hScaler.bounds.from - 1)):0,
|
|
21
|
+
max = indexed?Math.min(run.data.length-1, Math.ceil(this._hScaler.bounds.to)):run.data.length-1,
|
|
22
|
+
rseg = null, segments = [];
|
|
23
|
+
// split the run data into dense segments (each containing no nulls)
|
|
24
|
+
// except if interpolates is false in which case ignore null between valid data
|
|
25
|
+
for(var j = min; j <= max; j++){
|
|
26
|
+
var value = indexed ? commonStacked.getIndexValue(this.series, i, j) : commonStacked.getValue(this.series, i, run.data[j] ?run.data[j].x: null);
|
|
27
|
+
if(value[0] != null && (indexed || value[0].y != null)){
|
|
28
|
+
if(!rseg){
|
|
29
|
+
rseg = [];
|
|
30
|
+
segments.push({index: j, rseg: rseg});
|
|
31
|
+
}
|
|
32
|
+
rseg.push(value[0]);
|
|
33
|
+
}else{
|
|
34
|
+
if(!this.opt.interpolate || indexed){
|
|
35
|
+
// we break the line only if not interpolating or if we have indexed data
|
|
36
|
+
rseg = null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return segments;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
});
|
|
44
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
define("dojox/charting/plot2d/StackedAreas", ["dojo/_base/declare", "./Stacked"], function(declare, Stacked){
|
|
2
|
+
|
|
3
|
+
return declare("dojox.charting.plot2d.StackedAreas", Stacked, {
|
|
4
|
+
// summary:
|
|
5
|
+
// A convenience object to set up a stacked area plot.
|
|
6
|
+
constructor: function(){
|
|
7
|
+
// summary:
|
|
8
|
+
// Force our Stacked plotter to include both lines and areas.
|
|
9
|
+
this.opt.lines = true;
|
|
10
|
+
this.opt.areas = true;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//>>built
|
|
2
|
+
define("dojox/charting/plot2d/StackedBars",["dojo/_base/declare","./Bars","./commonStacked"],function(_1,_2,_3){
|
|
3
|
+
return _1("dojox.charting.plot2d.StackedBars",_2,{getSeriesStats:function(){
|
|
4
|
+
var _4=_3.collectStats(this.series),t;
|
|
5
|
+
_4.hmin-=0.5;
|
|
6
|
+
_4.hmax+=0.5;
|
|
7
|
+
t=_4.hmin,_4.hmin=_4.vmin,_4.vmin=t;
|
|
8
|
+
t=_4.hmax,_4.hmax=_4.vmax,_4.vmax=t;
|
|
9
|
+
return _4;
|
|
10
|
+
},getValue:function(_5,_6,_7,_8){
|
|
11
|
+
var y,x;
|
|
12
|
+
if(_8){
|
|
13
|
+
x=_6;
|
|
14
|
+
y=_3.getIndexValue(this.series,_7,x);
|
|
15
|
+
}else{
|
|
16
|
+
x=_5.x-1;
|
|
17
|
+
y=_3.getValue(this.series,_7,_5.x);
|
|
18
|
+
y=[y[0]?y[0].y:null,y[1]?y[1]:null];
|
|
19
|
+
}
|
|
20
|
+
return {x:x,y:y[0],py:y[1]};
|
|
21
|
+
}});
|
|
22
|
+
});
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
define("dojox/charting/plot2d/StackedBars", ["dojo/_base/declare", "./Bars", "./commonStacked"],
|
|
2
|
+
function(declare, Bars, commonStacked){
|
|
3
|
+
|
|
4
|
+
return declare("dojox.charting.plot2d.StackedBars", Bars, {
|
|
5
|
+
// summary:
|
|
6
|
+
// The plot object representing a stacked bar chart (horizontal bars).
|
|
7
|
+
getSeriesStats: function(){
|
|
8
|
+
// summary:
|
|
9
|
+
// Calculate the min/max on all attached series in both directions.
|
|
10
|
+
// returns: Object
|
|
11
|
+
// {hmin, hmax, vmin, vmax} min/max in both directions.
|
|
12
|
+
var stats = commonStacked.collectStats(this.series), t;
|
|
13
|
+
stats.hmin -= 0.5;
|
|
14
|
+
stats.hmax += 0.5;
|
|
15
|
+
t = stats.hmin, stats.hmin = stats.vmin, stats.vmin = t;
|
|
16
|
+
t = stats.hmax, stats.hmax = stats.vmax, stats.vmax = t;
|
|
17
|
+
return stats; // Object
|
|
18
|
+
},
|
|
19
|
+
getValue: function(value, index, seriesIndex, indexed){
|
|
20
|
+
var y,x;
|
|
21
|
+
if(indexed){
|
|
22
|
+
x = index;
|
|
23
|
+
y = commonStacked.getIndexValue(this.series, seriesIndex, x);
|
|
24
|
+
}else{
|
|
25
|
+
x = value.x - 1;
|
|
26
|
+
y = commonStacked.getValue(this.series, seriesIndex, value.x);
|
|
27
|
+
y = [ y[0]?y[0].y:null, y[1]?y[1]:null ];
|
|
28
|
+
}
|
|
29
|
+
// in py we return the previous stack value as we need it to position labels on columns
|
|
30
|
+
return { x: x, y: y[0], py: y[1] };
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|