wickes-css2 2.105.0-develop.3 → 2.105.0-gift-cards.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 (64) hide show
  1. package/Readme.md +1 -1
  2. package/build/css/components/checkout-payment-details-v2.css +1 -1
  3. package/build/css/pages/checkout-new.css +1 -1
  4. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  5. package/build/img/giftcard.svg +28 -0
  6. package/build/js/account-members.min.js +1 -1
  7. package/build/js/add-project-list-id.min.js +1 -1
  8. package/build/js/address-book.min.js +1 -1
  9. package/build/js/basket.min.js +2 -2
  10. package/build/js/bundle.min.js +1 -1
  11. package/build/js/change-password.min.js +1 -1
  12. package/build/js/checkout.min.js +2 -2
  13. package/build/js/emulation.min.js +291 -16
  14. package/build/js/general.bundle.min.js +1 -1
  15. package/build/js/gift-cards.min.js +1 -0
  16. package/build/js/merged-checkout.min.js +2 -2
  17. package/build/js/page/basket-v2.js +2 -0
  18. package/build/js/page/components/billie-modal.js +31 -0
  19. package/build/js/page/components/gift-cards.js +915 -0
  20. package/build/js/page/components/order-summary.js +42 -25
  21. package/build/js/page/components/toggle-password-visibility.js +22 -0
  22. package/build/js/page/utils/gift-cards-utils.js +188 -0
  23. package/build/js/page/utils/input-handling.js +92 -0
  24. package/build/js/page/utils/show-hide-input.js +28 -0
  25. package/build/js/page/utils/validation.js +46 -1
  26. package/build/js/pdp.bundle.min.js +1 -1
  27. package/build/js/personal-details.min.js +1 -1
  28. package/build/js/plp.bundle.min.js +1 -1
  29. package/build/js/project-list.min.js +44 -1
  30. package/build/js/quiz.min.js +1 -1
  31. package/build/js/track-my-order.min.js +1 -1
  32. package/package.json +2 -2
  33. package/src/components/checkout-payment-details-v2.hbs +3 -2
  34. package/src/components/gift-cards-hint.hbs +9 -0
  35. package/src/components/gift-cards.hbs +90 -0
  36. package/src/components/giftcard-chip.hbs +23 -0
  37. package/src/components/giftcard-summary.hbs +6 -0
  38. package/src/elements/form-row.hbs +1 -1
  39. package/src/elements/input.hbs +31 -2
  40. package/src/img/giftcard.svg +28 -0
  41. package/src/js/components/general/notification.js +2 -1
  42. package/src/js/components/pdp-billie-modal-scroll-reset.js +53 -0
  43. package/src/js/emulation/billie-modal.js +17 -0
  44. package/src/js/emulation/checkout-data.js +35 -0
  45. package/src/js/emulation/checkout-payment-details.js +25 -16
  46. package/src/js/emulation/forms.js +7 -0
  47. package/src/js/emulation/gift-cards.js +205 -0
  48. package/src/js/page/basket-v2.js +2 -0
  49. package/src/js/page/components/billie-modal.js +31 -0
  50. package/src/js/page/components/gift-cards.js +915 -0
  51. package/src/js/page/components/order-summary.js +42 -25
  52. package/src/js/page/components/toggle-password-visibility.js +22 -0
  53. package/src/js/page/utils/gift-cards-utils.js +188 -0
  54. package/src/js/page/utils/input-handling.js +92 -0
  55. package/src/js/page/utils/show-hide-input.js +28 -0
  56. package/src/js/page/utils/validation.js +46 -1
  57. package/src/layouts/checkout.hbs +1 -5
  58. package/src/page_my-account_change-password.html +1 -0
  59. package/src/page_payment-details-with-gift-card.html +8 -5
  60. package/src/scss/components/_gift-cards.scss +360 -0
  61. package/src/scss/components/checkout-payment-details-v2.scss +2 -0
  62. package/src/scss/pages/_checkout-confirmation-new.scss +49 -21
  63. package/src/scss/pages/page_checkout_delivery-new.scss +26 -0
  64. package/src/js/components/toggle-password-visibility.js +0 -58
