@elliemae/ds-dataviz 3.15.0-rc.2 → 3.15.0-rc.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 (164) hide show
  1. package/dist/cjs/graphs/Chart/ChartContext.js.map +2 -2
  2. package/dist/cjs/graphs/Chart/config/useChart.js +1 -1
  3. package/dist/cjs/graphs/Chart/config/useChart.js.map +2 -2
  4. package/dist/cjs/graphs/Chart/config/useGetters.js +4 -4
  5. package/dist/cjs/graphs/Chart/config/useGetters.js.map +2 -2
  6. package/dist/cjs/graphs/Chart/config/useInternalMargins.js +2 -2
  7. package/dist/cjs/graphs/Chart/config/useInternalMargins.js.map +2 -2
  8. package/dist/cjs/graphs/Chart/config/useKeyboardNavigation.js +4 -4
  9. package/dist/cjs/graphs/Chart/config/useKeyboardNavigation.js.map +2 -2
  10. package/dist/cjs/graphs/Chart/config/useScales.js +53 -37
  11. package/dist/cjs/graphs/Chart/config/useScales.js.map +2 -2
  12. package/dist/cjs/graphs/Chart/helpers/index.js +2 -2
  13. package/dist/cjs/graphs/Chart/helpers/index.js.map +2 -2
  14. package/dist/cjs/graphs/Chart/helpers/useUniqueData.js +5 -5
  15. package/dist/cjs/graphs/Chart/helpers/useUniqueData.js.map +2 -2
  16. package/dist/cjs/graphs/Chart/helpers/useVirtualizedSeries.js +4 -4
  17. package/dist/cjs/graphs/Chart/helpers/useVirtualizedSeries.js.map +2 -2
  18. package/dist/cjs/graphs/Chart/parts/Axis/Axis.js +47 -0
  19. package/dist/cjs/graphs/Chart/parts/Axis/Axis.js.map +7 -0
  20. package/dist/cjs/graphs/Chart/parts/Axis/AxisBottom.js +88 -71
  21. package/dist/cjs/graphs/Chart/parts/Axis/AxisBottom.js.map +2 -2
  22. package/dist/cjs/graphs/Chart/parts/Axis/AxisLeft.js +88 -58
  23. package/dist/cjs/graphs/Chart/parts/Axis/AxisLeft.js.map +3 -3
  24. package/dist/cjs/graphs/Chart/parts/Axis/AxisRight.js +91 -56
  25. package/dist/cjs/graphs/Chart/parts/Axis/AxisRight.js.map +3 -3
  26. package/dist/cjs/graphs/Chart/parts/{Labels/BottomLabel.js → Axis/GridLine.js} +7 -26
  27. package/dist/cjs/graphs/Chart/parts/Axis/GridLine.js.map +7 -0
  28. package/dist/cjs/graphs/Chart/parts/{Labels/LeftLabel.js → Axis/Tick.js} +12 -25
  29. package/dist/cjs/graphs/Chart/parts/Axis/Tick.js.map +7 -0
  30. package/dist/cjs/graphs/Chart/parts/ChartContainer.js +2 -2
  31. package/dist/cjs/graphs/Chart/parts/ChartContainer.js.map +2 -2
  32. package/dist/cjs/graphs/Chart/parts/Labels/Label.js +3 -18
  33. package/dist/cjs/graphs/Chart/parts/Labels/Label.js.map +3 -3
  34. package/dist/cjs/graphs/Chart/parts/Labels/index.js +102 -0
  35. package/dist/cjs/graphs/Chart/parts/Labels/index.js.map +7 -0
  36. package/dist/cjs/graphs/Chart/parts/Scrapper/Scrapper.js +5 -5
  37. package/dist/cjs/graphs/Chart/parts/Scrapper/Scrapper.js.map +2 -2
  38. package/dist/cjs/graphs/Chart/parts/Scrapper/ScrapperLine.js +1 -1
  39. package/dist/cjs/graphs/Chart/parts/Scrapper/ScrapperLine.js.map +2 -2
  40. package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js +3 -3
  41. package/dist/cjs/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js.map +2 -2
  42. package/dist/cjs/graphs/Chart/parts/Scroller/Controllers.js +1 -1
  43. package/dist/cjs/graphs/Chart/parts/Scroller/Controllers.js.map +2 -2
  44. package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerX.js +5 -5
  45. package/dist/cjs/graphs/Chart/parts/Scroller/ScrollableContainerX.js.map +2 -2
  46. package/dist/cjs/graphs/Chart/parts/TrendHighlight.js +1 -1
  47. package/dist/cjs/graphs/Chart/parts/TrendHighlight.js.map +1 -1
  48. package/dist/cjs/graphs/Chart/react-desc-prop-types.js.map +2 -2
  49. package/dist/cjs/graphs/Chart/scales/index.js +186 -0
  50. package/dist/cjs/graphs/Chart/scales/index.js.map +7 -0
  51. package/dist/cjs/graphs/Chart/series/Area.js +5 -5
  52. package/dist/cjs/graphs/Chart/series/Area.js.map +2 -2
  53. package/dist/cjs/graphs/Chart/series/Bars.js +7 -4
  54. package/dist/cjs/graphs/Chart/series/Bars.js.map +2 -2
  55. package/dist/cjs/graphs/Chart/series/HorizontalBars.js +4 -4
  56. package/dist/cjs/graphs/Chart/series/HorizontalBars.js.map +2 -2
  57. package/dist/cjs/graphs/Chart/series/HorizontalStackedBars.js +3 -3
  58. package/dist/cjs/graphs/Chart/series/HorizontalStackedBars.js.map +2 -2
  59. package/dist/cjs/graphs/Chart/series/Line.js +2 -2
  60. package/dist/cjs/graphs/Chart/series/Line.js.map +2 -2
  61. package/dist/cjs/graphs/Chart/series/Points.js +2 -2
  62. package/dist/cjs/graphs/Chart/series/Points.js.map +2 -2
  63. package/dist/cjs/graphs/Chart/series/Rect.js +1 -1
  64. package/dist/cjs/graphs/Chart/series/Rect.js.map +2 -2
  65. package/dist/cjs/graphs/Chart/series/StackedBar.js +3 -3
  66. package/dist/cjs/graphs/Chart/series/StackedBar.js.map +2 -2
  67. package/dist/cjs/graphs/Chart/styles.js +4 -26
  68. package/dist/cjs/graphs/Chart/styles.js.map +2 -2
  69. package/dist/esm/graphs/Chart/ChartContext.js.map +2 -2
  70. package/dist/esm/graphs/Chart/config/useChart.js +1 -1
  71. package/dist/esm/graphs/Chart/config/useChart.js.map +2 -2
  72. package/dist/esm/graphs/Chart/config/useGetters.js +4 -4
  73. package/dist/esm/graphs/Chart/config/useGetters.js.map +2 -2
  74. package/dist/esm/graphs/Chart/config/useInternalMargins.js +2 -2
  75. package/dist/esm/graphs/Chart/config/useInternalMargins.js.map +2 -2
  76. package/dist/esm/graphs/Chart/config/useKeyboardNavigation.js +4 -4
  77. package/dist/esm/graphs/Chart/config/useKeyboardNavigation.js.map +2 -2
  78. package/dist/esm/graphs/Chart/config/useScales.js +53 -37
  79. package/dist/esm/graphs/Chart/config/useScales.js.map +2 -2
  80. package/dist/esm/graphs/Chart/helpers/index.js +2 -2
  81. package/dist/esm/graphs/Chart/helpers/index.js.map +2 -2
  82. package/dist/esm/graphs/Chart/helpers/useUniqueData.js +5 -5
  83. package/dist/esm/graphs/Chart/helpers/useUniqueData.js.map +2 -2
  84. package/dist/esm/graphs/Chart/helpers/useVirtualizedSeries.js +4 -4
  85. package/dist/esm/graphs/Chart/helpers/useVirtualizedSeries.js.map +2 -2
  86. package/dist/esm/graphs/Chart/parts/Axis/Axis.js +21 -0
  87. package/dist/esm/graphs/Chart/parts/Axis/Axis.js.map +7 -0
  88. package/dist/esm/graphs/Chart/parts/Axis/AxisBottom.js +90 -73
  89. package/dist/esm/graphs/Chart/parts/Axis/AxisBottom.js.map +2 -2
  90. package/dist/esm/graphs/Chart/parts/Axis/AxisLeft.js +89 -59
  91. package/dist/esm/graphs/Chart/parts/Axis/AxisLeft.js.map +3 -3
  92. package/dist/esm/graphs/Chart/parts/Axis/AxisRight.js +92 -57
  93. package/dist/esm/graphs/Chart/parts/Axis/AxisRight.js.map +3 -3
  94. package/dist/esm/graphs/Chart/parts/Axis/GridLine.js +8 -0
  95. package/dist/esm/graphs/Chart/parts/Axis/GridLine.js.map +7 -0
  96. package/dist/esm/graphs/Chart/parts/Axis/Tick.js +13 -0
  97. package/dist/esm/graphs/Chart/parts/Axis/Tick.js.map +7 -0
  98. package/dist/esm/graphs/Chart/parts/ChartContainer.js +2 -2
  99. package/dist/esm/graphs/Chart/parts/ChartContainer.js.map +2 -2
  100. package/dist/esm/graphs/Chart/parts/Labels/Label.js +4 -19
  101. package/dist/esm/graphs/Chart/parts/Labels/Label.js.map +3 -3
  102. package/dist/esm/graphs/Chart/parts/Labels/index.js +76 -0
  103. package/dist/esm/graphs/Chart/parts/Labels/index.js.map +7 -0
  104. package/dist/esm/graphs/Chart/parts/Scrapper/Scrapper.js +5 -5
  105. package/dist/esm/graphs/Chart/parts/Scrapper/Scrapper.js.map +2 -2
  106. package/dist/esm/graphs/Chart/parts/Scrapper/ScrapperLine.js +1 -1
  107. package/dist/esm/graphs/Chart/parts/Scrapper/ScrapperLine.js.map +2 -2
  108. package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js +3 -3
  109. package/dist/esm/graphs/Chart/parts/Scrapper/VerticalScrapperLine.js.map +2 -2
  110. package/dist/esm/graphs/Chart/parts/Scroller/Controllers.js +1 -1
  111. package/dist/esm/graphs/Chart/parts/Scroller/Controllers.js.map +2 -2
  112. package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerX.js +5 -5
  113. package/dist/esm/graphs/Chart/parts/Scroller/ScrollableContainerX.js.map +2 -2
  114. package/dist/esm/graphs/Chart/parts/TrendHighlight.js +1 -1
  115. package/dist/esm/graphs/Chart/parts/TrendHighlight.js.map +1 -1
  116. package/dist/esm/graphs/Chart/react-desc-prop-types.js.map +2 -2
  117. package/dist/esm/graphs/Chart/scales/index.js +160 -0
  118. package/dist/esm/graphs/Chart/scales/index.js.map +7 -0
  119. package/dist/esm/graphs/Chart/series/Area.js +5 -5
  120. package/dist/esm/graphs/Chart/series/Area.js.map +2 -2
  121. package/dist/esm/graphs/Chart/series/Bars.js +7 -4
  122. package/dist/esm/graphs/Chart/series/Bars.js.map +2 -2
  123. package/dist/esm/graphs/Chart/series/HorizontalBars.js +4 -4
  124. package/dist/esm/graphs/Chart/series/HorizontalBars.js.map +2 -2
  125. package/dist/esm/graphs/Chart/series/HorizontalStackedBars.js +3 -3
  126. package/dist/esm/graphs/Chart/series/HorizontalStackedBars.js.map +2 -2
  127. package/dist/esm/graphs/Chart/series/Line.js +2 -2
  128. package/dist/esm/graphs/Chart/series/Line.js.map +2 -2
  129. package/dist/esm/graphs/Chart/series/Points.js +2 -2
  130. package/dist/esm/graphs/Chart/series/Points.js.map +2 -2
  131. package/dist/esm/graphs/Chart/series/Rect.js +1 -1
  132. package/dist/esm/graphs/Chart/series/Rect.js.map +2 -2
  133. package/dist/esm/graphs/Chart/series/StackedBar.js +3 -3
  134. package/dist/esm/graphs/Chart/series/StackedBar.js.map +2 -2
  135. package/dist/esm/graphs/Chart/styles.js +4 -26
  136. package/dist/esm/graphs/Chart/styles.js.map +2 -2
  137. package/dist/types/graphs/Chart/ChartContext.d.ts +12 -4
  138. package/dist/types/graphs/Chart/config/useChart.d.ts +6 -6
  139. package/dist/types/graphs/Chart/config/useGetters.d.ts +2 -2
  140. package/dist/types/graphs/Chart/config/useScales.d.ts +6 -5
  141. package/dist/types/graphs/Chart/parts/Axis/Axis.d.ts +26 -0
  142. package/dist/types/graphs/Chart/parts/Axis/AxisLeft.d.ts +2 -1
  143. package/dist/types/graphs/Chart/parts/Axis/AxisRight.d.ts +2 -1
  144. package/dist/types/graphs/Chart/parts/Axis/GridLine.d.ts +9 -0
  145. package/dist/types/graphs/Chart/parts/Axis/Tick.d.ts +15 -0
  146. package/dist/types/graphs/Chart/parts/Labels/Label.d.ts +10 -1
  147. package/dist/types/graphs/Chart/parts/Labels/index.d.ts +1 -0
  148. package/dist/types/graphs/Chart/react-desc-prop-types.d.ts +3 -2
  149. package/dist/types/graphs/Chart/scales/index.d.ts +53 -0
  150. package/dist/types/graphs/Chart/styles.d.ts +1 -2
  151. package/package.json +4 -4
  152. package/dist/cjs/graphs/Chart/parts/Labels/BottomLabel.js.map +0 -7
  153. package/dist/cjs/graphs/Chart/parts/Labels/LeftLabel.js.map +0 -7
  154. package/dist/cjs/graphs/Chart/parts/Labels/RightLabel.js +0 -56
  155. package/dist/cjs/graphs/Chart/parts/Labels/RightLabel.js.map +0 -7
  156. package/dist/esm/graphs/Chart/parts/Labels/BottomLabel.js +0 -27
  157. package/dist/esm/graphs/Chart/parts/Labels/BottomLabel.js.map +0 -7
  158. package/dist/esm/graphs/Chart/parts/Labels/LeftLabel.js +0 -26
  159. package/dist/esm/graphs/Chart/parts/Labels/LeftLabel.js.map +0 -7
  160. package/dist/esm/graphs/Chart/parts/Labels/RightLabel.js +0 -30
  161. package/dist/esm/graphs/Chart/parts/Labels/RightLabel.js.map +0 -7
  162. package/dist/types/graphs/Chart/parts/Labels/BottomLabel.d.ts +0 -1
  163. package/dist/types/graphs/Chart/parts/Labels/LeftLabel.d.ts +0 -1
  164. package/dist/types/graphs/Chart/parts/Labels/RightLabel.d.ts +0 -1
