wickes-css2 2.112.0-develop.4 → 2.112.0-develop.7

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 (66) hide show
  1. package/Readme.md +1 -1
  2. package/build/css/category-main.css +1 -1
  3. package/build/css/components/global-search.css +1 -1
  4. package/build/css/homepage-main.css +1 -1
  5. package/build/css/kitchen-plp-main.css +1 -1
  6. package/build/css/main.css +1 -1
  7. package/build/css/my-account-main-v2.css +1 -1
  8. package/build/css/my-account-main.css +1 -1
  9. package/build/css/pages/page_product-details-critical.css +1 -1
  10. package/build/css/pages/page_product-details.css +1 -1
  11. package/build/css/pdp-main-before-combine.css +1 -1
  12. package/build/css/pdp-main-critical.css +1 -1
  13. package/build/css/pdp-main-non-critical.css +1 -1
  14. package/build/css/pdp-main.css +1 -1
  15. package/build/css/plp-main.css +1 -1
  16. package/build/css/store-locator-main.css +1 -1
  17. package/build/js/basket.min.js +1 -1
  18. package/build/js/bloomreach-widget.min.js +1 -1
  19. package/build/js/emulation.min.js +664 -38
  20. package/build/js/page/basket-v2.js +29 -20
  21. package/build/js/page/bloomreach-widget/bloomreach-widget.js +250 -0
  22. package/build/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +205 -359
  23. package/build/js/page/bloomreach-widget/why-not-add-widget.js +198 -0
  24. package/package.json +1 -5
  25. package/src/components/bloomreach/complete-card.hbs +4 -32
  26. package/src/components/bloomreach/why-not-add-card-skeleton.hbs +14 -0
  27. package/src/components/bloomreach/why-not-add-card.hbs +73 -0
  28. package/src/components/bloomreach/why-not-add-content.hbs +41 -0
  29. package/src/components/bloomreach/why-not-add-skeleton.hbs +9 -0
  30. package/src/components/bloomreach/why-not-add.hbs +6 -0
  31. package/src/components/my-account/order.hbs +6 -1
  32. package/src/components/order-item.hbs +7 -7
  33. package/src/components/pdp-price-actions.hbs +2 -2
  34. package/src/components/potential-promotion.hbs +4 -4
  35. package/src/components/price-badges.hbs +12 -0
  36. package/src/components/price-block-v2.hbs +5 -12
  37. package/src/components/reviews-rating.hbs +22 -0
  38. package/src/components/share-list-modal-without-social-icons.hbs +2 -2
  39. package/src/components/share-list-modal.hbs +7 -3
  40. package/src/data/data_shopping-cart-v2.json +46 -2
  41. package/src/data/data_shopping-cart-with-energy.json +26 -2
  42. package/src/data/my-account/data_my-order.json +8 -0
  43. package/src/js/emulation/basket-data.js +312 -0
  44. package/src/js/emulation/bloomreach-widget-loading.js +2 -2
  45. package/src/js/emulation/mock.js +309 -0
  46. package/src/js/emulation/shopping-list.js +40 -49
  47. package/src/js/emulation/why-not-add-loading.js +11 -0
  48. package/src/js/emulation/why-not-add.js +28 -0
  49. package/src/js/page/basket-v2.js +29 -20
  50. package/src/js/page/bloomreach-widget/bloomreach-widget.js +250 -0
  51. package/src/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +205 -359
  52. package/src/js/page/bloomreach-widget/why-not-add-widget.js +198 -0
  53. package/src/page_product-details-bloomreach.html +1 -1
  54. package/src/page_product-details-with-global-search-v2.html +2 -1
  55. package/src/page_product-details-with-why-not-add-single.html +131 -0
  56. package/src/page_track-my-order-result.html +1 -0
  57. package/src/scss/components/_tradepro-discount-banner.scss +10 -14
  58. package/src/scss/components/bloomreach/_bloomreach.scss +3 -0
  59. package/src/scss/components/bloomreach/_complete-card.scss +0 -38
  60. package/src/scss/components/bloomreach/_reviews.scss +60 -0
  61. package/src/scss/components/bloomreach/_why-not-add-card.scss +223 -0
  62. package/src/scss/components/bloomreach/_why-not-add.scss +143 -0
  63. package/src/scss/components/global-search.scss +0 -6
  64. package/src/scss/pages/page_product-details-critical.scss +7 -0
  65. package/src/scss/pages/page_product-details.scss +7 -0
  66. package/src/sitemap.html +10 -4
