@ammarkhalidfarooq/dashboard-package 0.6.61 → 0.6.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1637,7 +1637,6 @@ var buildReportData = function buildReportData() {
1637
1637
  var W = 794;
1638
1638
  var MIN_H = 1123;
1639
1639
  var MX = 32; // horizontal margin
1640
- var CW = W - MX * 2; // 730 px usable width
1641
1640
  var THEME = {
1642
1641
  pageBg: "#F8FAFC",
1643
1642
  panelBg: "#FFFFFF",
@@ -1725,6 +1724,29 @@ var TrendText = function TrendText(_ref2) {
1725
1724
  });
1726
1725
  };
1727
1726
 
1727
+ // ─── SVG path helpers ─────────────────────────────────────────────────────────
1728
+ var buildSmoothPath = function buildSmoothPath(points) {
1729
+ if (!points.length) return "";
1730
+ if (points.length === 1) return "M".concat(points[0][0].toFixed(1), ",").concat(points[0][1].toFixed(1));
1731
+ if (points.length === 2) {
1732
+ return "M".concat(points[0][0].toFixed(1), ",").concat(points[0][1].toFixed(1), " L").concat(points[1][0].toFixed(1), ",").concat(points[1][1].toFixed(1));
1733
+ }
1734
+ var d = "M".concat(points[0][0].toFixed(1), ",").concat(points[0][1].toFixed(1));
1735
+ for (var i = 0; i < points.length - 1; i++) {
1736
+ var _points, _points2;
1737
+ var p0 = (_points = points[i - 1]) !== null && _points !== void 0 ? _points : points[i];
1738
+ var p1 = points[i];
1739
+ var p2 = points[i + 1];
1740
+ var p3 = (_points2 = points[i + 2]) !== null && _points2 !== void 0 ? _points2 : p2;
1741
+ var cp1x = p1[0] + (p2[0] - p0[0]) / 6;
1742
+ var cp1y = p1[1] + (p2[1] - p0[1]) / 6;
1743
+ var cp2x = p2[0] - (p3[0] - p1[0]) / 6;
1744
+ var cp2y = p2[1] - (p3[1] - p1[1]) / 6;
1745
+ d += " C".concat(cp1x.toFixed(1), ",").concat(cp1y.toFixed(1), " ").concat(cp2x.toFixed(1), ",").concat(cp2y.toFixed(1), " ").concat(p2[0].toFixed(1), ",").concat(p2[1].toFixed(1));
1746
+ }
1747
+ return d;
1748
+ };
1749
+
1728
1750
  // ─── SVG line sparkline ───────────────────────────────────────────────────────
