wickes-css2 2.113.0 → 2.117.0-develop.1

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 (233) hide show
  1. package/Readme.md +1 -1
  2. package/build/css/category-main.css +1 -1
  3. package/build/css/components/checkout-payment-details-v2.css +1 -1
  4. package/build/css/components/checkout-payment-repayment-terms.css +1 -1
  5. package/build/css/components/price-block-v2-critical.css +1 -1
  6. package/build/css/components/price-block-v2.css +1 -1
  7. package/build/css/kitchen-plp-main.css +1 -1
  8. package/build/css/main.css +1 -1
  9. package/build/css/my-account-main-v2.css +1 -1
  10. package/build/css/my-account-main.css +1 -1
  11. package/build/css/pages/checkout-new.css +1 -1
  12. package/build/css/pages/checkout.css +1 -1
  13. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  14. package/build/css/pages/page_product-details-v2-critical.css +1 -1
  15. package/build/css/pages/page_product-details-v2.css +1 -1
  16. package/build/css/pages/page_product-details.css +1 -1
  17. package/build/css/pages/page_products-list-combined.css +1 -1
  18. package/build/css/pages/page_products-list_v2.css +1 -1
  19. package/build/css/pages/tradePro-signup.css +1 -1
  20. package/build/css/pdp-main-before-combine.css +1 -1
  21. package/build/css/pdp-main-critical.css +1 -1
  22. package/build/css/pdp-main-non-critical.css +1 -1
  23. package/build/css/pdp-main.css +1 -1
  24. package/build/css/plp-main.css +1 -1
  25. package/build/css/store-locator-main.css +1 -1
  26. package/build/img/file-pdf-solid-full.svg +3 -0
  27. package/build/img/lorem_ipsum.pdf +150 -0
  28. package/build/js/account-members.min.js +1 -1
  29. package/build/js/add-project-list-id.min.js +1 -1
  30. package/build/js/address-book.min.js +1 -1
  31. package/build/js/basket.min.js +2 -2
  32. package/build/js/bloomreach-widget.min.js +1 -1
  33. package/build/js/bundle.min.js +1 -1
  34. package/build/js/change-password.min.js +1 -1
  35. package/build/js/checkout.min.js +2 -2
  36. package/build/js/emulation.min.js +400 -192
  37. package/build/js/general.bundle.min.js +1 -1
  38. package/build/js/gift-cards.min.js +1 -1
  39. package/build/js/kitchen/kitchen-plp.min.js +1 -1
  40. package/build/js/merged-checkout.min.js +2 -2
  41. package/build/js/package-bulk-add.min.js +1 -0
  42. package/build/js/page/bloomreach-widget/bloomreach-recommendation-carousel-widget.js +7 -6
  43. package/build/js/page/bloomreach-widget/bloomreach-widget-core.js +47 -27
  44. package/build/js/page/bloomreach-widget/bloomreach-widget.js +5 -0
  45. package/build/js/page/bloomreach-widget/complete-your-project/view.js +11 -6
  46. package/build/js/page/bloomreach-widget/complete-your-project/widget.js +0 -1
  47. package/build/js/page/bloomreach-widget/similar-products-widget.js +17 -0
  48. package/build/js/page/plp-load-more.js +81 -66
  49. package/build/js/page/ripple/bulk-add.js +71 -0
  50. package/build/js/page/ripple/package-bulk-add.js +43 -0
  51. package/build/js/page/ripple/postcode-checker.js +83 -0
  52. package/build/js/page/ripple/thumb-gallery.js +236 -0
  53. package/build/js/page/utils/validation.js +1 -1
  54. package/build/js/pdf-preview.min.js +1 -0
  55. package/build/js/pdp.bundle.min.js +2 -2
  56. package/build/js/personal-details.min.js +1 -1
  57. package/build/js/plp.bundle.min.js +1 -1
  58. package/build/js/postcode-checker.min.js +1 -0
  59. package/build/js/project-list.min.js +2 -2
  60. package/build/js/quiz.min.js +1 -1
  61. package/build/js/track-my-order.min.js +1 -1
  62. package/package.json +1 -1
  63. package/src/badges-ripple.html +120 -0
  64. package/src/badges.html +9 -18
  65. package/src/components/bloomreach/complete-card.hbs +1 -1
  66. package/src/components/bloomreach/why-not-add-card.hbs +26 -7
  67. package/src/components/bloomreach/why-not-add.hbs +1 -1
  68. package/src/components/fulfilment-accordions.hbs +1 -1
  69. package/src/components/image-accordion.hbs +18 -0
  70. package/src/components/kitchen/price.hbs +49 -29
  71. package/src/components/kitchen/strip-stickers.hbs +9 -3
  72. package/src/components/modal-capture.hbs +1 -1
  73. package/src/components/modal-id-type.hbs +271 -0
  74. package/src/components/modal-pdf-preview.hbs +70 -0
  75. package/src/components/package-card.hbs +30 -0
  76. package/src/components/partner-signup-form.hbs +1 -231
  77. package/src/components/pdp-price-actions.hbs +17 -0
  78. package/src/components/postcode-checker.hbs +24 -0
  79. package/src/components/price-badges.hbs +12 -10
  80. package/src/components/price-block-v2.hbs +289 -199
  81. package/src/components/product-main-info-v2.hbs +2 -0
  82. package/src/components/suite-includes.hbs +66 -0
  83. package/src/components/suite-product-card.hbs +47 -0
  84. package/src/components/thumb-gallery.hbs +23 -0
  85. package/src/data/data_badges.json +143 -0
  86. package/src/data/data_bathroom-plp.json +814 -0
  87. package/src/data/data_suite-includes-products.json +134 -0
  88. package/src/img/file-pdf-solid-full.svg +3 -0
  89. package/src/img/lorem_ipsum.pdf +150 -0
  90. package/src/js/components/banner-placement-manager.js +25 -9
  91. package/src/js/components/general/image-accordion.js +54 -0
  92. package/src/js/components/general/switchVat.js +8 -1
  93. package/src/js/components/package-card.js +69 -0
  94. package/src/js/components/store-locator-cards.js +76 -0
  95. package/src/js/emulation/banner-placement-manager.js +219 -188
  96. package/src/js/emulation/bloomreach-widget-calculations.js +1 -1
  97. package/src/js/emulation/mock.js +66 -34
  98. package/src/js/emulation/plp-load-more.js +13 -4
  99. package/src/js/emulation/postcode-checker.js +11 -0
  100. package/src/js/emulation/similar-products-loading.js +22 -0
  101. package/src/js/emulation/tradepro-id-pdf.js +182 -0
  102. package/src/js/libs/pdf-preview.js +1177 -0
  103. package/src/js/page/bloomreach-widget/bloomreach-recommendation-carousel-widget.js +7 -6
  104. package/src/js/page/bloomreach-widget/bloomreach-widget-core.js +47 -27
  105. package/src/js/page/bloomreach-widget/bloomreach-widget.js +5 -0
  106. package/src/js/page/bloomreach-widget/complete-your-project/view.js +11 -6
  107. package/src/js/page/bloomreach-widget/complete-your-project/widget.js +0 -1
  108. package/src/js/page/bloomreach-widget/similar-products-widget.js +17 -0
  109. package/src/js/page/plp-load-more.js +81 -66
  110. package/src/js/page/ripple/bulk-add.js +71 -0
  111. package/src/js/page/ripple/package-bulk-add.js +43 -0
  112. package/src/js/page/ripple/postcode-checker.js +83 -0
  113. package/src/js/page/ripple/thumb-gallery.js +236 -0
  114. package/src/js/page/utils/validation.js +1 -1
  115. package/src/page_bathroom-plp-vat.html +81 -0
  116. package/src/page_bathroom-plp-without-load-more.html +83 -0
  117. package/src/page_bathroom-plp.html +98 -0
  118. package/src/page_checkout_confirmation-billie.html +5 -231
  119. package/src/page_checkout_confirmation-clearpay.html +5 -231
  120. package/src/page_checkout_confirmation-new-apple.html +5 -231
  121. package/src/page_checkout_confirmation-new-google.html +5 -231
  122. package/src/page_checkout_confirmation-new-klarna.html +5 -231
  123. package/src/page_checkout_confirmation-new-paypal.html +5 -231
  124. package/src/page_checkout_delivery-details-v2-calendar-not-loaded.html +167 -0
  125. package/src/page_checkout_payment-details-v2-asm.html +2 -3
  126. package/src/page_checkout_payment-details-v2.html +2 -3
  127. package/src/page_checkout_payment-details_with-card-loader.html +2 -3
  128. package/src/page_checkout_payment-details_with-klarna-loader.html +2 -3
  129. package/src/page_checkout_payment-details_with-loader-v2.html +2 -3
  130. package/src/page_klarna_payment-details_with-klarna.html +2 -3
  131. package/src/page_payment-details-billie-registered-only.html +2 -3
  132. package/src/page_payment-details-billie-unregistered-only.html +2 -3
  133. package/src/page_payment-details-with-billie.html +2 -3
  134. package/src/page_payment-details-with-clearpay.html +2 -3
  135. package/src/page_payment-details-with-gift-card.html +2 -3
  136. package/src/page_payment-details_with_apple-pay.html +0 -1
  137. package/src/page_payment-details_with_google-pay.html +2 -3
  138. package/src/page_pdf-preview-example.html +955 -0
  139. package/src/page_product-details-banner.html +1 -3
  140. package/src/page_product-details-big-wins-disabled-delivery.html +1 -3
  141. package/src/page_product-details-big-wins-non-registered.html +1 -3
  142. package/src/page_product-details-big-wins-out-nearest.html +1 -3
  143. package/src/page_product-details-big-wins-unhappy.html +1 -3
  144. package/src/page_product-details-big-wins.html +1 -3
  145. package/src/page_product-details-billie.html +1 -3
  146. package/src/page_product-details-calculator.html +1 -3
  147. package/src/page_product-details-cashback-v2.html +1 -3
  148. package/src/page_product-details-clearpay.html +1 -3
  149. package/src/page_product-details-cnc-error-notification.html +1 -3
  150. package/src/page_product-details-cnc-success-notification-vat.html +1 -4
  151. package/src/page_product-details-cnc-success-notification.html +1 -3
  152. package/src/page_product-details-default-store.html +1 -3
  153. package/src/page_product-details-energy-efficiency.html +1 -3
  154. package/src/page_product-details-flooring-with-pr-placeholder.html +1 -3
  155. package/src/page_product-details-flooring.html +1 -3
  156. package/src/page_product-details-gallery-actual.html +1 -3
  157. package/src/page_product-details-mfe-calculator.html +1 -3
  158. package/src/page_product-details-mtm-doors.html +1 -3
  159. package/src/page_product-details-only-clearpay.html +1 -3
  160. package/src/page_product-details-paint-mixing.html +1 -3
  161. package/src/page_product-details-ripple-gallery-1-image.html +120 -0
  162. package/src/page_product-details-ripple-gallery-missing-image.html +121 -0
  163. package/src/page_product-details-ripple-gallery.html +121 -0
  164. package/src/page_product-details-saved-pl.html +1 -3
  165. package/src/page_product-details-suite-includes-banners.html +139 -0
  166. package/src/page_product-details-suite-includes-billie.html +128 -0
  167. package/src/page_product-details-suite-includes-klarna.html +120 -0
  168. package/src/page_product-details-suite-includes-vat.html +126 -0
  169. package/src/page_product-details-suite-includes.html +122 -0
  170. package/src/page_product-details-tile-steps-klarna-widget-with-method-ids.html +1 -3
  171. package/src/page_product-details-tile-steps-logout.html +1 -3
  172. package/src/page_product-details-tile-steps-no-new-project-list.html +1 -3
  173. package/src/page_product-details-tile-steps-with-klarna.html +1 -3
  174. package/src/page_product-details-tile-steps.html +1 -3
  175. package/src/page_product-details-v2.html +1 -3
  176. package/src/page_product-details-vat.html +1 -3
  177. package/src/page_product-details-wisdom-mcfc-registered.html +1 -3
  178. package/src/page_product-details-wisdom-mcfc.html +1 -3
  179. package/src/page_product-details-wisdom-oos-registered.html +1 -3
  180. package/src/page_product-details-wisdom-oos.html +1 -3
  181. package/src/page_product-details-wisdom-registered.html +1 -3
  182. package/src/page_product-details-wisdom.html +1 -3
  183. package/src/page_product-details-with-favourite.html +1 -3
  184. package/src/page_product-details-with-global-search-v2.html +2 -3
  185. package/src/page_product-details-with-similar-products-widget.html +132 -0
  186. package/src/page_product-details-with-why-not-add-single.html +1 -0
  187. package/src/page_product-details_no-previous-default.html +1 -3
  188. package/src/page_tradePro-checkout-summary-klarna.html +4 -231
  189. package/src/page_tradePro-checkout-summary.html +4 -231
  190. package/src/page_tradePro-signup.html +5 -0
  191. package/src/scss/common/_loading-button.scss +3 -1
  192. package/src/scss/components/_date-selection-add-new-styles.scss +53 -3
  193. package/src/scss/components/_gift-cards.scss +1 -1
  194. package/src/scss/components/_id-type-modal.scss +39 -0
  195. package/src/scss/components/_image-accordion.scss +54 -0
  196. package/src/scss/components/_kitchen-card.scss +1 -0
  197. package/src/scss/components/_map.scss +38 -0
  198. package/src/scss/components/_package-card.scss +65 -0
  199. package/src/scss/components/_package-plp.scss +88 -0
  200. package/src/scss/components/_pdf-preview-modal.scss +122 -0
  201. package/src/scss/components/_postcode-checker.scss +115 -0
  202. package/src/scss/components/_price-badges-critical.scss +10 -0
  203. package/src/scss/components/_price-badges.scss +10 -0
  204. package/src/scss/components/_price-block-critical.scss +1 -0
  205. package/src/scss/components/_price-block.scss +1 -0
  206. package/src/scss/components/_suite-includes.scss +141 -0
  207. package/src/scss/components/_suite-product-card.scss +98 -0
  208. package/src/scss/components/_thumb-gallery-critical.scss +35 -0
  209. package/src/scss/components/_thumb-gallery.scss +200 -0
  210. package/src/scss/components/bloomreach/_why-not-add.scss +3 -1
  211. package/src/scss/components/checkout-payment-details-v2.scss +44 -20
  212. package/src/scss/components/checkout-payment-repayment-terms.scss +0 -1
  213. package/src/scss/components/kitchen/_price.scss +10 -0
  214. package/src/scss/components/kitchen/_strip-stickers.scss +46 -0
  215. package/src/scss/components/price-block-v2-critical.scss +62 -0
  216. package/src/scss/components/price-block-v2.scss +62 -0
  217. package/src/scss/pages/_checkout-tradepro.scss +1 -0
  218. package/src/scss/pages/_checkout_delivery-details.scss +16 -104
  219. package/src/scss/pages/page_checkout_delivery-new.scss +252 -164
  220. package/src/scss/pages/page_product-details-v2-critical.scss +216 -109
  221. package/src/scss/pages/page_product-details-v2.scss +168 -107
  222. package/src/scss/pages/page_product-details.scss +11 -0
  223. package/src/scss/pages/page_products-list-combined.scss +8 -6
  224. package/src/scss/pages/page_products-list_v2.scss +8 -6
  225. package/src/scss/pages/tradePro-signup.scss +1 -0
  226. package/src/scss/pdp-main-critical.scss +1 -0
  227. package/src/scss/pdp-main.scss +6 -0
  228. package/src/scss/plp-main.scss +5 -0
  229. package/src/sitemap.html +30 -6
  230. package/build/css/components/kitchen/strip-stickers.css +0 -1
  231. package/build/css/components/strip-stickers.css +0 -1
  232. package/src/scss/components/kitchen/strip-stickers.scss +0 -18
  233. package/src/scss/components/strip-stickers.scss +0 -18
