tf-checkout-react 1.4.26 → 1.5.1

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.
Files changed (79) hide show
  1. package/dist/api/index.d.ts +1 -0
  2. package/dist/api/preRegistrationComplete.d.ts +3 -0
  3. package/dist/components/billing-info-container/index.d.ts +1 -3
  4. package/dist/components/common/CopyField.d.ts +12 -0
  5. package/dist/components/common/CopyMessageModal.d.ts +7 -0
  6. package/dist/components/common/index.d.ts +1 -0
  7. package/dist/components/common/socials.d.ts +10 -0
  8. package/dist/components/confirmationContainer/index.d.ts +7 -7
  9. package/dist/components/confirmationContainer/social-buttons.d.ts +5 -2
  10. package/dist/components/forgotPasswordModal/index.d.ts +2 -3
  11. package/dist/components/loginForm/index.d.ts +1 -0
  12. package/dist/components/loginModal/index.d.ts +2 -3
  13. package/dist/components/preRegistration/FieldsSection.d.ts +13 -0
  14. package/dist/components/preRegistration/Influancers.d.ts +2 -0
  15. package/dist/components/preRegistration/PreRegistrationComplete.d.ts +5 -0
  16. package/dist/components/preRegistration/PreRegistrationInformations.d.ts +2 -0
  17. package/dist/components/preRegistration/Prewards.d.ts +2 -0
  18. package/dist/components/preRegistration/ShareOptions.d.ts +2 -0
  19. package/dist/components/preRegistration/constants.d.ts +2 -0
  20. package/dist/components/preRegistration/index.d.ts +17 -0
  21. package/dist/components/preRegistration/utils.d.ts +12 -0
  22. package/dist/components/ticketsContainer/TicketRow.d.ts +3 -2
  23. package/dist/components/ticketsContainer/utils.d.ts +9 -0
  24. package/dist/hooks/index.d.ts +1 -0
  25. package/dist/hooks/useEventListener.d.ts +1 -0
  26. package/dist/hooks/useLocalStorageListener.d.ts +1 -0
  27. package/dist/images/instagram.svg +5 -0
  28. package/dist/images/spotify.svg +6 -0
  29. package/dist/index.d.ts +4 -1
  30. package/dist/tf-checkout-react.cjs.development.js +1525 -173
  31. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  32. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  33. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  34. package/dist/tf-checkout-react.esm.js +1526 -173
  35. package/dist/tf-checkout-react.esm.js.map +1 -1
  36. package/dist/utils/isValidNumber.d.ts +1 -0
  37. package/package.json +1 -1
  38. package/src/api/index.ts +28 -0
  39. package/src/api/orders.ts +3 -3
  40. package/src/api/preRegistrationComplete.ts +37 -0
  41. package/src/assets/images/instagram.svg +5 -0
  42. package/src/assets/images/spotify.svg +6 -0
  43. package/src/components/billing-info-container/index.tsx +1 -7
  44. package/src/components/common/CopyField.tsx +53 -0
  45. package/src/components/common/CopyMessageModal.tsx +34 -0
  46. package/src/components/common/NativeSelectFeild/index.tsx +1 -1
  47. package/src/components/common/index.tsx +1 -0
  48. package/src/components/common/socials.tsx +33 -0
  49. package/src/components/confirmationContainer/config.ts +62 -55
  50. package/src/components/confirmationContainer/index.tsx +11 -31
  51. package/src/components/confirmationContainer/social-buttons.tsx +43 -20
  52. package/src/components/forgotPasswordModal/index.tsx +4 -4
  53. package/src/components/loginForm/index.tsx +4 -0
  54. package/src/components/loginModal/index.tsx +5 -4
  55. package/src/components/myTicketsContainer/index.tsx +2 -2
  56. package/src/components/preRegistration/FieldsSection.tsx +142 -0
  57. package/src/components/preRegistration/Influancers.tsx +34 -0
  58. package/src/components/preRegistration/PreRegistrationComplete.tsx +164 -0
  59. package/src/components/preRegistration/PreRegistrationInformations.tsx +54 -0
  60. package/src/components/preRegistration/Prewards.tsx +41 -0
  61. package/src/components/preRegistration/ShareOptions.tsx +77 -0
  62. package/src/components/preRegistration/constants.tsx +161 -0
  63. package/src/components/preRegistration/index.tsx +274 -0
  64. package/src/components/preRegistration/utils.ts +155 -0
  65. package/src/components/ticketsContainer/ReferralLogic.tsx +1 -1
  66. package/src/components/ticketsContainer/TicketRow.tsx +17 -14
  67. package/src/components/ticketsContainer/TicketsSection.tsx +2 -0
  68. package/src/components/ticketsContainer/index.tsx +77 -8
  69. package/src/components/ticketsContainer/utils.ts +30 -6
  70. package/src/hooks/index.ts +1 -0
  71. package/src/hooks/useEventListener.ts +32 -0
  72. package/src/hooks/useLocalStorageListener.ts +27 -0
  73. package/src/index.ts +6 -2
  74. package/src/types/api/preRegistration.d.ts +11 -0
  75. package/src/types/api/preRegistrationComplete.d.ts +95 -0
  76. package/src/types/pre-registration-complete.d.ts +42 -0
  77. package/src/utils/cookies.ts +7 -7
  78. package/src/utils/isValidNumber.ts +8 -0
  79. package/src/components/common/dist/PhoneNumberField.js +0 -96
@@ -60,8 +60,8 @@ var privateTheming = require('@mui/private-theming');
60
60
  var jwt_decode = _interopDefault(require('jwt-decode'));
61
61
  var _filter = _interopDefault(require('lodash/filter'));
62
62
  var _some = _interopDefault(require('lodash/some'));
63
- var Button$1 = _interopDefault(require('react-bootstrap/Button'));
64
63
  var moment = _interopDefault(require('moment-timezone'));
64
+ var Button$1 = _interopDefault(require('react-bootstrap/Button'));
65
65
  var _sortBy = _interopDefault(require('lodash/sortBy'));
66
66
  var Autocomplete = _interopDefault(require('@mui/material/Autocomplete'));
67
67
  var Paper = _interopDefault(require('@mui/material/Paper'));
@@ -84,6 +84,8 @@ var SeatMapView = _interopDefault(require('tf-seat-map-view'));
84
84
  var InputLabel = _interopDefault(require('@mui/material/InputLabel'));
85
85
  var Tooltip = _interopDefault(require('@mui/material/Tooltip'));
86
86
  var reactBootstrap = require('react-bootstrap');
87
+ var _split = _interopDefault(require('lodash/split'));
88
+ var _slice = _interopDefault(require('lodash/slice'));
87
89
 
