wickes-css2 2.113.0-ripple.7 → 2.113.0

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 (265) hide show
  1. package/build/css/category-main.css +1 -1
  2. package/build/css/components/global-search.css +1 -1
  3. package/build/css/components/kitchen/strip-stickers.css +1 -0
  4. package/build/css/components/price-block-v2-critical.css +1 -1
  5. package/build/css/components/price-block-v2.css +1 -1
  6. package/build/css/components/store-locator-facilities.css +1 -1
  7. package/build/css/components/store-locator-lookup.css +1 -1
  8. package/build/css/components/strip-stickers.css +1 -0
  9. package/build/css/components/tile-calculator.css +1 -1
  10. package/build/css/homepage-main.css +1 -1
  11. package/build/css/kitchen-plp-main.css +1 -1
  12. package/build/css/main.css +1 -1
  13. package/build/css/my-account-main-v2.css +1 -1
  14. package/build/css/my-account-main.css +1 -1
  15. package/build/css/pages/checkout-new.css +1 -1
  16. package/build/css/pages/checkout.css +1 -1
  17. package/build/css/pages/my-account-v2.css +1 -1
  18. package/build/css/pages/my-account.css +1 -1
  19. package/build/css/pages/page_address-book.css +1 -1
  20. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  21. package/build/css/pages/page_default-store.css +1 -1
  22. package/build/css/pages/page_discount.css +1 -1
  23. package/build/css/pages/page_fi.css +1 -1
  24. package/build/css/pages/page_in-store-checkout.css +1 -1
  25. package/build/css/pages/page_merged-basket.css +1 -1
  26. package/build/css/pages/page_my-order.css +1 -1
  27. package/build/css/pages/page_my-orders.css +1 -1
  28. package/build/css/pages/page_product-details-critical.css +1 -1
  29. package/build/css/pages/page_product-details-v2-critical.css +1 -1
  30. package/build/css/pages/page_product-details-v2.css +1 -1
  31. package/build/css/pages/page_product-details.css +1 -1
  32. package/build/css/pages/page_shopping-cart-v2.css +1 -1
  33. package/build/css/pages/page_store-locator-details.css +1 -1
  34. package/build/css/pages/page_store-locator.css +1 -1
  35. package/build/css/pages/page_ti.css +1 -1
  36. package/build/css/pages/tradePro-discount.css +1 -1
  37. package/build/css/pages/tradePro-rewards-old.css +1 -1
  38. package/build/css/pages/tradePro-rewards.css +1 -1
  39. package/build/css/pdp-main-before-combine.css +1 -1
  40. package/build/css/pdp-main-critical.css +1 -1
  41. package/build/css/pdp-main-non-critical.css +1 -1
  42. package/build/css/pdp-main.css +1 -1
  43. package/build/css/plp-main.css +1 -1
  44. package/build/css/shopping-list-pdf.css +1 -1
  45. package/build/css/store-locator-main.css +1 -1
  46. package/build/img/emulation/low-trees.png +0 -0
  47. package/build/img/emulation/overhead-power-cables.png +0 -0
  48. package/build/img/emulation/parked-vehicles.png +0 -0
  49. package/build/img/emulation/traffic-access-issues.png +0 -0
  50. package/build/img/emulation/walls-or-fences.png +0 -0
  51. package/build/js/account-members.min.js +1 -1
  52. package/build/js/add-project-list-id.min.js +1 -1
  53. package/build/js/address-book.min.js +1 -1
  54. package/build/js/basket.min.js +2 -2
  55. package/build/js/bloomreach-widget.min.js +1 -1
  56. package/build/js/bundle.min.js +1 -1
  57. package/build/js/change-password.min.js +1 -1
  58. package/build/js/checkout.min.js +2 -2
  59. package/build/js/emulation.min.js +408 -3318
  60. package/build/js/general.bundle.min.js +1 -1
  61. package/build/js/gift-cards.min.js +1 -1
  62. package/build/js/kitchen/kitchen-plp.min.js +1 -1
  63. package/build/js/merged-checkout.min.js +2 -2
  64. package/build/js/page/bloomreach-widget/bloomreach-recommendation-carousel-widget.js +318 -0
  65. package/build/js/page/bloomreach-widget/bloomreach-widget-core.js +370 -0
  66. package/build/js/page/bloomreach-widget/bloomreach-widget-tracking.js +16 -13
  67. package/build/js/page/bloomreach-widget/bloomreach-widget.js +8 -237
  68. package/build/js/page/bloomreach-widget/complete-your-project/cards.js +308 -0
  69. package/build/js/page/bloomreach-widget/complete-your-project/config.js +60 -0
  70. package/build/js/page/bloomreach-widget/complete-your-project/model.js +140 -0
  71. package/build/js/page/bloomreach-widget/complete-your-project/presenter.js +69 -0
  72. package/build/js/page/bloomreach-widget/complete-your-project/quantity.js +80 -0
  73. package/build/js/page/bloomreach-widget/complete-your-project/view.js +179 -0
  74. package/build/js/page/bloomreach-widget/complete-your-project/widget.js +185 -0
  75. package/build/js/page/bloomreach-widget/dont-forget-widget.js +15 -0
  76. package/build/js/page/bloomreach-widget/why-not-add-widget.js +10 -228
  77. package/build/js/page/plp-load-more.js +66 -81
  78. package/build/js/page/utils/validation.js +1 -1
  79. package/build/js/pdp.bundle.min.js +2 -2
  80. package/build/js/personal-details.min.js +1 -1
  81. package/build/js/plp.bundle.min.js +1 -1
  82. package/build/js/project-list.min.js +2 -2
  83. package/build/js/quiz.min.js +1 -1
  84. package/build/js/track-my-order.min.js +1 -1
  85. package/package.json +4 -6
  86. package/src/badges.html +18 -9
  87. package/src/components/base/button.hbs +7 -0
  88. package/src/components/bloomreach/complete-your-project-skeleton.hbs +21 -0
  89. package/src/components/bloomreach/complete-your-project.hbs +6 -21
  90. package/src/components/bloomreach/why-not-add-card-skeleton.hbs +2 -2
  91. package/src/components/bloomreach/why-not-add-card.hbs +79 -60
  92. package/src/components/bloomreach/why-not-add-content.hbs +3 -3
  93. package/src/components/bloomreach/why-not-add.hbs +1 -1
  94. package/src/components/date-selection.hbs +19 -10
  95. package/src/components/fulfilment-accordions.hbs +1 -1
  96. package/src/components/heavy-banners-wrapper.hbs +21 -0
  97. package/src/components/kitchen/price.hbs +29 -49
  98. package/src/components/kitchen/strip-stickers.hbs +3 -9
  99. package/src/components/pdp-price-actions.hbs +0 -17
  100. package/src/components/price-badges.hbs +10 -12
  101. package/src/components/price-block-v2.hbs +203 -273
  102. package/src/components/product-main-info-v2.hbs +0 -2
  103. package/src/data/data_heavy-banner.json +29 -0
  104. package/src/data/my-account/data_my-account.json +1 -1
  105. package/src/data/my-account/data_my-order.json +1 -1
  106. package/src/data/my-account/data_my-orders.json +1 -1
  107. package/src/img/emulation/low-trees.png +0 -0
  108. package/src/img/emulation/overhead-power-cables.png +0 -0
  109. package/src/img/emulation/parked-vehicles.png +0 -0
  110. package/src/img/emulation/traffic-access-issues.png +0 -0
  111. package/src/img/emulation/walls-or-fences.png +0 -0
  112. package/src/js/components/banner-placement-manager.js +10 -33
  113. package/src/js/components/general/cart-slider.js +41 -4
  114. package/src/js/emulation/banner-placement-manager.js +188 -219
  115. package/src/js/emulation/complete-your-project-loading.js +16 -0
  116. package/src/js/emulation/custom-slider-emulation.js +21 -8
  117. package/src/js/emulation/date-selection.js +2 -2
  118. package/src/js/emulation/dont-forget-loading.js +36 -0
  119. package/src/js/emulation/just-added-scenarios-emulation.js +131 -0
  120. package/src/js/emulation/mini-basket.js +34 -34
  121. package/src/js/emulation/mock.js +429 -4
  122. package/src/js/emulation/plp-load-more.js +4 -13
  123. package/src/js/emulation/why-not-add-loading.js +14 -3
  124. package/src/js/emulation/why-not-add.js +12 -14
  125. package/src/js/page/bloomreach-widget/bloomreach-recommendation-carousel-widget.js +318 -0
  126. package/src/js/page/bloomreach-widget/bloomreach-widget-core.js +370 -0
  127. package/src/js/page/bloomreach-widget/bloomreach-widget-tracking.js +16 -13
  128. package/src/js/page/bloomreach-widget/bloomreach-widget.js +8 -237
  129. package/src/js/page/bloomreach-widget/complete-your-project/cards.js +308 -0
  130. package/src/js/page/bloomreach-widget/complete-your-project/config.js +60 -0
  131. package/src/js/page/bloomreach-widget/complete-your-project/model.js +140 -0
  132. package/src/js/page/bloomreach-widget/complete-your-project/presenter.js +69 -0
  133. package/src/js/page/bloomreach-widget/complete-your-project/quantity.js +80 -0
  134. package/src/js/page/bloomreach-widget/complete-your-project/view.js +179 -0
  135. package/src/js/page/bloomreach-widget/complete-your-project/widget.js +185 -0
  136. package/src/js/page/bloomreach-widget/dont-forget-widget.js +15 -0
  137. package/src/js/page/bloomreach-widget/why-not-add-widget.js +10 -228
  138. package/src/js/page/plp-load-more.js +66 -81
  139. package/src/js/page/utils/validation.js +1 -1
  140. package/src/page_checkout_big-bulky-delivery-details.html +272 -0
  141. package/src/page_checkout_premium-delivery-details.html +2 -2
  142. package/src/page_product-details-banner.html +3 -1
  143. package/src/page_product-details-big-wins-disabled-delivery.html +3 -1
  144. package/src/page_product-details-big-wins-non-registered.html +3 -1
  145. package/src/page_product-details-big-wins-out-nearest.html +3 -1
  146. package/src/page_product-details-big-wins-unhappy.html +3 -1
  147. package/src/page_product-details-big-wins.html +3 -1
  148. package/src/page_product-details-billie.html +3 -1
  149. package/src/page_product-details-calculator.html +3 -1
  150. package/src/page_product-details-cashback-v2.html +3 -1
  151. package/src/page_product-details-clearpay.html +3 -1
  152. package/src/page_product-details-cnc-error-notification.html +3 -1
  153. package/src/page_product-details-cnc-success-notification-vat.html +4 -1
  154. package/src/page_product-details-cnc-success-notification.html +3 -1
  155. package/src/page_product-details-default-store.html +3 -1
  156. package/src/page_product-details-energy-efficiency.html +3 -1
  157. package/src/page_product-details-flooring-with-pr-placeholder.html +3 -1
  158. package/src/page_product-details-flooring.html +3 -1
  159. package/src/page_product-details-gallery-actual.html +3 -1
  160. package/src/page_product-details-mfe-calculator.html +3 -1
  161. package/src/page_product-details-mtm-doors.html +3 -1
  162. package/src/page_product-details-only-clearpay.html +3 -1
  163. package/src/page_product-details-paint-mixing.html +3 -1
  164. package/src/page_product-details-saved-pl.html +3 -1
  165. package/src/page_product-details-tile-steps-klarna-widget-with-method-ids.html +3 -1
  166. package/src/page_product-details-tile-steps-logout.html +3 -1
  167. package/src/page_product-details-tile-steps-no-new-project-list.html +3 -1
  168. package/src/page_product-details-tile-steps-with-klarna.html +3 -1
  169. package/src/page_product-details-tile-steps.html +3 -1
  170. package/src/page_product-details-v2.html +3 -1
  171. package/src/page_product-details-vat.html +3 -1
  172. package/src/page_product-details-wisdom-mcfc-registered.html +3 -1
  173. package/src/page_product-details-wisdom-mcfc.html +3 -1
  174. package/src/page_product-details-wisdom-oos-registered.html +3 -1
  175. package/src/page_product-details-wisdom-oos.html +3 -1
  176. package/src/page_product-details-wisdom-registered.html +3 -1
  177. package/src/page_product-details-wisdom.html +3 -1
  178. package/src/page_product-details-with-favourite.html +3 -1
  179. package/src/page_product-details-with-global-search-v2.html +7 -7
  180. package/src/page_product-details-with-why-not-add-single.html +1 -1
  181. package/src/page_product-details_no-previous-default.html +3 -1
  182. package/src/scss/components/_cards-slider.scss +3 -1
  183. package/src/scss/components/_checkout_order.scss +2 -1
  184. package/src/scss/components/_date-selection-add-new-styles.scss +0 -29
  185. package/src/scss/components/_heavy-banners.scss +216 -0
  186. package/src/scss/components/_kitchen-card.scss +0 -1
  187. package/src/scss/components/_price-badges-critical.scss +0 -10
  188. package/src/scss/components/_price-badges.scss +0 -10
  189. package/src/scss/components/_price-block-critical.scss +0 -1
  190. package/src/scss/components/_price-block.scss +0 -1
  191. package/src/scss/components/_sticky-element-appearance.scss +6 -2
  192. package/src/scss/components/bloomreach/_bloomreach.scss +1 -0
  193. package/src/scss/components/bloomreach/_card-shared.scss +24 -0
  194. package/src/scss/components/bloomreach/_complete-card.scss +1 -9
  195. package/src/scss/components/bloomreach/_reviews.scss +0 -2
  196. package/src/scss/components/bloomreach/_why-not-add-card.scss +137 -10
  197. package/src/scss/components/bloomreach/_why-not-add.scss +31 -2
  198. package/src/scss/components/energy-efficiency.scss +2 -2
  199. package/src/scss/components/global-search.scss +6 -2
  200. package/src/scss/components/kitchen/_price.scss +0 -10
  201. package/src/scss/components/kitchen/strip-stickers.scss +18 -0
  202. package/src/scss/components/my-account/_active-orders.scss +9 -9
  203. package/src/scss/components/price-block-v2-critical.scss +0 -54
  204. package/src/scss/components/price-block-v2.scss +0 -54
  205. package/src/scss/components/strip-stickers.scss +18 -0
  206. package/src/scss/helpers/helpers-pdp-critical/_helpers-critical-pdp.scss +13 -8
  207. package/src/scss/libs/_bootstrap-extracted.scss +5 -0
  208. package/src/scss/main.scss +1 -0
  209. package/src/scss/pages/iframe-paypage.scss +9 -11
  210. package/src/scss/pages/page_checkout_delivery-new.scss +4 -0
  211. package/src/scss/pages/page_cms_homepage.scss +10 -4
  212. package/src/scss/pages/page_installation.scss +2 -2
  213. package/src/scss/pages/page_online-exclusive.scss +7 -3
  214. package/src/scss/pages/page_product-details-v2-critical.scss +109 -216
  215. package/src/scss/pages/page_product-details-v2.scss +107 -168
  216. package/src/scss/pages/page_product-details.scss +0 -11
  217. package/src/scss/pages/page_top-rated.scss +38 -23
  218. package/src/scss/pdp-main-critical.scss +0 -1
  219. package/src/scss/pdp-main.scss +0 -6
  220. package/src/scss/plp-main.scss +0 -5
  221. package/src/sitemap.html +2 -13
  222. package/build/js/package-bulk-add.min.js +0 -1
  223. package/build/js/page/bloomreach-widget/complete-your-project-widget.js +0 -1100
  224. package/build/js/page/ripple/bulk-add.js +0 -71
  225. package/build/js/page/ripple/package-bulk-add.js +0 -43
  226. package/build/js/page/ripple/postcode-checker.js +0 -83
  227. package/build/js/page/ripple/thumb-gallery.js +0 -168
  228. package/build/js/postcode-checker.min.js +0 -1
  229. package/src/badges-ripple.html +0 -120
  230. package/src/components/image-accordion.hbs +0 -18
  231. package/src/components/package-card.hbs +0 -30
  232. package/src/components/postcode-checker.hbs +0 -24
  233. package/src/components/suite-includes.hbs +0 -66
  234. package/src/components/suite-product-card.hbs +0 -47
  235. package/src/components/thumb-gallery.hbs +0 -23
  236. package/src/data/data_badges.json +0 -143
  237. package/src/data/data_bathroom-plp.json +0 -814
  238. package/src/data/data_suite-includes-products.json +0 -134
  239. package/src/js/components/general/image-accordion.js +0 -54
  240. package/src/js/components/package-card.js +0 -69
  241. package/src/js/components/store-locator-cards.js +0 -76
  242. package/src/js/emulation/postcode-checker.js +0 -11
  243. package/src/js/page/bloomreach-widget/complete-your-project-widget.js +0 -1100
  244. package/src/js/page/ripple/bulk-add.js +0 -71
  245. package/src/js/page/ripple/package-bulk-add.js +0 -43
  246. package/src/js/page/ripple/postcode-checker.js +0 -83
  247. package/src/js/page/ripple/thumb-gallery.js +0 -168
  248. package/src/page_bathroom-plp-vat.html +0 -81
  249. package/src/page_bathroom-plp-without-load-more.html +0 -83
  250. package/src/page_bathroom-plp.html +0 -98
  251. package/src/page_product-details-ripple-gallery.html +0 -121
  252. package/src/page_product-details-suite-includes-banners.html +0 -139
  253. package/src/page_product-details-suite-includes-billie.html +0 -128
  254. package/src/page_product-details-suite-includes-klarna.html +0 -120
  255. package/src/page_product-details-suite-includes-vat.html +0 -126
  256. package/src/page_product-details-suite-includes.html +0 -122
  257. package/src/scss/components/_image-accordion.scss +0 -54
  258. package/src/scss/components/_package-card.scss +0 -63
  259. package/src/scss/components/_package-plp.scss +0 -88
  260. package/src/scss/components/_postcode-checker.scss +0 -115
  261. package/src/scss/components/_suite-includes.scss +0 -141
  262. package/src/scss/components/_suite-product-card.scss +0 -98
  263. package/src/scss/components/_thumb-gallery-critical.scss +0 -34
  264. package/src/scss/components/_thumb-gallery.scss +0 -192
  265. package/src/scss/components/kitchen/_strip-stickers.scss +0 -46
