wickes-css2 2.106.0-develop.3 → 2.106.0-develop.5

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 (34) hide show
  1. package/build/css/category-main.css +1 -1
  2. package/build/css/components/global-search.css +1 -1
  3. package/build/css/homepage-main.css +1 -1
  4. package/build/css/kitchen-plp-main.css +1 -1
  5. package/build/css/main.css +1 -1
  6. package/build/css/my-account-main-v2.css +1 -1
  7. package/build/css/my-account-main.css +1 -1
  8. package/build/css/pages/page_products-list-combined.css +1 -1
  9. package/build/css/pdp-main-before-combine.css +1 -1
  10. package/build/css/pdp-main-critical.css +1 -1
  11. package/build/css/pdp-main.css +1 -1
  12. package/build/css/plp-main.css +1 -1
  13. package/build/css/store-locator-main.css +1 -1
  14. package/build/js/page/filters/plp-filters-mobile.js +4 -7
  15. package/build/js/page/filters/plp-filters-utils.js +9 -0
  16. package/build/js/page/filters/plp-filters.js +11 -3
  17. package/build/js/plp-filters.min.js +2 -2
  18. package/package.json +2 -2
  19. package/src/js/page/filters/plp-filters-mobile.js +4 -7
  20. package/src/js/page/filters/plp-filters-utils.js +9 -0
  21. package/src/js/page/filters/plp-filters.js +11 -3
  22. package/src/page_plp-with-paint.html +1 -1
  23. package/src/page_plp_v2-energy-efficiency.html +1 -1
  24. package/src/page_plp_v2-favourite-products.html +1 -1
  25. package/src/page_plp_v2-vat.html +1 -1
  26. package/src/page_plp_v2.html +1 -1
  27. package/src/page_product_search-vat.html +1 -1
  28. package/src/page_product_search.html +1 -1
  29. package/src/page_search-results.html +1 -1
  30. package/src/scss/components/_custom-slider.scss +2 -2
  31. package/src/scss/helpers/_variables.scss +6 -15
  32. package/src/scss/pages/page_products-list-combined.scss +34 -2
  33. package/build/js/page/plp-img-v2.js +0 -25
  34. package/src/js/page/plp-img-v2.js +0 -25
