wickes-css2 2.105.0-develop.7 → 2.105.0-develop.8

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 (211) hide show
  1. package/Readme.md +2 -2
  2. package/build/css/category-main.css +1 -1
  3. package/build/css/homepage-main.css +1 -1
  4. package/build/css/kitchen-plp-main.css +1 -1
  5. package/build/css/main.css +1 -1
  6. package/build/css/my-account-main-v2.css +1 -1
  7. package/build/css/my-account-main.css +1 -1
  8. package/build/css/pages/my-account-v2.css +1 -1
  9. package/build/css/pages/page_discount.css +1 -1
  10. package/build/css/pages/page_product_search.css +1 -1
  11. package/build/css/pages/page_products-list-combined.css +1 -1
  12. package/build/css/pages/page_products-list.css +1 -1
  13. package/build/css/pages/tradePro-rewards.css +1 -1
  14. package/build/css/pdp-main-before-combine.css +1 -1
  15. package/build/css/pdp-main-non-critical.css +1 -1
  16. package/build/css/pdp-main.css +1 -1
  17. package/build/css/plp-main.css +1 -1
  18. package/build/css/store-locator-main.css +1 -1
  19. package/build/js/basket.min.js +2 -2
  20. package/build/js/bundle.min.js +1 -1
  21. package/build/js/checkout.min.js +2 -2
  22. package/build/js/emulation.min.js +10255 -10784
  23. package/build/js/general.bundle.min.js +1 -1
  24. package/build/js/kitchen/kitchen-plp.min.js +9 -1
  25. package/build/js/merged-checkout.min.js +2 -2
  26. package/build/js/mini-basket-slider.min.js +1 -1
  27. package/build/js/my-account.min.js +1 -1
  28. package/build/js/page/accordion.js +35 -0
  29. package/build/js/page/basket/basket-update-cart-action.js +56 -59
  30. package/build/js/page/basket/basket-update-cart.js +27 -27
  31. package/build/js/page/basket/basket-utils.js +33 -40
  32. package/build/js/page/basket/mini-basket-total.js +66 -70
  33. package/build/js/page/basket/quantity-change-handler.js +55 -73
  34. package/build/js/page/basket/update-quantity-operation.js +30 -39
  35. package/build/js/page/basket/update-quantity.js +62 -62
  36. package/build/js/page/basket-v2.js +229 -362
  37. package/build/js/page/billie-business-type.js +27 -27
  38. package/build/js/page/checkout-payment-details.js +299 -301
  39. package/build/js/page/components/discounts.js +36 -39
  40. package/build/js/page/components/mini-basket-slider.js +545 -604
  41. package/build/js/page/kitchen/plp-filters-chips.js +90 -0
  42. package/build/js/page/kitchen/plp-filters-mobile.js +72 -0
  43. package/build/js/page/kitchen/plp-filters-panel.js +119 -0
  44. package/build/js/page/kitchen/plp-filters-utils.js +65 -0
  45. package/build/js/page/kitchen/plp-filters.js +205 -0
  46. package/build/js/page/kitchen/sort-by.js +157 -0
  47. package/build/js/page/klarna-modal-scroll-disable.js +4 -4
  48. package/build/js/page/my-account.js +14 -29
  49. package/build/js/page/online-exclusive.js +30 -28
  50. package/build/js/page/tradePro-rewards.js +39 -69
  51. package/build/js/page/utils/copy-to-clipboard.js +47 -79
  52. package/build/js/page/utils/helpers.js +9 -14
  53. package/build/js/pdp.bundle.min.js +1 -1
  54. package/build/js/plp.bundle.min.js +1 -1
  55. package/build/js/project-list.min.js +85 -143
  56. package/build/js/tradePro-rewards.min.js +1 -1
  57. package/package.json +3 -3
  58. package/src/components/.DS_Store +0 -0
  59. package/src/components/accordion.hbs +2 -2
  60. package/src/components/kitchen/dropdown.hbs +3 -6
  61. package/src/components/kitchen/filter-modal.hbs +13 -10
  62. package/src/components/kitchen/plp-filters.hbs +1 -3
  63. package/src/components/kitchen/sort-by.hbs +1 -1
  64. package/src/components/my-account/barcode.hbs +1 -3
  65. package/src/components/my-account/cards-swap.hbs +10 -0
  66. package/src/components/my-account/clipboard-code-card.hbs +3 -3
  67. package/src/components/my-account/discount.hbs +1 -1
  68. package/src/components/my-account/greetings.hbs +1 -1
  69. package/src/components/search-filter.hbs +112 -121
  70. package/src/data/data_plp_load-more.json +1 -1
  71. package/src/data/my-account/data_my-account.json +9 -0
  72. package/src/js/components/cards-swap.js +72 -0
  73. package/src/js/components/general/accordion.js +33 -44
  74. package/src/js/components/general/cart-slider.js +16 -19
  75. package/src/js/components/general/create-popup-slider.js +173 -168
  76. package/src/js/components/general/search-filter.js +21 -0
  77. package/src/js/components/share-project-list.js +53 -0
  78. package/src/js/emulation/big-wins.js +904 -1081
  79. package/src/js/emulation/billie-modal.js +19 -23
  80. package/src/js/emulation/checkout-payment-details.js +38 -47
  81. package/src/js/emulation/custom-slider-emulation.js +13 -17
  82. package/src/js/emulation/forms.js +323 -360
  83. package/src/js/emulation/mini-basket-data.js +923 -1051
  84. package/src/js/emulation/paymentLoader.js +17 -17
  85. package/src/js/emulation/pdf-file-loader.js +91 -89
  86. package/src/js/emulation/popover-mini-basket.js +239 -246
  87. package/src/js/emulation/project-list-pdp.js +316 -320
  88. package/src/js/emulation/repayment-toggle.js +24 -23
  89. package/src/js/emulation/selectable.js +18 -22
  90. package/src/js/emulation/wismo-details.js +31 -23
  91. package/src/js/page/accordion.js +35 -0
  92. package/src/js/page/basket/basket-update-cart-action.js +56 -59
  93. package/src/js/page/basket/basket-update-cart.js +27 -27
  94. package/src/js/page/basket/basket-utils.js +33 -40
  95. package/src/js/page/basket/mini-basket-total.js +66 -70
  96. package/src/js/page/basket/quantity-change-handler.js +55 -73
  97. package/src/js/page/basket/update-quantity-operation.js +30 -39
  98. package/src/js/page/basket/update-quantity.js +62 -62
  99. package/src/js/page/basket-v2.js +229 -362
  100. package/src/js/page/billie-business-type.js +27 -27
  101. package/src/js/page/checkout-payment-details.js +299 -301
  102. package/src/js/page/components/discounts.js +36 -39
  103. package/src/js/page/components/mini-basket-slider.js +545 -604
  104. package/src/js/page/kitchen/plp-filters-chips.js +90 -0
  105. package/src/js/page/kitchen/plp-filters-mobile.js +72 -0
  106. package/src/js/page/kitchen/plp-filters-panel.js +119 -0
  107. package/src/js/page/kitchen/plp-filters-utils.js +65 -0
  108. package/src/js/page/kitchen/plp-filters.js +205 -0
  109. package/src/js/page/kitchen/sort-by.js +157 -0
  110. package/src/js/page/klarna-modal-scroll-disable.js +4 -4
  111. package/src/js/page/my-account.js +14 -29
  112. package/src/js/page/online-exclusive.js +30 -28
  113. package/src/js/page/tradePro-rewards.js +39 -69
  114. package/src/js/page/utils/copy-to-clipboard.js +47 -79
  115. package/src/js/page/utils/helpers.js +9 -14
  116. package/src/page_empty-shared-project-list-bicester-hub.html +0 -4
  117. package/src/page_empty-shopping-list_guest.html +0 -1
  118. package/src/page_kitchen-plp.html +2 -2
  119. package/src/page_my-account-installer.html +1 -1
  120. package/src/page_my-account-trade-pro-carousel-double.html +127 -0
  121. package/src/page_my-account-trade-pro-carousel.html +134 -0
  122. package/src/page_my-account-trade-pro.html +1 -1
  123. package/src/page_my-shopping-list-add-notes.html +0 -1
  124. package/src/page_my-shopping-list-energy.html +0 -1
  125. package/src/page_my-shopping-list-hide-download.html +1 -2
  126. package/src/page_my-shopping-list-pdf.html +0 -2
  127. package/src/page_my-shopping-list-saved-ref.html +0 -1
  128. package/src/page_my-shopping-list-wisdom-oos-registered.html +0 -1
  129. package/src/page_my-shopping-list-wisdom-oos.html +0 -1
  130. package/src/page_my-shopping-list-wisdom-partial-registered.html +0 -1
  131. package/src/page_my-shopping-list-wisdom-registered.html +0 -1
  132. package/src/page_my-shopping-list-wisdom.html +0 -1
  133. package/src/page_my-shopping-list.html +0 -1
  134. package/src/page_my-shopping-list_not-register.html +0 -3
  135. package/src/page_plp-with-paint.html +7 -2
  136. package/src/page_plp.html +7 -2
  137. package/src/page_plp_v2-energy-efficiency.html +6 -1
  138. package/src/page_plp_v2-favourite-products.html +7 -6
  139. package/src/page_plp_v2-vat.html +7 -2
  140. package/src/page_plp_v2.html +9 -22
  141. package/src/page_product_search-vat.html +7 -2
  142. package/src/page_product_search.html +7 -2
  143. package/src/page_project-list-generate-project-list-ID.html +0 -3
  144. package/src/page_project-list-vat.html +0 -4
  145. package/src/page_project-list-with-new-share-popup-android.html +1 -3
  146. package/src/page_project-list-with-new-share-popup-ios.html +1 -3
  147. package/src/page_project-list-with-new-share-popup.html +1 -2
  148. package/src/page_search-results.html +7 -2
  149. package/src/page_shared-project-list-bicester-hub.html +1 -3
  150. package/src/page_tradepro-discount-app.html +1 -1
  151. package/src/page_tradepro-discount-double.html +109 -0
  152. package/src/page_tradepro-discount.html +36 -2
  153. package/src/scss/common/_common.scss +4 -5
  154. package/src/scss/components/_accordion.scss +3 -1
  155. package/src/scss/components/_custom-slider.scss +14 -15
  156. package/src/scss/components/_date-selection-add-new-styles.scss +7 -6
  157. package/src/scss/components/_date-selection.scss +1 -1
  158. package/src/scss/components/_popover-mini-basket.scss +3 -3
  159. package/src/scss/components/_search-filter.scss +15 -95
  160. package/src/scss/components/checkout-chip.scss +2 -2
  161. package/src/scss/components/checkout-payment-repayment-terms.scss +1 -1
  162. package/src/scss/components/{_filter-modal.scss → kitchen/_filter-modal.scss} +4 -55
  163. package/src/scss/components/{_plp-filters.scss → kitchen/_plp-filters.scss} +13 -31
  164. package/src/scss/components/my-account/_barcode.scss +8 -0
  165. package/src/scss/components/my-account/_cards-swap.scss +58 -0
  166. package/src/scss/components/my-account/_clipboard-code.scss +8 -0
  167. package/src/scss/components/my-account/_discount.scss +10 -0
  168. package/src/scss/globals/_global-components.scss +0 -3
  169. package/src/scss/helpers/_colors-semantic.scss +68 -68
  170. package/src/scss/helpers/_variables.scss +196 -242
  171. package/src/scss/kitchen-plp-main.scss +3 -0
  172. package/src/scss/main.scss +65 -65
  173. package/src/scss/pages/my-account-v2.scss +37 -0
  174. package/src/scss/pages/page_discount.scss +8 -4
  175. package/src/scss/pages/page_product-details-v2.scss +4 -1
  176. package/src/scss/pages/page_product_search.scss +1 -9
  177. package/src/scss/pages/page_products-list-combined.scss +24 -28
  178. package/src/scss/pages/page_products-list.scss +0 -8
  179. package/src/scss/pages/tradePro-rewards.scss +4 -3
  180. package/src/sitemap.html +3 -0
  181. package/build/js/page/filters/desktop-nav.js +0 -64
  182. package/build/js/page/filters/mobile-nav.js +0 -93
  183. package/build/js/page/filters/plp-filters-chips.js +0 -92
  184. package/build/js/page/filters/plp-filters-mobile.js +0 -150
  185. package/build/js/page/filters/plp-filters-panel.js +0 -123
  186. package/build/js/page/filters/plp-filters-utils.js +0 -66
  187. package/build/js/page/filters/plp-filters.js +0 -256
  188. package/build/js/page/filters/sort-by.js +0 -172
  189. package/build/js/page/search-filter.js +0 -62
  190. package/build/js/page/share-project-list.js +0 -57
  191. package/build/js/page/utils/show-more-less.js +0 -273
  192. package/build/js/plp-filters.min.js +0 -9
  193. package/build/js/search-filter.min.js +0 -1
  194. package/src/components/kitchen/filter-modal-content-kitchen.hbs +0 -10
  195. package/src/components/search-filter-modal-content.hbs +0 -102
  196. package/src/elements/btn.hbs +0 -7
  197. package/src/js/emulation/filters-emulation.js +0 -164
  198. package/src/js/emulation/product-counter.js +0 -50
  199. package/src/js/emulation/reset-filter-desktop.js +0 -5
  200. package/src/js/page/filters/desktop-nav.js +0 -64
  201. package/src/js/page/filters/mobile-nav.js +0 -93
  202. package/src/js/page/filters/plp-filters-chips.js +0 -92
  203. package/src/js/page/filters/plp-filters-mobile.js +0 -150
  204. package/src/js/page/filters/plp-filters-panel.js +0 -123
  205. package/src/js/page/filters/plp-filters-utils.js +0 -66
  206. package/src/js/page/filters/plp-filters.js +0 -256
  207. package/src/js/page/filters/sort-by.js +0 -172
  208. package/src/js/page/search-filter.js +0 -62
  209. package/src/js/page/share-project-list.js +0 -57
  210. package/src/js/page/utils/show-more-less.js +0 -273
  211. package/src/scss/components/_sort-by.scss +0 -190
