@harbortouch/skytab-analytics-report-utils 0.10.0 → 0.11.0

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 CHANGED
@@ -23,34 +23,22 @@ __export(index_exports, {
23
23
  COLUMN_REGISTRY: () => COLUMN_REGISTRY,
24
24
  DAILY_SALES_AVAILABLE_COLUMNS: () => DAILY_SALES_AVAILABLE_COLUMNS,
25
25
  DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS: () => DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS,
26
- DAILY_SALES_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_DEFAULT_VISIBLE_COLUMNS,
27
26
  DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS: () => DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
28
- DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS,
29
27
  DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS: () => DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
30
- DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS,
31
28
  DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS: () => DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
32
- DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS,
33
29
  DAILY_SALES_TAXES_AVAILABLE_COLUMNS: () => DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
34
- DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS: () => DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS,
35
30
  DAILY_SALES_TRENDS_AVAILABLE_COLUMNS: () => DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
36
31
  EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS: () => EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
37
- EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS: () => EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
38
32
  ITEM_TAX_AVAILABLE_COLUMNS: () => ITEM_TAX_AVAILABLE_COLUMNS,
39
- ITEM_TAX_DEFAULT_VISIBLE_COLUMNS: () => ITEM_TAX_DEFAULT_VISIBLE_COLUMNS,
40
33
  MODIFIER_MIX_AVAILABLE_COLUMNS: () => MODIFIER_MIX_AVAILABLE_COLUMNS,
41
- MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS: () => MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS,
42
34
  PRODUCT_MIX_AVAILABLE_COLUMNS: () => PRODUCT_MIX_AVAILABLE_COLUMNS,
43
35
  PRODUCT_MIX_CHART_FIELDS: () => PRODUCT_MIX_CHART_FIELDS,
44
36
  PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS: () => PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
45
37
  Report: () => Report,
46
38
  SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS: () => SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
47
- SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS: () => SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS,
48
39
  SALES_SUMMARY_AVAILABLE_COLUMNS: () => SALES_SUMMARY_AVAILABLE_COLUMNS,
49
- SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS: () => SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
50
40
  TICKET_LIVE_AVAILABLE_COLUMNS: () => TICKET_LIVE_AVAILABLE_COLUMNS,
51
- TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS: () => TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS,
52
41
  TICKET_SUMMARY_AVAILABLE_COLUMNS: () => TICKET_SUMMARY_AVAILABLE_COLUMNS,
53
- TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS: () => TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
54
42
  calculateFieldTotal: () => calculateFieldTotal,
55
43
  calculateReportTotals: () => calculateReportTotals,
56
44
  dailySalesConfig: () => dailySalesConfig,
@@ -214,16 +202,13 @@ var SALES_SUMMARY_AVAILABLE_COLUMNS = [
214
202
  "salesPerGuestLW",
215
203
  "salesPerGuestLY"
216
204
  ];
217
- var SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS = [
218
- "salesAmountNet",
219
- "guestsCount",
220
- "salesPerGuestTY"
221
- ];
205
+ var SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS = ["salesAmountNet", "guestsCount", "salesPerGuestTY"];
222
206
  var salesSummaryConfig = {
223
207
  fields: FIELDS,
224
208
  availableColumns: SALES_SUMMARY_AVAILABLE_COLUMNS,
225
209
  defaultVisibleColumns: SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
226
- columnGroups: COLUMN_GROUPS
210
+ columnGroups: COLUMN_GROUPS,
211
+ hasFooter: true
227
212
  };
228
213
 
229
214
  // src/reports/ticketSummary.ts
@@ -313,11 +298,11 @@ var TICKET_SUMMARY_AVAILABLE_COLUMNS = [
313
298
  "employeeName",
314
299
  "orderTypeName"
315
300
  ];
316
- var TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS = TICKET_SUMMARY_AVAILABLE_COLUMNS;
317
301
  var ticketSummaryConfig = {
318
302
  fields: FIELDS2,
319
303
  availableColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
320
- defaultVisibleColumns: TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS
304
+ defaultVisibleColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
305
+ hasFooter: true
321
306
  };
322
307
 
323
308
  // src/reports/ticketLive.ts
@@ -371,11 +356,11 @@ var TICKET_LIVE_AVAILABLE_COLUMNS = [
371
356
  "employeeName",
372
357
  "orderType"
373
358
  ];
374
- var TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS = TICKET_LIVE_AVAILABLE_COLUMNS;
375
359
  var ticketLiveConfig = {
376
360
  fields: FIELDS3,
377
361
  availableColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
378
- defaultVisibleColumns: TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS
362
+ defaultVisibleColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
363
+ hasFooter: true
379
364
  };
380
365
 
381
366
  // src/reports/productMix.ts
@@ -421,7 +406,8 @@ var PRODUCT_MIX_CHART_FIELDS = [
421
406
  var productMixConfig = {
422
407
  fields: FIELDS4,
423
408
  availableColumns: PRODUCT_MIX_AVAILABLE_COLUMNS,
424
- defaultVisibleColumns: PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS
409
+ defaultVisibleColumns: PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
410
+ hasFooter: true
425
411
  };
426
412
 
427
413
  // src/reports/modifierMix.ts
@@ -492,11 +478,11 @@ var FIELDS5 = {
492
478
  }
493
479
  };
494
480
  var MODIFIER_MIX_AVAILABLE_COLUMNS = ["modifiersSales", "modifiersQuantity", "avgGross"];
495
- var MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS = MODIFIER_MIX_AVAILABLE_COLUMNS;
496
481
  var modifierMixConfig = {
497
482
  fields: FIELDS5,
498
483
  availableColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
499
- defaultVisibleColumns: MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS
484
+ defaultVisibleColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
485
+ hasFooter: true
500
486
  };
501
487
 
502
488
  // src/reports/itemTax.ts
@@ -546,11 +532,11 @@ var ITEM_TAX_AVAILABLE_COLUMNS = [
546
532
  "taxableSales",
547
533
  "taxCollected"
548
534
  ];
549
- var ITEM_TAX_DEFAULT_VISIBLE_COLUMNS = ITEM_TAX_AVAILABLE_COLUMNS;
550
535
  var itemTaxConfig = {
551
536
  fields: FIELDS6,
552
537
  availableColumns: ITEM_TAX_AVAILABLE_COLUMNS,
553
- defaultVisibleColumns: ITEM_TAX_DEFAULT_VISIBLE_COLUMNS
538
+ defaultVisibleColumns: ITEM_TAX_AVAILABLE_COLUMNS,
539
+ hasFooter: false
554
540
  };
555
541
 
556
542
  // src/reports/dailySales.ts
@@ -627,11 +613,11 @@ var DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS = [
627
613
  "guestAverage",
628
614
  "salesAmountNet"
629
615
  ];
630
- var DAILY_SALES_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_AVAILABLE_COLUMNS;
631
616
  var dailySalesConfig = {
632
617
  fields: FIELDS7,
633
618
  availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
634
- defaultVisibleColumns: DAILY_SALES_DEFAULT_VISIBLE_COLUMNS
619
+ defaultVisibleColumns: DAILY_SALES_AVAILABLE_COLUMNS,
620
+ hasFooter: true
635
621
  };
636
622
  var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
637
623
  "ticketsCount",
@@ -643,7 +629,8 @@ var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
643
629
  var dailySalesTrendsConfig = {
644
630
  fields: FIELDS7,
645
631
  availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
646
- defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS
632
+ defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
633
+ hasFooter: true
647
634
  };
648
635
 
649
636
  // src/reports/dailySalesPayments.ts
@@ -661,11 +648,11 @@ var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
661
648
  "tipsAmount",
662
649
  "totalSales"
663
650
  ];
664
- var DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS;
665
651
  var dailySalesPaymentsConfig = {
666
652
  fields: FIELDS8,
667
653
  availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
668
- defaultVisibleColumns: DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS
654
+ defaultVisibleColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
655
+ hasFooter: true
669
656
  };
670
657
 
671
658
  // src/reports/dailySalesDiscounts.ts
@@ -681,11 +668,11 @@ var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
681
668
  "itemCount",
682
669
  "discountsAmount"
683
670
  ];
