tf-checkout-react 1.3.50 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/api/index.d.ts +6 -1
  2. package/dist/components/common/Loader.d.ts +1 -1
  3. package/dist/components/idVerificationContainer/constants.d.ts +2 -0
  4. package/dist/components/index.d.ts +1 -0
  5. package/dist/components/seatMapContainer/SeatMapComponent.d.ts +8 -0
  6. package/dist/components/seatMapContainer/TicketsSection.d.ts +9 -0
  7. package/dist/components/seatMapContainer/addToCart.d.ts +21 -0
  8. package/dist/components/seatMapContainer/index.d.ts +2 -0
  9. package/dist/components/seatMapContainer/utils.d.ts +14 -0
  10. package/dist/components/stripePayment/index.d.ts +2 -2
  11. package/dist/components/ticketsContainer/TicketRow.d.ts +3 -1
  12. package/dist/components/ticketsContainer/TicketsSection.d.ts +5 -1
  13. package/dist/components/ticketsContainer/index.d.ts +6 -2
  14. package/dist/index.d.ts +1 -0
  15. package/dist/tf-checkout-react.cjs.development.js +1441 -130
  16. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  17. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  18. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  19. package/dist/tf-checkout-react.esm.js +1442 -132
  20. package/dist/tf-checkout-react.esm.js.map +1 -1
  21. package/dist/tf-checkout-styles.css +1 -1
  22. package/dist/types/order-data.d.ts +3 -0
  23. package/dist/utils/createCheckoutDataBodyWithDefaultHolder.d.ts +9 -2
  24. package/package.json +12 -4
  25. package/src/.d.ts +4 -3
  26. package/src/api/index.ts +89 -6
  27. package/src/components/billing-info-container/index.tsx +115 -103
  28. package/src/components/billing-info-container/utils.ts +1 -2
  29. package/src/components/common/Loader.tsx +6 -8
  30. package/src/components/confirmationContainer/index.tsx +11 -9
  31. package/src/components/idVerificationContainer/constants.ts +2 -0
  32. package/src/components/idVerificationContainer/index.tsx +54 -13
  33. package/src/components/index.ts +2 -1
  34. package/src/components/orderDetailsContainer/index.tsx +54 -23
  35. package/src/components/paymentContainer/index.tsx +167 -33
  36. package/src/components/seatMapContainer/SeatMapComponent.tsx +73 -0
  37. package/src/components/seatMapContainer/TicketsSection.tsx +254 -0
  38. package/src/components/seatMapContainer/addToCart.ts +82 -0
  39. package/src/components/seatMapContainer/index.tsx +408 -0
  40. package/src/components/seatMapContainer/utils.ts +138 -0
  41. package/src/components/stripePayment/index.tsx +23 -18
  42. package/src/components/ticketsContainer/TicketRow.tsx +28 -13
  43. package/src/components/ticketsContainer/TicketsSection.tsx +85 -2
  44. package/src/components/ticketsContainer/index.tsx +57 -12
  45. package/src/components/ticketsContainer/style.css +0 -3
  46. package/src/hooks/usePixel.ts +35 -1
  47. package/src/index.ts +2 -1
  48. package/src/types/order-data.ts +3 -0
  49. package/src/types/seatMap.d.ts +154 -0
  50. package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +6 -2
@@ -58,6 +58,7 @@ var stripeJs = require('@stripe/stripe-js');
58
58
  var reactShare = require('react-share');
59
59
  var privateTheming = require('@mui/private-theming');
60
60
  var jwt_decode = _interopDefault(require('jwt-decode'));
61
+ var _filter = _interopDefault(require('lodash/filter'));
61
62
  var _some = _interopDefault(require('lodash/some'));
62
63
  var Button$1 = _interopDefault(require('react-bootstrap/Button'));
63
64
  var moment = _interopDefault(require('moment-timezone'));
@@ -74,6 +75,15 @@ var TableRow = _interopDefault(require('@mui/material/TableRow'));
74
75
  var _has = _interopDefault(require('lodash/has'));
75
76
  var _isNull = _interopDefault(require('lodash/isNull'));
76
77
  var _reverse = _interopDefault(require('lodash/reverse'));
78
+ var lodash = require('lodash');
79
+ var _keys = _interopDefault(require('lodash/keys'));
80
+ var _values = _interopDefault(require('lodash/values'));
81
+ var moment$1 = _interopDefault(require('moment'));
82
+ require('tf-seat-map-view/dist/index.css');
83
+ var ReactDom = _interopDefault(require('react-dom'));
84
+ var SeatMapView = _interopDefault(require('tf-seat-map-view'));
85
+ var InputLabel = _interopDefault(require('@mui/material/InputLabel'));
86
+ var reactBootstrap = require('react-bootstrap');
77
87
 
78
88
  function _regeneratorRuntime() {
79
89
  _regeneratorRuntime = function () {
@@ -734,6 +744,7 @@ publicRequest.interceptors.response.use(function (response) {
734
744
  return Promise.reject(error);
735
745
  });
736
746
  publicRequest.interceptors.request.use(function (config) {
747
+ var _document$cookie;
737
748
  var guestToken = isWindowDefined ? window.localStorage.getItem('auth_guest_token') : null;
738
749
  var userData = isWindowDefined ? window.localStorage.getItem('user_data') : null;
739
750
  var accessToken = isWindowDefined ? window.localStorage.getItem('access_token') : null;
@@ -756,6 +767,13 @@ publicRequest.interceptors.request.use(function (config) {
756
767
  });
757
768
  config.headers = _updatedHeaders2;
758
769
  }
770
+ var additionalCookiesHeaderValue = (_document$cookie = document.cookie) != null ? _document$cookie : '';
771
+ if (additionalCookiesHeaderValue !== '') {
772
+ var _updatedHeaders3 = _extends({}, config.headers, {
773
+ 'Additional-Cookies': additionalCookiesHeaderValue
774
+ });
775
+ config.headers = _updatedHeaders3;
776
+ }
759
777
  if (CONFIGS.X_SOURCE_ORIGIN) {
760
778
  var _updatedHeaders4 = _extends({}, config.headers, {
761
779
  'X-Source-Origin': CONFIGS.X_SOURCE_ORIGIN
@@ -1046,6 +1064,121 @@ var getCheckoutPageConfigs = /*#__PURE__*/function () {
1046
1064
  return _ref3.apply(this, arguments);
1047
1065
  };
1048
1066
  }();
1067
+ // seat map <--start-->
1068
+ // const makeId = (length = 20) => {
1069
+ // let result = ''
1070
+ // const characters =
1071
+ // 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
1072
+ // const charactersLength = characters.length
1073
+ // for (let i = 0; i < length; i++) {
1074
+ // result += characters.charAt(Math.floor(Math.random() * charactersLength))
1075
+ // }
1076
+ // return result
1077
+ // }
1078
+ var getSeatMapData = /*#__PURE__*/function () {
1079
+ var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(eventId) {
1080
+ var reservedSeatsHash, params, response;
1081
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1082
+ while (1) switch (_context4.prev = _context4.next) {
1083
+ case 0:
1084
+ localStorage.setItem('tierId', '');
1085
+ reservedSeatsHash = getQueryVariable('reserved_seats_hash');
1086
+ params = {};
1087
+ if (reservedSeatsHash) {
1088
+ params.reserved_seats_hash = reservedSeatsHash;
1089
+ }
1090
+ _context4.next = 6;
1091
+ return publicRequest.get("v1/event/" + eventId + "/seat-map-data", {
1092
+ params: params
1093
+ });
1094
+ case 6:
1095
+ response = _context4.sent;
1096
+ return _context4.abrupt("return", response.data);
1097
+ case 8:
1098
+ case "end":
1099
+ return _context4.stop();
1100
+ }
1101
+ }, _callee4);
1102
+ }));
1103
+ return function getSeatMapData(_x3) {
1104
+ return _ref4.apply(this, arguments);
1105
+ };
1106
+ }();
1107
+ var getSeatMapStatuses = /*#__PURE__*/function () {
1108
+ var _ref5 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(eventId) {
1109
+ var response;
1110
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1111
+ while (1) switch (_context5.prev = _context5.next) {
1112
+ case 0:
1113
+ _context5.next = 2;
1114
+ return publicRequest.get("v1/event/" + eventId + "/seats/status");
1115
+ case 2:
1116
+ response = _context5.sent;
1117
+ return _context5.abrupt("return", response.data);
1118
+ case 4:
1119
+ case "end":
1120
+ return _context5.stop();
1121
+ }
1122
+ }, _callee5);
1123
+ }));
1124
+ return function getSeatMapStatuses(_x4) {
1125
+ return _ref5.apply(this, arguments);
1126
+ };
1127
+ }();
1128
+ var reserveSeat = /*#__PURE__*/function () {
1129
+ var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(eventId, tierId, seatId) {
1130
+ var response;
1131
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1132
+ while (1) switch (_context6.prev = _context6.next) {
1133
+ case 0:
1134
+ _context6.next = 2;
1135
+ return publicRequest.post("v1/event/" + eventId + "/seats/reserve", {
1136
+ data: {
1137
+ tierId: tierId,
1138
+ seatId: seatId,
1139
+ ttl: 10
1140
+ }
1141
+ });
1142
+ case 2:
1143
+ response = _context6.sent;
1144
+ return _context6.abrupt("return", response.data);
1145
+ case 4:
1146
+ case "end":
1147
+ return _context6.stop();
1148
+ }
1149
+ }, _callee6);
1150
+ }));
1151
+ return function reserveSeat(_x5, _x6, _x7) {
1152
+ return _ref6.apply(this, arguments);
1153
+ };
1154
+ }();
1155
+ var removeSeatReserve = /*#__PURE__*/function () {
1156
+ var _ref7 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(eventId, tierId, seatIds) {
1157
+ var response;
1158
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1159
+ while (1) switch (_context7.prev = _context7.next) {
1160
+ case 0:
1161
+ _context7.next = 2;
1162
+ return publicRequest["delete"]("v1/event/" + eventId + "/seats/delete-reserved", {
1163
+ data: {
1164
+ tierId: tierId,
1165
+ seatIds: seatIds
1166
+ }
1167
+ });
1168
+ case 2:
1169
+ response = _context7.sent;
1170
+ return _context7.abrupt("return", response.data);
1171
+ case 4:
1172
+ case "end":
1173
+ return _context7.stop();
1174
+ }
1175
+ }, _callee7);
1176
+ }));
1177
+ return function removeSeatReserve(_x8, _x9, _x10) {
1178
+ return _ref7.apply(this, arguments);
1179
+ };
1180
+ }();
1181
+ // seat map <--end-->
1049
1182
  function getPixelScript(id, pageOptions) {
1050
1183
  var response = publicRequest.get("v1/event/" + id + "/track", {
1051
1184
  params: {
@@ -1058,54 +1191,54 @@ function getPixelScript(id, pageOptions) {
1058
1191
  }
1059
1192
  // ID Verification
1060
1193
  var getNetverifyUrl = /*#__PURE__*/function () {
1061
- var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
1194
+ var _ref8 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
1062
1195
  var response;
1063
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1064
- while (1) switch (_context4.prev = _context4.next) {
1196
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1197
+ while (1) switch (_context8.prev = _context8.next) {
1065
1198
  case 0:
1066
- _context4.next = 2;
1199
+ _context8.next = 2;
1067
1200
  return publicRequest.get('v1/authenticate/verify');
1068
1201
  case 2:
1069
- response = _context4.sent;
1070
- return _context4.abrupt("return", response.data);
1202
+ response = _context8.sent;
1203
+ return _context8.abrupt("return", response.data);
1071
1204
  case 4:
1072
1205
  case "end":
1073
- return _context4.stop();
1206
+ return _context8.stop();
1074
1207
  }
1075
- }, _callee4);
1208
+ }, _callee8);
1076
1209
  }));
1077
1210
  return function getNetverifyUrl() {
1078
- return _ref4.apply(this, arguments);
1211
+ return _ref8.apply(this, arguments);
1079
1212
  };
1080
1213
  }();
1081
1214
  var checkVerificationStatus = /*#__PURE__*/function () {
1082
- var _ref5 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
1215
+ var _ref9 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1083
1216
  var response;
1084
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1085
- while (1) switch (_context5.prev = _context5.next) {
1217
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1218
+ while (1) switch (_context9.prev = _context9.next) {
1086
1219
  case 0:
1087
- _context5.next = 2;
1220
+ _context9.next = 2;
1088
1221
  return publicRequest.get('v1/authenticate/get-verification-info');
1089
1222
  case 2:
1090
- response = _context5.sent;
1091
- return _context5.abrupt("return", response.data);
1223
+ response = _context9.sent;
1224
+ return _context9.abrupt("return", response.data);
1092
1225
  case 4:
1093
1226
  case "end":
1094
- return _context5.stop();
1227
+ return _context9.stop();
1095
1228
  }
1096
- }, _callee5);
1229
+ }, _callee9);
1097
1230
  }));
1098
1231
  return function checkVerificationStatus() {
1099
- return _ref5.apply(this, arguments);
1232
+ return _ref9.apply(this, arguments);
1100
1233
  };
1101
1234
  }();
1102
1235
  var updateVerificationStatus = /*#__PURE__*/function () {
1103
- var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
1236
+ var _ref10 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10() {
1104
1237
  var response;
1105
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1106
- while (1) switch (_context6.prev = _context6.next) {
1238
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1239
+ while (1) switch (_context10.prev = _context10.next) {
1107
1240
  case 0:
1108
- _context6.next = 2;
1241
+ _context10.next = 2;
1109
1242
  return publicRequest.patch('v1/authenticate/verify', {
1110
1243
  data: {
1111
1244
  verification: {
@@ -1114,16 +1247,37 @@ var updateVerificationStatus = /*#__PURE__*/function () {
1114
1247
  }
1115
1248
  });
1116
1249
  case 2:
1117
- response = _context6.sent;
1118
- return _context6.abrupt("return", response.data);
1250
+ response = _context10.sent;
1251
+ return _context10.abrupt("return", response.data);
1119
1252
  case 4:
1120
1253
  case "end":
1121
- return _context6.stop();
1254
+ return _context10.stop();
1122
1255
  }
1123
- }, _callee6);
1256
+ }, _callee10);
1124
1257
  }));
