wickes-css2 2.117.0-develop.1 → 2.117.0-develop.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 (41) hide show
  1. package/build/css/main.css +1 -1
  2. package/build/css/my-account-main-v2.css +1 -1
  3. package/build/css/my-account-main.css +1 -1
  4. package/build/css/pages/page_product_search.css +1 -1
  5. package/build/css/pages/page_store-locator-details.css +1 -1
  6. package/build/css/pages/page_store-locator.css +1 -1
  7. package/build/css/pages/page_ti.css +1 -1
  8. package/build/css/pdp-main-before-combine.css +1 -1
  9. package/build/css/pdp-main-non-critical.css +1 -1
  10. package/build/css/pdp-main.css +1 -1
  11. package/build/css/plp-main.css +1 -1
  12. package/build/css/store-locator-main.css +1 -1
  13. package/build/js/bloomreach-widget.min.js +1 -1
  14. package/build/js/emulation.min.js +208 -30
  15. package/build/js/page/bloomreach-widget/why-not-add-widget.js +1 -1
  16. package/build/js/page/components/store-locator.js +165 -0
  17. package/build/js/store-locator.min.js +1 -0
  18. package/package.json +1 -1
  19. package/src/components/bloomreach/complete-your-project-skeleton.hbs +1 -1
  20. package/src/components/find-a-store.hbs +48 -32
  21. package/src/js/emulation/bloomreach-widget-loading.js +1 -1
  22. package/src/js/emulation/complete-your-project-loading.js +1 -1
  23. package/src/js/emulation/forms.js +81 -12
  24. package/src/js/emulation/gift-cards.js +1 -0
  25. package/src/js/emulation/store-locator-geo-emulation.js +185 -0
  26. package/src/js/emulation/store-locator-load-more.js +9 -1
  27. package/src/js/page/bloomreach-widget/why-not-add-widget.js +1 -1
  28. package/src/js/page/components/store-locator.js +165 -0
  29. package/src/page_product-details-bloomreach.html +1 -1
  30. package/src/page_product-details-with-why-not-add-single.html +1 -1
  31. package/src/page_store-locator-list.html +13 -13
  32. package/src/page_store-locator.html +12 -9
  33. package/src/scss/components/_account-heading.scss +1 -1
  34. package/src/scss/components/_find-a-store.scss +253 -49
  35. package/src/scss/components/_map.scss +30 -3
  36. package/src/scss/components/_shop-colour.scss +1 -1
  37. package/src/scss/pages/page_product_search.scss +11 -1
  38. package/src/scss/pages/page_store-locator-details.scss +1 -1
  39. package/src/scss/pages/page_store-locator.scss +249 -10
  40. package/src/scss/pages/page_ti.scss +1 -1
  41. package/src/scss/store-locator-main.scss +0 -5
@@ -5330,10 +5330,11 @@ $(document).ready(function () {
5330
5330
  var Wick = window.Wick || {};
5331
5331
  $(document).ready(function () {
5332
5332
  window.setTimeout(function () {
5333
+ var _Wick$BloomreachWidge;
5333
5334
  var $container = $('[data-complete-widget]');
5334
5335
  var contextKey = $container.data('mock-key');
5335
5336
  var payloadData = Wick.FEMock.dataBloomreach[contextKey];
5336
- Wick.BloomreachWidget.init('completeYourProject', payloadData);
5337
+ (_Wick$BloomreachWidge = Wick.BloomreachWidget) === null || _Wick$BloomreachWidge === void 0 ? void 0 : _Wick$BloomreachWidge.init('completeYourProject', payloadData);
5337
5338
  }, 3000);
5338
5339
  });
5339
5340
 
@@ -5689,9 +5690,10 @@ $(document).ready(function () {
5689
5690
  return;
5690
5691
  }
5691
5692
  window.setTimeout(function () {
5693
+ var _Wick$BloomreachWidge;
5692
5694
  var mockDataKey = $container.data('mock-key');
5693
5695
  var payloadData = Wick.FEMock.dataBloomreach[mockDataKey];
5694
- Wick.BloomreachWidget.init('completeYourProject', payloadData);
5696
+ (_Wick$BloomreachWidge = Wick.BloomreachWidget) === null || _Wick$BloomreachWidge === void 0 ? void 0 : _Wick$BloomreachWidge.init('completeYourProject', payloadData);
5695
5697
  }, 3000);
5696
5698
  });
5697
5699
 
@@ -6199,7 +6201,7 @@ function waitFor(getter, cb, opts) {
6199
6201
  });
