@semcore/d3-chart 2.17.5 → 3.0.0-beta.1

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 (156) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/lib/cjs/Area.js +9 -9
  3. package/lib/cjs/Axis.js +14 -14
  4. package/lib/cjs/Bar.js +11 -10
  5. package/lib/cjs/Bar.js.map +1 -1
  6. package/lib/cjs/Bubble.js +18 -13
  7. package/lib/cjs/Bubble.js.map +1 -1
  8. package/lib/cjs/Donut.js +10 -8
  9. package/lib/cjs/Donut.js.map +1 -1
  10. package/lib/cjs/Dots.js +9 -9
  11. package/lib/cjs/HorizontalBar.js +11 -10
  12. package/lib/cjs/HorizontalBar.js.map +1 -1
  13. package/lib/cjs/Hover.js +33 -11
  14. package/lib/cjs/Hover.js.map +1 -1
  15. package/lib/cjs/Line.js +8 -8
  16. package/lib/cjs/Plot.js +3 -3
  17. package/lib/cjs/Radar.js +82 -71
  18. package/lib/cjs/Radar.js.map +1 -1
  19. package/lib/cjs/RadialTree.js +92 -74
  20. package/lib/cjs/RadialTree.js.map +1 -1
  21. package/lib/cjs/ReferenceLine.js +9 -9
  22. package/lib/cjs/ResponsiveContainer.js +1 -2
  23. package/lib/cjs/ResponsiveContainer.js.map +1 -1
  24. package/lib/cjs/ScatterPlot.js +15 -10
  25. package/lib/cjs/ScatterPlot.js.map +1 -1
  26. package/lib/cjs/Tooltip.js +8 -8
  27. package/lib/cjs/Venn.js +10 -8
  28. package/lib/cjs/Venn.js.map +1 -1
  29. package/lib/cjs/a11y/PlotA11yModule.js +2 -2
  30. package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
  31. package/lib/cjs/a11y/PlotA11yView.js +3 -3
  32. package/lib/cjs/a11y/hints.js.map +1 -1
  33. package/lib/cjs/a11y/serialize.js.map +1 -1
  34. package/lib/cjs/createElement.d.js +2 -0
  35. package/lib/cjs/createElement.d.js.map +1 -0
  36. package/lib/cjs/types/Area.d.js.map +1 -1
  37. package/lib/cjs/types/Axis.d.js.map +1 -1
  38. package/lib/cjs/types/Bar.d.js.map +1 -1
  39. package/lib/cjs/types/Bubble.d.js.map +1 -1
  40. package/lib/cjs/types/ClipPath.d.js.map +1 -1
  41. package/lib/cjs/types/Donut.d.js.map +1 -1
  42. package/lib/cjs/types/GroupBar.d.js.map +1 -1
  43. package/lib/cjs/types/HorizontalBar.d.js.map +1 -1
  44. package/lib/cjs/types/Hover.d.js.map +1 -1
  45. package/lib/cjs/types/Line.d.js.map +1 -1
  46. package/lib/cjs/types/Plot.d.js +0 -2
  47. package/lib/cjs/types/Plot.d.js.map +1 -1
  48. package/lib/cjs/types/Radar.d.js +2 -0
  49. package/lib/cjs/types/Radar.d.js.map +1 -0
  50. package/lib/cjs/types/ReferenceLine.d.js.map +1 -1
  51. package/lib/cjs/types/ResponsiveContainer.d.js.map +1 -1
  52. package/lib/cjs/types/ScatterPlot.d.js.map +1 -1
  53. package/lib/cjs/types/StackBar.d.js.map +1 -1
  54. package/lib/cjs/types/StackedArea.d.js.map +1 -1
  55. package/lib/cjs/types/Tooltip.d.js.map +1 -1
  56. package/lib/cjs/types/Venn.d.js.map +1 -1
  57. package/lib/cjs/types/context.d.js.map +1 -1
  58. package/lib/cjs/types/index.d.js.map +1 -1
  59. package/lib/cjs/utils.js.map +1 -1
  60. package/lib/es6/Area.js +9 -9
  61. package/lib/es6/Axis.js +14 -14
  62. package/lib/es6/Bar.js +11 -10
  63. package/lib/es6/Bar.js.map +1 -1
  64. package/lib/es6/Bubble.js +18 -13
  65. package/lib/es6/Bubble.js.map +1 -1
  66. package/lib/es6/Donut.js +10 -8
  67. package/lib/es6/Donut.js.map +1 -1
  68. package/lib/es6/Dots.js +9 -9
  69. package/lib/es6/HorizontalBar.js +11 -10
  70. package/lib/es6/HorizontalBar.js.map +1 -1
  71. package/lib/es6/Hover.js +36 -12
  72. package/lib/es6/Hover.js.map +1 -1
  73. package/lib/es6/Line.js +8 -8
  74. package/lib/es6/Plot.js +3 -3
  75. package/lib/es6/Radar.js +84 -72
  76. package/lib/es6/Radar.js.map +1 -1
  77. package/lib/es6/RadialTree.js +90 -72
  78. package/lib/es6/RadialTree.js.map +1 -1
  79. package/lib/es6/ReferenceLine.js +9 -9
  80. package/lib/es6/ResponsiveContainer.js +0 -1
  81. package/lib/es6/ResponsiveContainer.js.map +1 -1
  82. package/lib/es6/ScatterPlot.js +15 -10
  83. package/lib/es6/ScatterPlot.js.map +1 -1
  84. package/lib/es6/Tooltip.js +8 -8
  85. package/lib/es6/Venn.js +10 -8
  86. package/lib/es6/Venn.js.map +1 -1
  87. package/lib/es6/a11y/PlotA11yModule.js +2 -2
  88. package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
  89. package/lib/es6/a11y/PlotA11yView.js +3 -3
  90. package/lib/es6/a11y/hints.js.map +1 -1
  91. package/lib/es6/a11y/serialize.js.map +1 -1
  92. package/lib/es6/createElement.d.js +2 -0
  93. package/lib/es6/createElement.d.js.map +1 -0
  94. package/lib/es6/types/Area.d.js.map +1 -1
  95. package/lib/es6/types/Axis.d.js.map +1 -1
  96. package/lib/es6/types/Bar.d.js.map +1 -1
  97. package/lib/es6/types/Bubble.d.js.map +1 -1
  98. package/lib/es6/types/ClipPath.d.js.map +1 -1
  99. package/lib/es6/types/Donut.d.js.map +1 -1
  100. package/lib/es6/types/GroupBar.d.js.map +1 -1
  101. package/lib/es6/types/HorizontalBar.d.js.map +1 -1
  102. package/lib/es6/types/Hover.d.js.map +1 -1
  103. package/lib/es6/types/Line.d.js.map +1 -1
  104. package/lib/es6/types/Plot.d.js +1 -1
  105. package/lib/es6/types/Plot.d.js.map +1 -1
  106. package/lib/es6/types/Radar.d.js +2 -0
  107. package/lib/es6/types/Radar.d.js.map +1 -0
  108. package/lib/es6/types/ReferenceLine.d.js.map +1 -1
  109. package/lib/es6/types/ResponsiveContainer.d.js.map +1 -1
  110. package/lib/es6/types/ScatterPlot.d.js.map +1 -1
  111. package/lib/es6/types/StackBar.d.js.map +1 -1
  112. package/lib/es6/types/StackedArea.d.js.map +1 -1
  113. package/lib/es6/types/Tooltip.d.js.map +1 -1
  114. package/lib/es6/types/Venn.d.js.map +1 -1
  115. package/lib/es6/types/context.d.js.map +1 -1
  116. package/lib/es6/types/index.d.js +3 -0
  117. package/lib/es6/types/index.d.js.map +1 -1
  118. package/lib/es6/utils.js.map +1 -1
  119. package/lib/types/Area.d.ts +26 -17
  120. package/lib/types/Axis.d.ts +40 -23
  121. package/lib/types/Bar.d.ts +32 -16
  122. package/lib/types/Bubble.d.ts +30 -12
  123. package/lib/types/ClipPath.d.ts +7 -5
  124. package/lib/types/Donut.d.ts +29 -13
  125. package/lib/types/GroupBar.d.ts +15 -12
  126. package/lib/types/HorizontalBar.d.ts +12 -12
  127. package/lib/types/Hover.d.ts +32 -8
  128. package/lib/types/Line.d.ts +33 -23
  129. package/lib/types/Plot.d.ts +34 -22
  130. package/lib/types/Radar.d.ts +145 -0
  131. package/lib/types/RadialTree.d.ts +53 -28
  132. package/lib/types/ReferenceLine.d.ts +27 -14
  133. package/lib/types/ResponsiveContainer.d.ts +18 -10
  134. package/lib/types/ScatterPlot.d.ts +25 -9
  135. package/lib/types/StackBar.d.ts +20 -14
  136. package/lib/types/StackedArea.d.ts +16 -12
  137. package/lib/types/Tooltip.d.ts +55 -23
  138. package/lib/types/Venn.d.ts +47 -29
  139. package/lib/types/a11y/PlotA11yModule.d.ts +1 -1
  140. package/lib/types/a11y/focus.d.ts +1 -1
  141. package/lib/types/a11y/hints.d.ts +5 -5
  142. package/lib/types/a11y/insights.d.ts +8 -8
  143. package/lib/types/a11y/intl.d.ts +1 -1
  144. package/lib/types/a11y/locale.d.ts +1 -1
  145. package/lib/types/a11y/serialize.d.ts +4 -4
  146. package/lib/types/a11y/summarize.d.ts +1 -1
  147. package/lib/types/context.d.ts +10 -0
  148. package/lib/types/createElement.d.ts +2 -0
  149. package/lib/types/index.d.ts +2 -0
  150. package/lib/types/utils.d.ts +10 -7
  151. package/package.json +10 -10
  152. package/lib/cjs/types/Radar.js +0 -2
  153. package/lib/cjs/types/Radar.js.map +0 -1
  154. package/lib/es6/types/Radar.js +0 -2
  155. package/lib/es6/types/Radar.js.map +0 -1
  156. package/lib/types/types/Radar.d.ts +0 -95
