wickes-css2 2.112.0-develop.1 → 2.112.0-develop.10

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 (362) hide show
  1. package/Readme.md +1 -5
  2. package/build/css/account-families-main.css +1 -1
  3. package/build/css/category-main.css +1 -1
  4. package/build/css/components/card-product-banner.css +1 -1
  5. package/build/css/components/card-store-locator-v2.css +1 -1
  6. package/build/css/components/global-search.css +1 -1
  7. package/build/css/components/special-opening-schedule-v2.css +1 -1
  8. package/build/css/homepage-main.css +1 -1
  9. package/build/css/kitchen-plp-main.css +1 -1
  10. package/build/css/main.css +1 -1
  11. package/build/css/my-account-main-v2.css +1 -1
  12. package/build/css/my-account-main.css +1 -1
  13. package/build/css/pages/checkout-new.css +1 -1
  14. package/build/css/pages/checkout.css +1 -1
  15. package/build/css/pages/home-movers.css +1 -1
  16. package/build/css/pages/my-account-v2.css +1 -1
  17. package/build/css/pages/my-account.css +1 -1
  18. package/build/css/pages/oldweb_header.css +1 -1
  19. package/build/css/pages/page_act-trade-pro.css +1 -1
  20. package/build/css/pages/page_book-consultant-thank-you-new.css +1 -1
  21. package/build/css/pages/page_checkout-payment-details.css +1 -1
  22. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  23. package/build/css/pages/page_content.css +1 -1
  24. package/build/css/pages/page_default-store.css +1 -1
  25. package/build/css/pages/page_fdl-management.css +1 -1
  26. package/build/css/pages/page_fi.css +1 -1
  27. package/build/css/pages/page_forgotten-password.css +1 -1
  28. package/build/css/pages/page_home.css +1 -1
  29. package/build/css/pages/page_in-store-checkout.css +1 -1
  30. package/build/css/pages/page_installer_form.css +1 -1
  31. package/build/css/pages/page_kitchen-claims.css +1 -1
  32. package/build/css/pages/page_merged-basket.css +1 -1
  33. package/build/css/pages/page_my-order.css +1 -1
  34. package/build/css/pages/page_my-orders.css +1 -1
  35. package/build/css/pages/page_new-checkout-forgot.css +1 -1
  36. package/build/css/pages/page_online-exclusive.css +1 -1
  37. package/build/css/pages/page_pre_home.css +1 -1
  38. package/build/css/pages/page_pre_home_thank-you.css +1 -1
  39. package/build/css/pages/page_product-details-critical.css +1 -1
  40. package/build/css/pages/page_product-details-v2.css +1 -1
  41. package/build/css/pages/page_product-details.css +1 -1
  42. package/build/css/pages/page_product_search.css +1 -1
  43. package/build/css/pages/page_products-list-combined.css +1 -1
  44. package/build/css/pages/page_products-list.css +1 -1
  45. package/build/css/pages/page_registration.css +1 -1
  46. package/build/css/pages/page_shopping-cart-v2.css +1 -1
  47. package/build/css/pages/page_shopping-cart.css +1 -1
  48. package/build/css/pages/page_store-locator-details.css +1 -1
  49. package/build/css/pages/page_thankyou.css +1 -1
  50. package/build/css/pages/page_ti.css +1 -1
  51. package/build/css/pages/page_top-rated.css +1 -1
  52. package/build/css/pages/page_upd-pass.css +1 -1
  53. package/build/css/pages/page_wismo-details.css +1 -1
  54. package/build/css/pages/page_wismo-orders.css +1 -1
  55. package/build/css/pages/sticky_header.css +1 -1
  56. package/build/css/pages/tradePro-signup.css +1 -1
  57. package/build/css/pdp-main-before-combine.css +1 -1
  58. package/build/css/pdp-main-critical.css +1 -1
  59. package/build/css/pdp-main-non-critical.css +1 -1
  60. package/build/css/pdp-main.css +1 -1
  61. package/build/css/plp-main.css +1 -1
  62. package/build/css/shopping-list-pdf.css +1 -1
  63. package/build/css/store-locator-main.css +1 -1
  64. package/build/js/basket.min.js +1 -1
  65. package/build/js/bloomreach-widget.min.js +1 -1
  66. package/build/js/emulation.min.js +664 -38
  67. package/build/js/page/basket-v2.js +29 -20
  68. package/build/js/page/bloomreach-widget/bloomreach-widget.js +250 -0
  69. package/build/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +205 -359
  70. package/build/js/page/bloomreach-widget/why-not-add-widget.js +198 -0
  71. package/build/js/page/checkout-payment-details.js +10 -0
  72. package/package.json +3 -9
  73. package/src/components/address-billie.hbs +22 -18
  74. package/src/components/bloomreach/complete-card.hbs +6 -34
  75. package/src/components/bloomreach/complete-summary.hbs +2 -2
  76. package/src/components/bloomreach/why-not-add-card-skeleton.hbs +14 -0
  77. package/src/components/bloomreach/why-not-add-card.hbs +73 -0
  78. package/src/components/bloomreach/why-not-add-content.hbs +41 -0
  79. package/src/components/bloomreach/why-not-add-skeleton.hbs +9 -0
  80. package/src/components/bloomreach/why-not-add.hbs +6 -0
  81. package/src/components/checkout-edit-billing-address.hbs +1 -1
  82. package/src/components/checkout-payment-details-v2.hbs +6 -1
  83. package/src/components/my-account/order.hbs +6 -1
  84. package/src/components/order-item.hbs +7 -7
  85. package/src/components/pdp-price-actions.hbs +2 -2
  86. package/src/components/potential-promotion.hbs +4 -4
  87. package/src/components/price-badges.hbs +12 -0
  88. package/src/components/price-block-v2.hbs +5 -12
  89. package/src/components/reviews-rating.hbs +22 -0
  90. package/src/components/share-list-modal-without-social-icons.hbs +2 -2
  91. package/src/components/share-list-modal.hbs +7 -3
  92. package/src/data/data_shopping-cart-v2.json +46 -2
  93. package/src/data/data_shopping-cart-with-energy.json +26 -2
  94. package/src/data/my-account/data_my-order.json +8 -0
  95. package/src/js/emulation/basket-data.js +312 -0
  96. package/src/js/emulation/bloomreach-widget-loading.js +2 -2
  97. package/src/js/emulation/mock.js +309 -0
  98. package/src/js/emulation/shopping-list.js +40 -49
  99. package/src/js/emulation/why-not-add-loading.js +11 -0
  100. package/src/js/emulation/why-not-add.js +28 -0
  101. package/src/js/page/basket-v2.js +29 -20
  102. package/src/js/page/bloomreach-widget/bloomreach-widget.js +250 -0
  103. package/src/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +205 -359
  104. package/src/js/page/bloomreach-widget/why-not-add-widget.js +198 -0
  105. package/src/js/page/checkout-payment-details.js +10 -0
  106. package/src/page_payment-details-billie-registered-only.html +76 -0
  107. package/src/page_payment-details-billie-unregistered-only.html +76 -0
  108. package/src/page_product-details-bloomreach.html +1 -1
  109. package/src/page_product-details-with-global-search-v2.html +2 -1
  110. package/src/page_product-details-with-why-not-add-single.html +131 -0
  111. package/src/page_track-my-order-result.html +1 -0
  112. package/src/scss/category-main.scss +5 -7
  113. package/src/scss/common/_app.scss +1 -1
  114. package/src/scss/common/_rewards-counter.scss +1 -2
  115. package/src/scss/common/_typography.scss +1 -1
  116. package/src/scss/common/_vat-toggle.scss +1 -1
  117. package/src/scss/components/_add-list-id.scss +0 -1
  118. package/src/scss/components/_advice-inspiration-critical.scss +2 -2
  119. package/src/scss/components/_advice-inspiration.scss +2 -3
  120. package/src/scss/components/_anchor-nav.scss +1 -1
  121. package/src/scss/components/_aside-accordion.scss +0 -5
  122. package/src/scss/components/_aside-nav.scss +1 -1
  123. package/src/scss/components/_aside-nav2.scss +0 -2
  124. package/src/scss/components/_autocomplete.scss +0 -1
  125. package/src/scss/components/_banner-2.scss +1 -1
  126. package/src/scss/components/_banner-info.scss +1 -1
  127. package/src/scss/components/_banner.scss +0 -2
  128. package/src/scss/components/_barcode.scss +0 -1
  129. package/src/scss/components/_big-wins-critical.scss +8 -9
  130. package/src/scss/components/_big-wins.scss +25 -32
  131. package/src/scss/components/_billie-modal.scss +5 -6
  132. package/src/scss/components/_billie-online-messaging.scss +2 -2
  133. package/src/scss/components/_card.scss +1 -5
  134. package/src/scss/components/_cards-slider.scss +1 -1
  135. package/src/scss/components/_category-tree.scss +2 -2
  136. package/src/scss/components/_charity-donations.scss +7 -7
  137. package/src/scss/components/_checkout-action.scss +0 -2
  138. package/src/scss/components/_colour-block.scss +0 -2
  139. package/src/scss/components/_cookies-policy.scss +1 -1
  140. package/src/scss/components/_copy-project-id.scss +0 -1
  141. package/src/scss/components/_donation-cart-new.scss +6 -6
  142. package/src/scss/components/_donation-cart.scss +3 -4
  143. package/src/scss/components/_favourite-product.scss +1 -1
  144. package/src/scss/components/_gallery-critical.scss +3 -3
  145. package/src/scss/components/_gallery-pdp-critical.scss +4 -4
  146. package/src/scss/components/_gallery-pdp.scss +2 -2
  147. package/src/scss/components/_gallery.scss +2 -2
  148. package/src/scss/components/_hero.scss +0 -1
  149. package/src/scss/components/_home-banner.scss +1 -1
  150. package/src/scss/components/_kitchen-card.scss +4 -4
  151. package/src/scss/components/_lines-group.scss +0 -1
  152. package/src/scss/components/_marketing-preferences.scss +1 -1
  153. package/src/scss/components/_merge-basket-options.scss +0 -1
  154. package/src/scss/components/_modal-box.scss +5 -5
  155. package/src/scss/components/_new-checkout-form.scss +1 -1
  156. package/src/scss/components/_notifications-critical.scss +1 -3
  157. package/src/scss/components/_order-item-cc.scss +6 -7
  158. package/src/scss/components/_order-item.scss +11 -12
  159. package/src/scss/components/_order-line-shop-list.scss +2 -2
  160. package/src/scss/components/_order-line.scss +3 -3
  161. package/src/scss/components/_page-overlay.scss +3 -9
  162. package/src/scss/components/_payment-transactions.scss +5 -5
  163. package/src/scss/components/_payments.scss +0 -1
  164. package/src/scss/components/_pdp-cta.scss +0 -4
  165. package/src/scss/components/_pdp-info-v2.scss +2 -5
  166. package/src/scss/components/_popular-categories.scss +0 -2
  167. package/src/scss/components/_potential-promotion.scss +1 -1
  168. package/src/scss/components/_price-badges-critical.scss +0 -1
  169. package/src/scss/components/_price-badges.scss +0 -2
  170. package/src/scss/components/_price-tooltip.scss +3 -2
  171. package/src/scss/components/_price.scss +2 -2
  172. package/src/scss/components/_product-card-critical.scss +1 -2
  173. package/src/scss/components/_product-card.scss +3 -5
  174. package/src/scss/components/_product-main-info.scss +4 -5
  175. package/src/scss/components/_project-list-multiple.scss +4 -4
  176. package/src/scss/components/_project-list-total.scss +1 -1
  177. package/src/scss/components/_proposition.scss +2 -2
  178. package/src/scss/components/_range-card.scss +1 -3
  179. package/src/scss/components/_range-types.scss +2 -2
  180. package/src/scss/components/_recommended.scss +1 -5
  181. package/src/scss/components/_rewards.scss +1 -1
  182. package/src/scss/components/_saving-shopping-list-modal.scss +1 -2
  183. package/src/scss/components/_seo-widgets.scss +1 -2
  184. package/src/scss/components/_share-list-modal.scss +1 -2
  185. package/src/scss/components/_shop-colour.scss +1 -1
  186. package/src/scss/components/_shopping-list-note.scss +2 -2
  187. package/src/scss/components/_smart-banner.scss +4 -5
  188. package/src/scss/components/_snack-bar.scss +2 -2
  189. package/src/scss/components/_steps-three.scss +3 -3
  190. package/src/scss/components/_steps.scss +2 -2
  191. package/src/scss/components/_sticky-element-appearance.scss +2 -2
  192. package/src/scss/components/_tables.scss +1 -2
  193. package/src/scss/components/_tabs.scss +0 -1
  194. package/src/scss/components/_tc-generic-floor.scss +3 -3
  195. package/src/scss/components/_tc-generic.scss +4 -4
  196. package/src/scss/components/_thank-you-modal.scss +3 -1
  197. package/src/scss/components/_ti-floor.scss +3 -4
  198. package/src/scss/components/_ti-header.scss +2 -2
  199. package/src/scss/components/_ti-radio.scss +4 -4
  200. package/src/scss/components/_ti-total-area.scss +10 -10
  201. package/src/scss/components/_tile-banner.scss +1 -1
  202. package/src/scss/components/_tile-product.scss +3 -4
  203. package/src/scss/components/_tooltip.scss +2 -2
  204. package/src/scss/components/_trade-offers.scss +0 -1
  205. package/src/scss/components/_tradepro-discount-banner.scss +10 -15
  206. package/src/scss/components/_user-address-delivery.scss +1 -3
  207. package/src/scss/components/_user-address.scss +1 -1
  208. package/src/scss/components/_usp-component.scss +0 -1
  209. package/src/scss/components/_voucher-accordion.scss +3 -3
  210. package/src/scss/components/_wisdom-critical.scss +2 -3
  211. package/src/scss/components/_wisdom.scss +6 -9
  212. package/src/scss/components/_your-details.scss +0 -1
  213. package/src/scss/components/account-families/_add-members.scss +1 -3
  214. package/src/scss/components/account-families/_member-card.scss +3 -3
  215. package/src/scss/components/bloomreach/_bloomreach.scss +3 -0
  216. package/src/scss/components/bloomreach/_complete-card.scss +0 -38
  217. package/src/scss/components/bloomreach/_reviews.scss +60 -0
  218. package/src/scss/components/bloomreach/_why-not-add-card.scss +223 -0
  219. package/src/scss/components/bloomreach/_why-not-add.scss +143 -0
  220. package/src/scss/components/card-store-locator-v2.scss +0 -1
  221. package/src/scss/components/card_v2.scss +3 -7
  222. package/src/scss/components/checkout-loader-modal.scss +0 -1
  223. package/src/scss/components/energy-efficiency.scss +6 -6
  224. package/src/scss/components/global-search.scss +14 -20
  225. package/src/scss/components/kitchen/_chips.scss +7 -6
  226. package/src/scss/components/kitchen/_filter-card.scss +1 -1
  227. package/src/scss/components/kitchen/_sort-by.scss +2 -3
  228. package/src/scss/components/kitchen/strip-stickers.scss +1 -1
  229. package/src/scss/components/loader.scss +5 -6
  230. package/src/scss/components/my-account/_active-orders.scss +6 -6
  231. package/src/scss/components/my-account/_consignment-info.scss +3 -3
  232. package/src/scss/components/my-account/_contacts.scss +2 -2
  233. package/src/scss/components/my-account/_menu.scss +2 -2
  234. package/src/scss/components/my-account/_mobile-nav.scss +4 -4
  235. package/src/scss/components/my-account/_order-process.scss +3 -3
  236. package/src/scss/components/my-account/_order-status.scss +3 -3
  237. package/src/scss/components/my-account/_orders-nav.scss +1 -1
  238. package/src/scss/components/my-account/_payment-status.scss +2 -2
  239. package/src/scss/components/my-account/_saving-totaliser.scss +8 -7
  240. package/src/scss/components/my-account/_shipment.scss +2 -2
  241. package/src/scss/components/pdf-loader.scss +1 -2
  242. package/src/scss/components/price-block-v2-critical.scss +0 -1
  243. package/src/scss/components/price-block-v2.scss +0 -3
  244. package/src/scss/components/store-locator-v2-details.scss +2 -2
  245. package/src/scss/components/strip-stickers.scss +1 -1
  246. package/src/scss/helpers/_elements.scss +0 -1
  247. package/src/scss/helpers/_mixins.scss +5 -5
  248. package/src/scss/helpers/_store-locator-elements.scss +0 -1
  249. package/src/scss/helpers/_typography.scss +3 -3
  250. package/src/scss/helpers/_utilities.scss +0 -1
  251. package/src/scss/helpers/helpers-pdp-critical/_CTAs-critical-pdp.scss +1 -1
  252. package/src/scss/helpers/helpers-pdp-critical/_elements-critical-pdp.scss +0 -1
  253. package/src/scss/helpers/helpers-pdp-critical/_helpers-critical-pdp.scss +1 -1
  254. package/src/scss/helpers/helpers-pdp-critical/_typography-critical-pdp.scss +4 -4
  255. package/src/scss/libs/_bootstrap-extracted.scss +42 -12
  256. package/src/scss/libs/_cat-libs.scss +10 -10
  257. package/src/scss/libs/_font-awesome-icons.scss +133 -113
  258. package/src/scss/libs/_homepage-libs.scss +12 -12
  259. package/src/scss/libs/_plp-libs.scss +11 -11
  260. package/src/scss/libs/_skeleton.scss +4 -4
  261. package/src/scss/libs/_store-locator-libs.scss +1 -1
  262. package/src/scss/libs/flatpickr.scss +6 -6
  263. package/src/scss/my-account-main-v2.scss +19 -19
  264. package/src/scss/my-account-main.scss +19 -19
  265. package/src/scss/pages/_checkout-confirmation.scss +1 -3
  266. package/src/scss/pages/_checkout-sign-in.scss +1 -2
  267. package/src/scss/pages/_checkout-tradepro.scss +3 -4
  268. package/src/scss/pages/_checkout-widget.scss +10 -16
  269. package/src/scss/pages/_checkout_delivery-details.scss +1 -3
  270. package/src/scss/pages/_checkout_edit-delivery-address.scss +0 -1
  271. package/src/scss/pages/_checkout_terms-and-conditions.scss +0 -1
  272. package/src/scss/pages/_checkout_your-details.scss +1 -1
  273. package/src/scss/pages/_contact-us.scss +0 -1
  274. package/src/scss/pages/_facets.scss +0 -2
  275. package/src/scss/pages/_my-account_address-details.scss +0 -3
  276. package/src/scss/pages/_my-account_change-email.scss +0 -1
  277. package/src/scss/pages/_my-account_new.scss +25 -31
  278. package/src/scss/pages/_my-account_order-details.scss +1 -1
  279. package/src/scss/pages/_my-account_order-history.scss +1 -2
  280. package/src/scss/pages/_my-account_personal-details.scss +0 -5
  281. package/src/scss/pages/_my-account_profile.scss +1 -2
  282. package/src/scss/pages/_my-account_your-account.scss +0 -1
  283. package/src/scss/pages/_page_category-landing.scss +3 -2
  284. package/src/scss/pages/bicester-header.scss +0 -1
  285. package/src/scss/pages/checkout.scss +4 -5
  286. package/src/scss/pages/home-movers.scss +1 -1
  287. package/src/scss/pages/iframe-paypage.scss +44 -44
  288. package/src/scss/pages/my-account.scss +3 -3
  289. package/src/scss/pages/oldweb_header.scss +5 -6
  290. package/src/scss/pages/page_account-deletion.scss +1 -1
  291. package/src/scss/pages/page_act-trade-pro.scss +0 -1
  292. package/src/scss/pages/page_address-book.scss +0 -1
  293. package/src/scss/pages/page_bathroom-trends.scss +0 -1
  294. package/src/scss/pages/page_book-consultant-thank-you-new.scss +3 -5
  295. package/src/scss/pages/page_checkout-payment-details.scss +2 -5
  296. package/src/scss/pages/page_cms_homepage.scss +1 -1
  297. package/src/scss/pages/page_contact-us.scss +1 -1
  298. package/src/scss/pages/page_content.scss +0 -4
  299. package/src/scss/pages/page_default-store.scss +2 -3
  300. package/src/scss/pages/page_empty-basket.scss +0 -5
  301. package/src/scss/pages/page_fdl-management.scss +0 -1
  302. package/src/scss/pages/page_fi.scss +0 -2
  303. package/src/scss/pages/page_home.scss +0 -2
  304. package/src/scss/pages/page_hotspot-guttering.scss +0 -1
  305. package/src/scss/pages/page_in-store-checkout.scss +1 -3
  306. package/src/scss/pages/page_installer.scss +3 -5
  307. package/src/scss/pages/page_installer_form.scss +0 -1
  308. package/src/scss/pages/page_kitchen-claims.scss +2 -5
  309. package/src/scss/pages/page_kitchen-list.scss +1 -1
  310. package/src/scss/pages/page_marketing-preferences.scss +1 -1
  311. package/src/scss/pages/page_merged-basket.scss +2 -2
  312. package/src/scss/pages/page_my-account_tradePro.scss +1 -1
  313. package/src/scss/pages/page_my-order.scss +15 -15
  314. package/src/scss/pages/page_my-orders.scss +2 -2
  315. package/src/scss/pages/page_new-checkout_login-register.scss +1 -2
  316. package/src/scss/pages/page_no-results.scss +1 -2
  317. package/src/scss/pages/page_online-exclusive.scss +6 -6
  318. package/src/scss/pages/page_personal-details.scss +2 -2
  319. package/src/scss/pages/page_pre_home.scss +7 -7
  320. package/src/scss/pages/page_pre_home_thank-you.scss +2 -2
  321. package/src/scss/pages/page_product-details-critical.scss +7 -1
  322. package/src/scss/pages/page_product-details-v2-critical.scss +1 -2
  323. package/src/scss/pages/page_product-details.scss +7 -1
  324. package/src/scss/pages/page_products-list-phone.scss +0 -7
  325. package/src/scss/pages/page_products-list.scss +2 -2
  326. package/src/scss/pages/page_quiz.scss +3 -3
  327. package/src/scss/pages/page_rate-review.scss +0 -3
  328. package/src/scss/pages/page_registration.scss +0 -3
  329. package/src/scss/pages/page_store-locator-details.scss +2 -2
  330. package/src/scss/pages/page_ti.scss +1 -5
  331. package/src/scss/pages/page_top-rated.scss +5 -5
  332. package/src/scss/pages/page_track-my-order.scss +1 -1
  333. package/src/scss/pages/page_track_your_order.scss +5 -5
  334. package/src/scss/pages/page_upd-pass.scss +0 -1
  335. package/src/scss/pages/page_wismo-details.scss +8 -8
  336. package/src/scss/pages/page_wismo-order-history.scss +3 -3
  337. package/src/scss/pages/page_wismo-orders.scss +7 -7
  338. package/src/scss/pages/print_quiz.scss +3 -1
  339. package/src/scss/pages/sticky_header.scss +5 -6
  340. package/src/scss/pages/tradePro-about.scss +1 -1
  341. package/src/scss/pages/tradePro-discount.scss +1 -2
  342. package/src/scss/pages/tradePro-rewards-old.scss +4 -3
  343. package/src/scss/pages/tradePro-signup.scss +3 -5
  344. package/src/scss/partials/_breadcrumbs-critical.scss +2 -2
  345. package/src/scss/partials/_breadcrumbs.scss +2 -2
  346. package/src/scss/partials/_footer-v2.scss +2 -2
  347. package/src/scss/partials/_footer.scss +4 -4
  348. package/src/scss/partials/_footer_checkout-new.scss +1 -1
  349. package/src/scss/partials/_footer_checkout.scss +1 -1
  350. package/src/scss/partials/_header-critical.scss +6 -9
  351. package/src/scss/partials/_header.scss +7 -9
  352. package/src/scss/partials/_header_checkout.scss +2 -2
  353. package/src/scss/partials/_main-nav.scss +7 -11
  354. package/src/scss/partials/_sign-up.scss +3 -3
  355. package/src/scss/shopping-list-pdf.scss +1 -1
  356. package/src/sitemap.html +22 -4
  357. package/src/components/.DS_Store +0 -0
  358. package/src/img/.DS_Store +0 -0
  359. package/src/img/placeholders/.DS_Store +0 -0
  360. package/src/js/page/.DS_Store +0 -0
  361. package/src/scss/.DS_Store +0 -0
  362. package/src/scss/pages/.DS_Store +0 -0