@@ -0,0 +1,134 @@
1
+ {
2
+ "ripple-pdp": {
3
+ "suite-products": [
4
+ {
5
+ "title": "Wickes Portland 2 Tap Hole Ceramic Bathroom Basin with Full Pedestal - 550mm",
6
+ "image": {
7
+ "url": "https://placehold.co/51x51?text=washstand",
8
+ "altText": "Washstand"
9
+ },
10
+ "price": 60,
11
+ "price-vat": 61,
12
+ "quantity": 1
13
+ },
14
+ {
15
+ "title": "Wickes Portland Close Coupled Toilet Pan, Cistern & Seat",
16
+ "image": {
17
+ "url": "https://placehold.co/51x51?text=toilet",
18
+ "altText": "Toilet"
19
+ },
20
+ "price": 60,
21
+ "price-vat": 61,
22
+ "quantity": 1
23
+ },
24
+ {
25
+ "title": "Wickes Portland 2 Tap Hole Ceramic Bathroom Basin with Full Pedestal - 550mm",
26
+ "image": {
27
+ "url": "https://placehold.co/51x51?text=shower",
28
+ "altText": "Shower"
29
+ },
30
+ "price": 60,
31
+ "price-vat": 61,
32
+ "quantity": 1
33
+ },
34
+ {
35
+ "title": "Wickes Chrome Quadrant Sliding Shower Enclosure - 800 x 800mm",
36
+ "image": {
37
+ "url": "https://placehold.co/51x51?text=shower-tray",
38
+ "altText": "Shower tray"
39
+ },
40
+ "price": 60,
41
+ "price-vat": 61,
42
+ "quantity": 1
43
+ },
44
+ {
45
+ "title": "Wickes Plated Basin Waste Kit - Chrome",
46
+ "image": {
47
+ "url": "https://placehold.co/51x51?text=basin-waste",
48
+ "altText": "Basin waste"
49
+ },
50
+ "price": 60,
51
+ "price-vat": 61,
52
+ "quantity": 1
53
+ },
54
+ {
55
+ "title": "Wickes Chrome Shower Tray Waste - 50mm",
56
+ "image": {
57
+ "url": "https://placehold.co/51x51?text=shower-waste",
58
+ "altText": "Shower waste"
59
+ },
60
+ "price": 60,
61
+ "price-vat": 61,
62
+ "quantity": 1
63
+ }
64
+ ],
65
+ "suite-products-promo": [
66
+ {
67
+ "title": "Wickes Portland 2 Tap Hole Ceramic Bathroom Basin with Full Pedestal - 550mm",
68
+ "image": {
69
+ "url": "https://placehold.co/51x51?text=washstand",
70
+ "altText": "Washstand"
71
+ },
72
+ "price": 60,
73
+ "price-vat": 61,
74
+ "quantity": 1
75
+ },
76
+ {
77
+ "title": "Wickes Portland Close Coupled Toilet Pan, Cistern & Seat",
78
+ "image": {
79
+ "url": "https://placehold.co/51x51?text=toilet",
80
+ "altText": "Toilet"
81
+ },
82
+ "price": 60,
83
+ "price-vat": 61,
84
+ "quantity": 1
85
+ },
86
+ {
87
+ "title": "Wickes Portland 2 Tap Hole Ceramic Bathroom Basin with Full Pedestal - 550mm",
88
+ "image": {
89
+ "url": "https://placehold.co/51x51?text=shower",
90
+ "altText": "Shower"
91
+ },
92
+ "price": 60,
93
+ "price-vat": 61,
94
+ "quantity": 1
95
+ },
96
+ {
97
+ "title": "Wickes Chrome Quadrant Sliding Shower Enclosure - 800 x 800mm",
98
+ "image": {
99
+ "url": "https://placehold.co/51x51?text=shower-tray",
100
+ "altText": "Shower tray"
101
+ },
102
+ "price": 60,
103
+ "price-vat": 61,
104
+ "quantity": 1,
105
+ "was_price": "89.95",
106
+ "was_price-vat": "90.95"
107
+ },
108
+ {
109
+ "title": "Wickes Plated Basin Waste Kit - Chrome",
110
+ "image": {
111
+ "url": "https://placehold.co/51x51?text=basin-waste",
112
+ "altText": "Basin waste"
113
+ },
114
+ "price": 60,
115
+ "price-vat": 61,
116
+ "quantity": 1
117
+ },
118
+ {
119
+ "title": "Wickes Chrome Shower Tray Waste - 50mm",
120
+ "image": {
121
+ "url": "https://placehold.co/51x51?text=shower-waste",
122
+ "altText": "Shower waste"
123
+ },
124
+ "price": 60,
125
+ "price-vat": 61,
126
+ "quantity": 1
127
+ }
128
+ ],
129
+ "was_price": 480,
130
+ "was_price-vat": 481,
131
+ "price": 316,
132
+ "price-vat": 317
133
+ }
134
+ }
@@ -0,0 +1,3 @@
1
+ <svg width="31" height="31" viewBox="0 0 31 31" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M6.19998 3.1001C4.49013 3.1001 3.09998 4.49025 3.09998 6.2001V24.8001C3.09998 26.5099 4.49013 27.9001 6.19998 27.9001H10.075V22.4751C10.075 20.7653 11.4651 19.3751 13.175 19.3751H21.7V11.3587C21.7 10.5353 21.3754 9.74572 20.7942 9.16447L15.6308 4.00588C15.0495 3.42463 14.2648 3.1001 13.4414 3.1001H6.19998ZM18.8664 11.6251H14.3375C13.6933 11.6251 13.175 11.1068 13.175 10.4626V5.93369L18.8664 11.6251ZM13.175 21.5063C12.6422 21.5063 12.2062 21.9423 12.2062 22.4751V28.6751C12.2062 29.2079 12.6422 29.6438 13.175 29.6438C13.7078 29.6438 14.1437 29.2079 14.1437 28.6751V27.3188H14.725C16.3283 27.3188 17.6312 26.0159 17.6312 24.4126C17.6312 22.8093 16.3283 21.5063 14.725 21.5063H13.175ZM14.725 25.3813H14.1437V23.4438H14.725C15.2578 23.4438 15.6937 23.8798 15.6937 24.4126C15.6937 24.9454 15.2578 25.3813 14.725 25.3813ZM19.375 21.5063C18.8422 21.5063 18.4062 21.9423 18.4062 22.4751V28.6751C18.4062 29.2079 18.8422 29.6438 19.375 29.6438H20.925C22.3151 29.6438 23.4437 28.5153 23.4437 27.1251V24.0251C23.4437 22.6349 22.3151 21.5063 20.925 21.5063H19.375ZM20.3437 27.7063V23.4438H20.925C21.2447 23.4438 21.5062 23.7054 21.5062 24.0251V27.1251C21.5062 27.4448 21.2447 27.7063 20.925 27.7063H20.3437ZM24.6062 22.4751V28.6751C24.6062 29.2079 25.0422 29.6438 25.575 29.6438C26.1078 29.6438 26.5437 29.2079 26.5437 28.6751V26.5438H27.9C28.4328 26.5438 28.8687 26.1079 28.8687 25.5751C28.8687 25.0423 28.4328 24.6063 27.9 24.6063H26.5437V23.4438H27.9C28.4328 23.4438 28.8687 23.0079 28.8687 22.4751C28.8687 21.9423 28.4328 21.5063 27.9 21.5063H25.575C25.0422 21.5063 24.6062 21.9423 24.6062 22.4751Z" fill="#0277bd"/>
3
+ </svg>
@@ -0,0 +1,150 @@
1
+ %PDF-1.4
2
+ %���� ReportLab Generated PDF document (opensource)
3
+ 1 0 obj
4
+ <<
5
+ /F1 2 0 R /F2 3 0 R
6
+ >>
7
+ endobj
8
+ 2 0 obj
9
+ <<
10
+ /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
11
+ >>
12
+ endobj
13
+ 3 0 obj
14
+ <<
15
+ /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
16
+ >>
17
+ endobj
18
+ 4 0 obj
19
+ <<
20
+ /Contents 12 0 R /MediaBox [ 0 0 612 792 ] /Parent 11 0 R /Resources <<
21
+ /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
22
+ >> /Rotate 0 /Trans <<
23
+
24
+ >>
25
+ /Type /Page
26
+ >>
27
+ endobj
28
+ 5 0 obj
29
+ <<
30
+ /Contents 13 0 R /MediaBox [ 0 0 612 792 ] /Parent 11 0 R /Resources <<
31
+ /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
32
+ >> /Rotate 0 /Trans <<
33
+
34
+ >>
35
+ /Type /Page
36
+ >>
37
+ endobj
38
+ 6 0 obj
39
+ <<
40
+ /Contents 14 0 R /MediaBox [ 0 0 612 792 ] /Parent 11 0 R /Resources <<
41
+ /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
42
+ >> /Rotate 0 /Trans <<
43
+
44
+ >>
45
+ /Type /Page
46
+ >>
47
+ endobj
48
+ 7 0 obj
49
+ <<
50
+ /Contents 15 0 R /MediaBox [ 0 0 612 792 ] /Parent 11 0 R /Resources <<
51
+ /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
52
+ >> /Rotate 0 /Trans <<
53
+
54
+ >>
55
+ /Type /Page
56
+ >>
57
+ endobj
58
+ 8 0 obj
59
+ <<
60
+ /Contents 16 0 R /MediaBox [ 0 0 612 792 ] /Parent 11 0 R /Resources <<
61
+ /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
62
+ >> /Rotate 0 /Trans <<
63
+
64
+ >>
65
+ /Type /Page
66
+ >>
67
+ endobj
68
+ 9 0 obj
69
+ <<
70
+ /PageMode /UseNone /Pages 11 0 R /Type /Catalog
71
+ >>
72
+ endobj
73
+ 10 0 obj
74
+ <<
75
+ /Author (\(anonymous\)) /CreationDate (D:20260914062728+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260914062728+00'00') /Producer (ReportLab PDF Library - \(opensource\))
76
+ /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
77
+ >>
78
+ endobj
79
+ 11 0 obj
80
+ <<
81
+ /Count 5 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R ] /Type /Pages
82
+ >>
83
+ endobj
84
+ 12 0 obj
85
+ <<
86
+ /Filter [ /ASCII85Decode /FlateDecode ] /Length 1117
87
+ >>
88
+ stream
89
+ Gb"/$bDmN#&A7I5o[,QDiuLSAeK,B:""`@5%P6LXTf=X'"$U>m&GG]ojA;VZ@JC'O$m<gad8aIX9b)9'B;iT!')f88pO<T.XD#5D@GS,$qiMr/2pXEM>C!uW]8%+:A*gXaKu4A.%8.u5Z&#][@8io%<[Gbig@X^C#>B&+HLoMh[e)DqD!@SBlCL2="4Qb*[f=eL*W>W\C;Bk/kA(G!L$uLGl\E(o&K?2Pbg_a4D,%64CM]fP)85QkU*NX&;b,QRa?"=`J^c*36nRglCaA]GR7D'9Q5m"K.C#GJ=e(dT`p=?"6q6PTSiE:)HW))TX?&=0b/eX)4afo?:+S*?8pNGU;q[2&ZUAgtVN==-(CjW39&^k&A!GMm7OX0?8jTO%AQnTuKifK1$]][2#`t_ZHO6fp@ZlhhB[0m'"eGc;fo6so"9qWXj9`%!>0*3n7OB_,S/(&l>,H^3Le?_86(1cg7h.[F^1a)Nk9;RdnQIHo=Jta9UIo)&ZC6B3OWC6Y76uIiCaN/(+MZfl(3NK;,DWSIH;eLV,+LoqfQ>HJV[kedSWrsoW?blAC5'eoUNDMZrDf7,Ji\GgGt:X()o]98]-*],9o^5;*3=[j0"OeJL%%BN'qKu<[$)Le"CTWY,KH6Heg\X?q`VqD`PNWabp.8:.\i7,K(n==+1N(tSg*CaA9Yu,<7<_UkA"bA&7qijYT,;DaHp,uNWLrY>$oBr8<bAPB_)GYh#3UJ^h2kHct9dAETkKb!MKjkApYB\OL^iZY8T6PZW:?\bbG":):^#!k_op[U1Abj)!k4T6G^MHODqHVg>gD,RI05PP/]#mk?L'kE6N(0(hL.MReISg)Jir+=R?pGKok+g:8iX0rean5Y`o\LHht-.Xei_R>'@jq7Bm"*4ZJ<OXBXnkPo:ZX?CrDt$TK0ia?gel&\:$0Z@JUE=[*&Q;13nm=4D'5U,?YOSNben<7(G-o2Wt@RR(LaMb<;%Je:D48'B=/N#(@$/PtWe;:)6]1l0G;Q"sDQR<=KqMh2JL5]HAWP5fnV#dQ&\e^K_W,M[SrFAt7q-3K=ClKtTZ9M7$dmi#;Hf&+"BINEC1f>.%t\6]9hCZ'LJr#`(me\c"5#3b26a;IlI~>endstream
90
+ endobj
91
+ 13 0 obj
92
+ <<
93
+ /Filter [ /ASCII85Decode /FlateDecode ] /Length 1117
94
+ >>
95
+ stream
96
+ Gb"/$bAQ?0&A7ljqR@Iu>a&$$q3Yt<^q_;L@$OqKUL?g\?lnr&%"E_@L*Oh[/FilT#Y=#=\uMg3B*Prd1XocKM14=/LL19)7bSkrf^p-:IA4d<c1B3,<o.cZmU=%CN8<'iE4j#q@?#q'(/[O>[O''UQ5INLm5K5"R,1R0mZS/tl"Q12dU2$Z:S61"Bm`^g^M3E_IK.i4_#JuKCC9fin%V@O%sS%BD"r"^:d]iD28MneZ'!1@o#:olP"8_N*GOsdlbk4W;No<;[C@HdOjqhrT!3cJEjU:i`-0.4EEX]WZ:gDq)7;tZicIr`?%l[llKAp2,L9NcoOf@k@Y$gGb0(/VQ0mcq9-i\1$@*hEje*p!,i2BV7To*pKX+.C'Z:nfjqWqaM%pZ.i96M\!"&M:PgCm--4(QKQJBGVi&U:`h8B=\@,T"n49Lm8$^h[KaJ?eBZXS;JbB1fq;2JO$8@&ZuaJ#NP=3YgG>i^Ss?>ILulZA_0;Q9"J<cdacZ%M\R-jXd_c)cd4j:;LCU+T&YjA8l[D[J'rKG2E@S*nu'oJ$TYQVp$nPm!%EX\d\`Pg6P3h^d/c:bNqX*YK.c-LkrqY)"aP-HD,X%TYhp='b!Q6MR4bMU'%.g<1NU!jH@hO^h*4l]bn[r;kr@@c<?AjpAS%Pu5\Q`HuW^O'IUK9G-o>Z9R;TWp(GfF#>g[LpBup=H8^aaHp,u:'*/n>$oBr8<bC&BZgV1h#3UJ^h2kHct9dAF6L]d&YTQ&ApYB\R(6F!Y8T6PMcO+4bc:RJ):^;)k_op[U1D$T)!k4T6G^MHODqTZg>gD,SaGYtP/]#mk?L'kE6N(.(hKtH>4r`&)Jir+=R?pGKok+o:8iX0rean5Y`o\LHhs^"XegZm>5#oG7BmR:4ZJ9NXBXnkPo:ZXhOYo!$TK0ia@[@t&\:$0Z@JUE=[*,S;13nm=4D'5U,?YOSNben<7(G-o1dD8RR(LaMb<;%JdFi,8'B=/N#(@$X\e3;;:)6]1l0G;Q"sDQR<=KqMh2JL5]HAWP5fPL#dQ&\e^K_W'ARm`FAt7qAcn+.l0YKY9PZ;/lPeDl2rD+LIMct+f>.%t\6]9hCZ'LJr#`(mnR9%7"*F,Fe6PsE~>endstream
97
+ endobj
98
+ 14 0 obj
99
+ <<
100
+ /Filter [ /ASCII85Decode /FlateDecode ] /Length 1119
101
+ >>
102
+ stream
103
+ Gb"/$bDmN#&A7I5o[,B?iuM:UeK/45%4pE?%\ha!Tf=X'%6eD"&GG]ojA;Uo@,qPD$m<gad8aIX9b)9'B;iT!&q/E\]2&M</)'E*=SHUbI\t0Qc1B3,<o.cYmU:gg(qZn[iGaEd_\*9&/>B4ZfT[eb<J`H32Z<L?!RoechL,$J/Nlf_>P`!?\u.4H_"@URg4#mc>Pe/beU[Z5caOVV$fCuEXrm*2O4`sFAu::cDejri>%8eBc01,t'IAmIS3#*T7Fm;o%\uR^,\h<(@O%kM^Nd[$@`d$oOV6CTS&K(ZA]uc(:1ViaiJH#D\Mk7Taf9tlUl7EKe^NE4fSKb9=Xc!OHn*muF-]AB`t\)8r5(`m;G"NrClG[RcNn*E6n*pLUeD.;^CVn@@_pI<#lt\2Ik.3m:.u9U(sTULUVKgd,J0'?KYYCFRlg_;5ms(oa2k'qR'U7L6-HX]#>p=_+\7e(prK/,`u!!!i`tPu2I:1<)XDL:A5oPp5ZUhQ19uQ)Yp]lsS^!sf%cmA2d@r6cEo^%t=`4X!<J2%,'V"ODp@L'E[?FKQ,aALk;lrmLB9^]HV`uZ[6Vo-A+V0D9J"ucsAJ`8uZH9?rKS("9eOA*SW";.kY+g",O`n$_L&`cnFlZYgaZAP9C;7f6Ufb.%W-Le6<b7N$?gsXliWIf,bYnXmSa;C3QYO+OqHQ`((SWIG)OBFF"Sm)=h,,;,=mIRU%uHIf"`<+hR_'XT%+n6Z%GD4,-4V%63?V:pdqfP)*AVh[l;`JVE7V$>KisXI+JYBY*M&=$9U+mf(k\B::afFj!>7#n7=1R#0=*fi6.1#>pmaui)3.jZ(Sf2T<:et@;hL'g%]fO0\Ic&NapHVEh-X#P)jV+GAP^(lVR<d4=j*uCTd[@BTa+*8KlmdZ[8Nbec0J;=Ac\gi**GgB01&`Q<Yc7R2!`0^4fZg]ono1I>-oXDZI<HuOpX6WBYJ6W9/EN*C/J\N82,W$nn;/EL!]sl\cqBS3slmkK*K`VZ#\+3-*sc%CJjR%(C6&8>k4N5"@9Jm^Nt3HFG*kZKoRY'a^j>W=1qlSN+qO1mp-%]c2'NR_#**aH4=,_Ja514]`tXk^lNFDX<':k2*a,#!oTbM9)~>endstream
104
+ endobj
105
+ 15 0 obj
106
+ <<
107
+ /Filter [ /ASCII85Decode /FlateDecode ] /Length 1117
108
+ >>
109
+ stream
110
+ Gb"/$bDmN#&A7I5o[,QDiuLSAeK,B:""`@5%P6LXTf=X'"$U>m&GG]ojA;VZ@JC'O$m<gad8aIX9b)9'B;iT!')f88pO<T.XD#5D@GS,$qiMr/2pXEM>C!uW]8%+:A*gXaKu4A.%8.u5Z&#][@8io%<[Gbig@X^C#>B&+HLoMh[e)DqD!@SBlCL2="4R)uD?$I"48S3BeU[Z=cdrm!$f>kmf+3'i+u]A)RAh@GgR;NHf%<N)1OA'`77j:+ViJ-.O`fZJ"0#-EM-A\cfLY;l1QU0R/3-lu;IV^rZT'P3N7fN"M2^.34E3D0pSL82=`n\@P`b.1HMWe\SQK9]Q1At4Vm7=+B8P\s9HfJ80-%>EQ,Gc,`[IndN)19]P_*")b-^*s$aE#B(**:C&0O:=pC^Zk`$?LYd@@g.$9SJUZ5Yeh#Rm69aV/&"[#d:fN(dE63@i)cZqU@E&=(<OJi'HWNuWIlI*k&&c:)&Qj0_phYtjIR7[;++A2OND,<JF<Mh1r\fhAF05^pHa/aB&U7h0*qoqp)676#ilZ0@is:EOUR4"9hi;G"Y`eI%Ri7d1n>qPuA7"EabXnrT7.2i;NPG!S56RiFLV3*62]?$)Wt$K6X&.QReVBdYuU#f*0;7ufHpXAb.]p3V`gMM4-LRRcFR<CSG7"n0PZ5&`*r4@RWKamOt7WMXI4cdgNa+j*]^@6%XhO>")s*<fo<[D%goO=3\*d,ke;\be+tJBcToTZqFaim<gM"%!_`c1WjB+`fT??8ZC)B<AaCQppfS19*pud2<hA7*5F]1"`H2Kn>!p+Q6d6[)\U71>C8*,`Plccae.`iL&/?1!4<$2=E+X2;$"6YhCal$R*-YS5B1>r=u`I@4<@#p@N-;>"a4-[HrbmMIHr3H>jR(=LZX_.lBB;]KSbr(2u=[ObGXc,'7s>AH>(iZ[N2,U\amdYGg-I7;L=(4+4OfWM&j:k,Xf_1kWrL(7!I)"=&^FO-ZV>(bNP&>G09TUS(IEBFp^T/(^k-1@#jl('Pe!J`,b8-3*d7&7f#AX/@=88%A4okbrNl9ElPde_=*?R$M(RhDMOoXM8fcr&ib@YCZ!sE4lIYf>.%tpci!cX,"rI%FE@Lm,_,=~>endstream
111
+ endobj
112
+ 16 0 obj
113
+ <<
114
+ /Filter [ /ASCII85Decode /FlateDecode ] /Length 1119
115
+ >>
116
+ stream
117
+ Gb"/$bDmN#&A7I5o[,B?iuLSFeK/45%4pE?%\ha!Tf=X'%6eD"&GG]ojA;Uo@,qPD$m<gad8aIX9b)9'B;iT!&q/E\]2&M</)'E*=SHUbI\t0Qc1B3,<o.cYmU:gg(qZn[iGaEd_\*9&/>B4ZfT[eb<J`H32Z<L?!RoechL,$J/Nlf_>P`!?\u.4H_"@URg4#mc>Pe/beU[Z5caOVV$fCuEXrm*2O4`rN1K-Ym[l(uoXg+#2B(X(JMNUM5:*"';,4!/r#?%<j'",4OZ'!Pb?T_d"Z/fTs8;Z_ec/Q*h11lk$-SfFlnAOR]gm\YeAC\LF;F[7alKRb*m)/sXXH]%b5*bO!3D1X\@g[K,Ic6qGW?g=t2F^j:B8!Q]U(kNa;PjVY?\fF0Z/Fj/KE)>T^Qm.q-RK-;N98p7;;`nmOkn(Z6=Aa49qD@.TS:UH@q="sbZQ[7TOlj?K;_2@&>Vl$I,rZ'j,<%KEA$fK)m?YYNHI9X19+;s+KHr9);.=P=;1nJc=TsC#P.c*BMfQl3H?OKX>bj!.`)L&MG<h]Hhs+^g.A7cP"GeqWE,ta1J6i_diXk>+fH'1OGCc-^JTBJZ4#Xug#Uct_SHSXlD!Td<!XRF=4'&'83>Kj6N@nH3c_=DA=[aW[GPIV;CpU#e3"pVX"m<#06g8FnUYIQjsbnr:3K/*9/U!bIBKH%$W33^%En9^Jpb,ZmO/XQXS%j;LI=_nJi7ODc/"Ee#&L0>#&T)&'8MU,*"]-sBsrf%%[jphor:;f3,@'0_CWh_OAS`hNm>^"-;*tnN587X-kn5F!!sIrU-6g"Qe@tE+DJK/I*SRp%*,HhMc"(:Wd/O1WPM%nLXgj)>R9"7jb2p^m]WRc%8.#4ZDV&FdotJ+XCYK2:_[-\d"A+W_RbHh>,foCk4L/YZ[gMEN\%!2(SRlc.glVdRe:0@*nBG?H:?'_/R"?]g$,hK8HkY<1gdZgV&<6%[A^Gb,T&fMH*f,^_IrsFh#_`e*<hGF6%eCf=Li&*P$-E#[4(g#$Nrt,0)<h+Jfrgr?TgP43l8#>6:[=$A2<Z<X59ud`jGBTpTB)?B)S99i0WErH4=,_Ja514]`tXk^lNFDX<':k2*a,#!r49C9`~>endstream
118
+ endobj
119
+ xref
120
+ 0 17
121
+ 0000000000 65535 f
122
+ 0000000061 00000 n
123
+ 0000000102 00000 n
124
+ 0000000209 00000 n
125
+ 0000000321 00000 n
126
+ 0000000516 00000 n
127
+ 0000000711 00000 n
128
+ 0000000906 00000 n
129
+ 0000001101 00000 n
130
+ 0000001296 00000 n
131
+ 0000001365 00000 n
132
+ 0000001646 00000 n
133
+ 0000001730 00000 n
134
+ 0000002939 00000 n
135
+ 0000004148 00000 n
136
+ 0000005359 00000 n
137
+ 0000006568 00000 n
138
+ trailer
139
+ <<
140
+ /ID
141
+ [<6915625d773a06cbaf0a61363162f4fe><6915625d773a06cbaf0a61363162f4fe>]
142
+ % ReportLab generated PDF document -- digest (opensource)
143
+
144
+ /Info 10 0 R
145
+ /Root 9 0 R
146
+ /Size 17
147
+ >>
148
+ startxref
149
+ 7779
150
+ %%EOF
@@ -59,6 +59,8 @@ Wick.BannerPlacementManager = {
59
59
  Wick.BannerPlacementManager.hideBannerDueLimit(banner, index);
60
60
  Wick.BannerPlacementManager.moveBannerToSpecifiedPosition(banner);
61
61
  });