@@ -25,7 +25,10 @@ export * from './StackedArea';
25
25
 
26
26
  /** It becomes resolvable after building and moving file to lib dir */
27
27
 
28
+ // @ts-ignore
28
29
  export { default as RadialTree } from './RadialTree';
30
+
31
+ // @ts-ignore
29
32
  export * from './RadialTree';
30
33
  export { default as Radar } from './Radar';
31
34
  export * from './Radar';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":["default","Plot","ResponsiveContainer","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","RadialTree","Radar","Donut","Tooltip","ScatterPlot","Bubble","ReferenceLine","Venn"],"sources":["../../../src/types/index.d.ts"],"sourcesContent":["// Utils\nexport declare function minMax(data: any, key: string | number): any;\n\n// Color\nexport declare const colors: { [key: string]: string };\n\nexport { default as Plot } from './Plot';\nexport * from './Plot';\n\nexport * from './Axis';\nexport * from './Hover';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport * from './ResponsiveContainer';\n\nexport { default as Line } from './Line';\nexport * from './Line';\n\nexport { default as Bar } from './Bar';\nexport * from './Bar';\n\nexport { default as HorizontalBar } from './HorizontalBar';\nexport * from './HorizontalBar';\n\nexport { default as GroupBar } from './GroupBar';\nexport * from './GroupBar';\n\nexport { default as StackBar } from './StackBar';\nexport * from './StackBar';\n\nexport { default as Area } from './Area';\nexport * from './Area';\n\nexport { default as StackedArea } from './StackedArea';\nexport * from './StackedArea';\n\n/** It becomes resolvable after building and moving file to lib dir */\n\nexport { default as RadialTree } from './RadialTree';\n\nexport * from './RadialTree';\n\nexport { default as Radar } from './Radar';\nexport * from './Radar';\n\nexport { default as Donut } from './Donut';\nexport * from './Donut';\n\nexport { default as Tooltip } from './Tooltip';\nexport * from './Tooltip';\n\nexport { default as ScatterPlot } from './ScatterPlot';\nexport * from './ScatterPlot';\n\nexport { default as Bubble } from './Bubble';\nexport * from './Bubble';\n\nexport { default as ReferenceLine } from './ReferenceLine';\nexport * from './ReferenceLine';\n\nexport { default as Venn } from './Venn';\nexport * from './Venn';\n"],"mappings":"AAAA;;AAGA;;AAGA,SAASA,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AAEvB,SAASD,OAAO,IAAIE,mBAAmB,QAAQ,uBAAuB;AACtE,cAAc,uBAAuB;AAErC,SAASF,OAAO,IAAIG,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASH,OAAO,IAAII,GAAG,QAAQ,OAAO;AACtC,cAAc,OAAO;AAErB,SAASJ,OAAO,IAAIK,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAASL,OAAO,IAAIM,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASN,OAAO,IAAIO,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASP,OAAO,IAAIQ,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASR,OAAO,IAAIS,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;;AAE7B;;AAEA,SAAST,OAAO,IAAIU,UAAU,QAAQ,cAAc;AAEpD,cAAc,cAAc;AAE5B,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASX,OAAO,IAAIY,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASZ,OAAO,IAAIa,OAAO,QAAQ,WAAW;AAC9C,cAAc,WAAW;AAEzB,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;AAE7B,SAASd,OAAO,IAAIe,MAAM,QAAQ,UAAU;AAC5C,cAAc,UAAU;AAExB,SAASf,OAAO,IAAIgB,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAAShB,OAAO,IAAIiB,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ"}