1125
1258
  return function updateVerificationStatus() {
1126
- return _ref6.apply(this, arguments);
1259
+ return _ref10.apply(this, arguments);
1260
+ };
1261
+ }();
1262
+ var checkCustomerOrder = /*#__PURE__*/function () {
1263
+ var _ref11 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(orderHash) {
1264
+ var response;
1265
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
1266
+ while (1) switch (_context11.prev = _context11.next) {
1267
+ case 0:
1268
+ _context11.next = 2;
1269
+ return publicRequest.get("v1/order/" + orderHash + "/verify-customer-order");
1270
+ case 2:
1271
+ response = _context11.sent;
1272
+ return _context11.abrupt("return", response.data);
1273
+ case 4:
1274
+ case "end":
1275
+ return _context11.stop();
1276
+ }
1277
+ }, _callee11);
1278
+ }));
1279
+ return function checkCustomerOrder(_x11) {
1280
+ return _ref11.apply(this, arguments);
1127
1281
  };
1128
1282
  }();
1129
1283
 
@@ -1144,6 +1298,32 @@ function appendScriptsToHeader(code) {
1144
1298
  }
1145
1299
  }
1146
1300
  }
1301
+ var addGTagToHeader = function addGTagToHeader(tagId, links) {
1302
+ var _document, _document2;
1303
+ if ((_document = document) != null && _document.head && (_document2 = document) != null && _document2.body && tagId) {
1304
+ var script = document.createElement('script');
1305
+ script.innerHTML = ("(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','" + tagId + "');").trim();
1306
+ document.head.append(script);
1307
+ var scriptBody = document.createElement('noscript');
1308
+ scriptBody.innerHTML = "<iframe src=\"https://www.googletagmanager.com/ns.html?id=" + tagId + "\"\n height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe>";
1309
+ document.body.append(scriptBody);
1310
+ window.dataLayer = window.dataLayer || [];
1311
+ window.gtag = function gtag() {
1312
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1313
+ args[_key] = arguments[_key];
1314
+ }
1315
+ window.dataLayer.push(args);
1316
+ };
1317
+ if (links) {
1318
+ var _window;
1319
+ (_window = window) == null ? void 0 : _window.gtag('set', 'linker', {
1320
+ 'domains': links
1321
+ });
1322
+ }
1323
+ window.gtag('js', new Date());
1324
+ window.gtag('config', tagId);
1325
+ }
1326
+ };
1147
1327
  var usePixel = /*#__PURE__*/function () {
1148
1328
  var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(eventId, options) {
1149
1329
  var getScript;
@@ -1152,7 +1332,7 @@ var usePixel = /*#__PURE__*/function () {
1152
1332
  case 0:
1153
1333
  getScript = /*#__PURE__*/function () {
1154
1334
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
1155
- var response, pixels;
1335
+ var response, pixels, brandGoogleTagKey, eventGoogleTagKey, eventGoogleTagManagerLinkerDomains;
1156
1336
  return _regeneratorRuntime().wrap(function _callee$(_context) {
1157
1337
  while (1) switch (_context.prev = _context.next) {
1158
1338
  case 0:
@@ -1169,17 +1349,24 @@ var usePixel = /*#__PURE__*/function () {
1169
1349
  response = _context.sent;
1170
1350
  pixels = _get(response, 'data.data.attributes.pixels', '');
1171
1351
  appendScriptsToHeader(pixels);
1172
- _context.next = 13;
1352
+ brandGoogleTagKey = _get(response, 'data.data.attributes.brandGoogleTagKey', '');
1353
+ eventGoogleTagKey = _get(response, 'data.data.attributes.eventGoogleTagKey', '');
1354
+ eventGoogleTagManagerLinkerDomains = _get(response, 'data.data.attributes.eventGoogleTagManagerLinkerDomains', '');
1355
+ addGTagToHeader(brandGoogleTagKey, eventGoogleTagManagerLinkerDomains);
1356
+ if (eventGoogleTagKey) {
1357
+ addGTagToHeader(eventGoogleTagKey, eventGoogleTagManagerLinkerDomains);
1358
+ }
1359
+ _context.next = 18;
1173
1360
  break;
1174
- case 10:
1175
- _context.prev = 10;
1361
+ case 15:
1362
+ _context.prev = 15;
1176
1363
  _context.t0 = _context["catch"](2);
1177
1364
  console.error(_context.t0);
1178
- case 13:
1365
+ case 18:
1179
1366
  case "end":
1180
1367
  return _context.stop();
1181
1368
  }
1182
- }, _callee, null, [[2, 10]]);
1369
+ }, _callee, null, [[2, 15]]);
1183
1370
  }));
1184
1371
  return function getScript() {
1185
1372
  return _ref2.apply(this, arguments);
@@ -2104,11 +2291,11 @@ var PhoneNumberField = function PhoneNumberField(_ref) {
2104
2291
  }));
2105
2292
  };
2106
2293
 
2107
- function Loader() {
2294
+ var Loader = function Loader() {
2108
2295
  return React__default.createElement("div", {
2109
2296
  className: "loader-container"
2110
2297
  }, React__default.createElement(CircularProgress, null));
2111
- }
2298
+ };
2112
2299
 
2113
2300
  var NativeSelectField = function NativeSelectField(_ref) {
2114
2301
  var label = _ref.label,
@@ -2575,7 +2762,7 @@ var getFieldComponent = function getFieldComponent(element) {
2575
2762
  var type = _get(element, 'type', 'text');
2576
2763
  var fieldComponentConfigs = {
2577
2764
  checkbox: CheckboxField,
2578
- select: NativeSelectField,
2765
+ select: CustomField,
2579
2766
  select_multi: SelectField,
2580
2767
  phone: PhoneNumberField,
2581
2768
  date: DatePickerField,
@@ -2826,15 +3013,18 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
2826
3013
  var _useState14 = React.useState(true),
2827
3014
  loading = _useState14[0],
2828
3015
  setLoading = _useState14[1];
2829
- var _useState15 = React.useState(true),
2830
- isCountriesLoading = _useState15[0],
2831
- setIsCountriesLoading = _useState15[1];
2832
- var _useState16 = React.useState(null),
2833
- error = _useState16[0],
2834
- setError = _useState16[1];
2835
- var _useState17 = React.useState(false),
2836
- phoneValidationIsLoading = _useState17[0],
2837
- setPhoneValidationIsLoading = _useState17[1];
3016
+ var _useState15 = React.useState(false),
3017
+ cardLoading = _useState15[0],
3018
+ setCardLoading = _useState15[1];
3019
+ var _useState16 = React.useState(true),
3020
+ isCountriesLoading = _useState16[0],
3021
+ setIsCountriesLoading = _useState16[1];
3022
+ var _useState17 = React.useState(null),
3023
+ error = _useState17[0],
3024
+ setError = _useState17[1];
3025
+ var _useState18 = React.useState(false),
3026
+ phoneValidationIsLoading = _useState18[0],
3027
+ setPhoneValidationIsLoading = _useState18[1];
2838
3028
  var emailLogged = _get(userData, 'email', '') || _get(userValues, 'email', '');
2839
3029
  var firstNameLogged = _get(userData, 'first_name', '') || _get(userValues, 'first_name', '');
2840
3030
  var lastNameLogged = _get(userData, 'last_name', '') || _get(userValues, 'last_name', '');
@@ -2843,6 +3033,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
2843
3033
  var eventId = getQueryVariable('event_id') || '';
2844
3034
  var optedInFieldValue = brandOptIn ? brandOptIn : _get(cartInfoData, 'optedIn', false);
2845
3035
  var ttfOptIn = Boolean(_get(cartInfoData, 'ttfOptIn', false));
3036
+ var isTable = Boolean(_get(cartInfoData, 'is_table', false));
2846
3037
  var hideTtfOptIn = _get(cartInfoData, 'hide_ttf_opt_in', true);
2847
3038
  var expirationTime = _get(cartInfoData, 'expiresAt');
2848
3039
  var flagRequirePhone = getQueryVariable('phone_required') === 'true';
@@ -2851,9 +3042,9 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
2851
3042
  var flagFreeTicket = getQueryVariable('free_ticket') === 'true';
2852
3043
  var hidePhoneField = getQueryVariable('hide_phone_field') === 'true';
2853
3044
  var hideWalletAddressField = !collectOptionalWalletAddress && !collectMandatoryWalletAddress;
2854
- var _useState18 = React.useState(),
2855
- pendingVerificationMessage = _useState18[0],
2856
- setPendingVerificationMessage = _useState18[1];
3045
+ var _useState19 = React.useState(),
3046
+ pendingVerificationMessage = _useState19[0],
3047
+ setPendingVerificationMessage = _useState19[1];
2857
3048
  // Get prevProps
2858
3049
  var prevData = React.useRef(data);
2859
3050
  var addAddOnsInAttributes = function addAddOnsInAttributes(checkoutBody) {
@@ -2933,9 +3124,10 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
2933
3124
  while (1) switch (_context3.prev = _context3.next) {
2934
3125
  case 0:
2935
3126
  _context3.prev = 0;
2936
- _context3.next = 3;
3127
+ setCardLoading(true);
3128
+ _context3.next = 4;
2937
3129
  return getCart();
2938
- case 3:
3130
+ case 4:
2939
3131
  res = _context3.sent;
2940
3132
  setCustomHeader(res);
2941
3133
  cartInfo = _get(res, 'data.data.attributes');
@@ -2945,19 +3137,23 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
2945
3137
  return nanoid.nanoid();
2946
3138
  }));
2947
3139
  onGetCartSuccess(res.data);
2948
- _context3.next = 15;
3140
+ _context3.next = 16;
2949
3141
  break;
2950
- case 12:
2951
- _context3.prev = 12;
3142
+ case 13:
3143
+ _context3.prev = 13;
2952
3144
  _context3.t0 = _context3["catch"](0);
2953
3145
  if (axios.isAxiosError(_context3.t0)) {
2954
3146
  onGetCartError(_context3.t0);
2955
3147
  }
2956
- case 15:
3148
+ case 16:
3149
+ _context3.prev = 16;
3150
+ setCardLoading(false);
3151
+ return _context3.finish(16);
3152
+ case 19:
2957
3153
  case "end":
2958
3154
  return _context3.stop();
2959
3155
  }
2960
- }, _callee3, null, [[0, 12]]);
3156
+ }, _callee3, null, [[0, 13, 16, 19]]);
2961
3157
  }));
2962
3158
  return function fetchCart() {
2963
3159
  return _ref6.apply(this, arguments);
@@ -3096,9 +3292,12 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3096
3292
  page: 'billing',
3097
3293
  pageUrl: pageUrl
3098
3294
  });
3295
+ if (isTable) {
3296
+ dataWithUniqueIds[0].label = 'Get Your Tables';
3297
+ }
3099
3298
  return React__default.createElement(styles.ThemeProvider, {
3100
3299
  theme: themeMui
3101
- }, (loading || isCountriesLoading) && React__default.createElement(Backdrop, {
3300
+ }, (loading || cardLoading || isCountriesLoading) && React__default.createElement(Backdrop, {
3102
3301
  sx: {
3103
3302
  color: '#fff',
3104
3303
  backgroundColor: '#000000bd',
@@ -3313,7 +3512,7 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3313
3512
  }, React__default.createElement("img", {
3314
3513
  src: theme === 'dark' ? 'https://www.ticketfairy.com/resources/images/logo-ttf.svg' : 'https://www.ticketfairy.com/resources/images/logo-ttf-black.svg',
3315
3514
  alt: "nodata"
3316
- })))), _map(dataWithUniqueIds, function (item) {
3515
+ })))), !cardLoading && _map(dataWithUniqueIds, function (item) {
3317
3516
  var label = item.label,
3318
3517
  labelClassName = item.labelClassName,
3319
3518
  fields = item.fields;
@@ -3375,7 +3574,11 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
3375
3574
  value: item.id,
3376
3575
  label: item.name
3377
3576
  };
3378
- }) : element.name === 'state' ? states : element.selectOptions || [],
3577
+ }) : element.name === 'state' ? [{
3578
+ label: element.label,
3579
+ value: '',
3580
+ disabled: true
3581
+ }].concat(states) : element.selectOptions || [],
3379
3582
  theme: theme,
3380
3583
  defaultCountry: defaultCountry || element.defaultCountry,
3381
3584
  dateFormat: element.format,
@@ -3789,12 +3992,15 @@ var getStripePromise = function getStripePromise(reviewData) {
3789
3992
  return stripeJs.loadStripe(stripePublishableKey, options);
3790
3993
  };
3791
3994
  var initialOrderValues = {
3995
+ id: '',
3792
3996
  product_name: '',
3793
3997
  ticketType: '',
3794
3998
  quantity: '',
3795
3999
  price: '',
3796
4000
  total: '',
3797
4001
  currency: '',
4002
+ guest_count: '',
4003
+ pay_now: '',
3798
4004
  add_ons: []
3799
4005
  };