88
90
  function _regeneratorRuntime() {
89
91
  _regeneratorRuntime = function () {
@@ -553,7 +555,7 @@ function setCustomCookie(name, value, days) {
553
555
  }
554
556
  if (typeof window !== 'undefined') {
555
557
  var domain = getDomain(window.location.hostname);
556
- document.cookie = name + '=' + (value || '') + expires + '; path=/' + ("; domain=" + domain);
558
+ document.cookie = name + '=' + (value || '') + expires + ("; path=/; domain=" + domain);
557
559
  }
558
560
  }
559
561
  function getCookieByName(cname) {
@@ -562,10 +564,10 @@ function getCookieByName(cname) {
562
564
  var ca = document.cookie.split(';');
563
565
  for (var i = 0; i < ca.length; i++) {
564
566
  var c = ca[i];
565
- while (c.charAt(0) == ' ') {
567
+ while (c.charAt(0) === ' ') {
566
568
  c = c.substring(1);
567
569
  }
568
- if (c.indexOf(name) == 0) {
570
+ if (c.indexOf(name) === 0) {
569
571
  return c.substring(name.length, c.length);
570
572
  }
571
573
  }
@@ -927,16 +929,17 @@ var logout = /*#__PURE__*/function () {
927
929
 
928
930
  var getOrders = /*#__PURE__*/function () {
929
931
  var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(page, limit, eventSlug) {
930
- var response;
932
+ var slug, response;
931
933
  return _regeneratorRuntime().wrap(function _callee$(_context) {
932
934
  while (1) switch (_context.prev = _context.next) {
933
935
  case 0:
934
- _context.next = 2;
935
- return publicRequest.get("v1/account/orders/?page=" + page + "&limit=" + limit + "&filter[event]=" + (eventSlug || CONFIGS.EVENT_SLUG) + "&filter[brand]=" + (CONFIGS.BRAND_SLUG ? "filter[brand]=" + CONFIGS.BRAND_SLUG + "&filter[subbrands]=true" : ''));
936
- case 2:
936
+ slug = eventSlug || CONFIGS.EVENT_SLUG || '';
937
+ _context.next = 3;
938
+ return publicRequest.get("v1/account/orders/?page=" + page + "&limit=" + limit + "&filter[event]=" + slug + "&" + (CONFIGS.BRAND_SLUG ? "filter[brand]=" + CONFIGS.BRAND_SLUG + "&filter[subbrands]=true" : ''));
939
+ case 3:
937
940
  response = _context.sent;
938
941
  return _context.abrupt("return", response.data);
939
- case 4:
942
+ case 5:
940
943
  case "end":
941
944
  return _context.stop();
942
945
  }
@@ -1587,70 +1590,79 @@ var getCheckoutPageConfigs = /*#__PURE__*/function () {
1587
1590
  return _ref2.apply(this, arguments);
1588
1591
  };
1589
1592
  }();
1590
- var getSeatMapData = /*#__PURE__*/function () {
1591
- var _ref3 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(eventId) {
1592
- var reservedSeatsHash, params, response;
1593
+ var confirmPreRegistration = /*#__PURE__*/function () {
1594
+ var _ref3 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(eventId, data) {
1595
+ var response;
1593
1596
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
1594
1597
  while (1) switch (_context3.prev = _context3.next) {
1595
1598
  case 0:
1596
- localStorage.setItem('tierId', '');
1597
- reservedSeatsHash = getQueryVariable('reserved_seats_hash');
1598
- params = {};
1599
- if (reservedSeatsHash) {
1600
- params.reserved_seats_hash = reservedSeatsHash;
1601
- }
1602
- _context3.next = 6;
1603
- return publicRequest.get("v1/event/" + eventId + "/seat-map-data", {
1604
- params: params
1599
+ _context3.next = 2;
1600
+ return publicRequest.post("v1/event/" + eventId + "/pre-registration/confirm", {
1601
+ data: {
1602
+ attributes: data
1603
+ }
1605
1604
  });
1606
- case 6:
1605
+ case 2:
1607
1606
  response = _context3.sent;
1608
1607
  return _context3.abrupt("return", response.data);
1609
- case 8:
1608
+ case 4:
1610
1609
  case "end":
1611
1610
  return _context3.stop();
1612
1611
  }
1613
1612
  }, _callee3);
1614
1613
  }));
1615
- return function getSeatMapData(_x2) {
1614
+ return function confirmPreRegistration(_x2, _x3) {
1616
1615
  return _ref3.apply(this, arguments);
1617
1616
  };
1618
1617
  }();
1619
- var getSeatMapStatuses = /*#__PURE__*/function () {
1618
+ // seat map <--start-->
1619
+ // const makeId = (length = 20) => {
1620
+ // let result = ''
1621
+ // const characters =
1622
+ // 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
1623
+ // const charactersLength = characters.length
1624
+ // for (let i = 0; i < length; i++) {
1625
+ // result += characters.charAt(Math.floor(Math.random() * charactersLength))
1626
+ // }
1627
+ // return result
1628
+ // }
1629
+ var getSeatMapData = /*#__PURE__*/function () {
1620
1630
  var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(eventId) {
1621
- var response;
1631
+ var reservedSeatsHash, params, response;
1622
1632
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1623
1633
  while (1) switch (_context4.prev = _context4.next) {
1624
1634
  case 0:
1625
- _context4.next = 2;
1626
- return publicRequest.get("v1/event/" + eventId + "/seats/status");
1627
- case 2:
1635
+ localStorage.setItem('tierId', '');
1636
+ reservedSeatsHash = getQueryVariable('reserved_seats_hash');
1637
+ params = {};
1638
+ if (reservedSeatsHash) {
1639
+ params.reserved_seats_hash = reservedSeatsHash;
1640
+ }
1641
+ _context4.next = 6;
1642
+ return publicRequest.get("v1/event/" + eventId + "/seat-map-data", {
1643
+ params: params
1644
+ });
1645
+ case 6:
1628
1646
  response = _context4.sent;
1629
1647
  return _context4.abrupt("return", response.data);
1630
- case 4:
1648
+ case 8:
1631
1649
  case "end":
1632
1650
  return _context4.stop();
1633
1651
  }
1634
1652
  }, _callee4);
1635
1653
  }));
1636
- return function getSeatMapStatuses(_x3) {
1654
+ return function getSeatMapData(_x4) {
1637
1655
  return _ref4.apply(this, arguments);
1638
1656
  };
1639
1657
  }();
1640
- var reserveSeat = /*#__PURE__*/function () {
1641
- var _ref5 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(eventId, tierId, seatId) {
1658
+ var getSeatMapStatuses = /*#__PURE__*/function () {
1659
+ var _ref5 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(eventId) {
1642
1660
  var response;
1643
1661
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1644
1662
  while (1) switch (_context5.prev = _context5.next) {
1645
1663
  case 0:
1646
1664
  _context5.next = 2;
1647
- return publicRequest.post("v1/event/" + eventId + "/seats/reserve", {
1648
- data: {
1649
- tierId: tierId,
1650
- seatId: seatId,
1651
- ttl: 10
1652
- }
1653
- });
1665
+ return publicRequest.get("v1/event/" + eventId + "/seats/status");
1654
1666
  case 2:
1655
1667
  response = _context5.sent;
1656
1668
  return _context5.abrupt("return", response.data);
@@ -1660,21 +1672,22 @@ var reserveSeat = /*#__PURE__*/function () {
1660
1672
  }
1661
1673
  }, _callee5);
1662
1674
  }));
1663
- return function reserveSeat(_x4, _x5, _x6) {
1675
+ return function getSeatMapStatuses(_x5) {
1664
1676
  return _ref5.apply(this, arguments);
1665
1677
  };
1666
1678
  }();
1667
- var removeSeatReserve = /*#__PURE__*/function () {
1668
- var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(eventId, tierId, seatIds) {
1679
+ var reserveSeat = /*#__PURE__*/function () {
1680
+ var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(eventId, tierId, seatId) {
1669
1681
  var response;
1670
1682
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1671
1683
  while (1) switch (_context6.prev = _context6.next) {
1672
1684
  case 0:
1673
1685
  _context6.next = 2;
1674
- return publicRequest["delete"]("v1/event/" + eventId + "/seats/delete-reserved", {
1686
+ return publicRequest.post("v1/event/" + eventId + "/seats/reserve", {
1675
1687
  data: {
1676
1688
  tierId: tierId,
1677
- seatIds: seatIds
1689
+ seatId: seatId,
1690
+ ttl: 10
1678
1691
  }
1679
1692
  });
1680
1693
  case 2:
@@ -1686,30 +1699,23 @@ var removeSeatReserve = /*#__PURE__*/function () {
1686
1699
  }
1687
1700
  }, _callee6);
1688
1701
  }));
1689
- return function removeSeatReserve(_x7, _x8, _x9) {
1702
+ return function reserveSeat(_x6, _x7, _x8) {
1690
1703
  return _ref6.apply(this, arguments);
1691
1704
  };
1692
1705
  }();
1693
- // seat map <--end-->
1694
- function getPixelScript(id, pageOptions) {
1695
- var response = publicRequest.get("v1/event/" + id + "/track", {
1696
- params: {
1697
- page_url: pageOptions.pageUrl,
1698
- page: pageOptions.page,
1699
- order_hash: pageOptions.orderHash
1700
- }
1701
- });
1702
- return response;
1703
- }
1704
- // ID Verification
1705
- var getNetverifyUrl = /*#__PURE__*/function () {
1706
- var _ref7 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
1706
+ var removeSeatReserve = /*#__PURE__*/function () {
1707
+ var _ref7 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(eventId, tierId, seatIds) {
1707
1708
  var response;
1708
1709
  return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1709
1710
  while (1) switch (_context7.prev = _context7.next) {
1710
1711
  case 0:
1711
1712
  _context7.next = 2;
1712
- return publicRequest.get('v1/authenticate/verify');
1713
+ return publicRequest["delete"]("v1/event/" + eventId + "/seats/delete-reserved", {
1714
+ data: {
1715
+ tierId: tierId,
1716
+ seatIds: seatIds
1717
+ }
1718
+ });
1713
1719
  case 2:
1714
1720
  response = _context7.sent;
1715
1721
  return _context7.abrupt("return", response.data);
@@ -1719,18 +1725,30 @@ var getNetverifyUrl = /*#__PURE__*/function () {
1719
1725
  }
1720
1726
  }, _callee7);
1721
1727
  }));
1722
- return function getNetverifyUrl() {
1728
+ return function removeSeatReserve(_x9, _x10, _x11) {
1723
1729
  return _ref7.apply(this, arguments);
1724
1730
  };
1725
1731
  }();
1726
- var checkVerificationStatus = /*#__PURE__*/function () {
1732
+ // seat map <--end-->
1733
+ function getPixelScript(id, pageOptions) {
1734
+ var response = publicRequest.get("v1/event/" + id + "/track", {
1735
+ params: {
1736
+ page_url: pageOptions.pageUrl,
1737
+ page: pageOptions.page,
1738
+ order_hash: pageOptions.orderHash
1739
+ }
1740
+ });
1741
+ return response;
1742
+ }
1743
+ // ID Verification
1744
+ var getNetverifyUrl = /*#__PURE__*/function () {
1727
1745
  var _ref8 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
1728
1746
  var response;
1729
1747
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1730
1748
  while (1) switch (_context8.prev = _context8.next) {
1731
1749
  case 0:
1732
1750
  _context8.next = 2;
1733
- return publicRequest.get('v1/authenticate/get-verification-info');
1751
+ return publicRequest.get('v1/authenticate/verify');
1734
1752
  case 2:
1735
1753
  response = _context8.sent;
1736
1754
  return _context8.abrupt("return", response.data);
@@ -1740,26 +1758,18 @@ var checkVerificationStatus = /*#__PURE__*/function () {
1740
1758
  }
1741
1759
  }, _callee8);
1742
1760
  }));
1743
- return function checkVerificationStatus() {
1761
+ return function getNetverifyUrl() {
1744
1762
  return _ref8.apply(this, arguments);
1745
1763
  };
1746
1764
  }();
1747
- var updateVerificationStatus = /*#__PURE__*/function () {
1765
+ var checkVerificationStatus = /*#__PURE__*/function () {
1748
1766
  var _ref9 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1749
1767
  var response;
1750
1768
  return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1751
1769
  while (1) switch (_context9.prev = _context9.next) {
1752
1770
  case 0:
1753
1771
  _context9.next = 2;
1754
- return publicRequest.patch('v1/authenticate/verify', {
1755
- data: {
1756
- attributes: {
1757
- verification: {
1758
- verificationStatus: 'PENDING'
1759
- }
1760
- }
1761
- }
1762
- });
1772
+ return publicRequest.get('v1/authenticate/get-verification-info');
1763
1773
  case 2:
1764
1774
  response = _context9.sent;
1765
1775
  return _context9.abrupt("return", response.data);
@@ -1769,18 +1779,26 @@ var updateVerificationStatus = /*#__PURE__*/function () {
1769
1779
  }
1770
1780
  }, _callee9);
1771
1781
  }));
1772
- return function updateVerificationStatus() {
1782
+ return function checkVerificationStatus() {
1773
1783
  return _ref9.apply(this, arguments);
1774
1784
  };
1775
1785
  }();
1776
- var checkCustomerOrder = /*#__PURE__*/function () {
1777
- var _ref10 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(orderHash) {
1786
+ var updateVerificationStatus = /*#__PURE__*/function () {
1787
+ var _ref10 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
1778
1788
  var response;
1779
1789
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1780
1790
  while (1) switch (_context10.prev = _context10.next) {
1781
1791
  case 0:
1782
1792
  _context10.next = 2;
1783
- return publicRequest.get("v1/order/" + orderHash + "/verify-customer-order");
1793
+ return publicRequest.patch('v1/authenticate/verify', {
1794
+ data: {
1795
+ attributes: {
1796
+ verification: {
1797
+ verificationStatus: 'PENDING'
1798
+ }
1799
+ }
1800
+ }
1801
+ });
1784
1802
  case 2:
1785
1803
  response = _context10.sent;
1786
1804
  return _context10.abrupt("return", response.data);
@@ -1790,33 +1808,54 @@ var checkCustomerOrder = /*#__PURE__*/function () {
1790
1808
  }
1791
1809
  }, _callee10);
1792
1810
  }));
1793
- return function checkCustomerOrder(_x10) {
1811
+ return function updateVerificationStatus() {
1794
1812
  return _ref10.apply(this, arguments);
1795
1813
  };
1796
1814
  }();
1797
- var refreshSeatReservation = /*#__PURE__*/function () {
1798
- var _ref11 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(eventId, orderId) {
1815
+ var checkCustomerOrder = /*#__PURE__*/function () {
1816
+ var _ref11 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(orderHash) {
1799
1817
  var response;
1800
1818
  return _regeneratorRuntime().wrap(function _callee11$(_context11) {
1801
1819
  while (1) switch (_context11.prev = _context11.next) {
1802
1820
  case 0:
1803
1821
  _context11.next = 2;
1804
- return publicRequest.patch("event/" + eventId + "/reservation/refresh/", {
1805
- order_id: orderId
1806
- });
1822
+ return publicRequest.get("v1/order/" + orderHash + "/verify-customer-order");
1807
1823
  case 2:
1808
1824
  response = _context11.sent;
1809
- return _context11.abrupt("return", response);
1825
+ return _context11.abrupt("return", response.data);
1810
1826
  case 4:
1811
1827
  case "end":
1812
1828
  return _context11.stop();
1813
1829
  }
1814
1830
  }, _callee11);
1815
1831
  }));
1816
- return function refreshSeatReservation(_x11, _x12) {
1832
+ return function checkCustomerOrder(_x12) {
1817
1833
  return _ref11.apply(this, arguments);
1818
1834
  };
1819
1835
  }();
1836
+ var refreshSeatReservation = /*#__PURE__*/function () {
1837
+ var _ref12 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(eventId, orderId) {
1838
+ var response;
1839
+ return _regeneratorRuntime().wrap(function _callee12$(_context12) {
1840
+ while (1) switch (_context12.prev = _context12.next) {
1841
+ case 0:
1842
+ _context12.next = 2;
1843
+ return publicRequest.patch("event/" + eventId + "/reservation/refresh/", {
1844
+ order_id: orderId
1845
+ });
1846
+ case 2:
1847
+ response = _context12.sent;
1848
+ return _context12.abrupt("return", response);
1849
+ case 4:
1850
+ case "end":
1851
+ return _context12.stop();
1852
+ }
1853
+ }, _callee12);
1854
+ }));
1855
+ return function refreshSeatReservation(_x13, _x14) {
1856
+ return _ref12.apply(this, arguments);
1857
+ };
1858
+ }();
1820
1859
 
1821
1860
  function appendScriptsToHeader(code) {
1822
1861
  if (isBrowser && code) {
@@ -2116,8 +2155,8 @@ var Schema = /*#__PURE__*/Yup.object().shape({
2116
2155
  var ForgotPasswordModal = function ForgotPasswordModal(_ref) {
2117
2156
  var _ref$onClose = _ref.onClose,
2118
2157
  onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,
2119
- _ref$onLogin = _ref.onLogin,
2120
- onLogin = _ref$onLogin === void 0 ? function () {} : _ref$onLogin,
2158
+ _ref$onLoginButtonCli = _ref.onLoginButtonClick,
2159
+ onLoginButtonClick = _ref$onLoginButtonCli === void 0 ? function () {} : _ref$onLoginButtonCli,
2121
2160
  _ref$onForgotPassword = _ref.onForgotPasswordSuccess,
2122
2161
  onForgotPasswordSuccess = _ref$onForgotPassword === void 0 ? function () {} : _ref$onForgotPassword,
2123
2162
  _ref$onForgotPassword2 = _ref.onForgotPasswordError,
@@ -2206,7 +2245,7 @@ var ForgotPasswordModal = function ForgotPasswordModal(_ref) {
2206
2245
  }) : 'Submit')), React__default.createElement("div", {
2207
2246
  className: "login"
2208
2247
  }, React__default.createElement("span", {
2209
- onClick: onLogin
2248
+ onClick: onLoginButtonClick
2210
2249
  }, "Back to Log In")), showPoweredByImage ? React__default.createElement(PoweredBy, null) : null);
2211
2250
  }))));
2212
2251
  };
@@ -2336,7 +2375,7 @@ var LoginModal = function LoginModal(_ref) {
2336
2375
  },
2337
2376
  onSubmit: function () {
2338
2377
  var _onSubmit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
2339
- var email, password, body, profileResponse, profileSpecifiedData, profileDataObj, event, _e$response, _e$response$data, _error;
2378
+ var email, password, body, authRes, profileResponse, profileSpecifiedData, profileDataObj, event, _e$response, _e$response$data, _error;
2340
2379
  return _regeneratorRuntime().wrap(function _callee$(_context) {
2341
2380
  while (1) switch (_context.prev = _context.next) {
2342
2381
  case 0:
@@ -2349,23 +2388,24 @@ var LoginModal = function LoginModal(_ref) {
2349
2388
  _context.next = 5;
2350
2389
  return authorize(body);
2351
2390
  case 5:
2391
+ authRes = _context.sent;
2352
2392
  profileResponse = null;
2353
- _context.prev = 6;
2354
- _context.next = 9;
2393
+ _context.prev = 7;
2394
+ _context.next = 10;
2355
2395
  return getProfileData();
2356
- case 9:
2396
+ case 10:
2357
2397
  profileResponse = _context.sent;
2358
2398
  onGetProfileDataSuccess(profileResponse.data);
2359
- _context.next = 17;
2399
+ _context.next = 18;
2360
2400
  break;
2361
- case 13:
2362
- _context.prev = 13;
2363
- _context.t0 = _context["catch"](6);
2401
+ case 14:
2402
+ _context.prev = 14;
2403
+ _context.t0 = _context["catch"](7);
2364
2404
  if (axios.isAxiosError(_context.t0)) {
2365
2405
  onGetProfileDataError(_context.t0);
2366
2406
  }
2367
2407
  return _context.abrupt("return");
2368
- case 17:
2408
+ case 18:
2369
2409
  profileSpecifiedData = profileResponse.data;
2370
2410
  profileDataObj = setLoggedUserData(profileSpecifiedData);
2371
2411
  if (isBrowser) {
@@ -2373,11 +2413,11 @@ var LoginModal = function LoginModal(_ref) {
2373
2413
  event = new window.CustomEvent('tf-login');
2374
2414
  window.document.dispatchEvent(event);
2375
2415
  }
2376
- onLogin();
2377
- _context.next = 26;
2416
+ onLogin(_get(authRes, 'data.data'));
2417
+ _context.next = 27;
2378
2418
  break;
2379
- case 23:
2380
- _context.prev = 23;
2419
+ case 24:
2420
+ _context.prev = 24;
2381
2421
  _context.t1 = _context["catch"](1);
2382
2422
  if (axios.isAxiosError(_context.t1)) {
2383
2423
  _error = (_context.t1 == null ? void 0 : (_e$response = _context.t1.response) == null ? void 0 : (_e$response$data = _e$response.data) == null ? void 0 : _e$response$data.message) || 'Error';
@@ -2385,11 +2425,11 @@ var LoginModal = function LoginModal(_ref) {
2385
2425
  } else if (_context.t1 instanceof Error) {
2386
2426
  setError((_context.t1 == null ? void 0 : _context.t1.message) || 'Error');
2387
2427
  }
2388
- case 26:
2428
+ case 27:
2389
2429
  case "end":
2390
2430
  return _context.stop();
2391
2431
  }
2392
- }, _callee, null, [[1, 23], [6, 13]]);
2432
+ }, _callee, null, [[1, 24], [7, 14]]);
2393
2433
  }));
2394
2434
  function onSubmit(_x) {
2395
2435
  return _onSubmit.apply(this, arguments);
@@ -2893,6 +2933,29 @@ function SelectField(_ref) {
2893
2933
  }, error) : null));
2894
2934
  }
2895
2935
 