62
+
63
+ $(window).trigger('productBannerPositionChanged');
62
64
  },
63
65
  moveBannerToSpecifiedPosition(banner) {
64
66
  const $listSlots = Wick.BannerPlacementManager.getListSlots();
@@ -268,7 +270,21 @@ Wick.BannerPlacementManager = {
268
270
  window.dispatchEvent(sponsorAdsEvent);
269
271
  });
270
272
  },
271
- init() {
273
+ init(options = {}) {
274
+ if (options) {
275
+ $.extend(Wick.BannerPlacementManager.el, options);
276
+ }
277
+
278
+ Wick.BannerPlacementManager.el.$products = $(Wick.BannerPlacementManager.el.productCard);
279
+
280
+ const hasBanners = Wick.BannerPlacementManager.getBannersAmount();
281
+ const hasTopBanner = $(Wick.BannerPlacementManager.el.sponsorTopBanner).length;
282
+ const hasProducts = Wick.BannerPlacementManager.getProductsAmount();
283
+
284
+ if ((!hasBanners && !hasTopBanner) || !hasProducts) {
285
+ return;
286
+ }
287
+
272
288
  Wick.Responsive.onResize(function () {
273
289
  if (
274
290
  Wick.BannerPlacementManager.currentBreakpoint !==
@@ -285,21 +301,21 @@ Wick.BannerPlacementManager = {
285
301
  Wick.BannerPlacementManager.dispatchSponsorAdsDisplayedEvent();
286
302
  Wick.BannerPlacementManager.isEventSent = true;
287
303
  }
288
-
289
- $(window).trigger('productBannerPositionChanged');
290
304
  }
291
305
  });
292
306
  },
293
307
  };
