@semcore/d3-chart 17.1.0-prerelease.3 → 17.2.0-prerelease.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 +6 -0
- package/lib/cjs/Area.js +17 -11
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Axis.js +28 -16
- package/lib/cjs/Axis.js.map +1 -1
- package/lib/cjs/Bar.js +22 -16
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +20 -14
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/CompactHorizontalBar.js +22 -16
- package/lib/cjs/CompactHorizontalBar.js.map +1 -1
- package/lib/cjs/Donut.js +15 -9
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +8 -8
- package/lib/cjs/GroupBar.js +6 -0
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/HorizontalBar.js +22 -16
- package/lib/cjs/HorizontalBar.js.map +1 -1
- package/lib/cjs/Hover.js +3 -3
- package/lib/cjs/Line.js +15 -9
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/Plot.js +8 -2
- package/lib/cjs/Plot.js.map +1 -1
- package/lib/cjs/Radar.js +25 -19
- package/lib/cjs/Radar.js.map +1 -1
- package/lib/cjs/RadialTree.js +17 -12
- package/lib/cjs/RadialTree.js.map +1 -1
- package/lib/cjs/Reference.js +12 -12
- package/lib/cjs/ResponsiveContainer.js +6 -0
- package/lib/cjs/ResponsiveContainer.js.map +1 -1
- package/lib/cjs/ScatterPlot.js +15 -9
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js +6 -0
- package/lib/cjs/StackBar.js.map +1 -1
- package/lib/cjs/StackedArea.js +6 -0
- package/lib/cjs/StackedArea.js.map +1 -1
- package/lib/cjs/Tooltip.js +10 -9
- package/lib/cjs/Tooltip.js.map +1 -1
- package/lib/cjs/Venn.js +15 -9
- package/lib/cjs/Venn.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yModule.js +2 -2
- package/lib/cjs/a11y/PlotA11yView.js +2 -2
- package/lib/cjs/component/Chart/AbstractChart.js +4 -10
- package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
- package/lib/cjs/component/Chart/AreaChart.js +12 -0
- package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
- package/lib/cjs/component/Chart/AreaChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/BarChart.js +12 -0
- package/lib/cjs/component/Chart/BarChart.js.map +1 -1
- package/lib/cjs/component/Chart/BarChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/BubbleChart.js +12 -0
- package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
- package/lib/cjs/component/Chart/BubbleChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.js +9 -3
- package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.js +7 -1
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.js.map +1 -1
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/DonutChart.js +6 -0
- package/lib/cjs/component/Chart/DonutChart.js.map +1 -1
- package/lib/cjs/component/Chart/DonutChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/HistogramChart.js +12 -0
- package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
- package/lib/cjs/component/Chart/HistogramChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/LineChart.js +12 -0
- package/lib/cjs/component/Chart/LineChart.js.map +1 -1
- package/lib/cjs/component/Chart/LineChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/RadarChart.js +12 -0
- package/lib/cjs/component/Chart/RadarChart.js.map +1 -1
- package/lib/cjs/component/Chart/RadarChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/ScatterPlotChart.js +6 -0
- package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
- package/lib/cjs/component/Chart/ScatterPlotChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/VennChart.js +6 -0
- package/lib/cjs/component/Chart/VennChart.js.map +1 -1
- package/lib/cjs/component/Chart/VennChart.type.js.map +1 -1
- package/lib/cjs/component/ChartLegend/BaseLegend.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +10 -4
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +80 -44
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js +4 -0
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +12 -6
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
- package/lib/cjs/component/Cigarette/Cigarette.js +6 -0
- package/lib/cjs/component/Cigarette/Cigarette.js.map +1 -1
- package/lib/cjs/style/plot.shadow.css +1 -1
- package/lib/es6/Area.js +17 -11
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Axis.js +28 -16
- package/lib/es6/Axis.js.map +1 -1
- package/lib/es6/Bar.js +22 -16
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +20 -14
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/CompactHorizontalBar.js +22 -16
- package/lib/es6/CompactHorizontalBar.js.map +1 -1
- package/lib/es6/Donut.js +15 -9
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +8 -8
- package/lib/es6/GroupBar.js +6 -0
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/HorizontalBar.js +22 -16
- package/lib/es6/HorizontalBar.js.map +1 -1
- package/lib/es6/Hover.js +3 -3
- package/lib/es6/Line.js +15 -9
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/Plot.js +8 -2
- package/lib/es6/Plot.js.map +1 -1
- package/lib/es6/Radar.js +25 -19
- package/lib/es6/Radar.js.map +1 -1
- package/lib/es6/RadialTree.js +17 -12
- package/lib/es6/RadialTree.js.map +1 -1
- package/lib/es6/Reference.js +12 -12
- package/lib/es6/ResponsiveContainer.js +6 -0
- package/lib/es6/ResponsiveContainer.js.map +1 -1
- package/lib/es6/ScatterPlot.js +15 -9
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js +6 -0
- package/lib/es6/StackBar.js.map +1 -1
- package/lib/es6/StackedArea.js +6 -0
- package/lib/es6/StackedArea.js.map +1 -1
- package/lib/es6/Tooltip.js +10 -9
- package/lib/es6/Tooltip.js.map +1 -1
- package/lib/es6/Venn.js +15 -9
- package/lib/es6/Venn.js.map +1 -1
- package/lib/es6/a11y/PlotA11yModule.js +2 -2
- package/lib/es6/a11y/PlotA11yView.js +2 -2
- package/lib/es6/component/Chart/AbstractChart.js +4 -10
- package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
- package/lib/es6/component/Chart/AreaChart.js +12 -0
- package/lib/es6/component/Chart/AreaChart.js.map +1 -1
- package/lib/es6/component/Chart/AreaChart.type.js.map +1 -1
- package/lib/es6/component/Chart/BarChart.js +12 -0
- package/lib/es6/component/Chart/BarChart.js.map +1 -1
- package/lib/es6/component/Chart/BarChart.type.js.map +1 -1
- package/lib/es6/component/Chart/BubbleChart.js +12 -0
- package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
- package/lib/es6/component/Chart/BubbleChart.type.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.js +9 -3
- package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -1
- package/lib/es6/component/Chart/CompactHorizontalBarChart.js +7 -1
- package/lib/es6/component/Chart/CompactHorizontalBarChart.js.map +1 -1
- package/lib/es6/component/Chart/CompactHorizontalBarChart.type.js.map +1 -1
- package/lib/es6/component/Chart/DonutChart.js +6 -0
- package/lib/es6/component/Chart/DonutChart.js.map +1 -1
- package/lib/es6/component/Chart/DonutChart.type.js.map +1 -1
- package/lib/es6/component/Chart/HistogramChart.js +12 -0
- package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
- package/lib/es6/component/Chart/HistogramChart.type.js.map +1 -1
- package/lib/es6/component/Chart/LineChart.js +12 -0
- package/lib/es6/component/Chart/LineChart.js.map +1 -1
- package/lib/es6/component/Chart/LineChart.type.js.map +1 -1
- package/lib/es6/component/Chart/RadarChart.js +12 -0
- package/lib/es6/component/Chart/RadarChart.js.map +1 -1
- package/lib/es6/component/Chart/RadarChart.type.js.map +1 -1
- package/lib/es6/component/Chart/ScatterPlotChart.js +6 -0
- package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
- package/lib/es6/component/Chart/ScatterPlotChart.type.js.map +1 -1
- package/lib/es6/component/Chart/VennChart.js +7 -0
- package/lib/es6/component/Chart/VennChart.js.map +1 -1
- package/lib/es6/component/Chart/VennChart.type.js.map +1 -1
- package/lib/es6/component/ChartLegend/BaseLegend.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +10 -4
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.type.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +80 -44
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js +4 -0
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +12 -6
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.type.js.map +1 -1
- package/lib/es6/component/Cigarette/Cigarette.js +6 -0
- package/lib/es6/component/Cigarette/Cigarette.js.map +1 -1
- package/lib/es6/style/plot.shadow.css +1 -1
- package/lib/esm/AnimatedClipPath.mjs +2 -2
- package/lib/esm/Area.mjs +13 -13
- package/lib/esm/Axis.mjs +19 -19
- package/lib/esm/Bar.mjs +18 -18
- package/lib/esm/Bubble.mjs +16 -16
- package/lib/esm/CompactHorizontalBar.mjs +18 -18
- package/lib/esm/Donut.mjs +11 -11
- package/lib/esm/Dots.mjs +9 -9
- package/lib/esm/GroupBar.mjs +1 -1
- package/lib/esm/HorizontalBar.mjs +18 -18
- package/lib/esm/Hover.mjs +5 -5
- package/lib/esm/Line.mjs +11 -11
- package/lib/esm/Pattern.mjs +1 -1
- package/lib/esm/Plot.mjs +4 -4
- package/lib/esm/Radar.mjs +21 -21
- package/lib/esm/RadialTree.mjs +14 -14
- package/lib/esm/Reference.mjs +14 -14
- package/lib/esm/ResponsiveContainer.mjs +1 -1
- package/lib/esm/ScatterPlot.mjs +11 -11
- package/lib/esm/StackBar.mjs +1 -1
- package/lib/esm/StackedArea.mjs +1 -1
- package/lib/esm/Tooltip.mjs +12 -11
- package/lib/esm/Venn.mjs +12 -12
- package/lib/esm/a11y/PlotA11yModule.mjs +4 -4
- package/lib/esm/a11y/PlotA11yView.mjs +3 -3
- package/lib/esm/component/Chart/AbstractChart.mjs +6 -12
- package/lib/esm/component/Chart/AreaChart.mjs +7 -1
- package/lib/esm/component/Chart/BarChart.mjs +8 -2
- package/lib/esm/component/Chart/BubbleChart.mjs +7 -1
- package/lib/esm/component/Chart/CigaretteChart.mjs +3 -3
- package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +2 -2
- package/lib/esm/component/Chart/DonutChart.mjs +1 -1
- package/lib/esm/component/Chart/HistogramChart.mjs +8 -2
- package/lib/esm/component/Chart/LineChart.mjs +7 -1
- package/lib/esm/component/Chart/RadarChart.mjs +7 -1
- package/lib/esm/component/Chart/ScatterPlotChart.mjs +1 -1
- package/lib/esm/component/Chart/VennChart.mjs +1 -1
- package/lib/esm/component/ChartLegend/BaseLegend.mjs +1 -1
- package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +6 -6
- package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +76 -46
- package/lib/esm/component/ChartLegend/LegendItem/LegendItem.type.mjs +4 -0
- package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +8 -8
- package/lib/esm/component/Cigarette/Cigarette.mjs +1 -1
- package/lib/esm/component/StackGroupBar/StackGroupBar.mjs +1 -1
- package/lib/esm/createElement.mjs +1 -1
- package/lib/esm/style/plot.shadow.css +1 -1
- package/lib/types/RadialTree.d.ts +5 -0
- package/lib/types/component/Chart/AbstractChart.d.ts +2 -2
- package/lib/types/component/Chart/AreaChart.d.ts +5 -0
- package/lib/types/component/Chart/AreaChart.type.d.ts +6 -0
- package/lib/types/component/Chart/BarChart.d.ts +5 -0
- package/lib/types/component/Chart/BarChart.type.d.ts +6 -0
- package/lib/types/component/Chart/BubbleChart.d.ts +5 -0
- package/lib/types/component/Chart/BubbleChart.type.d.ts +6 -0
- package/lib/types/component/Chart/CigaretteChart.d.ts +5 -0
- package/lib/types/component/Chart/CigaretteChart.type.d.ts +14 -0
- package/lib/types/component/Chart/CompactHorizontalBarChart.d.ts +5 -0
- package/lib/types/component/Chart/CompactHorizontalBarChart.type.d.ts +7 -0
- package/lib/types/component/Chart/DonutChart.d.ts +5 -0
- package/lib/types/component/Chart/DonutChart.type.d.ts +7 -0
- package/lib/types/component/Chart/HistogramChart.d.ts +5 -0
- package/lib/types/component/Chart/HistogramChart.type.d.ts +6 -0
- package/lib/types/component/Chart/LineChart.d.ts +5 -0
- package/lib/types/component/Chart/LineChart.type.d.ts +6 -0
- package/lib/types/component/Chart/RadarChart.d.ts +5 -0
- package/lib/types/component/Chart/RadarChart.type.d.ts +6 -0
- package/lib/types/component/Chart/ScatterPlotChart.d.ts +5 -0
- package/lib/types/component/Chart/ScatterPlotChart.type.d.ts +7 -0
- package/lib/types/component/Chart/VennChart.d.ts +5 -0
- package/lib/types/component/Chart/VennChart.type.d.ts +6 -0
- package/lib/types/component/ChartLegend/BaseLegend.d.ts +2 -2
- package/lib/types/component/ChartLegend/LegendFlex/LegendFlex.d.ts +5 -0
- package/lib/types/component/ChartLegend/LegendFlex/LegendFlex.type.d.ts +4 -0
- package/lib/types/component/ChartLegend/LegendItem/LegendItem.d.ts +5 -0
- package/lib/types/component/ChartLegend/LegendItem/LegendItem.type.d.ts +15 -7
- package/lib/types/component/ChartLegend/LegendTable/LegendTable.d.ts +5 -0
- package/lib/types/component/ChartLegend/LegendTable/LegendTable.type.d.ts +3 -0
- package/lib/types/component/Cigarette/Cigarette.d.ts +5 -0
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsiveContainer.js","names":["_core","require","_baseComponents","_canUseDOM","_interopRequireDefault","_fire","_getOriginChildren","_rafTrottle","_react","ResponsiveContainerRoot","Component","constructor","props","_defineProperty2","default","React","createRef","trottle","entries","Children","aspect","asProps","$container","clientWidth","width","clientHeight","height","style","window","getComputedStyle","minHeight","Number","parseInt","getPropertyValue","maxHeight","size","fire","getOriginChildren","forceUpdate","canUseDOM","observer","ResizeObserver","handleResize","containerRef","current","setContext","componentDidMount","observe","componentWillUnmount","disconnect","render","_ref","_ref2","SResponsiveContainer","Box","styles","sstyled","createElement","cn","assignProps","ResponsiveContainer","createComponent","_default","exports"],"sources":["../../src/ResponsiveContainer.jsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport fire from '@semcore/core/lib/utils/fire';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport React from 'react';\n\nclass ResponsiveContainerRoot extends Component {\n static displayName = 'ResponsiveContainer';\n\n containerRef = React.createRef();\n size = [0, 0];\n\n constructor(props) {\n super(props);\n if (canUseDOM()) {\n this.observer = new ResizeObserver(this.handleResize);\n }\n }\n\n get $container() {\n return this.containerRef.current;\n }\n\n handleResize = trottle((entries) => {\n const { Children, aspect } = this.asProps;\n\n if (!this.$container) return;\n\n let { clientWidth: width, clientHeight: height } = this.$container;\n\n if (aspect) {\n const style = window.getComputedStyle(this.$container);\n const minHeight = Number.parseInt(style.getPropertyValue('min-height'));\n const maxHeight = Number.parseInt(style.getPropertyValue('max-height'));\n height = width * aspect;\n\n if (height < minHeight) {\n height = minHeight;\n }\n if (height > maxHeight) {\n height = maxHeight;\n }\n }\n\n if (this.size[0] === width && this.size[1] === height) return;\n\n this.size = [width, height];\n\n fire(this, 'onResize', this.size, entries);\n\n if (typeof getOriginChildren(Children) === 'function') {\n this.forceUpdate();\n }\n });\n\n setContext() {\n const [width, height] = this.size;\n return {\n width,\n height,\n };\n }\n\n componentDidMount() {\n if (this.$container) {\n // TODO: may be we can increase perfomance here? (by lsroman)\n this.observer?.observe(this.$container);\n }\n }\n\n // TODO component did update ref?\n\n componentWillUnmount() {\n this.observer?.disconnect();\n }\n\n render() {\n const SResponsiveContainer = Root;\n const { styles } = this.asProps;\n return sstyled(styles)(<SResponsiveContainer render={Box} ref={this.containerRef} />);\n }\n}\n\nconst ResponsiveContainer = createComponent(ResponsiveContainerRoot);\n\nexport default ResponsiveContainer;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ResponsiveContainer.js","names":["_core","require","_baseComponents","_canUseDOM","_interopRequireDefault","_fire","_getOriginChildren","_rafTrottle","_react","ResponsiveContainerRoot","Component","constructor","props","_defineProperty2","default","React","createRef","trottle","entries","Children","aspect","asProps","$container","clientWidth","width","clientHeight","height","style","window","getComputedStyle","minHeight","Number","parseInt","getPropertyValue","maxHeight","size","fire","getOriginChildren","forceUpdate","canUseDOM","observer","ResizeObserver","handleResize","containerRef","current","setContext","componentDidMount","observe","componentWillUnmount","disconnect","render","_ref","_ref2","SResponsiveContainer","Box","styles","sstyled","createElement","cn","assignProps","ResponsiveContainer","createComponent","_default","exports"],"sources":["../../src/ResponsiveContainer.jsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, Component, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport fire from '@semcore/core/lib/utils/fire';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport trottle from '@semcore/core/lib/utils/rafTrottle';\nimport React from 'react';\n\nclass ResponsiveContainerRoot extends Component {\n static displayName = 'ResponsiveContainer';\n\n containerRef = React.createRef();\n size = [0, 0];\n\n constructor(props) {\n super(props);\n if (canUseDOM()) {\n this.observer = new ResizeObserver(this.handleResize);\n }\n }\n\n get $container() {\n return this.containerRef.current;\n }\n\n handleResize = trottle((entries) => {\n const { Children, aspect } = this.asProps;\n\n if (!this.$container) return;\n\n let { clientWidth: width, clientHeight: height } = this.$container;\n\n if (aspect) {\n const style = window.getComputedStyle(this.$container);\n const minHeight = Number.parseInt(style.getPropertyValue('min-height'));\n const maxHeight = Number.parseInt(style.getPropertyValue('max-height'));\n height = width * aspect;\n\n if (height < minHeight) {\n height = minHeight;\n }\n if (height > maxHeight) {\n height = maxHeight;\n }\n }\n\n if (this.size[0] === width && this.size[1] === height) return;\n\n this.size = [width, height];\n\n fire(this, 'onResize', this.size, entries);\n\n if (typeof getOriginChildren(Children) === 'function') {\n this.forceUpdate();\n }\n });\n\n setContext() {\n const [width, height] = this.size;\n return {\n width,\n height,\n };\n }\n\n componentDidMount() {\n if (this.$container) {\n // TODO: may be we can increase perfomance here? (by lsroman)\n this.observer?.observe(this.$container);\n }\n }\n\n // TODO component did update ref?\n\n componentWillUnmount() {\n this.observer?.disconnect();\n }\n\n render() {\n const SResponsiveContainer = Root;\n const { styles } = this.asProps;\n return sstyled(styles)(<SResponsiveContainer render={Box} ref={this.containerRef} />);\n }\n}\n\n/**\n * ResponsiveContainer\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/d3-chart/d3-chart-api#responsivecontainer|API}\n */\nconst ResponsiveContainer = createComponent(ResponsiveContainerRoot);\n\nexport default ResponsiveContainer;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/ScatterPlot.js
CHANGED
|
@@ -16,17 +16,17 @@ var _Pattern = require("./Pattern");
|
|
|
16
16
|
var _Tooltip = _interopRequireDefault(require("./Tooltip"));
|
|
17
17
|
var _utils = require("./utils");
|
|
18
18
|
/*!__reshadow-styles__:"./style/scatterplot.shadow.css"*/
|
|
19
|
-
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
19
|
+
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SScatterPlot_15u7e_gg_{fill:var(--intergalactic-chart-palette-order-1,#666bdb);transition-property:cx,cy;transition-duration:var(--duration_15u7e);transition-timing-function:ease-in-out;opacity:.5}@media (hover:hover){.___SScatterPlot_15u7e_gg_:hover{opacity:.8}}.___SScatterPlot_15u7e_gg_.__color_15u7e_gg_{fill:var(--color_15u7e)}.___SScatterPlot_15u7e_gg_.__pattern_15u7e_gg_.__color_15u7e_gg_{fill:var(--pattern_15u7e);stroke:var(--color_15u7e);stroke-width:1px}.___SScatterPlot_15u7e_gg_.__transparent_15u7e_gg_{opacity:.3}.___SValue_15u7e_gg_{text-anchor:middle;font-size:var(--intergalactic-fs-50,10px);stroke:var(--intergalactic-chart-palette-order-9,#5c5cc4)}.___SValue_15u7e_gg_.__color_15u7e_gg_{stroke:var(--color_15u7e)}.___SValue_15u7e_gg_.__transparent_15u7e_gg_{opacity:.3}", /*__inner_css_end__*/"15u7e_gg_"),
|
|
20
20
|
/*__reshadow_css_end__*/
|
|
21
21
|
{
|
|
22
|
-
"__SScatterPlot": "
|
|
23
|
-
"_color": "
|
|
24
|
-
"--color": "--
|
|
25
|
-
"_pattern": "
|
|
26
|
-
"--pattern": "--
|
|
27
|
-
"_transparent": "
|
|
28
|
-
"__SValue": "
|
|
29
|
-
"--duration": "--
|
|
22
|
+
"__SScatterPlot": "___SScatterPlot_15u7e_gg_",
|
|
23
|
+
"_color": "__color_15u7e_gg_",
|
|
24
|
+
"--color": "--color_15u7e",
|
|
25
|
+
"_pattern": "__pattern_15u7e_gg_",
|
|
26
|
+
"--pattern": "--pattern_15u7e",
|
|
27
|
+
"_transparent": "__transparent_15u7e_gg_",
|
|
28
|
+
"__SValue": "___SValue_15u7e_gg_",
|
|
29
|
+
"--duration": "--duration_15u7e"
|
|
30
30
|
});
|
|
31
31
|
class ScatterPlotRoot extends _core.Component {
|
|
32
32
|
constructor(...args) {
|
|
@@ -197,6 +197,12 @@ function ScatterPlotTooltip(props) {
|
|
|
197
197
|
}));
|
|
198
198
|
}
|
|
199
199
|
;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* ScatterPlot
|
|
203
|
+
*
|
|
204
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/scatterplot-chart/scatterplot-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/scatterplot-chart/scatterplot-chart-code/|Examples}
|
|
205
|
+
*/
|
|
200
206
|
const ScatterPlot = (0, _createElement.default)(ScatterPlotRoot, {
|
|
201
207
|
Tooltip: [ScatterPlotTooltip, _Tooltip.default._______childrenComponents]
|
|
202
208
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScatterPlot.js","names":["_core","require","_canUseDOM","_interopRequireDefault","_uniqueID","_d3Transition","_react","_createElement","_Pattern","_Tooltip","_utils","style","sstyled","insert","ScatterPlotRoot","Component","constructor","args","_defineProperty2","default","canUseDOM","document","createElement","visible","props","tooltipProps","clientX","clientY","eventEmitter","plotId","asProps","emit","generateGetBoundingClientRect","x","y","width","height","top","right","bottom","left","animationCircle","duration","uid","r","value","radius","getScatterPlotRadius","selectRect","transition","selection","selectAll","attr","selectRectNode","node","componentDidUpdate","prevProps","data","componentDidMount","handlerOnClick","index","e","stopPropagation","onClick","renderCircle","d","i","_ref2","color","scale","offset","styles","valueColor","transparent","resolveColor","patterns","xScale","yScale","SScatterPlot","Element","SValue","Number","isNaN","cn","bindHandlerTooltip","xIndex","undefined","PatternFill","render","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","map","bind","id","uniqueIDEnhancement","ScatterPlotTooltip","_ref","arguments[0]","_ref3","SScatterPlotTooltip","Tooltip","assignProps","ScatterPlot","_______childrenComponents","_default","exports"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import { Component, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { transition } from 'd3-transition';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/scatterplot.shadow.css';\nimport Tooltip from './Tooltip';\nimport { getScatterPlotRadius } from './utils';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX, clientY }) => {\n const { eventEmitter, plotId } = this.asProps;\n\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, props, tooltipProps);\n eventEmitter.emit(`setTooltipVisible_${plotId}`, visible);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : getScatterPlotRadius(value);\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data) {\n this.animationCircle();\n }\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n handlerOnClick(index) {\n return (e) => {\n e.stopPropagation();\n\n const { onClick } = this.asProps;\n\n if (!onClick) return;\n\n onClick(index, e);\n };\n }\n\n renderCircle(d, i) {\n const {\n color,\n scale,\n x,\n y,\n r,\n offset,\n styles,\n uid,\n duration,\n value,\n valueColor,\n transparent,\n resolveColor,\n patterns,\n } = this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n if (Number.isNaN(d[x]) || Number.isNaN(d[y])) {\n return null;\n }\n\n return sstyled(styles)(\n <g\n aria-hidden\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, this.props, { xIndex: i, index: i, patterns })}\n onMouseLeave={this.bindHandlerTooltip(false, this.props, { xIndex: i, index: i, patterns })}\n onClickCapture={this.handlerOnClick(i)}\n >\n <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\n index={i}\n render='circle'\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n r={r}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n {d[value] !== undefined && (\n <SValue\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy='.3em'\n clipPath={`url(#${uid})`}\n color={resolveColor(valueColor)}\n transparent={transparent}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <clipPath id={uid}>\n <rect x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />\n </clipPath>\n </>\n );\n }\n}\n\nfunction ScatterPlotTooltip(props) {\n const SScatterPlotTooltip = Root;\n return sstyled(props.styles)(<SScatterPlotTooltip render={Tooltip} excludeAnchorProps />);\n};\n\nconst ScatterPlot = createElement(ScatterPlotRoot, {\n Tooltip: [ScatterPlotTooltip, Tooltip._______childrenComponents],\n});\n\nexport default ScatterPlot;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ScatterPlot.js","names":["_core","require","_canUseDOM","_interopRequireDefault","_uniqueID","_d3Transition","_react","_createElement","_Pattern","_Tooltip","_utils","style","sstyled","insert","ScatterPlotRoot","Component","constructor","args","_defineProperty2","default","canUseDOM","document","createElement","visible","props","tooltipProps","clientX","clientY","eventEmitter","plotId","asProps","emit","generateGetBoundingClientRect","x","y","width","height","top","right","bottom","left","animationCircle","duration","uid","r","value","radius","getScatterPlotRadius","selectRect","transition","selection","selectAll","attr","selectRectNode","node","componentDidUpdate","prevProps","data","componentDidMount","handlerOnClick","index","e","stopPropagation","onClick","renderCircle","d","i","_ref2","color","scale","offset","styles","valueColor","transparent","resolveColor","patterns","xScale","yScale","SScatterPlot","Element","SValue","Number","isNaN","cn","bindHandlerTooltip","xIndex","undefined","PatternFill","render","xSize","Math","abs","range","ySize","xMargin","min","yMargin","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","map","bind","id","uniqueIDEnhancement","ScatterPlotTooltip","_ref","arguments[0]","_ref3","SScatterPlotTooltip","Tooltip","assignProps","ScatterPlot","_______childrenComponents","_default","exports"],"sources":["../../src/ScatterPlot.jsx"],"sourcesContent":["import { Component, Root, sstyled } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { transition } from 'd3-transition';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/scatterplot.shadow.css';\nimport Tooltip from './Tooltip';\nimport { getScatterPlotRadius } from './utils';\n\nclass ScatterPlotRoot extends Component {\n static displayName = 'ScatterPlot';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = {\n offset: [0, 0],\n duration: 500,\n };\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX, clientY }) => {\n const { eventEmitter, plotId } = this.asProps;\n\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, props, tooltipProps);\n eventEmitter.emit(`setTooltipVisible_${plotId}`, visible);\n };\n\n animationCircle() {\n const { duration, uid, r, value } = this.asProps;\n const radius = r ? r : getScatterPlotRadius(value);\n const selectRect = transition().selection().selectAll(`[id^=${uid}]`).attr('r', 0);\n const selectRectNode = selectRect.node();\n\n if (duration > 0 && selectRectNode) {\n selectRect.transition().duration(duration).attr('r', radius);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data) {\n this.animationCircle();\n }\n }\n\n componentDidMount() {\n this.animationCircle();\n }\n\n handlerOnClick(index) {\n return (e) => {\n e.stopPropagation();\n\n const { onClick } = this.asProps;\n\n if (!onClick) return;\n\n onClick(index, e);\n };\n }\n\n renderCircle(d, i) {\n const {\n color,\n scale,\n x,\n y,\n r,\n offset,\n styles,\n uid,\n duration,\n value,\n valueColor,\n transparent,\n resolveColor,\n patterns,\n } = this.asProps;\n const [xScale, yScale] = scale;\n const SScatterPlot = this.Element;\n const SValue = 'text';\n\n if (Number.isNaN(d[x]) || Number.isNaN(d[y])) {\n return null;\n }\n\n return sstyled(styles)(\n <g\n aria-hidden\n key={`circle(#${i})`}\n onMouseMove={this.bindHandlerTooltip(true, this.props, { xIndex: i, index: i, patterns })}\n onMouseLeave={this.bindHandlerTooltip(false, this.props, { xIndex: i, index: i, patterns })}\n onClickCapture={this.handlerOnClick(i)}\n >\n <SScatterPlot\n aria-hidden\n id={`${uid}${i}`}\n index={i}\n render='circle'\n clipPath={`url(#${uid})`}\n cx={xScale(d[x]) + offset[0]}\n cy={yScale(d[y]) + offset[1]}\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-${i}-pattern)` : undefined}\n r={r}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {patterns && (\n <PatternFill\n id={`${uid}-${i}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n {d[value] !== undefined && (\n <SValue\n aria-hidden\n x={xScale(d[x]) + offset[0]}\n y={yScale(d[y]) + offset[1]}\n dy='.3em'\n clipPath={`url(#${uid})`}\n color={resolveColor(valueColor)}\n transparent={transparent}\n >\n {d[value]}\n </SValue>\n )}\n </g>,\n );\n }\n\n render() {\n const { data, uid, scale, x, y, value } = this.asProps;\n const [xScale, yScale] = scale;\n const xSize = Math.abs(xScale.range()[0] - xScale.range()[1]);\n const ySize = Math.abs(yScale.range()[0] - yScale.range()[1]);\n const xMargin = Math.min(xScale.range()[0], xScale.range()[1]);\n const yMargin = Math.min(yScale.range()[0], yScale.range()[1]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y, value);\n this.asProps.dataHintsHandler.establishDataType('points-cloud');\n\n return (\n <>\n {data.map(this.renderCircle.bind(this))}\n <clipPath id={uid}>\n <rect x={xMargin} y={yMargin} width={`${xSize}px`} height={`${ySize}px`} />\n </clipPath>\n </>\n );\n }\n}\n\nfunction ScatterPlotTooltip(props) {\n const SScatterPlotTooltip = Root;\n return sstyled(props.styles)(<SScatterPlotTooltip render={Tooltip} excludeAnchorProps />);\n};\n\n/**\n * ScatterPlot\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/scatterplot-chart/scatterplot-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/scatterplot-chart/scatterplot-chart-code/|Examples}\n */\nconst ScatterPlot = createElement(ScatterPlotRoot, {\n Tooltip: [ScatterPlotTooltip, Tooltip._______childrenComponents],\n});\n\nexport default ScatterPlot;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/StackBar.js
CHANGED
|
@@ -142,6 +142,12 @@ class StackBarRoot extends _core.Component {
|
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* StackBar
|
|
148
|
+
*
|
|
149
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/stacked-bar-chart/stacked-bar-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/stacked-bar-chart/stacked-bar-chart-code/|Examples}
|
|
150
|
+
*/
|
|
145
151
|
(0, _defineProperty2.default)(StackBarRoot, "displayName", 'StackBar');
|
|
146
152
|
(0, _defineProperty2.default)(StackBarRoot, "defaultProps", () => {
|
|
147
153
|
const stack = (0, _d3Shape.stack)();
|
package/lib/cjs/StackBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackBar.js","names":["_core","require","_getOriginChildren","_interopRequireDefault","_d3Shape","_react","_Bar","_interopRequireWildcard","_createElement","_HorizontalBar","_utils","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","Component","constructor","args","_defineProperty2","default","getSeries","Children","data","stack","asProps","keys","React","toArray","getOriginChildren","reduce","acc","child","isValidElement","type","StackBar","Bar","props","hide","push","y","HorizontalBar","x","getBarProps","hMin","MIN_HEIGHT","index","r","scale","maxBarSize","patterns","yScale","seriesIndex","series","findIndex","s","key","rBar","map","_s","i","slice","some","bar","offsetBars","calcOffset","offset","offsetBar","d","absHeight","Math","abs","min","domain","isEmptyValue","Number","offsetValue","y0","groupKey","color","getChartDefaultColorName","getHorizontalBarProps","wMin","MIN_WIDTH","xScale","absWidth","max","x0","render","Element","dataHintsHandler","establishDataType","createElement","d3Stack","_default","exports"],"sources":["../../src/StackBar.jsx"],"sourcesContent":["import { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport { stack as d3Stack } from 'd3-shape';\nimport React from 'react';\n\nimport Bar, { MIN_HEIGHT } from './Bar';\nimport createElement from './createElement';\nimport HorizontalBar, { MIN_WIDTH } from './HorizontalBar';\nimport { getChartDefaultColorName } from './utils';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n offsetBars = [];\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y, hMin = MIN_HEIGHT }, index) {\n const { x, r, scale, maxBarSize, patterns } = this.asProps;\n const [, yScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((_s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absHeight = Math.abs(\n yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[XY0] ?? 0)),\n );\n\n const isEmptyValue = Number(d[y] - (d[XY0] ?? 0)) === 0;\n\n if (isEmptyValue || absHeight >= hMin) {\n this.offsetBars[seriesIndex][i] = 0;\n } else {\n const offsetValue = hMin - absHeight;\n this.offsetBars[seriesIndex][i] = d[y] > 0 ? offsetValue : -offsetValue;\n }\n\n return [0, offset];\n };\n\n return {\n data,\n hMin,\n y0: XY0,\n x,\n r: rBar,\n groupKey: x,\n offset: calcOffset,\n maxBarSize,\n color: getChartDefaultColorName(index),\n patterns,\n };\n }\n\n getHorizontalBarProps({ x, wMin = MIN_WIDTH }, index) {\n const { y, r, scale, maxBarSize, patterns } = this.asProps;\n const [xScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absWidth = Math.abs(\n xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[XY0] ?? 0)),\n );\n this.offsetBars[seriesIndex][i] =\n Number(d[x] - (d[XY0] ?? 0)) === 0 ? 0 : absWidth >= wMin ? 0 : d[x] > 0 ? -wMin : wMin;\n return [offset, 0];\n };\n\n return {\n data,\n wMin,\n x0: XY0,\n y,\n r: 0,\n groupKey: y,\n offset: calcOffset,\n maxBarSize,\n color: getChartDefaultColorName(index),\n patterns,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n\n this.asProps.dataHintsHandler.establishDataType('grouped-values');\n\n this.offsetBars = [];\n\n return <Element aria-hidden render='g' series={this.series} />;\n }\n}\n\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"StackBar.js","names":["_core","require","_getOriginChildren","_interopRequireDefault","_d3Shape","_react","_Bar","_interopRequireWildcard","_createElement","_HorizontalBar","_utils","DEFAULT_INSTANCE","Symbol","XY0","StackBarRoot","Component","constructor","args","_defineProperty2","default","getSeries","Children","data","stack","asProps","keys","React","toArray","getOriginChildren","reduce","acc","child","isValidElement","type","StackBar","Bar","props","hide","push","y","HorizontalBar","x","getBarProps","hMin","MIN_HEIGHT","index","r","scale","maxBarSize","patterns","yScale","seriesIndex","series","findIndex","s","key","rBar","map","_s","i","slice","some","bar","offsetBars","calcOffset","offset","offsetBar","d","absHeight","Math","abs","min","domain","isEmptyValue","Number","offsetValue","y0","groupKey","color","getChartDefaultColorName","getHorizontalBarProps","wMin","MIN_WIDTH","xScale","absWidth","max","x0","render","Element","dataHintsHandler","establishDataType","createElement","d3Stack","_default","exports"],"sources":["../../src/StackBar.jsx"],"sourcesContent":["import { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport { stack as d3Stack } from 'd3-shape';\nimport React from 'react';\n\nimport Bar, { MIN_HEIGHT } from './Bar';\nimport createElement from './createElement';\nimport HorizontalBar, { MIN_WIDTH } from './HorizontalBar';\nimport { getChartDefaultColorName } from './utils';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst XY0 = Symbol('XY0');\n\nclass StackBarRoot extends Component {\n static displayName = 'StackBar';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack, r: 2 };\n };\n\n offsetBars = [];\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackBar.Bar && !child.props.hide) {\n acc.push(child.props.y);\n }\n if (\n React.isValidElement(child) &&\n child.type === StackBar.HorizontalBar &&\n !child.props.hide\n ) {\n acc.push(child.props.x);\n }\n return acc;\n }, []);\n stack.keys(keys);\n }\n\n return stack(data);\n }\n\n getBarProps({ y, hMin = MIN_HEIGHT }, index) {\n const { x, r, scale, maxBarSize, patterns } = this.asProps;\n const [, yScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === y);\n // or [] if hide bar\n const series = this.series[seriesIndex] || [];\n\n const rBar = series.map((_s, i) =>\n this.series.slice(seriesIndex + 1).some((bar) => bar[i][0] !== bar[i][1]) ? 0 : r,\n );\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [y]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absHeight = Math.abs(\n yScale(d[y]) - Math.min(yScale(yScale.domain()[0]), yScale(d[XY0] ?? 0)),\n );\n\n const isEmptyValue = Number(d[y] - (d[XY0] ?? 0)) === 0;\n\n if (isEmptyValue || absHeight >= hMin) {\n this.offsetBars[seriesIndex][i] = 0;\n } else {\n const offsetValue = hMin - absHeight;\n this.offsetBars[seriesIndex][i] = d[y] > 0 ? offsetValue : -offsetValue;\n }\n\n return [0, offset];\n };\n\n return {\n data,\n hMin,\n y0: XY0,\n x,\n r: rBar,\n groupKey: x,\n offset: calcOffset,\n maxBarSize,\n color: getChartDefaultColorName(index),\n patterns,\n };\n }\n\n getHorizontalBarProps({ x, wMin = MIN_WIDTH }, index) {\n const { y, r, scale, maxBarSize, patterns } = this.asProps;\n const [xScale] = scale;\n\n const seriesIndex = this.series.findIndex((s) => s.key === x);\n const series = this.series[seriesIndex];\n\n this.offsetBars[seriesIndex] = this.offsetBars[seriesIndex] ?? [];\n const data = series.map((s) => ({\n ...s.data,\n [x]: s[1],\n [XY0]: s[0],\n }));\n\n const calcOffset = (i) => {\n const offset = this.offsetBars.reduce((offset, offsetBar) => offset - (offsetBar[i] ?? 0), 0);\n const d = data[i];\n const absWidth = Math.abs(\n xScale(d[x]) - Math.max(xScale(xScale.domain()[0]), xScale(d[XY0] ?? 0)),\n );\n this.offsetBars[seriesIndex][i] =\n Number(d[x] - (d[XY0] ?? 0)) === 0 ? 0 : absWidth >= wMin ? 0 : d[x] > 0 ? -wMin : wMin;\n return [offset, 0];\n };\n\n return {\n data,\n wMin,\n x0: XY0,\n y,\n r: 0,\n groupKey: y,\n offset: calcOffset,\n maxBarSize,\n color: getChartDefaultColorName(index),\n patterns,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n\n this.asProps.dataHintsHandler.establishDataType('grouped-values');\n\n this.offsetBars = [];\n\n return <Element aria-hidden render='g' series={this.series} />;\n }\n}\n\n/**\n * StackBar\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/stacked-bar-chart/stacked-bar-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/stacked-bar-chart/stacked-bar-chart-code/|Examples}\n */\nconst StackBar = createElement(StackBarRoot, {\n Bar,\n HorizontalBar,\n});\n\nexport default StackBar;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/StackedArea.js
CHANGED
|
@@ -65,6 +65,12 @@ class StackedAreaRoot extends _core.Component {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* StackedArea
|
|
71
|
+
*
|
|
72
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/stacked-area-chart/stacked-area-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/stacked-area-chart/stacked-area-chart-code/|Examples}
|
|
73
|
+
*/
|
|
68
74
|
(0, _defineProperty2.default)(StackedAreaRoot, "displayName", 'StackedArea');
|
|
69
75
|
(0, _defineProperty2.default)(StackedAreaRoot, "defaultProps", () => {
|
|
70
76
|
const stack = (0, _d3Shape.stack)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackedArea.js","names":["_core","require","_getOriginChildren","_interopRequireDefault","_d3Shape","_react","_Area","_createElement","_utils","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","Component","getSeries","Children","data","stack","asProps","keys","React","toArray","getOriginChildren","reduce","acc","child","isValidElement","type","StackedArea","Area","props","hide","push","y","reverse","getAreaProps","index","x","patterns","series","find","s","key","color","getChartDefaultColorName","map","y0","render","Element","default","createElement","_defineProperty2","d3Stack","_default","exports"],"sources":["../../src/StackedArea.jsx"],"sourcesContent":["import { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport { stack as d3Stack } from 'd3-shape';\nimport React from 'react';\n\nimport Area from './Area';\nimport createElement from './createElement';\nimport { getChartDefaultColorName } from './utils';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }, index) {\n const { x, patterns } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n color: getChartDefaultColorName(index),\n patterns,\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element aria-hidden render='g' series={this.series} />;\n }\n}\n\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AAEA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,cAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAEA,MAAMQ,gBAAgB,GAAGC,MAAM,CAAC,kBAAkB,CAAC;AACnD,MAAMC,EAAE,GAAGD,MAAM,CAAC,IAAI,CAAC;AAEvB,MAAME,eAAe,SAASC,eAAS,CAAC;EAStCC,SAASA,CAAA,EAAG;IACV,MAAM;MAAEC,QAAQ;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAG,IAAI,CAACC,OAAO;IAE9C,IAAID,KAAK,CAACR,gBAAgB,CAAC,EAAE;MAC3B,MAAMU,IAAI,GAAGC,cAAK,CAACL,QAAQ,CAACM,OAAO,CAAC,IAAAC,0BAAiB,EAACP,QAAQ,CAAC,CAAC,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;QACtF,IAAI,aAAAL,cAAK,CAACM,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKC,WAAW,CAACC,IAAI,IAAI,CAACJ,KAAK,CAACK,KAAK,CAACC,IAAI,EAAE;UACvFP,GAAG,CAACQ,IAAI,CAACP,KAAK,CAACK,KAAK,CAACG,CAAC,CAAC;QACzB;QACA,OAAOT,GAAG;MACZ,CAAC,EAAE,EAAE,CAAC;MACNP,KAAK,CAACE,IAAI,CAACA,IAAI,CAACe,OAAO,CAAC,CAAC,CAAC;IAC5B;IAEA,OAAOjB,KAAK,CAACD,IAAI,CAAC;EACpB;EAEAmB,YAAYA,CAAC;IAAEF;EAAE,CAAC,EAAEG,KAAK,EAAE;IACzB,MAAM;MAAEC,CAAC;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACpB,OAAO;IACpC;IACA,MAAMqB,MAAM,GAAG,IAAI,CAACA,MAAM,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,KAAKT,CAAC,CAAC,IAAI,EAAE;IACzD,OAAO;MACLU,KAAK,EAAE,IAAAC,+BAAwB,EAACR,KAAK,CAAC;MACtCE,QAAQ;MACRtB,IAAI,EAAEuB,MAAM,CAACM,GAAG,CAAEJ,CAAC,KAAM;QACvB,GAAGA,CAAC,CAACzB,IAAI;QACT;QACA,CAACiB,CAAC,GAAGQ,CAAC,CAACzB,IAAI,CAACiB,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGQ,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC9B,EAAE,GAAG8B,CAAC,CAAC,CAAC;MACX,CAAC,CAAC,CAAC;MACHK,EAAE,EAAEnC,EAAE;MACN0B;IACF,CAAC;EACH;EAEAU,MAAMA,CAAA,EAAG;IACP,MAAMC,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,IAAI,CAACT,MAAM,GAAG,IAAI,CAACzB,SAAS,CAAC,CAAC;IAC9B,oBAAOT,MAAA,CAAA4C,OAAA,CAAAC,aAAA,CAACF,OAAO;MAAC,mBAAW;MAACD,MAAM,EAAC,GAAG;MAACR,MAAM,EAAE,IAAI,CAACA;IAAO,CAAE,CAAC;EAChE;AACF;
|
|
1
|
+
{"version":3,"file":"StackedArea.js","names":["_core","require","_getOriginChildren","_interopRequireDefault","_d3Shape","_react","_Area","_createElement","_utils","DEFAULT_INSTANCE","Symbol","Y0","StackedAreaRoot","Component","getSeries","Children","data","stack","asProps","keys","React","toArray","getOriginChildren","reduce","acc","child","isValidElement","type","StackedArea","Area","props","hide","push","y","reverse","getAreaProps","index","x","patterns","series","find","s","key","color","getChartDefaultColorName","map","y0","render","Element","default","createElement","_defineProperty2","d3Stack","_default","exports"],"sources":["../../src/StackedArea.jsx"],"sourcesContent":["import { Component } from '@semcore/core';\nimport getOriginChildren from '@semcore/core/lib/utils/getOriginChildren';\nimport { stack as d3Stack } from 'd3-shape';\nimport React from 'react';\n\nimport Area from './Area';\nimport createElement from './createElement';\nimport { getChartDefaultColorName } from './utils';\n\nconst DEFAULT_INSTANCE = Symbol('DEFAULT_INSTANCE');\nconst Y0 = Symbol('Y0');\n\nclass StackedAreaRoot extends Component {\n static displayName = 'StackedArea';\n\n static defaultProps = () => {\n const stack = d3Stack();\n stack[DEFAULT_INSTANCE] = true;\n return { stack };\n };\n\n getSeries() {\n const { Children, data, stack } = this.asProps;\n\n if (stack[DEFAULT_INSTANCE]) {\n const keys = React.Children.toArray(getOriginChildren(Children)).reduce((acc, child) => {\n if (React.isValidElement(child) && child.type === StackedArea.Area && !child.props.hide) {\n acc.push(child.props.y);\n }\n return acc;\n }, []);\n stack.keys(keys.reverse());\n }\n\n return stack(data);\n }\n\n getAreaProps({ y }, index) {\n const { x, patterns } = this.asProps;\n // or [] if hide area\n const series = this.series.find((s) => s.key === y) || [];\n return {\n color: getChartDefaultColorName(index),\n patterns,\n data: series.map((s) => ({\n ...s.data,\n // if null is passed in the data, then we pass it, because d3 null leads to 0\n [y]: s.data[y] === null ? null : s[1],\n [Y0]: s[0],\n })),\n y0: Y0,\n x,\n };\n }\n\n render() {\n const Element = this.Element;\n this.series = this.getSeries();\n return <Element aria-hidden render='g' series={this.series} />;\n }\n}\n\n/**\n * StackedArea\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/stacked-area-chart/stacked-area-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/stacked-area-chart/stacked-area-chart-code/|Examples}\n */\nconst StackedArea = createElement(StackedAreaRoot, { Area });\n\nexport default StackedArea;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/Tooltip.js
CHANGED
|
@@ -15,17 +15,17 @@ var _createElement = _interopRequireDefault(require("./createElement"));
|
|
|
15
15
|
var _Pattern = require("./Pattern");
|
|
16
16
|
var _utils = require("./utils");
|
|
17
17
|
/*!__reshadow-styles__:"./style/tooltip.shadow.css"*/
|
|
18
|
-
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
18
|
+
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___STooltip_123dv_gg_{font-size:var(--intergalactic-fs-100,12px);line-height:var(--intergalactic-lh-100,133%);position:relative;background-color:var(--intergalactic-bg-primary-neutral,#fff);border-radius:var(--intergalactic-popper-rounded,6px);border:1px solid var(--intergalactic-border-secondary,#00151012);box-sizing:border-box;box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012);padding:var(--intergalactic-spacing-3x,12px)}@supports (color:color(display-p3 0 0 0%)){.___STooltip_123dv_gg_{border:1px solid var(--intergalactic-border-secondary,#00151012);box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 #00151012)}@media (color-gamut:p3){.___STooltip_123dv_gg_{border:1px solid var(--intergalactic-border-secondary,color(display-p3 .01753 .08157 .06372/.07));box-shadow:var(--intergalactic-box-shadow-popper,1px 1px 10px 0 color(display-p3 .01753 .08157 .06372/.07))}}}.___STitle_123dv_gg_{color:var(--intergalactic-text-secondary,#00030095);margin-bottom:var(--intergalactic-spacing-2x,8px)}@supports (color:color(display-p3 0 0 0%)){.___STitle_123dv_gg_{color:var(--intergalactic-text-secondary,#00030095)}@media (color-gamut:p3){.___STitle_123dv_gg_{color:var(--intergalactic-text-secondary,color(display-p3 .00228 .01289 .00252/.583))}}}.___SDotGroup_123dv_gg_{display:flex;align-items:center}.___SDot_123dv_gg_{margin-right:var(--intergalactic-spacing-2x,8px)}.___SDotCircle_123dv_gg_.__color_123dv_gg_{background-color:var(--color_123dv);width:8px;height:8px;border-radius:50%}.___SFooter_123dv_gg_{background:var(--intergalactic-bg-secondary-neutral,#f8f9f8);padding:var(--intergalactic-spacing-1x,4px) var(--intergalactic-spacing-3x,12px);border-radius:0 0 var(--intergalactic-rounded-medium,6px) var(--intergalactic-rounded-medium,6px);margin:var(--intergalactic-spacing-3x,12px) calc(var(--intergalactic-spacing-3x, 12px)*-1) calc(var(--intergalactic-spacing-3x, 12px)*-1)}", /*__inner_css_end__*/"123dv_gg_"),
|
|
19
19
|
/*__reshadow_css_end__*/
|
|
20
20
|
{
|
|
21
|
-
"__STooltip": "
|
|
22
|
-
"__STitle": "
|
|
23
|
-
"__SDotGroup": "
|
|
24
|
-
"__SDot": "
|
|
25
|
-
"__SDotCircle": "
|
|
26
|
-
"_color": "
|
|
27
|
-
"--color": "--
|
|
28
|
-
"__SFooter": "
|
|
21
|
+
"__STooltip": "___STooltip_123dv_gg_",
|
|
22
|
+
"__STitle": "___STitle_123dv_gg_",
|
|
23
|
+
"__SDotGroup": "___SDotGroup_123dv_gg_",
|
|
24
|
+
"__SDot": "___SDot_123dv_gg_",
|
|
25
|
+
"__SDotCircle": "___SDotCircle_123dv_gg_",
|
|
26
|
+
"_color": "__color_123dv_gg_",
|
|
27
|
+
"--color": "--color_123dv",
|
|
28
|
+
"__SFooter": "___SFooter_123dv_gg_"
|
|
29
29
|
});
|
|
30
30
|
/**
|
|
31
31
|
* `TooltipDotRenderContext` is a hack to bypass problem that getDotProps doesn't work for D3 tooltip.
|
|
@@ -234,6 +234,7 @@ function Dot(props) {
|
|
|
234
234
|
const SDotCircle = _baseComponents.Box;
|
|
235
235
|
return _ref8 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(SDotGroup, _ref8.cn("SDotGroup", {
|
|
236
236
|
...(0, _core.assignProps)({
|
|
237
|
+
"use:color": undefined,
|
|
237
238
|
"__excludeProps": ['data', 'scale']
|
|
238
239
|
}, _ref4)
|
|
239
240
|
}), patterns ? /*#__PURE__*/_react.default.createElement(SDot, _ref8.cn("SDot", {}), /*#__PURE__*/_react.default.createElement(_Pattern.PatternSymbol, _ref8.cn("PatternSymbol", {
|
package/lib/cjs/Tooltip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["_core","require","_baseComponents","_findComponent","_interopRequireDefault","_useColorResolver","_react","_createElement","_Pattern","_utils","style","sstyled","insert","TooltipDotRenderContext","React","createContext","index","indexKeysCache","Set","TooltipRoot","Component","constructor","args","_defineProperty2","default","$visible","anchorProps","tooltipProps","x","y","e","onClick","asProps","xIndex","yIndex","state","getTriggerProps","hideHoverLine","getPopperProps","excludeAnchorProps","componentDidMount","eventEmitter","plotId","unsubscribe","push","subscribe","setState","visible","virtualElementPosition","virtualTriggerElement","setTimeout","setPopperTrigger","getBoundingClientRect","width","height","top","right","bottom","left","popper","current","update","componentWillUnmount","forEach","render","_ref","Children","children","tag","forcedAdvancedMode","_","other","advancedMode","findComponent","Tooltip","Trigger","displayName","Popper","renderContext","clear","patterns","createElement","Provider","value","assignProps","handlerCancel","allowedAutoPlacements","setTrigger","Fragment","handleTriggerClick","PopperTrigger","_ref2","arguments[0]","PopperPopper","props","_ref6","Element","STooltip","styles","useCallback","cn","Title","_ref3","_ref7","STitle","Box","Dot","_ref4","_ref8","color","resolveColor","useColorResolver","useContext","defaultColor","getChartDefaultColorName","key","has","add","SDotGroup","SDot","SDotCircle","PatternSymbol","Footer","_ref5","_ref9","SFooter","_default","exports"],"sources":["../../src/Tooltip.jsx"],"sourcesContent":["import { Popper, Box } from '@semcore/base-components';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport findComponent from '@semcore/core/lib/utils/findComponent';\nimport { useColorResolver } from '@semcore/core/lib/utils/use/useColorResolver';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternSymbol } from './Pattern';\nimport style from './style/tooltip.shadow.css';\nimport { getChartDefaultColorName } from './utils';\n\n/**\n * `TooltipDotRenderContext` is a hack to bypass problem that getDotProps doesn't work for D3 tooltip.\n * Probably it may be removed after migrating to a new core.\n */\nconst TooltipDotRenderContext = React.createContext({ index: -1, indexKeysCache: new Set() });\n\nclass TooltipRoot extends Component {\n static displayName = 'Tooltip';\n\n static style = style;\n\n state = {\n $visible: false,\n anchorProps: {},\n tooltipProps: {},\n };\n\n renderContext = { index: -1, indexKeysCache: new Set() };\n\n handlerCancel = () => false;\n\n getTriggerProps() {\n const { x, y, hideHoverLine } = this.asProps;\n return { x, y, hideHoverLine };\n }\n\n getPopperProps() {\n if (this.asProps.excludeAnchorProps) {\n return {\n $visible: this.state.$visible,\n ...this.state.tooltipProps,\n };\n }\n\n return {\n $visible: this.state.$visible,\n ...this.state.anchorProps,\n ...this.state.tooltipProps,\n };\n }\n\n virtualElementPosition = { x: 0, y: 0 };\n virtualTriggerElement = null;\n unsubscribe = [];\n componentDidMount() {\n const { eventEmitter, plotId } = this.asProps;\n\n this.unsubscribe.push(\n eventEmitter.subscribe(`setTooltipRenderingProps_${plotId}`, (anchorProps, tooltipProps) => {\n this.setState({ anchorProps, tooltipProps });\n }),\n eventEmitter.subscribe(`setTooltipVisible_${plotId}`, (visible) =>\n this.setState({ $visible: visible }),\n ),\n eventEmitter.subscribe(`setTooltipPosition_${plotId}`, (x, y) => {\n this.virtualElementPosition.x = x;\n this.virtualElementPosition.y = y;\n if (this.virtualTriggerElement === null) {\n this.virtualTriggerElement = {};\n setTimeout(() => {\n this.setPopperTrigger(this.virtualTriggerElement);\n }, 0);\n }\n this.virtualTriggerElement.getBoundingClientRect = () => {\n const { x, y } = this.virtualElementPosition;\n return { width: 0, height: 0, top: y, right: x, bottom: y, left: x };\n };\n this.popper.current?.update();\n }),\n );\n }\n\n componentWillUnmount() {\n this.unsubscribe.forEach((unsubscribe) => unsubscribe());\n }\n\n handleTriggerClick = (e) => {\n const { onClick } = this.asProps;\n const { xIndex, yIndex } = this.state.tooltipProps;\n\n const index = xIndex ?? yIndex;\n\n onClick?.(index, e);\n };\n\n render() {\n const { Children, children, tag, forcedAdvancedMode, onClick: _, ...other } = this.asProps;\n\n const advancedMode =\n forcedAdvancedMode ||\n !!findComponent(Children, [Tooltip.Trigger.displayName, Tooltip.Popper.displayName]);\n this.renderContext.index = -1;\n this.renderContext.indexKeysCache.clear();\n this.renderContext.patterns = this.asProps.patterns ?? this.state.tooltipProps.patterns;\n\n return (\n <TooltipDotRenderContext.Provider value={this.renderContext}>\n <Root\n render={Popper}\n visible={this.state.$visible}\n onFirstUpdate={this.handlerCancel}\n onOutsideClick={this.handlerCancel}\n interaction='none'\n explicitTriggerSet\n offset={8}\n flip={{ allowedAutoPlacements: ['left', 'right'] }}\n >\n {({ popper, setTrigger }) => {\n this.setPopperTrigger = setTrigger;\n this.popper = popper;\n this.popper.current?.update();\n return advancedMode\n ? (\n <Children />\n )\n : (\n <>\n {tag && <Tooltip.Trigger tag={tag} onClick={this.handleTriggerClick} />}\n <Tooltip.Popper {...other}>{children}</Tooltip.Popper>\n </>\n );\n }}\n </Root>\n </TooltipDotRenderContext.Provider>\n );\n }\n}\n\nfunction PopperTrigger() {\n return <Root render={Popper.Trigger} />;\n}\n\nfunction PopperPopper(props) {\n const { Element: STooltip, styles, $visible, x, y } = props;\n\n const handlerCancel = React.useCallback(() => false, []);\n\n if (!$visible) return null;\n\n return sstyled(styles)(\n <STooltip\n render={Popper.Popper}\n childrenPosition='inside'\n onMouseMove={handlerCancel}\n x={x}\n y={y}\n />,\n );\n}\nPopperPopper.style = style;\n\nfunction Title(props) {\n const STitle = Root;\n const { styles } = props;\n return sstyled(styles)(<STitle render={Box} __excludeProps={['data', 'scale']} />);\n}\nTitle.style = style;\n\nfunction Dot(props) {\n const { styles, color, Children } = props;\n const resolveColor = useColorResolver();\n const renderContext = React.useContext(TooltipDotRenderContext);\n const defaultColor = getChartDefaultColorName(renderContext.index);\n const patterns = props.patterns ?? renderContext.patterns;\n\n const key = Children;\n if (!renderContext.indexKeysCache.has(key)) {\n renderContext.indexKeysCache.add(key);\n renderContext.index += 1;\n }\n const SDotGroup = Root;\n const SDot = Box;\n const SDotCircle = Box;\n return sstyled(styles)(\n <SDotGroup render={Box} __excludeProps={['data', 'scale']}>\n {patterns\n ? (\n <SDot>\n <PatternSymbol\n color={resolveColor(color ?? defaultColor)}\n patternKey={color ?? defaultColor}\n />\n </SDot>\n )\n : (\n <SDot>\n <SDotCircle color={resolveColor(color ?? defaultColor)} />\n </SDot>\n )}\n <Children />\n </SDotGroup>,\n );\n}\nDot.style = style;\n\nfunction Footer(props) {\n const { styles } = props;\n const SFooter = Root;\n return sstyled(styles)(<SFooter render={Box} __excludeProps={['data', 'scale']} />);\n}\nFooter.style = style;\n\nconst Tooltip = createElement(TooltipRoot, {\n Trigger: PopperTrigger,\n Popper: PopperPopper,\n Title,\n Footer,\n Dot,\n});\n\nexport default Tooltip;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,cAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,IAAAM,cAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAEA,IAAAQ,MAAA,GAAAR,OAAA;AAAmD;AAAA,MAAAS,KAAA,8BAAAV,KAAA,CAAAW,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAEnD;AACA;AACA;AACA;AACA,MAAMC,uBAAuB,gBAAGC,cAAK,CAACC,aAAa,CAAC;EAAEC,KAAK,EAAE,CAAC,CAAC;EAAEC,cAAc,EAAE,IAAIC,GAAG,CAAC;AAAE,CAAC,CAAC;AAE7F,MAAMC,WAAW,SAASC,eAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,iBAK1B;MACNC,QAAQ,EAAE,KAAK;MACfC,WAAW,EAAE,CAAC,CAAC;MACfC,YAAY,EAAE,CAAC;IACjB,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,yBAEe;MAAER,KAAK,EAAE,CAAC,CAAC;MAAEC,cAAc,EAAE,IAAIC,GAAG,CAAC;IAAE,CAAC;IAAA,IAAAK,gBAAA,CAAAC,OAAA,yBAExC,MAAM,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kCAsBF;MAAEI,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,iCACf,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBACd,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BAiCMM,CAAC,IAAK;MAC1B,MAAM;QAAEC;MAAQ,CAAC,GAAG,IAAI,CAACC,OAAO;MAChC,MAAM;QAAEC,MAAM;QAAEC;MAAO,CAAC,GAAG,IAAI,CAACC,KAAK,CAACR,YAAY;MAElD,MAAMX,KAAK,GAAGiB,MAAM,IAAIC,MAAM;MAE9BH,OAAO,GAAGf,KAAK,EAAEc,CAAC,CAAC;IACrB,CAAC;EAAA;EA9DDM,eAAeA,CAAA,EAAG;IAChB,MAAM;MAAER,CAAC;MAAEC,CAAC;MAAEQ;IAAc,CAAC,GAAG,IAAI,CAACL,OAAO;IAC5C,OAAO;MAAEJ,CAAC;MAAEC,CAAC;MAAEQ;IAAc,CAAC;EAChC;EAEAC,cAAcA,CAAA,EAAG;IACf,IAAI,IAAI,CAACN,OAAO,CAACO,kBAAkB,EAAE;MACnC,OAAO;QACLd,QAAQ,EAAE,IAAI,CAACU,KAAK,CAACV,QAAQ;QAC7B,GAAG,IAAI,CAACU,KAAK,CAACR;MAChB,CAAC;IACH;IAEA,OAAO;MACLF,QAAQ,EAAE,IAAI,CAACU,KAAK,CAACV,QAAQ;MAC7B,GAAG,IAAI,CAACU,KAAK,CAACT,WAAW;MACzB,GAAG,IAAI,CAACS,KAAK,CAACR;IAChB,CAAC;EACH;EAKAa,iBAAiBA,CAAA,EAAG;IAClB,MAAM;MAAEC,YAAY;MAAEC;IAAO,CAAC,GAAG,IAAI,CAACV,OAAO;IAE7C,IAAI,CAACW,WAAW,CAACC,IAAI,CACnBH,YAAY,CAACI,SAAS,CAAC,4BAA4BH,MAAM,EAAE,EAAE,CAAChB,WAAW,EAAEC,YAAY,KAAK;MAC1F,IAAI,CAACmB,QAAQ,CAAC;QAAEpB,WAAW;QAAEC;MAAa,CAAC,CAAC;IAC9C,CAAC,CAAC,EACFc,YAAY,CAACI,SAAS,CAAC,qBAAqBH,MAAM,EAAE,EAAGK,OAAO,IAC5D,IAAI,CAACD,QAAQ,CAAC;MAAErB,QAAQ,EAAEsB;IAAQ,CAAC,CACrC,CAAC,EACDN,YAAY,CAACI,SAAS,CAAC,sBAAsBH,MAAM,EAAE,EAAE,CAACd,CAAC,EAAEC,CAAC,KAAK;MAC/D,IAAI,CAACmB,sBAAsB,CAACpB,CAAC,GAAGA,CAAC;MACjC,IAAI,CAACoB,sBAAsB,CAACnB,CAAC,GAAGA,CAAC;MACjC,IAAI,IAAI,CAACoB,qBAAqB,KAAK,IAAI,EAAE;QACvC,IAAI,CAACA,qBAAqB,GAAG,CAAC,CAAC;QAC/BC,UAAU,CAAC,MAAM;UACf,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAACF,qBAAqB,CAAC;QACnD,CAAC,EAAE,CAAC,CAAC;MACP;MACA,IAAI,CAACA,qBAAqB,CAACG,qBAAqB,GAAG,MAAM;QACvD,MAAM;UAAExB,CAAC;UAAEC;QAAE,CAAC,GAAG,IAAI,CAACmB,sBAAsB;QAC5C,OAAO;UAAEK,KAAK,EAAE,CAAC;UAAEC,MAAM,EAAE,CAAC;UAAEC,GAAG,EAAE1B,CAAC;UAAE2B,KAAK,EAAE5B,CAAC;UAAE6B,MAAM,EAAE5B,CAAC;UAAE6B,IAAI,EAAE9B;QAAE,CAAC;MACtE,CAAC;MACD,IAAI,CAAC+B,MAAM,CAACC,OAAO,EAAEC,MAAM,CAAC,CAAC;IAC/B,CAAC,CACH,CAAC;EACH;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAACnB,WAAW,CAACoB,OAAO,CAAEpB,WAAW,IAAKA,WAAW,CAAC,CAAC,CAAC;EAC1D;EAWAqB,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAAjC,OAAA;IACP,MAAM;MAAEkC,QAAQ;MAAEC,QAAQ;MAAEC,GAAG;MAAEC,kBAAkB;MAAEtC,OAAO,EAAEuC,CAAC;MAAE,GAAGC;IAAM,CAAC,GAAG,IAAI,CAACvC,OAAO;IAE1F,MAAMwC,YAAY,GAChBH,kBAAkB,IAClB,CAAC,CAAC,IAAAI,sBAAa,EAACP,QAAQ,EAAE,CAACQ,OAAO,CAACC,OAAO,CAACC,WAAW,EAAEF,OAAO,CAACG,MAAM,CAACD,WAAW,CAAC,CAAC;IACtF,IAAI,CAACE,aAAa,CAAC9D,KAAK,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC8D,aAAa,CAAC7D,cAAc,CAAC8D,KAAK,CAAC,CAAC;IACzC,IAAI,CAACD,aAAa,CAACE,QAAQ,GAAG,IAAI,CAAChD,OAAO,CAACgD,QAAQ,IAAI,IAAI,CAAC7C,KAAK,CAACR,YAAY,CAACqD,QAAQ;IAEvF,oBACE1E,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACpE,uBAAuB,CAACqE,QAAQ;MAACC,KAAK,EAAE,IAAI,CAACL;IAAc,gBAC1DxE,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CACUJ,sBAAM,MAAA7E,KAAA,CAAAoF,WAAA;MAAA,WACL,IAAI,CAACjD,KAAK,CAACV,QAAQ;MAAA,iBACb,IAAI,CAAC4D,aAAa;MAAA,kBACjB,IAAI,CAACA,aAAa;MAAA,eACtB,MAAM;MAAA;MAAA,UAEV,CAAC;MAAA,QACH;QAAEC,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO;MAAE;IAAC,GAAArB,IAAA,GAEjD,CAAC;MAAEN,MAAM;MAAE4B;IAAW,CAAC,KAAK;MAC3B,IAAI,CAACpC,gBAAgB,GAAGoC,UAAU;MAClC,IAAI,CAAC5B,MAAM,GAAGA,MAAM;MACpB,IAAI,CAACA,MAAM,CAACC,OAAO,EAAEC,MAAM,CAAC,CAAC;MAC7B,OAAOW,YAAY,gBAEblE,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACf,QAAQ,MAAE,CAAC,gBAGZ5D,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAAA3E,MAAA,CAAAkB,OAAA,CAAAgE,QAAA,QACGpB,GAAG,iBAAI9D,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACP,OAAO,CAACC,OAAO;QAACP,GAAG,EAAEA,GAAI;QAACrC,OAAO,EAAE,IAAI,CAAC0D;MAAmB,CAAE,CAAC,eACvEnF,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACP,OAAO,CAACG,MAAM,EAAKN,KAAK,EAAGJ,QAAyB,CACrD,CACH;IACP,CACI,CAC0B,CAAC;EAEvC;AACF;AAAC,IAAA5C,gBAAA,CAAAC,OAAA,EAxHKL,WAAW,iBACM,SAAS;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EAD1BL,WAAW,WAGAT,KAAK;AAuHtB,SAASgF,aAAaA,CAAA,EAAG;EAAA,IAAAC,KAAA,GAAAC,YAAA;EACvB,oBAAOtF,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAAcJ,sBAAM,CAACF,OAAO,MAAA3E,KAAA,CAAAoF,WAAA,MAAAO,KAAA,CAAG,CAAC;AACzC;AAEA,SAASE,YAAYA,CAACC,KAAK,EAAE;EAAA,IAAAC,KAAA;EAC3B,MAAM;IAAEC,OAAO,EAAEC,QAAQ;IAAEC,MAAM;IAAEzE,QAAQ;IAAEG,CAAC;IAAEC;EAAE,CAAC,GAAGiE,KAAK;EAE3D,MAAMT,aAAa,GAAGvE,cAAK,CAACqF,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;EAExD,IAAI,CAAC1E,QAAQ,EAAE,OAAO,IAAI;EAE1B,OAAAsE,KAAA,GAAO,IAAApF,aAAO,EAACuF,MAAM,CAAC,eACpB5F,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACgB,QAAQ,EAAAF,KAAA,CAAAK,EAAA;IAAA,UACCvB,sBAAM,CAACA,MAAM;IAAA,oBACJ,QAAQ;IAAA,eACZQ,aAAa;IAAA,KACvBzD,CAAC;IAAA,KACDC;EAAC,EACL,CAAC;AAEN;AACAgE,YAAY,CAACnF,KAAK,GAAGA,KAAK;AAE1B,SAAS2F,KAAKA,CAACP,KAAK,EAAE;EAAA,IAAAQ,KAAA,GAAAV,YAAA;IAAAW,KAAA;EACpB,MAAMC,MAAM,GAE2BC,mBAAG;EAD1C,MAAM;IAAEP;EAAO,CAAC,GAAGJ,KAAK;EACxB,OAAAS,KAAA,GAAO,IAAA5F,aAAO,EAACuF,MAAM,CAAC,eAAC5F,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACuB,MAAM,EAAAD,KAAA,CAAAH,EAAA;IAAA,OAAApG,KAAA,CAAAoF,WAAA;MAAA,kBAA8B,CAAC,MAAM,EAAE,OAAO;IAAC,GAAAkB,KAAA;EAAA,EAAG,CAAC;AACnF;AACAD,KAAK,CAAC3F,KAAK,GAAGA,KAAK;AAEnB,SAASgG,GAAGA,CAACZ,KAAK,EAAE;EAAA,IAAAa,KAAA,GAAAf,YAAA;IAAAgB,KAAA;EAClB,MAAM;IAAEV,MAAM;IAAEW,KAAK;IAAE3C;EAAS,CAAC,GAAG4B,KAAK;EACzC,MAAMgB,YAAY,GAAG,IAAAC,kCAAgB,EAAC,CAAC;EACvC,MAAMjC,aAAa,GAAGhE,cAAK,CAACkG,UAAU,CAACnG,uBAAuB,CAAC;EAC/D,MAAMoG,YAAY,GAAG,IAAAC,+BAAwB,EAACpC,aAAa,CAAC9D,KAAK,CAAC;EAClE,MAAMgE,QAAQ,GAAGc,KAAK,CAACd,QAAQ,IAAIF,aAAa,CAACE,QAAQ;EAEzD,MAAMmC,GAAG,GAAGjD,QAAQ;EACpB,IAAI,CAACY,aAAa,CAAC7D,cAAc,CAACmG,GAAG,CAACD,GAAG,CAAC,EAAE;IAC1CrC,aAAa,CAAC7D,cAAc,CAACoG,GAAG,CAACF,GAAG,CAAC;IACrCrC,aAAa,CAAC9D,KAAK,IAAI,CAAC;EAC1B;EACA,MAAMsG,SAAS,GAIMb,mBAAG;EAHxB,MAAMc,IAAI,GAAGd,mBAAG;EAChB,MAAMe,UAAU,GAAGf,mBAAG;EACtB,OAAAG,KAAA,GAAO,IAAAjG,aAAO,EAACuF,MAAM,CAAC,eACpB5F,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACqC,SAAS,EAAAV,KAAA,CAAAR,EAAA;IAAA,OAAApG,KAAA,CAAAoF,WAAA;MAAA,kBAA8B,CAAC,MAAM,EAAE,OAAO;IAAC,GAAAuB,KAAA;EAAA,IACtD3B,QAAQ,gBAEH1E,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACsC,IAAI,EAAAX,KAAA,CAAAR,EAAA,2BACH9F,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACzE,QAAA,CAAAiH,aAAa,EAAAb,KAAA,CAAAR,EAAA;IAAA,SACLU,YAAY,CAACD,KAAK,IAAII,YAAY,CAAC;IAAA,cAC9BJ,KAAK,IAAII;EAAY,EAClC,CACG,CAAC,gBAGP3G,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACsC,IAAI,EAAAX,KAAA,CAAAR,EAAA,2BACH9F,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACuC,UAAU,EAAAZ,KAAA,CAAAR,EAAA;IAAA,SAAQU,YAAY,CAACD,KAAK,IAAII,YAAY;EAAC,EAAG,CACrD,CACP,eACL3G,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAACf,QAAQ,EAAA0C,KAAA,CAAAR,EAAA,gBAAE,CACF,CAAC;AAEhB;AACAM,GAAG,CAAChG,KAAK,GAAGA,KAAK;AAEjB,SAASgH,MAAMA,CAAC5B,KAAK,EAAE;EAAA,IAAA6B,KAAA,GAAA/B,YAAA;IAAAgC,KAAA;EACrB,MAAM;IAAE1B;EAAO,CAAC,GAAGJ,KAAK;EACxB,MAAM+B,OAAO,GAC2BpB,mBAAG;EAA3C,OAAAmB,KAAA,GAAO,IAAAjH,aAAO,EAACuF,MAAM,CAAC,eAAC5F,MAAA,CAAAkB,OAAA,CAAAyD,aAAA,CAAC4C,OAAO,EAAAD,KAAA,CAAAxB,EAAA;IAAA,OAAApG,KAAA,CAAAoF,WAAA;MAAA,kBAA8B,CAAC,MAAM,EAAE,OAAO;IAAC,GAAAuC,KAAA;EAAA,EAAG,CAAC;AACpF;AACAD,MAAM,CAAChH,KAAK,GAAGA,KAAK;AAEpB,MAAMgE,OAAO,GAAG,IAAAO,sBAAa,EAAC9D,WAAW,EAAE;EACzCwD,OAAO,EAAEe,aAAa;EACtBb,MAAM,EAAEgB,YAAY;EACpBQ,KAAK;EACLqB,MAAM;EACNhB;AACF,CAAC,CAAC;AAAC,IAAAoB,QAAA,GAAAC,OAAA,CAAAvG,OAAA,GAEYkD,OAAO","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["_core","require","_baseComponents","_findComponent","_interopRequireDefault","_useColorResolver","_react","_createElement","_Pattern","_utils","style","sstyled","insert","TooltipDotRenderContext","React","createContext","index","indexKeysCache","Set","TooltipRoot","Component","constructor","args","_defineProperty2","default","$visible","anchorProps","tooltipProps","x","y","e","onClick","asProps","xIndex","yIndex","state","getTriggerProps","hideHoverLine","getPopperProps","excludeAnchorProps","componentDidMount","eventEmitter","plotId","unsubscribe","push","subscribe","setState","visible","virtualElementPosition","virtualTriggerElement","setTimeout","setPopperTrigger","getBoundingClientRect","width","height","top","right","bottom","left","popper","current","update","componentWillUnmount","forEach","render","_ref","Children","children","tag","forcedAdvancedMode","_","other","advancedMode","findComponent","Tooltip","Trigger","displayName","Popper","renderContext","clear","patterns","createElement","Provider","value","assignProps","handlerCancel","allowedAutoPlacements","setTrigger","Fragment","handleTriggerClick","PopperTrigger","_ref2","arguments[0]","PopperPopper","props","_ref6","Element","STooltip","styles","useCallback","cn","Title","_ref3","_ref7","STitle","Box","Dot","_ref4","_ref8","color","resolveColor","useColorResolver","useContext","defaultColor","getChartDefaultColorName","key","has","add","SDotGroup","SDot","SDotCircle","undefined","PatternSymbol","Footer","_ref5","_ref9","SFooter","_default","exports"],"sources":["../../src/Tooltip.jsx"],"sourcesContent":["import { Popper, Box } from '@semcore/base-components';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport findComponent from '@semcore/core/lib/utils/findComponent';\nimport { useColorResolver } from '@semcore/core/lib/utils/use/useColorResolver';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternSymbol } from './Pattern';\nimport style from './style/tooltip.shadow.css';\nimport { getChartDefaultColorName } from './utils';\n\n/**\n * `TooltipDotRenderContext` is a hack to bypass problem that getDotProps doesn't work for D3 tooltip.\n * Probably it may be removed after migrating to a new core.\n */\nconst TooltipDotRenderContext = React.createContext({ index: -1, indexKeysCache: new Set() });\n\nclass TooltipRoot extends Component {\n static displayName = 'Tooltip';\n\n static style = style;\n\n state = {\n $visible: false,\n anchorProps: {},\n tooltipProps: {},\n };\n\n renderContext = { index: -1, indexKeysCache: new Set() };\n\n handlerCancel = () => false;\n\n getTriggerProps() {\n const { x, y, hideHoverLine } = this.asProps;\n return { x, y, hideHoverLine };\n }\n\n getPopperProps() {\n if (this.asProps.excludeAnchorProps) {\n return {\n $visible: this.state.$visible,\n ...this.state.tooltipProps,\n };\n }\n\n return {\n $visible: this.state.$visible,\n ...this.state.anchorProps,\n ...this.state.tooltipProps,\n };\n }\n\n virtualElementPosition = { x: 0, y: 0 };\n virtualTriggerElement = null;\n unsubscribe = [];\n componentDidMount() {\n const { eventEmitter, plotId } = this.asProps;\n\n this.unsubscribe.push(\n eventEmitter.subscribe(`setTooltipRenderingProps_${plotId}`, (anchorProps, tooltipProps) => {\n this.setState({ anchorProps, tooltipProps });\n }),\n eventEmitter.subscribe(`setTooltipVisible_${plotId}`, (visible) =>\n this.setState({ $visible: visible }),\n ),\n eventEmitter.subscribe(`setTooltipPosition_${plotId}`, (x, y) => {\n this.virtualElementPosition.x = x;\n this.virtualElementPosition.y = y;\n if (this.virtualTriggerElement === null) {\n this.virtualTriggerElement = {};\n setTimeout(() => {\n this.setPopperTrigger(this.virtualTriggerElement);\n }, 0);\n }\n this.virtualTriggerElement.getBoundingClientRect = () => {\n const { x, y } = this.virtualElementPosition;\n return { width: 0, height: 0, top: y, right: x, bottom: y, left: x };\n };\n this.popper.current?.update();\n }),\n );\n }\n\n componentWillUnmount() {\n this.unsubscribe.forEach((unsubscribe) => unsubscribe());\n }\n\n handleTriggerClick = (e) => {\n const { onClick } = this.asProps;\n const { xIndex, yIndex } = this.state.tooltipProps;\n\n const index = xIndex ?? yIndex;\n\n onClick?.(index, e);\n };\n\n render() {\n const { Children, children, tag, forcedAdvancedMode, onClick: _, ...other } = this.asProps;\n\n const advancedMode =\n forcedAdvancedMode ||\n !!findComponent(Children, [Tooltip.Trigger.displayName, Tooltip.Popper.displayName]);\n this.renderContext.index = -1;\n this.renderContext.indexKeysCache.clear();\n this.renderContext.patterns = this.asProps.patterns ?? this.state.tooltipProps.patterns;\n\n return (\n <TooltipDotRenderContext.Provider value={this.renderContext}>\n <Root\n render={Popper}\n visible={this.state.$visible}\n onFirstUpdate={this.handlerCancel}\n onOutsideClick={this.handlerCancel}\n interaction='none'\n explicitTriggerSet\n offset={8}\n flip={{ allowedAutoPlacements: ['left', 'right'] }}\n >\n {({ popper, setTrigger }) => {\n this.setPopperTrigger = setTrigger;\n this.popper = popper;\n this.popper.current?.update();\n return advancedMode\n ? (\n <Children />\n )\n : (\n <>\n {tag && <Tooltip.Trigger tag={tag} onClick={this.handleTriggerClick} />}\n <Tooltip.Popper {...other}>{children}</Tooltip.Popper>\n </>\n );\n }}\n </Root>\n </TooltipDotRenderContext.Provider>\n );\n }\n}\n\nfunction PopperTrigger() {\n return <Root render={Popper.Trigger} />;\n}\n\nfunction PopperPopper(props) {\n const { Element: STooltip, styles, $visible, x, y } = props;\n\n const handlerCancel = React.useCallback(() => false, []);\n\n if (!$visible) return null;\n\n return sstyled(styles)(\n <STooltip\n render={Popper.Popper}\n childrenPosition='inside'\n onMouseMove={handlerCancel}\n x={x}\n y={y}\n />,\n );\n}\nPopperPopper.style = style;\n\nfunction Title(props) {\n const STitle = Root;\n const { styles } = props;\n\n return sstyled(styles)(<STitle render={Box} __excludeProps={['data', 'scale']} />);\n}\nTitle.style = style;\n\nfunction Dot(props) {\n const { styles, color, Children } = props;\n const resolveColor = useColorResolver();\n const renderContext = React.useContext(TooltipDotRenderContext);\n const defaultColor = getChartDefaultColorName(renderContext.index);\n const patterns = props.patterns ?? renderContext.patterns;\n\n const key = Children;\n if (!renderContext.indexKeysCache.has(key)) {\n renderContext.indexKeysCache.add(key);\n renderContext.index += 1;\n }\n const SDotGroup = Root;\n const SDot = Box;\n const SDotCircle = Box;\n return sstyled(styles)(\n <SDotGroup render={Box} use:color={undefined} __excludeProps={['data', 'scale']}>\n {patterns\n ? (\n <SDot>\n <PatternSymbol\n color={resolveColor(color ?? defaultColor)}\n patternKey={color ?? defaultColor}\n />\n </SDot>\n )\n : (\n <SDot>\n <SDotCircle color={resolveColor(color ?? defaultColor)} />\n </SDot>\n )}\n <Children />\n </SDotGroup>,\n );\n}\nDot.style = style;\n\nfunction Footer(props) {\n const { styles } = props;\n const SFooter = Root;\n return sstyled(styles)(<SFooter render={Box} __excludeProps={['data', 'scale']} />);\n}\nFooter.style = style;\n\nconst Tooltip = createElement(TooltipRoot, {\n Trigger: PopperTrigger,\n Popper: PopperPopper,\n Title,\n Footer,\n Dot,\n});\n\nexport default Tooltip;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/cjs/Venn.js
CHANGED
|
@@ -19,17 +19,17 @@ var _Pattern = require("./Pattern");
|
|
|
19
19
|
var _Tooltip = _interopRequireDefault(require("./Tooltip"));
|
|
20
20
|
var _utils = require("./utils");
|
|
21
21
|
/*!__reshadow-styles__:"./style/venn.shadow.css"*/
|
|
22
|
-
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
22
|
+
const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SCircle_iobh3_gg_{fill:var(--intergalactic-chart-palette-order-2,#38e3b5);stroke:var(--intergalactic-chart-grid-border,#fff);stroke-width:2px;fill-opacity:.5;transition-property:cx,cy;transition-duration:var(--duration_iobh3);transition-timing-function:ease-in-out}@media (hover:hover){.___SCircle_iobh3_gg_:hover{fill-opacity:.7}}.___SCircle_iobh3_gg_.__color_iobh3_gg_{fill:var(--color_iobh3)}.___SCircle_iobh3_gg_.__pattern_iobh3_gg_.__color_iobh3_gg_{fill:var(--pattern_iobh3);fill-opacity:.7;stroke:var(--color_iobh3);stroke-width:1px}@media (hover:hover){.___SCircle_iobh3_gg_.__pattern_iobh3_gg_.__color_iobh3_gg_:hover{fill-opacity:.85}}.___SCircle_iobh3_gg_.__transparent_iobh3_gg_{opacity:.3}.___SIntersection_iobh3_gg_{stroke:var(--intergalactic-chart-grid-border,#fff);stroke-width:2px;fill-opacity:0}@media (hover:hover){.___SIntersection_iobh3_gg_:hover{fill-opacity:.1}}.___SIntersection_iobh3_gg_.__transparent_iobh3_gg_{opacity:.3}", /*__inner_css_end__*/"iobh3_gg_"),
|
|
23
23
|
/*__reshadow_css_end__*/
|
|
24
24
|
{
|
|
25
|
-
"__SCircle": "
|
|
26
|
-
"_color": "
|
|
27
|
-
"--color": "--
|
|
28
|
-
"_transparent": "
|
|
29
|
-
"__SIntersection": "
|
|
30
|
-
"--duration": "--
|
|
31
|
-
"_pattern": "
|
|
32
|
-
"--pattern": "--
|
|
25
|
+
"__SCircle": "___SCircle_iobh3_gg_",
|
|
26
|
+
"_color": "__color_iobh3_gg_",
|
|
27
|
+
"--color": "--color_iobh3",
|
|
28
|
+
"_transparent": "__transparent_iobh3_gg_",
|
|
29
|
+
"__SIntersection": "___SIntersection_iobh3_gg_",
|
|
30
|
+
"--duration": "--duration_iobh3",
|
|
31
|
+
"_pattern": "__pattern_iobh3_gg_",
|
|
32
|
+
"--pattern": "--pattern_iobh3"
|
|
33
33
|
});
|
|
34
34
|
class VennRoot extends _core.Component {
|
|
35
35
|
constructor(...args) {
|
|
@@ -245,6 +245,12 @@ function VennTooltip(props) {
|
|
|
245
245
|
}));
|
|
246
246
|
}
|
|
247
247
|
;
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Venn
|
|
251
|
+
*
|
|
252
|
+
* {@link https://developer.semrush.com/intergalactic/data-display/venn-chart/venn-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/venn-chart/venn-chart-code/|Examples}
|
|
253
|
+
*/
|
|
248
254
|
const Venn = (0, _createElement.default)(VennRoot, {
|
|
249
255
|
Circle,
|
|
250
256
|
Intersection,
|
package/lib/cjs/Venn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Venn.js","names":["_core","require","_baseComponents","_assignProps2","_canUseDOM","_interopRequireDefault","_uniqueID","_venn","_react","_createElement","_Pattern","_Tooltip","_utils","style","sstyled","insert","VennRoot","Component","constructor","args","_defineProperty2","default","canUseDOM","document","createElement","visible","props","tooltipProps","clientX","clientY","eventEmitter","plotId","asProps","emit","React","forwardRef","ref","FadeInOut","_extends2","tag","generateGetBoundingClientRect","x","y","width","height","top","right","bottom","left","getVennData","data","orientation","orientationOrder","size","vennData","Object","entries","map","dataKey","sets","split","scaleSolution","normalizeSolution","venn","getTooltipProps","uniqId","uid","getCircleProps","index","colorBackwardCapabilityOffset","color","getChartDefaultColorName","name","patterns","duration","originalData","onMouseMove","bindHandlerTooltip","onMouseLeave","transparent","resolveColor","minRadius","onClickCircleRoot","handlerOnClick","bind","getIntersectionProps","dataKeys","delay","values","filter","d","includes","setid","onClickIntersectionRoot","e","stopPropagation","onClick","render","Element","dataHintsHandler","establishDataType","renderElement","childrenPosition","Math","PI","c1","c2","radius","uniqueIDEnhancement","Circle","SCircle","styles","_ref2","describeValueEntity","Fragment","cn","undefined","callAllEventHandlers","PatternFill","Intersection","_ref3","SIntersection","renderIntersection","useCallback","intersectionAreaPath","VennTooltip","_ref","arguments[0]","_ref4","SVennTooltip","Tooltip","assignProps","Venn","_______childrenComponents","_default","exports"],"sources":["../../src/Venn.jsx"],"sourcesContent":["import { FadeInOut } from '@semcore/base-components';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { venn, normalizeSolution, scaleSolution, intersectionAreaPath } from '@upsetjs/venn.js';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/venn.shadow.css';\nimport Tooltip from './Tooltip';\nimport { getChartDefaultColorName } from './utils';\n\nclass VennRoot extends Component {\n static displayName = 'Venn';\n static style = style;\n\n static defaultProps = {\n orientation: Math.PI / 2,\n orientationOrder: (c1, c2) => c2.radius - c1.radius,\n duration: 500,\n minRadius: 6,\n };\n\n static enhance = [uniqueIDEnhancement()];\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX, clientY }) => {\n const { eventEmitter, plotId } = this.asProps;\n\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, props, tooltipProps);\n eventEmitter.emit(`setTooltipVisible_${plotId}`, visible);\n };\n\n getVennData() {\n const { data, orientation, orientationOrder, size } = this.asProps;\n const [width, height] = size;\n const vennData = Object.entries(data).map(([dataKey, size]) => ({\n sets: dataKey.split('/'),\n size,\n }));\n return scaleSolution(\n normalizeSolution(venn(vennData), orientation, orientationOrder),\n width,\n height,\n 10,\n );\n }\n\n getTooltipProps() {\n return {\n uniqId: this.asProps.uid,\n };\n }\n\n getCircleProps(props, index) {\n const colorBackwardCapabilityOffset = 1;\n const color = props.color || getChartDefaultColorName(index + colorBackwardCapabilityOffset);\n const tooltipProps = {\n dataKey: props.dataKey,\n name: props.name,\n color,\n patterns: this.asProps.patterns,\n };\n\n return {\n duration: this.asProps.duration,\n data: this.vennData[props.dataKey],\n originalData: this.asProps.data[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props, tooltipProps),\n onMouseLeave: this.bindHandlerTooltip(false, props, tooltipProps),\n transparent: this.asProps.transparent,\n resolveColor: this.asProps.resolveColor,\n color,\n uid: `${this.asProps.uid}-${index}`,\n patterns: this.asProps.patterns,\n minRadius: this.asProps.minRadius,\n onClickCircleRoot: this.handlerOnClick(props.dataKey).bind(this),\n };\n }\n\n getIntersectionProps(props) {\n const { duration, transparent } = this.asProps;\n const dataKeys = props.dataKey.split('/');\n const tooltipProps = {\n dataKey: props.dataKey,\n name: props.name,\n color: props.color,\n duration: props.duration,\n transparent: props.transparent,\n };\n\n return {\n duration,\n delay: duration,\n data: Object.values(this.vennData).filter((d) => dataKeys.includes(d.setid)),\n originalData: this.asProps.data[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props, tooltipProps),\n onMouseLeave: this.bindHandlerTooltip(false, props, tooltipProps),\n transparent,\n resolveColor: this.asProps.resolveColor,\n onClickIntersectionRoot: this.handlerOnClick(props.dataKey).bind(this),\n };\n }\n\n renderElement = React.forwardRef((props, ref) => {\n return <FadeInOut aria-hidden ref={ref} tag='g' visible {...props} />;\n });\n\n handlerOnClick(dataKey) {\n return (e) => {\n e.stopPropagation();\n\n const { onClick } = this.asProps;\n\n if (!onClick) return;\n\n onClick(dataKey, e);\n };\n }\n\n render() {\n const Element = this.Element;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n this.vennData = this.getVennData();\n return (\n <Element\n aria-hidden\n render={this.renderElement}\n childrenPosition='inside'\n vennData={this.vennData}\n />\n );\n }\n}\n\nfunction Circle({\n Element: SCircle,\n styles,\n color,\n resolveColor,\n data,\n duration,\n name,\n dataKey,\n dataHintsHandler,\n transparent,\n uid,\n patterns,\n minRadius,\n onClick,\n onClickCircleRoot,\n}) {\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n const radius = data.radius < minRadius ? minRadius : data.radius;\n if (data.radius === 0) return null;\n\n return (\n <>\n {sstyled(styles)(\n <SCircle\n aria-hidden\n render='circle'\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-pattern)` : undefined}\n cx={data.x}\n cy={data.y}\n r={radius}\n transparent={transparent}\n use:duration={`${duration}ms`}\n onClickCapture={callAllEventHandlers(onClickCircleRoot, onClick)}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n </>\n );\n}\n\nfunction Intersection(props) {\n const {\n Element: SIntersection,\n styles,\n data,\n name,\n dataKey,\n dataHintsHandler,\n transparent,\n onClick,\n onClickIntersectionRoot,\n } = props;\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n const renderIntersection = React.useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut aria-hidden ref={ref} tag='path' visible {...props} />;\n }),\n [props],\n );\n return sstyled(styles)(\n <SIntersection\n aria-hidden\n render={renderIntersection}\n d={intersectionAreaPath(data)}\n transparent={transparent}\n onClickCapture={callAllEventHandlers(onClickIntersectionRoot, onClick)}\n />,\n );\n}\n\nfunction VennTooltip(props) {\n const SVennTooltip = Root;\n return sstyled(props.styles)(<SVennTooltip render={Tooltip} excludeAnchorProps />);\n};\n\nconst Venn = createElement(VennRoot, {\n Circle,\n Intersection,\n Tooltip: [VennTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Venn;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Venn.js","names":["_core","require","_baseComponents","_assignProps2","_canUseDOM","_interopRequireDefault","_uniqueID","_venn","_react","_createElement","_Pattern","_Tooltip","_utils","style","sstyled","insert","VennRoot","Component","constructor","args","_defineProperty2","default","canUseDOM","document","createElement","visible","props","tooltipProps","clientX","clientY","eventEmitter","plotId","asProps","emit","React","forwardRef","ref","FadeInOut","_extends2","tag","generateGetBoundingClientRect","x","y","width","height","top","right","bottom","left","getVennData","data","orientation","orientationOrder","size","vennData","Object","entries","map","dataKey","sets","split","scaleSolution","normalizeSolution","venn","getTooltipProps","uniqId","uid","getCircleProps","index","colorBackwardCapabilityOffset","color","getChartDefaultColorName","name","patterns","duration","originalData","onMouseMove","bindHandlerTooltip","onMouseLeave","transparent","resolveColor","minRadius","onClickCircleRoot","handlerOnClick","bind","getIntersectionProps","dataKeys","delay","values","filter","d","includes","setid","onClickIntersectionRoot","e","stopPropagation","onClick","render","Element","dataHintsHandler","establishDataType","renderElement","childrenPosition","Math","PI","c1","c2","radius","uniqueIDEnhancement","Circle","SCircle","styles","_ref2","describeValueEntity","Fragment","cn","undefined","callAllEventHandlers","PatternFill","Intersection","_ref3","SIntersection","renderIntersection","useCallback","intersectionAreaPath","VennTooltip","_ref","arguments[0]","_ref4","SVennTooltip","Tooltip","assignProps","Venn","_______childrenComponents","_default","exports"],"sources":["../../src/Venn.jsx"],"sourcesContent":["import { FadeInOut } from '@semcore/base-components';\nimport { Component, Root, sstyled } from '@semcore/core';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID';\nimport { venn, normalizeSolution, scaleSolution, intersectionAreaPath } from '@upsetjs/venn.js';\nimport React from 'react';\n\nimport createElement from './createElement';\nimport { PatternFill } from './Pattern';\nimport style from './style/venn.shadow.css';\nimport Tooltip from './Tooltip';\nimport { getChartDefaultColorName } from './utils';\n\nclass VennRoot extends Component {\n static displayName = 'Venn';\n static style = style;\n\n static defaultProps = {\n orientation: Math.PI / 2,\n orientationOrder: (c1, c2) => c2.radius - c1.radius,\n duration: 500,\n minRadius: 6,\n };\n\n static enhance = [uniqueIDEnhancement()];\n\n virtualElement = canUseDOM() ? document.createElement('div') : {};\n\n generateGetBoundingClientRect(x = 0, y = 0) {\n return () => ({ width: 0, height: 0, top: y, right: x, bottom: y, left: x });\n }\n\n bindHandlerTooltip = (visible, props, tooltipProps) => ({ clientX, clientY }) => {\n const { eventEmitter, plotId } = this.asProps;\n\n eventEmitter.emit(`setTooltipPosition_${plotId}`, clientX, clientY);\n eventEmitter.emit(`setTooltipRenderingProps_${plotId}`, props, tooltipProps);\n eventEmitter.emit(`setTooltipVisible_${plotId}`, visible);\n };\n\n getVennData() {\n const { data, orientation, orientationOrder, size } = this.asProps;\n const [width, height] = size;\n const vennData = Object.entries(data).map(([dataKey, size]) => ({\n sets: dataKey.split('/'),\n size,\n }));\n return scaleSolution(\n normalizeSolution(venn(vennData), orientation, orientationOrder),\n width,\n height,\n 10,\n );\n }\n\n getTooltipProps() {\n return {\n uniqId: this.asProps.uid,\n };\n }\n\n getCircleProps(props, index) {\n const colorBackwardCapabilityOffset = 1;\n const color = props.color || getChartDefaultColorName(index + colorBackwardCapabilityOffset);\n const tooltipProps = {\n dataKey: props.dataKey,\n name: props.name,\n color,\n patterns: this.asProps.patterns,\n };\n\n return {\n duration: this.asProps.duration,\n data: this.vennData[props.dataKey],\n originalData: this.asProps.data[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props, tooltipProps),\n onMouseLeave: this.bindHandlerTooltip(false, props, tooltipProps),\n transparent: this.asProps.transparent,\n resolveColor: this.asProps.resolveColor,\n color,\n uid: `${this.asProps.uid}-${index}`,\n patterns: this.asProps.patterns,\n minRadius: this.asProps.minRadius,\n onClickCircleRoot: this.handlerOnClick(props.dataKey).bind(this),\n };\n }\n\n getIntersectionProps(props) {\n const { duration, transparent } = this.asProps;\n const dataKeys = props.dataKey.split('/');\n const tooltipProps = {\n dataKey: props.dataKey,\n name: props.name,\n color: props.color,\n duration: props.duration,\n transparent: props.transparent,\n };\n\n return {\n duration,\n delay: duration,\n data: Object.values(this.vennData).filter((d) => dataKeys.includes(d.setid)),\n originalData: this.asProps.data[props.dataKey],\n onMouseMove: this.bindHandlerTooltip(true, props, tooltipProps),\n onMouseLeave: this.bindHandlerTooltip(false, props, tooltipProps),\n transparent,\n resolveColor: this.asProps.resolveColor,\n onClickIntersectionRoot: this.handlerOnClick(props.dataKey).bind(this),\n };\n }\n\n renderElement = React.forwardRef((props, ref) => {\n return <FadeInOut aria-hidden ref={ref} tag='g' visible {...props} />;\n });\n\n handlerOnClick(dataKey) {\n return (e) => {\n e.stopPropagation();\n\n const { onClick } = this.asProps;\n\n if (!onClick) return;\n\n onClick(dataKey, e);\n };\n }\n\n render() {\n const Element = this.Element;\n this.asProps.dataHintsHandler.establishDataType('values-set');\n this.vennData = this.getVennData();\n return (\n <Element\n aria-hidden\n render={this.renderElement}\n childrenPosition='inside'\n vennData={this.vennData}\n />\n );\n }\n}\n\nfunction Circle({\n Element: SCircle,\n styles,\n color,\n resolveColor,\n data,\n duration,\n name,\n dataKey,\n dataHintsHandler,\n transparent,\n uid,\n patterns,\n minRadius,\n onClick,\n onClickCircleRoot,\n}) {\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n const radius = data.radius < minRadius ? minRadius : data.radius;\n if (data.radius === 0) return null;\n\n return (\n <>\n {sstyled(styles)(\n <SCircle\n aria-hidden\n render='circle'\n color={resolveColor(color)}\n pattern={patterns ? `url(#${uid}-pattern)` : undefined}\n cx={data.x}\n cy={data.y}\n r={radius}\n transparent={transparent}\n use:duration={`${duration}ms`}\n onClickCapture={callAllEventHandlers(onClickCircleRoot, onClick)}\n />,\n )}\n {patterns && (\n <PatternFill\n id={`${uid}-pattern`}\n patternKey={color}\n color={resolveColor(color)}\n patterns={patterns}\n />\n )}\n </>\n );\n}\n\nfunction Intersection(props) {\n const {\n Element: SIntersection,\n styles,\n data,\n name,\n dataKey,\n dataHintsHandler,\n transparent,\n onClick,\n onClickIntersectionRoot,\n } = props;\n dataHintsHandler.describeValueEntity(dataKey, name);\n\n const renderIntersection = React.useCallback(\n React.forwardRef((props, ref) => {\n return <FadeInOut aria-hidden ref={ref} tag='path' visible {...props} />;\n }),\n [props],\n );\n return sstyled(styles)(\n <SIntersection\n aria-hidden\n render={renderIntersection}\n d={intersectionAreaPath(data)}\n transparent={transparent}\n onClickCapture={callAllEventHandlers(onClickIntersectionRoot, onClick)}\n />,\n );\n}\n\nfunction VennTooltip(props) {\n const SVennTooltip = Root;\n return sstyled(props.styles)(<SVennTooltip render={Tooltip} excludeAnchorProps />);\n};\n\n/**\n * Venn\n *\n * {@link https://developer.semrush.com/intergalactic/data-display/venn-chart/venn-chart-api/|API} | {@link https://developer.semrush.com/intergalactic/data-display/venn-chart/venn-chart-code/|Examples}\n */\nconst Venn = createElement(VennRoot, {\n Circle,\n Intersection,\n Tooltip: [VennTooltip, Tooltip._______childrenComponents],\n});\n\nexport default Venn;\n"],"mappings":";;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAH,sBAAA,CAAAJ,OAAA;AAEA,IAAAQ,cAAA,GAAAJ,sBAAA,CAAAJ,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AAEA,IAAAU,QAAA,GAAAN,sBAAA,CAAAJ,OAAA;AACA,IAAAW,MAAA,GAAAX,OAAA;AAAmD;AAAA,MAAAY,KAAA,8BAAAb,KAAA,CAAAc,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAEnD,MAAMC,QAAQ,SAASC,eAAS,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,0BAad,IAAAC,kBAAS,EAAC,CAAC,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,8BAM5C,CAACI,OAAO,EAAEC,KAAK,EAAEC,YAAY,KAAK,CAAC;MAAEC,OAAO;MAAEC;IAAQ,CAAC,KAAK;MAC/E,MAAM;QAAEC,YAAY;QAAEC;MAAO,CAAC,GAAG,IAAI,CAACC,OAAO;MAE7CF,YAAY,CAACG,IAAI,CAAC,sBAAsBF,MAAM,EAAE,EAAEH,OAAO,EAAEC,OAAO,CAAC;MACnEC,YAAY,CAACG,IAAI,CAAC,4BAA4BF,MAAM,EAAE,EAAEL,KAAK,EAAEC,YAAY,CAAC;MAC5EG,YAAY,CAACG,IAAI,CAAC,qBAAqBF,MAAM,EAAE,EAAEN,OAAO,CAAC;IAC3D,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,sCAyEea,cAAK,CAACC,UAAU,CAAC,CAACT,KAAK,EAAEU,GAAG,KAAK;MAC/C,oBAAO5B,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAACtB,eAAA,CAAAmC,SAAS,MAAAC,SAAA,CAAAjB,OAAA;QAAC,mBAAW;QAACe,GAAG,EAAEA,GAAI;QAACG,GAAG,EAAC,GAAG;QAACd,OAAO;MAAA,GAAKC,KAAK,CAAG,CAAC;IACvE,CAAC,CAAC;EAAA;EArFFc,6BAA6BA,CAACC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAE;IAC1C,OAAO,OAAO;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;MAAEC,GAAG,EAAEH,CAAC;MAAEI,KAAK,EAAEL,CAAC;MAAEM,MAAM,EAAEL,CAAC;MAAEM,IAAI,EAAEP;IAAE,CAAC,CAAC;EAC9E;EAUAQ,WAAWA,CAAA,EAAG;IACZ,MAAM;MAAEC,IAAI;MAAEC,WAAW;MAAEC,gBAAgB;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACrB,OAAO;IAClE,MAAM,CAACW,KAAK,EAAEC,MAAM,CAAC,GAAGS,IAAI;IAC5B,MAAMC,QAAQ,GAAGC,MAAM,CAACC,OAAO,CAACN,IAAI,CAAC,CAACO,GAAG,CAAC,CAAC,CAACC,OAAO,EAAEL,IAAI,CAAC,MAAM;MAC9DM,IAAI,EAAED,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC;MACxBP;IACF,CAAC,CAAC,CAAC;IACH,OAAO,IAAAQ,mBAAa,EAClB,IAAAC,uBAAiB,EAAC,IAAAC,UAAI,EAACT,QAAQ,CAAC,EAAEH,WAAW,EAAEC,gBAAgB,CAAC,EAChET,KAAK,EACLC,MAAM,EACN,EACF,CAAC;EACH;EAEAoB,eAAeA,CAAA,EAAG;IAChB,OAAO;MACLC,MAAM,EAAE,IAAI,CAACjC,OAAO,CAACkC;IACvB,CAAC;EACH;EAEAC,cAAcA,CAACzC,KAAK,EAAE0C,KAAK,EAAE;IAC3B,MAAMC,6BAA6B,GAAG,CAAC;IACvC,MAAMC,KAAK,GAAG5C,KAAK,CAAC4C,KAAK,IAAI,IAAAC,+BAAwB,EAACH,KAAK,GAAGC,6BAA6B,CAAC;IAC5F,MAAM1C,YAAY,GAAG;MACnB+B,OAAO,EAAEhC,KAAK,CAACgC,OAAO;MACtBc,IAAI,EAAE9C,KAAK,CAAC8C,IAAI;MAChBF,KAAK;MACLG,QAAQ,EAAE,IAAI,CAACzC,OAAO,CAACyC;IACzB,CAAC;IAED,OAAO;MACLC,QAAQ,EAAE,IAAI,CAAC1C,OAAO,CAAC0C,QAAQ;MAC/BxB,IAAI,EAAE,IAAI,CAACI,QAAQ,CAAC5B,KAAK,CAACgC,OAAO,CAAC;MAClCiB,YAAY,EAAE,IAAI,CAAC3C,OAAO,CAACkB,IAAI,CAACxB,KAAK,CAACgC,OAAO,CAAC;MAC9CkB,WAAW,EAAE,IAAI,CAACC,kBAAkB,CAAC,IAAI,EAAEnD,KAAK,EAAEC,YAAY,CAAC;MAC/DmD,YAAY,EAAE,IAAI,CAACD,kBAAkB,CAAC,KAAK,EAAEnD,KAAK,EAAEC,YAAY,CAAC;MACjEoD,WAAW,EAAE,IAAI,CAAC/C,OAAO,CAAC+C,WAAW;MACrCC,YAAY,EAAE,IAAI,CAAChD,OAAO,CAACgD,YAAY;MACvCV,KAAK;MACLJ,GAAG,EAAE,GAAG,IAAI,CAAClC,OAAO,CAACkC,GAAG,IAAIE,KAAK,EAAE;MACnCK,QAAQ,EAAE,IAAI,CAACzC,OAAO,CAACyC,QAAQ;MAC/BQ,SAAS,EAAE,IAAI,CAACjD,OAAO,CAACiD,SAAS;MACjCC,iBAAiB,EAAE,IAAI,CAACC,cAAc,CAACzD,KAAK,CAACgC,OAAO,CAAC,CAAC0B,IAAI,CAAC,IAAI;IACjE,CAAC;EACH;EAEAC,oBAAoBA,CAAC3D,KAAK,EAAE;IAC1B,MAAM;MAAEgD,QAAQ;MAAEK;IAAY,CAAC,GAAG,IAAI,CAAC/C,OAAO;IAC9C,MAAMsD,QAAQ,GAAG5D,KAAK,CAACgC,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC;IACzC,MAAMjC,YAAY,GAAG;MACnB+B,OAAO,EAAEhC,KAAK,CAACgC,OAAO;MACtBc,IAAI,EAAE9C,KAAK,CAAC8C,IAAI;MAChBF,KAAK,EAAE5C,KAAK,CAAC4C,KAAK;MAClBI,QAAQ,EAAEhD,KAAK,CAACgD,QAAQ;MACxBK,WAAW,EAAErD,KAAK,CAACqD;IACrB,CAAC;IAED,OAAO;MACLL,QAAQ;MACRa,KAAK,EAAEb,QAAQ;MACfxB,IAAI,EAAEK,MAAM,CAACiC,MAAM,CAAC,IAAI,CAAClC,QAAQ,CAAC,CAACmC,MAAM,CAAEC,CAAC,IAAKJ,QAAQ,CAACK,QAAQ,CAACD,CAAC,CAACE,KAAK,CAAC,CAAC;MAC5EjB,YAAY,EAAE,IAAI,CAAC3C,OAAO,CAACkB,IAAI,CAACxB,KAAK,CAACgC,OAAO,CAAC;MAC9CkB,WAAW,EAAE,IAAI,CAACC,kBAAkB,CAAC,IAAI,EAAEnD,KAAK,EAAEC,YAAY,CAAC;MAC/DmD,YAAY,EAAE,IAAI,CAACD,kBAAkB,CAAC,KAAK,EAAEnD,KAAK,EAAEC,YAAY,CAAC;MACjEoD,WAAW;MACXC,YAAY,EAAE,IAAI,CAAChD,OAAO,CAACgD,YAAY;MACvCa,uBAAuB,EAAE,IAAI,CAACV,cAAc,CAACzD,KAAK,CAACgC,OAAO,CAAC,CAAC0B,IAAI,CAAC,IAAI;IACvE,CAAC;EACH;EAMAD,cAAcA,CAACzB,OAAO,EAAE;IACtB,OAAQoC,CAAC,IAAK;MACZA,CAAC,CAACC,eAAe,CAAC,CAAC;MAEnB,MAAM;QAAEC;MAAQ,CAAC,GAAG,IAAI,CAAChE,OAAO;MAEhC,IAAI,CAACgE,OAAO,EAAE;MAEdA,OAAO,CAACtC,OAAO,EAAEoC,CAAC,CAAC;IACrB,CAAC;EACH;EAEAG,MAAMA,CAAA,EAAG;IACP,MAAMC,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,IAAI,CAAClE,OAAO,CAACmE,gBAAgB,CAACC,iBAAiB,CAAC,YAAY,CAAC;IAC7D,IAAI,CAAC9C,QAAQ,GAAG,IAAI,CAACL,WAAW,CAAC,CAAC;IAClC,oBACEzC,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAAC0E,OAAO;MACN,mBAAW;MACXD,MAAM,EAAE,IAAI,CAACI,aAAc;MAC3BC,gBAAgB,EAAC,QAAQ;MACzBhD,QAAQ,EAAE,IAAI,CAACA;IAAS,CACzB,CAAC;EAEN;AACF;AAAC,IAAAlC,gBAAA,CAAAC,OAAA,EA/HKL,QAAQ,iBACS,MAAM;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EADvBL,QAAQ,WAEGH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EAFhBL,QAAQ,kBAIU;EACpBmC,WAAW,EAAEoD,IAAI,CAACC,EAAE,GAAG,CAAC;EACxBpD,gBAAgB,EAAEA,CAACqD,EAAE,EAAEC,EAAE,KAAKA,EAAE,CAACC,MAAM,GAAGF,EAAE,CAACE,MAAM;EACnDjC,QAAQ,EAAE,GAAG;EACbO,SAAS,EAAE;AACb,CAAC;AAAA,IAAA7D,gBAAA,CAAAC,OAAA,EATGL,QAAQ,aAWK,CAAC,IAAA4F,iBAAmB,EAAC,CAAC,CAAC;AAsH1C,SAASC,MAAMA,CAAC;EACdX,OAAO,EAAEY,OAAO;EAChBC,MAAM;EACNzC,KAAK;EACLU,YAAY;EACZ9B,IAAI;EACJwB,QAAQ;EACRF,IAAI;EACJd,OAAO;EACPyC,gBAAgB;EAChBpB,WAAW;EACXb,GAAG;EACHO,QAAQ;EACRQ,SAAS;EACTe,OAAO;EACPd;AACF,CAAC,EAAE;EAAA,IAAA8B,KAAA;EACDb,gBAAgB,CAACc,mBAAmB,CAACvD,OAAO,EAAEc,IAAI,CAAC;EAEnD,MAAMmC,MAAM,GAAGzD,IAAI,CAACyD,MAAM,GAAG1B,SAAS,GAAGA,SAAS,GAAG/B,IAAI,CAACyD,MAAM;EAChE,IAAIzD,IAAI,CAACyD,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAElC,oBACEnG,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAAAhB,MAAA,CAAAa,OAAA,CAAA6F,QAAA,SAAAF,KAAA,GACG,IAAAlG,aAAO,EAACiG,MAAM,CAAC,eACdvG,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAACsF,OAAO,EAAAE,KAAA,CAAAG,EAAA;IAAA;IAAA,UAEC,QAAQ;IAAA,SACRnC,YAAY,CAACV,KAAK,CAAC;IAAA,WACjBG,QAAQ,GAAG,QAAQP,GAAG,WAAW,GAAGkD,SAAS;IAAA,MAClDlE,IAAI,CAACT,CAAC;IAAA,MACNS,IAAI,CAACR,CAAC;IAAA,KACPiE,MAAM;IAAA,eACI5B,WAAW;IAAA,gBACV,GAAGL,QAAQ,IAAI;IAAA,kBACb,IAAA2C,kCAAoB,EAACnC,iBAAiB,EAAEc,OAAO;EAAC,EACjE,CAAC,GAEHvB,QAAQ,iBACPjE,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAACd,QAAA,CAAA4G,WAAW,EAAAN,KAAA,CAAAG,EAAA;IAAA,MACN,GAAGjD,GAAG,UAAU;IAAA,cACRI,KAAK;IAAA,SACVU,YAAY,CAACV,KAAK,CAAC;IAAA,YAChBG;EAAQ,EACnB,CAEH,CAAC;AAEP;AAEA,SAAS8C,YAAYA,CAAC7F,KAAK,EAAE;EAAA,IAAA8F,KAAA;EAC3B,MAAM;IACJtB,OAAO,EAAEuB,aAAa;IACtBV,MAAM;IACN7D,IAAI;IACJsB,IAAI;IACJd,OAAO;IACPyC,gBAAgB;IAChBpB,WAAW;IACXiB,OAAO;IACPH;EACF,CAAC,GAAGnE,KAAK;EACTyE,gBAAgB,CAACc,mBAAmB,CAACvD,OAAO,EAAEc,IAAI,CAAC;EAEnD,MAAMkD,kBAAkB,GAAGxF,cAAK,CAACyF,WAAW,cAC1CzF,cAAK,CAACC,UAAU,CAAC,CAACT,KAAK,EAAEU,GAAG,KAAK;IAC/B,oBAAO5B,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAACtB,eAAA,CAAAmC,SAAS,MAAAC,SAAA,CAAAjB,OAAA;MAAC,mBAAW;MAACe,GAAG,EAAEA,GAAI;MAACG,GAAG,EAAC,MAAM;MAACd,OAAO;IAAA,GAAKC,KAAK,CAAG,CAAC;EAC1E,CAAC,CAAC,EACF,CAACA,KAAK,CACR,CAAC;EACD,OAAA8F,KAAA,GAAO,IAAA1G,aAAO,EAACiG,MAAM,CAAC,eACpBvG,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAACiG,aAAa,EAAAD,KAAA,CAAAL,EAAA;IAAA;IAAA,UAEJO,kBAAkB;IAAA,KACvB,IAAAE,0BAAoB,EAAC1E,IAAI,CAAC;IAAA,eAChB6B,WAAW;IAAA,kBACR,IAAAsC,kCAAoB,EAACxB,uBAAuB,EAAEG,OAAO;EAAC,EACvE,CAAC;AAEN;AAEA,SAAS6B,WAAWA,CAACnG,KAAK,EAAE;EAAA,IAAAoG,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAC1B,MAAMC,YAAY,GACiCC,gBAAO;EAA1D,OAAAF,KAAA,GAAO,IAAAlH,aAAO,EAACY,KAAK,CAACqF,MAAM,CAAC,eAACvG,MAAA,CAAAa,OAAA,CAAAG,aAAA,CAACyG,YAAY,EAAAD,KAAA,CAAAb,EAAA;IAAA,OAAAnH,KAAA,CAAAmI,WAAA;MAAA;IAAA,GAAAL,IAAA;EAAA,EAAsC,CAAC;AACnF;AAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMM,IAAI,GAAG,IAAA5G,sBAAa,EAACR,QAAQ,EAAE;EACnC6F,MAAM;EACNU,YAAY;EACZW,OAAO,EAAE,CAACL,WAAW,EAAEK,gBAAO,CAACG,yBAAyB;AAC1D,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAlH,OAAA,GAEY+G,IAAI","ignoreList":[]}
|
|
@@ -14,10 +14,10 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
14
14
|
var _locale = require("./locale");
|
|
15
15
|
var _intergalacticDynamicLocales = require("./translations/module/__intergalactic-dynamic-locales");
|
|
16
16
|
/*!__reshadow-styles__:"../style/plotA11yModule.shadow.css"*/
|
|
17
|
-
const styles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
17
|
+
const styles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SPlotA11yModule_19nt6_gg_{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}", /*__inner_css_end__*/"19nt6_gg_"),
|
|
18
18
|
/*__reshadow_css_end__*/
|
|
19
19
|
{
|
|
20
|
-
"__SPlotA11yModule": "
|
|
20
|
+
"__SPlotA11yModule": "___SPlotA11yModule_19nt6_gg_"
|
|
21
21
|
});
|
|
22
22
|
function PlotA11yModule(props) {
|
|
23
23
|
var _ref = arguments[0],
|
|
@@ -16,10 +16,10 @@ var _intl = require("./intl");
|
|
|
16
16
|
var _summarize = require("./summarize");
|
|
17
17
|
var _intergalacticDynamicLocales = require("./translations/view/__intergalactic-dynamic-locales");
|
|
18
18
|
/*!__reshadow-styles__:"../style/plotA11yView.shadow.css"*/
|
|
19
|
-
const styles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".
|
|
19
|
+
const styles = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SPlotA11yView_ufc1r_gg_{position:relative;display:block;background-color:var(--intergalactic-bg-primary-neutral,#fff);color:var(--intergalactic-text-primary,#010500e5);border:3px solid var(--intergalactic-border-primary,#000c0829);font-size:var(--intergalactic-fs-50,10px);z-index:var(--intergalactic-z-index-overlay,500);padding:2px;width:200px;height:200px;max-width:80%;max-height:80%;overflow:auto}@supports (color:color(display-p3 0 0 0%)){.___SPlotA11yView_ufc1r_gg_{border:3px solid var(--intergalactic-border-primary,#000c0829)}@media (color-gamut:p3){.___SPlotA11yView_ufc1r_gg_{border:3px solid var(--intergalactic-border-primary,color(display-p3 .00798 .04498 .03219/.161))}}}.___SPlotA11yView_ufc1r_gg_ a{cursor:pointer;-webkit-text-decoration:underline;text-decoration:underline;margin-bottom:var(--intergalactic-spacing-2x,8px);display:block}.___SPlotA11yView_ufc1r_gg_ :is(table,td,th){border:1px solid var(--intergalactic-border-primary,#000c0829)}@supports (color:color(display-p3 0 0 0%)){.___SPlotA11yView_ufc1r_gg_ :is(table,td,th){border:1px solid var(--intergalactic-border-primary,#000c0829)}@media (color-gamut:p3){.___SPlotA11yView_ufc1r_gg_ :is(table,td,th){border:1px solid var(--intergalactic-border-primary,color(display-p3 .00798 .04498 .03219/.161))}}}", /*__inner_css_end__*/"ufc1r_gg_"),
|
|
20
20
|
/*__reshadow_css_end__*/
|
|
21
21
|
{
|
|
22
|
-
"__SPlotA11yView": "
|
|
22
|
+
"__SPlotA11yView": "___SPlotA11yView_ufc1r_gg_"
|
|
23
23
|
});
|
|
24
24
|
function PlotA11yView({
|
|
25
25
|
id,
|