1729
1751
  var Sparkline = function Sparkline(_ref3) {
1730
1752
  var _ref3$data = _ref3.data,
@@ -1743,9 +1765,7 @@ var Sparkline = function Sparkline(_ref3) {
1743
1765
  var pts = vals.map(function (v, i) {
1744
1766
  return [pad + i / (vals.length - 1) * (width - pad * 2), pad + (height - pad * 2) - (v - min) / range * (height - pad * 2)];
1745
1767
  });
1746
- var d = pts.map(function (p, i) {
1747
- return "".concat(i === 0 ? "M" : "L").concat(p[0].toFixed(1), ",").concat(p[1].toFixed(1));
1748
- }).join(" ");
1768
+ var d = buildSmoothPath(pts);
1749
1769
  var area = "".concat(d, " L").concat((width - pad).toFixed(1), ",").concat(height, " L").concat(pad, ",").concat(height, " Z");
1750
1770
  var gradId = "sp-".concat(color.replace(/[^a-z0-9]/gi, ""));
1751
1771
  return /*#__PURE__*/jsxRuntime.jsxs("svg", {
@@ -1786,119 +1806,14 @@ var Sparkline = function Sparkline(_ref3) {
1786
1806
  });
1787
1807
  };
1788
1808
 
1789
- // ─── SVG multi-series line chart ──────────────────────────────────────────────
1790
- var LineChart = function LineChart(_ref4) {
1791
- var _ref4$series = _ref4.series,
1792
- series = _ref4$series === void 0 ? [] : _ref4$series,
1793
- _ref4$categories = _ref4.categories,
1794
- categories = _ref4$categories === void 0 ? [] : _ref4$categories,
1795
- _ref4$width = _ref4.width,
1796
- width = _ref4$width === void 0 ? CW : _ref4$width,
1797
- _ref4$height = _ref4.height,
1798
- height = _ref4$height === void 0 ? 180 : _ref4$height;
1799
- var allVals = series.flatMap(function (s) {
1800
- return s.data || [];
1801
- });
1802
- if (!allVals.length) {
1803
- return /*#__PURE__*/jsxRuntime.jsx("div", {
1804
- style: {
1805
- height: height,
1806
- background: THEME.tableAltBg,
1807
- borderRadius: 6
1808
- }
1809
- });
1810
- }
1811
- var COLORS = ["#6366F1", "#10B981", "#06B6D4"];
1812
- var seriesColor = function seriesColor(name) {
1813
- if (/email/i.test(name)) return COLORS[2];
1814
- if (/organic/i.test(name)) return COLORS[1];
1815
- return COLORS[0];
1816
- };
1817
- var PL = 46,
1818
- PR = 8,
1819
- PT = 8,
1820
- PB = 22;
1821
- var IW = width - PL - PR;
1822
- var IH = height - PT - PB;
1823
- var max = Math.max.apply(Math, _toConsumableArray(allVals).concat([0]));
1824
- var min = 0;
1825
- var range = max - min || 1;
1826
- var xp = function xp(i, n) {
1827
- return PL + i / Math.max(n - 1, 1) * IW;
1828
- };
1829
- var yp = function yp(v) {
1830
- return PT + IH - (v - min) / range * IH;
1831
- };
1832
- var yTicks = [0, 0.25, 0.5, 0.75, 1].map(function (t) {
1833
- return min + t * range;
1834
- });
1835
- var step = Math.max(1, Math.floor(categories.length / 6));
1836
- var shownCats = categories.filter(function (_, i) {
1837
- return i % step === 0 || i === categories.length - 1;
1838
- });
1839
- return /*#__PURE__*/jsxRuntime.jsxs("svg", {
1840
- width: width,
1841
- height: height,
1842
- style: {
1843
- display: "block"
1844
- },
1845
- children: [yTicks.map(function (v, i) {
1846
- var y = yp(v);
1847
- var label = v >= 10000 ? "$".concat((v / 1000).toFixed(0), "K") : v >= 1000 ? "$".concat((v / 1000).toFixed(1), "K") : "$".concat(v.toFixed(0));
1848
- return /*#__PURE__*/jsxRuntime.jsxs("g", {
1849
- children: [/*#__PURE__*/jsxRuntime.jsx("line", {
1850
- x1: PL,
1851
- y1: y,
1852
- x2: width - PR,
1853
- y2: y,
1854
- stroke: "#E5EAF1",
1855
- strokeWidth: 1
1856
- }), /*#__PURE__*/jsxRuntime.jsx("text", {
1857
- x: PL - 4,
1858
- y: y + 3.5,
1859
- textAnchor: "end",
1860
- fontSize: 9,
1861
- fill: THEME.muted,
1862
- children: label
1863
- })]
1864
- }, i);
1865
- }), series.map(function (s, si) {
1866
- var data = s.data || [];
1867
- if (!data.length) return null;
1868
- var pathD = data.map(function (v, i) {
1869
- return "".concat(i === 0 ? "M" : "L").concat(xp(i, data.length).toFixed(1), ",").concat(yp(v).toFixed(1));
1870
- }).join(" ");
1871
- return /*#__PURE__*/jsxRuntime.jsx("path", {
1872
- d: pathD,
1873
- fill: "none",
1874
- stroke: seriesColor(s.name),
1875
- strokeWidth: 2,
1876
- strokeLinecap: "round",
1877
- strokeLinejoin: "round"
1878
- }, si);
1879
- }), shownCats.map(function (label, i) {
1880
- var origIdx = categories.indexOf(label);
1881
- var x = xp(origIdx < 0 ? i * step : origIdx, categories.length);
1882
- return /*#__PURE__*/jsxRuntime.jsx("text", {
1883
- x: x,
1884
- y: height - 5,
1885
- textAnchor: "middle",
1886
- fontSize: 9,
1887
- fill: THEME.muted,
1888
- children: label
1889
- }, i);
1890
- })]
1891
- });
1892
- };
1893
-
1894
1809
  // ─── SVG donut ────────────────────────────────────────────────────────────────
1895
- var Donut = function Donut(_ref5) {
1896
- var _ref5$segments = _ref5.segments,
1897
- segments = _ref5$segments === void 0 ? [] : _ref5$segments,
1898
- _ref5$size = _ref5.size,
1899
- size = _ref5$size === void 0 ? 88 : _ref5$size,
1900
- centerVal = _ref5.centerVal,
1901
- centerLabel = _ref5.centerLabel;
1810
+ var Donut = function Donut(_ref4) {
1811
+ var _ref4$segments = _ref4.segments,
1812
+ segments = _ref4$segments === void 0 ? [] : _ref4$segments,
1813
+ _ref4$size = _ref4.size,
1814
+ size = _ref4$size === void 0 ? 88 : _ref4$size,
1815
+ centerVal = _ref4.centerVal,
1816
+ centerLabel = _ref4.centerLabel;
1902
1817
  var total = segments.reduce(function (s, g) {
1903
1818
  return s + (g.value || 0);
1904
1819
  }, 0) || 1;
@@ -1956,11 +1871,11 @@ var Donut = function Donut(_ref5) {
1956
1871
  };
1957
1872
 
1958
1873
  // ─── Shared primitives ────────────────────────────────────────────────────────
1959
- var Divider = function Divider(_ref6) {
1960
- var _ref6$mt = _ref6.mt,
1961
- mt = _ref6$mt === void 0 ? 0 : _ref6$mt,
1962
- _ref6$mb = _ref6.mb,
1963
- mb = _ref6$mb === void 0 ? 0 : _ref6$mb;
1874
+ var Divider = function Divider(_ref5) {
1875
+ var _ref5$mt = _ref5.mt,
1876
+ mt = _ref5$mt === void 0 ? 0 : _ref5$mt,
1877
+ _ref5$mb = _ref5.mb,
1878
+ mb = _ref5$mb === void 0 ? 0 : _ref5$mb;
1964
1879
  return /*#__PURE__*/jsxRuntime.jsx("div", {
1965
1880
  style: {
1966
1881
  borderTop: "1px solid #E5EAF1",
@@ -1969,13 +1884,13 @@ var Divider = function Divider(_ref6) {
1969
1884
  }
1970
1885
  });
1971
1886
  };
1972
- var Panel = function Panel(_ref7) {
1973
- var children = _ref7.children,
1974
- title = _ref7.title,
1975
- subtitle = _ref7.subtitle,
1976
- action = _ref7.action,
1977
- _ref7$style = _ref7.style,
1978
- style = _ref7$style === void 0 ? {} : _ref7$style;
1887
+ var Panel = function Panel(_ref6) {
1888
+ var children = _ref6.children,
1889
+ title = _ref6.title,
1890
+ subtitle = _ref6.subtitle,
1891
+ action = _ref6.action,
1892
+ _ref6$style = _ref6.style,
1893
+ style = _ref6$style === void 0 ? {} : _ref6$style;
1979
1894
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
1980
1895
  style: _objectSpread2({
1981
1896
  border: "1px solid ".concat(THEME.panelBorder),
@@ -2024,13 +1939,13 @@ var Panel = function Panel(_ref7) {
2024
1939
  }), children]
2025
1940
  });
2026
1941
  };
2027
- var MiniTable = function MiniTable(_ref8) {
2028
- var _ref8$head = _ref8.head,
2029
- head = _ref8$head === void 0 ? [] : _ref8$head,
2030
- _ref8$rows = _ref8.rows,
2031
- rows = _ref8$rows === void 0 ? [] : _ref8$rows,
2032
- _ref8$colAlign = _ref8.colAlign,
2033
- colAlign = _ref8$colAlign === void 0 ? [] : _ref8$colAlign;
1942
+ var MiniTable = function MiniTable(_ref7) {
1943
+ var _ref7$head = _ref7.head,
1944
+ head = _ref7$head === void 0 ? [] : _ref7$head,
1945
+ _ref7$rows = _ref7.rows,
1946
+ rows = _ref7$rows === void 0 ? [] : _ref7$rows,
1947
+ _ref7$colAlign = _ref7.colAlign,
1948
+ colAlign = _ref7$colAlign === void 0 ? [] : _ref7$colAlign;
2034
1949
  return /*#__PURE__*/jsxRuntime.jsxs("table", {
2035
1950
  style: {
2036
1951
  width: "100%",
@@ -2082,12 +1997,12 @@ var MiniTable = function MiniTable(_ref8) {
2082
1997
  })]
2083
1998
  });
2084
1999
  };
2085
- var ProgressBar = function ProgressBar(_ref9) {
2086
- var value = _ref9.value,
2087
- _ref9$color = _ref9.color,
2088
- color = _ref9$color === void 0 ? "rgb(99, 99, 230)" : _ref9$color,
2089
- _ref9$height = _ref9.height,
2090
- height = _ref9$height === void 0 ? 6 : _ref9$height;
2000
+ var ProgressBar = function ProgressBar(_ref8) {
2001
+ var value = _ref8.value,
2002
+ _ref8$color = _ref8.color,
2003
+ color = _ref8$color === void 0 ? "rgb(99, 99, 230)" : _ref8$color,
2004
+ _ref8$height = _ref8.height,
2005
+ height = _ref8$height === void 0 ? 6 : _ref8$height;
2091
2006
  var pct = Math.max(0, Number(value !== null && value !== void 0 ? value : 0));
2092
2007
  var barWidth = Math.min(100, pct);
2093
2008
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -2130,15 +2045,15 @@ var ProgressBar = function ProgressBar(_ref9) {
2130
2045
  })]
2131
2046
  });
2132
2047
  };
2133
- var KpiCard = function KpiCard(_ref0) {
2134
- var title = _ref0.title,
2135
- value = _ref0.value,
2136
- trend = _ref0.trend,
2137
- detail = _ref0.detail,
2138
- _ref0$variant = _ref0.variant,
2139
- variant = _ref0$variant === void 0 ? "secondary" : _ref0$variant,
2140
- _ref0$trendPositiveWh = _ref0.trendPositiveWhenNegative,
2141
- trendPositiveWhenNegative = _ref0$trendPositiveWh === void 0 ? false : _ref0$trendPositiveWh;
2048
+ var KpiCard = function KpiCard(_ref9) {
2049
+ var title = _ref9.title,
2050
+ value = _ref9.value,
2051
+ trend = _ref9.trend,
2052
+ detail = _ref9.detail,
2053
+ _ref9$variant = _ref9.variant,
2054
+ variant = _ref9$variant === void 0 ? "secondary" : _ref9$variant,
2055
+ _ref9$trendPositiveWh = _ref9.trendPositiveWhenNegative,
2056
+ trendPositiveWhenNegative = _ref9$trendPositiveWh === void 0 ? false : _ref9$trendPositiveWh;
2142
2057
  var displayTrend = withTrendArrow(trend);
2143
2058
  var isPrimary = variant === "primary";
2144
2059
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -2189,10 +2104,10 @@ var KpiCard = function KpiCard(_ref0) {
2189
2104
  })]
2190
2105
  });