@@ -0,0 +1,250 @@
1
+ var Wick = window.Wick || {};
2
+
3
+ import { isApp } from '../utils/helpers';
4
+ import { createEvent } from '../utils/create-event';
5
+ import CompleteYourProjectWidget from './complete-your-project-widget';
6
+ import WhyNotAddWidget from './why-not-add-widget';
7
+
8
+ Wick.BloomreachWidget = {
9
+ widgets: {},
10
+
11
+ el: {
12
+ loadingButtonText: '.loading-button__text',
13
+ loadingButtonLoader: '.loading-button__loader',
14
+ ratingOverlay: '.rating-overlay',
15
+ starOverlay: '.star-overlay',
16
+ vatInc: '.including-vat-inherit',
17
+ vatExc: '.excluding-vat-inherit',
18
+ },
19
+
20
+ registerWidgets(widgetList) {
21
+ widgetList.forEach(function ({ type, widget }) {
22
+ Wick.BloomreachWidget.widgets[type] = widget;
23
+ });
24
+ },
25
+
26
+ getWidget(type) {
27
+ return Wick.BloomreachWidget.widgets[type];
28
+ },
29
+
30
+ init(type, payloadData) {
31
+ const widget = Wick.BloomreachWidget.getWidget(type);
32
+
33
+ if (!widget || typeof widget.init !== 'function') {
34
+ return;
35
+ }
36
+
37
+ widget.init(payloadData, Wick.BloomreachWidget);
38
+ },
39
+
40
+ normalizePayload(payloadData) {
41
+ if (Array.isArray(payloadData)) {
42
+ return payloadData;
43
+ }
44
+
45
+ if (payloadData && Array.isArray(payloadData.recommendedProducts)) {
46
+ return payloadData.recommendedProducts;
47
+ }
48
+
49
+ return [];
50
+ },
51
+
52
+ hasRecommendations(payloadData) {
53
+ return Wick.BloomreachWidget.normalizePayload(payloadData).length > 0;
54
+ },
55
+
56
+ getDisplayPrice(product) {
57
+ return product.displayPrice || product.price || {};
58
+ },
59
+
60
+ getDisplayPriceExcVat(product) {
61
+ return product.displayPriceExclusiveVat || product.priceExclusiveVat || null;
62
+ },
63
+
64
+ getPriceValue(price) {
65
+ return price && typeof price.value === 'number' ? price.value : 0;
66
+ },
67
+
68
+ getPriceFormattedValue(price) {
69
+ if (!price) {
70
+ return '';
71
+ }
72
+
73
+ if (price.formattedValue) {
74
+ return price.formattedValue;
75
+ }
76
+
77
+ if (typeof price.value === 'number') {
78
+ return Wick.BloomreachWidget.formatPrice(price.value);
79
+ }
80
+
81
+ return '';
82
+ },
83
+
84
+ removeBlankTargets($root) {
85
+ if (!isApp()) {
86
+ return;
87
+ }
88
+
89
+ $root.find('a[target="_blank"]').removeAttr('target');
90
+ },
91
+
92
+ getWasPrice(product) {
93
+ const displayPrice = Wick.BloomreachWidget.getDisplayPrice(product);
94
+
95
+ return displayPrice && displayPrice.wasPrice ? displayPrice.wasPrice : null;
96
+ },
97
+
98
+ getWasPriceFormatted(product) {
99
+ const displayPrice = Wick.BloomreachWidget.getDisplayPrice(product);
100
+ const wasPrice = Wick.BloomreachWidget.getWasPrice(product);
101
+
102
+ if (wasPrice && wasPrice.formattedValue) {
103
+ return wasPrice.formattedValue;
104
+ }
105
+
106
+ if (typeof wasPrice === 'number') {
107
+ return Wick.BloomreachWidget.formatPrice(wasPrice);
108
+ }
109
+
110
+ if (wasPrice) {
111
+ return `${displayPrice.currencySymbol || '£'}${wasPrice}`;
112
+ }
113
+
114
+ return '';
115
+ },
116
+
117
+ getExcVatWasPrice(product) {
118
+ const priceExclusiveVat = product.priceExclusiveVat || null;
119
+ const displayPriceExclusiveVat = product.displayPriceExclusiveVat || null;
120
+ const wasPrice =
121
+ (displayPriceExclusiveVat && displayPriceExclusiveVat.wasPrice) ||
122
+ (priceExclusiveVat && priceExclusiveVat.wasPrice);
123
+
124
+ if (wasPrice && wasPrice.formattedValue) {
125
+ return wasPrice.formattedValue;
126
+ }
127
+
128
+ if (typeof wasPrice === 'number') {
129
+ return Wick.BloomreachWidget.formatPrice(wasPrice);
130
+ }
131
+
132
+ return wasPrice || '';
133
+ },
134
+
135
+ getProductImage(product, fallbackProduct) {
136
+ const productImages = product.images || [];
137
+ const fallbackImages = fallbackProduct ? fallbackProduct.images || [] : [];
138
+ const images = productImages.length ? productImages : fallbackImages;
139
+
140
+ return (
141
+ images.find(function (item) {
142
+ return item.format === 'product';
143
+ }) ||
144
+ images.find(function (item) {
145
+ return item.imageType === 'PRIMARY';
146
+ }) ||
147
+ images[0] ||
148
+ {}
149
+ );
150
+ },
151
+
152
+ getProductRenderData(product, options = {}) {
153
+ const displayPrice = Wick.BloomreachWidget.getDisplayPrice(product);
154
+ const displayPriceExcVat = Wick.BloomreachWidget.getDisplayPriceExcVat(product);
155
+ const wasPriceFormatted = Wick.BloomreachWidget.getWasPriceFormatted(product);
156
+ const excVatWasPriceFormatted = Wick.BloomreachWidget.getExcVatWasPrice(product);
157
+ const isSwitchVat = !!(window.ACC && window.ACC.app && window.ACC.app.isVatToggleAvailable);
158
+
159
+ return {
160
+ ...product,
161
+ price: displayPrice,
162
+ image:
163
+ options.image ||
164
+ Wick.BloomreachWidget.getProductImage(product, options.fallbackProduct),
165
+ wasPriceFormatted,
166
+ 'switch-vat': isSwitchVat,
167
+ incVatFormattedValue: Wick.BloomreachWidget.getPriceFormattedValue(displayPrice),
168
+ incVatValue: Wick.BloomreachWidget.getPriceValue(displayPrice),
169
+ excVatFormattedValue: Wick.BloomreachWidget.getPriceFormattedValue(displayPriceExcVat),
170
+ excVatValue: Wick.BloomreachWidget.getPriceValue(displayPriceExcVat),
171
+ incVatWasPriceFormatted: wasPriceFormatted,
172
+ excVatWasPriceFormatted: Wick.BloomreachWidget.getExcVatWasPrice(product),
173
+ };
174
+ },
175
+
176
+ drawRating($root) {
177
+ const { ratingOverlay, starOverlay } = Wick.BloomreachWidget.el;
178
+
179
+ $root.find(ratingOverlay).each(function () {
180
+ let rating = parseFloat($(this).attr('data-rating')) || 0;
181
+ const $stars = $(this).children(starOverlay);
182
+
183
+ $stars.each(function () {
184
+ const $star = $(this);
185
+
186
+ if (rating >= 1) {
187
+ rating--;
188
+ } else if (rating > 0) {
189
+ const width = Math.asin(2 * rating - 1) / Math.PI + 0.5;
190
+ $star.css('width', width + 'rem');
191
+ rating = 0;
192
+ } else {
193
+ $star.css('width', '0rem');
194
+ }
195
+ });
196
+ });
197
+ },
198
+
199
+ dispatchWidgetEvent(eventName, payload) {
200
+ return new Promise(function (resolve, reject) {
201
+ const eventDetail = { resolve, reject };
202
+ const event = createEvent(eventName, payload, eventDetail);
203
+
204
+ window.dispatchEvent(event);
205
+ });
206
+ },
207
+
208
+ reapplyVatDisplay() {
209
+ if (!Wick.VatToggle || typeof Wick.VatToggle.isActive !== 'function') {
210
+ return;
211
+ }
212
+
213
+ const { vatInc, vatExc } = Wick.BloomreachWidget.el;
214
+ const hiddenClassName = Wick.VatToggle.HIDDEN_CLASS_NAME || 'd-none';
215
+ const isExcVatActive = Wick.VatToggle.isActive();
216
+
217
+ $(vatInc).toggleClass(hiddenClassName, isExcVatActive);
218
+ $(vatExc).toggleClass(hiddenClassName, !isExcVatActive);
219
+ },
220
+
221
+ bindVatToggle(namespace) {
222
+ if (!Wick.VatToggle || !Wick.VatToggle.TOGGLE_VAT_EVENT_NAME) {
223
+ return;
224
+ }
225
+
226
+ const eventName = `${Wick.VatToggle.TOGGLE_VAT_EVENT_NAME}.${namespace}`;
227
+
228
+ $(window).off(eventName).on(eventName, Wick.BloomreachWidget.reapplyVatDisplay);
229
+ },
230
+
231
+ formatPrice(value) {
232
+ return new Intl.NumberFormat('en-GB', {
233
+ style: 'currency',
234
+ currency: 'GBP',
235
+ minimumFractionDigits: 2,
236
+ maximumFractionDigits: 2,
237
+ }).format(value);
238
+ },
239
+ };
240
+
241
+ Wick.BloomreachWidget.registerWidgets([
242
+ {
243
+ type: 'completeYourProject',
244
+ widget: CompleteYourProjectWidget,
245
+ },
246
+ {
247
+ type: 'whyNotAdd',
248
+ widget: WhyNotAddWidget,
249
+ },
250
+ ]);