wickes-css2 2.105.0-develop.2 → 2.105.0-develop.4

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 (168) hide show
  1. package/Readme.md +3 -2
  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/page_product_search.css +1 -1
  9. package/build/css/pages/page_products-list-combined.css +1 -1
  10. package/build/css/pages/page_products-list.css +1 -1
  11. package/build/css/pdp-main-before-combine.css +1 -1
  12. package/build/css/pdp-main-non-critical.css +1 -1
  13. package/build/css/pdp-main.css +1 -1
  14. package/build/css/plp-main.css +1 -1
  15. package/build/css/store-locator-main.css +1 -1
  16. package/build/js/account-members.min.js +1 -1
  17. package/build/js/basket.min.js +2 -2
  18. package/build/js/bundle.min.js +1 -1
  19. package/build/js/checkout.min.js +2 -2
  20. package/build/js/emulation.min.js +12122 -11594
  21. package/build/js/general.bundle.min.js +1 -1
  22. package/build/js/kitchen/kitchen-plp.min.js +1 -9
  23. package/build/js/merged-checkout.min.js +2 -2
  24. package/build/js/mini-basket-slider.min.js +1 -1
  25. package/build/js/page/basket/basket-update-cart-action.js +59 -56
  26. package/build/js/page/basket/basket-update-cart.js +27 -27
  27. package/build/js/page/basket/basket-utils.js +40 -33
  28. package/build/js/page/basket/mini-basket-total.js +70 -66
  29. package/build/js/page/basket/quantity-change-handler.js +73 -55
  30. package/build/js/page/basket/update-quantity-operation.js +39 -30
  31. package/build/js/page/basket/update-quantity.js +62 -62
  32. package/build/js/page/basket-v2.js +362 -229
  33. package/build/js/page/billie-business-type.js +27 -27
  34. package/build/js/page/checkout-payment-details.js +301 -299
  35. package/build/js/page/components/discounts.js +39 -36
  36. package/build/js/page/components/mini-basket-slider.js +604 -545
  37. package/build/js/page/filters/desktop-nav.js +64 -0
  38. package/build/js/page/filters/mobile-nav.js +93 -0
  39. package/build/js/page/filters/plp-filters-chips.js +92 -0
  40. package/build/js/page/filters/plp-filters-mobile.js +150 -0
  41. package/build/js/page/filters/plp-filters-panel.js +123 -0
  42. package/build/js/page/filters/plp-filters-utils.js +66 -0
  43. package/build/js/page/filters/plp-filters.js +256 -0
  44. package/build/js/page/filters/sort-by.js +172 -0
  45. package/build/js/page/klarna-modal-scroll-disable.js +4 -4
  46. package/build/js/page/online-exclusive.js +28 -30
  47. package/build/js/page/search-filter.js +62 -0
  48. package/build/js/page/utils/helpers.js +14 -9
  49. package/build/js/page/utils/show-more-less.js +273 -0
  50. package/build/js/pdp.bundle.min.js +1 -1
  51. package/build/js/plp-filters.min.js +9 -0
  52. package/build/js/plp.bundle.min.js +1 -1
  53. package/build/js/project-list.min.js +1 -1
  54. package/build/js/search-filter.min.js +1 -0
  55. package/package.json +5 -3
  56. package/src/components/accordion.hbs +2 -2
  57. package/src/components/generate-project-id.hbs +1 -1
  58. package/src/components/kitchen/dropdown.hbs +6 -3
  59. package/src/components/kitchen/filter-modal-content-kitchen.hbs +10 -0
  60. package/src/components/kitchen/filter-modal.hbs +10 -13
  61. package/src/components/kitchen/plp-filters.hbs +3 -1
  62. package/src/components/kitchen/sort-by.hbs +1 -1
  63. package/src/components/search-filter-modal-content.hbs +102 -0
  64. package/src/components/search-filter.hbs +121 -112
  65. package/src/components/shopping-list-with-share-list-v2.hbs +28 -10
  66. package/src/components/shopping-list.hbs +5 -5
  67. package/src/data/data_plp_load-more.json +1 -1
  68. package/src/elements/btn.hbs +7 -0
  69. package/src/js/components/general/accordion.js +38 -29
  70. package/src/js/components/general/cart-slider.js +19 -16
  71. package/src/js/components/general/create-popup-slider.js +168 -173
  72. package/src/js/emulation/big-wins.js +1081 -904
  73. package/src/js/emulation/billie-modal.js +23 -19
  74. package/src/js/emulation/checkout-payment-details.js +47 -38
  75. package/src/js/emulation/custom-slider-emulation.js +17 -13
  76. package/src/js/emulation/filters-emulation.js +164 -0
  77. package/src/js/emulation/forms.js +360 -323
  78. package/src/js/emulation/mini-basket-data.js +1051 -923
  79. package/src/js/emulation/paymentLoader.js +17 -17
  80. package/src/js/emulation/pdf-file-loader.js +89 -91
  81. package/src/js/emulation/popover-mini-basket.js +246 -239
  82. package/src/js/emulation/product-counter.js +50 -0
  83. package/src/js/emulation/project-list-pdp.js +321 -316
  84. package/src/js/emulation/repayment-toggle.js +23 -24
  85. package/src/js/emulation/reset-filter-desktop.js +5 -0
  86. package/src/js/emulation/selectable.js +22 -18
  87. package/src/js/emulation/wismo-details.js +23 -31
  88. package/src/js/page/basket/basket-update-cart-action.js +59 -56
  89. package/src/js/page/basket/basket-update-cart.js +27 -27
  90. package/src/js/page/basket/basket-utils.js +40 -33
  91. package/src/js/page/basket/mini-basket-total.js +70 -66
  92. package/src/js/page/basket/quantity-change-handler.js +73 -55
  93. package/src/js/page/basket/update-quantity-operation.js +39 -30
  94. package/src/js/page/basket/update-quantity.js +62 -62
  95. package/src/js/page/basket-v2.js +362 -229
  96. package/src/js/page/billie-business-type.js +27 -27
  97. package/src/js/page/checkout-payment-details.js +301 -299
  98. package/src/js/page/components/discounts.js +39 -36
  99. package/src/js/page/components/mini-basket-slider.js +604 -545
  100. package/src/js/page/filters/desktop-nav.js +64 -0
  101. package/src/js/page/filters/mobile-nav.js +93 -0
  102. package/src/js/page/filters/plp-filters-chips.js +92 -0
  103. package/src/js/page/filters/plp-filters-mobile.js +150 -0
  104. package/src/js/page/filters/plp-filters-panel.js +123 -0
  105. package/src/js/page/filters/plp-filters-utils.js +66 -0
  106. package/src/js/page/filters/plp-filters.js +256 -0
  107. package/src/js/page/filters/sort-by.js +172 -0
  108. package/src/js/page/klarna-modal-scroll-disable.js +4 -4
  109. package/src/js/page/online-exclusive.js +28 -30
  110. package/src/js/page/search-filter.js +62 -0
  111. package/src/js/page/utils/helpers.js +14 -9
  112. package/src/js/page/utils/show-more-less.js +273 -0
  113. package/src/page_empty-shared-project-list-bicester-hub.html +3 -0
  114. package/src/page_kitchen-plp.html +2 -2
  115. package/src/page_my-shopping-list-hide-download.html +1 -1
  116. package/src/page_plp-with-paint.html +2 -7
  117. package/src/page_plp.html +2 -7
  118. package/src/page_plp_v2-energy-efficiency.html +1 -6
  119. package/src/page_plp_v2-favourite-products.html +6 -7
  120. package/src/page_plp_v2-vat.html +2 -7
  121. package/src/page_plp_v2.html +22 -9
  122. package/src/page_product_search-vat.html +2 -7
  123. package/src/page_product_search.html +2 -7
  124. package/src/page_project-list-with-new-share-popup-android.html +15 -0
  125. package/src/page_project-list-with-new-share-popup-ios.html +15 -0
  126. package/src/page_project-list-with-new-share-popup.html +1 -0
  127. package/src/page_search-results.html +2 -7
  128. package/src/page_shared-project-list-bicester-hub.html +1 -0
  129. package/src/scss/common/_common.scss +5 -4
  130. package/src/scss/components/_accordion.scss +1 -3
  131. package/src/scss/components/_custom-slider.scss +15 -14
  132. package/src/scss/components/_date-selection-add-new-styles.scss +6 -7
  133. package/src/scss/components/_date-selection.scss +1 -1
  134. package/src/scss/components/{kitchen/_filter-modal.scss → _filter-modal.scss} +55 -4
  135. package/src/scss/components/{kitchen/_plp-filters.scss → _plp-filters.scss} +31 -13
  136. package/src/scss/components/_popover-mini-basket.scss +3 -3
  137. package/src/scss/components/_search-filter.scss +95 -15
  138. package/src/scss/components/_shared-shopping-list.scss +22 -0
  139. package/src/scss/components/_shopping-list.scss +18 -8
  140. package/src/scss/components/_sort-by.scss +190 -0
  141. package/src/scss/components/checkout-chip.scss +2 -2
  142. package/src/scss/components/checkout-payment-repayment-terms.scss +1 -1
  143. package/src/scss/globals/_global-components.scss +3 -0
  144. package/src/scss/helpers/_colors-semantic.scss +68 -68
  145. package/src/scss/helpers/_variables.scss +242 -196
  146. package/src/scss/kitchen-plp-main.scss +0 -3
  147. package/src/scss/main.scss +65 -65
  148. package/src/scss/pages/page_product-details-v2.scss +1 -4
  149. package/src/scss/pages/page_product_search.scss +9 -1
  150. package/src/scss/pages/page_products-list-combined.scss +28 -24
  151. package/src/scss/pages/page_products-list.scss +8 -0
  152. package/src/scss/pages/tradePro-rewards.scss +2 -3
  153. package/src/sitemap.html +9 -1
  154. package/build/js/page/accordion.js +0 -35
  155. package/build/js/page/kitchen/plp-filters-chips.js +0 -90
  156. package/build/js/page/kitchen/plp-filters-mobile.js +0 -72
  157. package/build/js/page/kitchen/plp-filters-panel.js +0 -119
  158. package/build/js/page/kitchen/plp-filters-utils.js +0 -65
  159. package/build/js/page/kitchen/plp-filters.js +0 -205
  160. package/build/js/page/kitchen/sort-by.js +0 -157
  161. package/src/js/components/general/search-filter.js +0 -21
  162. package/src/js/page/accordion.js +0 -35
  163. package/src/js/page/kitchen/plp-filters-chips.js +0 -90
  164. package/src/js/page/kitchen/plp-filters-mobile.js +0 -72
  165. package/src/js/page/kitchen/plp-filters-panel.js +0 -119
  166. package/src/js/page/kitchen/plp-filters-utils.js +0 -65
  167. package/src/js/page/kitchen/plp-filters.js +0 -205
  168. package/src/js/page/kitchen/sort-by.js +0 -157
