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,409 +1,372 @@
1
1
  var Wick = Wick || {};
2
- Wick.Forms = (function () {
3
- var fieldRow = '.form-row[data-row-required]',
4
- field = '.form-row__field',
5
- fieldError = '.form-row__error',
6
- formInvalid = 'form_invalid',
7
- rowValidationError = 'form-row_validation-error',
8
- excludedClassesForForm = [
9
- 'header',
10
- 'quiz-modal__form',
11
- 'search-store',
12
- 'track-order-form',
13
- 'change-password__form',
14
- 'address-book__form',
15
- ],
16
- // validationError = '<div class="form-row__error">Error message here</div>',
17
- $forgotPassword = $('.link-forgot-password'),
18
- scenarios = [
19
- {
20
- condition: function () {
21
- // fill in the valid returning customer's details
22
- // Email: responsive@test.com; Password: 123456
23
- return (
24
- $('#login-email').val() === 'responsive@test.com' &&
25
- $('#password').val() === '123456'
26
- );
27
- },
28
- action: function () {
29
- // redirected to the homepage
30
- Wick.User.login();
31
- window.location.href = './';
32
- },
33
- },
34
- {
35
- condition: function () {
36
- // continue as a new user with "test+random@user.com"
37
- return $('#registration-email').val().length;
38
- // return $('#registration-email').val() === 'test+random@user.com';
39
- },
40
- action: function () {
41
- // redirected to the register form
42
- window.location.href = './page_registration.html';
43
- },
44
- },
45
- {
46
- condition: function () {
47
- // When I click forgotten password link
48
- },
49
- action: function () {
50
- // redirected on the "Forgotten Password" page
51
- window.location.href = './page_forgotten-password.html';
52
- },
53
- },
54
- ],
55
- validationError = function (errorMsg) {
56
- return `<div class="form-row__error"> ${errorMsg || 'Error message here'}</div>`;
57
- };
58
-
59
- function isElementInViewport(el) {
60
- if (typeof jQuery === 'function' && el instanceof jQuery) {
61
- el = el[0];
62
- }
63
- var rect = el.getBoundingClientRect();
64
- return (
65
- rect.top >= 0 &&
66
- rect.left >= 0 &&
67
- rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
68
- rect.right <= (window.innerWidth || document.documentElement.clientWidth)
69
- );
2
+ Wick.Forms = (function() {
3
+ var fieldRow = '.form-row[data-row-required]',
4
+ field = '.form-row__field',
5
+ fieldError = '.form-row__error',
6
+ formInvalid = 'form_invalid',
7
+ rowValidationError = 'form-row_validation-error',
8
+ excludedClassesForForm = ['header', 'quiz-modal__form', 'search-store', 'track-order-form', 'change-password__form', 'address-book__form'],
9
+ // validationError = '<div class="form-row__error">Error message here</div>',
10
+ $forgotPassword = $('.link-forgot-password'),
11
+ scenarios = [{
12
+ condition: function() {
13
+ // fill in the valid returning customer's details
14
+ // Email: responsive@test.com; Password: 123456
15
+ return $('#login-email').val() === 'responsive@test.com' && $('#password').val() === '123456';
16
+ },
17
+ action: function() {
18
+ // redirected to the homepage
19
+ Wick.User.login();
20
+ window.location.href = './';
21
+ },
22
+ },
23
+ {
24
+ condition: function() {
25
+ // continue as a new user with "test+random@user.com"
26
+ return $('#registration-email').val().length;
27
+ // return $('#registration-email').val() === 'test+random@user.com';
28
+ },
29
+ action: function() {
30
+ // redirected to the register form
31
+ window.location.href = './page_registration.html';
32
+ },
33
+ },
34
+ {
35
+ condition: function() {
36
+ // When I click forgotten password link
37
+ },
38
+ action: function() {
39
+ // redirected on the "Forgotten Password" page
40
+ window.location.href = './page_forgotten-password.html';
41
+ },
42
+ },
43
+ ],
44
+
45
+ validationError = function(errorMsg) {
46
+ return `<div class="form-row__error"> ${errorMsg || 'Error message here'}</div>`;
47
+ };
48
+
49
+ function isElementInViewport(el) {
50
+ if (typeof jQuery === 'function' && el instanceof jQuery) {
51
+ el = el[0];
52
+ }
53
+ var rect = el.getBoundingClientRect();
54
+ return (
55
+ rect.top >= 0 &&
56
+ rect.left >= 0 &&
57
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
58
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth)
59
+ );
60
+ }
61
+
62
+ var showValidationErrors = function(form, errorMsg) {
63
+ var $form = $(form);
64
+ if (!$form.hasClass(formInvalid)) {
65
+ $form.find('.form-row__error').remove();
66
+ var $rows = $form.find(fieldRow).filter(function() {
67
+ return $(this).is(':visible');
68
+ });
69
+
70
+ $rows.append(validationError(errorMsg)).addClass(rowValidationError);
70
71
  }
71
72
 
72
- let $form;
73
- var showValidationErrors = function (form, errorMsg) {
74
- $form = $(form);
75
- if (!$form.hasClass(formInvalid)) {
76
- $form.find('.form-row__error').remove();
77
- var $rows = $form.find(fieldRow).filter(function () {
78
- return $(this).is(':visible');
79
- });
73
+ var $firstMsg = $form.find(fieldRow).filter(function() {
74
+ return $(this).is(':visible');
75
+ }).first();
76
+ if ($firstMsg.length && !isElementInViewport($firstMsg)) {
77
+ var inModal = $firstMsg.closest('.modal').length,
78
+ $scrollableEl = inModal ? $firstMsg.closest('.modal') : $('html, body'),
79
+ y = inModal ? 0 : $firstMsg.offset().top - 30;
80
80
 
81
- $rows.append(validationError(errorMsg)).addClass(rowValidationError);
82
- }
81
+ $scrollableEl.animate({ scrollTop: y }, 300);
82
+ }
83
+ };
83
84
 
84
- var $firstMsg = $form
85
- .find(fieldRow)
86
- .filter(function () {
87
- return $(this).is(':visible');
88
- })
89
- .first();
90
- if ($firstMsg.length && !isElementInViewport($firstMsg)) {
91
- var inModal = $firstMsg.closest('.modal').length,
92
- $scrollableEl = inModal ? $firstMsg.closest('.modal') : $('html, body'),
93
- y = inModal ? 0 : $firstMsg.offset().top - 30;
94
-
95
- $scrollableEl.animate({ scrollTop: y }, 300);
96
- }
97
- };
85
+ var clearValidationErrors = function(form) {
86
+ var $form = $(form);
98
87
 
99
- var clearValidationErrors = function (form) {
100
- $form = $(form);
88
+ $form.removeClass(formInvalid);
101
89
 
102
- $form.removeClass(formInvalid);
90
+ $form.find(fieldRow)
91
+ .removeClass(rowValidationError)
92
+ .find(fieldError).remove();
103
93
 
104
- $form.find(fieldRow).removeClass(rowValidationError).find(fieldError).remove();
94
+ $form.find(fieldError).remove();
95
+ };
105
96
 
106
- $form.find(fieldError).remove();
107
- };
108
97
 
109
- var handleSmoothScroll = function () {
110
- $('html, body').animate(
111
- {
112
- scrollTop: $('.cards-store-list').offset().top - 60,
113
- },
114
- 300
115
- );
116
- };
98
+ var handleSmoothScroll = function() {
99
+ $('html, body').animate({
100
+ scrollTop: $('.cards-store-list').offset().top - 60,
101
+ }, 300);
102
+ };
117
103
 
118
- var handleFormSubmit = function () {
119
- var form = this;
120
-
121
- if ($(form).is('#form-login') || $(form).is('#form-register')) {
122
- for (var i = 0; i < scenarios.length; i++) {
123
- var scenario = scenarios[i];
124
- if (scenario.condition()) {
125
- scenario.action(this);
126
- return false;
127
- }
128
- }
129
- }
104
+ var handleFormSubmit = function() {
105
+ var form = this;
130
106
 
131
- if ($(form).is('#form-forgotten-password')) {
132
- if ($(form).find('#email').val().length) {
133
- window.location.href = './page_upd-pass.html';
134
- return false;
135
- }
107
+ if ($(form).is('#form-login') || $(form).is('#form-register')) {
108
+ for (var i = 0; i < scenarios.length; i++) {
109
+ var scenario = scenarios[i];
110
+ if (scenario.condition()) {
111
+ scenario.action(this);
112
+ return false;
136
113
  }
114
+ }
115
+ }
137
116
 
138
- if ($(form).is('#form-forgotten-password-popup')) {
139
- if ($(form).find('#email').val().length) {
140
- window.location.href = './page_checkout_sign-in.html';
141
- return false;
142
- }
143
- }
117
+ if ($(form).is('#form-forgotten-password')) {
118
+ if ($(form).find('#email').val().length) {
119
+ window.location.href = './page_upd-pass.html';
120
+ return false;
121
+ }
122
+ }
144
123
 
145
- if ($(form).is('#checkout-form-forgotten-password-popup')) {
146
- if ($(form).find('#email').val().length) {
147
- $('.modal-reset-wrap').addClass('d-block');
148
- $('.request-pass').addClass('d-none');
149
- $('.modal-title').text('Password Reset');
150
- return false;
151
- }
152
- }
124
+ if ($(form).is('#form-forgotten-password-popup')) {
125
+ if ($(form).find('#email').val().length) {
126
+ window.location.href = './page_checkout_sign-in.html';
127
+ return false;
128
+ }
129
+ }
153
130
 
154
- if ($(form).is('.update-pass')) {
155
- if (
156
- $(form).find('#new-password').val().length &&
157
- $(form).find('#confirmed-password').val().length
158
- ) {
159
- window.location.href = './page_login.html';
160
- return false;
161
- }
162
- }
131
+ if ($(form).is('#checkout-form-forgotten-password-popup')) {
132
+ if ($(form).find('#email').val().length) {
133
+ $('.modal-reset-wrap').addClass('d-block');
134
+ $('.request-pass').addClass('d-none');
135
+ $('.modal-title').text('Password Reset');
136
+ return false;
137
+ }
138
+ }
163
139
 
164
- if ($(form).is('.change-email')) {
165
- if (
166
- $(form).find('#new-email').val().length &&
167
- $(form).find('#confirm-new-email').val().length &&
168
- $(form).find('#password').val().length
169
- ) {
170
- window.location.href = './page_my-account.html';
171
- return false;
172
- }
173
- }
140
+ if ($(form).is('.update-pass')) {
141
+ if ($(form).find('#new-password').val().length && $(form).find('#confirmed-password').val().length) {
142
+ window.location.href = './page_login.html';
143
+ return false;
144
+ }
145
+ }
174
146
 
175
- if ($(form).is('.form-change-password')) {
176
- if (
177
- $(form).find('#current-password').val().length &&
178
- $(form).find('#new-password').val().length &&
179
- $(form).find('#confirm-password').val().length
180
- ) {
181
- window.location.href = './page_my-account.html';
182
- return false;
183
- }
184
- }
147
+ if ($(form).is('.change-email')) {
148
+ if ($(form).find('#new-email').val().length &&
149
+ $(form).find('#confirm-new-email').val().length &&
150
+ $(form).find('#password').val().length) {
151
+ window.location.href = './page_my-account.html';
152
+ return false;
153
+ }
154
+ }
185
155
 
186
- if ($(form).is('.form-register')) {
187
- if (
188
- $(form).find('#first-name').val().length &&
189
- $(form).find('#last-name').val().length &&
190
- $(form).find('#postcode').val().length &&
191
- $(form).find('#email').val().length &&
192
- $(form).find('#password').val().length &&
193
- $(form).find('#confirm-password').val().length
194
- ) {
195
- window.location.href = './page_my-account.html';
196
- return false;
197
- }
198
- }
156
+ if ($(form).is('.form-change-password')) {
157
+ if ($(form).find('#current-password').val().length &&
158
+ $(form).find('#new-password').val().length &&
159
+ $(form).find('#confirm-password').val().length) {
160
+ window.location.href = './page_my-account.html';
161
+ return false;
162
+ }
163
+ }
199
164
 
200
- if ($(form).is('.form-personal-details')) {
201
- if ($(form).find('#first-name').val().length && $(form).find('#surname').val().length) {
202
- window.location.href = './page_my-account.html';
203
- return false;
204
- }
205
- }
165
+ if ($(form).is('.form-register')) {
166
+ if ($(form).find('#first-name').val().length &&
167
+ $(form).find('#last-name').val().length &&
168
+ $(form).find('#postcode').val().length &&
169
+ $(form).find('#email').val().length &&
170
+ $(form).find('#password').val().length &&
171
+ $(form).find('#confirm-password').val().length) {
172
+ window.location.href = './page_my-account.html';
173
+ return false;
174
+ }
175
+ }
206
176
 
207
- if ($(form).is('.form-address-details')) {
208
- if (
209
- $(form).find('#first-name').val().length &&
210
- $(form).find('#second-name').val().length &&
211
- $(form).find('#address1').val().length &&
212
- $(form).find('#town-city').val().length &&
213
- $(form).find('#mobile-telephone').val().length
214
- ) {
215
- window.location.href = './page_my-account_address-book.html';
216
- return false;
217
- }
218
- }
177
+ if ($(form).is('.form-personal-details')) {
178
+ if ($(form).find('#first-name').val().length && $(form).find('#surname').val().length) {
179
+ window.location.href = './page_my-account.html';
180
+ return false;
181
+ }
182
+ }
219
183
 
220
- if ($(form).is('.form-locator')) {
221
- if ($(form).find('#store-id').val()) {
222
- window.location.href = './page_store-locator-details.html';
223
- return false;
224
- }
225
- }
184
+ if ($(form).is('.form-address-details')) {
185
+ if ($(form).find('#first-name').val().length &&
186
+ $(form).find('#second-name').val().length &&
187
+ $(form).find('#address1').val().length &&
188
+ $(form).find('#town-city').val().length &&
189
+ $(form).find('#mobile-telephone').val().length) {
190
+ window.location.href = './page_my-account_address-book.html';
191
+ return false;
192
+ }
193
+ }
226
194
 
227
- if ($(form).is('.form-locator-list')) {
228
- if ($(form).find('#postcode-town').val().length) {
229
- var actionAfterSubmit = $(form).attr('data-action');
230
- if (actionAfterSubmit === 'scroll-to-list') {
231
- clearValidationErrors(this);
232
- handleSmoothScroll();
233
- } else {
234
- window.location.href = actionAfterSubmit;
235
- }
236
- return false;
237
- }
238
- }
195
+ if ($(form).is('.form-locator')) {
196
+ if ($(form).find('#store-id').val()) {
197
+ window.location.href = './page_store-locator-details.html';
198
+ return false;
199
+ }
200
+ }
239
201
 
240
- if ($(form).is('#form-mini-basket')) {
241
- if (Wick.User.isLoggedIn()) {
242
- window.location.href = './page_checkout_delivery-address.html';
243
- } else {
244
- window.location.href = './page_checkout_sign-in.html';
245
- }
246
- return false;
202
+ if ($(form).is('.form-locator-list')) {
203
+ if ($(form).find('#postcode-town').val().length) {
204
+ var actionAfterSubmit = $(form).attr('data-action');
205
+ if (actionAfterSubmit === 'scroll-to-list') {
206
+ clearValidationErrors(this);
207
+ handleSmoothScroll();
208
+ } else {
209
+ window.location.href = actionAfterSubmit;
247
210
  }
211
+ return false;
212
+ }
213
+ }
248
214
 
249
- function isNotEmpty(field) {
250
- var $field = $(field);
251
- var type = ($field.attr('type') || '').toLowerCase();
215
+ if ($(form).is('#form-mini-basket')) {
216
+ if (Wick.User.isLoggedIn()) {
217
+ window.location.href = './page_checkout_delivery-address.html';
218
+ } else {
219
+ window.location.href = './page_checkout_sign-in.html';
220
+ }
221
+ return false;
222
+ }
252
223
 
253
- if (type === 'checkbox') {
254
- return $field.is(':checked');
255
- }
224
+ function isNotEmpty(field) {
225
+ var $field = $(field);
226
+ var type = ($field.attr('type') || '').toLowerCase();
256
227
 
257
- if (type === 'radio') {
258
- var name = $field.attr('name');
259
- if (!name) return false;
228
+ if (type === 'checkbox') {
229
+ return $field.is(':checked');
230
+ }
260
231
 
261
- var $scope = $field.closest('[data-row-required]');
262
- if (!$scope.length) $scope = $field.closest('form');
232
+ if (type === 'radio') {
233
+ var name = $field.attr('name');
234
+ if (!name) return false;
263
235
 
264
- return $scope
265
- .find('input[type="radio"][name="' + name.replace(/"/g, '\\"') + '"]')
266
- .is(':checked');
267
- }
236
+ var $scope = $field.closest('[data-row-required]');
237
+ if (!$scope.length) $scope = $field.closest('form');
268
238
 
269
- return !!$field.val();
270
- }
239
+ return $scope.find('input[type="radio"][name="' + name.replace(/"/g, '\\"') + '"]').is(':checked');
240
+ }
271
241
 
272
- let requiredFields;
273
- if ($(form).is('#form-checkout-your-details')) {
274
- requiredFields = $(form).find('[data-row-required]:visible :input');
275
- if (_.every(requiredFields, isNotEmpty)) {
276
- window.location.href = $(form).attr('data-action');
277
- return false;
278
- }
279
- }
242
+ return !!$field.val();
243
+ }
280
244
 
281
- if ($(form).is('#checkout-your-details-modal')) {
282
- requiredFields = $(form).find('[data-row-required]:visible :input');
283
- if (_.every(requiredFields, isNotEmpty)) {
284
- $('#modalDeliveryEdit').modal('hide');
285
- return false;
286
- }
287
- }
288
245
 
289
- if ($(form).is('#edit-delivery-address')) {
290
- requiredFields = $(form).find('[data-row-required]:visible :input');
291
- if (_.every(requiredFields, isNotEmpty)) {
292
- $('#modalDeliveryGuest').modal('hide');
293
- return false;
294
- }
295
- }
246
+ if ($(form).is('#form-checkout-your-details')) {
247
+ var requiredFields = $(form).find('[data-row-required]:visible :input');
248
+ if (_.every(requiredFields, isNotEmpty)) {
249
+ window.location.href = $(form).attr('data-action');
250
+ return false;
251
+ }
252
+ }
296
253
 
297
- if ($(form).is('.checkout-register')) {
298
- if (
299
- $(form).find('#password').val().length &&
300
- $(form).find('#confirm-password').val().length
301
- ) {
302
- window.location.href = './page_my-account.html';
303
- return false;
304
- }
305
- }
254
+ if ($(form).is('#checkout-your-details-modal')) {
255
+ var requiredFields = $(form).find('[data-row-required]:visible :input');
256
+ if (_.every(requiredFields, isNotEmpty)) {
257
+ $('#modalDeliveryEdit').modal('hide');
258
+ return false;
259
+ }
260
+ }
306
261
 
307
- if ($(form).is('#form-checkout-voucher')) {
308
- if ($(form).find('#voucher-code').val().length) {
309
- return false;
310
- }
311
- }
262
+ if ($(form).is('#edit-delivery-address')) {
263
+ var requiredFields = $(form).find('[data-row-required]:visible :input');
264
+ if (_.every(requiredFields, isNotEmpty)) {
265
+ $('#modalDeliveryGuest').modal('hide');
266
+ return false;
267
+ }
268
+ }
312
269
 
313
- if ($(form).is('.add-list-id__form')) {
314
- if ($(form).find('#project-id').val().length) {
315
- return false;
316
- }
317
- }
270
+ if ($(form).is('.checkout-register')) {
271
+ if ($(form).find('#password').val().length &&
272
+ $(form).find('#confirm-password').val().length) {
273
+ window.location.href = './page_my-account.html';
274
+ return false;
275
+ }
276
+ }
318
277
 
319
- if ($(form).is('.header-search')) {
320
- window.location.href = './page_search-results.html';
321
- }
278
+ if ($(form).is('#form-checkout-voucher')) {
279
+ if ($(form).find('#voucher-code').val().length) {
280
+ return false;
281
+ }
282
+ }
322
283
 
323
- if ($(form).is('.click-and-collect__locator-form')) {
324
- $form = $(form);
325
- if ($form.find('#click-and-collect-town').val().length) {
326
- clearValidationErrors(this);
327
- } else if (!$form.hasClass(formInvalid)) {
328
- // Validation for inline form
329
- $form
330
- .addClass(formInvalid)
331
- .find(fieldRow)
332
- .addClass(rowValidationError)
333
- .find(field)
334
- .append(validationError);
335
- }
336
- return false;
337
- }
284
+ if ($(form).is('.add-list-id__form')) {
285
+ if ($(form).find('#project-id').val().length) {
286
+ return false;
287
+ }
288
+ }
338
289
 
339
- if ($(form).is('.form-track-order')) {
340
- $form = $(form);
341
-
342
- if (
343
- $form.find('#order').val().length &&
344
- $form.find('#tel').val().length &&
345
- $form.find('#email').val().length &&
346
- $form.find('#postcode').val().length
347
- ) {
348
- clearValidationErrors(this);
349
- } else if (!$form.hasClass(formInvalid)) {
350
- $form.addClass(formInvalid);
351
-
352
- $(fieldRow).each(function () {
353
- $(this)
354
- .addClass(rowValidationError)
355
- .append(
356
- '<div class="form-row__error">' + $(this).data('message') + '</div>'
357
- );
358
- });
359
- }
360
-
361
- return false;
362
- }
290
+ if ($(form).is('.header-search')) {
291
+ window.location.href = './page_search-results.html';
292
+ }
363
293
 
364
- if ($(form).is('#edit-billing-address')) {
365
- requiredFields = $(form).find('[data-row-required]:visible :input');
366
- if (_.every(requiredFields, isNotEmpty)) {
367
- $('#modalEditBilling').modal('hide');
368
- return false;
369
- }
370
- }
294
+ if ($(form).is('.click-and-collect__locator-form')) {
295
+ var $form = $(form);
296
+ if ($form.find('#click-and-collect-town').val().length) {
297
+ clearValidationErrors(this);
298
+ } else if (!$form.hasClass(formInvalid)) {
299
+ // Validation for inline form
300
+ $form.addClass(formInvalid)
301
+ .find(fieldRow).addClass(rowValidationError)
302
+ .find(field).append(validationError);
303
+ }
304
+ return false;
305
+ }
371
306
 
372
- showValidationErrors(this);
373
- return false;
374
- };
307
+ if ($(form).is('.form-track-order')) {
308
+ var $form = $(form);
375
309
 
376
- var scrollLocatorListPage = function () {
377
- var isLocatorListPage = $('.cards-store-list').length;
378
- var isScrollNeeded = window.location.hash === '#stores-list';
379
- if (isLocatorListPage && isScrollNeeded) {
380
- handleSmoothScroll();
381
- }
382
- };
310
+ if ($form.find('#order').val().length &&
311
+ $form.find('#tel').val().length &&
312
+ $form.find('#email').val().length &&
313
+ $form.find('#postcode').val().length) {
314
+ clearValidationErrors(this);
315
+ } else if (!$form.hasClass(formInvalid)) {
316
+ $form.addClass(formInvalid);
383
317
 
384
- let bindEvents = function () {
385
- let selector = excludedClassesForForm.reduce((acc, className) => {
386
- return acc + ':not([class^="' + className + '"])';
387
- }, 'form');
388
- $(document).on('submit', selector, handleFormSubmit);
389
- $forgotPassword.on('click', scenarios[2].action);
390
- $('.btn-cancel').on('click', function () {
391
- window.location.href = './page_my-account.html';
392
- });
393
- $('.btn-previous').on('click', function () {
394
- window.location.href = './page_login.html';
318
+ $(fieldRow).each(function() {
319
+ $(this).addClass(rowValidationError)
320
+ .append('<div class="form-row__error">' + $(this).data('message') + '</div>');
395
321
  });
396
- };
322
+ }
397
323
 
398
- var init = function () {
399
- bindEvents();
400
- scrollLocatorListPage();
401
- };
324
+ return false;
325
+ }
402
326
 
403
- init();
327
+ if ($(form).is('#edit-billing-address')) {
328
+ var requiredFields = $(form).find('[data-row-required]:visible :input');
329
+ if (_.every(requiredFields, isNotEmpty)) {
330
+ $('#modalEditBilling').modal('hide');
331
+ return false;
332
+ }
333
+ }
404
334
 
405
- return {
406
- showValidationErrors: showValidationErrors,
407
- clearValidationErrors: clearValidationErrors,
408
- };
335
+ showValidationErrors(this);
336
+ return false;
337
+ };
338
+
339
+ var scrollLocatorListPage = function() {
340
+ var isLocatorListPage = $('.cards-store-list').length;
341
+ var isScrollNeeded = window.location.hash === '#stores-list';
342
+ if (isLocatorListPage && isScrollNeeded) {
343
+ handleSmoothScroll();
344
+ }
345
+ };
346
+
347
+ let bindEvents = function() {
348
+ let selector = excludedClassesForForm.reduce((acc, className) => {
349
+ return acc + ':not([class^="' + className + '"])';
350
+ }, 'form');
351
+ $(document).on('submit', selector, handleFormSubmit);
352
+ $forgotPassword.on('click', scenarios[2].action);
353
+ $('.btn-cancel').on('click', function() {
354
+ window.location.href = './page_my-account.html';
355
+ });
356
+ $('.btn-previous').on('click', function() {
357
+ window.location.href = './page_login.html';
358
+ });
359
+ };
360
+
361
+ var init = function() {
362
+ bindEvents();
363
+ scrollLocatorListPage();
364
+ };
365
+
366
+ init();
367
+
368
+ return {
369
+ showValidationErrors: showValidationErrors,
370
+ clearValidationErrors: clearValidationErrors,
371
+ };
409
372
  })();