@amcharts/amcharts5 5.0.0-beta.32 → 5.0.0-beta.36
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/.internal/charts/flow/Chord.d.ts.map +1 -1
- package/.internal/charts/flow/Chord.js +7 -0
- package/.internal/charts/flow/Chord.js.map +1 -1
- package/.internal/charts/flow/Flow.d.ts.map +1 -1
- package/.internal/charts/flow/Flow.js +2 -0
- package/.internal/charts/flow/Flow.js.map +1 -1
- package/.internal/charts/flow/FlowDefaultTheme.d.ts +8 -0
- package/.internal/charts/flow/FlowDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/flow/FlowDefaultTheme.js +214 -0
- package/.internal/charts/flow/FlowDefaultTheme.js.map +1 -0
- package/.internal/charts/hierarchy/BreadcrumbBar.d.ts.map +1 -1
- package/.internal/charts/hierarchy/BreadcrumbBar.js +2 -0
- package/.internal/charts/hierarchy/BreadcrumbBar.js.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.d.ts.map +1 -1
- package/.internal/charts/hierarchy/Hierarchy.js +2 -0
- package/.internal/charts/hierarchy/Hierarchy.js.map +1 -1
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts +8 -0
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js +367 -0
- package/.internal/charts/hierarchy/HierarchyDefaultTheme.js.map +1 -0
- package/.internal/charts/map/MapChart.d.ts.map +1 -1
- package/.internal/charts/map/MapChart.js +10 -8
- package/.internal/charts/map/MapChart.js.map +1 -1
- package/.internal/charts/map/MapChartDefaultTheme.d.ts +8 -0
- package/.internal/charts/map/MapChartDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/map/MapChartDefaultTheme.js +104 -0
- package/.internal/charts/map/MapChartDefaultTheme.js.map +1 -0
- package/.internal/charts/percent/PercentChart.d.ts +8 -1
- package/.internal/charts/percent/PercentChart.d.ts.map +1 -1
- package/.internal/charts/percent/PercentChart.js +9 -0
- package/.internal/charts/percent/PercentChart.js.map +1 -1
- package/.internal/charts/percent/PercentDefaultTheme.d.ts +8 -0
- package/.internal/charts/percent/PercentDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/percent/PercentDefaultTheme.js +214 -0
- package/.internal/charts/percent/PercentDefaultTheme.js.map +1 -0
- package/.internal/charts/percent/PercentSeries.d.ts +1 -1
- package/.internal/charts/percent/PercentSeries.d.ts.map +1 -1
- package/.internal/charts/percent/PercentSeries.js +1 -1
- package/.internal/charts/percent/PercentSeries.js.map +1 -1
- package/.internal/charts/pie/PieSeries.d.ts +0 -3
- package/.internal/charts/pie/PieSeries.d.ts.map +1 -1
- package/.internal/charts/pie/PieSeries.js +2 -2
- package/.internal/charts/pie/PieSeries.js.map +1 -1
- package/.internal/charts/radar/ClockHand.js +1 -1
- package/.internal/charts/radar/ClockHand.js.map +1 -1
- package/.internal/charts/radar/RadarChart.d.ts.map +1 -1
- package/.internal/charts/radar/RadarChart.js +2 -0
- package/.internal/charts/radar/RadarChart.js.map +1 -1
- package/.internal/charts/radar/RadarDefaultTheme.d.ts +8 -0
- package/.internal/charts/radar/RadarDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/radar/RadarDefaultTheme.js +102 -0
- package/.internal/charts/radar/RadarDefaultTheme.js.map +1 -0
- package/.internal/charts/venn/Venn.d.ts +147 -0
- package/.internal/charts/venn/Venn.d.ts.map +1 -0
- package/.internal/charts/venn/Venn.js +477 -0
- package/.internal/charts/venn/Venn.js.map +1 -0
- package/.internal/charts/venn/VennDefaultTheme.d.ts +8 -0
- package/.internal/charts/venn/VennDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/venn/VennDefaultTheme.js +37 -0
- package/.internal/charts/venn/VennDefaultTheme.js.map +1 -0
- package/.internal/charts/venn/vennjs/circleintersection.js +223 -0
- package/.internal/charts/venn/vennjs/diagram.js +604 -0
- package/.internal/charts/venn/vennjs/fmin/bisect.js +32 -0
- package/.internal/charts/venn/vennjs/fmin/blas1.js +28 -0
- package/.internal/charts/venn/vennjs/fmin/conjugateGradient.js +64 -0
- package/.internal/charts/venn/vennjs/fmin/gradientDescent.js +73 -0
- package/.internal/charts/venn/vennjs/fmin/index.js +5 -0
- package/.internal/charts/venn/vennjs/fmin/linesearch.js +72 -0
- package/.internal/charts/venn/vennjs/fmin/nelderMead.js +144 -0
- package/.internal/charts/venn/vennjs/index.d.ts +5 -0
- package/.internal/charts/venn/vennjs/index.js +6 -0
- package/.internal/charts/venn/vennjs/layout.js +677 -0
- package/.internal/charts/wordcloud/WordCloud.d.ts +184 -0
- package/.internal/charts/wordcloud/WordCloud.d.ts.map +1 -0
- package/.internal/charts/wordcloud/WordCloud.js +564 -0
- package/.internal/charts/wordcloud/WordCloud.js.map +1 -0
- package/.internal/charts/wordcloud/WordCloudDefaultTheme.d.ts +8 -0
- package/.internal/charts/wordcloud/WordCloudDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/wordcloud/WordCloudDefaultTheme.js +58 -0
- package/.internal/charts/wordcloud/WordCloudDefaultTheme.js.map +1 -0
- package/.internal/charts/xy/XYChart.d.ts +4 -4
- package/.internal/charts/xy/XYChart.d.ts.map +1 -1
- package/.internal/charts/xy/XYChart.js +4 -2
- package/.internal/charts/xy/XYChart.js.map +1 -1
- package/.internal/charts/xy/XYChartDefaultTheme.d.ts +8 -0
- package/.internal/charts/xy/XYChartDefaultTheme.d.ts.map +1 -0
- package/.internal/charts/xy/XYChartDefaultTheme.js +605 -0
- package/.internal/charts/xy/XYChartDefaultTheme.js.map +1 -0
- package/.internal/charts/xy/axes/Axis.d.ts +1 -1
- package/.internal/charts/xy/axes/Axis.js.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/CategoryAxis.js +2 -6
- package/.internal/charts/xy/axes/CategoryAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +6 -4
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/charts/xy/axes/DurationAxis.d.ts +51 -0
- package/.internal/charts/xy/axes/DurationAxis.d.ts.map +1 -0
- package/.internal/charts/xy/axes/DurationAxis.js +162 -0
- package/.internal/charts/xy/axes/DurationAxis.js.map +1 -0
- package/.internal/charts/xy/axes/ValueAxis.d.ts +1 -0
- package/.internal/charts/xy/axes/ValueAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/ValueAxis.js +18 -8
- package/.internal/charts/xy/axes/ValueAxis.js.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.d.ts +3 -1
- package/.internal/charts/xy/series/BaseColumnSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/BaseColumnSeries.js +47 -9
- package/.internal/charts/xy/series/BaseColumnSeries.js.map +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts +1 -1
- package/.internal/charts/xy/series/XYSeries.d.ts.map +1 -1
- package/.internal/charts/xy/series/XYSeries.js +15 -2
- package/.internal/charts/xy/series/XYSeries.js.map +1 -1
- package/.internal/core/Classes.d.ts +6 -0
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/Root.d.ts +13 -11
- package/.internal/core/Root.d.ts.map +1 -1
- package/.internal/core/Root.js +27 -17
- package/.internal/core/Root.js.map +1 -1
- package/.internal/core/render/Bullet.d.ts +1 -0
- package/.internal/core/render/Bullet.d.ts.map +1 -1
- package/.internal/core/render/Bullet.js.map +1 -1
- package/.internal/core/render/Container.js +1 -1
- package/.internal/core/render/Container.js.map +1 -1
- package/.internal/core/render/Graphics.js +1 -1
- package/.internal/core/render/Graphics.js.map +1 -1
- package/.internal/core/render/Legend.js +3 -3
- package/.internal/core/render/Legend.js.map +1 -1
- package/.internal/core/render/Rectangle.js +1 -1
- package/.internal/core/render/Rectangle.js.map +1 -1
- package/.internal/core/render/RoundedRectangle.js.map +1 -1
- package/.internal/core/render/Scrollbar.d.ts.map +1 -1
- package/.internal/core/render/Scrollbar.js +3 -3
- package/.internal/core/render/Scrollbar.js.map +1 -1
- package/.internal/core/render/Series.d.ts +1 -0
- package/.internal/core/render/Series.d.ts.map +1 -1
- package/.internal/core/render/Series.js +18 -0
- package/.internal/core/render/Series.js.map +1 -1
- package/.internal/core/render/Sprite.d.ts +17 -0
- package/.internal/core/render/Sprite.d.ts.map +1 -1
- package/.internal/core/render/Sprite.js +16 -0
- package/.internal/core/render/Sprite.js.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.d.ts +1 -0
- package/.internal/core/render/backend/CanvasRenderer.d.ts.map +1 -1
- package/.internal/core/render/backend/CanvasRenderer.js +54 -2
- package/.internal/core/render/backend/CanvasRenderer.js.map +1 -1
- package/.internal/core/render/backend/Renderer.d.ts +1 -0
- package/.internal/core/render/backend/Renderer.d.ts.map +1 -1
- package/.internal/core/render/backend/Renderer.js.map +1 -1
- package/.internal/core/util/DataProcessor.d.ts +0 -1
- package/.internal/core/util/DataProcessor.d.ts.map +1 -1
- package/.internal/core/util/DataProcessor.js +6 -13
- package/.internal/core/util/DataProcessor.js.map +1 -1
- package/.internal/core/util/DateFormatter.d.ts +1 -1
- package/.internal/core/util/DateFormatter.js +18 -18
- package/.internal/core/util/DateFormatter.js.map +1 -1
- package/.internal/core/util/DurationFormatter.d.ts +134 -0
- package/.internal/core/util/DurationFormatter.d.ts.map +1 -0
- package/.internal/core/util/DurationFormatter.js +521 -0
- package/.internal/core/util/DurationFormatter.js.map +1 -0
- package/.internal/core/util/Entity.d.ts +3 -0
- package/.internal/core/util/Entity.d.ts.map +1 -1
- package/.internal/core/util/Entity.js +26 -1
- package/.internal/core/util/Entity.js.map +1 -1
- package/.internal/core/util/Math.d.ts +9 -0
- package/.internal/core/util/Math.d.ts.map +1 -1
- package/.internal/core/util/Math.js +15 -0
- package/.internal/core/util/Math.js.map +1 -1
- package/.internal/core/util/NumberFormatter.d.ts.map +1 -1
- package/.internal/core/util/NumberFormatter.js +33 -28
- package/.internal/core/util/NumberFormatter.js.map +1 -1
- package/.internal/core/util/PopulateString.js +18 -1
- package/.internal/core/util/PopulateString.js.map +1 -1
- package/.internal/core/util/Utils.d.ts +1 -1
- package/.internal/core/util/Utils.d.ts.map +1 -1
- package/.internal/core/util/Utils.js +6 -3
- package/.internal/core/util/Utils.js.map +1 -1
- package/.internal/plugins/exporting/Annotator.d.ts +67 -0
- package/.internal/plugins/exporting/Annotator.d.ts.map +1 -0
- package/.internal/plugins/exporting/Annotator.js +301 -0
- package/.internal/plugins/exporting/Annotator.js.map +1 -0
- package/.internal/plugins/exporting/Exporting.js +2 -2
- package/.internal/plugins/exporting/Exporting.js.map +1 -1
- package/.internal/plugins/exporting/ExportingMenu.js +22 -22
- package/.internal/plugins/exporting/ExportingMenu.js.map +1 -1
- package/.internal/themes/AnimatedTheme.d.ts.map +1 -1
- package/.internal/themes/AnimatedTheme.js +1 -0
- package/.internal/themes/AnimatedTheme.js.map +1 -1
- package/.internal/themes/DefaultTheme.d.ts +10 -0
- package/.internal/themes/DefaultTheme.d.ts.map +1 -1
- package/.internal/themes/DefaultTheme.js +11 -1443
- package/.internal/themes/DefaultTheme.js.map +1 -1
- package/CHANGELOG.md +46 -0
- package/LICENSE-3RD-PARTY.md +1 -0
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/index.js +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/index.js +8 -4
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/venn-diagram/README.md +6 -0
- package/examples/javascript/venn-diagram/index.css +11 -0
- package/examples/javascript/venn-diagram/index.html +12 -0
- package/examples/javascript/venn-diagram/index.js +59 -0
- package/examples/javascript/venn-diagram/package.json +16 -0
- package/examples/javascript/venn-diagram/webpack.config.js +38 -0
- package/examples/javascript/wordcloud-with-data/README.md +6 -0
- package/examples/javascript/wordcloud-with-data/index.css +11 -0
- package/examples/javascript/wordcloud-with-data/index.html +12 -0
- package/examples/javascript/wordcloud-with-data/index.js +115 -0
- package/examples/javascript/wordcloud-with-data/package.json +16 -0
- package/examples/javascript/wordcloud-with-data/webpack.config.js +38 -0
- package/examples/javascript/wordcloud-with-text/README.md +6 -0
- package/examples/javascript/wordcloud-with-text/index.css +11 -0
- package/examples/javascript/wordcloud-with-text/index.html +12 -0
- package/examples/javascript/wordcloud-with-text/index.js +35 -0
- package/examples/javascript/wordcloud-with-text/package.json +16 -0
- package/examples/javascript/wordcloud-with-text/webpack.config.js +38 -0
- package/examples/javascript/xy-100-percent-stacked-column/index.js +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/index.js +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/index.js +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/index.ts +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/index.ts +8 -4
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/venn-diagram/README.md +6 -0
- package/examples/typescript/venn-diagram/index.css +11 -0
- package/examples/typescript/venn-diagram/index.html +12 -0
- package/examples/typescript/venn-diagram/index.ts +59 -0
- package/examples/typescript/venn-diagram/package.json +18 -0
- package/examples/typescript/venn-diagram/tsconfig.json +12 -0
- package/examples/typescript/venn-diagram/webpack.config.js +45 -0
- package/examples/typescript/wordcloud-with-data/README.md +6 -0
- package/examples/typescript/wordcloud-with-data/index.css +11 -0
- package/examples/typescript/wordcloud-with-data/index.html +12 -0
- package/examples/typescript/wordcloud-with-data/index.ts +115 -0
- package/examples/typescript/wordcloud-with-data/package.json +18 -0
- package/examples/typescript/wordcloud-with-data/tsconfig.json +12 -0
- package/examples/typescript/wordcloud-with-data/webpack.config.js +45 -0
- package/examples/typescript/wordcloud-with-text/README.md +6 -0
- package/examples/typescript/wordcloud-with-text/index.css +11 -0
- package/examples/typescript/wordcloud-with-text/index.html +12 -0
- package/examples/typescript/wordcloud-with-text/index.ts +35 -0
- package/examples/typescript/wordcloud-with-text/package.json +18 -0
- package/examples/typescript/wordcloud-with-text/tsconfig.json +12 -0
- package/examples/typescript/wordcloud-with-text/webpack.config.js +45 -0
- package/examples/typescript/xy-100-percent-stacked-column/index.ts +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/index.ts +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/index.ts +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +6 -1
- package/plugins/exporting.d.ts +1 -0
- package/plugins/exporting.d.ts.map +1 -1
- package/plugins/exporting.js +1 -0
- package/plugins/exporting.js.map +1 -1
- package/venn.d.ts +2 -0
- package/venn.d.ts.map +1 -0
- package/venn.js +2 -0
- package/venn.js.map +1 -0
- package/wc.d.ts +2 -0
- package/wc.d.ts.map +1 -0
- package/wc.js +2 -0
- package/wc.js.map +1 -0
- package/xy.d.ts +1 -0
- package/xy.d.ts.map +1 -1
- package/xy.js +1 -0
- package/xy.js.map +1 -1
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
var SMALL = 1e-10;
|
|
2
|
+
|
|
3
|
+
/** Returns the intersection area of a bunch of circles (where each circle
|
|
4
|
+
is an object having an x,y and radius property) */
|
|
5
|
+
export function intersectionArea(circles, stats) {
|
|
6
|
+
// get all the intersection points of the circles
|
|
7
|
+
var intersectionPoints = getIntersectionPoints(circles);
|
|
8
|
+
|
|
9
|
+
// filter out points that aren't included in all the circles
|
|
10
|
+
var innerPoints = intersectionPoints.filter(function (p) {
|
|
11
|
+
return containedInCircles(p, circles);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
var arcArea = 0, polygonArea = 0, arcs = [], i;
|
|
15
|
+
|
|
16
|
+
// if we have intersection points that are within all the circles,
|
|
17
|
+
// then figure out the area contained by them
|
|
18
|
+
if (innerPoints.length > 1) {
|
|
19
|
+
// sort the points by angle from the center of the polygon, which lets
|
|
20
|
+
// us just iterate over points to get the edges
|
|
21
|
+
var center = getCenter(innerPoints);
|
|
22
|
+
for (i = 0; i < innerPoints.length; ++i ) {
|
|
23
|
+
var p = innerPoints[i];
|
|
24
|
+
p.angle = Math.atan2(p.x - center.x, p.y - center.y);
|
|
25
|
+
}
|
|
26
|
+
innerPoints.sort(function(a,b) { return b.angle - a.angle;});
|
|
27
|
+
|
|
28
|
+
// iterate over all points, get arc between the points
|
|
29
|
+
// and update the areas
|
|
30
|
+
var p2 = innerPoints[innerPoints.length - 1];
|
|
31
|
+
for (i = 0; i < innerPoints.length; ++i) {
|
|
32
|
+
var p1 = innerPoints[i];
|
|
33
|
+
|
|
34
|
+
// polygon area updates easily ...
|
|
35
|
+
polygonArea += (p2.x + p1.x) * (p1.y - p2.y);
|
|
36
|
+
|
|
37
|
+
// updating the arc area is a little more involved
|
|
38
|
+
var midPoint = {x : (p1.x + p2.x) / 2,
|
|
39
|
+
y : (p1.y + p2.y) / 2},
|
|
40
|
+
arc = null;
|
|
41
|
+
|
|
42
|
+
for (var j = 0; j < p1.parentIndex.length; ++j) {
|
|
43
|
+
if (p2.parentIndex.indexOf(p1.parentIndex[j]) > -1) {
|
|
44
|
+
// figure out the angle halfway between the two points
|
|
45
|
+
// on the current circle
|
|
46
|
+
var circle = circles[p1.parentIndex[j]],
|
|
47
|
+
a1 = Math.atan2(p1.x - circle.x, p1.y - circle.y),
|
|
48
|
+
a2 = Math.atan2(p2.x - circle.x, p2.y - circle.y);
|
|
49
|
+
|
|
50
|
+
var angleDiff = (a2 - a1);
|
|
51
|
+
if (angleDiff < 0) {
|
|
52
|
+
angleDiff += 2*Math.PI;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// and use that angle to figure out the width of the
|
|
56
|
+
// arc
|
|
57
|
+
var a = a2 - angleDiff/2,
|
|
58
|
+
width = distance(midPoint, {
|
|
59
|
+
x : circle.x + circle.radius * Math.sin(a),
|
|
60
|
+
y : circle.y + circle.radius * Math.cos(a)
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// clamp the width to the largest is can actually be
|
|
64
|
+
// (sometimes slightly overflows because of FP errors)
|
|
65
|
+
if (width > circle.radius * 2) {
|
|
66
|
+
width = circle.radius * 2;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// pick the circle whose arc has the smallest width
|
|
70
|
+
if ((arc === null) || (arc.width > width)) {
|
|
71
|
+
arc = { circle : circle,
|
|
72
|
+
width : width,
|
|
73
|
+
p1 : p1,
|
|
74
|
+
p2 : p2};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (arc !== null) {
|
|
80
|
+
arcs.push(arc);
|
|
81
|
+
arcArea += circleArea(arc.circle.radius, arc.width);
|
|
82
|
+
p2 = p1;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
} else {
|
|
86
|
+
// no intersection points, is either disjoint - or is completely
|
|
87
|
+
// overlapped. figure out which by examining the smallest circle
|
|
88
|
+
var smallest = circles[0];
|
|
89
|
+
for (i = 1; i < circles.length; ++i) {
|
|
90
|
+
if (circles[i].radius < smallest.radius) {
|
|
91
|
+
smallest = circles[i];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// make sure the smallest circle is completely contained in all
|
|
96
|
+
// the other circles
|
|
97
|
+
var disjoint = false;
|
|
98
|
+
for (i = 0; i < circles.length; ++i) {
|
|
99
|
+
if (distance(circles[i], smallest) > Math.abs(smallest.radius - circles[i].radius)) {
|
|
100
|
+
disjoint = true;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (disjoint) {
|
|
106
|
+
arcArea = polygonArea = 0;
|
|
107
|
+
|
|
108
|
+
} else {
|
|
109
|
+
arcArea = smallest.radius * smallest.radius * Math.PI;
|
|
110
|
+
arcs.push({circle : smallest,
|
|
111
|
+
p1: { x: smallest.x, y : smallest.y + smallest.radius},
|
|
112
|
+
p2: { x: smallest.x - SMALL, y : smallest.y + smallest.radius},
|
|
113
|
+
width : smallest.radius * 2 });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
polygonArea /= 2;
|
|
118
|
+
if (stats) {
|
|
119
|
+
stats.area = arcArea + polygonArea;
|
|
120
|
+
stats.arcArea = arcArea;
|
|
121
|
+
stats.polygonArea = polygonArea;
|
|
122
|
+
stats.arcs = arcs;
|
|
123
|
+
stats.innerPoints = innerPoints;
|
|
124
|
+
stats.intersectionPoints = intersectionPoints;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return arcArea + polygonArea;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** returns whether a point is contained by all of a list of circles */
|
|
131
|
+
export function containedInCircles(point, circles) {
|
|
132
|
+
for (var i = 0; i < circles.length; ++i) {
|
|
133
|
+
if (distance(point, circles[i]) > circles[i].radius + SMALL) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** Gets all intersection points between a bunch of circles */
|
|
141
|
+
function getIntersectionPoints(circles) {
|
|
142
|
+
var ret = [];
|
|
143
|
+
for (var i = 0; i < circles.length; ++i) {
|
|
144
|
+
for (var j = i + 1; j < circles.length; ++j) {
|
|
145
|
+
var intersect = circleCircleIntersection(circles[i],
|
|
146
|
+
circles[j]);
|
|
147
|
+
for (var k = 0; k < intersect.length; ++k) {
|
|
148
|
+
var p = intersect[k];
|
|
149
|
+
p.parentIndex = [i,j];
|
|
150
|
+
ret.push(p);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return ret;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** Circular segment area calculation. See http://mathworld.wolfram.com/CircularSegment.html */
|
|
158
|
+
export function circleArea(r, width) {
|
|
159
|
+
return r * r * Math.acos(1 - width/r) - (r - width) * Math.sqrt(width * (2 * r - width));
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** euclidean distance between two points */
|
|
163
|
+
export function distance(p1, p2) {
|
|
164
|
+
return Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) +
|
|
165
|
+
(p1.y - p2.y) * (p1.y - p2.y));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
/** Returns the overlap area of two circles of radius r1 and r2 - that
|
|
170
|
+
have their centers separated by distance d. Simpler faster
|
|
171
|
+
circle intersection for only two circles */
|
|
172
|
+
export function circleOverlap(r1, r2, d) {
|
|
173
|
+
// no overlap
|
|
174
|
+
if (d >= r1 + r2) {
|
|
175
|
+
return 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// completely overlapped
|
|
179
|
+
if (d <= Math.abs(r1 - r2)) {
|
|
180
|
+
return Math.PI * Math.min(r1, r2) * Math.min(r1, r2);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
var w1 = r1 - (d * d - r2 * r2 + r1 * r1) / (2 * d),
|
|
184
|
+
w2 = r2 - (d * d - r1 * r1 + r2 * r2) / (2 * d);
|
|
185
|
+
return circleArea(r1, w1) + circleArea(r2, w2);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** Given two circles (containing a x/y/radius attributes),
|
|
189
|
+
returns the intersecting points if possible.
|
|
190
|
+
note: doesn't handle cases where there are infinitely many
|
|
191
|
+
intersection points (circles are equivalent):, or only one intersection point*/
|
|
192
|
+
export function circleCircleIntersection(p1, p2) {
|
|
193
|
+
var d = distance(p1, p2),
|
|
194
|
+
r1 = p1.radius,
|
|
195
|
+
r2 = p2.radius;
|
|
196
|
+
|
|
197
|
+
// if to far away, or self contained - can't be done
|
|
198
|
+
if ((d >= (r1 + r2)) || (d <= Math.abs(r1 - r2))) {
|
|
199
|
+
return [];
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
var a = (r1 * r1 - r2 * r2 + d * d) / (2 * d),
|
|
203
|
+
h = Math.sqrt(r1 * r1 - a * a),
|
|
204
|
+
x0 = p1.x + a * (p2.x - p1.x) / d,
|
|
205
|
+
y0 = p1.y + a * (p2.y - p1.y) / d,
|
|
206
|
+
rx = -(p2.y - p1.y) * (h / d),
|
|
207
|
+
ry = -(p2.x - p1.x) * (h / d);
|
|
208
|
+
|
|
209
|
+
return [{x: x0 + rx, y : y0 - ry },
|
|
210
|
+
{x: x0 - rx, y : y0 + ry }];
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/** Returns the center of a bunch of points */
|
|
214
|
+
export function getCenter(points) {
|
|
215
|
+
var center = {x: 0, y: 0};
|
|
216
|
+
for (var i =0; i < points.length; ++i ) {
|
|
217
|
+
center.x += points[i].x;
|
|
218
|
+
center.y += points[i].y;
|
|
219
|
+
}
|
|
220
|
+
center.x /= points.length;
|
|
221
|
+
center.y /= points.length;
|
|
222
|
+
return center;
|
|
223
|
+
}
|