@@ -1,309 +1,307 @@
1
1
  var Wick = Wick || {};
2
- Wick.CheckoutPaymentDetails = (function () {
3
- const $modal = $('#modal-terms-and-conditions');
4
-
5
- let prevPaymentMethod = null;
6
- let prevClearableMethod;
7
-
8
- let detailsLabel = {
9
- inputName: 'card-name',
10
- buttonName: 'btn-enter-details',
11
- };
12
-
13
- const elements = {
14
- $billieRepaymentTerms: $('.js-billie-repayment-terms'),
15
- $billieInfoBlock: $('.checkout-payment-details__billie'),
16
- $wrapperPaymentInput: $('.checkout-payment-details__row'),
17
- paymentInputName: '[name=payment-method]',
18
- $cardDetails: $('.checkout-payment-details__card-details'),
19
- $placeOrder: $('.checkout-payment-details__place-order'),
20
- $billingAddress: $('.billing-address'),
21
- hiddenCardDetailsClass: 'checkout-payment-details__card-details_hidden',
22
- $billieBusiness: $('[data-billie-business]'),
23
- businessTypeName: '[name="businessType"]',
24
- $unregisteredFields: $('#unregistered-fields'),
25
- $registeredFields: $('#registered-fields'),
26
- hiddenClass: 'd-none',
27
- };
28
-
29
- function preparePage() {
30
- var modalOpened = $('.modal.show').length;
31
- if (!modalOpened) return;
32
-
33
- var modalContent = $modal.find('.modal-content').clone();
34
- $modal.modal('hide');
35
- modalContent.addClass('print-area');
36
-
37
- $('body').addClass('print-mode').append(modalContent);
2
+ Wick.CheckoutPaymentDetails = (function() {
3
+ const $modal = $('#modal-terms-and-conditions');
4
+
5
+ let prevPaymentMethod = null;
6
+ let prevClearableMethod;
7
+
8
+ let detailsLabel = {
9
+ inputName: 'card-name', buttonName: 'btn-enter-details',
10
+ };
11
+
12
+ const elements = {
13
+ $billieRepaymentTerms: $('.js-billie-repayment-terms'),
14
+ $billieInfoBlock: $('.checkout-payment-details__billie'),
15
+ $wrapperPaymentInput: $('.checkout-payment-details__row'),
16
+ paymentInputName: '[name=payment-method]',
17
+ $cardDetails: $('.checkout-payment-details__card-details'),
18
+ $placeOrder: $('.checkout-payment-details__place-order'),
19
+ $billingAddress: $('.billing-address'),
20
+ hiddenCardDetailsClass: 'checkout-payment-details__card-details_hidden',
21
+ $billieBusiness: $('[data-billie-business]'),
22
+ businessTypeName: '[name="businessType"]',
23
+ $unregisteredFields: $('#unregistered-fields'),
24
+ $registeredFields: $('#registered-fields'),
25
+ hiddenClass: 'd-none',
26
+ };
27
+
28
+ function preparePage() {
29
+ var modalOpened = $('.modal.show').length;
30
+ if (!modalOpened) return;
31
+
32
+ var modalContent = $modal.find('.modal-content').clone();
33
+ $modal.modal('hide');
34
+ modalContent.addClass('print-area');
35
+
36
+ $('body')
37
+ .addClass('print-mode')
38
+ .append(modalContent);
39
+ }
40
+
41
+ function resetPage() {
42
+ var modalPrintModeActive = $('body.print-mode').length;
43
+ if (!modalPrintModeActive) return;
44
+
45
+ $('body').removeClass('print-mode');
46
+ $('.print-area').remove();
47
+ $modal.modal('show');
48
+ }
49
+
50
+ function getPaymentMethods() {
51
+ return $(elements.paymentInputName)
52
+ .map((_, item) => $(item).val())
53
+ .get();
54
+ }
55
+
56
+ function togglePaymentBlocks(paymentMethods, checkedMethod) {
57
+ paymentMethods.forEach(method => {
58
+ $(`[data-${method}]`).toggle(checkedMethod === method);
59
+ });
60
+ }
61
+
62
+ function resetAllCheckoutForms(keepPaymentMethod) {
63
+ const $container = elements.$wrapperPaymentInput.closest('.checkout-payment-details');
64
+ if (!$container.length) return;
65
+
66
+ $container.find('form').each(function() {
67
+ if (Wick.Forms && typeof Wick.Forms.clearValidationErrors === 'function') {
68
+ Wick.Forms.clearValidationErrors(this);
69
+ }
70
+ });
71
+
72
+ $container
73
+ .find('input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea')
74
+ .val('');
75
+
76
+ $container.find('select').each(function() {
77
+ this.selectedIndex = 0;
78
+ });
79
+
80
+ $container.find('input[type="checkbox"]').prop('checked', false);
81
+
82
+ $container.find('input[type="radio"]').each(function() {
83
+ const $radio = $(this);
84
+ const name = $radio.attr('name');
85
+ const val = $radio.val();
86
+
87
+ if (name === 'payment-method') {
88
+ $radio.prop('checked', val === keepPaymentMethod);
89
+ } else {
90
+ $radio.prop('checked', false);
91
+ }
92
+ });
93
+
94
+ $container.find('.radio-expanded-content').hide();
95
+ }
96
+
97
+ function setBillingDetailsRowVisibility(isVisible) {
98
+ const $row = elements.$billingAddress.find('.checkout-payment-details__row');
99
+ $row.toggle(isVisible);
100
+ $row.find(':input').prop('disabled', !isVisible);
101
+ }
102
+
103
+ function setBillieStepVisibility(isReady) {
104
+ setBillingDetailsRowVisibility(isReady);
105
+ elements.$billieInfoBlock.toggle(isReady);
106
+ }
107
+
108
+ function resetBillieRepaymentSelection() {
109
+ elements.$billieRepaymentTerms
110
+ .find('input[name="repaymentTerms"]')
111
+ .prop('checked', false);
112
+ }
113
+
114
+ function showBillieBusiness() {
115
+ elements.$billieBusiness.removeClass(elements.hiddenClass);
116
+ }
117
+
118
+ function hideBillieBusiness() {
119
+ elements.$billieBusiness.addClass(elements.hiddenClass);
120
+
121
+ elements.$unregisteredFields
122
+ .addClass(elements.hiddenClass)
123
+ .removeAttr('style');
124
+
125
+ elements.$registeredFields
126
+ .addClass(elements.hiddenClass)
127
+ .removeAttr('style');
128
+
129
+ elements.$billieBusiness.find('input[type="radio"]').prop('checked', false);
130
+ elements.$billieBusiness.find('input.tbx').val('');
131
+ }
132
+
133
+ function toggleBusinessTypeFields(type) {
134
+ const isUnregistered = type === 'unregistered';
135
+ const isRegistered = type === 'registered';
136
+
137
+ elements.$unregisteredFields.toggleClass(elements.hiddenClass, !isUnregistered);
138
+ elements.$registeredFields.toggleClass(elements.hiddenClass, !isRegistered);
139
+ }
140
+
141
+
142
+ function changeDetailsBlock(checkedMethod) {
143
+ if (checkedMethod !== 'billie') {
144
+ setBillingDetailsRowVisibility(true);
38
145
  }
39
146
 
40
- function resetPage() {
41
- var modalPrintModeActive = $('body.print-mode').length;
42
- if (!modalPrintModeActive) return;
43
-
44
- $('body').removeClass('print-mode');
45
- $('.print-area').remove();
46
- $modal.modal('show');
47
- }
48
-
49
- function getPaymentMethods() {
50
- return $(elements.paymentInputName)
51
- .map((_, item) => $(item).val())
52
- .get();
53
- }
54
-
55
- function togglePaymentBlocks(paymentMethods, checkedMethod) {
56
- paymentMethods.forEach((method) => {
57
- $(`[data-${method}]`).toggle(checkedMethod === method);
58
- });
59
- }
60
-
61
- function resetAllCheckoutForms(keepPaymentMethod) {
62
- const $container = elements.$wrapperPaymentInput.closest('.checkout-payment-details');
63
- if (!$container.length) return;
64
-
65
- $container.find('form').each(function () {
66
- if (Wick.Forms && typeof Wick.Forms.clearValidationErrors === 'function') {
67
- Wick.Forms.clearValidationErrors(this);
68
- }
69
- });
70
-
71
- $container
72
- .find(
73
- 'input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea'
74
- )
75
- .val('');
76
-
77
- $container.find('select').each(function () {
78
- this.selectedIndex = 0;
79
- });
80
-
81
- $container.find('input[type="checkbox"]').prop('checked', false);
82
-
83
- $container.find('input[type="radio"]').each(function () {
84
- const $radio = $(this);
85
- const name = $radio.attr('name');
86
- const val = $radio.val();
87
-
88
- if (name === 'payment-method') {
89
- $radio.prop('checked', val === keepPaymentMethod);
90
- } else {
91
- $radio.prop('checked', false);
92
- }
93
- });
94
-
95
- $container.find('.radio-expanded-content').hide();
96
- }
97
-
98
- function setBillingDetailsRowVisibility(isVisible) {
99
- const $row = elements.$billingAddress.find('.checkout-payment-details__row');
100
- $row.toggle(isVisible);
101
- $row.find(':input').prop('disabled', !isVisible);
102
- }
103
-
104
- function setBillieStepVisibility(isReady) {
105
- setBillingDetailsRowVisibility(isReady);
106
- elements.$billieInfoBlock.toggle(isReady);
107
- }
108
-
109
- function resetBillieRepaymentSelection() {
110
- elements.$billieRepaymentTerms.find('input[name="repaymentTerms"]').prop('checked', false);
111
- }
112
-
113
- function showBillieBusiness() {
114
- elements.$billieBusiness.removeClass(elements.hiddenClass);
115
- }
116
-
117
- function hideBillieBusiness() {
118
- elements.$billieBusiness.addClass(elements.hiddenClass);
119
-
120
- elements.$unregisteredFields.addClass(elements.hiddenClass).removeAttr('style');
121
-
122
- elements.$registeredFields.addClass(elements.hiddenClass).removeAttr('style');
123
-
124
- elements.$billieBusiness.find('input[type="radio"]').prop('checked', false);
125
- elements.$billieBusiness.find('input.tbx').val('');
126
- }
127
-
128
- function toggleBusinessTypeFields(type) {
129
- const isUnregistered = type === 'unregistered';
130
- const isRegistered = type === 'registered';
131
-
132
- elements.$unregisteredFields.toggleClass(elements.hiddenClass, !isUnregistered);
133
- elements.$registeredFields.toggleClass(elements.hiddenClass, !isRegistered);
147
+ switch (checkedMethod) {
148
+ case 'paypal':
149
+ hideCardDetails();
150
+ showPlaceOrder();
151
+ hideBillingAddres();
152
+ break;
153
+
154
+ case 'klarna':
155
+ hideBillingAddres();
156
+ break;
157
+
158
+ case 'billie':
159
+ detailsLabel = {
160
+ ...detailsLabel, labelText: 'Name on Billie account', buttonText: 'Pay with Billie',
161
+ };
162
+ changeLabelText(detailsLabel);
163
+
164
+ setBillieStepVisibility(false);
165
+ resetBillieRepaymentSelection();
166
+ showBillieBusiness();
167
+ break;
168
+
169
+ case 'clearpay':
170
+ detailsLabel = {
171
+ ...detailsLabel, labelText: 'Name on Clearpay account', buttonText: 'Pay with Clearpay',
172
+ };
173
+ prevClearableMethod === 'card' && clearInputFields();
174
+ changeLabelText(detailsLabel);
175
+ prevClearableMethod = checkedMethod;
176
+ break;
177
+
178
+ case 'apple':
179
+ hideCardDetails();
180
+ hidePlaceOrder();
181
+ hideBillingAddres();
182
+ break;
183
+
184
+ case 'google':
185
+ hideCardDetails();
186
+ hidePlaceOrder();
187
+ hideBillingAddres();
188
+ break;
189
+
190
+ case 'card':
191
+ detailsLabel = {
192
+ ...detailsLabel, labelText: 'Name on card', buttonText: 'Enter card details',
193
+ };
194
+ prevClearableMethod === 'clearpay' && clearInputFields();
195
+ changeLabelText(detailsLabel);
196
+ prevClearableMethod = checkedMethod;
197
+ break;
198
+
199
+ default:
200
+ showPlaceOrder();
134
201
  }
135
-
136
- function changeDetailsBlock(checkedMethod) {
137
- if (checkedMethod !== 'billie') {
138
- setBillingDetailsRowVisibility(true);
139
- }
140
-
141
- switch (checkedMethod) {
142
- case 'paypal':
143
- hideCardDetails();
144
- showPlaceOrder();
145
- hideBillingAddres();
146
- break;
147
-
148
- case 'klarna':
149
- hideBillingAddres();
150
- break;
151
-
152
- case 'billie':
153
- detailsLabel = {
154
- ...detailsLabel,
155
- labelText: 'Name on Billie account',
156
- buttonText: 'Pay with Billie',
157
- };
158
- changeLabelText(detailsLabel);
159
-
160
- setBillieStepVisibility(false);
161
- resetBillieRepaymentSelection();
162
- showBillieBusiness();
163
- break;
164
-
165
- case 'clearpay':
166
- detailsLabel = {
167
- ...detailsLabel,
168
- labelText: 'Name on Clearpay account',
169
- buttonText: 'Pay with Clearpay',
170
- };
171
- prevClearableMethod === 'card' && clearInputFields();
172
- changeLabelText(detailsLabel);
173
- prevClearableMethod = checkedMethod;
174
- break;
175
-
176
- case 'apple':
177
- hideCardDetails();
178
- hidePlaceOrder();
179
- hideBillingAddres();
180
- break;
181
-
182
- case 'google':
183
- hideCardDetails();
184
- hidePlaceOrder();
185
- hideBillingAddres();
186
- break;
187
-
188
- case 'card':
189
- detailsLabel = {
190
- ...detailsLabel,
191
- labelText: 'Name on card',
192
- buttonText: 'Enter card details',
193
- };
194
- prevClearableMethod === 'clearpay' && clearInputFields();
195
- changeLabelText(detailsLabel);
196
- prevClearableMethod = checkedMethod;
197
- break;
198
-
199
- default:
200
- showPlaceOrder();
201
- }
202
- }
203
-
204
- function hideCardDetails() {
205
- elements.$cardDetails.addClass(elements.hiddenCardDetailsClass);
206
- }
207
-
208
- function hideBillingAddres() {
209
- elements.$billingAddress.addClass(elements.hiddenClass);
210
- }
211
-
212
- function changeLabelText(params) {
213
- const { inputName, labelText, buttonName, buttonText } = params;
214
-
215
- elements.$billingAddress.removeClass(elements.hiddenClass);
216
-
217
- let labelElement = elements.$billingAddress.find('[for="' + inputName + '"]');
218
- let buttonElement = elements.$billingAddress.find('.' + buttonName + ' .btn__text');
219
-
220
- labelElement && labelElement.text(labelText);
221
- buttonElement && buttonElement.text(buttonText);
222
- }
223
-
224
- function clearInputFields() {
225
- elements.$billingAddress.find('input.tbx').val('');
226
- }
227
-
228
- function showPlaceOrder() {
229
- elements.$placeOrder.removeClass(elements.hiddenClass);
230
- }
231
-
232
- function hidePlaceOrder() {
233
- elements.$placeOrder.addClass(elements.hiddenClass);
234
- }
235
-
236
- function initBillieBusinessTypeToggle() {
237
- $(document).on('change', elements.businessTypeName, function () {
238
- toggleBusinessTypeFields($(this).val());
239
- });
240
- }
241
-
242
- function init() {
243
- const paymentMethods = getPaymentMethods();
244
- initBillieBusinessTypeToggle();
245
- hideBillieBusiness();
246
-
247
- $(document).on('change', 'input[name="repaymentTerms"]', function () {
248
- const currentMethod = $(elements.paymentInputName + ':checked').val();
249
- if (currentMethod !== 'billie') return;
250
-
251
- const hasSelection = $('input[name="repaymentTerms"]:checked').length > 0;
252
- setBillieStepVisibility(hasSelection);
253
-
254
- const $row = $(this).closest('.form-row[data-row-required]');
255
- $row.removeClass('form-row_validation-error').find('.form-row__error').remove();
256
- });
257
-
258
- elements.$wrapperPaymentInput.on('change', elements.paymentInputName, function () {
259
- const checkedMethod = $(this).val();
260
-
261
- if (prevPaymentMethod && prevPaymentMethod !== checkedMethod) {
262
- resetAllCheckoutForms(checkedMethod);
263
- } else {
264
- const form = $(this).closest('form')[0];
265
- form &&
266
- Wick.Forms &&
267
- Wick.Forms.clearValidationErrors &&
268
- Wick.Forms.clearValidationErrors(form);
269
- }
270
-
271
- togglePaymentBlocks(paymentMethods, checkedMethod);
272
- changeDetailsBlock(checkedMethod);
273
-
274
- prevPaymentMethod = checkedMethod;
275
- });
276
-
277
- $('.btn-new-card').on('click', function () {
278
- $('[data-new-card]').show();
279
- $('[data-existing-card]').hide();
280
- return false;
281
- });
282
-
283
- $('.btn-back-to-existing-card').on('click', function () {
284
- $('[data-new-card]').hide();
285
- $('[data-existing-card]').show();
286
- return false;
287
- });
288
-
289
- prevPaymentMethod = $(elements.paymentInputName + ':checked').val() || null;
290
-
291
- if (!$modal.length) return;
292
-
293
- if (typeof window.onbeforeprint !== 'undefined') {
294
- window.onbeforeprint = preparePage;
295
- window.onafterprint = resetPage;
296
- } else if (window.matchMedia) {
297
- var mediaQueryList = window.matchMedia('print');
298
- mediaQueryList.addListener(function (mql) {
299
- if (mql.matches) {
300
- preparePage();
301
- } else {
302
- resetPage();
303
- }
304
- });
202
+ }
203
+
204
+ function hideCardDetails() {
205
+ elements.$cardDetails.addClass(elements.hiddenCardDetailsClass);
206
+ }
207
+
208
+ function hideBillingAddres() {
209
+ elements.$billingAddress.addClass(elements.hiddenClass);
210
+ }
211
+
212
+ function changeLabelText(params) {
213
+ const { inputName, labelText, buttonName, buttonText } = params;
214
+
215
+ elements.$billingAddress.removeClass(elements.hiddenClass);
216
+
217
+ let labelElement = elements.$billingAddress.find('[for="' + inputName + '"]');
218
+ let buttonElement = elements.$billingAddress.find('.' + buttonName + ' .btn__text');
219
+
220
+ labelElement && labelElement.text(labelText);
221
+ buttonElement && buttonElement.text(buttonText);
222
+ }
223
+
224
+ function clearInputFields() {
225
+ elements.$billingAddress.find('input.tbx').val('');
226
+ }
227
+
228
+ function showPlaceOrder() {
229
+ elements.$placeOrder.removeClass(elements.hiddenClass);
230
+ }
231
+
232
+ function hidePlaceOrder() {
233
+ elements.$placeOrder.addClass(elements.hiddenClass);
234
+ }
235
+
236
+ function initBillieBusinessTypeToggle() {
237
+ $(document).on('change', elements.businessTypeName, function () {
238
+ toggleBusinessTypeFields($(this).val());
239
+ });
240
+ }
241
+
242
+ function init() {
243
+ const paymentMethods = getPaymentMethods();
244
+ initBillieBusinessTypeToggle();
245
+ hideBillieBusiness();
246
+
247
+ $(document).on('change', 'input[name="repaymentTerms"]', function() {
248
+ const currentMethod = $(elements.paymentInputName + ':checked').val();
249
+ if (currentMethod !== 'billie') return;
250
+
251
+ const hasSelection = $('input[name="repaymentTerms"]:checked').length > 0;
252
+ setBillieStepVisibility(hasSelection);
253
+
254
+ const $row = $(this).closest('.form-row[data-row-required]');
255
+ $row.removeClass('form-row_validation-error')
256
+ .find('.form-row__error').remove();
257
+ });
258
+
259
+ elements.$wrapperPaymentInput.on('change', elements.paymentInputName, function() {
260
+ const checkedMethod = $(this).val();
261
+
262
+ if (prevPaymentMethod && prevPaymentMethod !== checkedMethod) {
263
+ resetAllCheckoutForms(checkedMethod);
264
+ } else {
265
+ const form = $(this).closest('form')[0];
266
+ form && Wick.Forms && Wick.Forms.clearValidationErrors && Wick.Forms.clearValidationErrors(form);
267
+ }
268
+
269
+ togglePaymentBlocks(paymentMethods, checkedMethod);
270
+ changeDetailsBlock(checkedMethod);
271
+
272
+ prevPaymentMethod = checkedMethod;
273
+ });
274
+
275
+ $('.btn-new-card').on('click', function() {
276
+ $('[data-new-card]').show();
277
+ $('[data-existing-card]').hide();
278
+ return false;
279
+ });
280
+
281
+ $('.btn-back-to-existing-card').on('click', function() {
282
+ $('[data-new-card]').hide();
283
+ $('[data-existing-card]').show();
284
+ return false;
285
+ });
286
+
287
+ prevPaymentMethod = $(elements.paymentInputName + ':checked').val() || null;
288
+
289
+ if (!$modal.length) return;
290
+
291
+ if (typeof (window.onbeforeprint) !== 'undefined') {
292
+ window.onbeforeprint = preparePage;
293
+ window.onafterprint = resetPage;
294
+ } else if (window.matchMedia) {
295
+ var mediaQueryList = window.matchMedia('print');
296
+ mediaQueryList.addListener(function(mql) {
297
+ if (mql.matches) {
298
+ preparePage();
299
+ } else {
300
+ resetPage();
305
301
  }
302
+ });
306
303
  }
304
+ }
307
305
 
308
- init();
306
+ init();
309
307
  })();