294
308
 
295
309
  $(document).ready(function () {
296
- const hasBanners = Wick.BannerPlacementManager.getBannersAmount();
297
- const hasTopBanner = $(Wick.BannerPlacementManager.el.sponsorTopBanner).length;
298
- const hasProducts = Wick.BannerPlacementManager.getProductsAmount();
310
+ const isPackagePlp = $('.package-plp__cards').length > 0;
311
+ const options = {};
299
312
 
300
- if ((!hasBanners && !hasTopBanner) || !hasProducts) {
301
- return;
313
+ if (isPackagePlp) {
314
+ options.productCard = '.package-card';
315
+ options.productsWrap = '.package-plp__cards';
316
+ options.allListSlots = '.package-card, .card-product-banner, .card-sponsor-banner';
317
+ options.allBanners = '.card-product-banner, .card-sponsor-banner';
302
318
  }
303
319
 
304
- Wick.BannerPlacementManager.init();
320
+ Wick.BannerPlacementManager.init(options);
305
321
  });
@@ -0,0 +1,54 @@
1
+ var Wick = Wick || {};
2
+ Wick.ImageAccordion = (function () {
3
+ const CONFIG = {
4
+ animationDuration: 200,
5
+ collapsedText: 'See details',
6
+ expandedText: 'Hide details',
7
+ };
8
+
9
+ const SELECTORS = {
10
+ root: '.image-accordion',
11
+ toggler: '.image-accordion__header',
12
+ content: '.image-accordion__content',
13
+ headerText: '.image-accordion__header-text',
14
+ collapsedClass: 'image-accordion--collapsed',
15
+ };
16
+
17
+ function handleToggle(e) {
18
+ var $trigger = $(e.currentTarget);
19
+ var $accordion = $trigger.closest(SELECTORS.root);
20
+
21
+ if (!$accordion.length) {
22
+ return;
23
+ }
24
+
25
+ var $triggerSel = $(SELECTORS.toggler);
26
+
27
+ if (!$trigger.is($triggerSel)) {
28
+ return;
29
+ }
30
+
31
+ var $headerText = $accordion.find(SELECTORS.headerText);
32
+
33
+ $accordion.toggleClass(SELECTORS.collapsedClass);
34
+
35
+ $headerText.text(
36
+ $accordion.hasClass(SELECTORS.collapsedClass)
37
+ ? CONFIG.collapsedText
38
+ : CONFIG.expandedText
39
+ );
40
+
41
+ $accordion
42
+ .children(SELECTORS.content)
43
+ .stop(true, true)
44
+ .slideToggle(CONFIG.animationDuration);
45
+ }
46
+
47
+ function init() {
48
+ $(document)
49
+ .off('click.wickImageAccordion', SELECTORS.toggler)
50
+ .on('click.wickImageAccordion', SELECTORS.toggler, handleToggle);
51
+ }
52
+
53
+ init();
54
+ })();
@@ -33,11 +33,12 @@ Wick.VatToggle = {
33
33
 
34
34
  setSwitcherState: function (isToggled) {
35
35
  $(Wick.VatToggle.el.switchVatInput).attr('checked', isToggled);
36
+ $(Wick.VatToggle.el.switchVatInput).prop('checked', isToggled);
36
37
  },
37
38
 
38
39
  getSwitcherState: function () {
39
40
  if ($(Wick.VatToggle.el.switchVatInput).length) {
40
- return !!$(Wick.VatToggle.el.switchVatInput).attr('checked');
41
+ return !!$(Wick.VatToggle.el.switchVatInput).prop('checked');
41
42
  } else {
42
43
  return null;
43
44
  }
@@ -125,6 +126,12 @@ Wick.VatToggle = {
125
126
  },
126
127
 
127
128
  init: function () {
129
+ const switchVatInput = $(Wick.VatToggle.el.switchVatInput);
130
+
131
+ if (switchVatInput.length) {
132
+ switchVatInput.attr('autocomplete', 'off');
133
+ }
134
+
128
135
  const isVatShouldBeToggled = Wick.VatToggle.isOn();
129
136
  const isVatToggled = !!Wick.VatToggle.getSwitcherState();
130
137
 
@@ -0,0 +1,69 @@
1
+ var Wick = Wick || {};
2
+
3
+ Wick.PackageCards = (function () {
4
+ const SELECTORS = {
5
+ packageCard: '.package-card',
6
+ bannerCards: '.card-product-banner, .card-sponsor-banner, .card-bloomreach-media-banner',
7
+ packageCardStickers: '.package-card__stickers',
8
+ };
9
+
10
+ const CLASSES = {
11
+ stickersRow: 'has-stickers-row',
12
+ };
13
+
14
+ function formRows(cardsData) {
15
+ const rows = {};
16
+
17
+ $.each(cardsData, (_, item) => {
18
+ const topPosition = Math.round(item.$card.offset().top);
19
+
20
+ if (!rows[topPosition]) {
21
+ rows[topPosition] = [];
22
+ }
23
+ rows[topPosition].push(item);
24
+ });
25
+
26
+ return rows;
27
+ }
28
+
29
+ function alignGridRows() {
30
+ const gridItemsSelector = `${SELECTORS.packageCard}, ${SELECTORS.bannerCards}`;
31
+ const $cards = $(gridItemsSelector);
32
+
33
+ if (!$cards.length) return;
34
+
35
+ const cardsData = $.map($cards, (card) => ({
36
+ $card: $(card),
37
+ $stickers: $(card).find(SELECTORS.packageCardStickers),
38
+ }));
39
+
40
+ $.each(cardsData, (_, item) => {
41
+ item.$card.removeClass(CLASSES.stickersRow);
42
+ });
43
+
44
+ const rows = formRows(cardsData);
45
+
46
+ $.each(Object.values(rows), (_, rowItems) => {
47
+ const rowHasStickers = rowItems.some(
48
+ (item) => item.$stickers.length > 0 && item.$stickers.html().trim() !== ''
49
+ );
50
+
51
+ if (rowHasStickers) {
52
+ $.each(rowItems, (_, item) => {
53
+ item.$card.addClass(CLASSES.stickersRow);
54
+ });
55
+ }
56
+ });
57
+ }
58
+
59
+ $(document).ready(function () {
60
+ alignGridRows();
61
+ });
62
+
63
+ $(window).on('resize', _.debounce(alignGridRows, 50));
64
+ $(window).on('productBannerPositionChanged', alignGridRows);
65
+
66
+ return {
67
+ alignGridRows,
68
+ };
69
+ })();
@@ -0,0 +1,76 @@
1
+ var Wick = Wick || {};
2
+
3
+ Wick.StoreCardsAlign = (function () {
4
+ const SELECTORS = {
5
+ card: '.card-store',
6
+ info: '.card-store__info',
7
+ accordionHeader: '.opening-times-accordion__header',
8
+ };
9
+
10
+ let resizeTimeout;
11
+
12
+ function alignCardInfoHeights() {
13
+ const rows = [];
14
+
15
+ $(SELECTORS.card).each(function () {
16
+ const $card = $(this);
17
+ const top = $card.offset().top;
18
+
19
+ let row = rows.find((r) => Math.abs(r.top - top) < 5);
20
+
21
+ if (!row) {
22
+ row = { top: top, items: [] };
23
+ rows.push(row);
24
+ }
25
+
26
+ row.items.push($card);
27
+ });
28
+
29
+ rows.forEach((row) => {
30
+ let maxHeight = 0;
31
+
32
+ // reset
33
+ row.items.forEach(($card) => {
34
+ $card.find(SELECTORS.info).css('min-height', '');
35
+ });
36
+
37
+ // find max
38
+ row.items.forEach(($card) => {
39
+ const h = $card.find(SELECTORS.info).outerHeight();
40
+ if (h > maxHeight) maxHeight = h;
41
+ });
42
+
43
+ // apply
44
+ row.items.forEach(($card) => {
45
+ $card.find(SELECTORS.info).css('min-height', maxHeight + 'px');
46
+ });
47
+ });
48
+ }
49
+
50
+ function bindEvents() {
51
+ // load
52
+ $(window).on('load', alignCardInfoHeights);
53
+
54
+ // resize
55
+ $(window).on('resize', () => {
56
+ clearTimeout(resizeTimeout);
57
+ resizeTimeout = setTimeout(alignCardInfoHeights, 100);
58
+ });
59
+
60
+ // accordion
61
+ $(document).on('click', SELECTORS.accordionHeader, () => {
62
+ setTimeout(alignCardInfoHeights, 0);
63
+ });
64
+ }
65
+
66
+ function init() {
67
+ bindEvents();
68
+ }
69
+
70
+ init();
71
+
72
+ return {
73
+ init,
74
+ align: alignCardInfoHeights,
75
+ };
76
+ })();