@@ -0,0 +1,198 @@
1
+ var Wick = window.Wick || {};
2
+
3
+ import { createLoadingButton } from '../utils/create-loading-button';
4
+
5
+ const Handlebars = require('hbsfy/runtime');
6
+
7
+ Handlebars.registerPartial('loader', require('../../../elements/loader.hbs'));
8
+ Handlebars.registerPartial('button', require('../../../components/base/button.hbs'));
9
+ Handlebars.registerPartial(
10
+ 'bloomreach/why-not-add',
11
+ require('../../../components/bloomreach/why-not-add.hbs')
12
+ );
13
+ Handlebars.registerPartial(
14
+ 'bloomreach/why-not-add-skeleton',
15
+ require('../../../components/bloomreach/why-not-add-skeleton.hbs')
16
+ );
17
+ Handlebars.registerPartial(
18
+ 'bloomreach/why-not-add-card-skeleton',
19
+ require('../../../components/bloomreach/why-not-add-card-skeleton.hbs')
20
+ );
21
+ Handlebars.registerPartial(
22
+ 'bloomreach/why-not-add-card',
23
+ require('../../../components/bloomreach/why-not-add-card.hbs')
24
+ );
25
+ Handlebars.registerPartial('reviews-rating', require('../../../components/reviews-rating.hbs'));
26
+
27
+ const whyNotAddTemplate = require('../../../components/bloomreach/why-not-add-content.hbs');
28
+
29
+ const WhyNotAddWidget = {
30
+ ADD_TO_CART_EVENT: 'addToCart',
31
+
32
+ products: [],
33
+ sliders: [],
34
+ loadingButton: null,
35
+
36
+ el: {
37
+ cta: '.why-not-add-card__cta',
38
+ next: '[data-why-not-add-next]',
39
+ pagination: '[data-why-not-add-pagination]',
40
+ prev: '[data-why-not-add-prev]',
41
+ root: '[data-why-not-add]',
42
+ slider: '[data-why-not-add-slider]',
43
+ widgetContainer: '[data-why-not-add-widget]',
44
+ },
45
+
46
+ normalizeProducts(payloadData) {
47
+ return Wick.BloomreachWidget.normalizePayload(payloadData)
48
+ .map(function (item) {
49
+ return item.baseProduct || item;
50
+ })
51
+ .slice(0, 5);
52
+ },
53
+
54
+ renderWidget($container, payloadData) {
55
+ const products = WhyNotAddWidget.normalizeProducts(payloadData);
56
+
57
+ if (!products.length) {
58
+ $container.empty().hide();
59
+ return;
60
+ }
61
+
62
+ WhyNotAddWidget.products = products;
63
+
64
+ $container
65
+ .html(
66
+ whyNotAddTemplate({
67
+ products: products.map(Wick.BloomreachWidget.getProductRenderData),
68
+ isSingleProduct: products.length === 1,
69
+ })
70
+ )
71
+ .show();
72
+ },
73
+
74
+ destroySliders() {
75
+ WhyNotAddWidget.sliders.forEach(function (slider) {
76
+ if (slider && slider.destroy) {
77
+ slider.destroy(true, true);
78
+ }
79
+ });
80
+
81
+ WhyNotAddWidget.sliders = [];
82
+ },
83
+
84
+ initSliders($root) {
85
+ WhyNotAddWidget.destroySliders();
86
+
87
+ $root.find(WhyNotAddWidget.el.slider).each(function () {
88
+ const $slider = $(this);
89
+ const $widget = $slider.closest(WhyNotAddWidget.el.root);
90
+ const slidesCount = $slider.find('.swiper-slide').length;
91
+
92
+ if (slidesCount <= 1) {
93
+ return;
94
+ }
95
+
96
+ const slider = new Swiper(this, {
97
+ roundLengths: true,
98
+ slidesPerView: 1,
99
+ spaceBetween: 12,
100
+ watchOverflow: true,
101
+ navigation: {
102
+ nextEl: $widget.find(WhyNotAddWidget.el.next)[0],
103
+ prevEl: $widget.find(WhyNotAddWidget.el.prev)[0],
104
+ disabledClass: 'why-not-add__arrow--disabled',
105
+ },
106
+ pagination: {
107
+ el: $widget.find(WhyNotAddWidget.el.pagination)[0],
108
+ clickable: true,
109
+ renderBullet(index, className) {
110
+ return `<button class="${className}" type="button" aria-label="Go to slide ${
111
+ index + 1
112
+ }"></button>`;
113
+ },
114
+ bulletClass: 'why-not-add__pagination-item',
115
+ bulletActiveClass: 'why-not-add__pagination-item--active',
116
+ },
117
+ });
118
+
119
+ WhyNotAddWidget.sliders.push(slider);
120
+ });
121
+ },
122
+ bindAddToCart($root) {
123
+ $root.off('click.whyNotAdd', WhyNotAddWidget.el.cta);
124
+ $root.on('click.whyNotAdd', WhyNotAddWidget.el.cta, function (event) {
125
+ event.preventDefault();
126
+
127
+ const $button = $(this);
128
+ const $card = $button.closest('.why-not-add-card');
129
+ const productCode = $card.attr('data-product-code');
130
+
131
+ if (!productCode || WhyNotAddWidget.loadingButton.isLoading($button)) {
132
+ return;
133
+ }
134
+
135
+ const payload = {
136
+ productCode,
137
+ };
138
+
139
+ WhyNotAddWidget.loadingButton.start($button);
140
+
141
+ Wick.BloomreachWidget.dispatchWidgetEvent(WhyNotAddWidget.ADD_TO_CART_EVENT, payload)
142
+ .then(function () {
143
+ WhyNotAddWidget.loadingButton.stop($button);
144
+ Wick.MiniBasketSliderFE.isMiniBasketLoaded = false;
145
+ })
146
+ .catch(function () {
147
+ WhyNotAddWidget.loadingButton.stop($button);
148
+ });
149
+ });
150
+ },
151
+
152
+ bindVatToggle() {
153
+ if (Wick.BloomreachWidget.bindVatToggle) {
154
+ Wick.BloomreachWidget.bindVatToggle('whyNotAddVatToggle');
155
+ }
156
+ },
157
+
158
+ initRenderedWidget($container) {
159
+ const $root = $container.find(WhyNotAddWidget.el.root);
160
+
161
+ if (!$root.length) {
162
+ return;
163
+ }
164
+
165
+ if (!WhyNotAddWidget.loadingButton) {
166
+ WhyNotAddWidget.loadingButton = createLoadingButton({
167
+ text: Wick.BloomreachWidget.el.loadingButtonText,
168
+ loader: Wick.BloomreachWidget.el.loadingButtonLoader,
169
+ });
170
+ }
171
+
172
+ Wick.BloomreachWidget.removeBlankTargets($root);
173
+
174
+ Wick.BloomreachWidget.drawRating($root);
175
+ WhyNotAddWidget.initSliders($root);
176
+ WhyNotAddWidget.bindAddToCart($root);
177
+ WhyNotAddWidget.bindVatToggle();
178
+ Wick.BloomreachWidget.reapplyVatDisplay();
179
+ },
180
+
181
+ init(payloadData) {
182
+ const $containers = $(WhyNotAddWidget.el.widgetContainer);
183
+
184
+ if (!payloadData) {
185
+ $containers.empty().hide();
186
+ return;
187
+ }
188
+
189
+ $containers.each(function () {
190
+ const $container = $(this);
191
+
192
+ WhyNotAddWidget.renderWidget($container, payloadData);
193
+ WhyNotAddWidget.initRenderedWidget($container);
194
+ });
195
+ },
196
+ };
197
+
198
+ export default WhyNotAddWidget;
@@ -70,7 +70,7 @@ switch-vat=true
70
70
  <div
