@semcore/d3-chart 2.2.1 → 2.2.4

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 (157) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +2 -2
  3. package/lib/cjs/Area.js +9 -9
  4. package/lib/cjs/Area.js.map +1 -1
  5. package/lib/cjs/Axis.js +19 -17
  6. package/lib/cjs/Axis.js.map +1 -1
  7. package/lib/cjs/Bar.js +11 -11
  8. package/lib/cjs/Bar.js.map +1 -1
  9. package/lib/cjs/Bubble.js +12 -12
  10. package/lib/cjs/Bubble.js.map +1 -1
  11. package/lib/cjs/ClipPath.js +1 -1
  12. package/lib/cjs/ClipPath.js.map +1 -1
  13. package/lib/cjs/Donut.js +8 -8
  14. package/lib/cjs/Donut.js.map +1 -1
  15. package/lib/cjs/Dots.js +9 -9
  16. package/lib/cjs/Dots.js.map +1 -1
  17. package/lib/cjs/GroupBar.js +8 -8
  18. package/lib/cjs/GroupBar.js.map +1 -1
  19. package/lib/cjs/HorizontalBar.js +11 -11
  20. package/lib/cjs/HorizontalBar.js.map +1 -1
  21. package/lib/cjs/Hover.js +4 -4
  22. package/lib/cjs/Hover.js.map +1 -1
  23. package/lib/cjs/Line.js +8 -8
  24. package/lib/cjs/Line.js.map +1 -1
  25. package/lib/cjs/Plot.js +4 -4
  26. package/lib/cjs/Plot.js.map +1 -1
  27. package/lib/cjs/RadialTree.js +99 -59
  28. package/lib/cjs/RadialTree.js.map +1 -1
  29. package/lib/cjs/ReferenceLine.js +10 -10
  30. package/lib/cjs/ReferenceLine.js.map +1 -1
  31. package/lib/cjs/ResponsiveContainer.js +1 -1
  32. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  33. package/lib/cjs/ScatterPlot.js +7 -7
  34. package/lib/cjs/ScatterPlot.js.map +1 -1
  35. package/lib/cjs/StackBar.js +8 -8
  36. package/lib/cjs/StackBar.js.map +1 -1
  37. package/lib/cjs/StackedArea.js +8 -8
  38. package/lib/cjs/StackedArea.js.map +1 -1
  39. package/lib/cjs/Tooltip.js +15 -11
  40. package/lib/cjs/Tooltip.js.map +1 -1
  41. package/lib/cjs/Venn.js +9 -9
  42. package/lib/cjs/Venn.js.map +1 -1
  43. package/lib/cjs/color.js.map +1 -1
  44. package/lib/cjs/createElement.js +3 -2
  45. package/lib/cjs/createElement.js.map +1 -1
  46. package/lib/cjs/index.js.map +1 -1
  47. package/lib/cjs/style/radial-tree.shadow.css +0 -1
  48. package/lib/cjs/types/index.d.ts +3 -0
  49. package/lib/cjs/utils.js.map +1 -1
  50. package/lib/es6/Area.js +9 -9
  51. package/lib/es6/Area.js.map +1 -1
  52. package/lib/es6/Axis.js +19 -17
  53. package/lib/es6/Axis.js.map +1 -1
  54. package/lib/es6/Bar.js +11 -11
  55. package/lib/es6/Bar.js.map +1 -1
  56. package/lib/es6/Bubble.js +12 -12
  57. package/lib/es6/Bubble.js.map +1 -1
  58. package/lib/es6/ClipPath.js +1 -1
  59. package/lib/es6/ClipPath.js.map +1 -1
  60. package/lib/es6/Donut.js +8 -8
  61. package/lib/es6/Donut.js.map +1 -1
  62. package/lib/es6/Dots.js +9 -9
  63. package/lib/es6/Dots.js.map +1 -1
  64. package/lib/es6/GroupBar.js +8 -8
  65. package/lib/es6/GroupBar.js.map +1 -1
  66. package/lib/es6/HorizontalBar.js +11 -11
  67. package/lib/es6/HorizontalBar.js.map +1 -1
  68. package/lib/es6/Hover.js +4 -4
  69. package/lib/es6/Hover.js.map +1 -1
  70. package/lib/es6/Line.js +8 -8
  71. package/lib/es6/Line.js.map +1 -1
  72. package/lib/es6/Plot.js +4 -4
  73. package/lib/es6/Plot.js.map +1 -1
  74. package/lib/es6/RadialTree.js +99 -59
  75. package/lib/es6/RadialTree.js.map +1 -1
  76. package/lib/es6/ReferenceLine.js +10 -10
  77. package/lib/es6/ReferenceLine.js.map +1 -1
  78. package/lib/es6/ResponsiveContainer.js +1 -1
  79. package/lib/es6/ResponsiveContainer.js.map +1 -1
  80. package/lib/es6/ScatterPlot.js +7 -7
  81. package/lib/es6/ScatterPlot.js.map +1 -1
  82. package/lib/es6/StackBar.js +8 -8
  83. package/lib/es6/StackBar.js.map +1 -1
  84. package/lib/es6/StackedArea.js +8 -8
  85. package/lib/es6/StackedArea.js.map +1 -1
  86. package/lib/es6/Tooltip.js +15 -11
  87. package/lib/es6/Tooltip.js.map +1 -1
  88. package/lib/es6/Venn.js +9 -9
  89. package/lib/es6/Venn.js.map +1 -1
  90. package/lib/es6/color.js.map +1 -1
  91. package/lib/es6/createElement.js +3 -2
  92. package/lib/es6/createElement.js.map +1 -1
  93. package/lib/es6/index.js.map +1 -1
  94. package/lib/es6/style/radial-tree.shadow.css +0 -1
  95. package/lib/es6/types/index.d.ts +3 -0
  96. package/lib/es6/utils.js.map +1 -1
  97. package/lib/types/index.d.ts +3 -0
  98. package/package.json +1 -1
  99. package/src/Area.jsx +0 -137
  100. package/src/Axis.jsx +0 -314
  101. package/src/Bar.jsx +0 -149
  102. package/src/Bubble.jsx +0 -165
  103. package/src/ClipPath.jsx +0 -47
  104. package/src/Donut.jsx +0 -319
  105. package/src/Dots.jsx +0 -97
  106. package/src/GroupBar.jsx +0 -76
  107. package/src/HorizontalBar.jsx +0 -135
  108. package/src/Hover.jsx +0 -153
  109. package/src/Line.jsx +0 -89
  110. package/src/Plot.jsx +0 -79
  111. package/src/RadialTree.tsx +0 -767
  112. package/src/ReferenceLine.jsx +0 -146
  113. package/src/ResponsiveContainer.jsx +0 -84
  114. package/src/ScatterPlot.jsx +0 -112
  115. package/src/StackBar.jsx +0 -105
  116. package/src/StackedArea.jsx +0 -65
  117. package/src/Tooltip.jsx +0 -145
  118. package/src/Venn.jsx +0 -114
  119. package/src/color.js +0 -21
  120. package/src/createElement.jsx +0 -135
  121. package/src/index.js +0 -27
  122. package/src/style/area.shadow.css +0 -37
  123. package/src/style/axis.shadow.css +0 -85
  124. package/src/style/bar.shadow.css +0 -21
  125. package/src/style/bubble.shadow.css +0 -45
  126. package/src/style/donut.shadow.css +0 -24
  127. package/src/style/dot.shadow.css +0 -29
  128. package/src/style/hover.shadow.css +0 -9
  129. package/src/style/line.shadow.css +0 -29
  130. package/src/style/plot.shadow.css +0 -6
  131. package/src/style/radial-tree.shadow.css +0 -34
  132. package/src/style/reference-line.shadow.css +0 -37
  133. package/src/style/scatterplot.shadow.css +0 -27
  134. package/src/style/tooltip.shadow.css +0 -36
  135. package/src/style/var.css +0 -125
  136. package/src/style/venn.shadow.css +0 -29
  137. package/src/types/Area.d.ts +0 -48
  138. package/src/types/Axis.d.ts +0 -64
  139. package/src/types/Bar.d.ts +0 -52
  140. package/src/types/Bubble.d.ts +0 -32
  141. package/src/types/ClipPath.d.ts +0 -26
  142. package/src/types/Donut.d.ts +0 -46
  143. package/src/types/GroupBar.d.ts +0 -20
  144. package/src/types/HorizontalBar.d.ts +0 -29
  145. package/src/types/Hover.d.ts +0 -15
  146. package/src/types/Line.d.ts +0 -50
  147. package/src/types/Plot.d.ts +0 -16
  148. package/src/types/ReferenceLine.d.ts +0 -31
  149. package/src/types/ResponsiveContainer.d.ts +0 -20
  150. package/src/types/ScatterPlot.d.ts +0 -27
  151. package/src/types/StackBar.d.ts +0 -26
  152. package/src/types/StackedArea.d.ts +0 -26
  153. package/src/types/Tooltip.d.ts +0 -33
  154. package/src/types/Venn.d.ts +0 -45
  155. package/src/types/context.d.ts +0 -6
  156. package/src/types/index.d.ts +0 -56
  157. package/src/utils.ts +0 -227