@@ -0,0 +1,360 @@
1
+ .giftcard-row {
2
+ position: relative;
3
+ display: flex;
4
+ gap: 16px;
5
+ }
6
+
7
+ .giftcard {
8
+ border: 1px solid $gray;
9
+ border-radius: 4px;
10
+ background: $white;
11
+ padding: 12px 16px;
12
+ width: 100%;
13
+ order: 3;
14
+ position: relative;
15
+
16
+ .giftcard__field {
17
+ .form-row {
18
+ margin-bottom: 0;
19
+ }
20
+ }
21
+ }
22
+
23
+ .giftcard-add {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ gap: 8px;
27
+ color: $blue;
28
+ text-decoration: none;
29
+ cursor: pointer;
30
+
31
+ &__icon {
32
+ width: 16px;
33
+ height: 16px;
34
+ }
35
+
36
+ &__text {
37
+ font-size: .875rem;
38
+ line-height: 1.375rem;
39
+ font-weight: 500;
40
+ }
41
+ }
42
+
43
+ .giftcard-hint {
44
+ display: block;
45
+ color: $squant;
46
+ font-size: .875rem;
47
+ line-height: 1.375rem;
48
+ font-weight: 400;
49
+ margin-left: 32px;
50
+ }
51
+
52
+ .giftcard-inline {
53
+ padding: 12px 8px;
54
+
55
+ &__header {
56
+ display: flex;
57
+ justify-content: space-between;
58
+ margin-bottom: 16px;
59
+ }
60
+
61
+ &__title {
62
+ font-weight: 500;
63
+ font-size: 1.125rem;
64
+ line-height: 1.5rem;
65
+ white-space: nowrap;
66
+ }
67
+
68
+ &__balance {
69
+ color: $blue;
70
+ font-weight: 400;
71
+ font-size: .875rem;
72
+ line-height: 1.375rem;
73
+ text-decoration: underline;
74
+ white-space: nowrap;
75
+ }
76
+
77
+ &__close {
78
+ position: absolute;
79
+ width: 24px;
80
+ height: 24px;
81
+ top: 8px;
82
+ right: 8px;
83
+ cursor: pointer;
84
+ display: flex;
85
+ justify-content: center;
86
+ align-items: center;
87
+ color: $warm-grey;
88
+ }
89
+
90
+ &__fields {
91
+ display: flex;
92
+ flex-direction: column;
93
+ gap: 24px;
94
+ }
95
+
96
+ .notification {
97
+ margin-bottom: 16px;
98
+ }
99
+ }
100
+
101
+ .form-row__label {
102
+ margin-bottom: 8px;
103
+ }
104
+
105
+ .giftcard__btn {
106
+ width: 100%;
107
+ }
108
+
109
+ .giftcard__field {
110
+ position: relative;
111
+ display: flex;
112
+ flex-direction: column;
113
+ padding-bottom: 18px;
114
+ min-width: 0;
115
+ }
116
+
117
+ .giftcard-inline .giftcard-inline__fields > .form-row.giftcard__field {
118
+ margin-bottom: 0;
119
+ }
120
+
121
+ .giftcard-field--error .giftcard__input {
122
+ border-color: $red;
123
+ }
124
+
125
+ .giftcard__error-text {
126
+ font-weight: 400;
127
+ font-size: .75rem;
128
+ line-height: 1rem;
129
+ color: $red;
130
+ margin-top: 8px;
131
+ }
132
+
133
+ .giftcard .toggle-show svg {
134
+ pointer-events: none;
135
+ }
136
+
137
+ .form-row .toggle-show {
138
+ font-size: 1rem;
139
+ cursor: pointer;
140
+ position: absolute;
141
+ right: 8px;
142
+ top: 0;
143
+ height: 100%;
144
+ display: inline-flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ width: 24px;
148
+ }
149
+
150
+ .giftcard-applied {
151
+ width: 100%;
152
+ border: 1px solid $gray-light;
153
+ border-radius: 4px;
154
+ background: $white;
155
+ padding: 15px 16px;
156
+ order: 2;
157
+
158
+ &__inner {
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ gap: 12px;
163
+ }
164
+
165
+ &__icon {
166
+ display: inline-flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ }
170
+
171
+ .fa-check-circle {
172
+ text-align: center;
173
+ color: $green;
174
+ font-size: 1rem;
175
+ }
176
+
177
+ &__text {
178
+ margin: 0;
179
+ font-size: .875rem;
180
+ line-height: 1.5rem;
181
+ font-weight: 500;
182
+ word-break: break-word;
183
+ }
184
+ }
185
+
186
+ .giftcard-summary {
187
+ position: relative;
188
+ width: 100%;
189
+
190
+ &__hint {
191
+ margin-top: 16px;
192
+ margin-bottom: 0;
193
+ font-size: .875rem;
194
+ font-weight: 400;
195
+ line-height: 1.375rem;
196
+ }
197
+
198
+ &__add {
199
+ text-decoration: underline;
200
+ cursor: pointer;
201
+ color: $blue;
202
+ }
203
+ }
204
+
205
+ .giftcard-chip-list {
206
+ display: flex;
207
+ flex-direction: column;
208
+ gap: 16px;
209
+ }
210
+
211
+ .giftcard-chip {
212
+ display: flex;
213
+ align-items: center;
214
+ width: 100%;
215
+ gap: 12px;
216
+ padding: 12px 16px;
217
+ border: 1px solid $gray;
218
+ border-radius: 4px;
219
+ background: $white;
220
+ min-height: 44px;
221
+ position: relative;
222
+
223
+ &__close {
224
+ position: absolute;
225
+ width: 24px;
226
+ height: 24px;
227
+ top: 8px;
228
+ right: 8px;
229
+ cursor: pointer;
230
+ display: flex;
231
+ justify-content: center;
232
+ align-items: center;
233
+ color: $warm-grey;
234
+ }
235
+ }
236
+
237
+ .giftcard-chip__icon {
238
+ width: 48px;
239
+ height: 30px;
240
+ display: inline-flex;
241
+ align-items: center;
242
+ justify-content: center;
243
+ }
244
+
245
+ .giftcard-chip__content {
246
+ flex: 1 1 auto;
247
+ min-width: 0;
248
+ }
249
+
250
+ .giftcard-chip__line {
251
+ display: block;
252
+ line-height: 1.25rem;
253
+
254
+ .giftcard-chip__applied {
255
+ font-size: .875rem;
256
+ font-weight: 400;
257
+ line-height: 1.5rem;
258
+ color: $gray-dark;
259
+ }
260
+ }
261
+
262
+ .giftcard-chip__number {
263
+ font-weight: 500;
264
+ line-height: 1.5rem;
265
+ font-size: 1rem;
266
+ color: $gray-dark;
267
+ }
268
+
269
+ .giftcard-chip__applied {
270
+ white-space: nowrap;
271
+ }
272
+
273
+ @include media-breakpoint-up(sm) {
274
+ .giftcard-inline__fields {
275
+ display: flex;
276
+ flex-direction: row;
277
+ justify-content: space-between;
278
+ gap: 16px;
279
+ }
280
+
281
+ .giftcard-inline__fields > .form-row.giftcard__field--pin.giftcard__field--pin {
282
+ width: 116px;
283
+ }
284
+
285
+ .giftcard-inline__fields > .form-row.giftcard__field--number.giftcard__field--number {
286
+ width: 224px;
287
+ }
288
+
289
+ .giftcard__actions {
290
+ display: flex;
291
+ align-items: flex-end;
292
+ height: 72px;
293
+ }
294
+
295
+ .giftcard-summary {
296
+ &__hint {
297
+ width: 354px;
298
+
299
+ &--max {
300
+ width: 100%;
301
+ }
302
+ }
303
+ }
304
+ }
305
+
306
+ @include media-breakpoint-up(md) {
307
+ .giftcard-inline__fields > .form-row.giftcard__field--pin.giftcard__field--pin {
308
+ width: 214px;
309
+ }
310
+
311
+ .giftcard-inline__fields > .form-row.giftcard__field--number.giftcard__field--number {
312
+ width: 240px;
313
+ }
314
+
315
+
316
+ .giftcard-inline__title {
317
+ font-weight: 700;
318
+ }
319
+
320
+ .giftcard-summary {
321
+ &__hint {
322
+ width: 100%;
323
+
324
+ &--max {
325
+ width: 460px;
326
+ }
327
+ }
328
+ }
329
+ }
330
+
331
+ @include media-breakpoint-up(lg) {
332
+ .giftcard-inline__fields {
333
+ max-width: 470px;
334
+ }
335
+
336
+ .giftcard-summary {
337
+ &__hint {
338
+ width: 100%;
339
+
340
+ &--max {
341
+ width: 100%;
342
+ }
343
+ }
344
+ }
345
+ }
346
+
347
+ @include media-breakpoint-up(xl) {
348
+ .giftcard-inline__fields {
349
+ max-width: 100%;
350
+ }
351
+
352
+ .giftcard__btn {
353
+ width: 140px;
354
+ }
355
+
356
+ .giftcard__field--number,
357
+ .giftcard__field--pin {
358
+ width: 100%;
359
+ }
360
+ }
@@ -1,5 +1,6 @@
1
1
  @import '../helpers/helpers';
