tf-checkout-react 1.6.6-beta.18 → 1.6.6-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/customFields.d.ts +1 -0
- package/dist/api/common.d.ts +1 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/components/addonsContainer/AddonComponent.d.ts +5 -1
- package/dist/components/addonsContainer/index.d.ts +3 -1
- package/dist/components/billing-info-container/index.d.ts +1 -0
- package/dist/components/ticketsContainer/TimeSlotsSection.d.ts +17 -0
- package/dist/tf-checkout-react.cjs.development.js +888 -635
- package/dist/tf-checkout-react.cjs.development.js.map +1 -1
- package/dist/tf-checkout-react.cjs.production.min.js +1 -1
- package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
- package/dist/tf-checkout-react.esm.js +889 -636
- package/dist/tf-checkout-react.esm.js.map +1 -1
- package/dist/types/checkoutPageConfigs.d.ts +1 -1
- package/dist/utils/customFields.d.ts +11 -0
- package/package.json +1 -1
- package/src/adapters/customFields.ts +7 -1
- package/src/api/common.ts +6 -0
- package/src/components/addonsContainer/AddonComponent.tsx +65 -11
- package/src/components/addonsContainer/index.tsx +15 -2
- package/src/components/billing-info-container/index.tsx +9 -1
- package/src/components/ticketsContainer/TicketRow.tsx +1 -1
- package/src/components/ticketsContainer/TicketsSection.tsx +2 -2
- package/src/components/ticketsContainer/TimeSlotsSection.tsx +118 -0
- package/src/components/ticketsContainer/index.tsx +49 -12
- package/src/hoc/CustomFields/index.tsx +8 -0
- package/src/types/api/common.d.ts +4 -0
- package/src/types/checkoutPageConfigs.ts +1 -1
- package/src/utils/customFields.ts +22 -0
|
@@ -28,6 +28,8 @@ var Countdown$1 = _interopDefault(require('react-countdown'));
|
|
|
28
28
|
var SVG = _interopDefault(require('react-inlinesvg'));
|
|
29
29
|
var _isNumber = _interopDefault(require('lodash/isNumber'));
|
|
30
30
|
var _isNull = _interopDefault(require('lodash/isNull'));
|
|
31
|
+
var _flatMapDeep = _interopDefault(require('lodash/flatMapDeep'));
|
|
32
|
+
var _isArray = _interopDefault(require('lodash/isArray'));
|
|
31
33
|
var Checkbox$1 = _interopDefault(require('@mui/material/Checkbox'));
|
|
32
34
|
var FormControlLabel = _interopDefault(require('@mui/material/FormControlLabel'));
|
|
33
35
|
var FormGroup = _interopDefault(require('@mui/material/FormGroup'));
|
|
@@ -53,8 +55,6 @@ var RadioGroup = _interopDefault(require('@mui/material/RadioGroup'));
|
|
|
53
55
|
var _reverse = _interopDefault(require('lodash/reverse'));
|
|
54
56
|
var _sortBy = _interopDefault(require('lodash/sortBy'));
|
|
55
57
|
var Yup = require('yup');
|
|
56
|
-
var _flatMapDeep = _interopDefault(require('lodash/flatMapDeep'));
|
|
57
|
-
var _isArray = _interopDefault(require('lodash/isArray'));
|
|
58
58
|
var Alert = _interopDefault(require('@mui/material/Alert'));
|
|
59
59
|
var Container = _interopDefault(require('@mui/material/Container'));
|
|
60
60
|
var reactStripeJs = require('@stripe/react-stripe-js');
|
|
@@ -808,6 +808,26 @@ var getDataWithCustomFields = function getDataWithCustomFields(initialData, tick
|
|
|
808
808
|
ticketHoldersWithCustomFields: ticketHoldersWithCustomFields
|
|
809
809
|
};
|
|
810
810
|
};
|
|
811
|
+
var getAddOnDataWithCustomFields = function getAddOnDataWithCustomFields(customFields) {
|
|
812
|
+
// Custom Fields are not specified case
|
|
813
|
+
if (_isEmpty(customFields)) {
|
|
814
|
+
return {
|
|
815
|
+
addOnDataWithCustomFields: {}
|
|
816
|
+
};
|
|
817
|
+
}
|
|
818
|
+
// Add Custom Fields for Order
|
|
819
|
+
var orderWithCustomFields = {
|
|
820
|
+
id: 1,
|
|
821
|
+
groupClassname: 'billing-info-container__customFields',
|
|
822
|
+
groupItems: [].concat(customFields.addOnFields)
|
|
823
|
+
};
|
|
824
|
+
var addOnDataWithCustomFields = {
|
|
825
|
+
fields: orderWithCustomFields
|
|
826
|
+
};
|
|
827
|
+
return {
|
|
828
|
+
addOnDataWithCustomFields: addOnDataWithCustomFields
|
|
829
|
+
};
|
|
830
|
+
};
|
|
811
831
|
var getFieldsKeys = function getFieldsKeys(customFields) {
|
|
812
832
|
return _map(customFields, function (field) {
|
|
813
833
|
return field.name;
|
|
@@ -940,19 +960,25 @@ var fieldDataAdapter = function fieldDataAdapter(field) {
|
|
|
940
960
|
var customFieldsDataAdapter = function customFieldsDataAdapter(data) {
|
|
941
961
|
var adaptedTicketFields = [];
|
|
942
962
|
var adaptedOrderFields = [];
|
|
963
|
+
var adaptedAddOnFields = [];
|
|
943
964
|
_forEach(data, function (field) {
|
|
944
965
|
var ticketFields = _get(field, 'ticket.group.fields');
|
|
945
966
|
var orderFields = _get(field, 'order.group.fields');
|
|
967
|
+
var addOnFields = _get(field, 'add-on.group.fields');
|
|
946
968
|
_forEach(ticketFields, function (ticketField) {
|
|
947
969
|
adaptedTicketFields.push(fieldDataAdapter(ticketField));
|
|
948
970
|
});
|
|
949
971
|
_forEach(orderFields, function (orderField) {
|
|
950
972
|
adaptedOrderFields.push(fieldDataAdapter(orderField));
|
|
951
973
|
});
|
|
974
|
+
_forEach(addOnFields, function (addOnField) {
|
|
975
|
+
adaptedAddOnFields.push(fieldDataAdapter(addOnField));
|
|
976
|
+
});
|
|
952
977
|
});
|
|
953
978
|
return {
|
|
954
979
|
ticketsFields: adaptedTicketFields,
|
|
955
|
-
orderFields: adaptedOrderFields
|
|
980
|
+
orderFields: adaptedOrderFields,
|
|
981
|
+
addOnFields: adaptedAddOnFields
|
|
956
982
|
};
|
|
957
983
|
};
|
|
958
984
|
|
|
@@ -1264,14 +1290,14 @@ var getTickets = /*#__PURE__*/function () {
|
|
|
1264
1290
|
return _ref2.apply(this, arguments);
|
|
1265
1291
|
};
|
|
1266
1292
|
}();
|
|
1267
|
-
var
|
|
1268
|
-
var _ref3 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
1293
|
+
var getTimeSlotsData = /*#__PURE__*/function () {
|
|
1294
|
+
var _ref3 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(eventId) {
|
|
1269
1295
|
var response;
|
|
1270
1296
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
1271
1297
|
while (1) switch (_context3.prev = _context3.next) {
|
|
1272
1298
|
case 0:
|
|
1273
1299
|
_context3.next = 2;
|
|
1274
|
-
return publicRequest.get(
|
|
1300
|
+
return publicRequest.get("/event/" + eventId + "/time-slot-groups-dates/");
|
|
1275
1301
|
case 2:
|
|
1276
1302
|
response = _context3.sent;
|
|
1277
1303
|
return _context3.abrupt("return", response.data);
|
|
@@ -1281,18 +1307,18 @@ var getCountries = /*#__PURE__*/function () {
|
|
|
1281
1307
|
}
|
|
1282
1308
|
}, _callee3);
|
|
1283
1309
|
}));
|
|
1284
|
-
return function
|
|
1310
|
+
return function getTimeSlotsData(_x6) {
|
|
1285
1311
|
return _ref3.apply(this, arguments);
|
|
1286
1312
|
};
|
|
1287
1313
|
}();
|
|
1288
|
-
var
|
|
1289
|
-
var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(
|
|
1314
|
+
var getCountries = /*#__PURE__*/function () {
|
|
1315
|
+
var _ref4 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
1290
1316
|
var response;
|
|
1291
1317
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
1292
1318
|
while (1) switch (_context4.prev = _context4.next) {
|
|
1293
1319
|
case 0:
|
|
1294
1320
|
_context4.next = 2;
|
|
1295
|
-
return publicRequest.get(
|
|
1321
|
+
return publicRequest.get('/countries/list');
|
|
1296
1322
|
case 2:
|
|
1297
1323
|
response = _context4.sent;
|
|
1298
1324
|
return _context4.abrupt("return", response.data);
|
|
@@ -1302,18 +1328,18 @@ var getStates = /*#__PURE__*/function () {
|
|
|
1302
1328
|
}
|
|
1303
1329
|
}, _callee4);
|
|
1304
1330
|
}));
|
|
1305
|
-
return function
|
|
1331
|
+
return function getCountries() {
|
|
1306
1332
|
return _ref4.apply(this, arguments);
|
|
1307
1333
|
};
|
|
1308
1334
|
}();
|
|
1309
|
-
var
|
|
1310
|
-
var _ref5 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(
|
|
1335
|
+
var getStates = /*#__PURE__*/function () {
|
|
1336
|
+
var _ref5 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(countryId) {
|
|
1311
1337
|
var response;
|
|
1312
1338
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
1313
1339
|
while (1) switch (_context5.prev = _context5.next) {
|
|
1314
1340
|
case 0:
|
|
1315
1341
|
_context5.next = 2;
|
|
1316
|
-
return publicRequest.
|
|
1342
|
+
return publicRequest.get("/countries/" + countryId + "/states/");
|
|
1317
1343
|
case 2:
|
|
1318
1344
|
response = _context5.sent;
|
|
1319
1345
|
return _context5.abrupt("return", response.data);
|
|
@@ -1323,20 +1349,18 @@ var sendRSVPInfo = /*#__PURE__*/function () {
|
|
|
1323
1349
|
}
|
|
1324
1350
|
}, _callee5);
|
|
1325
1351
|
}));
|
|
1326
|
-
return function
|
|
1352
|
+
return function getStates(_x7) {
|
|
1327
1353
|
return _ref5.apply(this, arguments);
|
|
1328
1354
|
};
|
|
1329
1355
|
}();
|
|
1330
|
-
var
|
|
1331
|
-
var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(
|
|
1356
|
+
var sendRSVPInfo = /*#__PURE__*/function () {
|
|
1357
|
+
var _ref6 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(eventId, data) {
|
|
1332
1358
|
var response;
|
|
1333
1359
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
1334
1360
|
while (1) switch (_context6.prev = _context6.next) {
|
|
1335
1361
|
case 0:
|
|
1336
1362
|
_context6.next = 2;
|
|
1337
|
-
return publicRequest.post("v1/event/" +
|
|
1338
|
-
data: data
|
|
1339
|
-
});
|
|
1363
|
+
return publicRequest.post("v1/event/" + eventId + "/send-rsvp-info", data);
|
|
1340
1364
|
case 2:
|
|
1341
1365
|
response = _context6.sent;
|
|
1342
1366
|
return _context6.abrupt("return", response.data);
|
|
@@ -1346,19 +1370,19 @@ var addToWaitingList = /*#__PURE__*/function () {
|
|
|
1346
1370
|
}
|
|
1347
1371
|
}, _callee6);
|
|
1348
1372
|
}));
|
|
1349
|
-
return function
|
|
1373
|
+
return function sendRSVPInfo(_x8, _x9) {
|
|
1350
1374
|
return _ref6.apply(this, arguments);
|
|
1351
1375
|
};
|
|
1352
1376
|
}();
|
|
1353
|
-
var
|
|
1354
|
-
var _ref7 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(
|
|
1377
|
+
var addToWaitingList = /*#__PURE__*/function () {
|
|
1378
|
+
var _ref7 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(id, data) {
|
|
1355
1379
|
var response;
|
|
1356
1380
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
1357
1381
|
while (1) switch (_context7.prev = _context7.next) {
|
|
1358
1382
|
case 0:
|
|
1359
1383
|
_context7.next = 2;
|
|
1360
|
-
return publicRequest.post("v1/event/" +
|
|
1361
|
-
|
|
1384
|
+
return publicRequest.post("v1/event/" + id + "/add_to_waiting_list", {
|
|
1385
|
+
data: data
|
|
1362
1386
|
});
|
|
1363
1387
|
case 2:
|
|
1364
1388
|
response = _context7.sent;
|
|
@@ -1369,18 +1393,20 @@ var postReferralVisits = /*#__PURE__*/function () {
|
|
|
1369
1393
|
}
|
|
1370
1394
|
}, _callee7);
|
|
1371
1395
|
}));
|
|
1372
|
-
return function
|
|
1396
|
+
return function addToWaitingList(_x10, _x11) {
|
|
1373
1397
|
return _ref7.apply(this, arguments);
|
|
1374
1398
|
};
|
|
1375
1399
|
}();
|
|
1376
|
-
var
|
|
1377
|
-
var _ref8 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(
|
|
1400
|
+
var postReferralVisits = /*#__PURE__*/function () {
|
|
1401
|
+
var _ref8 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(eventId, referralId) {
|
|
1378
1402
|
var response;
|
|
1379
1403
|
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
1380
1404
|
while (1) switch (_context8.prev = _context8.next) {
|
|
1381
1405
|
case 0:
|
|
1382
1406
|
_context8.next = 2;
|
|
1383
|
-
return publicRequest.
|
|
1407
|
+
return publicRequest.post("v1/event/" + eventId + "/referrer/", {
|
|
1408
|
+
referrer: "" + referralId
|
|
1409
|
+
});
|
|
1384
1410
|
case 2:
|
|
1385
1411
|
response = _context8.sent;
|
|
1386
1412
|
return _context8.abrupt("return", response.data);
|
|
@@ -1390,10 +1416,31 @@ var validatePhoneNumber = /*#__PURE__*/function () {
|
|
|
1390
1416
|
}
|
|
1391
1417
|
}, _callee8);
|
|
1392
1418
|
}));
|
|
1393
|
-
return function
|
|
1419
|
+
return function postReferralVisits(_x12, _x13) {
|
|
1394
1420
|
return _ref8.apply(this, arguments);
|
|
1395
1421
|
};
|
|
1396
1422
|
}();
|
|
1423
|
+
var validatePhoneNumber = /*#__PURE__*/function () {
|
|
1424
|
+
var _ref9 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(phone) {
|
|
1425
|
+
var response;
|
|
1426
|
+
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
1427
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
1428
|
+
case 0:
|
|
1429
|
+
_context9.next = 2;
|
|
1430
|
+
return publicRequest.get("/v1/account/validate_phone?phone=" + phone);
|
|
1431
|
+
case 2:
|
|
1432
|
+
response = _context9.sent;
|
|
1433
|
+
return _context9.abrupt("return", response.data);
|
|
1434
|
+
case 4:
|
|
1435
|
+
case "end":
|
|
1436
|
+
return _context9.stop();
|
|
1437
|
+
}
|
|
1438
|
+
}, _callee9);
|
|
1439
|
+
}));
|
|
1440
|
+
return function validatePhoneNumber(_x14) {
|
|
1441
|
+
return _ref9.apply(this, arguments);
|
|
1442
|
+
};
|
|
1443
|
+
}();
|
|
1397
1444
|
|
|
1398
1445
|
var getPaymentData = /*#__PURE__*/function () {
|
|
1399
1446
|
var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(hash) {
|
|
@@ -2078,9 +2125,12 @@ var withCustomFields = function withCustomFields(Children) {
|
|
|
2078
2125
|
var _useState4 = React.useState([]),
|
|
2079
2126
|
customFieldsTicketHolderKeys = _useState4[0],
|
|
2080
2127
|
setCustomFieldsTicketHolderKeys = _useState4[1];
|
|
2128
|
+
var _useState5 = React.useState([]),
|
|
2129
|
+
customFieldsAddOnKeys = _useState5[0],
|
|
2130
|
+
setCustomFieldsAddOnKeys = _useState5[1];
|
|
2081
2131
|
var getFields = /*#__PURE__*/function () {
|
|
2082
2132
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
2083
|
-
var eventId, customFields, orderFieldsKeys, ticketHoldersFieldsKeys;
|
|
2133
|
+
var eventId, customFields, orderFieldsKeys, ticketHoldersFieldsKeys, addOnFieldsKeys;
|
|
2084
2134
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
2085
2135
|
while (1) switch (_context.prev = _context.next) {
|
|
2086
2136
|
case 0:
|
|
@@ -2092,25 +2142,27 @@ var withCustomFields = function withCustomFields(Children) {
|
|
|
2092
2142
|
customFields = _context.sent;
|
|
2093
2143
|
orderFieldsKeys = getFieldsKeys(_get(customFields, 'orderFields', []));
|
|
2094
2144
|
ticketHoldersFieldsKeys = getFieldsKeys(_get(customFields, 'ticketsFields', []));
|
|
2145
|
+
addOnFieldsKeys = getFieldsKeys(_get(customFields, 'addOnFields', []));
|
|
2095
2146
|
setCustomFieldsTicketHolderKeys(ticketHoldersFieldsKeys);
|
|
2096
2147
|
setCustomFieldsOrderKeys(orderFieldsKeys);
|
|
2097
2148
|
setCustomFieldsData(customFields);
|
|
2149
|
+
setCustomFieldsAddOnKeys(addOnFieldsKeys);
|
|
2098
2150
|
onGetCustomFieldsSuccess(customFields);
|
|
2099
|
-
_context.next =
|
|
2151
|
+
_context.next = 18;
|
|
2100
2152
|
break;
|
|
2101
|
-
case
|
|
2102
|
-
_context.prev =
|
|
2153
|
+
case 15:
|
|
2154
|
+
_context.prev = 15;
|
|
2103
2155
|
_context.t0 = _context["catch"](0);
|
|
2104
2156
|
onGetCustomFieldsError(_context.t0);
|
|
2105
|
-
case
|
|
2106
|
-
_context.prev =
|
|
2157
|
+
case 18:
|
|
2158
|
+
_context.prev = 18;
|
|
2107
2159
|
setLoading(false);
|
|
2108
|
-
return _context.finish(
|
|
2109
|
-
case
|
|
2160
|
+
return _context.finish(18);
|
|
2161
|
+
case 21:
|
|
2110
2162
|
case "end":
|
|
2111
2163
|
return _context.stop();
|
|
2112
2164
|
}
|
|
2113
|
-
}, _callee, null, [[0,
|
|
2165
|
+
}, _callee, null, [[0, 15, 18, 21]]);
|
|
2114
2166
|
}));
|
|
2115
2167
|
return function getFields() {
|
|
2116
2168
|
return _ref.apply(this, arguments);
|
|
@@ -2124,6 +2176,8 @@ var withCustomFields = function withCustomFields(Children) {
|
|
|
2124
2176
|
var _getDataWithCustomFie = getDataWithCustomFields(data, ticketHoldersFields, customFieldsData),
|
|
2125
2177
|
dataWithCustomFields = _getDataWithCustomFie.dataWithCustomFields,
|
|
2126
2178
|
ticketHoldersWithCustomFields = _getDataWithCustomFie.ticketHoldersWithCustomFields;
|
|
2179
|
+
var _getAddOnDataWithCust = getAddOnDataWithCustomFields(customFieldsData),
|
|
2180
|
+
addOnDataWithCustomFields = _getAddOnDataWithCust.addOnDataWithCustomFields;
|
|
2127
2181
|
if (lodaing) {
|
|
2128
2182
|
return React__default.createElement(material.CircularProgress, {
|
|
2129
2183
|
size: 50
|
|
@@ -2133,7 +2187,9 @@ var withCustomFields = function withCustomFields(Children) {
|
|
|
2133
2187
|
data: dataWithCustomFields,
|
|
2134
2188
|
ticketHoldersFields: ticketHoldersWithCustomFields,
|
|
2135
2189
|
customFieldsOrderKeys: customFieldsOrderKeys,
|
|
2136
|
-
customFieldsTicketHolderKeys: customFieldsTicketHolderKeys
|
|
2190
|
+
customFieldsTicketHolderKeys: customFieldsTicketHolderKeys,
|
|
2191
|
+
customFieldsAddOnKeys: customFieldsAddOnKeys,
|
|
2192
|
+
addOnDataWithCustomFields: addOnDataWithCustomFields
|
|
2137
2193
|
}));
|
|
2138
2194
|
};
|
|
2139
2195
|
};
|
|
@@ -2515,6 +2571,44 @@ var cartAdapter = function cartAdapter(cart) {
|
|
|
2515
2571
|
};
|
|
2516
2572
|
};
|
|
2517
2573
|
|
|
2574
|
+
var emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
2575
|
+
var combineValidators = function combineValidators() {
|
|
2576
|
+
for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2577
|
+
validators[_key] = arguments[_key];
|
|
2578
|
+
}
|
|
2579
|
+
return function () {
|
|
2580
|
+
for (var i = 0; i < validators.length; ++i) {
|
|
2581
|
+
var error_message = validators[i].apply(validators, arguments);
|
|
2582
|
+
if (error_message) return error_message;
|
|
2583
|
+
}
|
|
2584
|
+
};
|
|
2585
|
+
};
|
|
2586
|
+
function isFalsy(item) {
|
|
2587
|
+
try {
|
|
2588
|
+
if (!item ||
|
|
2589
|
+
// handles most, like false, 0, null, etc
|
|
2590
|
+
typeof item === 'object' && Object.keys(item).length === 0 &&
|
|
2591
|
+
// for empty objects, like {}, []
|
|
2592
|
+
!(typeof item.addEventListener === 'function') // omit webpage elements
|
|
2593
|
+
) {
|
|
2594
|
+
return true;
|
|
2595
|
+
}
|
|
2596
|
+
} catch (err) {
|
|
2597
|
+
return true;
|
|
2598
|
+
}
|
|
2599
|
+
return false;
|
|
2600
|
+
}
|
|
2601
|
+
var requiredValidator = function requiredValidator(value, message) {
|
|
2602
|
+
var errorMessage = '';
|
|
2603
|
+
if (isFalsy(typeof value === 'string' ? value.trim() : value)) {
|
|
2604
|
+
errorMessage = message || 'Required';
|
|
2605
|
+
}
|
|
2606
|
+
return errorMessage;
|
|
2607
|
+
};
|
|
2608
|
+
var emailValidator = function emailValidator(email) {
|
|
2609
|
+
return !emailRegex.test(email) ? 'Please enter a valid email address' : '';
|
|
2610
|
+
};
|
|
2611
|
+
|
|
2518
2612
|
var CheckboxField = function CheckboxField(_ref) {
|
|
2519
2613
|
var label = _ref.label,
|
|
2520
2614
|
field = _ref.field,
|
|
@@ -3050,230 +3144,479 @@ var RadioGroupField = function RadioGroupField(_ref) {
|
|
|
3050
3144
|
})));
|
|
3051
3145
|
};
|
|
3052
3146
|
|
|
3053
|
-
var
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
_ref$handleAddonChang = _ref.handleAddonChange,
|
|
3059
|
-
handleAddonChange = _ref$handleAddonChang === void 0 ? _identity : _ref$handleAddonChang;
|
|
3060
|
-
var id = data.id,
|
|
3061
|
-
name = data.name,
|
|
3062
|
-
active = data.active,
|
|
3063
|
-
stock = data.stock;
|
|
3064
|
-
return React__default.createElement("div", {
|
|
3065
|
-
key: id,
|
|
3066
|
-
className: classNamePrefix + "_product_select_container"
|
|
3067
|
-
}, React__default.createElement("div", {
|
|
3068
|
-
className: classNamePrefix + "_product_select_block",
|
|
3069
|
-
key: name
|
|
3070
|
-
}, React__default.createElement("div", {
|
|
3071
|
-
className: classNamePrefix + "_product_size"
|
|
3072
|
-
}, name), React__default.createElement("div", {
|
|
3073
|
-
className: classNamePrefix + "_product_qty_select_block"
|
|
3074
|
-
}, !active || !_isNull(stock) && stock <= 0 ? React__default.createElement("div", {
|
|
3075
|
-
className: "sold_out"
|
|
3076
|
-
}, "SOLD OUT") : React__default.createElement("div", {
|
|
3077
|
-
className: classNamePrefix + "_product_qty_select"
|
|
3078
|
-
}, React__default.createElement(formik.Field, {
|
|
3079
|
-
name: id,
|
|
3080
|
-
selectOptions: selectOptions,
|
|
3081
|
-
component: NativeSelectField,
|
|
3082
|
-
onChange: function onChange(e) {
|
|
3083
|
-
var value = e.target.value;
|
|
3084
|
-
handleAddonChange(id, value);
|
|
3085
|
-
}
|
|
3086
|
-
})))));
|
|
3087
|
-
};
|
|
3088
|
-
|
|
3089
|
-
var getNormalizedPrice = function getNormalizedPrice(value) {
|
|
3090
|
-
var minimizedValue = Number(value) / 100;
|
|
3091
|
-
var normalized = minimizedValue.toFixed(2);
|
|
3092
|
-
return normalized;
|
|
3093
|
-
};
|
|
3094
|
-
|
|
3095
|
-
var generateSelectOptions = function generateSelectOptions(minCount, maxCount) {
|
|
3096
|
-
if (minCount === void 0) {
|
|
3097
|
-
minCount = 1;
|
|
3147
|
+
var _excluded$3 = ["firstName", "lastName", "holderAge", "confirmEmail", "confirmPassword"];
|
|
3148
|
+
var getInitialValues = function getInitialValues(data, propsInitialValues, userValues, ticketHoldersFields, ticketsQuantity) {
|
|
3149
|
+
var _ticketHoldersFields, _ticketHoldersFields$, _ticketHoldersFields$2;
|
|
3150
|
+
if (data === void 0) {
|
|
3151
|
+
data = [];
|
|
3098
3152
|
}
|
|
3099
|
-
if (
|
|
3100
|
-
|
|
3153
|
+
if (propsInitialValues === void 0) {
|
|
3154
|
+
propsInitialValues = {};
|
|
3101
3155
|
}
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
options.push({
|
|
3105
|
-
label: i,
|
|
3106
|
-
value: i
|
|
3107
|
-
});
|
|
3156
|
+
if (userValues === void 0) {
|
|
3157
|
+
userValues = {};
|
|
3108
3158
|
}
|
|
3109
|
-
|
|
3110
|
-
};
|
|
3111
|
-
var generateStockBasedOnLimitations = function generateStockBasedOnLimitations(addon, ticketQuantity) {
|
|
3112
|
-
// Generate addon available stock count based on limitations
|
|
3113
|
-
var flagLimitToTicketQuantity = addon.flagLimitToTicketQuantity,
|
|
3114
|
-
maxQuantity = addon.maxQuantity,
|
|
3115
|
-
limitPerTicket = addon.limitPerTicket;
|
|
3116
|
-
var allowedStockCount;
|
|
3117
|
-
// Generate stock
|
|
3118
|
-
if (flagLimitToTicketQuantity) {
|
|
3119
|
-
// Limited to ticket quantity case
|
|
3120
|
-
allowedStockCount = ticketQuantity;
|
|
3121
|
-
} else if (maxQuantity && limitPerTicket) {
|
|
3122
|
-
var stockBasedOnLimitPerTicket = limitPerTicket * ticketQuantity;
|
|
3123
|
-
// Both maximum quantity and limited to per ticket selected case, stock is minimum of them
|
|
3124
|
-
allowedStockCount = maxQuantity <= stockBasedOnLimitPerTicket ? maxQuantity : stockBasedOnLimitPerTicket;
|
|
3125
|
-
} else if (maxQuantity && !limitPerTicket) {
|
|
3126
|
-
// Limited to maximum quantity case
|
|
3127
|
-
allowedStockCount = maxQuantity;
|
|
3128
|
-
} else if (!maxQuantity && limitPerTicket) {
|
|
3129
|
-
// Limited to per ticket case
|
|
3130
|
-
allowedStockCount = limitPerTicket * ticketQuantity;
|
|
3159
|
+
if (ticketHoldersFields === void 0) {
|
|
3160
|
+
ticketHoldersFields = {};
|
|
3131
3161
|
}
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3162
|
+
if (ticketsQuantity === void 0) {
|
|
3163
|
+
ticketsQuantity = [];
|
|
3164
|
+
}
|
|
3165
|
+
var results = _flatMapDeep(data, function (_ref) {
|
|
3166
|
+
var fields = _ref.fields;
|
|
3167
|
+
return _map(fields, function (_ref2) {
|
|
3168
|
+
var groupItems = _ref2.groupItems;
|
|
3169
|
+
return _map(groupItems, function (_ref3) {
|
|
3170
|
+
var name = _ref3.name,
|
|
3171
|
+
value = _ref3.value;
|
|
3172
|
+
return {
|
|
3173
|
+
name: name,
|
|
3174
|
+
value: value
|
|
3175
|
+
};
|
|
3176
|
+
});
|
|
3177
|
+
});
|
|
3178
|
+
});
|
|
3179
|
+
// Add Ticket Holder default values for custom fields
|
|
3180
|
+
var ticketHoldersCustomFields = ((_ticketHoldersFields = ticketHoldersFields) == null ? void 0 : (_ticketHoldersFields$ = _ticketHoldersFields.fields) == null ? void 0 : (_ticketHoldersFields$2 = _ticketHoldersFields$.find(function (groupItem) {
|
|
3181
|
+
return groupItem.customFields;
|
|
3182
|
+
})) == null ? void 0 : _ticketHoldersFields$2.groupItems) || [];
|
|
3183
|
+
var ticketHoldersCustomFieldsInitValues = {};
|
|
3184
|
+
var selectedTicketsCount = ticketsQuantity.length || localStorage.getItem('selectedTicketsQuantity') || 0;
|
|
3185
|
+
if (!_isEmpty(ticketHoldersCustomFields)) {
|
|
3186
|
+
for (var _iterator = _createForOfIteratorHelperLoose(ticketHoldersCustomFields), _step; !(_step = _iterator()).done;) {
|
|
3187
|
+
var customField = _step.value;
|
|
3188
|
+
for (var i = 0; i < selectedTicketsCount; i++) {
|
|
3189
|
+
var fieldName = customField.name + "-" + i;
|
|
3190
|
+
var fieldValue = customField.value;
|
|
3191
|
+
ticketHoldersCustomFieldsInitValues[fieldName] = fieldValue;
|
|
3192
|
+
}
|
|
3147
3193
|
}
|
|
3148
3194
|
}
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
var
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
var groupsWithVariants = {};
|
|
3155
|
-
addons.forEach(function (addon) {
|
|
3156
|
-
// Here addon can act either as simple Addon or Addon Group
|
|
3157
|
-
var id = addon.id,
|
|
3158
|
-
simpleAddonStock = addon.stock,
|
|
3159
|
-
variants = addon.variants,
|
|
3160
|
-
active = addon.active,
|
|
3161
|
-
flagLimitToTicketQuantity = addon.flagLimitToTicketQuantity,
|
|
3162
|
-
maxQuantity = addon.maxQuantity,
|
|
3163
|
-
limitPerTicket = addon.limitPerTicket;
|
|
3164
|
-
if (variants) {
|
|
3165
|
-
// Addon Group with inside addon variants case
|
|
3166
|
-
variants.forEach(function (variant) {
|
|
3167
|
-
var variantId = variant.id,
|
|
3168
|
-
variantStock = variant.stock;
|
|
3169
|
-
// null checking is for unlimited stock value
|
|
3170
|
-
if (active && (variantStock > 0 || _isNull(variantStock))) {
|
|
3171
|
-
var _extends3;
|
|
3172
|
-
// Generate Addon Group allowed stock count based on limitations
|
|
3173
|
-
var stockBasedOnLimitation = generateStockBasedOnLimitations(addon, choosedTicketCount);
|
|
3174
|
-
// Detect if group has limitation or not
|
|
3175
|
-
if (flagLimitToTicketQuantity || maxQuantity || limitPerTicket) {
|
|
3176
|
-
// Generate Group with inside variants info
|
|
3177
|
-
if (groupsWithSelectedVariantsInfo[id]) {
|
|
3178
|
-
var _extends2;
|
|
3179
|
-
// Set group limit
|
|
3180
|
-
if (groupsWithSelectedVariantsInfo[id].limit < stockBasedOnLimitation) {
|
|
3181
|
-
groupsWithSelectedVariantsInfo[id].limit = stockBasedOnLimitation;
|
|
3182
|
-
}
|
|
3183
|
-
// Set choosed variants info
|
|
3184
|
-
groupsWithSelectedVariantsInfo[id] = _extends({}, groupsWithSelectedVariantsInfo[id], {
|
|
3185
|
-
choosedVariants: _extends({}, groupsWithSelectedVariantsInfo[id].choosedVariants, (_extends2 = {}, _extends2[variantId] = 0, _extends2))
|
|
3186
|
-
});
|
|
3187
|
-
} else {
|
|
3188
|
-
var _choosedVariants;
|
|
3189
|
-
groupsWithSelectedVariantsInfo[id] = {
|
|
3190
|
-
limit: stockBasedOnLimitation,
|
|
3191
|
-
selectedCount: 0,
|
|
3192
|
-
choosedVariants: (_choosedVariants = {}, _choosedVariants[variantId] = 0, _choosedVariants)
|
|
3193
|
-
};
|
|
3194
|
-
}
|
|
3195
|
-
}
|
|
3196
|
-
// Check stock admissibility with addon stock availability
|
|
3197
|
-
var allowedVariantStockCount = filterStockBasedOnAvailability(stockBasedOnLimitation, variantStock);
|
|
3198
|
-
// Generate options for variant
|
|
3199
|
-
var variantOptions = generateSelectOptions(0, allowedVariantStockCount);
|
|
3200
|
-
addonsWithOptions[variantId] = [].concat(variantOptions);
|
|
3201
|
-
// Generate Group with its variants list
|
|
3202
|
-
groupsWithVariants[id] = _extends({}, groupsWithVariants[id], (_extends3 = {}, _extends3[variantId] = allowedVariantStockCount, _extends3));
|
|
3203
|
-
}
|
|
3204
|
-
});
|
|
3205
|
-
} else {
|
|
3206
|
-
// Simple addon case, null checking is for unlimited stock value
|
|
3207
|
-
if (active && (simpleAddonStock > 0 || _isNull(simpleAddonStock))) {
|
|
3208
|
-
// Generate Addon Group allowed stock count based on limitations
|
|
3209
|
-
var stockBasedOnLimitation = generateStockBasedOnLimitations(addon, choosedTicketCount);
|
|
3210
|
-
// Check stock admissibility with addon stock availability
|
|
3211
|
-
var allowedVariantStockCount = filterStockBasedOnAvailability(stockBasedOnLimitation, simpleAddonStock);
|
|
3212
|
-
var addonOptions = generateSelectOptions(0, allowedVariantStockCount);
|
|
3213
|
-
addonsWithOptions[id] = [].concat(addonOptions);
|
|
3214
|
-
}
|
|
3215
|
-
}
|
|
3195
|
+
var initialValues = {};
|
|
3196
|
+
_forEach(results, function (groupItem) {
|
|
3197
|
+
var name = groupItem.name,
|
|
3198
|
+
value = groupItem.value;
|
|
3199
|
+
initialValues[name] = value || propsInitialValues[name] || userValues[name] || '';
|
|
3216
3200
|
});
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
};
|
|
3201
|
+
// set logged in user as first ticket holder
|
|
3202
|
+
initialValues['holderFirstName-0'] = propsInitialValues.firstName || userValues.firstName || '';
|
|
3203
|
+
initialValues['holderLastName-0'] = propsInitialValues.lastName || userValues.lastName || '';
|
|
3204
|
+
initialValues['holderEmail-0'] = propsInitialValues.email || userValues.email || '';
|
|
3205
|
+
return _extends({}, initialValues, ticketHoldersCustomFieldsInitValues);
|
|
3222
3206
|
};
|
|
3223
|
-
var
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3207
|
+
var createRegisterFormData = function createRegisterFormData(values, checkoutBody, flagFreeTicket) {
|
|
3208
|
+
if (values === void 0) {
|
|
3209
|
+
values = {};
|
|
3210
|
+
}
|
|
3211
|
+
if (flagFreeTicket === void 0) {
|
|
3212
|
+
flagFreeTicket = false;
|
|
3213
|
+
}
|
|
3214
|
+
var bodyFormData = new FormData();
|
|
3215
|
+
bodyFormData.append('first_name', values.firstName);
|
|
3216
|
+
bodyFormData.append('last_name', values.lastName);
|
|
3217
|
+
bodyFormData.append('email', values.email);
|
|
3218
|
+
bodyFormData.append('password', values.password);
|
|
3219
|
+
bodyFormData.append('password_confirmation', values.confirmPassword);
|
|
3220
|
+
bodyFormData.append('client_id', CONFIGS.CLIENT_ID || 'e9d8f8922797b4621e562255afe90dbf');
|
|
3221
|
+
bodyFormData.append('client_secret', CONFIGS.CLIENT_SECRET || 'b89c191eff22fdcf84ac9bfd88d005355a151ec2c83b26b9');
|
|
3222
|
+
bodyFormData.append('check_cart_expiration', 'true');
|
|
3223
|
+
_forEach(checkoutBody.attributes, function (item, key) {
|
|
3224
|
+
if (!(flagFreeTicket && ['country', 'state', 'city', 'street_address'].includes(key))) {
|
|
3225
|
+
bodyFormData.append(key, item);
|
|
3226
|
+
}
|
|
3227
3227
|
});
|
|
3228
|
-
return
|
|
3228
|
+
return bodyFormData;
|
|
3229
3229
|
};
|
|
3230
|
-
var
|
|
3231
|
-
if (
|
|
3232
|
-
|
|
3230
|
+
var createCheckoutDataBody = function createCheckoutDataBody(ticketsQuantity, values, logedInValues, includeDob) {
|
|
3231
|
+
if (values === void 0) {
|
|
3232
|
+
values = {};
|
|
3233
3233
|
}
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3234
|
+
if (logedInValues === void 0) {
|
|
3235
|
+
logedInValues = {};
|
|
3236
|
+
}
|
|
3237
|
+
if (includeDob === void 0) {
|
|
3238
|
+
includeDob = false;
|
|
3239
|
+
}
|
|
3240
|
+
var _values = values,
|
|
3241
|
+
firstName = _values.firstName,
|
|
3242
|
+
lastName = _values.lastName,
|
|
3243
|
+
holderAge = _values.holderAge,
|
|
3244
|
+
restValues = _objectWithoutPropertiesLoose(_values, _excluded$3);
|
|
3245
|
+
var holders = [];
|
|
3246
|
+
var ticket_holders = [];
|
|
3247
|
+
var _loop = function _loop(i) {
|
|
3248
|
+
var individualHolder = Object.fromEntries(Object.entries(values).filter(function (_ref4) {
|
|
3249
|
+
var key = _ref4[0];
|
|
3250
|
+
return key.includes(String(i));
|
|
3251
|
+
}));
|
|
3252
|
+
holders.push(individualHolder);
|
|
3253
|
+
};
|
|
3254
|
+
for (var i = 0; i <= ticketsQuantity; i++) {
|
|
3255
|
+
_loop(i);
|
|
3256
|
+
}
|
|
3257
|
+
var filteredHolders = holders.filter(function (holder) {
|
|
3258
|
+
return Object.entries(holder).length > 0;
|
|
3259
|
+
});
|
|
3260
|
+
ticket_holders = filteredHolders.map(function (item, index) {
|
|
3261
|
+
return {
|
|
3262
|
+
first_name: !index ? item["holderFirstName-" + index] || logedInValues.firstNameLogged || '' : item["holderFirstName-" + index] || '',
|
|
3263
|
+
last_name: !index ? item["holderLastName-" + index] || logedInValues.lastNameLogged || '' : item["holderLastName-" + index] || '',
|
|
3264
|
+
phone: item["holderPhone-" + index] || '',
|
|
3265
|
+
email: !index ? item["holderEmail-" + index] || logedInValues.emailLogged || '' : item["holderEmail-" + index] || ''
|
|
3266
|
+
};
|
|
3267
|
+
});
|
|
3268
|
+
var filteredRestValue = {};
|
|
3269
|
+
_forEach(restValues, function (value, key) {
|
|
3270
|
+
if (!key.includes('holder')) {
|
|
3271
|
+
filteredRestValue[key] = value;
|
|
3250
3272
|
}
|
|
3251
3273
|
});
|
|
3252
|
-
var
|
|
3253
|
-
|
|
3274
|
+
var body = {
|
|
3275
|
+
attributes: _extends({}, filteredRestValue, {
|
|
3276
|
+
email: restValues.email || logedInValues.emailLogged,
|
|
3277
|
+
confirm_email: restValues.email || logedInValues.emailLogged,
|
|
3278
|
+
first_name: firstName || logedInValues.firstNameLogged,
|
|
3279
|
+
last_name: lastName || logedInValues.lastNameLogged,
|
|
3280
|
+
ticket_holders: ticket_holders
|
|
3281
|
+
})
|
|
3282
|
+
};
|
|
3283
|
+
if (includeDob) {
|
|
3284
|
+
var holderAgeDate = new Date(holderAge);
|
|
3285
|
+
body.attributes.dob_day = holderAgeDate.getDate();
|
|
3286
|
+
body.attributes.dob_month = holderAgeDate.getMonth() + 1;
|
|
3287
|
+
body.attributes.dob_year = holderAgeDate.getFullYear();
|
|
3288
|
+
}
|
|
3289
|
+
return body;
|
|
3290
|
+
};
|
|
3291
|
+
var getValidateFunctions = function getValidateFunctions(element, states, values, errors) {
|
|
3292
|
+
var validationFunctions = [];
|
|
3293
|
+
if (element.required) {
|
|
3294
|
+
if (element.name !== 'state' || element.name === 'state' && states.length) {
|
|
3295
|
+
validationFunctions.push(requiredValidator);
|
|
3296
|
+
}
|
|
3297
|
+
}
|
|
3298
|
+
if (element.onValidate) {
|
|
3299
|
+
validationFunctions.push(element.onValidate);
|
|
3300
|
+
}
|
|
3301
|
+
if (element.name === 'phone') {
|
|
3302
|
+
var invalidPhone = function invalidPhone() {
|
|
3303
|
+
return errors.phone === 'Invalid phone number' ? 'Invalid phone number' : null;
|
|
3304
|
+
};
|
|
3305
|
+
validationFunctions.push(invalidPhone);
|
|
3306
|
+
}
|
|
3307
|
+
if (element.name === 'confirmEmail') {
|
|
3308
|
+
var isSameEmail = function isSameEmail(confirmEmail) {
|
|
3309
|
+
return values.email !== confirmEmail ? 'Please confirm your email address correctly' : null;
|
|
3310
|
+
};
|
|
3311
|
+
validationFunctions.push(isSameEmail);
|
|
3312
|
+
}
|
|
3313
|
+
if (element.name === 'confirmPassword') {
|
|
3314
|
+
var isSame = function isSame(confirmPassword) {
|
|
3315
|
+
return values.password !== confirmPassword ? 'Password confirmation does not match' : null;
|
|
3316
|
+
};
|
|
3317
|
+
validationFunctions.push(isSame);
|
|
3318
|
+
}
|
|
3319
|
+
return combineValidators.apply(void 0, validationFunctions);
|
|
3320
|
+
};
|
|
3321
|
+
var assingUniqueIds = function assingUniqueIds(data) {
|
|
3322
|
+
if (_get(data[0], 'uniqueId')) {
|
|
3323
|
+
return data;
|
|
3324
|
+
}
|
|
3325
|
+
return _map(data, function (item) {
|
|
3326
|
+
_forEach(item, function (itemValue, key) {
|
|
3327
|
+
if (_isArray(itemValue) && !itemValue.some(function (item) {
|
|
3328
|
+
return typeof item === 'string';
|
|
3329
|
+
})) {
|
|
3330
|
+
item[key] = assingUniqueIds(itemValue);
|
|
3331
|
+
}
|
|
3332
|
+
});
|
|
3333
|
+
return _extends({}, item, {
|
|
3334
|
+
uniqueId: nanoid.nanoid()
|
|
3335
|
+
});
|
|
3254
3336
|
});
|
|
3255
|
-
|
|
3256
|
-
|
|
3337
|
+
};
|
|
3338
|
+
var isRequiredField = function isRequiredField(element, configs) {
|
|
3339
|
+
var name = element.name,
|
|
3340
|
+
required = element.required;
|
|
3341
|
+
var flagRequirePhone = _get(configs, 'phone_required', false);
|
|
3342
|
+
var collectMandatoryWalletAddress = _get(configs, 'collect_mandatory_wallet_address', false);
|
|
3343
|
+
if (required || name === 'phone' && flagRequirePhone || name === 'data_capture[wallet_address]' && !collectMandatoryWalletAddress) {
|
|
3344
|
+
return true;
|
|
3257
3345
|
}
|
|
3258
|
-
return
|
|
3346
|
+
return false;
|
|
3259
3347
|
};
|
|
3260
|
-
var
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
return !_isEmpty(selectedAddons);
|
|
3348
|
+
var getFieldLabel = function getFieldLabel(element, configs) {
|
|
3349
|
+
if (isRequiredField(element, configs) || React__default.isValidElement(element.label)) {
|
|
3350
|
+
return element.label;
|
|
3351
|
+
}
|
|
3352
|
+
return element.label + " (optional)";
|
|
3266
3353
|
};
|
|
3267
|
-
|
|
3268
|
-
var
|
|
3269
|
-
var
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3354
|
+
var getFieldComponent = function getFieldComponent(element) {
|
|
3355
|
+
var type = _get(element, 'type', 'text');
|
|
3356
|
+
var fieldComponentConfigs = {
|
|
3357
|
+
checkbox: CheckboxField,
|
|
3358
|
+
select: CustomField,
|
|
3359
|
+
select_multi: SelectField,
|
|
3360
|
+
phone: PhoneNumberField,
|
|
3361
|
+
date: DatePickerField,
|
|
3362
|
+
radio: RadioGroupField,
|
|
3363
|
+
text: CustomField
|
|
3364
|
+
};
|
|
3365
|
+
var fieldComponent = _get(fieldComponentConfigs, type, CustomField);
|
|
3366
|
+
return fieldComponent;
|
|
3367
|
+
};
|
|
3368
|
+
|
|
3369
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3370
|
+
var AddonComponent = function AddonComponent(_ref) {
|
|
3371
|
+
var _ref$classNamePrefix = _ref.classNamePrefix,
|
|
3372
|
+
classNamePrefix = _ref$classNamePrefix === void 0 ? '' : _ref$classNamePrefix,
|
|
3373
|
+
data = _ref.data,
|
|
3374
|
+
selectOptions = _ref.selectOptions,
|
|
3375
|
+
_ref$handleAddonChang = _ref.handleAddonChange,
|
|
3376
|
+
handleAddonChange = _ref$handleAddonChang === void 0 ? _identity : _ref$handleAddonChang,
|
|
3377
|
+
addOnDataWithCustomFields = _ref.addOnDataWithCustomFields,
|
|
3378
|
+
configs = _ref.configs,
|
|
3379
|
+
values = _ref.values,
|
|
3380
|
+
errors = _ref.errors;
|
|
3381
|
+
var id = data.id,
|
|
3382
|
+
name = data.name,
|
|
3383
|
+
active = data.active,
|
|
3384
|
+
stock = data.stock;
|
|
3385
|
+
return React__default.createElement("div", {
|
|
3386
|
+
key: id,
|
|
3387
|
+
className: classNamePrefix + "_product_select_container"
|
|
3388
|
+
}, React__default.createElement("div", {
|
|
3389
|
+
className: classNamePrefix + "_product_select_block",
|
|
3390
|
+
key: name
|
|
3391
|
+
}, React__default.createElement("div", {
|
|
3392
|
+
className: classNamePrefix + "_product_size"
|
|
3393
|
+
}, name), React__default.createElement("div", {
|
|
3394
|
+
className: classNamePrefix + "_product_qty_select_block"
|
|
3395
|
+
}, !active || !_isNull(stock) && stock <= 0 ? React__default.createElement("div", {
|
|
3396
|
+
className: "sold_out"
|
|
3397
|
+
}, "SOLD OUT") : React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
|
|
3398
|
+
className: classNamePrefix + "_product_qty_select"
|
|
3399
|
+
}, React__default.createElement(formik.Field, {
|
|
3400
|
+
name: id,
|
|
3401
|
+
selectOptions: selectOptions,
|
|
3402
|
+
component: NativeSelectField,
|
|
3403
|
+
onChange: function onChange(e) {
|
|
3404
|
+
var value = e.target.value;
|
|
3405
|
+
handleAddonChange(id, value);
|
|
3406
|
+
}
|
|
3407
|
+
})), !_isEmpty(addOnDataWithCustomFields == null ? void 0 : addOnDataWithCustomFields.fields) && React__default.createElement("div", {
|
|
3408
|
+
className: "ticket-holders-fields"
|
|
3409
|
+
}, React__default.createElement("h2", null, addOnDataWithCustomFields.label), _map(addOnDataWithCustomFields.fields, function (group) {
|
|
3410
|
+
var id = group.id,
|
|
3411
|
+
groupClassname = group.groupClassname,
|
|
3412
|
+
groupItems = group.groupItems;
|
|
3413
|
+
return React__default.createElement("div", {
|
|
3414
|
+
key: id
|
|
3415
|
+
}, React__default.createElement("div", {
|
|
3416
|
+
className: groupClassname
|
|
3417
|
+
}, _map(groupItems, function (element) {
|
|
3418
|
+
return React__default.createElement("div", {
|
|
3419
|
+
className: element.className,
|
|
3420
|
+
key: element.name
|
|
3421
|
+
}, React__default.createElement(formik.Field, Object.assign({}, element, {
|
|
3422
|
+
type: element.type === 'radio' || element.type === 'checkbox' ? undefined : element.type,
|
|
3423
|
+
name: "" + element.name,
|
|
3424
|
+
label: getFieldLabel(element, configs),
|
|
3425
|
+
component: getFieldComponent(element),
|
|
3426
|
+
validate: getValidateFunctions(element, [], values, errors)
|
|
3427
|
+
})));
|
|
3428
|
+
})));
|
|
3429
|
+
}))))));
|
|
3430
|
+
};
|
|
3431
|
+
|
|
3432
|
+
var getNormalizedPrice = function getNormalizedPrice(value) {
|
|
3433
|
+
var minimizedValue = Number(value) / 100;
|
|
3434
|
+
var normalized = minimizedValue.toFixed(2);
|
|
3435
|
+
return normalized;
|
|
3436
|
+
};
|
|
3437
|
+
|
|
3438
|
+
var generateSelectOptions = function generateSelectOptions(minCount, maxCount) {
|
|
3439
|
+
if (minCount === void 0) {
|
|
3440
|
+
minCount = 1;
|
|
3441
|
+
}
|
|
3442
|
+
if (maxCount === void 0) {
|
|
3443
|
+
maxCount = 10;
|
|
3444
|
+
}
|
|
3445
|
+
var options = [];
|
|
3446
|
+
for (var i = minCount; i <= maxCount; i++) {
|
|
3447
|
+
options.push({
|
|
3448
|
+
label: i,
|
|
3449
|
+
value: i
|
|
3450
|
+
});
|
|
3451
|
+
}
|
|
3452
|
+
return options;
|
|
3453
|
+
};
|
|
3454
|
+
var generateStockBasedOnLimitations = function generateStockBasedOnLimitations(addon, ticketQuantity) {
|
|
3455
|
+
// Generate addon available stock count based on limitations
|
|
3456
|
+
var flagLimitToTicketQuantity = addon.flagLimitToTicketQuantity,
|
|
3457
|
+
maxQuantity = addon.maxQuantity,
|
|
3458
|
+
limitPerTicket = addon.limitPerTicket;
|
|
3459
|
+
var allowedStockCount;
|
|
3460
|
+
// Generate stock
|
|
3461
|
+
if (flagLimitToTicketQuantity) {
|
|
3462
|
+
// Limited to ticket quantity case
|
|
3463
|
+
allowedStockCount = ticketQuantity;
|
|
3464
|
+
} else if (maxQuantity && limitPerTicket) {
|
|
3465
|
+
var stockBasedOnLimitPerTicket = limitPerTicket * ticketQuantity;
|
|
3466
|
+
// Both maximum quantity and limited to per ticket selected case, stock is minimum of them
|
|
3467
|
+
allowedStockCount = maxQuantity <= stockBasedOnLimitPerTicket ? maxQuantity : stockBasedOnLimitPerTicket;
|
|
3468
|
+
} else if (maxQuantity && !limitPerTicket) {
|
|
3469
|
+
// Limited to maximum quantity case
|
|
3470
|
+
allowedStockCount = maxQuantity;
|
|
3471
|
+
} else if (!maxQuantity && limitPerTicket) {
|
|
3472
|
+
// Limited to per ticket case
|
|
3473
|
+
allowedStockCount = limitPerTicket * ticketQuantity;
|
|
3474
|
+
}
|
|
3475
|
+
return Number(allowedStockCount);
|
|
3476
|
+
};
|
|
3477
|
+
var filterStockBasedOnAvailability = function filterStockBasedOnAvailability(generatedStock, availableStock) {
|
|
3478
|
+
// Check generated stock count admissibility with addon stock availability
|
|
3479
|
+
var filteredStockCount = generatedStock;
|
|
3480
|
+
if (generatedStock) {
|
|
3481
|
+
if (generatedStock > availableStock && !_isNull(availableStock)) {
|
|
3482
|
+
filteredStockCount = availableStock;
|
|
3483
|
+
}
|
|
3484
|
+
} else {
|
|
3485
|
+
// Not set any restriction
|
|
3486
|
+
// Here 10 value is business logic
|
|
3487
|
+
filteredStockCount = 10;
|
|
3488
|
+
if (!_isNull(availableStock) && availableStock < filteredStockCount) {
|
|
3489
|
+
filteredStockCount = availableStock;
|
|
3490
|
+
}
|
|
3491
|
+
}
|
|
3492
|
+
return filteredStockCount;
|
|
3493
|
+
};
|
|
3494
|
+
var getAddonSelectOptions = function getAddonSelectOptions(addons, choosedTicketCount) {
|
|
3495
|
+
var addonsWithOptions = {};
|
|
3496
|
+
var groupsWithSelectedVariantsInfo = {};
|
|
3497
|
+
var groupsWithVariants = {};
|
|
3498
|
+
addons.forEach(function (addon) {
|
|
3499
|
+
// Here addon can act either as simple Addon or Addon Group
|
|
3500
|
+
var id = addon.id,
|
|
3501
|
+
simpleAddonStock = addon.stock,
|
|
3502
|
+
variants = addon.variants,
|
|
3503
|
+
active = addon.active,
|
|
3504
|
+
flagLimitToTicketQuantity = addon.flagLimitToTicketQuantity,
|
|
3505
|
+
maxQuantity = addon.maxQuantity,
|
|
3506
|
+
limitPerTicket = addon.limitPerTicket;
|
|
3507
|
+
if (variants) {
|
|
3508
|
+
// Addon Group with inside addon variants case
|
|
3509
|
+
variants.forEach(function (variant) {
|
|
3510
|
+
var variantId = variant.id,
|
|
3511
|
+
variantStock = variant.stock;
|
|
3512
|
+
// null checking is for unlimited stock value
|
|
3513
|
+
if (active && (variantStock > 0 || _isNull(variantStock))) {
|
|
3514
|
+
var _extends3;
|
|
3515
|
+
// Generate Addon Group allowed stock count based on limitations
|
|
3516
|
+
var stockBasedOnLimitation = generateStockBasedOnLimitations(addon, choosedTicketCount);
|
|
3517
|
+
// Detect if group has limitation or not
|
|
3518
|
+
if (flagLimitToTicketQuantity || maxQuantity || limitPerTicket) {
|
|
3519
|
+
// Generate Group with inside variants info
|
|
3520
|
+
if (groupsWithSelectedVariantsInfo[id]) {
|
|
3521
|
+
var _extends2;
|
|
3522
|
+
// Set group limit
|
|
3523
|
+
if (groupsWithSelectedVariantsInfo[id].limit < stockBasedOnLimitation) {
|
|
3524
|
+
groupsWithSelectedVariantsInfo[id].limit = stockBasedOnLimitation;
|
|
3525
|
+
}
|
|
3526
|
+
// Set choosed variants info
|
|
3527
|
+
groupsWithSelectedVariantsInfo[id] = _extends({}, groupsWithSelectedVariantsInfo[id], {
|
|
3528
|
+
choosedVariants: _extends({}, groupsWithSelectedVariantsInfo[id].choosedVariants, (_extends2 = {}, _extends2[variantId] = 0, _extends2))
|
|
3529
|
+
});
|
|
3530
|
+
} else {
|
|
3531
|
+
var _choosedVariants;
|
|
3532
|
+
groupsWithSelectedVariantsInfo[id] = {
|
|
3533
|
+
limit: stockBasedOnLimitation,
|
|
3534
|
+
selectedCount: 0,
|
|
3535
|
+
choosedVariants: (_choosedVariants = {}, _choosedVariants[variantId] = 0, _choosedVariants)
|
|
3536
|
+
};
|
|
3537
|
+
}
|
|
3538
|
+
}
|
|
3539
|
+
// Check stock admissibility with addon stock availability
|
|
3540
|
+
var allowedVariantStockCount = filterStockBasedOnAvailability(stockBasedOnLimitation, variantStock);
|
|
3541
|
+
// Generate options for variant
|
|
3542
|
+
var variantOptions = generateSelectOptions(0, allowedVariantStockCount);
|
|
3543
|
+
addonsWithOptions[variantId] = [].concat(variantOptions);
|
|
3544
|
+
// Generate Group with its variants list
|
|
3545
|
+
groupsWithVariants[id] = _extends({}, groupsWithVariants[id], (_extends3 = {}, _extends3[variantId] = allowedVariantStockCount, _extends3));
|
|
3546
|
+
}
|
|
3547
|
+
});
|
|
3548
|
+
} else {
|
|
3549
|
+
// Simple addon case, null checking is for unlimited stock value
|
|
3550
|
+
if (active && (simpleAddonStock > 0 || _isNull(simpleAddonStock))) {
|
|
3551
|
+
// Generate Addon Group allowed stock count based on limitations
|
|
3552
|
+
var stockBasedOnLimitation = generateStockBasedOnLimitations(addon, choosedTicketCount);
|
|
3553
|
+
// Check stock admissibility with addon stock availability
|
|
3554
|
+
var allowedVariantStockCount = filterStockBasedOnAvailability(stockBasedOnLimitation, simpleAddonStock);
|
|
3555
|
+
var addonOptions = generateSelectOptions(0, allowedVariantStockCount);
|
|
3556
|
+
addonsWithOptions[id] = [].concat(addonOptions);
|
|
3557
|
+
}
|
|
3558
|
+
}
|
|
3559
|
+
});
|
|
3560
|
+
return {
|
|
3561
|
+
addonsWithOptions: addonsWithOptions,
|
|
3562
|
+
groupsWithSelectedVariantsInfo: groupsWithSelectedVariantsInfo,
|
|
3563
|
+
groupsWithVariants: groupsWithVariants
|
|
3564
|
+
};
|
|
3565
|
+
};
|
|
3566
|
+
var getTicketRelatedAddons = function getTicketRelatedAddons(addons, ticketId) {
|
|
3567
|
+
// Filter addons based on choosed ticket
|
|
3568
|
+
var filteredAddons = addons.filter(function (addon) {
|
|
3569
|
+
return _isNull(addon.prerequisiteTicketTypeIds) || addon.prerequisiteTicketTypeIds.includes(ticketId);
|
|
3570
|
+
});
|
|
3571
|
+
return filteredAddons;
|
|
3572
|
+
};
|
|
3573
|
+
var getSortedAddons = function getSortedAddons(addons, sortDirection) {
|
|
3574
|
+
if (sortDirection === void 0) {
|
|
3575
|
+
sortDirection = 'asc';
|
|
3576
|
+
}
|
|
3577
|
+
var addonsCopy = [].concat(addons);
|
|
3578
|
+
addonsCopy.forEach(function (addon) {
|
|
3579
|
+
if (addon.variants) {
|
|
3580
|
+
var unsortedVariants = [];
|
|
3581
|
+
addon.variants.forEach(function (variant) {
|
|
3582
|
+
unsortedVariants.push(_extends({}, variant, {
|
|
3583
|
+
sortOrder: Number(variant.sortOrder)
|
|
3584
|
+
}));
|
|
3585
|
+
});
|
|
3586
|
+
addon.sortOrder = Number(addon.variants[0].sortOrder);
|
|
3587
|
+
var sortedVariants = _sortBy(unsortedVariants, function (variant) {
|
|
3588
|
+
return variant.sortOrder;
|
|
3589
|
+
});
|
|
3590
|
+
addon.variants = sortedVariants;
|
|
3591
|
+
} else {
|
|
3592
|
+
addon.sortOrder = Number(addon.sortOrder);
|
|
3593
|
+
}
|
|
3594
|
+
});
|
|
3595
|
+
var sortedAddons = _sortBy(addonsCopy, function (addon) {
|
|
3596
|
+
return addon.sortOrder;
|
|
3597
|
+
});
|
|
3598
|
+
if (sortDirection === 'desc') {
|
|
3599
|
+
return _reverse(sortedAddons);
|
|
3600
|
+
}
|
|
3601
|
+
return sortedAddons;
|
|
3602
|
+
};
|
|
3603
|
+
var isAtLeastOneAddonSelected = function isAtLeastOneAddonSelected(value) {
|
|
3604
|
+
var selectedAddons = Object.fromEntries(Object.entries(value).filter(function (_ref) {
|
|
3605
|
+
var count = _ref[1];
|
|
3606
|
+
return Number(count) !== 0;
|
|
3607
|
+
}));
|
|
3608
|
+
return !_isEmpty(selectedAddons);
|
|
3609
|
+
};
|
|
3610
|
+
|
|
3611
|
+
var AddonsContainter = function AddonsContainter(_ref) {
|
|
3612
|
+
var _ref$classNamePrefix = _ref.classNamePrefix,
|
|
3613
|
+
classNamePrefix = _ref$classNamePrefix === void 0 ? 'add_on' : _ref$classNamePrefix,
|
|
3614
|
+
_ref$enableBillingInf = _ref.enableBillingInfoAutoCreate,
|
|
3615
|
+
enableBillingInfoAutoCreate = _ref$enableBillingInf === void 0 ? true : _ref$enableBillingInf,
|
|
3616
|
+
_ref$enableTimer = _ref.enableTimer,
|
|
3617
|
+
enableTimer = _ref$enableTimer === void 0 ? false : _ref$enableTimer,
|
|
3618
|
+
_ref$onGetAddonsPageI = _ref.onGetAddonsPageInfoSuccess,
|
|
3619
|
+
onGetAddonsPageInfoSuccess = _ref$onGetAddonsPageI === void 0 ? _identity : _ref$onGetAddonsPageI,
|
|
3277
3620
|
_ref$onGetAddonsPageI2 = _ref.onGetAddonsPageInfoError,
|
|
3278
3621
|
onGetAddonsPageInfoError = _ref$onGetAddonsPageI2 === void 0 ? _identity : _ref$onGetAddonsPageI2,
|
|
3279
3622
|
_ref$onPostCheckoutSu = _ref.onPostCheckoutSuccess,
|
|
@@ -3290,7 +3633,9 @@ var AddonsContainter = function AddonsContainter(_ref) {
|
|
|
3290
3633
|
onPendingVerification = _ref$onPendingVerific === void 0 ? _identity : _ref$onPendingVerific,
|
|
3291
3634
|
samePage = _ref.samePage,
|
|
3292
3635
|
_ref$descriptionTrigg = _ref.descriptionTrigger,
|
|
3293
|
-
descriptionTrigger = _ref$descriptionTrigg === void 0 ? 'click' : _ref$descriptionTrigg
|
|
3636
|
+
descriptionTrigger = _ref$descriptionTrigg === void 0 ? 'click' : _ref$descriptionTrigg,
|
|
3637
|
+
addOnDataWithCustomFields = _ref.addOnDataWithCustomFields,
|
|
3638
|
+
configs = _ref.configs;
|
|
3294
3639
|
var eventId = getQueryVariable('event_id');
|
|
3295
3640
|
var _useState = React.useState([]),
|
|
3296
3641
|
addons = _useState[0],
|
|
@@ -3563,7 +3908,8 @@ var AddonsContainter = function AddonsContainter(_ref) {
|
|
|
3563
3908
|
}
|
|
3564
3909
|
} : undefined
|
|
3565
3910
|
}, function (_ref4) {
|
|
3566
|
-
var values = _ref4.values
|
|
3911
|
+
var values = _ref4.values,
|
|
3912
|
+
errors = _ref4.errors;
|
|
3567
3913
|
var isConfirmDisabled = !isAtLeastOneAddonSelected(values);
|
|
3568
3914
|
return React__default.createElement(formik.Form, {
|
|
3569
3915
|
autoComplete: "off",
|
|
@@ -3633,7 +3979,11 @@ var AddonsContainter = function AddonsContainter(_ref) {
|
|
|
3633
3979
|
classNamePrefix: classNamePrefix,
|
|
3634
3980
|
handleAddonChange: function handleAddonChange(id, value) {
|
|
3635
3981
|
return onFieldChange(id, value, addon);
|
|
3636
|
-
}
|
|
3982
|
+
},
|
|
3983
|
+
addOnDataWithCustomFields: addOnDataWithCustomFields,
|
|
3984
|
+
configs: configs,
|
|
3985
|
+
values: values,
|
|
3986
|
+
errors: errors
|
|
3637
3987
|
})
|
|
3638
3988
|
);
|
|
3639
3989
|
}) :
|
|
@@ -3645,7 +3995,11 @@ var AddonsContainter = function AddonsContainter(_ref) {
|
|
|
3645
3995
|
classNamePrefix: classNamePrefix,
|
|
3646
3996
|
handleAddonChange: function handleAddonChange(id, value) {
|
|
3647
3997
|
return onFieldChange(id, value, addon);
|
|
3648
|
-
}
|
|
3998
|
+
},
|
|
3999
|
+
addOnDataWithCustomFields: addOnDataWithCustomFields,
|
|
4000
|
+
configs: configs,
|
|
4001
|
+
values: values,
|
|
4002
|
+
errors: errors
|
|
3649
4003
|
})));
|
|
3650
4004
|
}), samePage ? null : React__default.createElement("button", {
|
|
3651
4005
|
type: "submit",
|
|
@@ -3822,44 +4176,6 @@ var ForgotPasswordModal = function ForgotPasswordModal(_ref) {
|
|
|
3822
4176
|
}))));
|
|
3823
4177
|
};
|
|
3824
4178
|
|
|
3825
|
-
var emailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
3826
|
-
var combineValidators = function combineValidators() {
|
|
3827
|
-
for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
3828
|
-
validators[_key] = arguments[_key];
|
|
3829
|
-
}
|
|
3830
|
-
return function () {
|
|
3831
|
-
for (var i = 0; i < validators.length; ++i) {
|
|
3832
|
-
var error_message = validators[i].apply(validators, arguments);
|
|
3833
|
-
if (error_message) return error_message;
|
|
3834
|
-
}
|
|
3835
|
-
};
|
|
3836
|
-
};
|
|
3837
|
-
function isFalsy(item) {
|
|
3838
|
-
try {
|
|
3839
|
-
if (!item ||
|
|
3840
|
-
// handles most, like false, 0, null, etc
|
|
3841
|
-
typeof item === 'object' && Object.keys(item).length === 0 &&
|
|
3842
|
-
// for empty objects, like {}, []
|
|
3843
|
-
!(typeof item.addEventListener === 'function') // omit webpage elements
|
|
3844
|
-
) {
|
|
3845
|
-
return true;
|
|
3846
|
-
}
|
|
3847
|
-
} catch (err) {
|
|
3848
|
-
return true;
|
|
3849
|
-
}
|
|
3850
|
-
return false;
|
|
3851
|
-
}
|
|
3852
|
-
var requiredValidator = function requiredValidator(value, message) {
|
|
3853
|
-
var errorMessage = '';
|
|
3854
|
-
if (isFalsy(typeof value === 'string' ? value.trim() : value)) {
|
|
3855
|
-
errorMessage = message || 'Required';
|
|
3856
|
-
}
|
|
3857
|
-
return errorMessage;
|
|
3858
|
-
};
|
|
3859
|
-
var emailValidator = function emailValidator(email) {
|
|
3860
|
-
return !emailRegex.test(email) ? 'Please enter a valid email address' : '';
|
|
3861
|
-
};
|
|
3862
|
-
|
|
3863
4179
|
var style$2 = {
|
|
3864
4180
|
position: 'absolute',
|
|
3865
4181
|
top: '50%',
|
|
@@ -4100,324 +4416,102 @@ var SignupModal = function SignupModal(_ref) {
|
|
|
4100
4416
|
_context.prev = 17;
|
|
4101
4417
|
_context.t0 = _context["catch"](0);
|
|
4102
4418
|
if (axios.isAxiosError(_context.t0)) {
|
|
4103
|
-
onRegisterError(_context.t0, values.email);
|
|
4104
|
-
}
|
|
4105
|
-
case 20:
|
|
4106
|
-
_context.prev = 20;
|
|
4107
|
-
setLoading(false);
|
|
4108
|
-
return _context.finish(20);
|
|
4109
|
-
case 23:
|
|
4110
|
-
case "end":
|
|
4111
|
-
return _context.stop();
|
|
4112
|
-
}
|
|
4113
|
-
}, _callee, null, [[0, 17, 20, 23]]);
|
|
4114
|
-
}));
|
|
4115
|
-
return function onSignup(_x) {
|
|
4116
|
-
return _ref2.apply(this, arguments);
|
|
4117
|
-
};
|
|
4118
|
-
}();
|
|
4119
|
-
var _onClose = loading ? function () {} : onClose;
|
|
4120
|
-
return React__default.createElement(material.Modal, {
|
|
4121
|
-
open: true,
|
|
4122
|
-
onClose: _onClose,
|
|
4123
|
-
"aria-labelledby": "modal-modal-title",
|
|
4124
|
-
"aria-describedby": "modal-modal-description",
|
|
4125
|
-
className: "signup-modal"
|
|
4126
|
-
}, React__default.createElement(material.Box, {
|
|
4127
|
-
style: style$3
|
|
4128
|
-
}, React__default.createElement("div", null, React__default.createElement(formik.Formik, {
|
|
4129
|
-
initialValues: {
|
|
4130
|
-
firstName: '',
|
|
4131
|
-
lastName: '',
|
|
4132
|
-
email: '',
|
|
4133
|
-
password: '',
|
|
4134
|
-
confirmPassword: ''
|
|
4135
|
-
},
|
|
4136
|
-
validationSchema: SignupSchema,
|
|
4137
|
-
onSubmit: onSignup
|
|
4138
|
-
}, function (_ref3) {
|
|
4139
|
-
var isValid = _ref3.isValid,
|
|
4140
|
-
dirty = _ref3.dirty,
|
|
4141
|
-
handleSubmit = _ref3.handleSubmit;
|
|
4142
|
-
return React__default.createElement(formik.Form, {
|
|
4143
|
-
onSubmit: handleSubmit
|
|
4144
|
-
}, React__default.createElement("div", {
|
|
4145
|
-
className: "signup-container"
|
|
4146
|
-
}, React__default.createElement("div", {
|
|
4147
|
-
className: "title"
|
|
4148
|
-
}, "Create an Account"), React__default.createElement("div", {
|
|
4149
|
-
className: "signup-container__twoFields"
|
|
4150
|
-
}, React__default.createElement("div", {
|
|
4151
|
-
className: "is-half"
|
|
4152
|
-
}, React__default.createElement(formik.Field, {
|
|
4153
|
-
name: "firstName",
|
|
4154
|
-
label: "First Name",
|
|
4155
|
-
component: CustomField
|
|
4156
|
-
})), React__default.createElement("div", {
|
|
4157
|
-
className: "is-half"
|
|
4158
|
-
}, React__default.createElement(formik.Field, {
|
|
4159
|
-
name: "lastName",
|
|
4160
|
-
label: "Last Name",
|
|
4161
|
-
component: CustomField
|
|
4162
|
-
}))), React__default.createElement("div", {
|
|
4163
|
-
className: "signup-container__singleField"
|
|
4164
|
-
}, React__default.createElement("div", {
|
|
4165
|
-
className: ""
|
|
4166
|
-
}, React__default.createElement(formik.Field, {
|
|
4167
|
-
name: "email",
|
|
4168
|
-
label: "Email",
|
|
4169
|
-
component: CustomField
|
|
4170
|
-
}))), React__default.createElement("div", {
|
|
4171
|
-
className: "signup-container__twoFields"
|
|
4172
|
-
}, React__default.createElement("div", {
|
|
4173
|
-
className: "is-half"
|
|
4174
|
-
}, React__default.createElement(formik.Field, {
|
|
4175
|
-
name: "password",
|
|
4176
|
-
label: "Password",
|
|
4177
|
-
type: "password",
|
|
4178
|
-
component: CustomField
|
|
4179
|
-
})), React__default.createElement("div", {
|
|
4180
|
-
className: "is-half"
|
|
4181
|
-
}, React__default.createElement(formik.Field, {
|
|
4182
|
-
name: "confirmPassword",
|
|
4183
|
-
label: "Confirm Password",
|
|
4184
|
-
type: "password",
|
|
4185
|
-
component: CustomField
|
|
4186
|
-
})))), React__default.createElement("div", {
|
|
4187
|
-
className: "signup-action-button"
|
|
4188
|
-
}, React__default.createElement("button", {
|
|
4189
|
-
type: "submit",
|
|
4190
|
-
disabled: !(isValid && dirty)
|
|
4191
|
-
}, loading ? React__default.createElement(material.CircularProgress, {
|
|
4192
|
-
size: "22px"
|
|
4193
|
-
}) : 'Submit')), React__default.createElement("div", {
|
|
4194
|
-
className: "login"
|
|
4195
|
-
}, React__default.createElement("span", {
|
|
4196
|
-
onClick: onLogin
|
|
4197
|
-
}, "Login")), showPoweredByImage ? React__default.createElement(PoweredBy, null) : null);
|
|
4198
|
-
}))));
|
|
4199
|
-
};
|
|
4200
|
-
|
|
4201
|
-
var _excluded$3 = ["firstName", "lastName", "holderAge", "confirmEmail", "confirmPassword"];
|
|
4202
|
-
var getInitialValues = function getInitialValues(data, propsInitialValues, userValues, ticketHoldersFields, ticketsQuantity) {
|
|
4203
|
-
var _ticketHoldersFields, _ticketHoldersFields$, _ticketHoldersFields$2;
|
|
4204
|
-
if (data === void 0) {
|
|
4205
|
-
data = [];
|
|
4206
|
-
}
|
|
4207
|
-
if (propsInitialValues === void 0) {
|
|
4208
|
-
propsInitialValues = {};
|
|
4209
|
-
}
|
|
4210
|
-
if (userValues === void 0) {
|
|
4211
|
-
userValues = {};
|
|
4212
|
-
}
|
|
4213
|
-
if (ticketHoldersFields === void 0) {
|
|
4214
|
-
ticketHoldersFields = {};
|
|
4215
|
-
}
|
|
4216
|
-
if (ticketsQuantity === void 0) {
|
|
4217
|
-
ticketsQuantity = [];
|
|
4218
|
-
}
|
|
4219
|
-
var results = _flatMapDeep(data, function (_ref) {
|
|
4220
|
-
var fields = _ref.fields;
|
|
4221
|
-
return _map(fields, function (_ref2) {
|
|
4222
|
-
var groupItems = _ref2.groupItems;
|
|
4223
|
-
return _map(groupItems, function (_ref3) {
|
|
4224
|
-
var name = _ref3.name,
|
|
4225
|
-
value = _ref3.value;
|
|
4226
|
-
return {
|
|
4227
|
-
name: name,
|
|
4228
|
-
value: value
|
|
4229
|
-
};
|
|
4230
|
-
});
|
|
4231
|
-
});
|
|
4232
|
-
});
|
|
4233
|
-
// Add Ticket Holder default values for custom fields
|
|
4234
|
-
var ticketHoldersCustomFields = ((_ticketHoldersFields = ticketHoldersFields) == null ? void 0 : (_ticketHoldersFields$ = _ticketHoldersFields.fields) == null ? void 0 : (_ticketHoldersFields$2 = _ticketHoldersFields$.find(function (groupItem) {
|
|
4235
|
-
return groupItem.customFields;
|
|
4236
|
-
})) == null ? void 0 : _ticketHoldersFields$2.groupItems) || [];
|
|
4237
|
-
var ticketHoldersCustomFieldsInitValues = {};
|
|
4238
|
-
var selectedTicketsCount = ticketsQuantity.length || localStorage.getItem('selectedTicketsQuantity') || 0;
|
|
4239
|
-
if (!_isEmpty(ticketHoldersCustomFields)) {
|
|
4240
|
-
for (var _iterator = _createForOfIteratorHelperLoose(ticketHoldersCustomFields), _step; !(_step = _iterator()).done;) {
|
|
4241
|
-
var customField = _step.value;
|
|
4242
|
-
for (var i = 0; i < selectedTicketsCount; i++) {
|
|
4243
|
-
var fieldName = customField.name + "-" + i;
|
|
4244
|
-
var fieldValue = customField.value;
|
|
4245
|
-
ticketHoldersCustomFieldsInitValues[fieldName] = fieldValue;
|
|
4246
|
-
}
|
|
4247
|
-
}
|
|
4248
|
-
}
|
|
4249
|
-
var initialValues = {};
|
|
4250
|
-
_forEach(results, function (groupItem) {
|
|
4251
|
-
var name = groupItem.name,
|
|
4252
|
-
value = groupItem.value;
|
|
4253
|
-
initialValues[name] = value || propsInitialValues[name] || userValues[name] || '';
|
|
4254
|
-
});
|
|
4255
|
-
// set logged in user as first ticket holder
|
|
4256
|
-
initialValues['holderFirstName-0'] = propsInitialValues.firstName || userValues.firstName || '';
|
|
4257
|
-
initialValues['holderLastName-0'] = propsInitialValues.lastName || userValues.lastName || '';
|
|
4258
|
-
initialValues['holderEmail-0'] = propsInitialValues.email || userValues.email || '';
|
|
4259
|
-
return _extends({}, initialValues, ticketHoldersCustomFieldsInitValues);
|
|
4260
|
-
};
|
|
4261
|
-
var createRegisterFormData = function createRegisterFormData(values, checkoutBody, flagFreeTicket) {
|
|
4262
|
-
if (values === void 0) {
|
|
4263
|
-
values = {};
|
|
4264
|
-
}
|
|
4265
|
-
if (flagFreeTicket === void 0) {
|
|
4266
|
-
flagFreeTicket = false;
|
|
4267
|
-
}
|
|
4268
|
-
var bodyFormData = new FormData();
|
|
4269
|
-
bodyFormData.append('first_name', values.firstName);
|
|
4270
|
-
bodyFormData.append('last_name', values.lastName);
|
|
4271
|
-
bodyFormData.append('email', values.email);
|
|
4272
|
-
bodyFormData.append('password', values.password);
|
|
4273
|
-
bodyFormData.append('password_confirmation', values.confirmPassword);
|
|
4274
|
-
bodyFormData.append('client_id', CONFIGS.CLIENT_ID || 'e9d8f8922797b4621e562255afe90dbf');
|
|
4275
|
-
bodyFormData.append('client_secret', CONFIGS.CLIENT_SECRET || 'b89c191eff22fdcf84ac9bfd88d005355a151ec2c83b26b9');
|
|
4276
|
-
bodyFormData.append('check_cart_expiration', 'true');
|
|
4277
|
-
_forEach(checkoutBody.attributes, function (item, key) {
|
|
4278
|
-
if (!(flagFreeTicket && ['country', 'state', 'city', 'street_address'].includes(key))) {
|
|
4279
|
-
bodyFormData.append(key, item);
|
|
4280
|
-
}
|
|
4281
|
-
});
|
|
4282
|
-
return bodyFormData;
|
|
4283
|
-
};
|
|
4284
|
-
var createCheckoutDataBody = function createCheckoutDataBody(ticketsQuantity, values, logedInValues, includeDob) {
|
|
4285
|
-
if (values === void 0) {
|
|
4286
|
-
values = {};
|
|
4287
|
-
}
|
|
4288
|
-
if (logedInValues === void 0) {
|
|
4289
|
-
logedInValues = {};
|
|
4290
|
-
}
|
|
4291
|
-
if (includeDob === void 0) {
|
|
4292
|
-
includeDob = false;
|
|
4293
|
-
}
|
|
4294
|
-
var _values = values,
|
|
4295
|
-
firstName = _values.firstName,
|
|
4296
|
-
lastName = _values.lastName,
|
|
4297
|
-
holderAge = _values.holderAge,
|
|
4298
|
-
restValues = _objectWithoutPropertiesLoose(_values, _excluded$3);
|
|
4299
|
-
var holders = [];
|
|
4300
|
-
var ticket_holders = [];
|
|
4301
|
-
var _loop = function _loop(i) {
|
|
4302
|
-
var individualHolder = Object.fromEntries(Object.entries(values).filter(function (_ref4) {
|
|
4303
|
-
var key = _ref4[0];
|
|
4304
|
-
return key.includes(String(i));
|
|
4305
|
-
}));
|
|
4306
|
-
holders.push(individualHolder);
|
|
4307
|
-
};
|
|
4308
|
-
for (var i = 0; i <= ticketsQuantity; i++) {
|
|
4309
|
-
_loop(i);
|
|
4310
|
-
}
|
|
4311
|
-
var filteredHolders = holders.filter(function (holder) {
|
|
4312
|
-
return Object.entries(holder).length > 0;
|
|
4313
|
-
});
|
|
4314
|
-
ticket_holders = filteredHolders.map(function (item, index) {
|
|
4315
|
-
return {
|
|
4316
|
-
first_name: !index ? item["holderFirstName-" + index] || logedInValues.firstNameLogged || '' : item["holderFirstName-" + index] || '',
|
|
4317
|
-
last_name: !index ? item["holderLastName-" + index] || logedInValues.lastNameLogged || '' : item["holderLastName-" + index] || '',
|
|
4318
|
-
phone: item["holderPhone-" + index] || '',
|
|
4319
|
-
email: !index ? item["holderEmail-" + index] || logedInValues.emailLogged || '' : item["holderEmail-" + index] || ''
|
|
4320
|
-
};
|
|
4321
|
-
});
|
|
4322
|
-
var filteredRestValue = {};
|
|
4323
|
-
_forEach(restValues, function (value, key) {
|
|
4324
|
-
if (!key.includes('holder')) {
|
|
4325
|
-
filteredRestValue[key] = value;
|
|
4326
|
-
}
|
|
4327
|
-
});
|
|
4328
|
-
var body = {
|
|
4329
|
-
attributes: _extends({}, filteredRestValue, {
|
|
4330
|
-
email: restValues.email || logedInValues.emailLogged,
|
|
4331
|
-
confirm_email: restValues.email || logedInValues.emailLogged,
|
|
4332
|
-
first_name: firstName || logedInValues.firstNameLogged,
|
|
4333
|
-
last_name: lastName || logedInValues.lastNameLogged,
|
|
4334
|
-
ticket_holders: ticket_holders
|
|
4335
|
-
})
|
|
4336
|
-
};
|
|
4337
|
-
if (includeDob) {
|
|
4338
|
-
var holderAgeDate = new Date(holderAge);
|
|
4339
|
-
body.attributes.dob_day = holderAgeDate.getDate();
|
|
4340
|
-
body.attributes.dob_month = holderAgeDate.getMonth() + 1;
|
|
4341
|
-
body.attributes.dob_year = holderAgeDate.getFullYear();
|
|
4342
|
-
}
|
|
4343
|
-
return body;
|
|
4344
|
-
};
|
|
4345
|
-
var getValidateFunctions = function getValidateFunctions(element, states, values, errors) {
|
|
4346
|
-
var validationFunctions = [];
|
|
4347
|
-
if (element.required) {
|
|
4348
|
-
if (element.name !== 'state' || element.name === 'state' && states.length) {
|
|
4349
|
-
validationFunctions.push(requiredValidator);
|
|
4350
|
-
}
|
|
4351
|
-
}
|
|
4352
|
-
if (element.onValidate) {
|
|
4353
|
-
validationFunctions.push(element.onValidate);
|
|
4354
|
-
}
|
|
4355
|
-
if (element.name === 'phone') {
|
|
4356
|
-
var invalidPhone = function invalidPhone() {
|
|
4357
|
-
return errors.phone === 'Invalid phone number' ? 'Invalid phone number' : null;
|
|
4358
|
-
};
|
|
4359
|
-
validationFunctions.push(invalidPhone);
|
|
4360
|
-
}
|
|
4361
|
-
if (element.name === 'confirmEmail') {
|
|
4362
|
-
var isSameEmail = function isSameEmail(confirmEmail) {
|
|
4363
|
-
return values.email !== confirmEmail ? 'Please confirm your email address correctly' : null;
|
|
4364
|
-
};
|
|
4365
|
-
validationFunctions.push(isSameEmail);
|
|
4366
|
-
}
|
|
4367
|
-
if (element.name === 'confirmPassword') {
|
|
4368
|
-
var isSame = function isSame(confirmPassword) {
|
|
4369
|
-
return values.password !== confirmPassword ? 'Password confirmation does not match' : null;
|
|
4419
|
+
onRegisterError(_context.t0, values.email);
|
|
4420
|
+
}
|
|
4421
|
+
case 20:
|
|
4422
|
+
_context.prev = 20;
|
|
4423
|
+
setLoading(false);
|
|
4424
|
+
return _context.finish(20);
|
|
4425
|
+
case 23:
|
|
4426
|
+
case "end":
|
|
4427
|
+
return _context.stop();
|
|
4428
|
+
}
|
|
4429
|
+
}, _callee, null, [[0, 17, 20, 23]]);
|
|
4430
|
+
}));
|
|
4431
|
+
return function onSignup(_x) {
|
|
4432
|
+
return _ref2.apply(this, arguments);
|
|
4370
4433
|
};
|
|
4371
|
-
|
|
4372
|
-
}
|
|
4373
|
-
return
|
|
4374
|
-
|
|
4375
|
-
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
}
|
|
4392
|
-
var
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
}
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4434
|
+
}();
|
|
4435
|
+
var _onClose = loading ? function () {} : onClose;
|
|
4436
|
+
return React__default.createElement(material.Modal, {
|
|
4437
|
+
open: true,
|
|
4438
|
+
onClose: _onClose,
|
|
4439
|
+
"aria-labelledby": "modal-modal-title",
|
|
4440
|
+
"aria-describedby": "modal-modal-description",
|
|
4441
|
+
className: "signup-modal"
|
|
4442
|
+
}, React__default.createElement(material.Box, {
|
|
4443
|
+
style: style$3
|
|
4444
|
+
}, React__default.createElement("div", null, React__default.createElement(formik.Formik, {
|
|
4445
|
+
initialValues: {
|
|
4446
|
+
firstName: '',
|
|
4447
|
+
lastName: '',
|
|
4448
|
+
email: '',
|
|
4449
|
+
password: '',
|
|
4450
|
+
confirmPassword: ''
|
|
4451
|
+
},
|
|
4452
|
+
validationSchema: SignupSchema,
|
|
4453
|
+
onSubmit: onSignup
|
|
4454
|
+
}, function (_ref3) {
|
|
4455
|
+
var isValid = _ref3.isValid,
|
|
4456
|
+
dirty = _ref3.dirty,
|
|
4457
|
+
handleSubmit = _ref3.handleSubmit;
|
|
4458
|
+
return React__default.createElement(formik.Form, {
|
|
4459
|
+
onSubmit: handleSubmit
|
|
4460
|
+
}, React__default.createElement("div", {
|
|
4461
|
+
className: "signup-container"
|
|
4462
|
+
}, React__default.createElement("div", {
|
|
4463
|
+
className: "title"
|
|
4464
|
+
}, "Create an Account"), React__default.createElement("div", {
|
|
4465
|
+
className: "signup-container__twoFields"
|
|
4466
|
+
}, React__default.createElement("div", {
|
|
4467
|
+
className: "is-half"
|
|
4468
|
+
}, React__default.createElement(formik.Field, {
|
|
4469
|
+
name: "firstName",
|
|
4470
|
+
label: "First Name",
|
|
4471
|
+
component: CustomField
|
|
4472
|
+
})), React__default.createElement("div", {
|
|
4473
|
+
className: "is-half"
|
|
4474
|
+
}, React__default.createElement(formik.Field, {
|
|
4475
|
+
name: "lastName",
|
|
4476
|
+
label: "Last Name",
|
|
4477
|
+
component: CustomField
|
|
4478
|
+
}))), React__default.createElement("div", {
|
|
4479
|
+
className: "signup-container__singleField"
|
|
4480
|
+
}, React__default.createElement("div", {
|
|
4481
|
+
className: ""
|
|
4482
|
+
}, React__default.createElement(formik.Field, {
|
|
4483
|
+
name: "email",
|
|
4484
|
+
label: "Email",
|
|
4485
|
+
component: CustomField
|
|
4486
|
+
}))), React__default.createElement("div", {
|
|
4487
|
+
className: "signup-container__twoFields"
|
|
4488
|
+
}, React__default.createElement("div", {
|
|
4489
|
+
className: "is-half"
|
|
4490
|
+
}, React__default.createElement(formik.Field, {
|
|
4491
|
+
name: "password",
|
|
4492
|
+
label: "Password",
|
|
4493
|
+
type: "password",
|
|
4494
|
+
component: CustomField
|
|
4495
|
+
})), React__default.createElement("div", {
|
|
4496
|
+
className: "is-half"
|
|
4497
|
+
}, React__default.createElement(formik.Field, {
|
|
4498
|
+
name: "confirmPassword",
|
|
4499
|
+
label: "Confirm Password",
|
|
4500
|
+
type: "password",
|
|
4501
|
+
component: CustomField
|
|
4502
|
+
})))), React__default.createElement("div", {
|
|
4503
|
+
className: "signup-action-button"
|
|
4504
|
+
}, React__default.createElement("button", {
|
|
4505
|
+
type: "submit",
|
|
4506
|
+
disabled: !(isValid && dirty)
|
|
4507
|
+
}, loading ? React__default.createElement(material.CircularProgress, {
|
|
4508
|
+
size: "22px"
|
|
4509
|
+
}) : 'Submit')), React__default.createElement("div", {
|
|
4510
|
+
className: "login"
|
|
4511
|
+
}, React__default.createElement("span", {
|
|
4512
|
+
onClick: onLogin
|
|
4513
|
+
}, "Login")), showPoweredByImage ? React__default.createElement(PoweredBy, null) : null);
|
|
4514
|
+
}))));
|
|
4421
4515
|
};
|
|
4422
4516
|
|
|
4423
4517
|
var LogicRunner = function LogicRunner(_ref) {
|
|
@@ -4604,7 +4698,8 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
|
|
|
4604
4698
|
onGetCheckoutConfigsError = _ref4$onGetCheckoutCo2 === void 0 ? _identity : _ref4$onGetCheckoutCo2,
|
|
4605
4699
|
_ref4$includeAddons = _ref4.includeAddons,
|
|
4606
4700
|
includeAddons = _ref4$includeAddons === void 0 ? false : _ref4$includeAddons,
|
|
4607
|
-
addonsProps = _ref4.addonsProps
|
|
4701
|
+
addonsProps = _ref4.addonsProps,
|
|
4702
|
+
addOnDataWithCustomFields = _ref4.addOnDataWithCustomFields;
|
|
4608
4703
|
var _useState = React.useState(null),
|
|
4609
4704
|
extraData = _useState[0],
|
|
4610
4705
|
setExtraData = _useState[1];
|
|
@@ -5261,7 +5356,10 @@ var BillingInfoContainer = /*#__PURE__*/React__default.memo(function (_ref4) {
|
|
|
5261
5356
|
}, React__default.createElement("img", {
|
|
5262
5357
|
src: theme === 'dark' ? 'https://www.ticketfairy.com/resources/images/logo-ttf.svg' : 'https://www.ticketfairy.com/resources/images/logo-ttf-black.svg',
|
|
5263
5358
|
alt: "nodata"
|
|
5264
|
-
})))), includeAddons ? React__default.createElement(AddonsContainter, Object.assign({}, addonsProps != null ? addonsProps : {}
|
|
5359
|
+
})))), includeAddons ? React__default.createElement(AddonsContainter, Object.assign({}, addonsProps != null ? addonsProps : {}, {
|
|
5360
|
+
addOnDataWithCustomFields: addOnDataWithCustomFields,
|
|
5361
|
+
configs: configs
|
|
5362
|
+
})) : null, !cardLoading && _map(dataWithUniqueIds, function (item) {
|
|
5265
5363
|
var label = item.label,
|
|
5266
5364
|
labelClassName = item.labelClassName,
|
|
5267
5365
|
fields = item.fields;
|
|
@@ -7471,7 +7569,7 @@ var TicketRow = function TicketRow(_ref) {
|
|
|
7471
7569
|
})))));
|
|
7472
7570
|
var returnValue = '';
|
|
7473
7571
|
// ticketTier.soldOut === false --> means that ticket is in the stock
|
|
7474
|
-
var isSoldOut = ticketTier.sold_out || !ticketTier.displayTicket || ticketTier.soldOut || ticketTier.soldOut === false;
|
|
7572
|
+
var isSoldOut = ticketTier.sold_out || !(ticketTier.displayTicket || ticketTier.slotGroupId) || ticketTier.soldOut || ticketTier.soldOut === false;
|
|
7475
7573
|
if (isSoldOut) {
|
|
7476
7574
|
returnValue = soldOutMessage;
|
|
7477
7575
|
} else if (isSalesClosed) {
|
|
@@ -7527,7 +7625,7 @@ var TicketsSection = function TicketsSection(_ref) {
|
|
|
7527
7625
|
var ticketPriceWithoutFees = priceSymbol + " " + (+ticket.cost).toFixed(2);
|
|
7528
7626
|
var ticketPriceWithFees = priceSymbol + " " + (+ticket.price).toFixed(2);
|
|
7529
7627
|
var ticketOldPrice = priceSymbol + " " + (+ticket.oldPrice).toFixed(2);
|
|
7530
|
-
var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
|
|
7628
|
+
var isSoldOut = ticket.sold_out || !(ticket.displayTicket || ticket.slotGroupId) || ticket.soldOut;
|
|
7531
7629
|
var ticketSelect = function ticketSelect(event) {
|
|
7532
7630
|
var value = event.target.value;
|
|
7533
7631
|
handleTicketSelect(ticket.id, value);
|
|
@@ -7602,7 +7700,7 @@ var TicketsSection = function TicketsSection(_ref) {
|
|
|
7602
7700
|
var ticketPriceWithoutFees = priceSymbol + " " + (+ticket.cost).toFixed(2);
|
|
7603
7701
|
var ticketPriceWithFees = priceSymbol + " " + (+ticket.price).toFixed(2);
|
|
7604
7702
|
var ticketOldPrice = priceSymbol + " " + (+ticket.oldPrice).toFixed(2);
|
|
7605
|
-
var isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut;
|
|
7703
|
+
var isSoldOut = ticket.sold_out || !(ticket.displayTicket || ticket.slotGroupId) || ticket.soldOut;
|
|
7606
7704
|
var ticketSelect = function ticketSelect(event) {
|
|
7607
7705
|
var value = event.target.value;
|
|
7608
7706
|
handleTicketSelect(ticket.id, value, true);
|
|
@@ -7679,6 +7777,126 @@ var TicketsSection = function TicketsSection(_ref) {
|
|
|
7679
7777
|
}));
|
|
7680
7778
|
};
|
|
7681
7779
|
|
|
7780
|
+
var TimeSlotsSection = function TimeSlotsSection(_ref) {
|
|
7781
|
+
var event = _ref.event,
|
|
7782
|
+
eventId = _ref.eventId,
|
|
7783
|
+
availableDates = _ref.availableDates,
|
|
7784
|
+
selectedTickets = _ref.selectedTickets,
|
|
7785
|
+
setSelectedTickets = _ref.setSelectedTickets,
|
|
7786
|
+
handleTicketSelect = _ref.handleTicketSelect,
|
|
7787
|
+
sortBySoldOut = _ref.sortBySoldOut,
|
|
7788
|
+
hideTicketsHeader = _ref.hideTicketsHeader,
|
|
7789
|
+
ticketsHeaderComponent = _ref.ticketsHeaderComponent,
|
|
7790
|
+
showGroupNameBlock = _ref.showGroupNameBlock,
|
|
7791
|
+
currencySybmol = _ref.currencySybmol,
|
|
7792
|
+
isSeatMapAllowed = _ref.isSeatMapAllowed;
|
|
7793
|
+
var _useState = React.useState(null),
|
|
7794
|
+
selectedDate = _useState[0],
|
|
7795
|
+
setSelectedDate = _useState[1];
|
|
7796
|
+
var _useState2 = React.useState([]),
|
|
7797
|
+
tickets = _useState2[0],
|
|
7798
|
+
setTickets = _useState2[1];
|
|
7799
|
+
var _useState3 = React.useState(false),
|
|
7800
|
+
loading = _useState3[0],
|
|
7801
|
+
setLoading = _useState3[1];
|
|
7802
|
+
var handleDateChange = /*#__PURE__*/function () {
|
|
7803
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(date) {
|
|
7804
|
+
var response;
|
|
7805
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
7806
|
+
while (1) switch (_context.prev = _context.next) {
|
|
7807
|
+
case 0:
|
|
7808
|
+
setSelectedDate(date);
|
|
7809
|
+
if (!date) {
|
|
7810
|
+
_context.next = 19;
|
|
7811
|
+
break;
|
|
7812
|
+
}
|
|
7813
|
+
setLoading(true);
|
|
7814
|
+
_context.prev = 3;
|
|
7815
|
+
_context.next = 6;
|
|
7816
|
+
return axios.get("/api/time-slots", {
|
|
7817
|
+
params: {
|
|
7818
|
+
eventId: eventId,
|
|
7819
|
+
date: moment(date).format("YYYY-MM-DD")
|
|
7820
|
+
}
|
|
7821
|
+
});
|
|
7822
|
+
case 6:
|
|
7823
|
+
response = _context.sent;
|
|
7824
|
+
setTickets(response.data.tickets);
|
|
7825
|
+
setSelectedTickets(response.data.tickets);
|
|
7826
|
+
_context.next = 16;
|
|
7827
|
+
break;
|
|
7828
|
+
case 11:
|
|
7829
|
+
_context.prev = 11;
|
|
7830
|
+
_context.t0 = _context["catch"](3);
|
|
7831
|
+
console.error("Error fetching time slots:", _context.t0);
|
|
7832
|
+
setTickets([]);
|
|
7833
|
+
setSelectedTickets([]);
|
|
7834
|
+
case 16:
|
|
7835
|
+
_context.prev = 16;
|
|
7836
|
+
setLoading(false);
|
|
7837
|
+
return _context.finish(16);
|
|
7838
|
+
case 19:
|
|
7839
|
+
case "end":
|
|
7840
|
+
return _context.stop();
|
|
7841
|
+
}
|
|
7842
|
+
}, _callee, null, [[3, 11, 16, 19]]);
|
|
7843
|
+
}));
|
|
7844
|
+
return function handleDateChange(_x) {
|
|
7845
|
+
return _ref2.apply(this, arguments);
|
|
7846
|
+
};
|
|
7847
|
+
}();
|
|
7848
|
+
var isDateDisabled = function isDateDisabled(date) {
|
|
7849
|
+
var formattedDate = moment(date).format("YYYY-MM-DD");
|
|
7850
|
+
return !availableDates.includes(formattedDate);
|
|
7851
|
+
};
|
|
7852
|
+
return React__default.createElement(material.Box, {
|
|
7853
|
+
sx: {
|
|
7854
|
+
display: "flex",
|
|
7855
|
+
flexDirection: "column",
|
|
7856
|
+
alignItems: "center"
|
|
7857
|
+
}
|
|
7858
|
+
}, React__default.createElement(xDatePickers.LocalizationProvider, {
|
|
7859
|
+
dateAdapter: AdapterMoment.AdapterMoment
|
|
7860
|
+
}, React__default.createElement(xDatePickers.StaticDatePicker, {
|
|
7861
|
+
value: selectedDate,
|
|
7862
|
+
onChange: handleDateChange,
|
|
7863
|
+
shouldDisableDate: isDateDisabled,
|
|
7864
|
+
renderInput: function renderInput(params) {
|
|
7865
|
+
return React__default.createElement(material.TextField, Object.assign({}, params));
|
|
7866
|
+
},
|
|
7867
|
+
showToolbar: false,
|
|
7868
|
+
componentsProps: {
|
|
7869
|
+
actionBar: {
|
|
7870
|
+
actions: []
|
|
7871
|
+
}
|
|
7872
|
+
},
|
|
7873
|
+
disablePast: true
|
|
7874
|
+
})), loading ? React__default.createElement(material.CircularProgress, {
|
|
7875
|
+
sx: {
|
|
7876
|
+
marginTop: 2
|
|
7877
|
+
}
|
|
7878
|
+
}) : React__default.createElement(material.Box, {
|
|
7879
|
+
sx: {
|
|
7880
|
+
marginTop: 2,
|
|
7881
|
+
width: "100%"
|
|
7882
|
+
}
|
|
7883
|
+
}, React__default.createElement(TicketsSection, {
|
|
7884
|
+
event: event,
|
|
7885
|
+
ticketsList: tickets,
|
|
7886
|
+
tableTickets: [],
|
|
7887
|
+
selectedTickets: selectedTickets,
|
|
7888
|
+
handleTicketSelect: handleTicketSelect,
|
|
7889
|
+
sortBySoldOut: sortBySoldOut,
|
|
7890
|
+
ticketsHeaderComponent: ticketsHeaderComponent,
|
|
7891
|
+
tableTicketsHeaderComponent: null,
|
|
7892
|
+
hideTableTicketsHeader: true,
|
|
7893
|
+
hideTicketsHeader: hideTicketsHeader || _isEmpty(tickets),
|
|
7894
|
+
showGroupNameBlock: showGroupNameBlock,
|
|
7895
|
+
currencySybmol: currencySybmol,
|
|
7896
|
+
isSeatMapAllowed: isSeatMapAllowed
|
|
7897
|
+
})));
|
|
7898
|
+
};
|
|
7899
|
+
|
|
7682
7900
|
var TicketsContainer = function TicketsContainer(_ref) {
|
|
7683
7901
|
var onLoginSuccess = _ref.onLoginSuccess,
|
|
7684
7902
|
getTicketsLabel = _ref.getTicketsLabel,
|
|
@@ -7823,6 +8041,10 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
7823
8041
|
setIsPreregisred = _useState22[1];
|
|
7824
8042
|
var ticketsContainerRef = React.useRef(null);
|
|
7825
8043
|
var pageUrl = isBrowser ? window.location.href.split('?')[0] : '';
|
|
8044
|
+
var isTimeSlotEvent = event == null ? void 0 : event.isTimeSlotEvent;
|
|
8045
|
+
var _useState23 = React.useState([]),
|
|
8046
|
+
availableDates = _useState23[0],
|
|
8047
|
+
setAvailableDates = _useState23[1];
|
|
7826
8048
|
useCookieListener(X_TF_ECOMMERCE, function (value) {
|
|
7827
8049
|
return setIsLogged(Boolean(value));
|
|
7828
8050
|
});
|
|
@@ -7843,7 +8065,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
7843
8065
|
getTicketsApi();
|
|
7844
8066
|
fetchPreregisteredsData();
|
|
7845
8067
|
}
|
|
7846
|
-
}, [eventId]);
|
|
8068
|
+
}, [eventId, isTimeSlotEvent]);
|
|
7847
8069
|
React.useEffect(function () {
|
|
7848
8070
|
setIsPreregisred(checkUserPreregistration());
|
|
7849
8071
|
}, [preregistereds]);
|
|
@@ -7911,21 +8133,46 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
7911
8133
|
}
|
|
7912
8134
|
function _getTicketsApi() {
|
|
7913
8135
|
_getTicketsApi = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(isUpdateingCode, type) {
|
|
7914
|
-
var previewKey,
|
|
8136
|
+
var previewKey, eventResponse, _event2, _response, response, _response$data, attributes;
|
|
7915
8137
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
7916
8138
|
while (1) switch (_context4.prev = _context4.next) {
|
|
7917
8139
|
case 0:
|
|
7918
8140
|
_context4.prev = 0;
|
|
7919
|
-
|
|
8141
|
+
if (isUpdateingCode) {
|
|
8142
|
+
setCodeIsLoading(true);
|
|
8143
|
+
} else {
|
|
8144
|
+
setIsLoading(true);
|
|
8145
|
+
}
|
|
7920
8146
|
previewKey = getQueryVariable('pk') || undefined;
|
|
7921
8147
|
_context4.next = 5;
|
|
7922
|
-
return getTickets(eventId, code, previewKey);
|
|
7923
|
-
case 5:
|
|
7924
|
-
response = _context4.sent;
|
|
7925
|
-
_context4.next = 8;
|
|
7926
8148
|
return getEvent(eventId, previewKey);
|
|
7927
|
-
case
|
|
8149
|
+
case 5:
|
|
7928
8150
|
eventResponse = _context4.sent;
|
|
8151
|
+
if (eventResponse.success) {
|
|
8152
|
+
_event2 = eventResponse.data.attributes;
|
|
8153
|
+
setEvent(_event2);
|
|
8154
|
+
if (_event2.country && isBrowser) {
|
|
8155
|
+
window.localStorage.setItem('eventCountry', _event2.country);
|
|
8156
|
+
}
|
|
8157
|
+
}
|
|
8158
|
+
if (!isTimeSlotEvent) {
|
|
8159
|
+
_context4.next = 14;
|
|
8160
|
+
break;
|
|
8161
|
+
}
|
|
8162
|
+
_context4.next = 10;
|
|
8163
|
+
return getTimeSlotsData(eventId);
|
|
8164
|
+
case 10:
|
|
8165
|
+
_response = _context4.sent;
|
|
8166
|
+
console.log(_response);
|
|
8167
|
+
if (_response.success) {
|
|
8168
|
+
setAvailableDates(_response.data);
|
|
8169
|
+
}
|
|
8170
|
+
return _context4.abrupt("return");
|
|
8171
|
+
case 14:
|
|
8172
|
+
_context4.next = 16;
|
|
8173
|
+
return getTickets(eventId, code, previewKey);
|
|
8174
|
+
case 16:
|
|
8175
|
+
response = _context4.sent;
|
|
7929
8176
|
if (response.success) {
|
|
7930
8177
|
attributes = response == null ? void 0 : (_response$data = response.data) == null ? void 0 : _response$data.attributes;
|
|
7931
8178
|
type === 'promo' && setCodeIsApplied(attributes.ValidPromoCode);
|
|
@@ -7937,32 +8184,25 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
7937
8184
|
setShowAccessCodeSection(attributes.is_access_code);
|
|
7938
8185
|
setShowPromoCodeSection(attributes.isPromotionsEnabled);
|
|
7939
8186
|
}
|
|
7940
|
-
|
|
7941
|
-
_event2 = eventResponse.data.attributes;
|
|
7942
|
-
setEvent(_event2);
|
|
7943
|
-
if (_event2.country && isBrowser) {
|
|
7944
|
-
window.localStorage.setItem('eventCountry', _event2.country);
|
|
7945
|
-
}
|
|
7946
|
-
}
|
|
7947
|
-
_context4.next = 16;
|
|
8187
|
+
_context4.next = 23;
|
|
7948
8188
|
break;
|
|
7949
|
-
case
|
|
7950
|
-
_context4.prev =
|
|
8189
|
+
case 20:
|
|
8190
|
+
_context4.prev = 20;
|
|
7951
8191
|
_context4.t0 = _context4["catch"](0);
|
|
7952
8192
|
if (axios.isAxiosError(_context4.t0)) {
|
|
7953
8193
|
onGetTicketsError(_context4.t0);
|
|
7954
8194
|
setError(_get(_context4.t0, 'response.data.message', ''));
|
|
7955
8195
|
}
|
|
7956
|
-
case
|
|
7957
|
-
_context4.prev =
|
|
8196
|
+
case 23:
|
|
8197
|
+
_context4.prev = 23;
|
|
7958
8198
|
setIsLoading(false);
|
|
7959
8199
|
setCodeIsLoading(false);
|
|
7960
|
-
return _context4.finish(
|
|
7961
|
-
case
|
|
8200
|
+
return _context4.finish(23);
|
|
8201
|
+
case 27:
|
|
7962
8202
|
case "end":
|
|
7963
8203
|
return _context4.stop();
|
|
7964
8204
|
}
|
|
7965
|
-
}, _callee4, null, [[0,
|
|
8205
|
+
}, _callee4, null, [[0, 20, 23, 27]]);
|
|
7966
8206
|
}));
|
|
7967
8207
|
return _getTicketsApi.apply(this, arguments);
|
|
7968
8208
|
}
|
|
@@ -8303,7 +8543,20 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
8303
8543
|
}), isLoading ? React__default.createElement(Loader, null) : React__default.createElement("div", {
|
|
8304
8544
|
ref: ticketsContainerRef,
|
|
8305
8545
|
className: 'tickets-section-container'
|
|
8306
|
-
},
|
|
8546
|
+
}, isTimeSlotEvent && React__default.createElement(TimeSlotsSection, {
|
|
8547
|
+
event: event,
|
|
8548
|
+
eventId: eventId,
|
|
8549
|
+
availableDates: availableDates,
|
|
8550
|
+
selectedTickets: selectedTickets,
|
|
8551
|
+
setSelectedTickets: setSelectedTickets,
|
|
8552
|
+
handleTicketSelect: handleTicketSelect,
|
|
8553
|
+
sortBySoldOut: sortBySoldOut,
|
|
8554
|
+
ticketsHeaderComponent: ticketsHeaderComponent,
|
|
8555
|
+
hideTicketsHeader: hideTicketsHeader,
|
|
8556
|
+
showGroupNameBlock: showGroupNameBlock,
|
|
8557
|
+
currencySybmol: currencySybmol,
|
|
8558
|
+
isSeatMapAllowed: isSeatMapAllowed
|
|
8559
|
+
}), !isSalesClosed && !isTimeSlotEvent && React__default.createElement(TicketsSection, {
|
|
8307
8560
|
event: event,
|
|
8308
8561
|
ticketsList: ordinarTickets,
|
|
8309
8562
|
tableTickets: tableTickets,
|