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.
Files changed (176) hide show
  1. package/Readme.md +3 -1
  2. package/build/css/components/checkout-payment-details-v2.css +1 -1
  3. package/build/js/account-members.min.js +1 -1
  4. package/build/js/add-project-list-id.min.js +1 -1
  5. package/build/js/address-book.min.js +1 -1
  6. package/build/js/basket.min.js +2 -2
  7. package/build/js/bundle.min.js +1 -1
  8. package/build/js/change-password.min.js +1 -1
  9. package/build/js/checkout.min.js +2 -2
  10. package/build/js/emulation.min.js +35 -273
  11. package/build/js/general.bundle.min.js +1 -1
  12. package/build/js/merged-checkout.min.js +2 -2
  13. package/build/js/page/components/order-summary.js +25 -42
  14. package/build/js/page/utils/validation.js +1 -46
  15. package/build/js/pdp.bundle.min.js +1 -1
  16. package/build/js/personal-details.min.js +1 -1
  17. package/build/js/plp.bundle.min.js +1 -1
  18. package/build/js/project-list.min.js +1 -44
  19. package/build/js/quiz.min.js +1 -1
  20. package/build/js/track-my-order.min.js +1 -1
  21. package/package.json +2 -2
  22. package/src/components/checkout-payment-details-v2.hbs +17 -5
  23. package/src/components/checkout-payment-repayment-terms.hbs +25 -0
  24. package/src/elements/form-row.hbs +1 -1
  25. package/src/elements/input.hbs +2 -31
  26. package/src/js/components/general/notification.js +1 -2
  27. package/src/js/components/toggle-password-visibility.js +58 -0
  28. package/src/js/emulation/checkout-payment-details.js +14 -23
  29. package/src/js/emulation/forms.js +21 -8
  30. package/src/js/page/components/order-summary.js +25 -42
  31. package/src/js/page/utils/validation.js +1 -46
  32. package/src/layouts/checkout.hbs +5 -1
  33. package/src/page_my-account_change-password.html +0 -1
  34. package/src/page_payment-details-with-gift-card.html +5 -8
  35. package/src/scss/components/checkout-payment-details-v2.scss +1 -2
  36. package/src/scss/components/checkout-payment-repayment-terms.scss +103 -0
  37. package/src/scss/pages/page_checkout_delivery-new.scss +0 -26
  38. package/build/css/components/energy-efficiency.css +0 -1
  39. package/build/css/components/global-search.css +0 -1
  40. package/build/css/components/kitchen/strip-stickers.css +0 -1
  41. package/build/css/components/legal-info.css +0 -1
  42. package/build/css/components/loader.css +0 -1
  43. package/build/css/components/long-banner.css +0 -1
  44. package/build/css/components/payment-details-BPS-form.css +0 -1
  45. package/build/css/components/pdf-loader.css +0 -1
  46. package/build/css/components/pdp-favourite-product.css +0 -1
  47. package/build/css/components/plp-favourite-product.css +0 -1
  48. package/build/css/components/price-block-v2-critical.css +0 -1
  49. package/build/css/components/price-block-v2.css +0 -1
  50. package/build/css/components/special-opening-schedule-v2.css +0 -1
  51. package/build/css/components/special-opening-schedule.css +0 -1
  52. package/build/css/components/store-locator-about.css +0 -1
  53. package/build/css/components/store-locator-facilities.css +0 -1
  54. package/build/css/components/store-locator-lookup.css +0 -1
  55. package/build/css/components/store-locator-v2-details.css +0 -1
  56. package/build/css/components/strip-stickers.css +0 -1
  57. package/build/css/components/tile-calculator.css +0 -1
  58. package/build/css/components/trade-pro-extras.css +0 -1
  59. package/build/css/pages/bicester-header.css +0 -1
  60. package/build/css/pages/bicester-project-list.css +0 -1
  61. package/build/css/pages/checkout-new.css +0 -1
  62. package/build/css/pages/checkout.css +0 -1
  63. package/build/css/pages/design-appointment.css +0 -1
  64. package/build/css/pages/home-movers.css +0 -1
  65. package/build/css/pages/iframe-paypage.css +0 -1
  66. package/build/css/pages/my-account-v2.css +0 -1
  67. package/build/css/pages/my-account.css +0 -1
  68. package/build/css/pages/new-usp-bar.css +0 -1
  69. package/build/css/pages/oldweb_header.css +0 -1
  70. package/build/css/pages/page_account-deletion.css +0 -1
  71. package/build/css/pages/page_act-trade-pro.css +0 -1
  72. package/build/css/pages/page_address-book.css +0 -1
  73. package/build/css/pages/page_bathroom-trends.css +0 -1
  74. package/build/css/pages/page_book-consultant-thank-you-new.css +0 -1
  75. package/build/css/pages/page_change-password.css +0 -1
  76. package/build/css/pages/page_checkout-payment-details.css +0 -1
  77. package/build/css/pages/page_checkout_delivery-new.css +0 -1
  78. package/build/css/pages/page_cms_homepage.css +0 -1
  79. package/build/css/pages/page_contact-us.css +0 -1
  80. package/build/css/pages/page_content.css +0 -1
  81. package/build/css/pages/page_coshh.css +0 -1
  82. package/build/css/pages/page_default-store.css +0 -1
  83. package/build/css/pages/page_discount.css +0 -1
  84. package/build/css/pages/page_empty-basket.css +0 -1
  85. package/build/css/pages/page_favourite-list.css +0 -1
  86. package/build/css/pages/page_fdl-management.css +0 -1
  87. package/build/css/pages/page_fdl-product.css +0 -1
  88. package/build/css/pages/page_fi.css +0 -1
  89. package/build/css/pages/page_forgotten-password.css +0 -1
  90. package/build/css/pages/page_half-login.css +0 -1
  91. package/build/css/pages/page_home.css +0 -1
  92. package/build/css/pages/page_hotspot-guttering.css +0 -1
  93. package/build/css/pages/page_in-store-checkout.css +0 -1
  94. package/build/css/pages/page_in-store_MVP_order-summary-submitted.css +0 -1
  95. package/build/css/pages/page_in-store_MVP_order-summary.css +0 -1
  96. package/build/css/pages/page_installation.css +0 -1
  97. package/build/css/pages/page_installer.css +0 -1
  98. package/build/css/pages/page_installer_form.css +0 -1
  99. package/build/css/pages/page_kitchen-claims.css +0 -1
  100. package/build/css/pages/page_kitchen-list.css +0 -1
  101. package/build/css/pages/page_login.css +0 -1
  102. package/build/css/pages/page_marketing-preferences.css +0 -1
  103. package/build/css/pages/page_merged-basket.css +0 -1
  104. package/build/css/pages/page_my-account_tradePro.css +0 -1
  105. package/build/css/pages/page_my-order.css +0 -1
  106. package/build/css/pages/page_my-orders.css +0 -1
  107. package/build/css/pages/page_new-checkout-forgot.css +0 -1
  108. package/build/css/pages/page_new-checkout_login-register.css +0 -1
  109. package/build/css/pages/page_no-results.css +0 -1
  110. package/build/css/pages/page_online-exclusive.css +0 -1
  111. package/build/css/pages/page_paint-mixing-error.css +0 -1
  112. package/build/css/pages/page_personal-details.css +0 -1
  113. package/build/css/pages/page_pre_home.css +0 -1
  114. package/build/css/pages/page_pre_home_thank-you.css +0 -1
  115. package/build/css/pages/page_product-details-critical.css +0 -1
  116. package/build/css/pages/page_product-details-v2-critical.css +0 -1
  117. package/build/css/pages/page_product-details-v2.css +0 -1
  118. package/build/css/pages/page_product-details.css +0 -1
  119. package/build/css/pages/page_product_search.css +0 -1
  120. package/build/css/pages/page_products-list-combined.css +0 -1
  121. package/build/css/pages/page_products-list-phone.css +0 -1
  122. package/build/css/pages/page_products-list.css +0 -1
  123. package/build/css/pages/page_products-list_v2.css +0 -1
  124. package/build/css/pages/page_projects.css +0 -1
  125. package/build/css/pages/page_quiz.css +0 -1
  126. package/build/css/pages/page_rate-review.css +0 -1
  127. package/build/css/pages/page_registration.css +0 -1
  128. package/build/css/pages/page_shopping-cart-v2.css +0 -1
  129. package/build/css/pages/page_shopping-cart.css +0 -1
  130. package/build/css/pages/page_split-orders.css +0 -1
  131. package/build/css/pages/page_store-locator-details.css +0 -1
  132. package/build/css/pages/page_store-locator.css +0 -1
  133. package/build/css/pages/page_thankyou.css +0 -1
  134. package/build/css/pages/page_ti.css +0 -1
  135. package/build/css/pages/page_tiling-calculator-generic.css +0 -1
  136. package/build/css/pages/page_top-rated.css +0 -1
  137. package/build/css/pages/page_track-my-order.css +0 -1
  138. package/build/css/pages/page_track_your_order.css +0 -1
  139. package/build/css/pages/page_trade_installer.css +0 -1
  140. package/build/css/pages/page_upd-pass.css +0 -1
  141. package/build/css/pages/page_wismo-details.css +0 -1
  142. package/build/css/pages/page_wismo-order-history.css +0 -1
  143. package/build/css/pages/page_wismo-orders.css +0 -1
  144. package/build/css/pages/print_quiz.css +0 -1
  145. package/build/css/pages/sticky_header.css +0 -1
  146. package/build/css/pages/tradePro-about.css +0 -1
  147. package/build/css/pages/tradePro-address-book.css +0 -1
  148. package/build/css/pages/tradePro-delivery-details.css +0 -1
  149. package/build/css/pages/tradePro-discount.css +0 -1
  150. package/build/css/pages/tradePro-order-history.css +0 -1
  151. package/build/css/pages/tradePro-payment-details.css +0 -1
  152. package/build/css/pages/tradePro-rewards-old.css +0 -1
  153. package/build/css/pages/tradePro-rewards.css +0 -1
  154. package/build/css/pages/tradePro-signup.css +0 -1
  155. package/build/css/pages/tradePro-thankyou-activate.css +0 -1
  156. package/build/img/giftcard.svg +0 -28
  157. package/build/js/gift-cards.min.js +0 -1
  158. package/build/js/page/components/gift-cards.js +0 -887
  159. package/build/js/page/components/toggle-password-visibility.js +0 -22
  160. package/build/js/page/utils/gift-cards-utils.js +0 -151
  161. package/build/js/page/utils/input-handling.js +0 -92
  162. package/build/js/page/utils/show-hide-input.js +0 -28
  163. package/build/js/toggle-password-visibility.min.js +0 -1
  164. package/src/components/gift-cards-hint.hbs +0 -9
  165. package/src/components/gift-cards.hbs +0 -90
  166. package/src/components/giftcard-chip.hbs +0 -23
  167. package/src/components/giftcard-summary.hbs +0 -6
  168. package/src/img/giftcard.svg +0 -28
  169. package/src/js/emulation/checkout-data.js +0 -35
  170. package/src/js/emulation/gift-cards.js +0 -205
  171. package/src/js/page/components/gift-cards.js +0 -887
  172. package/src/js/page/components/toggle-password-visibility.js +0 -22
  173. package/src/js/page/utils/gift-cards-utils.js +0 -151
  174. package/src/js/page/utils/input-handling.js +0 -92
  175. package/src/js/page/utils/show-hide-input.js +0 -28
  176. 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 (e) {
3511
- e.preventDefault();
3512
- var $scope = $(this).closest('form');
3513
- if (!$scope.length) $scope = $(this).closest('.billing-address');
3514
- if (!$scope.length) $scope = $('.billing-address');
3515
- var nameVal= ($scope.find('#card-name').val() || '').trim();
3516
- var finderVal= ($scope.find('#first-line-address').val() || '').trim();
3517
- var manualLine1= ($scope.find('#address-line-1').val() || '').trim();
3518
- var manualTown= ($scope.find('#town-city').val() || '').trim();
3519
- var manualPost= ($scope.find('#postcode_additional').val() || '').trim();
3520
- var addressFinderOk = finderVal.length > 0;
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.addClass(formInvalid);
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
- return !!$(field).val();
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',