2
2
  @import '../components/tooltip';
3
+ @import '../components/gift-cards';
3
4
 
4
5
  .checkout-payment-details-v2 {
5
6
  .checkout-payment-details {
@@ -73,6 +74,7 @@
73
74
  font-size: 14px;
74
75
  font-weight: 400;
75
76
  line-height: 24px;
77
+ vertical-align: top;
76
78
  }
77
79
 
78
80
  .form-row {
@@ -23,6 +23,7 @@
23
23
  }
24
24
 
25
25
  &__title {
26
+ margin-bottom: 16px;
26
27
  font-size: 1.625rem;
27
28
  line-height: 1.875rem;
28
29
  font-weight: 400;
@@ -70,7 +71,7 @@
70
71
 
71
72
  &__info {
72
73
  text-align: center;
73
- font-size: .875rem;
74
+ font-size: 0.875rem;
74
75
  max-width: 500px;
75
76
  margin: 0 auto;
76
77
  padding: 44px 0 50px;
@@ -103,7 +104,7 @@
103
104
  }
104
105
 
105
106
  &__subscribe-message {
106
- font-size: .875rem;
107
+ font-size: 0.875rem;
107
108
  }
108
109
  }
109
110
  }
@@ -163,7 +164,7 @@
163
164
  @include make-col(12);