1
+ {"version":3,"file":"index.d.js","names":["default","Plot","ResponsiveContainer","Line","Bar","HorizontalBar","GroupBar","StackBar","Area","StackedArea","RadialTree","Radar","Donut","Tooltip","ScatterPlot","Bubble","ReferenceLine","Venn"],"sources":["../../../src/types/index.d.ts"],"sourcesContent":["// Utils\nexport declare function minMax(data: any, key: string | number): any;\n\n// Color\nexport declare const colors: { [key: string]: string };\n\nexport { default as Plot } from './Plot';\nexport * from './Plot';\n\nexport * from './Axis';\nexport * from './Hover';\n\nexport { default as ResponsiveContainer } from './ResponsiveContainer';\nexport * from './ResponsiveContainer';\n\nexport { default as Line } from './Line';\nexport * from './Line';\n\nexport { default as Bar } from './Bar';\nexport * from './Bar';\n\nexport { default as HorizontalBar } from './HorizontalBar';\nexport * from './HorizontalBar';\n\nexport { default as GroupBar } from './GroupBar';\nexport * from './GroupBar';\n\nexport { default as StackBar } from './StackBar';\nexport * from './StackBar';\n\nexport { default as Area } from './Area';\nexport * from './Area';\n\nexport { default as StackedArea } from './StackedArea';\nexport * from './StackedArea';\n\n/** It becomes resolvable after building and moving file to lib dir */\n\n// @ts-ignore\nexport { default as RadialTree } from './RadialTree';\n\n// @ts-ignore\nexport * from './RadialTree';\n\nexport { default as Radar } from './Radar';\nexport * from './Radar';\n\nexport { default as Donut } from './Donut';\nexport * from './Donut';\n\nexport { default as Tooltip } from './Tooltip';\nexport * from './Tooltip';\n\nexport { default as ScatterPlot } from './ScatterPlot';\nexport * from './ScatterPlot';\n\nexport { default as Bubble } from './Bubble';\nexport * from './Bubble';\n\nexport { default as ReferenceLine } from './ReferenceLine';\nexport * from './ReferenceLine';\n\nexport { default as Venn } from './Venn';\nexport * from './Venn';\n"],"mappings":"AAAA;;AAGA;;AAGA,SAASA,OAAO,IAAIC,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AAEvB,SAASD,OAAO,IAAIE,mBAAmB,QAAQ,uBAAuB;AACtE,cAAc,uBAAuB;AAErC,SAASF,OAAO,IAAIG,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASH,OAAO,IAAII,GAAG,QAAQ,OAAO;AACtC,cAAc,OAAO;AAErB,SAASJ,OAAO,IAAIK,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAASL,OAAO,IAAIM,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASN,OAAO,IAAIO,QAAQ,QAAQ,YAAY;AAChD,cAAc,YAAY;AAE1B,SAASP,OAAO,IAAIQ,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ;AAEtB,SAASR,OAAO,IAAIS,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;;AAE7B;;AAEA;AACA,SAAST,OAAO,IAAIU,UAAU,QAAQ,cAAc;;AAEpD;AACA,cAAc,cAAc;AAE5B,SAASV,OAAO,IAAIW,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASX,OAAO,IAAIY,KAAK,QAAQ,SAAS;AAC1C,cAAc,SAAS;AAEvB,SAASZ,OAAO,IAAIa,OAAO,QAAQ,WAAW;AAC9C,cAAc,WAAW;AAEzB,SAASb,OAAO,IAAIc,WAAW,QAAQ,eAAe;AACtD,cAAc,eAAe;AAE7B,SAASd,OAAO,IAAIe,MAAM,QAAQ,UAAU;AAC5C,cAAc,UAAU;AAExB,SAASf,OAAO,IAAIgB,aAAa,QAAQ,iBAAiB;AAC1D,cAAc,iBAAiB;AAE/B,SAAShB,OAAO,IAAIiB,IAAI,QAAQ,QAAQ;AACxC,cAAc,QAAQ"}
@@ -1 +1 @@
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","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","bisect","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","getBandwidth","Math","abs","memoize","func","results","_len","args","Array","_key","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","max","idCounter","uniqueId","prefix"],"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 | ScaleBand<unknown>\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 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 // console.log({ key, scale, value });\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\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 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 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"],"mappings":";;;AAAA,SAASA,MAAM,EAAEC,QAAQ,QAAiB,UAAU;AACpD,SACEC,aAAa,QAOR,UAAU;AAGjB,IAAMC,QAAQ,GAAG;EACfC,eAAe,EAAEC,MAAM,CAAC,iBAAiB;AAC3C,CAAU;AAEV,SAASF,QAAQ;AAEjB,OAAO,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAoC,EAAEC,OAAmB,EAAK;EACzF,IAAMC,IAAI,GAAIF,KAAK,CAACG,aAAa,IAAIH,KAAK,CAACI,MAAsB;EACjE,IAAMC,IAAI,GAAGJ,OAAO,CAACK,qBAAqB,EAAE;EAC5C,OAAO,CAACN,KAAK,CAACO,OAAO,GAAGF,IAAI,CAACG,IAAI,GAAGN,IAAI,CAACO,UAAU,EAAET,KAAK,CAACU,OAAO,GAAGL,IAAI,CAACM,GAAG,GAAGT,IAAI,CAACU,SAAS,CAAC;AACjG,CAAC;AAOD,OAAO,IAAMC,MAAM,GAAG,SAATA,MAAMA,CACjBC,KAAY,EACZC,KAAa,EACV;EACH,IAAI,QAAQ,IAAID,KAAK,IAAIA,KAAK,CAACD,MAAM,EAAE,OAAOC,KAAK,CAACD,MAAM,CAACE,KAAK,CAAC;EAEjE,IAAMC,KAAK,GAAGF,KAAK,CAACE,KAAK,EAAsB;EAC/C,IAAMC,MAAM,GAAGH,KAAK,CAACG,MAAM,EAAE;EAC7B,IAAI,cAAc,IAAIH,KAAK,EAAE;IAC3BE,KAAK,CAAC,CAAC,CAAC,IAAIF,KAAK,CAACI,YAAY,EAAE,GAAGJ,KAAK,CAACK,IAAI,EAAE;IAC/CH,KAAK,CAAC,CAAC,CAAC,IAAIF,KAAK,CAACI,YAAY,EAAE,GAAGJ,KAAK,CAACK,IAAI,EAAE;EACjD;EAEA,OAAOxB,aAAa,EAAE,CACnBsB,MAAM,CAAED,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,GAAGA,KAAK,CAACI,KAAK,EAAE,CAACC,OAAO,EAAE,CAAmB,CACjFL,KAAK,CAAEA,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,GAAGC,MAAM,GAAGA,MAAM,CAACG,KAAK,EAAE,CAACC,OAAO,EAAE,CAAc,CAACN,KAAK,CAAC;AACzF,CAAC;AAED,OAAO,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,CAAS,EAAEC,CAAS;EAAA,OAAK,UAACC,IAAiC;IAAA,OACzFA,IAAI,CAACF,CAAC,CAAC,KAAK,IAAI,IAAIE,IAAI,CAACD,CAAC,CAAC,KAAK,IAAI;EAAA;AAAA;AAEtC,OAAO,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAIH,CAAS,EAAEC,CAAS;EAAA,OAAK,UAACC,IAAiC;IAAA,OACrFA,IAAI,CAACF,CAAC,CAAC,KAAK,IAAI,IAAIE,IAAI,CAACF,CAAC,CAAC,KAAKI,SAAS,IAAIF,IAAI,CAACD,CAAC,CAAC,KAAK,IAAI,IAAIC,IAAI,CAACD,CAAC,CAAC,KAAKG,SAAS;EAAA;AAAA;AAExF,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAiCd,KAAY,EAAEC,KAAa;EAAA,OACvFD,KAAK,CAACe,SAAS,GAAGf,KAAK,CAACC,KAAK,CAAC,GAAID,KAAK,CAACe,SAAS,EAAE,GAAG,CAAC,GAAGf,KAAK,CAACC,KAAK,CAAC;AAAA;AAExE,OAAO,IAAMe,MAAM,GAAG,SAATA,MAAMA,CAMjBC,IAAU,EACVC,GAAQ,EACL;EACH,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOvC,MAAM,CAACsC,IAAI,EAAE,UAACE,CAAC;MAAA,OAAKA,CAAC,CAACD,GAAG,CAAC;IAAA,EAAC;EACpC;EACA,OAAOvC,MAAM,CAACsC,IAAI,EAAEC,GAAG,CAAC;AAC1B,CAAC;AAED,OAAO,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAItBH,IAAY,EACZI,OAAgC,EAChCC,IAAU;EAAA,OAEVL,IAAI,CAACM,MAAM,CAAC,UAACC,GAAG,EAAEL,CAAC,EAAEM,CAAC,EAAER,IAAI,EAAK;IAC/B,IAAII,OAAO,CAACF,CAAC,CAAC,EAAE;MACdK,GAAG,CAACE,IAAI,CAAAC,eAAA,KACLL,IAAI,EAAG,IAAI,EACJ;IACZ,CAAC,MAAM;MACL,IAAMM,IAAI,GAAGX,IAAI,CAACQ,CAAC,GAAG,CAAC,CAAC;MACxB,IAAMI,IAAI,GAAGZ,IAAI,CAACQ,CAAC,GAAG,CAAC,CAAC;MAExB,IAAIA,CAAC,KAAK,CAAC,EAAE;QACX,IAAMK,OAAO,GAAGb,IAAI,CAACc,IAAI,CAACV,OAAO,CAAC;QAClCG,GAAG,CAACE,IAAI,CAAAM,aAAA,CAAAA,aAAA,KACHb,CAAC,OAAAQ,eAAA,KACHL,IAAI,EAAGQ,OAAO,GAAGA,OAAO,CAACR,IAAI,CAAC,GAAG,IAAI,GACtC;MACJ;;MAEA;MACA,IAAIM,IAAI,IAAIP,OAAO,CAACO,IAAI,CAAC,EAAE;QACzBJ,GAAG,CAACE,IAAI,CAACE,IAAI,CAAC;MAChB;;MAEA;MACA,IAAIC,IAAI,IAAIR,OAAO,CAACQ,IAAI,CAAC,EAAE;QACzBL,GAAG,CAACE,IAAI,CAACG,IAAI,CAAC;MAChB;MAEA,IAAIZ,IAAI,CAACgB,MAAM,GAAG,CAAC,KAAKR,CAAC,EAAE;QACzB,IAAMS,OAAO,GAAGjB,IAAI,CAACX,KAAK,EAAE,CAACC,OAAO,EAAE,CAACwB,IAAI,CAACV,OAAO,CAAC;QACpDG,GAAG,CAACE,IAAI,CAAAM,aAAA,CAAAA,aAAA,KACHb,CAAC,OAAAQ,eAAA,KACHL,IAAI,EAAGY,OAAO,GAAGA,OAAO,CAACZ,IAAI,CAAC,GAAG,IAAI,GACtC;MACJ;IACF;IACA,OAAOE,GAAG;EACZ,CAAC,EAAE,EAAE,CAAW;AAAA;AAQlB,OAAO,IAAMW,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAM3BlB,IAAY,EACZjB,KAAY,EACZkB,GAAW,EACXjB,KAAa,EACV;EACH;EACA,IAAI,QAAQ,IAAID,KAAK,IAAI,OAAOA,KAAK,CAACD,MAAM,KAAK,UAAU,EAAE;IAC3D,IAAMqC,MAAM,GAAGxD,QAAQ,CAAC,UAACuC,CAA4B;MAAA,OAAKA,CAAC,CAACD,GAAG,CAAC;IAAA,EAAC,CAACmB,MAAM;IACxE,OAAOD,MAAM,CAACnB,IAAI,EAAEhB,KAAK,CAAC;EAC5B;EACA;EAAA,KACK,IAAI,MAAM,IAAID,KAAK,IAAI,OAAOA,KAAK,CAACK,IAAI,KAAK,WAAW,EAAE;IAC7D;IACA,IAAMiC,KAAK,GAAGrB,IAAI,CAACsB,SAAS,CAAC,UAACpB,CAAC;MAAA,OAAKA,CAAC,CAACD,GAAG,CAAC,KAAKjB,KAAK;IAAA,EAAC;IACrD,OAAOqC,KAAK,IAAI,CAAC,GAAGA,KAAK,GAAG,IAAI;EAClC,CAAC,MAAM;IACLE,OAAO,CAACC,IAAI,CAAC,uEAAuE,CAAC;IACrF,OAAO,IAAI;EACb;AACF,CAAC;AAED,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CACtBjC,CAAS,EACTC,CAAS,EACTiC,CAAS,EACTC,CAAS,EACTC,CAAS,EAKN;EAAA,IAJHC,EAAE,GAAAC,SAAA,CAAAd,MAAA,QAAAc,SAAA,QAAAlC,SAAA,GAAAkC,SAAA,MAAG,KAAK;EAAA,IACVC,EAAE,GAAAD,SAAA,CAAAd,MAAA,QAAAc,SAAA,QAAAlC,SAAA,GAAAkC,SAAA,MAAG,KAAK;EAAA,IACVE,EAAE,GAAAF,SAAA,CAAAd,MAAA,QAAAc,SAAA,QAAAlC,SAAA,GAAAkC,SAAA,MAAG,KAAK;EAAA,IACVG,EAAE,GAAAH,SAAA,CAAAd,MAAA,QAAAc,SAAA,QAAAlC,SAAA,GAAAkC,SAAA,MAAG,KAAK;EAEV,IAAII,MAAM,OAAAC,MAAA,CAAO3C,CAAC,GAAGoC,CAAC,OAAAO,MAAA,CAAI1C,CAAC,CAAE;EAC7ByC,MAAM,QAAAC,MAAA,CAAQT,CAAC,GAAG,CAAC,GAAGE,CAAC,CAAE;EACzB,IAAIG,EAAE,EAAE;IACNG,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAUP,CAAC,OAAAO,MAAA,CAAIP,CAAC,CAAE;EACxC,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;IACjBM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;EACnB;EACAM,MAAM,QAAAC,MAAA,CAAQR,CAAC,GAAG,CAAC,GAAGC,CAAC,CAAE;EACzB,IAAIK,EAAE,EAAE;IACNC,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAU,CAACP,CAAC,OAAAO,MAAA,CAAIP,CAAC,CAAE;EACzC,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;IACjBM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;EACpB;EACAM,MAAM,QAAAC,MAAA,CAAQ,CAAC,GAAGP,CAAC,GAAGF,CAAC,CAAE;EACzB,IAAIM,EAAE,EAAE;IACNE,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAU,CAACP,CAAC,OAAAO,MAAA,CAAI,CAACP,CAAC,CAAE;EAC1C,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;IAClBM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;EACpB;EACAM,MAAM,QAAAC,MAAA,CAAQ,CAAC,GAAGP,CAAC,GAAGD,CAAC,CAAE;EACzB,IAAIE,EAAE,EAAE;IACNK,MAAM,QAAAC,MAAA,CAAQP,CAAC,OAAAO,MAAA,CAAIP,CAAC,aAAAO,MAAA,CAAUP,CAAC,OAAAO,MAAA,CAAI,CAACP,CAAC,CAAE;EACzC,CAAC,MAAM;IACLM,MAAM,QAAAC,MAAA,CAAQ,CAACP,CAAC,CAAE;IAClBM,MAAM,QAAAC,MAAA,CAAQP,CAAC,CAAE;EACnB;EACAM,MAAM,IAAI,GAAG;EACb,OAAOA,MAAM;AACf,CAAC;AAED,OAAO,IAAME,YAAY,GAAG,SAAfA,YAAYA,CAAiCrD,KAAY,EAAK;EACzE,IAAI,WAAW,IAAIA,KAAK,EAAE;IACxB,OAAOA,KAAK,CAACe,SAAS,EAAE;EAC1B;EAEA,IAAMb,KAAK,GAAGF,KAAK,CAACE,KAAK,EAAE;EAC3B,IAAMC,MAAM,GAAGH,KAAK,CAACG,MAAM,EAAE;EAC7B,OAAOmD,IAAI,CAACC,GAAG,CAACrD,KAAK,CAACA,KAAK,CAAC+B,MAAM,GAAG,CAAC,CAAC,GAAG/B,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGC,MAAM,CAAC8B,MAAM;AACrE,CAAC;AAED,OAAO,IAAMuB,OAAO,GAAG,SAAVA,OAAOA,CAA0CC,IAAU,EAAW;EACjF,IAAMC,OAAoC,GAAG,CAAC,CAAC;EAC/C,OAAQ,YAAoB;IAAA,SAAAC,IAAA,GAAAZ,SAAA,CAAAd,MAAA,EAAhB2B,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAf,SAAA,CAAAe,IAAA;IAAA;IACd,IAAMC,OAAO,GAAGH,IAAI,CAACI,IAAI,CAAC,GAAG,CAAC;IAC9B,IAAI,CAACN,OAAO,CAACK,OAAO,CAAC,EAAE;MACrBL,OAAO,CAACK,OAAO,CAAC,GAAGN,IAAI,CAAAQ,KAAA,SAAIL,IAAI,CAAC;IAClC;IACA,OAAOF,OAAO,CAACK,OAAO,CAAC;EACzB,CAAC;AACH,CAAC;AAED,OAAO,IAAMG,WAAW,GAAGV,OAAO,CAAC,UAACW,IAAY,EAAEC,QAAiB,EAAK;EACtE,IAAI,CAACD,IAAI,EAAE,OAAO,CAAC;EAEnB,IAAME,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;EAC3C,IAAIH,QAAQ,EAAE;IACZC,IAAI,CAACG,KAAK,CAACJ,QAAQ,MAAAhB,MAAA,CAAMgB,QAAQ,OAAI;EACvC;EAAC,IAAAK,SAAA,GAAAC,0BAAA,CACkBP,IAAI,CAACQ,KAAK,CAAC,IAAI,CAAC;IAAAC,KAAA;EAAA;IAAnC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAqC;MAAA,IAA1BC,IAAI,GAAAJ,KAAA,CAAA3E,KAAA;MACboE,IAAI,CAACY,MAAM,CAACX,QAAQ,CAACY,cAAc,CAACF,IAAI,CAAC,CAAC;MAC1CX,IAAI,CAACY,MAAM,CAACX,QAAQ,CAACC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C;EAAC,SAAAY,GAAA;IAAAV,SAAA,CAAAW,CAAA,CAAAD,GAAA;EAAA;IAAAV,SAAA,CAAAY,CAAA;EAAA;EACDhB,IAAI,CAACG,KAAK,CAACc,OAAO,GAAG,cAAc;EACnChB,QAAQ,CAACiB,IAAI,CAACN,MAAM,CAACZ,IAAI,CAAC;EAC1B,IAAMmB,SAAS,GAAGnB,IAAI,CAACoB,WAAW;EAClC,IAAMC,UAAU,GAAGrB,IAAI,CAACsB,YAAY;EACpCtB,IAAI,CAACuB,MAAM,EAAE;EACb,OAAOtC,IAAI,CAACuC,GAAG,CAACL,SAAS,EAAEE,UAAU,CAAC;AACxC,CAAC,CAAC;AAEF,IAAII,SAAS,GAAG,CAAC;AACjB,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAA;EAAA,IAAIC,MAAM,GAAAjD,SAAA,CAAAd,MAAA,QAAAc,SAAA,QAAAlC,SAAA,GAAAkC,SAAA,MAAG,KAAK;EAAA,UAAAK,MAAA,CAAQ4C,MAAM,EAAA5C,MAAA,CAAG0C,SAAS,EAAE;AAAA,CAAE"}
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","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","bisect","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","concat","getBandwidth","Math","abs","memoize","func","results","_len","args","Array","_key","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","max","idCounter","uniqueId","prefix"],"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 | 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') {\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 // console.log({ key, scale, value });\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\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 getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = (scale as any).range();\n const domain = (scale as any).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 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"],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import { ReturnEl } from '@semcore/core';
2
- import { MapProps } from './Plot';
3
- import IContext from './context';
1
+ import { UnknownProperties } from '@semcore/core';
2
+ import { Context } from './context';
4
3
  import { CurveFactory } from 'd3-shape';