2191
2106
  };
2192
- var StatPair = function StatPair(_ref1) {
2193
- var label = _ref1.label,
2194
- val = _ref1.val,
2195
- trend = _ref1.trend;
2107
+ var StatPair = function StatPair(_ref0) {
2108
+ var label = _ref0.label,
2109
+ val = _ref0.val,
2110
+ trend = _ref0.trend;
2196
2111
  var displayTrend = withTrendArrow(trend);
2197
2112
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
2198
2113
  style: {
@@ -2229,12 +2144,12 @@ var StatPair = function StatPair(_ref1) {
2229
2144
  })]
2230
2145
  });
2231
2146
  };
2232
- var PageHeader = function PageHeader(_ref10) {
2233
- var dateLabel = _ref10.dateLabel,
2234
- generatedLabel = _ref10.generatedLabel,
2235
- activeFilters = _ref10.activeFilters,
2236
- page = _ref10.page,
2237
- windowLabel = _ref10.windowLabel;
2147
+ var PageHeader = function PageHeader(_ref1) {
2148
+ var dateLabel = _ref1.dateLabel,
2149
+ generatedLabel = _ref1.generatedLabel,
2150
+ activeFilters = _ref1.activeFilters,
2151
+ page = _ref1.page,
2152
+ windowLabel = _ref1.windowLabel;
2238
2153
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
2239
2154
  style: {
2240
2155
  padding: "22px ".concat(MX, "px 12px"),
@@ -2340,9 +2255,9 @@ var PageHeader = function PageHeader(_ref10) {
2340
2255
  })]
2341
2256
  });
