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,199 +1,194 @@
1
1
  function createEvent(eventName, payload, eventDetail) {
2
- return new CustomEvent(eventName, {
3
- detail: {
4
- payload,
5
- resolve: eventDetail.resolve,
6
- reject: eventDetail.reject,
7
- },
8
- });
2
+ return new CustomEvent(eventName, {
3
+ detail: {
4
+ payload,
5
+ resolve: eventDetail.resolve,
6
+ reject: eventDetail.reject,
7
+ },
8
+ });
9
9
  }
10
10
 
11
+ /* eslint-disable no-unused-vars -- used globally */
11
12
  function createPopupSlider({ type, sliderSelector, onAppendEvent, onAppend, onClose }) {
12
- const events = {
13
- CLOSE_JUST_ADDED: 'CLOSE_JUST_ADDED',
14
- CLOSE_MINI_BASKET: 'CLOSE_MINI_BASKET'
15
- }
16
-
17
- const el = {
18
- $body: $('body'),
19
- slider: sliderSelector,
20
- sliderWrap: `${sliderSelector} .custom-slider__wrap`,
21
- sliderWrapScroll: 'custom-slider__wrap--scroll',
22
- footer: '.custom-slider__footer',
23
- closePopup: `${sliderSelector} .close-popup`,
24
- $stickyWrapper: $('.sticky-wrapper'),
25
- $headerWrapper: $('.header-wrapper'),
26
- scrollDisable: 'slider-scroll-disable',
27
- footerFixed: 'footer-fixed',
28
- btnMiniBasket: '.header-minicart__btn',
29
- };
30
-
31
- function isSmallBreakpoint() {
32
- return Wick.Responsive.getCurrentBreakpoint() === 'down-sm';
33
- }
34
-
35
- function getAnimationClass() {
36
- return isSmallBreakpoint() ? 'bottom-to-top' : 'right-to-left';
37
- }
38
-
39
- function adjustHeight() {
40
- const stickyWrapperHeight = el.$stickyWrapper.outerHeight() || 0;
41
- const headerWrapperHeight = el.$headerWrapper.outerHeight() || 0;
42
-
43
- const totalHeight = stickyWrapperHeight + headerWrapperHeight;
44
- $(el.slider).css('height', `calc(100% - ${totalHeight}px)`);
45
- }
46
-
47
- function hideSlider() {
48
- $(el.slider).removeClass('show');
49
-
50
- setTimeout(() => {
51
- el.$body.removeClass(el.scrollDisable);
52
-
53
- if (!isSmallBreakpoint()) {
54
- el.$body.css('padding-right', '');
55
- }
56
-
57
- if (type === 'cart') {
58
- $(el.slider)
59
- .removeAttr('style')
60
- .empty();
61
- }
62
-
63
- $(el.slider).addClass('d-none');
64
- }, 400);
65
- }
66
-
67
- function handleScroll(sliderWrap) {
68
- const scrollHeight = $(sliderWrap)[0].scrollHeight;
69
- const scrollTop = $(sliderWrap).scrollTop();
70
- const clientHeight = $(sliderWrap)[0].clientHeight;
71
- const scrollBottom = scrollHeight - scrollTop - clientHeight;
72
-
73
- if (scrollBottom > 75) {
74
- $(el.footer).addClass(el.footerFixed);
75
- $(sliderWrap).addClass(el.sliderWrapScroll);
76
- } else {
77
- $(el.footer).removeClass(el.footerFixed);
78
- $(sliderWrap).removeClass(el.sliderWrapScroll);
13
+ const events = {
14
+ CLOSE_JUST_ADDED: 'CLOSE_JUST_ADDED',
15
+ CLOSE_MINI_BASKET: 'CLOSE_MINI_BASKET',
16
+ };
17
+
18
+ const el = {
19
+ $body: $('body'),
20
+ slider: sliderSelector,
21
+ sliderWrap: `${sliderSelector} .custom-slider__wrap`,
22
+ sliderWrapScroll: 'custom-slider__wrap--scroll',
23
+ footer: '.custom-slider__footer',
24
+ closePopup: `${sliderSelector} .close-popup`,
25
+ $stickyWrapper: $('.sticky-wrapper'),
26
+ $headerWrapper: $('.header-wrapper'),
27
+ scrollDisable: 'slider-scroll-disable',
28
+ footerFixed: 'footer-fixed',
29
+ btnMiniBasket: '.header-minicart__btn',
30
+ };
31
+
32
+ function isSmallBreakpoint() {
33
+ return Wick.Responsive.getCurrentBreakpoint() === 'down-sm';
34
+ }
35
+
36
+ function getAnimationClass() {
37
+ return isSmallBreakpoint() ? 'bottom-to-top' : 'right-to-left';
79
38
  }
80
- }
81
39
 
82
- function showSlider() {
83
- if (isSmallBreakpoint()) {
84
- adjustHeight();
40
+ function adjustHeight() {
41
+ const stickyWrapperHeight = el.$stickyWrapper.outerHeight() || 0;
42
+ const headerWrapperHeight = el.$headerWrapper.outerHeight() || 0;
43
+
44
+ const totalHeight = stickyWrapperHeight + headerWrapperHeight;
45
+ $(el.slider).css('height', `calc(100% - ${totalHeight}px)`);
85
46
  }
86
47
 
87
- const animationClass = getAnimationClass();
88
- const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;
89
- $(el.slider)
90
- .removeClass('bottom-to-top right-to-left')
91
- .addClass(animationClass);
48
+ function hideSlider() {
49
+ $(el.slider).removeClass('show');
92
50
 
93
- $('html, body').animate({ scrollTop: 0 }, 300, () => {
94
- Wick.Backdrop.show();
95
- $(el.slider).removeClass('d-none');
51
+ setTimeout(() => {
52
+ el.$body.removeClass(el.scrollDisable);
96
53
 
97
- setTimeout(() => {
98
- $(el.slider).addClass('show');
99
- handleScroll(el.sliderWrap);
100
- el.$body.addClass(el.scrollDisable);
54
+ if (!isSmallBreakpoint()) {
55
+ el.$body.css('padding-right', '');
56
+ }
57
+
58
+ if (type === 'cart') {
59
+ $(el.slider).removeAttr('style').empty();
60
+ }
61
+
62
+ $(el.slider).addClass('d-none');
63
+ }, 400);
64
+ }
101
65
 
102
- if (!isSmallBreakpoint()) {
103
- el.$body.css('padding-right', `${scrollBarWidth}px`);
66
+ function handleScroll(sliderWrap) {
67
+ const scrollHeight = $(sliderWrap)[0].scrollHeight;
68
+ const scrollTop = $(sliderWrap).scrollTop();
69
+ const clientHeight = $(sliderWrap)[0].clientHeight;
70
+ const scrollBottom = scrollHeight - scrollTop - clientHeight;
71
+
72
+ if (scrollBottom > 75) {
73
+ $(el.footer).addClass(el.footerFixed);
74
+ $(sliderWrap).addClass(el.sliderWrapScroll);
75
+ } else {
76
+ $(el.footer).removeClass(el.footerFixed);
77
+ $(sliderWrap).removeClass(el.sliderWrapScroll);
104
78
  }
105
- }, 100);
106
- });
107
- }
108
-
109
- function handleSliderClose(eventName) {
110
- return new Promise((resolve, reject) => {
111
- const eventDetail = {resolve, reject};
112
- const event = createEvent(eventName, {}, eventDetail);
113
- window.dispatchEvent(event);
114
- })
115
- .then(() => {})
116
- .catch((error) => {
117
- console.error(error);
118
- })
119
- .finally(() => {
120
- hideSlider();
121
- Wick.Backdrop.hide();
122
- if (typeof onClose === 'function') {
123
- onClose();
79
+ }
80
+
81
+ function showSlider() {
82
+ if (isSmallBreakpoint()) {
83
+ adjustHeight();
124
84
  }
125
- })
126
- }
127
85
 
128
- function bindClosePopup() {
129
- $(document).on('click', el.closePopup, async () => {
130
- if (type === 'cart') {
131
- await handleSliderClose(events.CLOSE_JUST_ADDED);
132
- }
86
+ const animationClass = getAnimationClass();
87
+ const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;
88
+ $(el.slider).removeClass('bottom-to-top right-to-left').addClass(animationClass);
133
89
 
134
- if (type === 'miniBasket') {
135
- await handleSliderClose(events.CLOSE_MINI_BASKET)
136
- }
90
+ $('html, body').animate({ scrollTop: 0 }, 300, () => {
91
+ Wick.Backdrop.show();
92
+ $(el.slider).removeClass('d-none');
137
93
 
138
- hideSlider();
139
- Wick.Backdrop.hide();
140
- });
141
- }
142
-
143
- function handleResize() {
144
- const animationClass = getAnimationClass();
145
-
146
- if ($(el.slider).hasClass('show')) {
147
- $(el.slider)
148
- .removeClass('bottom-to-top right-to-left')
149
- .addClass(animationClass);
150
-
151
- if (isSmallBreakpoint()) {
152
- adjustHeight();
153
- } else {
154
- $(el.slider).css('height', '');
155
- Wick.Backdrop.show();
156
- }
94
+ setTimeout(() => {
95
+ $(el.slider).addClass('show');
96
+ handleScroll(el.sliderWrap);
97
+ el.$body.addClass(el.scrollDisable);
98
+
99
+ if (!isSmallBreakpoint()) {
100
+ el.$body.css('padding-right', `${scrollBarWidth}px`);
101
+ }
102
+ }, 100);
103
+ });
157
104
  }
158
- }
159
-
160
- function shouldClosePopup(event) {
161
- const $target = $(event.target);
162
- return (
163
- !$target.closest(el.slider).length &&
164
- !$target.closest(el.closePopup).length &&
165
- $(el.slider).hasClass('show')
166
- );
167
- }
168
-
169
- function init() {
170
- bindClosePopup();
171
-
172
- if (onAppendEvent && onAppend) {
173
- window.addEventListener(onAppendEvent, (event) => {
174
- onAppend(event, { showSlider, handleScroll, el });
175
- });
105
+
106
+ function handleSliderClose(eventName) {
107
+ return new Promise((resolve, reject) => {
108
+ const eventDetail = { resolve, reject };
109
+ const event = createEvent(eventName, {}, eventDetail);
110
+ window.dispatchEvent(event);
111
+ })
112
+ .then(() => {})
113
+ .catch((error) => {
114
+ console.error(error);
115
+ })
116
+ .finally(() => {
117
+ hideSlider();
118
+ Wick.Backdrop.hide();
119
+ if (typeof onClose === 'function') {
120
+ onClose();
121
+ }
122
+ });
176
123
  }
177
124
 
178
- $(window).on('resize', _.debounce(handleResize, 100));
125
+ function bindClosePopup() {
126
+ $(document).on('click', el.closePopup, async () => {
127
+ if (type === 'cart') {
128
+ await handleSliderClose(events.CLOSE_JUST_ADDED);
129
+ }
130
+
131
+ if (type === 'miniBasket') {
132
+ await handleSliderClose(events.CLOSE_MINI_BASKET);
133
+ }
179
134
 
180
- $('body').on('click', async (event) => {
181
- if (shouldClosePopup(event)) {
182
- if (type === 'cart') {
183
- await handleSliderClose(events.CLOSE_JUST_ADDED);
135
+ hideSlider();
136
+ Wick.Backdrop.hide();
137
+ });
138
+ }
139
+
140
+ function handleResize() {
141
+ const animationClass = getAnimationClass();
142
+
143
+ if ($(el.slider).hasClass('show')) {
144
+ $(el.slider).removeClass('bottom-to-top right-to-left').addClass(animationClass);
145
+
146
+ if (isSmallBreakpoint()) {
147
+ adjustHeight();
148
+ } else {
149
+ $(el.slider).css('height', '');
150
+ Wick.Backdrop.show();
151
+ }
184
152
  }
153
+ }
154
+
155
+ function shouldClosePopup(event) {
156
+ const $target = $(event.target);
157
+ return (
158
+ !$target.closest(el.slider).length &&
159
+ !$target.closest(el.closePopup).length &&
160
+ $(el.slider).hasClass('show')
161
+ );
162
+ }
185
163
 
186
- if (type === 'miniBasket') {
187
- await handleSliderClose(events.CLOSE_MINI_BASKET)
164
+ function init() {
165
+ bindClosePopup();
166
+
167
+ if (onAppendEvent && onAppend) {
168
+ window.addEventListener(onAppendEvent, (event) => {
169
+ onAppend(event, { showSlider, handleScroll, el });
170
+ });
188
171
  }
189
- }
190
- });
191
- }
192
172
 
193
- init();
173
+ $(window).on('resize', _.debounce(handleResize, 100));
174
+
175
+ $('body').on('click', async (event) => {
176
+ if (shouldClosePopup(event)) {
177
+ if (type === 'cart') {
178
+ await handleSliderClose(events.CLOSE_JUST_ADDED);
179
+ }
180
+
181
+ if (type === 'miniBasket') {
182
+ await handleSliderClose(events.CLOSE_MINI_BASKET);
183
+ }
184
+ }
185
+ });
186
+ }
187
+
188
+ init();
194
189
 
195
- return {
196
- showSlider,
197
- handleScroll,
198
- };
190
+ return {
191
+ showSlider,
192
+ handleScroll,
193
+ };
199
194
  }