wickes-css2 2.105.0-develop.8 → 2.105.0-develop.9

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 (196) hide show
  1. package/Readme.md +1 -1
  2. package/build/css/category-main.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/my-account-v2.css +1 -1
  9. package/build/css/pages/page_product_search.css +1 -1
  10. package/build/css/pages/page_products-list-combined.css +1 -1
  11. package/build/css/pages/page_products-list.css +1 -1
  12. package/build/css/pages/tradePro-rewards.css +1 -1
  13. package/build/css/pdp-main-before-combine.css +1 -1
  14. package/build/css/pdp-main-non-critical.css +1 -1
  15. package/build/css/pdp-main.css +1 -1
  16. package/build/css/plp-main.css +1 -1
  17. package/build/css/store-locator-main.css +1 -1
  18. package/build/js/basket.min.js +2 -2
  19. package/build/js/bundle.min.js +1 -1
  20. package/build/js/checkout.min.js +2 -2
  21. package/build/js/emulation.min.js +12125 -11596
  22. package/build/js/general.bundle.min.js +1 -1
  23. package/build/js/kitchen/kitchen-plp.min.js +1 -9
  24. package/build/js/merged-checkout.min.js +2 -2
  25. package/build/js/mini-basket-slider.min.js +1 -1
  26. package/build/js/my-account.min.js +1 -1
  27. package/build/js/page/basket/basket-update-cart-action.js +59 -56
  28. package/build/js/page/basket/basket-update-cart.js +27 -27
  29. package/build/js/page/basket/basket-utils.js +40 -33
  30. package/build/js/page/basket/mini-basket-total.js +70 -66
  31. package/build/js/page/basket/quantity-change-handler.js +73 -55
  32. package/build/js/page/basket/update-quantity-operation.js +39 -30
  33. package/build/js/page/basket/update-quantity.js +62 -62
  34. package/build/js/page/basket-v2.js +362 -229
  35. package/build/js/page/billie-business-type.js +27 -27
  36. package/build/js/page/checkout-payment-details.js +301 -299
  37. package/build/js/page/components/discounts.js +39 -36
  38. package/build/js/page/components/mini-basket-slider.js +604 -545
  39. package/build/js/page/filters/desktop-nav.js +64 -0
  40. package/build/js/page/filters/mobile-nav.js +93 -0
  41. package/build/js/page/filters/plp-filters-chips.js +92 -0
  42. package/build/js/page/filters/plp-filters-mobile.js +150 -0
  43. package/build/js/page/filters/plp-filters-panel.js +123 -0
  44. package/build/js/page/filters/plp-filters-utils.js +66 -0
  45. package/build/js/page/filters/plp-filters.js +256 -0
  46. package/build/js/page/filters/sort-by.js +172 -0
  47. package/build/js/page/klarna-modal-scroll-disable.js +4 -4
  48. package/build/js/page/my-account.js +33 -33
  49. package/build/js/page/online-exclusive.js +28 -30
  50. package/build/js/page/search-filter.js +62 -0
  51. package/build/js/page/share-project-list.js +57 -0
  52. package/build/js/page/tradePro-rewards.js +69 -39
  53. package/build/js/page/utils/copy-to-clipboard.js +79 -47
  54. package/build/js/page/utils/helpers.js +14 -9
  55. package/build/js/page/utils/show-more-less.js +273 -0
  56. package/build/js/pdp.bundle.min.js +1 -1
  57. package/build/js/plp-filters.min.js +9 -0
  58. package/build/js/plp.bundle.min.js +1 -1
  59. package/build/js/project-list.min.js +143 -85
  60. package/build/js/search-filter.min.js +1 -0
  61. package/build/js/share-project-list.min.js +1 -0
  62. package/build/js/tradePro-rewards.min.js +1 -1
  63. package/package.json +2 -2
  64. package/src/components/.DS_Store +0 -0
  65. package/src/components/accordion.hbs +2 -2
  66. package/src/components/kitchen/dropdown.hbs +6 -3
  67. package/src/components/kitchen/filter-modal-content-kitchen.hbs +10 -0
  68. package/src/components/kitchen/filter-modal.hbs +10 -13
  69. package/src/components/kitchen/plp-filters.hbs +3 -1
  70. package/src/components/kitchen/sort-by.hbs +1 -1
  71. package/src/components/search-filter-modal-content.hbs +102 -0
  72. package/src/components/search-filter.hbs +121 -112
  73. package/src/data/data_plp_load-more.json +1 -1
  74. package/src/elements/btn.hbs +7 -0
  75. package/src/js/components/cards-swap.js +60 -58
  76. package/src/js/components/general/accordion.js +44 -33
  77. package/src/js/components/general/cart-slider.js +19 -16
  78. package/src/js/components/general/create-popup-slider.js +168 -173
  79. package/src/js/components/share-project-list.js +8 -5
  80. package/src/js/emulation/big-wins.js +1081 -904
  81. package/src/js/emulation/billie-modal.js +23 -19
  82. package/src/js/emulation/checkout-payment-details.js +47 -38
  83. package/src/js/emulation/custom-slider-emulation.js +17 -13
  84. package/src/js/emulation/filters-emulation.js +164 -0
  85. package/src/js/emulation/forms.js +360 -323
  86. package/src/js/emulation/mini-basket-data.js +1051 -923
  87. package/src/js/emulation/paymentLoader.js +17 -17
  88. package/src/js/emulation/pdf-file-loader.js +89 -91
  89. package/src/js/emulation/popover-mini-basket.js +246 -239
  90. package/src/js/emulation/product-counter.js +50 -0
  91. package/src/js/emulation/project-list-pdp.js +320 -316
  92. package/src/js/emulation/repayment-toggle.js +23 -24
  93. package/src/js/emulation/reset-filter-desktop.js +5 -0
  94. package/src/js/emulation/selectable.js +22 -18
  95. package/src/js/emulation/wismo-details.js +23 -31
  96. package/src/js/page/basket/basket-update-cart-action.js +59 -56
  97. package/src/js/page/basket/basket-update-cart.js +27 -27
  98. package/src/js/page/basket/basket-utils.js +40 -33
  99. package/src/js/page/basket/mini-basket-total.js +70 -66
  100. package/src/js/page/basket/quantity-change-handler.js +73 -55
  101. package/src/js/page/basket/update-quantity-operation.js +39 -30
  102. package/src/js/page/basket/update-quantity.js +62 -62
  103. package/src/js/page/basket-v2.js +362 -229
  104. package/src/js/page/billie-business-type.js +27 -27
  105. package/src/js/page/checkout-payment-details.js +301 -299
  106. package/src/js/page/components/discounts.js +39 -36
  107. package/src/js/page/components/mini-basket-slider.js +604 -545
  108. package/src/js/page/filters/desktop-nav.js +64 -0
  109. package/src/js/page/filters/mobile-nav.js +93 -0
  110. package/src/js/page/filters/plp-filters-chips.js +92 -0
  111. package/src/js/page/filters/plp-filters-mobile.js +150 -0
  112. package/src/js/page/filters/plp-filters-panel.js +123 -0
  113. package/src/js/page/filters/plp-filters-utils.js +66 -0
  114. package/src/js/page/filters/plp-filters.js +256 -0
  115. package/src/js/page/filters/sort-by.js +172 -0
  116. package/src/js/page/klarna-modal-scroll-disable.js +4 -4
  117. package/src/js/page/my-account.js +33 -33
  118. package/src/js/page/online-exclusive.js +28 -30
  119. package/src/js/page/search-filter.js +62 -0
  120. package/src/js/page/share-project-list.js +57 -0
  121. package/src/js/page/tradePro-rewards.js +69 -39
  122. package/src/js/page/utils/copy-to-clipboard.js +79 -47
  123. package/src/js/page/utils/helpers.js +14 -9
  124. package/src/js/page/utils/show-more-less.js +273 -0
  125. package/src/page_empty-shared-project-list-bicester-hub.html +4 -0
  126. package/src/page_empty-shopping-list_guest.html +1 -0
  127. package/src/page_kitchen-plp.html +2 -2
  128. package/src/page_my-shopping-list-add-notes.html +1 -0
  129. package/src/page_my-shopping-list-energy.html +1 -0
  130. package/src/page_my-shopping-list-hide-download.html +2 -1
  131. package/src/page_my-shopping-list-pdf.html +2 -0
  132. package/src/page_my-shopping-list-saved-ref.html +1 -0
  133. package/src/page_my-shopping-list-wisdom-oos-registered.html +1 -0
  134. package/src/page_my-shopping-list-wisdom-oos.html +1 -0
  135. package/src/page_my-shopping-list-wisdom-partial-registered.html +1 -0
  136. package/src/page_my-shopping-list-wisdom-registered.html +1 -0
  137. package/src/page_my-shopping-list-wisdom.html +1 -0
  138. package/src/page_my-shopping-list.html +1 -0
  139. package/src/page_my-shopping-list_not-register.html +3 -0
  140. package/src/page_plp-with-paint.html +2 -7
  141. package/src/page_plp.html +2 -7
  142. package/src/page_plp_v2-energy-efficiency.html +1 -6
  143. package/src/page_plp_v2-favourite-products.html +6 -7
  144. package/src/page_plp_v2-vat.html +2 -7
  145. package/src/page_plp_v2.html +22 -9
  146. package/src/page_product_search-vat.html +2 -7
  147. package/src/page_product_search.html +2 -7
  148. package/src/page_project-list-generate-project-list-ID.html +3 -0
  149. package/src/page_project-list-vat.html +4 -0
  150. package/src/page_project-list-with-new-share-popup-android.html +3 -1
  151. package/src/page_project-list-with-new-share-popup-ios.html +3 -1
  152. package/src/page_project-list-with-new-share-popup.html +2 -1
  153. package/src/page_search-results.html +2 -7
  154. package/src/page_shared-project-list-bicester-hub.html +3 -1
  155. package/src/scss/common/_common.scss +5 -4
  156. package/src/scss/components/_accordion.scss +1 -3
  157. package/src/scss/components/_custom-slider.scss +15 -14
  158. package/src/scss/components/_date-selection-add-new-styles.scss +6 -7
  159. package/src/scss/components/_date-selection.scss +1 -1
  160. package/src/scss/components/{kitchen/_filter-modal.scss → _filter-modal.scss} +55 -4
  161. package/src/scss/components/{kitchen/_plp-filters.scss → _plp-filters.scss} +31 -13
  162. package/src/scss/components/_popover-mini-basket.scss +3 -3
  163. package/src/scss/components/_search-filter.scss +95 -15
  164. package/src/scss/components/_sort-by.scss +190 -0
  165. package/src/scss/components/checkout-chip.scss +2 -2
  166. package/src/scss/components/checkout-payment-repayment-terms.scss +1 -1
  167. package/src/scss/components/my-account/_barcode.scss +1 -1
  168. package/src/scss/components/my-account/_cards-swap.scss +3 -1
  169. package/src/scss/components/my-account/_clipboard-code.scss +3 -3
  170. package/src/scss/components/my-account/_discount.scss +2 -2
  171. package/src/scss/globals/_global-components.scss +3 -0
  172. package/src/scss/helpers/_colors-semantic.scss +68 -68
  173. package/src/scss/helpers/_variables.scss +242 -196
  174. package/src/scss/kitchen-plp-main.scss +0 -3
  175. package/src/scss/main.scss +65 -65
  176. package/src/scss/pages/my-account-v2.scss +5 -5
  177. package/src/scss/pages/page_product-details-v2.scss +1 -4
  178. package/src/scss/pages/page_product_search.scss +9 -1
  179. package/src/scss/pages/page_products-list-combined.scss +28 -24
  180. package/src/scss/pages/page_products-list.scss +8 -0
  181. package/src/scss/pages/tradePro-rewards.scss +3 -4
  182. package/build/js/page/accordion.js +0 -35
  183. package/build/js/page/kitchen/plp-filters-chips.js +0 -90
  184. package/build/js/page/kitchen/plp-filters-mobile.js +0 -72
  185. package/build/js/page/kitchen/plp-filters-panel.js +0 -119
  186. package/build/js/page/kitchen/plp-filters-utils.js +0 -65
  187. package/build/js/page/kitchen/plp-filters.js +0 -205
  188. package/build/js/page/kitchen/sort-by.js +0 -157
  189. package/src/js/components/general/search-filter.js +0 -21
  190. package/src/js/page/accordion.js +0 -35
  191. package/src/js/page/kitchen/plp-filters-chips.js +0 -90
  192. package/src/js/page/kitchen/plp-filters-mobile.js +0 -72
  193. package/src/js/page/kitchen/plp-filters-panel.js +0 -119
  194. package/src/js/page/kitchen/plp-filters-utils.js +0 -65
  195. package/src/js/page/kitchen/plp-filters.js +0 -205
  196. package/src/js/page/kitchen/sort-by.js +0 -157