4
+ import { IntergalacticD3Component } from './Plot';
5
5
 
6
- export interface IAreaProps extends IContext {
7
- /** Field from data for XAxis */
6
+ /** @deprecated */
7
+ export interface IAreaProps extends AreaProps, UnknownProperties {}
8
+ export type AreaProps = Context & {
9
+ /** Field name from `data` array item for the XAxis */
8
10
  x?: string;
9
- /** Field from data for YAxis*/
11
+ /** Field name from `data` array item for the YAxis*/
10
12
  y?: string;
11
13
  /** Line color
12
14
  * @default '#50aef4'*/
@@ -21,33 +23,40 @@ export interface IAreaProps extends IContext {
21
23
  duration?: number;
22
24
  /** Enables element transparency */
23
25
  transparent?: boolean;
24
- }
26
+ };
25
27
 
26
- export interface IAreaDotsProps extends IContext {
28
+ /** @deprecated */
29
+ export interface IAreaDotsProps extends AreaDotsProps, UnknownProperties {}
30
+ export type AreaDotsProps = Context & {
27
31
  /** Show all Dot */
28
32
  display?: boolean;
29
33
  /** Hide property */
30
34
  hide?: boolean;
31
35
  /** Enables element transparency */
32
36
  transparent?: boolean;
33
- }
37
+ };
34
38
 
35
- export interface IAreaDotsContext {
39
+ /** @deprecated */
40
+ export interface IAreaDotsContext extends AreaDotsContext, UnknownProperties {}
41
+ export type AreaDotsContext = {
36
42
  /** Value element of data */
43
+ /** @deprecated */
37
44
  value?: any;
38
45
  /** Index element of data */
39
46
  index?: number;
40
- }
47
+ };
41
48
 
42
- export interface IAreaNullProps extends IContext {
49
+ /** @deprecated */
50
+ export interface IAreaNullProps extends AreaNullProps, UnknownProperties {}
51
+ export type AreaNullProps = Context & {
43
52
  /** Hide property */
44
53
  hide?: boolean;
45
- }
54
+ };
46
55
 
47
- declare const Area: (<T>(props: MapProps<IAreaProps & T>) => ReturnEl) & {
48
- Dots: <T>(props: MapProps<IAreaDotsProps & T, IAreaDotsContext>) => ReturnEl;
49
- Null: <T>(props: MapProps<IAreaNullProps & T>) => ReturnEl;
50
- Line: <T>(props: MapProps<IContext & T>) => ReturnEl;
56
+ declare const Area: IntergalacticD3Component<'path', AreaProps, Context> & {
57
+ Dots: IntergalacticD3Component<'circle', AreaDotsProps, AreaDotsContext>;
58
+ Null: IntergalacticD3Component<'path', AreaNullProps, Context>;
59
+ Line: IntergalacticD3Component<'path', Context, Context>;
51
60
  };
52
61
 
53
62
  export default Area;
@@ -1,8 +1,10 @@
1
- import { ReturnEl } from '@semcore/core';
2
- import { MapProps } from './Plot';
3
- import IContext from './context';
1
+ import { IntergalacticD3Component } from './Plot';
2
+ import { Context } from './context';
3
+ import { UnknownProperties } from '@semcore/core';
4
4
 
5
- export interface IXAxisProps extends IContext {
5
+ /** @deprecated */
6
+ export interface IXAxisProps extends XAxisProps, UnknownProperties {}
7
+ export type XAxisProps = Context & {
6
8
  /** The position of the axis relative chart
7
9
  * @default 'button' */
8
10
  position?: 'top' | 'right' | 'bottom' | 'left' | number;
@@ -10,10 +12,13 @@ export interface IXAxisProps extends IContext {
10
12
  * @default false */
11
13
  hide?: boolean;
12
14
  /** Values for axis ticks */
15
+ /** @deprecated */
13
16
  ticks?: any[];
14
- }
17
+ };
15
18
 
16
- export interface IYAxisProps extends IContext {
19
+ /** @deprecated */
20
+ export interface IYAxisProps extends YAxisProps, UnknownProperties {}
21
+ export type YAxisProps = Context & {
17
22
  /** The position of the axis relative chart
18
23
  * @default 'left' */
19
24
  position?: 'top' | 'right' | 'bottom' | 'left' | number;
@@ -21,24 +26,33 @@ export interface IYAxisProps extends IContext {
21
26
  * @default true */
22
27
  hide?: boolean;
23
28
  /** Values for axis ticks */
29
+ /** @deprecated */
24
30
  ticks?: any[];
25
- }
31
+ };
26
32
 
27
- export interface IAxisTicksProps extends IContext {
33
+ /** @deprecated */
34
+ export interface IAxisTicksProps extends AxisTicksProps, UnknownProperties {}
35
+ export type AxisTicksProps = Context & {
28
36
  /** The position of the axis relative chart */
29
37
  position?: 'top' | 'right' | 'bottom' | 'left';
30
38
  /** Element hide property */
31
39
  hide?: boolean;
32
40
  /** Values for axis ticks */
41
+ /** @deprecated */
33
42
  ticks?: any[];
34
- }
43
+ };
35
44
 
36
- export interface IAxisGridProps extends IContext {
45
+ /** @deprecated */
46
+ export interface IAxisGridProps extends AxisGridProps, UnknownProperties {}
47
+ export type AxisGridProps = Context & {
37
48
  /** Values for axis ticks */
49
+ /** @deprecated */
38
50
  ticks?: any[];
39
- }
51
+ };
40
52
 
41
- export interface IAxisTitleProps extends IContext {
53
+ /** @deprecated */
54
+ export interface IAxisTitleProps extends AxisTitleProps, UnknownProperties {}
55
+ export type AxisTitleProps = Context & {
42
56
  /** The position of the axis relative chart */
43
57
  position?: 'top' | 'right' | 'bottom' | 'left';
44
58
 
@@ -47,25 +61,28 @@ export interface IAxisTitleProps extends IContext {
47
61
  * @default true for `zh` and `ja` locales and false for all others.
48
62
  */
49
63
  verticalWritingMode?: boolean;
50
- }
64
+ };
51
65
 
52
- export interface IAxisTicksContext {
66
+ /** @deprecated */
67
+ export interface IAxisTicksContext extends AxisTicksContext, UnknownProperties {}
68
+ export type AxisTicksContext = {
53
69
  /** Value element of data */
70
+ /** @deprecated */
54
71
  value: any;
55
72
  /** Index element of data */
56
73
  index: number;
57
- }
74
+ };
58
75
 
59
- declare const XAxis: (<T>(props: MapProps<IXAxisProps & T>) => ReturnEl) & {
60
- Ticks: <T>(props: MapProps<IAxisTicksProps & T, IAxisTicksContext>) => ReturnEl;
61
- Grid: <T>(props: MapProps<IAxisGridProps & T>) => ReturnEl;
62
- Title: <T>(props: MapProps<IAxisTitleProps & T>) => ReturnEl;
76
+ declare const XAxis: IntergalacticD3Component<'path', XAxisProps> & {
77
+ Ticks: IntergalacticD3Component<'path', AxisTicksProps, AxisTicksContext>;
78
+ Grid: IntergalacticD3Component<'path', AxisGridProps>;
79
+ Title: IntergalacticD3Component<'text', AxisTitleProps>;
63
80
  };
64
81
 
65
- declare const YAxis: (<T>(props: MapProps<IYAxisProps & T>) => ReturnEl) & {
66
- Ticks: <T>(props: MapProps<IAxisTicksProps & T, IAxisTicksContext>) => ReturnEl;
67
- Grid: <T>(props: MapProps<IAxisGridProps & T>) => ReturnEl;
68
- Title: <T>(props: MapProps<IAxisTitleProps & T>) => ReturnEl;
82
+ declare const YAxis: IntergalacticD3Component<'path', YAxisProps> & {
83
+ Ticks: IntergalacticD3Component<'path', AxisTicksProps, AxisTicksContext>;
84
+ Grid: IntergalacticD3Component<'path', AxisGridProps>;
85
+ Title: IntergalacticD3Component<'text', AxisTitleProps>;
69
86
  };
70
87
 
71
88
  export { XAxis, YAxis };
@@ -1,11 +1,13 @@
1
- import { ReturnEl } from '@semcore/core';
2
- import { MapProps } from './Plot';
3
- import IContext from './context';
1
+ import { UnknownProperties } from '@semcore/core';
2
+ import { Context } from './context';
3
+ import { IntergalacticD3Component } from './Plot';
4
4
 
5
- export interface IBarProps extends IContext {
6
- /** Field from data for XAxis */
5
+ /** @deprecated */
6
+ export interface IBarProps extends BarProps, UnknownProperties {}
7
+ export type BarProps = Context & {
8
+ /** Field name from `data` array item for the XAxis */
7
9
  x?: string;
8
- /** Field from data for YAxis */
10
+ /** Field name from `data` array item for the YAxis */
9
11
  y?: string;
10
12
  /** Line color
11
13
  * @default '#50aef4'*/
@@ -30,30 +32,44 @@ export interface IBarProps extends IContext {
30
32
  onClick?: (data: { [key: string]: string | number }, event: Event) => void;
31
33
  /** Enables element transparency */
32
34
  transparent?: boolean;
33
- }
35
+ };
34
36
 
35
- export interface IBarContext {
36
- /** Value element of data */
37
- value: any;
38
- /** Index element of data */
37
+ /** @deprecated */
38
+ export interface IBarContext extends BarContext, UnknownProperties {}
39
+ export type BarContext = {
40
+ /** @deprecated */
41
+ value: unknown;
42
+ /** Index in `data` array */
39
43
  index: number;
40
- }
44
+ x: number;
45
+ y: number;
46
+ width: number;
47
+ height: number;
48
+ };
41
49
 
42
- export interface IBackgroundProps extends IContext {
50
+ /** @deprecated */
51
+ export interface IBackgroundProps extends BackgroundProps, UnknownProperties {}
52
+ export type BackgroundProps = Context & {
43
53
  /** Coordinate x */
44
54
  x?: number | string;
45
55
  /** Coordinate y */
46
56
  y?: number | string;
47
57
  /** Value element of data */
58
+ /** @deprecated */
48
59
  value?: any;
49
60
  /** Width rect */
50
61
  width?: number | string;
51
62
  /** Height rect */
52
63
  height?: number | string;
53
- }
64
+ };
65
+
66
+ type BackgroundContext = Context & {
67
+ /** Index in `data` array */
68
+ index: number;
69
+ };
54
70
 
55
- declare const Bar: (<T>(props: MapProps<IBarProps & T, IBarContext>) => ReturnEl) & {
56
- Background: <T>(props: MapProps<IBackgroundProps & T>) => ReturnEl;
71
+ declare const Bar: IntergalacticD3Component<'rect', BarProps, BarContext> & {
72
+ Background: IntergalacticD3Component<'rect', BackgroundProps, BackgroundContext>;
57
73
  };
58
74
 
59
75
  export default Bar;
@@ -1,15 +1,18 @@
1
- import { ReturnEl } from '@semcore/core';
2
- import { MapProps } from './Plot';
3
- import IContext from './context';
1
+ import { Intergalactic, UnknownProperties } from '@semcore/core';
2
+ import { Context } from './context';
3
+ import { TooltipType } from './Tooltip';
4
+ import { IntergalacticD3Component } from './Plot';
4
5
 
5
- export interface IBubbleProps extends IContext {
6
- /** Field from data for XAxis */
6
+ /** @deprecated */
7
+ export interface IBubbleProps extends BubbleProps, UnknownProperties {}
8
+ export type BubbleProps = Context & {
9
+ /** Field name from `data` array item for the XAxis */
7
10
  x: string;
8
- /** Field from data for YAxis */
11
+ /** Field name from `data` array item for the YAxis */
9
12
  y: string;
10
- /** Field from data for circle radius */
13
+ /** Field name from `data` array item for the circle radius */
11
14
  value: string;
12
- /** Field from data for circle label */
15
+ /** Field name from `data` array item for the circle label */
13
16
  label?: string;
14
17
  /** Circle color */
15
18
  color?: string;
@@ -23,13 +26,28 @@ export interface IBubbleProps extends IContext {
23
26
  duration?: number;
24
27
  /** Enables element transparency */
25
28
  transparent?: boolean;
26
- }
29
+ };
27
30
 
28
- export interface IBubbleContext {
31
+ /** @deprecated */
32
+ export interface IBubbleContext extends BubbleContext, UnknownProperties {}
33
+ export type BubbleContext = {
29
34
  /** Index element of data */
30
35
  index: number;
31
- }
36
+ };
32
37
 
33
- declare const Bubble: <T>(props: MapProps<IBubbleProps & T, IBubbleContext>) => ReturnEl;
38
+ declare const Bubble: IntergalacticD3Component<Intergalactic.Tag, BubbleProps, BubbleContext> & {
39
+ Tooltip: TooltipType<
40
+ BubbleProps & {
41
+ /**
42
+ * @deprecated Use `index` instead.
43
+ */
44
+ xIndex: number;
45
+ /**
46
+ * Index of item in the `data` array used to render related bubble.
47
+ */
48
+ index: number;
49
+ }
50
+ >;
51
+ };
34
52
 
35
53
  export default Bubble;
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
- import { MapProps } from './Plot';
3
- import { ReturnEl } from '@semcore/core';
2
+ import { UnknownProperties } from '@semcore/core';
3
+ import { IntergalacticD3Component } from './Plot';
4
4
 
5
- export interface IClipPath {
5
+ /** @deprecated */
6
+ export interface IClipPath extends ClipPath, UnknownProperties {}
7
+ export type ClipPath = {
6
8
  /**
7
9
  * HTML tag name for the displayed item
8
10
  * @default rect
@@ -20,8 +22,8 @@ export interface IClipPath {
20
22
  * Function which run after mounted clipPath
21
23
  */
22
24
  setAttributeTag?: (rect: React.ReactNode) => void;
23
- }
25
+ };
24
26
 
25
- declare const ClipPath: <T>(props: MapProps<IClipPath & T>) => ReturnEl;
27
+ declare const ClipPath: IntergalacticD3Component<'clipPath', ClipPath>;
26
28
 
27
29
  export default ClipPath;
@@ -1,8 +1,11 @@
1
- import { ReturnEl } from '@semcore/core';
2
- import { MapProps } from './Plot';
3
- import IContext from './context';
1
+ import { UnknownProperties } from '@semcore/core';
2
+ import { Context } from './context';
3
+ import { TooltipType } from './Tooltip';
4
+ import { IntergalacticD3Component } from './Plot';
4
5
 
5
- export interface IDonutProps extends IContext {
6
+ /** @deprecated */
7
+ export interface IDonutProps extends DonutProps, UnknownProperties {}
8
+ export type DonutProps = Context & {
6
9
  /** Inner radius
7
10
  * @default 0
8
11
  * */
@@ -17,13 +20,19 @@ export interface IDonutProps extends IContext {
17
20
  * @default 500
18
21
  */
19
22
  duration?: number;
20
- }
23
+ };
21
24
 
22
- export interface IPieProps extends IContext {
25
+ /** @deprecated */
26
+ export interface IPieProps extends PieProps, UnknownProperties {}
27
+ export type PieProps = Context & {
23
28
  /**
24
29
  * Name of the field in the data
25
30
  * */
26
31
  dataKey: string;
32
+ /**
33
+ * Human readable name of the segment
34
+ * */
35
+ name: string;
27
36
  /** Color pie
28
37
  @default #50aef4
29
38
  **/
@@ -34,16 +43,23 @@ export interface IPieProps extends IContext {
34
43
  active?: boolean;
35
44
  /** Enables element transparency */
36
45
  transparent?: boolean;
37
- }
46
+ };
38
47
 
39
- export interface IEmptyDataProps extends IContext {}
48
+ /** @deprecated */
49
+ export interface IEmptyDataProps extends EmptyDataProps, UnknownProperties {}
50
+ export type EmptyDataProps = Context & {};
40
51
 
41
- export interface ILabelProps extends IContext {}
52
+ /** @deprecated */
53
+ export interface ILabelProps extends LabelProps, UnknownProperties {}
54
+ export type LabelProps = Context & {
55
+ label?: string;
56
+ };
42
57
 
43
- declare const Donut: (<T>(props: MapProps<IDonutProps & T>) => ReturnEl) & {
44
- Pie: <T>(props: MapProps<IPieProps & T>) => ReturnEl;
45
- EmptyData: <T>(props: MapProps<IEmptyDataProps & T>) => ReturnEl;
46
- Label: <T>(props: MapProps<ILabelProps & T>) => ReturnEl;
58
+ declare const Donut: IntergalacticD3Component<'g', DonutProps> & {
59
+ Pie: IntergalacticD3Component<'path', PieProps>;
60
+ EmptyData: IntergalacticD3Component<'path', IEmptyDataProps>;
61
+ Label: IntergalacticD3Component<'text', LabelProps>;
62
+ Tooltip: TooltipType<PieProps>;
47
63
  };
48
64
 
49
65
  export default Donut;
@@ -1,21 +1,24 @@
1
- import { ReturnEl } from '@semcore/core';
2
- import { MapProps } from './Plot';
3
- import { IBarContext, IBarProps } from './Bar';
4
- import { IHorizontalBarProps } from './HorizontalBar';
5
- import IContext from './context';
1
+ import { UnknownProperties } from '@semcore/core';
2
+ import { BarContext, BarProps } from './Bar';
3
+ import { HorizontalBarProps } from './HorizontalBar';
4
+ import { Context } from './context';
5
+ import { IntergalacticD3Component } from './Plot';
6
6
 
7
- export interface IGroupBarProps extends IContext {
8
- /** Field from data for XAxis */
7
+ /** @deprecated */
8
+ export interface IGroupBarProps extends GroupBarProps, UnknownProperties {}
9
+ export type GroupBarProps = Context & {
10
+ /** Field name from `data` array item for the XAxis */
9
11
  x?: string;
10
- /** Field from data for YAxis */
12
+ /** Field name from `data` array item for the YAxis */
11
13
  y?: string;
12
14
  /** Scale for group bars */
15
+ /** @deprecated */
13
16
  scaleGroup?: any;
14
- }
17
+ };
15
18
 
16
- declare const GroupBar: (<T>(props: MapProps<IGroupBarProps & T>) => ReturnEl) & {
17
- Bar: <T>(props: MapProps<IBarProps & T, IBarContext>) => ReturnEl;
18
- HorizontalBar: <T>(props: MapProps<IHorizontalBarProps & T, IBarContext>) => ReturnEl;
19
+ declare const GroupBar: IntergalacticD3Component<'g', GroupBarProps> & {
20
+ Bar: IntergalacticD3Component<'path', BarProps>;
21
+ HorizontalBar: IntergalacticD3Component<'path', HorizontalBarProps, BarContext>;
19
22
  };
20
23
 
21
24
  export default GroupBar;
@@ -1,12 +1,14 @@
1
- import { ReturnEl } from '@semcore/core';
2
- import { MapProps } from './Plot';
3
- import IContext from './context';
4
- import { IBarContext, IBackgroundProps } from './Bar';
1
+ import { UnknownProperties } from '@semcore/core';
2
+ import { Context } from './context';
3
+ import { BarContext, BackgroundProps } from './Bar';
4
+ import { IntergalacticD3Component } from './Plot';
5
5
 
6
- export interface IHorizontalBarProps extends IContext {
7
- /** Field from data for XAxis */
6
+ /** @deprecated */
7
+ export interface IHorizontalBarProps extends HorizontalBarProps, UnknownProperties {}
8
+ export type HorizontalBarProps = Context & {
9
+ /** Field name from `data` array item for the XAxis */
8
10
  x?: string;
9
- /** Field from data for YAxis */
11
+ /** Field name from `data` array item for the YAxis */
10
12
  y?: string;
11
13
  /** Line color
12
14
  * @default '#50aef4'*/
@@ -21,12 +23,10 @@ export interface IHorizontalBarProps extends IContext {
21
23
  r?: number | number[];
22
24
  /** Enables element transparency */
23
25
  transparent?: boolean;
24
- }
26
+ };
25
27
 
26
- declare const HorizontalBar: (<T>(
27
- props: MapProps<IHorizontalBarProps & T, IBarContext>,
28
- ) => ReturnEl) & {
29
- Background: <T>(props: MapProps<IBackgroundProps & T>) => ReturnEl;
28
+ declare const HorizontalBar: IntergalacticD3Component<'path', HorizontalBarProps, BarContext> & {
29
+ Background: IntergalacticD3Component<'rect', BackgroundProps, Context>;
30
30
  };
31
31
 
32
32
  export default HorizontalBar;