@@ -381,7 +381,7 @@
381
381
  "currentPage": 0,
382
382
  "sort": null,
383
383
  "numberOfPages": 3,
384
- "totalNumberOfResults": 65,
384
+ "totalNumberOfResults": 1818,
385
385
  "startPageItem": 1,
386
386
  "endPageItem": 0,
387
387
  "offset": 0,
@@ -0,0 +1,7 @@
1
+ <button
2
+ class="{{class}}"
3
+ data-action="{{action}}"
4
+ {{#if ariaControls}}aria-controls="{{ariaControls}}"{{/if}}
5
+ >
6
+ {{text}}
7
+ </button>
@@ -1,35 +1,44 @@
1
1
  var Wick = Wick || {};
2
- Wick.Accordion = (function(){
3
- var $accordion = $('.accordion'),
4
- accordionToggler = '.accordion__header',
5
- accordionIcon = '.accordion__action',
6
- accordionContent = '.accordion__content',
7
- collapsed = 'accordion_collapsed',
8
- $asideAccordion = $('.aside-accordion .js-toggle-aside-accordion');
9
- var bindEvents = function (index, element) {
10
- var $acc = $(element);
2
+ Wick.Accordion = (function () {
3
+ var accordionRoot = '.accordion',
4
+ accordionToggler = '.accordion__header',
5
+ accordionIcon = '.accordion__action',
6
+ accordionContent = '.accordion__content',
7
+ collapsed = 'accordion_collapsed',
8
+ $asideAccordion = $('.aside-accordion .js-toggle-aside-accordion');
11
9
 
12
- var accordionTrigger = $acc.attr('data-action-element') === 'icon' ? accordionIcon : accordionToggler
13
- $acc.find(accordionTrigger).on('click', function(){
14
- $acc.toggleClass(collapsed);
15
- $acc.children(accordionContent).slideToggle(200);
16
- });
17
- };
10
+ function getTriggerSelector($acc) {
11
+ return $acc.attr('data-action-element') === 'icon' ? accordionIcon : accordionToggler;
12
+ }
18
13
 
19
- var init = function () {
20
- $accordion.each(bindEvents);
14
+ function onAccordionClick(e) {
15
+ var $acc = $(e.target).closest(accordionRoot);
16
+ if (!$acc.length) return;
21
17
 
22
- $asideAccordion.click(function() {
23
- if (window.matchMedia("(min-width: 992px)").matches) {
24
- if ($(this).text().toLowerCase() != 'useful links') {
25
- $(this).closest('.aside-nav2__holder')
26
- .toggleClass('is-active')
27
- .find('.aside-nav2__list')
28
- .slideToggle(250);
29
- }
30
- }
31
- });
32
- }
18
+ var trigger = getTriggerSelector($acc);
19
+ if (!$(e.target).closest(trigger).length) return;
33
20
 
34
- init();
21
+ $acc.toggleClass(collapsed);
22
+ $acc.children(accordionContent).stop(true, true).slideToggle(200);
23
+ }
24
+
25
+ function init() {
26
+ $(document)
27
+ .off('click.wickAccordion', accordionToggler + ',' + accordionIcon)
28
+ .on('click.wickAccordion', accordionToggler + ',' + accordionIcon, onAccordionClick);
29
+
30
+ $asideAccordion.off('click.wickAsideAccordion').on('click.wickAsideAccordion', function () {
31
+ if (window.matchMedia('(min-width: 992px)').matches) {
32
+ if ($(this).text().toLowerCase() !== 'useful links') {
33
+ $(this)
34
+ .closest('.aside-nav2__holder')
35
+ .toggleClass('is-active')
36
+ .find('.aside-nav2__list')
37
+ .slideToggle(250);
38
+ }
39
+ }
40
+ });
41
+ }
42
+
43
+ init();
35
44
  })();
@@ -1,20 +1,23 @@
1
1
  const cartSliderHTML = '<div class="custom-slider just-added d-none"></div>';
2
2
 
3
3
  createPopupSlider({
4
- type: 'cart',
5
- sliderSelector: '.custom-slider.just-added',
6
- onAppendEvent: 'productAddedToCart',
7
- onAppend: function (event, { showSlider, handleScroll, el }) {
8
- if (!$('.custom-slider.just-added').length) {
9
- $('body').append(cartSliderHTML);
10
- }
11
- const htmlContent = event.detail.html;
12
- $(el.slider).append(htmlContent);
13
- showSlider();
14
- Wick.MiniBasketSliderFE.isMiniBasketLoaded = false;
15
- $(el.sliderWrap).on('scroll', _.debounce(() => handleScroll(el.sliderWrap), 100));
16
- },
17
- onClose: function () {
18
- Wick.MiniBasketSliderFE.cartEntries = [];
19
- }
4
+ type: 'cart',
5
+ sliderSelector: '.custom-slider.just-added',
6
+ onAppendEvent: 'productAddedToCart',
7
+ onAppend: function (event, { showSlider, handleScroll, el }) {
8
+ if (!$('.custom-slider.just-added').length) {
9
+ $('body').append(cartSliderHTML);
10
+ }
11
+ const htmlContent = event.detail.html;
12
+ $(el.slider).append(htmlContent);
13
+ showSlider();
14
+ Wick.MiniBasketSliderFE.isMiniBasketLoaded = false;
15
+ $(el.sliderWrap).on(
16
+ 'scroll',
17
+ _.debounce(() => handleScroll(el.sliderWrap), 100)
18
+ );
19
+ },
20
+ onClose: function () {
21
+ Wick.MiniBasketSliderFE.cartEntries = [];
22
+ },
20
23
  });
@@ -1,199 +1,194 @@
1
1
  function createEvent(eventName, payload, eventDetail) {
2
- return new CustomEvent(eventName, {
3
- detail: {
4
- payload,
5
- resolve: eventDetail.resolve,
6
- reject: eventDetail.reject,
7
- },
8
- });
2
+ return new CustomEvent(eventName, {
3
+ detail: {
4
+ payload,
5
+ resolve: eventDetail.resolve,
6
+ reject: eventDetail.reject,
7
+ },
8
+ });
9
9
  }
10
10
 
11
+ /* eslint-disable no-unused-vars -- used globally */
11
12
  function createPopupSlider({ type, sliderSelector, onAppendEvent, onAppend, onClose }) {
12
- const events = {
13
- CLOSE_JUST_ADDED: 'CLOSE_JUST_ADDED',
14
- CLOSE_MINI_BASKET: 'CLOSE_MINI_BASKET'
15
- }
16
-
17
- const el = {
18
- $body: $('body'),
19
- slider: sliderSelector,
20
- sliderWrap: `${sliderSelector} .custom-slider__wrap`,
21
- sliderWrapScroll: 'custom-slider__wrap--scroll',
22
- footer: '.custom-slider__footer',
23
- closePopup: `${sliderSelector} .close-popup`,
24
- $stickyWrapper: $('.sticky-wrapper'),
25
- $headerWrapper: $('.header-wrapper'),
26
- scrollDisable: 'slider-scroll-disable',
27
- footerFixed: 'footer-fixed',
28
- btnMiniBasket: '.header-minicart__btn',
29
- };
30
-
31
- function isSmallBreakpoint() {
32
- return Wick.Responsive.getCurrentBreakpoint() === 'down-sm';
33
- }
34
-
35
- function getAnimationClass() {
36
- return isSmallBreakpoint() ? 'bottom-to-top' : 'right-to-left';
37
- }
38
-
39
- function adjustHeight() {
40
- const stickyWrapperHeight = el.$stickyWrapper.outerHeight() || 0;
41
- const headerWrapperHeight = el.$headerWrapper.outerHeight() || 0;
42
-
43
- const totalHeight = stickyWrapperHeight + headerWrapperHeight;
44
- $(el.slider).css('height', `calc(100% - ${totalHeight}px)`);
45
- }
46
-
47
- function hideSlider() {
48
- $(el.slider).removeClass('show');
49
-
50
- setTimeout(() => {
51
- el.$body.removeClass(el.scrollDisable);
52
-
53
- if (!isSmallBreakpoint()) {
54
- el.$body.css('padding-right', '');
55
- }
56
-
57
- if (type === 'cart') {
58
- $(el.slider)
59
- .removeAttr('style')
60
- .empty();
61
- }
62
-
63
- $(el.slider).addClass('d-none');
64
- }, 400);
65
- }
66
-
67
- function handleScroll(sliderWrap) {
68
- const scrollHeight = $(sliderWrap)[0].scrollHeight;
69
- const scrollTop = $(sliderWrap).scrollTop();
70
- const clientHeight = $(sliderWrap)[0].clientHeight;
71
- const scrollBottom = scrollHeight - scrollTop - clientHeight;
72
-
73
- if (scrollBottom > 75) {
74
- $(el.footer).addClass(el.footerFixed);
75
- $(sliderWrap).addClass(el.sliderWrapScroll);
76
- } else {
77
- $(el.footer).removeClass(el.footerFixed);
78
- $(sliderWrap).removeClass(el.sliderWrapScroll);
13
+ const events = {
14
+ CLOSE_JUST_ADDED: 'CLOSE_JUST_ADDED',
15
+ CLOSE_MINI_BASKET: 'CLOSE_MINI_BASKET',
16
+ };
17
+
18
+ const el = {
19
+ $body: $('body'),
20
+ slider: sliderSelector,
21
+ sliderWrap: `${sliderSelector} .custom-slider__wrap`,
22
+ sliderWrapScroll: 'custom-slider__wrap--scroll',
23
+ footer: '.custom-slider__footer',
24
+ closePopup: `${sliderSelector} .close-popup`,
25
+ $stickyWrapper: $('.sticky-wrapper'),
26
+ $headerWrapper: $('.header-wrapper'),
27
+ scrollDisable: 'slider-scroll-disable',
28
+ footerFixed: 'footer-fixed',
29
+ btnMiniBasket: '.header-minicart__btn',
30
+ };
31
+
32
+ function isSmallBreakpoint() {
33
+ return Wick.Responsive.getCurrentBreakpoint() === 'down-sm';
34
+ }
35
+
36
+ function getAnimationClass() {
37
+ return isSmallBreakpoint() ? 'bottom-to-top' : 'right-to-left';
79
38
  }
80
- }
81
39
 
82
- function showSlider() {
83
- if (isSmallBreakpoint()) {
84
- adjustHeight();
40
+ function adjustHeight() {
41
+ const stickyWrapperHeight = el.$stickyWrapper.outerHeight() || 0;
42
+ const headerWrapperHeight = el.$headerWrapper.outerHeight() || 0;
43
+
44
+ const totalHeight = stickyWrapperHeight + headerWrapperHeight;
45
+ $(el.slider).css('height', `calc(100% - ${totalHeight}px)`);
85
46
  }
86
47
 
87
- const animationClass = getAnimationClass();
88
- const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;
89
- $(el.slider)
90
- .removeClass('bottom-to-top right-to-left')
91
- .addClass(animationClass);
48
+ function hideSlider() {
49
+ $(el.slider).removeClass('show');
92
50
 
93
- $('html, body').animate({ scrollTop: 0 }, 300, () => {
94
- Wick.Backdrop.show();
95
- $(el.slider).removeClass('d-none');
51
+ setTimeout(() => {
52
+ el.$body.removeClass(el.scrollDisable);
96
53
 
97
- setTimeout(() => {
98
- $(el.slider).addClass('show');
99
- handleScroll(el.sliderWrap);
100
- el.$body.addClass(el.scrollDisable);
54
+ if (!isSmallBreakpoint()) {
55
+ el.$body.css('padding-right', '');
56
+ }
57
+
58
+ if (type === 'cart') {
59
+ $(el.slider).removeAttr('style').empty();
60
+ }
61
+
62
+ $(el.slider).addClass('d-none');
63
+ }, 400);
64
+ }
101
65
 
102
- if (!isSmallBreakpoint()) {
103
- el.$body.css('padding-right', `${scrollBarWidth}px`);
66
+ function handleScroll(sliderWrap) {
67
+ const scrollHeight = $(sliderWrap)[0].scrollHeight;
68
+ const scrollTop = $(sliderWrap).scrollTop();
69
+ const clientHeight = $(sliderWrap)[0].clientHeight;
70
+ const scrollBottom = scrollHeight - scrollTop - clientHeight;
71
+
72
+ if (scrollBottom > 75) {
73
+ $(el.footer).addClass(el.footerFixed);
74
+ $(sliderWrap).addClass(el.sliderWrapScroll);
75
+ } else {
76
+ $(el.footer).removeClass(el.footerFixed);
77
+ $(sliderWrap).removeClass(el.sliderWrapScroll);
104
78
  }
105
- }, 100);
106
- });
107
- }
108
-
109
- function handleSliderClose(eventName) {
110
- return new Promise((resolve, reject) => {
111
- const eventDetail = {resolve, reject};
112
- const event = createEvent(eventName, {}, eventDetail);
113
- window.dispatchEvent(event);
114
- })
115
- .then(() => {})
116
- .catch((error) => {
117
- console.error(error);
118
- })
119
- .finally(() => {
120
- hideSlider();
121
- Wick.Backdrop.hide();
122
- if (typeof onClose === 'function') {
123
- onClose();
79
+ }
80
+
81
+ function showSlider() {
82
+ if (isSmallBreakpoint()) {
83
+ adjustHeight();
124
84
  }
125
- })
126
- }
127
85
 
128
- function bindClosePopup() {
129
- $(document).on('click', el.closePopup, async () => {
130
- if (type === 'cart') {
131
- await handleSliderClose(events.CLOSE_JUST_ADDED);
132
- }
86
+ const animationClass = getAnimationClass();
87
+ const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;
88
+ $(el.slider).removeClass('bottom-to-top right-to-left').addClass(animationClass);
133
89
 
134
- if (type === 'miniBasket') {
135
- await handleSliderClose(events.CLOSE_MINI_BASKET)
136
- }
90
+ $('html, body').animate({ scrollTop: 0 }, 300, () => {
91
+ Wick.Backdrop.show();
92
+ $(el.slider).removeClass('d-none');
137
93
 
138
- hideSlider();
139
- Wick.Backdrop.hide();
140
- });
141
- }
142
-
143
- function handleResize() {
144
- const animationClass = getAnimationClass();
145
-
146
- if ($(el.slider).hasClass('show')) {
147
- $(el.slider)
148
- .removeClass('bottom-to-top right-to-left')
149
- .addClass(animationClass);
150
-
151
- if (isSmallBreakpoint()) {
152
- adjustHeight();
153
- } else {
154
- $(el.slider).css('height', '');
155
- Wick.Backdrop.show();
156
- }
94
+ setTimeout(() => {
95
+ $(el.slider).addClass('show');
96
+ handleScroll(el.sliderWrap);
97
+ el.$body.addClass(el.scrollDisable);
98
+
99
+ if (!isSmallBreakpoint()) {
100
+ el.$body.css('padding-right', `${scrollBarWidth}px`);
101
+ }
102
+ }, 100);
103
+ });
157
104
  }
158
- }
159
-
160
- function shouldClosePopup(event) {
161
- const $target = $(event.target);
162
- return (
163
- !$target.closest(el.slider).length &&
164
- !$target.closest(el.closePopup).length &&
165
- $(el.slider).hasClass('show')
166
- );
167
- }
168
-
169
- function init() {
170
- bindClosePopup();
171
-
172
- if (onAppendEvent && onAppend) {
173
- window.addEventListener(onAppendEvent, (event) => {
174
- onAppend(event, { showSlider, handleScroll, el });
175
- });
105
+
106
+ function handleSliderClose(eventName) {
107
+ return new Promise((resolve, reject) => {
108
+ const eventDetail = { resolve, reject };
109
+ const event = createEvent(eventName, {}, eventDetail);
110
+ window.dispatchEvent(event);
111
+ })
112
+ .then(() => {})
113
+ .catch((error) => {
114
+ console.error(error);
115
+ })
116
+ .finally(() => {
117
+ hideSlider();
118
+ Wick.Backdrop.hide();
119
+ if (typeof onClose === 'function') {
120
+ onClose();
121
+ }
122
+ });
176
123
  }
177
124
 
178
- $(window).on('resize', _.debounce(handleResize, 100));
125
+ function bindClosePopup() {
126
+ $(document).on('click', el.closePopup, async () => {
127
+ if (type === 'cart') {
128
+ await handleSliderClose(events.CLOSE_JUST_ADDED);
129
+ }
130
+
131
+ if (type === 'miniBasket') {
132
+ await handleSliderClose(events.CLOSE_MINI_BASKET);
133
+ }
179
134
 
180
- $('body').on('click', async (event) => {
181
- if (shouldClosePopup(event)) {
182
- if (type === 'cart') {
183
- await handleSliderClose(events.CLOSE_JUST_ADDED);
135
+ hideSlider();
136
+ Wick.Backdrop.hide();
137
+ });
138
+ }
139
+
140
+ function handleResize() {
141
+ const animationClass = getAnimationClass();
142
+
143
+ if ($(el.slider).hasClass('show')) {
144
+ $(el.slider).removeClass('bottom-to-top right-to-left').addClass(animationClass);
145
+
146
+ if (isSmallBreakpoint()) {
147
+ adjustHeight();
148
+ } else {
149
+ $(el.slider).css('height', '');
150
+ Wick.Backdrop.show();
151
+ }
184
152
  }
153
+ }
154
+
155
+ function shouldClosePopup(event) {
156
+ const $target = $(event.target);
157
+ return (
158
+ !$target.closest(el.slider).length &&
159
+ !$target.closest(el.closePopup).length &&
160
+ $(el.slider).hasClass('show')
161
+ );
162
+ }
185
163
 
186
- if (type === 'miniBasket') {
187
- await handleSliderClose(events.CLOSE_MINI_BASKET)
164
+ function init() {
165
+ bindClosePopup();
166
+
167
+ if (onAppendEvent && onAppend) {
168
+ window.addEventListener(onAppendEvent, (event) => {
169
+ onAppend(event, { showSlider, handleScroll, el });
170
+ });
188
171
  }
189
- }
190
- });
191
- }
192
172
 
193
- init();
173
+ $(window).on('resize', _.debounce(handleResize, 100));
174
+
175
+ $('body').on('click', async (event) => {
176
+ if (shouldClosePopup(event)) {
177
+ if (type === 'cart') {
178
+ await handleSliderClose(events.CLOSE_JUST_ADDED);
179
+ }
180
+
181
+ if (type === 'miniBasket') {
182
+ await handleSliderClose(events.CLOSE_MINI_BASKET);
183
+ }
184
+ }
185
+ });
186
+ }
187
+
188
+ init();
194
189
 
195
- return {
196
- showSlider,
197
- handleScroll,
198
- };
190
+ return {
191
+ showSlider,
192
+ handleScroll,
193
+ };
199
194
  }