2936
+ var CopyMessageModal = function CopyMessageModal(props) {
2937
+ var _props$showCopyModal = props.showCopyModal,
2938
+ showCopyModal = _props$showCopyModal === void 0 ? false : _props$showCopyModal,
2939
+ onClose = props.onClose;
2940
+ return React__default.createElement(Modal$1, {
2941
+ open: showCopyModal,
2942
+ onClose: onClose,
2943
+ "aria-labelledby": "modal-modal-title",
2944
+ "aria-describedby": "modal-modal-description",
2945
+ className: "success-copy-modal"
2946
+ }, React__default.createElement("div", {
2947
+ className: "message-copy-success-box"
2948
+ }, React__default.createElement("div", {
2949
+ className: "message-copy-success"
2950
+ }, React__default.createElement("span", null, "Copied to your clipboard! Now paste your link in a Snapchat message,"), React__default.createElement("span", null, "your Instagram bio, Whatsapp, Facebook or a text :)")), React__default.createElement("div", {
2951
+ className: "footer"
2952
+ }, React__default.createElement("button", {
2953
+ className: "footer-button",
2954
+ type: "button",
2955
+ onClick: onClose
2956
+ }, "OK"))));
2957
+ };
2958
+
2896
2959
  var DATE_SIZE = 32;
2897
2960
  var compactStyles = {
2898
2961
  '& > div': {
@@ -3016,7 +3079,7 @@ var NativeSelectField = function NativeSelectField(_ref) {
3016
3079
  id: field.name
3017
3080
  },
3018
3081
  "native": true,
3019
- className: theme,
3082
+ className: "Mui-Select " + theme,
3020
3083
  MenuProps: {
3021
3084
  className: theme
3022
3085
  }
@@ -3416,10 +3479,6 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3416
3479
  _onGetProfileDataSuccess = _ref4$onGetProfileDat === void 0 ? _identity : _ref4$onGetProfileDat,
3417
3480
  _ref4$onGetProfileDat2 = _ref4.onGetProfileDataError,
3418
3481
  onGetProfileDataError = _ref4$onGetProfileDat2 === void 0 ? _identity : _ref4$onGetProfileDat2,
3419
- _ref4$onAuthorizeSucc = _ref4.onAuthorizeSuccess,
3420
- onAuthorizeSuccess = _ref4$onAuthorizeSucc === void 0 ? _identity : _ref4$onAuthorizeSucc,
3421
- _ref4$onAuthorizeErro = _ref4.onAuthorizeError,
3422
- onAuthorizeError = _ref4$onAuthorizeErro === void 0 ? _identity : _ref4$onAuthorizeErro,
3423
3482
  onLogin = _ref4.onLogin,
3424
3483
  _ref4$onLoginSuccess = _ref4.onLoginSuccess,
3425
3484
  onLoginSuccess = _ref4$onLoginSuccess === void 0 ? _identity : _ref4$onLoginSuccess,
@@ -4239,8 +4298,6 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
4239
4298
  },
4240
4299
  alreadyHasUser: alreadyHasUser,
4241
4300
  userExpired: userExpired,
4242
- onAuthorizeSuccess: onAuthorizeSuccess,
4243
- onAuthorizeError: onAuthorizeError,
4244
4301
  onGetProfileDataSuccess: function onGetProfileDataSuccess(data) {
4245
4302
  fetchCart();
4246
4303
  _onGetProfileDataSuccess(data);
@@ -4272,7 +4329,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
4272
4329
  onClose: function onClose() {
4273
4330
  setShowModalForgotPassword(false);
4274
4331
  },
4275
- onLogin: function onLogin() {
4332
+ onLoginButtonClick: function onLoginButtonClick() {
4276
4333
  setShowModalForgotPassword(false);
4277
4334
  setShowModalLogin(true);
4278
4335
  },
@@ -5190,6 +5247,48 @@ var PaymentContainer = function PaymentContainer(_ref) {
5190
5247
  }) : isFreeTickets ? 'Complete Registration' : 'Confirm Payment Plan')))));
5191
5248
  };
5192
5249
 
5250
+ var isValidNumber = function isValidNumber(value) {
5251
+ if (isNaN(Number(value))) {
5252
+ return false;
5253
+ }
5254
+ return _isNumber(Number(value));
5255
+ };
5256
+
5257
+ var getImage = function getImage(name) {
5258
+ if (name === void 0) {
5259
+ name = '';
5260
+ }
5261
+ var image = '';
5262
+ if (!name.trim().length) {
5263
+ return image;
5264
+ }
5265
+ return image;
5266
+ };
5267
+
5268
+ var SpotifyIcon = function SpotifyIcon() {
5269
+ return React__default.createElement(SVG, {
5270
+ src: getImage('spotify.svg')
5271
+ });
5272
+ };
5273
+ var InstagramIcon = function InstagramIcon() {
5274
+ return React__default.createElement(SVG, {
5275
+ src: getImage('instagram.svg')
5276
+ });
5277
+ };
5278
+ var SocialButton = function SocialButton(props) {
5279
+ var children = props.children,
5280
+ url = props.url,
5281
+ disabled = props.disabled;
5282
+ var handleClick = function handleClick() {
5283
+ window.open(url);
5284
+ };
5285
+ return React__default.createElement("button", {
5286
+ className: "react-share__ShareButton " + (disabled ? 'disabled-action' : ''),
5287
+ type: "button",
5288
+ onClick: !disabled ? handleClick : _identity
5289
+ }, children);
5290
+ };
5291
+
5193
5292
  var config = {
5194
5293
  facebook: {
5195
5294
  component: reactShare.FacebookShareButton,
@@ -5274,6 +5373,14 @@ var config = {
5274
5373
  hatena: {
5275
5374
  component: reactShare.HatenaShareButton,
5276
5375
  icon: reactShare.HatenaIcon
5376
+ },
5377
+ instagram: {
5378
+ component: SocialButton,
5379
+ icon: InstagramIcon
5380
+ },
5381
+ spotify: {
5382
+ component: SocialButton,
5383
+ icon: SpotifyIcon
5277
5384
  }
5278
5385
  };
5279
5386
  function config$1 (key) {
@@ -5285,11 +5392,20 @@ var SocialComponent = function SocialComponent(_ref) {
5285
5392
  var mainLabel = _ref.mainLabel,
5286
5393
  subLabel = _ref.subLabel,
5287
5394
  platform = _ref.platform,
5288
- shareData = _ref.shareData;
5395
+ shareData = _ref.shareData,
5396
+ points = _ref.points,
5397
+ onAfterShare = _ref.onAfterShare,
5398
+ alreadyApplied = _ref.alreadyApplied,
5399
+ oneTimeAction = _ref.oneTimeAction;
5289
5400
  var Component = (_config = config$1(platform)) == null ? void 0 : _config.component;
5290
5401
  var Icon = (_config2 = config$1(platform)) == null ? void 0 : _config2.icon;
5291
- return React__default.createElement(React__default.Fragment, null, Component && React__default.createElement(Component, Object.assign({}, shareData), React__default.createElement("div", {
5292
- className: "social-media-sharing"
5402
+ var isActionDisabled = alreadyApplied && oneTimeAction;
5403
+ return React__default.createElement(React__default.Fragment, null, Component && React__default.createElement(Component, Object.assign({}, shareData, {
5404
+ disabled: isActionDisabled
5405
+ }), React__default.createElement("div", {
5406
+ onKeyDown: _identity,
5407
+ onClick: !isActionDisabled ? onAfterShare : _identity,
5408
+ className: "social-media-sharing " + platform
5293
5409
  }, React__default.createElement("div", {
5294
5410
  className: "share-icon"
5295
5411
  }, React__default.createElement(Icon, {
@@ -5297,7 +5413,17 @@ var SocialComponent = function SocialComponent(_ref) {
5297
5413
  round: true
5298
5414
  })), React__default.createElement("span", {
5299
5415
  className: "share-text"
5300
- }, mainLabel, React__default.createElement("br", null), " ", subLabel))));
5416
+ }, React__default.createElement("span", {
5417
+ className: "main-label"
5418
+ }, mainLabel, " "), React__default.createElement("span", {
5419
+ className: "sub-label"
5420
+ }, subLabel)), isValidNumber(points) && React__default.createElement("div", {
5421
+ className: "share-points"
5422
+ }, React__default.createElement("span", {
5423
+ className: "points-count"
5424
+ }, points), React__default.createElement("span", {
5425
+ className: "points-text"
5426
+ }, "Points")))));
5301
5427
  };
5302
5428
  var SocialButtons = function SocialButtons(_ref2) {
5303
5429
  var showDefaultShareButtons = _ref2.showDefaultShareButtons,
@@ -5305,11 +5431,18 @@ var SocialButtons = function SocialButtons(_ref2) {
5305
5431
  name = _ref2.name,
5306
5432
  appId = _ref2.appId,
5307
5433
  shareButtons = _ref2.shareButtons,
5434
+ _ref2$titleText = _ref2.titleText,
5435
+ titleText = _ref2$titleText === void 0 ? 'or use one of these convenient buttons:' : _ref2$titleText,
5436
+ _ref2$footerText = _ref2.footerText,
5437
+ footerText = _ref2$footerText === void 0 ? React__default.createElement("p", null, "We ", React__default.createElement("strong", null, "never"), " post on Facebook without your permission!") : _ref2$footerText,
5308
5438
  clientLabel = _ref2.clientLabel,
5309
- showReferralsInfoText = _ref2.showReferralsInfoText;
5310
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
5439
+ _ref2$onAfterShare = _ref2.onAfterShare,
5440
+ _onAfterShare = _ref2$onAfterShare === void 0 ? _identity : _ref2$onAfterShare,
5441
+ _ref2$showReferralsIn = _ref2.showReferralsInfoText,
5442
+ showReferralsInfoText = _ref2$showReferralsIn === void 0 ? false : _ref2$showReferralsIn;
5443
+ return React__default.createElement(React__default.Fragment, null, titleText && React__default.createElement("div", {
5311
5444
  className: "convenient_buttons"
5312
- }, "or use one of these convenient buttons:"), React__default.createElement("div", {
5445
+ }, titleText), React__default.createElement("div", {
5313
5446
  className: "social-media-btns"
5314
5447
  }, showDefaultShareButtons && React__default.createElement(React__default.Fragment, null, React__default.createElement(SocialComponent, {
5315
5448
  mainLabel: "Share on",
@@ -5345,9 +5478,12 @@ var SocialButtons = function SocialButtons(_ref2) {
5345
5478
  }
5346
5479
  })), shareButtons.map(function (shareButton, index) {
5347
5480
  return React__default.createElement(SocialComponent, Object.assign({
5481
+ onAfterShare: function onAfterShare() {
5482
+ return _onAfterShare(shareButton.eventActionId);
5483
+ },
5348
5484
  key: index
5349
5485
  }, shareButton));
5350
- })), (showDefaultShareButtons || shareButtons.length) && React__default.createElement("p", null, "We ", React__default.createElement("strong", null, "never"), " post on Facebook without your permission!"), (showReferralsInfoText || Boolean(clientLabel)) && React__default.createElement("p", {
5486
+ })), showDefaultShareButtons || shareButtons.length ? footerText : null, (showReferralsInfoText || Boolean(clientLabel)) && React__default.createElement("p", {
5351
5487
  className: "note-message"
5352
5488
  }, React__default.createElement("span", null, "*Please note, only purchases made from a different", ' ', clientLabel || 'Ticket Fairy', " account can count towards your referrals"), React__default.createElement("span", null, ' ', "so please make sure you ask your friends to buy their own tickets using their own ", clientLabel || 'Ticket Fairy', " account!")));
5353
5489
  };
@@ -5427,7 +5563,7 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
5427
5563
  case 12:
5428
5564
  _context.prev = 12;
5429
5565
  _context.t0 = _context["catch"](1);
5430
- onGetConfirmationDataError(_context.t0.response);
5566
+ if (axios.isAxiosError(_context.t0)) onGetConfirmationDataError(_context.t0);
5431
5567
  case 15:
5432
5568
  case "end":
5433
5569
  return _context.stop();
@@ -5467,23 +5603,10 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
5467
5603
  });
5468
5604
  return React__default.createElement("div", {
5469
5605
  className: "confirmation-page"
5470
- }, showCopyInfoModal && React__default.createElement(Modal$1, {
5471
- open: showCopyModal,
5606
+ }, showCopyInfoModal && React__default.createElement(CopyMessageModal, {
5472
5607
  onClose: onClose,
5473
- "aria-labelledby": "modal-modal-title",
5474
- "aria-describedby": "modal-modal-description",
5475
- className: "success-copy-modal"
5476
- }, React__default.createElement("div", {
5477
- className: "message-copy-success-box"
5478
- }, React__default.createElement("div", {
5479
- className: "message-copy-success"
5480
- }, React__default.createElement("span", null, "Copied to your clipboard! Now paste your link in a Snapchat message,"), React__default.createElement("span", null, "your Instagram bio, Whatsapp, Facebook or a text :)")), React__default.createElement("div", {
5481
- className: "footer"
5482
- }, React__default.createElement("button", {
5483
- className: "footer-button",
5484
- type: "button",
5485
- onClick: onClose
5486
- }, "OK")))), data && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
5608
+ showCopyModal: showCopyModal
5609
+ }), data && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
5487
5610
  className: "header-container"
5488
5611
  }, React__default.createElement("div", {
5489
5612
  className: "header-product-image"
@@ -5593,25 +5716,98 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
5593
5716
  }, "^ This is based on the most expensive ticket in your order."))))));
5594
5717
  };
5595
5718
 
