wickes-css2 2.111.0-develop.5 → 2.111.0-dont-forget-widget.2

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 (54) hide show
  1. package/Readme.md +1 -1
  2. package/build/css/pdp-main-before-combine.css +1 -1
  3. package/build/css/pdp-main-non-critical.css +1 -1
  4. package/build/css/pdp-main.css +1 -1
  5. package/build/js/basket.min.js +1 -1
  6. package/build/js/bloomreach-widget.min.js +1 -1
  7. package/build/js/bundle.min.js +1 -1
  8. package/build/js/checkout.min.js +1 -1
  9. package/build/js/emulation.min.js +689 -54
  10. package/build/js/general.bundle.min.js +1 -1
  11. package/build/js/merged-checkout.min.js +1 -1
  12. package/build/js/page/bloomreach-widget/bloomreach-recommendation-carousel-widget.js +223 -0
  13. package/build/js/page/bloomreach-widget/bloomreach-widget.js +319 -0
  14. package/build/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +214 -387
  15. package/build/js/page/bloomreach-widget/dont-forget-widget.js +33 -0
  16. package/build/js/page/bloomreach-widget/why-not-add-widget.js +30 -0
  17. package/build/js/pdp.bundle.min.js +1 -1
  18. package/build/js/plp.bundle.min.js +1 -1
  19. package/build/js/project-list.min.js +1 -1
  20. package/package.json +1 -1
  21. package/src/components/bloomreach/complete-card.hbs +4 -32
  22. package/src/components/bloomreach/complete-your-project-skeleton.hbs +21 -0
  23. package/src/components/bloomreach/complete-your-project.hbs +4 -21
  24. package/src/components/bloomreach/why-not-add-card-skeleton.hbs +14 -0
  25. package/src/components/bloomreach/why-not-add-card.hbs +86 -0
  26. package/src/components/bloomreach/why-not-add-content.hbs +41 -0
  27. package/src/components/bloomreach/why-not-add-skeleton.hbs +9 -0
  28. package/src/components/bloomreach/why-not-add.hbs +4 -0
  29. package/src/components/pdp-price-actions.hbs +2 -2
  30. package/src/components/price-block-v2.hbs +2 -0
  31. package/src/components/reviews-rating.hbs +22 -0
  32. package/src/js/components/general/cart-slider.js +5 -0
  33. package/src/js/emulation/bloomreach-widget-loading.js +2 -2
  34. package/src/js/emulation/complete-your-project-loading.js +16 -0
  35. package/src/js/emulation/dont-forget-loading.js +18 -0
  36. package/src/js/emulation/mock.js +611 -3
  37. package/src/js/emulation/why-not-add-loading.js +16 -0
  38. package/src/js/emulation/why-not-add.js +28 -0
  39. package/src/js/page/bloomreach-widget/bloomreach-recommendation-carousel-widget.js +223 -0
  40. package/src/js/page/bloomreach-widget/bloomreach-widget.js +319 -0
  41. package/src/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +214 -387
  42. package/src/js/page/bloomreach-widget/dont-forget-widget.js +33 -0
  43. package/src/js/page/bloomreach-widget/why-not-add-widget.js +30 -0
  44. package/src/page_product-details-bloomreach.html +1 -1
  45. package/src/page_product-details-with-global-search-v2.html +2 -1
  46. package/src/page_product-details-with-why-not-add-single.html +131 -0
  47. package/src/scss/components/bloomreach/_bloomreach.scss +3 -0
  48. package/src/scss/components/bloomreach/_complete-card.scss +0 -38
  49. package/src/scss/components/bloomreach/_reviews.scss +60 -0
  50. package/src/scss/components/bloomreach/_why-not-add-card.scss +270 -0
  51. package/src/scss/components/bloomreach/_why-not-add.scss +172 -0
  52. package/src/sitemap.html +10 -4
  53. package/src/components/.DS_Store +0 -0
  54. package/src/js/page/.DS_Store +0 -0