@@ -0,0 +1,131 @@
1
+ var Wick = window.Wick || {};
2
+
3
+ const cartAddScenarios = [
4
+ {
5
+ status: 'SUCCESS',
6
+ icon: 'fas fa-check-circle',
7
+ iconClass: 'success',
8
+ message: "You've just added",
9
+ description: 'Excluding items already in basket',
10
+ showDontForget: true,
11
+ },
12
+ {
13
+ status: 'PARTIAL_INSUFFICIENT_STOCK',
14
+ icon: 'fas fa-exclamation-circle',
15
+ iconClass: 'warning',
16
+ message:
17
+ 'A lower quantity of this product has been added to your Basket due to insufficient stock',
18
+ description: '',
19
+ showDontForget: true,
20
+ },
21
+ {
22
+ status: 'PARTIAL_MAX_QTY',
23
+ icon: 'fas fa-exclamation-circle',
24
+ iconClass: 'warning',
25
+ message: 'A lower quantity of product(s) was added to the basket',
26
+ description:
27
+ 'We are only able to fulfil a maximum of 30 Blue Circle Ready To Use Postcrete - 20kg per order',
28
+ showDontForget: true,
29
+ },
30
+ {
31
+ status: 'MAX_QTY_ERROR',
32
+ icon: 'fas fa-times-circle',
33
+ iconClass: 'error',
34
+ message: 'Maximum of 30 Blue Circle Ready To Use Postcrete - 20kg per order',
35
+ description: '',
36
+ showDontForget: true,
37
+ },
38
+ {
39
+ status: 'MIN_QTY_ERROR',
40
+ icon: 'fas fa-times-circle',
41
+ iconClass: 'error',
42
+ message: 'Minimum of 2 Blue Circle Ready To Use Postcrete - 20kg per order',
43
+ description: '',
44
+ showDontForget: true,
45
+ },
46
+ {
47
+ status: 'PRODUCT_NOT_FOUND',
48
+ icon: 'fas fa-times-circle',
49
+ iconClass: 'error',
50
+ message: 'Unable to add to basket',
51
+ description: 'An error occurred when adding to basket',
52
+ showDontForget: false,
53
+ },
54
+ {
55
+ status: 'INSUFFICIENT_STOCK_ERROR',
56
+ icon: 'fas fa-times-circle',
57
+ iconClass: 'error',
58
+ message: 'Not added to basket due to insufficient stock',
59
+ description: '',
60
+ showDontForget: false,
61
+ },
62
+ ];
63
+
64
+ let currentScenarioIndex = 0;
65
+
66
+ export function getNextCartAddScenario() {
67
+ const scenario = cartAddScenarios[currentScenarioIndex];
68
+
69
+ currentScenarioIndex = (currentScenarioIndex + 1) % cartAddScenarios.length;
70
+
71
+ return scenario;
72
+ }
73
+
74
+ function getMockRecommendationWidget(html) {
75
+ if (!html || !Wick.FEMock || !Wick.FEMock.dataBloomreach) {
76
+ return null;
77
+ }
78
+
79
+ const $html = $(html);
80
+ const $sliderWrap = $html
81
+ .filter('.custom-slider__wrap')
82
+ .add($html.find('.custom-slider__wrap'))
83
+ .first();
84
+
85
+ const mockDataKey = $sliderWrap.attr('data-mock-key');
86
+
87
+ return mockDataKey ? Wick.FEMock.dataBloomreach[mockDataKey] : null;
88
+ }
89
+
90
+ export function createCartScenarioHtml(baseHtml, scenario) {
91
+ const $root = $('<div>').html(baseHtml);
92
+ const $message = $root.find('.custom-slider__message');
93
+ const $notice = $message.find('.messages__notice');
94
+
95
+ $message.find('.icon-wrap').first().replaceWith(`
96
+ <span class="icon-wrap ${scenario.iconClass}">
97
+ <i class="${scenario.icon}"></i>
98
+ </span>
99
+ `);
100
+
101
+ $message.find('.messages__text span').text(scenario.message);
102
+
103
+ if (scenario.description) {
104
+ $notice.text(scenario.description);
105
+ } else {
106
+ $notice.remove();
107
+ }
108
+
109
+ if (!scenario.showDontForget) {
110
+ $root.find('.custom-slider__wrap').removeAttr('data-mock-key');
111
+ }
112
+
113
+ return $root.html();
114
+ }
115
+
116
+ export function dispatchCartScenario(baseHtml, scenario) {
117
+ const html = createCartScenarioHtml(baseHtml, scenario);
118
+ const recommendationWidget = scenario.showDontForget ? getMockRecommendationWidget(html) : null;
119
+
120
+ window.dispatchEvent(
121
+ new CustomEvent('productAddedToCart', {
122
+ detail: {
123
+ html,
124
+ cartPopupHtml: html,
125
+ addToCartStatus: scenario.status,
126
+ showDontForget: scenario.showDontForget,
127
+ recommendationWidget,
128
+ },
129
+ })
130
+ );
131
+ }
@@ -1,39 +1,39 @@
1
1
  var Wick = Wick || {};