5596
- var X_TF_ECOMMERCE = 'X-TF-ECOMMERCE';
5597
-
5598
- var useCookieListener = function useCookieListener(key, handler) {
5599
- var getCookie = function getCookie() {
5600
- return getCookieByName(key);
5601
- };
5602
- var _useState = React.useState(),
5603
- intervalValue = _useState[0],
5604
- setIntervalValue = _useState[1];
5605
- var cookieRef = React.useRef(getCookie());
5606
- var handleCookieChange = function handleCookieChange() {
5607
- var currentCookie = getCookie();
5608
- var prevCookie = cookieRef.current;
5609
- if (currentCookie !== prevCookie) {
5610
- cookieRef.current = getCookie();
5611
- handler(cookieRef.current);
5612
- }
5613
- };
5614
- React.useEffect(function () {
5719
+ var getPreRegistrationInfluancers = /*#__PURE__*/function () {
5720
+ var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data) {
5721
+ var response;
5722
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
5723
+ while (1) switch (_context.prev = _context.next) {
5724
+ case 0:
5725
+ _context.next = 2;
5726
+ return publicRequest.get("v1/event/" + data.eventId + "/pre-registration/influencers");
5727
+ case 2:
5728
+ response = _context.sent;
5729
+ return _context.abrupt("return", response.data);
5730
+ case 4:
5731
+ case "end":
5732
+ return _context.stop();
5733
+ }
5734
+ }, _callee);
5735
+ }));
5736
+ return function getPreRegistrationInfluancers(_x) {
5737
+ return _ref.apply(this, arguments);
5738
+ };
5739
+ }();
5740
+ var getPreRegistrationShareOptions = /*#__PURE__*/function () {
5741
+ var _ref2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
5742
+ var response;
5743
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
5744
+ while (1) switch (_context2.prev = _context2.next) {
5745
+ case 0:
5746
+ _context2.next = 2;
5747
+ return publicRequest.get("/v1/pre-registration/" + data.hash + "/confirmation-page");
5748
+ case 2:
5749
+ response = _context2.sent;
5750
+ return _context2.abrupt("return", response.data);
5751
+ case 4:
5752
+ case "end":
5753
+ return _context2.stop();
5754
+ }
5755
+ }, _callee2);
5756
+ }));
5757
+ return function getPreRegistrationShareOptions(_x2) {
5758
+ return _ref2.apply(this, arguments);
5759
+ };
5760
+ }();
5761
+ var submitShareAction = /*#__PURE__*/function () {
5762
+ var _ref3 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {
5763
+ var eventActionId, accessToken, hash, response;
5764
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
5765
+ while (1) switch (_context3.prev = _context3.next) {
5766
+ case 0:
5767
+ eventActionId = data.eventActionId, accessToken = data.accessToken, hash = data.hash;
5768
+ _context3.next = 3;
5769
+ return publicRequest.post("/v1/pre-registration/" + hash + "/submit-action", {
5770
+ data: {
5771
+ attributes: {
5772
+ phase: 'pre-registration',
5773
+ eventActionId: Number(eventActionId),
5774
+ accessToken: accessToken
5775
+ }
5776
+ }
5777
+ });
5778
+ case 3:
5779
+ response = _context3.sent;
5780
+ return _context3.abrupt("return", response.data);
5781
+ case 5:
5782
+ case "end":
5783
+ return _context3.stop();
5784
+ }
5785
+ }, _callee3);
5786
+ }));
5787
+ return function submitShareAction(_x3) {
5788
+ return _ref3.apply(this, arguments);
5789
+ };
5790
+ }();
5791
+
5792
+ var X_TF_ECOMMERCE = 'X-TF-ECOMMERCE';
5793
+
5794
+ var useCookieListener = function useCookieListener(key, handler) {
5795
+ var getCookie = function getCookie() {
5796
+ return getCookieByName(key);
5797
+ };
5798
+ var _useState = React.useState(),
5799
+ intervalValue = _useState[0],
5800
+ setIntervalValue = _useState[1];
5801
+ var cookieRef = React.useRef(getCookie());
5802
+ var handleCookieChange = function handleCookieChange() {
5803
+ var currentCookie = getCookie();
5804
+ var prevCookie = cookieRef.current;
5805
+ if (currentCookie !== prevCookie) {
5806
+ cookieRef.current = getCookie();
5807
+ handler(cookieRef.current);
5808
+ }
5809
+ };
5810
+ React.useEffect(function () {
5615
5811
  var interval = setInterval(handleCookieChange, 500);
5616
5812
  setIntervalValue(interval);
5617
5813
  return function () {
@@ -5621,6 +5817,26 @@ var useCookieListener = function useCookieListener(key, handler) {
5621
5817
  }, []);
5622
5818
  };
5623
5819
 
5820
+ function useLocalStorageListener(key, callback) {
5821
+ var isWindowDefined = typeof window !== 'undefined';
5822
+ var _useState = React.useState(isWindowDefined ? localStorage.getItem(key) : ''),
5823
+ value = _useState[0],
5824
+ setValue = _useState[1];
5825
+ React.useEffect(function () {
5826
+ var intervalId = setInterval(function () {
5827
+ var newValue = localStorage.getItem(key);
5828
+ if (newValue !== value) {
5829
+ setValue(newValue);
5830
+ callback(JSON.parse(newValue || ''));
5831
+ }
5832
+ }, 100);
5833
+ return function () {
5834
+ clearInterval(intervalId);
5835
+ };
5836
+ }, [key, value, callback]);
5837
+ return value;
5838
+ }
5839
+
5624
5840
  var style$4 = {
5625
5841
  position: 'absolute',
5626
5842
  top: '50%',
@@ -5994,7 +6210,7 @@ var ReferralLogic = function ReferralLogic(props) {
5994
6210
  var isWindowDefined = typeof window !== 'undefined';
5995
6211
  if (isWindowDefined) {
5996
6212
  var params = new URL("" + window.location).searchParams;
5997
- var referralId = params.get('ttf_r') || '';
6213
+ var referralId = params.get('ttf_r') || params.get('referrer_id') || '';
5998
6214
  var referralValue = [eventId, '.', referralId].join('');
5999
6215
  var isAlreadyCounted = localStorage.getItem('referral_key') === referralValue;
6000
6216
  if (referralId && eventId && !isAlreadyCounted) {
@@ -6038,7 +6254,7 @@ var getTicketSelectOptions = function getTicketSelectOptions(maxCount, minCount,
6038
6254
  label: 0,
6039
6255
  value: 0
6040
6256
  }];
6041
- for (var i = minCount; i <= Math.min(50, maxCount); i += multiplier) {
6257
+ for (var i = minCount || 1; i <= Math.min(50, maxCount); i += multiplier) {
6042
6258
  options.push({
6043
6259
  label: i,
6044
6260
  value: i
@@ -6046,16 +6262,42 @@ var getTicketSelectOptions = function getTicketSelectOptions(maxCount, minCount,
6046
6262
  }
6047
6263
  return options;
6048
6264
  };
6265
+ var defineIsSalesClosed = function defineIsSalesClosed(eventDatesInfo) {
6266
+ var salesStarted = eventDatesInfo.salesStarted,
6267
+ salesEnded = eventDatesInfo.salesEnded,
6268
+ presalesStarted = eventDatesInfo.presalesStarted,
6269
+ presalesEnded = eventDatesInfo.presalesEnded,
6270
+ presalesEnabled = eventDatesInfo.presalesEnabled;
6271
+ var isSalesClosed = false;
6272
+ if (!salesStarted || salesStarted && salesEnded) {
6273
+ isSalesClosed = true;
6274
+ }
6275
+ if (presalesEnabled) {
6276
+ if (!presalesStarted && !presalesEnded || presalesStarted && presalesEnded && !salesStarted) {
6277
+ isSalesClosed = true;
6278
+ } else {
6279
+ isSalesClosed = false;
6280
+ }
6281
+ }
6282
+ return isSalesClosed;
6283
+ };
6049
6284
 
6050
6285
  var TicketRow = function TicketRow(_ref) {
6051
6286
  var ticketTier = _ref.ticketTier,
6052
6287
  prevTicketTier = _ref.prevTicketTier,
6053
6288
  selectedTickets = _ref.selectedTickets,
6054
6289
  handleTicketSelect = _ref.handleTicketSelect,
6290
+ event = _ref.event,
6055
6291
  isSeatMapAllowed = _ref.isSeatMapAllowed,
6056
6292
  tableType = _ref.tableType;
6057
6293
  var soldOutMessage = ticketTier.soldOutMessage ? ("" + ticketTier.soldOutMessage).toUpperCase() : 'SOLD OUT';
6058
- var isSalesClosed = !ticketTier.salesStarted || ticketTier.salesEnded;
6294
+ var isSalesClosed = defineIsSalesClosed({
6295
+ salesStarted: ticketTier.salesStarted,
6296
+ salesEnded: ticketTier.salesEnded,
6297
+ presalesStarted: event == null ? void 0 : event.presalesStarted,
6298
+ presalesEnded: event == null ? void 0 : event.presalesEnded,
6299
+ presalesEnabled: event == null ? void 0 : event.presales_enabled
6300
+ });
6059
6301
  var maxCount = tableType ? ticketTier.maxGuests : ticketTier.maxQuantity;
6060
6302
  var minCount = tableType ? ticketTier.minGuests : ticketTier.minQuantity;
6061
6303
  var multiplier = ticketTier.multiplier;
@@ -6103,7 +6345,7 @@ var TicketRow = function TicketRow(_ref) {
6103
6345
  } else if (canPurchaseTicket && isSeatMapAllowed && !isDirectPurchaseAllowed) {
6104
6346
  // Seat Map Tickets renderer logic
6105
6347
  returnValue = null;
6106
- } else if (canPurchaseTicket) {
6348
+ } else if (canPurchaseTicket || canPurchaseTicket && event != null && event.presalesStarted && !(event != null && event.presalesEnded)) {
6107
6349
  returnValue = onSaleContent;
6108
6350
  } else if (_get(prevTicketTier, 'in_stock')) {
6109
6351
  returnValue = 'SOON';
@@ -6177,7 +6419,8 @@ var TicketsSection = function TicketsSection(_ref) {
6177
6419
  ticketTier: ticket,
6178
6420
  prevTicketTier: arr[i - 1],
6179
6421
  selectedTickets: selectedTickets,
6180
- handleTicketSelect: ticketSelect
6422
+ handleTicketSelect: ticketSelect,
6423
+ event: event
6181
6424
  })))));
6182
6425
  }), !hideTableTicketsHeader && tableTicketsHeaderComponent, tableTickets.map(function (ticket, i, arr) {
6183
6426
  var _arr2;
@@ -6226,7 +6469,8 @@ var TicketsSection = function TicketsSection(_ref) {
6226
6469
  prevTicketTier: arr[i - 1],
6227
6470
  selectedTickets: selectedTickets,
6228
6471
  handleTicketSelect: ticketSelect,
6229
- isSeatMapAllowed: isSeatMapAllowed
6472
+ isSeatMapAllowed: isSeatMapAllowed,
6473
+ event: event
6230
6474
  }))))));
6231
6475
  }));
6232
6476
  };
@@ -6307,6 +6551,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
6307
6551
  var _useState = React.useState({}),
6308
6552
  selectedTickets = _useState[0],
6309
6553
  setSelectedTickets = _useState[1];
6554
+ var isWindowDefined = typeof window !== 'undefined';
6310
6555
  var _useState2 = React.useState(Boolean(getCookieByName(X_TF_ECOMMERCE))),
6311
6556
  isLogged = _useState2[0],
6312
6557
  setIsLogged = _useState2[1];
@@ -6361,16 +6606,31 @@ var TicketsContainer = function TicketsContainer(_ref) {
6361
6606
  var _useState19 = React.useState(),
6362
6607
  pendingVerificationMessage = _useState19[0],
6363
6608
  setPendingVerificationMessage = _useState19[1];
6609
+ var _useState20 = React.useState([]),
6610
+ preregistereds = _useState20[0],
6611
+ setPreregistereds = _useState20[1];
6612
+ var _useState21 = React.useState(false),
6613
+ ticketsNotAvailableModalOpen = _useState21[0],
6614
+ setTicketsNotAvailableModalOpen = _useState21[1];
6615
+ var _useState22 = React.useState(checkUserPreregistration()),
6616
+ isPreregistred = _useState22[0],
6617
+ setIsPreregisred = _useState22[1];
6364
6618
  var ticketsContainerRef = React.useRef(null);
6365
6619
  var pageUrl = isBrowser ? window.location.href.split('?')[0] : '';
6366
6620
  useCookieListener(X_TF_ECOMMERCE, function (value) {
6367
6621
  return setIsLogged(Boolean(value));
6368
6622
  });
6623
+ useLocalStorageListener('user_data', function (user) {
6624
+ var isPreregistredUser = _some(preregistereds, function (item) {
6625
+ return item.email === (user == null ? void 0 : user.email);
6626
+ });
6627
+ setIsPreregisred(isPreregistredUser);
6628
+ });
6369
6629
  usePixel(eventId, {
6370
6630
  pageUrl: pageUrl
6371
6631
  });
6372
6632
  React.useEffect(function () {
6373
- if (typeof window !== 'undefined') {
6633
+ if (isWindowDefined) {
6374
6634
  var access_token = window.localStorage.getItem('access_token');
6375
6635
  if (access_token) {
6376
6636
  var decoded = jwt_decode(access_token);
@@ -6383,8 +6643,14 @@ var TicketsContainer = function TicketsContainer(_ref) {
6383
6643
  }
6384
6644
  }, []);
6385
6645
  React.useEffect(function () {
6386
- !!eventId && getTicketsApi();
6646
+ if (eventId) {
6647
+ getTicketsApi();
6648
+ fetchPreregisteredsData();
6649
+ }
6387
6650
  }, [eventId]);
6651
+ React.useEffect(function () {
6652
+ setIsPreregisred(checkUserPreregistration());
6653
+ }, [preregistereds]);
6388
6654
  React.useEffect(function () {
6389
6655
  if (isLogged) {
6390
6656
  fetchUserData().then(function (res) {
@@ -6505,6 +6771,39 @@ var TicketsContainer = function TicketsContainer(_ref) {
6505
6771
  }));
6506
6772
  return _getTicketsApi.apply(this, arguments);
6507
6773
  }
6774
+ function fetchPreregisteredsData() {
6775
+ return _fetchPreregisteredsData.apply(this, arguments);
6776
+ }
6777
+ function _fetchPreregisteredsData() {
6778
+ _fetchPreregisteredsData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
6779
+ var preregistrationData;
6780
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
6781
+ while (1) switch (_context5.prev = _context5.next) {
6782
+ case 0:
6783
+ _context5.prev = 0;
6784
+ _context5.next = 3;
6785
+ return getPreRegistrationInfluancers({
6786
+ eventId: eventId
6787
+ });
6788
+ case 3:
6789
+ preregistrationData = _context5.sent;
6790
+ setPreregistereds(preregistrationData.data.attributes.influencers);
6791
+ _context5.next = 10;
6792
+ break;
6793
+ case 7:
6794
+ _context5.prev = 7;
6795
+ _context5.t0 = _context5["catch"](0);
6796
+ if (axios.isAxiosError(_context5.t0)) {
6797
+ setError(_get(_context5.t0, 'response.data.message'));
6798
+ }
6799
+ case 10:
6800
+ case "end":
6801
+ return _context5.stop();
6802
+ }
6803
+ }, _callee5, null, [[0, 7]]);
6804
+ }));
6805
+ return _fetchPreregisteredsData.apply(this, arguments);
6806
+ }
6508
6807
  var handleTicketSelect = function handleTicketSelect(key, value, isTable) {
6509
6808
  if (isTable === void 0) {
6510
6809
  isTable = false;
@@ -6517,6 +6816,17 @@ var TicketsContainer = function TicketsContainer(_ref) {
6517
6816
  return _ref3 = {}, _ref3[key] = value, _ref3.isTable = isTable, _ref3;
6518
6817
  });
6519
6818
  };
6819
+ function checkUserPreregistration() {
6820
+ var userDataString = isWindowDefined ? window.localStorage.getItem('user_data') : '';
6821
+ var isPreregistredUser = false;
6822
+ if (userDataString) {
6823
+ var user = JSON.parse(userDataString);
6824
+ isPreregistredUser = _some(preregistereds, function (item) {
6825
+ return item.email === (user == null ? void 0 : user.email);
6826
+ });
6827
+ }
6828
+ return isPreregistredUser;
6829
+ }
6520
6830
  var handleOrdersClick = function handleOrdersClick() {
6521
6831
  if (isBrowser) {
6522
6832
  window.location.href = ordersPath != null ? ordersPath : '/orders';
@@ -6700,7 +7010,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
6700
7010
  };
6701
7011
  }();
6702
7012
  var isTicketOnSale = _some(tickets, function (item) {
6703
- return item.salesStarted && !item.salesEnded && !item.soldOut;
7013
+ return (item.salesStarted || (event == null ? void 0 : event.presalesStarted)) && !item.salesEnded && !item.soldOut;
6704
7014
  });
6705
7015
  var eventHasTickets = !_isEmpty(tickets);
6706
7016
  var isSalesClosed = event == null ? void 0 : event.salesEnded;
@@ -6726,9 +7036,14 @@ var TicketsContainer = function TicketsContainer(_ref) {
6726
7036
  }
6727
7037
  }
