wickes-css2 2.106.0-develop.6 → 2.106.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.
- package/Readme.md +0 -1
- package/build/css/category-main.css +1 -1
- package/build/css/components/global-search.css +1 -1
- package/build/css/homepage-main.css +1 -1
- package/build/css/kitchen-plp-main.css +1 -1
- package/build/css/main.css +1 -1
- package/build/css/my-account-main-v2.css +1 -1
- package/build/css/my-account-main.css +1 -1
- package/build/css/pages/page_products-list-combined.css +1 -1
- package/build/css/pdp-main-before-combine.css +1 -1
- package/build/css/pdp-main-critical.css +1 -1
- package/build/css/pdp-main.css +1 -1
- package/build/css/plp-main.css +1 -1
- package/build/css/store-locator-main.css +1 -1
- package/build/js/basket.min.js +1 -1
- package/build/js/bundle.min.js +1 -1
- package/build/js/checkout.min.js +1 -1
- package/build/js/emulation.min.js +9 -1
- package/build/js/general.bundle.min.js +1 -1
- package/build/js/merged-checkout.min.js +1 -1
- package/build/js/page/filters/plp-filters-mobile.js +7 -4
- package/build/js/page/filters/plp-filters-utils.js +0 -9
- package/build/js/page/filters/plp-filters.js +3 -11
- package/build/js/page/plp-img-v2.js +25 -0
- package/build/js/page/share-project-list.js +33 -151
- package/build/js/pdp.bundle.min.js +1 -1
- package/build/js/plp-filters.min.js +2 -2
- package/build/js/plp.bundle.min.js +1 -1
- package/build/js/project-list.min.js +1 -1
- package/build/js/share-project-list.min.js +1 -1
- package/package.json +2 -2
- package/src/components/card_product_v2.hbs +6 -1
- package/src/components/price-block-v2.hbs +16 -15
- package/src/data/data_search-results_v2.json +2 -1
- package/src/js/components/general/switchVat.js +1 -4
- package/src/js/components/share-project-list.js +56 -0
- package/src/js/emulation/mock.js +10 -0
- package/src/js/emulation/plp-load-more.js +4 -1
- package/src/js/page/filters/plp-filters-mobile.js +7 -4
- package/src/js/page/filters/plp-filters-utils.js +0 -9
- package/src/js/page/filters/plp-filters.js +3 -11
- package/src/js/page/plp-img-v2.js +25 -0
- package/src/js/page/share-project-list.js +33 -151
- package/src/page_plp-with-paint.html +1 -1
- package/src/page_plp_v2-energy-efficiency.html +1 -1
- package/src/page_plp_v2-favourite-products.html +1 -1
- package/src/page_plp_v2-vat.html +32 -27
- package/src/page_plp_v2.html +1 -1
- package/src/page_product-details-cnc-success-notification-vat.html +3 -2
- package/src/page_product_search-vat.html +1 -1
- package/src/page_product_search.html +1 -1
- package/src/page_search-results.html +1 -1
- package/src/partials/scripts.hbs +3 -0
- package/src/scss/components/_custom-slider.scss +2 -2
- package/src/scss/helpers/_variables.scss +15 -6
- package/src/scss/pages/page_products-list-combined.scss +2 -34
|
@@ -65,6 +65,11 @@ Wick.PLPFiltersMobile = {
|
|
|
65
65
|
$btn.text(total > 0 ? `View results (${total})` : 'View results');
|
|
66
66
|
},
|
|
67
67
|
|
|
68
|
+
hideAccordions() {
|
|
69
|
+
$(Wick.PLPFiltersMobile.$ACCORDION).addClass(Wick.PLPFiltersMobile.ACCORDION_COLLAPSED);
|
|
70
|
+
$(Wick.PLPFiltersMobile.$ACCORDION_CONTENT).hide();
|
|
71
|
+
},
|
|
72
|
+
|
|
68
73
|
init() {
|
|
69
74
|
// two-way binding for input between desktop and modal
|
|
70
75
|
$(document)
|
|
@@ -81,14 +86,13 @@ Wick.PLPFiltersMobile = {
|
|
|
81
86
|
$(document)
|
|
82
87
|
.off('shown.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL)
|
|
83
88
|
.on('shown.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL, function () {
|
|
84
|
-
Wick.PLPFilters.setDOMFromState($(this), Wick.PLPFilters.
|
|
89
|
+
Wick.PLPFilters.setDOMFromState($(this), Wick.PLPFilters.appliedState);
|
|
85
90
|
});
|
|
86
91
|
|
|
87
92
|
$(document)
|
|
88
93
|
.off('hide.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL)
|
|
89
94
|
.on('hide.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL, function () {
|
|
90
|
-
|
|
91
|
-
Wick.PLPFilters.draftState = Wick.PLPFilters.collectStateFromDOM(scope);
|
|
95
|
+
Wick.PLPFiltersMobile.hideAccordions();
|
|
92
96
|
});
|
|
93
97
|
|
|
94
98
|
// mobile "View results" button in modal
|
|
@@ -122,7 +126,6 @@ Wick.PLPFiltersMobile = {
|
|
|
122
126
|
|
|
123
127
|
e.preventDefault();
|
|
124
128
|
|
|
125
|
-
Wick.PLPFilters.draftState = {};
|
|
126
129
|
Wick.PLPFilters.appliedState = {};
|
|
127
130
|
Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState, false);
|
|
128
131
|
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
var Wick = window.Wick || {};
|
|
2
2
|
|
|
3
3
|
Wick.PLPUtils = (function () {
|
|
4
|
-
function cloneState(state) {
|
|
5
|
-
const out = {};
|
|
6
|
-
Object.keys(state).forEach((k) => {
|
|
7
|
-
out[k] = new Set(state[k]);
|
|
8
|
-
});
|
|
9
|
-
return out;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
4
|
function syncTwinInputsByName(name, checked, source) {
|
|
13
5
|
const all = $('.filter-card__checkbox, .swatch__checkbox, .checkbox__input').filter(
|
|
14
6
|
function () {
|
|
@@ -65,7 +57,6 @@ Wick.PLPUtils = (function () {
|
|
|
65
57
|
}
|
|
66
58
|
|
|
67
59
|
return {
|
|
68
|
-
cloneState,
|
|
69
60
|
syncTwinInputsByName,
|
|
70
61
|
getPanelType,
|
|
71
62
|
countItems,
|
|
@@ -6,7 +6,6 @@ Wick.PLPFilters = {
|
|
|
6
6
|
ROOT: '.plp-filters',
|
|
7
7
|
GROUP: '.plp-filters__group',
|
|
8
8
|
APPLY_BTN: '.plp-filters__apply',
|
|
9
|
-
draftState: null,
|
|
10
9
|
|
|
11
10
|
INPUTS: '.filter-card__checkbox, .swatch__checkbox, .checkbox__input',
|
|
12
11
|
|
|
@@ -25,7 +24,6 @@ Wick.PLPFilters = {
|
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(rootWrapper);
|
|
28
|
-
Wick.PLPFilters.draftState = Wick.PLPUtils.cloneState(Wick.PLPFilters.appliedState);
|
|
29
27
|
Wick.PLPFilters.setDOMFromState(rootWrapper, Wick.PLPFilters.appliedState);
|
|
30
28
|
|
|
31
29
|
// 3) chips
|
|
@@ -45,11 +43,8 @@ Wick.PLPFilters = {
|
|
|
45
43
|
handlePageShow() {
|
|
46
44
|
window.addEventListener('pageshow', function () {
|
|
47
45
|
const rootWrapper = $(Wick.PLPFilters.ROOT_WRAPPER);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(stateScope);
|
|
51
|
-
Wick.PLPFilters.draftState = Wick.PLPFilters.appliedState;
|
|
52
|
-
Wick.PLPFilters.setDOMFromState(stateScope, Wick.PLPFilters.appliedState);
|
|
46
|
+
Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(rootWrapper);
|
|
47
|
+
Wick.PLPFilters.setDOMFromState(rootWrapper, Wick.PLPFilters.appliedState);
|
|
53
48
|
});
|
|
54
49
|
},
|
|
55
50
|
|
|
@@ -192,10 +187,7 @@ Wick.PLPFilters = {
|
|
|
192
187
|
|
|
193
188
|
// ===== APPLY
|
|
194
189
|
applyFromScopes(scopeForCollect, push) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
Wick.PLPFilters.draftState = nextState;
|
|
198
|
-
Wick.PLPFilters.appliedState = nextState;
|
|
190
|
+
Wick.PLPFilters.appliedState = Wick.PLPFilters.collectStateFromDOM(scopeForCollect);
|
|
199
191
|
Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState, !!push);
|
|
200
192
|
},
|
|
201
193
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
$(document).ready(function () {
|
|
2
|
+
|
|
3
|
+
let imgWrap = $('.products-list-v2 .card__img-wrap');
|
|
4
|
+
let img = $('.products-list-v2 .card__img-v2');
|
|
5
|
+
|
|
6
|
+
square();
|
|
7
|
+
|
|
8
|
+
img.height(function () {
|
|
9
|
+
if (Math.round($(this).height()) > Math.round($(this).width())) {
|
|
10
|
+
$(this).height('99.9%'); //fix for ie
|
|
11
|
+
} else if ((Math.round($(this).height()) < Math.round($(this).width()))){
|
|
12
|
+
$(this).width('99.9%'); // fix for ie
|
|
13
|
+
} else {
|
|
14
|
+
$(this).width('99.9%'); // fix for ie
|
|
15
|
+
$(this).height('99.9%'); // fix for ie
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
function square() {
|
|
20
|
+
let width = imgWrap.width();
|
|
21
|
+
imgWrap.height(width);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
$(window).on('resize', square);
|
|
25
|
+
});
|
|
@@ -1,175 +1,57 @@
|
|
|
1
1
|
import { copyToClipboard } from './utils/copy-to-clipboard';
|
|
2
2
|
|
|
3
|
-
var Wick =
|
|
4
|
-
|
|
3
|
+
var Wick = Wick || {};
|
|
5
4
|
Wick.ShareProjectList = (function () {
|
|
6
|
-
|
|
7
|
-
input
|
|
8
|
-
linkContainer
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const CLASSES = {
|
|
13
|
-
copied: 'copy-link_hovered',
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
function logActiveElement() {
|
|
17
|
-
const active = document.activeElement;
|
|
18
|
-
|
|
19
|
-
if (!active) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function getElements() {
|
|
25
|
-
const $input = $(SELECTORS.input);
|
|
26
|
-
const $linkContainer = $(SELECTORS.linkContainer);
|
|
27
|
-
const $link = $linkContainer.find(SELECTORS.link);
|
|
28
|
-
|
|
29
|
-
return {
|
|
30
|
-
$input: $input,
|
|
31
|
-
$linkContainer: $linkContainer,
|
|
32
|
-
$link: $link,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function enableFocusAndSelect($input, source) {
|
|
37
|
-
if (!$input.length) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
5
|
+
function init() {
|
|
6
|
+
var $input = $('#share-list-modal #shopping-list-link');
|
|
7
|
+
var linkContainer = $('#copy-link');
|
|
8
|
+
var $actualLink = linkContainer.find('a');
|
|
9
|
+
var copyClass = 'copy-link_hovered';
|
|
40
10
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
11
|
+
$actualLink.on('click', function (e) {
|
|
12
|
+
e.preventDefault();
|
|
13
|
+
});
|
|
44
14
|
|
|
45
|
-
|
|
15
|
+
function focusAndSelectInput() {
|
|
16
|
+
if (!$input.length) return;
|
|
46
17
|
|
|
47
|
-
|
|
18
|
+
var el = $input.get(0);
|
|
48
19
|
|
|
49
|
-
|
|
50
|
-
input.focus();
|
|
51
|
-
} catch (error) {
|
|
52
|
-
console.error('[ShareProjectList] input.focus() failed', {
|
|
53
|
-
source: source,
|
|
54
|
-
error: error,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
20
|
+
$input.removeAttr('disabled');
|
|
57
21
|
|
|
58
|
-
|
|
22
|
+
el.focus();
|
|
59
23
|
|
|
60
|
-
|
|
61
|
-
if (typeof
|
|
62
|
-
|
|
63
|
-
} else if (typeof
|
|
64
|
-
|
|
24
|
+
var len = (el.value || '').length;
|
|
25
|
+
if (typeof el.setSelectionRange === 'function') {
|
|
26
|
+
el.setSelectionRange(0, len);
|
|
27
|
+
} else if (typeof el.select === 'function') {
|
|
28
|
+
el.select();
|
|
65
29
|
}
|
|
66
|
-
} catch (error) {
|
|
67
|
-
console.error('[ShareProjectList] selection failed', {
|
|
68
|
-
source: source,
|
|
69
|
-
error: error,
|
|
70
|
-
});
|
|
71
30
|
}
|
|
72
31
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
setTimeout(function () {
|
|
76
|
-
logActiveElement('[ShareProjectList] after 0ms timeout');
|
|
77
|
-
}, 0);
|
|
78
|
-
|
|
79
|
-
setTimeout(function () {
|
|
80
|
-
logActiveElement('[ShareProjectList] after 50ms timeout');
|
|
81
|
-
}, 50);
|
|
82
|
-
|
|
83
|
-
setTimeout(function () {
|
|
84
|
-
logActiveElement('[ShareProjectList] after 150ms timeout');
|
|
85
|
-
}, 150);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function getInputValue($input) {
|
|
89
|
-
const value = String($input.val() || '').trim();
|
|
90
|
-
|
|
91
|
-
return value;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function bindEvents(elements) {
|
|
95
|
-
const $input = elements.$input;
|
|
96
|
-
const $linkContainer = elements.$linkContainer;
|
|
97
|
-
const $link = elements.$link;
|
|
32
|
+
linkContainer.on('click', function (e) {
|
|
33
|
+
e.preventDefault();
|
|
98
34
|
|
|
99
|
-
|
|
100
|
-
logActiveElement('[ShareProjectList] on input focus');
|
|
101
|
-
});
|
|
35
|
+
focusAndSelectInput();
|
|
102
36
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
});
|
|
37
|
+
var value = ($input.val() || '').trim();
|
|
38
|
+
if (!value) return;
|
|
106
39
|
|
|
107
|
-
|
|
108
|
-
event.preventDefault();
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
$linkContainer.on('mousedown', function () {
|
|
112
|
-
logActiveElement('[ShareProjectList] on mousedown before focus');
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
$linkContainer.on('click', function (event) {
|
|
116
|
-
let value;
|
|
117
|
-
|
|
118
|
-
logActiveElement('[ShareProjectList] before click preventDefault');
|
|
119
|
-
|
|
120
|
-
event.preventDefault();
|
|
121
|
-
|
|
122
|
-
enableFocusAndSelect($input, 'linkContainer click');
|
|
123
|
-
|
|
124
|
-
value = getInputValue($input);
|
|
125
|
-
if (!value) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
copyToClipboard(value, $linkContainer.get(0), { noUpperCase: true })
|
|
40
|
+
copyToClipboard(value, linkContainer[0], { noUpperCase: true })
|
|
130
41
|
.then(function () {
|
|
131
|
-
$
|
|
132
|
-
|
|
133
|
-
logActiveElement('[ShareProjectList] after copy success before refocus');
|
|
134
|
-
|
|
135
|
-
enableFocusAndSelect($input, 'copy success refocus');
|
|
136
|
-
|
|
137
|
-
setTimeout(function () {
|
|
138
|
-
enableFocusAndSelect($input, 'copy success refocus timeout 0');
|
|
139
|
-
}, 0);
|
|
140
|
-
|
|
141
|
-
setTimeout(function () {
|
|
142
|
-
enableFocusAndSelect($input, 'copy success refocus timeout 50');
|
|
143
|
-
}, 50);
|
|
42
|
+
$actualLink.addClass(copyClass);
|
|
144
43
|
})
|
|
145
|
-
.catch(function (
|
|
146
|
-
console.error(
|
|
147
|
-
|
|
148
|
-
logActiveElement('[ShareProjectList] after copy error before refocus');
|
|
149
|
-
|
|
150
|
-
enableFocusAndSelect($input, 'copy error refocus');
|
|
44
|
+
.catch(function (e) {
|
|
45
|
+
console.error(e);
|
|
151
46
|
});
|
|
152
47
|
});
|
|
153
48
|
|
|
154
|
-
$input.on('click', function () {
|
|
155
|
-
|
|
156
|
-
|
|
49
|
+
$input.on('click', function (e) {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
focusAndSelectInput();
|
|
52
|
+
$actualLink.removeClass(copyClass);
|
|
157
53
|
});
|
|
158
54
|
}
|
|
159
55
|
|
|
160
|
-
|
|
161
|
-
var elements = getElements();
|
|
162
|
-
|
|
163
|
-
if (!elements.$input.length || !elements.$linkContainer.length || !elements.$link.length) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
bindEvents(elements);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
return {
|
|
171
|
-
init: init,
|
|
172
|
-
};
|
|
56
|
+
init();
|
|
173
57
|
})();
|
|
174
|
-
|
|
175
|
-
Wick.ShareProjectList.init();
|