@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.es.js CHANGED
@@ -1635,7 +1635,6 @@ var buildReportData = function buildReportData() {
1635
1635
  var W = 794;
1636
1636
  var MIN_H = 1123;
1637
1637
  var MX = 32; // horizontal margin
1638
- var CW = W - MX * 2; // 730 px usable width
1639
1638
  var THEME = {
1640
1639
  pageBg: "#F8FAFC",
1641
1640
  panelBg: "#FFFFFF",
@@ -1723,6 +1722,29 @@ var TrendText = function TrendText(_ref2) {
1723
1722
  });
1724
1723
  };
1725
1724
 
1725
+ // ─── SVG path helpers ─────────────────────────────────────────────────────────
1726
+ var buildSmoothPath = function buildSmoothPath(points) {
1727
+ if (!points.length) return "";
1728
+ if (points.length === 1) return "M".concat(points[0][0].toFixed(1), ",").concat(points[0][1].toFixed(1));
1729
+ if (points.length === 2) {
1730
+ 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));
1731
+ }
1732
+ var d = "M".concat(points[0][0].toFixed(1), ",").concat(points[0][1].toFixed(1));
1733
+ for (var i = 0; i < points.length - 1; i++) {
1734
+ var _points, _points2;
1735
+ var p0 = (_points = points[i - 1]) !== null && _points !== void 0 ? _points : points[i];
1736
+ var p1 = points[i];
1737
+ var p2 = points[i + 1];
1738
+ var p3 = (_points2 = points[i + 2]) !== null && _points2 !== void 0 ? _points2 : p2;
1739
+ var cp1x = p1[0] + (p2[0] - p0[0]) / 6;
1740
+ var cp1y = p1[1] + (p2[1] - p0[1]) / 6;
1741
+ var cp2x = p2[0] - (p3[0] - p1[0]) / 6;
1742
+ var cp2y = p2[1] - (p3[1] - p1[1]) / 6;
1743
+ 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));
1744
+ }
1745
+ return d;
1746
+ };
1747
+
1726
1748
  // ─── SVG line sparkline ───────────────────────────────────────────────────────