@@ -0,0 +1,33 @@
1
+ import { createBloomreachRecommendationCarouselWidget } from './bloomreach-recommendation-carousel-widget';
2
+
3
+ const Handlebars = require('hbsfy/runtime');
4
+
5
+ Handlebars.registerPartial('loader', require('../../../elements/loader.hbs'));
6
+ Handlebars.registerPartial('button', require('../../../components/base/button.hbs'));
7
+ Handlebars.registerPartial(
8
+ 'bloomreach/why-not-add-card',
9
+ require('../../../components/bloomreach/why-not-add-card.hbs')
10
+ );
11
+ Handlebars.registerPartial(
12
+ 'bloomreach/why-not-add-card-skeleton',
13
+ require('../../../components/bloomreach/why-not-add-card-skeleton.hbs')
14
+ );
15
+ Handlebars.registerPartial('reviews-rating', require('../../../components/reviews-rating.hbs'));
16
+
17
+ const template = require('../../../components/bloomreach/why-not-add-content.hbs');
18
+ const skeletonTemplate = require('../../../components/bloomreach/why-not-add-skeleton.hbs');
19
+
20
+ const DontForgetWidget = createBloomreachRecommendationCarouselWidget({
21
+ namespace: 'dontForget',
22
+ title: 'Don’t forget',
23
+ modifier: 'why-not-add--dont-forget',
24
+ widgetContainer: '[data-dont-forget-widget]',
25
+ template,
26
+ skeletonTemplate,
27
+ disableAfterSuccess: true,
28
+ disableAfterFailure: true,
29
+ successIcon: 'fas fa-check',
30
+ addToCartError: 'Product has not been added to basket',
31
+ });
32
+
33
+ export default DontForgetWidget;
@@ -0,0 +1,30 @@
1
+ import { createBloomreachRecommendationCarouselWidget } from './bloomreach-recommendation-carousel-widget';
2
+
3
+ const Handlebars = require('hbsfy/runtime');
4
+
5
+ Handlebars.registerPartial('loader', require('../../../elements/loader.hbs'));
6
+ Handlebars.registerPartial('button', require('../../../components/base/button.hbs'));
7
+ Handlebars.registerPartial(
8
+ 'bloomreach/why-not-add-card',
9
+ require('../../../components/bloomreach/why-not-add-card.hbs')
10
+ );
11
+ Handlebars.registerPartial(
12
+ 'bloomreach/why-not-add-card-skeleton',
13
+ require('../../../components/bloomreach/why-not-add-card-skeleton.hbs')
14
+ );
15
+ Handlebars.registerPartial('reviews-rating', require('../../../components/reviews-rating.hbs'));
16
+
17
+ const template = require('../../../components/bloomreach/why-not-add-content.hbs');
18
+ const skeletonTemplate = require('../../../components/bloomreach/why-not-add-skeleton.hbs');
19
+
20
+ const WhyNotAddWidget = createBloomreachRecommendationCarouselWidget({
21
+ namespace: 'whyNotAdd',
22
+ title: 'Why not add',
23
+ widgetContainer: '[data-why-not-add-widget]',
24
+ template,
25
+ skeletonTemplate,
26
+ disableAfterSuccess: false,
27
+ disableAfterFailure: false,
28
+ });
29
+
30
+ 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>
@@ -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
+ }
@@ -0,0 +1,270 @@
1
+ .why-not-add-card {
2
+ display: flex;
3
+ gap: 8px;
4
+ padding: 12px;
5
+ border: 1px solid $gray-border;
6
+ border-radius: 4px;
7
+ background-color: $white;
8
+ position: relative;
9
+
10
+ &__image {
11
+ display: block;
12
+ width: 68px;
13
+ height: 68px;
14
+ object-fit: cover;
15
+ }
16
+
17
+ &__content {
18
+ display: flex;
19
+ flex: 1 1 auto;
20
+ flex-direction: column;
21
+ gap: 2px;
22
+ min-width: 0;
23
+ }
24
+
25
+ &__title {
26
+ @include font-size(14);
27
+ @include line-height(22);
28
+
29
+ display: -webkit-box;
30
+ overflow: hidden;
31
+ color: $blue;
32
+ font-weight: 500;
33
+ text-decoration: none;
34
+ -webkit-box-orient: vertical;
35
+ -webkit-line-clamp: 2;
36
+
37
+ &:hover {
38
+ color: $blue-darker;
39
+ text-decoration: underline;
40
+ }
41
+ }
42
+
43
+ &__bottom {
44
+ display: flex;
45
+ align-items: flex-start;
46
+ justify-content: space-between;
47
+ }
48
+
49
+ &__price-wrap {
50
+ display: flex;
51
+ flex-wrap: wrap;
52
+ align-items: baseline;
53
+ min-width: 0;
54
+ padding-right: 8px;
55
+ gap: 4px;
56
+ }
57
+
58
+ &__price {
59
+ display: flex;
60
+ flex-wrap: wrap;
61
+ align-items: flex-end;
62
+ gap: 5px;
63
+ }
64
+
65
+ &__was-price {
66
+ @include font-size(14);
67
+ @include line-height(15);
68
+
69
+ color: $warm-grey;
70
+ font-weight: 500;
71
+ text-decoration: line-through;
72
+ white-space: nowrap;
73
+ }
74
+
75
+ &__regular-price,
76
+ &__sale-price {
77
+ @include font-size(18);
78
+ @include line-height(18);
79
+
80
+ color: $blue-dark;
81
+ font-weight: 700;
82
+ white-space: nowrap;
83
+ }
84
+
85
+ &__sale-price {
86
+ color: $red;
87
+ }
88
+
89
+ &__vat-label,
90
+ &__delivery {
91
+ @include font-size(12);
92
+ @include line-height(15);
93
+
94
+ color: $squant;
95
+ }
96
+
97
+ &__vat-label {
98
+ color: $blue-dark;
99
+ font-weight: $headings-font-weight;
100
+ }
101
+
102
+ &__delivery {
103
+ width: 100%;
104
+ }
105
+
106
+ .btn {
107
+ display: flex;
108
+ align-self: flex-end;
109
+ align-items: center;
110
+ justify-content: center;
111
+ min-width: 40px;
112
+ width: 40px;
113
+ height: 40px;
114
+ box-sizing: border-box;
115
+ border: 1px solid $green;
116
+ border-radius: 3px;
117
+ background-color: $green;
118
+ color: $white;
119
+ cursor: pointer;
120
+
121
+ &:hover {
122
+ background-color: $white;
123
+ color: $green;
124
+ }
125
+
126
+ &--loading {
127
+ background-color: $green;
128
+ color: $white;
129
+ pointer-events: none;
130
+ }
131
+ }
132
+
133
+ &__cta-icon {
134
+ font-size: 18px;
135
+ }
136
+
137
+ &__loader {
138
+ .loader-path {
139
+ stroke: $white;
140
+ }
141
+ }
142
+
143
+ &--skeleton {
144
+ display: grid;
145
+ grid-template-columns: 68px minmax(0, 1fr) 40px;
146
+ grid-template-rows: 14px 14px 12px 18px 15px;
147
+ gap: 6px 8px;
148
+ align-items: start;
149
+
150
+ .why-not-add-card {
151
+ &__image {
152
+ grid-column: 1;
153
+ grid-row: 1 / 6;
154
+ width: 68px;
155
+ height: 68px;
156
+ }
157
+
158
+ &__skeleton {
159
+ &-title {
160
+ grid-column: 2 / 4;
161
+ grid-row: 1;
162
+ width: 80%;
163
+ height: 14px;
164
+ }
165
+
166
+ &-title-short {
167
+ grid-column: 2 / 3;
168
+ grid-row: 2;
169
+ width: 55%;
170
+ height: 14px;
171
+ }
172
+
173
+ &-reviews {
174
+ grid-column: 2 / 3;
175
+ grid-row: 3;
176
+ width: 82px;
177
+ height: 12px;
178
+ }
179
+
180
+ &-price {
181
+ grid-column: 2 / 3;
182
+ grid-row: 4;
183
+ width: 64px;
184
+ height: 18px;
185
+ }
186
+
187
+ &-delivery {
188
+ grid-column: 2 / 3;
189
+ grid-row: 5;
190
+ width: 92px;
191
+ height: 12px;
192
+ }
193
+
194
+ &-cta {
195
+ grid-column: 3;
196
+ grid-row: 4 / 6;
197
+ align-self: end;
198
+ width: 40px;
199
+ height: 40px;
200
+ border-radius: 3px;
201
+ }
202
+ }
203
+ }
204
+ }
205
+
206
+ &__badge {
207
+ @include font-size(12);
208
+ @include line-height(16);
209
+
210
+ position: absolute;
211
+ top: 0;
212
+ right: 0;
213
+ z-index: $label-z-index;
214
+ max-width: calc(100% - 52px);
215
+ padding: 4px 10px;
216
+ border-top-right-radius: 3px;
217
+ font-weight: 700;
218
+ text-align: center;
219
+ white-space: normal;
220
+ }
221
+
222
+ &__error {
223
+ @include font-size(12);
224
+ @include line-height(16);
225
+
226
+ width: 100%;
227
+ color: $red;
228
+ }
229
+
230
+ &--added {
231
+ .btn {
232
+ opacity: 1;
233
+ pointer-events: none;
234
+ cursor: default;
235
+
236
+ &:hover {
237
+ background-color: $green;
238
+ color: $white;
239
+ }
240
+ }
241
+ }
242
+
243
+ &--failed {
244
+ .btn {
245
+ opacity: 1;
246
+ pointer-events: none;
247
+ cursor: default;
248
+ background-color: $warm-grey;
249
+ border-color: $warm-grey;
250
+ color: $white;
251
+ }
252
+ }
253
+ }
254
+
255
+ .why-not-add--dont-forget {
256
+ .why-not-add-card {
257
+ &__badge + .why-not-add-card__image,
258
+ &__badge ~ .why-not-add-card__content {
259
+ margin-top: 16px;
260
+ }
261
+ }
262
+ }
263
+
264
+ @media screen and (max-width: 375px) {
265
+ .why-not-add-card {
266
+ &__vat-label {
267
+ width: 100%;
268
+ }
269
+ }
270
+ }