6728
7038
  };
7039
+ var handleNotAvailableTicketsClick = function handleNotAvailableTicketsClick() {
7040
+ if (!_isEmpty(selectedTickets)) {
7041
+ setTicketsNotAvailableModalOpen(true);
7042
+ }
7043
+ };
6729
7044
  var bookButtonIsDisabled = (handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0) && !(event != null && event.flagSeatMapAllowed);
6730
7045
  var isTicketAvailable = _some(tickets, function (ticket) {
6731
- return ticket.displayTicket && !ticket.soldOut && ticket.salesStarted;
7046
+ return ticket.displayTicket && !ticket.soldOut && (ticket.salesStarted || (event == null ? void 0 : event.presalesStarted) && !(event != null && event.presalesEnded));
6732
7047
  });
6733
7048
  var wrappedActionsSectionComponent = React__default.isValidElement(ActionsSectionComponent) ? React__default.cloneElement(ActionsSectionComponent, {
6734
7049
  handleGetTicketClick: handleGetTicketClick,
@@ -6756,6 +7071,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
6756
7071
  var hideTopInfluencers = event == null ? void 0 : event.hideTopInfluencers;
6757
7072
  var isSeatMapAllowed = _get(event, 'seatMapAllowed', false);
6758
7073
  var isTableMapEnabled = _get(event, 'tableMapEnabled', false);
7074
+ var notAvailableTicketsMessage = "Tickets for this event are not available until " + moment(event == null ? void 0 : event.salesStart).format('dddd, DD MMMM YYYY') + ". \n If you pre-registered, log into your account first to buy your pre-sale ticket.";
6759
7075
  var tableTickets = _filter(tickets, function (ticket) {
6760
7076
  return ticket.isTable;
6761
7077
  });
@@ -6797,7 +7113,16 @@ var TicketsContainer = function TicketsContainer(_ref) {
6797
7113
  style: {
6798
7114
  width: '350px'
6799
7115
  }
6800
- }, error), isLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", {
7116
+ }, error), ticketsNotAvailableModalOpen && React__default.createElement(ConfirmModal, {
7117
+ message: notAvailableTicketsMessage,
7118
+ hideCancelBtn: true,
7119
+ onClose: function onClose() {
7120
+ return _onClose('invalidLink');
7121
+ },
7122
+ onConfirm: function onConfirm() {
7123
+ return setTicketsNotAvailableModalOpen(false);
7124
+ }
7125
+ }), isLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", {
6801
7126
  ref: ticketsContainerRef
6802
7127
  }, !isSalesClosed && React__default.createElement(TicketsSection, {
6803
7128
  event: event,
@@ -6847,7 +7172,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
6847
7172
  }) : null, wrappedActionsSectionComponent, canShowGetTicketBtn() && React__default.createElement(Button$1, {
6848
7173
  "aria-hidden": true,
6849
7174
  className: "book-button \n " + (bookButtonIsDisabled ? 'disabled' : '') + " \n " + (isButtonScrollable ? 'is-scrollable' : '') + "\n " + (!isLoggedIn ? 'on-bottom' : '') + "\n ",
6850
- onClick: handleGetTicketClick
7175
+ onClick: event != null && event.salesStart && event != null && event.presalesStarted && !(event != null && event.presalesEnded) && (!isPreregistred || !isLogged) ? handleNotAvailableTicketsClick : handleGetTicketClick
6851
7176
  }, selectedTickets.isTable ? 'RESERVE TABLES' : getTicketsLabel || 'GET TICKETS'), isSeatMapAllowed && !(event != null && event.salesEnded) && isTicketAvailable && React__default.createElement(Button$1, {
6852
7177
  className: "reserve-button",
6853
7178
  "aria-hidden": true,
@@ -7058,7 +7383,7 @@ var MyTicketsContainer = function MyTicketsContainer(_ref) {
7058
7383
  fetchData(1, limit, filter);
7059
7384
  }, [isLogged]);
7060
7385
  var fetchData = /*#__PURE__*/function () {
7061
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(page, limit, filter) {
7386
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(page, limit, eventSlug) {
7062
7387
  var response, _data, _error$response;
7063
7388
  return _regeneratorRuntime().wrap(function _callee$(_context) {
7064
7389
  while (1) switch (_context.prev = _context.next) {
@@ -7066,7 +7391,7 @@ var MyTicketsContainer = function MyTicketsContainer(_ref) {
7066
7391
  _context.prev = 0;
7067
7392
  setLoading(true);
7068
7393
  _context.next = 4;
7069
- return getOrders(page, limit, filter);
7394
+ return getOrders(page, limit, eventSlug);
7070
7395
  case 4:
7071
7396
  response = _context.sent;
7072
7397
  onGetOrdersSuccess(response);
@@ -8763,7 +9088,9 @@ var LoginForm = function LoginForm(_ref) {
8763
9088
  _ref$showForgotPasswo = _ref.showForgotPasswordButton,
8764
9089
  showForgotPasswordButton = _ref$showForgotPasswo === void 0 ? false : _ref$showForgotPasswo,
8765
9090
  _ref$showSignUpButton = _ref.showSignUpButton,
8766
- showSignUpButton = _ref$showSignUpButton === void 0 ? false : _ref$showSignUpButton;
9091
+ showSignUpButton = _ref$showSignUpButton === void 0 ? false : _ref$showSignUpButton,
9092
+ _ref$showPoweredByIma = _ref.showPoweredByImage,
9093
+ showPoweredByImage = _ref$showPoweredByIma === void 0 ? false : _ref$showPoweredByIma;
8767
9094
  var _useState = React.useState(''),
8768
9095
  error = _useState[0],
8769
9096
  setError = _useState[1];
@@ -8887,7 +9214,7 @@ var LoginForm = function LoginForm(_ref) {
8887
9214
  }, React__default.createElement("span", {
8888
9215
  "aria-hidden": "true",
8889
9216
  onClick: onSignupButtonClick
8890
- }, "Sign up"))));
9217
+ }, "Sign up")), showPoweredByImage ? React__default.createElement(PoweredBy, null) : null));
8891
9218
  }));
8892
9219
  };
8893
9220
 
@@ -11184,6 +11511,1028 @@ var RsvpContainer = function RsvpContainer(_ref) {
11184
11511
  }, "RSVP"))))))));
11185
11512
  };
11186
11513
 
