@semcore/d3-chart 3.59.1-prerelease.8 → 16.0.0-prerelease.2
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/AnimatedClipPath.js +3 -4
- package/lib/cjs/AnimatedClipPath.js.map +1 -1
- package/lib/cjs/Area.js +14 -15
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Axis.js +15 -16
- package/lib/cjs/Axis.js.map +1 -1
- package/lib/cjs/Bar.js +18 -19
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +13 -14
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/CompactHorizontalBar.js +20 -21
- package/lib/cjs/CompactHorizontalBar.js.map +1 -1
- package/lib/cjs/Donut.js +12 -13
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +10 -11
- package/lib/cjs/Dots.js.map +1 -1
- package/lib/cjs/GroupBar.js +2 -2
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/HorizontalBar.js +18 -19
- package/lib/cjs/HorizontalBar.js.map +1 -1
- package/lib/cjs/Hover.js +5 -6
- package/lib/cjs/Hover.js.map +1 -1
- package/lib/cjs/Line.js +11 -12
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/Pattern.js +1 -1
- package/lib/cjs/Pattern.js.map +1 -1
- package/lib/cjs/Plot.js +9 -11
- package/lib/cjs/Plot.js.map +1 -1
- package/lib/cjs/Radar.js +23 -24
- package/lib/cjs/Radar.js.map +1 -1
- package/lib/cjs/RadialTree.js +17 -18
- package/lib/cjs/RadialTree.js.map +1 -1
- package/lib/cjs/Reference.js +14 -15
- package/lib/cjs/Reference.js.map +1 -1
- package/lib/cjs/ResponsiveContainer.js +6 -7
- package/lib/cjs/ResponsiveContainer.js.map +1 -1
- package/lib/cjs/ScatterPlot.js +11 -12
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js +1 -1
- package/lib/cjs/StackBar.js.map +1 -1
- package/lib/cjs/StackedArea.js +1 -1
- package/lib/cjs/StackedArea.js.map +1 -1
- package/lib/cjs/Tooltip.js +11 -12
- package/lib/cjs/Tooltip.js.map +1 -1
- package/lib/cjs/Venn.js +11 -12
- package/lib/cjs/Venn.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yModule.js +3 -4
- package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yView.js +3 -4
- package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
- package/lib/cjs/a11y/focus.js +1 -1
- package/lib/cjs/a11y/focus.js.map +1 -1
- package/lib/cjs/a11y/hints.js +1 -1
- package/lib/cjs/a11y/hints.js.map +1 -1
- package/lib/cjs/component/Chart/AbstractChart.js +2 -2
- package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
- package/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -1
- package/lib/cjs/component/Chart/AreaChart.js +3 -3
- package/lib/cjs/component/Chart/AreaChart.js.map +1 -1
- package/lib/cjs/component/Chart/BarChart.js +3 -3
- package/lib/cjs/component/Chart/BarChart.js.map +1 -1
- package/lib/cjs/component/Chart/BubbleChart.js +3 -3
- package/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
- package/lib/cjs/component/Chart/CigaretteChart.js +5 -6
- package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.js +3 -3
- package/lib/cjs/component/Chart/CompactHorizontalBarChart.js.map +1 -1
- package/lib/cjs/component/Chart/DonutChart.js +3 -3
- package/lib/cjs/component/Chart/DonutChart.js.map +1 -1
- package/lib/cjs/component/Chart/HistogramChart.js +3 -3
- package/lib/cjs/component/Chart/HistogramChart.js.map +1 -1
- package/lib/cjs/component/Chart/LineChart.js +3 -3
- package/lib/cjs/component/Chart/LineChart.js.map +1 -1
- package/lib/cjs/component/Chart/RadarChart.js +3 -3
- package/lib/cjs/component/Chart/RadarChart.js.map +1 -1
- package/lib/cjs/component/Chart/ScatterPlotChart.js +3 -3
- package/lib/cjs/component/Chart/ScatterPlotChart.js.map +1 -1
- package/lib/cjs/component/Chart/VennChart.js +3 -3
- package/lib/cjs/component/Chart/VennChart.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +7 -9
- package/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +21 -23
- package/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +8 -10
- package/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
- package/lib/cjs/component/Cigarette/Cigarette.js +2 -2
- package/lib/cjs/component/Cigarette/Cigarette.js.map +1 -1
- package/lib/cjs/createElement.js +6 -7
- package/lib/cjs/createElement.js.map +1 -1
- package/lib/cjs/style/hover.shadow.css +2 -2
- package/lib/cjs/utils.js +1 -1
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/AnimatedClipPath.js +2 -2
- package/lib/es6/AnimatedClipPath.js.map +1 -1
- package/lib/es6/Area.js +14 -14
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Axis.js +15 -15
- package/lib/es6/Bar.js +18 -18
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +14 -14
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/CompactHorizontalBar.js +21 -21
- package/lib/es6/CompactHorizontalBar.js.map +1 -1
- package/lib/es6/Donut.js +13 -13
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +10 -10
- package/lib/es6/Dots.js.map +1 -1
- package/lib/es6/GroupBar.js +2 -2
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/HorizontalBar.js +18 -18
- package/lib/es6/HorizontalBar.js.map +1 -1
- package/lib/es6/Hover.js +6 -6
- package/lib/es6/Hover.js.map +1 -1
- package/lib/es6/Line.js +11 -11
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/Pattern.js +1 -1
- package/lib/es6/Pattern.js.map +1 -1
- package/lib/es6/Plot.js +9 -9
- package/lib/es6/Plot.js.map +1 -1
- package/lib/es6/Radar.js +24 -24
- package/lib/es6/Radar.js.map +1 -1
- package/lib/es6/RadialTree.js +17 -17
- package/lib/es6/RadialTree.js.map +1 -1
- package/lib/es6/Reference.js +14 -14
- package/lib/es6/Reference.js.map +1 -1
- package/lib/es6/ResponsiveContainer.js +5 -5
- package/lib/es6/ResponsiveContainer.js.map +1 -1
- package/lib/es6/ScatterPlot.js +12 -12
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js +1 -1
- package/lib/es6/StackBar.js.map +1 -1
- package/lib/es6/StackedArea.js +1 -1
- package/lib/es6/StackedArea.js.map +1 -1
- package/lib/es6/Tooltip.js +12 -12
- package/lib/es6/Tooltip.js.map +1 -1
- package/lib/es6/Venn.js +12 -12
- package/lib/es6/Venn.js.map +1 -1
- package/lib/es6/a11y/PlotA11yModule.js +4 -4
- package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
- package/lib/es6/a11y/PlotA11yView.js +4 -4
- package/lib/es6/a11y/PlotA11yView.js.map +1 -1
- package/lib/es6/a11y/focus.js +1 -1
- package/lib/es6/a11y/focus.js.map +1 -1
- package/lib/es6/a11y/hints.js +1 -1
- package/lib/es6/a11y/hints.js.map +1 -1
- package/lib/es6/component/Chart/AbstractChart.js +2 -2
- package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
- package/lib/es6/component/Chart/AbstractChart.type.js.map +1 -1
- package/lib/es6/component/Chart/AreaChart.js +2 -2
- package/lib/es6/component/Chart/AreaChart.js.map +1 -1
- package/lib/es6/component/Chart/BarChart.js +2 -2
- package/lib/es6/component/Chart/BarChart.js.map +1 -1
- package/lib/es6/component/Chart/BubbleChart.js +2 -2
- package/lib/es6/component/Chart/BubbleChart.js.map +1 -1
- package/lib/es6/component/Chart/CigaretteChart.js +4 -4
- package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
- package/lib/es6/component/Chart/CompactHorizontalBarChart.js +2 -2
- package/lib/es6/component/Chart/CompactHorizontalBarChart.js.map +1 -1
- package/lib/es6/component/Chart/DonutChart.js +2 -2
- package/lib/es6/component/Chart/DonutChart.js.map +1 -1
- package/lib/es6/component/Chart/HistogramChart.js +2 -2
- package/lib/es6/component/Chart/HistogramChart.js.map +1 -1
- package/lib/es6/component/Chart/LineChart.js +2 -2
- package/lib/es6/component/Chart/LineChart.js.map +1 -1
- package/lib/es6/component/Chart/RadarChart.js +2 -2
- package/lib/es6/component/Chart/RadarChart.js.map +1 -1
- package/lib/es6/component/Chart/ScatterPlotChart.js +2 -2
- package/lib/es6/component/Chart/ScatterPlotChart.js.map +1 -1
- package/lib/es6/component/Chart/VennChart.js +2 -2
- package/lib/es6/component/Chart/VennChart.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +7 -7
- package/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +21 -21
- package/lib/es6/component/ChartLegend/LegendItem/LegendItem.js.map +1 -1
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +8 -8
- package/lib/es6/component/ChartLegend/LegendTable/LegendTable.js.map +1 -1
- package/lib/es6/component/Cigarette/Cigarette.js +2 -2
- package/lib/es6/component/Cigarette/Cigarette.js.map +1 -1
- package/lib/es6/createElement.js +5 -5
- package/lib/es6/createElement.js.map +1 -1
- package/lib/es6/style/hover.shadow.css +2 -2
- package/lib/es6/utils.js +1 -1
- package/lib/es6/utils.js.map +1 -1
- package/lib/types/component/Chart/AbstractChart.type.d.ts +1 -1
- package/lib/types/utils.d.ts +1 -1
- package/package.json +9 -12
package/lib/es6/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["EventEmitter","extent","bisector","scaleQuantize","scaleBand","scaleSqrt","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty","prev","next","defNext","find","_objectSpread","length","defPrev","getIndexFromData","Array","isArray","bisect","center","index","findIndex","keys","Object","map","item","interpolateValue","lastKeyIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","scaleToBand","band","memoize","func","results","_len","args","_key2","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","_iterator","_createForOfIteratorHelper","split","_step","s","n","done","line","append","createTextNode","err","e","f","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","Math","max","idCounter","uniqueId","prefix","Symbol","getChartDefaultColorName","getBubbleChartValueScale","z","_toConsumableArray","el","getScatterPlotRadius","valueKey","calculateBubbleDomain","miniestValue","min","maxestValue","_minMax","_minMax2","_slicedToArray","pixelRatio","abs","valueScale","minValueShift","maxValueShift","PlotEventEmitter"],"sources":["../../src/utils.ts"],"sourcesContent":["import EventEmitter from '@semcore/utils/lib/eventEmitter';\nimport { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n scaleBand,\n scaleSqrt,\n} from 'd3-scale';\nimport React from 'react';\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleBand<{}>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends { [key: string]: Numeric | null | undefined }[] = {\n [key: string]: Numeric | null | undefined;\n }[],\n>(\n data: Data,\n key: Key,\n): [min: Data[0][Key], max: Data[0][Key]] => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]) as any;\n }\n return extent(data, key) as any;\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Key extends string,\n Data extends {\n [key in Key]: number;\n } = { [key in Key]: number },\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: Key,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function' && Array.isArray(data)) {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined' && Array.isArray(data)) {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n }\n // detect cigarette chart\n else if ('invert' in scale && typeof scale.invert === 'function' && !Array.isArray(data)) {\n const keys = Object.keys(data);\n const domain = keys.map((key, index) => {\n return keys.slice(0, index).reduce((acc, item) => {\n if (data[item] !== interpolateValue) {\n acc = acc + data[item];\n }\n\n return acc;\n }, 0);\n });\n\n let key = null;\n\n const lastKeyIndex = keys.length - 1;\n\n if (value > domain[lastKeyIndex]) {\n key = keys[lastKeyIndex];\n } else {\n for (let i = 0; i < lastKeyIndex; i++) {\n if (i === 0 && value < domain[i]) {\n break;\n }\n\n if (value > domain[i] && value < domain[i + 1]) {\n key = keys[i];\n break;\n }\n }\n }\n\n return key;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = `M${x + r},${y}`;\n result += `h${w - 2 * r}`;\n if (tr) {\n result += `a${r},${r} 0 0 1 ${r},${r}`;\n } else {\n result += `h${r}`;\n result += `v${r}`;\n }\n result += `v${h - 2 * r}`;\n if (br) {\n result += `a${r},${r} 0 0 1 ${-r},${r}`;\n } else {\n result += `v${r}`;\n result += `h${-r}`;\n }\n result += `h${2 * r - w}`;\n if (bl) {\n result += `a${r},${r} 0 0 1 ${-r},${-r}`;\n } else {\n result += `h${-r}`;\n result += `v${-r}`;\n }\n result += `v${2 * r - h}`;\n if (tl) {\n result += `a${r},${r} 0 0 1 ${r},${-r}`;\n } else {\n result += `v${-r}`;\n result += `h${r}`;\n }\n result += 'z';\n return result;\n};\n\nexport const scaleToBand = (scale: ScaleBand<{}>) => {\n if ('bandwidth' in scale) {\n return scale;\n }\n\n const band = scaleBand()\n .range((scale as any).range())\n .domain((scale as any).domain());\n\n return band;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n\nexport const interpolateValue = Symbol('intergalactic-d3-chart-line-interpolate');\n\nexport const getChartDefaultColorName = (index: number) => {\n index++;\n if (index < 1) index = 1;\n if (index > 24) index %= 24;\n\n return `chart-palette-order-${index}`;\n};\n\nexport const getBubbleChartValueScale = (data: any[], key: string) => {\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[key]))])\n .range([5.5, 50.5]);\n\n return z;\n};\n\nexport const getScatterPlotRadius = (valueKey?: string): number => {\n return valueKey !== undefined ? 12 : 5.5;\n};\n\ntype BubbleChartDataItem = {\n value: number;\n x: number;\n y: number;\n};\n\nexport const calculateBubbleDomain = (\n data: Array<BubbleChartDataItem>,\n key: 'x' | 'y',\n range: [number, number],\n): [min: number, max: number] => {\n const miniestValue = data.reduce(\n (acc, item) => {\n if (item[key] - item.value < acc.min) {\n acc.min = item[key] - item.value;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, min: data[0][key] - data[0].value },\n ).value;\n const maxestValue = data.reduce(\n (acc, item) => {\n if (item.value + item[key] > acc.max) {\n acc.max = item.value + item.x;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, max: data[0].value + data[0][key] },\n ).value;\n\n let [min, max] = minMax(data, key);\n\n const pixelRatio = Math.abs(max - min) / Math.abs(range[0] - range[1]);\n const valueScale = getBubbleChartValueScale(data, 'value');\n const minValueShift = valueScale(miniestValue) * pixelRatio;\n const maxValueShift = valueScale(maxestValue) * pixelRatio;\n min -= minValueShift * 2;\n max += maxValueShift * 2;\n\n return [min, max];\n};\n\ninterface PlotEventEmitterEmit {\n (event: 'setTooltipVisible', visible: boolean): void;\n (event: 'setTooltipPosition', x: number, y: number): void;\n}\ntype Unsubscribe = () => void;\ninterface PlotEventEmitterSubscribe {\n (event: 'setTooltipVisible', callback: (visible: boolean) => void): Unsubscribe;\n (event: 'setTooltipPosition', callback: (x: number, y: number) => void): Unsubscribe;\n}\nexport const PlotEventEmitter = EventEmitter as typeof EventEmitter<\n PlotEventEmitterEmit,\n PlotEventEmitterSubscribe\n>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["EventEmitter","extent","bisector","scaleQuantize","scaleBand","scaleSqrt","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty","prev","next","defNext","find","_objectSpread","length","defPrev","getIndexFromData","Array","isArray","bisect","center","index","findIndex","keys","Object","map","item","interpolateValue","lastKeyIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","scaleToBand","band","memoize","func","results","_len","args","_key2","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","_iterator","_createForOfIteratorHelper","split","_step","s","n","done","line","append","createTextNode","err","e","f","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","Math","max","idCounter","uniqueId","prefix","Symbol","getChartDefaultColorName","getBubbleChartValueScale","z","_toConsumableArray","el","getScatterPlotRadius","valueKey","calculateBubbleDomain","miniestValue","min","maxestValue","_minMax","_minMax2","_slicedToArray","pixelRatio","abs","valueScale","minValueShift","maxValueShift","PlotEventEmitter"],"sources":["../../src/utils.ts"],"sourcesContent":["import EventEmitter from '@semcore/core/lib/utils/eventEmitter';\nimport { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n scaleBand,\n scaleSqrt,\n} from 'd3-scale';\nimport React from 'react';\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleBand<{}>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends { [key: string]: Numeric | null | undefined }[] = {\n [key: string]: Numeric | null | undefined;\n }[],\n>(\n data: Data,\n key: Key,\n): [min: Data[0][Key], max: Data[0][Key]] => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]) as any;\n }\n return extent(data, key) as any;\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Key extends string,\n Data extends {\n [key in Key]: number;\n } = { [key in Key]: number },\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: Key,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function' && Array.isArray(data)) {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined' && Array.isArray(data)) {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n }\n // detect cigarette chart\n else if ('invert' in scale && typeof scale.invert === 'function' && !Array.isArray(data)) {\n const keys = Object.keys(data);\n const domain = keys.map((key, index) => {\n return keys.slice(0, index).reduce((acc, item) => {\n if (data[item] !== interpolateValue) {\n acc = acc + data[item];\n }\n\n return acc;\n }, 0);\n });\n\n let key = null;\n\n const lastKeyIndex = keys.length - 1;\n\n if (value > domain[lastKeyIndex]) {\n key = keys[lastKeyIndex];\n } else {\n for (let i = 0; i < lastKeyIndex; i++) {\n if (i === 0 && value < domain[i]) {\n break;\n }\n\n if (value > domain[i] && value < domain[i + 1]) {\n key = keys[i];\n break;\n }\n }\n }\n\n return key;\n } else {\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = `M${x + r},${y}`;\n result += `h${w - 2 * r}`;\n if (tr) {\n result += `a${r},${r} 0 0 1 ${r},${r}`;\n } else {\n result += `h${r}`;\n result += `v${r}`;\n }\n result += `v${h - 2 * r}`;\n if (br) {\n result += `a${r},${r} 0 0 1 ${-r},${r}`;\n } else {\n result += `v${r}`;\n result += `h${-r}`;\n }\n result += `h${2 * r - w}`;\n if (bl) {\n result += `a${r},${r} 0 0 1 ${-r},${-r}`;\n } else {\n result += `h${-r}`;\n result += `v${-r}`;\n }\n result += `v${2 * r - h}`;\n if (tl) {\n result += `a${r},${r} 0 0 1 ${r},${-r}`;\n } else {\n result += `v${-r}`;\n result += `h${r}`;\n }\n result += 'z';\n return result;\n};\n\nexport const scaleToBand = (scale: ScaleBand<{}>) => {\n if ('bandwidth' in scale) {\n return scale;\n }\n\n const band = scaleBand()\n .range((scale as any).range())\n .domain((scale as any).domain());\n\n return band;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n\nexport const interpolateValue = Symbol('intergalactic-d3-chart-line-interpolate');\n\nexport const getChartDefaultColorName = (index: number) => {\n index++;\n if (index < 1) index = 1;\n if (index > 24) index %= 24;\n\n return `chart-palette-order-${index}`;\n};\n\nexport const getBubbleChartValueScale = (data: any[], key: string) => {\n const z = scaleSqrt()\n .domain([0, Math.max(...data.map((el) => el[key]))])\n .range([5.5, 50.5]);\n\n return z;\n};\n\nexport const getScatterPlotRadius = (valueKey?: string): number => {\n return valueKey !== undefined ? 12 : 5.5;\n};\n\ntype BubbleChartDataItem = {\n value: number;\n x: number;\n y: number;\n};\n\nexport const calculateBubbleDomain = (\n data: Array<BubbleChartDataItem>,\n key: 'x' | 'y',\n range: [number, number],\n): [min: number, max: number] => {\n const miniestValue = data.reduce(\n (acc, item) => {\n if (item[key] - item.value < acc.min) {\n acc.min = item[key] - item.value;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, min: data[0][key] - data[0].value },\n ).value;\n const maxestValue = data.reduce(\n (acc, item) => {\n if (item.value + item[key] > acc.max) {\n acc.max = item.value + item.x;\n acc.value = item.value;\n }\n return acc;\n },\n { value: data[0].value, max: data[0].value + data[0][key] },\n ).value;\n\n let [min, max] = minMax(data, key);\n\n const pixelRatio = Math.abs(max - min) / Math.abs(range[0] - range[1]);\n const valueScale = getBubbleChartValueScale(data, 'value');\n const minValueShift = valueScale(miniestValue) * pixelRatio;\n const maxValueShift = valueScale(maxestValue) * pixelRatio;\n min -= minValueShift * 2;\n max += maxValueShift * 2;\n\n return [min, max];\n};\n\ninterface PlotEventEmitterEmit {\n (event: 'setTooltipVisible', visible: boolean): void;\n (event: 'setTooltipPosition', x: number, y: number): void;\n}\ntype Unsubscribe = () => void;\ninterface PlotEventEmitterSubscribe {\n (event: 'setTooltipVisible', callback: (visible: boolean) => void): Unsubscribe;\n (event: 'setTooltipPosition', callback: (x: number, y: number) => void): Unsubscribe;\n}\nexport const PlotEventEmitter = EventEmitter as typeof EventEmitter<\n PlotEventEmitterEmit,\n PlotEventEmitterSubscribe\n>;\n"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { BaseChartLegendProps } from '../ChartLegend/BaseLegend.type';
|
|
|
6
6
|
import { TrendProps } from '../ChartLegend/LegendFlex/LegendFlex.type';
|
|
7
7
|
import { PatternsConfig } from '../../Pattern';
|
|
8
8
|
import { PlotSummarizerConfig } from '../../Plot';
|
|
9
|
-
import { Intergalactic } from '@semcore/
|
|
9
|
+
import { Intergalactic } from '@semcore/core';
|
|
10
10
|
export type BaseLegendProps = BaseChartLegendProps & {
|
|
11
11
|
/**
|
|
12
12
|
* Disable hover (for transition items legend of each not hovered)
|
package/lib/types/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import EventEmitter from '@semcore/
|
|
1
|
+
import EventEmitter from '@semcore/core/lib/utils/eventEmitter';
|
|
2
2
|
import { Numeric } from 'd3-array';
|
|
3
3
|
import { ScaleIdentity, ScaleTime, ScaleContinuousNumeric, ScaleBand, ScalePoint } from 'd3-scale';
|
|
4
4
|
import React from 'react';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/d3-chart",
|
|
3
3
|
"description": "Semrush D3 Chart Component",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "16.0.0-prerelease.2",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -15,14 +15,13 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@formatjs/intl": "2.3.0",
|
|
18
|
-
"@semcore/
|
|
19
|
-
"@semcore/
|
|
20
|
-
"@semcore/
|
|
21
|
-
"@semcore/flex-box": "
|
|
22
|
-
"@semcore/popper": "
|
|
23
|
-
"@semcore/
|
|
24
|
-
"@semcore/typography": "
|
|
25
|
-
"@semcore/icon": "4.60.1-prerelease.8",
|
|
18
|
+
"@semcore/divider": "16.0.0-prerelease.2",
|
|
19
|
+
"@semcore/animation": "16.0.0-prerelease.2",
|
|
20
|
+
"@semcore/checkbox": "16.0.0-prerelease.2",
|
|
21
|
+
"@semcore/flex-box": "16.0.0-prerelease.2",
|
|
22
|
+
"@semcore/popper": "16.0.0-prerelease.2",
|
|
23
|
+
"@semcore/icon": "16.0.0-prerelease.2",
|
|
24
|
+
"@semcore/typography": "16.0.0-prerelease.2",
|
|
26
25
|
"@types/d3-shape": "^3.1.0",
|
|
27
26
|
"@upsetjs/venn.js": "1.4.2",
|
|
28
27
|
"d3-array": "3.1.6",
|
|
@@ -36,9 +35,7 @@
|
|
|
36
35
|
"hoist-non-react-statics": "3.3.2"
|
|
37
36
|
},
|
|
38
37
|
"peerDependencies": {
|
|
39
|
-
"@semcore/
|
|
40
|
-
"react": "16.8 - 18",
|
|
41
|
-
"react-dom": "16.8 - 18"
|
|
38
|
+
"@semcore/base-components": "^16.0.0-prerelease.2"
|
|
42
39
|
},
|
|
43
40
|
"repository": {
|
|
44
41
|
"type": "git",
|