2342
2257
  };
2343
- var PageFooter = function PageFooter(_ref11) {
2344
- var generatedLabel = _ref11.generatedLabel,
2345
- page = _ref11.page;
2258
+ var PageFooter = function PageFooter(_ref10) {
2259
+ var generatedLabel = _ref10.generatedLabel,
2260
+ page = _ref10.page;
2346
2261
  return /*#__PURE__*/jsxRuntime.jsx("div", {
2347
2262
  style: {
2348
2263
  padding: "7px ".concat(MX, "px"),
@@ -2362,16 +2277,16 @@ var PageFooter = function PageFooter(_ref11) {
2362
2277
  };
2363
2278
 
2364
2279
  // ─── Main component ───────────────────────────────────────────────────────────
2365
- var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2366
- var _apiData$overviewStat, _overview$totalRevenu, _overview$netRevenue, _overview$overallAVGD, _overview$conversionR, _apiData$totalVisits, _refundsRaw$refundRat, _refundsRaw$chargebac, _apiData$trafficSourc2, _metricByTitle$NetRa, _metricByTitle$Total, _metricByTitle$Total2, _metricByTitle$Total3, _metricByTitle$AvgDo, _metricByTitle$AvgDo2, _apiData$medianGift, _apiData$topDecileGif, _apiData$roasCard, _metricByTitle$ROAS, _apiData$roasCardPrev, _metricByTitle$ROAS2, _apiData$adSpend, _apiData$attributedRe, _metricByTitle$Conver, _metricByTitle$Conver2, _metricByTitle$Refund, _metricByTitle$Refund2, _refundsRaw$refundCou, _metricByTitle$Refund3, _ref15, _refundsRaw$refundRat2, _ob$growthPercentage, _ob$peakDay, _refCard$growthPercen;
2367
- var _ref12$apiData = _ref12.apiData,
2368
- apiData = _ref12$apiData === void 0 ? {} : _ref12$apiData,
2369
- _ref12$dateName = _ref12.dateName,
2370
- dateName = _ref12$dateName === void 0 ? "Last Period" : _ref12$dateName,
2371
- _ref12$numberOfDays = _ref12.numberOfDays,
2372
- numberOfDays = _ref12$numberOfDays === void 0 ? 30 : _ref12$numberOfDays,
2373
- _ref12$activeFilters = _ref12.activeFilters,
2374
- activeFilters = _ref12$activeFilters === void 0 ? [] : _ref12$activeFilters;
2280
+ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref11, ref) {
2281
+ var _apiData$overviewStat, _overview$totalRevenu, _overview$netRevenue, _overview$overallAVGD, _overview$conversionR, _apiData$totalVisits, _refundsRaw$refundRat, _refundsRaw$chargebac, _apiData$trafficSourc2, _metricByTitle$NetRa, _metricByTitle$Total, _metricByTitle$Total2, _metricByTitle$Total3, _metricByTitle$AvgDo, _metricByTitle$AvgDo2, _apiData$medianGift, _apiData$topDecileGif, _apiData$roasCard, _metricByTitle$ROAS, _apiData$roasCardPrev, _metricByTitle$ROAS2, _apiData$adSpend, _apiData$attributedRe, _metricByTitle$Conver, _metricByTitle$Conver2, _metricByTitle$Refund, _metricByTitle$Refund2, _refundsRaw$refundCou, _metricByTitle$Refund3, _mainChart$stacked, _ref14, _refundsRaw$refundRat2, _ob$growthPercentage, _ob$peakDay, _refCard$growthPercen;
2282
+ var _ref11$apiData = _ref11.apiData,
2283
+ apiData = _ref11$apiData === void 0 ? {} : _ref11$apiData,
2284
+ _ref11$dateName = _ref11.dateName,
2285
+ dateName = _ref11$dateName === void 0 ? "Last Period" : _ref11$dateName,
2286
+ _ref11$numberOfDays = _ref11.numberOfDays,
2287
+ numberOfDays = _ref11$numberOfDays === void 0 ? 30 : _ref11$numberOfDays,
2288
+ _ref11$activeFilters = _ref11.activeFilters,
2289
+ activeFilters = _ref11$activeFilters === void 0 ? [] : _ref11$activeFilters;
2375
2290
  var now = new Date();
2376
2291
  var daysLabel = "".concat(numberOfDays, " day").concat(numberOfDays === 1 ? "" : "s");
2377
2292
  var windowLabel = "".concat(numberOfDays, "-day window");
@@ -2683,10 +2598,10 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2683
2598
  gap: 14,
2684
2599
  marginBottom: 6
2685
2600
  },
2686
- children: [["Email", C.cyan], ["Organic", C.emerald], ["Paid Ads", C.indigo]].map(function (_ref13) {
2687
- var _ref14 = _slicedToArray(_ref13, 2),
2688
- name = _ref14[0],
2689
- color = _ref14[1];
2601
+ children: [["Email", C.cyan], ["Organic", C.emerald], ["Paid Ads", C.indigo]].map(function (_ref12) {
2602
+ var _ref13 = _slicedToArray(_ref12, 2),
2603
+ name = _ref13[0],
2604
+ color = _ref13[1];
2690
2605
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
2691
2606
  style: {
2692
2607
  display: "flex",
@@ -2709,11 +2624,22 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2709
2624
  })]
2710
2625
  }, name);
2711
2626
  })
2712
- }), /*#__PURE__*/jsxRuntime.jsx(LineChart, {
2713
- series: revSeries,
2714
- categories: revCats,
2715
- width: CW - 28,
2716
- height: 300
2627
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
2628
+ style: {
2629
+ width: "100%",
2630
+ minHeight: 300
2631
+ },
2632
+ children: /*#__PURE__*/jsxRuntime.jsx(RevenueChart, {
2633
+ id: "pdf-total-revenue-trend",
2634
+ metric: "Revenue",
2635
+ series: revSeries,
2636
+ categories: revCats,
2637
+ height: 300,
2638
+ stacked: (_mainChart$stacked = mainChart.stacked) !== null && _mainChart$stacked !== void 0 ? _mainChart$stacked : true,
2639
+ type: "area",
2640
+ colors: mainChart.colors || ["#6366F1", "#10B981", "#06B6D4"],
2641
+ showLegend: false
2642
+ })
2717
2643
  })]