@@ -1,22 +1,26 @@
1
1
  (function () {
2
- const ORDER = ["30", "30_60", "30_90", "30_60_90"];
2
+ const ORDER = ['30', '30_60', '30_90', '30_60_90'];
3
3
 
4
4
  const COPY = {
5
- "30": {
6
- heading: "Buy now, pay within 30 days",
7
- repayment: "From the point of collection / delivery of goods you’ll have 30 days to pay",
5
+ 30: {
6
+ heading: 'Buy now, pay within 30 days',
7
+ repayment:
8
+ 'From the point of collection / delivery of goods you’ll have 30 days to pay',
8
9
  },
9
- "30_60": {
10
- heading: "Buy now and choose to pay within 30 or 60 days",
11
- repayment: "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
10
+ '30_60': {
11
+ heading: 'Buy now and choose to pay within 30 or 60 days',
12
+ repayment:
13
+ "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
12
14
  },
13
- "30_90": {
14
- heading: "Buy now and choose to pay within 30 or 90 days",
15
- repayment: "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
15
+ '30_90': {
16
+ heading: 'Buy now and choose to pay within 30 or 90 days',
17
+ repayment:
18
+ "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
16
19
  },
17
- "30_60_90": {
18
- heading: "Buy now and choose to pay within 30, 60 or 90 days",
19
- repayment: "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
20
+ '30_60_90': {
21
+ heading: 'Buy now and choose to pay within 30, 60 or 90 days',
22
+ repayment:
23
+ "From the point of collection / delivery of goods, you'll have until the end of your chosen repayment term to pay",
20
24
  },
21
25
  };
22
26
 
@@ -28,15 +32,15 @@
28
32
  }
29
33
 
30
34
  function applyBillieTerms(terms) {
31
- const copy = COPY[terms] || COPY["30"];
32
- const $modal = $("#billieLearnMoreModal");
35
+ const copy = COPY[terms] || COPY['30'];
36
+ const $modal = $('#billieLearnMoreModal');
33
37
 
34
- $modal.find(".js-billie-terms-heading").text(copy.heading);
35
- $modal.find(".js-billie-repayment-line").text(copy.repayment);
36
- $modal.attr("data-billie-terms", terms);
38
+ $modal.find('.js-billie-terms-heading').text(copy.heading);
39
+ $modal.find('.js-billie-repayment-line').text(copy.repayment);
40
+ $modal.attr('data-billie-terms', terms);
37
41
  }
38
42
 
39
- $(document).on("click", ".billie__link", function (e) {
43
+ $(document).on('click', '.billie__link', function (e) {
40
44
  e.preventDefault();
41
45
 
42
46
  const terms = nextTerms();
@@ -1,44 +1,53 @@
1
1
  var Wick = Wick || {};
2
2
 
3
- Wick.PaymentDetails = (function() {
4
- var $btnEnterDetails = $('.btn-enter-details'),
5
- $form = $btnEnterDetails.parents('form'),
6
- isGuestPage = $('.page_checkout-payment-details_guest').length;
3
+ Wick.PaymentDetails = (function () {
4
+ var $btnEnterDetails = $('.btn-enter-details'),
5
+ $form = $btnEnterDetails.parents('form'),
6
+ isGuestPage = $('.page_checkout-payment-details_guest').length;
7
7
 
8
- function bindEvents() {
9
- $btnEnterDetails.on('click', function() {
10
- if ($form.find('#card-name').val()?.length &&
11
- $form.find('#first-line-address').val().length &&
12
- $form.find('#address-line-1').val().length &&
13
- $form.find('#town-city').val().length &&
14
- $form.find('#postcode_additional').val().length) {
15
- $('.checkout-payment-details__card-details').removeClass('checkout-payment-details__card-details_hidden');
16
- $('html, body').animate({
17
- scrollTop: $('.checkout-payment-details__card-details').offset().top - 15,
18
- }, 700);
19
- return false;
20
- }
21
- Wick.Forms.showValidationErrors($form[0]);
22
- return false;
23
- });
8
+ function bindEvents() {
9
+ $btnEnterDetails.on('click', function () {
10
+ if (
11
+ $form.find('#card-name').val()?.length &&
12
+ $form.find('#first-line-address').val().length &&
13
+ $form.find('#address-line-1').val().length &&
14
+ $form.find('#town-city').val().length &&
15
+ $form.find('#postcode_additional').val().length
16
+ ) {
17
+ $('.checkout-payment-details__card-details').removeClass(
18
+ 'checkout-payment-details__card-details_hidden'
19
+ );
20
+ $('html, body').animate(
21
+ {
22
+ scrollTop: $('.checkout-payment-details__card-details').offset().top - 15,
23
+ },
24
+ 700
25
+ );
26
+ return false;
27
+ }
28
+ Wick.Forms.showValidationErrors($form[0]);
29
+ return false;
30
+ });
24
31
 
25
- $('.checkout-payment-details__card-details').on('submit', function() {
26
- var $form = $(this);
27
- if ($form.find('#card-type').val() &&
28
- $form.find('#card-name1').val().length &&
29
- $form.find('#card-number').val().length &&
30
- $form.find('#month').val() &&
31
- $form.find('#year').val() &&
32
- $form.find('#security-code').val()) {
33
- window.location.href = isGuestPage
34
- ? './page_checkout_confirmation_guest.html'
35
- : './page_checkout_confirmation.html';
36
- return false;
37
- }
38
- Wick.Forms.showValidationErrors(this);
39
- return false;
40
- });
41
- }
32
+ $('.checkout-payment-details__card-details').on('submit', function () {
33
+ var $form = $(this);
34
+ if (
35
+ $form.find('#card-type').val() &&
36
+ $form.find('#card-name1').val().length &&
37
+ $form.find('#card-number').val().length &&
38
+ $form.find('#month').val() &&
39
+ $form.find('#year').val() &&
40
+ $form.find('#security-code').val()
41
+ ) {
42
+ window.location.href = isGuestPage
43
+ ? './page_checkout_confirmation_guest.html'
44
+ : './page_checkout_confirmation.html';
45
+ return false;
46
+ }
47
+ Wick.Forms.showValidationErrors(this);
48
+ return false;
49
+ });
50
+ }
42
51
 
43
- bindEvents();
52
+ bindEvents();
44
53
  })();
@@ -1,22 +1,26 @@
1
-
2
1
  function simulateHybrisSendingHtml() {
3
- const htmlFromHybris = Wick.FEMock.cartPDP;
4
- const event = new CustomEvent('productAddedToCart', {
5
- detail: { html: htmlFromHybris }
6
- });
7
- document.dispatchEvent(event);
2
+ const htmlFromHybris = Wick.FEMock.cartPDP;
3
+ const event = new CustomEvent('productAddedToCart', {
4
+ detail: { html: htmlFromHybris },
5
+ });
6
+ document.dispatchEvent(event);
8
7
  }
9
8
 
10
9
  function bindResolveEvent(events) {
11
- $(window).on(events.join(' '), function ({ detail: { resolve } }) {
12
- setTimeout(() => {
13
- resolve();
14
- }, 200);
15
- });
10
+ $(window).on(events.join(' '), function ({ detail: { resolve } }) {
11
+ setTimeout(() => {
12
+ resolve();
13
+ }, 200);
14
+ });
16
15
  }
17
16
 
18
17
  $(document).ready(function () {
19
- $('.btn-add-to-basket').on('click', simulateHybrisSendingHtml);
18
+ $('.btn-add-to-basket').on('click', simulateHybrisSendingHtml);
20
19
 
21
- bindResolveEvent(['CLOSE_JUST_ADDED', 'CLOSE_MINI_BASKET', 'MINI_BASKET_CHECKOUT', 'MINI_BASKET_VIEW_BASKET']);
20
+ bindResolveEvent([
21
+ 'CLOSE_JUST_ADDED',
22
+ 'CLOSE_MINI_BASKET',
23
+ 'MINI_BASKET_CHECKOUT',
24
+ 'MINI_BASKET_VIEW_BASKET',
25
+ ]);
22
26
  });
@@ -0,0 +1,164 @@
1
+ import { createShowMoreLess } from '../page/utils/show-more-less';
2
+
3
+ var Wick = window.Wick || (window.Wick = {});
4
+
5
+ function waitFor(getter, cb, opts) {
6
+ opts = opts || {};
7
+ var timeout = opts.timeout || 8000;
8
+ var interval = opts.interval || 50;
9
+
10
+ var start = Date.now();
11
+ (function tick() {
12
+ var val;
13
+ try {
14
+ val = getter();
15
+ } catch (e) {
16
+ val = null;
17
+ }
18
+
19
+ if (val) {
20
+ cb(val);
21
+ return;
22
+ }
23
+
24
+ if (Date.now() - start > timeout) {
25
+ return;
26
+ }
27
+
28
+ setTimeout(tick, interval);
29
+ })();
30
+ }
31
+
32
+ // show-more-less
33
+ (function () {
34
+ const SEL = {
35
+ OPEN: '#open-overlay',
36
+ CLOSE: '#close-overlay, .filter-results__btn-close',
37
+ FILTER_RESULT: '.filter-results_desktop',
38
+ FILTER_MOBILE: '.filter-results_mobile',
39
+ CATEGORY: '.filter__item--category',
40
+ };
41
+
42
+ const SRPShowMoreLess = createShowMoreLess({
43
+ excludeGroup: ($group) => $group.hasClass(SEL.CATEGORY),
44
+ });
45
+
46
+ function initInScope() {
47
+ const $fm = $(SEL.FILTER_MOBILE);
48
+ SRPShowMoreLess.init($(SEL.FILTER_RESULT));
49
+ SRPShowMoreLess.init($fm);
50
+ }
51
+
52
+ function resetInMobile() {
53
+ const $fm = $(SEL.FILTER_MOBILE);
54
+ SRPShowMoreLess.resetAll($fm);
55
+ }
56
+
57
+ $(function () {
58
+ initInScope();
59
+ });
60
+
61
+ $(document)
62
+ .off('click.srpSmlEmu', SEL.OPEN)
63
+ .on('click.srpSmlEmu', SEL.OPEN, function (e) {
64
+ e.preventDefault();
65
+ initInScope();
66
+ resetInMobile();
67
+ });
68
+
69
+ $(document)
70
+ .off('click.srpSmlEmu', SEL.CLOSE)
71
+ .on('click.srpSmlEmu', SEL.CLOSE, function (e) {
72
+ e.preventDefault();
73
+ resetInMobile();
74
+ });
75
+ })();
76
+
77
+ (function () {
78
+ waitFor(
79
+ function () {
80
+ return Wick.Sort;
81
+ },
82
+ function (Sort) {
83
+ Sort.ROOT = '.products-list-page:not(.page-KitchenPLPPage)';
84
+ Wick.Sort.ROOT = Sort.ROOT;
85
+
86
+ var $root = $(Sort.ROOT);
87
+ if (!$root.length) return;
88
+
89
+ if (Sort.__emuBound) return;
90
+ Sort.__emuBound = true;
91
+
92
+ $root.off('click', Sort.TRIGGER_MOBILE);
93
+ $root.off('click', Sort.TRIGGER_DESKTOP_BTN);
94
+ $root.off('keydown', Sort.TRIGGER_MOBILE + ', ' + Sort.TRIGGER_DESKTOP_BTN);
95
+ $root.off('click', Sort.OPTION);
96
+
97
+ $root.on('click', Sort.TRIGGER_MOBILE, function (e) {
98
+ e.stopPropagation();
99
+
100
+ if ($(e.target).closest(Sort.DROPDOWN).length) return;
101
+ e.preventDefault();
102
+ Sort.toggle($(e.currentTarget));
103
+ });
104
+
105
+ $root.on('click', Sort.TRIGGER_DESKTOP_BTN, function (e) {
106
+ e.stopPropagation();
107
+
108
+ e.preventDefault();
109
+ Sort.toggle($(e.currentTarget).closest(Sort.WRAP));
110
+ });
111
+
112
+ $root.on(
113
+ 'keydown',
114
+ Sort.TRIGGER_MOBILE + ', ' + Sort.TRIGGER_DESKTOP_BTN,
115
+ function (e) {
116
+ if (e.key === 'Enter' || e.key === ' ') {
117
+ e.stopPropagation();
118
+ e.preventDefault();
119
+ Sort.toggle($(e.currentTarget).closest(Sort.WRAP));
120
+ }
121
+ }
122
+ );
123
+
124
+ $root.on('click', Sort.OPTION, function (e) {
125
+ e.preventDefault();
126
+ e.stopPropagation();
127
+
128
+ var opt = $(e.currentTarget);
129
+ var value = opt.data('value');
130
+ var label = Sort.valueToLabel(value);
131
+
132
+ if (opt.data('is-plp-srp')) {
133
+ var wrap = opt.closest(Sort.WRAP);
134
+ wrap.find(Sort.OPTION).removeClass('is-active');
135
+ opt.addClass('is-active');
136
+
137
+ $(Sort.INFO).text(label);
138
+ Sort.closeAll();
139
+ return;
140
+ }
141
+
142
+ Sort.updateSortParamInURL(value);
143
+ });
144
+
145
+ (function bootstrapEmu() {
146
+ var urlParams = new URLSearchParams(window.location.search);
147
+ var value = urlParams.get('sortBy') || 'relevance';
148
+ var label = Sort.valueToLabel(value);
149
+
150
+ var $wraps = $root.find(Sort.WRAP);
151
+
152
+ $wraps.each(function (_, el) {
153
+ var w = $(el);
154
+ w.find(Sort.OPTION)
155
+ .removeClass('is-active')
156
+ .filter('[data-value="' + value + '"]')
157
+ .addClass('is-active');
158
+ });
159
+
160
+ $(Sort.INFO).text(label);
161
+ })();
162
+ }
163
+ );
164
+ })();