@@ -83,9 +83,9 @@ const stackData = (groupsStacked, series) => {
83
83
  return allSeriesStackedByGroups;
84
84
  };
85
85
  const getFormatGenerator = (type) => {
86
- if (type === "time")
86
+ if (type === "DATETIME")
87
87
  return import_d3.timeFormat;
88
- if (type === "linear")
88
+ if (type === "LINEAR")
89
89
  return import_d3.format;
90
90
  return null;
91
91
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/graphs/Chart/helpers/index.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import { stack, timeFormat, stackOffsetDiverging, format, Series } from 'd3';\nimport type { DSChartT } from '../react-desc-prop-types';\n\nexport const getStackedIndex = (groups: string[][], serie: string) => {\n for (let i = 0; i < groups.length; i += 1) {\n for (let j = 0; j < groups[i].length; j += 1) {\n if (groups[i][j] === serie) return i;\n }\n }\n return -1;\n};\n\nexport const getStackedData = (stackedData, serie: DSChartT.SeriesT) => {\n for (let i = 0; i < stackedData?.length; i += 1) {\n const data = stackedData[i].find((d) => d.key === serie.name);\n if (data) return data;\n }\n return false;\n};\n\n// this function check if the series that are stacked share the same scale.\n// return the scale or false if they dont share it\n\n// si serie.scale === undefined ... la scala es Y\n\nconst checkSharedScale = (series: DSChartT.SeriesT[]) => {\n const scales = series\n .map((serie) => serie.scale ?? 'y')\n .filter((value, index, self) => self.indexOf(value) === index);\n if (scales.length > 1) {\n return false;\n }\n return scales[0];\n};\n\n// transform series grouped in stack into what d3 stack function need to read\nexport const stackData = (groupsStacked: string[][] | undefined, series: DSChartT.InternalData) => {\n const allSeriesStackedByGroups: DSChartT.StackedSeriesByGroupT = [];\n const scalesStackedDataMap: string[] = [];\n if (!groupsStacked) return [];\n groupsStacked?.forEach((g) => {\n const seriesFilteredByStackGroup = series.filter((serie) => g.includes(serie.name));\n const sharedScale = checkSharedScale(seriesFilteredByStackGroup);\n if (!sharedScale) return;\n scalesStackedDataMap.push(sharedScale);\n const keys = seriesFilteredByStackGroup.map((serie) => serie.name);\n const stackedData: Array<{ [serieName: string]: number }> = [];\n seriesFilteredByStackGroup.forEach((serie) => {\n serie.data.forEach((d, i) => {\n stackedData[d.position] = {\n ...stackedData[d.position],\n [serie.name]: typeof d.value === 'number' ? d.value : d.value?.y || 0,\n };\n });\n });\n allSeriesStackedByGroups.push(stack().offset(stackOffsetDiverging).keys(keys)(stackedData));\n });\n allSeriesStackedByGroups.forEach((g, i) => (g.scale = scalesStackedDataMap[i]));\n return allSeriesStackedByGroups;\n};\n\nexport const getFormatGenerator = (type: string) => {\n if (type === 'time') return timeFormat;\n if (type === 'linear') return format;\n return null;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,gBAAwE;AAGjE,MAAM,kBAAkB,CAAC,QAAoB,UAAkB;AACpE,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAG;AACzC,aAAS,IAAI,GAAG,IAAI,OAAO,GAAG,QAAQ,KAAK,GAAG;AAC5C,UAAI,OAAO,GAAG,OAAO;AAAO,eAAO;AAAA,IACrC;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,iBAAiB,CAAC,aAAa,UAA4B;AACtE,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;AAC/C,UAAM,OAAO,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,MAAM,IAAI;AAC5D,QAAI;AAAM,aAAO;AAAA,EACnB;AACA,SAAO;AACT;AAOA,MAAM,mBAAmB,CAAC,WAA+B;AACvD,QAAM,SAAS,OACZ,IAAI,CAAC,UAAU,MAAM,SAAS,GAAG,EACjC,OAAO,CAAC,OAAO,OAAO,SAAS,KAAK,QAAQ,KAAK,MAAM,KAAK;AAC/D,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO,OAAO;AAChB;AAGO,MAAM,YAAY,CAAC,eAAuC,WAAkC;AACjG,QAAM,2BAA2D,CAAC;AAClE,QAAM,uBAAiC,CAAC;AACxC,MAAI,CAAC;AAAe,WAAO,CAAC;AAC5B,iBAAe,QAAQ,CAAC,MAAM;AAC5B,UAAM,6BAA6B,OAAO,OAAO,CAAC,UAAU,EAAE,SAAS,MAAM,IAAI,CAAC;AAClF,UAAM,cAAc,iBAAiB,0BAA0B;AAC/D,QAAI,CAAC;AAAa;AAClB,yBAAqB,KAAK,WAAW;AACrC,UAAM,OAAO,2BAA2B,IAAI,CAAC,UAAU,MAAM,IAAI;AACjE,UAAM,cAAsD,CAAC;AAC7D,+BAA2B,QAAQ,CAAC,UAAU;AAC5C,YAAM,KAAK,QAAQ,CAAC,GAAG,MAAM;AAC3B,oBAAY,EAAE,YAAY;AAAA,UACxB,GAAG,YAAY,EAAE;AAAA,UACjB,CAAC,MAAM,OAAO,OAAO,EAAE,UAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,KAAK;AAAA,QACtE;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,6BAAyB,SAAK,iBAAM,EAAE,OAAO,8BAAoB,EAAE,KAAK,IAAI,EAAE,WAAW,CAAC;AAAA,EAC5F,CAAC;AACD,2BAAyB,QAAQ,CAAC,GAAG,MAAO,EAAE,QAAQ,qBAAqB,EAAG;AAC9E,SAAO;AACT;AAEO,MAAM,qBAAqB,CAAC,SAAiB;AAClD,MAAI,SAAS;AAAQ,WAAO;AAC5B,MAAI,SAAS;AAAU,WAAO;AAC9B,SAAO;AACT;",
4
+ "sourcesContent": ["import { stack, timeFormat, stackOffsetDiverging, format, Series } from 'd3';\nimport type { DSChartT } from '../react-desc-prop-types';\n\nexport const getStackedIndex = (groups: string[][], serie: string) => {\n for (let i = 0; i < groups.length; i += 1) {\n for (let j = 0; j < groups[i].length; j += 1) {\n if (groups[i][j] === serie) return i;\n }\n }\n return -1;\n};\n\nexport const getStackedData = (stackedData, serie: DSChartT.SeriesT) => {\n for (let i = 0; i < stackedData?.length; i += 1) {\n const data = stackedData[i].find((d) => d.key === serie.name);\n if (data) return data;\n }\n return false;\n};\n\n// this function check if the series that are stacked share the same scale.\n// return the scale or false if they dont share it\n\n// si serie.scale === undefined ... la scala es Y\n\nconst checkSharedScale = (series: DSChartT.SeriesT[]) => {\n const scales = series\n .map((serie) => serie.scale ?? 'y')\n .filter((value, index, self) => self.indexOf(value) === index);\n if (scales.length > 1) {\n return false;\n }\n return scales[0];\n};\n\n// transform series grouped in stack into what d3 stack function need to read\nexport const stackData = (groupsStacked: string[][] | undefined, series: DSChartT.InternalData) => {\n const allSeriesStackedByGroups: DSChartT.StackedSeriesByGroupT = [];\n const scalesStackedDataMap: string[] = [];\n if (!groupsStacked) return [];\n groupsStacked?.forEach((g) => {\n const seriesFilteredByStackGroup = series.filter((serie) => g.includes(serie.name));\n const sharedScale = checkSharedScale(seriesFilteredByStackGroup);\n if (!sharedScale) return;\n scalesStackedDataMap.push(sharedScale);\n const keys = seriesFilteredByStackGroup.map((serie) => serie.name);\n const stackedData: Array<{ [serieName: string]: number }> = [];\n seriesFilteredByStackGroup.forEach((serie) => {\n serie.data.forEach((d, i) => {\n stackedData[d.position] = {\n ...stackedData[d.position],\n [serie.name]: typeof d.value === 'number' ? d.value : d.value?.y || 0,\n };\n });\n });\n allSeriesStackedByGroups.push(stack().offset(stackOffsetDiverging).keys(keys)(stackedData));\n });\n allSeriesStackedByGroups.forEach((g, i) => (g.scale = scalesStackedDataMap[i]));\n return allSeriesStackedByGroups;\n};\n\nexport const getFormatGenerator = (type: string) => {\n if (type === 'DATETIME') return timeFormat;\n if (type === 'LINEAR') return format;\n return null;\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,gBAAwE;AAGjE,MAAM,kBAAkB,CAAC,QAAoB,UAAkB;AACpE,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAG;AACzC,aAAS,IAAI,GAAG,IAAI,OAAO,GAAG,QAAQ,KAAK,GAAG;AAC5C,UAAI,OAAO,GAAG,OAAO;AAAO,eAAO;AAAA,IACrC;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,iBAAiB,CAAC,aAAa,UAA4B;AACtE,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;AAC/C,UAAM,OAAO,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,MAAM,IAAI;AAC5D,QAAI;AAAM,aAAO;AAAA,EACnB;AACA,SAAO;AACT;AAOA,MAAM,mBAAmB,CAAC,WAA+B;AACvD,QAAM,SAAS,OACZ,IAAI,CAAC,UAAU,MAAM,SAAS,GAAG,EACjC,OAAO,CAAC,OAAO,OAAO,SAAS,KAAK,QAAQ,KAAK,MAAM,KAAK;AAC/D,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO,OAAO;AAChB;AAGO,MAAM,YAAY,CAAC,eAAuC,WAAkC;AACjG,QAAM,2BAA2D,CAAC;AAClE,QAAM,uBAAiC,CAAC;AACxC,MAAI,CAAC;AAAe,WAAO,CAAC;AAC5B,iBAAe,QAAQ,CAAC,MAAM;AAC5B,UAAM,6BAA6B,OAAO,OAAO,CAAC,UAAU,EAAE,SAAS,MAAM,IAAI,CAAC;AAClF,UAAM,cAAc,iBAAiB,0BAA0B;AAC/D,QAAI,CAAC;AAAa;AAClB,yBAAqB,KAAK,WAAW;AACrC,UAAM,OAAO,2BAA2B,IAAI,CAAC,UAAU,MAAM,IAAI;AACjE,UAAM,cAAsD,CAAC;AAC7D,+BAA2B,QAAQ,CAAC,UAAU;AAC5C,YAAM,KAAK,QAAQ,CAAC,GAAG,MAAM;AAC3B,oBAAY,EAAE,YAAY;AAAA,UACxB,GAAG,YAAY,EAAE;AAAA,UACjB,CAAC,MAAM,OAAO,OAAO,EAAE,UAAU,WAAW,EAAE,QAAQ,EAAE,OAAO,KAAK;AAAA,QACtE;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,6BAAyB,SAAK,iBAAM,EAAE,OAAO,8BAAoB,EAAE,KAAK,IAAI,EAAE,WAAW,CAAC;AAAA,EAC5F,CAAC;AACD,2BAAyB,QAAQ,CAAC,GAAG,MAAO,EAAE,QAAQ,qBAAqB,EAAG;AAC9E,SAAO;AACT;AAEO,MAAM,qBAAqB,CAAC,SAAiB;AAClD,MAAI,SAAS;AAAY,WAAO;AAChC,MAAI,SAAS;AAAU,WAAO;AAC9B,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -51,19 +51,19 @@ const useUniqueData = () => {
51
51
  }
52
52
  return 0;
53
53
  }