3800
4006
  var initialReviewValues = {
@@ -3865,7 +4071,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3865
4071
  var eventId = getQueryVariable('event_id') || _get(reviewData, 'cart[0].product_id') || '';
3866
4072
  var hash = checkoutData.hash,
3867
4073
  total = checkoutData.total;
3868
- var isFreeTickets = !Number(total) && !Number(orderData.total);
4074
+ var isFreeTickets = !Number(total) && !Number(orderData.total) || !Number(orderData.pay_now);
3869
4075
  var pageUrl = isBrowser ? window.location.href.split('?')[0] : '';
3870
4076
  usePixel(eventId, {
3871
4077
  page: 'review',
@@ -3873,7 +4079,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3873
4079
  });
3874
4080
  React.useEffect(function () {
3875
4081
  _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
3876
- var response, _cart$, attributes, cart, order_details, _order_details$ticket, ticket, _orderData;
4082
+ var response, _cart$2, attributes, cart, order_details, _order_details$ticket, ticket, orderDataArray, _orderData;
3877
4083
  return _regeneratorRuntime().wrap(function _callee$(_context) {
3878
4084
  while (1) switch (_context.prev = _context.next) {
3879
4085
  case 0:
@@ -3887,14 +4093,30 @@ var PaymentContainer = function PaymentContainer(_ref) {
3887
4093
  setReviewData(attributes);
3888
4094
  cart = attributes.cart, order_details = attributes.order_details;
3889
4095
  _order_details$ticket = order_details.tickets, ticket = _order_details$ticket[0];
4096
+ orderDataArray = _map(order_details.tickets, function (item) {
4097
+ var _cart$;
4098
+ return {
4099
+ product_name: (_cart$ = cart[0]) == null ? void 0 : _cart$.product_name,
4100
+ ticketType: item == null ? void 0 : item.name,
4101
+ quantity: item == null ? void 0 : item.guest_count,
4102
+ price: item == null ? void 0 : item.price,
4103
+ id: item.id,
4104
+ count: item == null ? void 0 : item.quantity
4105
+ };
4106
+ });
3890
4107
  _orderData = {
3891
- product_name: (_cart$ = cart[0]) == null ? void 0 : _cart$.product_name,
4108
+ id: order_details == null ? void 0 : order_details.id,
4109
+ product_name: (_cart$2 = cart[0]) == null ? void 0 : _cart$2.product_name,
3892
4110
  ticketType: ticket == null ? void 0 : ticket.name,
3893
4111
  quantity: ticket == null ? void 0 : ticket.quantity,
3894
4112
  price: ticket == null ? void 0 : ticket.price,
3895
4113
  total: order_details == null ? void 0 : order_details.total,
3896
4114
  currency: order_details == null ? void 0 : order_details.currency,
3897
- add_ons: (order_details == null ? void 0 : order_details.add_ons) || []
4115
+ add_ons: (order_details == null ? void 0 : order_details.add_ons) || [],
4116
+ pay_now: (order_details == null ? void 0 : order_details.pay_now) || '',
4117
+ guest_count: (order_details == null ? void 0 : order_details.guest_count) || null,
4118
+ debt: (order_details == null ? void 0 : order_details.debt) || null,
4119
+ tableTypes: orderDataArray
3898
4120
  };
3899
4121
  setOrderData(_orderData);
3900
4122
  onGetPaymentDataSuccess(response.data);
@@ -3959,7 +4181,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
3959
4181
  // 3. redirect to confirmation page
3960
4182
  var handlePaymentMiddleWare = /*#__PURE__*/function () {
3961
4183
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(error) {
3962
- var order_hash, paymentSuccessResponse;
4184
+ var order_hash, paymentSuccessResponse, isWindowDefined, _window;
3963
4185
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
3964
4186
  while (1) switch (_context3.prev = _context3.next) {
3965
4187
  case 0:
@@ -3991,6 +4213,20 @@ var PaymentContainer = function PaymentContainer(_ref) {
3991
4213
  if (paymentSuccessResponse.status === 200) {
3992
4214
  handlePayment(paymentSuccessResponse);
3993
4215
  setPaymentIsLoading(false);
4216
+ // clear seat-map related data from localStorage
4217
+ localStorage.removeItem('reservationData');
4218
+ localStorage.removeItem("reservationStart-" + eventId);
4219
+ localStorage.removeItem('ownReservations');
4220
+ localStorage.removeItem('tierId');
4221
+ isWindowDefined = typeof window !== "undefined";
4222
+ if (isWindowDefined) {
4223
+ (_window = window) == null ? void 0 : _window.dataLayer.push({
4224
+ 'event': 'Purchase',
4225
+ 'orderValue': orderData.total,
4226
+ 'orderCurrency': orderData.currency,
4227
+ 'orderId': orderData.id
4228
+ });
4229
+ }
3994
4230
  }
3995
4231
  _context3.next = 22;
3996
4232
  break;
@@ -4011,6 +4247,33 @@ var PaymentContainer = function PaymentContainer(_ref) {
4011
4247
  };
4012
4248
  }();
4013
4249
  var themeMui = styles.createTheme(themeOptions);
4250
+ var hasTableTypes = Boolean(Number(orderData.guest_count));
4251
+ var paymentFieldsData = hasTableTypes ? [{
4252
+ label: 'Event',
4253
+ id: 'product_name'
4254
+ }, {
4255
+ label: '',
4256
+ id: 'tableTypes'
4257
+ }, {
4258
+ label: 'Total (incl. fees, card processing and taxes)',
4259
+ id: 'total',
4260
+ normalizer: function normalizer(value, currency) {
4261
+ return currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(value)), currency);
4262
+ }
4263
+ }, {
4264
+ label: 'Pay Now',
4265
+ id: 'pay_now',
4266
+ normalizer: function normalizer(value, currency) {
4267
+ return currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(value)), currency);
4268
+ }
4269
+ }, {
4270
+ label: 'Pay On Check-in',
4271
+ id: 'debt',
4272
+ normalizer: function normalizer(value, currency) {
4273
+ return currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(value)), currency);
4274
+ }
4275
+ }] : paymentFields;
4276
+ var isTable = orderData == null ? void 0 : orderData.guest_count;
4014
4277
  return React__default.createElement(styles.ThemeProvider, {
4015
4278
  theme: themeMui
4016
4279
  }, React__default.createElement("div", {
@@ -4025,11 +4288,14 @@ var PaymentContainer = function PaymentContainer(_ref) {
4025
4288
  variant: "filled"
4026
4289
  }, error), paymentDataIsLoading && React__default.createElement(Loader, null), !paymentDataIsLoading && React__default.createElement(Container, {
4027
4290
  maxWidth: "md"
4028
- }, showFormTitle && React__default.createElement("h1", null, formTitle), React__default.createElement("div", {
4291
+ }, showFormTitle && React__default.createElement("h1", null, isTable ? 'Get Your Tables' : formTitle), React__default.createElement("div", {
4029
4292
  className: "order_info_text"
4030
4293
  }, orderInfoLabel), React__default.createElement("div", {
4031
- className: "order_info_section"
4032
- }, _map(paymentFields, function (field) {
4294
+ className: "order_info_section",
4295
+ style: {
4296
+ display: hasTableTypes ? 'block' : 'grid'
4297
+ }
4298
+ }, _map(paymentFieldsData, function (field) {
4033
4299
  var id = field.id,
4034
4300
  label = field.label,
4035
4301
  _field$className = field.className,
@@ -4038,10 +4304,49 @@ var PaymentContainer = function PaymentContainer(_ref) {
4038
4304
  normalizer = _field$normalizer === void 0 ? _identity : _field$normalizer;
4039
4305
  var currency = orderData.currency;
4040
4306
  var value = orderData[id];
4307
+ var component = null;
4041
4308
  if (field.id === 'add_ons' && _isEmpty(value)) {
4042
4309
  return false;
4043
4310
  }
4044
- return React__default.createElement("div", {
4311
+ if (field.id === 'tableTypes') {
4312
+ var valueArray = value;
4313
+ component = React__default.createElement("div", {
4314
+ key: id,
4315
+ className: "order_info_block",
4316
+ style: {
4317
+ display: 'flex',
4318
+ flexDirection: 'column'
4319
+ }
4320
+ }, _map(valueArray, function (tableTypeItem) {
4321
+ return React__default.createElement("div", {
4322
+ key: tableTypeItem.id,
4323
+ style: {
4324
+ display: 'grid',
4325
+ gridTemplateColumns: '33% 33% 33%',
4326
+ gridColumnGap: '10%'
4327
+ }
4328
+ }, React__default.createElement("div", {
4329
+ className: "order_info_block"
4330
+ }, React__default.createElement("div", {
4331
+ className: "order_info_title"
4332
+ }, "Table Type"), React__default.createElement("div", {
4333
+ className: className + " order_info_text"
4334
+ }, tableTypeItem.ticketType)), React__default.createElement("div", {
4335
+ className: "order_info_block"
4336
+ }, React__default.createElement("div", {
4337
+ className: "order_info_title"
4338
+ }, "Number of Tables"), React__default.createElement("div", {
4339
+ className: className + " order_info_text"
4340
+ }, tableTypeItem.count)), React__default.createElement("div", {
4341
+ className: "order_info_block"
4342
+ }, React__default.createElement("div", {
4343
+ className: "order_info_title"
4344
+ }, "Guest Count"), React__default.createElement("div", {
4345
+ className: className + " order_info_text"
4346
+ }, tableTypeItem.quantity)));
4347
+ }));
4348
+ }
4349
+ return component || React__default.createElement("div", {
4045
4350
  key: id,
4046
4351
  className: "order_info_block"
4047
4352
  }, React__default.createElement("div", {
@@ -4091,7 +4396,7 @@ var PaymentContainer = function PaymentContainer(_ref) {
4091
4396
  options: elementsOptions
4092
4397
  }, React__default.createElement(CheckoutForm, {
4093
4398
  stripe_client_secret: _get(reviewData, 'payment_method.stripe_client_secret'),
4094
- total: orderData.total,
4399
+ total: orderData.guest_count ? orderData.pay_now : orderData.total,
4095
4400
  onSubmit: handlePaymentMiddleWare,
4096
4401
  error: error,
4097
4402
  currency: orderData.currency,
@@ -4291,12 +4596,12 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
4291
4596
  _ref$shareButtons = _ref.shareButtons,
4292
4597
  shareButtons = _ref$shareButtons === void 0 ? [] : _ref$shareButtons,
4293
4598
  _ref$onGetConfirmatio = _ref.onGetConfirmationDataSuccess,
4294
- onGetConfirmationDataSuccess = _ref$onGetConfirmatio === void 0 ? function () {} : _ref$onGetConfirmatio,
4599
+ onGetConfirmationDataSuccess = _ref$onGetConfirmatio === void 0 ? _identity : _ref$onGetConfirmatio,
4295
4600
  _ref$onGetConfirmatio2 = _ref.onGetConfirmationDataError,
4296
- onGetConfirmationDataError = _ref$onGetConfirmatio2 === void 0 ? function () {} : _ref$onGetConfirmatio2,
4601
+ onGetConfirmationDataError = _ref$onGetConfirmatio2 === void 0 ? _identity : _ref$onGetConfirmatio2,
4297
4602
  orderHash = _ref.orderHash,
4298
4603
  _ref$onLinkCopied = _ref.onLinkCopied,
4299
- onLinkCopied = _ref$onLinkCopied === void 0 ? function () {} : _ref$onLinkCopied,
4604
+ onLinkCopied = _ref$onLinkCopied === void 0 ? _identity : _ref$onLinkCopied,
4300
4605
  clientLabel = _ref.clientLabel,
4301
4606
  _ref$showReferralsInf = _ref.showReferralsInfoText,
4302
4607
  showReferralsInfoText = _ref$showReferralsInf === void 0 ? false : _ref$showReferralsInf,
@@ -4313,7 +4618,7 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
4313
4618
  hash: orderHash
4314
4619
  };
4315
4620
  var hash = dataDecoded.hash;
4316
- // 1. get payment complete data ---> v1/order/${orderHash}/payment/complete/
4621
+ var eventId = (data == null ? void 0 : data.product_id) || '';
4317
4622
  React.useEffect(function () {
4318
4623
  _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
4319
4624
  var _data$product_price, response, _data;
@@ -4382,7 +4687,6 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
4382
4687
  confirmationMain = _confirmationLabels$c2 === void 0 ? 'Your tickets are available in My Tickets section' : _confirmationLabels$c2,
4383
4688
  _confirmationLabels$c3 = confirmationLabels.confirmationHelper,
4384
4689
  confirmationHelper = _confirmationLabels$c3 === void 0 ? 'Please bring them with you to the event' : _confirmationLabels$c3;
4385
- var eventId = (data == null ? void 0 : data.product_id) || '';
4386
4690
  var pageUrl = isBrowser ? window.location.href.split('?')[0] : '';
4387
4691
  usePixel(eventId, {
4388
4692
  page: 'complete',
@@ -4473,6 +4777,7 @@ var ConfirmationContainer = function ConfirmationContainer(_ref) {
4473
4777
  value: data.personal_share_link,
4474
4778
  onChange: onChangeShareLink
4475
4779
  }), React__default.createElement("div", {
4780
+ "aria-hidden": true,
4476
4781
  className: "share-by-link-copy-icon",
4477
4782
  onClick: function onClick() {
4478
4783
  navigator.clipboard.writeText(_get(inputRef, 'current.value'));
@@ -4976,14 +5281,21 @@ var TicketRow = function TicketRow(_ref) {
4976
5281
  var ticketTier = _ref.ticketTier,
4977
5282
  prevTicketTier = _ref.prevTicketTier,
4978
5283
  selectedTickets = _ref.selectedTickets,
4979
- handleTicketSelect = _ref.handleTicketSelect;
5284
+ handleTicketSelect = _ref.handleTicketSelect,
5285
+ isSeatMapAllowed = _ref.isSeatMapAllowed,
5286
+ tableType = _ref.tableType;
4980
5287
  var soldOutMessage = ticketTier.soldOutMessage ? ("" + ticketTier.soldOutMessage).toUpperCase() : 'SOLD OUT';
4981
5288
  var isSalesClosed = !ticketTier.salesStarted || ticketTier.salesEnded;
4982
- var options = getTicketSelectOptions(ticketTier.maxQuantity, ticketTier.minQuantity, ticketTier.multiplier);
5289
+ var maxCount = tableType ? ticketTier.maxGuests : ticketTier.maxQuantity;
5290
+ var minCount = tableType ? ticketTier.minGuests : ticketTier.minQuantity;
5291
+ var multiplier = ticketTier.multiplier;
5292
+ var options = getTicketSelectOptions(maxCount, minCount, multiplier);
4983
5293
  var ticketsClosedMessage = !ticketTier.salesStarted ? 'Sales not started' : 'Sales Ended';
5294
+ var canPurchaseTicket = ticketTier.displayTicket && ticketTier.maxQuantity;
5295
+ var isDirectPurchaseAllowed = _get(ticketTier, 'allowDirectPurchase', false);
4984
5296
  var onSaleContent = React__default.createElement("div", {
4985
5297
  className: "get-tickets"
4986
- }, React__default.createElement(Box, {
5298
+ }, ticketTier.isTable && React__default.createElement("span", null, "GUESTS"), React__default.createElement(Box, {
4987
5299
  className: "get-tickets__selectbox"
4988
5300
  }, React__default.createElement(FormControl, {
4989
5301
  fullWidth: true
@@ -5018,7 +5330,10 @@ var TicketRow = function TicketRow(_ref) {
5018
5330
  returnValue = soldOutMessage;
5019
5331
  } else if (isSalesClosed) {
5020
5332
  returnValue = ticketsClosedMessage;
5021
- } else if (ticketTier.displayTicket && ticketTier.maxQuantity) {
5333
+ } else if (canPurchaseTicket && isSeatMapAllowed && !isDirectPurchaseAllowed) {
5334
+ // Seat Map Tickets renderer logic
5335
+ returnValue = null;
5336
+ } else if (canPurchaseTicket) {
5022
5337
  returnValue = onSaleContent;
5023
5338
  } else if (_get(prevTicketTier, 'in_stock')) {
5024
5339
  returnValue = 'SOON';
@@ -5036,9 +5351,13 @@ var TicketsSection = function TicketsSection(_ref) {
5036
5351
  handleTicketSelect = _ref.handleTicketSelect,
5037
5352
  sortBySoldOut = _ref.sortBySoldOut,
5038
5353
  ticketsHeaderComponent = _ref.ticketsHeaderComponent,
5354
+ tableTicketsHeaderComponent = _ref.tableTicketsHeaderComponent,
5039
5355
  hideTicketsHeader = _ref.hideTicketsHeader,
5356
+ hideTableTicketsHeader = _ref.hideTableTicketsHeader,
5040
5357
  showGroupNameBlock = _ref.showGroupNameBlock,
5041
- currencySybmol = _ref.currencySybmol;
5358
+ currencySybmol = _ref.currencySybmol,
5359
+ isSeatMapAllowed = _ref.isSeatMapAllowed,
5360
+ tableTickets = _ref.tableTickets;
5042
5361
  var symbol = event.currency.symbol;
5043
5362
  var sortedTicketsList = sortBySoldOut ? _sortBy(_sortBy(ticketsList, 'sortOrder'), 'soldOut') : _sortBy(ticketsList, 'sortOrder');
5044
5363
  var showGroup = !!sortedTicketsList.find(function (ticket) {
@@ -5090,6 +5409,55 @@ var TicketsSection = function TicketsSection(_ref) {
5090
5409
  selectedTickets: selectedTickets,
5091
5410
  handleTicketSelect: ticketSelect
5092
5411
  })))));
5412
+ }), !hideTableTicketsHeader && tableTicketsHeaderComponent, tableTickets.map(function (ticket, i, arr) {
5413
+ var _arr2;
5414
+ var ticketPrice = priceSymbol + " " + (+ticket.price).toFixed(2);
5415
+ var ticketOldPrice = priceSymbol + " " + (+ticket.oldPrice).toFixed(2);
5416
+ var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
5417
+ var ticketSelect = function ticketSelect(event) {
5418
+ var value = event.target.value;
5419
+ handleTicketSelect(ticket.id, value, true);
5420
+ };
5421
+ var ticketIsDiscounted = false;
5422
+ if (ticket.oldPrice && !isSoldOut && ticket.oldPrice !== ticket.price) {
5423
+ ticketIsDiscounted = true;
5424
+ }
5425
+ var ticketIsFree = +ticket.price === 0;
5426
+ var ticketPriceElem = isSoldOut ? 'SOLD OUT' : ticketIsFree ? 'FREE' : ticketPrice;
5427
+ var isNewGroupTicket = (ticket == null ? void 0 : ticket.groupName) !== ((_arr2 = arr[i - 1]) == null ? void 0 : _arr2.groupName);
5428
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(React__default.Fragment, {
5429
+ key: ticket.id || ticket.name
5430
+ }, showGroupNameBlock && showGroup && isNewGroupTicket ? React__default.createElement("div", {
5431
+ className: "event-detail__tier group-title"
5432
+ }, ticket.groupName || '') : null, React__default.createElement("div", {
5433
+ className: "event-detail__tier " + (isSoldOut ? 'disabled' : '')
5434
+ }, React__default.createElement("div", {
5435
+ className: "event-detail__tier-name"
5436
+ }, ticket.displayName || ticket.name), React__default.createElement("div", {
5437
+ className: "event-tickets-container"
5438
+ }, React__default.createElement("div", {
5439
+ className: "event-detail__tier-price"
5440
+ }, ticketIsDiscounted && React__default.createElement("p", {
5441
+ className: "old-price"
5442
+ }, ticketOldPrice), React__default.createElement("p", {
5443
+ className: isSoldOut ? 'sold-out' : ''
5444
+ }, ticketPriceElem), !isSoldOut && !ticketIsFree && React__default.createElement("p", {
5445
+ className: "fees"
5446
+ }, ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'), ticket.depositPercent && React__default.createElement("p", {
5447
+ className: "deposits"
5448
+ }, ticket.depositPercent + '% DEPOSIT')), React__default.createElement("div", {
5449
+ className: "event-detail__tier-state",
5450
+ style: {
5451
+ minWidth: 55
5452
+ }
5453
+ }, React__default.createElement(TicketRow, {
5454
+ tableType: true,
5455
+ ticketTier: ticket,
5456
+ prevTicketTier: arr[i - 1],
5457
+ selectedTickets: selectedTickets,
5458
+ handleTicketSelect: ticketSelect,
5459
+ isSeatMapAllowed: isSeatMapAllowed
5460
+ }))))));
5093
5461
  }));
5094
5462
  };
5095
5463
 
@@ -5141,6 +5509,9 @@ var TicketsContainer = function TicketsContainer(_ref) {
5141
5509
  ticketsHeaderComponent = _ref.ticketsHeaderComponent,
5142
5510
  _ref$hideTicketsHeade = _ref.hideTicketsHeader,
5143
5511
  hideTicketsHeader = _ref$hideTicketsHeade === void 0 ? false : _ref$hideTicketsHeade,
5512
+ tableTicketsHeaderComponent = _ref.tableTicketsHeaderComponent,
5513
+ _ref$hideTableTickets = _ref.hideTableTicketsHeader,
5514
+ hideTableTicketsHeader = _ref$hideTableTickets === void 0 ? false : _ref$hideTableTickets,
5144
5515
  _ref$enableInfluencer = _ref.enableInfluencersSection,
5145
5516
  enableInfluencersSection = _ref$enableInfluencer === void 0 ? true : _ref$enableInfluencer,
5146
5517
  _ref$enableAddOns = _ref.enableAddOns,
@@ -5157,6 +5528,8 @@ var TicketsContainer = function TicketsContainer(_ref) {
5157
5528
  showGroupNameBlock = _ref$showGroupNameBlo === void 0 ? false : _ref$showGroupNameBlo,
5158
5529
  _ref$currencySybmol = _ref.currencySybmol,
5159
5530
  currencySybmol = _ref$currencySybmol === void 0 ? '' : _ref$currencySybmol,
5531
+ _ref$onReserveButtonC = _ref.onReserveButtonClick,
5532
+ onReserveButtonClick = _ref$onReserveButtonC === void 0 ? _identity : _ref$onReserveButtonC,
5160
5533
  _ref$onPendingVerific = _ref.onPendingVerification,
5161
5534
  onPendingVerification = _ref$onPendingVerific === void 0 ? _identity : _ref$onPendingVerific;
5162
5535
  var _useState = React.useState({}),
@@ -5360,13 +5733,16 @@ var TicketsContainer = function TicketsContainer(_ref) {
5360
5733
  }));
5361
5734
  return _getTicketsApi.apply(this, arguments);
5362
5735
  }
5363
- var handleTicketSelect = function handleTicketSelect(key, value) {
5736
+ var handleTicketSelect = function handleTicketSelect(key, value, isTable) {
5737
+ if (isTable === void 0) {
5738
+ isTable = false;
5739
+ }
5364
5740
  setSelectedTickets(function (prevState) {
5365
5741
  var _ref3;
5366
5742
  if (Object.keys(prevState)[0] !== key && !value) {
5367
5743
  return prevState;
5368
5744
  }
5369
- return _ref3 = {}, _ref3[key] = value, _ref3;
5745
+ return _ref3 = {}, _ref3[key] = value, _ref3.isTable = isTable, _ref3;
5370
5746
  });
5371
5747
  };
5372
5748
  var handleOrdersClick = function handleOrdersClick() {
@@ -5380,7 +5756,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
5380
5756
  var handleBook = /*#__PURE__*/function () {
5381
5757
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
5382
5758
  var _product_options, _product_options2, _ticket_types;
5383
- var ticket, optionName, ticketId, ticketQuantity, data, result, pageConfigsDataResponse, _pageConfigsData$skip, _pageConfigsData$name, _pageConfigsData$age_, _pageConfigsData$phon, _pageConfigsData$hide, _pageConfigsData$has_, _pageConfigsData$free, _pageConfigsData$coll, _pageConfigsData$coll2, pageConfigsData, skipBillingPage, nameIsRequired, ageIsRequired, phoneIsRequired, hidePhoneField, hasAddOn, freeTicket, collectOptionalWalletAddress, collectMandatoryWalletAddress, hash, total, _isWindowDefined, userData, access_token, checkoutBody, checkoutResult, _e$response, _e$response$data, _e$response$data$data, _e$response2, _e$response2$data, message, _isInvalidLinkError, _isNotInvitedError;
5759
+ var ticket, optionName, ticketId, isTableType, productCartQuantity, ticketQuantity, data, result, pageConfigsDataResponse, _pageConfigsData$skip, _pageConfigsData$name, _pageConfigsData$age_, _pageConfigsData$phon, _pageConfigsData$hide, _pageConfigsData$has_, _pageConfigsData$free, _pageConfigsData$coll, _pageConfigsData$coll2, pageConfigsData, skipBillingPage, nameIsRequired, ageIsRequired, phoneIsRequired, hidePhoneField, hasAddOn, freeTicket, collectOptionalWalletAddress, collectMandatoryWalletAddress, hash, total, _isWindowDefined, userData, access_token, checkoutBody, checkoutResult, _e$response, _e$response$data, _e$response$data$data, _e$response2, _e$response2$data, message, _isInvalidLinkError, _isNotInvitedError;
5384
5760
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
5385
5761
  while (1) switch (_context2.prev = _context2.next) {
5386
5762
  case 0:
@@ -5390,11 +5766,13 @@ var TicketsContainer = function TicketsContainer(_ref) {
5390
5766
  }) || {};
5391
5767
  optionName = _get(ticket, 'optionName');
5392
5768
  ticketId = _get(ticket, 'id');
5393
- ticketQuantity = +selectedTickets[ticket.id];
5769
+ isTableType = _get(ticket, 'isTable', false);
5770
+ productCartQuantity = +selectedTickets[ticket.id];
5771
+ ticketQuantity = isTableType ? 1 : +selectedTickets[ticket.id];
5394
5772
  data = {
5395
5773
  attributes: {
5396
5774
  alternative_view_id: null,
5397
- product_cart_quantity: ticketQuantity,
5775
+ product_cart_quantity: productCartQuantity,
5398
5776
  product_options: (_product_options = {}, _product_options[optionName] = ticketId, _product_options),
5399
5777
  product_id: eventId,
5400
5778
  ticket_types: (_ticket_types = {}, _ticket_types[ticketId] = {
@@ -5403,32 +5781,32 @@ var TicketsContainer = function TicketsContainer(_ref) {
5403
5781
  }, _ticket_types)
5404
5782
  }
5405
5783
  };
5406
- _context2.prev = 6;
5407
- _context2.next = 9;
5784
+ _context2.prev = 8;
5785
+ _context2.next = 11;
5408
5786
  return addToCart(eventId, data);
5409
- case 9:
5787
+ case 11:
5410
5788
  result = _context2.sent;
5411
5789
  if (!enableAddOns) {
5412
- _context2.next = 16;
5790
+ _context2.next = 18;
5413
5791
  break;
5414
5792
  }
5415
- _context2.next = 13;
5793
+ _context2.next = 15;
5416
5794
  return getCheckoutPageConfigs();
5417
- case 13:
5795
+ case 15:
5418
5796
  _context2.t0 = _context2.sent;
5419
- _context2.next = 17;
5797
+ _context2.next = 19;
5420
5798
  break;
5421
- case 16:
5799
+ case 18:
5422
5800
  _context2.t0 = {
5423
5801
  status: 200,
5424
5802
  data: {
5425
5803
  attributes: _get(result, 'data.data.attributes')
5426
5804
  }
5427
5805
  };
5428
- case 17:
5806
+ case 19:
5429
5807
  pageConfigsDataResponse = _context2.t0;
5430
5808
  if (!(result.status === 200 && pageConfigsDataResponse.status === 200)) {
5431
- _context2.next = 48;
5809
+ _context2.next = 50;
5432
5810
  break;
5433
5811
  }
5434
5812
  pageConfigsData = _get(pageConfigsDataResponse, 'data.attributes') || {};
@@ -5446,7 +5824,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
5446
5824
  _isWindowDefined = typeof window !== 'undefined';
5447
5825
  _isWindowDefined && window.localStorage.removeItem('add_ons');
5448
5826
  if (!(skipBillingPage && !hasAddOn)) {
5449
- _context2.next = 47;
5827
+ _context2.next = 49;
5450
5828
  break;
5451
5829
  }
5452
5830
  // Get user data for checkout data
@@ -5454,22 +5832,22 @@ var TicketsContainer = function TicketsContainer(_ref) {
5454
5832
  access_token = _isWindowDefined && window.localStorage.getItem('access_token') ? window.localStorage.getItem('access_token') || '' : '';
5455
5833
  checkoutBody = createCheckoutDataBodyWithDefaultHolder(ticketQuantity, userData);
5456
5834
  if (!enableBillingInfoAutoCreate) {
5457
- _context2.next = 43;
5835
+ _context2.next = 45;
5458
5836
  break;
5459
5837
  }
5460
- _context2.next = 40;
5838
+ _context2.next = 42;
5461
5839
  return postOnCheckout(checkoutBody, access_token, freeTicket);
5462
- case 40:
5840
+ case 42:
5463
5841
  _context2.t1 = _context2.sent;
5464
- _context2.next = 44;
5842
+ _context2.next = 46;
5465
5843
  break;
5466
- case 43:
5844
+ case 45:
5467
5845
  _context2.t1 = null;
5468
- case 44:
5846
+ case 46:
5469
5847
  checkoutResult = _context2.t1;
5470
5848
  hash = _get(checkoutResult, 'data.data.attributes.hash');
5471
5849
  total = _get(checkoutResult, 'data.data.attributes.total');
5472
- case 47:
5850
+ case 49:
5473
5851
  onAddToCartSuccess({
5474
5852
  skip_billing_page: skipBillingPage,
5475
5853
  names_required: nameIsRequired,
@@ -5484,12 +5862,12 @@ var TicketsContainer = function TicketsContainer(_ref) {
5484
5862
  total: total,
5485
5863
  hasAddOn: hasAddOn
5486
5864
  });
5487
- case 48:
5488
- _context2.next = 53;
5489
- break;
5490
5865
  case 50:
5491
- _context2.prev = 50;
5492
- _context2.t2 = _context2["catch"](6);
5866
+ _context2.next = 55;
5867
+ break;
5868
+ case 52:
5869
+ _context2.prev = 52;
5870
+ _context2.t2 = _context2["catch"](8);
5493
5871
  if ((_e$response = _context2.t2.response) != null && (_e$response$data = _e$response.data) != null && (_e$response$data$data = _e$response$data.data) != null && _e$response$data$data.hasUnverifiedOrder) {
5494
5872
  setPendingVerificationMessage((_e$response2 = _context2.t2.response) == null ? void 0 : (_e$response2$data = _e$response2.data) == null ? void 0 : _e$response2$data.message);
5495
5873
  } else if (axios.isAxiosError(_context2.t2)) {
@@ -5505,15 +5883,15 @@ var TicketsContainer = function TicketsContainer(_ref) {
5505
5883
  setError(message);
5506
5884
  }
5507
5885
  }
5508
- case 53:
5509
- _context2.prev = 53;
5886
+ case 55:
5887
+ _context2.prev = 55;
5510
5888
  setHandleBookIsLoading(false);
5511
- return _context2.finish(53);
5512
- case 56:
5889
+ return _context2.finish(55);
5890
+ case 58:
5513
5891
  case "end":
5514
5892
  return _context2.stop();
5515
5893
  }
5516
- }, _callee2, null, [[6, 50, 53, 56]]);
5894
+ }, _callee2, null, [[8, 52, 55, 58]]);
5517
5895
  }));
5518
5896
  return function handleBook() {
5519
5897
  return _ref4.apply(this, arguments);
@@ -5577,7 +5955,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
5577
5955
  }
5578
5956
  }
5579
5957
  };
5580
- var bookButtonIsDisabled = handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0;
5958
+ var bookButtonIsDisabled = (handleBookIsLoading || _isEmpty(selectedTickets) || Object.values(selectedTickets)[0] === 0) && !(event != null && event.flagSeatMapAllowed);
5581
5959
  var isTicketAvailable = _some(tickets, function (ticket) {
5582
5960
  return ticket.displayTicket && !ticket.soldOut && ticket.salesStarted;
5583
5961
  });
@@ -5605,6 +5983,17 @@ var TicketsContainer = function TicketsContainer(_ref) {
5605
5983
  setIsInvalidLinkError('');
5606
5984
  };
5607
5985
  var hideTopInfluencers = event == null ? void 0 : event.hideTopInfluencers;
5986
+ var isSeatMapAllowed = _get(event, 'seatMapAllowed', false);
5987
+ var isTableMapEnabled = _get(event, 'tableMapEnabled', false);
5988
+ var tableTickets = _filter(tickets, function (ticket) {
5989
+ return ticket.isTable;
5990
+ });
5991
+ var ordinarTickets = {};
5992
+ _forEach(tickets, function (ticket, key) {
5993
+ if (!ticket.isTable) {
5994
+ ordinarTickets[key] = ticket;
5995
+ }
5996
+ });
5608
5997
  return React__default.createElement(privateTheming.ThemeProvider, {
5609
5998
  theme: themeMui
5610
5999
  }, !isLoading && React__default.createElement(ReferralLogic, {
@@ -5641,14 +6030,18 @@ var TicketsContainer = function TicketsContainer(_ref) {
5641
6030
  ref: ticketsContainerRef
5642
6031
  }, !isSalesClosed && React__default.createElement(TicketsSection, {
5643
6032
  event: event,
5644
- ticketsList: tickets,
6033
+ ticketsList: ordinarTickets,
6034
+ tableTickets: tableTickets,
5645
6035
  selectedTickets: selectedTickets,
5646
6036
  handleTicketSelect: handleTicketSelect,
5647
6037
  sortBySoldOut: sortBySoldOut,
5648
6038
  ticketsHeaderComponent: ticketsHeaderComponent,
5649
- hideTicketsHeader: hideTicketsHeader || _isEmpty(tickets),
6039
+ tableTicketsHeaderComponent: tableTicketsHeaderComponent,
6040
+ hideTableTicketsHeader: hideTableTicketsHeader || _isEmpty(tableTickets),
6041
+ hideTicketsHeader: hideTicketsHeader || _isEmpty(ordinarTickets),
5650
6042
  showGroupNameBlock: showGroupNameBlock,
5651
- currencySybmol: currencySybmol
6043
+ currencySybmol: currencySybmol,
6044
+ isSeatMapAllowed: isSeatMapAllowed
5652
6045
  }), externalUrl ? null : isSalesClosed ? React__default.createElement("p", {
5653
6046
  className: "event-closed-message " + (!isLoggedIn ? 'event-closed-on-bottom' : '')
5654
6047
  }, "Sales for this event are closed.") : eventSaleIsNotStarted ? React__default.createElement(Countdown, {
@@ -5661,7 +6054,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
5661
6054
  disableLeadingZero: disableCountdownLeadingZero,
5662
6055
  isLoggedIn: isLoggedIn
5663
6056
  }) : null, showWaitingList && event.salesStarted && !hideWaitingList && React__default.createElement(WaitingList, {
5664
- tickets: tickets,
6057
+ tickets: ordinarTickets,
5665
6058
  eventId: eventId,
5666
6059
  defaultMaxQuantity: event.waitingListMaxQuantity
5667
6060
  }), codeIsLoading ? React__default.createElement(Loader, null) : isSalesClosed ? null : showAccessCodeSection ? React__default.createElement(AccessCodeSection, {
@@ -5683,7 +6076,11 @@ var TicketsContainer = function TicketsContainer(_ref) {
5683
6076
  "aria-hidden": true,
5684
6077
  className: "book-button \n " + (bookButtonIsDisabled ? 'disabled' : '') + " \n " + (isButtonScrollable ? 'is-scrollable' : '') + "\n " + (!isLoggedIn ? 'on-bottom' : '') + "\n ",
5685
6078
  onClick: handleGetTicketClick
5686
- }, getTicketsLabel || 'GET TICKETS'), isLogged && !hideSessionButtons ? React__default.createElement("div", {
6079
+ }, selectedTickets.isTable ? 'RESERVE TABLES' : getTicketsLabel || 'GET TICKETS'), isSeatMapAllowed && !(event != null && event.salesEnded) && isTicketAvailable && React__default.createElement(Button$1, {
6080
+ className: "reserve-button",
6081
+ "aria-hidden": true,
6082
+ onClick: onReserveButtonClick
6083
+ }, isTableMapEnabled ? 'Select on map' : 'Select your seats'), isLogged && !hideSessionButtons ? React__default.createElement("div", {
5687
6084
  className: "session-wrapper"
5688
6085
  }, React__default.createElement("span", {
5689
6086
  className: "session-container"
@@ -6486,6 +6883,17 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
6486
6883
  var date = moment.tz(data.date, data.timezone).format('dddd, DD MMMM YYYY');
6487
6884
  orderSummery += " " + date;
6488
6885
  }
6886
+ var columnsProps = data.tickets && data.tickets[0].is_table ? [{
6887
+ label: 'Items'
6888
+ }, {
6889
+ label: 'Price'
6890
+ }, {
6891
+ label: 'Guests count'
6892
+ }, {
6893
+ label: 'Deposit paid'
6894
+ }, {
6895
+ label: 'Remaining'
6896
+ }] : columns;
6489
6897
  return React__default.createElement("div", {
6490
6898
  className: "order-details"
6491
6899
  }, loading ? React__default.createElement("div", {
@@ -6532,12 +6940,14 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
6532
6940
  }, React__default.createElement(Table, {
6533
6941
  className: "tt-type",
6534
6942
  "aria-label": "collapsible table"
6535
- }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, _map(columns, function (item) {
6943
+ }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, _map(columnsProps, function (item) {
6536
6944
  return React__default.createElement(TableCell, null, item.label || '');
6537
6945
  }))), React__default.createElement(TableBody, null, data == null ? void 0 : (_data$items = data.items) == null ? void 0 : (_data$items$ticket_ty = _data$items.ticket_types) == null ? void 0 : _data$items$ticket_ty.map(function (ticket, index) {
6538
- return React__default.createElement(TableRow, {
6946
+ return data != null && data.tickets && !(data != null && data.tickets[0].is_table) ? React__default.createElement(TableRow, {
6539
6947
  key: index
6540
- }, React__default.createElement(TableCell, null, React__default.createElement("b", null, "Ticket Type:"), " ", ticket.name), React__default.createElement(TableCell, null, ticket.currency + ticket.price), React__default.createElement(TableCell, null, ticket.quantity), React__default.createElement(TableCell, null, ticket.currency + ticket.total));
6948
+ }, React__default.createElement(TableCell, null, React__default.createElement("b", null, "Ticket Type:"), " ", ticket.name), React__default.createElement(TableCell, null, ticket.currency + ticket.price), React__default.createElement(TableCell, null, ticket.quantity), React__default.createElement(TableCell, null, ticket.currency + ticket.total)) : React__default.createElement(TableRow, {
6949
+ key: index
6950
+ }, React__default.createElement(TableCell, null, React__default.createElement("b", null, "Ticket Type:"), " ", ticket.name), React__default.createElement(TableCell, null, ticket.currency + ticket.price), React__default.createElement(TableCell, null, ticket.guests_count), React__default.createElement(TableCell, null, ticket.deposit_paid), React__default.createElement(TableCell, null, ticket.remaining));
6541
6951
  }), data == null ? void 0 : (_data$items2 = data.items) == null ? void 0 : (_data$items2$add_ons = _data$items2.add_ons) == null ? void 0 : _data$items2$add_ons.map(function (ticket, index) {
6542
6952
  return React__default.createElement(TableRow, {
6543
6953
  key: index
@@ -7419,16 +7829,850 @@ var AddonsContainter = function AddonsContainter(_ref) {
7419
7829
  }));
7420
7830
  };
7421
7831
 
7832
+ var addToCartFunc = /*#__PURE__*/function () {
7833
+ var _ref2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
7834
+ var eventId, data, ticketQuantity, _ref$enableBillingInf, enableBillingInfoAutoCreate, isWindowDefined, result, pageConfigsDataResponse, pageConfigsData, _pageConfigsData$skip, skipBillingPage, _pageConfigsData$name, nameIsRequired, _pageConfigsData$age_, ageIsRequired, _pageConfigsData$phon, phoneIsRequired, _pageConfigsData$hide, hidePhoneField, _pageConfigsData$has_, hasAddOn, _pageConfigsData$free, freeTicket, _pageConfigsData$coll, collectOptionalWalletAddress, _pageConfigsData$coll2, collectMandatoryWalletAddress, hash, total, userData, checkoutBody, checkoutResult;
7835
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
7836
+ while (1) switch (_context.prev = _context.next) {
7837
+ case 0:
7838
+ eventId = _ref.eventId, data = _ref.data, ticketQuantity = _ref.ticketQuantity, _ref$enableBillingInf = _ref.enableBillingInfoAutoCreate, enableBillingInfoAutoCreate = _ref$enableBillingInf === void 0 ? true : _ref$enableBillingInf;
7839
+ isWindowDefined = typeof window !== 'undefined';
7840
+ _context.next = 4;
7841
+ return addToCart(eventId, data);
7842
+ case 4:
7843
+ result = _context.sent;
7844
+ _context.next = 7;
7845
+ return getCheckoutPageConfigs();
7846
+ case 7:
7847
+ pageConfigsDataResponse = _context.sent;
7848
+ if (!(result.status === 200 && pageConfigsDataResponse.status === 200)) {
7849
+ _context.next = 28;
7850
+ break;
7851
+ }
7852
+ pageConfigsData = _get(pageConfigsDataResponse, 'data.attributes') || {};
7853
+ _pageConfigsData$skip = pageConfigsData.skip_billing_page, skipBillingPage = _pageConfigsData$skip === void 0 ? false : _pageConfigsData$skip, _pageConfigsData$name = pageConfigsData.names_required, nameIsRequired = _pageConfigsData$name === void 0 ? false : _pageConfigsData$name, _pageConfigsData$age_ = pageConfigsData.age_required, ageIsRequired = _pageConfigsData$age_ === void 0 ? false : _pageConfigsData$age_, _pageConfigsData$phon = pageConfigsData.phone_required, phoneIsRequired = _pageConfigsData$phon === void 0 ? false : _pageConfigsData$phon, _pageConfigsData$hide = pageConfigsData.hide_phone_field, hidePhoneField = _pageConfigsData$hide === void 0 ? false : _pageConfigsData$hide, _pageConfigsData$has_ = pageConfigsData.has_add_on, hasAddOn = _pageConfigsData$has_ === void 0 ? false : _pageConfigsData$has_, _pageConfigsData$free = pageConfigsData.free_ticket, freeTicket = _pageConfigsData$free === void 0 ? false : _pageConfigsData$free, _pageConfigsData$coll = pageConfigsData.collect_optional_wallet_address, collectOptionalWalletAddress = _pageConfigsData$coll === void 0 ? false : _pageConfigsData$coll, _pageConfigsData$coll2 = pageConfigsData.collect_mandatory_wallet_address, collectMandatoryWalletAddress = _pageConfigsData$coll2 === void 0 ? false : _pageConfigsData$coll2;
7854
+ hash = '';
7855
+ total = '';
7856
+ isWindowDefined && window.localStorage.removeItem('add_ons');
7857
+ if (!(skipBillingPage && !hasAddOn)) {
7858
+ _context.next = 27;
7859
+ break;
7860
+ }
7861
+ // Get user data for checkout data
7862
+ userData = isWindowDefined && window.localStorage.getItem('user_data') ? JSON.parse(window.localStorage.getItem('user_data') || '') : {};
7863
+ checkoutBody = createCheckoutDataBodyWithDefaultHolder(ticketQuantity, userData);
7864
+ if (!enableBillingInfoAutoCreate) {
7865
+ _context.next = 23;
7866
+ break;
7867
+ }
7868
+ _context.next = 20;
7869
+ return postOnCheckout(checkoutBody, undefined, freeTicket);
7870
+ case 20:
7871
+ _context.t0 = _context.sent;
7872
+ _context.next = 24;
7873
+ break;
7874
+ case 23:
7875
+ _context.t0 = null;
7876
+ case 24:
7877
+ checkoutResult = _context.t0;
7878
+ hash = _get(checkoutResult, 'data.data.attributes.hash') || '';
7879
+ total = _get(checkoutResult, 'data.data.attributes.total') || '';
7880
+ case 27:
7881
+ return _context.abrupt("return", {
7882
+ skip_billing_page: skipBillingPage,
7883
+ names_required: nameIsRequired,
7884
+ phone_required: phoneIsRequired,
7885
+ age_required: ageIsRequired,
7886
+ hide_phone_field: hidePhoneField,
7887
+ free_ticket: freeTicket,
7888
+ collect_optional_wallet_address: collectOptionalWalletAddress,
7889
+ collect_mandatory_wallet_address: collectMandatoryWalletAddress,
7890
+ event_id: String(eventId),
7891
+ hash: hash,
7892
+ total: total,
7893
+ hasAddOn: hasAddOn
7894
+ });
7895
+ case 28:
7896
+ return _context.abrupt("return", null);
7897
+ case 29:
7898
+ case "end":
7899
+ return _context.stop();
7900
+ }
7901
+ }, _callee);
7902
+ }));
7903
+ return function addToCartFunc(_x) {
7904
+ return _ref2.apply(this, arguments);
7905
+ };
7906
+ }();
7907
+
7908
+ var getTierIdBasedOnSeatId = function getTierIdBasedOnSeatId(seatId, eventSeats) {
7909
+ var tierId = '';
7910
+ _forEach(eventSeats, function (group) {
7911
+ _forEach(group.seats, function (seatsCount, rowId) {
7912
+ var _seatId$split = seatId.split(':'),
7913
+ row_id = _seatId$split[0],
7914
+ seat_id = _seatId$split[1];
7915
+ if (row_id === rowId && seat_id <= seatsCount) {
7916
+ tierId = Number(group.tier_id);
7917
+ return false;
7918
+ }
7919
+ return true;
7920
+ });
7921
+ });
7922
+ return tierId;
7923
+ };
7924
+ var getButtonLabel = function getButtonLabel(count, tableMapEnabled) {
7925
+ if (!count) {
7926
+ return tableMapEnabled ? "GET TABLES" : "GET TICKETS";
7927
+ } else if (count === 1) {
7928
+ return tableMapEnabled ? "GET " + count + " TABLE" : "GET " + count + " TICKET";
7929
+ }
7930
+ return tableMapEnabled ? "GET " + count + " TABLES" : "GET " + count + " TICKETS";
7931
+ };
7932
+ var getOwnReservationsBasedOnStatuses = function getOwnReservationsBasedOnStatuses(statuses) {
7933
+ var ownReservations = [];
7934
+ Object.keys(statuses).forEach(function (groupRowId) {
7935
+ return Object.keys(statuses[groupRowId]).forEach(function (seatIndex) {
7936
+ if (statuses[groupRowId][seatIndex] === 'OR') {
7937
+ ownReservations.push(groupRowId + ":" + seatIndex);
7938
+ } else if (statuses[groupRowId][seatIndex] === 'H') {
7939
+ statuses[groupRowId][seatIndex] = 'BLOCKED';
7940
+ }
7941
+ });
7942
+ });
7943
+ return ownReservations;
7944
+ };
7945
+ var getTicketDropdownData = function getTicketDropdownData(reservationData, tierReleations) {
7946
+ var ticketsDropdownsData = [];
7947
+ _forEach(reservationData, function (reservation) {
7948
+ if (tierReleations[reservation.tierId]) {
7949
+ var ticketsData = _values(tierReleations[reservation.tierId]);
7950
+ ticketsDropdownsData.push({
7951
+ seatId: reservation.seatId,
7952
+ tierId: reservation.tierId,
7953
+ ticketsData: ticketsData
7954
+ });
7955
+ } else {
7956
+ ticketsDropdownsData.push({
7957
+ seatId: reservation.seatId,
7958
+ tierId: reservation.tierId,
7959
+ ticketsData: [{
7960
+ ticket_type_tier_id: reservation.tierId,
7961
+ ticket_type_name: 'Please select Ticket Type',
7962
+ ticket_type_price: '',
7963
+ ticket_type_id: 'default'
7964
+ }]
7965
+ });
7966
+ }
7967
+ });
7968
+ return ticketsDropdownsData;
7969
+ };
7970
+ var getAddToCartRequestData = function getAddToCartRequestData(_ref) {
7971
+ var eventId = _ref.eventId,
7972
+ _ref$reservations = _ref.reservations,
7973
+ reservations = _ref$reservations === void 0 ? [] : _ref$reservations,
7974
+ _ref$selectedSeats = _ref.selectedSeats,
7975
+ selectedSeats = _ref$selectedSeats === void 0 ? [] : _ref$selectedSeats,
7976
+ _ref$selectedTickets = _ref.selectedTickets,
7977
+ selectedTickets = _ref$selectedTickets === void 0 ? [] : _ref$selectedTickets,
7978
+ _ref$guestCounts = _ref.guestCounts,
7979
+ guestCounts = _ref$guestCounts === void 0 ? {} : _ref$guestCounts;
7980
+ var hasGuests = !_isEmpty(guestCounts);
7981
+ var addToCartData = {
7982
+ attributes: {
7983
+ alternative_view_id: null,
7984
+ product_cart_quantity: reservations.length,
7985
+ product_options: {},
7986
+ product_id: eventId,
7987
+ ticket_types: {}
7988
+ }
7989
+ };
7990
+ var productOptions = {};
7991
+ var ticketTypes = {};
7992
+ _forEach(reservations, function (item, index) {
7993
+ var _ticketTypes$ticket$t, _product_options;
7994
+ var ticket = _find(selectedSeats[item], function (sitem) {
7995
+ return sitem.ticket_type_id === selectedTickets[item];
7996
+ });
7997
+ productOptions[ticket.ticket_type_option] = ticket.ticket_type_id;
7998
+ var ticketTypesKey = hasGuests ? index : ticket.ticket_type_id;
7999
+ var quantity = hasGuests ? guestCounts[item] : (((_ticketTypes$ticket$t = ticketTypes[ticket.ticket_type_id]) == null ? void 0 : _ticketTypes$ticket$t.quantity) || 0) + 1;
8000
+ ticketTypes[ticketTypesKey] = {
8001
+ quantity: quantity,
8002
+ product_options: (_product_options = {}, _product_options[ticket.ticket_type_option] = ticket.ticket_type_id, _product_options.ticket_price = ticket.ticket_type_price, _product_options)
8003
+ };
8004
+ });
8005
+ addToCartData.attributes.product_options = productOptions;
8006
+ addToCartData.attributes.ticket_types = ticketTypes;
8007
+ return addToCartData;
8008
+ };
8009
+ var getTierRelationsArray = function getTierRelationsArray(data) {
8010
+ var ticketTypeTireRelationsArray = [];
8011
+ _forEach(data, function (item) {
8012
+ ticketTypeTireRelationsArray.push.apply(ticketTypeTireRelationsArray, _values(item));
8013
+ });
8014
+ return ticketTypeTireRelationsArray;
8015
+ };
8016
+
8017
+ var CONTAINER_DEFAULT_ID = 'seat_map_default_container';
8018
+ var SeatMapComponent = function SeatMapComponent(props) {
8019
+ var seatMapProps = props.seatMapProps,
8020
+ mapContainerId = props.mapContainerId;
8021
+ var seatData = seatMapProps.seatData,
8022
+ statuses = seatMapProps.statuses,
8023
+ _seatMapProps$seatMap = seatMapProps.seatMapType,
8024
+ seatMapType = _seatMapProps$seatMap === void 0 ? null : _seatMapProps$seatMap,
8025
+ _seatMapProps$seatMap2 = seatMapProps.seatMapEvents,
8026
+ seatMapEvents = _seatMapProps$seatMap2 === void 0 ? {} : _seatMapProps$seatMap2,
8027
+ _seatMapProps$ticketT = seatMapProps.ticketTypeTierRelations,
8028
+ ticketTypeTierRelations = _seatMapProps$ticketT === void 0 ? {} : _seatMapProps$ticketT,
8029
+ tierPrices = seatMapProps.tierPrices,
8030
+ isReserving = seatMapProps.isReserving,
8031
+ predefinedSeats = seatMapProps.predefinedSeats;
8032
+ React.useEffect(function () {
8033
+ var parentElement = document.getElementById(mapContainerId || CONTAINER_DEFAULT_ID);
8034
+ // Temp solution
8035
+ window.tierPrices = tierPrices;
8036
+ if (Boolean(parentElement)) {
8037
+ var mapComponent = React__default.createElement(SeatMapView, {
8038
+ disabled: isReserving,
8039
+ loading: isReserving,
8040
+ events: seatMapEvents,
8041
+ isSelectionOn: false,
8042
+ seatData: seatData,
8043
+ statuses: statuses,
8044
+ ticketTypeTireRelationsArray: getTierRelationsArray(ticketTypeTierRelations),
8045
+ width: Math.min((parentElement == null ? void 0 : parentElement.clientWidth) || 800, 800),
8046
+ height: Math.min((parentElement == null ? void 0 : parentElement.clientWidth) || 800, 800),
8047
+ isBlockMap: seatMapType === 'block',
8048
+ isTableMap: seatMapType === 'table',
8049
+ predefinedSeats: predefinedSeats
8050
+ });
8051
+ ReactDom.render(mapComponent, parentElement);
8052
+ }
8053
+ }, [isReserving, mapContainerId, seatData, seatMapEvents, seatMapType, tierPrices, statuses, ticketTypeTierRelations]);
8054
+ return React__default.createElement("div", {
8055
+ id: CONTAINER_DEFAULT_ID
8056
+ });
8057
+ };
8058
+
8059
+ var TicketsSection$1 = function TicketsSection(props) {
8060
+ var ticketTypeTierRelations = props.ticketTypeTierRelations,
8061
+ reservedSeats = props.reservedSeats,
8062
+ _props$theme = props.theme,
8063
+ theme = _props$theme === void 0 ? 'light' : _props$theme,
8064
+ getTicketsBtnLabel = props.getTicketsBtnLabel,
8065
+ _props$contentStyle = props.contentStyle,
8066
+ contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,
8067
+ _props$isButtonScroll = props.isButtonScrollable,
8068
+ isButtonScrollable = _props$isButtonScroll === void 0 ? false : _props$isButtonScroll,
8069
+ themeOptions = props.themeOptions,
8070
+ handleGetTicketClick = props.handleGetTicketClick,
8071
+ handleCancelReservation = props.handleCancelReservation,
8072
+ _props$ticketDeleteBu = props.ticketDeleteButtonContent,
8073
+ ticketDeleteButtonContent = _props$ticketDeleteBu === void 0 ? 'Delete' : _props$ticketDeleteBu,
8074
+ selectedTickets = props.selectedTickets,
8075
+ handleTicketSelect = props.handleTicketSelect,
8076
+ currencySymbol = props.currencySymbol,
8077
+ _props$tableMapEnable = props.tableMapEnabled,
8078
+ tableMapEnabled = _props$tableMapEnable === void 0 ? false : _props$tableMapEnable,
8079
+ guestCounts = props.guestCounts,
8080
+ setGuestCounts = props.setGuestCounts,
8081
+ isAddingToCart = props.isAddingToCart;
8082
+ var bookButtonIsDisabled = _some(selectedTickets, function (item) {
8083
+ return !item;
8084
+ }) || _isEmpty(reservedSeats) || reservedSeats.length !== _keys(selectedTickets).length;
8085
+ var themeMui = material.createTheme(themeOptions);
8086
+ var ticketsDropdownsData = getTicketDropdownData(reservedSeats, ticketTypeTierRelations);
8087
+ var handleTicketChange = function handleTicketChange(event, seatId) {
8088
+ var value = event.target.value;
8089
+ if (value !== 'default') {
8090
+ handleTicketSelect(value, seatId);
8091
+ }
8092
+ };
8093
+ return React__default.createElement(privateTheming.ThemeProvider, {
8094
+ theme: themeMui
8095
+ }, React__default.createElement("div", {
8096
+ className: "get-tickets-page " + theme,
8097
+ style: contentStyle
8098
+ }, React__default.createElement("div", {
8099
+ className: "tickets-section"
8100
+ }, _map(selectedTickets, function (ticketItem, key) {
8101
+ var dropdownData = _find(ticketsDropdownsData, function (item) {
8102
+ return item.seatId === key;
8103
+ }) || {};
8104
+ var selectedTicketData = _find(dropdownData.ticketsData, function (ticket) {
8105
+ return ticket.ticket_type_id === ticketItem;
8106
+ });
8107
+ // guest count dropdown options
8108
+ var startNum = Number(selectedTicketData == null ? void 0 : selectedTicketData.ticket_type_min_number_of_guests);
8109
+ var endNum = Number(selectedTicketData == null ? void 0 : selectedTicketData.ticket_type_max_number_of_guests);
8110
+ var numLength = endNum - startNum + 1;
8111
+ var showGuestCountDropdown = Boolean(startNum && endNum);
8112
+ // prices
8113
+ var guestPrice = (guestCounts[dropdownData.seatId] - startNum) * Number(selectedTicketData == null ? void 0 : selectedTicketData.guest_price);
8114
+ var finalPrice = createFixedFloatNormalizer(2)((selectedTicketData == null ? void 0 : selectedTicketData.ticket_type_price) + guestPrice);
8115
+ return React__default.createElement("div", {
8116
+ className: "ticket",
8117
+ key: key
8118
+ }, React__default.createElement("div", {
8119
+ className: "ticketsDropdowns"
8120
+ }, React__default.createElement(material.Select, {
8121
+ value: ticketItem || 'default',
8122
+ onChange: function onChange(event) {
8123
+ return handleTicketChange(event, dropdownData.seatId);
8124
+ },
8125
+ inputProps: {
8126
+ 'aria-label': 'Without label'
8127
+ },
8128
+ MenuProps: {
8129
+ PaperProps: {
8130
+ sx: {
8131
+ maxHeight: 150
8132
+ },
8133
+ className: 'get-tickets-paper'
8134
+ }
8135
+ },
8136
+ displayEmpty: true,
8137
+ sx: {
8138
+ borderRadius: 0
8139
+ }
8140
+ }, React__default.createElement(MenuItem, {
8141
+ value: 'default'
8142
+ }, "Please select " + (tableMapEnabled ? 'Table Type' : 'Ticket Type')), _map(dropdownData.ticketsData, function (option, index) {
8143
+ if (option.ticket_type_id !== 'default') {
8144
+ return React__default.createElement(MenuItem, {
8145
+ value: option.ticket_type_id,
8146
+ key: index
8147
+ }, option.ticket_type_name);
8148
+ }
8149
+ return null;
8150
+ })), React__default.createElement(reactBootstrap.Button, {
8151
+ className: "ticket-delete",
8152
+ onClick: function onClick() {
8153
+ handleCancelReservation(dropdownData.seatId, dropdownData.tierId);
8154
+ }
8155
+ }, ticketDeleteButtonContent)), selectedTicketData && React__default.createElement("div", {
8156
+ style: {
8157
+ display: 'flex',
8158
+ flexDirection: 'row'
8159
+ }
8160
+ }, React__default.createElement("div", {
8161
+ style: {
8162
+ width: '100%',
8163
+ display: 'flex',
8164
+ flexDirection: 'column',
8165
+ justifyContent: 'center'
8166
+ }
8167
+ }, React__default.createElement("div", {
8168
+ className: "ticketPrice"
8169
+ }, "Price:", React__default.createElement("span", {
8170
+ className: "ticketPrice-value"
8171
+ }, currencySymbol + " " + finalPrice)), !_isEmpty(selectedTicketData.ticket_type_deposit) && React__default.createElement("div", {
8172
+ className: "ticketDeposit"
8173
+ }, "Deposit:", React__default.createElement("span", {
8174
+ className: "ticketPrice-value"
8175
+ }, " " + (selectedTicketData == null ? void 0 : selectedTicketData.ticket_type_deposit) + "%"))), showGuestCountDropdown && React__default.createElement("div", {
8176
+ style: {
8177
+ width: '100%',
8178
+ display: 'flex',
8179
+ justifyContent: 'end',
8180
+ marginRight: 16
8181
+ }
8182
+ }, React__default.createElement(FormControl, {
8183
+ variant: "outlined",
8184
+ sx: {
8185
+ m: 1,
8186
+ minWidth: 80
8187
+ }
8188
+ }, React__default.createElement(InputLabel, {
8189
+ id: "demo-simple-select-standard-label",
8190
+ shrink: true
8191
+ }, "GUESTS"), React__default.createElement(material.Select, {
8192
+ label: "GUESTS",
8193
+ labelId: "demo-simple-select-standard-label",
8194
+ value: guestCounts[dropdownData.seatId] || startNum,
8195
+ onChange: function onChange(event) {
8196
+ var _extends2;
8197
+ setGuestCounts(_extends({}, guestCounts, (_extends2 = {}, _extends2[dropdownData.seatId] = Number(event.target.value), _extends2)));
8198
+ },
8199
+ inputProps: {
8200
+ 'aria-label': 'Without label'
8201
+ },
8202
+ MenuProps: {
8203
+ PaperProps: {
8204
+ sx: {
8205
+ maxHeight: 150
8206
+ },
8207
+ className: 'get-tickets-paper'
8208
+ }
8209
+ },
8210
+ displayEmpty: true,
8211
+ sx: {
8212
+ borderRadius: 0
8213
+ }
8214
+ }, _map(Array.from({
8215
+ length: numLength
8216
+ }, function (_, i) {
8217
+ return startNum + i;
8218
+ }), function (option, index) {
8219
+ return React__default.createElement(MenuItem, {
8220
+ value: option,
8221
+ key: index
8222
+ }, option);
8223
+ }))))));
8224
+ })), React__default.createElement("div", null, React__default.createElement(reactBootstrap.Button, {
8225
+ className: "book-button\n " + (bookButtonIsDisabled ? 'disabled' : '') + "\n " + (isButtonScrollable ? 'is-scrollable' : '') + "\n ",
8226
+ onClick: !bookButtonIsDisabled ? handleGetTicketClick : _identity,
8227
+ disabled: isAddingToCart
8228
+ }, isAddingToCart ? React__default.createElement(CircularProgress, {
8229
+ size: 20,
8230
+ style: {
8231
+ marginLeft: 10
8232
+ }
8233
+ }) : getTicketsBtnLabel || getButtonLabel(reservedSeats.length, tableMapEnabled)))));
8234
+ };
8235
+
8236
+ var SeatMapContainer = function SeatMapContainer(props) {
8237
+ var _props$event = props.event,
8238
+ eventId = _props$event.id,
8239
+ symbol = _props$event.currency.symbol,
8240
+ tableMapEnabled = _props$event.tableMapEnabled,
8241
+ country = _props$event.country,
8242
+ mapContainerId = props.mapContainerId,
8243
+ _props$timerMessage = props.timerMessage,
8244
+ timerMessage = _props$timerMessage === void 0 ? '' : _props$timerMessage,
8245
+ _props$onAddToCartSuc = props.onAddToCartSuccess,
8246
+ onAddToCartSuccess = _props$onAddToCartSuc === void 0 ? lodash.identity : _props$onAddToCartSuc,
8247
+ _props$onCountdownFin = props.onCountdownFinish,
8248
+ onCountdownFinish = _props$onCountdownFin === void 0 ? lodash.identity : _props$onCountdownFin,
8249
+ ticketDeleteButtonContent = props.ticketDeleteButtonContent;
8250
+ var _useState = React.useState({
8251
+ seatMap: ''
8252
+ }),
8253
+ seatMapData = _useState[0],
8254
+ setSeatMapData = _useState[1];
8255
+ var eventSeatsRef = React.useRef([]);
8256
+ var ticketTypeTierRelationsRef = React.useRef({});
8257
+ var _useState2 = React.useState({}),
8258
+ selectedTickets = _useState2[0],
8259
+ setSelectedTickets = _useState2[1];
8260
+ var _useState3 = React.useState(''),
8261
+ seatMapStatuses = _useState3[0],
8262
+ setSeatMapStatuses = _useState3[1];
8263
+ var _useState4 = React.useState([]),
8264
+ reservedSeats = _useState4[0],
8265
+ setReservedSeats = _useState4[1];
8266
+ var _useState5 = React.useState(false),
8267
+ isReserving = _useState5[0],
8268
+ setIsReserving = _useState5[1];
8269
+ var _useState6 = React.useState(false),
8270
+ isAddingToCart = _useState6[0],
8271
+ setIsAddingToCart = _useState6[1];
8272
+ var _useState7 = React.useState(null),
8273
+ error = _useState7[0],
8274
+ setError = _useState7[1];
8275
+ var _useState8 = React.useState(Date.now() <= Number(localStorage.getItem("reservationStart-" + eventId))),
8276
+ showTimer = _useState8[0],
8277
+ setShowTimer = _useState8[1];
8278
+ var _useState9 = React.useState({}),
8279
+ guestCounts = _useState9[0],
8280
+ setGuestCounts = _useState9[1];
8281
+ var updateGuestCounts = function updateGuestCounts(data) {
8282
+ _forEach(data, function (item) {
8283
+ var tierTickets = ticketTypeTierRelationsRef.current[item.tierId];
8284
+ var seatTicketsArray = _values(tierTickets);
8285
+ setGuestCounts(function (prevState) {
8286
+ var _extends2;
8287
+ return _extends({}, prevState, (_extends2 = {}, _extends2[item.seatId] = Number(seatTicketsArray[0].ticket_type_min_number_of_guests), _extends2));
8288
+ });
8289
+ });
8290
+ };
8291
+ var fetchSeatMapData = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
8292
+ var seatMapDataResponse, _seatMapDataResponse$, seatData, ticketTypeTierRelations, eventSeats, seatReservationTime, seatMapType, tierPrices, predefinedSeats;
8293
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
8294
+ while (1) switch (_context.prev = _context.next) {
8295
+ case 0:
8296
+ _context.prev = 0;
8297
+ _context.next = 3;
8298
+ return getSeatMapData(eventId);
8299
+ case 3:
8300
+ seatMapDataResponse = _context.sent;
8301
+ _seatMapDataResponse$ = seatMapDataResponse.data.attributes, seatData = _seatMapDataResponse$.seatData, ticketTypeTierRelations = _seatMapDataResponse$.ticketTypeTierRelations, eventSeats = _seatMapDataResponse$.eventSeats, seatReservationTime = _seatMapDataResponse$.seatReservationTime, seatMapType = _seatMapDataResponse$.seatMapType, tierPrices = _seatMapDataResponse$.tierPrices, predefinedSeats = _seatMapDataResponse$.predefinedSeats;
8302
+ eventSeatsRef.current = eventSeats;
8303
+ ticketTypeTierRelationsRef.current = ticketTypeTierRelations;
8304
+ setSeatMapData({
8305
+ seatMap: JSON.parse(seatData),
8306
+ seatReservationTime: seatReservationTime,
8307
+ seatMapType: seatMapType,
8308
+ tierPrices: tierPrices,
8309
+ predefinedSeats: predefinedSeats
8310
+ });
8311
+ _context.next = 13;
8312
+ break;
8313
+ case 10:
8314
+ _context.prev = 10;
8315
+ _context.t0 = _context["catch"](0);
8316
+ setError('Something went wrong');
8317
+ case 13:
8318
+ case "end":
8319
+ return _context.stop();
8320
+ }
8321
+ }, _callee, null, [[0, 10]]);
8322
+ })), [eventId]);
8323
+ var fetchSeatMapReservations = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
8324
+ var statusesResponse, statuses, reservationData, ownReservations;
8325
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
8326
+ while (1) switch (_context2.prev = _context2.next) {
8327
+ case 0:
8328
+ _context2.prev = 0;
8329
+ _context2.next = 3;
8330
+ return getSeatMapStatuses(eventId);
8331
+ case 3:
8332
+ statusesResponse = _context2.sent;
8333
+ statuses = _get(statusesResponse, 'data.attributes') || {};
8334
+ reservationData = [];
8335
+ ownReservations = getOwnReservationsBasedOnStatuses(statuses);
8336
+ _forEach(ownReservations, function (reservation) {
8337
+ var tierIdOfReservation = getTierIdBasedOnSeatId(reservation, eventSeatsRef.current);
8338
+ reservationData.push({
8339
+ seatId: reservation,
8340
+ tierId: tierIdOfReservation,
8341
+ type: 'reserve'
8342
+ });
8343
+ });
8344
+ localStorage.setItem('reservationData', JSON.stringify(reservationData));
8345
+ setSeatMapStatuses(statusesResponse.data.attributes);
8346
+ setReservedSeats(reservationData);
8347
+ // automatically set ticket/table type if it's the only one
8348
+ if (ticketTypeTierRelationsRef.current) {
8349
+ _forEach(reservationData, function (item) {
8350
+ var tierTickets = ticketTypeTierRelationsRef.current[item.tierId];
8351
+ var seatTicketsArray = _values(tierTickets);
8352
+ setSelectedTickets(function (prevState) {
8353
+ var _extends3;
8354
+ return _extends({}, prevState, (_extends3 = {}, _extends3[item.seatId] = seatTicketsArray.length === 1 ? seatTicketsArray[0].ticket_type_id : '', _extends3));
8355
+ });
8356
+ });
8357
+ if (_isEmpty(reservationData)) {
8358
+ setGuestCounts({});
8359
+ setSelectedTickets({});
8360
+ }
8361
+ }
8362
+ _context2.next = 17;
8363
+ break;
8364
+ case 14:
8365
+ _context2.prev = 14;
8366
+ _context2.t0 = _context2["catch"](0);
8367
+ setError('Something went wrong');
8368
+ case 17:
8369
+ case "end":
8370
+ return _context2.stop();
8371
+ }
8372
+ }, _callee2, null, [[0, 14]]);
8373
+ })), [eventId]);
8374
+ var startTimer = React.useCallback(function (duration) {
8375
+ setShowTimer(true);
8376
+ if (!localStorage.getItem("reservationStart-" + eventId)) {
8377
+ localStorage.setItem("reservationStart-" + eventId, String(Date.now() + duration));
8378
+ }
8379
+ }, []);
8380
+ var endTimer = React.useCallback(function () {
8381
+ localStorage.removeItem("reservationStart-" + eventId);
8382
+ setShowTimer(false);
8383
+ }, []);
8384
+ var handleSeatReservation = /*#__PURE__*/function () {
8385
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(eventId, tierId, seatId) {
8386
+ var reservationData, relations, _keys2, firstItem;
8387
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
8388
+ while (1) switch (_context3.prev = _context3.next) {
8389
+ case 0:
8390
+ setIsReserving(true);
8391
+ _context3.prev = 1;
8392
+ _context3.next = 4;
8393
+ return reserveSeat(eventId, tierId, seatId);
8394
+ case 4:
8395
+ _context3.next = 6;
8396
+ return fetchSeatMapReservations();
8397
+ case 6:
8398
+ startTimer(seatMapData.seatReservationTime * 60000);
8399
+ reservationData = JSON.parse(localStorage.getItem('reservationData') || '');
8400
+ setReservedSeats(reservationData);
8401
+ updateGuestCounts(reservationData);
8402
+ // automatically set ticket/table type if it's the only one
8403
+ relations = _keys(ticketTypeTierRelationsRef.current[tierId]);
8404
+ _keys2 = _keys(ticketTypeTierRelationsRef.current[tierId]), firstItem = _keys2[0];
8405
+ handleTicketSelect(relations.length === 1 ? firstItem : '', seatId);
8406
+ _context3.next = 18;
8407
+ break;
8408
+ case 15:
8409
+ _context3.prev = 15;
8410
+ _context3.t0 = _context3["catch"](1);
8411
+ setError('Something went wrong');
8412
+ case 18:
8413
+ _context3.prev = 18;
8414
+ setIsReserving(false);
8415
+ return _context3.finish(18);
8416
+ case 21:
8417
+ case "end":
8418
+ return _context3.stop();
8419
+ }
8420
+ }, _callee3, null, [[1, 15, 18, 21]]);
8421
+ }));
8422
+ return function handleSeatReservation(_x, _x2, _x3) {
8423
+ return _ref3.apply(this, arguments);
8424
+ };
8425
+ }();
8426
+ var handleCancelSeatReservtion = /*#__PURE__*/function () {
8427
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(eventId, tierId, seatId) {
8428
+ var reservationData, currentSelectedTickets;
8429
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
8430
+ while (1) switch (_context4.prev = _context4.next) {
8431
+ case 0:
8432
+ setIsReserving(true);
8433
+ _context4.prev = 1;
8434
+ _context4.next = 4;
8435
+ return removeSeatReserve(eventId, tierId, [seatId]);
8436
+ case 4:
8437
+ _context4.next = 6;
8438
+ return fetchSeatMapReservations();
8439
+ case 6:
8440
+ if (_isEmpty(JSON.parse(localStorage.getItem('reservationData')))) {
8441
+ endTimer();
8442
+ }
8443
+ reservationData = JSON.parse(localStorage.getItem('reservationData') || '');
8444
+ currentSelectedTickets = _extends({}, selectedTickets);
8445
+ delete currentSelectedTickets[seatId];
8446
+ setReservedSeats(reservationData);
8447
+ setSelectedTickets(currentSelectedTickets);
8448
+ _context4.next = 17;
8449
+ break;
8450
+ case 14:
8451
+ _context4.prev = 14;
8452
+ _context4.t0 = _context4["catch"](1);
8453
+ setError('Something went wrong');
8454
+ case 17:
8455
+ _context4.prev = 17;
8456
+ setIsReserving(false);
8457
+ return _context4.finish(17);
8458
+ case 20:
8459
+ case "end":
8460
+ return _context4.stop();
8461
+ }
8462
+ }, _callee4, null, [[1, 14, 17, 20]]);
8463
+ }));
8464
+ return function handleCancelSeatReservtion(_x4, _x5, _x6) {
8465
+ return _ref4.apply(this, arguments);
8466
+ };
8467
+ }();
8468
+ var onSeatClick = /*#__PURE__*/function () {
8469
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(seatInfo) {
8470
+ var _seatInfo$seat, tierId, seatId, status, reservationData;
8471
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
8472
+ while (1) switch (_context5.prev = _context5.next) {
8473
+ case 0:
8474
+ _seatInfo$seat = seatInfo.seat, tierId = _seatInfo$seat.tierId, seatId = _seatInfo$seat.seatId, status = _seatInfo$seat.status;
8475
+ reservationData = JSON.parse(localStorage.getItem('reservationData') || '[]');
8476
+ if (!(status === 'B' || status === 'R' || status === 'BLOCKED' || status === 'RE')) {
8477
+ _context5.next = 4;
8478
+ break;
8479
+ }
8480
+ return _context5.abrupt("return");
8481
+ case 4:
8482
+ if (_find(reservationData, function (data) {
8483
+ return data.seatId === seatId;
8484
+ })) {
8485
+ handleCancelSeatReservtion(eventId, tierId, seatId);
8486
+ } else if (reservationData.length >= 10) {
8487
+ setError('Limit exceeded');
8488
+ } else {
8489
+ handleSeatReservation(eventId, tierId, seatId);
8490
+ }
8491
+ case 5:
8492
+ case "end":
8493
+ return _context5.stop();
8494
+ }
8495
+ }, _callee5);
8496
+ }));
8497
+ return function onSeatClick(_x7) {
8498
+ return _ref5.apply(this, arguments);
8499
+ };
8500
+ }();
8501
+ var handleTicketSelect = function handleTicketSelect(ticketId, seatId) {
8502
+ var currentSelectedTickets = _extends({}, selectedTickets);
8503
+ currentSelectedTickets[seatId] = ticketId;
8504
+ setSelectedTickets(currentSelectedTickets);
8505
+ };
8506
+ var handleGetTicketBtnClick = /*#__PURE__*/function () {
8507
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
8508
+ var ticketsDropdownsData, selectedSeats, addToCartData, _addToCartData$attrib, response, message;
8509
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
8510
+ while (1) switch (_context6.prev = _context6.next) {
8511
+ case 0:
8512
+ setIsAddingToCart(true);
8513
+ ticketsDropdownsData = getTicketDropdownData(reservedSeats, ticketTypeTierRelationsRef.current);
8514
+ selectedSeats = {};
8515
+ _forEach(ticketsDropdownsData, function (ticketData) {
8516
+ var _extends4;
8517
+ selectedSeats = _extends({}, selectedSeats, (_extends4 = {}, _extends4[ticketData.seatId] = ticketData.ticketsData, _extends4));
8518
+ });
8519
+ addToCartData = getAddToCartRequestData({
8520
+ eventId: eventId,
8521
+ reservations: _map(reservedSeats, function (seat) {
8522
+ return seat.seatId;
8523
+ }),
8524
+ selectedSeats: selectedSeats,
8525
+ selectedTickets: selectedTickets,
8526
+ guestCounts: guestCounts
8527
+ });
8528
+ _context6.prev = 5;
8529
+ _context6.next = 8;
8530
+ return addToCartFunc({
8531
+ eventId: eventId,
8532
+ data: addToCartData,
8533
+ ticketQuantity: addToCartData == null ? void 0 : (_addToCartData$attrib = addToCartData.attributes) == null ? void 0 : _addToCartData$attrib.product_cart_quantity
8534
+ });
8535
+ case 8:
8536
+ response = _context6.sent;
8537
+ localStorage.removeItem('reservationData');
8538
+ onAddToCartSuccess(response);
8539
+ _context6.next = 16;
8540
+ break;
8541
+ case 13:
8542
+ _context6.prev = 13;
8543
+ _context6.t0 = _context6["catch"](5);
8544
+ if (axios.isAxiosError(_context6.t0)) {
8545
+ message = _get(_context6.t0, 'response.data.message', '');
8546
+ setError(message);
8547
+ }
8548
+ case 16:
8549
+ _context6.prev = 16;
8550
+ setIsAddingToCart(false);
8551
+ return _context6.finish(16);
8552
+ case 19:
8553
+ case "end":
8554
+ return _context6.stop();
8555
+ }
8556
+ }, _callee6, null, [[5, 13, 16, 19]]);
8557
+ }));
8558
+ return function handleGetTicketBtnClick() {
8559
+ return _ref6.apply(this, arguments);
8560
+ };
8561
+ }();
8562
+ React.useEffect(function () {
8563
+ if (Date.now() > Number(localStorage.getItem("reservationStart-" + eventId))) {
8564
+ setSelectedTickets({});
8565
+ setReservedSeats([]);
8566
+ }
8567
+ var makeRequests = /*#__PURE__*/function () {
8568
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
8569
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
8570
+ while (1) switch (_context7.prev = _context7.next) {
8571
+ case 0:
8572
+ _context7.prev = 0;
8573
+ _context7.next = 3;
8574
+ return fetchSeatMapData();
8575
+ case 3:
8576
+ fetchSeatMapReservations();
8577
+ _context7.next = 9;
8578
+ break;
8579
+ case 6:
8580
+ _context7.prev = 6;
8581
+ _context7.t0 = _context7["catch"](0);
8582
+ setError('Something went wrong');
8583
+ case 9:
8584
+ case "end":
8585
+ return _context7.stop();
8586
+ }
8587
+ }, _callee7, null, [[0, 6]]);
8588
+ }));
8589
+ return function makeRequests() {
8590
+ return _ref7.apply(this, arguments);
8591
+ };
8592
+ }();
8593
+ makeRequests();
8594
+ if (country) {
8595
+ localStorage.setItem('eventCountry', country);
8596
+ }
8597
+ var intervalId = setInterval(function () {
8598
+ fetchSeatMapReservations();
8599
+ }, 3000);
8600
+ return function () {
8601
+ clearInterval(intervalId);
8602
+ };
8603
+ }, [fetchSeatMapData, fetchSeatMapReservations]);
8604
+ return React__default.createElement(React__default.Fragment, null, error && React__default.createElement(material.Alert, {
8605
+ severity: "error",
8606
+ onClose: function onClose() {
8607
+ setError(null);
8608
+ },
8609
+ variant: "filled",
8610
+ style: {
8611
+ width: '350px'
8612
+ }
8613
+ }, error), showTimer && React__default.createElement(Countdown$1, {
8614
+ date: moment$1(Number(localStorage.getItem("reservationStart-" + eventId))).valueOf(),
8615
+ renderer: function renderer(props) {
8616
+ return React__default.createElement("div", {
8617
+ className: "reservation-countdown"
8618
+ }, React__default.createElement("span", {
8619
+ className: "reservation-message"
8620
+ }, timerMessage), React__default.createElement("span", {
8621
+ className: "reservation-timer"
8622
+ }, showZero(props.minutes), ":", showZero(props.seconds)));
8623
+ },
8624
+ onComplete: function onComplete() {
8625
+ endTimer();
8626
+ setSelectedTickets({});
8627
+ setReservedSeats([]);
8628
+ if (onCountdownFinish) {
8629
+ onCountdownFinish();
8630
+ }
8631
+ }
8632
+ }), React__default.createElement(TicketsSection$1, {
8633
+ selectedTickets: selectedTickets,
8634
+ handleTicketSelect: handleTicketSelect,
8635
+ handleCancelReservation: function handleCancelReservation(seatId, tireId) {
8636
+ return handleCancelSeatReservtion(eventId, tireId, seatId);
8637
+ },
8638
+ handleGetTicketClick: handleGetTicketBtnClick,
8639
+ isAddingToCart: isAddingToCart,
8640
+ reservedSeats: reservedSeats,
8641
+ ticketDeleteButtonContent: ticketDeleteButtonContent,
8642
+ ticketTypeTierRelations: ticketTypeTierRelationsRef.current,
8643
+ currencySymbol: symbol,
8644
+ tableMapEnabled: Boolean(tableMapEnabled),
8645
+ guestCounts: guestCounts,
8646
+ setGuestCounts: setGuestCounts
8647
+ }), seatMapData.seatMap && seatMapStatuses && React__default.createElement(SeatMapComponent, {
8648
+ seatMapProps: {
8649
+ seatData: seatMapData.seatMap,
8650
+ statuses: seatMapStatuses,
8651
+ tierPrices: seatMapData.tierPrices,
8652
+ seatMapType: seatMapData.seatMapType,
8653
+ ticketTypeTierRelations: ticketTypeTierRelationsRef.current,
8654
+ seatMapEvents: {
8655
+ onSeatClick: onSeatClick
8656
+ },
8657
+ isReserving: isReserving,
8658
+ predefinedSeats: seatMapData.predefinedSeats
8659
+ },
8660
+ mapContainerId: mapContainerId
8661
+ }));
8662
+ };
8663
+
7422
8664
  /* eslint-disable max-len */
