wickes-css2 2.105.0-develop.3 → 2.105.0-develop.4

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 (160) hide show
  1. package/Readme.md +1 -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/page_product_search.css +1 -1
  9. package/build/css/pages/page_products-list-combined.css +1 -1
  10. package/build/css/pages/page_products-list.css +1 -1
  11. package/build/css/pdp-main-before-combine.css +1 -1
  12. package/build/css/pdp-main-non-critical.css +1 -1
  13. package/build/css/pdp-main.css +1 -1
  14. package/build/css/plp-main.css +1 -1
  15. package/build/css/store-locator-main.css +1 -1
  16. package/build/js/basket.min.js +2 -2
  17. package/build/js/bundle.min.js +1 -1
  18. package/build/js/checkout.min.js +2 -2
  19. package/build/js/emulation.min.js +12122 -11594
  20. package/build/js/general.bundle.min.js +1 -1
  21. package/build/js/kitchen/kitchen-plp.min.js +1 -9
  22. package/build/js/merged-checkout.min.js +2 -2
  23. package/build/js/mini-basket-slider.min.js +1 -1
  24. package/build/js/page/basket/basket-update-cart-action.js +59 -56
  25. package/build/js/page/basket/basket-update-cart.js +27 -27
  26. package/build/js/page/basket/basket-utils.js +40 -33
  27. package/build/js/page/basket/mini-basket-total.js +70 -66
  28. package/build/js/page/basket/quantity-change-handler.js +73 -55
  29. package/build/js/page/basket/update-quantity-operation.js +39 -30
  30. package/build/js/page/basket/update-quantity.js +62 -62
  31. package/build/js/page/basket-v2.js +362 -229
  32. package/build/js/page/billie-business-type.js +27 -27
  33. package/build/js/page/checkout-payment-details.js +301 -299
  34. package/build/js/page/components/discounts.js +39 -36
  35. package/build/js/page/components/mini-basket-slider.js +604 -545
  36. package/build/js/page/filters/desktop-nav.js +64 -0
  37. package/build/js/page/filters/mobile-nav.js +93 -0
  38. package/build/js/page/filters/plp-filters-chips.js +92 -0
  39. package/build/js/page/filters/plp-filters-mobile.js +150 -0
  40. package/build/js/page/filters/plp-filters-panel.js +123 -0
  41. package/build/js/page/filters/plp-filters-utils.js +66 -0
  42. package/build/js/page/filters/plp-filters.js +256 -0
  43. package/build/js/page/filters/sort-by.js +172 -0
  44. package/build/js/page/klarna-modal-scroll-disable.js +4 -4
  45. package/build/js/page/online-exclusive.js +28 -30
  46. package/build/js/page/search-filter.js +62 -0
  47. package/build/js/page/utils/helpers.js +14 -9
  48. package/build/js/page/utils/show-more-less.js +273 -0
  49. package/build/js/pdp.bundle.min.js +1 -1
  50. package/build/js/plp-filters.min.js +9 -0
  51. package/build/js/plp.bundle.min.js +1 -1
  52. package/build/js/project-list.min.js +1 -1
  53. package/build/js/search-filter.min.js +1 -0
  54. package/package.json +3 -3
  55. package/src/components/accordion.hbs +2 -2
  56. package/src/components/kitchen/dropdown.hbs +6 -3
  57. package/src/components/kitchen/filter-modal-content-kitchen.hbs +10 -0
  58. package/src/components/kitchen/filter-modal.hbs +10 -13
  59. package/src/components/kitchen/plp-filters.hbs +3 -1
  60. package/src/components/kitchen/sort-by.hbs +1 -1
  61. package/src/components/search-filter-modal-content.hbs +102 -0
  62. package/src/components/search-filter.hbs +121 -112
  63. package/src/data/data_plp_load-more.json +1 -1
  64. package/src/elements/btn.hbs +7 -0
  65. package/src/js/components/general/accordion.js +38 -29
  66. package/src/js/components/general/cart-slider.js +19 -16
  67. package/src/js/components/general/create-popup-slider.js +168 -173
  68. package/src/js/emulation/big-wins.js +1081 -904
  69. package/src/js/emulation/billie-modal.js +23 -19
  70. package/src/js/emulation/checkout-payment-details.js +47 -38
  71. package/src/js/emulation/custom-slider-emulation.js +17 -13
  72. package/src/js/emulation/filters-emulation.js +164 -0
  73. package/src/js/emulation/forms.js +360 -323
  74. package/src/js/emulation/mini-basket-data.js +1051 -923
  75. package/src/js/emulation/paymentLoader.js +17 -17
  76. package/src/js/emulation/pdf-file-loader.js +89 -91
  77. package/src/js/emulation/popover-mini-basket.js +246 -239
  78. package/src/js/emulation/product-counter.js +50 -0
  79. package/src/js/emulation/project-list-pdp.js +321 -316
  80. package/src/js/emulation/repayment-toggle.js +23 -24
  81. package/src/js/emulation/reset-filter-desktop.js +5 -0
  82. package/src/js/emulation/selectable.js +22 -18
  83. package/src/js/emulation/wismo-details.js +23 -31
  84. package/src/js/page/basket/basket-update-cart-action.js +59 -56
  85. package/src/js/page/basket/basket-update-cart.js +27 -27
  86. package/src/js/page/basket/basket-utils.js +40 -33
  87. package/src/js/page/basket/mini-basket-total.js +70 -66
  88. package/src/js/page/basket/quantity-change-handler.js +73 -55
  89. package/src/js/page/basket/update-quantity-operation.js +39 -30
  90. package/src/js/page/basket/update-quantity.js +62 -62
  91. package/src/js/page/basket-v2.js +362 -229
  92. package/src/js/page/billie-business-type.js +27 -27
  93. package/src/js/page/checkout-payment-details.js +301 -299
  94. package/src/js/page/components/discounts.js +39 -36
  95. package/src/js/page/components/mini-basket-slider.js +604 -545
  96. package/src/js/page/filters/desktop-nav.js +64 -0
  97. package/src/js/page/filters/mobile-nav.js +93 -0
  98. package/src/js/page/filters/plp-filters-chips.js +92 -0
  99. package/src/js/page/filters/plp-filters-mobile.js +150 -0
  100. package/src/js/page/filters/plp-filters-panel.js +123 -0
  101. package/src/js/page/filters/plp-filters-utils.js +66 -0
  102. package/src/js/page/filters/plp-filters.js +256 -0
  103. package/src/js/page/filters/sort-by.js +172 -0
  104. package/src/js/page/klarna-modal-scroll-disable.js +4 -4
  105. package/src/js/page/online-exclusive.js +28 -30
  106. package/src/js/page/search-filter.js +62 -0
  107. package/src/js/page/utils/helpers.js +14 -9
  108. package/src/js/page/utils/show-more-less.js +273 -0
  109. package/src/page_empty-shared-project-list-bicester-hub.html +3 -0
  110. package/src/page_kitchen-plp.html +2 -2
  111. package/src/page_plp-with-paint.html +2 -7
  112. package/src/page_plp.html +2 -7
  113. package/src/page_plp_v2-energy-efficiency.html +1 -6
  114. package/src/page_plp_v2-favourite-products.html +6 -7
  115. package/src/page_plp_v2-vat.html +2 -7
  116. package/src/page_plp_v2.html +22 -9
  117. package/src/page_product_search-vat.html +2 -7
  118. package/src/page_product_search.html +2 -7
  119. package/src/page_project-list-with-new-share-popup-android.html +1 -0
  120. package/src/page_project-list-with-new-share-popup-ios.html +1 -0
  121. package/src/page_project-list-with-new-share-popup.html +1 -0
  122. package/src/page_search-results.html +2 -7
  123. package/src/page_shared-project-list-bicester-hub.html +1 -0
  124. package/src/scss/common/_common.scss +5 -4
  125. package/src/scss/components/_accordion.scss +1 -3
  126. package/src/scss/components/_custom-slider.scss +15 -14
  127. package/src/scss/components/_date-selection-add-new-styles.scss +6 -7
  128. package/src/scss/components/_date-selection.scss +1 -1
  129. package/src/scss/components/{kitchen/_filter-modal.scss → _filter-modal.scss} +55 -4
  130. package/src/scss/components/{kitchen/_plp-filters.scss → _plp-filters.scss} +31 -13
  131. package/src/scss/components/_popover-mini-basket.scss +3 -3
  132. package/src/scss/components/_search-filter.scss +95 -15
  133. package/src/scss/components/_sort-by.scss +190 -0
  134. package/src/scss/components/checkout-chip.scss +2 -2
  135. package/src/scss/components/checkout-payment-repayment-terms.scss +1 -1
  136. package/src/scss/globals/_global-components.scss +3 -0
  137. package/src/scss/helpers/_colors-semantic.scss +68 -68
  138. package/src/scss/helpers/_variables.scss +242 -196
  139. package/src/scss/kitchen-plp-main.scss +0 -3
  140. package/src/scss/main.scss +65 -65
  141. package/src/scss/pages/page_product-details-v2.scss +1 -4
  142. package/src/scss/pages/page_product_search.scss +9 -1
  143. package/src/scss/pages/page_products-list-combined.scss +28 -24
  144. package/src/scss/pages/page_products-list.scss +8 -0
  145. package/src/scss/pages/tradePro-rewards.scss +2 -3
  146. package/build/js/page/accordion.js +0 -35
  147. package/build/js/page/kitchen/plp-filters-chips.js +0 -90
  148. package/build/js/page/kitchen/plp-filters-mobile.js +0 -72
  149. package/build/js/page/kitchen/plp-filters-panel.js +0 -119
  150. package/build/js/page/kitchen/plp-filters-utils.js +0 -65
  151. package/build/js/page/kitchen/plp-filters.js +0 -205
  152. package/build/js/page/kitchen/sort-by.js +0 -157
  153. package/src/js/components/general/search-filter.js +0 -21
  154. package/src/js/page/accordion.js +0 -35
  155. package/src/js/page/kitchen/plp-filters-chips.js +0 -90
  156. package/src/js/page/kitchen/plp-filters-mobile.js +0 -72
  157. package/src/js/page/kitchen/plp-filters-panel.js +0 -119
  158. package/src/js/page/kitchen/plp-filters-utils.js +0 -65
  159. package/src/js/page/kitchen/plp-filters.js +0 -205
  160. package/src/js/page/kitchen/sort-by.js +0 -157