@@ -65,11 +65,6 @@ 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
-
73
68
  init() {
74
69
  // two-way binding for input between desktop and modal
75
70
  $(document)
@@ -86,13 +81,14 @@ Wick.PLPFiltersMobile = {
86
81
  $(document)
87
82
  .off('shown.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL)
88
83
  .on('shown.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL, function () {
89
- Wick.PLPFilters.setDOMFromState($(this), Wick.PLPFilters.appliedState);
84
+ Wick.PLPFilters.setDOMFromState($(this), Wick.PLPFilters.draftState);
90
85
  });
91
86
 
92
87
  $(document)
93
88
  .off('hide.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL)
94
89
  .on('hide.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL, function () {
95
- Wick.PLPFiltersMobile.hideAccordions();
90
+ const scope = $(Wick.PLPFiltersMobile.ROOT_WRAPPER).add($(this));
91
+ Wick.PLPFilters.draftState = Wick.PLPFilters.collectStateFromDOM(scope);
96
92
  });
97
93
 
98
94
  // mobile "View results" button in modal
@@ -126,6 +122,7 @@ Wick.PLPFiltersMobile = {
126
122
 
127
123
  e.preventDefault();
128
124
 
125
+ Wick.PLPFilters.draftState = {};
129
126
  Wick.PLPFilters.appliedState = {};
130
127
  Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState, false);
131
128
 
@@ -1,6 +1,14 @@
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
+
4
12
  function syncTwinInputsByName(name, checked, source) {
5
13
  const all = $('.filter-card__checkbox, .swatch__checkbox, .checkbox__input').filter(
6
14
  function () {
@@ -57,6 +65,7 @@ Wick.PLPUtils = (function () {
57
65
  }
58
66
 
59
67
  return {
68
+ cloneState,
60
69
  syncTwinInputsByName,
61
70
  getPanelType,
62
71
  countItems,
@@ -6,6 +6,7 @@ Wick.PLPFilters = {
6
6
  ROOT: '.plp-filters',
7
7
  GROUP: '.plp-filters__group',
8
8
  APPLY_BTN: '.plp-filters__apply',
9
+ draftState: null,
9
10
 
10
11
  INPUTS: '.filter-card__checkbox, .swatch__checkbox, .checkbox__input',
11
12
 
@@ -24,6 +25,7 @@ Wick.PLPFilters = {
24
25
  }
25
26
 
26
27
  Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(rootWrapper);
28
+ Wick.PLPFilters.draftState = Wick.PLPUtils.cloneState(Wick.PLPFilters.appliedState);
27
29
  Wick.PLPFilters.setDOMFromState(rootWrapper, Wick.PLPFilters.appliedState);
28
30
 
29
31
  // 3) chips
@@ -43,8 +45,11 @@ Wick.PLPFilters = {
43
45
  handlePageShow() {
44
46
  window.addEventListener('pageshow', function () {
45
47
  const rootWrapper = $(Wick.PLPFilters.ROOT_WRAPPER);
46
- Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(rootWrapper);
47
- Wick.PLPFilters.setDOMFromState(rootWrapper, Wick.PLPFilters.appliedState);
48
+ const stateScope = rootWrapper.add($(Wick.PLPFiltersMobile.MODAL_SEL));
49
+
50
+ Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(stateScope);
51
+ Wick.PLPFilters.draftState = Wick.PLPFilters.appliedState;
52
+ Wick.PLPFilters.setDOMFromState(stateScope, Wick.PLPFilters.appliedState);
48
53
  });
49
54
  },
50
55
 
@@ -187,7 +192,10 @@ Wick.PLPFilters = {
187
192
 
188
193
  // ===== APPLY
189
194
  applyFromScopes(scopeForCollect, push) {
190
- Wick.PLPFilters.appliedState = Wick.PLPFilters.collectStateFromDOM(scopeForCollect);
195
+ const nextState = Wick.PLPFilters.collectStateFromDOM(scopeForCollect);
196
+
197
+ Wick.PLPFilters.draftState = nextState;
198
+ Wick.PLPFilters.appliedState = nextState;
191
199
  Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState, !!push);
192
200
  },
193
201
 
@@ -1,4 +1,4 @@
1
- var Wick=window.Wick||{};function formatNumberInElement(e){const i=new Intl.NumberFormat("en-GB");document.querySelectorAll(e).forEach(e=>{var t=e.textContent.trim(),t=Number(t.replace(/[^\d]/g,""));Number.isNaN(t)||(e.textContent=i.format(t))})}Wick.PLPUtils=function(){function i(e){return e.find(".plp-filters__options--cards").length?"cards":e.find(".swatch-list").length?"swatches":"text"}return{syncTwinInputsByName:function(e,t,i){$(".filter-card__checkbox, .swatch__checkbox, .checkbox__input").filter(function(){return $(this).attr("name")===e}).each(function(){i&&this===i[0]||$(this).prop("checked",t)})},getPanelType:i,countItems:function(e){var t=i(e);return"cards"===t?e.find(".filter-card").length||0:"swatches"===t?e.find(".swatch").length||0:e.find(".checkbox").length||0},setCardsColumns:function(e,t){(e=e.find(".plp-filters__options--cards")).length&&e.css("grid-template-columns",`repeat(${t}, minmax(0,1fr))`)},getGroupsMeta:function(e,t){const r=[];return e.find(t).each((e,t)=>{var t=$(t),i=t.attr("data-filter")||"";i&&r.push({domName:i,paramKey:i,group:t})}),r}}}(),(Wick=window.Wick||{}).PLPChips={GROUP:".plp-filters__group",TOGGLE:".plp-filters__toggle",INPUTS:".filter-card__checkbox, .swatch__checkbox, .checkbox__input",CHIPS_WRAP_SEL:".plp-selected",BADGE_CLASS:"plp-filters__badge",renderGroupCounters(e){e.find(Wick.PLPChips.GROUP).each((e,t)=>{var t=$(t),i=t.attr("data-filter")||"",i=Wick.PLPFilters.appliedState[i]?Wick.PLPFilters.appliedState[i].size:0,t=t.find(Wick.PLPChips.TOGGLE).find(`.${Wick.PLPChips.BADGE_CLASS} span`);0<i?t.text(i).css("display","flex"):t.text("").hide()})},renderChips(t){t=t.find(Wick.PLPChips.CHIPS_WRAP_SEL);if(t.length){const r=t.find(".plp-selected__list");let e=t.find(".plp-selected__clear-all");r.empty();var i=Wick.PLPFilters.totalApplied();t.find(".plp-selected__clear-all").prop("hidden",0===i),0===i?(t.hide(),e.length&&e.remove()):(Object.keys(Wick.PLPFilters.appliedState).forEach(t=>{Wick.PLPFilters.appliedState[t].forEach(e=>{r.append(`<button type="button" class="pf-chip" data-group="${t}" data-value="${e}">
1
+ var Wick=window.Wick||{};function formatNumberInElement(e){const i=new Intl.NumberFormat("en-GB");document.querySelectorAll(e).forEach(e=>{var t=e.textContent.trim(),t=Number(t.replace(/[^\d]/g,""));Number.isNaN(t)||(e.textContent=i.format(t))})}Wick.PLPUtils=function(){function i(e){return e.find(".plp-filters__options--cards").length?"cards":e.find(".swatch-list").length?"swatches":"text"}return{cloneState:function(t){const i={};return Object.keys(t).forEach(e=>{i[e]=new Set(t[e])}),i},syncTwinInputsByName:function(e,t,i){$(".filter-card__checkbox, .swatch__checkbox, .checkbox__input").filter(function(){return $(this).attr("name")===e}).each(function(){i&&this===i[0]||$(this).prop("checked",t)})},getPanelType:i,countItems:function(e){var t=i(e);return"cards"===t?e.find(".filter-card").length||0:"swatches"===t?e.find(".swatch").length||0:e.find(".checkbox").length||0},setCardsColumns:function(e,t){(e=e.find(".plp-filters__options--cards")).length&&e.css("grid-template-columns",`repeat(${t}, minmax(0,1fr))`)},getGroupsMeta:function(e,t){const r=[];return e.find(t).each((e,t)=>{var t=$(t),i=t.attr("data-filter")||"";i&&r.push({domName:i,paramKey:i,group:t})}),r}}}(),(Wick=window.Wick||{}).PLPChips={GROUP:".plp-filters__group",TOGGLE:".plp-filters__toggle",INPUTS:".filter-card__checkbox, .swatch__checkbox, .checkbox__input",CHIPS_WRAP_SEL:".plp-selected",BADGE_CLASS:"plp-filters__badge",renderGroupCounters(e){e.find(Wick.PLPChips.GROUP).each((e,t)=>{var t=$(t),i=t.attr("data-filter")||"",i=Wick.PLPFilters.appliedState[i]?Wick.PLPFilters.appliedState[i].size:0,t=t.find(Wick.PLPChips.TOGGLE).find(`.${Wick.PLPChips.BADGE_CLASS} span`);0<i?t.text(i).css("display","flex"):t.text("").hide()})},renderChips(t){t=t.find(Wick.PLPChips.CHIPS_WRAP_SEL);if(t.length){const r=t.find(".plp-selected__list");let e=t.find(".plp-selected__clear-all");r.empty();var i=Wick.PLPFilters.totalApplied();t.find(".plp-selected__clear-all").prop("hidden",0===i),0===i?(t.hide(),e.length&&e.remove()):(Object.keys(Wick.PLPFilters.appliedState).forEach(t=>{Wick.PLPFilters.appliedState[t].forEach(e=>{r.append(`<button type="button" class="pf-chip" data-group="${t}" data-value="${e}">
2
2
  <span class="pf-chip__text">${e}</span>
3
3
  <i class="fa fa-times pf-chip__close" aria-hidden="true"></i>
4
4
  <span class="sr-only">Remove ${e} from ${t}</span>
@@ -6,4 +6,4 @@ var Wick=window.Wick||{};function formatNumberInElement(e){const i=new Intl.Numb
6
6
  <button type="button" class="plp-selected__clear-all btn btn-secondary">
7
7
  <i class="fa fa-times" aria-hidden="true"></i><span>Clear all</span>
8
8
  </button>
9
- `),r.append(e)))}},bindChipActions(e){e.on("click",".pf-chip",e=>{e.preventDefault();var e=$(e.target).closest(".pf-chip"),t=e.data("group"),e=e.data("value");Wick.PLPFilters.removeFromApplied(t,e),Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState,!1)}),e.on("click",".plp-selected__clear-all",e=>{e.preventDefault(),Wick.PLPFilters.writeStateToURL({},!1)})}},(Wick=window.Wick||{}).PLPFiltersPanel={ROOT:".plp-filters",BAR:".plp-filters__bar",GROUP:".plp-filters__group",TOGGLE:".plp-filters__toggle",PANEL:".plp-filters__panel",init(){$(document).on("click",Wick.PLPFiltersPanel.TOGGLE,Wick.PLPFiltersPanel.togglePanel),$(document).on("click",e=>{var t=$(Wick.PLPFiltersPanel.ROOT);t.is(e.target)||0!==t.has(e.target).length||Wick.PLPFiltersPanel.closeAll()}),$(document).on("keydown",e=>{"Escape"===e.key&&Wick.PLPFiltersPanel.closeAll()}),$(window).on("resize",_.debounce(()=>{var e=$(Wick.PLPFiltersPanel.GROUP+".is-open").first();e.length&&(e=e.find(Wick.PLPFiltersPanel.TOGGLE).first(),Wick.PLPFiltersPanel.layoutPanel(e))},120))},togglePanel(e){e.preventDefault();const t=$(this);var e=t.closest(Wick.PLPFiltersPanel.GROUP),i=e.children(Wick.PLPFiltersPanel.PANEL).first(),r=!e.hasClass("is-open");Wick.PLPFiltersPanel.closeAll(),r&&(e.addClass("is-open"),t.attr("aria-expanded","true"),i.attr("aria-hidden","false"),requestAnimationFrame(()=>Wick.PLPFiltersPanel.layoutPanel(t)))},closeAll(){$(Wick.PLPFiltersPanel.GROUP).removeClass("is-open"),$(Wick.PLPFiltersPanel.TOGGLE).attr("aria-expanded","false"),$(Wick.PLPFiltersPanel.PANEL).attr("aria-hidden","true").removeClass("plp-filters__panel--wide plp-filters__panel--auto").css({left:"",right:""})},layoutPanel(t){var e=$(Wick.PLPFiltersPanel.ROOT),t=t.closest(Wick.PLPFiltersPanel.GROUP),i=t.children(Wick.PLPFiltersPanel.PANEL).first();let r=t.closest(Wick.PLPFiltersPanel.BAR);if((r=r.length?r:e.find(".plp-filters__bar-desktop:visible").first()||e.find(".plp-filters__bar-desktop").first()||e.find(Wick.PLPFiltersPanel.BAR).filter(":visible").first()||e.find(Wick.PLPFiltersPanel.BAR).first()).length&&i.length){i.removeClass("plp-filters__panel--wide plp-filters__panel--auto").css({left:"",right:"",width:""});var e=r.offset(),t=t.offset(),l=Math.round(r.outerWidth()),t=Math.round(t.left-e.left),e=Wick.PLPUtils.getPanelType(i),o=Math.max(1,Wick.PLPUtils.countItems(i));if("cards"===e){Wick.PLPUtils.setCardsColumns(i,Math.min(o,4));let e=t;o=i.outerWidth();(e=e+o>l?l-o:e)<0&&(e=0),void i.css({left:e-t})}else if("swatches"===e){o=i.outerWidth();let e=t;e+o>l&&(e=l-o)<0&&(e=0),void i.css({left:e-t})}else i.css({right:0})}}},(Wick=window.Wick||{}).PLPFiltersMobile={ROOT_WRAPPER:".page-KitchenPLPPage, .products-list-page:not(.page-responsiveThematicProductListPage)",PRODUCTS_LIST:".products-list-page",INPUTS:".filter-card__checkbox, .swatch__checkbox, .checkbox__input",MODAL_SEL:"#filterModal",MODAL_VIEW_BTN:"#filterModal .btn.btn-primary",MODAL_CLEAR_BTN:"#filterModal .btn.btn-secondary",$ACCORDION:".accordion",$ACCORDION_CONTENT:".accordion__content",ACCORDION_COLLAPSED:"accordion_collapsed",getPlural(e,t,i){return 1===e?t:i},isProductPage(){return 0<$(Wick.PLPFiltersMobile.PRODUCTS_LIST).length},getMobileCounts(){if(Wick.PLPFiltersMobile.isProductPage()){const e=Wick.ProductCounter&&Wick.ProductCounter.count||0;return{mode:"products",total:e}}const e=Wick.PLPFilters.totalApplied();return{mode:"filters",total:e}},updateMobileFilterInfo(){var e,t,i=$('.mobile-nav__item[data-target="#filterModal"] .mobile-nav__info');i.length&&({mode:t,total:e}=Wick.PLPFiltersMobile.getMobileCounts(),"products"!==t)&&(0<e?(t=Wick.PLPFiltersMobile.getPlural(e,"filter","filters"),i.text(e+` ${t} applied`)):i.text("No filters applied"))},updateViewResultsButton(){var e,t=Wick.PLPFiltersMobile.getMobileCounts()["mode"];"products"!==t&&(t=$(Wick.PLPFiltersMobile.MODAL_VIEW_BTN)).length&&(e=Wick.PLPFiltersMobile.getMobileCounts()["total"],t.text(0<e?`View results (${e})`:"View results"))},hideAccordions(){$(Wick.PLPFiltersMobile.$ACCORDION).addClass(Wick.PLPFiltersMobile.ACCORDION_COLLAPSED),$(Wick.PLPFiltersMobile.$ACCORDION_CONTENT).hide()},init(){$(document).off("change.plpFiltersMobile",Wick.PLPFiltersMobile.INPUTS).on("change.plpFiltersMobile",Wick.PLPFiltersMobile.INPUTS,function(){var e=$(this),t=e.attr("name");t&&Wick.PLPUtils.syncTwinInputsByName(t,e.prop("checked"),e)}),$(document).off("shown.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL).on("shown.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL,function(){Wick.PLPFilters.setDOMFromState($(this),Wick.PLPFilters.appliedState)}),$(document).off("hide.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL).on("hide.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL,function(){Wick.PLPFiltersMobile.hideAccordions()}),$(document).off("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_VIEW_BTN).on("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_VIEW_BTN,function(e){$(this).data("is-plp-srp")?(e.stopImmediatePropagation(),e.preventDefault()):(e.preventDefault(),e=$(Wick.PLPFiltersMobile.ROOT_WRAPPER).add($(Wick.PLPFiltersMobile.MODAL_SEL)),Wick.PLPFilters.applyFromScopes(e,!0))}),$(document).off("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_CLEAR_BTN).on("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_CLEAR_BTN,function(e){$(this).data("is-plp-srp")?(e.stopImmediatePropagation(),e.preventDefault()):(e.preventDefault(),Wick.PLPFilters.appliedState={},Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState,!1),$(document).find(Wick.PLPFiltersMobile.INPUTS+":checked").prop("checked",!1),Wick.PLPFilters.updateSelectedUI($(Wick.PLPFiltersMobile.ROOT_WRAPPER)))}),$(document).off("productCounter:change.plpFiltersMobile").on("productCounter:change.plpFiltersMobile",function(){Wick.PLPFiltersMobile.updateMobileFilterInfo(),Wick.PLPFiltersMobile.updateViewResultsButton()}),Wick.PLPFiltersMobile.updateMobileFilterInfo(),Wick.PLPFiltersMobile.updateViewResultsButton()}},(Wick=window.Wick||{}).PLPFilters={ROOT_WRAPPER:".page-KitchenPLPPage, .products-list-page:not(.page-responsiveThematicProductListPage)",ROOT:".plp-filters",GROUP:".plp-filters__group",APPLY_BTN:".plp-filters__apply",INPUTS:".filter-card__checkbox, .swatch__checkbox, .checkbox__input",appliedState:{},init(){Wick.PLPFiltersPanel.init(),Wick.PLPFiltersMobile.init();var e=$(Wick.PLPFilters.ROOT),t=$(Wick.PLPFilters.ROOT_WRAPPER);e.length&&(Wick.PLPFilters.appliedState=Wick.PLPFilters.readStateFromURL(t),Wick.PLPFilters.setDOMFromState(t,Wick.PLPFilters.appliedState),Wick.PLPChips.bindChipActions(t),$(document).on("click",Wick.PLPFilters.APPLY_BTN,Wick.PLPFilters.applyFilters),Wick.PLPFilters.updateSelectedUI(t),Wick.PLPFilters.handlePageShow())},handlePageShow(){window.addEventListener("pageshow",function(){var e=$(Wick.PLPFilters.ROOT_WRAPPER);Wick.PLPFilters.appliedState=Wick.PLPFilters.readStateFromURL(e),Wick.PLPFilters.setDOMFromState(e,Wick.PLPFilters.appliedState)})},readStateFromURL(e){var t=new URL(window.location.href).searchParams;const i={};e=Wick.PLPUtils.getGroupsMeta(e,Wick.PLPFilters.GROUP);if(e.length){const o={};e.forEach(e=>{o[e.domName]=e});for(var[r,l]of t.entries()){const s=o[r];s&&(r=l.split(",").map(e=>e.trim()).filter(Boolean)).length&&r.forEach(e=>{var t=s.group.find(Wick.PLPFilters.INPUTS).filter(function(){return $(this).val()===e}).first();t.length&&(t=t.val(),i[s.domName]||(i[s.domName]=new Set),i[s.domName].add(t))})}}return i},writeStateToURL(i){var e,t,r=new URL(window.location.href),l=Wick.PLPUtils.getGroupsMeta($(Wick.PLPFilters.ROOT_WRAPPER),Wick.PLPFilters.GROUP),o=new Set(l.map(e=>e.domName));const s=[];for([e,t]of r.searchParams.entries())o.has(e)||s.push(encodeURIComponent(e)+"="+encodeURIComponent(t));l.forEach(e=>{var t=i[e.domName];t&&t.size&&(e=encodeURIComponent(e.domName),t=Array.from(t).map(e=>encodeURIComponent(e)).join(","),s.push(e+"="+t))}),r.search=s.join("&"),window.location.href=r.origin+r.pathname+r.search},setDOMFromState(t,e){t.find(Wick.PLPFilters.INPUTS).prop("checked",!1),Object.keys(e).forEach(r=>{e[r].forEach(e=>{const i=e;e=t.find(Wick.PLPFilters.INPUTS).filter(function(){var e=$(this),t=e.val()===i,e=e.closest(Wick.PLPFilters.GROUP),e=!e.length||e.attr("data-filter")===r;return t&&e}).first();e.length&&e.prop("checked",!0)})})},collectStateFromDOM(e){const r={};return e.find(Wick.PLPFilters.INPUTS).filter(":checked").each((e,t)=>{var t=$(t),i=t.closest(Wick.PLPFilters.GROUP).attr("data-filter")||"";i&&(t=(t.val()||"").trim())&&(r[i]||(r[i]=new Set),r[i].add(t))}),r},applyFromScopes(e,t){Wick.PLPFilters.appliedState=Wick.PLPFilters.collectStateFromDOM(e),Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState,!!t)},applyFilters(e){e.preventDefault();e=$(Wick.PLPFilters.ROOT_WRAPPER).add($(Wick.PLPFiltersMobile.MODAL_SEL));Wick.PLPFilters.applyFromScopes(e,!0)},updateSelectedUI(e){Wick.PLPChips.renderGroupCounters(e),Wick.PLPChips.renderChips(e),Wick.PLPFiltersMobile.updateMobileFilterInfo()},totalApplied(){return Object.values(Wick.PLPFilters.appliedState).reduce((e,t)=>e+t.size,0)},removeFromApplied(e,t){var i=Wick.PLPFilters.appliedState[e];i&&(i.delete(t),0===i.size)&&delete Wick.PLPFilters.appliedState[e]},exportState(){const t={};return Object.keys(Wick.PLPFilters.appliedState).forEach(e=>{t[e]=Array.from(Wick.PLPFilters.appliedState[e])}),t}},Wick.Overlay=function(){if($("body").hasClass("page-responsiveThematicProductListPage")){const t=$(".filter-results_mobile");$(document).on("click","#open-overlay",function(e){e.preventDefault(),$("body").addClass("is-filters-visible"),t.addClass("show")}),$(document).on("click","#close-overlay, .filter-results__btn-close",function(e){e.preventDefault(),t.hasClass("show")&&($("body").removeClass("is-filters-visible"),t.removeClass("show"))}),$(document).on("click",'.filter-results_desktop .filter__item input[type="checkbox"]',function(){$(this).closest("form").submit()})}}(),$(function(){Wick.PLPFilters.init()}),(Wick=window.Wick||{}).Sort={ROOT:".page-KitchenPLPPage, .products-list-page:not(.page-responsiveThematicProductListPage)",WRAP:".sort",DROPDOWN:".sort-dd",OPTION:".sort-opt",INFO:".js-sort-info",CHEVRON:".sort__chevron",TRIGGER_MOBILE:".sort--mobile",TRIGGER_DESKTOP_BTN:".sort--desktop .sort-button",MAP_VALUE_TO_LABEL:{relevance:"Relevance",priceLow:"Price (lowest first)",priceHigh:"Price (highest first)"},init:function(){var e=$(Wick.Sort.ROOT);e.length&&(e.on("click",Wick.Sort.TRIGGER_MOBILE,e=>{$(e.target).closest(Wick.Sort.DROPDOWN).length||(e.preventDefault(),Wick.Sort.toggle($(e.currentTarget)))}),e.on("click",Wick.Sort.TRIGGER_DESKTOP_BTN,e=>{e.preventDefault(),Wick.Sort.toggle($(e.currentTarget).closest(Wick.Sort.WRAP))}),e.on("keydown",Wick.Sort.TRIGGER_MOBILE+", "+Wick.Sort.TRIGGER_DESKTOP_BTN,e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Wick.Sort.toggle($(e.currentTarget).closest(Wick.Sort.WRAP)))}),e.on("click",Wick.Sort.OPTION,e=>{e.preventDefault(),e.stopPropagation();var e=$(e.currentTarget),t=e.data("value");e.data("is-plp-srp")||Wick.Sort.updateSortParamInURL(t)}),$(document).on("click",e=>{var t=$(Wick.Sort.WRAP+".is-open");t.length&&!t.is(e.target)&&0===t.has(e.target).length&&Wick.Sort.closeAll()}),$(document).on("keydown",e=>{"Escape"===e.key&&Wick.Sort.closeAll()}),Wick.Sort.bootstrap())},updateSortParamInURL:function(e){var t=new URL(window.location.href),i=t.searchParams;"relevance"===e?i.delete("sortBy"):i.set("sortBy",e),t.search=i.toString(),window.location.href=t.toString()},toggle:function(e){var t=e.hasClass("is-open");Wick.Sort.closeAll(),t||(e.addClass("is-open"),e.find(Wick.Sort.DROPDOWN).removeAttr("hidden"),Wick.Sort.setExpanded(e,!0),window.Wick&&Wick.PLPFilters&&"function"==typeof Wick.PLPFilters.closeAll&&Wick.PLPFilters.closeAll())},close:function(e){e.removeClass("is-open"),e.find(Wick.Sort.DROPDOWN).attr("hidden",!0),Wick.Sort.setExpanded(e,!1)},closeAll:function(){var e=$(Wick.Sort.WRAP);e.removeClass("is-open"),e.find(Wick.Sort.DROPDOWN).attr("hidden",!0),e.each((e,t)=>Wick.Sort.setExpanded($(t),!1))},bootstrap:function(){const i=new URLSearchParams(window.location.search).get("sortBy")||"relevance";var e=Wick.Sort.valueToLabel(i),t=($(Wick.Sort.WRAP).each((e,t)=>{t=$(t);t.find(Wick.Sort.OPTION).first().data("is-plp-srp")||t.find(Wick.Sort.OPTION).removeClass("is-active").filter(`[data-value="${i}"]`).addClass("is-active")}),$(Wick.Sort.OPTION).first().data("is-plp-srp"));t||($(document).trigger("sort:change",{value:i,label:e}),$(Wick.Sort.INFO).text(e))},setExpanded:function(e,t){e=e.is(".sort--mobile")?e:e.find(".sort-button").first();e.length&&e.attr("aria-expanded",t?"true":"false")},valueToLabel:function(e){return Wick.Sort.MAP_VALUE_TO_LABEL[e]||"Relevance"},labelToValue:function(e){var t,i;for([t,i]of Object.entries(Wick.Sort.MAP_VALUE_TO_LABEL))if(i.toLowerCase()===e.toString().toLowerCase())return t;return"relevance"}},$(function(){Wick.Sort.init()}),function(){const i={$filters:$(".plp-filters"),$filterBar:$(".plp-filters__bar-mobile"),$filterModal:$(".filter-modal"),$offerBanner:$(".offer-banner"),offerBannerCloseIcon:".icon.notification__close"},r={plpFiltersStuck:"plp-filters__bar-stuck"};function l(){return"down-sm"===Wick.Responsive.getCurrentBreakpoint()}function o(){return i.$offerBanner.length&&i.$offerBanner.outerHeight(!0)||0}function e(){var e;i.$filters.length&&(l()?(e=o(),i.$filters.css("top",0<e?e+"px":"")):i.$filters.css("top",""))}function t(){var e,t;l()?i.$filters.length&&i.$filterBar.length&&(e=i.$filters.get(0))&&(e=e.getBoundingClientRect(),t=o(),e.top<=t?i.$filterBar.addClass(r.plpFiltersStuck):i.$filterBar.removeClass(r.plpFiltersStuck)):i.$filterBar.removeClass(r.plpFiltersStuck)}function s(){$(document).on("click",i.offerBannerCloseIcon,function(){i.$filters.length&&i.$filters.css("top","0px")})}$(document).ready(function(){e(),t(),$(window).on("scroll",_.debounce(t,50)),$(window).on("resize",_.debounce(function(){"down-sm"!==Wick.Responsive.getCurrentBreakpoint()&&i.$filterModal.modal("hide"),e(),t()},100)),s()})}(),function(){const t={$sidebar:$(".filter-results_desktop"),$heading:$(".filter-results__heading"),$offerBanner:$(".offer-banner"),$offerBannerIndent:40,offerBannerCloseIcon:".icon.notification__close, .icon.notification__close_white, .notification__close"};function e(){var e;t.$sidebar.length&&("down-sm"===Wick.Responsive.getCurrentBreakpoint()?(t.$sidebar.css("top",""),t.$heading.css("top","")):(e=t.$offerBanner.length?t.$offerBanner.outerHeight(!0)+t.$offerBannerIndent||0:t.$offerBannerIndent,t.$sidebar.css("top",e+"px"),t.$heading.length&&t.$heading.css("top",e+"px")))}$(document).ready(function(){formatNumberInElement(".product-count"),e(),$(window).on("resize",_.debounce(e,100)),$(document).on("click",t.offerBannerCloseIcon,function(){setTimeout(e,0)})})}();
9
+ `),r.append(e)))}},bindChipActions(e){e.on("click",".pf-chip",e=>{e.preventDefault();var e=$(e.target).closest(".pf-chip"),t=e.data("group"),e=e.data("value");Wick.PLPFilters.removeFromApplied(t,e),Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState,!1)}),e.on("click",".plp-selected__clear-all",e=>{e.preventDefault(),Wick.PLPFilters.writeStateToURL({},!1)})}},(Wick=window.Wick||{}).PLPFiltersPanel={ROOT:".plp-filters",BAR:".plp-filters__bar",GROUP:".plp-filters__group",TOGGLE:".plp-filters__toggle",PANEL:".plp-filters__panel",init(){$(document).on("click",Wick.PLPFiltersPanel.TOGGLE,Wick.PLPFiltersPanel.togglePanel),$(document).on("click",e=>{var t=$(Wick.PLPFiltersPanel.ROOT);t.is(e.target)||0!==t.has(e.target).length||Wick.PLPFiltersPanel.closeAll()}),$(document).on("keydown",e=>{"Escape"===e.key&&Wick.PLPFiltersPanel.closeAll()}),$(window).on("resize",_.debounce(()=>{var e=$(Wick.PLPFiltersPanel.GROUP+".is-open").first();e.length&&(e=e.find(Wick.PLPFiltersPanel.TOGGLE).first(),Wick.PLPFiltersPanel.layoutPanel(e))},120))},togglePanel(e){e.preventDefault();const t=$(this);var e=t.closest(Wick.PLPFiltersPanel.GROUP),i=e.children(Wick.PLPFiltersPanel.PANEL).first(),r=!e.hasClass("is-open");Wick.PLPFiltersPanel.closeAll(),r&&(e.addClass("is-open"),t.attr("aria-expanded","true"),i.attr("aria-hidden","false"),requestAnimationFrame(()=>Wick.PLPFiltersPanel.layoutPanel(t)))},closeAll(){$(Wick.PLPFiltersPanel.GROUP).removeClass("is-open"),$(Wick.PLPFiltersPanel.TOGGLE).attr("aria-expanded","false"),$(Wick.PLPFiltersPanel.PANEL).attr("aria-hidden","true").removeClass("plp-filters__panel--wide plp-filters__panel--auto").css({left:"",right:""})},layoutPanel(t){var e=$(Wick.PLPFiltersPanel.ROOT),t=t.closest(Wick.PLPFiltersPanel.GROUP),i=t.children(Wick.PLPFiltersPanel.PANEL).first();let r=t.closest(Wick.PLPFiltersPanel.BAR);if((r=r.length?r:e.find(".plp-filters__bar-desktop:visible").first()||e.find(".plp-filters__bar-desktop").first()||e.find(Wick.PLPFiltersPanel.BAR).filter(":visible").first()||e.find(Wick.PLPFiltersPanel.BAR).first()).length&&i.length){i.removeClass("plp-filters__panel--wide plp-filters__panel--auto").css({left:"",right:"",width:""});var e=r.offset(),t=t.offset(),l=Math.round(r.outerWidth()),t=Math.round(t.left-e.left),e=Wick.PLPUtils.getPanelType(i),o=Math.max(1,Wick.PLPUtils.countItems(i));if("cards"===e){Wick.PLPUtils.setCardsColumns(i,Math.min(o,4));let e=t;o=i.outerWidth();(e=e+o>l?l-o:e)<0&&(e=0),void i.css({left:e-t})}else if("swatches"===e){o=i.outerWidth();let e=t;e+o>l&&(e=l-o)<0&&(e=0),void i.css({left:e-t})}else i.css({right:0})}}},(Wick=window.Wick||{}).PLPFiltersMobile={ROOT_WRAPPER:".page-KitchenPLPPage, .products-list-page:not(.page-responsiveThematicProductListPage)",PRODUCTS_LIST:".products-list-page",INPUTS:".filter-card__checkbox, .swatch__checkbox, .checkbox__input",MODAL_SEL:"#filterModal",MODAL_VIEW_BTN:"#filterModal .btn.btn-primary",MODAL_CLEAR_BTN:"#filterModal .btn.btn-secondary",$ACCORDION:".accordion",$ACCORDION_CONTENT:".accordion__content",ACCORDION_COLLAPSED:"accordion_collapsed",getPlural(e,t,i){return 1===e?t:i},isProductPage(){return 0<$(Wick.PLPFiltersMobile.PRODUCTS_LIST).length},getMobileCounts(){if(Wick.PLPFiltersMobile.isProductPage()){const e=Wick.ProductCounter&&Wick.ProductCounter.count||0;return{mode:"products",total:e}}const e=Wick.PLPFilters.totalApplied();return{mode:"filters",total:e}},updateMobileFilterInfo(){var e,t,i=$('.mobile-nav__item[data-target="#filterModal"] .mobile-nav__info');i.length&&({mode:t,total:e}=Wick.PLPFiltersMobile.getMobileCounts(),"products"!==t)&&(0<e?(t=Wick.PLPFiltersMobile.getPlural(e,"filter","filters"),i.text(e+` ${t} applied`)):i.text("No filters applied"))},updateViewResultsButton(){var e,t=Wick.PLPFiltersMobile.getMobileCounts()["mode"];"products"!==t&&(t=$(Wick.PLPFiltersMobile.MODAL_VIEW_BTN)).length&&(e=Wick.PLPFiltersMobile.getMobileCounts()["total"],t.text(0<e?`View results (${e})`:"View results"))},init(){$(document).off("change.plpFiltersMobile",Wick.PLPFiltersMobile.INPUTS).on("change.plpFiltersMobile",Wick.PLPFiltersMobile.INPUTS,function(){var e=$(this),t=e.attr("name");t&&Wick.PLPUtils.syncTwinInputsByName(t,e.prop("checked"),e)}),$(document).off("shown.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL).on("shown.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL,function(){Wick.PLPFilters.setDOMFromState($(this),Wick.PLPFilters.draftState)}),$(document).off("hide.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL).on("hide.bs.modal.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_SEL,function(){var e=$(Wick.PLPFiltersMobile.ROOT_WRAPPER).add($(this));Wick.PLPFilters.draftState=Wick.PLPFilters.collectStateFromDOM(e)}),$(document).off("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_VIEW_BTN).on("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_VIEW_BTN,function(e){$(this).data("is-plp-srp")?(e.stopImmediatePropagation(),e.preventDefault()):(e.preventDefault(),e=$(Wick.PLPFiltersMobile.ROOT_WRAPPER).add($(Wick.PLPFiltersMobile.MODAL_SEL)),Wick.PLPFilters.applyFromScopes(e,!0))}),$(document).off("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_CLEAR_BTN).on("click.plpFiltersMobile",Wick.PLPFiltersMobile.MODAL_CLEAR_BTN,function(e){$(this).data("is-plp-srp")?(e.stopImmediatePropagation(),e.preventDefault()):(e.preventDefault(),Wick.PLPFilters.draftState={},Wick.PLPFilters.appliedState={},Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState,!1),$(document).find(Wick.PLPFiltersMobile.INPUTS+":checked").prop("checked",!1),Wick.PLPFilters.updateSelectedUI($(Wick.PLPFiltersMobile.ROOT_WRAPPER)))}),$(document).off("productCounter:change.plpFiltersMobile").on("productCounter:change.plpFiltersMobile",function(){Wick.PLPFiltersMobile.updateMobileFilterInfo(),Wick.PLPFiltersMobile.updateViewResultsButton()}),Wick.PLPFiltersMobile.updateMobileFilterInfo(),Wick.PLPFiltersMobile.updateViewResultsButton()}},(Wick=window.Wick||{}).PLPFilters={ROOT_WRAPPER:".page-KitchenPLPPage, .products-list-page:not(.page-responsiveThematicProductListPage)",ROOT:".plp-filters",GROUP:".plp-filters__group",APPLY_BTN:".plp-filters__apply",draftState:null,INPUTS:".filter-card__checkbox, .swatch__checkbox, .checkbox__input",appliedState:{},init(){Wick.PLPFiltersPanel.init(),Wick.PLPFiltersMobile.init();var e=$(Wick.PLPFilters.ROOT),t=$(Wick.PLPFilters.ROOT_WRAPPER);e.length&&(Wick.PLPFilters.appliedState=Wick.PLPFilters.readStateFromURL(t),Wick.PLPFilters.draftState=Wick.PLPUtils.cloneState(Wick.PLPFilters.appliedState),Wick.PLPFilters.setDOMFromState(t,Wick.PLPFilters.appliedState),Wick.PLPChips.bindChipActions(t),$(document).on("click",Wick.PLPFilters.APPLY_BTN,Wick.PLPFilters.applyFilters),Wick.PLPFilters.updateSelectedUI(t),Wick.PLPFilters.handlePageShow())},handlePageShow(){window.addEventListener("pageshow",function(){var e=$(Wick.PLPFilters.ROOT_WRAPPER).add($(Wick.PLPFiltersMobile.MODAL_SEL));Wick.PLPFilters.appliedState=Wick.PLPFilters.readStateFromURL(e),Wick.PLPFilters.draftState=Wick.PLPFilters.appliedState,Wick.PLPFilters.setDOMFromState(e,Wick.PLPFilters.appliedState)})},readStateFromURL(e){var t=new URL(window.location.href).searchParams;const i={};e=Wick.PLPUtils.getGroupsMeta(e,Wick.PLPFilters.GROUP);if(e.length){const o={};e.forEach(e=>{o[e.domName]=e});for(var[r,l]of t.entries()){const s=o[r];s&&(r=l.split(",").map(e=>e.trim()).filter(Boolean)).length&&r.forEach(e=>{var t=s.group.find(Wick.PLPFilters.INPUTS).filter(function(){return $(this).val()===e}).first();t.length&&(t=t.val(),i[s.domName]||(i[s.domName]=new Set),i[s.domName].add(t))})}}return i},writeStateToURL(i){var e,t,r=new URL(window.location.href),l=Wick.PLPUtils.getGroupsMeta($(Wick.PLPFilters.ROOT_WRAPPER),Wick.PLPFilters.GROUP),o=new Set(l.map(e=>e.domName));const s=[];for([e,t]of r.searchParams.entries())o.has(e)||s.push(encodeURIComponent(e)+"="+encodeURIComponent(t));l.forEach(e=>{var t=i[e.domName];t&&t.size&&(e=encodeURIComponent(e.domName),t=Array.from(t).map(e=>encodeURIComponent(e)).join(","),s.push(e+"="+t))}),r.search=s.join("&"),window.location.href=r.origin+r.pathname+r.search},setDOMFromState(t,e){t.find(Wick.PLPFilters.INPUTS).prop("checked",!1),Object.keys(e).forEach(r=>{e[r].forEach(e=>{const i=e;e=t.find(Wick.PLPFilters.INPUTS).filter(function(){var e=$(this),t=e.val()===i,e=e.closest(Wick.PLPFilters.GROUP),e=!e.length||e.attr("data-filter")===r;return t&&e}).first();e.length&&e.prop("checked",!0)})})},collectStateFromDOM(e){const r={};return e.find(Wick.PLPFilters.INPUTS).filter(":checked").each((e,t)=>{var t=$(t),i=t.closest(Wick.PLPFilters.GROUP).attr("data-filter")||"";i&&(t=(t.val()||"").trim())&&(r[i]||(r[i]=new Set),r[i].add(t))}),r},applyFromScopes(e,t){e=Wick.PLPFilters.collectStateFromDOM(e);Wick.PLPFilters.draftState=e,Wick.PLPFilters.appliedState=e,Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState,!!t)},applyFilters(e){e.preventDefault();e=$(Wick.PLPFilters.ROOT_WRAPPER).add($(Wick.PLPFiltersMobile.MODAL_SEL));Wick.PLPFilters.applyFromScopes(e,!0)},updateSelectedUI(e){Wick.PLPChips.renderGroupCounters(e),Wick.PLPChips.renderChips(e),Wick.PLPFiltersMobile.updateMobileFilterInfo()},totalApplied(){return Object.values(Wick.PLPFilters.appliedState).reduce((e,t)=>e+t.size,0)},removeFromApplied(e,t){var i=Wick.PLPFilters.appliedState[e];i&&(i.delete(t),0===i.size)&&delete Wick.PLPFilters.appliedState[e]},exportState(){const t={};return Object.keys(Wick.PLPFilters.appliedState).forEach(e=>{t[e]=Array.from(Wick.PLPFilters.appliedState[e])}),t}},Wick.Overlay=function(){if($("body").hasClass("page-responsiveThematicProductListPage")){const t=$(".filter-results_mobile");$(document).on("click","#open-overlay",function(e){e.preventDefault(),$("body").addClass("is-filters-visible"),t.addClass("show")}),$(document).on("click","#close-overlay, .filter-results__btn-close",function(e){e.preventDefault(),t.hasClass("show")&&($("body").removeClass("is-filters-visible"),t.removeClass("show"))}),$(document).on("click",'.filter-results_desktop .filter__item input[type="checkbox"]',function(){$(this).closest("form").submit()})}}(),$(function(){Wick.PLPFilters.init()}),(Wick=window.Wick||{}).Sort={ROOT:".page-KitchenPLPPage, .products-list-page:not(.page-responsiveThematicProductListPage)",WRAP:".sort",DROPDOWN:".sort-dd",OPTION:".sort-opt",INFO:".js-sort-info",CHEVRON:".sort__chevron",TRIGGER_MOBILE:".sort--mobile",TRIGGER_DESKTOP_BTN:".sort--desktop .sort-button",MAP_VALUE_TO_LABEL:{relevance:"Relevance",priceLow:"Price (lowest first)",priceHigh:"Price (highest first)"},init:function(){var e=$(Wick.Sort.ROOT);e.length&&(e.on("click",Wick.Sort.TRIGGER_MOBILE,e=>{$(e.target).closest(Wick.Sort.DROPDOWN).length||(e.preventDefault(),Wick.Sort.toggle($(e.currentTarget)))}),e.on("click",Wick.Sort.TRIGGER_DESKTOP_BTN,e=>{e.preventDefault(),Wick.Sort.toggle($(e.currentTarget).closest(Wick.Sort.WRAP))}),e.on("keydown",Wick.Sort.TRIGGER_MOBILE+", "+Wick.Sort.TRIGGER_DESKTOP_BTN,e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Wick.Sort.toggle($(e.currentTarget).closest(Wick.Sort.WRAP)))}),e.on("click",Wick.Sort.OPTION,e=>{e.preventDefault(),e.stopPropagation();var e=$(e.currentTarget),t=e.data("value");e.data("is-plp-srp")||Wick.Sort.updateSortParamInURL(t)}),$(document).on("click",e=>{var t=$(Wick.Sort.WRAP+".is-open");t.length&&!t.is(e.target)&&0===t.has(e.target).length&&Wick.Sort.closeAll()}),$(document).on("keydown",e=>{"Escape"===e.key&&Wick.Sort.closeAll()}),Wick.Sort.bootstrap())},updateSortParamInURL:function(e){var t=new URL(window.location.href),i=t.searchParams;"relevance"===e?i.delete("sortBy"):i.set("sortBy",e),t.search=i.toString(),window.location.href=t.toString()},toggle:function(e){var t=e.hasClass("is-open");Wick.Sort.closeAll(),t||(e.addClass("is-open"),e.find(Wick.Sort.DROPDOWN).removeAttr("hidden"),Wick.Sort.setExpanded(e,!0),window.Wick&&Wick.PLPFilters&&"function"==typeof Wick.PLPFilters.closeAll&&Wick.PLPFilters.closeAll())},close:function(e){e.removeClass("is-open"),e.find(Wick.Sort.DROPDOWN).attr("hidden",!0),Wick.Sort.setExpanded(e,!1)},closeAll:function(){var e=$(Wick.Sort.WRAP);e.removeClass("is-open"),e.find(Wick.Sort.DROPDOWN).attr("hidden",!0),e.each((e,t)=>Wick.Sort.setExpanded($(t),!1))},bootstrap:function(){const i=new URLSearchParams(window.location.search).get("sortBy")||"relevance";var e=Wick.Sort.valueToLabel(i),t=($(Wick.Sort.WRAP).each((e,t)=>{t=$(t);t.find(Wick.Sort.OPTION).first().data("is-plp-srp")||t.find(Wick.Sort.OPTION).removeClass("is-active").filter(`[data-value="${i}"]`).addClass("is-active")}),$(Wick.Sort.OPTION).first().data("is-plp-srp"));t||($(document).trigger("sort:change",{value:i,label:e}),$(Wick.Sort.INFO).text(e))},setExpanded:function(e,t){e=e.is(".sort--mobile")?e:e.find(".sort-button").first();e.length&&e.attr("aria-expanded",t?"true":"false")},valueToLabel:function(e){return Wick.Sort.MAP_VALUE_TO_LABEL[e]||"Relevance"},labelToValue:function(e){var t,i;for([t,i]of Object.entries(Wick.Sort.MAP_VALUE_TO_LABEL))if(i.toLowerCase()===e.toString().toLowerCase())return t;return"relevance"}},$(function(){Wick.Sort.init()}),function(){const i={$filters:$(".plp-filters"),$filterBar:$(".plp-filters__bar-mobile"),$filterModal:$(".filter-modal"),$offerBanner:$(".offer-banner"),offerBannerCloseIcon:".icon.notification__close"},r={plpFiltersStuck:"plp-filters__bar-stuck"};function l(){return"down-sm"===Wick.Responsive.getCurrentBreakpoint()}function o(){return i.$offerBanner.length&&i.$offerBanner.outerHeight(!0)||0}function e(){var e;i.$filters.length&&(l()?(e=o(),i.$filters.css("top",0<e?e+"px":"")):i.$filters.css("top",""))}function t(){var e,t;l()?i.$filters.length&&i.$filterBar.length&&(e=i.$filters.get(0))&&(e=e.getBoundingClientRect(),t=o(),e.top<=t?i.$filterBar.addClass(r.plpFiltersStuck):i.$filterBar.removeClass(r.plpFiltersStuck)):i.$filterBar.removeClass(r.plpFiltersStuck)}function s(){$(document).on("click",i.offerBannerCloseIcon,function(){i.$filters.length&&i.$filters.css("top","0px")})}$(document).ready(function(){e(),t(),$(window).on("scroll",_.debounce(t,50)),$(window).on("resize",_.debounce(function(){"down-sm"!==Wick.Responsive.getCurrentBreakpoint()&&i.$filterModal.modal("hide"),e(),t()},100)),s()})}(),function(){const t={$sidebar:$(".filter-results_desktop"),$heading:$(".filter-results__heading"),$offerBanner:$(".offer-banner"),$offerBannerIndent:40,offerBannerCloseIcon:".icon.notification__close, .icon.notification__close_white, .notification__close"};function e(){var e;t.$sidebar.length&&("down-sm"===Wick.Responsive.getCurrentBreakpoint()?(t.$sidebar.css("top",""),t.$heading.css("top","")):(e=t.$offerBanner.length?t.$offerBanner.outerHeight(!0)+t.$offerBannerIndent||0:t.$offerBannerIndent,t.$sidebar.css("top",e+"px"),t.$heading.length&&t.$heading.css("top",e+"px")))}$(document).ready(function(){formatNumberInElement(".product-count"),e(),$(window).on("resize",_.debounce(e,100)),$(document).on("click",t.offerBannerCloseIcon,function(){setTimeout(e,0)})})}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickes-css2",
3
- "version": "2.106.0-develop.3",
3
+ "version": "2.106.0-develop.5",
4
4
  "description": "CSS and JS and page templates in use by Wickes",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -125,7 +125,7 @@
125
125
  "branches": [
126
126
  "alt-master",
127
127
  {
128
- "name": "develop",
128
+ "name": "custom-tag/0.5.0-icons",
129
129
  "prerelease": "${name.replace(/^custom-tag\\//g, '')}"
130
130
  }
131
131
  ],
@@ -65,11 +65,6 @@ 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
-
73
68
  init() {
74
69
  // two-way binding for input between desktop and modal
75
70
  $(document)
@@ -86,13 +81,14 @@ Wick.PLPFiltersMobile = {
86
81
  $(document)
87
82
  .off('shown.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL)
88
83
  .on('shown.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL, function () {
89
- Wick.PLPFilters.setDOMFromState($(this), Wick.PLPFilters.appliedState);
84
+ Wick.PLPFilters.setDOMFromState($(this), Wick.PLPFilters.draftState);
90
85
  });
91
86
 
92
87
  $(document)
93
88
  .off('hide.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL)
94
89
  .on('hide.bs.modal.plpFiltersMobile', Wick.PLPFiltersMobile.MODAL_SEL, function () {
95
- Wick.PLPFiltersMobile.hideAccordions();
90
+ const scope = $(Wick.PLPFiltersMobile.ROOT_WRAPPER).add($(this));
91
+ Wick.PLPFilters.draftState = Wick.PLPFilters.collectStateFromDOM(scope);
96
92
  });
97
93
 
98
94
  // mobile "View results" button in modal
@@ -126,6 +122,7 @@ Wick.PLPFiltersMobile = {
126
122
 
127
123
  e.preventDefault();
128
124
 
125
+ Wick.PLPFilters.draftState = {};
129
126
  Wick.PLPFilters.appliedState = {};
130
127
  Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState, false);
131
128
 
@@ -1,6 +1,14 @@
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
+
4
12
  function syncTwinInputsByName(name, checked, source) {
5
13
  const all = $('.filter-card__checkbox, .swatch__checkbox, .checkbox__input').filter(
6
14
  function () {
@@ -57,6 +65,7 @@ Wick.PLPUtils = (function () {
57
65
  }
58
66
 
59
67
  return {
68
+ cloneState,
60
69
  syncTwinInputsByName,
61
70
  getPanelType,
62
71
  countItems,
@@ -6,6 +6,7 @@ Wick.PLPFilters = {
6
6
  ROOT: '.plp-filters',
7
7
  GROUP: '.plp-filters__group',
8
8
  APPLY_BTN: '.plp-filters__apply',
9
+ draftState: null,
9
10
 
10
11
  INPUTS: '.filter-card__checkbox, .swatch__checkbox, .checkbox__input',
11
12
 
@@ -24,6 +25,7 @@ Wick.PLPFilters = {
24
25
  }
25
26
 
26
27
  Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(rootWrapper);
28
+ Wick.PLPFilters.draftState = Wick.PLPUtils.cloneState(Wick.PLPFilters.appliedState);
27
29
  Wick.PLPFilters.setDOMFromState(rootWrapper, Wick.PLPFilters.appliedState);
28
30
 
29
31
  // 3) chips
@@ -43,8 +45,11 @@ Wick.PLPFilters = {
43
45
  handlePageShow() {
44
46
  window.addEventListener('pageshow', function () {
45
47
  const rootWrapper = $(Wick.PLPFilters.ROOT_WRAPPER);
46
- Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(rootWrapper);
47
- Wick.PLPFilters.setDOMFromState(rootWrapper, Wick.PLPFilters.appliedState);
48
+ const stateScope = rootWrapper.add($(Wick.PLPFiltersMobile.MODAL_SEL));
49
+
50
+ Wick.PLPFilters.appliedState = Wick.PLPFilters.readStateFromURL(stateScope);
51
+ Wick.PLPFilters.draftState = Wick.PLPFilters.appliedState;
52
+ Wick.PLPFilters.setDOMFromState(stateScope, Wick.PLPFilters.appliedState);
48
53
  });
49
54
  },
50
55
 
@@ -187,7 +192,10 @@ Wick.PLPFilters = {
187
192
 
188
193
  // ===== APPLY
189
194
  applyFromScopes(scopeForCollect, push) {
190
- Wick.PLPFilters.appliedState = Wick.PLPFilters.collectStateFromDOM(scopeForCollect);
195
+ const nextState = Wick.PLPFilters.collectStateFromDOM(scopeForCollect);
196
+
197
+ Wick.PLPFilters.draftState = nextState;
198
+ Wick.PLPFilters.appliedState = nextState;
191
199
  Wick.PLPFilters.writeStateToURL(Wick.PLPFilters.appliedState, !!push);
192
200
  },
193
201
 
@@ -63,7 +63,7 @@
63
63
  {{/content}}
64
64
  {{#content "foot" mode="append"}}
65
65
  <script defer src="./js/page/plp.js"></script>
66
- <script defer src="./js/page/plp-img-v2.js"></script>
66
+
67
67
  <script defer src="./js/page/plp-cards-v2.js"></script>
68
68
  <script defer src="./js/search-filter.min.js"></script>
69
69
  {{/content}}
@@ -70,7 +70,7 @@
70
70
 
71
71
  <script defer src="./js/plp.bundle.min.js"></script>
72
72
  <script defer src="./js/energy-efficiency.min.js"></script>
73
- <script defer src="./js/page/plp-img-v2.js"></script>
73
+
74
74
  <script defer src="./js/page/plp-cards-v2.js"></script>
75
75
  <script defer src="./js/search-filter.min.js"></script>
76
76
  {{/content}}
@@ -69,7 +69,7 @@
69
69
  {{/content}}
70
70
  {{#content "foot" mode="append"}}
71
71
  <script defer src="./js/page/plp.js"></script>
72
- <script defer src="./js/page/plp-img-v2.js"></script>
72
+
73
73
  <script defer src="./js/page/plp-cards-v2.js"></script>
74
74
  <script defer src="./js/plp-favourite-product.bundle.min.js"></script>
75
75
  <script defer src="./js/plp-filters.min.js"></script>
@@ -66,7 +66,7 @@
66
66
  {{/content}}
67
67
  {{#content "foot" mode="append"}}
68
68
  <script defer src="./js/page/plp.js"></script>
69
- <script defer src="./js/page/plp-img-v2.js"></script>
69
+
70
70
  <script defer src="./js/page/plp-cards-v2.js"></script>
71
71
  <script defer src="./js/search-filter.min.js"></script>
72
72
  {{/content}}
@@ -83,7 +83,7 @@
83
83
  {{#content "foot" mode="append"}}
84
84
  {{> kitchen/filter-modal isKitchenMode=false modalTitle="Filter by" }}
85
85
  <script defer src="./js/plp.bundle.min.js"></script>
86
- <script defer src="./js/page/plp-img-v2.js"></script>
86
+
87
87
  <script defer src="./js/page/plp-cards-v2.js"></script>
88
88
  <script defer src="./js/search-filter.min.js"></script>
89
89
  <script defer src="./js/plp-filters.min.js"></script>
@@ -60,7 +60,7 @@
60
60
  {{/content}}
61
61
  {{#content "foot" mode="append"}}
62
62
  <script defer src="./js/page/plp.js"></script>
63
- <script defer src="./js/page/plp-img-v2.js"></script>
63
+
64
64
  <script defer src="./js/page/plp-cards-v2.js"></script>
65
65
  <script defer src="./js/components/badge-cashback.js"></script>
66
66
  <script defer src="./js/search-filter.min.js"></script>
@@ -60,7 +60,7 @@
60
60
  {{/content}}
61
61
  {{#content "foot" mode="append"}}
62
62
  <script defer src="./js/page/plp.js"></script>
63
- <script defer src="./js/page/plp-img-v2.js"></script>
63
+
64
64
  <script defer src="./js/page/plp-cards-v2.js"></script>
65
65
  <script defer src="./js/components/badge-cashback.js"></script>
66
66
  <script defer src="./js/search-filter.min.js"></script>
@@ -72,7 +72,7 @@
72
72
  {{#content "foot" mode="append"}}
73
73
  <script defer src="./js/plp.bundle.min.js"></script>
74
74
  <script defer src="./js/energy-efficiency.min.js"></script>
75
- <script defer src="./js/page/plp-img-v2.js"></script>
75
+
76
76
  <script defer src="./js/page/plp-cards-v2.js"></script>
77
77
  <script defer src="./js/search-filter.min.js"></script>
78
78
  {{/content}}
@@ -337,7 +337,7 @@
337
337
  transition: all 0.3s ease;
338
338
 
339
339
  &.footer-fixed {
340
- box-shadow: 0px -4px 12px 0px rgba(0, 0, 0, 0.08);
340
+ box-shadow: 0 -4px 12px 0 rgba(0, 0, 0, 0.08);
341
341
  position: fixed;
342
342
  width: 100%;
343
343
  left: 0;
@@ -408,7 +408,7 @@
408
408
  }
409
409
 
410
410
  .custom-slider__footer {
411
- box-shadow: 0px -4px 12px 0px rgba(0, 0, 0, 0.08);
411
+ box-shadow: 0 -4px 12px 0 rgba(0, 0, 0, 0.08);
412
412
  flex-direction: column;
413
413
  }
414
414
  }
@@ -33,7 +33,6 @@ $error-bg: #fcf2f3; // Error notification background colour
33
33
  $positive: #8dc63f; // Positive colour
34
34
  $negative: #ed1c24; // Negative colour
35
35
  $blue-badge: #019ee3;
36
- $pacific-depths: #004587;
37
36
  $usp-icon-color: #1a77bc; // Usp icon color
38
37
  $pacific-depths: #004587;
39
38
  $line-through: #242424;
@@ -47,10 +46,6 @@ $footer-gray: #f5f5f5;
47
46
  $footer-bullet: #c8c8c8;
48
47
  $footer-copyright: #626262;
49
48
 
50
- $footer-gray: #f5f5f5;
51
- $footer-bullet: #c8c8c8;
52
- $footer-copyright: #626262;
53
-
54
49
  $white: #fff;
55
50
  $black: #000;
56
51
  $black-lite: #111;
@@ -67,7 +62,6 @@ $blue-ocean: #003058;
67
62
  $blue-ocean-dark: #0a3054;
68
63
  $gray-middle: #aaa;
69
64
  $light-blue: #e6f1f8;
70
-
71
65
  // Colour block colours
72
66
  $moon-shadow: #658089;
73
67
  $fawn: #f0ddce;
@@ -111,7 +105,7 @@ $black-transparent75: rgba(0, 0, 0, 0.75);
111
105
  $black-transparent80: rgba(0, 0, 0, 0.8);
112
106
  $blue-transparent20: rgba(2, 119, 189, 0.2);
113
107
  $blue-transparent10: rgba(2, 119, 189, 0.1);
114
- $blue-transparent3: #0277bd52;
108
+ $blue-transparent3: rgba(2, 119, 189, 0.32);
115
109
  $blue-transparent5: rgba(2, 119, 189, 0.05);
116
110
  $blue-transparent5-rgb: rgb(242, 248, 251);
117
111
  $dark-blue-transparent10: rgba(10, 48, 85, 0.1);
@@ -305,7 +299,7 @@ $btn-line-height-sm: $input-btn-line-height-sm !default;
305
299
 
306
300
  $btn-padding-y-lg: $input-btn-padding-y-lg !default;
307
301
  $btn-padding-x-lg: $input-btn-padding-x-lg !default;
308
- $btn-line-height-lg: $input-btn_line-height-lg !default;
302
+ $btn-line-height-lg: $input-btn-line-height-lg !default;
309
303
 
310
304
  $btn-border-radius: $border-radius !default;
311
305
  $btn-border-radius-lg: $border-radius-lg !default;
@@ -385,8 +379,7 @@ $zindex-share: 1 !default;
385
379
 
386
380
  // This variable affects the `.h-*` and `.w-*` classes.
387
381
  $sizes: () !default;
388
-
389
- /* sass-lint:disable indentation */
382
+ // sass-lint:disable indentation
390
383
  $sizes: map-merge(
391
384
  (
392
385
  25: 25%,
@@ -396,8 +389,7 @@ $sizes: map-merge(
396
389
  ),
397
390
  $sizes
398
391
  );
399
- /* sass-lint:enable indentation */
400
-
392
+ // sass-lint:enable indentation
401
393
  // Spacing
402
394
  //
403
395
  // Control the default styling of most Bootstrap elements by modifying these
@@ -407,8 +399,7 @@ $sizes: map-merge(
407
399
  // stylelint-disable
408
400
  $spacer: 1rem !default;
409
401
  $spacers: () !default;
410
-
411
- /* sass-lint:disable indentation */
402
+ // sass-lint:disable indentation
412
403
  $spacers: map-merge(
413
404
  (
414
405
  0: 0,
@@ -428,7 +419,7 @@ $spacers: map-merge(
428
419
  ),
429
420
  $spacers
430
421
  );
431
- /* sass-lint:enable indentation */
422
+ // sass-lint:enable indentation
432
423
 
433
424
  // Bootstrap Printing checked
434
425
  $print-page-size: a3 !default;
@@ -303,6 +303,7 @@ $color-bar-radius: 3px;
303
303
  margin-right: -4px;
304
304
  padding-left: 5px;
305
305
  padding-right: 5px;
306
+ width: 50%;
306
307
  }
307
308
 
308
309
  &:nth-of-type(1)::before,
@@ -338,6 +339,27 @@ $color-bar-radius: 3px;
338
339
  align-items: center;
339
340
  justify-content: center;
340
341
  border-bottom: 1px solid $gray;
342
+ width: 100%;
343
+
344
+ @supports (aspect-ratio: 1 / 1) {
345
+ aspect-ratio: 1 / 1;
346
+ }
347
+
348
+ @supports not (aspect-ratio: 1 / 1) {
349
+ &:before {
350
+ content: '';
351
+ display: block;
352
+ padding-top: 100%;
353
+ }
354
+ }
355
+
356
+ .card__img-v2 {
357
+ position: absolute;
358
+ inset: 0;
359
+ width: 100%;
360
+ height: 100%;
361
+ object-fit: contain;
362
+ }
341
363
 
342
364
  @include media-breakpoint-down(sm) {
343
365
  border: 1px solid $gray;
@@ -367,6 +389,16 @@ $color-bar-radius: 3px;
367
389
  }
368
390
  }
369
391
 
392
+ .card-sponsor-product {
393
+ @include media-breakpoint-down(sm) {
394
+ width: 50%;
395
+
396
+ .card {
397
+ width: 100%;
398
+ }
399
+ }
400
+ }
401
+
370
402
  .product-card {
371
403
  & .card__inner-v2:hover {
372
404
  border: 1px solid $gray-dark;
@@ -586,8 +618,8 @@ $color-bar-radius: 3px;
586
618
  .sort-products-list {
587
619
  &__section {
588
620
  @include make-col(6);
589
- color: black;
590
- border: none;
621
+ color: $black;
622
+ border: 0;
591
623
 
592
624
  > .form-row {
593
625
  margin-bottom: 0;
@@ -1,25 +0,0 @@
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,25 +0,0 @@
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
- });