71
71
  class="pdp__widget"
72
72
  data-complete-widget
73
- data-context-key="completeYourProject2Recomendations"
73
+ data-mock-key="completeYourProject2Recomendations"
74
74
  >
75
75
  {{> bloomreach/complete-your-project title="Complete your project"}}
76
76
  </div>
@@ -63,6 +63,7 @@ switch-vat=true
63
63
  sample=true
64
64
  cc=true
65
65
  delivery=true
66
+ mockDataKey="whyNotAddRecommendations"
66
67
  }}
67
68
  </div>
68
69
  <div class="pdp__description">
@@ -71,7 +72,7 @@ switch-vat=true
71
72
  <div
72
73
  class="pdp__widget"
73
74
  data-complete-widget
74
- data-context-key="completeYourProject3Recomendations"
75
+ data-mock-key="completeYourProject3Recomendations"
75
76
  >
76
77
  {{> bloomreach/complete-your-project title="Complete your project"}}
77
78
  </div>
@@ -0,0 +1,131 @@
1
+ {{#extend "base" pageClass="page-product-details" title="Product details page new"
2
+ isDiscount=true
3
+ isSQM=true
4
+ isDescription=true
5
+ isCashback=false
6
+ isSize=true
7
+ isGuide=true
8
+ hourly-delivery=true
9
+ badge-text='15% off'
10
+ badge-color='yellow'
11
+ badge-text-color='gray'
12
+ currentlyInStock=true
13
+ pagePdp=true
14
+ globalSearchV2="true"
15
+ switch-vat=true
16
+ }}
17
+ {{#content "head" mode="append" pagePdp=true}}
18
+ <link type="text/css" rel="stylesheet" href="./css/components/global-search.css">
19
+ {{/content}}
20
+ {{#content "body"}}
21
+ <main class="pdp__main">
22
+ <div class="container">
23
+ <div class="pdp">
24
+ <div class="pdp__title">
25
+ <h1 class="pdp__heading">Bosch PSB 1800 LI-2 18V Li-Ion Cordless Combi Drill Example with long
26
+ title in two raws
27
+ </h1>
28
+ <div class="pdp__reviews_small">
29
+ <span class="product-code product-code-v2">Product code: <strong id="product-code-val">236334</strong></span>
30
+ <div class="product-card__reviews review-star">
31
+ <div class="product-rating product-rating-v2">
32
+ <div class="rating-bg">
33
+ <i class="fa fa-star" aria-hidden="true"></i>
34
+ <i class="fa fa-star" aria-hidden="true"></i>
35
+ <i class="fa fa-star" aria-hidden="true"></i>
36
+ <i class="fa fa-star" aria-hidden="true"></i>
37
+ <i class="fa fa-star" aria-hidden="true"></i>
38
+ <div class="rating-overlay"
39
+ data-rating="{{#if review-rating}}{{review-rating}}{{else}}0{{/if}}">
40
+ <i class="fa fa-star" aria-hidden="true"></i>
41
+ <i class="fa fa-star" aria-hidden="true"></i>
42
+ <i class="fa fa-star" aria-hidden="true"></i>
43
+ <i class="fa fa-star" aria-hidden="true"></i>
44
+ <i class="fa fa-star" aria-hidden="true"></i>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ <span class="review-star-average review-star-average-v2">(4.6)</span>
49
+ </div>
50
+ <span class="pdp__reviews-link-wrap"><a href="#" data-link="#pdp-reviews" id="open-review">82 reviews</a></span>
51
+ </div>
52
+ </div>
53
+
54
+ <div class="pdp__gallery">
55
+ {{> gallery-pdp-v2 }}
56
+ </div>
57
+ <div class="pdp__aside">
58
+ {{> price-block-v2
59
+ isProductSaved=false
60
+ isUserLogedOut=true
61
+ install=true
62
+ sample=true
63
+ cc=true
64
+ delivery=true
65
+ mockDataKey="whyNotAddRecommendationsSingle"
66
+ }}
67
+ </div>
68
+ <div class="pdp__description">
69
+ {{> product-main-info-v2 isProductSaved=true}}
70
+ </div>
71
+ <div
72
+ class="pdp__widget"
73
+ data-complete-widget
74
+ data-mock-key="completeYourProject3Recomendations"
75
+ >
76
+ {{> bloomreach/complete-your-project title="Complete your project"}}
77
+ </div>
78
+ {{> fulfilment-accordions }}
79
+ </div>
80
+ </div>
81
+ <div class="container container-info">
82
+ <div class="pdp">
83
+ <div class="pdp__info">
84
+ {{> pdp-info-v2 }}
85
+ </div>
86
+ </div>
87
+ </div>
88
+ {{> recently-viewed }}
89
+
90
+ {{> similar-products-v2 }}
91
+
92
+ {{> seo-widgets title="More products" }}
93
+ {{> seo-widgets title="Related category" }}
94
+ </main>
95
+ {{/content}}
96
+ {{#content "foot" mode="append"}}
97
+ <script type="text/html" id="mini-basket-popup">
98
+ {{> popover-mini-basket mod="popover-mini-basket_just-added" products=mini-basket.just-added just-added=true}}
99
+ </script>
100
+ <script defer src="./js/page/pdp.js"></script>
101
+ <script defer src="./js/global-search.min.js"></script>
102
+ {{#extend "modal" id="modal-pdp-feedback" title="Feedback Form" fullWidth=true}}
103
+ {{#content "body"}}
104
+ <iframe class="cboxIframe" name="cbox1538824723052"
105
+ src="https://docs.google.com/forms/d/1jHV5b8AazYbPmoTXJBxmyns4AcRhtKnnIC4_K_MFOPU/viewform?entry.1452922942=Wickes+Blue+Slate+Chippings+-+Major+Bag&amp;entry.1885983523=Decorative+Uk+sourced+blue+slate+chippings+are+ideal+for+gardens+and+borders.+This+beautiful+stone+changes+colour+when+wet.&amp;entry.935962220=112777&amp;entry.474385230=1000626184"></iframe>
106
+ {{/content}}
107
+ {{/extend}}
108
+ {{> click-and-collect-modal}}
109
+ {{/content}}
110
+ {{/extend}}
111
+ <!--<script defer src="./js/components/badge-cashback.js"></script>-->
112
+ <script>
113
+ if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {
114
+ $(document).ready(function () {
115
+ $('.modal').on('scroll', function () {
116
+ $(':focus').blur();
117
+ });
118
+ });
119
+ }
120
+
121
+ $(document).ready(function () {
122
+
123
+ $('#info-details').toggleClass('accordion_collapsed');
124
+ $('#details-content').css('display', 'block');
125
+
126
+ $('#open-review').on('click', function () {
127
+ $('#info-review').toggleClass('accordion_collapsed');
128
+ $('#review-content').css('display', 'block');
129
+ })
130
+ })
131
+ </script>
@@ -7,6 +7,7 @@ pageMyAcc=true
7
7
  myAccV2=true
8
8
  isLoggedIn=true
9
9
  mainClass="track-order"
10
+ switch-vat=true
10
11
  }}
11
12
  {{#content "head" mode="append"}}
12
13
  <link type="text/css" rel="stylesheet" href="./css/pages/page_my-order.css">
@@ -3,6 +3,8 @@
3
3
  z-index: $offer-banner;
4
4
  width: 100%;
5
5
  background-color: $blue;
6
+ font-size: 12px;
7
+ line-height: 1.375rem;
6
8
  color: $white;
7
9
 
8
10
  &.stuck {
@@ -55,23 +57,17 @@
55
57
  }
56
58
  }
57
59
 
58
- .global-search {
60
+ @include media-breakpoint-up(md) {
59
61
  .tradepro-discount-banner {
60
- position: absolute;
61
- top: 0;
62
- left: 0;
63
- right: 0;
62
+ font-size: 14px;
64
63
  }
65
- }
66
-
67
- @media screen and (max-width: 370px) {
68
- .tradepro-discount-banner {
69
- &__content {
70
- padding: 4px 20px 4px 10px;
71
- }
72
64
 
73
- &__link-text {
74
- font-size: 12px;
65
+ .global-search {
66
+ .tradepro-discount-banner {
67
+ position: absolute;
68
+ top: 0;
69
+ left: 0;
70
+ right: 0;
75
71
  }
76
72
  }
77
73
  }
@@ -1,3 +1,6 @@
1
1
  @import 'complete-your-project';
2
2
  @import 'complete-card';
3
3
  @import 'complete-card-dropdown';
4
+ @import 'why-not-add';
5
+ @import 'why-not-add-card';
6
+ @import 'reviews';
@@ -92,44 +92,6 @@
92
92
  }
93
93
  }
94
94
 
95
- &__reviews {
96
- display: flex;
97
- align-items: center;
98
- font-size: 0.75rem;
99
- margin-bottom: 8px;
100
-
101
- &-count {
102
- display: inline-block;
103
- margin-left: 6px;
104
- }
105
-
106
- .rating-bg {
107
- color: $gray;
108
- position: relative;
109
-
110
- .fa-star {
111
- margin-right: 0;
112
- }
113
- }
114
-
115
- .rating-overlay {
116
- color: $yellow;
117
- position: absolute;
118
- left: 0;
119
- top: 0;
120
- display: flex;
121
- }
122
-
123
- .star-overlay {
124
- display: inline-block;
125
- overflow: hidden;
126
-
127
- & + .star-overlay {
128
- margin-left: 3.3px;
129
- }
130
- }
131
- }
132
-
133
95
  &__count-stepper {
134
96
  margin-top: 0;
135
97
  margin-bottom: 12px;
@@ -0,0 +1,60 @@
1
+ .reviews {
2
+ display: flex;
3
+ align-items: center;
4
+ font-size: 0.75rem;
5
+ margin-bottom: 8px;
6
+
7
+ &-count {
8
+ @include font-size(12);
9
+ @include line-height(16);
10
+ color: $warm-grey;
11
+ display: inline-block;
12
+ margin-left: 3px;
13
+ }
14
+
15
+ .rating-bg {
16
+ color: $gray;
17
+ position: relative;
18
+
19
+ .fa-star {
20
+ margin-right: 0;
21
+ }
22
+ }
23
+
24
+ .rating-overlay {
25
+ color: $yellow;
26
+ position: absolute;
27
+ left: 0;
28
+ top: 0;
29
+ display: flex;
30
+ }
31
+
32
+ .star-overlay {
33
+ display: inline-block;
34
+ overflow: hidden;
35
+
36
+ & + .star-overlay {
37
+ margin-left: 3.3px;
38
+ }
39
+ }
40
+
41
+ }
42
+
43
+ .why-not-add {
44
+
45
+ .reviews {
46
+ margin-bottom: 7px;
47
+
48
+ .rating-bg {
49
+ .fa-star {
50
+ @include font-size(8.4);
51
+ }
52
+ }
53
+
54
+ .star-overlay {
55
+ & + .star-overlay {
56
+ margin-left: 3px;
57
+ }
58
+ }
59
+ }
60
+ }