@progress/kendo-charts 2.7.2-dev.202502101310 → 2.7.2-develop.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.
- package/dist/cdn/js/kendo-charts.js +1 -1
- package/dist/cdn/main.js +1 -1
- package/dist/es/barcode/barcode-validator.js +10 -12
- package/dist/es/barcode/barcode.js +84 -96
- package/dist/es/barcode/encodings/code11.js +41 -57
- package/dist/es/barcode/encodings/code128.js +222 -354
- package/dist/es/barcode/encodings/code39-extended.js +20 -34
- package/dist/es/barcode/encodings/code39.js +49 -75
- package/dist/es/barcode/encodings/code93-extended.js +12 -24
- package/dist/es/barcode/encodings/code93.js +52 -70
- package/dist/es/barcode/encodings/ean13.js +28 -42
- package/dist/es/barcode/encodings/ean8.js +8 -18
- package/dist/es/barcode/encodings/encoding.js +18 -24
- package/dist/es/barcode/encodings/main.js +13 -10
- package/dist/es/barcode/encodings/msi.js +56 -112
- package/dist/es/barcode/encodings/postnet.js +31 -45
- package/dist/es/barcode/surface-size.js +2 -2
- package/dist/es/chart/aggregates/aggregates.js +23 -23
- package/dist/es/chart/aggregates/default-aggregates.js +10 -18
- package/dist/es/chart/aggregates/series-aggregator.js +42 -54
- package/dist/es/chart/animations/bar-chart-animation.js +15 -26
- package/dist/es/chart/animations/bubble-animation.js +7 -17
- package/dist/es/chart/animations/clip-animation.js +13 -23
- package/dist/es/chart/animations/fade-in-animation.js +6 -16
- package/dist/es/chart/animations/pie-animation.js +6 -16
- package/dist/es/chart/api-elements/chart-axis.js +14 -22
- package/dist/es/chart/api-elements/chart-pane.js +10 -8
- package/dist/es/chart/api-elements/chart-plotarea.js +4 -10
- package/dist/es/chart/api-elements/find-axis-by-name.js +1 -1
- package/dist/es/chart/area-chart/area-chart.js +46 -60
- package/dist/es/chart/area-chart/area-segment.js +46 -52
- package/dist/es/chart/area-chart/spline-area-segment.js +12 -21
- package/dist/es/chart/area-chart/step-area-segment.js +6 -15
- package/dist/es/chart/axis-group-range-tracker.js +14 -20
- package/dist/es/chart/bar-chart/bar-chart.js +65 -80
- package/dist/es/chart/bar-chart/bar-label.js +25 -32
- package/dist/es/chart/bar-chart/bar.js +76 -91
- package/dist/es/chart/box-plot-chart/box-plot-chart.js +33 -48
- package/dist/es/chart/box-plot-chart/box-plot.js +55 -68
- package/dist/es/chart/box-plot-chart/vertical-box-plot.js +13 -23
- package/dist/es/chart/bubble-chart/bubble-chart.js +51 -64
- package/dist/es/chart/bubble-chart/bubble.js +21 -27
- package/dist/es/chart/bullet-chart/bullet-chart.js +45 -57
- package/dist/es/chart/bullet-chart/bullet.js +48 -57
- package/dist/es/chart/bullet-chart/target.js +1 -11
- package/dist/es/chart/candlestick-chart/candlestick-chart.js +41 -55
- package/dist/es/chart/candlestick-chart/candlestick.js +60 -69
- package/dist/es/chart/categorical-chart.js +178 -206
- package/dist/es/chart/chart-container.js +30 -39
- package/dist/es/chart/chart.js +641 -701
- package/dist/es/chart/constants.js +103 -103
- package/dist/es/chart/crosshair/crosshair-tooltip.js +22 -34
- package/dist/es/chart/crosshair/crosshair.js +39 -47
- package/dist/es/chart/donut-chart/donut-chart.js +36 -48
- package/dist/es/chart/donut-chart/donut-segment.js +12 -24
- package/dist/es/chart/error-bars/categorical-error-bar.js +5 -15
- package/dist/es/chart/error-bars/error-bar-base.js +37 -49
- package/dist/es/chart/error-bars/error-range-calculator.js +46 -56
- package/dist/es/chart/error-bars/scatter-error-bar.js +6 -16
- package/dist/es/chart/funnel-chart/funnel-chart.js +86 -103
- package/dist/es/chart/funnel-chart/funnel-segment.js +46 -54
- package/dist/es/chart/funnel-chart/pyramid-chart.js +5 -11
- package/dist/es/chart/heatmap-chart/color-scale.js +7 -9
- package/dist/es/chart/heatmap-chart/heatmap-chart.js +87 -110
- package/dist/es/chart/heatmap-chart/heatmap-point.js +72 -78
- package/dist/es/chart/highlight.js +26 -36
- package/dist/es/chart/layout/cluster-layout.js +16 -25
- package/dist/es/chart/layout/radar-cluster-layout.js +15 -24
- package/dist/es/chart/layout/radar-stack-layout.js +10 -22
- package/dist/es/chart/layout/stack-wrap.js +12 -24
- package/dist/es/chart/layout/utils.js +2 -2
- package/dist/es/chart/legend/legend-item-line-area.js +8 -19
- package/dist/es/chart/legend/legend-item-line.js +21 -31
- package/dist/es/chart/legend/legend-item-marker.js +18 -28
- package/dist/es/chart/legend/legend-item-square.js +8 -18
- package/dist/es/chart/legend/legend-item.js +91 -105
- package/dist/es/chart/legend/legend-layout.js +18 -25
- package/dist/es/chart/legend/legend.js +68 -92
- package/dist/es/chart/line-chart/line-chart.js +35 -48
- package/dist/es/chart/line-chart/line-point.js +90 -103
- package/dist/es/chart/line-chart/line-segment.js +23 -34
- package/dist/es/chart/line-chart/spline-segment.js +10 -20
- package/dist/es/chart/line-chart/step-line-mixin.js +14 -17
- package/dist/es/chart/line-chart/step-line-segment.js +4 -14
- package/dist/es/chart/mixins/accessibility-attributes-mixin.js +7 -7
- package/dist/es/chart/mixins/clip-animation-mixin.js +7 -7
- package/dist/es/chart/mixins/line-chart-mixin.js +27 -31
- package/dist/es/chart/mixins/note-mixin.js +3 -3
- package/dist/es/chart/mixins/pie-chart-mixin.js +9 -9
- package/dist/es/chart/mixins/plotarea-events-mixin.js +1 -1
- package/dist/es/chart/mixins/point-events-mixin.js +1 -1
- package/dist/es/chart/ohlc-chart/ohlc-chart.js +4 -14
- package/dist/es/chart/ohlc-chart/ohlc-point.js +15 -28
- package/dist/es/chart/pan-and-zoom/accept-key.js +3 -3
- package/dist/es/chart/pan-and-zoom/mousewheel-zoom.js +25 -33
- package/dist/es/chart/pan-and-zoom/pannable.js +29 -37
- package/dist/es/chart/pan-and-zoom/to-chart-axis-ranges.js +3 -3
- package/dist/es/chart/pan-and-zoom/zoom-selection.js +61 -70
- package/dist/es/chart/pane.js +71 -79
- package/dist/es/chart/pie-chart/pie-chart.js +153 -183
- package/dist/es/chart/pie-chart/pie-segment.js +82 -98
- package/dist/es/chart/plotarea/categorical-plotarea.js +285 -318
- package/dist/es/chart/plotarea/donut-plotarea.js +12 -22
- package/dist/es/chart/plotarea/funnel-plotarea.js +17 -27
- package/dist/es/chart/plotarea/heatmap-plotarea.js +139 -167
- package/dist/es/chart/plotarea/pie-plotarea.js +15 -25
- package/dist/es/chart/plotarea/plotarea-base.js +423 -462
- package/dist/es/chart/plotarea/plotarea-factory.js +15 -20
- package/dist/es/chart/plotarea/polar-plotarea-base.js +37 -51
- package/dist/es/chart/plotarea/polar-plotarea.js +39 -49
- package/dist/es/chart/plotarea/radar-plotarea.js +55 -65
- package/dist/es/chart/plotarea/xy-plotarea.js +111 -128
- package/dist/es/chart/polar-area-chart/polar-area-chart.js +22 -36
- package/dist/es/chart/polar-area-chart/polar-area-segment.js +7 -17
- package/dist/es/chart/polar-area-chart/spline-polar-area-segment.js +15 -25
- package/dist/es/chart/polar-line-chart/polar-line-chart.js +2 -11
- package/dist/es/chart/polar-scatter-chart/polar-scatter-chart.js +6 -16
- package/dist/es/chart/radar-area-chart/radar-area-chart.js +11 -21
- package/dist/es/chart/radar-area-chart/radar-area-segment.js +3 -13
- package/dist/es/chart/radar-area-chart/spline-radar-area-segment.js +3 -13
- package/dist/es/chart/radar-bar-chart/radar-bar-chart.js +19 -29
- package/dist/es/chart/radar-bar-chart/radar-segment.js +6 -12
- package/dist/es/chart/radar-line-chart/radar-line-chart.js +26 -35
- package/dist/es/chart/range-area-chart/range-area-chart.js +46 -58
- package/dist/es/chart/range-area-chart/range-area-point.js +55 -66
- package/dist/es/chart/range-area-chart/range-area-segment.js +19 -28
- package/dist/es/chart/range-area-chart/range-line-point.js +4 -14
- package/dist/es/chart/range-area-chart/spline-range-area-segment.js +11 -18
- package/dist/es/chart/range-area-chart/step-range-area-segment.js +7 -16
- package/dist/es/chart/range-bar-chart/range-bar-chart.js +18 -29
- package/dist/es/chart/range-bar-chart/range-bar.js +10 -23
- package/dist/es/chart/register-charts.js +20 -16
- package/dist/es/chart/scatter-charts/scatter-chart.js +100 -122
- package/dist/es/chart/scatter-charts/scatter-line-chart.js +15 -25
- package/dist/es/chart/selection.js +176 -201
- package/dist/es/chart/series-binder.js +55 -66
- package/dist/es/chart/theme/base-theme.js +75 -79
- package/dist/es/chart/theme/load-theme.js +52 -52
- package/dist/es/chart/tooltip/base-tooltip.js +17 -24
- package/dist/es/chart/tooltip/shared-tooltip.js +25 -31
- package/dist/es/chart/tooltip/tooltip.js +10 -20
- package/dist/es/chart/trendlines/calculate-moving-average.js +11 -13
- package/dist/es/chart/trendlines/calculate-polynomial.js +24 -26
- package/dist/es/chart/trendlines/calculate-slope.js +12 -14
- package/dist/es/chart/trendlines/check-all-positive.js +2 -5
- package/dist/es/chart/trendlines/exponential-trendline.js +15 -24
- package/dist/es/chart/trendlines/get-scatter-trendline-data.js +6 -7
- package/dist/es/chart/trendlines/get-trendline-data.js +6 -6
- package/dist/es/chart/trendlines/linear-trendline.js +12 -21
- package/dist/es/chart/trendlines/logarithmic-trendline.js +14 -23
- package/dist/es/chart/trendlines/moving-average.js +15 -26
- package/dist/es/chart/trendlines/polynomial-trendline.js +13 -21
- package/dist/es/chart/trendlines/power-trendline.js +15 -24
- package/dist/es/chart/trendlines/scatter-exponential-trendline.js +15 -24
- package/dist/es/chart/trendlines/scatter-linear-trendline.js +10 -16
- package/dist/es/chart/trendlines/scatter-logarithmic-trendline.js +17 -27
- package/dist/es/chart/trendlines/scatter-moving-average.js +7 -10
- package/dist/es/chart/trendlines/scatter-polynomial-trendline.js +11 -16
- package/dist/es/chart/trendlines/scatter-power-trendline.js +15 -22
- package/dist/es/chart/trendlines/scatter-trendline-registry.js +1 -1
- package/dist/es/chart/trendlines/scatter-value-getter.js +2 -5
- package/dist/es/chart/trendlines/trendline-factory.js +1 -1
- package/dist/es/chart/trendlines/trendline-registry.js +1 -1
- package/dist/es/chart/trendlines/x-value-limits.js +6 -8
- package/dist/es/chart/utils/any-has-z-index.js +1 -1
- package/dist/es/chart/utils/bind-segments.js +8 -8
- package/dist/es/chart/utils/categories-count.js +3 -3
- package/dist/es/chart/utils/count-numbers.js +4 -4
- package/dist/es/chart/utils/create-out-of-range-points.js +13 -22
- package/dist/es/chart/utils/eval-options.js +7 -10
- package/dist/es/chart/utils/filter-series-by-type.js +4 -4
- package/dist/es/chart/utils/get-field.js +1 -1
- package/dist/es/chart/utils/has-gradient-overlay.js +1 -1
- package/dist/es/chart/utils/is-date-axis.js +2 -2
- package/dist/es/chart/utils/parse-date-category.js +2 -2
- package/dist/es/chart/utils/segment-visible.js +2 -2
- package/dist/es/chart/waterfall-chart/waterfall-chart.js +41 -55
- package/dist/es/chart/waterfall-chart/waterfall-segment.js +16 -24
- package/dist/es/chart-wizard/get-wizard-data-from-data-rows.js +5 -6
- package/dist/es/chart-wizard/messages.js +1 -1
- package/dist/es/chart-wizard/state.js +145 -137
- package/dist/es/chart-wizard.js +12 -12
- package/dist/es/common/add-class.js +3 -3
- package/dist/es/common/align-path-to-pixel.js +2 -2
- package/dist/es/common/auto-text-color.js +1 -1
- package/dist/es/common/constants.js +53 -53
- package/dist/es/common/create-hash-set.js +59 -65
- package/dist/es/common/cycleDown.js +1 -1
- package/dist/es/common/deep-extend.js +10 -12
- package/dist/es/common/element-scale.js +9 -9
- package/dist/es/common/element-styles.js +8 -8
- package/dist/es/common/event-map.js +4 -4
- package/dist/es/common/event-utils.js +13 -13
- package/dist/es/common/find.js +2 -2
- package/dist/es/common/font-loader.js +42 -44
- package/dist/es/common/get-aria-template.js +2 -4
- package/dist/es/common/get-spacing.js +2 -4
- package/dist/es/common/get-supported-features.js +7 -7
- package/dist/es/common/get-template.js +2 -4
- package/dist/es/common/getter.js +5 -5
- package/dist/es/common/grep.js +3 -3
- package/dist/es/common/has-classes.js +2 -2
- package/dist/es/common/hash-map.js +11 -11
- package/dist/es/common/instance-observer.js +28 -33
- package/dist/es/common/keys.js +1 -1
- package/dist/es/common/map.js +4 -4
- package/dist/es/common/matrix.js +142 -150
- package/dist/es/common/mousewheel-delta.js +2 -2
- package/dist/es/common/observable.js +40 -52
- package/dist/es/common/remove-class.js +1 -1
- package/dist/es/common/render-icon.js +50 -60
- package/dist/es/common/set-default-options.js +1 -1
- package/dist/es/common/sparse-array-limits.js +4 -4
- package/dist/es/common/user-events.js +124 -150
- package/dist/es/core/axis-label.js +38 -43
- package/dist/es/core/axis.js +293 -345
- package/dist/es/core/box-element.js +36 -46
- package/dist/es/core/box.js +75 -83
- package/dist/es/core/category-axis.js +265 -314
- package/dist/es/core/chart-element.js +98 -109
- package/dist/es/core/constants.js +3 -3
- package/dist/es/core/curve-processor.js +86 -93
- package/dist/es/core/date-category-axis.js +381 -413
- package/dist/es/core/date-value-axis.js +108 -118
- package/dist/es/core/float-element.js +54 -78
- package/dist/es/core/gradients.js +3 -3
- package/dist/es/core/logarithmic-axis.js +134 -186
- package/dist/es/core/mixins/grid-lines-mixin.js +18 -20
- package/dist/es/core/mixins/radar-numeric-axis-mixin.js +46 -51
- package/dist/es/core/note.js +58 -73
- package/dist/es/core/numeric-axis.js +111 -133
- package/dist/es/core/pattern.js +4 -8
- package/dist/es/core/point.js +25 -34
- package/dist/es/core/polar-axis.js +73 -91
- package/dist/es/core/radar-category-axis.js +90 -114
- package/dist/es/core/radar-logarithmic-axis.js +10 -20
- package/dist/es/core/radar-numeric-axis.js +10 -20
- package/dist/es/core/ring.js +61 -68
- package/dist/es/core/root-element.js +40 -48
- package/dist/es/core/sector.js +11 -17
- package/dist/es/core/shape-builder.js +13 -23
- package/dist/es/core/shape-element.js +27 -37
- package/dist/es/core/text-box.js +50 -59
- package/dist/es/core/text.js +13 -24
- package/dist/es/core/title.js +19 -25
- package/dist/es/core/utils/auto-axis-max.js +3 -3
- package/dist/es/core/utils/auto-axis-min.js +3 -3
- package/dist/es/core/utils/auto-major-unit.js +4 -4
- package/dist/es/core/utils/box-diff.js +9 -9
- package/dist/es/core/utils/create-axis-grid-line.js +2 -4
- package/dist/es/core/utils/create-axis-tick.js +2 -4
- package/dist/es/core/utils/guid.js +3 -3
- package/dist/es/core/utils/rect-to-box.js +2 -2
- package/dist/es/date-utils/absolute-date-diff.js +2 -2
- package/dist/es/date-utils/add-duration.js +5 -5
- package/dist/es/date-utils/ceil-date.js +1 -1
- package/dist/es/date-utils/constants.js +17 -17
- package/dist/es/date-utils/date-index.js +3 -3
- package/dist/es/date-utils/duration.js +1 -1
- package/dist/es/date-utils/lte-date-index.js +4 -4
- package/dist/es/date-utils/parse-date.js +1 -1
- package/dist/es/date-utils/parse-dates.js +2 -2
- package/dist/es/date-utils/start-of-week.js +3 -5
- package/dist/es/date-utils/to-date.js +1 -1
- package/dist/es/date-utils/to-time.js +2 -2
- package/dist/es/drawing-utils.js +18 -17
- package/dist/es/gauges/arc/arc-gauge.js +29 -38
- package/dist/es/gauges/arc/arc-scale.js +16 -29
- package/dist/es/gauges/arc/range-pointer-animation.js +16 -25
- package/dist/es/gauges/arc/range-pointer.js +25 -46
- package/dist/es/gauges/circular/circular-gauge.js +7 -17
- package/dist/es/gauges/constants.js +14 -14
- package/dist/es/gauges/gauge.js +84 -96
- package/dist/es/gauges/linear/arrow-linear-pointer-animation.js +13 -25
- package/dist/es/gauges/linear/arrow-linear-pointer.js +23 -35
- package/dist/es/gauges/linear/bar-linear-pointer-animation.js +15 -24
- package/dist/es/gauges/linear/bar-linear-pointer.js +38 -51
- package/dist/es/gauges/linear/linear-gauge.js +61 -83
- package/dist/es/gauges/linear/linear-pointer.js +25 -39
- package/dist/es/gauges/linear/linear-scale.js +57 -74
- package/dist/es/gauges/pointer.js +11 -21
- package/dist/es/gauges/radial/radial-gauge.js +58 -81
- package/dist/es/gauges/radial/radial-pointer-animation.js +9 -15
- package/dist/es/gauges/radial/radial-pointer.js +33 -48
- package/dist/es/gauges/radial/radial-scale.js +154 -186
- package/dist/es/gauges/utils/build-label-element.js +10 -12
- package/dist/es/gauges/utils/get-range.js +2 -2
- package/dist/es/gauges/utils/pad.js +3 -3
- package/dist/es/gauges/utils/unpad.js +1 -1
- package/dist/es/map/attribution.js +42 -52
- package/dist/es/map/constants.js +5 -5
- package/dist/es/map/crs.js +68 -112
- package/dist/es/map/datums.js +3 -3
- package/dist/es/map/extent.js +40 -54
- package/dist/es/map/layers/bubble.js +52 -70
- package/dist/es/map/layers/layer.js +50 -56
- package/dist/es/map/layers/marker.js +109 -129
- package/dist/es/map/layers/shape.js +111 -133
- package/dist/es/map/layers/tile.js +144 -170
- package/dist/es/map/location.js +70 -78
- package/dist/es/map/map.js +261 -291
- package/dist/es/map/navigator.js +33 -39
- package/dist/es/map/scroller/draggable.js +98 -134
- package/dist/es/map/scroller/fx.js +39 -46
- package/dist/es/map/scroller/scroller.js +144 -174
- package/dist/es/map/tooltip/tooltip.js +15 -25
- package/dist/es/map/utils.js +25 -26
- package/dist/es/map/zoom.js +30 -36
- package/dist/es/qrcode/encodings/data-modes/alpha-numeric-data-mode.js +14 -26
- package/dist/es/qrcode/encodings/data-modes/byte-data-mode.js +15 -25
- package/dist/es/qrcode/encodings/data-modes/data-mode-instances.js +8 -7
- package/dist/es/qrcode/encodings/data-modes/numeric-data-mode.js +14 -24
- package/dist/es/qrcode/encodings/data-modes/qr-data-mode.js +15 -21
- package/dist/es/qrcode/encodings/encoders/iso-encoder.js +6 -16
- package/dist/es/qrcode/encodings/encoders/utf8-encoder.js +28 -36
- package/dist/es/qrcode/encodings/encoding-result.js +4 -10
- package/dist/es/qrcode/encodings/encoding.js +68 -192
- package/dist/es/qrcode/encodings/free-cell-visitor.js +16 -24
- package/dist/es/qrcode/encodings/utils/choose-mode.js +44 -0
- package/dist/es/qrcode/encodings/utils/get-data-codewords-count.js +13 -0
- package/dist/es/qrcode/encodings/utils/get-data-string.js +13 -0
- package/dist/es/qrcode/encodings/utils/get-modes.js +35 -0
- package/dist/es/qrcode/encodings/utils/get-version.js +23 -0
- package/dist/es/qrcode/encodings/utils/index.js +5 -0
- package/dist/es/qrcode/encodings/version-codewords.js +1 -1
- package/dist/es/qrcode/qrcode-validator.js +3 -5
- package/dist/es/qrcode/qrcode.js +104 -114
- package/dist/es/qrcode/utils.js +4 -4
- package/dist/es/sankey/calculation.js +286 -307
- package/dist/es/sankey/element.js +15 -23
- package/dist/es/sankey/label.js +29 -44
- package/dist/es/sankey/legend.js +15 -29
- package/dist/es/sankey/link.js +80 -98
- package/dist/es/sankey/node.js +26 -37
- package/dist/es/sankey/sankey.js +318 -385
- package/dist/es/sankey/title.js +9 -20
- package/dist/es/sankey/utils.js +18 -23
- package/dist/es/services/chart-service.js +24 -28
- package/dist/es/services/dom-events-builder.js +15 -15
- package/dist/es/services/format-service.js +30 -35
- package/dist/es/services/intl-service.js +14 -18
- package/dist/es/services/map-service.js +11 -11
- package/dist/es/services/template-service.js +9 -9
- package/dist/es/sparkline/shared-tooltip.js +11 -21
- package/dist/es/sparkline/sparkline.js +50 -60
- package/dist/es/stock/constants.js +3 -3
- package/dist/es/stock/fade-out-animation.js +12 -21
- package/dist/es/stock/navigator-hint.js +37 -49
- package/dist/es/stock/navigator.js +130 -161
- package/dist/es/stock/stock-chart.js +58 -67
- package/dist/es2015/chart/legend/legend-item.js +1 -1
- package/dist/es2015/qrcode/encodings/encoders/iso-encoder.js +1 -1
- package/dist/es2015/qrcode/encodings/encoders/utf8-encoder.js +1 -1
- package/dist/es2015/qrcode/encodings/encoding.js +3 -127
- package/dist/es2015/qrcode/encodings/utils/choose-mode.js +44 -0
- package/dist/es2015/qrcode/encodings/utils/get-data-codewords-count.js +13 -0
- package/dist/es2015/qrcode/encodings/utils/get-data-string.js +13 -0
- package/dist/es2015/qrcode/encodings/utils/get-modes.js +35 -0
- package/dist/es2015/qrcode/encodings/utils/get-version.js +23 -0
- package/dist/es2015/qrcode/encodings/utils/index.js +5 -0
- package/dist/npm/main.js +3222 -3589
- package/dist/systemjs/kendo-charts.js +1 -1
- package/package.json +19 -57
|
@@ -6,21 +6,19 @@ import { buildLabelElement, getRange } from '../utils';
|
|
|
6
6
|
|
|
7
7
|
import { DEGREE, DEFAULT_LINE_WIDTH, INSIDE, OUTSIDE } from '../constants';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
const GEO_ARC_ADJUST_ANGLE = 180;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
var Path = drawing.Path;
|
|
13
|
-
var Group = drawing.Group;
|
|
11
|
+
const { Arc, Path, Group } = drawing;
|
|
14
12
|
|
|
15
13
|
function drawTicks(arc, tickAngles, unit, tickOptions) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const ticks = new Group();
|
|
15
|
+
const center = arc.center;
|
|
16
|
+
const radius = arc.getRadiusX();
|
|
19
17
|
|
|
20
18
|
if (tickOptions.visible) {
|
|
21
|
-
for (
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
for (let i = 0; i < tickAngles.length; i++) {
|
|
20
|
+
const tickStart = arc.pointAt(tickAngles[i]);
|
|
21
|
+
const tickEnd = new geo.Point(center.x + radius - tickOptions.size, center.y).rotate(tickAngles[i], center);
|
|
24
22
|
|
|
25
23
|
ticks.append(new Path({
|
|
26
24
|
stroke: {
|
|
@@ -38,38 +36,34 @@ function rangeSegment(from, to, color, opacity) {
|
|
|
38
36
|
return { from: from, to: to, color: color, opacity: opacity };
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
class RadialScale extends NumericAxis {
|
|
40
|
+
constructor(options, service) {
|
|
41
|
+
super(0, 1, options, service);
|
|
44
42
|
}
|
|
45
43
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
RadialScale.prototype.constructor = RadialScale;
|
|
49
|
-
|
|
50
|
-
RadialScale.prototype.initUserOptions = function initUserOptions (options) {
|
|
51
|
-
var scaleOptions = deepExtend({}, this.options, options);
|
|
44
|
+
initUserOptions(options) {
|
|
45
|
+
const scaleOptions = deepExtend({}, this.options, options);
|
|
52
46
|
scaleOptions.majorUnit = scaleOptions.majorUnit || autoMajorUnit(scaleOptions.min, scaleOptions.max);
|
|
53
47
|
scaleOptions.minorUnit = scaleOptions.minorUnit || scaleOptions.majorUnit / 10;
|
|
54
48
|
|
|
55
49
|
return scaleOptions;
|
|
56
|
-
}
|
|
50
|
+
}
|
|
57
51
|
|
|
58
|
-
|
|
59
|
-
}
|
|
52
|
+
initFields() {
|
|
53
|
+
}
|
|
60
54
|
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
render(center, radius) {
|
|
56
|
+
const arc = this.renderArc(center, radius);
|
|
63
57
|
|
|
64
58
|
this.bbox = arc.bbox();
|
|
65
59
|
this.labelElements = this.renderLabels();
|
|
66
60
|
this.ticks = this.renderTicks();
|
|
67
61
|
this.ranges = this.renderRanges();
|
|
68
|
-
}
|
|
62
|
+
}
|
|
69
63
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
64
|
+
reflow(bbox) {
|
|
65
|
+
const center = bbox.center();
|
|
66
|
+
const radius = Math.min(bbox.height(), bbox.width()) / 2;
|
|
73
67
|
|
|
74
68
|
if (defined(this.bbox)) {
|
|
75
69
|
this.bbox = this.arc.bbox();
|
|
@@ -79,17 +73,12 @@ var RadialScale = (function (NumericAxis) {
|
|
|
79
73
|
} else {
|
|
80
74
|
return this.render(center, radius);
|
|
81
75
|
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var reverse = ref.reverse;
|
|
89
|
-
var startAngle = ref.startAngle;
|
|
90
|
-
var endAngle = ref.endAngle;
|
|
91
|
-
var angle = endAngle - startAngle;
|
|
92
|
-
var result;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
slotAngle(value) {
|
|
79
|
+
const { min, max, reverse, startAngle, endAngle } = this.options;
|
|
80
|
+
const angle = endAngle - startAngle;
|
|
81
|
+
let result;
|
|
93
82
|
|
|
94
83
|
if (reverse) {
|
|
95
84
|
result = endAngle - (value - min) / (max - min) * angle;
|
|
@@ -98,19 +87,17 @@ var RadialScale = (function (NumericAxis) {
|
|
|
98
87
|
}
|
|
99
88
|
|
|
100
89
|
return result + GEO_ARC_ADJUST_ANGLE;
|
|
101
|
-
}
|
|
90
|
+
}
|
|
102
91
|
|
|
103
|
-
|
|
104
|
-
|
|
92
|
+
hasRanges() {
|
|
93
|
+
const ranges = this.options.ranges;
|
|
105
94
|
|
|
106
95
|
return ranges && ranges.length;
|
|
107
|
-
}
|
|
96
|
+
}
|
|
108
97
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
var minorTicks = ref.minorTicks;
|
|
113
|
-
var size = 0;
|
|
98
|
+
ticksSize() {
|
|
99
|
+
const { majorTicks, minorTicks } = this.options;
|
|
100
|
+
let size = 0;
|
|
114
101
|
if (majorTicks.visible) {
|
|
115
102
|
size = majorTicks.size;
|
|
116
103
|
}
|
|
@@ -120,40 +107,38 @@ var RadialScale = (function (NumericAxis) {
|
|
|
120
107
|
}
|
|
121
108
|
|
|
122
109
|
return size;
|
|
123
|
-
}
|
|
110
|
+
}
|
|
124
111
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
112
|
+
labelsCount() {
|
|
113
|
+
let count = super.labelsCount();
|
|
114
|
+
const options = this.options;
|
|
115
|
+
const angle = options.endAngle - options.startAngle;
|
|
129
116
|
|
|
130
117
|
if (angle >= 360 && (options.max % options.majorUnit === 0)) {
|
|
131
118
|
count -= 1;
|
|
132
119
|
}
|
|
133
120
|
|
|
134
121
|
return count;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
RadialScale.prototype.renderLabels = function renderLabels () {
|
|
138
|
-
var this$1 = this;
|
|
122
|
+
}
|
|
139
123
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
124
|
+
renderLabels() {
|
|
125
|
+
const options = this.options;
|
|
126
|
+
const arc = this.arc.clone();
|
|
127
|
+
let radius = arc.getRadiusX();
|
|
128
|
+
const tickAngles = this.tickAngles(arc, options.majorUnit);
|
|
129
|
+
const rangeSize = options.rangeSize = options.rangeSize || radius * 0.1;
|
|
130
|
+
const labelsGroup = new Group();
|
|
146
131
|
|
|
147
|
-
|
|
132
|
+
let rangeDistance = radius * 0.05;
|
|
148
133
|
if (defined(options.rangeDistance)) {
|
|
149
134
|
rangeDistance = options.rangeDistance;
|
|
150
135
|
} else {
|
|
151
136
|
options.rangeDistance = rangeDistance;
|
|
152
137
|
}
|
|
153
138
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
139
|
+
const labelsOptions = options.labels;
|
|
140
|
+
const isInside = labelsOptions.position === INSIDE;
|
|
141
|
+
const hasLabelElements = defined(this.labelElements);
|
|
157
142
|
|
|
158
143
|
if (isInside) {
|
|
159
144
|
radius -= this.ticksSize();
|
|
@@ -164,102 +149,95 @@ var RadialScale = (function (NumericAxis) {
|
|
|
164
149
|
arc.setRadiusX(radius).setRadiusY(radius);
|
|
165
150
|
}
|
|
166
151
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
152
|
+
const labels = this.labels;
|
|
153
|
+
const count = labels.length;
|
|
154
|
+
const padding = getSpacing(labelsOptions.padding);
|
|
155
|
+
const paddingWidth = (padding.left + padding.right) / 2;
|
|
156
|
+
const paddingHeight = (padding.top + padding.bottom) / 2;
|
|
172
157
|
|
|
173
|
-
for (
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
158
|
+
for (let i = 0; i < count; i++) {
|
|
159
|
+
const label = labels[i];
|
|
160
|
+
const halfWidth = label.box.width() / 2;
|
|
161
|
+
const halfHeight = label.box.height() / 2;
|
|
162
|
+
const angle = tickAngles[i];
|
|
163
|
+
const labelAngle = (angle - GEO_ARC_ADJUST_ANGLE) * DEGREE;
|
|
179
164
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
165
|
+
const lp = arc.pointAt(angle);
|
|
166
|
+
const cx = lp.x + (Math.cos(labelAngle) * (halfWidth + paddingWidth) * (isInside ? 1 : -1));
|
|
167
|
+
const cy = lp.y + (Math.sin(labelAngle) * (halfHeight + paddingHeight) * (isInside ? 1 : -1));
|
|
183
168
|
|
|
184
169
|
label.reflow(new Box(cx - halfWidth, cy - halfHeight, cx + halfWidth, cy + halfHeight));
|
|
185
|
-
|
|
170
|
+
const labelPos = new geo.Point(label.box.x1, label.box.y1);
|
|
186
171
|
|
|
187
|
-
|
|
172
|
+
let labelElement;
|
|
188
173
|
if (!hasLabelElements) {
|
|
189
174
|
labelElement = buildLabelElement(label, options.labels);
|
|
190
175
|
labelsGroup.append(labelElement);
|
|
191
176
|
} else {
|
|
192
|
-
labelElement = this
|
|
193
|
-
|
|
177
|
+
labelElement = this.labelElements.children[i];
|
|
178
|
+
const prevLabelPos = labelElement.bbox().origin;
|
|
194
179
|
|
|
195
|
-
|
|
180
|
+
const labelTransform = labelElement.transform() || geo.transform();
|
|
196
181
|
labelTransform.translate(labelPos.x - prevLabelPos.x, labelPos.y - prevLabelPos.y);
|
|
197
182
|
labelElement.transform(labelTransform);
|
|
198
183
|
}
|
|
199
184
|
|
|
200
|
-
this
|
|
185
|
+
this.bbox = geo.Rect.union(this.bbox, labelElement.bbox());
|
|
201
186
|
}
|
|
202
187
|
|
|
203
188
|
return labelsGroup;
|
|
204
|
-
}
|
|
189
|
+
}
|
|
205
190
|
|
|
206
|
-
|
|
207
|
-
|
|
191
|
+
repositionRanges() {
|
|
192
|
+
const ranges = this.ranges.children;
|
|
208
193
|
|
|
209
194
|
if (ranges.length > 0) {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
var rangeSize = ref.rangeSize;
|
|
213
|
-
var rangeRadius = this.getRangeRadius();
|
|
195
|
+
const { rangeDistance, rangeSize } = this.options;
|
|
196
|
+
let rangeRadius = this.getRangeRadius();
|
|
214
197
|
|
|
215
198
|
if (this.options.labels.position === INSIDE) {
|
|
216
199
|
rangeRadius += rangeSize + rangeDistance;
|
|
217
200
|
}
|
|
218
201
|
|
|
219
|
-
|
|
202
|
+
const newRadius = rangeRadius + (rangeSize / 2);
|
|
220
203
|
|
|
221
|
-
for (
|
|
204
|
+
for (let i = 0; i < ranges.length; i++) {
|
|
222
205
|
ranges[i]._geometry.setRadiusX(newRadius).setRadiusY(newRadius);
|
|
223
206
|
}
|
|
224
207
|
|
|
225
208
|
this.bbox = geo.Rect.union(this.bbox, this.ranges.bbox());
|
|
226
209
|
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
RadialScale.prototype.renderRanges = function renderRanges () {
|
|
230
|
-
var this$1 = this;
|
|
210
|
+
}
|
|
231
211
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
212
|
+
renderRanges() {
|
|
213
|
+
const segments = this.rangeSegments();
|
|
214
|
+
const segmentsCount = segments.length;
|
|
215
|
+
const result = new Group();
|
|
235
216
|
|
|
236
217
|
if (segmentsCount) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
var reverse = ref.reverse;
|
|
240
|
-
var rangeDistance = ref.rangeDistance;
|
|
241
|
-
var rangeRadius = this.getRangeRadius();
|
|
218
|
+
const { rangeSize, reverse, rangeDistance } = this.options;
|
|
219
|
+
const rangeRadius = this.getRangeRadius();
|
|
242
220
|
|
|
243
221
|
// move the ticks with a range distance and a range size
|
|
244
222
|
this.radius(this.radius() - rangeSize - rangeDistance);
|
|
245
223
|
|
|
246
|
-
for (
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
224
|
+
for (let i = 0; i < segmentsCount; i++) {
|
|
225
|
+
const segment = segments[i];
|
|
226
|
+
const from = this.slotAngle(segment[reverse ? "to" : "from"]);
|
|
227
|
+
const to = this.slotAngle(segment[!reverse ? "to" : "from"]);
|
|
250
228
|
|
|
251
229
|
if (to - from !== 0) {
|
|
252
|
-
result.append(this
|
|
230
|
+
result.append(this.createRange(from, to, rangeRadius, segment));
|
|
253
231
|
}
|
|
254
232
|
}
|
|
255
233
|
}
|
|
256
234
|
|
|
257
235
|
return result;
|
|
258
|
-
}
|
|
236
|
+
}
|
|
259
237
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
238
|
+
createRange(startAngle, endAngle, rangeRadius, options) {
|
|
239
|
+
const rangeSize = this.options.rangeSize;
|
|
240
|
+
const rangeGeom = new geo.Arc(this.arc.center, {
|
|
263
241
|
radiusX: rangeRadius + (rangeSize / 2),
|
|
264
242
|
radiusY: rangeRadius + (rangeSize / 2),
|
|
265
243
|
startAngle: startAngle,
|
|
@@ -274,26 +252,24 @@ var RadialScale = (function (NumericAxis) {
|
|
|
274
252
|
lineCap: options.lineCap
|
|
275
253
|
}
|
|
276
254
|
});
|
|
277
|
-
}
|
|
255
|
+
}
|
|
278
256
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
257
|
+
rangeSegments() {
|
|
258
|
+
const options = this.options;
|
|
259
|
+
const ranges = options.ranges || [];
|
|
260
|
+
const count = ranges.length;
|
|
261
|
+
const segments = [];
|
|
284
262
|
|
|
285
263
|
if (count) {
|
|
286
|
-
|
|
287
|
-
var max = options.max;
|
|
288
|
-
var defaultColor = options.rangePlaceholderColor;
|
|
264
|
+
const { min, max, rangePlaceholderColor: defaultColor } = options;
|
|
289
265
|
segments.push(rangeSegment(min, max, defaultColor));
|
|
290
266
|
|
|
291
|
-
for (
|
|
292
|
-
|
|
293
|
-
|
|
267
|
+
for (let i = 0; i < count; i++) {
|
|
268
|
+
const range = getRange(ranges[i], min, max);
|
|
269
|
+
const segmentsCount = segments.length;
|
|
294
270
|
|
|
295
|
-
for (
|
|
296
|
-
|
|
271
|
+
for (let j = 0; j < segmentsCount; j++) {
|
|
272
|
+
const segment = segments[j];
|
|
297
273
|
|
|
298
274
|
if (segment.from <= range.from && range.from <= segment.to) {
|
|
299
275
|
segments.push(rangeSegment(range.from, range.to, range.color, range.opacity));
|
|
@@ -311,16 +287,12 @@ var RadialScale = (function (NumericAxis) {
|
|
|
311
287
|
}
|
|
312
288
|
|
|
313
289
|
return segments;
|
|
314
|
-
}
|
|
290
|
+
}
|
|
315
291
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
var rangeSize = options.rangeSize;
|
|
321
|
-
var rangeDistance = options.rangeDistance;
|
|
322
|
-
var majorTickSize = options.majorTicks.size;
|
|
323
|
-
var radius;
|
|
292
|
+
getRangeRadius() {
|
|
293
|
+
const { arc, options } = this;
|
|
294
|
+
const { rangeSize, rangeDistance, majorTicks: { size: majorTickSize } } = options;
|
|
295
|
+
let radius;
|
|
324
296
|
|
|
325
297
|
if (options.labels.position === OUTSIDE) {
|
|
326
298
|
radius = arc.getRadiusX() - majorTickSize - rangeDistance - rangeSize;
|
|
@@ -329,12 +301,12 @@ var RadialScale = (function (NumericAxis) {
|
|
|
329
301
|
}
|
|
330
302
|
|
|
331
303
|
return radius;
|
|
332
|
-
}
|
|
304
|
+
}
|
|
333
305
|
|
|
334
|
-
|
|
335
|
-
|
|
306
|
+
renderArc(center, radius) {
|
|
307
|
+
const options = this.options;
|
|
336
308
|
|
|
337
|
-
|
|
309
|
+
const arc = this.arc = new geo.Arc(center, {
|
|
338
310
|
radiusX: radius,
|
|
339
311
|
radiusY: radius,
|
|
340
312
|
startAngle: options.startAngle + GEO_ARC_ADJUST_ANGLE,
|
|
@@ -342,27 +314,25 @@ var RadialScale = (function (NumericAxis) {
|
|
|
342
314
|
});
|
|
343
315
|
|
|
344
316
|
return arc;
|
|
345
|
-
}
|
|
317
|
+
}
|
|
346
318
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
var options = ref.options;
|
|
351
|
-
var tickArc = arc.clone();
|
|
319
|
+
renderTicks() {
|
|
320
|
+
const { arc, options } = this;
|
|
321
|
+
const tickArc = arc.clone();
|
|
352
322
|
|
|
353
323
|
this.majorTickAngles = this.tickAngles(arc, options.majorUnit);
|
|
354
324
|
this.majorTicks = drawTicks(tickArc, this.majorTickAngles, options.majorUnit, options.majorTicks);
|
|
355
325
|
|
|
356
|
-
|
|
326
|
+
const allTicks = new Group();
|
|
357
327
|
allTicks.append(this.majorTicks);
|
|
358
328
|
|
|
359
|
-
|
|
360
|
-
|
|
329
|
+
const majorTickSize = options.majorTicks.size;
|
|
330
|
+
const minorTickSize = options.minorTicks.size;
|
|
361
331
|
|
|
362
332
|
this._tickDifference = majorTickSize - minorTickSize;
|
|
363
333
|
|
|
364
334
|
if (options.labels.position === OUTSIDE) {
|
|
365
|
-
|
|
335
|
+
const radius = tickArc.getRadiusX();
|
|
366
336
|
tickArc.setRadiusX(radius - majorTickSize + minorTickSize)
|
|
367
337
|
.setRadiusY(radius - majorTickSize + minorTickSize);
|
|
368
338
|
}
|
|
@@ -372,29 +342,29 @@ var RadialScale = (function (NumericAxis) {
|
|
|
372
342
|
allTicks.append(this.minorTicks);
|
|
373
343
|
|
|
374
344
|
return allTicks;
|
|
375
|
-
}
|
|
345
|
+
}
|
|
376
346
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
347
|
+
normalizeTickAngles(angles) {
|
|
348
|
+
const options = this.options;
|
|
349
|
+
const skip = options.majorUnit / options.minorUnit;
|
|
380
350
|
|
|
381
|
-
for (
|
|
351
|
+
for (let i = angles.length - 1; i >= 0; i--) {
|
|
382
352
|
if (i % skip === 0) {
|
|
383
353
|
angles.splice(i, 1);
|
|
384
354
|
}
|
|
385
355
|
}
|
|
386
356
|
|
|
387
357
|
return angles;
|
|
388
|
-
}
|
|
358
|
+
}
|
|
389
359
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
360
|
+
tickAngles(ring, stepValue) {
|
|
361
|
+
const options = this.options;
|
|
362
|
+
const reverse = options.reverse;
|
|
363
|
+
const range = options.max - options.min;
|
|
364
|
+
const angle = ring.endAngle - ring.startAngle;
|
|
365
|
+
let tickCount = range / stepValue;
|
|
366
|
+
let pos = ring.startAngle;
|
|
367
|
+
let step = angle / tickCount;
|
|
398
368
|
|
|
399
369
|
if (reverse) {
|
|
400
370
|
pos += angle;
|
|
@@ -405,8 +375,8 @@ var RadialScale = (function (NumericAxis) {
|
|
|
405
375
|
tickCount -= 1;
|
|
406
376
|
}
|
|
407
377
|
|
|
408
|
-
|
|
409
|
-
for (
|
|
378
|
+
const positions = [];
|
|
379
|
+
for (let i = 0; i < tickCount; i++) {
|
|
410
380
|
positions.push(round(pos, COORD_PRECISION));
|
|
411
381
|
pos += step;
|
|
412
382
|
}
|
|
@@ -416,9 +386,9 @@ var RadialScale = (function (NumericAxis) {
|
|
|
416
386
|
}
|
|
417
387
|
|
|
418
388
|
return positions;
|
|
419
|
-
}
|
|
389
|
+
}
|
|
420
390
|
|
|
421
|
-
|
|
391
|
+
radius(value) {
|
|
422
392
|
if (value) {
|
|
423
393
|
this.arc.setRadiusX(value).setRadiusY(value);
|
|
424
394
|
this.repositionTicks(this.majorTicks.children, this.majorTickAngles);
|
|
@@ -426,30 +396,28 @@ var RadialScale = (function (NumericAxis) {
|
|
|
426
396
|
} else {
|
|
427
397
|
return this.arc.getRadiusX();
|
|
428
398
|
}
|
|
429
|
-
}
|
|
399
|
+
}
|
|
430
400
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
401
|
+
repositionTicks(ticks, tickAngles, minor) {
|
|
402
|
+
const diff = minor ? (this._tickDifference || 0) : 0;
|
|
403
|
+
let tickArc = this.arc;
|
|
404
|
+
const radius = tickArc.getRadiusX();
|
|
435
405
|
|
|
436
406
|
if (minor && this.options.labels.position === OUTSIDE && diff !== 0) {
|
|
437
407
|
tickArc = this.arc.clone();
|
|
438
408
|
tickArc.setRadiusX(radius - diff).setRadiusY(radius - diff);
|
|
439
409
|
}
|
|
440
410
|
|
|
441
|
-
for (
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
411
|
+
for (let i = 0; i < ticks.length; i++) {
|
|
412
|
+
const newPoint = tickArc.pointAt(tickAngles[i]);
|
|
413
|
+
const segments = ticks[i].segments;
|
|
414
|
+
const xDiff = newPoint.x - segments[0].anchor().x;
|
|
415
|
+
const yDiff = newPoint.y - segments[0].anchor().y;
|
|
446
416
|
|
|
447
417
|
ticks[i].transform(new geo.transform().translate(xDiff, yDiff));
|
|
448
418
|
}
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
return RadialScale;
|
|
452
|
-
}(NumericAxis));
|
|
419
|
+
}
|
|
420
|
+
}
|
|
453
421
|
|
|
454
422
|
setDefaultOptions(RadialScale, {
|
|
455
423
|
min: 0,
|
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
import { geometry as geo, drawing } from '@progress/kendo-drawing';
|
|
2
2
|
import pad from './pad';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
var Path = drawing.Path;
|
|
6
|
-
var Text = drawing.Text;
|
|
4
|
+
const { Group, Path, Text } = drawing;
|
|
7
5
|
|
|
8
6
|
export default function buildLabelElement(label, options) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
const labelBox = label.box;
|
|
8
|
+
const textBox = label.children[0].box;
|
|
9
|
+
const border = options.border || {};
|
|
10
|
+
const background = options.background || "";
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
const wrapper = Path.fromRect(new geo.Rect([ labelBox.x1, labelBox.y1 ], [ labelBox.width(), labelBox.height() ]), {
|
|
15
13
|
stroke: {}
|
|
16
14
|
});
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
const text = new Text(label.text, new geo.Point(textBox.x1, textBox.y1), {
|
|
19
17
|
font: options.font,
|
|
20
18
|
fill: { color: options.color }
|
|
21
19
|
});
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
const styleGeometry = pad(text.bbox().clone(), options.padding);
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
const styleBox = Path.fromRect(styleGeometry, {
|
|
26
24
|
stroke: {
|
|
27
25
|
color: border.width ? border.color : "",
|
|
28
26
|
width: border.width,
|
|
@@ -36,7 +34,7 @@ export default function buildLabelElement(label, options) {
|
|
|
36
34
|
}
|
|
37
35
|
});
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
const elements = new Group();
|
|
40
38
|
elements.append(wrapper);
|
|
41
39
|
elements.append(styleBox);
|
|
42
40
|
elements.append(text);
|
|
@@ -2,8 +2,8 @@ import { defined } from '../../common';
|
|
|
2
2
|
import { MIN_VALUE, MAX_VALUE } from '../../common/constants';
|
|
3
3
|
|
|
4
4
|
export default function getRange(range, min, max) {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const from = defined(range.from) ? range.from : MIN_VALUE;
|
|
6
|
+
const to = defined(range.to) ? range.to : MAX_VALUE;
|
|
7
7
|
|
|
8
8
|
range.from = Math.max(Math.min(to, from), min);
|
|
9
9
|
range.to = Math.min(Math.max(to, from), max);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getSpacing } from '../../common';
|
|
2
2
|
|
|
3
3
|
export default function pad(bbox, value) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const origin = bbox.getOrigin();
|
|
5
|
+
const size = bbox.getSize();
|
|
6
|
+
const spacing = getSpacing(value);
|
|
7
7
|
|
|
8
8
|
bbox.setOrigin([ origin.x - spacing.left, origin.y - spacing.top ]);
|
|
9
9
|
bbox.setSize([ size.width + (spacing.left + spacing.right), size.height + (spacing.top + spacing.bottom) ]);
|
|
@@ -2,7 +2,7 @@ import { getSpacing } from '../../common';
|
|
|
2
2
|
import pad from './pad';
|
|
3
3
|
|
|
4
4
|
export default function unpad(bbox, value) {
|
|
5
|
-
|
|
5
|
+
const spacing = getSpacing(value);
|
|
6
6
|
|
|
7
7
|
spacing.left = -spacing.left; spacing.top = -spacing.top;
|
|
8
8
|
spacing.right = -spacing.right; spacing.bottom = -spacing.bottom;
|