2
- Wick.ShoppingCart = (function(){
3
- var $btn = $('.header-minicart__switcher');
4
-
5
- function isEmpty() {
6
- return localStorage.isEmpty === 'true';
7
- }
8
-
9
- function clear() {
10
- localStorage.isEmpty = true;
11
- $btn.find('.header-minicart__counter').removeClass('_is-visible');
12
- Wick.MiniBasket.disableRollover();
13
- }
14
-
15
- function add() {
16
- localStorage.isEmpty = false;
17
- $btn.find('.header-minicart__counter').addClass('_is-visible');
18
- }
19
-
20
- function bindEvents() {
21
- $('.btn-add-to-basket, .page-product-details .card-store-collect__btn').on('click', add);
22
- }
23
-
24
- var init = function () {
25
- bindEvents();
26
-
27
- if(isEmpty()){
28
- clear();
29
- } else {
30
- $btn.find('.header-minicart__counter').addClass('_is-visible');
2
+ Wick.ShoppingCart = (function () {
3
+ var $btn = $('.header-minicart__switcher');
4
+
5
+ function isEmpty() {
6
+ return localStorage.isEmpty === 'true';
7
+ }
8
+
9
+ function clear() {
10
+ localStorage.isEmpty = true;
11
+ $btn.find('.header-minicart__counter').removeClass('_is-visible');
12
+ Wick.MiniBasket.disableRollover();
13
+ }
14
+
15
+ function add() {
16
+ localStorage.isEmpty = false;
17
+ $btn.find('.header-minicart__counter').addClass('_is-visible');
31
18
  }
32
- };
33
19
 
34
- $(document).ready(init);
20
+ function bindEvents() {
21
+ $('.btn-add-to-basket, .page-product-details .card-store-collect__btn').on('click', add);
22
+ }
23
+
24
+ var init = function () {
25
+ bindEvents();
26
+
27
+ if (isEmpty()) {
28
+ clear();
29
+ } else {
30
+ $btn.find('.header-minicart__counter').addClass('_is-visible');
31
+ }
32
+ };
33
+
34
+ $(document).ready(init);
35
35
 
36
- return {
37
- clear: clear
38
- };
36
+ return {
37
+ clear: clear,
38
+ };
39
39
  })();
@@ -9,10 +9,382 @@ Wick.FEMock = {
9
9
  );
10
10
  },
11
11
  dataBloomreach: {
12
+ dontForgetRecommendations: {
13
+ recommendedProducts: [
14
+ {
15
+ baseProduct: {
16
+ code: '153731',
17
+ name: 'Wickes Trade Paint Roller Set - 9in',
18
+ url: '/Wickes-Trade-Paint-Roller-Set---9in/p/153731',
19
+ purchasable: true,
20
+ productType: 'ProductModel',
21
+ isBaseProduct: false,
22
+ availabilityRestriction: 'NO_RESTRICTIONS',
23
+ fulfilmentType: 'STANDARD',
24
+ stock: {
25
+ stockLevelStatus: {
26
+ code: 'inStock',
27
+ },
28
+ },
29
+ fulfillmentAttributes: {
30
+ type: 'STANDARD',
31
+ },
32
+ potentialPromotions: [
33
+ {
34
+ customAttributes: {
35
+ overlayText: '15% off',
36
+ overlayBackgroundColor: 'yellow',
37
+ overlayTextColor: 'gray',
38
+ },
39
+ },
40
+ ],
41
+ images: [
42
+ {
43
+ imageType: 'PRIMARY',
44
+ format: 'product',
45
+ url: 'https://placehold.co/68x68?text=roller',
46
+ altText: 'Wickes Trade Paint Roller Set - 9in',
47
+ },
48
+ ],
49
+ externalAverageRating: 5,
50
+ externalReviewCount: 100,
51
+ displayPrice: {
52
+ currencyIso: 'GBP',
53
+ value: 9999,
54
+ priceType: 'BUY',
55
+ formattedValue: '£9,999.00',
56
+ formattedPriceWithoutCurrencySymbol: '9999',
57
+ currencySymbol: '£',
58
+ vatRatePercentage: 20,
59
+ valueInPence: 999900,
60
+ wasPrice: 3000,
61
+ },
62
+ displayPriceExclusiveVat: {
63
+ currencyIso: 'GBP',
64
+ value: 9998,
65
+ priceType: 'BUY',
66
+ formattedValue: '£9,998.00',
67
+ formattedPriceWithoutCurrencySymbol: '9998',
68
+ currencySymbol: '£',
69
+ valueInPence: 999800,
70
+ wasPrice: 2500,
71
+ },
72
+ },
73
+ },
74
+ {
75
+ baseProduct: {
76
+ code: '349137',
77
+ name: 'Wickes Microfibre Paint Roller Sleeve - 9in',
78
+ url: '/Wickes-Microfibre-Paint-Roller-Sleeve---9in/p/349137',
79
+ purchasable: true,
80
+ productType: 'ProductModel',
81
+ isBaseProduct: false,
82
+ availabilityRestriction: 'NO_RESTRICTIONS',
83
+ fulfilmentType: 'STANDARD',
84
+ stock: {
85
+ stockLevelStatus: {
86
+ code: 'inStock',
87
+ },
88
+ },
89
+ fulfillmentAttributes: {
90
+ type: 'STANDARD',
91
+ },
92
+ potentialPromotions: [
93
+ {
94
+ customAttributes: {
95
+ overlayText: 'Multi-buy',
96
+ overlayBackgroundColor: 'green',
97
+ overlayTextColor: 'gray',
98
+ },
99
+ },
100
+ ],
101
+ images: [
102
+ {
103
+ imageType: 'PRIMARY',
104
+ format: 'product',
105
+ url: 'https://placehold.co/68x68?text=sleeve',
106
+ altText: 'Wickes Microfibre Paint Roller Sleeve - 9in',
107
+ },
108
+ ],
109
+ externalAverageRating: 4.2,
110
+ externalReviewCount: 48,
111
+ displayPrice: {
112
+ currencyIso: 'GBP',
113
+ value: 7.5,
114
+ priceType: 'BUY',
115
+ formattedValue: '£7.50',
116
+ formattedPriceWithoutCurrencySymbol: '7.50',
117
+ currencySymbol: '£',
118
+ vatRatePercentage: 20,
119
+ valueInPence: 750,
120
+ },
121
+ displayPriceExclusiveVat: {
122
+ currencyIso: 'GBP',
123
+ value: 6.25,
124
+ priceType: 'BUY',
125
+ formattedValue: '£6.25',
126
+ formattedPriceWithoutCurrencySymbol: '6.25',
127
+ currencySymbol: '£',
128
+ valueInPence: 625,
129
+ },
130
+ },
131
+ },
132
+ {
133
+ baseProduct: {
134
+ code: '221048',
135
+ name: 'Wickes Paint Tray - 9in',
136
+ url: '/Wickes-Paint-Tray---9in/p/221048',
137
+ purchasable: true,
138
+ productType: 'ProductModel',
139
+ isBaseProduct: false,
140
+ availabilityRestriction: 'NO_RESTRICTIONS',
141
+ fulfilmentType: 'STANDARD',
142
+ stock: {
143
+ stockLevelStatus: {
144
+ code: 'inStock',
145
+ },
146
+ },
147
+ fulfillmentAttributes: {
148
+ type: 'STANDARD',
149
+ },
150
+ potentialPromotions: [
151
+ {
152
+ customAttributes: {
153
+ overlayText: 'Offer Ends Wednesday',
154
+ overlayBackgroundColor: 'red',
155
+ overlayTextColor: 'white',
156
+ },
157
+ },
158
+ ],
159
+ images: [
160
+ {
161
+ imageType: 'PRIMARY',
162
+ format: 'product',
163
+ url: 'https://placehold.co/68x68?text=tray',
164
+ altText: 'Wickes Paint Tray - 9in',
165
+ },
166
+ ],
167
+ externalAverageRating: 3.8,
168
+ externalReviewCount: 19,
169
+ displayPrice: {
170
+ currencyIso: 'GBP',
171
+ value: 4,
172
+ priceType: 'BUY',
173
+ formattedValue: '£4',
174
+ formattedPriceWithoutCurrencySymbol: '4',
175
+ currencySymbol: '£',
176
+ vatRatePercentage: 20,
177
+ valueInPence: 400,
178
+ },
179
+ displayPriceExclusiveVat: {
180
+ currencyIso: 'GBP',
181
+ value: 3.33,
182
+ priceType: 'BUY',
183
+ formattedValue: '£3.33',
184
+ formattedPriceWithoutCurrencySymbol: '3.33',
185
+ currencySymbol: '£',
186
+ valueInPence: 333,
187
+ },
188
+ },
189
+ },
190
+ {
191
+ baseProduct: {
192
+ code: '654221',
193
+ name: 'Wickes Professional Masking Tape - 48mm x 50m',
194
+ url: '/Wickes-Professional-Masking-Tape---48mm-x-50m/p/654221',
195
+ purchasable: true,
196
+ productType: 'ProductModel',
197
+ isBaseProduct: false,
198
+ availabilityRestriction: 'NO_RESTRICTIONS',
199
+ fulfilmentType: 'STANDARD',
200
+ stock: {
201
+ stockLevelStatus: {
202
+ code: 'inStock',
203
+ },
204
+ },
205
+ fulfillmentAttributes: {
206
+ type: 'STANDARD',
207
+ },
208
+ potentialPromotions: [
209
+ {
210
+ customAttributes: {
211
+ overlayText: 'Online Only',
212
+ overlayBackgroundColor: 'blue',
213
+ overlayTextColor: 'white',
214
+ },
215
+ },
216
+ ],
217
+ images: [
218
+ {
219
+ imageType: 'PRIMARY',
220
+ format: 'product',
221
+ url: 'https://placehold.co/68x68?text=tape',
222
+ altText: 'Wickes Professional Masking Tape - 48mm x 50m',
223
+ },
224
+ ],
225
+ externalAverageRating: 4.6,
226
+ externalReviewCount: 72,
227
+ displayPrice: {
228
+ currencyIso: 'GBP',
229
+ value: 5.5,
230
+ priceType: 'BUY',
231
+ formattedValue: '£5.50',
232
+ formattedPriceWithoutCurrencySymbol: '5.50',
233
+ currencySymbol: '£',
234
+ vatRatePercentage: 20,
235
+ valueInPence: 550,
236
+ },
237
+ displayPriceExclusiveVat: {
238
+ currencyIso: 'GBP',
239
+ value: 4.58,
240
+ priceType: 'BUY',
241
+ formattedValue: '£4.58',
242
+ formattedPriceWithoutCurrencySymbol: '4.58',
243
+ currencySymbol: '£',
244
+ valueInPence: 458,
245
+ },
246
+ },
247
+ },
248
+ {
249
+ baseProduct: {
250
+ code: '782913',
251
+ name: 'Wickes Dust Sheet Cotton Twill - 3.6m x 2.7m Extra Long Product Name For Two Line Truncation Test',
252
+ url: '/Wickes-Dust-Sheet-Cotton-Twill---3-6m-x-2-7m/p/782913',
253
+ purchasable: true,
254
+ productType: 'ProductModel',
255
+ isBaseProduct: false,
256
+ availabilityRestriction: 'NO_RESTRICTIONS',
257
+ fulfilmentType: 'STANDARD',
258
+ stock: {
259
+ stockLevelStatus: {
260
+ code: 'inStock',
261
+ },
262
+ },
263
+ fulfillmentAttributes: {
264
+ type: 'STANDARD',
265
+ },
266
+ potentialPromotions: [
267
+ {
268
+ customAttributes: {
269
+ overlayText: 'Clearance',
270
+ overlayBackgroundColor: 'gray',
271
+ overlayTextColor: 'white',
272
+ },
273
+ },
274
+ ],
275
+ images: [
276
+ {
277
+ imageType: 'PRIMARY',
278
+ format: 'product',
279
+ url: 'https://placehold.co/68x68?text=sheet',
280
+ altText: 'Wickes Dust Sheet Cotton Twill - 3.6m x 2.7m',
281
+ },
282
+ ],
283
+ externalAverageRating: 4.1,
284
+ externalReviewCount: 34,
285
+ displayPrice: {
286
+ currencyIso: 'GBP',
287
+ value: 12,
288
+ priceType: 'BUY',
289
+ formattedValue: '£12',
290
+ formattedPriceWithoutCurrencySymbol: '12',
291
+ currencySymbol: '£',
292
+ vatRatePercentage: 20,
293
+ valueInPence: 1200,
294
+ wasPrice: 18,
295
+ },
296
+ displayPriceExclusiveVat: {
297
+ currencyIso: 'GBP',
298
+ value: 10,
299
+ priceType: 'BUY',
300
+ formattedValue: '£10',
301
+ formattedPriceWithoutCurrencySymbol: '10',
302
+ currencySymbol: '£',
303
+ valueInPence: 1000,
304
+ wasPrice: 15,
305
+ },
306
+ },
307
+ },
308
+ ],
309
+ widgetMetadata: {
310
+ responseId: 'mock-df-response',
311
+ id: 'df12345',
312
+ type: 'df',
313
+ },
314
+ },
315
+ dontForgetRecommendationsSingle: {
316
+ recommendedProducts: [
317
+ {
318
+ baseProduct: {
319
+ code: '153731',
320
+ name: 'Wickes Trade Paint Roller Set - 9in',
321
+ url: '/Wickes-Trade-Paint-Roller-Set---9in/p/153731',
322
+ purchasable: true,
323
+ productType: 'ProductModel',
324
+ isBaseProduct: false,
325
+ availabilityRestriction: 'NO_RESTRICTIONS',
326
+ fulfilmentType: 'STANDARD',
327
+ stock: {
328
+ stockLevelStatus: {
329
+ code: 'inStock',
330
+ },
331
+ },
332
+ fulfillmentAttributes: {
333
+ type: 'STANDARD',
334
+ },
335
+ potentialPromotions: [
336
+ {
337
+ customAttributes: {
338
+ overlayText: '15% off',
339
+ overlayBackgroundColor: 'yellow',
340
+ overlayTextColor: 'gray',
341
+ },
342
+ },
343
+ ],
344
+ images: [
345
+ {
346
+ imageType: 'PRIMARY',
347
+ format: 'product',
348
+ url: 'https://placehold.co/68x68?text=roller',
349
+ altText: 'Wickes Trade Paint Roller Set - 9in',
350
+ },
351
+ ],
352
+ externalAverageRating: 5,
353
+ externalReviewCount: 100,
354
+ displayPrice: {
355
+ currencyIso: 'GBP',
356
+ value: 9999,
357
+ priceType: 'BUY',
358
+ formattedValue: '£9,999.00',
359
+ formattedPriceWithoutCurrencySymbol: '9999',
360
+ currencySymbol: '£',
361
+ vatRatePercentage: 20,
362
+ valueInPence: 999900,
363
+ wasPrice: 3000,
364
+ },
365
+ displayPriceExclusiveVat: {
366
+ currencyIso: 'GBP',
367
+ value: 9998,
368
+ priceType: 'BUY',
369
+ formattedValue: '£9,998.00',
370
+ formattedPriceWithoutCurrencySymbol: '9998',
371
+ currencySymbol: '£',
372
+ valueInPence: 999800,
373
+ wasPrice: 2500,
374
+ },
375
+ },
376
+ },
377
+ ],
378
+ widgetMetadata: {
379
+ responseId: 'mock-df-single-response',
380
+ id: 'dfSingle12345',
381
+ type: 'df',
382
+ },
383
+ },
12
384
  whyNotAddRecommendationsSingle: {
13
385
  widgetMetadata: {
14
386
  responseId: 'mock-wna-single-response',
15
- id: 'wna12345',
387
+ id: 'wnaSingle12345',
16
388
  type: 'wna',
17
389
  },
18
390
  recommendedProducts: [
@@ -3495,7 +3867,7 @@ Wick.FEMock = {
3495
3867
  },
3496
3868
  ],
3497
3869
  cartPDP: `
3498
- <div class="custom-slider__wrap slider-mini-basket popover-mini-basket">
3870
+ <div class="custom-slider__wrap slider-mini-basket popover-mini-basket" data-mock-key="dontForgetRecommendations">
3499
3871
  <div class="custom-slider__header">
3500
3872
  <a href="#" type="button" class="link close-popup">
3501
3873
  <span class="icon-wrap">
@@ -3544,8 +3916,61 @@ Wick.FEMock = {
3544
3916
  </div>
3545
3917
  </div>
3546
3918
  </div>
3547
- <div class="custom-slider__content">
3548
- <p>Product description Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget. Product description Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar sic tempor. Sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus pronin sapien nunc accuan eget.</p>
3919
+ </div>
3920
+ <div class="custom-slider__footer">
3921
+ <button class="btn btn_full btn-secondary close-popup">Continue Shopping</button>
3922
+ <a href="/cart" class="btn btn-action btn_full btn-view-basket-cta" type="button">View Basket</a>
3923
+ </div>
3924
+ `,
3925
+ cartPDPSingle: `
3926
+ <div class="custom-slider__wrap slider-mini-basket popover-mini-basket" data-mock-key="dontForgetRecommendationsSingle">
3927
+ <div class="custom-slider__header">
3928
+ <a href="#" type="button" class="link close-popup">
3929
+ <span class="icon-wrap">
3930
+ <svg class="svg-inline--fa fa-angle-left fa-w-6" aria-hidden="true" focusable="false" data-prefix="far" data-icon="angle-left" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512" data-fa-i2svg="">
3931
+ <path fill="currentColor" d="M4.2 247.5L151 99.5c4.7-4.7 12.3-4.7 17 0l19.8 19.8c4.7 4.7 4.7 12.3 0 17L69.3 256l118.5 119.7c4.7 4.7 4.7 12.3 0 17L168 412.5c-4.7 4.7-12.3 4.7-17 0L4.2 264.5c-4.7-4.7-4.7-12.3 0-17z"></path>
3932
+ </svg>
3933
+ </span>
3934
+ Continue Shopping
3935
+ </a>
3936
+ <a href="#" type="button" class="icon-wrap close-popup">
3937
+ <svg class="svg-inline--fa fa-times fa-w-10 icon" aria-hidden="true" focusable="false" data-prefix="far" data-icon="times" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" data-fa-i2svg="">
3938
+ <path fill="currentColor" d="M207.6 256l107.72-107.72c6.23-6.23 6.23-16.34 0-22.58l-25.03-25.03c-6.23-6.23-16.34-6.23-22.58 0L160 208.4 52.28 100.68c-6.23-6.23-16.34-6.23-22.58 0L4.68 125.7c-6.23 6.23-6.23 16.34 0 22.58L112.4 256 4.68 363.72c-6.23 6.23-6.23 16.34 0 22.58l25.03 25.03c6.23 6.23 16.34 6.23 22.58 0L160 303.6l107.72 107.72c6.23 6.23 16.34 6.23 22.58 0l25.03-25.03c6.23-6.23 6.23-16.34 0-22.58L207.6 256z"></path>
3939
+ </svg>
3940
+ </a>
3941
+ </div>
3942
+ <div class="custom-slider__message">
3943
+ <span class="icon-wrap success">
3944
+ <svg class="svg-inline--fa fa-check-circle fa-w-16" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"></path></svg><!-- <i class="fas fa-check-circle"></i> Font Awesome fontawesome.com -->
3945
+ </span>
3946
+
3947
+ <div class="messages popover-mini-basket__added">
3948
+ <p class="messages__text">
3949
+ <span>
3950
+ You've just added</span>
3951
+ </p>
3952
+
3953
+ <span class="messages__notice">
3954
+ Excluding items already in basket</span>
3955
+ </div>
3956
+ </div>
3957
+ <div class="products popover-mini-basket__cards-holder">
3958
+ <div class="card product-card-preview">
3959
+ <div class="products__item card__inner" data-name="Blue Circle Ready To Use Postcrete - 20kg" data-id="221100" data-price="7.50" data-brand="Blue Circle" data-category="Building Materials/Cement &amp; Aggregates/Cement" data-position="0">
3960
+ <a href="/Blue-Circle-Ready-To-Use-Postcrete---20kg/p/221100" class="card__img-wrap card__img-wrap_link products__image">
3961
+ <img loading="lazy" class="product-img" src="//media.wickes.co.uk/is/image/wickes/B3182_221100_00?$thumbnail$" alt="Blue Circle Ready To Use Postcrete - 20kg" title="Blue Circle Ready To Use Postcrete - 20kg">
3962
+ </a>
3963
+
3964
+ <div class="products__details">
3965
+ <a href="/Blue-Circle-Ready-To-Use-Postcrete---20kg/p/221100" class="title product-card__title">Blue Circle Ready To Use Postcrete - 20kg</a>
3966
+ <p class="item">Added for delivery</p>
3967
+ <p class="item pdp-price__control-holder">Qty:
3968
+ <span class="value product-card__quantity-value">1</span>
3969
+ </p>
3970
+ <p class="price product-card__price-value">£7.50</p>
3971
+ </div>
3972
+ </div>
3973
+ </div>
3549
3974
  </div>
3550
3975
  </div>
3551
3976
  <div class="custom-slider__footer">