tf-checkout-react 1.7.7 → 1.7.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.
@@ -33,6 +33,7 @@ export interface IPaymentPage {
33
33
  stripePublishableKey?: string;
34
34
  stripeAccountId?: string;
35
35
  onStripeReady?: (stripe: any, elements: any) => void;
36
+ onPaymentElementChange?: (event: any) => void;
36
37
  enablePaymentPlan?: boolean;
37
38
  }
38
- export declare const PaymentContainer: ({ paymentFields, handlePayment, formTitle, errorText, checkoutData, onErrorClose, onGetPaymentDataSuccess, onGetPaymentDataError, onPaymentError, themeOptions, elementsOptions, paymentElementOptions, onCountdownFinish, enableTimer, orderInfoLabel, paymentInfoLabel, displayPaymentButton, hidePaymentForm, hideFieldsBlock, isSinglePageCheckout, stripePublishableKey, stripeAccountId, onStripeReady, enablePaymentPlan, }: IPaymentPage) => JSX.Element;
39
+ export declare const PaymentContainer: ({ paymentFields, handlePayment, formTitle, errorText, checkoutData, onErrorClose, onGetPaymentDataSuccess, onGetPaymentDataError, onPaymentError, themeOptions, elementsOptions, paymentElementOptions, onCountdownFinish, enableTimer, orderInfoLabel, paymentInfoLabel, displayPaymentButton, hidePaymentForm, hideFieldsBlock, isSinglePageCheckout, stripePublishableKey, stripeAccountId, onStripeReady, onPaymentElementChange, enablePaymentPlan, }: IPaymentPage) => JSX.Element;
@@ -2,5 +2,6 @@ export declare const X_TF_ECOMMERCE = "X-TF-ECOMMERCE";
2
2
  export declare const FEES_STYLES: {
3
3
  TRADITIONAL: string;
4
4
  DISPLAY_BOTH: string;
5
+ FINAL_WITH_BREAKDOWN: string;
5
6
  };
6
7
  export declare const DEFAULT_FEES_STYLE: string;
@@ -525,7 +525,8 @@ publicRequest.setGuestToken = function (guestToken) {
525
525
  var X_TF_ECOMMERCE = 'X-TF-ECOMMERCE';
526
526
  var FEES_STYLES = {
527
527
  TRADITIONAL: 'TRADITIONAL',
528
- DISPLAY_BOTH: 'DISPLAY_BOTH'
528
+ DISPLAY_BOTH: 'DISPLAY_BOTH',
529
+ FINAL_WITH_BREAKDOWN: 'FINAL_WITH_BREAKDOWN'
529
530
  };
530
531
  var DEFAULT_FEES_STYLE = FEES_STYLES.TRADITIONAL;
531
532
 
@@ -5640,7 +5641,8 @@ var PaymentPlanSection = function PaymentPlanSection(props) {
5640
5641
  // Wrapper component to access Stripe hooks inside Elements context
5641
5642
  var StripeWrapper = function StripeWrapper(_ref) {
5642
5643
  var options = _ref.options,
5643
- onStripeReady = _ref.onStripeReady;
5644
+ onStripeReady = _ref.onStripeReady,
5645
+ onPaymentElementChange = _ref.onPaymentElementChange;
5644
5646
  var stripe = reactStripeJs.useStripe();
5645
5647
  var elements = reactStripeJs.useElements();
5646
5648
  React.useEffect(function () {
@@ -5649,7 +5651,8 @@ var StripeWrapper = function StripeWrapper(_ref) {
5649
5651
  }
5650
5652
  }, [stripe, elements, onStripeReady]);
5651
5653
  return React__default.createElement(reactStripeJs.PaymentElement, {
5652
- options: options
5654
+ options: options,
5655
+ onChange: onPaymentElementChange
5653
5656
  });
5654
5657
  };
5655
5658
  var initialPaymentPlanConfiguration = {
@@ -5741,6 +5744,7 @@ var PaymentContainer = function PaymentContainer(_ref2) {
5741
5744
  stripeAccountId = _ref2.stripeAccountId,
5742
5745
  _ref2$onStripeReady = _ref2.onStripeReady,
5743
5746
  onStripeReady = _ref2$onStripeReady === void 0 ? _identity : _ref2$onStripeReady,
5747
+ onPaymentElementChange = _ref2.onPaymentElementChange,
5744
5748
  _ref2$enablePaymentPl = _ref2.enablePaymentPlan,
5745
5749
  enablePaymentPlan = _ref2$enablePaymentPl === void 0 ? true : _ref2$enablePaymentPl;
5746
5750
  var _useState = React.useState(initialReviewValues),
@@ -6089,11 +6093,13 @@ var PaymentContainer = function PaymentContainer(_ref2) {
6089
6093
  className: "add-on-container"
6090
6094
  }, React__default.createElement("span", null, item.quantity), React__default.createElement("span", {
6091
6095
  className: "add-on-x"
6092
- }, ' x '), React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency)), React__default.createElement("span", {
6096
+ }, ' x '), React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency), CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency)), React__default.createElement("span", {
6093
6097
  className: "add-on-each"
6094
6098
  }, ' each')), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React__default.createElement("p", {
6095
6099
  className: "fees"
6096
- }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"));
6100
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"), CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && parseFloat(item.price) - parseFloat(item.cost) > 0 && React__default.createElement("p", {
6101
+ className: "fees"
6102
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency) + " + " + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price) - parseFloat(item.cost)), currency) + " fee)"));
6097
6103
  })));