54
- const isBandAxis = !!xScale.bandwidth;
54
+ const isBandAxis = xScale.type === "BAND";
55
55
  return (0, import_react.useMemo)(() => {
56
56
  let valueToPositionPerSeries;
57
57
  if (isBandAxis) {
58
58
  valueToPositionPerSeries = data.map(
59
59
  (serie) => serie.data.filter((datum) => {
60
- const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);
60
+ const xScaleValue = xScale.get(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);
61
61
  return xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) && xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth;
62
62
  }).map((datum) => {
63
63
  const x = getXValue(datum);
64
64
  const y = getYValue(datum);
65
65
  return {
66
- position: xScale(x),
66
+ position: xScale.get(x),
67
67
  name: serie.name,
68
68
  xValue: x,
69
69
  yValue: y,
@@ -75,10 +75,10 @@ const useUniqueData = () => {
75
75
  } else {
76
76
  valueToPositionPerSeries = data.map(
77
77
  (serie) => serie.data.filter((datum) => {
78
- const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);
78
+ const xScaleValue = xScale.get(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);
79
79
  return xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) && xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth;
80
80
  }).map((datum) => ({
81
- position: xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x),
81
+ position: xScale.get(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x),
82
82
  name: serie.name,
83
83
  xValue: xAxis.cols ? xAxis.cols[datum.position] : datum.value.x,
84
84
  yValue: typeof datum.value === "number" ? datum.value : datum.value.y,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/graphs/Chart/helpers/useUniqueData.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const useUniqueData = () => {\n const {\n props: { xAxis },\n currentData: data,\n xScale,\n getBandwidth,\n xScrollbarPosition,\n containerRatio,\n innerWidth,\n getXValue,\n getYValue,\n } = useContext(ChartContext);\n\n function compare(a, b) {\n if (a.xPosition < b.xPosition) {\n return -1;\n }\n if (a.xPosition > b.xPosition) {\n return 1;\n }\n return 0;\n }\n\n const isBandAxis = !!xScale.bandwidth;\n return useMemo(() => {\n let valueToPositionPerSeries;\n if (isBandAxis) {\n valueToPositionPerSeries = data\n .map((serie) =>\n serie.data\n .filter((datum) => {\n const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth\n );\n })\n .map((datum) => {\n const x = getXValue(datum);\n const y = getYValue(datum);\n return {\n position: xScale(x),\n name: serie.name,\n xValue: x,\n yValue: y,\n key: datum.position,\n datum,\n };\n }),\n )\n .flat(1);\n } else {\n valueToPositionPerSeries = data\n .map((serie) =>\n serie.data\n .filter((datum) => {\n const xScaleValue = xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth\n );\n })\n .map((datum) => ({\n position: xScale(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x),\n name: serie.name,\n xValue: xAxis.cols ? xAxis.cols[datum.position] : datum.value.x,\n yValue: typeof datum.value === 'number' ? datum.value : datum.value.y,\n key: datum.position,\n datum,\n })),\n )\n .flat(1);\n }\n const postionUniqueData = {};\n\n // grouping points by xAxis position\n valueToPositionPerSeries.forEach((set) => {\n if (postionUniqueData[[set.position]]) {\n postionUniqueData[[set.position]] = [...postionUniqueData[[set.position]], { ...set }];\n } else {\n postionUniqueData[[set.position]] = [{ ...set }];\n }\n });\n\n const postionUniqueDataArray = Object.keys(postionUniqueData).map((key) => {\n const xPosition = parseFloat(key);\n const datum = postionUniqueData[key];\n\n return { xPosition, datum, xValue: datum[0].xValue };\n });\n\n if (isBandAxis) {\n return postionUniqueDataArray;\n }\n return postionUniqueDataArray.sort(compare).map((line, i, array) => {\n const prevPoint = parseFloat(array[i - 1]?.xPosition ?? 0);\n const postPoint = parseFloat(array[i + 1]?.xPosition ?? 0);\n const rectDetector = {\n left: (line.xPosition - prevPoint) / 2,\n right: Math.abs((postPoint === 0 ? 0 : postPoint - line.xPosition) / 2),\n };\n\n return { ...line, rectDetector };\n });\n }, [isBandAxis, data, xScale, xAxis.cols, xScrollbarPosition, containerRatio, innerWidth, getXValue, getYValue]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAoC;AACpC,0BAA6B;AAEtB,MAAM,gBAAgB,MAAM;AACjC,QAAM;AAAA,IACJ,OAAO,EAAE,MAAM;AAAA,IACf,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,QAAI,yBAAW,gCAAY;AAE3B,WAAS,QAAQ,GAAG,GAAG;AACrB,QAAI,EAAE,YAAY,EAAE,WAAW;AAC7B,aAAO;AAAA,IACT;AACA,QAAI,EAAE,YAAY,EAAE,WAAW;AAC7B,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,CAAC,CAAC,OAAO;AAC5B,aAAO,sBAAQ,MAAM;AACnB,QAAI;AACJ,QAAI,YAAY;AACd,iCAA2B,KACxB;AAAA,QAAI,CAAC,UACJ,MAAM,KACH,OAAO,CAAC,UAAU;AACjB,gBAAM,cAAc,OAAO,MAAM,OAAO,MAAM,KAAK,MAAM,YAAY,MAAM,MAAM,CAAC;AAClF,iBACE,eAAe,sBAAsB,kBAAkB,MACvD,eAAe,sBAAsB,kBAAkB,KAAK;AAAA,QAEhE,CAAC,EACA,IAAI,CAAC,UAAU;AACd,gBAAM,IAAI,UAAU,KAAK;AACzB,gBAAM,IAAI,UAAU,KAAK;AACzB,iBAAO;AAAA,YACL,UAAU,OAAO,CAAC;AAAA,YAClB,MAAM,MAAM;AAAA,YACZ,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,KAAK,MAAM;AAAA,YACX;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACL,EACC,KAAK,CAAC;AAAA,IACX,OAAO;AACL,iCAA2B,KACxB;AAAA,QAAI,CAAC,UACJ,MAAM,KACH,OAAO,CAAC,UAAU;AACjB,gBAAM,cAAc,OAAO,MAAM,OAAO,MAAM,KAAK,MAAM,YAAY,MAAM,MAAM,CAAC;AAClF,iBACE,eAAe,sBAAsB,kBAAkB,MACvD,eAAe,sBAAsB,kBAAkB,KAAK;AAAA,QAEhE,CAAC,EACA,IAAI,CAAC,WAAW;AAAA,UACf,UAAU,OAAO,MAAM,OAAO,MAAM,KAAK,MAAM,YAAY,MAAM,MAAM,CAAC;AAAA,UACxE,MAAM,MAAM;AAAA,UACZ,QAAQ,MAAM,OAAO,MAAM,KAAK,MAAM,YAAY,MAAM,MAAM;AAAA,UAC9D,QAAQ,OAAO,MAAM,UAAU,WAAW,MAAM,QAAQ,MAAM,MAAM;AAAA,UACpE,KAAK,MAAM;AAAA,UACX;AAAA,QACF,EAAE;AAAA,MACN,EACC,KAAK,CAAC;AAAA,IACX;AACA,UAAM,oBAAoB,CAAC;AAG3B,6BAAyB,QAAQ,CAAC,QAAQ;AACxC,UAAI,kBAAkB,CAAC,IAAI,QAAQ,IAAI;AACrC,0BAAkB,CAAC,IAAI,QAAQ,KAAK,CAAC,GAAG,kBAAkB,CAAC,IAAI,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC;AAAA,MACvF,OAAO;AACL,0BAAkB,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;AAAA,MACjD;AAAA,IACF,CAAC;AAED,UAAM,yBAAyB,OAAO,KAAK,iBAAiB,EAAE,IAAI,CAAC,QAAQ;AACzE,YAAM,YAAY,WAAW,GAAG;AAChC,YAAM,QAAQ,kBAAkB;AAEhC,aAAO,EAAE,WAAW,OAAO,QAAQ,MAAM,GAAG,OAAO;AAAA,IACrD,CAAC;AAED,QAAI,YAAY;AACd,aAAO;AAAA,IACT;AACA,WAAO,uBAAuB,KAAK,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU;AAClE,YAAM,YAAY,WAAW,MAAM,IAAI,IAAI,aAAa,CAAC;AACzD,YAAM,YAAY,WAAW,MAAM,IAAI,IAAI,aAAa,CAAC;AACzD,YAAM,eAAe;AAAA,QACnB,OAAO,KAAK,YAAY,aAAa;AAAA,QACrC,OAAO,KAAK,KAAK,cAAc,IAAI,IAAI,YAAY,KAAK,aAAa,CAAC;AAAA,MACxE;AAEA,aAAO,EAAE,GAAG,MAAM,aAAa;AAAA,IACjC,CAAC;AAAA,EACH,GAAG,CAAC,YAAY,MAAM,QAAQ,MAAM,MAAM,oBAAoB,gBAAgB,YAAY,WAAW,SAAS,CAAC;AACjH;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const useUniqueData = () => {\n const {\n props: { xAxis },\n currentData: data,\n xScale,\n getBandwidth,\n xScrollbarPosition,\n containerRatio,\n innerWidth,\n getXValue,\n getYValue,\n } = useContext(ChartContext);\n\n function compare(a, b) {\n if (a.xPosition < b.xPosition) {\n return -1;\n }\n if (a.xPosition > b.xPosition) {\n return 1;\n }\n return 0;\n }\n\n const isBandAxis = xScale.type === 'BAND';\n return useMemo(() => {\n let valueToPositionPerSeries;\n if (isBandAxis) {\n valueToPositionPerSeries = data\n .map((serie) =>\n serie.data\n .filter((datum) => {\n const xScaleValue = xScale.get(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth\n );\n })\n .map((datum) => {\n const x = getXValue(datum);\n const y = getYValue(datum);\n return {\n position: xScale.get(x),\n name: serie.name,\n xValue: x,\n yValue: y,\n key: datum.position,\n datum,\n };\n }),\n )\n .flat(1);\n } else {\n valueToPositionPerSeries = data\n .map((serie) =>\n serie.data\n .filter((datum) => {\n const xScaleValue = xScale.get(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x);\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth\n );\n })\n .map((datum) => ({\n position: xScale.get(xAxis.cols ? xAxis.cols[datum.position] : datum.value.x),\n name: serie.name,\n xValue: xAxis.cols ? xAxis.cols[datum.position] : datum.value.x,\n yValue: typeof datum.value === 'number' ? datum.value : datum.value.y,\n key: datum.position,\n datum,\n })),\n )\n .flat(1);\n }\n const postionUniqueData = {};\n\n // grouping points by xAxis position\n valueToPositionPerSeries.forEach((set) => {\n if (postionUniqueData[[set.position]]) {\n postionUniqueData[[set.position]] = [...postionUniqueData[[set.position]], { ...set }];\n } else {\n postionUniqueData[[set.position]] = [{ ...set }];\n }\n });\n\n const postionUniqueDataArray = Object.keys(postionUniqueData).map((key) => {\n const xPosition = parseFloat(key);\n const datum = postionUniqueData[key];\n\n return { xPosition, datum, xValue: datum[0].xValue };\n });\n\n if (isBandAxis) {\n return postionUniqueDataArray;\n }\n return postionUniqueDataArray.sort(compare).map((line, i, array) => {\n const prevPoint = parseFloat(array[i - 1]?.xPosition ?? 0);\n const postPoint = parseFloat(array[i + 1]?.xPosition ?? 0);\n const rectDetector = {\n left: (line.xPosition - prevPoint) / 2,\n right: Math.abs((postPoint === 0 ? 0 : postPoint - line.xPosition) / 2),\n };\n\n return { ...line, rectDetector };\n });\n }, [isBandAxis, data, xScale, xAxis.cols, xScrollbarPosition, containerRatio, innerWidth, getXValue, getYValue]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -47,11 +47,11 @@ const useVirtualizedSeries = () => {
47
47
  const yScroll = yAxis.advanced?.pointSpacing?.value > 1;
48
48
  return (0, import_react.useMemo)(() => {
49
49
  if (xScroll) {
50
- const offset = xScale.bandwidth?.() || 20;
50
+ const offset = xScale.getBandwidth() || 20;
51
51
  return data.map((serie) => ({
52
52
  ...serie,
53
53
  data: serie.data.filter((datum) => {
54
- const xScaleValue = xScale(getXValue(datum));
54
+ const xScaleValue = xScale.get(getXValue(datum));
55
55
  return xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) - innerWidth && xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth * 2;
56
56
  })
57
57
  }));
@@ -60,8 +60,8 @@ const useVirtualizedSeries = () => {
60
60
  return data.map((serie) => ({
61
61
  ...serie,
62
62
  data: serie.data.filter((datum) => {
63
- const yScaleValue = yScale(getYValue(datum));
64
- const offset = yScale.bandwidth?.() ?? 20;
63
+ const yScaleValue = yScale.get(getYValue(datum));
64
+ const offset = yScale.getBandwidth() ?? 20;
65
65
  return yScaleValue > xScrollbarPosition * (containerRatio ?? 1) - offset && yScaleValue < xScrollbarPosition * (containerRatio ?? 1) + innerHeight;
66
66
  })
67
67
  }));
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/graphs/Chart/helpers/useVirtualizedSeries.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const useVirtualizedSeries = () => {\n const {\n containerRatio,\n innerWidth,\n xScrollbarPosition,\n xScale,\n yScale,\n getYValue,\n getXValue,\n innerHeight,\n currentData: data,\n props: { xAxis, yAxis },\n } = useContext(ChartContext);\n\n // @TODO until we decide if we use this internal we know which axis this way\n\n const xScroll = xAxis.advanced?.pointSpacing?.value > 1;\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n return useMemo(() => {\n if (xScroll) {\n const offset = xScale.bandwidth?.() || 20;\n return data.map((serie) => ({\n ...serie,\n data: serie.data.filter((datum) => {\n const xScaleValue = xScale(getXValue(datum));\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) - innerWidth &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth * 2\n );\n }),\n }));\n }\n if (yScroll) {\n return data.map((serie) => ({\n ...serie,\n data: serie.data.filter((datum) => {\n const yScaleValue = yScale(getYValue(datum));\n const offset = yScale.bandwidth?.() ?? 20;\n return (\n yScaleValue > xScrollbarPosition * (containerRatio ?? 1) - offset &&\n yScaleValue < xScrollbarPosition * (containerRatio ?? 1) + innerHeight\n );\n }),\n }));\n }\n return data;\n }, [\n containerRatio,\n data,\n getXValue,\n getYValue,\n innerHeight,\n innerWidth,\n xScale,\n xScroll,\n xScrollbarPosition,\n yScale,\n yScroll,\n ]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAoC;AACpC,0BAA6B;AAEtB,MAAM,uBAAuB,MAAM;AACxC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,OAAO,EAAE,OAAO,MAAM;AAAA,EACxB,QAAI,yBAAW,gCAAY;AAI3B,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AACtD,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AAEtD,aAAO,sBAAQ,MAAM;AACnB,QAAI,SAAS;AACX,YAAM,SAAS,OAAO,YAAY,KAAK;AACvC,aAAO,KAAK,IAAI,CAAC,WAAW;AAAA,QAC1B,GAAG;AAAA,QACH,MAAM,MAAM,KAAK,OAAO,CAAC,UAAU;AACjC,gBAAM,cAAc,OAAO,UAAU,KAAK,CAAC;AAC3C,iBACE,eAAe,sBAAsB,kBAAkB,KAAK,cAC5D,eAAe,sBAAsB,kBAAkB,KAAK,aAAa;AAAA,QAE7E,CAAC;AAAA,MACH,EAAE;AAAA,IACJ;AACA,QAAI,SAAS;AACX,aAAO,KAAK,IAAI,CAAC,WAAW;AAAA,QAC1B,GAAG;AAAA,QACH,MAAM,MAAM,KAAK,OAAO,CAAC,UAAU;AACjC,gBAAM,cAAc,OAAO,UAAU,KAAK,CAAC;AAC3C,gBAAM,SAAS,OAAO,YAAY,KAAK;AACvC,iBACE,cAAc,sBAAsB,kBAAkB,KAAK,UAC3D,cAAc,sBAAsB,kBAAkB,KAAK;AAAA,QAE/D,CAAC;AAAA,MACH,EAAE;AAAA,IACJ;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable max-depth */\n/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport { useContext, useMemo } from 'react';\nimport { ChartContext } from '../ChartContext';\n\nexport const useVirtualizedSeries = () => {\n const {\n containerRatio,\n innerWidth,\n xScrollbarPosition,\n xScale,\n yScale,\n getYValue,\n getXValue,\n innerHeight,\n currentData: data,\n props: { xAxis, yAxis },\n } = useContext(ChartContext);\n\n // @TODO until we decide if we use this internal we know which axis this way\n\n const xScroll = xAxis.advanced?.pointSpacing?.value > 1;\n const yScroll = yAxis.advanced?.pointSpacing?.value > 1;\n\n return useMemo(() => {\n if (xScroll) {\n const offset = xScale.getBandwidth() || 20;\n return data.map((serie) => ({\n ...serie,\n data: serie.data.filter((datum) => {\n const xScaleValue = xScale.get(getXValue(datum));\n return (\n xScaleValue >= xScrollbarPosition * (containerRatio ?? 1) - innerWidth &&\n xScaleValue <= xScrollbarPosition * (containerRatio ?? 1) + innerWidth * 2\n );\n }),\n }));\n }\n if (yScroll) {\n return data.map((serie) => ({\n ...serie,\n data: serie.data.filter((datum) => {\n const yScaleValue = yScale.get(getYValue(datum));\n const offset = yScale.getBandwidth() ?? 20;\n return (\n yScaleValue > xScrollbarPosition * (containerRatio ?? 1) - offset &&\n yScaleValue < xScrollbarPosition * (containerRatio ?? 1) + innerHeight\n );\n }),\n }));\n }\n return data;\n }, [\n containerRatio,\n data,\n getXValue,\n getYValue,\n innerHeight,\n innerWidth,\n xScale,\n xScroll,\n xScrollbarPosition,\n yScale,\n yScroll,\n ]);\n};\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADIvB,mBAAoC;AACpC,0BAA6B;AAEtB,MAAM,uBAAuB,MAAM;AACxC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,OAAO,EAAE,OAAO,MAAM;AAAA,EACxB,QAAI,yBAAW,gCAAY;AAI3B,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AACtD,QAAM,UAAU,MAAM,UAAU,cAAc,QAAQ;AAEtD,aAAO,sBAAQ,MAAM;AACnB,QAAI,SAAS;AACX,YAAM,SAAS,OAAO,aAAa,KAAK;AACxC,aAAO,KAAK,IAAI,CAAC,WAAW;AAAA,QAC1B,GAAG;AAAA,QACH,MAAM,MAAM,KAAK,OAAO,CAAC,UAAU;AACjC,gBAAM,cAAc,OAAO,IAAI,UAAU,KAAK,CAAC;AAC/C,iBACE,eAAe,sBAAsB,kBAAkB,KAAK,cAC5D,eAAe,sBAAsB,kBAAkB,KAAK,aAAa;AAAA,QAE7E,CAAC;AAAA,MACH,EAAE;AAAA,IACJ;AACA,QAAI,SAAS;AACX,aAAO,KAAK,IAAI,CAAC,WAAW;AAAA,QAC1B,GAAG;AAAA,QACH,MAAM,MAAM,KAAK,OAAO,CAAC,UAAU;AACjC,gBAAM,cAAc,OAAO,IAAI,UAAU,KAAK,CAAC;AAC/C,gBAAM,SAAS,OAAO,aAAa,KAAK;AACxC,iBACE,cAAc,sBAAsB,kBAAkB,KAAK,UAC3D,cAAc,sBAAsB,kBAAkB,KAAK;AAAA,QAE/D,CAAC;AAAA,MACH,EAAE;AAAA,IACJ;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var Axis_exports = {};
26
+ __export(Axis_exports, {
27
+ Axis: () => Axis
28
+ });
29
+ module.exports = __toCommonJS(Axis_exports);
30
+ var React = __toESM(require("react"));
31
+ var import_jsx_runtime = require("react/jsx-runtime");
32
+ var import_react = __toESM(require("react"));
33
+ var import_styles = require("../../styles");
34
+ const Axis = import_react.default.memo((props) => {
35
+ const { dimension, color, GridRenderer, TickRenderer, lineCoords, scale, innerRef } = props;
36
+ const ticks = scale.getTicks(dimension);
37
+ const ticksScaled = scale?.getTicksScaled(dimension);
38
+ const { x1, x2, y1, y2 } = lineCoords;
39
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { className: "axis", children: [
40
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { ref: innerRef, children: [
41
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledAxis, { className: "domain", x1, x2, y1, y2, axisColor: color }),
42
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", { className: "ticks", children: ticks.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TickRenderer, { position: ticksScaled[i], tickValue: t }, ticksScaled[i])) })
43
+ ] }),
44
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", { className: "grid", children: ticks.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GridRenderer, { position: ticksScaled[i], tickValue: t }, ticksScaled[i])) })
45
+ ] });
46
+ });
47
+ //# sourceMappingURL=Axis.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/graphs/Chart/parts/Axis/Axis.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React from 'react';\nimport type { ScaleT } from '../../scales';\nimport { StyledAxis } from '../../styles';\nexport interface TickRenderPropsT {\n position: number;\n tickValue: string | number | Date;\n}\nexport interface GridRenderPropsT {\n position: number;\n tickValue?: string | number | Date;\n}\n\ninterface AxisT<S extends ScaleT> {\n lineCoords: {\n x1: number;\n x2: number;\n y1: number;\n y2: number;\n };\n innerRef: React.Dispatch<React.SetStateAction<SVGGElement | null>>;\n scale: S;\n dimension: number;\n TickRenderer: (props: TickRenderPropsT) => JSX.Element;\n GridRenderer: (props: GridRenderPropsT) => JSX.Element | null;\n color: string;\n}\n\nexport const Axis = React.memo(<S extends ScaleT>(props: AxisT<S>) => {\n const { dimension, color, GridRenderer, TickRenderer, lineCoords, scale, innerRef } = props;\n\n const ticks = scale.getTicks(dimension);\n\n const ticksScaled = scale?.getTicksScaled(dimension);\n\n const { x1, x2, y1, y2 } = lineCoords;\n\n return (\n <g className=\"axis\">\n <g ref={innerRef}>\n <StyledAxis className=\"domain\" x1={x1} x2={x2} y1={y1} y2={y2} axisColor={color} />\n <g className=\"ticks\">\n {ticks.map((t, i) => (\n <TickRenderer key={ticksScaled[i]} position={ticksScaled[i]} tickValue={t} />\n ))}\n </g>\n </g>\n <g className=\"grid\">\n {ticks.map((t, i) => (\n <GridRenderer key={ticksScaled[i]} position={ticksScaled[i]} tickValue={t} />\n ))}\n </g>\n </g>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADsCjB;AAtCN,mBAAkB;AAElB,oBAA2B;AAyBpB,MAAM,OAAO,aAAAA,QAAM,KAAK,CAAmB,UAAoB;AACpE,QAAM,EAAE,WAAW,OAAO,cAAc,cAAc,YAAY,OAAO,SAAS,IAAI;AAEtF,QAAM,QAAQ,MAAM,SAAS,SAAS;AAEtC,QAAM,cAAc,OAAO,eAAe,SAAS;AAEnD,QAAM,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI;AAE3B,SACE,6CAAC,OAAE,WAAU,QACX;AAAA,iDAAC,OAAE,KAAK,UACN;AAAA,kDAAC,4BAAW,WAAU,UAAS,IAAQ,IAAQ,IAAQ,IAAQ,WAAW,OAAO;AAAA,MACjF,4CAAC,OAAE,WAAU,SACV,gBAAM,IAAI,CAAC,GAAG,MACb,4CAAC,gBAAkC,UAAU,YAAY,IAAI,WAAW,KAArD,YAAY,EAA4C,CAC5E,GACH;AAAA,OACF;AAAA,IACA,4CAAC,OAAE,WAAU,QACV,gBAAM,IAAI,CAAC,GAAG,MACb,4CAAC,gBAAkC,UAAU,YAAY,IAAI,WAAW,KAArD,YAAY,EAA4C,CAC5E,GACH;AAAA,KACF;AAEJ,CAAC;",
6
+ "names": ["React"]
7
+ }
@@ -30,92 +30,109 @@ module.exports = __toCommonJS(AxisBottom_exports);
30
30
  var React = __toESM(require("react"));
31
31
  var import_jsx_runtime = require("react/jsx-runtime");
32
32
  var import_react = __toESM(require("react"));
33
- var import_d3 = require("d3");
34
- var import_styles = require("../../styles");
35
33
  var import_ChartContext = require("../../ChartContext");
36
- var import_useUniqueData = require("../../helpers/useUniqueData");
37
- var import_helpers = require("../../helpers");
34
+ var import_Axis = require("./Axis");
35
+ var import_Tick = require("./Tick");
36
+ var import_GridLine = require("./GridLine");
37
+ var import_colorPallet = require("../../helpers/colorPallet");
38
38
  const AxisBottom = import_react.default.memo(() => {
39
39
  const {
40
40
  props: { xAxis },
41
41
  innerHeight,
42
42
  xScale,
43
+ yScale,
43
44
  innerWidth,
44
45
  containerRatio,
45
- internalMargin,
46
- isHorizontal,
47
46
  setAxisBottomRef
48
47
  } = (0, import_react.useContext)(import_ChartContext.ChartContext);
49
- const axisRef = (0, import_react.useRef)(null);
50
- const gridRef = (0, import_react.useRef)(null);
51
- const { tickValues, tickFormat, overwriteTicks, color, tickRotation, tickCount } = xAxis.tick || {};
52
- const ticksScales = ["linear", "time", "log"];
53
- const uniqueData = (0, import_useUniqueData.useUniqueData)();
54
- (0, import_react.useEffect)(() => {
55
- const grid = (0, import_d3.axisBottom)(xScale).tickSize(-innerHeight).tickFormat("").tickSizeOuter(0);
56
- const axis = (0, import_d3.axisBottom)(xScale).tickSizeOuter(0);
57
- if (ticksScales.includes(xAxis.type)) {
58
- const ticksNum = (() => {
59
- if (tickCount)
60
- return tickCount;
61
- if (containerRatio > 1) {
62
- return innerWidth / 80 * containerRatio;
48
+ const { tickRotation } = xAxis.tick || {};
49
+ const { showGrid } = xAxis;
50
+ const textProps = (0, import_react.useMemo)(() => {
51
+ const commomProps = { fill: import_colorPallet.COLOR_PALLET[xAxis?.tick?.color] || xAxis?.tick?.color };
52
+ if (!tickRotation)
53
+ return { ...commomProps, y: 17 };
54
+ return {
55
+ ...commomProps,
56
+ dx: 8 * Math.sin(Math.PI * (tickRotation / 180)),
57
+ dy: ".71em",
58
+ y: Math.ceil(11.5 - 2.5 * (tickRotation / 15) * (tickRotation > 0 ? 1 : -1)),
59
+ transform: `rotate(${tickRotation})`
60
+ };
61
+ }, [tickRotation, xAxis?.tick?.color]);
62
+ const style = (0, import_react.useMemo)(() => {
63
+ if (!tickRotation)
64
+ return { textAnchor: "middle" };
65
+ return { textAnchor: tickRotation > 0 ? "start" : "end" };
66
+ }, [tickRotation]);
67
+ const GridRenderer = (0, import_react.useCallback)(
68
+ (props) => {
69
+ if (!showGrid)
70
+ return null;
71
+ const { position, ...rest } = props;
72
+ const gridLineCoords = {
73
+ x1: position,
74
+ x2: position,
75
+ y1: 0,
76
+ y2: innerHeight
77
+ };
78
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_GridLine.GridLine, { ...gridLineCoords, ...rest });
79
+ },
80
+ [innerHeight, showGrid]
81
+ );
82
+ const TickRenderer = (0, import_react.useCallback)(
83
+ (props) => {
84
+ const { position, tickValue, ...rest } = props;
85
+ const tickLineCoords = {
86
+ y2: 5,
87
+ stroke: import_colorPallet.COLOR_PALLET[xAxis?.tick?.color] || xAxis?.tick?.color
88
+ };
89
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
90
+ import_Tick.Tick,
91
+ {
92
+ ...tickLineCoords,
93
+ tickValue: xScale.getTickFormatted(tickValue),
94
+ xTranslate: position,
95
+ yTranslate: innerHeight,
96
+ textProps,
97
+ textStyle: style,
98
+ ...rest
63
99
  }
64
- return innerWidth / 80;
65
- })();
66
- const ticks = xScale.ticks?.(ticksNum);
67
- if (containerRatio > 1 && uniqueData.length < 10 && !isHorizontal) {
68
- const ticksName = uniqueData.map((u) => u.xValue);
69
- axis.tickValues(ticksName);
70
- grid.tickValues(ticksName);
71
- } else if (tickValues && ticks) {
72
- const finalTicks = overwriteTicks ? tickValues : [...ticks, ...tickValues];
73
- axis.tickValues(finalTicks);
74
- } else {
75
- axis.tickValues(ticks);
76
- grid.tickValues(ticks);
100
+ );
101
+ },
102
+ [xAxis?.tick?.color, xScale, innerHeight, textProps, style]
103
+ );
104
+ const axisColor = (0, import_react.useMemo)(() => import_colorPallet.COLOR_PALLET[xAxis.color] || xAxis.color, [xAxis.color]);
105
+ return (0, import_react.useMemo)(() => {
106
+ if (xAxis.hideAxis)
107
+ return null;
108
+ const lineCoords = {
109
+ x1: 0,
110
+ x2: innerWidth * containerRatio,
111
+ y1: innerHeight,
112
+ y2: innerHeight
113
+ };
114
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
115
+ import_Axis.Axis,
116
+ {
117
+ lineCoords,
118
+ scale: xScale,
119
+ innerRef: setAxisBottomRef,
120
+ dimension: innerWidth * containerRatio,
121
+ TickRenderer,
122
+ GridRenderer,
123
+ color: axisColor
77
124
  }
78
- }
79
- if (tickFormat) {
80
- if (typeof tickFormat === "string") {
81
- const formatGenerator = (0, import_helpers.getFormatGenerator)(xAxis.type ?? "linear");
82
- axis.tickFormat((d) => formatGenerator(tickFormat)(d));
83
- }
84
- if (typeof tickFormat === "function") {
85
- axis.tickFormat(tickFormat);
86
- }
87
- }
88
- if (axisRef?.current && gridRef?.current) {
89
- if (xAxis?.showGrid)
90
- (0, import_d3.select)(gridRef.current).call(grid);
91
- const axisNode = (0, import_d3.select)(axisRef.current);
92
- axisNode.call(axis);
93
- if (tickRotation)
94
- axisNode.selectAll("text").style("text-anchor", tickRotation > 0 ? "start" : "end").attr("dx", 8 * Math.sin(Math.PI * (tickRotation / 180))).attr("dy", ".71em").attr("y", 11.5 - 2.5 * (tickRotation / 15) * (tickRotation > 0 ? 1 : -1)).attr("transform", `rotate(${tickRotation})`);
95
- }
125
+ );
96
126
  }, [
97
- innerHeight,
98
- overwriteTicks,
99
- xAxis?.showGrid,
100
- tickFormat,
101
- tickValues,
102
- xScale,
103
- tickRotation,
104
- xAxis.type,
105
- ticksScales,
106
- tickCount,
127
+ GridRenderer,
128
+ TickRenderer,
107
129
  containerRatio,
130
+ axisColor,
131
+ innerHeight,
108
132
  innerWidth,
109
- uniqueData.length,
110
- uniqueData,
111
- internalMargin.left,
112
- isHorizontal
133
+ setAxisBottomRef,
134
+ xAxis.hideAxis,
135
+ xScale
113
136
  ]);
114
- if (xAxis.hideAxis)
115
- return null;
116
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { transform: `translate(0,${innerHeight})`, children: [
117
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", { ref: setAxisBottomRef, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledAxis, { axisColor: xAxis.color, tickColor: color, ref: axisRef }) }),
118
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledGrid, { ref: gridRef })
119
- ] });
120
137
  });
121
138
  //# sourceMappingURL=AxisBottom.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/graphs/Chart/parts/Axis/AxisBottom.tsx", "../../../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useContext, useEffect, useRef } from 'react';\nimport type { ScaleLinear, ScaleTime } from 'd3';\nimport { select, axisBottom } from 'd3';\nimport { StyledAxis, StyledGrid } from '../../styles';\nimport { ChartContext } from '../../ChartContext';\nimport type { DSChartT } from '../../react-desc-prop-types';\nimport { useUniqueData } from '../../helpers/useUniqueData';\nimport { getFormatGenerator } from '../../helpers';\n\nexport const AxisBottom = React.memo(() => {\n const {\n props: { xAxis },\n innerHeight,\n xScale,\n innerWidth,\n containerRatio,\n internalMargin,\n isHorizontal,\n setAxisBottomRef,\n } = useContext(ChartContext);\n\n const axisRef = useRef<SVGSVGElement>(null);\n const gridRef = useRef<SVGSVGElement>(null);\n const { tickValues, tickFormat, overwriteTicks, color, tickRotation, tickCount } =\n xAxis.tick || ({} as DSChartT.AxisTickT);\n\n const ticksScales = ['linear', 'time', 'log'];\n // const ticks = xScale.ticks?.(tickCount ?? width / 100);\n\n const uniqueData = useUniqueData();\n useEffect(() => {\n const grid = axisBottom(xScale as ScaleLinear<number, number>)\n .tickSize(-innerHeight)\n .tickFormat('')\n .tickSizeOuter(0);\n\n const axis = axisBottom(xScale as ScaleLinear<number, number>).tickSizeOuter(0);\n\n if (ticksScales.includes(xAxis.type)) {\n const ticksNum = (() => {\n if (tickCount) return tickCount;\n if (containerRatio > 1) {\n return (innerWidth / 80) * containerRatio;\n }\n return innerWidth / 80;\n })();\n const ticks = (xScale as ScaleLinear<number, number> | ScaleTime<number, number, never>).ticks?.(ticksNum);\n\n // we show the only the ticks values on the screen when zoomed enough\n // @todo we need to improve this logic\n if (containerRatio > 1 && uniqueData.length < 10 && !isHorizontal) {\n const ticksName = uniqueData.map((u) => u.xValue);\n axis.tickValues(ticksName);\n grid.tickValues(ticksName);\n } else if (tickValues && ticks) {\n const finalTicks = overwriteTicks ? tickValues : [...ticks, ...tickValues];\n axis.tickValues(finalTicks);\n } else {\n axis.tickValues(ticks);\n grid.tickValues(ticks);\n }\n }\n\n if (tickFormat) {\n if (typeof tickFormat === 'string') {\n const formatGenerator = getFormatGenerator(xAxis.type ?? 'linear');\n axis.tickFormat((d) => formatGenerator(tickFormat)(d));\n }\n if (typeof tickFormat === 'function') {\n axis.tickFormat(tickFormat);\n }\n }\n\n if (axisRef?.current && gridRef?.current) {\n if (xAxis?.showGrid) select(gridRef.current).call(grid);\n const axisNode = select(axisRef.current);\n axisNode.call(axis);\n\n // // need to remove the first tick when live under the domain line\n // const firstTick = axisNode.select('.tick').node() as SVGGElement; // select all the text elements\n // if (firstTick?.getBoundingClientRect().left < internalMargin.left + 10 && !xScale.bandwidth) {\n // firstTick.remove();\n // }\n if (tickRotation)\n axisNode\n .selectAll('text')\n .style('text-anchor', tickRotation > 0 ? 'start' : 'end')\n .attr('dx', 8 * Math.sin(Math.PI * (tickRotation / 180)))\n .attr('dy', '.71em')\n .attr('y', 11.5 - 2.5 * (tickRotation / 15) * (tickRotation > 0 ? 1 : -1))\n .attr('transform', `rotate(${tickRotation})`);\n }\n }, [\n innerHeight,\n overwriteTicks,\n xAxis?.showGrid,\n tickFormat,\n tickValues,\n xScale,\n tickRotation,\n xAxis.type,\n ticksScales,\n tickCount,\n containerRatio,\n innerWidth,\n uniqueData.length,\n uniqueData,\n internalMargin.left,\n isHorizontal,\n ]);\n if (xAxis.hideAxis) return null;\n return (\n <g transform={`translate(0,${innerHeight})`}>\n <g ref={setAxisBottomRef}>\n <StyledAxis axisColor={xAxis.color} tickColor={color} ref={axisRef}></StyledAxis>\n </g>\n <StyledGrid ref={gridRef}></StyledGrid>\n </g>\n );\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-statements */\n/* eslint-disable complexity */\nimport React, { useContext, useMemo, useCallback } from 'react';\nimport type { CSSProperties } from 'react';\nimport { ChartContext } from '../../ChartContext';\nimport type { DSChartT } from '../../react-desc-prop-types';\nimport { Axis, type GridRenderPropsT, type TickRenderPropsT } from './Axis';\nimport { Tick } from './Tick';\nimport { GridLine } from './GridLine';\nimport { COLOR_PALLET } from '../../helpers/colorPallet';\n\nexport const AxisBottom = React.memo(() => {\n const {\n props: { xAxis },\n innerHeight,\n xScale,\n yScale,\n innerWidth,\n containerRatio,\n setAxisBottomRef,\n } = useContext(ChartContext);\n\n const { tickRotation } = xAxis.tick || ({} as DSChartT.AxisTickT);\n const { showGrid } = xAxis;\n\n const textProps = useMemo(() => {\n const commomProps = { fill: COLOR_PALLET[xAxis?.tick?.color as keyof typeof COLOR_PALLET] || xAxis?.tick?.color };\n if (!tickRotation) return { ...commomProps, y: 17 };\n return {\n ...commomProps,\n dx: 8 * Math.sin(Math.PI * (tickRotation / 180)),\n dy: '.71em',\n y: Math.ceil(11.5 - 2.5 * (tickRotation / 15) * (tickRotation > 0 ? 1 : -1)),\n transform: `rotate(${tickRotation})`,\n };\n }, [tickRotation, xAxis?.tick?.color]);\n\n const style: CSSProperties = useMemo(() => {\n if (!tickRotation) return { textAnchor: 'middle' };\n return { textAnchor: tickRotation > 0 ? 'start' : 'end' };\n }, [tickRotation]);\n\n const GridRenderer = useCallback(\n (props: GridRenderPropsT) => {\n if (!showGrid) return null;\n\n const { position, ...rest } = props;\n const gridLineCoords = {\n x1: position,\n x2: position,\n y1: 0,\n y2: innerHeight,\n };\n return <GridLine {...gridLineCoords} {...rest} />;\n },\n [innerHeight, showGrid],\n );\n\n const TickRenderer = useCallback(\n (props: TickRenderPropsT) => {\n const { position, tickValue, ...rest } = props;\n const tickLineCoords = {\n y2: 5,\n stroke: COLOR_PALLET[xAxis?.tick?.color as keyof typeof COLOR_PALLET] || xAxis?.tick?.color,\n };\n return (\n <Tick\n {...tickLineCoords}\n tickValue={xScale.getTickFormatted(tickValue)}\n xTranslate={position}\n yTranslate={innerHeight}\n textProps={textProps}\n textStyle={style}\n {...rest}\n />\n );\n },\n [xAxis?.tick?.color, xScale, innerHeight, textProps, style],\n );\n\n const axisColor = useMemo(() => COLOR_PALLET[xAxis.color as keyof typeof COLOR_PALLET] || xAxis.color, [xAxis.color]);\n\n return useMemo(() => {\n if (xAxis.hideAxis) return null;\n const lineCoords = {\n x1: 0,\n x2: innerWidth * containerRatio,\n y1: innerHeight,\n y2: innerHeight,\n };\n\n return (\n <Axis\n lineCoords={lineCoords}\n scale={xScale}\n innerRef={setAxisBottomRef}\n dimension={innerWidth * containerRatio}\n TickRenderer={TickRenderer}\n GridRenderer={GridRenderer}\n color={axisColor}\n />\n );\n }, [\n GridRenderer,\n TickRenderer,\n containerRatio,\n axisColor,\n innerHeight,\n innerWidth,\n setAxisBottomRef,\n xAxis.hideAxis,\n xScale,\n ]);\n});\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": ["React"]
7
7
  }
@@ -29,70 +29,100 @@ __export(AxisLeft_exports, {
29
29
  module.exports = __toCommonJS(AxisLeft_exports);
30
30
  var React = __toESM(require("react"));
31
31
  var import_jsx_runtime = require("react/jsx-runtime");
32
- var import_react = require("react");
33
- var import_d3 = require("d3");
34
- var import_styles = require("../../styles");
32
+ var import_react = __toESM(require("react"));
35
33
  var import_ChartContext = require("../../ChartContext");
36
- var import_helpers = require("../../helpers");
37
- const AxisLeft = () => {
34
+ var import_Axis = require("./Axis");
35
+ var import_Tick = require("./Tick");
36
+ var import_GridLine = require("./GridLine");
37
+ var import_colorPallet = require("../../helpers/colorPallet");
38
+ const AxisLeft = import_react.default.memo(() => {
38
39
  const {
39
40
  props: { yAxis },
40
41
  innerHeight,
41
- innerWidth,
42
- yScale,
43
- chartId,
44
42
  height,
43
+ yScale,
44
+ innerWidth,
45
45
  setAxisLeftRef
46
46
  } = (0, import_react.useContext)(import_ChartContext.ChartContext);
47
- const ref = (0, import_react.useRef)(null);
48
- const gridRef = (0, import_react.useRef)(null);
49
- const { tickValues, color: tickColor, tickFormat, overwriteTicks, tickRotation, tickCount } = yAxis.tick || {};
50
- const ticks = yScale.ticks?.(tickCount ?? height / 80);
51
- const { type, showGrid, color: axisColor } = yAxis;
52
- (0, import_react.useEffect)(() => {
53
- const axis = (0, import_d3.axisLeft)(yScale).tickSizeOuter(0);
54
- const grid = (0, import_d3.axisLeft)(yScale).tickFormat((_) => "").tickSize(showGrid ? -innerWidth : 0).tickSizeOuter(0);
55
- if (tickValues && ticks) {
56
- const finalTicks = overwriteTicks ? tickValues : [...ticks, ...tickValues];
57
- axis.tickValues(finalTicks);
58
- } else {
59
- axis.tickValues(ticks);
60
- grid.tickValues(ticks);
61
- }
62
- if (tickFormat) {
63
- if (typeof tickFormat === "string") {
64
- const formatGenerator = (0, import_helpers.getFormatGenerator)(type ?? "linear");
65
- axis.tickFormat((d) => formatGenerator(tickFormat)(d));
66
- }
67
- if (typeof tickFormat === "function") {
68
- axis.tickFormat(tickFormat);
47
+ const { tickRotation } = yAxis.tick || {};
48
+ const { showGrid } = yAxis;
49
+ const textProps = (0, import_react.useMemo)(() => {
50
+ const commomProps = { fill: import_colorPallet.COLOR_PALLET[yAxis?.tick?.color] || yAxis?.tick?.color };
51
+ if (!tickRotation)
52
+ return { ...commomProps, x: -10, dy: "0.32em" };
53
+ return {
54
+ ...commomProps,
55
+ dy: ".30em",
56
+ dx: "-.10em",
57
+ x: Math.trunc(-(11.5 - 2.5 * (tickRotation / 15) * (tickRotation > 0 ? 1 : -1))),
58
+ transform: `rotate(${tickRotation})`
59
+ };
60
+ }, [tickRotation, yAxis?.tick?.color]);
61
+ const style = (0, import_react.useMemo)(
62
+ () => ({
63
+ textAnchor: "end"
64
+ }),
65
+ []
66
+ );
67
+ const GridRenderer = (0, import_react.useCallback)(
68
+ (props) => {
69
+ if (!showGrid)
70
+ return null;
71
+ const { position, ...rest } = props;
72
+ const gridLineCoords = {
73
+ x1: 0,
74
+ x2: innerWidth,
75
+ y1: position,
76
+ y2: position
77
+ };
78
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_GridLine.GridLine, { ...gridLineCoords, ...rest });
79
+ },
80
+ [showGrid, innerWidth]
81
+ );
82
+ const TickRenderer = (0, import_react.useCallback)(
83
+ (props) => {
84
+ const { position, tickValue, ...rest } = props;
85
+ const tickLineCoords = {
86
+ x2: -5,
87
+ stroke: import_colorPallet.COLOR_PALLET[yAxis?.tick?.color] || yAxis?.tick?.color
88
+ };
89
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
90
+ import_Tick.Tick,
91
+ {
92
+ ...tickLineCoords,
93
+ xTranslate: 0,
94
+ yTranslate: position,
95
+ textProps,
96
+ textStyle: style,
97
+ tickValue: yScale.getTickFormatted(tickValue),
98
+ ...rest
99
+ }
100
+ );
101
+ },
102
+ [style, textProps, yAxis?.tick?.color, yScale]
103
+ );
104
+ const axisColor = (0, import_react.useMemo)(() => import_colorPallet.COLOR_PALLET[yAxis.color] || yAxis.color, [yAxis.color]);
105
+ return (0, import_react.useMemo)(() => {
106
+ if (yAxis.hideAxis)
107
+ return null;
108
+ const lineCoords = {
109
+ x1: 0,
110
+ x2: 0,
111
+ y1: 0,
112
+ y2: innerHeight
113
+ };
114
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
115
+ import_Axis.Axis,
116
+ {
117
+ lineCoords,
118
+ scale: yScale,
119
+ innerRef: setAxisLeftRef,
120
+ dimension: height,
121
+ GridRenderer,
122
+ TickRenderer,
123
+ color: axisColor
69
124
  }
70
- }
71
- if (ref?.current && gridRef?.current) {
72
- (0, import_d3.select)(gridRef.current).call(grid);
73
- const axisNode = (0, import_d3.select)(ref.current);
74
- axisNode.call(axis);
75
- if (tickRotation)
76
- axisNode.selectAll("text").style("text-anchor", "end").attr("dx", "-.8em").attr("dy", ".15em").attr("transform", `rotate(-${tickRotation})`);
77
- }
78
- }, [
79
- innerHeight,
80
- innerWidth,
81
- overwriteTicks,
82
- showGrid,
83
- tickFormat,
84
- tickRotation,
85
- tickValues,
86
- ticks,
87
- type,
88
- yAxis,
89
- yScale
90
- ]);
91
- if (yAxis.hideAxis)
92
- return null;
93
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("g", { children: [
94
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", { mask: `url(#mask-${chartId})`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledGrid, { ref: gridRef }) }),
95
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", { ref: setAxisLeftRef, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styles.StyledAxis, { axisColor, ref, tickColor, className: "axis-left" }) })
96
- ] });
97
- };
125
+ );
126
+ }, [GridRenderer, TickRenderer, axisColor, height, innerHeight, setAxisLeftRef, yAxis.hideAxis, yScale]);
127
+ });
98
128
  //# sourceMappingURL=AxisLeft.js.map