2718
2644
  })]
2719
2645
  }), /*#__PURE__*/jsxRuntime.jsx(PageFooter, {
@@ -2851,7 +2777,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2851
2777
  style: {
2852
2778
  fontSize: 9
2853
2779
  },
2854
- children: "".concat(Number((_ref15 = donorMixPrev !== null && donorMixPrev !== void 0 ? donorMixPrev : growth === null || growth === void 0 ? void 0 : growth.overallAVGDonations) !== null && _ref15 !== void 0 ? _ref15 : 0).toFixed(2), "% vs pp")
2780
+ children: "".concat(Number((_ref14 = donorMixPrev !== null && donorMixPrev !== void 0 ? donorMixPrev : growth === null || growth === void 0 ? void 0 : growth.overallAVGDonations) !== null && _ref14 !== void 0 ? _ref14 : 0).toFixed(2), "% vs pp")
2855
2781
  })
2856
2782
  })]
2857
2783
  })]
@@ -3107,10 +3033,10 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
3107
3033
  display: "flex",
3108
3034
  gap: 12
3109
3035
  },
3110
- children: [["Avg/day", d$((ob === null || ob === void 0 ? void 0 : ob.averagePerDay) || 0)], ["Peak day", d$((ob === null || ob === void 0 || (_ob$peakDay = ob.peakDay) === null || _ob$peakDay === void 0 ? void 0 : _ob$peakDay.amount) || 0)], ["Orders", formatNumber((ob === null || ob === void 0 ? void 0 : ob.totalOrders) || 0)]].map(function (_ref16) {
3111
- var _ref17 = _slicedToArray(_ref16, 2),
3112
- l = _ref17[0],
3113
- v = _ref17[1];
3036
+ children: [["Avg/day", d$((ob === null || ob === void 0 ? void 0 : ob.averagePerDay) || 0)], ["Peak day", d$((ob === null || ob === void 0 || (_ob$peakDay = ob.peakDay) === null || _ob$peakDay === void 0 ? void 0 : _ob$peakDay.amount) || 0)], ["Orders", formatNumber((ob === null || ob === void 0 ? void 0 : ob.totalOrders) || 0)]].map(function (_ref15) {
3037
+ var _ref16 = _slicedToArray(_ref15, 2),
3038
+ l = _ref16[0],
3039
+ v = _ref16[1];
3114
3040
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
3115
3041
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
3116
3042
  style: {
@@ -3237,10 +3163,10 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
3237
3163
  display: "flex",
3238
3164
  gap: 12
3239
3165
  },
3240
- children: [["Referrers", formatNumber((refCard === null || refCard === void 0 ? void 0 : refCard.totalReferrers) || 0)], ["Avg gift", d$((refCard === null || refCard === void 0 ? void 0 : refCard.averageGift) || 0)], ["Conv. rate", pct((refCard === null || refCard === void 0 ? void 0 : refCard.conversionRate) || 0, 1)]].map(function (_ref18) {
3241
- var _ref19 = _slicedToArray(_ref18, 2),
3242
- l = _ref19[0],
3243
- v = _ref19[1];
3166
+ children: [["Referrers", formatNumber((refCard === null || refCard === void 0 ? void 0 : refCard.totalReferrers) || 0)], ["Avg gift", d$((refCard === null || refCard === void 0 ? void 0 : refCard.averageGift) || 0)], ["Conv. rate", pct((refCard === null || refCard === void 0 ? void 0 : refCard.conversionRate) || 0, 1)]].map(function (_ref17) {
3167
+ var _ref18 = _slicedToArray(_ref17, 2),
3168
+ l = _ref18[0],
3169
+ v = _ref18[1];
3244
3170
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
3245
3171
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
3246
3172
  style: {
@@ -3426,7 +3352,7 @@ var NewOverview = function NewOverview(_ref) {
3426
3352
  if (!showExportLayout) return;
3427
3353
  var doPdfExport = /*#__PURE__*/function () {
3428
3354
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
3429
- var container, safeDate, _t;
3355
+ var container, waitForCharts, safeDate, _t;
3430
3356
  return _regenerator().w(function (_context) {
3431
3357
  while (1) switch (_context.p = _context.n) {
3432
3358
  case 0:
@@ -3438,37 +3364,55 @@ var NewOverview = function NewOverview(_ref) {
3438
3364
  });
3439
3365
  });
3440
3366
  case 1:
3441
- _context.n = 2;
3442
- return new Promise(function (r) {
3443
- return setTimeout(r, 400);
3444
- });
3445
- case 2:
3446
3367
  container = exportLayoutRef.current;
3447
3368
  if (container) {
3448
- _context.n = 3;
3369
+ _context.n = 2;
3449
3370
  break;
3450
3371
  }
3451
3372
  return _context.a(2);
3373
+ case 2:
3374
+ waitForCharts = function waitForCharts(root) {
3375
+ var timeoutMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4000;
3376
+ return new Promise(function (resolve) {
3377
+ var started = Date.now();
3378
+ var _check = function check() {
3379
+ var chartSvg = root.querySelector(".apexcharts-svg");
3380
+ if (chartSvg || Date.now() - started >= timeoutMs) {
3381
+ resolve();
3382
+ return;
3383
+ }
3384
+ requestAnimationFrame(_check);
3385
+ };
3386
+ _check();
3387
+ });
3388
+ };
3389
+ _context.n = 3;
3390
+ return waitForCharts(container);
3452
3391
  case 3:
3453
- safeDate = new Date().toISOString().slice(0, 10);
3454
3392
  _context.n = 4;
3455
- return exportReportPdf(container, "DashboardOverview_report_".concat(safeDate, ".pdf"));
3393
+ return new Promise(function (r) {
3394
+ return setTimeout(r, 300);
3395
+ });
3456
3396
  case 4:
3457
- _context.n = 6;
3458
- break;
3397
+ safeDate = new Date().toISOString().slice(0, 10);
3398
+ _context.n = 5;
3399
+ return exportReportPdf(container, "DashboardOverview_report_".concat(safeDate, ".pdf"));
3459
3400
  case 5:
3460
- _context.p = 5;
3461
- _t = _context.v;
3462
- console.error("Failed to export overall dashboard PDF:", _t);
3401
+ _context.n = 7;
3402
+ break;
3463
3403
  case 6:
3464
3404
  _context.p = 6;
3405
+ _t = _context.v;
3406
+ console.error("Failed to export overall dashboard PDF:", _t);
3407
+ case 7:
3408
+ _context.p = 7;
3465
3409
  setShowExportLayout(false);
3466
3410
  setExportLoading === null || setExportLoading === void 0 || setExportLoading(false);
3467
- return _context.f(6);
3468
- case 7:
3411
+ return _context.f(7);
3412
+ case 8:
3469
3413
  return _context.a(2);
3470
3414
  }
3471
- }, _callee, null, [[0, 5, 6, 7]]);
3415
+ }, _callee, null, [[0, 6, 7, 8]]);
3472
3416
  }));
3473
3417
  return function doPdfExport() {
3474
3418
  return _ref2.apply(this, arguments);