6200
6202
  })();
6201
6203
 
6202
- },{"../page/utils/show-more-less":106}],54:[function(require,module,exports){
6204
+ },{"../page/utils/show-more-less":107}],54:[function(require,module,exports){
6203
6205
  "use strict";
6204
6206
 
6205
6207
  var Wick = Wick || {};
@@ -6269,7 +6271,7 @@ Wick.FooterСurrentYear = function () {
6269
6271
  },{}],56:[function(require,module,exports){
6270
6272
  "use strict";
6271
6273
 
6272
- var Wick = Wick || {};
6274
+ var Wick = window.Wick || (window.Wick = {});
6273
6275
  Wick.Forms = function () {
6274
6276
  var fieldRow = '.form-row[data-row-required]',
6275
6277
  field = '.form-row__field',
@@ -6325,16 +6327,23 @@ Wick.Forms = function () {
6325
6327
  $form = $(form);
6326
6328
  var $rows = $form.find(fieldRow).not('[data-no-global-validation]');
6327
6329
  if (!$rows.length) return;
6328
- $rows.find('.form-row__error').remove();
6330
+ $rows.find(fieldError).remove();
6329
6331
  if (!$form.hasClass(formInvalid)) {
6330
- $form.find('.form-row__error').remove();
6332
+ $form.find(fieldError).remove();
6331
6333
  $rows = $form.find(fieldRow).filter(function () {
6332
6334
  return $(this).is(':visible');
6333
6335
  });
6334
- $rows.append(validationError(errorMsg)).addClass(rowValidationError);
6336
+ if ($form.is('.form-locator, .form-locator-list')) {
6337
+ $rows.each(function () {
6338
+ var $row = $(this);
6339
+ var message = errorMsg || $row.data('message') || 'Error message here';
6340
+ $row.addClass(rowValidationError).append(validationError(message));
6341
+ });
6342
+ } else {
6343
+ $rows.append(validationError(errorMsg)).addClass(rowValidationError);
6344
+ }
6335
6345
  $form.addClass(formInvalid);
6336
6346
  }
6337
- $rows.append(validationError(errorMsg)).addClass(rowValidationError);
6338
6347
  var $firstMsg = $form.find(fieldRow).filter(function () {
6339
6348
  return $(this).is(':visible');
6340
6349
  }).first();
@@ -6430,18 +6439,46 @@ Wick.Forms = function () {
6430
6439
  window.location.href = './page_store-locator-details.html';
6431
6440
  return false;
6432
6441
  }
6442
+ clearValidationErrors(this);
6443
+ if (Wick.StoreLocator && Wick.StoreLocator.showStoreSelectionError) {
6444
+ Wick.StoreLocator.showStoreSelectionError();
6445
+ } else {
6446
+ showValidationErrors(this, 'Please choose a store.');
6447
+ }
6448
+ return false;
6433
6449
  }
6434
6450
  if ($(form).is('.form-locator-list')) {
6435
- if ($(form).find('#postcode-town').val().length) {
6436
- var actionAfterSubmit = $(form).attr('data-action');
6437
- if (actionAfterSubmit === 'scroll-to-list') {
6438
- clearValidationErrors(this);
6439
- handleSmoothScroll();
6451
+ var searchValue = $.trim($(form).find('#postcode-town').val()),
6452
+ actionAfterSubmit;
6453
+ clearValidationErrors(this);
6454
+ if (!searchValue.length) {
6455
+ if (Wick.StoreLocatorGeoEmulation && Wick.StoreLocatorGeoEmulation.handleEmptySearch) {
6456
+ Wick.StoreLocatorGeoEmulation.handleEmptySearch();
6457
+ }
6458
+ return false;
6459
+ }
6460
+ if (Wick.StoreLocatorGeoEmulation && Wick.StoreLocatorGeoEmulation.isValidSearch && !Wick.StoreLocatorGeoEmulation.isValidSearch(searchValue)) {
6461
+ if (Wick.StoreLocator && Wick.StoreLocator.showPostcodeError) {
6462
+ Wick.StoreLocator.showPostcodeError();
6440
6463
  } else {
6441
- window.location.href = actionAfterSubmit;
6464
+ showValidationErrors(this, 'Check that you entered a valid postcode or place name.');
6442
6465
  }
6443
6466
  return false;
6444
6467
  }
6468
+ actionAfterSubmit = $(form).attr('data-action');
6469
+ if (actionAfterSubmit === 'scroll-to-list') {
6470
+ if (Wick.StoreLocatorGeoEmulation && Wick.StoreLocatorGeoEmulation.showResults) {
6471
+ Wick.StoreLocatorGeoEmulation.showResults();
6472
+ } else {
6473
+ if (Wick.StoreLocator && Wick.StoreLocator.showResults) {
6474
+ Wick.StoreLocator.showResults();
6475
+ }
6476
+ handleSmoothScroll();
6477
+ }
6478
+ } else {
6479
+ window.location.href = Wick.StoreLocatorGeoEmulation && Wick.StoreLocatorGeoEmulation.withGeoState ? Wick.StoreLocatorGeoEmulation.withGeoState(actionAfterSubmit) : actionAfterSubmit;
6480
+ }
6481
+ return false;
6445
6482
  }
6446
6483
  if ($(form).is('#form-mini-basket')) {
6447
6484
  if (Wick.User.isLoggedIn()) {
@@ -6629,6 +6666,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
6629
6666
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6630
6667
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6631
6668
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6669
+ var Wick = Wick || {};
6632
6670
  (function (_PAY_ERROR_CARD_MAP) {
6633
6671
  if (!window.Wick) return;
6634
6672
  var M_OK = '0000000000000001';
@@ -14781,6 +14819,139 @@ $(document).ready(function () {
14781
14819
  },{}],92:[function(require,module,exports){
14782
14820
  "use strict";
14783
14821
 
14822
+ var Wick = window.Wick || (window.Wick = {});
14823
+ Wick.StoreLocatorGeoEmulation = function () {
14824
+ var GEO_ON_CLASS = 'store-locator_geo-on',
14825
+ GEO_OFF_CLASS = 'store-locator_geo-off',
14826
+ SELECTORS = {
14827
+ page: 'body.store-locator',
14828
+ nearMe: '.locator__near-me',
14829
+ cardsHolder: '.cards-store-holder',
14830
+ cards: '.cards-store-list',
14831
+ storeSelect: '#store-id',
14832
+ storeCard: '.card-store'
14833
+ },
14834
+ UK_POSTCODE_PATTERN = /^(GIR\s?0AA|[A-Z]{1,2}\d[A-Z\d]?\s?\d[A-Z]{2})$/i;
14835
+ function normalize(value) {
14836
+ return $.trim(value || '').toLowerCase();
14837
+ }
14838
+ function isGeoOn() {
14839
+ return $(SELECTORS.page).hasClass(GEO_ON_CLASS);
14840
+ }
14841
+ function isKnownLocation(value) {
14842
+ var normalizedValue = normalize(value),
14843
+ isMatch = false;
14844
+ if (!normalizedValue) {
14845
+ return false;
14846
+ }
14847
+ $(SELECTORS.storeSelect).find('option').each(function () {
14848
+ var optionText = normalize($(this).text());
14849
+ if (optionText && optionText !== 'please select' && optionText.indexOf(normalizedValue) !== -1) {
14850
+ isMatch = true;
14851
+ return false;
14852
+ }
14853
+ });
14854
+ if (isMatch) {
14855
+ return true;
14856
+ }
14857
+ $(SELECTORS.storeCard).each(function () {
14858
+ if (normalize($(this).text()).indexOf(normalizedValue) !== -1) {
14859
+ isMatch = true;
14860
+ return false;
14861
+ }
14862
+ });
14863
+ return isMatch;
14864
+ }
14865
+ function isValidSearch(value) {
14866
+ var normalizedValue = $.trim(value || '');
14867
+ return !!normalizedValue && (UK_POSTCODE_PATTERN.test(normalizedValue) || isKnownLocation(normalizedValue));
14868
+ }
14869
+ function hideResults() {
14870
+ $(SELECTORS.cardsHolder).hide();
14871
+ }
14872
+ function scrollToResults() {
14873
+ var $firstCard = $(SELECTORS.cards).first();
14874
+ if (!$firstCard.length) {
14875
+ return;
14876
+ }
14877
+ $('html, body').animate({
14878
+ scrollTop: $firstCard.offset().top - 60
14879
+ }, 300);
14880
+ }
14881
+ function withGeoState(url) {
14882
+ var parts = url.split('#'),
14883
+ base = parts[0],
14884
+ hash = parts[1] ? '#' + parts[1] : '',
14885
+ separator;
14886
+ base = base.replace(/([?&])geo=[^&#]*&?/g, function (match, prefix) {
14887
+ return prefix === '?' ? '?' : '';
14888
+ });
14889
+ base = base.replace(/[?&]$/, '');
14890
+ separator = base.indexOf('?') === -1 ? '?' : '&';
14891
+ return base + separator + 'geo=' + (isGeoOn() ? 'on' : 'off') + hash;
14892
+ }
14893
+ function showResults() {
14894
+ var $holder = $(SELECTORS.cardsHolder);
14895
+ if (!$holder.length) {
14896
+ window.location.href = withGeoState('./page_store-locator-list.html?searched=true#stores-list');
14897
+ return;
14898
+ }
14899
+ $holder.show();
14900
+ if (Wick.StoreLocatorLoadMore && Wick.StoreLocatorLoadMore.reset) {
14901
+ Wick.StoreLocatorLoadMore.reset();
14902
+ }
14903
+ if (Wick.StoreLocator && Wick.StoreLocator.showResults) {
14904
+ Wick.StoreLocator.showResults();
14905
+ }
14906
+ scrollToResults();
14907
+ }
14908
+ function handleEmptySearch() {
14909
+ if (isGeoOn()) {
14910
+ showResults();
14911
+ return;
14912
+ }
14913
+ if (Wick.StoreLocator && Wick.StoreLocator.showGeolocationWarning) {
14914
+ Wick.StoreLocator.showGeolocationWarning();
14915
+ }
14916
+ }
14917
+ function handleNearMeClick(event) {
14918
+ event.preventDefault();
14919
+ if (!isGeoOn()) {
14920
+ hideResults();
14921
+ if (Wick.StoreLocator && Wick.StoreLocator.showGeolocationWarning) {
14922
+ Wick.StoreLocator.showGeolocationWarning();
14923
+ }
14924
+ return;
14925
+ }
14926
+ showResults();
14927
+ }
14928
+ function bindEvents() {
14929
+ $(document).off('click.storeLocatorGeoEmulation', SELECTORS.nearMe).on('click.storeLocatorGeoEmulation', SELECTORS.nearMe, handleNearMeClick);
14930
+ }
14931
+ function init() {
14932
+ var $page = $(SELECTORS.page);
14933
+ if (!$page.length) {
14934
+ return;
14935
+ }
14936
+ var geo = new URLSearchParams(window.location.search).get('geo'),
14937
+ isGeoEnabled = geo !== 'off';
14938
+ $page.toggleClass(GEO_ON_CLASS, isGeoEnabled);
14939
+ $page.toggleClass(GEO_OFF_CLASS, !isGeoEnabled);
14940
+ bindEvents();
14941
+ }
14942
+ init();
14943
+ return {
14944
+ init: init,
14945
+ isValidSearch: isValidSearch,
14946
+ handleEmptySearch: handleEmptySearch,
14947
+ showResults: showResults,
14948
+ withGeoState: withGeoState
14949
+ };
14950
+ }();
14951
+
14952
+ },{}],93:[function(require,module,exports){
14953
+ "use strict";
14954
+
14784
14955
  var _loader = require("../page/utils/loader");
14785
14956
  function initStoreLocatorLoadMore() {
14786
14957
  var PAGE_SIZE = 8;
@@ -14827,15 +14998,22 @@ function initStoreLocatorLoadMore() {
14827
14998
  (0, _loader.appendLoader)(loaderPayload);
14828
14999
  }
14829
15000
  updateVisibility();
14830
- $btnMore.on('click', loadMore);
15001
+ $btnMore.off('click.storeLocatorLoadMore').on('click.storeLocatorLoadMore', loadMore);
14831
15002
  }
15003
+ window.Wick = window.Wick || {};
15004
+ Wick.StoreLocatorLoadMore = {
15005
+ reset: function reset() {
15006
+ visibleCount = PAGE_SIZE;
15007
+ updateVisibility();
15008
+ }
15009
+ };
14832
15010
  init();
14833
15011
  }
14834
15012
  $(document).ready(function () {
14835
15013
  initStoreLocatorLoadMore();
14836
15014
  });
14837
15015
 
14838
- },{"../page/utils/loader":105}],93:[function(require,module,exports){
15016
+ },{"../page/utils/loader":106}],94:[function(require,module,exports){
14839
15017
  "use strict";
14840
15018
 
14841
15019
  var Wick = window.Wick || {};
@@ -14876,7 +15054,7 @@ $(document).ready(function () {
14876
15054
  }, 250));
14877
15055
  });
14878
15056
 
14879
- },{}],94:[function(require,module,exports){
15057
+ },{}],95:[function(require,module,exports){
14880
15058
  "use strict";
14881
15059
 
14882
15060
  var Wick = Wick || {};
@@ -14898,7 +15076,7 @@ $(document).ready(function () {
14898
15076
  Wick.addListToBasket.addAllProjectList();
14899
15077
  });
14900
15078
 
14901
- },{}],95:[function(require,module,exports){
15079
+ },{}],96:[function(require,module,exports){
14902
15080
  "use strict";
14903
15081
 
14904
15082
  var TRACKING_WIDGET_SELECTOR = '[data-complete-widget], [data-why-not-add-widget]';
@@ -14925,7 +15103,7 @@ function initializeTrackingEmulation() {
14925
15103
  }
14926
15104
  $(document).ready(initializeTrackingEmulation);
14927
15105
 
14928
- },{}],96:[function(require,module,exports){
15106
+ },{}],97:[function(require,module,exports){
14929
15107
  "use strict";
14930
15108
 
14931
15109
  var Wick = window.Wick || {};
@@ -14937,7 +15115,7 @@ $(document).ready(function () {
14937
15115
  }
14938
15116
  });
14939
15117
 
14940
- },{}],97:[function(require,module,exports){
15118
+ },{}],98:[function(require,module,exports){
14941
15119
  "use strict";
14942
15120
 
14943
15121
  var _loader = require("../page/utils/loader");
@@ -15077,7 +15255,7 @@ $(document).ready(function () {
15077
15255
  Wick.TradeProIdPdf.init();
15078
15256
  });
15079
15257
 
15080
- },{"../page/utils/loader":105}],98:[function(require,module,exports){
15258
+ },{"../page/utils/loader":106}],99:[function(require,module,exports){
15081
15259
  "use strict";
15082
15260
 
15083
15261
  var Wick = Wick || {};
@@ -15115,7 +15293,7 @@ Wick.User = function () {
15115
15293
  };
15116
15294
  }();
15117
15295
 
15118
- },{}],99:[function(require,module,exports){
15296
+ },{}],100:[function(require,module,exports){
15119
15297
  "use strict";
15120
15298
 
15121
15299
  var suppressQuantityReportValidityOnBlur = false;
@@ -15142,14 +15320,14 @@ $(document).off('keydown.quantityValidation', '#quantity-field').on('keydown.qua
15142
15320
  }, 150);
15143
15321
  });
15144
15322
 
15145
- },{}],100:[function(require,module,exports){
15323
+ },{}],101:[function(require,module,exports){
15146
15324
  "use strict";
15147
15325
 
15148
15326
  window.ACC = window.ACC || {};
15149
15327
  window.ACC.app = window.ACC.app || {};
15150
15328
  window.ACC.app.isVatToggleAvailable = !!$('.switch-vat input').length;
15151
15329
 
15152
- },{}],101:[function(require,module,exports){
15330
+ },{}],102:[function(require,module,exports){
15153
15331
  "use strict";
15154
15332
 
15155
15333
  var Wick = window.Wick || {};
@@ -15169,7 +15347,7 @@ $(document).ready(function () {
15169
15347
  }, 3000);
15170
15348
  });
15171
15349
 
15172
- },{}],102:[function(require,module,exports){
15350
+ },{}],103:[function(require,module,exports){
15173
15351
  "use strict";
15174
15352
 
15175
15353
  var _justAddedScenariosEmulation = require("./just-added-scenarios-emulation");
@@ -15193,7 +15371,7 @@ $(document).ready(function () {
15193
15371
  bindWhyNotAddToCartEvent();
15194
15372
  });
15195
15373
 
15196
- },{"./just-added-scenarios-emulation":63}],103:[function(require,module,exports){
15374
+ },{"./just-added-scenarios-emulation":63}],104:[function(require,module,exports){
15197
15375
  "use strict";
15198
15376
 
15199
15377
  var Wick = window.Wick = window.Wick || {};
@@ -15225,7 +15403,7 @@ Wick.Wismo = function () {
15225
15403
  });
15226
15404
  }();