@@ -21,7 +21,6 @@ SCap {
21
21
  SLabel {
22
22
  fill: var(--color);
23
23
  cursor: var(--text-cursor);
24
- transform-origin: var(--transform-origin);
25
24
  }
26
25
  SRadian:hover SLabel {
27
26
  fill: var(--color-hovered);
@@ -54,3 +54,6 @@ export * from './Bubble';
54
54
 
55
55
  export { default as ReferenceLine } from './ReferenceLine';
56
56
  export * from './ReferenceLine';
57
+
58
+ export { default as Venn } from './Venn';
59
+ export * from './Venn';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.ts"],"names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","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","bisect","center","step","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","split","line","append","createTextNode","display","body","textWidth","offsetWidth","remove"],"mappings":"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","sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\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 | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range() as number[];\n const domain = scale.domain();\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 Iterable<{ [key in Key]: Numeric | null | undefined }> = Iterable<{\n [key in Key]: Numeric | null | undefined;\n }>,\n>(\n data: Data,\n key: Key,\n) => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\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 Data extends {\n [key: string]: number;\n } = {},\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: string,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\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') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\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 getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\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 span.remove();\n return textWidth;\n});\n"],"file":"utils.js"}
1
+ {"version":3,"file":"utils.js","names":["extent","bisector","scaleQuantize","CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","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","bisect","center","step","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","split","line","append","createTextNode","display","body","textWidth","offsetWidth","remove"],"sources":["../../src/utils.ts"],"sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\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 | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if (scale.invert) return scale.invert(value);\n\n const range = scale.range() as number[];\n const domain = scale.domain();\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 Iterable<{ [key in Key]: Numeric | null | undefined }> = Iterable<{\n [key in Key]: Numeric | null | undefined;\n }>,\n>(\n data: Data,\n key: Key,\n) => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\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 Data extends {\n [key: string]: number;\n } = {},\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: string,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\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') {\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\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 getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\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 span.remove();\n return textWidth;\n});\n"],"mappings":"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"}
@@ -54,3 +54,6 @@ export * from './Bubble';
54
54
 
55
55
  export { default as ReferenceLine } from './ReferenceLine';
56
56
  export * from './ReferenceLine';
57
+
58
+ export { default as Venn } from './Venn';
59
+ export * from './Venn';
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": "2.2.1",
4
+ "version": "2.2.4",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
package/src/Area.jsx DELETED
@@ -1,137 +0,0 @@
1
- import React from 'react';
2
- import { area, curveLinear, line } from 'd3-shape';
3
- import Dots from './Dots';
4
- import { Component, sstyled } from '@semcore/core';
5
- import createElement from './createElement';
6
- import { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';
7
- import ClipPath from './ClipPath';
8
- import uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';
9
- import findComponent from '@semcore/utils/lib/findComponent';
10
-
11
- import style from './style/area.shadow.css';
12
-
13
- class AreaRoot extends Component {
14
- static displayName = 'Area';
15
- static style = style;
16
- static enhance = [uniqueIDEnhancement()];
17
-
18
- static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear, scale }) => {
19
- const [xScale, yScale] = scale || $rootProps.scale;
20
- const yRange = yScale.range();
21
-
22
- return {
23
- d3: area()
24
- .defined(definedData(x, y))
25
- .curve(curve)
26
- .x((p) => scaleOfBandwidth(xScale, p[x]))
27
- .y0((p) => (p[y0] ? scaleOfBandwidth(yScale, p[y0]) : yRange[0]))
28
- .y1((p) => scaleOfBandwidth(yScale, p[y])),
29
- d3Line: line()
30
- .defined(definedData(x, y))
31
- .curve(curve)
32
- .x((p) => scaleOfBandwidth(xScale, p[x]))
33
- .y((p) => scaleOfBandwidth(yScale, p[y])),
34
- duration: 500,
35
- };
36
- };
37
-
38
- getDotsProps() {
39
- const { x, y, color, data, d3Line } = this.asProps;
40
-
41
- return {
42
- x,
43
- y,
44
- data,
45
- d3: d3Line,
46
- color,
47
- };
48
- }
49
-
50
- getNullProps() {
51
- const { x, y, color, data, d3Line } = this.asProps;
52
- return {
53
- data: getNullData(data, definedNullData(x, y), y),
54
- d3: d3Line,
55
- color,
56
- };
57
- }
58
-
59
- getLineProps() {
60
- const { duration, color, data, d3Line, uid } = this.asProps;
61
-
62
- return {
63
- uid,
64
- data,
65
- d3: d3Line,
66
- color,
67
- duration,
68
- };
69
- }
70
-
71
- render() {
72
- const SArea = this.Element;
73
- const SAreaLine = 'path';
74
- const { styles, hide, d3, d3Line, data, color, uid, size, duration, Children } = this.asProps;
75
- const advanceMode = !!findComponent(Children, [Area.Line.displayName]);
76
-
77
- return sstyled(styles)(
78
- <>
79
- {!advanceMode && (
80
- <SAreaLine
81
- clipPath={`url(#${uid})`}
82
- d={d3Line(data)}
83
- color={color}
84
- use:duration={`${duration}ms`}
85
- />
86
- )}
87
- <SArea
88
- clipPath={`url(#${uid})`}
89
- render="path"
90
- d={d3(data)}
91
- hide={hide}
92
- color={color}
93
- use:duration={`${duration}ms`}
94
- />
95
- {duration && (
96
- <ClipPath
97
- setAttributeTag={(rect) => {
98
- rect.setAttribute('width', size[0]);
99
- }}
100
- id={uid}
101
- x="0"
102
- y="0"
103
- width={0}
104
- height={size[1]}
105
- transition={`width ${duration}ms ease-in-out`}
106
- />
107
- )}
108
- </>,
109
- );
110
- }
111
- }
112
-
113
- function Line(props) {
114
- const { Element: SAreaLine, styles, d3, data, color, duration, uid } = props;
115
- return sstyled(styles)(
116
- <SAreaLine
117
- render="path"
118
- clipPath={`url(#${uid})`}
119
- d={d3(data)}
120
- color={color}
121
- use:duration={`${duration}ms`}
122
- />,
123
- );
124
- }
125
-
126
- function Null(props) {
127
- const { Element: SNull, styles, d3, data, hide, color } = props;
128
- return sstyled(styles)(<SNull render="path" d={d3(data)} hide={hide} color={color} />);
129
- }
130
-
131
- const Area = createElement(AreaRoot, {
132
- Dots,
133
- Null,
134
- Line,
135
- });
136
-
137
- export default Area;
package/src/Axis.jsx DELETED
@@ -1,314 +0,0 @@
1
- import React from 'react';
2
- import { Component, sstyled } from '@semcore/core';
3
- import createElement from './createElement';
4
- import { scaleOfBandwidth } from './utils';
5
-
6
- import style from './style/axis.shadow.css';
7
-
8
- const CUSTOM_0 = Symbol('custom_0');
9
- const CUSTOM_1 = Symbol('custom_1');
10
-
11
- const MAP_INDEX_SCALE_SYMBOL = {
12
- 0: CUSTOM_0,
13
- 1: CUSTOM_1,
14
- };
15
-
16
- const MAP_POSITION_REVERT = {
17
- top: 'bottom',
18
- right: 'left',
19
- bottom: 'top',
20
- left: 'right',
21
- };
22
-
23
- const MAP_POSITION_AXIS = {
24
- top: ([xScale, yScale]) => {
25
- const xRange = xScale.range();
26
- const yRange = yScale.range();
27
- return {
28
- x1: xRange[0],
29
- y1: yRange[1],
30
- x2: xRange[1],
31
- y2: yRange[1],
32
- };
33
- },
34
- bottom: ([xScale, yScale]) => {
35
- const xRange = xScale.range();
36
- const yRange = yScale.range();
37
- return {
38
- x1: xRange[0],
39
- y1: yRange[0],
40
- x2: xRange[1],
41
- y2: yRange[0],
42
- };
43
- },
44
- right: ([xScale, yScale]) => {
45
- const xRange = xScale.range();
46
- const yRange = yScale.range();
47
- return {
48
- x1: xRange[1],
49
- y1: yRange[0],
50
- x2: xRange[1],
51
- y2: yRange[1],
52
- };
53
- },
54
- left: ([xScale, yScale]) => {
55
- const xRange = xScale.range();
56
- const yRange = yScale.range();
57
- return {
58
- x1: xRange[0],
59
- y1: yRange[0],
60
- x2: xRange[0],
61
- y2: yRange[1],
62
- };
63
- },
64
- [CUSTOM_0]: ([xScale, yScale], pos) => {
65
- const xRange = xScale.range();
66
- return {
67
- x1: xRange[0],
68
- y1: scaleOfBandwidth(yScale, pos),
69
- x2: xRange[1],
70
- y2: scaleOfBandwidth(yScale, pos),
71
- };
72
- },
73
- [CUSTOM_1]: ([xScale, yScale], pos) => {
74
- const yRange = yScale.range();
75
- return {
76
- x1: scaleOfBandwidth(xScale, pos),
77
- y1: yRange[0],
78
- x2: scaleOfBandwidth(xScale, pos),
79
- y2: yRange[1],
80
- };
81
- },
82
- };
83
-
84
- const MAP_POSITION_TICK = {
85
- top: ([xScale, yScale], value) => {
86
- const yRange = yScale.range();
87
- return {
88
- x: scaleOfBandwidth(xScale, value),
89
- y: yRange[1],
90
- };
91
- },
92
- bottom: ([xScale, yScale], value) => {
93
- const yRange = yScale.range();
94
- return {
95
- x: scaleOfBandwidth(xScale, value),
96
- y: yRange[0],
97
- };
98
- },
99
- right: ([xScale, yScale], value) => {
100
- const xRange = xScale.range();
101
- return {
102
- x: xRange[1],
103
- y: scaleOfBandwidth(yScale, value),
104
- };
105
- },
106
- left: ([xScale, yScale], value) => {
107
- const xRange = xScale.range();
108
- return {
109
- x: xRange[0],
110
- y: scaleOfBandwidth(yScale, value),
111
- };
112
- },
113
- [CUSTOM_0]: ([xScale, yScale], value, pos) => {
114
- return {
115
- x: scaleOfBandwidth(xScale, value),
116
- y: scaleOfBandwidth(yScale, pos),
117
- };
118
- },
119
- [CUSTOM_1]: ([xScale, yScale], value, pos) => {
120
- return {
121
- x: scaleOfBandwidth(xScale, pos),
122
- y: scaleOfBandwidth(yScale, value),
123
- };
124
- },
125
- };
126
-
127
- const MAP_POSITION_GRID = {
128
- 0: ([xScale, yScale], value) => {
129
- const yRange = yScale.range();
130
- const x = scaleOfBandwidth(xScale, value);
131
- return {
132
- x1: x,
133
- y1: yRange[0],
134
- x2: x,
135
- y2: yRange[1],
136
- };
137
- },
138
- 1: ([xScale, yScale], value) => {
139
- const xRange = xScale.range();
140
- const y = scaleOfBandwidth(yScale, value);
141
- return {
142
- x1: xRange[0],
143
- y1: y,
144
- x2: xRange[1],
145
- y2: y,
146
- };
147
- },
148
- };
149
-
150
- const OFFSET_TITLE = 10;
151
- const MAP_POSITION_TITlE = {
152
- top: ([xScale]) => {
153
- const xRange = xScale.range();
154
- return {
155
- x: (xRange[1] + xRange[0]) / 2,
156
- y: OFFSET_TITLE,
157
- };
158
- },
159
- bottom: ([xScale], [, height]) => {
160
- const xRange = xScale.range();
161
- return {
162
- x: (xRange[1] + xRange[0]) / 2,
163
- y: height - OFFSET_TITLE,
164
- };
165
- },
166
- right: ([, yScale], [width]) => {
167
- const yRange = yScale.range();
168
- return {
169
- x: width - OFFSET_TITLE,
170
- y: (yRange[0] + yRange[1]) / 2,
171
- };
172
- },
173
- left: ([, yScale]) => {
174
- const yRange = yScale.range();
175
- return {
176
- x: OFFSET_TITLE,
177
- y: (yRange[0] + yRange[1]) / 2,
178
- };
179
- },
180
- };
181
-
182
- function renderValue(value) {
183
- if (value instanceof Date) {
184
- return value.toLocaleDateString();
185
- }
186
- return value;
187
- }
188
-
189
- class AxisRoot extends Component {
190
- static displayName = 'Axis';
191
-
192
- static style = style;
193
-
194
- get ticks() {
195
- const { ticks, indexScale, scale } = this.asProps;
196
- const scl = scale[indexScale];
197
- return ticks || (scl.ticks && scl.ticks()) || (scl.domain && scl.domain()) || [];
198
- }
199
-
200
- getTitleProps() {
201
- const { position } = this.asProps;
202
- return {
203
- position: MAP_POSITION_REVERT[position],
204
- };
205
- }
206
-
207
- getTicksProps() {
208
- const { position, indexScale } = this.asProps;
209
- return {
210
- ticks: this.ticks,
211
- indexScale,
212
- position,
213
- };
214
- }
215
-
216
- getGridProps() {
217
- const { indexScale } = this.asProps;
218
- return {
219
- ticks: this.ticks,
220
- indexScale,
221
- };
222
- }
223
-
224
- render() {
225
- const SAxis = this.Element;
226
- const { styles, position, scale, hide, indexScale } = this.asProps;
227
-
228
- const pos =
229
- MAP_POSITION_AXIS[position] ?? MAP_POSITION_AXIS[MAP_INDEX_SCALE_SYMBOL[indexScale]];
230
-
231
- return sstyled(styles)(<SAxis render="line" hide={hide} {...pos(scale, position)} />);
232
- }
233
- }
234
-
235
- function Ticks(props) {
236
- const { Element: STick, styles, scale, ticks, position, hide, indexScale } = props;
237
-
238
- const pos = MAP_POSITION_TICK[position] ?? MAP_POSITION_TICK[MAP_INDEX_SCALE_SYMBOL[indexScale]];
239
- const positionClass = MAP_POSITION_TICK[position] ? position : 'custom_' + indexScale;
240
-
241
- return ticks.map((value, i) => {
242
- return sstyled(styles)(
243
- <STick
244
- key={i}
245
- render="text"
246
- childrenPosition="inside"
247
- __excludeProps={['data', 'scale', 'format', 'value']}
248
- value={value}
249
- index={i}
250
- position={positionClass}
251
- hide={hide}
252
- {...pos(scale, value, position)}
253
- >
254
- {renderValue(value)}
255
- </STick>,
256
- );
257
- });
258
- }
259
-
260
- function Grid(props) {
261
- const { Element: SGrid, styles, scale, ticks, indexScale } = props;
262
-
263
- return ticks.map((value, i) => {
264
- return sstyled(styles)(
265
- <SGrid key={i} render="line" {...MAP_POSITION_GRID[indexScale](scale, value)} />,
266
- );
267
- });
268
- }
269
-
270
- function Title(props) {
271
- const { Element: STitle, styles, scale, position, size } = props;
272
-
273
- const { x, y } = MAP_POSITION_TITlE[position](scale, size);
274
-
275
- const sstyles = sstyled(styles);
276
- const sTitleStyles = sstyles.cn('STitle', {
277
- 'transform-origin': `${x.toFixed(2)}px ${y.toFixed(2)}px`,
278
- });
279
-
280
- return sstyled(styles)(
281
- <STitle
282
- render="text"
283
- childrenPosition="inside"
284
- position={position}
285
- className={sTitleStyles.className}
286
- style={sTitleStyles.style}
287
- x={x}
288
- y={y}
289
- />,
290
- );
291
- }
292
-
293
- const XAxis = createElement(AxisRoot, {
294
- Ticks,
295
- Grid,
296
- Title,
297
- });
298
- XAxis.defaultProps = {
299
- indexScale: 0,
300
- position: 'bottom',
301
- };
302
-
303
- const YAxis = createElement(AxisRoot, {
304
- Ticks,
305
- Grid,
306
- Title,
307
- });
308
- YAxis.defaultProps = {
309
- indexScale: 1,
310
- position: 'left',
311
- hide: true,
312
- };
313
-
314
- export { XAxis, YAxis };