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.
@@ -518,7 +518,8 @@ publicRequest.setGuestToken = function (guestToken) {
518
518
  var X_TF_ECOMMERCE = 'X-TF-ECOMMERCE';
519
519
  var FEES_STYLES = {
520
520
  TRADITIONAL: 'TRADITIONAL',
521
- DISPLAY_BOTH: 'DISPLAY_BOTH'
521
+ DISPLAY_BOTH: 'DISPLAY_BOTH',
522
+ FINAL_WITH_BREAKDOWN: 'FINAL_WITH_BREAKDOWN'
522
523
  };
523
524
  var DEFAULT_FEES_STYLE = FEES_STYLES.TRADITIONAL;
524
525
 
@@ -5633,7 +5634,8 @@ var PaymentPlanSection = function PaymentPlanSection(props) {
5633
5634
  // Wrapper component to access Stripe hooks inside Elements context
5634
5635
  var StripeWrapper = function StripeWrapper(_ref) {
5635
5636
  var options = _ref.options,
5636
- onStripeReady = _ref.onStripeReady;
5637
+ onStripeReady = _ref.onStripeReady,
5638
+ onPaymentElementChange = _ref.onPaymentElementChange;
5637
5639
  var stripe = useStripe();
5638
5640
  var elements = useElements();
5639
5641
  useEffect(function () {
@@ -5642,7 +5644,8 @@ var StripeWrapper = function StripeWrapper(_ref) {
5642
5644
  }
5643
5645
  }, [stripe, elements, onStripeReady]);
5644
5646
  return React.createElement(PaymentElement, {
5645
- options: options
5647
+ options: options,
5648
+ onChange: onPaymentElementChange
5646
5649
  });
5647
5650
  };
5648
5651
  var initialPaymentPlanConfiguration = {
@@ -5734,6 +5737,7 @@ var PaymentContainer = function PaymentContainer(_ref2) {
5734
5737
  stripeAccountId = _ref2.stripeAccountId,
5735
5738
  _ref2$onStripeReady = _ref2.onStripeReady,
5736
5739
  onStripeReady = _ref2$onStripeReady === void 0 ? _identity : _ref2$onStripeReady,
5740
+ onPaymentElementChange = _ref2.onPaymentElementChange,
5737
5741
  _ref2$enablePaymentPl = _ref2.enablePaymentPlan,
5738
5742
  enablePaymentPlan = _ref2$enablePaymentPl === void 0 ? true : _ref2$enablePaymentPl;
5739
5743
  var _useState = useState(initialReviewValues),
@@ -6082,11 +6086,13 @@ var PaymentContainer = function PaymentContainer(_ref2) {
6082
6086
  className: "add-on-container"
6083
6087
  }, React.createElement("span", null, item.quantity), React.createElement("span", {
6084
6088
  className: "add-on-x"
6085
- }, ' x '), React.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React.createElement("span", null, item.name), React.createElement("span", null, ' - '), React.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.createElement("span", {
6089
+ }, ' x '), React.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React.createElement("span", null, item.name), React.createElement("span", null, ' - '), React.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.createElement("span", {
6086
6090
  className: "add-on-each"
6087
6091
  }, ' each')), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React.createElement("p", {
6088
6092
  className: "fees"
6089
- }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"));
6093
+ }, "(" + 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.createElement("p", {
6094
+ className: "fees"
6095
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency) + " + " + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price) - parseFloat(item.cost)), currency) + " fee)"));
6090
6096
  })));
