wickes-css2 2.103.0-RG-1756-incorrect-payment-method-when-proceed-payment-with-gift-card.2 → 2.103.0-RG-1742-billie-30-60-90-days.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/Readme.md +3 -1
- package/build/css/components/checkout-payment-details-v2.css +1 -1
- package/build/js/account-members.min.js +1 -1
- package/build/js/add-project-list-id.min.js +1 -1
- package/build/js/address-book.min.js +1 -1
- package/build/js/basket.min.js +2 -2
- package/build/js/bundle.min.js +1 -1
- package/build/js/change-password.min.js +1 -1
- package/build/js/checkout.min.js +2 -2
- package/build/js/emulation.min.js +35 -273
- package/build/js/general.bundle.min.js +1 -1
- package/build/js/merged-checkout.min.js +2 -2
- package/build/js/page/components/order-summary.js +25 -42
- package/build/js/page/utils/validation.js +1 -46
- package/build/js/pdp.bundle.min.js +1 -1
- package/build/js/personal-details.min.js +1 -1
- package/build/js/plp.bundle.min.js +1 -1
- package/build/js/project-list.min.js +1 -44
- package/build/js/quiz.min.js +1 -1
- package/build/js/track-my-order.min.js +1 -1
- package/package.json +2 -2
- package/src/components/checkout-payment-details-v2.hbs +17 -5
- package/src/components/checkout-payment-repayment-terms.hbs +25 -0
- package/src/elements/form-row.hbs +1 -1
- package/src/elements/input.hbs +2 -31
- package/src/js/components/general/notification.js +1 -2
- package/src/js/components/toggle-password-visibility.js +58 -0
- package/src/js/emulation/checkout-payment-details.js +14 -23
- package/src/js/emulation/forms.js +21 -8
- package/src/js/page/components/order-summary.js +25 -42
- package/src/js/page/utils/validation.js +1 -46
- package/src/layouts/checkout.hbs +5 -1
- package/src/page_my-account_change-password.html +0 -1
- package/src/page_payment-details-with-gift-card.html +5 -8
- package/src/scss/components/checkout-payment-details-v2.scss +1 -2
- package/src/scss/components/checkout-payment-repayment-terms.scss +103 -0
- package/src/scss/pages/page_checkout_delivery-new.scss +0 -26
- package/build/css/components/energy-efficiency.css +0 -1
- package/build/css/components/global-search.css +0 -1
- package/build/css/components/kitchen/strip-stickers.css +0 -1
- package/build/css/components/legal-info.css +0 -1
- package/build/css/components/loader.css +0 -1
- package/build/css/components/long-banner.css +0 -1
- package/build/css/components/payment-details-BPS-form.css +0 -1
- package/build/css/components/pdf-loader.css +0 -1
- package/build/css/components/pdp-favourite-product.css +0 -1
- package/build/css/components/plp-favourite-product.css +0 -1
- package/build/css/components/price-block-v2-critical.css +0 -1
- package/build/css/components/price-block-v2.css +0 -1
- package/build/css/components/special-opening-schedule-v2.css +0 -1
- package/build/css/components/special-opening-schedule.css +0 -1
- package/build/css/components/store-locator-about.css +0 -1
- package/build/css/components/store-locator-facilities.css +0 -1
- package/build/css/components/store-locator-lookup.css +0 -1
- package/build/css/components/store-locator-v2-details.css +0 -1
- package/build/css/components/strip-stickers.css +0 -1
- package/build/css/components/tile-calculator.css +0 -1
- package/build/css/components/trade-pro-extras.css +0 -1
- package/build/css/pages/bicester-header.css +0 -1
- package/build/css/pages/bicester-project-list.css +0 -1
- package/build/css/pages/checkout-new.css +0 -1
- package/build/css/pages/checkout.css +0 -1
- package/build/css/pages/design-appointment.css +0 -1
- package/build/css/pages/home-movers.css +0 -1
- package/build/css/pages/iframe-paypage.css +0 -1
- package/build/css/pages/my-account-v2.css +0 -1
- package/build/css/pages/my-account.css +0 -1
- package/build/css/pages/new-usp-bar.css +0 -1
- package/build/css/pages/oldweb_header.css +0 -1
- package/build/css/pages/page_account-deletion.css +0 -1
- package/build/css/pages/page_act-trade-pro.css +0 -1
- package/build/css/pages/page_address-book.css +0 -1
- package/build/css/pages/page_bathroom-trends.css +0 -1
- package/build/css/pages/page_book-consultant-thank-you-new.css +0 -1
- package/build/css/pages/page_change-password.css +0 -1
- package/build/css/pages/page_checkout-payment-details.css +0 -1
- package/build/css/pages/page_checkout_delivery-new.css +0 -1
- package/build/css/pages/page_cms_homepage.css +0 -1
- package/build/css/pages/page_contact-us.css +0 -1
- package/build/css/pages/page_content.css +0 -1
- package/build/css/pages/page_coshh.css +0 -1
- package/build/css/pages/page_default-store.css +0 -1
- package/build/css/pages/page_discount.css +0 -1
- package/build/css/pages/page_empty-basket.css +0 -1
- package/build/css/pages/page_favourite-list.css +0 -1
- package/build/css/pages/page_fdl-management.css +0 -1
- package/build/css/pages/page_fdl-product.css +0 -1
- package/build/css/pages/page_fi.css +0 -1
- package/build/css/pages/page_forgotten-password.css +0 -1
- package/build/css/pages/page_half-login.css +0 -1
- package/build/css/pages/page_home.css +0 -1
- package/build/css/pages/page_hotspot-guttering.css +0 -1
- package/build/css/pages/page_in-store-checkout.css +0 -1
- package/build/css/pages/page_in-store_MVP_order-summary-submitted.css +0 -1
- package/build/css/pages/page_in-store_MVP_order-summary.css +0 -1
- package/build/css/pages/page_installation.css +0 -1
- package/build/css/pages/page_installer.css +0 -1
- package/build/css/pages/page_installer_form.css +0 -1
- package/build/css/pages/page_kitchen-claims.css +0 -1
- package/build/css/pages/page_kitchen-list.css +0 -1
- package/build/css/pages/page_login.css +0 -1
- package/build/css/pages/page_marketing-preferences.css +0 -1
- package/build/css/pages/page_merged-basket.css +0 -1
- package/build/css/pages/page_my-account_tradePro.css +0 -1
- package/build/css/pages/page_my-order.css +0 -1
- package/build/css/pages/page_my-orders.css +0 -1
- package/build/css/pages/page_new-checkout-forgot.css +0 -1
- package/build/css/pages/page_new-checkout_login-register.css +0 -1
- package/build/css/pages/page_no-results.css +0 -1
- package/build/css/pages/page_online-exclusive.css +0 -1
- package/build/css/pages/page_paint-mixing-error.css +0 -1
- package/build/css/pages/page_personal-details.css +0 -1
- package/build/css/pages/page_pre_home.css +0 -1
- package/build/css/pages/page_pre_home_thank-you.css +0 -1
- package/build/css/pages/page_product-details-critical.css +0 -1
- package/build/css/pages/page_product-details-v2-critical.css +0 -1
- package/build/css/pages/page_product-details-v2.css +0 -1
- package/build/css/pages/page_product-details.css +0 -1
- package/build/css/pages/page_product_search.css +0 -1
- package/build/css/pages/page_products-list-combined.css +0 -1
- package/build/css/pages/page_products-list-phone.css +0 -1
- package/build/css/pages/page_products-list.css +0 -1
- package/build/css/pages/page_products-list_v2.css +0 -1
- package/build/css/pages/page_projects.css +0 -1
- package/build/css/pages/page_quiz.css +0 -1
- package/build/css/pages/page_rate-review.css +0 -1
- package/build/css/pages/page_registration.css +0 -1
- package/build/css/pages/page_shopping-cart-v2.css +0 -1
- package/build/css/pages/page_shopping-cart.css +0 -1
- package/build/css/pages/page_split-orders.css +0 -1
- package/build/css/pages/page_store-locator-details.css +0 -1
- package/build/css/pages/page_store-locator.css +0 -1
- package/build/css/pages/page_thankyou.css +0 -1
- package/build/css/pages/page_ti.css +0 -1
- package/build/css/pages/page_tiling-calculator-generic.css +0 -1
- package/build/css/pages/page_top-rated.css +0 -1
- package/build/css/pages/page_track-my-order.css +0 -1
- package/build/css/pages/page_track_your_order.css +0 -1
- package/build/css/pages/page_trade_installer.css +0 -1
- package/build/css/pages/page_upd-pass.css +0 -1
- package/build/css/pages/page_wismo-details.css +0 -1
- package/build/css/pages/page_wismo-order-history.css +0 -1
- package/build/css/pages/page_wismo-orders.css +0 -1
- package/build/css/pages/print_quiz.css +0 -1
- package/build/css/pages/sticky_header.css +0 -1
- package/build/css/pages/tradePro-about.css +0 -1
- package/build/css/pages/tradePro-address-book.css +0 -1
- package/build/css/pages/tradePro-delivery-details.css +0 -1
- package/build/css/pages/tradePro-discount.css +0 -1
- package/build/css/pages/tradePro-order-history.css +0 -1
- package/build/css/pages/tradePro-payment-details.css +0 -1
- package/build/css/pages/tradePro-rewards-old.css +0 -1
- package/build/css/pages/tradePro-rewards.css +0 -1
- package/build/css/pages/tradePro-signup.css +0 -1
- package/build/css/pages/tradePro-thankyou-activate.css +0 -1
- package/build/img/giftcard.svg +0 -28
- package/build/js/gift-cards.min.js +0 -1
- package/build/js/page/components/gift-cards.js +0 -887
- package/build/js/page/components/toggle-password-visibility.js +0 -22
- package/build/js/page/utils/gift-cards-utils.js +0 -151
- package/build/js/page/utils/input-handling.js +0 -92
- package/build/js/page/utils/show-hide-input.js +0 -28
- package/build/js/toggle-password-visibility.min.js +0 -1
- package/src/components/gift-cards-hint.hbs +0 -9
- package/src/components/gift-cards.hbs +0 -90
- package/src/components/giftcard-chip.hbs +0 -23
- package/src/components/giftcard-summary.hbs +0 -6
- package/src/img/giftcard.svg +0 -28
- package/src/js/emulation/checkout-data.js +0 -35
- package/src/js/emulation/gift-cards.js +0 -205
- package/src/js/page/components/gift-cards.js +0 -887
- package/src/js/page/components/toggle-password-visibility.js +0 -22
- package/src/js/page/utils/gift-cards-utils.js +0 -151
- package/src/js/page/utils/input-handling.js +0 -92
- package/src/js/page/utils/show-hide-input.js +0 -28
- package/src/scss/components/_gift-cards.scss +0 -361
|
@@ -3428,42 +3428,6 @@ Wick.checkLocalEnv = (function () {
|
|
|
3428
3428
|
}
|
|
3429
3429
|
})();
|
|
3430
3430
|
|
|
3431
|
-
var Wick = Wick || {};
|
|
3432
|
-
Wick.CheckoutData = (function () {
|
|
3433
|
-
return {
|
|
3434
|
-
//TODO: update after BE confirmation
|
|
3435
|
-
successGiftCardData: {
|
|
3436
|
-
"subTotal": "£100.00",
|
|
3437
|
-
"deliveryCost": "£4.00",
|
|
3438
|
-
"freeDelivery": false,
|
|
3439
|
-
"clickAndCollectCost": "FREE",
|
|
3440
|
-
"totalForDelivery": "£69.00",
|
|
3441
|
-
"totalForClickAndCollect": "FREE",
|
|
3442
|
-
"total": "£0.00",
|
|
3443
|
-
"vat": "£11.17",
|
|
3444
|
-
"deliveryOrder": true,
|
|
3445
|
-
"clickAndCollectOrder": false,
|
|
3446
|
-
"discountTotal": "£2.00",
|
|
3447
|
-
"giftCardApplied": "-£100.00",
|
|
3448
|
-
"discounts": [
|
|
3449
|
-
"Spend over £10 and get £2 fixed discount"
|
|
3450
|
-
],
|
|
3451
|
-
"promotionsInfo": [
|
|
3452
|
-
{
|
|
3453
|
-
"description": "Spend over £10 and get £2 fixed discount",
|
|
3454
|
-
"usedCouponCode": "RT_02"
|
|
3455
|
-
}
|
|
3456
|
-
],
|
|
3457
|
-
"subTotalWithDeliveryCost": "£69.00",
|
|
3458
|
-
"net": false,
|
|
3459
|
-
"subtotalWithDeliveryAndDiscounts": "£67.00",
|
|
3460
|
-
"discountAmounts": [],
|
|
3461
|
-
"goodsTotalWithoutDiscount": "£65.00",
|
|
3462
|
-
"charityPrice": ""
|
|
3463
|
-
},
|
|
3464
|
-
}
|
|
3465
|
-
})();
|
|
3466
|
-
|
|
3467
3431
|
var Wick = Wick || {};
|
|
3468
3432
|
Wick.DeliveryDetails = (function () {
|
|
3469
3433
|
var $page = $('.page_checkout-delivery-details');
|
|
@@ -3504,33 +3468,24 @@ var Wick = Wick || {};
|
|
|
3504
3468
|
|
|
3505
3469
|
Wick.PaymentDetails = (function () {
|
|
3506
3470
|
var $btnEnterDetails = $('.btn-enter-details'),
|
|
3471
|
+
$form = $btnEnterDetails.parents('form'),
|
|
3507
3472
|
isGuestPage = $('.page_checkout-payment-details_guest').length;
|
|
3508
3473
|
|
|
3509
3474
|
function bindEvents () {
|
|
3510
|
-
$btnEnterDetails.on('click', function
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
var addressManualOk = manualLine1 && manualTown && manualPost;
|
|
3522
|
-
|
|
3523
|
-
if (nameVal && (addressFinderOk || addressManualOk)) {
|
|
3524
|
-
var $details = $('.checkout-payment-details__card-details');
|
|
3525
|
-
$details.removeClass('checkout-payment-details__card-details_hidden');
|
|
3526
|
-
$('html, body').animate({ scrollTop: $details.offset().top - 15 }, 700);
|
|
3527
|
-
return;
|
|
3528
|
-
}
|
|
3529
|
-
|
|
3530
|
-
var formEl = $scope.closest('form').get(0) || $scope.get(0);
|
|
3531
|
-
if (formEl && Wick.Forms && Wick.Forms.showValidationErrors) {
|
|
3532
|
-
Wick.Forms.showValidationErrors(formEl);
|
|
3475
|
+
$btnEnterDetails.on('click', function(){
|
|
3476
|
+
if ($form.find('#card-name').val().length &&
|
|
3477
|
+
$form.find('#first-line-address').val().length &&
|
|
3478
|
+
$form.find('#address-line-1').val().length &&
|
|
3479
|
+
$form.find('#town-city').val().length &&
|
|
3480
|
+
$form.find('#postcode_additional').val().length){
|
|
3481
|
+
$('.checkout-payment-details__card-details').removeClass('checkout-payment-details__card-details_hidden');
|
|
3482
|
+
$('html, body').animate({
|
|
3483
|
+
scrollTop: $('.checkout-payment-details__card-details').offset().top - 15
|
|
3484
|
+
}, 700);
|
|
3485
|
+
return false;
|
|
3533
3486
|
}
|
|
3487
|
+
Wick.Forms.showValidationErrors($form[0]);
|
|
3488
|
+
return false;
|
|
3534
3489
|
});
|
|
3535
3490
|
|
|
3536
3491
|
$('.checkout-payment-details__card-details').on('submit', function(){
|
|
@@ -4067,16 +4022,11 @@ Wick.Forms = (function(){
|
|
|
4067
4022
|
|
|
4068
4023
|
var showValidationErrors = function (form, errorMsg) {
|
|
4069
4024
|
var $form = $(form);
|
|
4070
|
-
var $rows = $form.find(fieldRow).not('[data-no-global-validation]');
|
|
4071
|
-
if (!$rows.length) return;
|
|
4072
|
-
$rows.find('.form-row__error').remove();
|
|
4073
|
-
|
|
4074
4025
|
if (!$form.hasClass(formInvalid)) {
|
|
4075
|
-
$form.
|
|
4026
|
+
$form.find('.form-row__error').remove();
|
|
4027
|
+
$form.addClass(formInvalid).find(fieldRow).append(validationError(errorMsg)).addClass(rowValidationError);
|
|
4076
4028
|
}
|
|
4077
4029
|
|
|
4078
|
-
$rows.append(validationError(errorMsg)).addClass(rowValidationError);
|
|
4079
|
-
|
|
4080
4030
|
var $firstMsg = $form.find(fieldRow).first();
|
|
4081
4031
|
if($firstMsg.length && !isElementInViewport($firstMsg)){
|
|
4082
4032
|
var inModal = $firstMsg.closest('.modal').length,
|
|
@@ -4223,9 +4173,27 @@ Wick.Forms = (function(){
|
|
|
4223
4173
|
}
|
|
4224
4174
|
|
|
4225
4175
|
function isNotEmpty(field){
|
|
4226
|
-
|
|
4176
|
+
var $field = $(field);
|
|
4177
|
+
var type = ($field.attr('type') || '').toLowerCase();
|
|
4178
|
+
|
|
4179
|
+
if (type === 'checkbox') {
|
|
4180
|
+
return $field.is(':checked');
|
|
4181
|
+
}
|
|
4182
|
+
|
|
4183
|
+
if (type === 'radio') {
|
|
4184
|
+
var name = $field.attr('name');
|
|
4185
|
+
if (!name) return false;
|
|
4186
|
+
|
|
4187
|
+
var $scope = $field.closest('[data-row-required]');
|
|
4188
|
+
if (!$scope.length) $scope = $field.closest('form');
|
|
4189
|
+
|
|
4190
|
+
return $scope.find('input[type="radio"][name="' + name.replace(/"/g, '\\"') + '"]').is(':checked');
|
|
4191
|
+
}
|
|
4192
|
+
|
|
4193
|
+
return !!$field.val();
|
|
4227
4194
|
}
|
|
4228
4195
|
|
|
4196
|
+
|
|
4229
4197
|
if ($(form).is('#form-checkout-your-details')) {
|
|
4230
4198
|
var requiredFields = $(form).find('[data-row-required]:visible :input');
|
|
4231
4199
|
if (_.every(requiredFields, isNotEmpty)){
|
|
@@ -4386,212 +4354,6 @@ $(document).ready(function () {
|
|
|
4386
4354
|
Wick.GenerateProjectIdLocal.init();
|
|
4387
4355
|
});
|
|
4388
4356
|
|
|
4389
|
-
(function () {
|
|
4390
|
-
if (!window.Wick) return;
|
|
4391
|
-
|
|
4392
|
-
const M_OK = '0000000000000001';
|
|
4393
|
-
const M_ZERO_BALANCE = '0000000000000000';
|
|
4394
|
-
const M_NOT_RECOGNISED = '1111111111111111';
|
|
4395
|
-
const M_LOCKED = '2222222222222222';
|
|
4396
|
-
const M_MERCHANT_ISSUE = '3333333333333333';
|
|
4397
|
-
const M_EXCHANGE = '4040404040404040';
|
|
4398
|
-
const M_EXPIRED = '4444444444444444';
|
|
4399
|
-
const M_INVALID = '5555555555555555';
|
|
4400
|
-
const M_ADDED = '6666666666666666';
|
|
4401
|
-
const M_CONFIG_PROBLEM = '9999999999999999';
|
|
4402
|
-
|
|
4403
|
-
const M_PAY_ERR_101 = '7777777777777101';
|
|
4404
|
-
const M_PAY_ERR_102 = '7777777777777102';
|
|
4405
|
-
const M_PAY_ERR_103 = '7777777777777103';
|
|
4406
|
-
|
|
4407
|
-
const PAY_ERROR_CARD_MAP = {
|
|
4408
|
-
[M_PAY_ERR_101]: 101,
|
|
4409
|
-
[M_PAY_ERR_102]: 102,
|
|
4410
|
-
[M_PAY_ERR_103]: 103,
|
|
4411
|
-
};
|
|
4412
|
-
|
|
4413
|
-
const GIFT_CARDS_LIMIT = 3;
|
|
4414
|
-
const BASE_ORDER_TOTAL = 300.00;
|
|
4415
|
-
|
|
4416
|
-
let PAY_ERROR_CODE;
|
|
4417
|
-
|
|
4418
|
-
const mock = {
|
|
4419
|
-
orderTotal: BASE_ORDER_TOTAL,
|
|
4420
|
-
giftCardTotal: 0.00,
|
|
4421
|
-
giftCards: [],
|
|
4422
|
-
};
|
|
4423
|
-
|
|
4424
|
-
const toMasked = (num) => `************${String(num || '').slice(-5)}`;
|
|
4425
|
-
|
|
4426
|
-
function recomputeTotalsAndOrder() {
|
|
4427
|
-
mock.giftCardTotal = mock.giftCards.reduce((sum, c) => sum + Number(c.amountToRedeem || 0), 0);
|
|
4428
|
-
const remaining = Math.max(0, BASE_ORDER_TOTAL - mock.giftCardTotal);
|
|
4429
|
-
mock.orderTotal = Number(remaining.toFixed(2));
|
|
4430
|
-
}
|
|
4431
|
-
|
|
4432
|
-
function applyWithClamp(requestedAmount) {
|
|
4433
|
-
const remaining = Math.max(0, BASE_ORDER_TOTAL - mock.giftCardTotal);
|
|
4434
|
-
const applied = Math.min(Number(requestedAmount || 0), remaining);
|
|
4435
|
-
return Number(applied.toFixed(2));
|
|
4436
|
-
}
|
|
4437
|
-
|
|
4438
|
-
function successPayload() {
|
|
4439
|
-
return {
|
|
4440
|
-
orderTotal: mock.orderTotal,
|
|
4441
|
-
giftCardTotal: mock.giftCardTotal,
|
|
4442
|
-
giftCards: mock.giftCards.slice()
|
|
4443
|
-
};
|
|
4444
|
-
}
|
|
4445
|
-
|
|
4446
|
-
function getGiftCardErrorCode(giftCardNumber) {
|
|
4447
|
-
switch (giftCardNumber) {
|
|
4448
|
-
case M_NOT_RECOGNISED:
|
|
4449
|
-
return 10;
|
|
4450
|
-
case M_LOCKED:
|
|
4451
|
-
return 16;
|
|
4452
|
-
case M_MERCHANT_ISSUE:
|
|
4453
|
-
return 20;
|
|
4454
|
-
case M_EXCHANGE:
|
|
4455
|
-
return 40;
|
|
4456
|
-
case M_EXPIRED:
|
|
4457
|
-
return 60;
|
|
4458
|
-
case M_INVALID:
|
|
4459
|
-
return 99;
|
|
4460
|
-
case M_ADDED:
|
|
4461
|
-
return 89;
|
|
4462
|
-
case M_CONFIG_PROBLEM:
|
|
4463
|
-
return -1;
|
|
4464
|
-
default:
|
|
4465
|
-
return null;
|
|
4466
|
-
}
|
|
4467
|
-
}
|
|
4468
|
-
|
|
4469
|
-
function addGiftCardMock(giftCardNumber) {
|
|
4470
|
-
const errorCode = getGiftCardErrorCode(giftCardNumber);
|
|
4471
|
-
|
|
4472
|
-
if (Number.isFinite(errorCode)) {
|
|
4473
|
-
return Promise.reject({ code: errorCode });
|
|
4474
|
-
}
|
|
4475
|
-
|
|
4476
|
-
let requested;
|
|
4477
|
-
if (giftCardNumber === M_OK) {
|
|
4478
|
-
requested = 123.45;
|
|
4479
|
-
} else if (giftCardNumber === M_ZERO_BALANCE) {
|
|
4480
|
-
requested = 0;
|
|
4481
|
-
} else {
|
|
4482
|
-
requested = 50.00;
|
|
4483
|
-
}
|
|
4484
|
-
|
|
4485
|
-
if (mock.giftCards.length >= GIFT_CARDS_LIMIT) {
|
|
4486
|
-
return Promise.reject({ code: 20 });
|
|
4487
|
-
}
|
|
4488
|
-
|
|
4489
|
-
const beforeTotal = mock.giftCardTotal;
|
|
4490
|
-
const applied = applyWithClamp(requested);
|
|
4491
|
-
|
|
4492
|
-
mock.giftCards.push({
|
|
4493
|
-
id: (Date.now() + Math.random()).toString(36),
|
|
4494
|
-
maskedNumber: toMasked(giftCardNumber),
|
|
4495
|
-
amountToRedeem: applied,
|
|
4496
|
-
originalNumber: giftCardNumber,
|
|
4497
|
-
});
|
|
4498
|
-
|
|
4499
|
-
if (mock.giftCards.length === GIFT_CARDS_LIMIT) {
|
|
4500
|
-
const leftover = Math.max(0, BASE_ORDER_TOTAL - (beforeTotal + applied));
|
|
4501
|
-
if (leftover > 0) {
|
|
4502
|
-
const last = mock.giftCards[mock.giftCards.length - 1];
|
|
4503
|
-
last.amountToRedeem = Number((Number(last.amountToRedeem) + leftover).toFixed(2));
|
|
4504
|
-
}
|
|
4505
|
-
mock.giftCardTotal = BASE_ORDER_TOTAL;
|
|
4506
|
-
mock.orderTotal = 0;
|
|
4507
|
-
return Promise.resolve(successPayload());
|
|
4508
|
-
}
|
|
4509
|
-
|
|
4510
|
-
recomputeTotalsAndOrder();
|
|
4511
|
-
return Promise.resolve(successPayload());
|
|
4512
|
-
}
|
|
4513
|
-
|
|
4514
|
-
function removeGiftCardMock(index) {
|
|
4515
|
-
const beforeLen = mock.giftCards.length;
|
|
4516
|
-
if (index < 0 || index >= beforeLen) return Promise.reject({ code: 20 });
|
|
4517
|
-
|
|
4518
|
-
mock.giftCards.splice(index, 1);
|
|
4519
|
-
recomputeTotalsAndOrder();
|
|
4520
|
-
return Promise.resolve(successPayload());
|
|
4521
|
-
}
|
|
4522
|
-
|
|
4523
|
-
function anyPayErrorCardApplied() {
|
|
4524
|
-
for (const gc of mock.giftCards) {
|
|
4525
|
-
const code = PAY_ERROR_CARD_MAP[gc.originalNumber];
|
|
4526
|
-
if (Number.isFinite(code)) return code;
|
|
4527
|
-
}
|
|
4528
|
-
return undefined;
|
|
4529
|
-
}
|
|
4530
|
-
|
|
4531
|
-
function initGiftCardMock() {
|
|
4532
|
-
if (!$('.giftcard-row, .giftcard').length) return;
|
|
4533
|
-
|
|
4534
|
-
$(window).off(Wick.GiftCard.ADD_GIFT_CARD);
|
|
4535
|
-
$(window).off(Wick.GiftCard.REMOVE_GIFT_CARD);
|
|
4536
|
-
$(window).off(Wick.GiftCard.PAY_WITH_GIFT_CARD);
|
|
4537
|
-
|
|
4538
|
-
$(window).on(Wick.GiftCard.ADD_GIFT_CARD, function (e) {
|
|
4539
|
-
const payload = (e.detail && e.detail.payload) || {};
|
|
4540
|
-
const giftCardNumber = payload.giftCardNumber;
|
|
4541
|
-
setTimeout(function () {
|
|
4542
|
-
addGiftCardMock(giftCardNumber)
|
|
4543
|
-
.then(function (p) { e.detail.resolve(Object.assign({ code: 0 }, p)); })
|
|
4544
|
-
.catch(function (err) { e.detail.reject(err); });
|
|
4545
|
-
}, 1000);
|
|
4546
|
-
});
|
|
4547
|
-
|
|
4548
|
-
$(window).on(Wick.GiftCard.REMOVE_GIFT_CARD, function (e) {
|
|
4549
|
-
const payload = (e.detail && e.detail.payload) || {};
|
|
4550
|
-
const index = Number(payload.index);
|
|
4551
|
-
setTimeout(function () {
|
|
4552
|
-
removeGiftCardMock(index)
|
|
4553
|
-
.then(function (p) { e.detail.resolve(Object.assign({ code: 0 }, p)); })
|
|
4554
|
-
.catch(function (err) { e.detail.reject(err); });
|
|
4555
|
-
}, 1000);
|
|
4556
|
-
});
|
|
4557
|
-
|
|
4558
|
-
$(window).on(Wick.GiftCard.PAY_WITH_GIFT_CARD, function (e) {
|
|
4559
|
-
setTimeout(function () {
|
|
4560
|
-
const forcedErrorFromCard = anyPayErrorCardApplied();
|
|
4561
|
-
if (Number.isFinite(forcedErrorFromCard)) {
|
|
4562
|
-
return e.detail.reject({
|
|
4563
|
-
errorCode: forcedErrorFromCard,
|
|
4564
|
-
giftCards: mock.giftCards.slice(),
|
|
4565
|
-
});
|
|
4566
|
-
}
|
|
4567
|
-
|
|
4568
|
-
if (Number(mock.orderTotal) === 0) {
|
|
4569
|
-
e.detail.resolve({ url: 'page_checkout_confirmation-billie.html' });
|
|
4570
|
-
} else {
|
|
4571
|
-
const errorCode = Number.isFinite(PAY_ERROR_CODE) ? PAY_ERROR_CODE : undefined;
|
|
4572
|
-
e.detail.reject({
|
|
4573
|
-
errorCode,
|
|
4574
|
-
giftCards: mock.giftCards.slice(),
|
|
4575
|
-
});
|
|
4576
|
-
}
|
|
4577
|
-
}, 1000);
|
|
4578
|
-
});
|
|
4579
|
-
}
|
|
4580
|
-
|
|
4581
|
-
$(document).ready(function () {
|
|
4582
|
-
mock.giftCards = [];
|
|
4583
|
-
recomputeTotalsAndOrder();
|
|
4584
|
-
|
|
4585
|
-
Wick.GiftCard.init({
|
|
4586
|
-
giftCardsLimit: GIFT_CARDS_LIMIT,
|
|
4587
|
-
errorCode: PAY_ERROR_CODE,
|
|
4588
|
-
giftCards: mock.giftCards.slice()
|
|
4589
|
-
});
|
|
4590
|
-
});
|
|
4591
|
-
|
|
4592
|
-
$(document).ready(initGiftCardMock);
|
|
4593
|
-
})();
|
|
4594
|
-
|
|
4595
4357
|
const suggestions = [
|
|
4596
4358
|
{
|
|
4597
4359
|
value: 'lintel',
|