tf-checkout-react 1.2.31 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.d.ts +3 -0
- package/dist/components/addonsContainer/AddonComponent.d.ts +9 -0
- package/dist/components/addonsContainer/adapters/index.d.ts +12 -0
- package/dist/components/addonsContainer/index.d.ts +17 -0
- package/dist/components/addonsContainer/normalizers/index.d.ts +1 -0
- package/dist/components/addonsContainer/utils/index.d.ts +16 -0
- package/dist/components/common/SelectField.d.ts +2 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/ticketsContainer/index.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/tf-checkout-react.cjs.development.js +889 -79
- 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 -80
- package/dist/tf-checkout-react.esm.js.map +1 -1
- package/dist/types/add_on.d.ts +7 -0
- package/dist/types/checkoutPageConfigs.d.ts +9 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/order-data.d.ts +2 -1
- package/dist/utils/createMarkup.d.ts +3 -0
- package/dist/utils/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/api/index.ts +16 -0
- package/src/components/addonsContainer/AddonComponent.tsx +49 -0
- package/src/components/addonsContainer/adapters/index.tsx +64 -0
- package/src/components/addonsContainer/index.tsx +434 -0
- package/src/components/addonsContainer/normalizers/index.ts +5 -0
- package/src/components/addonsContainer/utils/index.tsx +231 -0
- package/src/components/billing-info-container/index.tsx +30 -7
- package/src/components/common/SelectField.tsx +18 -8
- package/src/components/index.ts +1 -0
- package/src/components/orderDetailsContainer/index.tsx +20 -18
- package/src/components/paymentContainer/index.tsx +37 -2
- package/src/components/ticketsContainer/index.tsx +30 -17
- package/src/components/ticketsContainer/utils.ts +3 -3
- package/src/index.ts +2 -1
- package/src/types/add_on.ts +7 -0
- package/src/types/checkoutPageConfigs.ts +9 -0
- package/src/types/index.ts +2 -0
- package/src/types/order-data.ts +4 -3
- package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +7 -6
- package/src/utils/createMarkup.ts +1 -0
- package/src/utils/index.ts +1 -0
|
@@ -58,6 +58,8 @@ import TablePagination from '@mui/material/TablePagination';
|
|
|
58
58
|
import TableRow from '@mui/material/TableRow';
|
|
59
59
|
import _has from 'lodash-es/has';
|
|
60
60
|
import Radio from '@mui/material/Radio';
|
|
61
|
+
import _isNull from 'lodash-es/isNull';
|
|
62
|
+
import _reverse from 'lodash-es/reverse';
|
|
61
63
|
|
|
62
64
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
63
65
|
try {
|
|
@@ -1170,6 +1172,12 @@ var createCheckoutDataBodyWithDefaultHolder = function createCheckoutDataBodyWit
|
|
|
1170
1172
|
return body;
|
|
1171
1173
|
};
|
|
1172
1174
|
|
|
1175
|
+
var createMarkup = function createMarkup(data) {
|
|
1176
|
+
return {
|
|
1177
|
+
__html: data
|
|
1178
|
+
};
|
|
1179
|
+
};
|
|
1180
|
+
|
|
1173
1181
|
var isWindowDefined = typeof window !== 'undefined';
|
|
1174
1182
|
var isDocumentDefined = typeof document !== 'undefined';
|
|
1175
1183
|
|
|
@@ -1428,7 +1436,8 @@ var getStates = function getStates(countryId) {
|
|
|
1428
1436
|
return publicRequest.get("/countries/" + countryId + "/states/");
|
|
1429
1437
|
};
|
|
1430
1438
|
var getOrders = function getOrders(page, limit, eventSlug) {
|
|
1431
|
-
return publicRequest.get(
|
|
1439
|
+
return publicRequest.get( // eslint-disable-next-line max-len
|
|
1440
|
+
"v1/account/orders/?page=" + page + "&limit=" + limit + "&filter[event]=" + eventSlug + "&filter[brand]=" + CONFIGS.BRAND_SLUG + "&filter[subbrands]=true");
|
|
1432
1441
|
};
|
|
1433
1442
|
var getOrderDetails = function getOrderDetails(orderId) {
|
|
1434
1443
|
return publicRequest.get("v1/account/order/" + orderId);
|
|
@@ -1498,6 +1507,59 @@ var validatePhoneNumber = /*#__PURE__*/function () {
|
|
|
1498
1507
|
return _ref.apply(this, arguments);
|
|
1499
1508
|
};
|
|
1500
1509
|
}();
|
|
1510
|
+
var getAddons = /*#__PURE__*/function () {
|
|
1511
|
+
var _ref2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(eventId) {
|
|
1512
|
+
var result, addons;
|
|
1513
|
+
return runtime_1.wrap(function _callee2$(_context2) {
|
|
1514
|
+
while (1) {
|
|
1515
|
+
switch (_context2.prev = _context2.next) {
|
|
1516
|
+
case 0:
|
|
1517
|
+
_context2.next = 2;
|
|
1518
|
+
return publicRequest.get("/v1/event/" + eventId + "/add-ons");
|
|
1519
|
+
|
|
1520
|
+
case 2:
|
|
1521
|
+
result = _context2.sent;
|
|
1522
|
+
addons = _get(result, 'data.data.attributes', []);
|
|
1523
|
+
return _context2.abrupt("return", addons);
|
|
1524
|
+
|
|
1525
|
+
case 5:
|
|
1526
|
+
case "end":
|
|
1527
|
+
return _context2.stop();
|
|
1528
|
+
}
|
|
1529
|
+
}
|
|
1530
|
+
}, _callee2);
|
|
1531
|
+
}));
|
|
1532
|
+
|
|
1533
|
+
return function getAddons(_x2) {
|
|
1534
|
+
return _ref2.apply(this, arguments);
|
|
1535
|
+
};
|
|
1536
|
+
}();
|
|
1537
|
+
var getCheckoutPageConfigs = /*#__PURE__*/function () {
|
|
1538
|
+
var _ref3 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee3() {
|
|
1539
|
+
var response;
|
|
1540
|
+
return runtime_1.wrap(function _callee3$(_context3) {
|
|
1541
|
+
while (1) {
|
|
1542
|
+
switch (_context3.prev = _context3.next) {
|
|
1543
|
+
case 0:
|
|
1544
|
+
_context3.next = 2;
|
|
1545
|
+
return publicRequest.get("v1/checkout-configs");
|
|
1546
|
+
|
|
1547
|
+
case 2:
|
|
1548
|
+
response = _context3.sent;
|
|
1549
|
+
return _context3.abrupt("return", response.data);
|
|
1550
|
+
|
|
1551
|
+
case 4:
|
|
1552
|
+
case "end":
|
|
1553
|
+
return _context3.stop();
|
|
1554
|
+
}
|
|
1555
|
+
}
|
|
1556
|
+
}, _callee3);
|
|
1557
|
+
}));
|
|
1558
|
+
|
|
1559
|
+
return function getCheckoutPageConfigs() {
|
|
1560
|
+
return _ref3.apply(this, arguments);
|
|
1561
|
+
};
|
|
1562
|
+
}();
|
|
1501
1563
|
|
|
1502
1564
|
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,}))$/;
|
|
1503
1565
|
var combineValidators = function combineValidators() {
|
|
@@ -1792,7 +1854,11 @@ var SelectField = function SelectField(_ref) {
|
|
|
1792
1854
|
_ref$form = _ref.form,
|
|
1793
1855
|
touched = _ref$form.touched,
|
|
1794
1856
|
errors = _ref$form.errors,
|
|
1795
|
-
|
|
1857
|
+
setFieldValue = _ref$form.setFieldValue,
|
|
1858
|
+
theme = _ref.theme,
|
|
1859
|
+
_ref$onChange = _ref.onChange,
|
|
1860
|
+
_onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
|
|
1861
|
+
|
|
1796
1862
|
var isTouched = Boolean(_get(touched, field.name));
|
|
1797
1863
|
|
|
1798
1864
|
var error = _get(errors, field.name);
|
|
@@ -1820,7 +1886,12 @@ var SelectField = function SelectField(_ref) {
|
|
|
1820
1886
|
className: theme
|
|
1821
1887
|
}
|
|
1822
1888
|
}, field, {
|
|
1823
|
-
style: customTheme == null ? void 0 : customTheme.input
|
|
1889
|
+
style: customTheme == null ? void 0 : customTheme.input,
|
|
1890
|
+
onChange: function onChange(e) {
|
|
1891
|
+
_onChange(e);
|
|
1892
|
+
|
|
1893
|
+
setFieldValue(field.name, e.target.value);
|
|
1894
|
+
}
|
|
1824
1895
|
}), _map(selectOptions, function (option) {
|
|
1825
1896
|
return React.createElement("option", {
|
|
1826
1897
|
key: option.value,
|
|
@@ -2947,6 +3018,12 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
2947
3018
|
var flagRequirePhone = getQueryVariable('phone_required') === 'true'; // Get prevProps
|
|
2948
3019
|
|
|
2949
3020
|
var prevData = useRef(data);
|
|
3021
|
+
|
|
3022
|
+
var addAddOnsInAttributes = function addAddOnsInAttributes(checkoutBody) {
|
|
3023
|
+
var selectedAddOns = window.localStorage.getItem('add_ons') || '{}';
|
|
3024
|
+
checkoutBody.attributes.add_ons = JSON.parse(selectedAddOns);
|
|
3025
|
+
};
|
|
3026
|
+
|
|
2950
3027
|
useEffect(function () {
|
|
2951
3028
|
var hasUniqueId = _get(dataWithUniqueIds, '[0].uniqueId');
|
|
2952
3029
|
|
|
@@ -3144,42 +3221,47 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
3144
3221
|
switch (_context5.prev = _context5.next) {
|
|
3145
3222
|
case 0:
|
|
3146
3223
|
if (!(skipPage && !_isEmpty(ticketsQuantity) && !showDOB)) {
|
|
3147
|
-
_context5.next =
|
|
3224
|
+
_context5.next = 18;
|
|
3148
3225
|
break;
|
|
3149
3226
|
}
|
|
3150
3227
|
|
|
3151
3228
|
setLoading(true);
|
|
3152
3229
|
checkoutBody = createCheckoutDataBodyWithDefaultHolder(ticketsQuantity.length, userData);
|
|
3153
3230
|
_context5.prev = 3;
|
|
3154
|
-
|
|
3231
|
+
|
|
3232
|
+
if (isWindowDefined) {
|
|
3233
|
+
addAddOnsInAttributes(checkoutBody);
|
|
3234
|
+
}
|
|
3235
|
+
|
|
3236
|
+
_context5.next = 7;
|
|
3155
3237
|
return postOnCheckout(checkoutBody, access_token);
|
|
3156
3238
|
|
|
3157
|
-
case
|
|
3239
|
+
case 7:
|
|
3158
3240
|
res = _context5.sent;
|
|
3159
3241
|
removeReferralKey();
|
|
3160
3242
|
onSkipBillingPage(_get(res, 'data.data.attributes'));
|
|
3161
3243
|
setLoading(false);
|
|
3162
|
-
_context5.next =
|
|
3244
|
+
_context5.next = 16;
|
|
3163
3245
|
break;
|
|
3164
3246
|
|
|
3165
|
-
case
|
|
3166
|
-
_context5.prev =
|
|
3247
|
+
case 13:
|
|
3248
|
+
_context5.prev = 13;
|
|
3167
3249
|
_context5.t0 = _context5["catch"](3);
|
|
3168
3250
|
onSubmitError(_context5.t0);
|
|
3169
3251
|
|
|
3170
|
-
case
|
|
3171
|
-
_context5.next =
|
|
3252
|
+
case 16:
|
|
3253
|
+
_context5.next = 19;
|
|
3172
3254
|
break;
|
|
3173
3255
|
|
|
3174
|
-
case
|
|
3256
|
+
case 18:
|
|
3175
3257
|
setLoading(false);
|
|
3176
3258
|
|
|
3177
|
-
case
|
|
3259
|
+
case 19:
|
|
3178
3260
|
case "end":
|
|
3179
3261
|
return _context5.stop();
|
|
3180
3262
|
}
|
|
3181
3263
|
}
|
|
3182
|
-
}, _callee5, null, [[3,
|
|
3264
|
+
}, _callee5, null, [[3, 13]]);
|
|
3183
3265
|
}));
|
|
3184
3266
|
|
|
3185
3267
|
return function collectPaymentData() {
|
|
@@ -3254,49 +3336,54 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
3254
3336
|
_context6.prev = 0;
|
|
3255
3337
|
|
|
3256
3338
|
if (!isLoggedIn) {
|
|
3257
|
-
_context6.next =
|
|
3339
|
+
_context6.next = 17;
|
|
3258
3340
|
break;
|
|
3259
3341
|
}
|
|
3260
3342
|
|
|
3261
3343
|
_checkoutBody = collectCheckoutBody(values, userData);
|
|
3262
|
-
|
|
3344
|
+
|
|
3345
|
+
if (isWindowDefined) {
|
|
3346
|
+
addAddOnsInAttributes(_checkoutBody);
|
|
3347
|
+
}
|
|
3348
|
+
|
|
3349
|
+
_context6.next = 6;
|
|
3263
3350
|
return postOnCheckout(_checkoutBody, access_token);
|
|
3264
3351
|
|
|
3265
|
-
case
|
|
3352
|
+
case 6:
|
|
3266
3353
|
_res = _context6.sent;
|
|
3267
3354
|
removeReferralKey(); // After checkout is successful recover updated profile and store it on local storage if needed
|
|
3268
3355
|
|
|
3269
3356
|
if (!isWindowDefined) {
|
|
3270
|
-
_context6.next =
|
|
3357
|
+
_context6.next = 15;
|
|
3271
3358
|
break;
|
|
3272
3359
|
}
|
|
3273
3360
|
|
|
3274
|
-
_context6.next =
|
|
3361
|
+
_context6.next = 11;
|
|
3275
3362
|
return getProfileData(access_token);
|
|
3276
3363
|
|
|
3277
|
-
case
|
|
3364
|
+
case 11:
|
|
3278
3365
|
updatedUserData = _context6.sent;
|
|
3279
3366
|
_profileSpecifiedData = _get(updatedUserData, 'data.data');
|
|
3280
3367
|
_profileDataObj = setLoggedUserData$1(_profileSpecifiedData);
|
|
3281
3368
|
window.localStorage.setItem('user_data', JSON.stringify(_profileDataObj));
|
|
3282
3369
|
|
|
3283
|
-
case
|
|
3370
|
+
case 15:
|
|
3284
3371
|
handleSubmit(values, formikHelpers, eventId, _res);
|
|
3285
3372
|
return _context6.abrupt("return");
|
|
3286
3373
|
|
|
3287
|
-
case
|
|
3374
|
+
case 17:
|
|
3288
3375
|
checkoutBodyForRegistration = createCheckoutDataBody(ticketsQuantity.length, values, {
|
|
3289
3376
|
emailLogged: emailLogged,
|
|
3290
3377
|
firstNameLogged: firstNameLogged,
|
|
3291
3378
|
lastNameLogged: lastNameLogged
|
|
3292
3379
|
}, showDOB);
|
|
3293
3380
|
bodyFormData = createRegisterFormData(values, checkoutBodyForRegistration);
|
|
3294
|
-
_context6.prev =
|
|
3381
|
+
_context6.prev = 19;
|
|
3295
3382
|
setLoading(true);
|
|
3296
|
-
_context6.next =
|
|
3383
|
+
_context6.next = 23;
|
|
3297
3384
|
return register(bodyFormData);
|
|
3298
3385
|
|
|
3299
|
-
case
|
|
3386
|
+
case 23:
|
|
3300
3387
|
resRegister = _context6.sent;
|
|
3301
3388
|
_xtfCookie = _get(resRegister, 'headers.x-tf-ecommerce');
|
|
3302
3389
|
accessToken = _get(resRegister, 'data.data.attributes.access_token');
|
|
@@ -3308,12 +3395,12 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
3308
3395
|
refreshToken: refreshToken,
|
|
3309
3396
|
userProfile: userProfile
|
|
3310
3397
|
});
|
|
3311
|
-
_context6.next =
|
|
3398
|
+
_context6.next = 36;
|
|
3312
3399
|
break;
|
|
3313
3400
|
|
|
3314
|
-
case
|
|
3315
|
-
_context6.prev =
|
|
3316
|
-
_context6.t0 = _context6["catch"](
|
|
3401
|
+
case 31:
|
|
3402
|
+
_context6.prev = 31;
|
|
3403
|
+
_context6.t0 = _context6["catch"](19);
|
|
3317
3404
|
setLoading(false);
|
|
3318
3405
|
|
|
3319
3406
|
if (axios.isAxiosError(_context6.t0)) {
|
|
@@ -3343,11 +3430,11 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
3343
3430
|
|
|
3344
3431
|
return _context6.abrupt("return");
|
|
3345
3432
|
|
|
3346
|
-
case
|
|
3347
|
-
_context6.next =
|
|
3433
|
+
case 36:
|
|
3434
|
+
_context6.next = 38;
|
|
3348
3435
|
return getProfileData();
|
|
3349
3436
|
|
|
3350
|
-
case
|
|
3437
|
+
case 38:
|
|
3351
3438
|
profileData = _context6.sent;
|
|
3352
3439
|
profileSpecifiedData = _get(profileData, 'data.data');
|
|
3353
3440
|
profileDataObj = setLoggedUserData$1(profileSpecifiedData);
|
|
@@ -3357,18 +3444,23 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
3357
3444
|
}
|
|
3358
3445
|
|
|
3359
3446
|
checkoutBody = collectCheckoutBody(values, profileDataObj);
|
|
3360
|
-
|
|
3447
|
+
|
|
3448
|
+
if (isWindowDefined) {
|
|
3449
|
+
addAddOnsInAttributes(checkoutBody);
|
|
3450
|
+
}
|
|
3451
|
+
|
|
3452
|
+
_context6.next = 46;
|
|
3361
3453
|
return postOnCheckout(checkoutBody);
|
|
3362
3454
|
|
|
3363
|
-
case
|
|
3455
|
+
case 46:
|
|
3364
3456
|
res = _context6.sent;
|
|
3365
3457
|
removeReferralKey();
|
|
3366
3458
|
handleSubmit(values, formikHelpers, eventId, res);
|
|
3367
|
-
_context6.next =
|
|
3459
|
+
_context6.next = 55;
|
|
3368
3460
|
break;
|
|
3369
3461
|
|
|
3370
|
-
case
|
|
3371
|
-
_context6.prev =
|
|
3462
|
+
case 51:
|
|
3463
|
+
_context6.prev = 51;
|
|
3372
3464
|
_context6.t1 = _context6["catch"](0);
|
|
3373
3465
|
setLoading(false);
|
|
3374
3466
|
|
|
@@ -3389,17 +3481,17 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
3389
3481
|
onSubmitError(_context6.t1);
|
|
3390
3482
|
}
|
|
3391
3483
|
|
|
3392
|
-
case
|
|
3393
|
-
_context6.prev =
|
|
3484
|
+
case 55:
|
|
3485
|
+
_context6.prev = 55;
|
|
3394
3486
|
setLoading(false);
|
|
3395
|
-
return _context6.finish(
|
|
3487
|
+
return _context6.finish(55);
|
|
3396
3488
|
|
|
3397
|
-
case
|
|
3489
|
+
case 58:
|
|
3398
3490
|
case "end":
|
|
3399
3491
|
return _context6.stop();
|
|
3400
3492
|
}
|
|
3401
3493
|
}
|
|
3402
|
-
}, _callee6, null, [[0,
|
|
3494
|
+
}, _callee6, null, [[0, 51, 55, 58], [19, 31]]);
|
|
3403
3495
|
}));
|
|
3404
3496
|
|
|
3405
3497
|
function onSubmit(_x2, _x3) {
|
|
@@ -3486,7 +3578,7 @@ var BillingInfoContainer = /*#__PURE__*/React.memo(function (_ref3) {
|
|
|
3486
3578
|
return ['password', 'confirmPassword', 'password-info'].includes(element.name) && isLoggedIn ? null : React.createElement(React.Fragment, {
|
|
3487
3579
|
key: element.uniqueId
|
|
3488
3580
|
}, React.createElement("div", {
|
|
3489
|
-
className: element.className
|
|
3581
|
+
className: element.className + " " + (props == null ? void 0 : props.errors[element.name])
|
|
3490
3582
|
}, element.component ? element.component : React.createElement(Field, {
|
|
3491
3583
|
setPhoneValidationIsLoading: element.type === 'phone' ? setPhoneValidationIsLoading : undefined,
|
|
3492
3584
|
name: element.name,
|
|
@@ -3958,7 +4050,8 @@ var initialOrderValues = {
|
|
|
3958
4050
|
quantity: '',
|
|
3959
4051
|
price: '',
|
|
3960
4052
|
total: '',
|
|
3961
|
-
currency: ''
|
|
4053
|
+
currency: '',
|
|
4054
|
+
add_ons: []
|
|
3962
4055
|
};
|
|
3963
4056
|
var initialReviewValues = {
|
|
3964
4057
|
order_details: {
|
|
@@ -4059,7 +4152,8 @@ var PaymentContainer = function PaymentContainer(_ref) {
|
|
|
4059
4152
|
quantity: ticket == null ? void 0 : ticket.quantity,
|
|
4060
4153
|
price: ticket == null ? void 0 : ticket.price,
|
|
4061
4154
|
total: order_details == null ? void 0 : order_details.total,
|
|
4062
|
-
currency: order_details == null ? void 0 : order_details.currency
|
|
4155
|
+
currency: order_details == null ? void 0 : order_details.currency,
|
|
4156
|
+
add_ons: (order_details == null ? void 0 : order_details.add_ons) || []
|
|
4063
4157
|
};
|
|
4064
4158
|
setOrderData(_orderData);
|
|
4065
4159
|
onGetPaymentDataSuccess(response.data);
|
|
@@ -4230,6 +4324,13 @@ var PaymentContainer = function PaymentContainer(_ref) {
|
|
|
4230
4324
|
className = _field$className === void 0 ? '' : _field$className,
|
|
4231
4325
|
_field$normalizer = field.normalizer,
|
|
4232
4326
|
normalizer = _field$normalizer === void 0 ? _identity : _field$normalizer;
|
|
4327
|
+
var currency = orderData.currency;
|
|
4328
|
+
var value = orderData[id];
|
|
4329
|
+
|
|
4330
|
+
if (field.id === 'add_ons' && _isEmpty(value)) {
|
|
4331
|
+
return false;
|
|
4332
|
+
}
|
|
4333
|
+
|
|
4233
4334
|
return React.createElement("div", {
|
|
4234
4335
|
key: id,
|
|
4235
4336
|
className: "order_info_block"
|
|
@@ -4237,7 +4338,16 @@ var PaymentContainer = function PaymentContainer(_ref) {
|
|
|
4237
4338
|
className: "order_info_title"
|
|
4238
4339
|
}, label), React.createElement("div", {
|
|
4239
4340
|
className: className + " order_info_text"
|
|
4240
|
-
}, normalizer(
|
|
4341
|
+
}, typeof value === 'string' ? normalizer(value, currency) : _map(value, function (item) {
|
|
4342
|
+
return React.createElement("div", {
|
|
4343
|
+
key: item.id,
|
|
4344
|
+
className: "add-on-container"
|
|
4345
|
+
}, React.createElement("span", null, item.quantity), React.createElement("span", {
|
|
4346
|
+
className: "add-on-x"
|
|
4347
|
+
}, ' x '), React.createElement("span", null, item.groupName ? item.groupName + ' - ' : ''), React.createElement("span", null, item.name), React.createElement("span", null, ' - '), React.createElement("span", null, currencyNormalizerCreator(createFixedFloatNormalizer(2)(parseFloat(item.price)), currency)), React.createElement("span", {
|
|
4348
|
+
className: "add-on-each"
|
|
4349
|
+
}, ' each'));
|
|
4350
|
+
})));
|
|
4241
4351
|
})), enablePaymentPlan && React.createElement("div", {
|
|
4242
4352
|
className: "payment_toggle"
|
|
4243
4353
|
}, React.createElement("label", {
|
|
@@ -5185,15 +5295,15 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
5185
5295
|
_ref$contentStyle = _ref.contentStyle,
|
|
5186
5296
|
contentStyle = _ref$contentStyle === void 0 ? {} : _ref$contentStyle,
|
|
5187
5297
|
_ref$onAddToCartError = _ref.onAddToCartError,
|
|
5188
|
-
onAddToCartError = _ref$onAddToCartError === void 0 ?
|
|
5298
|
+
onAddToCartError = _ref$onAddToCartError === void 0 ? _identity : _ref$onAddToCartError,
|
|
5189
5299
|
_ref$onGetTicketsSucc = _ref.onGetTicketsSuccess,
|
|
5190
|
-
onGetTicketsSuccess = _ref$onGetTicketsSucc === void 0 ?
|
|
5300
|
+
onGetTicketsSuccess = _ref$onGetTicketsSucc === void 0 ? _identity : _ref$onGetTicketsSucc,
|
|
5191
5301
|
_ref$onGetTicketsErro = _ref.onGetTicketsError,
|
|
5192
|
-
onGetTicketsError = _ref$onGetTicketsErro === void 0 ?
|
|
5302
|
+
onGetTicketsError = _ref$onGetTicketsErro === void 0 ? _identity : _ref$onGetTicketsErro,
|
|
5193
5303
|
_ref$onLogoutSuccess = _ref.onLogoutSuccess,
|
|
5194
|
-
onLogoutSuccess = _ref$onLogoutSuccess === void 0 ?
|
|
5304
|
+
onLogoutSuccess = _ref$onLogoutSuccess === void 0 ? _identity : _ref$onLogoutSuccess,
|
|
5195
5305
|
_ref$onLogoutError = _ref.onLogoutError,
|
|
5196
|
-
onLogoutError = _ref$onLogoutError === void 0 ?
|
|
5306
|
+
onLogoutError = _ref$onLogoutError === void 0 ? _identity : _ref$onLogoutError,
|
|
5197
5307
|
_ref$theme = _ref.theme,
|
|
5198
5308
|
theme = _ref$theme === void 0 ? 'light' : _ref$theme,
|
|
5199
5309
|
_ref$queryPromoCode = _ref.queryPromoCode,
|
|
@@ -5419,6 +5529,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
5419
5529
|
|
|
5420
5530
|
if (axios.isAxiosError(_context3.t0)) {
|
|
5421
5531
|
onGetTicketsError(_context3.t0);
|
|
5532
|
+
setError(_get(_context3.t0, 'response.data.message'));
|
|
5422
5533
|
}
|
|
5423
5534
|
|
|
5424
5535
|
case 16:
|
|
@@ -5463,7 +5574,7 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
5463
5574
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2() {
|
|
5464
5575
|
var _product_options, _product_options2, _ticket_types;
|
|
5465
5576
|
|
|
5466
|
-
var ticket, optionName, ticketId, ticketQuantity, data, result,
|
|
5577
|
+
var ticket, optionName, ticketId, ticketQuantity, data, result, pageConfigsDataResponse, _pageConfigsData$skip, _pageConfigsData$name, _pageConfigsData$age_, _pageConfigsData$phon, _pageConfigsData$has_, pageConfigsData, skipBillingPage, nameIsRequired, ageIsRequired, phoneIsRequired, hasAddOn, hash, total, _isWindowDefined, userData, access_token, checkoutBody, checkoutResult;
|
|
5467
5578
|
|
|
5468
5579
|
return runtime_1.wrap(function _callee2$(_context2) {
|
|
5469
5580
|
while (1) {
|
|
@@ -5494,52 +5605,60 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
5494
5605
|
|
|
5495
5606
|
case 9:
|
|
5496
5607
|
result = _context2.sent;
|
|
5608
|
+
_context2.next = 12;
|
|
5609
|
+
return getCheckoutPageConfigs();
|
|
5497
5610
|
|
|
5498
|
-
|
|
5499
|
-
|
|
5611
|
+
case 12:
|
|
5612
|
+
pageConfigsDataResponse = _context2.sent;
|
|
5613
|
+
|
|
5614
|
+
if (!(result.status === 200 && pageConfigsDataResponse.status === 200)) {
|
|
5615
|
+
_context2.next = 39;
|
|
5500
5616
|
break;
|
|
5501
5617
|
}
|
|
5502
5618
|
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5619
|
+
pageConfigsData = _get(pageConfigsDataResponse, 'data.attributes') || {};
|
|
5620
|
+
skipBillingPage = (_pageConfigsData$skip = pageConfigsData.skip_billing_page) != null ? _pageConfigsData$skip : false;
|
|
5621
|
+
nameIsRequired = (_pageConfigsData$name = pageConfigsData.names_required) != null ? _pageConfigsData$name : false;
|
|
5622
|
+
ageIsRequired = (_pageConfigsData$age_ = pageConfigsData.age_required) != null ? _pageConfigsData$age_ : false;
|
|
5623
|
+
phoneIsRequired = (_pageConfigsData$phon = pageConfigsData.phone_required) != null ? _pageConfigsData$phon : false;
|
|
5624
|
+
hasAddOn = (_pageConfigsData$has_ = pageConfigsData.has_add_on) != null ? _pageConfigsData$has_ : false;
|
|
5507
5625
|
hash = '';
|
|
5508
5626
|
total = '';
|
|
5627
|
+
_isWindowDefined = typeof window !== 'undefined';
|
|
5628
|
+
_isWindowDefined && window.localStorage.removeItem('add_ons');
|
|
5509
5629
|
|
|
5510
|
-
if (!skipBillingPage) {
|
|
5511
|
-
_context2.next =
|
|
5630
|
+
if (!(skipBillingPage && !hasAddOn)) {
|
|
5631
|
+
_context2.next = 38;
|
|
5512
5632
|
break;
|
|
5513
5633
|
}
|
|
5514
5634
|
|
|
5515
5635
|
// Get user data for checkout data
|
|
5516
|
-
_isWindowDefined = typeof window !== 'undefined';
|
|
5517
5636
|
userData = _isWindowDefined && window.localStorage.getItem('user_data') ? JSON.parse(window.localStorage.getItem('user_data') || '') : {};
|
|
5518
5637
|
access_token = _isWindowDefined && window.localStorage.getItem('access_token') ? window.localStorage.getItem('access_token') || '' : '';
|
|
5519
5638
|
checkoutBody = createCheckoutDataBodyWithDefaultHolder(ticketQuantity, userData);
|
|
5520
5639
|
|
|
5521
5640
|
if (!enableBillingInfoAutoCreate) {
|
|
5522
|
-
_context2.next =
|
|
5641
|
+
_context2.next = 34;
|
|
5523
5642
|
break;
|
|
5524
5643
|
}
|
|
5525
5644
|
|
|
5526
|
-
_context2.next =
|
|
5645
|
+
_context2.next = 31;
|
|
5527
5646
|
return postOnCheckout(checkoutBody, access_token);
|
|
5528
5647
|
|
|
5529
|
-
case
|
|
5648
|
+
case 31:
|
|
5530
5649
|
_context2.t0 = _context2.sent;
|
|
5531
|
-
_context2.next =
|
|
5650
|
+
_context2.next = 35;
|
|
5532
5651
|
break;
|
|
5533
5652
|
|
|
5534
|
-
case
|
|
5653
|
+
case 34:
|
|
5535
5654
|
_context2.t0 = null;
|
|
5536
5655
|
|
|
5537
|
-
case
|
|
5656
|
+
case 35:
|
|
5538
5657
|
checkoutResult = _context2.t0;
|
|
5539
5658
|
hash = _get(checkoutResult, 'data.data.attributes.hash');
|
|
5540
5659
|
total = _get(checkoutResult, 'data.data.attributes.total');
|
|
5541
5660
|
|
|
5542
|
-
case
|
|
5661
|
+
case 38:
|
|
5543
5662
|
onAddToCartSuccess({
|
|
5544
5663
|
skip_billing_page: skipBillingPage,
|
|
5545
5664
|
names_required: nameIsRequired,
|
|
@@ -5547,15 +5666,16 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
5547
5666
|
age_required: ageIsRequired,
|
|
5548
5667
|
event_id: String(eventId),
|
|
5549
5668
|
hash: hash,
|
|
5550
|
-
total: total
|
|
5669
|
+
total: total,
|
|
5670
|
+
hasAddOn: hasAddOn
|
|
5551
5671
|
});
|
|
5552
5672
|
|
|
5553
|
-
case
|
|
5554
|
-
_context2.next =
|
|
5673
|
+
case 39:
|
|
5674
|
+
_context2.next = 44;
|
|
5555
5675
|
break;
|
|
5556
5676
|
|
|
5557
|
-
case
|
|
5558
|
-
_context2.prev =
|
|
5677
|
+
case 41:
|
|
5678
|
+
_context2.prev = 41;
|
|
5559
5679
|
_context2.t1 = _context2["catch"](6);
|
|
5560
5680
|
|
|
5561
5681
|
if (axios.isAxiosError(_context2.t1)) {
|
|
@@ -5563,17 +5683,17 @@ var TicketsContainer = function TicketsContainer(_ref) {
|
|
|
5563
5683
|
setError(_get(_context2.t1, 'response.data.message'));
|
|
5564
5684
|
}
|
|
5565
5685
|
|
|
5566
|
-
case
|
|
5567
|
-
_context2.prev =
|
|
5686
|
+
case 44:
|
|
5687
|
+
_context2.prev = 44;
|
|
5568
5688
|
setHandleBookIsLoading(false);
|
|
5569
|
-
return _context2.finish(
|
|
5689
|
+
return _context2.finish(44);
|
|
5570
5690
|
|
|
5571
|
-
case
|
|
5691
|
+
case 47:
|
|
5572
5692
|
case "end":
|
|
5573
5693
|
return _context2.stop();
|
|
5574
5694
|
}
|
|
5575
5695
|
}
|
|
5576
|
-
}, _callee2, null, [[6,
|
|
5696
|
+
}, _callee2, null, [[6, 41, 44, 47]]);
|
|
5577
5697
|
}));
|
|
5578
5698
|
|
|
5579
5699
|
return function handleBook() {
|
|
@@ -6642,7 +6762,7 @@ var OrderDetailsContainer = function OrderDetailsContainer(_ref) {
|
|
|
6642
6762
|
window.location.assign('/orders');
|
|
6643
6763
|
}
|
|
6644
6764
|
}
|
|
6645
|
-
}, "Back to Orders")))), React.createElement("div", {
|
|
6765
|
+
}, "Back to Orders")))), !(data != null && data.disable_referral) && React.createElement("div", {
|
|
6646
6766
|
className: "personal-link"
|
|
6647
6767
|
}, React.createElement("div", {
|
|
6648
6768
|
className: "link-item"
|
|
@@ -6948,6 +7068,695 @@ var TicketResaleContainer = function TicketResaleContainer(_ref) {
|
|
|
6948
7068
|
}, React.createElement("h3", null, successMessage ? successMessage : error)));
|
|
6949
7069
|
};
|
|
6950
7070
|
|
|
7071
|
+
var addonsWithGroupsAdapter = function addonsWithGroupsAdapter(data) {
|
|
7072
|
+
var addonsData = _extends({}, data);
|
|
7073
|
+
|
|
7074
|
+
var addOnsGroups = _get(addonsData, 'add_on_groups', []);
|
|
7075
|
+
|
|
7076
|
+
var addons = _get(addonsData, 'add_ons', []);
|
|
7077
|
+
|
|
7078
|
+
if (!_isEmpty(addOnsGroups)) {
|
|
7079
|
+
var addOnGroupsWithVariants = [];
|
|
7080
|
+
var addOnsWithoutVariants = [];
|
|
7081
|
+
addons.forEach(function (addon) {
|
|
7082
|
+
if (addon.attributes.addOnGroupId) {
|
|
7083
|
+
// Collect addons groups inside with their variants
|
|
7084
|
+
var currentGroupId = addon.attributes.addOnGroupId;
|
|
7085
|
+
var exsistingGroupIndex = addOnGroupsWithVariants.findIndex(function (item) {
|
|
7086
|
+
return item.id === currentGroupId;
|
|
7087
|
+
});
|
|
7088
|
+
|
|
7089
|
+
if (addOnGroupsWithVariants[exsistingGroupIndex]) {
|
|
7090
|
+
var addOnGroup = addOnGroupsWithVariants[exsistingGroupIndex];
|
|
7091
|
+
addOnGroupsWithVariants[exsistingGroupIndex] = _extends({}, addOnGroup, {
|
|
7092
|
+
variants: [].concat(addOnGroup.variants, addon.attributes)
|
|
7093
|
+
});
|
|
7094
|
+
} else {
|
|
7095
|
+
var group = addOnsGroups.find(function (group) {
|
|
7096
|
+
return group.attributes.id === currentGroupId;
|
|
7097
|
+
}) || {};
|
|
7098
|
+
addOnGroupsWithVariants.push(_extends({}, group.attributes, {
|
|
7099
|
+
variants: [].concat(addon.attributes)
|
|
7100
|
+
}));
|
|
7101
|
+
}
|
|
7102
|
+
} else {
|
|
7103
|
+
addOnsWithoutVariants.push(addon.attributes);
|
|
7104
|
+
}
|
|
7105
|
+
});
|
|
7106
|
+
return addOnGroupsWithVariants.concat(addOnsWithoutVariants);
|
|
7107
|
+
} // Adapt only simple addons data
|
|
7108
|
+
|
|
7109
|
+
|
|
7110
|
+
var adaptedAddons = addons.map(function (addon) {
|
|
7111
|
+
return _extends({}, addon.attributes);
|
|
7112
|
+
});
|
|
7113
|
+
return adaptedAddons;
|
|
7114
|
+
};
|
|
7115
|
+
var cartAdapter = function cartAdapter(cart) {
|
|
7116
|
+
var cartData = _get(cart, 'data.data.attributes', []);
|
|
7117
|
+
|
|
7118
|
+
var expiresAt = cartData.expiresAt,
|
|
7119
|
+
carts_arr = cartData.cart;
|
|
7120
|
+
|
|
7121
|
+
var _ref = carts_arr[0] || {},
|
|
7122
|
+
id = _ref.id,
|
|
7123
|
+
quantity = _ref.quantity;
|
|
7124
|
+
|
|
7125
|
+
return {
|
|
7126
|
+
id: id,
|
|
7127
|
+
quantity: quantity,
|
|
7128
|
+
expiresAt: expiresAt
|
|
7129
|
+
};
|
|
7130
|
+
};
|
|
7131
|
+
|
|
7132
|
+
var AddonComponent = function AddonComponent(_ref) {
|
|
7133
|
+
var _ref$classNamePrefix = _ref.classNamePrefix,
|
|
7134
|
+
classNamePrefix = _ref$classNamePrefix === void 0 ? '' : _ref$classNamePrefix,
|
|
7135
|
+
data = _ref.data,
|
|
7136
|
+
selectOptions = _ref.selectOptions,
|
|
7137
|
+
_ref$handleAddonChang = _ref.handleAddonChange,
|
|
7138
|
+
handleAddonChange = _ref$handleAddonChang === void 0 ? _identity : _ref$handleAddonChang;
|
|
7139
|
+
var id = data.id,
|
|
7140
|
+
name = data.name,
|
|
7141
|
+
active = data.active,
|
|
7142
|
+
stock = data.stock;
|
|
7143
|
+
return React.createElement("div", {
|
|
7144
|
+
key: id,
|
|
7145
|
+
className: classNamePrefix + "_product_select_container"
|
|
7146
|
+
}, React.createElement("div", {
|
|
7147
|
+
className: classNamePrefix + "_product_select_block",
|
|
7148
|
+
key: name
|
|
7149
|
+
}, React.createElement("div", {
|
|
7150
|
+
className: classNamePrefix + "_product_size"
|
|
7151
|
+
}, name), React.createElement("div", {
|
|
7152
|
+
className: classNamePrefix + "_product_qty_select_block"
|
|
7153
|
+
}, !active || !_isNull(stock) && stock <= 0 ? React.createElement("div", {
|
|
7154
|
+
className: "sold_out"
|
|
7155
|
+
}, "SOLD OUT") : React.createElement("div", {
|
|
7156
|
+
className: classNamePrefix + "_product_qty_select"
|
|
7157
|
+
}, React.createElement(Field, {
|
|
7158
|
+
name: id,
|
|
7159
|
+
selectOptions: selectOptions,
|
|
7160
|
+
component: SelectField,
|
|
7161
|
+
onChange: function onChange(e) {
|
|
7162
|
+
var value = e.target.value;
|
|
7163
|
+
handleAddonChange(id, value);
|
|
7164
|
+
}
|
|
7165
|
+
})))));
|
|
7166
|
+
};
|
|
7167
|
+
|
|
7168
|
+
var getNormalizedPrice = function getNormalizedPrice(value) {
|
|
7169
|
+
var minimizedValue = Number(value) / 100;
|
|
7170
|
+
var normalized = minimizedValue.toFixed(2);
|
|
7171
|
+
return normalized;
|
|
7172
|
+
};
|
|
7173
|
+
|
|
7174
|
+
var generateSelectOptions = function generateSelectOptions(minCount, maxCount) {
|
|
7175
|
+
if (minCount === void 0) {
|
|
7176
|
+
minCount = 1;
|
|
7177
|
+
}
|
|
7178
|
+
|
|
7179
|
+
if (maxCount === void 0) {
|
|
7180
|
+
maxCount = 10;
|
|
7181
|
+
}
|
|
7182
|
+
|
|
7183
|
+
var options = [];
|
|
7184
|
+
|
|
7185
|
+
for (var i = minCount; i <= maxCount; i++) {
|
|
7186
|
+
options.push({
|
|
7187
|
+
label: i,
|
|
7188
|
+
value: i
|
|
7189
|
+
});
|
|
7190
|
+
}
|
|
7191
|
+
|
|
7192
|
+
return options;
|
|
7193
|
+
};
|
|
7194
|
+
|
|
7195
|
+
var generateStockBasedOnLimitations = function generateStockBasedOnLimitations(addon, ticketQuantity) {
|
|
7196
|
+
// Generate addon available stock count based on limitations
|
|
7197
|
+
var flagLimitToTicketQuantity = addon.flagLimitToTicketQuantity,
|
|
7198
|
+
maxQuantity = addon.maxQuantity,
|
|
7199
|
+
limitPerTicket = addon.limitPerTicket;
|
|
7200
|
+
var allowedStockCount; // Generate stock
|
|
7201
|
+
|
|
7202
|
+
if (flagLimitToTicketQuantity) {
|
|
7203
|
+
// Limited to ticket quantity case
|
|
7204
|
+
allowedStockCount = ticketQuantity;
|
|
7205
|
+
} else if (maxQuantity && limitPerTicket) {
|
|
7206
|
+
var stockBasedOnLimitPerTicket = limitPerTicket * ticketQuantity; // Both maximum quantity and limited to per ticket selected case, stock is minimum of them
|
|
7207
|
+
|
|
7208
|
+
allowedStockCount = maxQuantity <= stockBasedOnLimitPerTicket ? maxQuantity : stockBasedOnLimitPerTicket;
|
|
7209
|
+
} else if (maxQuantity && !limitPerTicket) {
|
|
7210
|
+
// Limited to maximum quantity case
|
|
7211
|
+
allowedStockCount = maxQuantity;
|
|
7212
|
+
} else if (!maxQuantity && limitPerTicket) {
|
|
7213
|
+
// Limited to per ticket case
|
|
7214
|
+
allowedStockCount = limitPerTicket * ticketQuantity;
|
|
7215
|
+
}
|
|
7216
|
+
|
|
7217
|
+
return Number(allowedStockCount);
|
|
7218
|
+
};
|
|
7219
|
+
|
|
7220
|
+
var filterStockBasedOnAvailability = function filterStockBasedOnAvailability(generatedStock, availableStock) {
|
|
7221
|
+
// Check generated stock count admissibility with addon stock availability
|
|
7222
|
+
var filteredStockCount = generatedStock;
|
|
7223
|
+
|
|
7224
|
+
if (generatedStock) {
|
|
7225
|
+
if (generatedStock > availableStock && !_isNull(availableStock)) {
|
|
7226
|
+
filteredStockCount = availableStock;
|
|
7227
|
+
}
|
|
7228
|
+
} else {
|
|
7229
|
+
// Not set any restriction
|
|
7230
|
+
// Here 10 value is business logic
|
|
7231
|
+
filteredStockCount = 10;
|
|
7232
|
+
|
|
7233
|
+
if (!_isNull(availableStock) && availableStock < filteredStockCount) {
|
|
7234
|
+
filteredStockCount = availableStock;
|
|
7235
|
+
}
|
|
7236
|
+
}
|
|
7237
|
+
|
|
7238
|
+
return filteredStockCount;
|
|
7239
|
+
};
|
|
7240
|
+
|
|
7241
|
+
var getAddonSelectOptions = function getAddonSelectOptions(addons, choosedTicketCount) {
|
|
7242
|
+
var addonsWithOptions = {};
|
|
7243
|
+
var groupsWithSelectedVariantsInfo = {};
|
|
7244
|
+
var groupsWithVariants = {};
|
|
7245
|
+
addons.forEach(function (addon) {
|
|
7246
|
+
// Here addon can act either as simple Addon or Addon Group
|
|
7247
|
+
var id = addon.id,
|
|
7248
|
+
simpleAddonStock = addon.stock,
|
|
7249
|
+
variants = addon.variants,
|
|
7250
|
+
active = addon.active,
|
|
7251
|
+
flagLimitToTicketQuantity = addon.flagLimitToTicketQuantity,
|
|
7252
|
+
maxQuantity = addon.maxQuantity,
|
|
7253
|
+
limitPerTicket = addon.limitPerTicket;
|
|
7254
|
+
|
|
7255
|
+
if (variants) {
|
|
7256
|
+
// Addon Group with inside addon variants case
|
|
7257
|
+
variants.forEach(function (variant) {
|
|
7258
|
+
var variantId = variant.id,
|
|
7259
|
+
variantStock = variant.stock; // null checking is for unlimited stock value
|
|
7260
|
+
|
|
7261
|
+
if (active && (variantStock > 0 || _isNull(variantStock))) {
|
|
7262
|
+
var _extends3;
|
|
7263
|
+
|
|
7264
|
+
// Generate Addon Group allowed stock count based on limitations
|
|
7265
|
+
var stockBasedOnLimitation = generateStockBasedOnLimitations(addon, choosedTicketCount); // Detect if group has limitation or not
|
|
7266
|
+
|
|
7267
|
+
if (flagLimitToTicketQuantity || maxQuantity || limitPerTicket) {
|
|
7268
|
+
// Generate Group with inside variants info
|
|
7269
|
+
if (groupsWithSelectedVariantsInfo[id]) {
|
|
7270
|
+
var _extends2;
|
|
7271
|
+
|
|
7272
|
+
// Set group limit
|
|
7273
|
+
if (groupsWithSelectedVariantsInfo[id].limit < stockBasedOnLimitation) {
|
|
7274
|
+
groupsWithSelectedVariantsInfo[id].limit = stockBasedOnLimitation;
|
|
7275
|
+
} // Set choosed variants info
|
|
7276
|
+
|
|
7277
|
+
|
|
7278
|
+
groupsWithSelectedVariantsInfo[id] = _extends({}, groupsWithSelectedVariantsInfo[id], {
|
|
7279
|
+
choosedVariants: _extends({}, groupsWithSelectedVariantsInfo[id].choosedVariants, (_extends2 = {}, _extends2[variantId] = 0, _extends2))
|
|
7280
|
+
});
|
|
7281
|
+
} else {
|
|
7282
|
+
var _choosedVariants;
|
|
7283
|
+
|
|
7284
|
+
groupsWithSelectedVariantsInfo[id] = {
|
|
7285
|
+
limit: stockBasedOnLimitation,
|
|
7286
|
+
selectedCount: 0,
|
|
7287
|
+
choosedVariants: (_choosedVariants = {}, _choosedVariants[variantId] = 0, _choosedVariants)
|
|
7288
|
+
};
|
|
7289
|
+
}
|
|
7290
|
+
} // Check stock admissibility with addon stock availability
|
|
7291
|
+
|
|
7292
|
+
|
|
7293
|
+
var allowedVariantStockCount = filterStockBasedOnAvailability(stockBasedOnLimitation, variantStock); // Generate options for variant
|
|
7294
|
+
|
|
7295
|
+
var variantOptions = generateSelectOptions(0, allowedVariantStockCount);
|
|
7296
|
+
addonsWithOptions[variantId] = [].concat(variantOptions); // Generate Group with its variants list
|
|
7297
|
+
|
|
7298
|
+
groupsWithVariants[id] = _extends({}, groupsWithVariants[id], (_extends3 = {}, _extends3[variantId] = allowedVariantStockCount, _extends3));
|
|
7299
|
+
}
|
|
7300
|
+
});
|
|
7301
|
+
} else {
|
|
7302
|
+
// Simple addon case, null checking is for unlimited stock value
|
|
7303
|
+
if (active && (simpleAddonStock > 0 || _isNull(simpleAddonStock))) {
|
|
7304
|
+
// Generate Addon Group allowed stock count based on limitations
|
|
7305
|
+
var stockBasedOnLimitation = generateStockBasedOnLimitations(addon, choosedTicketCount); // Check stock admissibility with addon stock availability
|
|
7306
|
+
|
|
7307
|
+
var allowedVariantStockCount = filterStockBasedOnAvailability(stockBasedOnLimitation, simpleAddonStock);
|
|
7308
|
+
var addonOptions = generateSelectOptions(0, allowedVariantStockCount);
|
|
7309
|
+
addonsWithOptions[id] = [].concat(addonOptions);
|
|
7310
|
+
}
|
|
7311
|
+
}
|
|
7312
|
+
});
|
|
7313
|
+
return {
|
|
7314
|
+
addonsWithOptions: addonsWithOptions,
|
|
7315
|
+
groupsWithSelectedVariantsInfo: groupsWithSelectedVariantsInfo,
|
|
7316
|
+
groupsWithVariants: groupsWithVariants
|
|
7317
|
+
};
|
|
7318
|
+
};
|
|
7319
|
+
var getTicketRelatedAddons = function getTicketRelatedAddons(addons, ticketId) {
|
|
7320
|
+
// Filter addons based on choosed ticket
|
|
7321
|
+
var filteredAddons = addons.filter(function (addon) {
|
|
7322
|
+
return _isNull(addon.prerequisiteTicketTypeIds) || addon.prerequisiteTicketTypeIds.includes(ticketId);
|
|
7323
|
+
});
|
|
7324
|
+
return filteredAddons;
|
|
7325
|
+
};
|
|
7326
|
+
var getSortedAddons = function getSortedAddons(addons, sortDirection) {
|
|
7327
|
+
if (sortDirection === void 0) {
|
|
7328
|
+
sortDirection = 'asc';
|
|
7329
|
+
}
|
|
7330
|
+
|
|
7331
|
+
var addonsCopy = [].concat(addons);
|
|
7332
|
+
addonsCopy.forEach(function (addon) {
|
|
7333
|
+
if (addon.variants) {
|
|
7334
|
+
var unsortedVariants = [];
|
|
7335
|
+
addon.variants.forEach(function (variant) {
|
|
7336
|
+
unsortedVariants.push(_extends({}, variant, {
|
|
7337
|
+
sortOrder: Number(variant.sortOrder)
|
|
7338
|
+
}));
|
|
7339
|
+
});
|
|
7340
|
+
addon.sortOrder = Number(addon.variants[0].sortOrder);
|
|
7341
|
+
|
|
7342
|
+
var sortedVariants = _sortBy(unsortedVariants, function (variant) {
|
|
7343
|
+
return variant.sortOrder;
|
|
7344
|
+
});
|
|
7345
|
+
|
|
7346
|
+
addon.variants = sortedVariants;
|
|
7347
|
+
} else {
|
|
7348
|
+
addon.sortOrder = Number(addon.sortOrder);
|
|
7349
|
+
}
|
|
7350
|
+
});
|
|
7351
|
+
|
|
7352
|
+
var sortedAddons = _sortBy(addonsCopy, function (addon) {
|
|
7353
|
+
return addon.sortOrder;
|
|
7354
|
+
});
|
|
7355
|
+
|
|
7356
|
+
if (sortDirection === 'desc') {
|
|
7357
|
+
return _reverse(sortedAddons);
|
|
7358
|
+
}
|
|
7359
|
+
|
|
7360
|
+
return sortedAddons;
|
|
7361
|
+
};
|
|
7362
|
+
var isAtLeastOneAddonSelected = function isAtLeastOneAddonSelected(value) {
|
|
7363
|
+
var selectedAddons = Object.fromEntries(Object.entries(value).filter(function (_ref) {
|
|
7364
|
+
var count = _ref[1];
|
|
7365
|
+
return Number(count) !== 0;
|
|
7366
|
+
}));
|
|
7367
|
+
return !_isEmpty(selectedAddons);
|
|
7368
|
+
};
|
|
7369
|
+
|
|
7370
|
+
var AddonsContainter = function AddonsContainter(_ref) {
|
|
7371
|
+
var _ref$classNamePrefix = _ref.classNamePrefix,
|
|
7372
|
+
classNamePrefix = _ref$classNamePrefix === void 0 ? 'add_on' : _ref$classNamePrefix,
|
|
7373
|
+
_ref$enableBillingInf = _ref.enableBillingInfoAutoCreate,
|
|
7374
|
+
enableBillingInfoAutoCreate = _ref$enableBillingInf === void 0 ? true : _ref$enableBillingInf,
|
|
7375
|
+
_ref$enableTimer = _ref.enableTimer,
|
|
7376
|
+
enableTimer = _ref$enableTimer === void 0 ? false : _ref$enableTimer,
|
|
7377
|
+
_ref$onGetAddonsPageI = _ref.onGetAddonsPageInfoSuccess,
|
|
7378
|
+
onGetAddonsPageInfoSuccess = _ref$onGetAddonsPageI === void 0 ? _identity : _ref$onGetAddonsPageI,
|
|
7379
|
+
_ref$onGetAddonsPageI2 = _ref.onGetAddonsPageInfoError,
|
|
7380
|
+
onGetAddonsPageInfoError = _ref$onGetAddonsPageI2 === void 0 ? _identity : _ref$onGetAddonsPageI2,
|
|
7381
|
+
_ref$onPostCheckoutSu = _ref.onPostCheckoutSuccess,
|
|
7382
|
+
onPostCheckoutSuccess = _ref$onPostCheckoutSu === void 0 ? _identity : _ref$onPostCheckoutSu,
|
|
7383
|
+
_ref$onPostCheckoutEr = _ref.onPostCheckoutError,
|
|
7384
|
+
onPostCheckoutError = _ref$onPostCheckoutEr === void 0 ? _identity : _ref$onPostCheckoutEr,
|
|
7385
|
+
_ref$onConfirmSelecti = _ref.onConfirmSelectionSuccess,
|
|
7386
|
+
onConfirmSelectionSuccess = _ref$onConfirmSelecti === void 0 ? _identity : _ref$onConfirmSelecti,
|
|
7387
|
+
_ref$onConfirmSelecti2 = _ref.onConfirmSelectionError,
|
|
7388
|
+
onConfirmSelectionError = _ref$onConfirmSelecti2 === void 0 ? _identity : _ref$onConfirmSelecti2,
|
|
7389
|
+
_ref$onCountdownFinis = _ref.onCountdownFinish,
|
|
7390
|
+
_onCountdownFinish = _ref$onCountdownFinis === void 0 ? _identity : _ref$onCountdownFinis;
|
|
7391
|
+
|
|
7392
|
+
var eventId = getQueryVariable('event_id');
|
|
7393
|
+
|
|
7394
|
+
var _useState = useState([]),
|
|
7395
|
+
addons = _useState[0],
|
|
7396
|
+
setAddons = _useState[1];
|
|
7397
|
+
|
|
7398
|
+
var _useState2 = useState({}),
|
|
7399
|
+
addonsOptions = _useState2[0],
|
|
7400
|
+
setAddonsOptions = _useState2[1];
|
|
7401
|
+
|
|
7402
|
+
var _useState3 = useState({}),
|
|
7403
|
+
groupsWithSelectedVariants = _useState3[0],
|
|
7404
|
+
setGroupsWithSelectedVariants = _useState3[1];
|
|
7405
|
+
|
|
7406
|
+
var _useState4 = useState({}),
|
|
7407
|
+
groupsWithInitialVariantsValues = _useState4[0],
|
|
7408
|
+
setGroupsWithInitialVariantsValues = _useState4[1];
|
|
7409
|
+
|
|
7410
|
+
var _useState5 = useState(true),
|
|
7411
|
+
loading = _useState5[0],
|
|
7412
|
+
setLoading = _useState5[1];
|
|
7413
|
+
|
|
7414
|
+
var _useState6 = useState(0),
|
|
7415
|
+
cartExpirationTime = _useState6[0],
|
|
7416
|
+
setCartExpirationTime = _useState6[1];
|
|
7417
|
+
|
|
7418
|
+
useEffect(function () {
|
|
7419
|
+
var getAddonsPageInfo = /*#__PURE__*/function () {
|
|
7420
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee() {
|
|
7421
|
+
var cart, _cartAdapter, choosedTicketID, quantity, expiresAt, choosedTicketCount, addonsData, adaptedAddons, ticketRelatedAddons, sortedTicketAddons, _getAddonSelectOption, addonsWithOptions, groupsWithSelectedVariantsInfo, groupsWithVariants;
|
|
7422
|
+
|
|
7423
|
+
return runtime_1.wrap(function _callee$(_context) {
|
|
7424
|
+
while (1) {
|
|
7425
|
+
switch (_context.prev = _context.next) {
|
|
7426
|
+
case 0:
|
|
7427
|
+
_context.prev = 0;
|
|
7428
|
+
|
|
7429
|
+
if (!eventId) {
|
|
7430
|
+
_context.next = 21;
|
|
7431
|
+
break;
|
|
7432
|
+
}
|
|
7433
|
+
|
|
7434
|
+
setLoading(true); // Get choosed ticket info (id, count) from Cart request for addons options calculations
|
|
7435
|
+
|
|
7436
|
+
_context.next = 5;
|
|
7437
|
+
return getCart();
|
|
7438
|
+
|
|
7439
|
+
case 5:
|
|
7440
|
+
cart = _context.sent;
|
|
7441
|
+
_cartAdapter = cartAdapter(cart), choosedTicketID = _cartAdapter.id, quantity = _cartAdapter.quantity, expiresAt = _cartAdapter.expiresAt;
|
|
7442
|
+
choosedTicketCount = Number(quantity);
|
|
7443
|
+
setCartExpirationTime(expiresAt); // Get and collect addons data
|
|
7444
|
+
|
|
7445
|
+
_context.next = 11;
|
|
7446
|
+
return getAddons(eventId);
|
|
7447
|
+
|
|
7448
|
+
case 11:
|
|
7449
|
+
addonsData = _context.sent;
|
|
7450
|
+
adaptedAddons = addonsWithGroupsAdapter(addonsData);
|
|
7451
|
+
ticketRelatedAddons = getTicketRelatedAddons(adaptedAddons, choosedTicketID);
|
|
7452
|
+
sortedTicketAddons = getSortedAddons(ticketRelatedAddons);
|
|
7453
|
+
setAddons(sortedTicketAddons); // Collect addons and addon group options
|
|
7454
|
+
|
|
7455
|
+
_getAddonSelectOption = getAddonSelectOptions(adaptedAddons, choosedTicketCount), addonsWithOptions = _getAddonSelectOption.addonsWithOptions, groupsWithSelectedVariantsInfo = _getAddonSelectOption.groupsWithSelectedVariantsInfo, groupsWithVariants = _getAddonSelectOption.groupsWithVariants;
|
|
7456
|
+
setAddonsOptions(addonsWithOptions);
|
|
7457
|
+
setGroupsWithSelectedVariants(groupsWithSelectedVariantsInfo);
|
|
7458
|
+
setGroupsWithInitialVariantsValues(groupsWithVariants); // Success callback props
|
|
7459
|
+
|
|
7460
|
+
onGetAddonsPageInfoSuccess(addonsData);
|
|
7461
|
+
|
|
7462
|
+
case 21:
|
|
7463
|
+
_context.next = 26;
|
|
7464
|
+
break;
|
|
7465
|
+
|
|
7466
|
+
case 23:
|
|
7467
|
+
_context.prev = 23;
|
|
7468
|
+
_context.t0 = _context["catch"](0);
|
|
7469
|
+
// Callback error props
|
|
7470
|
+
onGetAddonsPageInfoError(_context.t0);
|
|
7471
|
+
|
|
7472
|
+
case 26:
|
|
7473
|
+
_context.prev = 26;
|
|
7474
|
+
setLoading(false);
|
|
7475
|
+
return _context.finish(26);
|
|
7476
|
+
|
|
7477
|
+
case 29:
|
|
7478
|
+
case "end":
|
|
7479
|
+
return _context.stop();
|
|
7480
|
+
}
|
|
7481
|
+
}
|
|
7482
|
+
}, _callee, null, [[0, 23, 26, 29]]);
|
|
7483
|
+
}));
|
|
7484
|
+
|
|
7485
|
+
return function getAddonsPageInfo() {
|
|
7486
|
+
return _ref2.apply(this, arguments);
|
|
7487
|
+
};
|
|
7488
|
+
}();
|
|
7489
|
+
|
|
7490
|
+
getAddonsPageInfo();
|
|
7491
|
+
}, []);
|
|
7492
|
+
|
|
7493
|
+
var recreateGroupVariantsSelectOptions = function recreateGroupVariantsSelectOptions(groupId, changedGroupd) {
|
|
7494
|
+
var choosedVariants = changedGroupd.choosedVariants,
|
|
7495
|
+
limit = changedGroupd.limit,
|
|
7496
|
+
selectedCount = changedGroupd.selectedCount;
|
|
7497
|
+
var remainingGroupStock = limit - selectedCount;
|
|
7498
|
+
var recreatedVariantsOptions = {}; // Regenerate variants allowed stock counts
|
|
7499
|
+
|
|
7500
|
+
for (var variant in choosedVariants) {
|
|
7501
|
+
var variantId = variant;
|
|
7502
|
+
var variantCurrSelectedValue = choosedVariants[variant];
|
|
7503
|
+
var allowedOptionCount = void 0; // Formula for regenerating
|
|
7504
|
+
|
|
7505
|
+
if (remainingGroupStock >= groupsWithInitialVariantsValues[groupId][variantId] - variantCurrSelectedValue) {
|
|
7506
|
+
allowedOptionCount = groupsWithInitialVariantsValues[groupId][variantId];
|
|
7507
|
+
} else {
|
|
7508
|
+
allowedOptionCount = remainingGroupStock + variantCurrSelectedValue;
|
|
7509
|
+
}
|
|
7510
|
+
|
|
7511
|
+
recreatedVariantsOptions[variantId] = generateSelectOptions(0, allowedOptionCount);
|
|
7512
|
+
}
|
|
7513
|
+
|
|
7514
|
+
setAddonsOptions(function (prevState) {
|
|
7515
|
+
return Object.assign({}, prevState, recreatedVariantsOptions);
|
|
7516
|
+
});
|
|
7517
|
+
};
|
|
7518
|
+
|
|
7519
|
+
var onFieldChange = function onFieldChange(id, value, addon) {
|
|
7520
|
+
// If changeableGroup exsists it means that group with limitation variant was changed
|
|
7521
|
+
var changeableGroup = groupsWithSelectedVariants[addon.id];
|
|
7522
|
+
|
|
7523
|
+
if (changeableGroup) {
|
|
7524
|
+
var _extends2, _extends3;
|
|
7525
|
+
|
|
7526
|
+
var currGroupId = addon.id;
|
|
7527
|
+
var currSelectedVariantId = id;
|
|
7528
|
+
var currSelectedVariantCount = Number(value);
|
|
7529
|
+
var currSelectedVariantPrevCount = groupsWithSelectedVariants[currGroupId].choosedVariants[currSelectedVariantId];
|
|
7530
|
+
var currSelectedGroupCount = changeableGroup.selectedCount + (currSelectedVariantCount - currSelectedVariantPrevCount); // Update Group info
|
|
7531
|
+
|
|
7532
|
+
var updatedGroupsWithSelectedVariants = _extends({}, groupsWithSelectedVariants, (_extends3 = {}, _extends3[currGroupId] = _extends({}, groupsWithSelectedVariants[currGroupId], {
|
|
7533
|
+
selectedCount: currSelectedGroupCount,
|
|
7534
|
+
choosedVariants: _extends({}, groupsWithSelectedVariants[currGroupId].choosedVariants, (_extends2 = {}, _extends2[currSelectedVariantId] = currSelectedVariantCount, _extends2))
|
|
7535
|
+
}), _extends3));
|
|
7536
|
+
|
|
7537
|
+
setGroupsWithSelectedVariants(updatedGroupsWithSelectedVariants); // Recreate Select Options for Addon Group Variants
|
|
7538
|
+
|
|
7539
|
+
recreateGroupVariantsSelectOptions(currGroupId, updatedGroupsWithSelectedVariants[currGroupId]);
|
|
7540
|
+
}
|
|
7541
|
+
};
|
|
7542
|
+
|
|
7543
|
+
var handleConfirm = /*#__PURE__*/function () {
|
|
7544
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(values, skipAddonPage) {
|
|
7545
|
+
var _pageConfigsData$skip, _pageConfigsData$name, _pageConfigsData$age_, _pageConfigsData$phon, _pageConfigsData$has_, pageConfigsDataResponse, pageConfigsData, isWindowDefined, skipBillingPage, nameIsRequired, ageIsRequired, phoneIsRequired, hasAddOn, ticketsQuantity, userData, checkoutBody, checkoutResponse, hash, total;
|
|
7546
|
+
|
|
7547
|
+
return runtime_1.wrap(function _callee2$(_context2) {
|
|
7548
|
+
while (1) {
|
|
7549
|
+
switch (_context2.prev = _context2.next) {
|
|
7550
|
+
case 0:
|
|
7551
|
+
_context2.prev = 0;
|
|
7552
|
+
_context2.next = 3;
|
|
7553
|
+
return getCheckoutPageConfigs();
|
|
7554
|
+
|
|
7555
|
+
case 3:
|
|
7556
|
+
pageConfigsDataResponse = _context2.sent;
|
|
7557
|
+
pageConfigsData = _get(pageConfigsDataResponse, 'data.attributes') || {};
|
|
7558
|
+
isWindowDefined = typeof window !== 'undefined';
|
|
7559
|
+
skipBillingPage = (_pageConfigsData$skip = pageConfigsData.skip_billing_page) != null ? _pageConfigsData$skip : false;
|
|
7560
|
+
nameIsRequired = (_pageConfigsData$name = pageConfigsData.names_required) != null ? _pageConfigsData$name : false;
|
|
7561
|
+
ageIsRequired = (_pageConfigsData$age_ = pageConfigsData.age_required) != null ? _pageConfigsData$age_ : false;
|
|
7562
|
+
phoneIsRequired = (_pageConfigsData$phon = pageConfigsData.phone_required) != null ? _pageConfigsData$phon : false;
|
|
7563
|
+
hasAddOn = (_pageConfigsData$has_ = pageConfigsData.has_add_on) != null ? _pageConfigsData$has_ : false;
|
|
7564
|
+
|
|
7565
|
+
if (!(skipBillingPage && enableBillingInfoAutoCreate)) {
|
|
7566
|
+
_context2.next = 33;
|
|
7567
|
+
break;
|
|
7568
|
+
}
|
|
7569
|
+
|
|
7570
|
+
ticketsQuantity = window.localStorage.getItem('quantity');
|
|
7571
|
+
userData = JSON.parse(window.localStorage.getItem('user_data') || '{}');
|
|
7572
|
+
checkoutBody = createCheckoutDataBodyWithDefaultHolder(Number(ticketsQuantity) || 0, userData);
|
|
7573
|
+
_context2.prev = 15;
|
|
7574
|
+
_context2.next = 18;
|
|
7575
|
+
return postOnCheckout(_extends({}, checkoutBody, {
|
|
7576
|
+
attributes: _extends({}, checkoutBody.attributes, !skipAddonPage && {
|
|
7577
|
+
add_ons: values
|
|
7578
|
+
})
|
|
7579
|
+
}));
|
|
7580
|
+
|
|
7581
|
+
case 18:
|
|
7582
|
+
checkoutResponse = _context2.sent;
|
|
7583
|
+
hash = _get(checkoutResponse, 'data.data.attributes.hash');
|
|
7584
|
+
total = _get(checkoutResponse, 'data.data.attributes.total');
|
|
7585
|
+
isWindowDefined && window.localStorage.removeItem('quantity');
|
|
7586
|
+
isWindowDefined && window.localStorage.removeItem('add_ons');
|
|
7587
|
+
onPostCheckoutSuccess(checkoutResponse == null ? void 0 : checkoutResponse.data);
|
|
7588
|
+
onConfirmSelectionSuccess({
|
|
7589
|
+
skip_billing_page: skipBillingPage,
|
|
7590
|
+
names_required: nameIsRequired,
|
|
7591
|
+
phone_required: phoneIsRequired,
|
|
7592
|
+
age_required: ageIsRequired,
|
|
7593
|
+
event_id: String(eventId),
|
|
7594
|
+
hash: hash,
|
|
7595
|
+
total: total,
|
|
7596
|
+
hasAddOn: hasAddOn
|
|
7597
|
+
});
|
|
7598
|
+
_context2.next = 31;
|
|
7599
|
+
break;
|
|
7600
|
+
|
|
7601
|
+
case 27:
|
|
7602
|
+
_context2.prev = 27;
|
|
7603
|
+
_context2.t0 = _context2["catch"](15);
|
|
7604
|
+
onPostCheckoutError(_context2.t0);
|
|
7605
|
+
onConfirmSelectionError(_context2.t0);
|
|
7606
|
+
|
|
7607
|
+
case 31:
|
|
7608
|
+
_context2.next = 34;
|
|
7609
|
+
break;
|
|
7610
|
+
|
|
7611
|
+
case 33:
|
|
7612
|
+
if (isWindowDefined) {
|
|
7613
|
+
if (!skipAddonPage) {
|
|
7614
|
+
window.localStorage.setItem('add_ons', JSON.stringify(values));
|
|
7615
|
+
}
|
|
7616
|
+
|
|
7617
|
+
onConfirmSelectionSuccess({
|
|
7618
|
+
skip_billing_page: skipBillingPage && enableBillingInfoAutoCreate,
|
|
7619
|
+
names_required: nameIsRequired,
|
|
7620
|
+
phone_required: phoneIsRequired,
|
|
7621
|
+
age_required: ageIsRequired,
|
|
7622
|
+
event_id: String(eventId),
|
|
7623
|
+
hasAddOn: hasAddOn
|
|
7624
|
+
});
|
|
7625
|
+
} else {
|
|
7626
|
+
onConfirmSelectionError({
|
|
7627
|
+
error: true,
|
|
7628
|
+
message: 'Window is not defined'
|
|
7629
|
+
});
|
|
7630
|
+
}
|
|
7631
|
+
|
|
7632
|
+
case 34:
|
|
7633
|
+
_context2.next = 39;
|
|
7634
|
+
break;
|
|
7635
|
+
|
|
7636
|
+
case 36:
|
|
7637
|
+
_context2.prev = 36;
|
|
7638
|
+
_context2.t1 = _context2["catch"](0);
|
|
7639
|
+
onConfirmSelectionError(_context2.t1);
|
|
7640
|
+
|
|
7641
|
+
case 39:
|
|
7642
|
+
case "end":
|
|
7643
|
+
return _context2.stop();
|
|
7644
|
+
}
|
|
7645
|
+
}
|
|
7646
|
+
}, _callee2, null, [[0, 36], [15, 27]]);
|
|
7647
|
+
}));
|
|
7648
|
+
|
|
7649
|
+
return function handleConfirm(_x, _x2) {
|
|
7650
|
+
return _ref3.apply(this, arguments);
|
|
7651
|
+
};
|
|
7652
|
+
}();
|
|
7653
|
+
|
|
7654
|
+
var handleClearAddons = function handleClearAddons() {
|
|
7655
|
+
window.localStorage.removeItem('add_ons');
|
|
7656
|
+
};
|
|
7657
|
+
|
|
7658
|
+
if (loading) {
|
|
7659
|
+
return React.createElement("div", {
|
|
7660
|
+
className: classNamePrefix + "_loader"
|
|
7661
|
+
}, React.createElement(CircularProgress$1, {
|
|
7662
|
+
size: 50
|
|
7663
|
+
}));
|
|
7664
|
+
}
|
|
7665
|
+
|
|
7666
|
+
return React.createElement(React.Fragment, null, !!cartExpirationTime && enableTimer && React.createElement(TimerWidget$1, {
|
|
7667
|
+
expires_at: cartExpirationTime,
|
|
7668
|
+
onCountdownFinish: function onCountdownFinish() {
|
|
7669
|
+
handleClearAddons();
|
|
7670
|
+
|
|
7671
|
+
_onCountdownFinish();
|
|
7672
|
+
}
|
|
7673
|
+
}), React.createElement("div", {
|
|
7674
|
+
className: classNamePrefix + "_container"
|
|
7675
|
+
}, React.createElement("div", {
|
|
7676
|
+
className: classNamePrefix + "_block"
|
|
7677
|
+
}, React.createElement("div", {
|
|
7678
|
+
className: classNamePrefix + "_line_block"
|
|
7679
|
+
}, React.createElement("p", {
|
|
7680
|
+
className: classNamePrefix + "_info_title"
|
|
7681
|
+
}, "Get Your Tickets"), React.createElement("button", {
|
|
7682
|
+
type: "button",
|
|
7683
|
+
className: classNamePrefix + "_skip",
|
|
7684
|
+
onClick: function onClick() {
|
|
7685
|
+
handleClearAddons();
|
|
7686
|
+
handleConfirm({}, true);
|
|
7687
|
+
}
|
|
7688
|
+
}, "Skip")), React.createElement("div", {
|
|
7689
|
+
className: classNamePrefix + "_title"
|
|
7690
|
+
}, "UPGRADES & ADD-ONS"), React.createElement("div", {
|
|
7691
|
+
className: classNamePrefix + "_subtitle"
|
|
7692
|
+
}, "PLEASE SELECT FROM THE OPTIONAL ADD-ONS BELOW"), React.createElement(Formik, {
|
|
7693
|
+
initialValues: {},
|
|
7694
|
+
onSubmit: function onSubmit(values) {
|
|
7695
|
+
handleConfirm(values);
|
|
7696
|
+
}
|
|
7697
|
+
}, function (_ref4) {
|
|
7698
|
+
var values = _ref4.values;
|
|
7699
|
+
var isConfirmDisabled = !isAtLeastOneAddonSelected(values);
|
|
7700
|
+
return React.createElement(Form, {
|
|
7701
|
+
autoComplete: "off",
|
|
7702
|
+
className: "form_holder"
|
|
7703
|
+
}, React.createElement(React.Fragment, null, addons.map(function (addon) {
|
|
7704
|
+
var price = addon.feeIncluded ? addon.price : addon.cost;
|
|
7705
|
+
var isAddonFree = Number(price) === 0;
|
|
7706
|
+
var addonNormalizedPrice = isAddonFree ? 'FREE' : currencyNormalizerCreator(getNormalizedPrice(price), addon.currency);
|
|
7707
|
+
return React.createElement("div", {
|
|
7708
|
+
key: addon.id,
|
|
7709
|
+
className: classNamePrefix + "_product_block"
|
|
7710
|
+
}, React.createElement("div", {
|
|
7711
|
+
className: classNamePrefix + "_product_images"
|
|
7712
|
+
}, addon.imageUrl && React.createElement("div", {
|
|
7713
|
+
className: classNamePrefix + "_product_image_block"
|
|
7714
|
+
}, React.createElement("img", {
|
|
7715
|
+
src: addon.imageUrl,
|
|
7716
|
+
alt: "No Data"
|
|
7717
|
+
}))), React.createElement("div", {
|
|
7718
|
+
className: classNamePrefix + "_product_info_block"
|
|
7719
|
+
}, React.createElement("div", {
|
|
7720
|
+
className: classNamePrefix + "_product_title"
|
|
7721
|
+
}, addon.name), React.createElement("div", {
|
|
7722
|
+
className: classNamePrefix + "_product_price"
|
|
7723
|
+
}, addonNormalizedPrice, !isAddonFree && React.createElement("span", {
|
|
7724
|
+
className: classNamePrefix + "_product_fee"
|
|
7725
|
+
}, addon.feeIncluded ? '(incl. Fees)' : '(excl. Fees)'))), React.createElement("div", {
|
|
7726
|
+
className: classNamePrefix + "_product_desc",
|
|
7727
|
+
dangerouslySetInnerHTML: createMarkup(addon.description)
|
|
7728
|
+
}), React.createElement("div", {
|
|
7729
|
+
className: classNamePrefix + "_product_select_container"
|
|
7730
|
+
}, addon.variants ? addon.variants.map(function (variant) {
|
|
7731
|
+
return (// Group Variants
|
|
7732
|
+
React.createElement(AddonComponent, {
|
|
7733
|
+
key: variant.id,
|
|
7734
|
+
data: variant,
|
|
7735
|
+
selectOptions: addonsOptions[variant.id],
|
|
7736
|
+
classNamePrefix: classNamePrefix,
|
|
7737
|
+
handleAddonChange: function handleAddonChange(id, value) {
|
|
7738
|
+
return onFieldChange(id, value, addon);
|
|
7739
|
+
}
|
|
7740
|
+
})
|
|
7741
|
+
);
|
|
7742
|
+
}) : // Simple Addon
|
|
7743
|
+
React.createElement(AddonComponent, {
|
|
7744
|
+
key: addon.id,
|
|
7745
|
+
data: addon,
|
|
7746
|
+
selectOptions: addonsOptions[addon.id],
|
|
7747
|
+
classNamePrefix: classNamePrefix,
|
|
7748
|
+
handleAddonChange: function handleAddonChange(id, value) {
|
|
7749
|
+
return onFieldChange(id, value, addon);
|
|
7750
|
+
}
|
|
7751
|
+
})));
|
|
7752
|
+
}), React.createElement("button", {
|
|
7753
|
+
type: "submit",
|
|
7754
|
+
className: (isConfirmDisabled ? classNamePrefix + "_is_disabled" : '') + " " + classNamePrefix + "_submit_button",
|
|
7755
|
+
disabled: isConfirmDisabled
|
|
7756
|
+
}, "CONFIRM SELECTION")));
|
|
7757
|
+
}))));
|
|
7758
|
+
};
|
|
7759
|
+
|
|
6951
7760
|
var style$5 = {
|
|
6952
7761
|
position: 'absolute',
|
|
6953
7762
|
top: '10%',
|
|
@@ -7127,5 +7936,5 @@ var RsvpContainer = function RsvpContainer(_ref) {
|
|
|
7127
7936
|
}, "RSVP"))))))));
|
|
7128
7937
|
};
|
|
7129
7938
|
|
|
7130
|
-
export { BillingInfoContainer, ConfirmationContainer, ForgotPasswordModal, LoginModal, MyTicketsContainer, OrderDetailsContainer, PaymentContainer, RedirectModal, ResetPasswordContainer, RsvpContainer, TicketResaleContainer, TicketsContainer, createFixedFloatNormalizer, currencyNormalizerCreator, setConfigs };
|
|
7939
|
+
export { AddonsContainter, BillingInfoContainer, ConfirmationContainer, ForgotPasswordModal, LoginModal, MyTicketsContainer, OrderDetailsContainer, PaymentContainer, RedirectModal, ResetPasswordContainer, RsvpContainer, TicketResaleContainer, TicketsContainer, createFixedFloatNormalizer, currencyNormalizerCreator, setConfigs };
|
|
7131
7940
|
//# sourceMappingURL=tf-checkout-react.esm.js.map
|