164
165
 
165
166
  .form-row__label {
166
- font-size: .875rem;
167
+ font-size: 0.875rem;
167
168
  line-height: 1rem;
168
169
  }
169
170
 
@@ -208,7 +209,7 @@
208
209
  }
209
210
 
210
211
  &-vat {
211
- font-size: .75rem;
212
+ font-size: 0.75rem;
212
213
  margin-top: -15px;
213
214
  }
214
215
  }
@@ -284,19 +285,49 @@
284
285
 
285
286
  [data-is-logged-in='true'] {
286
287
  body {
287
- background: #ff0000 !important;
288
+ background: #f00 !important;
288
289
  }
289
290
  }
290
291
 
291
292
  [data-is-logged-in='false'] {
292
293
  body {
293
- background: #0000ff !important;
294
+ background: #00f !important;
295
+ }
296
+ }
297
+ }
298
+
299
+ @include media-breakpoint-up(sm) {
300
+ .page_checkout-confirmation-new {
301
+ .header {
302
+ &__title {
303
+ margin-bottom: 8px;
304
+ }
305
+ }
306
+
307
+ .confirmation-result {
308
+ &__action {
309
+ &-full-width {
310
+ display: flex;
311
+ flex-direction: row;
312
+
313
+ .btn {
314
+ width: 231px;
315
+ margin: 0 10px;
316
+ }
317
+ }
318
+ }
294
319
  }
295
320
  }
296
321
  }
297
322
 
298
323
  @include media-breakpoint-up(md) {
299
324
  .page_checkout-confirmation-new {
325
+ .header {
326
+ &__title {
327
+ margin-bottom: 0;
328
+ }
329
+ }
330
+
300
331
  .content .checkout-widget {
301
332
  &.checkout-payment {
302
333
  .checkout-widget {
@@ -368,6 +399,18 @@
368
399
  }
369
400
  }
370
401
  }
402
+
403
+ .confirmation-result {
404
+ &__action {
405
+ &-full-width {
406
+ padding: 48px 0;
407
+
408
+ .btn {
409
+ width: 220px;
410
+ }
411
+ }
412
+ }
413
+ }
371
414
  }
372
415
  }
