@ammarkhalidfarooq/dashboard-package 0.6.11 → 0.6.13

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
@@ -476,6 +476,7 @@ var RevenueChart = function RevenueChart(_ref) {
476
476
  }
477
477
  },
478
478
  xaxis: {
479
+ type: 'category',
479
480
  categories: categories || [],
480
481
  axisBorder: {
481
482
  show: false
@@ -483,7 +484,6 @@ var RevenueChart = function RevenueChart(_ref) {
483
484
  axisTicks: {
484
485
  show: false
485
486
  },
486
- tickAmount: 5,
487
487
  labels: {
488
488
  rotate: 0,
489
489
  rotateAlways: false,
@@ -493,13 +493,7 @@ var RevenueChart = function RevenueChart(_ref) {
493
493
  fontSize: '12px'
494
494
  },
495
495
  formatter: function formatter(val) {
496
- if (!val || typeof val !== 'string') return val;
497
- var date = new Date(val);
498
- if (isNaN(date.getTime())) return val;
499
- return date.toLocaleDateString('en-US', {
500
- month: 'short',
501
- day: 'numeric'
502
- });
496
+ return val;
503
497
  }
504
498
  }
505
499
  },
@@ -1183,6 +1177,14 @@ var MetricCard$1 = function MetricCard(_ref) {
1183
1177
  captionSx = _ref$captionSx === void 0 ? {} : _ref$captionSx,
1184
1178
  _ref$avatarSx = _ref.avatarSx,
1185
1179
  avatarSx = _ref$avatarSx === void 0 ? {} : _ref$avatarSx;
1180
+ var captionText = String(caption !== null && caption !== void 0 ? caption : "");
1181
+ var isPercentCaption = captionText.includes("%");
1182
+ var firstNumberMatch = captionText.match(/-?\d+(\.\d+)?/);
1183
+ var trendValue = firstNumberMatch ? Number(firstNumberMatch[0]) : null;
1184
+ var isNegativeTrend = isPercentCaption && trendValue !== null && trendValue < 0;
1185
+ var isPositiveTrend = isPercentCaption && trendValue !== null && trendValue > 0;
1186
+ var trendPrefix = isNegativeTrend ? "▼ " : isPositiveTrend ? "▲ " : "";
1187
+ var captionColor = captionText.includes("failed") ? "#4F46E5" : error || isNegativeTrend ? "#ef4444" : "#0B8F61";
1186
1188
  return /*#__PURE__*/jsxRuntime.jsxs(material.Box, {
1187
1189
  sx: _objectSpread2({
1188
1190
  bgcolor: "#fff",
@@ -1231,9 +1233,9 @@ var MetricCard$1 = function MetricCard(_ref) {
1231
1233
  sx: _objectSpread2({
1232
1234
  fontSize: 12,
1233
1235
  fontWeight: 500,
1234
- color: caption !== null && caption !== void 0 && caption.includes("failed") ? "#4F46E5" : error ? "#ef4444" : "#0B8F61"
1236
+ color: captionColor
1235
1237
  }, captionSx),
1236
- children: caption
1238
+ children: "".concat(trendPrefix).concat(captionText)
1237
1239
  })]
1238
1240
  });
1239
1241
  };
@@ -15163,7 +15165,7 @@ var OverallSection = function OverallSection(_ref) {
15163
15165
  var allCharts = [].concat(_toConsumableArray(primaryCharts), _toConsumableArray(secondaryCharts), _toConsumableArray(tertiaryCharts), _toConsumableArray(quaternaryCharts));
15164
15166
  var getExtendedCharts = function getExtendedCharts() {
15165
15167
  var charts = _toConsumableArray(allCharts);
15166
- var categories = (apiData === null || apiData === void 0 ? void 0 : apiData.categories) || ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"];
15168
+ var categories = (apiData === null || apiData === void 0 ? void 0 : apiData.categories) || [];
15167
15169
  if (!charts.find(function (c) {
15168
15170
  return c.label === "Net Raised";
15169
15171
  })) {
@@ -15328,30 +15330,58 @@ var OverallSection = function OverallSection(_ref) {
15328
15330
  var mainChart = extendedCharts.find(function (c) {
15329
15331
  return c.label === selectedInfo.label;
15330
15332
  }) || primaryCharts[0];
15331
- if (activeMetric === "Total Raised") {
15332
- var _apiData$overviewStat17;
15333
- var stackedData = apiData === null || apiData === void 0 || (_apiData$overviewStat17 = apiData.overviewStats) === null || _apiData$overviewStat17 === void 0 ? void 0 : _apiData$overviewStat17.totalRaised;
15334
- var hasStackedData = (stackedData === null || stackedData === void 0 ? void 0 : stackedData.paidAds) || (stackedData === null || stackedData === void 0 ? void 0 : stackedData.email) || (stackedData === null || stackedData === void 0 ? void 0 : stackedData.organic);
15335
- if (hasStackedData) {
15336
- var categories = ((stackedData === null || stackedData === void 0 ? void 0 : stackedData.organic) || (stackedData === null || stackedData === void 0 ? void 0 : stackedData.paidAds) || (stackedData === null || stackedData === void 0 ? void 0 : stackedData.email) || []).map(function (item) {
15333
+ var buildStackedSeries = function buildStackedSeries() {
15334
+ var stackedSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15335
+ var sourceKeys = ["paidAds", "organic", "email"];
15336
+ var allDates = sourceKeys.flatMap(function (key) {
15337
+ return ((stackedSource === null || stackedSource === void 0 ? void 0 : stackedSource[key]) || []).map(function (item) {
15337
15338
  return item.date;
15338
15339
  });
15339
- var series = [{
15340
+ }).filter(Boolean);
15341
+ var categories = _toConsumableArray(new Set(allDates));
15342
+ var mapByDate = function mapByDate() {
15343
+ var rows = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
15344
+ return new Map(rows.filter(function (item) {
15345
+ return item === null || item === void 0 ? void 0 : item.date;
15346
+ }).map(function (item) {
15347
+ var _item$value;
15348
+ return [item.date, (_item$value = item.value) !== null && _item$value !== void 0 ? _item$value : 0];
15349
+ }));
15350
+ };
15351
+ var paidMap = mapByDate((stackedSource === null || stackedSource === void 0 ? void 0 : stackedSource.paidAds) || []);
15352
+ var organicMap = mapByDate((stackedSource === null || stackedSource === void 0 ? void 0 : stackedSource.organic) || []);
15353
+ var emailMap = mapByDate((stackedSource === null || stackedSource === void 0 ? void 0 : stackedSource.email) || []);
15354
+ return {
15355
+ categories: categories,
15356
+ series: [{
15340
15357
  name: "Paid Ads",
15341
- data: ((stackedData === null || stackedData === void 0 ? void 0 : stackedData.paidAds) || []).map(function (item) {
15342
- return item.value;
15358
+ data: categories.map(function (date) {
15359
+ var _paidMap$get;
15360
+ return (_paidMap$get = paidMap.get(date)) !== null && _paidMap$get !== void 0 ? _paidMap$get : 0;
15343
15361
  })
15344
15362
  }, {
15345
15363
  name: "Organic",
15346
- data: ((stackedData === null || stackedData === void 0 ? void 0 : stackedData.organic) || []).map(function (item) {
15347
- return item.value;
15364
+ data: categories.map(function (date) {
15365
+ var _organicMap$get;
15366
+ return (_organicMap$get = organicMap.get(date)) !== null && _organicMap$get !== void 0 ? _organicMap$get : 0;
15348
15367
  })
15349
15368
  }, {
15350
15369
  name: "Email",
15351
- data: ((stackedData === null || stackedData === void 0 ? void 0 : stackedData.email) || []).map(function (item) {
15352
- return item.value;
15370
+ data: categories.map(function (date) {
15371
+ var _emailMap$get;
15372
+ return (_emailMap$get = emailMap.get(date)) !== null && _emailMap$get !== void 0 ? _emailMap$get : 0;
15353
15373
  })
15354
- }];
15374
+ }]
15375
+ };
15376
+ };
15377
+ if (activeMetric === "Total Raised") {
15378
+ var _apiData$overviewStat17;
15379
+ var stackedData = apiData === null || apiData === void 0 || (_apiData$overviewStat17 = apiData.overviewStats) === null || _apiData$overviewStat17 === void 0 ? void 0 : _apiData$overviewStat17.totalRaised;
15380
+ var hasStackedData = (stackedData === null || stackedData === void 0 ? void 0 : stackedData.paidAds) || (stackedData === null || stackedData === void 0 ? void 0 : stackedData.email) || (stackedData === null || stackedData === void 0 ? void 0 : stackedData.organic);
15381
+ if (hasStackedData) {
15382
+ var _buildStackedSeries = buildStackedSeries(stackedData),
15383
+ categories = _buildStackedSeries.categories,
15384
+ series = _buildStackedSeries.series;
15355
15385
  mainChart = _objectSpread2(_objectSpread2({}, mainChart), {}, {
15356
15386
  label: "Total revenue trend",
15357
15387
  data: undefined,
@@ -15373,25 +15403,9 @@ var OverallSection = function OverallSection(_ref) {
15373
15403
  var netData = apiData === null || apiData === void 0 || (_apiData$overviewStat18 = apiData.overviewStats) === null || _apiData$overviewStat18 === void 0 ? void 0 : _apiData$overviewStat18.netRaised;
15374
15404
  var _hasStackedData = (netData === null || netData === void 0 ? void 0 : netData.paidAds) || (netData === null || netData === void 0 ? void 0 : netData.email) || (netData === null || netData === void 0 ? void 0 : netData.organic);
15375
15405
  if (_hasStackedData) {
15376
- var _categories = ((netData === null || netData === void 0 ? void 0 : netData.organic) || (netData === null || netData === void 0 ? void 0 : netData.paidAds) || (netData === null || netData === void 0 ? void 0 : netData.email) || []).map(function (item) {
15377
- return item.date;
15378
- });
15379
- var _series = [{
15380
- name: "Paid Ads",
15381
- data: ((netData === null || netData === void 0 ? void 0 : netData.paidAds) || []).map(function (item) {
15382
- return item.value;
15383
- })
15384
- }, {
15385
- name: "Organic",
15386
- data: ((netData === null || netData === void 0 ? void 0 : netData.organic) || []).map(function (item) {
15387
- return item.value;
15388
- })
15389
- }, {
15390
- name: "Email",
15391
- data: ((netData === null || netData === void 0 ? void 0 : netData.email) || []).map(function (item) {
15392
- return item.value;
15393
- })
15394
- }];
15406
+ var _buildStackedSeries2 = buildStackedSeries(netData),
15407
+ _categories = _buildStackedSeries2.categories,
15408
+ _series = _buildStackedSeries2.series;
15395
15409
  mainChart = _objectSpread2(_objectSpread2({}, mainChart), {}, {
15396
15410
  label: "Net revenue trend",
15397
15411
  data: undefined,
@@ -15421,25 +15435,9 @@ var OverallSection = function OverallSection(_ref) {
15421
15435
  var donorsData = apiData === null || apiData === void 0 || (_apiData$overviewStat19 = apiData.overviewStats) === null || _apiData$overviewStat19 === void 0 ? void 0 : _apiData$overviewStat19.totalDonations;
15422
15436
  var _hasStackedData2 = (donorsData === null || donorsData === void 0 ? void 0 : donorsData.paidAds) || (donorsData === null || donorsData === void 0 ? void 0 : donorsData.email) || (donorsData === null || donorsData === void 0 ? void 0 : donorsData.organic);
15423
15437
  if (_hasStackedData2) {
15424
- var _categories2 = ((donorsData === null || donorsData === void 0 ? void 0 : donorsData.organic) || (donorsData === null || donorsData === void 0 ? void 0 : donorsData.paidAds) || (donorsData === null || donorsData === void 0 ? void 0 : donorsData.email) || []).map(function (item) {
15425
- return item.date;
15426
- });
15427
- var _series2 = [{
15428
- name: "Paid Ads",
15429
- data: ((donorsData === null || donorsData === void 0 ? void 0 : donorsData.paidAds) || []).map(function (item) {
15430
- return item.value;
15431
- })
15432
- }, {
15433
- name: "Organic",
15434
- data: ((donorsData === null || donorsData === void 0 ? void 0 : donorsData.organic) || []).map(function (item) {
15435
- return item.value;
15436
- })
15437
- }, {
15438
- name: "Email",
15439
- data: ((donorsData === null || donorsData === void 0 ? void 0 : donorsData.email) || []).map(function (item) {
15440
- return item.value;
15441
- })
15442
- }];
15438
+ var _buildStackedSeries3 = buildStackedSeries(donorsData),
15439
+ _categories2 = _buildStackedSeries3.categories,
15440
+ _series2 = _buildStackedSeries3.series;
15443
15441
  mainChart = _objectSpread2(_objectSpread2({}, mainChart), {}, {
15444
15442
  label: "Donor trend",
15445
15443
  data: undefined,
@@ -15468,25 +15466,9 @@ var OverallSection = function OverallSection(_ref) {
15468
15466
  var roasData = apiData === null || apiData === void 0 ? void 0 : apiData.roas;
15469
15467
  var _hasStackedData3 = (roasData === null || roasData === void 0 ? void 0 : roasData.paidAds) || (roasData === null || roasData === void 0 ? void 0 : roasData.email) || (roasData === null || roasData === void 0 ? void 0 : roasData.organic);
15470
15468
  if (_hasStackedData3) {
15471
- var _categories3 = ((roasData === null || roasData === void 0 ? void 0 : roasData.organic) || (roasData === null || roasData === void 0 ? void 0 : roasData.paidAds) || (roasData === null || roasData === void 0 ? void 0 : roasData.email) || []).map(function (item) {
15472
- return item.date;
15473
- });
15474
- var _series3 = [{
15475
- name: "Paid Ads",
15476
- data: ((roasData === null || roasData === void 0 ? void 0 : roasData.paidAds) || []).map(function (item) {
15477
- return item.value;
15478
- })
15479
- }, {
15480
- name: "Organic",
15481
- data: ((roasData === null || roasData === void 0 ? void 0 : roasData.organic) || []).map(function (item) {
15482
- return item.value;
15483
- })
15484
- }, {
15485
- name: "Email",
15486
- data: ((roasData === null || roasData === void 0 ? void 0 : roasData.email) || []).map(function (item) {
15487
- return item.value;
15488
- })
15489
- }];
15469
+ var _buildStackedSeries4 = buildStackedSeries(roasData),
15470
+ _categories3 = _buildStackedSeries4.categories,
15471
+ _series3 = _buildStackedSeries4.series;
15490
15472
  mainChart = _objectSpread2(_objectSpread2({}, mainChart), {}, {
15491
15473
  label: "ROAS",
15492
15474
  data: undefined,
@@ -15516,25 +15498,9 @@ var OverallSection = function OverallSection(_ref) {
15516
15498
  var conversionData = apiData === null || apiData === void 0 || (_apiData$overviewStat20 = apiData.overviewStats) === null || _apiData$overviewStat20 === void 0 ? void 0 : _apiData$overviewStat20.conversionRate;
15517
15499
  var _hasStackedData4 = (conversionData === null || conversionData === void 0 ? void 0 : conversionData.paidAds) || (conversionData === null || conversionData === void 0 ? void 0 : conversionData.email) || (conversionData === null || conversionData === void 0 ? void 0 : conversionData.organic);
15518
15500
  if (_hasStackedData4) {
15519
- var _categories4 = ((conversionData === null || conversionData === void 0 ? void 0 : conversionData.organic) || (conversionData === null || conversionData === void 0 ? void 0 : conversionData.paidAds) || (conversionData === null || conversionData === void 0 ? void 0 : conversionData.email) || []).map(function (item) {
15520
- return item.date;
15521
- });
15522
- var _series4 = [{
15523
- name: "Paid Ads",
15524
- data: ((conversionData === null || conversionData === void 0 ? void 0 : conversionData.paidAds) || []).map(function (item) {
15525
- return item.value;
15526
- })
15527
- }, {
15528
- name: "Organic",
15529
- data: ((conversionData === null || conversionData === void 0 ? void 0 : conversionData.organic) || []).map(function (item) {
15530
- return item.value;
15531
- })
15532
- }, {
15533
- name: "Email",
15534
- data: ((conversionData === null || conversionData === void 0 ? void 0 : conversionData.email) || []).map(function (item) {
15535
- return item.value;
15536
- })
15537
- }];
15501
+ var _buildStackedSeries5 = buildStackedSeries(conversionData),
15502
+ _categories4 = _buildStackedSeries5.categories,
15503
+ _series4 = _buildStackedSeries5.series;
15538
15504
  mainChart = _objectSpread2(_objectSpread2({}, mainChart), {}, {
15539
15505
  label: "Conversion Rate",
15540
15506
  data: undefined,
@@ -15564,25 +15530,9 @@ var OverallSection = function OverallSection(_ref) {
15564
15530
  var avgData = apiData === null || apiData === void 0 || (_apiData$overviewStat21 = apiData.overviewStats) === null || _apiData$overviewStat21 === void 0 ? void 0 : _apiData$overviewStat21.avgDonations;
15565
15531
  var _hasStackedData5 = (avgData === null || avgData === void 0 ? void 0 : avgData.paidAds) || (avgData === null || avgData === void 0 ? void 0 : avgData.email) || (avgData === null || avgData === void 0 ? void 0 : avgData.organic);
15566
15532
  if (_hasStackedData5) {
15567
- var _categories5 = ((avgData === null || avgData === void 0 ? void 0 : avgData.organic) || (avgData === null || avgData === void 0 ? void 0 : avgData.paidAds) || (avgData === null || avgData === void 0 ? void 0 : avgData.email) || []).map(function (item) {
15568
- return item.date;
15569
- });
15570
- var _series5 = [{
15571
- name: "Paid Ads",
15572
- data: ((avgData === null || avgData === void 0 ? void 0 : avgData.paidAds) || []).map(function (item) {
15573
- return item.value;
15574
- })
15575
- }, {
15576
- name: "Organic",
15577
- data: ((avgData === null || avgData === void 0 ? void 0 : avgData.organic) || []).map(function (item) {
15578
- return item.value;
15579
- })
15580
- }, {
15581
- name: "Email",
15582
- data: ((avgData === null || avgData === void 0 ? void 0 : avgData.email) || []).map(function (item) {
15583
- return item.value;
15584
- })
15585
- }];
15533
+ var _buildStackedSeries6 = buildStackedSeries(avgData),
15534
+ _categories5 = _buildStackedSeries6.categories,
15535
+ _series5 = _buildStackedSeries6.series;
15586
15536
  mainChart = _objectSpread2(_objectSpread2({}, mainChart), {}, {
15587
15537
  label: "Average donation trend",
15588
15538
  data: undefined,