15227
15405
 
15228
- },{}],104:[function(require,module,exports){
15406
+ },{}],105:[function(require,module,exports){
15229
15407
  "use strict";
15230
15408
 
15231
15409
  var Wick = Wick || {};
@@ -15304,7 +15482,7 @@ Wick.YourDetails = function () {
15304
15482
  });
15305
15483
  }();
15306
15484
 
15307
- },{}],105:[function(require,module,exports){
15485
+ },{}],106:[function(require,module,exports){
15308
15486
  "use strict";
15309
15487
 
15310
15488
  Object.defineProperty(exports, "__esModule", {
@@ -15330,7 +15508,7 @@ function hideLoader(loaderSelector) {
15330
15508
  $(defineLoaderWrapper(loaderSelector)).addClass(HIDDEN_CLASS_NAME);
15331
15509
  }
15332
15510
 
15333
- },{"../../../elements/loader.hbs":25}],106:[function(require,module,exports){
15511
+ },{"../../../elements/loader.hbs":25}],107:[function(require,module,exports){
15334
15512
  "use strict";
15335
15513
 
15336
15514
  Object.defineProperty(exports, "__esModule", {
@@ -15567,4 +15745,4 @@ function createShowMoreLess() {
15567
15745
  };
15568
15746
  }
15569
15747
 
15570
- },{"../../../elements/btn.hbs":24}]},{},[26,27,28,29,30,31,32,33,34,35,36,37,38,39,44,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104]);
15748
+ },{"../../../elements/btn.hbs":24}]},{},[26,27,28,29,30,31,32,33,34,35,36,37,38,39,44,40,41,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105]);
@@ -2,7 +2,7 @@ import { createBloomreachRecommendationCarouselWidget } from './bloomreach-recom
2
2
 