1727
1749
  var Sparkline = function Sparkline(_ref3) {
1728
1750
  var _ref3$data = _ref3.data,
@@ -1741,9 +1763,7 @@ var Sparkline = function Sparkline(_ref3) {
1741
1763
  var pts = vals.map(function (v, i) {
1742
1764
  return [pad + i / (vals.length - 1) * (width - pad * 2), pad + (height - pad * 2) - (v - min) / range * (height - pad * 2)];
1743
1765
  });
1744
- var d = pts.map(function (p, i) {
1745
- return "".concat(i === 0 ? "M" : "L").concat(p[0].toFixed(1), ",").concat(p[1].toFixed(1));
1746
- }).join(" ");
1766
+ var d = buildSmoothPath(pts);
1747
1767
  var area = "".concat(d, " L").concat((width - pad).toFixed(1), ",").concat(height, " L").concat(pad, ",").concat(height, " Z");
1748
1768
  var gradId = "sp-".concat(color.replace(/[^a-z0-9]/gi, ""));
1749
1769
  return /*#__PURE__*/jsxs("svg", {
@@ -1784,119 +1804,14 @@ var Sparkline = function Sparkline(_ref3) {
1784
1804
  });
1785
1805
  };
1786
1806
 
1787
- // ─── SVG multi-series line chart ──────────────────────────────────────────────
1788
- var LineChart = function LineChart(_ref4) {
1789
- var _ref4$series = _ref4.series,
1790
- series = _ref4$series === void 0 ? [] : _ref4$series,
1791
- _ref4$categories = _ref4.categories,
1792
- categories = _ref4$categories === void 0 ? [] : _ref4$categories,
1793
- _ref4$width = _ref4.width,
1794
- width = _ref4$width === void 0 ? CW : _ref4$width,
1795
- _ref4$height = _ref4.height,
1796
- height = _ref4$height === void 0 ? 180 : _ref4$height;
1797
- var allVals = series.flatMap(function (s) {
1798
- return s.data || [];
1799
- });
1800
- if (!allVals.length) {
1801
- return /*#__PURE__*/jsx("div", {
1802
- style: {
1803
- height: height,
1804
- background: THEME.tableAltBg,
1805
- borderRadius: 6
1806
- }
1807
- });
1808
- }
1809
- var COLORS = ["#6366F1", "#10B981", "#06B6D4"];
1810
- var seriesColor = function seriesColor(name) {
1811
- if (/email/i.test(name)) return COLORS[2];
1812
- if (/organic/i.test(name)) return COLORS[1];
1813
- return COLORS[0];
1814
- };
1815
- var PL = 46,
1816
- PR = 8,
1817
- PT = 8,
1818
- PB = 22;
1819
- var IW = width - PL - PR;
1820
- var IH = height - PT - PB;
1821
- var max = Math.max.apply(Math, _toConsumableArray(allVals).concat([0]));
1822
- var min = 0;
1823
- var range = max - min || 1;
1824
- var xp = function xp(i, n) {
1825
- return PL + i / Math.max(n - 1, 1) * IW;
1826
- };
1827
- var yp = function yp(v) {
1828
- return PT + IH - (v - min) / range * IH;
1829
- };
1830
- var yTicks = [0, 0.25, 0.5, 0.75, 1].map(function (t) {
1831
- return min + t * range;
1832
- });
1833
- var step = Math.max(1, Math.floor(categories.length / 6));
1834
- var shownCats = categories.filter(function (_, i) {
1835
- return i % step === 0 || i === categories.length - 1;
1836
- });
1837
- return /*#__PURE__*/jsxs("svg", {
1838
- width: width,
1839
- height: height,
1840
- style: {
1841
- display: "block"
1842
- },
1843
- children: [yTicks.map(function (v, i) {
1844
- var y = yp(v);
1845
- var label = v >= 10000 ? "$".concat((v / 1000).toFixed(0), "K") : v >= 1000 ? "$".concat((v / 1000).toFixed(1), "K") : "$".concat(v.toFixed(0));
1846
- return /*#__PURE__*/jsxs("g", {
1847
- children: [/*#__PURE__*/jsx("line", {
1848
- x1: PL,
1849
- y1: y,
1850
- x2: width - PR,
1851
- y2: y,
1852
- stroke: "#E5EAF1",
1853
- strokeWidth: 1
1854
- }), /*#__PURE__*/jsx("text", {
1855
- x: PL - 4,
1856
- y: y + 3.5,
1857
- textAnchor: "end",
1858
- fontSize: 9,
1859
- fill: THEME.muted,
1860
- children: label
1861
- })]
1862
- }, i);
1863
- }), series.map(function (s, si) {
1864
- var data = s.data || [];
1865
- if (!data.length) return null;
1866
- var pathD = data.map(function (v, i) {
1867
- return "".concat(i === 0 ? "M" : "L").concat(xp(i, data.length).toFixed(1), ",").concat(yp(v).toFixed(1));
1868
- }).join(" ");
1869
- return /*#__PURE__*/jsx("path", {
1870
- d: pathD,
1871
- fill: "none",
1872
- stroke: seriesColor(s.name),
1873
- strokeWidth: 2,
1874
- strokeLinecap: "round",
1875
- strokeLinejoin: "round"
1876
- }, si);
1877
- }), shownCats.map(function (label, i) {
1878
- var origIdx = categories.indexOf(label);
1879
- var x = xp(origIdx < 0 ? i * step : origIdx, categories.length);
1880
- return /*#__PURE__*/jsx("text", {
1881
- x: x,
1882
- y: height - 5,
1883
- textAnchor: "middle",
1884
- fontSize: 9,
1885
- fill: THEME.muted,
1886
- children: label
1887
- }, i);
1888
- })]
1889
- });
1890
- };
1891
-
1892
1807
  // ─── SVG donut ────────────────────────────────────────────────────────────────
1893
- var Donut = function Donut(_ref5) {
1894
- var _ref5$segments = _ref5.segments,
1895
- segments = _ref5$segments === void 0 ? [] : _ref5$segments,
1896
- _ref5$size = _ref5.size,
1897
- size = _ref5$size === void 0 ? 88 : _ref5$size,
1898
- centerVal = _ref5.centerVal,
1899
- centerLabel = _ref5.centerLabel;
1808
+ var Donut = function Donut(_ref4) {
1809
+ var _ref4$segments = _ref4.segments,
1810
+ segments = _ref4$segments === void 0 ? [] : _ref4$segments,
1811
+ _ref4$size = _ref4.size,
1812
+ size = _ref4$size === void 0 ? 88 : _ref4$size,
1813
+ centerVal = _ref4.centerVal,
1814
+ centerLabel = _ref4.centerLabel;
1900
1815
  var total = segments.reduce(function (s, g) {
1901
1816
  return s + (g.value || 0);
1902
1817
  }, 0) || 1;
@@ -1954,11 +1869,11 @@ var Donut = function Donut(_ref5) {
1954
1869
  };
1955
1870
 
1956
1871
  // ─── Shared primitives ────────────────────────────────────────────────────────
1957
- var Divider = function Divider(_ref6) {
1958
- var _ref6$mt = _ref6.mt,
1959
- mt = _ref6$mt === void 0 ? 0 : _ref6$mt,
1960
- _ref6$mb = _ref6.mb,
1961
- mb = _ref6$mb === void 0 ? 0 : _ref6$mb;
1872
+ var Divider = function Divider(_ref5) {
1873
+ var _ref5$mt = _ref5.mt,
1874
+ mt = _ref5$mt === void 0 ? 0 : _ref5$mt,
1875
+ _ref5$mb = _ref5.mb,
1876
+ mb = _ref5$mb === void 0 ? 0 : _ref5$mb;
1962
1877
  return /*#__PURE__*/jsx("div", {
1963
1878
  style: {
1964
1879
  borderTop: "1px solid #E5EAF1",
@@ -1967,13 +1882,13 @@ var Divider = function Divider(_ref6) {
1967
1882
  }
1968
1883
  });
1969
1884
  };
1970
- var Panel = function Panel(_ref7) {
1971
- var children = _ref7.children,
1972
- title = _ref7.title,
1973
- subtitle = _ref7.subtitle,
1974
- action = _ref7.action,
1975
- _ref7$style = _ref7.style,
1976
- style = _ref7$style === void 0 ? {} : _ref7$style;
1885
+ var Panel = function Panel(_ref6) {
1886
+ var children = _ref6.children,
1887
+ title = _ref6.title,
1888
+ subtitle = _ref6.subtitle,
1889
+ action = _ref6.action,
1890
+ _ref6$style = _ref6.style,
1891
+ style = _ref6$style === void 0 ? {} : _ref6$style;
1977
1892
  return /*#__PURE__*/jsxs("div", {
1978
1893
  style: _objectSpread2({
1979
1894
  border: "1px solid ".concat(THEME.panelBorder),
@@ -2022,13 +1937,13 @@ var Panel = function Panel(_ref7) {
2022
1937
  }), children]
2023
1938
  });
2024
1939
  };
2025
- var MiniTable = function MiniTable(_ref8) {
2026
- var _ref8$head = _ref8.head,
2027
- head = _ref8$head === void 0 ? [] : _ref8$head,
2028
- _ref8$rows = _ref8.rows,
2029
- rows = _ref8$rows === void 0 ? [] : _ref8$rows,
2030
- _ref8$colAlign = _ref8.colAlign,
2031
- colAlign = _ref8$colAlign === void 0 ? [] : _ref8$colAlign;
1940
+ var MiniTable = function MiniTable(_ref7) {
1941
+ var _ref7$head = _ref7.head,
1942
+ head = _ref7$head === void 0 ? [] : _ref7$head,
1943
+ _ref7$rows = _ref7.rows,
1944
+ rows = _ref7$rows === void 0 ? [] : _ref7$rows,
1945
+ _ref7$colAlign = _ref7.colAlign,
1946
+ colAlign = _ref7$colAlign === void 0 ? [] : _ref7$colAlign;
2032
1947
  return /*#__PURE__*/jsxs("table", {
2033
1948
  style: {
2034
1949
  width: "100%",
@@ -2080,12 +1995,12 @@ var MiniTable = function MiniTable(_ref8) {
2080
1995
  })]
2081
1996
  });
2082
1997
  };
2083
- var ProgressBar = function ProgressBar(_ref9) {
2084
- var value = _ref9.value,
2085
- _ref9$color = _ref9.color,
2086
- color = _ref9$color === void 0 ? "rgb(99, 99, 230)" : _ref9$color,
2087
- _ref9$height = _ref9.height,
2088
- height = _ref9$height === void 0 ? 6 : _ref9$height;
1998
+ var ProgressBar = function ProgressBar(_ref8) {
1999
+ var value = _ref8.value,
2000
+ _ref8$color = _ref8.color,
2001
+ color = _ref8$color === void 0 ? "rgb(99, 99, 230)" : _ref8$color,
2002
+ _ref8$height = _ref8.height,
2003
+ height = _ref8$height === void 0 ? 6 : _ref8$height;
2089
2004
  var pct = Math.max(0, Number(value !== null && value !== void 0 ? value : 0));
2090
2005
  var barWidth = Math.min(100, pct);
2091
2006
  return /*#__PURE__*/jsxs("div", {
@@ -2128,15 +2043,15 @@ var ProgressBar = function ProgressBar(_ref9) {
2128
2043
  })]
2129
2044
  });
2130
2045
  };
2131
- var KpiCard = function KpiCard(_ref0) {
2132
- var title = _ref0.title,
2133
- value = _ref0.value,
2134
- trend = _ref0.trend,
2135
- detail = _ref0.detail,
2136
- _ref0$variant = _ref0.variant,
2137
- variant = _ref0$variant === void 0 ? "secondary" : _ref0$variant,
2138
- _ref0$trendPositiveWh = _ref0.trendPositiveWhenNegative,
2139
- trendPositiveWhenNegative = _ref0$trendPositiveWh === void 0 ? false : _ref0$trendPositiveWh;
2046
+ var KpiCard = function KpiCard(_ref9) {
2047
+ var title = _ref9.title,
2048
+ value = _ref9.value,
2049
+ trend = _ref9.trend,
2050
+ detail = _ref9.detail,
2051
+ _ref9$variant = _ref9.variant,
2052
+ variant = _ref9$variant === void 0 ? "secondary" : _ref9$variant,
2053
+ _ref9$trendPositiveWh = _ref9.trendPositiveWhenNegative,
2054
+ trendPositiveWhenNegative = _ref9$trendPositiveWh === void 0 ? false : _ref9$trendPositiveWh;
2140
2055
  var displayTrend = withTrendArrow(trend);
2141
2056
  var isPrimary = variant === "primary";
2142
2057
  return /*#__PURE__*/jsxs("div", {
@@ -2187,10 +2102,10 @@ var KpiCard = function KpiCard(_ref0) {
2187
2102
  })]
2188
2103
  });
2189
2104
  };
2190
- var StatPair = function StatPair(_ref1) {
2191
- var label = _ref1.label,
2192
- val = _ref1.val,
2193
- trend = _ref1.trend;
2105
+ var StatPair = function StatPair(_ref0) {
2106
+ var label = _ref0.label,
2107
+ val = _ref0.val,
2108
+ trend = _ref0.trend;
2194
2109
  var displayTrend = withTrendArrow(trend);
2195
2110
  return /*#__PURE__*/jsxs("div", {
2196
2111
  style: {
@@ -2227,12 +2142,12 @@ var StatPair = function StatPair(_ref1) {
2227
2142
  })]
2228
2143
  });
2229
2144
  };
2230
- var PageHeader = function PageHeader(_ref10) {
2231
- var dateLabel = _ref10.dateLabel,
2232
- generatedLabel = _ref10.generatedLabel,
2233
- activeFilters = _ref10.activeFilters,
2234
- page = _ref10.page,
2235
- windowLabel = _ref10.windowLabel;
2145
+ var PageHeader = function PageHeader(_ref1) {
2146
+ var dateLabel = _ref1.dateLabel,
2147
+ generatedLabel = _ref1.generatedLabel,
2148
+ activeFilters = _ref1.activeFilters,
2149
+ page = _ref1.page,
2150
+ windowLabel = _ref1.windowLabel;
2236
2151
  return /*#__PURE__*/jsxs("div", {
2237
2152
  style: {
2238
2153
  padding: "22px ".concat(MX, "px 12px"),
@@ -2338,9 +2253,9 @@ var PageHeader = function PageHeader(_ref10) {
2338
2253
  })]
2339
2254
  });
2340
2255
  };
2341
- var PageFooter = function PageFooter(_ref11) {
2342
- var generatedLabel = _ref11.generatedLabel,
2343
- page = _ref11.page;
2256
+ var PageFooter = function PageFooter(_ref10) {
2257
+ var generatedLabel = _ref10.generatedLabel,
2258
+ page = _ref10.page;
2344
2259
  return /*#__PURE__*/jsx("div", {
2345
2260
  style: {
2346
2261
  padding: "7px ".concat(MX, "px"),
@@ -2360,16 +2275,16 @@ var PageFooter = function PageFooter(_ref11) {
2360
2275
  };
2361
2276
 
2362
2277
  // ─── Main component ───────────────────────────────────────────────────────────
2363
- var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2364
- 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;
2365
- var _ref12$apiData = _ref12.apiData,
2366
- apiData = _ref12$apiData === void 0 ? {} : _ref12$apiData,
2367
- _ref12$dateName = _ref12.dateName,
2368
- dateName = _ref12$dateName === void 0 ? "Last Period" : _ref12$dateName,
2369
- _ref12$numberOfDays = _ref12.numberOfDays,
2370
- numberOfDays = _ref12$numberOfDays === void 0 ? 30 : _ref12$numberOfDays,
2371
- _ref12$activeFilters = _ref12.activeFilters,
2372
- activeFilters = _ref12$activeFilters === void 0 ? [] : _ref12$activeFilters;
2278
+ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref11, ref) {
2279
+ 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;
2280
+ var _ref11$apiData = _ref11.apiData,
2281
+ apiData = _ref11$apiData === void 0 ? {} : _ref11$apiData,
2282
+ _ref11$dateName = _ref11.dateName,
2283
+ dateName = _ref11$dateName === void 0 ? "Last Period" : _ref11$dateName,
2284
+ _ref11$numberOfDays = _ref11.numberOfDays,
2285
+ numberOfDays = _ref11$numberOfDays === void 0 ? 30 : _ref11$numberOfDays,
2286
+ _ref11$activeFilters = _ref11.activeFilters,
2287
+ activeFilters = _ref11$activeFilters === void 0 ? [] : _ref11$activeFilters;
2373
2288
  var now = new Date();
2374
2289
  var daysLabel = "".concat(numberOfDays, " day").concat(numberOfDays === 1 ? "" : "s");
2375
2290
  var windowLabel = "".concat(numberOfDays, "-day window");
@@ -2681,10 +2596,10 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2681
2596
  gap: 14,
2682
2597
  marginBottom: 6
2683
2598
  },
2684
- children: [["Email", C.cyan], ["Organic", C.emerald], ["Paid Ads", C.indigo]].map(function (_ref13) {
2685
- var _ref14 = _slicedToArray(_ref13, 2),
2686
- name = _ref14[0],
2687
- color = _ref14[1];
2599
+ children: [["Email", C.cyan], ["Organic", C.emerald], ["Paid Ads", C.indigo]].map(function (_ref12) {
2600
+ var _ref13 = _slicedToArray(_ref12, 2),
2601
+ name = _ref13[0],
2602
+ color = _ref13[1];
2688
2603
  return /*#__PURE__*/jsxs("div", {
2689
2604
  style: {
2690
2605
  display: "flex",
@@ -2707,11 +2622,22 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2707
2622
  })]
2708
2623
  }, name);
2709
2624
  })
2710
- }), /*#__PURE__*/jsx(LineChart, {
2711
- series: revSeries,
2712
- categories: revCats,
2713
- width: CW - 28,
2714
- height: 300
2625
+ }), /*#__PURE__*/jsx("div", {
2626
+ style: {
2627
+ width: "100%",
2628
+ minHeight: 300
2629
+ },
2630
+ children: /*#__PURE__*/jsx(RevenueChart, {
2631
+ id: "pdf-total-revenue-trend",
2632
+ metric: "Revenue",
2633
+ series: revSeries,
2634
+ categories: revCats,
2635
+ height: 300,
2636
+ stacked: (_mainChart$stacked = mainChart.stacked) !== null && _mainChart$stacked !== void 0 ? _mainChart$stacked : true,
2637
+ type: "area",
2638
+ colors: mainChart.colors || ["#6366F1", "#10B981", "#06B6D4"],
2639
+ showLegend: false
2640
+ })
2715
2641
  })]
2716
2642
  })]
2717
2643
  }), /*#__PURE__*/jsx(PageFooter, {
@@ -2849,7 +2775,7 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
2849
2775
  style: {
2850
2776
  fontSize: 9
2851
2777
  },
2852
- 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")
2778
+ 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")
2853
2779
  })
2854
2780
  })]
