@semcore/d3-chart 17.0.0-prerelease.8 → 17.0.0

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.
Files changed (83) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/lib/cjs/Bubble.js +20 -15
  3. package/lib/cjs/Bubble.js.map +1 -1
  4. package/lib/cjs/a11y/PlotA11yView.js +5 -5
  5. package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
  6. package/lib/cjs/component/Chart/AbstractChart.js +5 -17
  7. package/lib/cjs/component/Chart/AbstractChart.js.map +1 -1
  8. package/lib/cjs/component/Chart/CigaretteChart.js +197 -57
  9. package/lib/cjs/component/Chart/CigaretteChart.js.map +1 -1
  10. package/lib/cjs/component/Chart/CigaretteChart.type.js.map +1 -1
  11. package/lib/cjs/style/bubble.shadow.css +4 -0
  12. package/lib/cjs/utils.js +3 -2
  13. package/lib/cjs/utils.js.map +1 -1
  14. package/lib/es6/Bubble.js +20 -15
  15. package/lib/es6/Bubble.js.map +1 -1
  16. package/lib/es6/a11y/PlotA11yView.js +4 -3
  17. package/lib/es6/a11y/PlotA11yView.js.map +1 -1
  18. package/lib/es6/component/Chart/AbstractChart.js +5 -17
  19. package/lib/es6/component/Chart/AbstractChart.js.map +1 -1
  20. package/lib/es6/component/Chart/CigaretteChart.js +199 -59
  21. package/lib/es6/component/Chart/CigaretteChart.js.map +1 -1
  22. package/lib/es6/component/Chart/CigaretteChart.type.js.map +1 -1
  23. package/lib/es6/style/bubble.shadow.css +4 -0
  24. package/lib/es6/utils.js +3 -2
  25. package/lib/es6/utils.js.map +1 -1
  26. package/lib/esm/AnimatedClipPath.mjs +1 -1
  27. package/lib/esm/Area.mjs +2 -3
  28. package/lib/esm/Axis.mjs +4 -7
  29. package/lib/esm/Bar.mjs +1 -2
  30. package/lib/esm/Bubble.mjs +24 -21
  31. package/lib/esm/CompactHorizontalBar.mjs +4 -4
  32. package/lib/esm/Donut.mjs +5 -4
  33. package/lib/esm/Dots.mjs +1 -2
  34. package/lib/esm/HorizontalBar.mjs +1 -2
  35. package/lib/esm/Hover.mjs +2 -3
  36. package/lib/esm/Line.mjs +2 -3
  37. package/lib/esm/Pattern.mjs +6 -7
  38. package/lib/esm/Plot.mjs +3 -5
  39. package/lib/esm/Radar.mjs +7 -10
  40. package/lib/esm/RadialTree.mjs +17 -63
  41. package/lib/esm/Reference.mjs +0 -1
  42. package/lib/esm/ResponsiveContainer.mjs +3 -5
  43. package/lib/esm/ScatterPlot.mjs +2 -2
  44. package/lib/esm/StackBar.mjs +2 -2
  45. package/lib/esm/StackedArea.mjs +2 -2
  46. package/lib/esm/Tooltip.mjs +5 -8
  47. package/lib/esm/Venn.mjs +3 -3
  48. package/lib/esm/a11y/DataAccessibilityTable.mjs +2 -4
  49. package/lib/esm/a11y/PlotA11yModule.mjs +2 -2
  50. package/lib/esm/a11y/PlotA11yView.mjs +11 -19
  51. package/lib/esm/a11y/focus.mjs +2 -2
  52. package/lib/esm/a11y/hints.mjs +3 -3
  53. package/lib/esm/a11y/insights.mjs +15 -20
  54. package/lib/esm/a11y/intl.mjs +1 -1
  55. package/lib/esm/a11y/locale.mjs +1 -2
  56. package/lib/esm/a11y/serialize.mjs +17 -17
  57. package/lib/esm/component/Chart/AbstractChart.mjs +20 -34
  58. package/lib/esm/component/Chart/AreaChart.mjs +5 -4
  59. package/lib/esm/component/Chart/BarChart.mjs +4 -3
  60. package/lib/esm/component/Chart/BubbleChart.mjs +8 -8
  61. package/lib/esm/component/Chart/CigaretteChart.mjs +204 -64
  62. package/lib/esm/component/Chart/CompactHorizontalBarChart.mjs +2 -1
  63. package/lib/esm/component/Chart/DonutChart.mjs +3 -2
  64. package/lib/esm/component/Chart/HistogramChart.mjs +5 -4
  65. package/lib/esm/component/Chart/LineChart.mjs +5 -4
  66. package/lib/esm/component/Chart/RadarChart.mjs +4 -5
  67. package/lib/esm/component/Chart/ScatterPlotChart.mjs +3 -2
  68. package/lib/esm/component/Chart/VennChart.mjs +3 -3
  69. package/lib/esm/component/ChartLegend/BaseLegend.mjs +9 -14
  70. package/lib/esm/component/ChartLegend/LegendFlex/LegendFlex.mjs +1 -2
  71. package/lib/esm/component/ChartLegend/LegendItem/LegendItem.mjs +1 -2
  72. package/lib/esm/component/ChartLegend/LegendTable/LegendTable.mjs +2 -4
  73. package/lib/esm/component/ChartLegend/index.mjs +2 -0
  74. package/lib/esm/component/Cigarette/Cigarette.mjs +1 -2
  75. package/lib/esm/component/StackGroupBar/StackGroupBar.mjs +2 -3
  76. package/lib/esm/createElement.mjs +1 -1
  77. package/lib/esm/index.mjs +1 -0
  78. package/lib/esm/style/bubble.shadow.css +4 -0
  79. package/lib/esm/utils.mjs +3 -3
  80. package/lib/types/a11y/PlotA11yView.d.ts +1 -1
  81. package/lib/types/component/Chart/AbstractChart.d.ts +4 -7
  82. package/lib/types/component/Chart/CigaretteChart.type.d.ts +7 -4
  83. package/package.json +17 -17