684
- var DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS;
685
671
  var dailySalesDiscountsConfig = {
686
672
  fields: FIELDS9,
687
673
  availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
688
- defaultVisibleColumns: DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS
674
+ defaultVisibleColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
675
+ hasFooter: true
689
676
  };
690
677
 
691
678
  // src/reports/employeeTimecard.ts
@@ -768,13 +755,13 @@ var EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS = [
768
755
  "endTime",
769
756
  "shiftHours"
770
757
  ];
771
- var EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS = EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS;
772
758
  var employeeTimecardConfig = {
773
759
  fields: FIELDS10,
774
760
  availableColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
775
- defaultVisibleColumns: EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
776
- columnGroups: []
761
+ defaultVisibleColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
762
+ columnGroups: [],
777
763
  // No column groups for this report
764
+ hasFooter: true
778
765
  };
779
766
 
780
767
  // src/reports/salesByItemDetail.ts
@@ -818,11 +805,11 @@ var SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS = [
818
805
  "salesType",
819
806
  "itemPrice"
820
807
  ];
821
- var SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS = SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS;
822
808
  var salesByItemDetailConfig = {
823
809
  fields: FIELDS11,
824
810
  availableColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
825
- defaultVisibleColumns: SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS
811
+ defaultVisibleColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
812
+ hasFooter: false
826
813
  };
827
814
 
828
815
  // src/report.ts
@@ -1537,7 +1524,7 @@ var calculateFieldTotal = (rows, field, config) => {
1537
1524
  }
1538
1525
  const calc = config.footerCalculation;
1539
1526
  if (calc?.type === "none") {
1540
- return 0;
1527
+ return null;
1541
1528
  }