@@ -1,22 +1,26 @@
1
1
  (function () {
2
- const ORDER = ["30", "30_60", "30_90", "30_60_90"];
2
+ const ORDER = ['30', '30_60', '30_90', '30_60_90'];
3
3
 
4
4
  const COPY = {
5
- "30": {
6
- heading: "Buy now, pay within 30 days",
7
- repayment: "From the point of collection / delivery of goods you’ll have 30 days to pay",
5
+ 30: {
6
+ heading: 'Buy now, pay within 30 days',
7
+ repayment:
8
+ 'From the point of collection / delivery of goods you’ll have 30 days to pay',
8
9
  },
9
- "30_60": {
10
- heading: "Buy now and choose to pay within 30 or 60 days",
11
- repayment: "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
10
+ '30_60': {
11
+ heading: 'Buy now and choose to pay within 30 or 60 days',
12
+ repayment:
13
+ "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
12
14
  },
13
- "30_90": {
14
- heading: "Buy now and choose to pay within 30 or 90 days",
15
- repayment: "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
15
+ '30_90': {
16
+ heading: 'Buy now and choose to pay within 30 or 90 days',
17
+ repayment:
18
+ "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
16
19
  },
17
- "30_60_90": {
18
- heading: "Buy now and choose to pay within 30, 60 or 90 days",
19
- repayment: "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
20
+ '30_60_90': {
21
+ heading: 'Buy now and choose to pay within 30, 60 or 90 days',
22
+ repayment:
23
+ "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
20
24
  },
21
25
  };
22
26
 
@@ -28,15 +32,15 @@
28
32
  }
29
33
 
30
34
  function applyBillieTerms(terms) {
31
- const copy = COPY[terms] || COPY["30"];
32
- const $modal = $("#billieLearnMoreModal");
35
+ const copy = COPY[terms] || COPY['30'];
36
+ const $modal = $('#billieLearnMoreModal');
33
37
 
34
- $modal.find(".js-billie-terms-heading").text(copy.heading);
35
- $modal.find(".js-billie-repayment-line").text(copy.repayment);
36
- $modal.attr("data-billie-terms", terms);
38
+ $modal.find('.js-billie-terms-heading').text(copy.heading);
39
+ $modal.find('.js-billie-repayment-line').text(copy.repayment);
40
+ $modal.attr('data-billie-terms', terms);
37
41
  }
38
42
 
39
- $(document).on("click", ".billie__link", function (e) {
43
+ $(document).on('click', '.billie__link', function (e) {
40
44
  e.preventDefault();
41
45
 
42
46
  const terms = nextTerms();
@@ -1,44 +1,53 @@
1
1
  var Wick = Wick || {};
2
2
 
3
- Wick.PaymentDetails = (function() {
4
- var $btnEnterDetails = $('.btn-enter-details'),
5
- $form = $btnEnterDetails.parents('form'),
6
- isGuestPage = $('.page_checkout-payment-details_guest').length;
3
+ Wick.PaymentDetails = (function () {
4
+ var $btnEnterDetails = $('.btn-enter-details'),
5
+ $form = $btnEnterDetails.parents('form'),
6
+ isGuestPage = $('.page_checkout-payment-details_guest').length;
7
7
 
8
- function bindEvents() {
9
- $btnEnterDetails.on('click', function() {
10
- if ($form.find('#card-name').val()?.length &&
11
- $form.find('#first-line-address').val().length &&
12
- $form.find('#address-line-1').val().length &&
13
- $form.find('#town-city').val().length &&
14
- $form.find('#postcode_additional').val().length) {
15
- $('.checkout-payment-details__card-details').removeClass('checkout-payment-details__card-details_hidden');
16
- $('html, body').animate({
17
- scrollTop: $('.checkout-payment-details__card-details').offset().top - 15,
18
- }, 700);
19
- return false;
20
- }
21
- Wick.Forms.showValidationErrors($form[0]);
22
- return false;
23
- });
8
+ function bindEvents() {
9
+ $btnEnterDetails.on('click', function () {
10
+ if (
11
+ $form.find('#card-name').val()?.length &&
12
+ $form.find('#first-line-address').val().length &&
13
+ $form.find('#address-line-1').val().length &&
14
+ $form.find('#town-city').val().length &&
15
+ $form.find('#postcode_additional').val().length
16
+ ) {
17
+ $('.checkout-payment-details__card-details').removeClass(
18
+ 'checkout-payment-details__card-details_hidden'
19
+ );
20
+ $('html, body').animate(
21
+ {
22
+ scrollTop: $('.checkout-payment-details__card-details').offset().top - 15,
23
+ },
24
+ 700
25
+ );
26
+ return false;
27
+ }
28
+ Wick.Forms.showValidationErrors($form[0]);
29
+ return false;
30
+ });
24
31
 
25
- $('.checkout-payment-details__card-details').on('submit', function() {
26
- var $form = $(this);
27
- if ($form.find('#card-type').val() &&
28
- $form.find('#card-name1').val().length &&
29
- $form.find('#card-number').val().length &&
30
- $form.find('#month').val() &&
31
- $form.find('#year').val() &&
32
- $form.find('#security-code').val()) {
33
- window.location.href = isGuestPage
34
- ? './page_checkout_confirmation_guest.html'
35
- : './page_checkout_confirmation.html';
36
- return false;
37
- }
38
- Wick.Forms.showValidationErrors(this);
39
- return false;
40
- });
41
- }
32
+ $('.checkout-payment-details__card-details').on('submit', function () {
33
+ var $form = $(this);
34
+ if (
35
+ $form.find('#card-type').val() &&
36
+ $form.find('#card-name1').val().length &&
37
+ $form.find('#card-number').val().length &&
38
+ $form.find('#month').val() &&
39
+ $form.find('#year').val() &&
40
+ $form.find('#security-code').val()
41
+ ) {
42
+ window.location.href = isGuestPage
43
+ ? './page_checkout_confirmation_guest.html'
44
+ : './page_checkout_confirmation.html';
45
+ return false;
46
+ }
47
+ Wick.Forms.showValidationErrors(this);
48
+ return false;
49
+ });
50
+ }
42
51
 
43
- bindEvents();
52
+ bindEvents();
44
53
  })();
@@ -1,22 +1,26 @@
1
-
2
1
  function simulateHybrisSendingHtml() {
3
- const htmlFromHybris = Wick.FEMock.cartPDP;
4
- const event = new CustomEvent('productAddedToCart', {
5
- detail: { html: htmlFromHybris }
6
- });
7
- document.dispatchEvent(event);
2
+ const htmlFromHybris = Wick.FEMock.cartPDP;
3
+ const event = new CustomEvent('productAddedToCart', {
4
+ detail: { html: htmlFromHybris },
5
+ });
6
+ document.dispatchEvent(event);
8
7
  }
9
8
 
10
9
  function bindResolveEvent(events) {
11
- $(window).on(events.join(' '), function ({ detail: { resolve } }) {
12
- setTimeout(() => {
13
- resolve();
14
- }, 200);
15
- });
10
+ $(window).on(events.join(' '), function ({ detail: { resolve } }) {
11
+ setTimeout(() => {
12
+ resolve();
13
+ }, 200);
14
+ });
16
15
  }
17
16
 
18
17
  $(document).ready(function () {
19
- $('.btn-add-to-basket').on('click', simulateHybrisSendingHtml);
18
+ $('.btn-add-to-basket').on('click', simulateHybrisSendingHtml);
20
19
 
21
- bindResolveEvent(['CLOSE_JUST_ADDED', 'CLOSE_MINI_BASKET', 'MINI_BASKET_CHECKOUT', 'MINI_BASKET_VIEW_BASKET']);
20
+ bindResolveEvent([
21
+ 'CLOSE_JUST_ADDED',
22
+ 'CLOSE_MINI_BASKET',
23
+ 'MINI_BASKET_CHECKOUT',
24
+ 'MINI_BASKET_VIEW_BASKET',
25
+ ]);
22
26
  });
@@ -0,0 +1,164 @@
1
+ import { createShowMoreLess } from '../page/utils/show-more-less';
2
+
3
+ var Wick = window.Wick || (window.Wick = {});
4
+
5
+ function waitFor(getter, cb, opts) {
6
+ opts = opts || {};
7
+ var timeout = opts.timeout || 8000;
8
+ var interval = opts.interval || 50;
9
+
10
+ var start = Date.now();
11
+ (function tick() {
12
+ var val;
13
+ try {
14
+ val = getter();
15
+ } catch (e) {
16
+ val = null;
17
+ }
18
+
19
+ if (val) {
20
+ cb(val);
21
+ return;
22
+ }
23
+
24
+ if (Date.now() - start > timeout) {
25
+ return;
26
+ }
27
+
28
+ setTimeout(tick, interval);
29
+ })();
30
+ }
31
+
32
+ // show-more-less
33
+ (function () {
34
+ const SEL = {
35
+ OPEN: '#open-overlay',
36
+ CLOSE: '#close-overlay, .filter-results__btn-close',
37
+ FILTER_RESULT: '.filter-results_desktop',
38
+ FILTER_MOBILE: '.filter-results_mobile',
39
+ CATEGORY: '.filter__item--category',
40
+ };
41
+
42
+ const SRPShowMoreLess = createShowMoreLess({
43
+ excludeGroup: ($group) => $group.hasClass(SEL.CATEGORY),
44
+ });
45
+
46
+ function initInScope() {
47
+ const $fm = $(SEL.FILTER_MOBILE);
48
+ SRPShowMoreLess.init($(SEL.FILTER_RESULT));
49
+ SRPShowMoreLess.init($fm);
50
+ }
51
+
52
+ function resetInMobile() {
53
+ const $fm = $(SEL.FILTER_MOBILE);
54
+ SRPShowMoreLess.resetAll($fm);
55
+ }
56
+
57
+ $(function () {
58
+ initInScope();
59
+ });
60
+
61
+ $(document)
62
+ .off('click.srpSmlEmu', SEL.OPEN)
63
+ .on('click.srpSmlEmu', SEL.OPEN, function (e) {
64
+ e.preventDefault();
65
+ initInScope();
66
+ resetInMobile();
67
+ });
68
+
69
+ $(document)
70
+ .off('click.srpSmlEmu', SEL.CLOSE)
71
+ .on('click.srpSmlEmu', SEL.CLOSE, function (e) {
72
+ e.preventDefault();
73
+ resetInMobile();
74
+ });
75
+ })();
76
+
77
+ (function () {
78
+ waitFor(
79
+ function () {
80
+ return Wick.Sort;
81
+ },
82
+ function (Sort) {
83
+ Sort.ROOT = '.products-list-page:not(.page-KitchenPLPPage)';
84
+ Wick.Sort.ROOT = Sort.ROOT;
85
+
86
+ var $root = $(Sort.ROOT);
87
+ if (!$root.length) return;
88
+
89
+ if (Sort.__emuBound) return;
90
+ Sort.__emuBound = true;
91
+
92
+ $root.off('click', Sort.TRIGGER_MOBILE);
93
+ $root.off('click', Sort.TRIGGER_DESKTOP_BTN);
94
+ $root.off('keydown', Sort.TRIGGER_MOBILE + ', ' + Sort.TRIGGER_DESKTOP_BTN);
95
+ $root.off('click', Sort.OPTION);
96
+
97
+ $root.on('click', Sort.TRIGGER_MOBILE, function (e) {
98
+ e.stopPropagation();
99
+
100
+ if ($(e.target).closest(Sort.DROPDOWN).length) return;
101
+ e.preventDefault();
102
+ Sort.toggle($(e.currentTarget));
103
+ });
104
+
105
+ $root.on('click', Sort.TRIGGER_DESKTOP_BTN, function (e) {
106
+ e.stopPropagation();
107
+
108
+ e.preventDefault();
109
+ Sort.toggle($(e.currentTarget).closest(Sort.WRAP));
110
+ });
111
+
112
+ $root.on(
113
+ 'keydown',
114
+ Sort.TRIGGER_MOBILE + ', ' + Sort.TRIGGER_DESKTOP_BTN,
115
+ function (e) {
116
+ if (e.key === 'Enter' || e.key === ' ') {
117
+ e.stopPropagation();
118
+ e.preventDefault();
119
+ Sort.toggle($(e.currentTarget).closest(Sort.WRAP));
120
+ }
121
+ }
122
+ );
123
+
124
+ $root.on('click', Sort.OPTION, function (e) {
125
+ e.preventDefault();
126
+ e.stopPropagation();
127
+
128
+ var opt = $(e.currentTarget);
129
+ var value = opt.data('value');
130
+ var label = Sort.valueToLabel(value);
131
+
132
+ if (opt.data('is-plp-srp')) {
133
+ var wrap = opt.closest(Sort.WRAP);
134
+ wrap.find(Sort.OPTION).removeClass('is-active');
135
+ opt.addClass('is-active');
136
+
137
+ $(Sort.INFO).text(label);
138
+ Sort.closeAll();
139
+ return;
140
+ }
141
+
142
+ Sort.updateSortParamInURL(value);
143
+ });
144
+
145
+ (function bootstrapEmu() {
146
+ var urlParams = new URLSearchParams(window.location.search);
147
+ var value = urlParams.get('sortBy') || 'relevance';
148
+ var label = Sort.valueToLabel(value);
149
+
150
+ var $wraps = $root.find(Sort.WRAP);
151
+
152
+ $wraps.each(function (_, el) {
153
+ var w = $(el);
154
+ w.find(Sort.OPTION)
155
+ .removeClass('is-active')
156
+ .filter('[data-value="' + value + '"]')
157
+ .addClass('is-active');
158
+ });
159
+
160
+ $(Sort.INFO).text(label);
161
+ })();
162
+ }
163
+ );
164
+ })();