11514
+ var formFieldsNotLoggedIn = [{
11515
+ name: 'basic-info',
11516
+ groupLabel: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", null, "If you want to enter your details manually, please type them below to create an account, then click on"), /*#__PURE__*/React__default.createElement("b", null, " Confirm Registration:")),
11517
+ groupLabelClassName: '',
11518
+ groupClassName: '',
11519
+ fields: [{
11520
+ className: 'half-width',
11521
+ name: 'firstName',
11522
+ label: 'First Name',
11523
+ type: 'text',
11524
+ required: true,
11525
+ onValidate: null
11526
+ }, {
11527
+ className: 'half-width',
11528
+ name: 'lastName',
11529
+ label: 'Last Name',
11530
+ type: 'text',
11531
+ required: true,
11532
+ onValidate: null
11533
+ }, {
11534
+ name: 'email',
11535
+ label: 'Email',
11536
+ type: 'email',
11537
+ required: true,
11538
+ onValidate: null
11539
+ }, {
11540
+ name: 'confirmEmail',
11541
+ label: 'Confirm Email',
11542
+ type: 'email',
11543
+ required: true,
11544
+ onValidate: null
11545
+ }]
11546
+ }, {
11547
+ name: 'billing-info',
11548
+ groupLabel: '',
11549
+ groupLabelClassName: '',
11550
+ groupClassName: '',
11551
+ fields: [{
11552
+ className: 'half-width',
11553
+ name: 'zip',
11554
+ label: 'Post Code/Zip',
11555
+ type: 'text',
11556
+ required: true,
11557
+ onValidate: null
11558
+ }, {
11559
+ className: 'half-width',
11560
+ name: 'country',
11561
+ label: 'Country',
11562
+ type: 'select',
11563
+ required: true,
11564
+ onValidate: null
11565
+ }]
11566
+ }, {
11567
+ name: 'password-info',
11568
+ groupLabel: /*#__PURE__*/React__default.createElement("div", {
11569
+ className: "email-info-block"
11570
+ }, /*#__PURE__*/React__default.createElement("span", null, "Choose a password for your new"), /*#__PURE__*/React__default.createElement("b", null, " Mana Common "), /*#__PURE__*/React__default.createElement("span", null, "account")),
11571
+ groupLabelClassName: '',
11572
+ groupClassName: '',
11573
+ fields: [{
11574
+ className: 'half-width',
11575
+ name: 'password',
11576
+ label: 'Password',
11577
+ type: 'password',
11578
+ required: true,
11579
+ onValidate: null
11580
+ }, {
11581
+ className: 'half-width',
11582
+ name: 'confirmPassword',
11583
+ label: 'Confirm Password',
11584
+ type: 'password',
11585
+ required: true,
11586
+ onValidate: null
11587
+ }]
11588
+ }];
11589
+ var formFieldsLoggedIn = [{
11590
+ name: 'basic-info-logged-in',
11591
+ groupLabel: 'To confirm your pre-registration for {event_name} simply click on the confirmation button below.',
11592
+ groupLabelClassName: '',
11593
+ groupClassName: '',
11594
+ fields: [{
11595
+ name: 'email',
11596
+ label: 'Email',
11597
+ type: 'email',
11598
+ required: true,
11599
+ onValidate: null
11600
+ }, {
11601
+ name: 'confirmEmail',
11602
+ label: 'Confirm Email',
11603
+ type: 'email',
11604
+ required: true,
11605
+ onValidate: null
11606
+ }]
11607
+ }, {
11608
+ name: 'billing-info-logged-in',
11609
+ groupLabel: '',
11610
+ groupLabelClassName: '',
11611
+ groupClassName: '',
11612
+ fields: [{
11613
+ name: 'numTickets',
11614
+ label: 'How many tickets do you want to buy?',
11615
+ type: 'select',
11616
+ required: true,
11617
+ options: /*#__PURE__*/new Array(10).fill(null).map(function (_, index) {
11618
+ return {
11619
+ label: index + 1,
11620
+ value: index + 1
11621
+ };
11622
+ }),
11623
+ onValidate: null
11624
+ }, {
11625
+ name: 'holderAge',
11626
+ label: 'Ticket Holder Age',
11627
+ type: 'date',
11628
+ required: true,
11629
+ onValidate: null
11630
+ }, {
11631
+ name: 'brandOptIn',
11632
+ label: 'I would like to be updated on Mana Common news, events and offers.',
11633
+ type: 'checkbox'
11634
+ }]
11635
+ }];
11636
+
11637
+ var getValidateFunctions$2 = function getValidateFunctions(_ref) {
11638
+ var element = _ref.element,
11639
+ values = _ref.values;
11640
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11641
+ var validationFunctions = [];
11642
+ if (element.required) {
11643
+ validationFunctions.push(requiredValidator);
11644
+ }
11645
+ if (element.onValidate) {
11646
+ validationFunctions.push(element.onValidate);
11647
+ }
11648
+ if (element.name === 'confirmEmail') {
11649
+ var isSameEmail = function isSameEmail(confirmEmail) {
11650
+ return values.email !== confirmEmail ? 'Please confirm your email address correctly' : null;
11651
+ };
11652
+ validationFunctions.push(isSameEmail);
11653
+ }
11654
+ if (element.name === 'confirmPassword') {
11655
+ var isSame = function isSame(confirmPassword) {
11656
+ return values.password !== confirmPassword ? 'Password confirmation does not match' : null;
11657
+ };
11658
+ validationFunctions.push(isSame);
11659
+ }
11660
+ return combineValidators.apply(void 0, validationFunctions);
11661
+ };
11662
+ var getFormInitialValues$1 = function getFormInitialValues(fieldsSections) {
11663
+ var initialValues = {};
11664
+ var isWindowDefined = typeof window !== 'undefined';
11665
+ var userData = JSON.parse(isWindowDefined ? window.localStorage.getItem('user_data') || '{}' : '{}');
11666
+ _forEach(fieldsSections, function (item) {
11667
+ _forEach(item.fields, function (fieldItem) {
11668
+ switch (fieldItem.name) {
11669
+ case 'country':
11670
+ case 'numTickets':
11671
+ initialValues[fieldItem.name] = 1;
11672
+ break;
11673
+ case 'brandOptIn':
11674
+ initialValues[fieldItem.name] = true;
11675
+ break;
11676
+ case 'confirmEmail':
11677
+ initialValues[fieldItem.name] = _get(userData, fieldItem.name) || _get(userData, 'email') || '';
11678
+ break;
11679
+ default:
11680
+ initialValues[fieldItem.name] = _get(userData, fieldItem.name) || '';
11681
+ break;
11682
+ }
11683
+ });
11684
+ });
11685
+ return initialValues;
11686
+ };
11687
+ var updateFormFieldsAttributes$1 = function updateFormFieldsAttributes(formFields, attributes) {
11688
+ if (attributes && !_isEmpty(attributes)) {
11689
+ var updatedFormFields = _map(formFields, function (fieldSection) {
11690
+ var fieldSectionAttributes = attributes[fieldSection.name] || {};
11691
+ var updatedFields = _map(fieldSection.fields, function (fieldItem) {
11692
+ var fieldItemAttributes = attributes[fieldItem.name] || {};
11693
+ return _extends({}, fieldItem, fieldItemAttributes);
11694
+ });
11695
+ return _extends({}, fieldSection, fieldSectionAttributes, {
11696
+ fields: updatedFields
11697
+ });
11698
+ });
11699
+ return updatedFormFields;
11700
+ }
11701
+ return formFields;
11702
+ };
11703
+ var shareOptionsAdapter = function shareOptionsAdapter(data, shareUrl) {
11704
+ var adaptedData = [];
11705
+ _forEach(data, function (option) {
11706
+ if (option.action !== 'shared_url') {
11707
+ var _split2 = _split(option.action, '_'),
11708
+ platform = _split2[0],
11709
+ method = _split2[1];
11710
+ var mainLabel = method ? method[0].toUpperCase() + method.substring(1) : 'Share';
11711
+ adaptedData.push({
11712
+ mainLabel: option.action === 'twitter' ? 'Tweet' : mainLabel + ' on',
11713
+ subLabel: option.action === 'twitter' ? ' to your followers' : platform[0].toUpperCase() + platform.substring(1),
11714
+ platform: platform,
11715
+ shareData: {
11716
+ quote: 'as',
11717
+ url: option.socialUrl || shareUrl
11718
+ },
11719
+ points: option.point,
11720
+ eventActionId: option.id,
11721
+ oneTimeAction: option.oneTimeAction,
11722
+ alreadyApplied: option.alreadyApplied
11723
+ });
11724
+ }
11725
+ });
11726
+ return adaptedData;
11727
+ };
11728
+ var getShuffleMethodByName = function getShuffleMethodByName(tokenShuffleMethod) {
11729
+ var reverseString = function reverseString(value) {
11730
+ return value.split('').reverse().join('');
11731
+ };
11732
+ var symmetricShuffleString = function symmetricShuffleString(value) {
11733
+ var lengthOfStr = value.length;
11734
+ var part1 = value.substring(0, lengthOfStr / 2);
11735
+ return value.substring(lengthOfStr / 2) + part1;
11736
+ };
11737
+ var shuffleEveryTwoSymbolsInString = function shuffleEveryTwoSymbolsInString(value) {
11738
+ var words = value.split('');
11739
+ var shuffledStr = '';
11740
+ for (var i = 0; i < words.length; i += 2) {
11741
+ shuffledStr = shuffledStr.concat(words[i + 1], words[i]);
11742
+ }
11743
+ return shuffledStr;
11744
+ };
11745
+ if (tokenShuffleMethod === 'reverse_string') {
11746
+ return reverseString;
11747
+ } else if (tokenShuffleMethod === 'symmetric_shuffle_string') {
11748
+ return symmetricShuffleString;
11749
+ } else if (tokenShuffleMethod === 'shuffle_every_two_symbols_in_string') return shuffleEveryTwoSymbolsInString;
11750
+ return _identity;
11751
+ };
11752
+
11753
+ var isDocumentDefined = typeof document !== 'undefined';
11754
+ var SectionContainer$1 = function SectionContainer(_ref) {
11755
+ var children = _ref.children,
11756
+ className = _ref.className;
11757
+ return React__default.createElement("div", {
11758
+ className: className
11759
+ }, children);
11760
+ };
11761
+ var insertHTML$1 = function insertHTML(elementId, text) {
11762
+ if (text === void 0) {
11763
+ text = '';
11764
+ }
11765
+ if (isDocumentDefined) {
11766
+ var elem = document && document.getElementById(elementId);
11767
+ if (!(elem != null && elem.childNodes.length)) {
11768
+ elem == null ? void 0 : elem.insertAdjacentHTML('afterbegin', text);
11769
+ }
11770
+ }
11771
+ return null;
11772
+ };
11773
+ var getFieldClassNames$1 = function getFieldClassNames(id, existingClassNames) {
11774
+ if (isDocumentDefined) {
11775
+ var _elem$parentElement;
11776
+ var elem = document && document.getElementById(id);
11777
+ if (((elem == null ? void 0 : (_elem$parentElement = elem.parentElement) == null ? void 0 : _elem$parentElement.clientWidth) || 0) < 375) {
11778
+ return existingClassNames + ' full-width';
11779
+ }
11780
+ }
11781
+ return existingClassNames;
11782
+ };
11783
+ var FieldsSection$1 = function FieldsSection(_ref2) {
11784
+ var _ref2$formFields = _ref2.formFields,
11785
+ formFields = _ref2$formFields === void 0 ? [] : _ref2$formFields,
11786
+ _ref2$countries = _ref2.countries,
11787
+ countries = _ref2$countries === void 0 ? [] : _ref2$countries,
11788
+ values = _ref2.values,
11789
+ setFieldValue = _ref2.setFieldValue,
11790
+ theme = _ref2.theme,
11791
+ _ref2$containerClass = _ref2.containerClass,
11792
+ containerClass = _ref2$containerClass === void 0 ? '' : _ref2$containerClass;
11793
+ return React__default.createElement(React__default.Fragment, null, _map(formFields, function (item, index) {
11794
+ var name = item.name,
11795
+ groupLabel = item.groupLabel,
11796
+ _item$groupLabelVars = item.groupLabelVars,
11797
+ groupLabelVars = _item$groupLabelVars === void 0 ? [] : _item$groupLabelVars,
11798
+ groupLabelClassName = item.groupLabelClassName,
11799
+ _item$groupClassName = item.groupClassName,
11800
+ groupClassName = _item$groupClassName === void 0 ? '' : _item$groupClassName,
11801
+ fields = item.fields;
11802
+ return React__default.createElement(SectionContainer$1, {
11803
+ key: name,
11804
+ className: groupClassName
11805
+ }, React__default.createElement("span", {
11806
+ id: "group_label_" + index,
11807
+ className: groupLabelClassName
11808
+ }, typeof groupLabel === 'string' ? insertHTML$1("group_label_" + index, replaceVarInString(groupLabel, groupLabelVars)) : groupLabel), React__default.createElement("div", {
11809
+ className: "fields-container " + groupClassName
11810
+ }, _map(fields, function (fieldData, fieldIndex) {
11811
+ var name = fieldData.name,
11812
+ label = fieldData.label,
11813
+ _fieldData$className = fieldData.className,
11814
+ className = _fieldData$className === void 0 ? 'full-width' : _fieldData$className,
11815
+ type = fieldData.type,
11816
+ component = fieldData.component,
11817
+ _fieldData$options = fieldData.options,
11818
+ options = _fieldData$options === void 0 ? [] : _fieldData$options;
11819
+ var id = name + "-" + fieldIndex;
11820
+ var classNames = containerClass + "-container__field " + className;
11821
+ return component || React__default.createElement("div", {
11822
+ key: name,
11823
+ id: id,
11824
+ className: getFieldClassNames$1(id, classNames)
11825
+ }, React__default.createElement(formik.Field, {
11826
+ name: name,
11827
+ label: label,
11828
+ type: type,
11829
+ validate: getValidateFunctions$2({
11830
+ element: fieldData,
11831
+ values: values
11832
+ }),
11833
+ setFieldValue: setFieldValue,
11834
+ component: type === 'checkbox' ? CheckboxField : type === 'select' ? NativeSelectField : type === 'phone' ? PhoneNumberField : type === 'date' ? DatePickerField : CustomField,
11835
+ selectOptions: name === 'country' ? countries : options,
11836
+ theme: theme
11837
+ }));
11838
+ })));
11839
+ }));
11840
+ };
11841
+
11842
+ var X_TF_ECOMMERCE$2 = 'X-TF-ECOMMERCE';
11843
+ var isWindowDefined$1 = typeof window !== 'undefined';
11844
+ var PreRegistration = function PreRegistration(_ref) {
11845
+ var eventId = _ref.eventId,
11846
+ pFormFields = _ref.formFields,
11847
+ additionalFieldAttribute = _ref.additionalFieldAttribute,
11848
+ isPreregistrationStarted = _ref.isPreregistrationStarted,
11849
+ logo = _ref.logo,
11850
+ showForgotPasswordButton = _ref.showForgotPasswordButton,
11851
+ _ref$onLoginSuccess = _ref.onLoginSuccess,
11852
+ onLoginSuccess = _ref$onLoginSuccess === void 0 ? _identity : _ref$onLoginSuccess,
11853
+ _ref$onForgotPassword = _ref.onForgotPasswordSuccess,
11854
+ onForgotPasswordSuccess = _ref$onForgotPassword === void 0 ? _identity : _ref$onForgotPassword,
11855
+ _ref$onForgotPassword2 = _ref.onForgotPasswordError,
11856
+ onForgotPasswordError = _ref$onForgotPassword2 === void 0 ? _identity : _ref$onForgotPassword2,
11857
+ _ref$onGetCountriesSu = _ref.onGetCountriesSuccess,
11858
+ onGetCountriesSuccess = _ref$onGetCountriesSu === void 0 ? _identity : _ref$onGetCountriesSu,
11859
+ _ref$onGetCountriesEr = _ref.onGetCountriesError,
11860
+ onGetCountriesError = _ref$onGetCountriesEr === void 0 ? _identity : _ref$onGetCountriesEr,
11861
+ _ref$onConfirmationSu = _ref.onConfirmationSuccess,
11862
+ onConfirmationSuccess = _ref$onConfirmationSu === void 0 ? _identity : _ref$onConfirmationSu,
11863
+ _ref$onConfirmationEr = _ref.onConfirmationError,
11864
+ onConfirmationError = _ref$onConfirmationEr === void 0 ? _identity : _ref$onConfirmationEr;
11865
+ var _useState = React.useState(''),
11866
+ error = _useState[0],
11867
+ setError = _useState[1];
11868
+ var _useState2 = React.useState(false),
11869
+ showModalLogin = _useState2[0],
11870
+ setShowModalLogin = _useState2[1];
11871
+ var _useState3 = React.useState(false),
11872
+ alreadyHasUser = _useState3[0],
11873
+ setAlreadyHasUser = _useState3[1];
11874
+ var _useState4 = React.useState(false),
11875
+ showModalForgotPassword = _useState4[0],
11876
+ setShowModalForgotPassword = _useState4[1];
11877
+ var _useState5 = React.useState([]),
11878
+ countries = _useState5[0],
11879
+ setCountries = _useState5[1];
11880
+ var _useState6 = React.useState(Boolean(getCookieByName(X_TF_ECOMMERCE$2))),
11881
+ isLoggedIn = _useState6[0],
11882
+ setIsLoggedIn = _useState6[1];
11883
+ var _useState7 = React.useState({
11884
+ show: false,
11885
+ message: ''
11886
+ }),
11887
+ confirmModalState = _useState7[0],
11888
+ setConfirmModalState = _useState7[1];
11889
+ useCookieListener(X_TF_ECOMMERCE$2, function (value) {
11890
+ return setIsLoggedIn(Boolean(value));
11891
+ });
11892
+ var formFields = updateFormFieldsAttributes$1(pFormFields || isLoggedIn ? formFieldsLoggedIn : formFieldsNotLoggedIn, additionalFieldAttribute);
11893
+ React.useEffect(function () {
11894
+ // fetch countries data
11895
+ var fetchCountries = /*#__PURE__*/function () {
11896
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
11897
+ var res, _e$response, _e$response$data, _error;
11898
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
11899
+ while (1) switch (_context.prev = _context.next) {
11900
+ case 0:
11901
+ _context.prev = 0;
11902
+ _context.next = 3;
11903
+ return getCountries();
11904
+ case 3:
11905
+ res = _context.sent;
11906
+ setCountries(_map(_get(res, 'data'), function (item) {
11907
+ return {
11908
+ label: item.name,
11909
+ value: Number(item.id)
11910
+ };
11911
+ }));
11912
+ onGetCountriesSuccess(res.data);
11913
+ _context.next = 11;
11914
+ break;
11915
+ case 8:
11916
+ _context.prev = 8;
11917
+ _context.t0 = _context["catch"](0);
11918
+ if (axios.isAxiosError(_context.t0)) {
11919
+ _error = (_context.t0 == null ? void 0 : (_e$response = _context.t0.response) == null ? void 0 : (_e$response$data = _e$response.data) == null ? void 0 : _e$response$data.message) || 'Error';
11920
+ setError(_error);
11921
+ onGetCountriesError(_context.t0);
11922
+ }
11923
+ case 11:
11924
+ case "end":
11925
+ return _context.stop();
11926
+ }
11927
+ }, _callee, null, [[0, 8]]);
11928
+ }));
11929
+ return function fetchCountries() {
11930
+ return _ref2.apply(this, arguments);
11931
+ };
11932
+ }();
11933
+ fetchCountries();
11934
+ }, []);
11935
+ var hash = getQueryVariable('hash') || '';
11936
+ var referrerId = getQueryVariable('referrer_id') || '';
11937
+ return React__default.createElement("div", {
11938
+ className: "pre-registration-container"
11939
+ }, React__default.createElement(SnackbarAlert, {
11940
+ type: "error",
11941
+ isOpen: !!error,
11942
+ message: error || '',
11943
+ onClose: function onClose() {
11944
+ setError('');
11945
+ }
11946
+ }), confirmModalState.show && React__default.createElement(ConfirmModal, {
11947
+ hideCancelBtn: true,
11948
+ onConfirm: function onConfirm() {
11949
+ return setConfirmModalState({
11950
+ show: false,
11951
+ message: ''
11952
+ });
11953
+ },
11954
+ message: confirmModalState.message
11955
+ }), !isLoggedIn && React__default.createElement("div", {
11956
+ className: "account-actions-block"
11957
+ }, React__default.createElement("div", {
11958
+ className: "action-item"
11959
+ }, React__default.createElement("div", null, React__default.createElement("span", null, "Create (or log in to) your account, then click on Confirm Registration."), React__default.createElement("span", null, " If you have a"), React__default.createElement("b", null, " Mana Common "), React__default.createElement("span", null, "account and password already"))), React__default.createElement("div", {
11960
+ className: "action-item login-block"
11961
+ }, React__default.createElement("button", {
11962
+ className: "login-register-button",
11963
+ type: "button",
11964
+ onClick: function onClick() {
11965
+ setShowModalLogin(true);
11966
+ }
11967
+ }, "Login"))), showModalLogin && React__default.createElement(LoginModal, {
11968
+ logo: logo,
11969
+ onClose: function onClose() {
11970
+ setShowModalLogin(false);
11971
+ },
11972
+ onLogin: function onLogin(res) {
11973
+ setShowModalLogin(false);
11974
+ onLoginSuccess(res);
11975
+ },
11976
+ showForgotPasswordButton: showForgotPasswordButton,
11977
+ onForgotPassword: function onForgotPassword() {
11978
+ setShowModalLogin(false);
11979
+ setShowModalForgotPassword(true);
11980
+ },
11981
+ alreadyHasUser: alreadyHasUser
11982
+ }), showModalForgotPassword && React__default.createElement(ForgotPasswordModal, {
11983
+ onClose: function onClose() {
11984
+ setShowModalForgotPassword(false);
11985
+ },
11986
+ onLoginButtonClick: function onLoginButtonClick() {
11987
+ setShowModalForgotPassword(false);
11988
+ setShowModalLogin(true);
11989
+ },
11990
+ onForgotPasswordSuccess: onForgotPasswordSuccess,
11991
+ onForgotPasswordError: onForgotPasswordError
11992
+ }), React__default.createElement("h2", null, "Pre-Registration"), React__default.createElement(formik.Formik, {
11993
+ initialValues: getFormInitialValues$1(formFields),
11994
+ enableReinitialize: true,
11995
+ onSubmit: function () {
11996
+ var _onSubmit = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(values) {
11997
+ var updatedValues, holderAgeDate, confirmationData, bodyFormData, res, profileRes, _e$response2, _e$response2$data, _e$response2$data$mes, _e$response3, _e$response3$data, errorMessage, emailErrors, _e$response4, _e$response4$data;
11998
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
11999
+ while (1) switch (_context2.prev = _context2.next) {
12000
+ case 0:
12001
+ _context2.prev = 0;
12002
+ if (!isLoggedIn) {
12003
+ _context2.next = 21;
12004
+ break;
12005
+ }
12006
+ if (!isPreregistrationStarted) {
12007
+ _context2.next = 18;
12008
+ break;
12009
+ }
12010
+ updatedValues = _extends({}, values);
12011
+ holderAgeDate = new Date(values.holderAge);
12012
+ updatedValues.dobDay = holderAgeDate.getDate();
12013
+ updatedValues.dobMonth = holderAgeDate.getMonth() + 1;
12014
+ updatedValues.dobYear = holderAgeDate.getFullYear();
12015
+ updatedValues.referrerId = referrerId;
12016
+ updatedValues.shareHash = hash;
12017
+ // remove date picker string value
12018
+ delete updatedValues.holderAge;
12019
+ _context2.next = 13;
12020
+ return confirmPreRegistration(eventId, updatedValues);
12021
+ case 13:
12022
+ confirmationData = _context2.sent;
12023
+ if (isWindowDefined$1) {
12024
+ window.localStorage.setItem('pre-registration-hash', _get(confirmationData, 'attributes.hash'));
12025
+ }
12026
+ onConfirmationSuccess(confirmationData);
12027
+ _context2.next = 19;
12028
+ break;
12029
+ case 18:
12030
+ setConfirmModalState({
12031
+ show: true,
12032
+ message: 'The preregistration has not started'
12033
+ });
12034
+ case 19:
12035
+ _context2.next = 41;
12036
+ break;
12037
+ case 21:
12038
+ bodyFormData = new FormData();
12039
+ bodyFormData.append('first_name', values.firstName);
12040
+ bodyFormData.append('last_name', values.lastName);
12041
+ bodyFormData.append('email', values.email);
12042
+ bodyFormData.append('confirm_email', values.confirmEmail);
12043
+ bodyFormData.append('zip', values.zip);
12044
+ bodyFormData.append('country', values.country);
12045
+ bodyFormData.append('password', values.password);
12046
+ bodyFormData.append('password_confirmation', values.confirmPassword);
12047
+ bodyFormData.append('client_id', CONFIGS.CLIENT_ID);
12048
+ bodyFormData.append('client_secret', CONFIGS.CLIENT_SECRET);
12049
+ bodyFormData.append('register_for', 'prereg');
12050
+ _context2.next = 35;
12051
+ return register(bodyFormData);
12052
+ case 35:
12053
+ res = _context2.sent;
12054
+ _context2.next = 38;
12055
+ return getProfileData();
12056
+ case 38:
12057
+ profileRes = _context2.sent;
12058
+ onLoginSuccess(res.data);
12059
+ if (isWindowDefined$1) {
12060
+ window.localStorage.setItem('user_data', JSON.stringify(_get(profileRes, 'data')));
12061
+ }
12062
+ case 41:
12063
+ _context2.next = 50;
12064
+ break;
12065
+ case 43:
12066
+ _context2.prev = 43;
12067
+ _context2.t0 = _context2["catch"](0);
12068
+ errorMessage = (_context2.t0 == null ? void 0 : _context2.t0.message) || 'Error';
12069
+ emailErrors = _context2.t0 == null ? void 0 : (_e$response2 = _context2.t0.response) == null ? void 0 : (_e$response2$data = _e$response2.data) == null ? void 0 : (_e$response2$data$mes = _e$response2$data.message) == null ? void 0 : _e$response2$data$mes.email;
12070
+ if (typeof (_context2.t0 == null ? void 0 : (_e$response3 = _context2.t0.response) == null ? void 0 : (_e$response3$data = _e$response3.data) == null ? void 0 : _e$response3$data.message) === 'string') {
12071
+ errorMessage = _context2.t0 == null ? void 0 : (_e$response4 = _context2.t0.response) == null ? void 0 : (_e$response4$data = _e$response4.data) == null ? void 0 : _e$response4$data.message;
12072
+ }
12073
+ if ((emailErrors == null ? void 0 : emailErrors.length) > 0) {
12074
+ if (emailErrors[0] === 'The email is already used') {
12075
+ setShowModalLogin(true);
12076
+ setAlreadyHasUser(true);
12077
+ }
12078
+ } else {
12079
+ setError(errorMessage);
12080
+ }
12081
+ onConfirmationError(_context2.t0);
12082
+ case 50:
12083
+ case "end":
12084
+ return _context2.stop();
12085
+ }
12086
+ }, _callee2, null, [[0, 43]]);
12087
+ }));
12088
+ function onSubmit(_x) {
12089
+ return _onSubmit.apply(this, arguments);
12090
+ }
12091
+ return onSubmit;
12092
+ }()
12093
+ }, function (props) {
12094
+ return React__default.createElement(formik.Form, null, React__default.createElement("div", {
12095
+ className: "login-modal-body"
12096
+ }, React__default.createElement(FieldsSection$1, {
12097
+ formFields: formFields,
12098
+ values: props.values,
12099
+ setFieldValue: props.setFieldValue,
12100
+ containerClass: "pre-registration",
12101
+ countries: countries
12102
+ })), React__default.createElement("div", {
12103
+ className: "button-container"
12104
+ }, React__default.createElement(material.Button, {
12105
+ type: "submit",
12106
+ variant: "contained",
12107
+ className: "login-register-button",
12108
+ disabled: props.isSubmitting
12109
+ }, props.isSubmitting ? React__default.createElement(material.CircularProgress, {
12110
+ size: 26
12111
+ }) : isLoggedIn ? 'Confirm Pre-Registration' : 'Create Account')));
12112
+ }));
12113
+ };
12114
+
12115
+ var Prewards = function Prewards(props) {
12116
+ var data = props.data,
12117
+ _props$classNamePrefi = props.classNamePrefix,
12118
+ classNamePrefix = _props$classNamePrefi === void 0 ? '' : _props$classNamePrefi,
12119
+ _props$headerNode = props.headerNode,
12120
+ headerNode = _props$headerNode === void 0 ? React__default.createElement(React__default.Fragment, null, "PRE", React__default.createElement("span", null, "WARDS\u2122")) : _props$headerNode;
12121
+ return React__default.createElement("div", {
12122
+ className: classNamePrefix + "_prewards"
12123
+ }, !_isEmpty(data) && React__default.createElement("div", {
12124
+ className: classNamePrefix + "_prewards_heder"
12125
+ }, headerNode), React__default.createElement("div", {
12126
+ className: classNamePrefix + "_prizes"
12127
+ }, _map(data, function (prize) {
12128
+ var description = prize.description,
12129
+ name = prize.name,
12130
+ image = prize.image,
12131
+ id = prize.id;
12132
+ return React__default.createElement("div", {
12133
+ className: classNamePrefix + "_prize",
12134
+ key: id
12135
+ }, image && React__default.createElement("img", {
12136
+ className: classNamePrefix + "_image",
12137
+ alt: "",
12138
+ src: image
12139
+ }), React__default.createElement("div", {
12140
+ className: classNamePrefix + "_info"
12141
+ }, React__default.createElement("h4", {
12142
+ className: classNamePrefix + "_name"
12143
+ }, name), description && React__default.createElement("article", {
12144
+ className: classNamePrefix + "_description"
12145
+ }, description)));
12146
+ })));
12147
+ };
12148
+
12149
+ var CopyField = function CopyField(props) {
12150
+ var copyValue = props.copyValue,
12151
+ _props$copyIconSrc = props.copyIconSrc,
12152
+ copyIconSrc = _props$copyIconSrc === void 0 ? 'https://img.icons8.com/office/50/000000/copy.png' : _props$copyIconSrc,
12153
+ _props$copyTitle = props.copyTitle,
12154
+ copyTitle = _props$copyTitle === void 0 ? 'Copy' : _props$copyTitle,
12155
+ _props$hasCopyIcon = props.hasCopyIcon,
12156
+ hasCopyIcon = _props$hasCopyIcon === void 0 ? false : _props$hasCopyIcon,
12157
+ _props$onLinkCopied = props.onLinkCopied,
12158
+ onLinkCopied = _props$onLinkCopied === void 0 ? _identity : _props$onLinkCopied,
12159
+ _props$classNamePrefi = props.classNamePrefix,
12160
+ classNamePrefix = _props$classNamePrefi === void 0 ? '' : _props$classNamePrefi,
12161
+ _props$messageText = props.messageText,
12162
+ messageText = _props$messageText === void 0 ? '' : _props$messageText;
12163
+ var inputRef = React.useRef(null);
12164
+ return React__default.createElement(React__default.Fragment, null, messageText && React__default.createElement("span", {
12165
+ className: "message-text"
12166
+ }, messageText), React__default.createElement("input", {
12167
+ ref: inputRef,
12168
+ className: classNamePrefix + "_share-input",
12169
+ defaultValue: copyValue,
12170
+ readOnly: true
12171
+ }), React__default.createElement("div", {
12172
+ className: classNamePrefix + "_share-by-link-copy-icon",
12173
+ "aria-hidden": true,
12174
+ onClick: function onClick() {
12175
+ navigator.clipboard.writeText(_get(inputRef, 'current.value'));
12176
+ onLinkCopied();
12177
+ }
12178
+ }, hasCopyIcon ? React__default.createElement("img", {
12179
+ src: copyIconSrc,
12180
+ alt: "copy"
12181
+ }) : React__default.createElement("span", {
12182
+ className: classNamePrefix + "_copy-icon"
12183
+ }, copyTitle)));
12184
+ };
12185
+
12186
+ var ShareOptions = function ShareOptions(props) {
12187
+ var classNamePrefix = props.classNamePrefix,
12188
+ data = props.data,
12189
+ _props$hasCopyIcon = props.hasCopyIcon,
12190
+ hasCopyIcon = _props$hasCopyIcon === void 0 ? true : _props$hasCopyIcon,
12191
+ _props$onLinkCopied = props.onLinkCopied,
12192
+ onLinkCopied = _props$onLinkCopied === void 0 ? _identity : _props$onLinkCopied,
12193
+ _props$headerText = props.headerText,
12194
+ headerText = _props$headerText === void 0 ? 'Share with your friends here ...' : _props$headerText,
12195
+ hash = props.hash,
12196
+ updateShareActionData = props.updateShareActionData,
12197
+ shareActionData = props.shareActionData;
12198
+ var _data$attributes = data.attributes,
12199
+ actions = _data$attributes.actions,
12200
+ shareUrl = _data$attributes.shareUrl;
12201
+ var shareButtons = shareOptionsAdapter(actions, shareUrl);
12202
+ var isShareLinkEnabled = _some(actions, function (item) {
12203
+ return item.action === 'shared_url';
12204
+ });
12205
+ var _onAfterShare = /*#__PURE__*/function () {
12206
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(eventActionId) {
12207
+ var shareActionToken, tokenShuffleMethod, accessToken;
12208
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
12209
+ while (1) switch (_context.prev = _context.next) {
12210
+ case 0:
12211
+ shareActionToken = shareActionData.shareActionToken, tokenShuffleMethod = shareActionData.tokenShuffleMethod;
12212
+ accessToken = getShuffleMethodByName(tokenShuffleMethod)(shareActionToken);
12213
+ if (!(typeof eventActionId === 'string')) {
12214
+ _context.next = 6;
12215
+ break;
12216
+ }
12217
+ _context.next = 5;
12218
+ return submitShareAction({
12219
+ eventActionId: eventActionId,
12220
+ accessToken: accessToken,
12221
+ hash: hash
12222
+ });
12223
+ case 5:
12224
+ updateShareActionData();
12225
+ case 6:
12226
+ case "end":
12227
+ return _context.stop();
12228
+ }
12229
+ }, _callee);
12230
+ }));
12231
+ return function onAfterShare(_x) {
12232
+ return _ref.apply(this, arguments);
12233
+ };
12234
+ }();
12235
+ return React__default.createElement("div", {
12236
+ className: classNamePrefix + "_share_options"
12237
+ }, !_isEmpty(actions) && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
12238
+ className: classNamePrefix + "_share_header"
12239
+ }, headerText), React__default.createElement(SocialButtons, {
12240
+ shareLink: data.attributes.shareUrl,
12241
+ name: "",
12242
+ appId: "",
12243
+ showDefaultShareButtons: false,
12244
+ shareButtons: shareButtons,
12245
+ titleText: "",
12246
+ footerText: "",
12247
+ onAfterShare: function onAfterShare(eventActionId) {
12248
+ return _onAfterShare(eventActionId);
12249
+ }
12250
+ }), isShareLinkEnabled && React__default.createElement("div", {
12251
+ className: classNamePrefix + "_share_btn_inner"
12252
+ }, React__default.createElement(CopyField, {
12253
+ copyValue: shareUrl,
12254
+ onLinkCopied: onLinkCopied,
12255
+ hasCopyIcon: hasCopyIcon,
12256
+ classNamePrefix: classNamePrefix,
12257
+ messageText: "Share your link"
12258
+ }))));
12259
+ };
12260
+
12261
+ var isWindowDefined$2 = typeof window !== 'undefined';
12262
+ var PreRegistrationComplete = function PreRegistrationComplete(_ref) {
12263
+ var pEventId = _ref.eventId,
12264
+ _ref$classNamePrefix = _ref.classNamePrefix,
12265
+ classNamePrefix = _ref$classNamePrefix === void 0 ? '' : _ref$classNamePrefix,
12266
+ _ref$onLinkCopied = _ref.onLinkCopied,
12267
+ _onLinkCopied = _ref$onLinkCopied === void 0 ? _identity : _ref$onLinkCopied,
12268
+ _ref$hasCopyIcon = _ref.hasCopyIcon,
12269
+ hasCopyIcon = _ref$hasCopyIcon === void 0 ? false : _ref$hasCopyIcon,
12270
+ _ref$pageHeader = _ref.pageHeader,
12271
+ pageHeader = _ref$pageHeader === void 0 ? 'Pre-Registration Confirmation' : _ref$pageHeader,
12272
+ _ref$onGetConfirmatio = _ref.onGetConfirmationDataError,
12273
+ onGetConfirmationDataError = _ref$onGetConfirmatio === void 0 ? _identity : _ref$onGetConfirmatio,
12274
+ _ref$onGetConfirmatio2 = _ref.onGetConfirmationDataSuccess,
12275
+ onGetConfirmationDataSuccess = _ref$onGetConfirmatio2 === void 0 ? _identity : _ref$onGetConfirmatio2,
12276
+ _ref$pageMessage = _ref.pageMessage,
12277
+ pageMessage = _ref$pageMessage === void 0 ? 'Pre registration was successful!' : _ref$pageMessage,
12278
+ _ref$onLoginSuccess = _ref.onLoginSuccess,
12279
+ onLoginSuccess = _ref$onLoginSuccess === void 0 ? _identity : _ref$onLoginSuccess,
12280
+ logo = _ref.logo;
12281
+ var localStorageHash = isWindowDefined$2 ? localStorage.getItem('pre-registration-hash') : '';
12282
+ var queryHash = getQueryVariable('hash') || '';
12283
+ queryHash && isWindowDefined$2 && window.localStorage.setItem('pre-registration-hash', queryHash);
12284
+ var hash = queryHash || localStorageHash;
12285
+ var _useState = React.useState(Boolean(getCookieByName(X_TF_ECOMMERCE))),
12286
+ isLoggedIn = _useState[0],
12287
+ setIsLoggedIn = _useState[1];
12288
+ var _useState2 = React.useState(!isLoggedIn),
12289
+ showModalLogin = _useState2[0],
12290
+ setShowModalLogin = _useState2[1];
12291
+ var _useState3 = React.useState(false),
12292
+ showCopyModal = _useState3[0],
12293
+ setShowCopyModal = _useState3[1];
12294
+ var _useState4 = React.useState([]),
12295
+ prizes = _useState4[0],
12296
+ setPrizes = _useState4[1];
12297
+ var _useState5 = React.useState({}),
12298
+ shareOptions = _useState5[0],
12299
+ setShareOptions = _useState5[1];
12300
+ var _useState6 = React.useState({}),
12301
+ shareActionData = _useState6[0],
12302
+ setShareActionData = _useState6[1];
12303
+ var _useState7 = React.useState({}),
12304
+ error = _useState7[0],
12305
+ setError = _useState7[1];
12306
+ useCookieListener(X_TF_ECOMMERCE, function (value) {
12307
+ return setIsLoggedIn(Boolean(value));
12308
+ });
12309
+ React.useEffect(function () {
12310
+ var fetchConfirmationData = /*#__PURE__*/function () {
12311
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
12312
+ var shareOptionsData, attributes, eventId, influencersData, _error$response;
12313
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
12314
+ while (1) switch (_context.prev = _context.next) {
12315
+ case 0:
12316
+ _context.prev = 0;
12317
+ if (!(hash && isLoggedIn)) {
12318
+ _context.next = 15;
12319
+ break;
12320
+ }
12321
+ _context.next = 4;
12322
+ return getPreRegistrationShareOptions({
12323
+ hash: hash
12324
+ });
12325
+ case 4:
12326
+ shareOptionsData = _context.sent;
12327
+ attributes = shareOptionsData.data.attributes;
12328
+ setShareOptions(shareOptionsData.data);
12329
+ setShareActionData({
12330
+ shareActionToken: attributes.shareActionToken,
12331
+ tokenShuffleMethod: attributes.tokenShuffleMethod
12332
+ });
12333
+ eventId = _get(shareOptionsData, 'data.attributes.eventId');
12334
+ if (!(eventId || pEventId)) {
12335
+ _context.next = 14;
12336
+ break;
12337
+ }
12338
+ _context.next = 12;
12339
+ return getPreRegistrationInfluancers({
12340
+ eventId: eventId || pEventId
12341
+ });
12342
+ case 12:
12343
+ influencersData = _context.sent;
12344
+ setPrizes(influencersData.data.attributes.prizes);
12345
+ case 14:
12346
+ onGetConfirmationDataSuccess();
12347
+ case 15:
12348
+ _context.next = 20;
12349
+ break;
12350
+ case 17:
12351
+ _context.prev = 17;
12352
+ _context.t0 = _context["catch"](0);
12353
+ if (axios.isAxiosError(_context.t0)) {
12354
+ setError((_error$response = _context.t0.response) == null ? void 0 : _error$response.data);
12355
+ }
12356
+ case 20:
12357
+ case "end":
12358
+ return _context.stop();
12359
+ }
12360
+ }, _callee, null, [[0, 17]]);
12361
+ }));
12362
+ return function fetchConfirmationData() {
12363
+ return _ref2.apply(this, arguments);
12364
+ };
12365
+ }();
12366
+ fetchConfirmationData();
12367
+ }, [pEventId, hash, onGetConfirmationDataError, onGetConfirmationDataSuccess, isLoggedIn]);
12368
+ var onClose = function onClose() {
12369
+ setShowCopyModal(false);
12370
+ };
12371
+ var updateShareActionData = /*#__PURE__*/function () {
12372
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
12373
+ var shareOptionsData;
12374
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
12375
+ while (1) switch (_context2.prev = _context2.next) {
12376
+ case 0:
12377
+ if (!hash) {
12378
+ _context2.next = 6;
12379
+ break;
12380
+ }
12381
+ _context2.next = 3;
12382
+ return getPreRegistrationShareOptions({
12383
+ hash: hash
12384
+ });
12385
+ case 3:
12386
+ shareOptionsData = _context2.sent;
12387
+ setShareOptions(shareOptionsData.data);
12388
+ setShareActionData({
12389
+ shareActionToken: shareOptionsData.data.attributes.shareActionToken,
12390
+ tokenShuffleMethod: shareOptionsData.data.attributes.tokenShuffleMethod
12391
+ });
12392
+ case 6:
12393
+ case "end":
12394
+ return _context2.stop();
12395
+ }
12396
+ }, _callee2);
12397
+ }));
12398
+ return function updateShareActionData() {
12399
+ return _ref3.apply(this, arguments);
12400
+ };
12401
+ }();
12402
+ return React__default.createElement(React__default.Fragment, null, isLoggedIn && _isEmpty(error) ? React__default.createElement("div", {
12403
+ className: classNamePrefix + "_pre_registration_complete_container"
12404
+ }, React__default.createElement(CopyMessageModal, {
12405
+ showCopyModal: showCopyModal,
12406
+ onClose: onClose
12407
+ }), React__default.createElement("p", {
12408
+ className: classNamePrefix + "_pre_registration_complete_header"
12409
+ }, pageHeader), React__default.createElement("div", {
12410
+ className: classNamePrefix + "_pre_registration_complete_message"
12411
+ }, pageMessage), React__default.createElement("div", {
12412
+ className: classNamePrefix + "_pre_registration_complete_body"
12413
+ }, !_isEmpty(prizes) && React__default.createElement(Prewards, {
12414
+ classNamePrefix: classNamePrefix,
12415
+ data: prizes
12416
+ }), !_isEmpty(shareOptions) && React__default.createElement(ShareOptions, {
12417
+ classNamePrefix: classNamePrefix,
12418
+ data: shareOptions,
12419
+ onLinkCopied: function onLinkCopied() {
12420
+ setShowCopyModal(true);
12421
+ _onLinkCopied();
12422
+ },
12423
+ shareActionData: shareActionData,
12424
+ updateShareActionData: updateShareActionData,
12425
+ hasCopyIcon: hasCopyIcon,
12426
+ hash: hash
12427
+ }))) : showModalLogin && React__default.createElement(LoginModal, {
12428
+ logo: logo,
12429
+ onClose: function onClose() {
12430
+ setShowModalLogin(false);
12431
+ },
12432
+ onLogin: function onLogin(res) {
12433
+ setShowModalLogin(false);
12434
+ onLoginSuccess(res);
12435
+ }
12436
+ }), !_isEmpty(error) && React__default.createElement(ConfirmModal, {
12437
+ hideCancelBtn: true,
12438
+ message: error.message,
12439
+ onConfirm: function onConfirm() {
12440
+ return onGetConfirmationDataError(error);
12441
+ }
12442
+ }));
12443
+ };
12444
+
12445
+ var Influancers = function Influancers(props) {
12446
+ var data = props.data,
12447
+ classNamePrefix = props.classNamePrefix,
12448
+ _props$headerNode = props.headerNode,
12449
+ headerNode = _props$headerNode === void 0 ? React__default.createElement(React__default.Fragment, null, "TOP", React__default.createElement("span", null, "\xA0INFLUANCERS")) : _props$headerNode;
12450
+ return React__default.createElement("div", {
12451
+ className: classNamePrefix + "_influencers_container"
12452
+ }, !_isEmpty(data) && React__default.createElement("div", {
12453
+ className: classNamePrefix + "_influencers_header"
12454
+ }, headerNode), React__default.createElement("div", {
12455
+ className: classNamePrefix + "_influencers"
12456
+ }, _map(data, function (influencer, index) {
12457
+ return React__default.createElement("div", {
12458
+ key: influencer.prereg_id,
12459
+ className: classNamePrefix + "_influencer"
12460
+ }, React__default.createElement("span", {
12461
+ className: classNamePrefix + "_influencer_index"
12462
+ }, index + 1), React__default.createElement("span", {
12463
+ className: classNamePrefix + "_influencer_title"
12464
+ }, "INFLUENCER"), React__default.createElement("span", {
12465
+ className: classNamePrefix + "_influencer_name"
12466
+ }, influencer.name));
12467
+ })));
12468
+ };
12469
+
12470
+ var PreRegistrationInformations = function PreRegistrationInformations(props) {
12471
+ var classNamePrefix = props.classNamePrefix,
12472
+ eventId = props.eventId,
12473
+ _props$onGetPreregist = props.onGetPreregistrationDataSuccess,
12474
+ onGetPreregistrationDataSuccess = _props$onGetPreregist === void 0 ? _identity : _props$onGetPreregist,
12475
+ _props$onGetPreregist2 = props.onGetPreregistrationDataError,
12476
+ onGetPreregistrationDataError = _props$onGetPreregist2 === void 0 ? _identity : _props$onGetPreregist2,
12477
+ influancersHeaderNode = props.influancersHeaderNode,
12478
+ prewardsHeaderNode = props.prewardsHeaderNode;
12479
+ var _useState = React.useState([]),
12480
+ prizes = _useState[0],
12481
+ setPrizes = _useState[1];
12482
+ var _useState2 = React.useState([]),
12483
+ influencers = _useState2[0],
12484
+ setInfluencers = _useState2[1];
12485
+ var topInfluancers = _slice(influencers, 0, 10);
12486
+ React.useEffect(function () {
12487
+ var fetchPreregistrationData = /*#__PURE__*/function () {
12488
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
12489
+ var preregistrationData;
12490
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
12491
+ while (1) switch (_context.prev = _context.next) {
12492
+ case 0:
12493
+ _context.prev = 0;
12494
+ _context.next = 3;
12495
+ return getPreRegistrationInfluancers({
12496
+ eventId: eventId
12497
+ });
12498
+ case 3:
12499
+ preregistrationData = _context.sent;
12500
+ setPrizes(preregistrationData.data.attributes.prizes);
12501
+ setInfluencers(preregistrationData.data.attributes.influencers);
12502
+ onGetPreregistrationDataSuccess();
12503
+ _context.next = 12;
12504
+ break;
12505
+ case 9:
12506
+ _context.prev = 9;
12507
+ _context.t0 = _context["catch"](0);
12508
+ if (_context.t0) {
12509
+ onGetPreregistrationDataError();
12510
+ }
12511
+ case 12:
12512
+ case "end":
12513
+ return _context.stop();
12514
+ }
12515
+ }, _callee, null, [[0, 9]]);
12516
+ }));
12517
+ return function fetchPreregistrationData() {
12518
+ return _ref.apply(this, arguments);
12519
+ };
12520
+ }();
12521
+ fetchPreregistrationData();
12522
+ }, [eventId, onGetPreregistrationDataError, onGetPreregistrationDataSuccess]);
12523
+ return React__default.createElement("div", {
12524
+ className: classNamePrefix + "_pre_registration_info_container"
12525
+ }, React__default.createElement(Prewards, {
12526
+ headerNode: prewardsHeaderNode,
12527
+ data: prizes,
12528
+ classNamePrefix: classNamePrefix
12529
+ }), React__default.createElement(Influancers, {
12530
+ headerNode: influancersHeaderNode,
12531
+ data: topInfluancers,
12532
+ classNamePrefix: classNamePrefix
12533
+ }));
12534
+ };
12535
+
11187
12536
  exports.AddonsContainter = AddonsContainter;
11188
12537
  exports.BillingInfoContainer = BillingInfoContainer;
11189
12538
  exports.ConfirmationContainer = ConfirmationContainer;
@@ -11195,6 +12544,9 @@ exports.MyTicketsContainer = MyTicketsContainer;
11195
12544
  exports.OrderDetailsContainer = OrderDetailsContainer;
11196
12545
  exports.PaymentContainer = PaymentContainer;
11197
12546
  exports.PoweredBy = PoweredBy;
12547
+ exports.PreRegistration = PreRegistration;
12548
+ exports.PreRegistrationComplete = PreRegistrationComplete;
12549
+ exports.PreRegistrationInformations = PreRegistrationInformations;
11198
12550
  exports.RedirectModal = RedirectModal;
11199
12551
  exports.ResetPasswordContainer = ResetPasswordContainer;
11200
12552
  exports.RsvpContainer = RsvpContainer;