6098
6104
  })), !isFreeTickets && paymentPlanIsAvailable && React__default.createElement("div", {
6099
6105
  className: "payment_toggle"
@@ -6122,7 +6128,8 @@ var PaymentContainer = function PaymentContainer(_ref2) {
6122
6128
  options: elementsOptions
6123
6129
  }, React__default.createElement(StripeWrapper, {
6124
6130
  onStripeReady: onStripeReady,
6125
- options: paymentElementOptions
6131
+ options: paymentElementOptions,
6132
+ onPaymentElementChange: onPaymentElementChange
6126
6133
  })))) : displayPaymentButton ? React__default.createElement("div", {
6127
6134
  className: "payment_button " + (paymentIsLoading ? 'disabled-payment-button' : '')
6128
6135
  }, React__default.createElement("button", {
@@ -6439,38 +6446,34 @@ var useStripePayment = function useStripePayment(_ref) {
6439
6446
  isBrowser = _ref.isBrowser;
6440
6447
  var processPayment = /*#__PURE__*/function () {
6441
6448
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(paymentDataResponse, values, formikHelpers, checkoutResponse, checkoutUpdateResponse, paymentData) {
6442
- var attributes, isFreeTickets, updatedOrderData, eventId, _yield$elementsRef$cu, submitError, paymentContext, _yield$stripeRef$curr, confirmError, paymentResponse;
6449
+ var attributes, isFreeTickets, updatedOrderData, eventId, _yield$elementsRef$cu, submitError, paymentContext, confirmParams, rawPhone, e164Phone, _yield$stripeRef$curr, confirmError, paymentResponse;
6443
6450
  return _regeneratorRuntime().wrap(function _callee$(_context) {
6444
6451
  while (1) switch (_context.prev = _context.next) {
6445
6452
  case 0:
6446
6453
  attributes = paymentData.attributes, isFreeTickets = paymentData.isFreeTickets, updatedOrderData = paymentData.updatedOrderData, eventId = paymentData.eventId;
6447
6454
  if (isFreeTickets) {
6448
- _context.next = 25;
6455
+ _context.next = 23;
6449
6456
  break;
6450
6457
  }
6451
6458
  if (stripeRef.current) {
6452
- _context.next = 6;
6459
+ _context.next = 5;
6453
6460
  break;
6454
6461
  }
6455
6462
  setError('Stripe is not ready');
6456
- console.log('Stripe is not ready in billing-info-container');
6457
6463
  return _context.abrupt("return", null);
6458
- case 6:
6459
- console.log('Stripe confirmPayment in billing-info-container');
6460
- // Step 1: Submit elements first
6461
- _context.next = 9;
6464
+ case 5:
6465
+ _context.next = 7;
6462
6466
  return elementsRef.current.submit();
6463
- case 9:
6467
+ case 7:
6464
6468
  _yield$elementsRef$cu = _context.sent;
6465
6469
  submitError = _yield$elementsRef$cu.error;
6466
6470
  if (!submitError) {
6467
- _context.next = 15;
6471
+ _context.next = 12;
6468
6472
  break;
6469
6473
  }
6470
6474
  setError('' + (submitError == null ? void 0 : submitError.message));
6471
- console.log('Stripe elements.submit() error in billing-info-container', submitError);
6472
6475
  return _context.abrupt("return", null);
6473
- case 15:
6476
+ case 12:
6474
6477
  // Step 2: Store payment context before potential redirect
6475
6478
  paymentContext = {
6476
6479
  attributes: attributes,
@@ -6485,30 +6488,38 @@ var useStripePayment = function useStripePayment(_ref) {
6485
6488
  };
6486
6489
  localStorage.setItem('stripe_payment_context', JSON.stringify(paymentContext));
6487
6490
  // Step 3: Confirm payment with current page return URL
6488
- _context.next = 19;
6491
+ confirmParams = {
6492
+ return_url: window.location.href + (window.location.href.includes('?') ? '&' : '?') + 'payment_return=true'
6493
+ };
6494
+ if (values != null && values.phone) {
6495
+ rawPhone = String(values.phone).replace(/[\s\-().]/g, '');
6496
+ e164Phone = rawPhone.startsWith('+') ? rawPhone : "+" + rawPhone;
6497
+ confirmParams.payment_method_data = {
6498
+ billing_details: {
6499
+ phone: e164Phone
6500
+ }
6501
+ };
6502
+ }
6503
+ _context.next = 18;
6489
6504
  return stripeRef.current.confirmPayment({
6490
6505
  clientSecret: paymentDataResponse.data.attributes.payment_method.stripe_client_secret,
6491
6506
  elements: elementsRef.current,
6492
- confirmParams: {
6493
- return_url: window.location.href + (window.location.href.includes('?') ? '&' : '?') + 'payment_return=true'
6494
- },
6507
+ confirmParams: confirmParams,
6495
6508
  redirect: 'if_required'
6496
6509
  });
6497
- case 19:
6510
+ case 18:
6498
6511
  _yield$stripeRef$curr = _context.sent;
6499
6512
  confirmError = _yield$stripeRef$curr.error;
6500
6513
  if (!confirmError) {
6501
- _context.next = 25;
6514
+ _context.next = 23;
6502
6515
  break;
6503
6516
  }
6504
6517
  setError('' + (confirmError == null ? void 0 : confirmError.message));
6505
- console.log('Stripe confirmPayment error in billing-info-container');
6506
6518
  return _context.abrupt("return", null);
6507
- case 25:
6508
- console.log('Stripe confirmPayment success in billing-info-container');
6519
+ case 23:
6509
6520
  // Handle payment middleware for non-redirect payments
6510
6521
  paymentResponse = null;
6511
- _context.next = 29;
6522
+ _context.next = 26;
6512
6523
  return handlePaymentMiddleWare(null, {}, {
6513
6524
  reviewData: attributes,
6514
6525
  isFreeTickets: isFreeTickets,
@@ -6526,9 +6537,9 @@ var useStripePayment = function useStripePayment(_ref) {
6526
6537
  throw error;
6527
6538
  }
6528
6539
  });
6529
- case 29:
6540
+ case 26:
6530
6541
  return _context.abrupt("return", paymentResponse);
6531
- case 30:
6542
+ case 27:
6532
6543
  case "end":
6533
6544
  return _context.stop();
6534
6545
  }
@@ -7015,7 +7026,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref6) {
7015
7026
  setSingleCheckoutAddOns = _useState25[1];
7016
7027
  var orderIsFree = !Number(checkoutData == null ? void 0 : checkoutData.total);
7017
7028
  React.useEffect(function () {
7018
- var hasUniqueId = _get(dataWithUniqueIds, '[0].uniqueId');
7029
+ var hasUniqueId = _get(data, '[0].uniqueId');
7019
7030
  var isEqualData = _isEqual(prevData.current, data);
7020
7031
  if (!hasUniqueId || !isEqualData) {
7021
7032
  setDataWithUniqueIds(assingUniqueIds(data));
@@ -7023,7 +7034,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref6) {
7023
7034
  prevData.current = data;
7024
7035
  }
7025
7036
  }
7026
- }, [dataWithUniqueIds, data]);
7037
+ }, [data]);
7027
7038
  var getQuantity = React.useCallback(function (cart) {
7028
7039
  if (cart === void 0) {
7029
7040
  cart = [];
@@ -7979,6 +7990,11 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref6) {
7979
7990
  checkoutData: checkoutData,
7980
7991
  elementsOptions: elementsOptions,
7981
7992
  paymentElementOptions: {
7993
+ fields: {
7994
+ billingDetails: {
7995
+ phone: 'never'
7996
+ }
7997
+ },
7982
7998
  wallets: {
7983
7999
  applePay: (checkoutUpdateData == null ? void 0 : (_checkoutUpdateData$a6 = checkoutUpdateData.additional_payment_information) == null ? void 0 : (_checkoutUpdateData$a7 = _checkoutUpdateData$a6.stripe_wallets) == null ? void 0 : _checkoutUpdateData$a7.applePay) || 'never',
7984
8000
  googlePay: (checkoutUpdateData == null ? void 0 : (_checkoutUpdateData$a8 = checkoutUpdateData.additional_payment_information) == null ? void 0 : (_checkoutUpdateData$a9 = _checkoutUpdateData$a8.stripe_wallets) == null ? void 0 : _checkoutUpdateData$a9.googlePay) || 'never'
@@ -10271,6 +10287,12 @@ var TicketsSection = function TicketsSection(_ref) {
10271
10287
  var ticketPriceWithFees = priceSymbol + " " + (+ticket.basePrice).toFixed(2);
10272
10288
  var ticketOldPriceWithFees = priceSymbol + " " + (+ticket.oldBasePrice).toFixed(2);
10273
10289
  var ticketOldPriceWithoutFees = priceSymbol + " " + (+ticket.oldCost).toFixed(2);
10290
+ var ticketFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost;
10291
+ var ticketFinalPriceFormatted = priceSymbol + " " + Math.round(ticketFinalPrice);
10292
+ var ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost;
10293
+ var ticketOldFinalPriceFormatted = priceSymbol + " " + Math.round(ticketOldFinalPrice);
10294
+ var ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2);
10295
+ var ticketBreakdown = !ticket.feeIncluded ? '(+ fees at checkout)' : !ticket.isForward ? null : parseFloat(ticketFeeAmount) > 0 ? "(" + priceSymbol + " " + (+ticket.cost).toFixed(2) + " + " + priceSymbol + " " + ticketFeeAmount + " fee)" : null;
10274
10296
  var isSoldOut = ticket.sold_out || !(ticket.displayTicket || ticket.slotGroupId) || ticket.soldOut;
10275
10297
  var ticketSelect = function ticketSelect(event) {
10276
10298
  var value = event.target.value;
@@ -10281,8 +10303,8 @@ var TicketsSection = function TicketsSection(_ref) {
10281
10303
  ticketIsDiscounted = true;
10282
10304
  }
10283
10305
  var ticketIsFree = +ticket.price === 0;
10284
- var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10285
- var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10306
+ var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketOldFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10307
+ var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10286
10308
  var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr = arr[i - 1]) == null ? void 0 : _arr.groupName);
10287
10309
  return React__default.createElement(React__default.Fragment, {
10288
10310
  key: ticket.id || ticket.name
@@ -10325,7 +10347,7 @@ var TicketsSection = function TicketsSection(_ref) {
10325
10347
  className: isSoldOut ? 'sold-out' : ''
10326
10348
  }, ticketPriceElem), !isSoldOut && !ticketIsFree && React__default.createElement("p", {
10327
10349
  className: "fees"
10328
- }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)")), React__default.createElement("div", {
10350
+ }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)", CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && ticketBreakdown)), React__default.createElement("div", {
10329
10351
  className: "event-detail__tier-state",
10330
10352
  style: {
10331
10353
  minWidth: 55
@@ -10349,6 +10371,12 @@ var TicketsSection = function TicketsSection(_ref) {
10349
10371
  var ticketPriceWithFees = priceSymbol + " " + (+ticket.basePrice).toFixed(2);
10350
10372
  var ticketOldPriceWithFees = priceSymbol + " " + (+ticket.oldBasePrice).toFixed(2);
10351
10373
  var ticketOldPriceWithoutFees = priceSymbol + " " + (+ticket.oldCost).toFixed(2);
10374
+ var ticketFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost;
10375
+ var ticketFinalPriceFormatted = priceSymbol + " " + Math.round(ticketFinalPrice);
10376
+ var ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost;
10377
+ var ticketOldFinalPriceFormatted = priceSymbol + " " + Math.round(ticketOldFinalPrice);
10378
+ var ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2);
10379
+ var ticketBreakdown = !ticket.feeIncluded ? '(+ fees at checkout)' : !ticket.isForward ? null : parseFloat(ticketFeeAmount) > 0 ? "(" + priceSymbol + " " + (+ticket.cost).toFixed(2) + " + " + priceSymbol + " " + ticketFeeAmount + " fee)" : null;
10352
10380
  var isSoldOut = ticket.sold_out || !(ticket.displayTicket || ticket.slotGroupId) || ticket.soldOut;
10353
10381
  var ticketSelect = function ticketSelect(event) {
10354
10382
  var value = event.target.value;
@@ -10359,8 +10387,8 @@ var TicketsSection = function TicketsSection(_ref) {
10359
10387
  ticketIsDiscounted = true;
10360
10388
  }
10361
10389
  var ticketIsFree = +ticket.price === 0;
10362
- var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10363
- var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10390
+ var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketOldFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10391
+ var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10364
10392
  var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr2 = arr[i - 1]) == null ? void 0 : _arr2.groupName);
10365
10393
  return React__default.createElement(React__default.Fragment, {
10366
10394
  key: ticket.id || ticket.name
@@ -10403,7 +10431,7 @@ var TicketsSection = function TicketsSection(_ref) {
10403
10431
  className: isSoldOut ? 'sold-out' : ''
10404
10432
  }, ticketPriceElem), !isSoldOut && !ticketIsFree && React__default.createElement("p", {
10405
10433
  className: "fees"
10406
- }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)"), ticket.depositPercent && React__default.createElement("p", {
10434
+ }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)", CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && ticketBreakdown), ticket.depositPercent && React__default.createElement("p", {
10407
10435
  className: "deposits"
10408
10436
  }, ticket.depositPercent + '% DEPOSIT')), React__default.createElement("div", {
10409
10437
  className: "event-detail__tier-state",
@@ -10461,13 +10489,19 @@ var TimeSlotTicketRow = function TimeSlotTicketRow(_ref) {
10461
10489
  var ticketPriceWithFees = priceSymbol + " " + (+ticket.basePrice).toFixed(2);
10462
10490
  var ticketOldPriceWithFees = priceSymbol + " " + (+ticket.oldBasePrice).toFixed(2);
10463
10491
  var ticketOldPriceWithoutFees = priceSymbol + " " + (+ticket.oldCost).toFixed(2);
10492
+ var ticketFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost;
10493
+ var ticketFinalPriceFormatted = priceSymbol + " " + Math.round(ticketFinalPrice);
10494
+ var ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost;
10495
+ var ticketOldFinalPriceFormatted = priceSymbol + " " + Math.round(ticketOldFinalPrice);
10496
+ var ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2);
10497
+ var ticketBreakdown = !ticket.feeIncluded ? '(+ fees at checkout)' : !ticket.isForward ? null : parseFloat(ticketFeeAmount) > 0 ? "(" + priceSymbol + " " + (+ticket.cost).toFixed(2) + " + " + priceSymbol + " " + ticketFeeAmount + " fee)" : null;
10464
10498
  var ticketIsDiscounted = false;
10465
10499
  if (ticket.oldPrice && !isSoldOut && ticket.oldPrice !== ticket.price) {
10466
10500
  ticketIsDiscounted = true;
10467
10501
  }
10468
10502
  var ticketIsFree = +ticket.price === 0;
10469
- var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10470
- var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10503
+ var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketOldFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10504
+ var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10471
10505
  var handleTimeChange = function handleTimeChange(event) {
10472
10506
  var selectedTimeKey = event.target.value;
10473
10507
  var selectedOption = availableTimeSlots.find(function (slot) {
@@ -10521,7 +10555,7 @@ var TimeSlotTicketRow = function TimeSlotTicketRow(_ref) {
10521
10555
  className: isSoldOut ? 'sold-out' : ''
10522
10556
  }, ticketPriceElem), !isSoldOut && !ticketIsFree && React__default.createElement("p", {
10523
10557
  className: "fees"
10524
- }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)")), !isSoldOut && React__default.createElement("div", {
10558
+ }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)", CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && ticketBreakdown)), !isSoldOut && React__default.createElement("div", {
10525
10559
  className: "event-detail__tier-state time-slot-selectors-container"
10526
10560
  }, React__default.createElement(Box, {
10527
10561
  sx: {
@@ -15887,19 +15921,23 @@ var OrderDetails = function OrderDetails(_ref3) {
15887
15921
  className: "add-on-container"
15888
15922
  }, React__default.createElement("span", null, item.quantity), React__default.createElement("span", {
15889
15923
  className: "add-on-x"
15890
- }, ' x '), React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency)), React__default.createElement("span", {
15924
+ }, ' x '), React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency), CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency)), React__default.createElement("span", {
15891
15925
  className: "add-on-each"
15892
15926
  }, ' each')), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React__default.createElement("p", {
15893
15927
  className: "fees"
15894
- }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"));
15928
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"), CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && parseFloat(item.price) - parseFloat(item.cost) > 0 && React__default.createElement("p", {
15929
+ className: "fees"
15930
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency) + " + " + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price) - parseFloat(item.cost)), currency) + " fee)"));
15895
15931
  };