@@ -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","prev","next","defNext","find","length","defPrev","getIndexFromData","Array","isArray","bisect","center","index","findIndex","keys","Object","map","_key","item","interpolateValue","lastKeyIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","scaleToBand","band","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","line","split","append","createTextNode","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","Math","max","idCounter","uniqueId","prefix","Symbol","getChartDefaultColorName","getBubbleChartValueScale","z","el","getScatterPlotRadius","valueKey","calculateBubbleDomain","miniestValue","min","maxestValue","pixelRatio","abs","valueScale","minValueShift","maxValueShift","PlotEventEmitter"],"sources":["../../src/utils.ts"],"sourcesContent":["import EventEmitter from '@semcore/core/lib/utils/eventEmitter';\nimport { extent, bisector, type Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n type ScaleIdentity,\n type ScaleTime,\n type ScaleContinuousNumeric,\n type ScaleBand,\n type ScalePoint,\n type NumberValue,\n scaleBand,\n scaleSqrt,\n} from 'd3-scale';\nimport type 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 } else if ('step' in scale && typeof scale.step !== 'undefined' && Array.isArray(data)) { // detect bar chart\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else if ('invert' in scale && typeof scale.invert === 'function' && !Array.isArray(data)) { // detect cigarette chart\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 // eslint-disable-next-line no-console\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\ntype CommonEvents = {\n setTooltipVisible: (visible: boolean) => void;\n setTooltipPosition: (x: number, y: number) => void;\n};\n\ntype Events = {\n [K in keyof CommonEvents as `${K}_${string}`]: CommonEvents[K];\n};\n\nexport const PlotEventEmitter = EventEmitter<Events>;\n"],"mappings":"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","ignoreList":[]}
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","prev","next","defNext","find","length","defPrev","getIndexFromData","Array","isArray","bisect","center","index","findIndex","keys","Object","map","_key","item","interpolateValue","lastKeyIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","scaleToBand","band","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","line","split","append","createTextNode","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","Math","max","idCounter","uniqueId","prefix","Symbol","getChartDefaultColorName","getBubbleChartValueScale","z","el","getScatterPlotRadius","valueKey","calculateBubbleDomain","miniestValue","min","maxestValue","pixelRatio","abs","valueScale","minValueShift","maxValueShift","floor","PlotEventEmitter"],"sources":["../../src/utils.ts"],"sourcesContent":["import EventEmitter from '@semcore/core/lib/utils/eventEmitter';\nimport { extent, bisector, type Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n type ScaleIdentity,\n type ScaleTime,\n type ScaleContinuousNumeric,\n type ScaleBand,\n type ScalePoint,\n type NumberValue,\n scaleBand,\n scaleSqrt,\n} from 'd3-scale';\nimport type 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 } else if ('step' in scale && typeof scale.step !== 'undefined' && Array.isArray(data)) { // detect bar chart\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else if ('invert' in scale && typeof scale.invert === 'function' && !Array.isArray(data)) { // detect cigarette chart\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 // eslint-disable-next-line no-console\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]); // min/max radius\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 [Math.floor(min), Math.floor(max)];\n};\n\ntype CommonEvents = {\n setTooltipVisible: (visible: boolean) => void;\n setTooltipPosition: (x: number, y: number) => void;\n};\n\ntype Events = {\n [K in keyof CommonEvents as `${K}_${string}`]: CommonEvents[K];\n};\n\nexport const PlotEventEmitter = EventEmitter<Events>;\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
- import { createComponent, Component } from "@semcore/core";
3
+ import { Component, createComponent } from "@semcore/core";
4
4
  import propsForElement from "@semcore/core/lib/utils/propsForElement";
5
5
  import React from "react";
6
6
  class AnimatedClipPath extends Component {
package/lib/esm/Area.mjs CHANGED
@@ -3,15 +3,14 @@ import { sstyled, Component } from "@semcore/core";
3
3
  import findComponent from "@semcore/core/lib/utils/findComponent";
4
4
  import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
5
5
  import { bisector } from "d3-array";
6
- import { line, area, curveLinear } from "d3-shape";
6
+ import { line, curveLinear, area } from "d3-shape";
7
7
  import React from "react";
8
8
  import AnimatedClipPath from "./AnimatedClipPath.mjs";
9
9
  import { SvgElement } from "./component/SvgElement.mjs";
10
10
  import createElement from "./createElement.mjs";
11
11
  import Dots from "./Dots.mjs";
12
12
  import { PatternFill } from "./Pattern.mjs";
13
- import { interpolateValue, getNullData, eventToPoint, invert, definedNullData, definedData, scaleOfBandwidth } from "./utils.mjs";
14
- /*!__reshadow-styles__:"./style/area.shadow.css"*/
13
+ import { interpolateValue, getNullData, definedNullData, eventToPoint, invert, definedData, scaleOfBandwidth } from "./utils.mjs";
15
14
  const style = (
16
15
  /*__reshadow_css_start__*/
17
16
  (sstyled.insert(
package/lib/esm/Axis.mjs CHANGED
@@ -4,7 +4,6 @@ import { sstyled, Component } from "@semcore/core";
4
4
  import React, { useState, useEffect } from "react";
5
5
  import createElement from "./createElement.mjs";
6
6
  import { scaleOfBandwidth } from "./utils.mjs";
7
- /*!__reshadow-styles__:"./style/axis.shadow.css"*/
8
7
  const style = (
9
8
  /*__reshadow_css_start__*/
10
9
  (sstyled.insert(
@@ -31,8 +30,8 @@ const style = (
31
30
  "_position_custom_1": "_position_custom_1_yb2p1_gg_"
32
31
  })
33
32
  );
34
- const CUSTOM_0 = Symbol("custom_0");
35
- const CUSTOM_1 = Symbol("custom_1");
33
+ const CUSTOM_0 = /* @__PURE__ */ Symbol("custom_0");
34
+ const CUSTOM_1 = /* @__PURE__ */ Symbol("custom_1");
36
35
  const MAP_INDEX_SCALE_SYMBOL = {
37
36
  0: CUSTOM_0,
38
37
  1: CUSTOM_1
@@ -243,14 +242,13 @@ function measureTextWidth(rootRef, text, fontSize = 12) {
243
242
  }
244
243
  class AxisRoot extends Component {
245
244
  get ticks() {
246
- var _a, _b;
247
245
  const {
248
246
  ticks,
249
247
  indexScale,
250
248
  scale
251
249
  } = this.asProps;
252
250
  const scl = scale[indexScale];
253
- return ticks || ((_a = scl.ticks) == null ? void 0 : _a.call(scl)) || ((_b = scl.domain) == null ? void 0 : _b.call(scl)) || [];
251
+ return ticks || scl.ticks?.() || scl.domain?.() || [];
254
252
  }
255
253
  getTitleProps() {
256
254
  const {
@@ -304,7 +302,6 @@ _defineProperty(AxisRoot, "displayName", "Axis");
304
302
  _defineProperty(AxisRoot, "style", style);
305
303
  _defineProperty(AxisRoot, "defaultProps", {});
306
304
  function Ticks(props) {
307
- var _a, _b;
308
305
  const {
309
306
  Element: STick,
310
307
  styles,
@@ -323,7 +320,7 @@ function Ticks(props) {
323
320
  useEffect(() => {
324
321
  if (rootRef.current) setRootRefElement(rootRef.current);
325
322
  }, []);
326
- const tickBandwidth = (_b = (_a = scale[indexScale]) == null ? void 0 : _a.bandwidth) == null ? void 0 : _b.call(_a);
323
+ const tickBandwidth = scale[indexScale]?.bandwidth?.();
327
324
  const ticksWithLines = ticks.map((tick) => ({
328
325
  tick,
329
326
  lines: typeof tick === "string" && multiline && rootRefElement ? splitTextByWidth(rootRefElement, tick, tickBandwidth) : []
package/lib/esm/Bar.mjs CHANGED
@@ -7,7 +7,6 @@ import AnimatedClipPath from "./AnimatedClipPath.mjs";
7
7
  import createElement from "./createElement.mjs";
8
8
  import { PatternFill } from "./Pattern.mjs";
9
9
  import { scaleToBand, roundedPath } from "./utils.mjs";
10
- /*!__reshadow-styles__:"./style/bar.shadow.css"*/
11
10
  const style = (
12
11
  /*__reshadow_css_start__*/
13
12
  (sstyled.insert(
@@ -102,7 +101,7 @@ class BarRoot extends Component {
102
101
  const width = Math.min(bandWidth, maxBarSize);
103
102
  const barX = xScale(d[x]) + bandWidth / 2 - width / 2 + offset[0];
104
103
  const barY = yScale(Math.max(d[y0] ?? 0, height <= hMin && d[y] > 0 ? 0 : d[y])) + offset[1] - calcPartBarY(d[y], hMin, height);
105
- const handleClick = (event) => onClick == null ? void 0 : onClick(d, event, i, y);
104
+ const handleClick = (event) => onClick?.(d, event, i, y);
106
105
  const dSvg = getRect({
107
106
  x: barX,
108
107
  y: barY,
@@ -1,5 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { sstyled, assignProps, Component } from "@semcore/core";
2
+ import { sstyled, Component, assignProps } from "@semcore/core";
3
3
  import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
4
4
  import findComponent from "@semcore/core/lib/utils/findComponent";
5
5
  import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
@@ -10,28 +10,28 @@ import createElement from "./createElement.mjs";
10
10
  import { PatternFill } from "./Pattern.mjs";
11
11
  import Tooltip from "./Tooltip.mjs";
12
12
  import { getBubbleChartValueScale, measureText } from "./utils.mjs";
13
- /*!__reshadow-styles__:"./style/bubble.shadow.css"*/
14
13
  const style = (
15
14
  /*__reshadow_css_start__*/
16
15
  (sstyled.insert(
17
16
  /*__inner_css_start__*/
18
- ".___SBubble_h0z26_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);stroke:var(--intergalactic-chart-grid-border, #ffffff);stroke-width:2px;transition-property:cx,cy;transition-duration:var(--duration_h0z26);transition-timing-function:ease-in-out;opacity:.5}@media (hover:hover){.___SBubble_h0z26_gg_:hover{opacity:.8}}g._visible_false_h0z26_gg_{display:none}.___SBubble_h0z26_gg_.__color_h0z26_gg_{fill:var(--color_h0z26)}.___SBubble_h0z26_gg_.__pattern_h0z26_gg_.__color_h0z26_gg_{fill:var(--pattern_h0z26);stroke:var(--color_h0z26);stroke-width:1px}.___SBubble_h0z26_gg_.__transparent_h0z26_gg_{opacity:.3}.___SCenter_h0z26_gg_{text-anchor:middle;font-size:calc(var(--intergalactic-fs-100, 12px) - 1px);stroke:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SCenter_h0z26_gg_.__color_h0z26_gg_{stroke:var(--color_h0z26)}.___SCenter_h0z26_gg_.__transparent_h0z26_gg_{opacity:.3}.___SLabel_h0z26_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SLabel_h0z26_gg_._position_right_h0z26_gg_{text-anchor:end}.___SLabel_h0z26_gg_._position_left_h0z26_gg_{text-anchor:start}.___SLabel_h0z26_gg_.__color_h0z26_gg_{fill:var(--color_h0z26)}.___SLabel_h0z26_gg_.__transparent_h0z26_gg_{opacity:.3}",
17
+ ".___SBubble_1e3ic_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);stroke:var(--intergalactic-chart-grid-border, #ffffff);stroke-width:2px;transition-property:cx,cy;transition-duration:var(--duration_1e3ic);transition-timing-function:ease-in-out;opacity:.5}@media (hover:hover){.___SBubble_1e3ic_gg_:hover{opacity:.8}}g._visible_false_1e3ic_gg_{display:none}.___SBubble_1e3ic_gg_.__clickable_1e3ic_gg_{cursor:pointer}.___SBubble_1e3ic_gg_.__color_1e3ic_gg_{fill:var(--color_1e3ic)}.___SBubble_1e3ic_gg_.__pattern_1e3ic_gg_.__color_1e3ic_gg_{fill:var(--pattern_1e3ic);stroke:var(--color_1e3ic);stroke-width:1px}.___SBubble_1e3ic_gg_.__transparent_1e3ic_gg_{opacity:.3}.___SCenter_1e3ic_gg_{text-anchor:middle;font-size:calc(var(--intergalactic-fs-100, 12px) - 1px);stroke:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SCenter_1e3ic_gg_.__color_1e3ic_gg_{stroke:var(--color_1e3ic)}.___SCenter_1e3ic_gg_.__transparent_1e3ic_gg_{opacity:.3}.___SLabel_1e3ic_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff)}.___SLabel_1e3ic_gg_._position_right_1e3ic_gg_{text-anchor:end}.___SLabel_1e3ic_gg_._position_left_1e3ic_gg_{text-anchor:start}.___SLabel_1e3ic_gg_.__color_1e3ic_gg_{fill:var(--color_1e3ic)}.___SLabel_1e3ic_gg_.__transparent_1e3ic_gg_{opacity:.3}",
19
18
  /*__inner_css_end__*/
20
- "h0z26_gg_"
19
+ "1e3ic_gg_"
21
20
  ), /*__reshadow_css_end__*/
22
21
  {
23
- "_visible_false": "_visible_false_h0z26_gg_",
24
- "__SBubble": "___SBubble_h0z26_gg_",
25
- "_color": "__color_h0z26_gg_",
26
- "--color": "--color_h0z26",
27
- "_pattern": "__pattern_h0z26_gg_",
28
- "--pattern": "--pattern_h0z26",
29
- "_transparent": "__transparent_h0z26_gg_",
30
- "__SCenter": "___SCenter_h0z26_gg_",
31
- "__SLabel": "___SLabel_h0z26_gg_",
32
- "_position_right": "_position_right_h0z26_gg_",
33
- "_position_left": "_position_left_h0z26_gg_",
34
- "--duration": "--duration_h0z26"
22
+ "_visible_false": "_visible_false_1e3ic_gg_",
23
+ "__SBubble": "___SBubble_1e3ic_gg_",
24
+ "_clickable": "__clickable_1e3ic_gg_",
25
+ "_color": "__color_1e3ic_gg_",
26
+ "--color": "--color_1e3ic",
27
+ "_pattern": "__pattern_1e3ic_gg_",
28
+ "--pattern": "--pattern_1e3ic",
29
+ "_transparent": "__transparent_1e3ic_gg_",
30
+ "__SCenter": "___SCenter_1e3ic_gg_",
31
+ "__SLabel": "___SLabel_1e3ic_gg_",
32
+ "_position_right": "_position_right_1e3ic_gg_",
33
+ "_position_left": "_position_left_1e3ic_gg_",
34
+ "--duration": "--duration_1e3ic"
35
35
  })
36
36
  );
37
37
  class BubbleRoot extends Component {
@@ -72,8 +72,7 @@ class BubbleRoot extends Component {
72
72
  const selectRectNode = selectRect.node();
73
73
  if (selectRectNode) {
74
74
  selectRect.transition().duration(duration).attr("r", function(_, ind) {
75
- var _a;
76
- return z((_a = data[ind]) == null ? void 0 : _a[value]);
75
+ return z(data[ind]?.[value]);
77
76
  });
78
77
  }
79
78
  }
@@ -103,7 +102,7 @@ class BubbleRoot extends Component {
103
102
  const {
104
103
  onClick
105
104
  } = this.asProps;
106
- onClick == null ? void 0 : onClick(index, e);
105
+ onClick?.(index, e);
107
106
  };
108
107
  }
109
108
  getCircleProps() {
@@ -123,7 +122,8 @@ class BubbleRoot extends Component {
123
122
  data,
124
123
  transparent,
125
124
  resolveColor,
126
- patterns
125
+ patterns,
126
+ onClick
127
127
  } = this.asProps;
128
128
  return {
129
129
  color,
@@ -143,6 +143,7 @@ class BubbleRoot extends Component {
143
143
  resolveColor,
144
144
  patterns,
145
145
  bindHandlerTooltip: this.bindHandlerTooltip,
146
+ clickable: Boolean(onClick),
146
147
  onClickCircleRoot: this.handlerOnClick.bind(this)
147
148
  };
148
149
  }
@@ -218,6 +219,7 @@ function BubbleCircle(props) {
218
219
  bindHandlerTooltip,
219
220
  Element,
220
221
  visible = true,
222
+ clickable,
221
223
  onClick,
222
224
  onClickCircleRoot
223
225
  } = props;
@@ -269,7 +271,8 @@ function BubbleCircle(props) {
269
271
  "pattern": patterns ? `url(#${uid}-${index}-pattern)` : void 0,
270
272
  "r": z(circleData[value]),
271
273
  "use:duration": `${duration}ms`,
272
- "transparent": transparent
274
+ "transparent": transparent,
275
+ "clickable": clickable || Boolean(onClick)
273
276
  })), patterns && /* @__PURE__ */ React.createElement(PatternFill, _ref3.cn("PatternFill", {
274
277
  "id": `${uid}-${index}-pattern`,
275
278
  "patternKey": circleData[color],
@@ -1,5 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { sstyled, assignProps, Component } from "@semcore/core";
2
+ import { sstyled, Component, assignProps } from "@semcore/core";
3
3
  import { Box } from "@semcore/base-components";
4
4
  import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
5
5
  import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
@@ -10,8 +10,7 @@ import AnimatedClipPath from "./AnimatedClipPath.mjs";
10
10
  import createElement from "./createElement.mjs";
11
11
  import { PatternFill } from "./Pattern.mjs";
12
12
  import Tooltip from "./Tooltip.mjs";
13
- import { eventToPoint, roundedPath, scaleToBand } from "./utils.mjs";
14
- /*!__reshadow-styles__:"./style/bar.shadow.css"*/
13
+ import { scaleToBand, roundedPath, eventToPoint } from "./utils.mjs";
15
14
  const style = (
16
15
  /*__reshadow_css_start__*/
17
16
  (sstyled.insert(
@@ -334,7 +333,7 @@ function Bar(props) {
334
333
  hide
335
334
  } = props;
336
335
  const onClickHandler = React.useCallback((event) => {
337
- onClick == null ? void 0 : onClick(index, event);
336
+ onClick?.(index, event);
338
337
  }, [onClick, index]);
339
338
  const contextValue = React.useMemo(() => ({
340
339
  onClick: onClickHandler,
@@ -552,6 +551,7 @@ function CompactHorizontalBarTooltip(props) {
552
551
  }, _ref4)
553
552
  }));
554
553
  }
554
+ ;
555
555
  const CompactHorizontalBar = createElement(CompactHorizontalBarRoot, {
556
556
  Annotation,
557
557
  Label,
package/lib/esm/Donut.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { sstyled, assignProps, Component } from "@semcore/core";
2
+ import { sstyled, Component, assignProps } from "@semcore/core";
3
3
  import { callAllEventHandlers } from "@semcore/core/lib/utils/assignProps";
4
4
  import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
5
5
  import getOriginChildren from "@semcore/core/lib/utils/getOriginChildren";
@@ -12,7 +12,6 @@ import createElement from "./createElement.mjs";
12
12
  import { PatternFill } from "./Pattern.mjs";
13
13
  import Tooltip from "./Tooltip.mjs";
14
14
  import { getChartDefaultColorName } from "./utils.mjs";
15
- /*!__reshadow-styles__:"./style/donut.shadow.css"*/
16
15
  const style = (
17
16
  /*__reshadow_css_start__*/
18
17
  (sstyled.insert(
@@ -32,7 +31,7 @@ const style = (
32
31
  "__SLabel": "___SLabel_1s4vb_gg_"
33
32
  })
34
33
  );
35
- const DEFAULT_INSTANCE = Symbol("DEFAULT_INSTANCE");
34
+ const DEFAULT_INSTANCE = /* @__PURE__ */ Symbol("DEFAULT_INSTANCE");
36
35
  function transitionAnglePie({
37
36
  selector,
38
37
  duration,
@@ -334,7 +333,8 @@ _defineProperty(DonutRoot, "defaultProps", ({
334
333
  }) => {
335
334
  const d3Arc = arc().outerRadius(outerRadius || getOuterRadius({
336
335
  size,
337
- halfsize
336
+ halfsize,
337
+ outerRadius
338
338
  })).innerRadius(innerRadius).padAngle(paddingAngle);
339
339
  const d3ArcOut = arc().outerRadius((outerRadius || getOuterRadius({
340
340
  size,
@@ -463,6 +463,7 @@ function DonutTooltip(props) {
463
463
  }, _ref)
464
464
  }));
465
465
  }
466
+ ;
466
467
  const Donut = createElement(DonutRoot, {
467
468
  Pie,
468
469
  Label,
package/lib/esm/Dots.mjs CHANGED
@@ -4,8 +4,7 @@ import { bisector } from "d3-array";
4
4
  import React from "react";
5
5
  import createElement from "./createElement.mjs";
6
6
  import { getPatternSymbolSize, PatternSymbol } from "./Pattern.mjs";
7
- import { interpolateValue, eventToPoint, invert, getChartDefaultColorName } from "./utils.mjs";
8
- /*!__reshadow-styles__:"./style/dot.shadow.css"*/
7
+ import { getChartDefaultColorName, interpolateValue, eventToPoint, invert } from "./utils.mjs";
9
8
  const style = (
10
9
  /*__reshadow_css_start__*/
11
10
  (sstyled.insert(
@@ -6,7 +6,6 @@ import AnimatedClipPath from "./AnimatedClipPath.mjs";
6
6
  import createElement from "./createElement.mjs";
7
7
  import { PatternFill } from "./Pattern.mjs";
8
8
  import { scaleToBand, roundedPath } from "./utils.mjs";
9
- /*!__reshadow-styles__:"./style/bar.shadow.css"*/
10
9
  const style = (
11
10
  /*__reshadow_css_start__*/
12
11
  (sstyled.insert(
@@ -85,7 +84,7 @@ class HorizontalBarRoot extends Component {
85
84
  const width = Number(d[x] - (d[x0] ?? 0)) === 0 ? 0 : Math.max(absWidth, wMin);
86
85
  const barY = yScale(d[y]) + bandHeight / 2 - height / 2 + offset[1];
87
86
  const barX = xScale(Math.min(d[x0] ?? 0, width <= wMin && d[x] < 0 ? 0 : d[x])) + offset[0] - calcPartBarX(d[x], wMin, width);
88
- const handleClick = (event) => onClick == null ? void 0 : onClick(d, event, i, x);
87
+ const handleClick = (event) => onClick?.(d, event, i, x);
89
88
  const dSvg = getHorizontalRect({
90
89
  x: barX,
91
90
  y: barY,
package/lib/esm/Hover.mjs CHANGED
@@ -1,13 +1,12 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { sstyled, assignProps, Component } from "@semcore/core";
2
+ import { sstyled, Component, assignProps } from "@semcore/core";
3
3
  import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
4
4
  import { hasParent } from "@semcore/core/lib/utils/hasParent";
5
5
  import trottle from "@semcore/core/lib/utils/rafTrottle";
6
6
  import React from "react";
7
7
  import createElement from "./createElement.mjs";
8
8
  import Tooltip from "./Tooltip.mjs";
9
- import { scaleOfBandwidth, scaleToBand, eventToPoint, invert, getIndexFromData } from "./utils.mjs";
10
- /*!__reshadow-styles__:"./style/hover.shadow.css"*/
9
+ import { eventToPoint, invert, getIndexFromData, scaleOfBandwidth, scaleToBand } from "./utils.mjs";
11
10
  const style = (
12
11
  /*__reshadow_css_start__*/
13
12
  (sstyled.insert(
package/lib/esm/Line.mjs CHANGED
@@ -2,14 +2,13 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { sstyled, Component } from "@semcore/core";
3
3
  import uniqueIDEnhancement, { useUID } from "@semcore/core/lib/utils/uniqueID";
4
4
  import { bisector } from "d3-array";
5
- import { curveCardinal, area, line, curveLinear } from "d3-shape";
5
+ import { line, curveLinear, curveCardinal, area } from "d3-shape";
6
6
  import React from "react";
7
7
  import AnimatedClipPath from "./AnimatedClipPath.mjs";
8
8
  import createElement from "./createElement.mjs";
9
9
  import Dots from "./Dots.mjs";
10
10
  import { resolvePatternDasharray } from "./Pattern.mjs";
11
- import { interpolateValue, definedData, getNullData, eventToPoint, invert, getChartDefaultColorName, definedNullData, scaleOfBandwidth } from "./utils.mjs";
12
- /*!__reshadow-styles__:"./style/line.shadow.css"*/
11
+ import { interpolateValue, getNullData, definedNullData, eventToPoint, invert, getChartDefaultColorName, definedData, scaleOfBandwidth } from "./utils.mjs";
13
12
  const style = (
14
13
  /*__reshadow_css_start__*/
15
14
  (sstyled.insert(
@@ -483,9 +483,8 @@ const getPatternSymbolSize = ({
483
483
  patternKey,
484
484
  patterns
485
485
  }) => {
486
- var _a;
487
486
  const patternData = resolvePattern(patternKey, patterns);
488
- if (!((_a = patternData == null ? void 0 : patternData.symbol) == null ? void 0 : _a.size)) return [10, 10];
487
+ if (!patternData?.symbol?.size) return [10, 10];
489
488
  return patternData.symbol.size;
490
489
  };
491
490
  const PatternSymbol = ({
@@ -496,10 +495,10 @@ const PatternSymbol = ({
496
495
  }) => {
497
496
  const DefaultSymbol = React.useMemo(() => {
498
497
  const patternData = resolvePattern(patternKey, patterns);
499
- const children = patternData == null ? void 0 : patternData.symbol.children;
500
- const viewBox = patternData == null ? void 0 : patternData.symbol.viewBox;
501
- const width = patternData == null ? void 0 : patternData.symbol.size[0];
502
- const height = patternData == null ? void 0 : patternData.symbol.size[1];
498
+ const children = patternData?.symbol.children;
499
+ const viewBox = patternData?.symbol.viewBox;
500
+ const width = patternData?.symbol.size[0];
501
+ const height = patternData?.symbol.size[1];
503
502
  return (props2) => /* @__PURE__ */ React.createElement("svg", _extends({
504
503
  fill: color,
505
504
  x: "0",
@@ -516,7 +515,7 @@ const PatternSymbol = ({
516
515
  };
517
516
  const resolvePatternDasharray = (patternKey, patterns) => {
518
517
  const pattern = resolvePattern(patternKey, patterns);
519
- return pattern == null ? void 0 : pattern.dasharray;
518
+ return pattern?.dasharray;
520
519
  };
521
520
  export {
522
521
  PatternFill,
package/lib/esm/Plot.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { createComponent, Component, sstyled, assignProps } from "@semcore/core";
2
+ import { sstyled, Component, assignProps, createComponent } from "@semcore/core";
3
3
  import { Box } from "@semcore/base-components";
4
4
  import i18nEnhance from "@semcore/core/lib/utils/enhances/i18nEnhance";
5
5
  import resolveColorEnhance from "@semcore/core/lib/utils/enhances/resolveColorEnhance";
@@ -9,7 +9,6 @@ import { makeDataHintsContainer, makeDataHintsHandlers } from "./a11y/hints.mjs"
9
9
  import { PlotA11yModule } from "./a11y/PlotA11yModule.mjs";
10
10
  import { localizedMessages } from "./translations/__intergalactic-dynamic-locales.mjs";
11
11
  import { uniqueId, eventToPoint } from "./utils.mjs";
12
- /*!__reshadow-styles__:"./style/plot.shadow.css"*/
13
12
  const style = (
14
13
  /*__reshadow_css_start__*/
15
14
  (sstyled.insert(
@@ -53,7 +52,6 @@ class PlotRoot extends Component {
53
52
  this.eventEmitter = props.eventEmitter || new EventEmitter();
54
53
  }
55
54
  setContext() {
56
- var _a, _b;
57
55
  const {
58
56
  scale,
59
57
  data,
@@ -64,8 +62,8 @@ class PlotRoot extends Component {
64
62
  patterns,
65
63
  duration
66
64
  } = this.asProps;
67
- const yScaleDomain = (_b = (_a = scale == null ? void 0 : scale[1]) == null ? void 0 : _a.domain) == null ? void 0 : _b.call(_a);
68
- if ((yScaleDomain == null ? void 0 : yScaleDomain.length) && (data == null ? void 0 : data.length)) {
65
+ const yScaleDomain = scale?.[1]?.domain?.();
66
+ if (yScaleDomain?.length && data?.length) {
69
67
  this.dataHintsHandler.setPointsDensity(data.length / width, Math.abs(yScaleDomain[1] - yScaleDomain[0]) / height);
70
68
  }
71
69
  return {
package/lib/esm/Radar.mjs CHANGED
@@ -1,17 +1,16 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { sstyled, assignProps, Component } from "@semcore/core";
2
+ import { sstyled, Component, assignProps } from "@semcore/core";
3
3
  import canUseDOM from "@semcore/core/lib/utils/canUseDOM";
4
4
  import getOriginChildren from "@semcore/core/lib/utils/getOriginChildren";
5
5
  import trottle from "@semcore/core/lib/utils/rafTrottle";
6
6
  import uniqueIDEnhancement from "@semcore/core/lib/utils/uniqueID";
7
7
  import { polygonContains } from "d3-polygon";
8
- import { arc, line, lineRadial, curveLinearClosed } from "d3-shape";
8
+ import { lineRadial, curveLinearClosed, arc, line } from "d3-shape";
9
9
  import React, { cloneElement } from "react";
10
10
  import createElement from "./createElement.mjs";
11
- import { getPatternSymbolSize, PatternSymbol, PatternFill } from "./Pattern.mjs";
11
+ import { PatternFill, getPatternSymbolSize, PatternSymbol } from "./Pattern.mjs";
12
12
  import Tooltip from "./Tooltip.mjs";
13
- import { eventToPoint, getChartDefaultColorName, measureText } from "./utils.mjs";
14
- /*!__reshadow-styles__:"./style/radar.shadow.css"*/
13
+ import { measureText, getChartDefaultColorName, eventToPoint } from "./utils.mjs";
15
14
  const style = (
16
15
  /*__reshadow_css_start__*/
17
16
  (sstyled.insert(
@@ -71,12 +70,11 @@ function getLabelPlacement(i, total, angleOffset) {
71
70
  }
72
71
  function computeTextWidth(texts, textSize, defaultWidth = 50, defaultHeight = 20) {
73
72
  const widths = texts.map((text) => {
74
- var _a, _b;
75
73
  if (typeof text === "string") {
76
74
  return measureText(text, textSize);
77
75
  }
78
76
  if (/* @__PURE__ */ React.isValidElement(text)) {
79
- return Math.max(((_a = text.props) == null ? void 0 : _a.width) || defaultWidth, ((_b = text.props) == null ? void 0 : _b.height) || defaultHeight);
77
+ return Math.max(text.props?.width || defaultWidth, text.props?.height || defaultHeight);
80
78
  }
81
79
  return defaultWidth;
82
80
  });
@@ -506,8 +504,7 @@ class AxisRoot extends Component {
506
504
  this.unsubscribeTooltipVisible = eventEmitter.subscribe("setTooltipRenderingProps", this.handleTooltipRenderingProps);
507
505
  }
508
506
  componentWillUnmount() {
509
- var _a;
510
- (_a = this.unsubscribeTooltipVisible) == null ? void 0 : _a.call(this);
507
+ this.unsubscribeTooltipVisible?.();
511
508
  }
512
509
  render() {
513
510
  var _ref7;
@@ -626,7 +623,7 @@ function AxisLabels(props) {
626
623
  const {
627
624
  width = 0,
628
625
  height = 0
629
- } = (category == null ? void 0 : category.props) ?? {};
626
+ } = category?.props ?? {};
630
627
  const [xOffset, yOffset] = getLabelOffsetPosition(xDirection, yDirection, width, height);
631
628
  return /* @__PURE__ */ cloneElement(category, {
632
629
  key: i,