6091
6097
  })), !isFreeTickets && paymentPlanIsAvailable && React.createElement("div", {
6092
6098
  className: "payment_toggle"
@@ -6115,7 +6121,8 @@ var PaymentContainer = function PaymentContainer(_ref2) {
6115
6121
  options: elementsOptions
6116
6122
  }, React.createElement(StripeWrapper, {
6117
6123
  onStripeReady: onStripeReady,
6118
- options: paymentElementOptions
6124
+ options: paymentElementOptions,
6125
+ onPaymentElementChange: onPaymentElementChange
6119
6126
  })))) : displayPaymentButton ? React.createElement("div", {
6120
6127
  className: "payment_button " + (paymentIsLoading ? 'disabled-payment-button' : '')
6121
6128
  }, React.createElement("button", {
@@ -6432,38 +6439,34 @@ var useStripePayment = function useStripePayment(_ref) {
6432
6439
  isBrowser = _ref.isBrowser;
6433
6440
  var processPayment = /*#__PURE__*/function () {
6434
6441
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(paymentDataResponse, values, formikHelpers, checkoutResponse, checkoutUpdateResponse, paymentData) {
6435
- var attributes, isFreeTickets, updatedOrderData, eventId, _yield$elementsRef$cu, submitError, paymentContext, _yield$stripeRef$curr, confirmError, paymentResponse;
6442
+ var attributes, isFreeTickets, updatedOrderData, eventId, _yield$elementsRef$cu, submitError, paymentContext, confirmParams, rawPhone, e164Phone, _yield$stripeRef$curr, confirmError, paymentResponse;
6436
6443
  return _regeneratorRuntime().wrap(function _callee$(_context) {
6437
6444
  while (1) switch (_context.prev = _context.next) {
6438
6445
  case 0:
6439
6446
  attributes = paymentData.attributes, isFreeTickets = paymentData.isFreeTickets, updatedOrderData = paymentData.updatedOrderData, eventId = paymentData.eventId;
6440
6447
  if (isFreeTickets) {
6441
- _context.next = 25;
6448
+ _context.next = 23;
6442
6449
  break;
6443
6450
  }
6444
6451
  if (stripeRef.current) {
6445
- _context.next = 6;
6452
+ _context.next = 5;
6446
6453
  break;
6447
6454
  }
6448
6455
  setError('Stripe is not ready');
6449
- console.log('Stripe is not ready in billing-info-container');
6450
6456
  return _context.abrupt("return", null);
6451
- case 6:
6452
- console.log('Stripe confirmPayment in billing-info-container');
6453
- // Step 1: Submit elements first
6454
- _context.next = 9;
6457
+ case 5:
6458
+ _context.next = 7;
6455
6459
  return elementsRef.current.submit();
6456
- case 9:
6460
+ case 7:
6457
6461
  _yield$elementsRef$cu = _context.sent;
6458
6462
  submitError = _yield$elementsRef$cu.error;
6459
6463
  if (!submitError) {
6460
- _context.next = 15;
6464
+ _context.next = 12;
6461
6465
  break;
6462
6466
  }
6463
6467
  setError('' + (submitError == null ? void 0 : submitError.message));
6464
- console.log('Stripe elements.submit() error in billing-info-container', submitError);
6465
6468
  return _context.abrupt("return", null);
6466
- case 15:
6469
+ case 12:
6467
6470
  // Step 2: Store payment context before potential redirect
6468
6471
  paymentContext = {
6469
6472
  attributes: attributes,
@@ -6478,30 +6481,38 @@ var useStripePayment = function useStripePayment(_ref) {
6478
6481
  };
6479
6482
  localStorage.setItem('stripe_payment_context', JSON.stringify(paymentContext));
6480
6483
  // Step 3: Confirm payment with current page return URL
6481
- _context.next = 19;
6484
+ confirmParams = {
6485
+ return_url: window.location.href + (window.location.href.includes('?') ? '&' : '?') + 'payment_return=true'
6486
+ };
6487
+ if (values != null && values.phone) {
6488
+ rawPhone = String(values.phone).replace(/[\s\-().]/g, '');
6489
+ e164Phone = rawPhone.startsWith('+') ? rawPhone : "+" + rawPhone;
6490
+ confirmParams.payment_method_data = {
6491
+ billing_details: {
6492
+ phone: e164Phone
6493
+ }
6494
+ };
6495
+ }
6496
+ _context.next = 18;
6482
6497
  return stripeRef.current.confirmPayment({
6483
6498
  clientSecret: paymentDataResponse.data.attributes.payment_method.stripe_client_secret,
6484
6499
  elements: elementsRef.current,
6485
- confirmParams: {
6486
- return_url: window.location.href + (window.location.href.includes('?') ? '&' : '?') + 'payment_return=true'
6487
- },
6500
+ confirmParams: confirmParams,
6488
6501
  redirect: 'if_required'
6489
6502
  });
6490
- case 19:
6503
+ case 18:
6491
6504
  _yield$stripeRef$curr = _context.sent;
6492
6505
  confirmError = _yield$stripeRef$curr.error;
6493
6506
  if (!confirmError) {
6494
- _context.next = 25;
6507
+ _context.next = 23;
6495
6508
  break;
6496
6509
  }
6497
6510
  setError('' + (confirmError == null ? void 0 : confirmError.message));
6498
- console.log('Stripe confirmPayment error in billing-info-container');
6499
6511
  return _context.abrupt("return", null);
6500
- case 25:
6501
- console.log('Stripe confirmPayment success in billing-info-container');
6512
+ case 23:
6502
6513
  // Handle payment middleware for non-redirect payments
6503
6514
  paymentResponse = null;
6504
- _context.next = 29;
6515
+ _context.next = 26;
6505
6516
  return handlePaymentMiddleWare(null, {}, {
6506
6517
  reviewData: attributes,
6507
6518
  isFreeTickets: isFreeTickets,
@@ -6519,9 +6530,9 @@ var useStripePayment = function useStripePayment(_ref) {
6519
6530
  throw error;
6520
6531
  }
6521
6532
  });
6522
- case 29:
6533
+ case 26:
6523
6534
  return _context.abrupt("return", paymentResponse);
6524
- case 30:
6535
+ case 27:
6525
6536
  case "end":
6526
6537
  return _context.stop();
6527
6538
  }
@@ -7008,7 +7019,7 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref6) {
7008
7019
  setSingleCheckoutAddOns = _useState25[1];
7009
7020
  var orderIsFree = !Number(checkoutData == null ? void 0 : checkoutData.total);
7010
7021
  useEffect(function () {
7011
- var hasUniqueId = _get(dataWithUniqueIds, '[0].uniqueId');
7022
+ var hasUniqueId = _get(data, '[0].uniqueId');
7012
7023
  var isEqualData = _isEqual(prevData.current, data);
7013
7024
  if (!hasUniqueId || !isEqualData) {
7014
7025
  setDataWithUniqueIds(assingUniqueIds(data));
@@ -7016,7 +7027,7 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref6) {
7016
7027
  prevData.current = data;
7017
7028
  }
7018
7029
  }
7019
- }, [dataWithUniqueIds, data]);
7030
+ }, [data]);
7020
7031
  var getQuantity = useCallback(function (cart) {
7021
7032
  if (cart === void 0) {
7022
7033
  cart = [];
@@ -7972,6 +7983,11 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref6) {
7972
7983
  checkoutData: checkoutData,
7973
7984
  elementsOptions: elementsOptions,
7974
7985
  paymentElementOptions: {
7986
+ fields: {
7987
+ billingDetails: {
7988
+ phone: 'never'
7989
+ }
7990
+ },
7975
7991
  wallets: {
7976
7992
  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',
7977
7993
  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'
@@ -10268,6 +10284,12 @@ var TicketsSection = function TicketsSection(_ref) {
10268
10284
  var ticketPriceWithFees = priceSymbol + " " + (+ticket.basePrice).toFixed(2);
10269
10285
  var ticketOldPriceWithFees = priceSymbol + " " + (+ticket.oldBasePrice).toFixed(2);
10270
10286
  var ticketOldPriceWithoutFees = priceSymbol + " " + (+ticket.oldCost).toFixed(2);
10287
+ var ticketFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost;
10288
+ var ticketFinalPriceFormatted = priceSymbol + " " + Math.round(ticketFinalPrice);
10289
+ var ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost;
10290
+ var ticketOldFinalPriceFormatted = priceSymbol + " " + Math.round(ticketOldFinalPrice);
10291
+ var ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2);
10292
+ var ticketBreakdown = !ticket.feeIncluded ? '(+ fees at checkout)' : !ticket.isForward ? null : parseFloat(ticketFeeAmount) > 0 ? "(" + priceSymbol + " " + (+ticket.cost).toFixed(2) + " + " + priceSymbol + " " + ticketFeeAmount + " fee)" : null;
10271
10293
  var isSoldOut = ticket.sold_out || !(ticket.displayTicket || ticket.slotGroupId) || ticket.soldOut;
10272
10294
  var ticketSelect = function ticketSelect(event) {
10273
10295
  var value = event.target.value;
@@ -10278,8 +10300,8 @@ var TicketsSection = function TicketsSection(_ref) {
10278
10300
  ticketIsDiscounted = true;
10279
10301
  }
10280
10302
  var ticketIsFree = +ticket.price === 0;
10281
- var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10282
- var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10303
+ var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketOldFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10304
+ 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;
10283
10305
  var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr = arr[i - 1]) == null ? void 0 : _arr.groupName);
10284
10306
  return React.createElement(React.Fragment, {
10285
10307
  key: ticket.id || ticket.name
@@ -10322,7 +10344,7 @@ var TicketsSection = function TicketsSection(_ref) {
10322
10344
  className: isSoldOut ? 'sold-out' : ''
10323
10345
  }, ticketPriceElem), !isSoldOut && !ticketIsFree && React.createElement("p", {
10324
10346
  className: "fees"
10325
- }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)")), React.createElement("div", {
10347
+ }, 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.createElement("div", {
10326
10348
  className: "event-detail__tier-state",
10327
10349
  style: {
10328
10350
  minWidth: 55
@@ -10346,6 +10368,12 @@ var TicketsSection = function TicketsSection(_ref) {
10346
10368
  var ticketPriceWithFees = priceSymbol + " " + (+ticket.basePrice).toFixed(2);
10347
10369
  var ticketOldPriceWithFees = priceSymbol + " " + (+ticket.oldBasePrice).toFixed(2);
10348
10370
  var ticketOldPriceWithoutFees = priceSymbol + " " + (+ticket.oldCost).toFixed(2);
10371
+ var ticketFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost;
10372
+ var ticketFinalPriceFormatted = priceSymbol + " " + Math.round(ticketFinalPrice);
10373
+ var ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost;
10374
+ var ticketOldFinalPriceFormatted = priceSymbol + " " + Math.round(ticketOldFinalPrice);
10375
+ var ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2);
10376
+ var ticketBreakdown = !ticket.feeIncluded ? '(+ fees at checkout)' : !ticket.isForward ? null : parseFloat(ticketFeeAmount) > 0 ? "(" + priceSymbol + " " + (+ticket.cost).toFixed(2) + " + " + priceSymbol + " " + ticketFeeAmount + " fee)" : null;
10349
10377
  var isSoldOut = ticket.sold_out || !(ticket.displayTicket || ticket.slotGroupId) || ticket.soldOut;
10350
10378
  var ticketSelect = function ticketSelect(event) {
10351
10379
  var value = event.target.value;
@@ -10356,8 +10384,8 @@ var TicketsSection = function TicketsSection(_ref) {
10356
10384
  ticketIsDiscounted = true;
10357
10385
  }
10358
10386
  var ticketIsFree = +ticket.price === 0;
10359
- var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10360
- var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10387
+ var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketOldFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10388
+ 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;
10361
10389
  var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr2 = arr[i - 1]) == null ? void 0 : _arr2.groupName);
10362
10390
  return React.createElement(React.Fragment, {
10363
10391
  key: ticket.id || ticket.name
@@ -10400,7 +10428,7 @@ var TicketsSection = function TicketsSection(_ref) {
10400
10428
  className: isSoldOut ? 'sold-out' : ''
10401
10429
  }, ticketPriceElem), !isSoldOut && !ticketIsFree && React.createElement("p", {
10402
10430
  className: "fees"
10403
- }, 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.createElement("p", {
10431
+ }, 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.createElement("p", {
10404
10432
  className: "deposits"
10405
10433
  }, ticket.depositPercent + '% DEPOSIT')), React.createElement("div", {
10406
10434
  className: "event-detail__tier-state",
@@ -10458,13 +10486,19 @@ var TimeSlotTicketRow = function TimeSlotTicketRow(_ref) {
10458
10486
  var ticketPriceWithFees = priceSymbol + " " + (+ticket.basePrice).toFixed(2);
10459
10487
  var ticketOldPriceWithFees = priceSymbol + " " + (+ticket.oldBasePrice).toFixed(2);
10460
10488
  var ticketOldPriceWithoutFees = priceSymbol + " " + (+ticket.oldCost).toFixed(2);
10489
+ var ticketFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost;
10490
+ var ticketFinalPriceFormatted = priceSymbol + " " + Math.round(ticketFinalPrice);
10491
+ var ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward ? +(ticket.x_face_value || ticket.basePrice) : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost;
10492
+ var ticketOldFinalPriceFormatted = priceSymbol + " " + Math.round(ticketOldFinalPrice);
10493
+ var ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2);
10494
+ var ticketBreakdown = !ticket.feeIncluded ? '(+ fees at checkout)' : !ticket.isForward ? null : parseFloat(ticketFeeAmount) > 0 ? "(" + priceSymbol + " " + (+ticket.cost).toFixed(2) + " + " + priceSymbol + " " + ticketFeeAmount + " fee)" : null;
10461
10495
  var ticketIsDiscounted = false;
10462
10496
  if (ticket.oldPrice && !isSoldOut && ticket.oldPrice !== ticket.price) {
10463
10497
  ticketIsDiscounted = true;
10464
10498
  }
10465
10499
  var ticketIsFree = +ticket.price === 0;
10466
- var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10467
- var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketPriceWithoutFees : ticketPriceWithFees;
10500
+ var discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN ? ticketOldFinalPriceFormatted : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded ? ticketOldPriceWithoutFees : ticketOldPriceWithFees;
10501
+ 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;
10468
10502
  var handleTimeChange = function handleTimeChange(event) {
10469
10503
  var selectedTimeKey = event.target.value;
10470
10504
  var selectedOption = availableTimeSlots.find(function (slot) {
@@ -10518,7 +10552,7 @@ var TimeSlotTicketRow = function TimeSlotTicketRow(_ref) {
10518
10552
  className: isSoldOut ? 'sold-out' : ''
10519
10553
  }, ticketPriceElem), !isSoldOut && !ticketIsFree && React.createElement("p", {
10520
10554
  className: "fees"
10521
- }, CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL && (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && "(" + ticketPriceWithFees + " with fees)")), !isSoldOut && React.createElement("div", {
10555
+ }, 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.createElement("div", {
10522
10556
  className: "event-detail__tier-state time-slot-selectors-container"
10523
10557
  }, React.createElement(Box, {
10524
10558
  sx: {
@@ -15884,19 +15918,23 @@ var OrderDetails = function OrderDetails(_ref3) {
15884
15918
  className: "add-on-container"
15885
15919
  }, React.createElement("span", null, item.quantity), React.createElement("span", {
15886
15920
  className: "add-on-x"
15887
- }, ' x '), React.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React.createElement("span", null, item.name), React.createElement("span", null, ' - '), React.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.createElement("span", {
15921
+ }, ' x '), React.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React.createElement("span", null, item.name), React.createElement("span", null, ' - '), React.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.createElement("span", {
15888
15922
  className: "add-on-each"
15889
15923
  }, ' each')), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React.createElement("p", {
15890
15924
  className: "fees"
15891
- }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)"));
15925
+ }, "(" + 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.createElement("p", {
15926
+ className: "fees"
15927
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency) + " + " + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price) - parseFloat(item.cost)), currency) + " fee)"));
15892
15928
  };
15893
15929
  var defaultTableRenderer = function defaultTableRenderer(item) {
15894
15930
  return React.createElement("div", null, React.createElement("div", {
15895
15931
  key: item.id,
15896
15932
  className: "table-type-container"
15897
- }, React.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React.createElement("span", null, item.name), React.createElement("span", null, ' - '), React.createElement("span", null, "Guest Count", ': '), React.createElement("span", null, item.guestCount)), React.createElement("div", null, React.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.createElement("br", null), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React.createElement("p", {
15933
+ }, React.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React.createElement("span", null, item.name), React.createElement("span", null, ' - '), React.createElement("span", null, "Guest Count", ': '), React.createElement("span", null, item.guestCount)), React.createElement("div", null, React.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.createElement("br", null), CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH && React.createElement("p", {
15934
+ className: "fees"
15935
+ }, "(" + 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.createElement("p", {
15898
15936
  className: "fees"
15899
- }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(String(item.price))), currency) + " with fees)")));
15937
+ }, "(" + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.cost)), currency) + " + " + currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price) - parseFloat(item.cost)), currency) + " fee)")));
15900
15938
  };
15901
15939
  return React.createElement("div", {
15902
15940
  className: "payment_page payment_page_single"