15896
15932
  var defaultTableRenderer = function defaultTableRenderer(item) {
15897
15933
  return React__default.createElement("div", null, React__default.createElement("div", {
15898
15934
  key: item.id,
15899
15935
  className: "table-type-container"
15900
- }, React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, "Guest Count", ': '), React__default.createElement("span", null, item.guestCount)), React__default.createElement("div", null, React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency)), React__default.createElement("br", null), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React__default.createElement("p", {
15936
+ }, React__default.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React__default.createElement("span", null, item.name), React__default.createElement("span", null, ' - '), React__default.createElement("span", null, "Guest Count", ': '), React__default.createElement("span", null, item.guestCount)), React__default.createElement("div", null, React__default.createElement("span", null, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency) + ' (incl. fees)', CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency), CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency)), React__default.createElement("br", null), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React__default.createElement("p", {
15937
+ className: "fees"
15938
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"), CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN && parseFloat(item.price) - parseFloat(item.cost) > 0 && React__default.createElement("p", {
15901
15939
  className: "fees"
15902
- }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)")));
15940
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency) + " + " + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price) - parseFloat(item.cost)), currency) + " fee)")));
15903
15941
  };
15904
15942
  return React__default.createElement("div", {
15905
15943
  className: "payment_page payment_page_single"