7423
8665
  var VERIFICATION_STATUSES = {
7424
8666
  PENDING: 'PENDING',
7425
8667
  APPROVED: 'APPROVED_VERIFIED',
7426
- FAILED: 'FAILED'
8668
+ FAILED: 'FAILED',
8669
+ WRONG_CUSTOMER: 'WRONG_CUSTOMER'
7427
8670
  };
7428
8671
  var VERIFICATION_MESSAGES = {
7429
8672
  PENDING: 'Your ID verification is currently being processed. We will notify you as soon as it is completed. Thank you for your patience.',
7430
8673
  APPROVED: 'Your ID verification is approved!',
7431
- FAILED: 'Unfortunately your ID verification has failed. Please try again.'
8674
+ FAILED: 'Unfortunately your ID verification has failed. Please try again.',
8675
+ WRONG_CUSTOMER: 'The order does not belong to the customer.'
7432
8676
  };
7433
8677
 
7434
8678
  var IDVerification = function IDVerification(props) {
@@ -7465,7 +8709,7 @@ var IDVerification = function IDVerification(props) {
7465
8709
  }),
7466
8710
  modalData = _useState5[0],
7467
8711
  setModalData = _useState5[1];
7468
- var isAccountVerifiedOrPending = verificationStatus === VERIFICATION_STATUSES.APPROVED || verificationStatus === VERIFICATION_STATUSES.PENDING;
8712
+ var isAccountVerifiedOrPending = (verificationStatus === VERIFICATION_STATUSES.APPROVED || verificationStatus === VERIFICATION_STATUSES.PENDING) && verificationStatus !== VERIFICATION_STATUSES.WRONG_CUSTOMER;
7469
8713
  var handleClose = function handleClose() {
7470
8714
  setModalData({
7471
8715
  message: '',
@@ -7525,6 +8769,8 @@ var IDVerification = function IDVerification(props) {
7525
8769
  };
7526
8770
  }, []);
7527
8771
  React.useEffect(function () {
8772
+ var intervalId = null;
8773
+ var orderHash = getQueryVariable('order_hash') || '';
7528
8774
  var getUrl = /*#__PURE__*/function () {
7529
8775
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
7530
8776
  var urlResponse;
@@ -7595,17 +8841,81 @@ var IDVerification = function IDVerification(props) {
7595
8841
  return _ref3.apply(this, arguments);
7596
8842
  };
7597
8843
  }();
7598
- getUrl();
7599
- getVerificationStatus();
7600
- // Check the verification status every 30 seconds
7601
- var intervalId = setInterval(function () {
7602
- getVerificationStatus();
7603
- }, 10000);
8844
+ var getCustomerOrderStatus = /*#__PURE__*/function () {
8845
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
8846
+ var customerOrderResponse;
8847
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
8848
+ while (1) switch (_context4.prev = _context4.next) {
8849
+ case 0:
8850
+ _context4.prev = 0;
8851
+ _context4.next = 3;
8852
+ return checkCustomerOrder(orderHash);
8853
+ case 3:
8854
+ customerOrderResponse = _context4.sent;
8855
+ return _context4.abrupt("return", customerOrderResponse);
8856
+ case 7:
8857
+ _context4.prev = 7;
8858
+ _context4.t0 = _context4["catch"](0);
8859
+ throw _context4.t0;
8860
+ case 10:
8861
+ case "end":
8862
+ return _context4.stop();
8863
+ }
8864
+ }, _callee4, null, [[0, 7]]);
8865
+ }));
8866
+ return function getCustomerOrderStatus() {
8867
+ return _ref4.apply(this, arguments);
8868
+ };
8869
+ }();
8870
+ var makeRequests = /*#__PURE__*/function () {
8871
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
8872
+ var _error$response, _error$response$data;
8873
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
8874
+ while (1) switch (_context5.prev = _context5.next) {
8875
+ case 0:
8876
+ _context5.prev = 0;
8877
+ if (!orderHash) {
8878
+ _context5.next = 4;
8879
+ break;
8880
+ }
8881
+ _context5.next = 4;
8882
+ return getCustomerOrderStatus();
8883
+ case 4:
8884
+ getUrl();
8885
+ getVerificationStatus();
8886
+ // Check the verification status every 30 seconds
8887
+ intervalId = setInterval(function () {
8888
+ getVerificationStatus();
8889
+ }, 10000);
8890
+ _context5.next = 12;
8891
+ break;
8892
+ case 9:
8893
+ _context5.prev = 9;
8894
+ _context5.t0 = _context5["catch"](0);
8895
+ if (((_error$response = _context5.t0.response) == null ? void 0 : (_error$response$data = _error$response.data) == null ? void 0 : _error$response$data.message) === VERIFICATION_MESSAGES.WRONG_CUSTOMER) {
8896
+ setVerificationStatus(VERIFICATION_STATUSES.WRONG_CUSTOMER);
8897
+ setModalData({
8898
+ displaModal: true,
8899
+ hideCancelBtn: true,
8900
+ message: VERIFICATION_MESSAGES.WRONG_CUSTOMER
8901
+ });
8902
+ }
8903
+ case 12:
8904
+ case "end":
8905
+ return _context5.stop();
8906
+ }
8907
+ }, _callee5, null, [[0, 9]]);
8908
+ }));
8909
+ return function makeRequests() {
8910
+ return _ref5.apply(this, arguments);
8911
+ };
8912
+ }();
8913
+ makeRequests();
7604
8914
  // Clear the interval when the component unmounts
7605
8915
  return function () {
7606
8916
  return clearInterval(intervalId);
7607
8917
  };
7608
- }, [verificationStatus]);
8918
+ }, []);
7609
8919
  var iframe = function iframe(netverifyUrl) {
7610
8920
  // eslint-disable-next-line max-len
7611
8921
  var iframe = "<iframe allowFullScreen id=\"verificationIframe\" frameBorder=\"0\" width=\"100%\" height=\"570px\" allow=\"camera;fullscreen;accelerometer;gyroscope;magnetometer\" src=\"" + netverifyUrl + "\"></iframe>";
@@ -7840,6 +9150,7 @@ exports.PoweredBy = PoweredBy;
7840
9150
  exports.RedirectModal = RedirectModal;
7841
9151
  exports.ResetPasswordContainer = ResetPasswordContainer;
7842
9152
  exports.RsvpContainer = RsvpContainer;
9153
+ exports.SeatMapContainer = SeatMapContainer;
7843
9154
  exports.TicketResaleContainer = TicketResaleContainer;
7844
9155
  exports.TicketsContainer = TicketsContainer;
7845
9156
  exports.VERIFICATION_STATUSES = VERIFICATION_STATUSES;