wickes-css2 2.112.0-why-not-add.4 → 2.112.0
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.
- package/Readme.md +0 -4
- package/build/js/bloomreach-widget.min.js +1 -1
- package/build/js/emulation.min.js +2446 -2397
- package/build/js/page/bloomreach-widget/bloomreach-widget-tracking.js +87 -0
- package/build/js/page/bloomreach-widget/bloomreach-widget.js +9 -0
- package/build/js/page/bloomreach-widget/complete-your-project-widget.js +65 -0
- package/build/js/page/bloomreach-widget/why-not-add-widget.js +36 -2
- package/build/js/page/checkout-payment-details.js +10 -0
- package/build/js/page/utils/data-layer.js +9 -0
- package/package.json +1 -5
- package/src/components/address-billie.hbs +22 -18
- package/src/components/checkout-edit-billing-address.hbs +1 -1
- package/src/components/checkout-payment-details-v2.hbs +6 -1
- package/src/components/share-list-modal-without-social-icons.hbs +1 -1
- package/src/components/share-list-modal.hbs +1 -1
- package/src/js/emulation/mock.js +2394 -2348
- package/src/js/emulation/tracking-emulation.js +38 -0
- package/src/js/page/bloomreach-widget/bloomreach-widget-tracking.js +87 -0
- package/src/js/page/bloomreach-widget/bloomreach-widget.js +9 -0
- package/src/js/page/bloomreach-widget/complete-your-project-widget.js +65 -0
- package/src/js/page/bloomreach-widget/why-not-add-widget.js +36 -2
- package/src/js/page/checkout-payment-details.js +10 -0
- package/src/js/page/utils/data-layer.js +9 -0
- package/src/page_payment-details-billie-registered-only.html +76 -0
- package/src/page_payment-details-billie-unregistered-only.html +76 -0
- package/src/sitemap.html +12 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { pushDataLayerEvent } from '../utils/data-layer';
|
|
2
|
+
|
|
3
|
+
const EVENT_NAMES = {
|
|
4
|
+
view: 'brRecommendationWidgetView',
|
|
5
|
+
click: 'brRecommendationWidgetClick',
|
|
6
|
+
addToCart: 'brRecommendationWidgetAddToCart',
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
function disconnectViewObserver(state) {
|
|
10
|
+
if (!state.viewObserver) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
state.viewObserver.disconnect();
|
|
15
|
+
state.viewObserver = null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function observeView(state, elements) {
|
|
19
|
+
if (!window.IntersectionObserver) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
elements = Array.isArray(elements) ? elements : [elements];
|
|
24
|
+
|
|
25
|
+
state.viewObserver = new IntersectionObserver(function (entries) {
|
|
26
|
+
if (
|
|
27
|
+
entries.some(function (entry) {
|
|
28
|
+
return entry.isIntersecting;
|
|
29
|
+
})
|
|
30
|
+
) {
|
|
31
|
+
pushDataLayerEvent(EVENT_NAMES.view, state.widgetData);
|
|
32
|
+
disconnectViewObserver(state);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
elements.forEach(function (element) {
|
|
37
|
+
if (element) {
|
|
38
|
+
state.viewObserver.observe(element);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function trackClick(state, itemId) {
|
|
44
|
+
pushDataLayerEvent(EVENT_NAMES.click, {
|
|
45
|
+
...state.widgetData,
|
|
46
|
+
item_id: itemId,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function trackAddToCart(state, items) {
|
|
51
|
+
pushDataLayerEvent(EVENT_NAMES.addToCart, {
|
|
52
|
+
...state.widgetData,
|
|
53
|
+
items,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function createBloomreachWidgetTracking() {
|
|
58
|
+
const state = {
|
|
59
|
+
initWidgetPayload: null,
|
|
60
|
+
viewObserver: null,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
setPayload(payloadData) {
|
|
65
|
+
disconnectViewObserver(state);
|
|
66
|
+
const metadata = payloadData.widgetMetadata;
|
|
67
|
+
|
|
68
|
+
state.widgetData = {
|
|
69
|
+
wrid: metadata.responseId,
|
|
70
|
+
wid: metadata.id,
|
|
71
|
+
wty: metadata.type,
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
observeView(element) {
|
|
76
|
+
observeView(state, element);
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
trackClick(itemId) {
|
|
80
|
+
trackClick(state, itemId);
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
trackAddToCart(items) {
|
|
84
|
+
trackAddToCart(state, items);
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var Wick = window.Wick || {};
|
|
2
2
|
|
|
3
|
+
import { isApp } from '../utils/helpers';
|
|
3
4
|
import { createEvent } from '../utils/create-event';
|
|
4
5
|
import CompleteYourProjectWidget from './complete-your-project-widget';
|
|
5
6
|
import WhyNotAddWidget from './why-not-add-widget';
|
|
@@ -80,6 +81,14 @@ Wick.BloomreachWidget = {
|
|
|
80
81
|
return '';
|
|
81
82
|
},
|
|
82
83
|
|
|
84
|
+
removeBlankTargets($root) {
|
|
85
|
+
if (!isApp()) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
$root.find('a[target="_blank"]').removeAttr('target');
|
|
90
|
+
},
|
|
91
|
+
|
|
83
92
|
getWasPrice(product) {
|
|
84
93
|
const displayPrice = Wick.BloomreachWidget.getDisplayPrice(product);
|
|
85
94
|
|
|
@@ -4,6 +4,7 @@ import { createCountStepper } from '../utils/create-count-stepper';
|
|
|
4
4
|
import { createDropdown } from '../utils/custom-dropdown';
|
|
5
5
|
import { createLoadingButton } from '../utils/create-loading-button';
|
|
6
6
|
import { createToast } from '../utils/create-toast';
|
|
7
|
+
import { createBloomreachWidgetTracking } from './bloomreach-widget-tracking';
|
|
7
8
|
|
|
8
9
|
const Handlebars = require('hbsfy/runtime');
|
|
9
10
|
|
|
@@ -34,6 +35,7 @@ const CompleteYourProjectWidget = {
|
|
|
34
35
|
lastCalculationResponse: null,
|
|
35
36
|
dropdownCurrent: {},
|
|
36
37
|
toast: null,
|
|
38
|
+
tracking: createBloomreachWidgetTracking(),
|
|
37
39
|
|
|
38
40
|
el: {
|
|
39
41
|
cardCheckbox: '.complete-card__select input[type="checkbox"]',
|
|
@@ -427,6 +429,55 @@ const CompleteYourProjectWidget = {
|
|
|
427
429
|
});
|
|
428
430
|
},
|
|
429
431
|
|
|
432
|
+
getSelectedTrackingItems($root) {
|
|
433
|
+
const { completeCard, cardCheckbox, recommendationIndexAttr } =
|
|
434
|
+
CompleteYourProjectWidget.el;
|
|
435
|
+
const items = [];
|
|
436
|
+
|
|
437
|
+
$root.find(completeCard).each(function () {
|
|
438
|
+
const $card = $(this);
|
|
439
|
+
const recommendationIndex = Number($card.attr(recommendationIndexAttr));
|
|
440
|
+
|
|
441
|
+
if (recommendationIndex === 0 || !$card.find(cardCheckbox).prop('checked')) {
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
const recommendation = CompleteYourProjectWidget.recommendations[recommendationIndex];
|
|
446
|
+
const baseProduct = recommendation && recommendation.baseProduct;
|
|
447
|
+
const selectedProduct = CompleteYourProjectWidget.getCardProduct($card);
|
|
448
|
+
|
|
449
|
+
if (!baseProduct || !baseProduct.code || !selectedProduct || !selectedProduct.code) {
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
items.push({
|
|
454
|
+
item_id: baseProduct.code,
|
|
455
|
+
sku: selectedProduct.code,
|
|
456
|
+
});
|
|
457
|
+
});
|
|
458
|
+
|
|
459
|
+
return items;
|
|
460
|
+
},
|
|
461
|
+
|
|
462
|
+
bindProductTracking($root) {
|
|
463
|
+
const { completeCard, recommendationIndexAttr, titleEl } = CompleteYourProjectWidget.el;
|
|
464
|
+
|
|
465
|
+
$root.off('click.bloomreachWidgetTracking', titleEl);
|
|
466
|
+
$root.on('click.bloomreachWidgetTracking', titleEl, function () {
|
|
467
|
+
const $card = $(this).closest(completeCard);
|
|
468
|
+
const recommendationIndex = Number($card.attr(recommendationIndexAttr));
|
|
469
|
+
|
|
470
|
+
if (recommendationIndex === 0) {
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
const recommendation = CompleteYourProjectWidget.recommendations[recommendationIndex];
|
|
475
|
+
const baseProduct = recommendation && recommendation.baseProduct;
|
|
476
|
+
|
|
477
|
+
CompleteYourProjectWidget.tracking.trackClick(baseProduct && baseProduct.code);
|
|
478
|
+
});
|
|
479
|
+
},
|
|
480
|
+
|
|
430
481
|
updateSummary($root, response = {}) {
|
|
431
482
|
const totalPriceExclusiveVat = response.totalPriceExclusiveVat || response.totalExcVatPrice;
|
|
432
483
|
|
|
@@ -818,6 +869,12 @@ const CompleteYourProjectWidget = {
|
|
|
818
869
|
return;
|
|
819
870
|
}
|
|
820
871
|
|
|
872
|
+
const trackingItems = CompleteYourProjectWidget.getSelectedTrackingItems($root);
|
|
873
|
+
|
|
874
|
+
if (trackingItems.length) {
|
|
875
|
+
CompleteYourProjectWidget.tracking.trackAddToCart(trackingItems);
|
|
876
|
+
}
|
|
877
|
+
|
|
821
878
|
CompleteYourProjectWidget.dispatchAddToCart($root, $button);
|
|
822
879
|
});
|
|
823
880
|
},
|
|
@@ -991,6 +1048,7 @@ const CompleteYourProjectWidget = {
|
|
|
991
1048
|
CompleteYourProjectWidget.bindDropdowns();
|
|
992
1049
|
CompleteYourProjectWidget.bindDropdownValidation($completeWidget);
|
|
993
1050
|
CompleteYourProjectWidget.bindAddToCart($completeWidget);
|
|
1051
|
+
CompleteYourProjectWidget.bindProductTracking($completeWidget);
|
|
994
1052
|
CompleteYourProjectWidget.bindVatToggle();
|
|
995
1053
|
CompleteYourProjectWidget.initQuantityFields($completeWidget);
|
|
996
1054
|
|
|
@@ -1007,12 +1065,19 @@ const CompleteYourProjectWidget = {
|
|
|
1007
1065
|
init(payloadData) {
|
|
1008
1066
|
const $containers = $(CompleteYourProjectWidget.el.widgetContainer);
|
|
1009
1067
|
|
|
1068
|
+
CompleteYourProjectWidget.tracking.setPayload(payloadData);
|
|
1069
|
+
|
|
1010
1070
|
if (!payloadData || !Wick.BloomreachWidget.hasRecommendations(payloadData)) {
|
|
1011
1071
|
$containers.find(CompleteYourProjectWidget.el.completeWidget).hide();
|
|
1012
1072
|
return;
|
|
1013
1073
|
}
|
|
1014
1074
|
|
|
1015
1075
|
CompleteYourProjectWidget.renderWidgetFromPayload(payloadData);
|
|
1076
|
+
|
|
1077
|
+
CompleteYourProjectWidget.tracking.observeView([
|
|
1078
|
+
$containers.find(CompleteYourProjectWidget.el.titleEl).get(0),
|
|
1079
|
+
$containers.find(CompleteYourProjectWidget.el.ctaButton).get(0),
|
|
1080
|
+
]);
|
|
1016
1081
|
},
|
|
1017
1082
|
};
|
|
1018
1083
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var Wick = window.Wick || {};
|
|
2
2
|
|
|
3
3
|
import { createLoadingButton } from '../utils/create-loading-button';
|
|
4
|
+
import { createBloomreachWidgetTracking } from './bloomreach-widget-tracking';
|
|
4
5
|
|
|
5
6
|
const Handlebars = require('hbsfy/runtime');
|
|
6
7
|
|
|
@@ -32,11 +33,15 @@ const WhyNotAddWidget = {
|
|
|
32
33
|
products: [],
|
|
33
34
|
sliders: [],
|
|
34
35
|
loadingButton: null,
|
|
36
|
+
tracking: createBloomreachWidgetTracking(),
|
|
35
37
|
|
|
36
38
|
el: {
|
|
37
39
|
cta: '.why-not-add-card__cta',
|
|
38
40
|
next: '[data-why-not-add-next]',
|
|
39
41
|
pagination: '[data-why-not-add-pagination]',
|
|
42
|
+
productCard: '.why-not-add-card',
|
|
43
|
+
productCodeAttr: 'data-product-code',
|
|
44
|
+
productLink: '.why-not-add-card__title',
|
|
40
45
|
prev: '[data-why-not-add-prev]',
|
|
41
46
|
root: '[data-why-not-add]',
|
|
42
47
|
slider: '[data-why-not-add-slider]',
|
|
@@ -119,14 +124,26 @@ const WhyNotAddWidget = {
|
|
|
119
124
|
WhyNotAddWidget.sliders.push(slider);
|
|
120
125
|
});
|
|
121
126
|
},
|
|
127
|
+
|
|
128
|
+
bindProductTracking($root) {
|
|
129
|
+
$root.off('click.bloomreachWidgetTracking', WhyNotAddWidget.el.productLink);
|
|
130
|
+
$root.on('click.bloomreachWidgetTracking', WhyNotAddWidget.el.productLink, function () {
|
|
131
|
+
const productCode = $(this)
|
|
132
|
+
.closest(WhyNotAddWidget.el.productCard)
|
|
133
|
+
.attr(WhyNotAddWidget.el.productCodeAttr);
|
|
134
|
+
|
|
135
|
+
WhyNotAddWidget.tracking.trackClick(productCode);
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
|
|
122
139
|
bindAddToCart($root) {
|
|
123
140
|
$root.off('click.whyNotAdd', WhyNotAddWidget.el.cta);
|
|
124
141
|
$root.on('click.whyNotAdd', WhyNotAddWidget.el.cta, function (event) {
|
|
125
142
|
event.preventDefault();
|
|
126
143
|
|
|
127
144
|
const $button = $(this);
|
|
128
|
-
const $card = $button.closest(
|
|
129
|
-
const productCode = $card.attr(
|
|
145
|
+
const $card = $button.closest(WhyNotAddWidget.el.productCard);
|
|
146
|
+
const productCode = $card.attr(WhyNotAddWidget.el.productCodeAttr);
|
|
130
147
|
|
|
131
148
|
if (!productCode || WhyNotAddWidget.loadingButton.isLoading($button)) {
|
|
132
149
|
return;
|
|
@@ -136,6 +153,13 @@ const WhyNotAddWidget = {
|
|
|
136
153
|
productCode,
|
|
137
154
|
};
|
|
138
155
|
|
|
156
|
+
WhyNotAddWidget.tracking.trackAddToCart([
|
|
157
|
+
{
|
|
158
|
+
item_id: productCode,
|
|
159
|
+
sku: productCode,
|
|
160
|
+
},
|
|
161
|
+
]);
|
|
162
|
+
|
|
139
163
|
WhyNotAddWidget.loadingButton.start($button);
|
|
140
164
|
|
|
141
165
|
Wick.BloomreachWidget.dispatchWidgetEvent(WhyNotAddWidget.ADD_TO_CART_EVENT, payload)
|
|
@@ -169,9 +193,12 @@ const WhyNotAddWidget = {
|
|
|
169
193
|
});
|
|
170
194
|
}
|
|
171
195
|
|
|
196
|
+
Wick.BloomreachWidget.removeBlankTargets($root);
|
|
197
|
+
|
|
172
198
|
Wick.BloomreachWidget.drawRating($root);
|
|
173
199
|
WhyNotAddWidget.initSliders($root);
|
|
174
200
|
WhyNotAddWidget.bindAddToCart($root);
|
|
201
|
+
WhyNotAddWidget.bindProductTracking($root);
|
|
175
202
|
WhyNotAddWidget.bindVatToggle();
|
|
176
203
|
Wick.BloomreachWidget.reapplyVatDisplay();
|
|
177
204
|
},
|
|
@@ -179,6 +206,8 @@ const WhyNotAddWidget = {
|
|
|
179
206
|
init(payloadData) {
|
|
180
207
|
const $containers = $(WhyNotAddWidget.el.widgetContainer);
|
|
181
208
|
|
|
209
|
+
WhyNotAddWidget.tracking.setPayload(payloadData);
|
|
210
|
+
|
|
182
211
|
if (!payloadData) {
|
|
183
212
|
$containers.empty().hide();
|
|
184
213
|
return;
|
|
@@ -190,6 +219,11 @@ const WhyNotAddWidget = {
|
|
|
190
219
|
WhyNotAddWidget.renderWidget($container, payloadData);
|
|
191
220
|
WhyNotAddWidget.initRenderedWidget($container);
|
|
192
221
|
});
|
|
222
|
+
|
|
223
|
+
WhyNotAddWidget.tracking.observeView([
|
|
224
|
+
$containers.find(WhyNotAddWidget.el.productLink).get(0),
|
|
225
|
+
$containers.find(WhyNotAddWidget.el.cta).get(0),
|
|
226
|
+
]);
|
|
193
227
|
},
|
|
194
228
|
};
|
|
195
229
|
|
|
@@ -244,6 +244,7 @@ Wick.CheckoutPaymentDetails = (function () {
|
|
|
244
244
|
setBillieStepVisibility(getBillieRepaymentTermsLength() === 1);
|
|
245
245
|
resetBillieRepaymentSelection();
|
|
246
246
|
showBillieBusiness();
|
|
247
|
+
initBillieBusinessType();
|
|
247
248
|
break;
|
|
248
249
|
|
|
249
250
|
case 'clearpay':
|
|
@@ -324,6 +325,14 @@ Wick.CheckoutPaymentDetails = (function () {
|
|
|
324
325
|
});
|
|
325
326
|
}
|
|
326
327
|
|
|
328
|
+
function initBillieBusinessType() {
|
|
329
|
+
const $radios = elements.$billieBusiness.find(`input${elements.businessTypeName}`);
|
|
330
|
+
if ($radios.length === 1) {
|
|
331
|
+
$radios.prop('checked', true);
|
|
332
|
+
toggleBusinessTypeFields($radios.val());
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
327
336
|
function forceReflow($element) {
|
|
328
337
|
if (!$element.length) return;
|
|
329
338
|
void $element[0].offsetHeight;
|
|
@@ -345,6 +354,7 @@ Wick.CheckoutPaymentDetails = (function () {
|
|
|
345
354
|
|
|
346
355
|
const hasSelection = $('input[name="repaymentTerms"]:checked').length > 0;
|
|
347
356
|
setBillieStepVisibility(hasSelection);
|
|
357
|
+
initBillieBusinessType();
|
|
348
358
|
|
|
349
359
|
const $row = $(this).closest('.form-row[data-row-required]');
|
|
350
360
|
$row.removeClass('form-row_validation-error').find('.form-row__error').remove();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wickes-css2",
|
|
3
|
-
"version": "2.112.0
|
|
3
|
+
"version": "2.112.0",
|
|
4
4
|
"description": "CSS and JS and page templates in use by Wickes",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -123,10 +123,6 @@
|
|
|
123
123
|
{
|
|
124
124
|
"name": "develop",
|
|
125
125
|
"prerelease": true
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"name": "custom-tag/*",
|
|
129
|
-
"prerelease": "${name.replace(/^custom-tag\\//g, '')}"
|
|
130
126
|
}
|
|
131
127
|
],
|
|
132
128
|
"plugins": [
|
|
@@ -4,26 +4,30 @@
|
|
|
4
4
|
Select your business type
|
|
5
5
|
</label>
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
<div class="form-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
{{#unless (eq billie-business-type "REGISTERED_SOLE_TRADER_BUSINESS")}}
|
|
8
|
+
<div class="form-row">
|
|
9
|
+
<div class="form-row__field">
|
|
10
|
+
{{> radiobutton
|
|
11
|
+
id="businessTypeUnregistered"
|
|
12
|
+
name="businessType"
|
|
13
|
+
value="unregistered"
|
|
14
|
+
label="Unregistered Sole Trader / Business"}}
|
|
15
|
+
</div>
|
|
14
16
|
</div>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
<div class="form-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
{{/unless}}
|
|
18
|
+
{{#unless (eq billie-business-type "UNREGISTERED_SOLE_TRADER_BUSINESS")}}
|
|
19
|
+
<div class="form-row">
|
|
20
|
+
<div class="form-row__field">
|
|
21
|
+
{{> radiobutton
|
|
22
|
+
id="businessTypeRegistered"
|
|
23
|
+
name="businessType"
|
|
24
|
+
value="registered"
|
|
25
|
+
labelClass="registered-label"
|
|
26
|
+
label="Registered Sole Trader / Business"
|
|
27
|
+
tooltip="A Registered Business is one that has undergone the official process of being recognised and registered with Companies House, establishing its legal identity and enabling it to operate within a specific jurisdiction, such as a limited company. A Registered Business will have been issued a Company Registration Number (CRN) from Companies House."}}
|
|
28
|
+
</div>
|
|
25
29
|
</div>
|
|
26
|
-
|
|
30
|
+
{{/unless}}
|
|
27
31
|
</div>
|
|
28
32
|
<div
|
|
29
33
|
id="unregistered-fields"
|
|
@@ -239,7 +239,12 @@
|
|
|
239
239
|
</div>
|
|
240
240
|
</div>
|
|
241
241
|
<div class="billing-address">
|
|
242
|
-
{{> checkout-edit-billing-address
|
|
242
|
+
{{> checkout-edit-billing-address
|
|
243
|
+
actionBlock="true"
|
|
244
|
+
no-set-card="true"
|
|
245
|
+
billie-form=billie-form
|
|
246
|
+
billie-business-type=billie-business-type
|
|
247
|
+
}}
|
|
243
248
|
</div>
|
|
244
249
|
<div data-existing-card
|
|
245
250
|
class="form-row form-row__action form-row__action_custom checkout-payment-details__place-order paypal__row">
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
<form class="share-list__form" action="#" id="share-list-form">
|
|
20
20
|
|
|
21
|
-
{{> form-row type="text" id="share-via-email" label="Share via email"
|
|
21
|
+
{{> form-row type="text" id="share-via-email" label="Share via email"}}
|
|
22
22
|
|
|
23
23
|
<div class="share-via-email-box">
|
|
24
24
|
{{> form-row type="text"}}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
<form class="share-list__form" action="#" id="share-list-form">
|
|
20
20
|
|
|
21
|
-
{{> form-row type="text" id="share-via-email" label="Share via email"
|
|
21
|
+
{{> form-row type="text" id="share-via-email" label="Share via email"}}
|
|
22
22
|
|
|
23
23
|
<div class="share-via-email-box">
|
|
24
24
|
{{> form-row type="text"}}
|