3
3
  const WhyNotAddWidget = createBloomreachRecommendationCarouselWidget({
4
4
  namespace: 'whyNotAdd',
5
- title: 'Why not add',
5
+ title: 'You might also like',
6
6
  widgetContainer: '[data-why-not-add-widget]',
7
7
  disableAfterSuccess: false,
8
8
  disableAfterFailure: false,
@@ -0,0 +1,165 @@
1
+ var Wick = window.Wick || (window.Wick = {});
2
+
3
+ Wick.StoreLocator = {
4
+ el: {
5
+ wrapper: '.store-locator-wrapper',
6
+ openSearch: '.locator__open-search',
7
+ formRow: '.form-row',
8
+ formRowError: '.form-row__error',
9
+ pageContainer: 'body.store-locator main.container',
10
+ postcode: '#postcode-town',
11
+ store: '#store-id',
12
+ },
13
+
14
+ classes: {
15
+ collapsed: 'store-locator_search-collapsed',
16
+ notification: 'store-locator__notification',
17
+ rowError: 'form-row_validation-error',
18
+ },
19
+
20
+ messages: {
21
+ postcode: 'Check that you entered a valid postcode or place name.',
22
+ geolocation:
23
+ 'To search for the stores nearest you, please enable geolocation services on your device.',
24
+ store: 'Please choose a store.',
25
+ },
26
+
27
+ isDesktopLayout() {
28
+ return Wick.Responsive.getCurrentBreakpoint() === 'up-lg';
29
+ },
30
+
31
+ collapseSearch() {
32
+ if (!Wick.StoreLocator.isDesktopLayout()) {
33
+ return;
34
+ }
35
+
36
+ $(Wick.StoreLocator.el.wrapper).addClass(Wick.StoreLocator.classes.collapsed);
37
+ },
38
+
39
+ openSearch() {
40
+ $(Wick.StoreLocator.el.wrapper).removeClass(Wick.StoreLocator.classes.collapsed);
41
+ },
42
+
43
+ removeTopMessage() {
44
+ $(Wick.StoreLocator.el.pageContainer)
45
+ .children('.' + Wick.StoreLocator.classes.notification)
46
+ .remove();
47
+ },
48
+
49
+ removeFieldError(selector) {
50
+ const $field = $(selector);
51
+
52
+ if (!$field.length) {
53
+ return;
54
+ }
55
+
56
+ if (Wick.Validation && Wick.Validation.removeValidationError) {
57
+ Wick.Validation.removeValidationError($field);
58
+ return;
59
+ }
60
+
61
+ $field
62
+ .closest(Wick.StoreLocator.el.formRow)
63
+ .removeClass(Wick.StoreLocator.classes.rowError)
64
+ .find(Wick.StoreLocator.el.formRowError)
65
+ .remove();
66
+ },
67
+
68
+ showFieldError(selector, message) {
69
+ let $field = $(selector),
70
+ $row;
71
+
72
+ if (!$field.length) {
73
+ return;
74
+ }
75
+
76
+ Wick.StoreLocator.removeFieldError(selector);
77
+
78
+ if (Wick.Validation && Wick.Validation.displayValidationError) {
79
+ Wick.Validation.displayValidationError($field, message);
80
+ return;
81
+ }
82
+
83
+ $row = $field.closest(Wick.StoreLocator.el.formRow);
84
+ $row.addClass(Wick.StoreLocator.classes.rowError).append(
85
+ $('<div/>', {
86
+ class: 'form-row__error',
87
+ text: message,
88
+ })
89
+ );
90
+ },
91
+
92
+ showTopMessage(type, message, closeBtn) {
93
+ let notification;
94
+
95
+ Wick.StoreLocator.removeTopMessage();
96
+
97
+ if (!Wick.Notification || !Wick.Notification.show) {
98
+ return;
99
+ }
100
+
101
+ notification = Wick.Notification.show({
102
+ container: Wick.StoreLocator.el.pageContainer,
103
+ type: type,
104
+ text: message,
105
+ closeBtn: closeBtn,
106
+ });
107
+
108
+ if (notification && notification.$self) {
109
+ notification.$self.addClass(Wick.StoreLocator.classes.notification);
110
+ }
111
+ },
112
+
113
+ clearFeedback() {
114
+ Wick.StoreLocator.removeTopMessage();
115
+ Wick.StoreLocator.removeFieldError(Wick.StoreLocator.el.postcode);
116
+ Wick.StoreLocator.removeFieldError(Wick.StoreLocator.el.store);
117
+ },
118
+
119
+ showPostcodeError() {
120
+ Wick.StoreLocator.openSearch();
121
+ Wick.StoreLocator.clearFeedback();
122
+ Wick.StoreLocator.showTopMessage('error', Wick.StoreLocator.messages.postcode, false);
123
+ Wick.StoreLocator.showFieldError(
124
+ Wick.StoreLocator.el.postcode,
125
+ Wick.StoreLocator.messages.postcode
126
+ );
127
+ },
128
+
129
+ showGeolocationWarning() {
130
+ Wick.StoreLocator.openSearch();
131
+ Wick.StoreLocator.clearFeedback();
132
+ Wick.StoreLocator.showTopMessage('warning', Wick.StoreLocator.messages.geolocation, true);
133
+ },
134
+
135
+ showStoreSelectionError() {
136
+ Wick.StoreLocator.openSearch();
137
+ Wick.StoreLocator.clearFeedback();
138
+ Wick.StoreLocator.showTopMessage('error', Wick.StoreLocator.messages.store, false);
139
+ Wick.StoreLocator.showFieldError(
140
+ Wick.StoreLocator.el.store,
141
+ Wick.StoreLocator.messages.store
142
+ );
143
+ },
144
+
145
+ showResults() {
146
+ Wick.StoreLocator.clearFeedback();
147
+ Wick.StoreLocator.collapseSearch();
148
+ },
149
+
150
+ bindEvents() {
151
+ $(document).on('click', Wick.StoreLocator.el.openSearch, Wick.StoreLocator.openSearch);
152
+ },
153
+
154
+ init() {
155
+ Wick.StoreLocator.bindEvents();
156
+
157
+ var searched = new URLSearchParams(window.location.search).get('searched');
158
+
159
+ if (searched === 'true') {
160
+ Wick.StoreLocator.collapseSearch();
161
+ }
162
+ },
163
+ };
164
+
165
+ Wick.StoreLocator.init();
@@ -0,0 +1 @@
1
+ !function t(a,c,s){function n(r,o){if(!c[r]){if(!a[r]){var e="function"==typeof require&&require;if(!o&&e)return e(r,!0);if(i)return i(r,!0);throw(o=new Error("Cannot find module '"+r+"'")).code="MODULE_NOT_FOUND",o}e=c[r]={exports:{}},a[r][0].call(e.exports,function(o){return n(a[r][1][o]||o)},e,e.exports,t,a,c,s)}return c[r].exports}for(var i="function"==typeof require&&require,o=0;o<s.length;o++)n(s[o]);return n}({1:[function(o,r,e){"use strict";var t=window.Wick||(window.Wick={});t.StoreLocator={el:{wrapper:".store-locator-wrapper",openSearch:".locator__open-search",formRow:".form-row",formRowError:".form-row__error",pageContainer:"body.store-locator main.container",postcode:"#postcode-town",store:"#store-id"},classes:{collapsed:"store-locator_search-collapsed",notification:"store-locator__notification",rowError:"form-row_validation-error"},messages:{postcode:"Check that you entered a valid postcode or place name.",geolocation:"To search for the stores nearest you, please enable geolocation services on your device.",store:"Please choose a store."},isDesktopLayout:function(){return"up-lg"===t.Responsive.getCurrentBreakpoint()},collapseSearch:function(){t.StoreLocator.isDesktopLayout()&&$(t.StoreLocator.el.wrapper).addClass(t.StoreLocator.classes.collapsed)},openSearch:function(){$(t.StoreLocator.el.wrapper).removeClass(t.StoreLocator.classes.collapsed)},removeTopMessage:function(){$(t.StoreLocator.el.pageContainer).children("."+t.StoreLocator.classes.notification).remove()},removeFieldError:function(o){o=$(o);o.length&&(t.Validation&&t.Validation.removeValidationError?t.Validation.removeValidationError(o):o.closest(t.StoreLocator.el.formRow).removeClass(t.StoreLocator.classes.rowError).find(t.StoreLocator.el.formRowError).remove())},showFieldError:function(o,r){var e=$(o);e.length&&(t.StoreLocator.removeFieldError(o),t.Validation&&t.Validation.displayValidationError?t.Validation.displayValidationError(e,r):e.closest(t.StoreLocator.el.formRow).addClass(t.StoreLocator.classes.rowError).append($("<div/>",{class:"form-row__error",text:r})))},showTopMessage:function(o,r,e){t.StoreLocator.removeTopMessage(),t.Notification&&t.Notification.show&&(o=t.Notification.show({container:t.StoreLocator.el.pageContainer,type:o,text:r,closeBtn:e}))&&o.$self&&o.$self.addClass(t.StoreLocator.classes.notification)},clearFeedback:function(){t.StoreLocator.removeTopMessage(),t.StoreLocator.removeFieldError(t.StoreLocator.el.postcode),t.StoreLocator.removeFieldError(t.StoreLocator.el.store)},showPostcodeError:function(){t.StoreLocator.openSearch(),t.StoreLocator.clearFeedback(),t.StoreLocator.showTopMessage("error",t.StoreLocator.messages.postcode,!1),t.StoreLocator.showFieldError(t.StoreLocator.el.postcode,t.StoreLocator.messages.postcode)},showGeolocationWarning:function(){t.StoreLocator.openSearch(),t.StoreLocator.clearFeedback(),t.StoreLocator.showTopMessage("warning",t.StoreLocator.messages.geolocation,!0)},showStoreSelectionError:function(){t.StoreLocator.openSearch(),t.StoreLocator.clearFeedback(),t.StoreLocator.showTopMessage("error",t.StoreLocator.messages.store,!1),t.StoreLocator.showFieldError(t.StoreLocator.el.store,t.StoreLocator.messages.store)},showResults:function(){t.StoreLocator.clearFeedback(),t.StoreLocator.collapseSearch()},bindEvents:function(){$(document).on("click",t.StoreLocator.el.openSearch,t.StoreLocator.openSearch)},init:function(){t.StoreLocator.bindEvents(),"true"===new URLSearchParams(window.location.search).get("searched")&&t.StoreLocator.collapseSearch()}},t.StoreLocator.init()},{}]},{},[1]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickes-css2",
3
- "version": "2.117.0-develop.1",
3
+ "version": "2.117.0-develop.2",
4
4
  "description": "CSS and JS and page templates in use by Wickes",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,6 +1,6 @@
1
1
  <div class="complete-widget">
2
2
  <h3 class="complete-widget__title text-center">
3
- {{#if title}}{{title}}{{else}}Complete your project{{/if}}
3
+ {{#if titleWidget}}{{titleWidget}}{{else}}Customers also bought{{/if}}
4
4
  </h3>
5
5
 
6
6
  <div class="complete-widget__content" data-complete-widget-content>