2855
2781
  })]
@@ -3105,10 +3031,10 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
3105
3031
  display: "flex",
3106
3032
  gap: 12
3107
3033
  },
3108
- 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) {
3109
- var _ref17 = _slicedToArray(_ref16, 2),
3110
- l = _ref17[0],
3111
- v = _ref17[1];
3034
+ 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) {
3035
+ var _ref16 = _slicedToArray(_ref15, 2),
3036
+ l = _ref16[0],
3037
+ v = _ref16[1];
3112
3038
  return /*#__PURE__*/jsxs("div", {
3113
3039
  children: [/*#__PURE__*/jsx("div", {
3114
3040
  style: {
@@ -3235,10 +3161,10 @@ var ExportPdfLayout = /*#__PURE__*/React.forwardRef(function (_ref12, ref) {
3235
3161
  display: "flex",
3236
3162
  gap: 12
3237
3163
  },
3238
- 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) {
3239
- var _ref19 = _slicedToArray(_ref18, 2),
3240
- l = _ref19[0],
3241
- v = _ref19[1];
3164
+ 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) {
3165
+ var _ref18 = _slicedToArray(_ref17, 2),
3166
+ l = _ref18[0],
3167
+ v = _ref18[1];
3242
3168
  return /*#__PURE__*/jsxs("div", {
3243
3169
  children: [/*#__PURE__*/jsx("div", {
3244
3170
  style: {
@@ -3424,7 +3350,7 @@ var NewOverview = function NewOverview(_ref) {
3424
3350
  if (!showExportLayout) return;
3425
3351
  var doPdfExport = /*#__PURE__*/function () {
3426
3352
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
3427
- var container, safeDate, _t;
3353
+ var container, waitForCharts, safeDate, _t;
3428
3354
  return _regenerator().w(function (_context) {
3429
3355
  while (1) switch (_context.p = _context.n) {
3430
3356
  case 0:
@@ -3436,37 +3362,55 @@ var NewOverview = function NewOverview(_ref) {
3436
3362
  });
3437
3363
  });
3438
3364
  case 1:
3439
- _context.n = 2;
3440
- return new Promise(function (r) {
3441
- return setTimeout(r, 400);
3442
- });
3443
- case 2:
3444
3365
  container = exportLayoutRef.current;
3445
3366
  if (container) {
3446
- _context.n = 3;
3367
+ _context.n = 2;
3447
3368
  break;
3448
3369
  }
3449
3370
  return _context.a(2);
3371
+ case 2:
3372
+ waitForCharts = function waitForCharts(root) {
3373
+ var timeoutMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4000;
3374
+ return new Promise(function (resolve) {
3375
+ var started = Date.now();
3376
+ var _check = function check() {
3377
+ var chartSvg = root.querySelector(".apexcharts-svg");
3378
+ if (chartSvg || Date.now() - started >= timeoutMs) {
3379
+ resolve();
3380
+ return;
3381
+ }
3382
+ requestAnimationFrame(_check);
3383
+ };
3384
+ _check();
3385
+ });
3386
+ };
3387
+ _context.n = 3;
3388
+ return waitForCharts(container);
3450
3389
  case 3:
3451
- safeDate = new Date().toISOString().slice(0, 10);
3452
3390
  _context.n = 4;
3453
- return exportReportPdf(container, "DashboardOverview_report_".concat(safeDate, ".pdf"));
3391
+ return new Promise(function (r) {
3392
+ return setTimeout(r, 300);
3393
+ });
3454
3394
  case 4:
3455
- _context.n = 6;
3456
- break;
3395
+ safeDate = new Date().toISOString().slice(0, 10);
3396
+ _context.n = 5;
3397
+ return exportReportPdf(container, "DashboardOverview_report_".concat(safeDate, ".pdf"));
3457
3398
  case 5:
3458
- _context.p = 5;
3459
- _t = _context.v;
3460
- console.error("Failed to export overall dashboard PDF:", _t);
3399
+ _context.n = 7;
3400
+ break;
3461
3401
  case 6:
3462
3402
  _context.p = 6;
3403
+ _t = _context.v;
3404
+ console.error("Failed to export overall dashboard PDF:", _t);
3405
+ case 7:
3406
+ _context.p = 7;
3463
3407
  setShowExportLayout(false);
3464
3408
  setExportLoading === null || setExportLoading === void 0 || setExportLoading(false);
3465
- return _context.f(6);
3466
- case 7:
3409
+ return _context.f(7);
3410
+ case 8:
3467
3411
  return _context.a(2);
3468
3412
  }
3469
- }, _callee, null, [[0, 5, 6, 7]]);
3413
+ }, _callee, null, [[0, 6, 7, 8]]);
3470
3414
  }));
3471
3415
  return function doPdfExport() {
3472
3416
  return _ref2.apply(this, arguments);