1542
1529
  if (!calc || calc.type === "sum") {
1543
1530
  return config.columnKey || calc?.type === "sum" ? sumField(rows, field) : 0;
@@ -1591,11 +1578,11 @@ var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = [
1591
1578
  "amount",
1592
1579
  "pctSales"
1593
1580
  ];
1594
- var DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS;
1595
1581
  var dailySalesRefundsVoidsConfig = {
1596
1582
  fields: FIELDS12,
1597
1583
  availableColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1598
- defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS
1584
+ defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1585
+ hasFooter: true
1599
1586
  };
1600
1587
 
1601
1588
  // src/reports/dailySalesTaxes.ts
@@ -1611,11 +1598,11 @@ var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = [
1611
1598
  "taxesAmount",
1612
1599
  "exemptSales"
1613
1600
  ];
1614
- var DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_TAXES_AVAILABLE_COLUMNS;
1615
1601
  var dailySalesTaxesConfig = {
1616
1602
  fields: FIELDS13,
1617
1603
  availableColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1618
- defaultVisibleColumns: DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS
1604
+ defaultVisibleColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1605
+ hasFooter: true
1619
1606
  };
1620
1607
 
1621
1608
  // src/formatting.ts
@@ -1761,34 +1748,22 @@ var formatFieldValue = (value, type, localeOptions, fullRecord, fieldConfig = DE
1761
1748
  COLUMN_REGISTRY,
1762
1749
  DAILY_SALES_AVAILABLE_COLUMNS,
1763
1750
  DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS,
1764
- DAILY_SALES_DEFAULT_VISIBLE_COLUMNS,
1765
1751
  DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
1766
- DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS,
1767
1752
  DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
1768
- DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS,
1769
1753
  DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1770
- DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS,
1771
1754
  DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1772
- DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS,
1773
1755
  DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
1774
1756
  EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
1775
- EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
1776
1757
  ITEM_TAX_AVAILABLE_COLUMNS,
1777
- ITEM_TAX_DEFAULT_VISIBLE_COLUMNS,
1778
1758
  MODIFIER_MIX_AVAILABLE_COLUMNS,
1779
- MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS,
1780
1759
  PRODUCT_MIX_AVAILABLE_COLUMNS,
1781
1760
  PRODUCT_MIX_CHART_FIELDS,
1782
1761
  PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
1783
1762
  Report,
1784
1763
  SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
1785
- SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS,
1786
1764
  SALES_SUMMARY_AVAILABLE_COLUMNS,
1787
- SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
1788
1765
  TICKET_LIVE_AVAILABLE_COLUMNS,
1789
- TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS,
1790
1766
  TICKET_SUMMARY_AVAILABLE_COLUMNS,
1791
- TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
1792
1767
  calculateFieldTotal,
1793
1768
  calculateReportTotals,
1794
1769
  dailySalesConfig,
package/dist/index.d.cts CHANGED
@@ -1219,6 +1219,7 @@ interface ReportConfig<TField extends string = string> {
1219
1219
  availableColumns: TField[];
1220
1220
  defaultVisibleColumns: TField[];
1221
1221
  columnGroups?: ColumnGroupConfig[];
1222
+ hasFooter: boolean;
1222
1223
  }
1223
1224
 
1224
1225
  declare const Report: {
@@ -1249,17 +1250,14 @@ declare const calculateReportTotals: <T>(data: T[], fieldConfig: Record<string,
1249
1250
 
1250
1251
  type SalesSummaryField = 'groupById' | 'groupByName' | 'salesAmountNet' | 'salesVarLW' | 'salesVarLY' | 'salesVarLWPct' | 'salesVarLYPct' | 'salesAmountNetLastWeek' | 'salesAmountNetLastYear' | 'salesAmountGross' | 'salesAmountGrossLastWeek' | 'salesAmountGrossLastYear' | 'ticketsCount' | 'ticketsCountLastWeek' | 'ticketsCountLastYear' | 'guestsCount' | 'guestsVarLW' | 'guestsVarLY' | 'guestsVarLWPct' | 'guestsVarLYPct' | 'guestsCountLastWeek' | 'guestsCountLastYear' | 'salesPerGuestTY' | 'salesPerGuestLW' | 'salesPerGuestLY';
1251
1252
  declare const SALES_SUMMARY_AVAILABLE_COLUMNS: SalesSummaryField[];
1252
- declare const SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS: SalesSummaryField[];
1253
1253
  declare const salesSummaryConfig: ReportConfig<SalesSummaryField>;
1254
1254
 
1255
1255
  type TicketSummaryField = 'ticketId' | 'locationId' | 'orderName' | 'revenueCenterName' | 'daypartName' | 'inclusiveTaxesAmount' | 'locationName' | 'orderNumber' | 'businessDate' | 'ticketOpenedAt' | 'ticketClosedAt' | 'ticketTime' | 'ticketSubtotal' | 'discountsAmount' | 'surchargesAmount' | 'taxesAmount' | 'ticketGrandTotal' | 'gratuitiesAmount' | 'tipAmount' | 'paymentsAmount' | 'paymentTypeName' | 'guestsCount' | 'employeeName' | 'orderTypeName';
1256
1256
  declare const TICKET_SUMMARY_AVAILABLE_COLUMNS: TicketSummaryField[];
1257
- declare const TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS: TicketSummaryField[];
1258
1257
  declare const ticketSummaryConfig: ReportConfig<TicketSummaryField>;
1259
1258
 
1260
1259
  type TicketLiveField = 'locationName' | 'orderNumber' | 'dateOpen' | 'timeOpen' | 'dateClose' | 'timeClose' | 'durationMinutes' | 'subtotal' | 'discountTotal' | 'surchargeTotal' | 'taxTotal' | 'grandTotal' | 'gratuityTotal' | 'totalTips' | 'paymentsReceived' | 'paymentTypeName' | 'guestCount' | 'customerName' | 'employeeName' | 'orderType';
1261
1260
  declare const TICKET_LIVE_AVAILABLE_COLUMNS: TicketLiveField[];
1262
- declare const TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS: TicketLiveField[];
1263
1261
  declare const ticketLiveConfig: ReportConfig<TicketLiveField>;
1264
1262
 
1265
1263
  type ProductMixField = 'groupById' | 'groupByName' | 'salesAmountGross' | 'discountsAmount' | 'inclusiveTaxesAmount' | 'salesAmountNet' | 'itemsQuantity' | 'avgPrice' | 'salesMixPct';
@@ -1270,50 +1268,41 @@ declare const productMixConfig: ReportConfig<ProductMixField>;
1270
1268
 
1271
1269
  type ModifierMixField = 'groupById' | 'groupByName' | 'groupById2' | 'groupByName2' | 'modifiersSales' | 'modifiersQuantity' | 'itemsQuantity' | 'avgGross' | 'attachRate' | 'modifiersSalesComp' | 'modifiersQuantityComp' | 'itemsQuantityComp' | 'attachRateComp' | 'modifiersSalesVar' | 'modifiersSalesVarPct' | 'modifiersQuantityVar' | 'modifiersQuantityVarPct' | 'attachRateVar' | 'attachRateVarPct';
1272
1270
  declare const MODIFIER_MIX_AVAILABLE_COLUMNS: ModifierMixField[];
1273
- declare const MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS: ModifierMixField[];
1274
1271
  declare const modifierMixConfig: ReportConfig<ModifierMixField>;
1275
1272
 
1276
1273
  type ItemTaxField = 'locationId' | 'taxIsFlat' | 'merchantId' | 'locationName' | 'locationCity' | 'locationState' | 'itemName' | 'itemPrice' | 'departmentName' | 'revenueClassName' | 'orderTypeName' | 'taxName' | 'taxValue' | 'taxRate' | 'recordsCount' | 'taxableSales' | 'totalCollected' | 'itemTax' | 'taxCollected';
1277
1274
  declare const ITEM_TAX_AVAILABLE_COLUMNS: ItemTaxField[];
1278
- declare const ITEM_TAX_DEFAULT_VISIBLE_COLUMNS: ItemTaxField[];
1279
1275
  declare const itemTaxConfig: ReportConfig<ItemTaxField>;
1280
1276
 
1281
1277
  type DailySalesField = 'groupById' | 'groupByName' | 'itemsQuantity' | 'salesAmountGross' | 'discountsAmount' | 'inclusiveTaxesAmount' | 'salesAmountNet' | 'salesMixPct' | 'avgPrice' | 'ticketsCount' | 'guestsCount' | 'ticketAverage' | 'guestAverage' | 'ticketAvg' | 'guestAvg';
1282
1278
  declare const DAILY_SALES_AVAILABLE_COLUMNS: DailySalesField[];
1283
1279
  declare const DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS: DailySalesField[];
1284
- declare const DAILY_SALES_DEFAULT_VISIBLE_COLUMNS: DailySalesField[];
1285
1280
  declare const dailySalesConfig: ReportConfig<DailySalesField>;
1286
1281
  declare const DAILY_SALES_TRENDS_AVAILABLE_COLUMNS: DailySalesField[];
1287
1282
  declare const dailySalesTrendsConfig: ReportConfig<DailySalesField>;
1288
1283
 
1289
1284
  type DailySalesPaymentsField = 'paymentTypeName' | 'paymentsCount' | 'paymentsAmount' | 'tipsAmount' | 'totalSales';
1290
1285
  declare const DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS: DailySalesPaymentsField[];
1291
- declare const DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS: DailySalesPaymentsField[];
1292
1286
  declare const dailySalesPaymentsConfig: ReportConfig<DailySalesPaymentsField>;
1293
1287
 
1294
1288
  type DailySalesDiscountsField = 'discountName' | 'ticketCount' | 'itemCount' | 'discountsAmount';
1295
1289
  declare const DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS: DailySalesDiscountsField[];
1296
- declare const DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS: DailySalesDiscountsField[];
1297
1290
  declare const dailySalesDiscountsConfig: ReportConfig<DailySalesDiscountsField>;
1298
1291
 
1299
1292
  type DailySalesRefundsVoidsField = 'description' | 'count' | 'amount' | 'pctSales';
1300
1293
  declare const DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS: DailySalesRefundsVoidsField[];
1301
- declare const DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS: DailySalesRefundsVoidsField[];
1302
1294
  declare const dailySalesRefundsVoidsConfig: ReportConfig<DailySalesRefundsVoidsField>;
1303
1295
 
1304
1296
  type DailySalesTaxesField = 'taxName' | 'taxableSales' | 'taxesAmount' | 'exemptSales';
1305
1297
  declare const DAILY_SALES_TAXES_AVAILABLE_COLUMNS: DailySalesTaxesField[];
1306
- declare const DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS: DailySalesTaxesField[];
1307
1298
  declare const dailySalesTaxesConfig: ReportConfig<DailySalesTaxesField>;
1308
1299
 
1309
1300
  type EmployeeTimecardField = 'locationId' | 'locationName' | 'businessDate' | 'employeeName' | 'isActive' | 'lookup' | 'payrollCode' | 'jobName' | 'isBreak' | 'startTime' | 'endTime' | 'shiftHours';
1310
1301
  declare const EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS: EmployeeTimecardField[];
1311
- declare const EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS: EmployeeTimecardField[];
1312
1302
  declare const employeeTimecardConfig: ReportConfig<EmployeeTimecardField>;
1313
1303
 
1314
1304
  type SalesByItemDetailField = 'businessDate' | 'ticketClosedAt' | 'hourId' | 'daypartName' | 'locationId' | 'locationName' | 'departmentName' | 'itemName' | 'revenueCenterName' | 'revenueClassName' | 'salesAmountGross' | 'itemsQuantity' | 'transactionId' | 'guestsCount' | 'employeeName' | 'orderTypeName' | 'salesType' | 'itemPrice';
1315
1305
  declare const SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS: SalesByItemDetailField[];
1316
- declare const SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS: SalesByItemDetailField[];
1317
1306
  declare const salesByItemDetailConfig: ReportConfig<SalesByItemDetailField>;
1318
1307
 
1319
1308
  type TimeFormat = '00:00' | '00:00:00' | '00:00-24H';
@@ -1357,4 +1346,4 @@ declare const getReportFormattingLocaleOptions: (locations: {
1357
1346
  }[]) => LocaleOption[];
1358
1347
  declare const formatFieldValue: (value: unknown, type: FieldType, localeOptions: LocaleOption, fullRecord: Record<string, unknown> | null | undefined, fieldConfig?: ColumnPresentationConfig) => string;
1359
1348
 
1360
- export { COLUMN_REGISTRY, type CalculateReportTotalsOptions, type ColumnAlignment, type ColumnGroupConfig, type ColumnMetadata, type ColumnPresentationConfig, DAILY_SALES_AVAILABLE_COLUMNS, DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS, DAILY_SALES_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS, DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS, DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS, DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_TAXES_AVAILABLE_COLUMNS, DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_TRENDS_AVAILABLE_COLUMNS, EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS, EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS, type FieldType, type FooterCalculation, type FooterCalculationType, type FormatDateOptions, type FormatMoneyOptions, type FormatNumberOptions, type FormatTimeOptions, ITEM_TAX_AVAILABLE_COLUMNS, ITEM_TAX_DEFAULT_VISIBLE_COLUMNS, type LocaleOption, MODIFIER_MIX_AVAILABLE_COLUMNS, MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS, PRODUCT_MIX_AVAILABLE_COLUMNS, PRODUCT_MIX_CHART_FIELDS, PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS, Report, type ReportColumnKey, type ReportConfig, type ReportType, SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS, SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS, SALES_SUMMARY_AVAILABLE_COLUMNS, SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS, TICKET_LIVE_AVAILABLE_COLUMNS, TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS, TICKET_SUMMARY_AVAILABLE_COLUMNS, TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS, type TimeFormat, calculateFieldTotal, calculateReportTotals, dailySalesConfig, dailySalesDiscountsConfig, dailySalesPaymentsConfig, dailySalesRefundsVoidsConfig, dailySalesTaxesConfig, dailySalesTrendsConfig, employeeTimecardConfig, formatDate, formatFieldValue, formatFixedNumber, formatInteger, formatMoney, formatMoneyWithoutSymbol, formatPercent, formatString, formatTime, getColumnAlignment, getColumnExportHeaderLabel, getColumnMetadata, getDateToFormat, getNumberToFormat, getReportConfig, getReportFormattingLocaleOptions, isNumericType, itemTaxConfig, modifierMixConfig, productMixConfig, salesByItemDetailConfig, salesSummaryConfig, ticketLiveConfig, ticketSummaryConfig };
1349
+ export { COLUMN_REGISTRY, type CalculateReportTotalsOptions, type ColumnAlignment, type ColumnGroupConfig, type ColumnMetadata, type ColumnPresentationConfig, DAILY_SALES_AVAILABLE_COLUMNS, DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS, DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS, DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS, DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS, DAILY_SALES_TAXES_AVAILABLE_COLUMNS, DAILY_SALES_TRENDS_AVAILABLE_COLUMNS, EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS, type FieldType, type FooterCalculation, type FooterCalculationType, type FormatDateOptions, type FormatMoneyOptions, type FormatNumberOptions, type FormatTimeOptions, ITEM_TAX_AVAILABLE_COLUMNS, type LocaleOption, MODIFIER_MIX_AVAILABLE_COLUMNS, PRODUCT_MIX_AVAILABLE_COLUMNS, PRODUCT_MIX_CHART_FIELDS, PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS, Report, type ReportColumnKey, type ReportConfig, type ReportType, SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS, SALES_SUMMARY_AVAILABLE_COLUMNS, TICKET_LIVE_AVAILABLE_COLUMNS, TICKET_SUMMARY_AVAILABLE_COLUMNS, type TimeFormat, calculateFieldTotal, calculateReportTotals, dailySalesConfig, dailySalesDiscountsConfig, dailySalesPaymentsConfig, dailySalesRefundsVoidsConfig, dailySalesTaxesConfig, dailySalesTrendsConfig, employeeTimecardConfig, formatDate, formatFieldValue, formatFixedNumber, formatInteger, formatMoney, formatMoneyWithoutSymbol, formatPercent, formatString, formatTime, getColumnAlignment, getColumnExportHeaderLabel, getColumnMetadata, getDateToFormat, getNumberToFormat, getReportConfig, getReportFormattingLocaleOptions, isNumericType, itemTaxConfig, modifierMixConfig, productMixConfig, salesByItemDetailConfig, salesSummaryConfig, ticketLiveConfig, ticketSummaryConfig };
package/dist/index.d.ts CHANGED
@@ -1219,6 +1219,7 @@ interface ReportConfig<TField extends string = string> {
1219
1219
  availableColumns: TField[];
1220
1220
  defaultVisibleColumns: TField[];
1221
1221
  columnGroups?: ColumnGroupConfig[];
1222
+ hasFooter: boolean;
1222
1223
  }
1223
1224
 
1224
1225
  declare const Report: {
@@ -1249,17 +1250,14 @@ declare const calculateReportTotals: <T>(data: T[], fieldConfig: Record<string,
1249
1250
 
1250
1251
  type SalesSummaryField = 'groupById' | 'groupByName' | 'salesAmountNet' | 'salesVarLW' | 'salesVarLY' | 'salesVarLWPct' | 'salesVarLYPct' | 'salesAmountNetLastWeek' | 'salesAmountNetLastYear' | 'salesAmountGross' | 'salesAmountGrossLastWeek' | 'salesAmountGrossLastYear' | 'ticketsCount' | 'ticketsCountLastWeek' | 'ticketsCountLastYear' | 'guestsCount' | 'guestsVarLW' | 'guestsVarLY' | 'guestsVarLWPct' | 'guestsVarLYPct' | 'guestsCountLastWeek' | 'guestsCountLastYear' | 'salesPerGuestTY' | 'salesPerGuestLW' | 'salesPerGuestLY';
1251
1252
  declare const SALES_SUMMARY_AVAILABLE_COLUMNS: SalesSummaryField[];
1252
- declare const SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS: SalesSummaryField[];
1253
1253
  declare const salesSummaryConfig: ReportConfig<SalesSummaryField>;
1254
1254
 
1255
1255
  type TicketSummaryField = 'ticketId' | 'locationId' | 'orderName' | 'revenueCenterName' | 'daypartName' | 'inclusiveTaxesAmount' | 'locationName' | 'orderNumber' | 'businessDate' | 'ticketOpenedAt' | 'ticketClosedAt' | 'ticketTime' | 'ticketSubtotal' | 'discountsAmount' | 'surchargesAmount' | 'taxesAmount' | 'ticketGrandTotal' | 'gratuitiesAmount' | 'tipAmount' | 'paymentsAmount' | 'paymentTypeName' | 'guestsCount' | 'employeeName' | 'orderTypeName';
1256
1256
  declare const TICKET_SUMMARY_AVAILABLE_COLUMNS: TicketSummaryField[];
1257
- declare const TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS: TicketSummaryField[];
1258
1257
  declare const ticketSummaryConfig: ReportConfig<TicketSummaryField>;
1259
1258
 
1260
1259
  type TicketLiveField = 'locationName' | 'orderNumber' | 'dateOpen' | 'timeOpen' | 'dateClose' | 'timeClose' | 'durationMinutes' | 'subtotal' | 'discountTotal' | 'surchargeTotal' | 'taxTotal' | 'grandTotal' | 'gratuityTotal' | 'totalTips' | 'paymentsReceived' | 'paymentTypeName' | 'guestCount' | 'customerName' | 'employeeName' | 'orderType';
1261
1260
  declare const TICKET_LIVE_AVAILABLE_COLUMNS: TicketLiveField[];
1262
- declare const TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS: TicketLiveField[];
1263
1261
  declare const ticketLiveConfig: ReportConfig<TicketLiveField>;
1264
1262
 
1265
1263
  type ProductMixField = 'groupById' | 'groupByName' | 'salesAmountGross' | 'discountsAmount' | 'inclusiveTaxesAmount' | 'salesAmountNet' | 'itemsQuantity' | 'avgPrice' | 'salesMixPct';
@@ -1270,50 +1268,41 @@ declare const productMixConfig: ReportConfig<ProductMixField>;
1270
1268
 
1271
1269
  type ModifierMixField = 'groupById' | 'groupByName' | 'groupById2' | 'groupByName2' | 'modifiersSales' | 'modifiersQuantity' | 'itemsQuantity' | 'avgGross' | 'attachRate' | 'modifiersSalesComp' | 'modifiersQuantityComp' | 'itemsQuantityComp' | 'attachRateComp' | 'modifiersSalesVar' | 'modifiersSalesVarPct' | 'modifiersQuantityVar' | 'modifiersQuantityVarPct' | 'attachRateVar' | 'attachRateVarPct';
1272
1270
  declare const MODIFIER_MIX_AVAILABLE_COLUMNS: ModifierMixField[];
1273
- declare const MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS: ModifierMixField[];
1274
1271
  declare const modifierMixConfig: ReportConfig<ModifierMixField>;
1275
1272
 
1276
1273
  type ItemTaxField = 'locationId' | 'taxIsFlat' | 'merchantId' | 'locationName' | 'locationCity' | 'locationState' | 'itemName' | 'itemPrice' | 'departmentName' | 'revenueClassName' | 'orderTypeName' | 'taxName' | 'taxValue' | 'taxRate' | 'recordsCount' | 'taxableSales' | 'totalCollected' | 'itemTax' | 'taxCollected';
1277
1274
  declare const ITEM_TAX_AVAILABLE_COLUMNS: ItemTaxField[];
1278
- declare const ITEM_TAX_DEFAULT_VISIBLE_COLUMNS: ItemTaxField[];
1279
1275
  declare const itemTaxConfig: ReportConfig<ItemTaxField>;
1280
1276
 
1281
1277
  type DailySalesField = 'groupById' | 'groupByName' | 'itemsQuantity' | 'salesAmountGross' | 'discountsAmount' | 'inclusiveTaxesAmount' | 'salesAmountNet' | 'salesMixPct' | 'avgPrice' | 'ticketsCount' | 'guestsCount' | 'ticketAverage' | 'guestAverage' | 'ticketAvg' | 'guestAvg';
1282
1278
  declare const DAILY_SALES_AVAILABLE_COLUMNS: DailySalesField[];
1283
1279
  declare const DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS: DailySalesField[];
1284
- declare const DAILY_SALES_DEFAULT_VISIBLE_COLUMNS: DailySalesField[];
1285
1280
  declare const dailySalesConfig: ReportConfig<DailySalesField>;
1286
1281
  declare const DAILY_SALES_TRENDS_AVAILABLE_COLUMNS: DailySalesField[];
1287
1282
  declare const dailySalesTrendsConfig: ReportConfig<DailySalesField>;
1288
1283
 
1289
1284
  type DailySalesPaymentsField = 'paymentTypeName' | 'paymentsCount' | 'paymentsAmount' | 'tipsAmount' | 'totalSales';
1290
1285
  declare const DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS: DailySalesPaymentsField[];
1291
- declare const DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS: DailySalesPaymentsField[];
1292
1286
  declare const dailySalesPaymentsConfig: ReportConfig<DailySalesPaymentsField>;
1293
1287
 
1294
1288
  type DailySalesDiscountsField = 'discountName' | 'ticketCount' | 'itemCount' | 'discountsAmount';
1295
1289
  declare const DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS: DailySalesDiscountsField[];
1296
- declare const DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS: DailySalesDiscountsField[];
1297
1290
  declare const dailySalesDiscountsConfig: ReportConfig<DailySalesDiscountsField>;
1298
1291
 
1299
1292
  type DailySalesRefundsVoidsField = 'description' | 'count' | 'amount' | 'pctSales';
1300
1293
  declare const DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS: DailySalesRefundsVoidsField[];
1301
- declare const DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS: DailySalesRefundsVoidsField[];
1302
1294
  declare const dailySalesRefundsVoidsConfig: ReportConfig<DailySalesRefundsVoidsField>;
1303
1295
 
1304
1296
  type DailySalesTaxesField = 'taxName' | 'taxableSales' | 'taxesAmount' | 'exemptSales';
1305
1297
  declare const DAILY_SALES_TAXES_AVAILABLE_COLUMNS: DailySalesTaxesField[];
1306
- declare const DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS: DailySalesTaxesField[];
1307
1298
  declare const dailySalesTaxesConfig: ReportConfig<DailySalesTaxesField>;
1308
1299
 
1309
1300
  type EmployeeTimecardField = 'locationId' | 'locationName' | 'businessDate' | 'employeeName' | 'isActive' | 'lookup' | 'payrollCode' | 'jobName' | 'isBreak' | 'startTime' | 'endTime' | 'shiftHours';
1310
1301
  declare const EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS: EmployeeTimecardField[];
1311
- declare const EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS: EmployeeTimecardField[];
1312
1302
  declare const employeeTimecardConfig: ReportConfig<EmployeeTimecardField>;
1313
1303
 
1314
1304
  type SalesByItemDetailField = 'businessDate' | 'ticketClosedAt' | 'hourId' | 'daypartName' | 'locationId' | 'locationName' | 'departmentName' | 'itemName' | 'revenueCenterName' | 'revenueClassName' | 'salesAmountGross' | 'itemsQuantity' | 'transactionId' | 'guestsCount' | 'employeeName' | 'orderTypeName' | 'salesType' | 'itemPrice';
1315
1305
  declare const SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS: SalesByItemDetailField[];
1316
- declare const SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS: SalesByItemDetailField[];
1317
1306
  declare const salesByItemDetailConfig: ReportConfig<SalesByItemDetailField>;
1318
1307
 
1319
1308
  type TimeFormat = '00:00' | '00:00:00' | '00:00-24H';
@@ -1357,4 +1346,4 @@ declare const getReportFormattingLocaleOptions: (locations: {
1357
1346
  }[]) => LocaleOption[];
1358
1347
  declare const formatFieldValue: (value: unknown, type: FieldType, localeOptions: LocaleOption, fullRecord: Record<string, unknown> | null | undefined, fieldConfig?: ColumnPresentationConfig) => string;
1359
1348
 
1360
- export { COLUMN_REGISTRY, type CalculateReportTotalsOptions, type ColumnAlignment, type ColumnGroupConfig, type ColumnMetadata, type ColumnPresentationConfig, DAILY_SALES_AVAILABLE_COLUMNS, DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS, DAILY_SALES_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS, DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS, DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS, DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_TAXES_AVAILABLE_COLUMNS, DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS, DAILY_SALES_TRENDS_AVAILABLE_COLUMNS, EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS, EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS, type FieldType, type FooterCalculation, type FooterCalculationType, type FormatDateOptions, type FormatMoneyOptions, type FormatNumberOptions, type FormatTimeOptions, ITEM_TAX_AVAILABLE_COLUMNS, ITEM_TAX_DEFAULT_VISIBLE_COLUMNS, type LocaleOption, MODIFIER_MIX_AVAILABLE_COLUMNS, MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS, PRODUCT_MIX_AVAILABLE_COLUMNS, PRODUCT_MIX_CHART_FIELDS, PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS, Report, type ReportColumnKey, type ReportConfig, type ReportType, SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS, SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS, SALES_SUMMARY_AVAILABLE_COLUMNS, SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS, TICKET_LIVE_AVAILABLE_COLUMNS, TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS, TICKET_SUMMARY_AVAILABLE_COLUMNS, TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS, type TimeFormat, calculateFieldTotal, calculateReportTotals, dailySalesConfig, dailySalesDiscountsConfig, dailySalesPaymentsConfig, dailySalesRefundsVoidsConfig, dailySalesTaxesConfig, dailySalesTrendsConfig, employeeTimecardConfig, formatDate, formatFieldValue, formatFixedNumber, formatInteger, formatMoney, formatMoneyWithoutSymbol, formatPercent, formatString, formatTime, getColumnAlignment, getColumnExportHeaderLabel, getColumnMetadata, getDateToFormat, getNumberToFormat, getReportConfig, getReportFormattingLocaleOptions, isNumericType, itemTaxConfig, modifierMixConfig, productMixConfig, salesByItemDetailConfig, salesSummaryConfig, ticketLiveConfig, ticketSummaryConfig };
1349
+ export { COLUMN_REGISTRY, type CalculateReportTotalsOptions, type ColumnAlignment, type ColumnGroupConfig, type ColumnMetadata, type ColumnPresentationConfig, DAILY_SALES_AVAILABLE_COLUMNS, DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS, DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS, DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS, DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS, DAILY_SALES_TAXES_AVAILABLE_COLUMNS, DAILY_SALES_TRENDS_AVAILABLE_COLUMNS, EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS, type FieldType, type FooterCalculation, type FooterCalculationType, type FormatDateOptions, type FormatMoneyOptions, type FormatNumberOptions, type FormatTimeOptions, ITEM_TAX_AVAILABLE_COLUMNS, type LocaleOption, MODIFIER_MIX_AVAILABLE_COLUMNS, PRODUCT_MIX_AVAILABLE_COLUMNS, PRODUCT_MIX_CHART_FIELDS, PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS, Report, type ReportColumnKey, type ReportConfig, type ReportType, SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS, SALES_SUMMARY_AVAILABLE_COLUMNS, TICKET_LIVE_AVAILABLE_COLUMNS, TICKET_SUMMARY_AVAILABLE_COLUMNS, type TimeFormat, calculateFieldTotal, calculateReportTotals, dailySalesConfig, dailySalesDiscountsConfig, dailySalesPaymentsConfig, dailySalesRefundsVoidsConfig, dailySalesTaxesConfig, dailySalesTrendsConfig, employeeTimecardConfig, formatDate, formatFieldValue, formatFixedNumber, formatInteger, formatMoney, formatMoneyWithoutSymbol, formatPercent, formatString, formatTime, getColumnAlignment, getColumnExportHeaderLabel, getColumnMetadata, getDateToFormat, getNumberToFormat, getReportConfig, getReportFormattingLocaleOptions, isNumericType, itemTaxConfig, modifierMixConfig, productMixConfig, salesByItemDetailConfig, salesSummaryConfig, ticketLiveConfig, ticketSummaryConfig };
package/dist/index.js CHANGED
@@ -125,16 +125,13 @@ var SALES_SUMMARY_AVAILABLE_COLUMNS = [
125
125
  "salesPerGuestLW",
126
126
  "salesPerGuestLY"
127
127
  ];
128
- var SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS = [
129
- "salesAmountNet",
130
- "guestsCount",
131
- "salesPerGuestTY"
132
- ];
128
+ var SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS = ["salesAmountNet", "guestsCount", "salesPerGuestTY"];
133
129
  var salesSummaryConfig = {
134
130
  fields: FIELDS,
135
131
  availableColumns: SALES_SUMMARY_AVAILABLE_COLUMNS,
136
132
  defaultVisibleColumns: SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
137
- columnGroups: COLUMN_GROUPS
133
+ columnGroups: COLUMN_GROUPS,
134
+ hasFooter: true
138
135
  };
139
136
 
140
137
  // src/reports/ticketSummary.ts
@@ -224,11 +221,11 @@ var TICKET_SUMMARY_AVAILABLE_COLUMNS = [
224
221
  "employeeName",
225
222
  "orderTypeName"
226
223
  ];
227
- var TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS = TICKET_SUMMARY_AVAILABLE_COLUMNS;
228
224
  var ticketSummaryConfig = {
229
225
  fields: FIELDS2,
230
226
  availableColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
231
- defaultVisibleColumns: TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS
227
+ defaultVisibleColumns: TICKET_SUMMARY_AVAILABLE_COLUMNS,
228
+ hasFooter: true
232
229
  };
233
230
 
234
231
  // src/reports/ticketLive.ts
@@ -282,11 +279,11 @@ var TICKET_LIVE_AVAILABLE_COLUMNS = [
282
279
  "employeeName",
283
280
  "orderType"
284
281
  ];
285
- var TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS = TICKET_LIVE_AVAILABLE_COLUMNS;
286
282
  var ticketLiveConfig = {
287
283
  fields: FIELDS3,
288
284
  availableColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
289
- defaultVisibleColumns: TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS
285
+ defaultVisibleColumns: TICKET_LIVE_AVAILABLE_COLUMNS,
286
+ hasFooter: true
290
287
  };
291
288
 
292
289
  // src/reports/productMix.ts
@@ -332,7 +329,8 @@ var PRODUCT_MIX_CHART_FIELDS = [
332
329
  var productMixConfig = {
333
330
  fields: FIELDS4,
334
331
  availableColumns: PRODUCT_MIX_AVAILABLE_COLUMNS,
335
- defaultVisibleColumns: PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS
332
+ defaultVisibleColumns: PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
333
+ hasFooter: true
336
334
  };
337
335
 
338
336
  // src/reports/modifierMix.ts
@@ -403,11 +401,11 @@ var FIELDS5 = {
403
401
  }
404
402
  };
405
403
  var MODIFIER_MIX_AVAILABLE_COLUMNS = ["modifiersSales", "modifiersQuantity", "avgGross"];
406
- var MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS = MODIFIER_MIX_AVAILABLE_COLUMNS;
407
404
  var modifierMixConfig = {
408
405
  fields: FIELDS5,
409
406
  availableColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
410
- defaultVisibleColumns: MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS
407
+ defaultVisibleColumns: MODIFIER_MIX_AVAILABLE_COLUMNS,
408
+ hasFooter: true
411
409
  };
412
410
 
413
411
  // src/reports/itemTax.ts
@@ -457,11 +455,11 @@ var ITEM_TAX_AVAILABLE_COLUMNS = [
457
455
  "taxableSales",
458
456
  "taxCollected"
459
457
  ];
460
- var ITEM_TAX_DEFAULT_VISIBLE_COLUMNS = ITEM_TAX_AVAILABLE_COLUMNS;
461
458
  var itemTaxConfig = {
462
459
  fields: FIELDS6,
463
460
  availableColumns: ITEM_TAX_AVAILABLE_COLUMNS,
464
- defaultVisibleColumns: ITEM_TAX_DEFAULT_VISIBLE_COLUMNS
461
+ defaultVisibleColumns: ITEM_TAX_AVAILABLE_COLUMNS,
462
+ hasFooter: false
465
463
  };
466
464
 
467
465
  // src/reports/dailySales.ts
@@ -538,11 +536,11 @@ var DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS = [
538
536
  "guestAverage",
539
537
  "salesAmountNet"
540
538
  ];
541
- var DAILY_SALES_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_AVAILABLE_COLUMNS;
542
539
  var dailySalesConfig = {
543
540
  fields: FIELDS7,
544
541
  availableColumns: DAILY_SALES_AVAILABLE_COLUMNS,
545
- defaultVisibleColumns: DAILY_SALES_DEFAULT_VISIBLE_COLUMNS
542
+ defaultVisibleColumns: DAILY_SALES_AVAILABLE_COLUMNS,
543
+ hasFooter: true
546
544
  };
547
545
  var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
548
546
  "ticketsCount",
@@ -554,7 +552,8 @@ var DAILY_SALES_TRENDS_AVAILABLE_COLUMNS = [
554
552
  var dailySalesTrendsConfig = {
555
553
  fields: FIELDS7,
556
554
  availableColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
557
- defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS
555
+ defaultVisibleColumns: DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
556
+ hasFooter: true
558
557
  };
559
558
 
560
559
  // src/reports/dailySalesPayments.ts
@@ -572,11 +571,11 @@ var DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS = [
572
571
  "tipsAmount",
573
572
  "totalSales"
574
573
  ];
575
- var DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS;
576
574
  var dailySalesPaymentsConfig = {
577
575
  fields: FIELDS8,
578
576
  availableColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
579
- defaultVisibleColumns: DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS
577
+ defaultVisibleColumns: DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
578
+ hasFooter: true
580
579
  };
581
580
 
582
581
  // src/reports/dailySalesDiscounts.ts
@@ -592,11 +591,11 @@ var DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS = [
592
591
  "itemCount",
593
592
  "discountsAmount"
594
593
  ];
595
- var DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS;
596
594
  var dailySalesDiscountsConfig = {
597
595
  fields: FIELDS9,
598
596
  availableColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
599
- defaultVisibleColumns: DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS
597
+ defaultVisibleColumns: DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
598
+ hasFooter: true
600
599
  };
601
600
 
602
601
  // src/reports/employeeTimecard.ts
@@ -679,13 +678,13 @@ var EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS = [
679
678
  "endTime",
680
679
  "shiftHours"
681
680
  ];
682
- var EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS = EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS;
683
681
  var employeeTimecardConfig = {
684
682
  fields: FIELDS10,
685
683
  availableColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
686
- defaultVisibleColumns: EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
687
- columnGroups: []
684
+ defaultVisibleColumns: EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
685
+ columnGroups: [],
688
686
  // No column groups for this report
687
+ hasFooter: true
689
688
  };
690
689
 
691
690
  // src/reports/salesByItemDetail.ts
@@ -729,11 +728,11 @@ var SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS = [
729
728
  "salesType",
730
729
  "itemPrice"
731
730
  ];
732
- var SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS = SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS;
733
731
  var salesByItemDetailConfig = {
734
732
  fields: FIELDS11,
735
733
  availableColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
736
- defaultVisibleColumns: SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS
734
+ defaultVisibleColumns: SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
735
+ hasFooter: false
737
736
  };
738
737
 
739
738
  // src/report.ts
@@ -1448,7 +1447,7 @@ var calculateFieldTotal = (rows, field, config) => {
1448
1447
  }
1449
1448
  const calc = config.footerCalculation;
1450
1449
  if (calc?.type === "none") {
1451
- return 0;
1450
+ return null;
1452
1451
  }
1453
1452
  if (!calc || calc.type === "sum") {
1454
1453
  return config.columnKey || calc?.type === "sum" ? sumField(rows, field) : 0;
@@ -1502,11 +1501,11 @@ var DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS = [
1502
1501
  "amount",
1503
1502
  "pctSales"
1504
1503
  ];
1505
- var DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS;
1506
1504
  var dailySalesRefundsVoidsConfig = {
1507
1505
  fields: FIELDS12,
1508
1506
  availableColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1509
- defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS
1507
+ defaultVisibleColumns: DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1508
+ hasFooter: true
1510
1509
  };
1511
1510
 
1512
1511
  // src/reports/dailySalesTaxes.ts
@@ -1522,11 +1521,11 @@ var DAILY_SALES_TAXES_AVAILABLE_COLUMNS = [
1522
1521
  "taxesAmount",
1523
1522
  "exemptSales"
1524
1523
  ];
1525
- var DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS = DAILY_SALES_TAXES_AVAILABLE_COLUMNS;
1526
1524
  var dailySalesTaxesConfig = {
1527
1525
  fields: FIELDS13,
1528
1526
  availableColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1529
- defaultVisibleColumns: DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS
1527
+ defaultVisibleColumns: DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1528
+ hasFooter: true
1530
1529
  };
1531
1530
 
1532
1531
  // src/formatting.ts
@@ -1671,34 +1670,22 @@ export {
1671
1670
  COLUMN_REGISTRY,
1672
1671
  DAILY_SALES_AVAILABLE_COLUMNS,
1673
1672
  DAILY_SALES_BY_GROUP_AVAILABLE_COLUMNS,
1674
- DAILY_SALES_DEFAULT_VISIBLE_COLUMNS,
1675
1673
  DAILY_SALES_DISCOUNTS_AVAILABLE_COLUMNS,
1676
- DAILY_SALES_DISCOUNTS_DEFAULT_VISIBLE_COLUMNS,
1677
1674
  DAILY_SALES_PAYMENTS_AVAILABLE_COLUMNS,
1678
- DAILY_SALES_PAYMENTS_DEFAULT_VISIBLE_COLUMNS,
1679
1675
  DAILY_SALES_REFUNDS_VOIDS_AVAILABLE_COLUMNS,
1680
- DAILY_SALES_REFUNDS_VOIDS_DEFAULT_VISIBLE_COLUMNS,
1681
1676
  DAILY_SALES_TAXES_AVAILABLE_COLUMNS,
1682
- DAILY_SALES_TAXES_DEFAULT_VISIBLE_COLUMNS,
1683
1677
  DAILY_SALES_TRENDS_AVAILABLE_COLUMNS,
1684
1678
  EMPLOYEE_TIMECARD_AVAILABLE_COLUMNS,
1685
- EMPLOYEE_TIMECARD_DEFAULT_VISIBLE_COLUMNS,
1686
1679
  ITEM_TAX_AVAILABLE_COLUMNS,
1687
- ITEM_TAX_DEFAULT_VISIBLE_COLUMNS,
1688
1680
  MODIFIER_MIX_AVAILABLE_COLUMNS,
1689
- MODIFIER_MIX_DEFAULT_VISIBLE_COLUMNS,
1690
1681
  PRODUCT_MIX_AVAILABLE_COLUMNS,
1691
1682
  PRODUCT_MIX_CHART_FIELDS,
1692
1683
  PRODUCT_MIX_DEFAULT_VISIBLE_COLUMNS,
1693
1684
  Report,
1694
1685
  SALES_BY_ITEM_DETAIL_AVAILABLE_COLUMNS,
1695
- SALES_BY_ITEM_DETAIL_DEFAULT_VISIBLE_COLUMNS,
1696
1686
  SALES_SUMMARY_AVAILABLE_COLUMNS,
1697
- SALES_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
1698
1687
  TICKET_LIVE_AVAILABLE_COLUMNS,
1699
- TICKET_LIVE_DEFAULT_VISIBLE_COLUMNS,
1700
1688
  TICKET_SUMMARY_AVAILABLE_COLUMNS,
1701
- TICKET_SUMMARY_DEFAULT_VISIBLE_COLUMNS,
1702
1689
  calculateFieldTotal,
1703
1690
  calculateReportTotals,
1704
1691
  dailySalesConfig,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harbortouch/skytab-analytics-report-utils",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Centralized report column presentation configuration for SkyTab Analytics",
5
5
  "engines": {
6
6
  "node": ">=22.6.0",