373
416
 
@@ -466,21 +509,6 @@
466
509
  }
467
510
  }
468
511
 
469
- .confirmation-result {
470
- &__action {
471
- &-full-width {
472
- display: flex;
473
- flex-direction: row;
474
- padding: 50px 0;
475
-
476
- .btn {
477
- width: 218px;
478
- margin: 0 10px;
479
- }
480
- }
481
- }
482
- }
483
-
484
512
  .content-center {
485
513
  @include make-col(12);
486
514
  }
@@ -27,6 +27,8 @@
27
27
  .checkout-widget {
28
28
  &__details {
29
29
  font-size: 1rem;
30
+ display: flex;
31
+ flex-direction: column;
30
32
 
31
33
  .checkout-widget {
32
34
  &__item {
@@ -53,6 +55,19 @@
53
55
  &__details-discount {
54
56
  order: 1;
55
57
  }
58
+
59
+ &__gift-card {
60
+ order: 2;
61
+ margin-bottom: 0;
62
+ margin-top: 20px;
63
+ font-weight: 700;
64
+
65
+ .checkout-widget__item-value {
66
+ ::first-letter {
67
+ font-size: 1rem;
68
+ }
69
+ }
70
+ }
56
71
  }
57
72
  }
58
73
 
@@ -194,6 +209,10 @@
194
209
  margin: 40px 0;
195
210
  }
196
211
 
212
+ .loader-wrapper.page-loader {
213
+ position: fixed;
214
+ }
215
+
197
216
  .oos-block {
198
217
  @include make-col(12);
199
218
 
@@ -399,6 +418,13 @@
399
418
  margin-bottom: 13px;
400
419
  }
401
420
  }
421
+
422
+ .notification {
423
+ &:only-child,
424
+ &:last-child {
425
+ margin-bottom: 30px;
426
+ }
427
+ }
402
428
  }
403
429
 
404
430
  #modalDeliveryEdit,
@@ -1,58 +0,0 @@
1
- var Wick = window.Wick || {};
2
-
3
- Wick.TogglePasswordVisibility = {
4
- el: {
5
- $toggleShow: $('[data-show-content] .toggle-show'),
6
- inputWrap: $('.form-row[data-show-content] .input-wrap'),
7
- toggleIcon: '.toggle-show',
8
- },
9
-
10
- updateIconVisibility(inputField, toggleIcon) {
11
- const valueLength = inputField.val().length;
12
- if (valueLength > 0) {
13
- toggleIcon.show();
14
- } else {
15
- toggleIcon.hide();
16
- }
17
- },
18
-
19
- attachInputListener(inputField, toggleIcon) {
20
- inputField.on('input', function () {
21
- Wick.TogglePasswordVisibility.updateIconVisibility($(this), toggleIcon);
22
- });
23
- },
24
-
25
- attachToggleClickListener(inputField, toggleIcon) {
26
- toggleIcon.on('click', function () {
27
- const isPasswordType = inputField.attr('type') === 'password';
28
- const iconSvg = $(this).find('svg');
29
-
30
- if (isPasswordType) {
31
- inputField.attr('type', 'text');
32
- iconSvg.removeClass('fa-eye-slash').addClass('fa-eye');
33
- } else {
34
- inputField.attr('type', 'password');
35
- iconSvg.removeClass('fa-eye').addClass('fa-eye-slash');
36
- }
37
- });
38
- },
39
-
40
- init() {
41
- Wick.TogglePasswordVisibility.el.inputWrap.each(function () {
42
- const inputField = $(this).find('input');
43
- const toggleIcon = $(this).find(Wick.TogglePasswordVisibility.el.toggleIcon);
44
-
45
- Wick.TogglePasswordVisibility.attachInputListener(inputField, toggleIcon);
46
- Wick.TogglePasswordVisibility.updateIconVisibility(inputField, toggleIcon);
47
- Wick.TogglePasswordVisibility.attachToggleClickListener(inputField, toggleIcon);
48
- });
49
- },
50
- };
51
-
52
- $(document).ready(function () {
53
- if (!Wick.TogglePasswordVisibility.el.$toggleShow.length) {
54
- return;
55
- }
56
-
57
- Wick.TogglePasswordVisibility.init();
58
- });