wickes-css2 2.107.0-ripple.2 → 2.107.0-ripple.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/css/category-main.css +1 -1
- package/build/css/components/card-product-banner.css +1 -1
- package/build/css/components/checkout-chip.css +1 -1
- package/build/css/components/checkout-payment-details-v2.css +1 -1
- package/build/css/components/price-block-v2-critical.css +1 -1
- package/build/css/components/price-block-v2.css +1 -1
- package/build/css/components/special-opening-schedule-v2.css +1 -1
- package/build/css/components/special-opening-schedule.css +1 -1
- package/build/css/emulation.css +1 -1
- package/build/css/homepage-main.css +1 -1
- package/build/css/kitchen-plp-main.css +1 -1
- package/build/css/main.css +1 -1
- package/build/css/my-account-main-v2.css +1 -1
- package/build/css/my-account-main.css +1 -1
- package/build/css/pages/checkout-new.css +1 -1
- package/build/css/pages/my-account-v2.css +1 -1
- package/build/css/pages/page_checkout_delivery-new.css +1 -1
- package/build/css/pages/page_merged-basket.css +1 -1
- package/build/css/pages/page_personal-details.css +1 -1
- package/build/css/pages/page_product-details-v2-critical.css +1 -1
- package/build/css/pages/page_product-details-v2.css +1 -1
- package/build/css/pages/page_product-details.css +1 -1
- package/build/css/pages/page_products-list-combined.css +1 -1
- package/build/css/pages/page_products-list.css +1 -1
- package/build/css/pages/page_shopping-cart-v2.css +1 -1
- package/build/css/pages/page_store-locator-details.css +1 -1
- package/build/css/pages/page_store-locator.css +1 -1
- package/build/css/pdp-main-before-combine.css +1 -1
- package/build/css/pdp-main-critical.css +1 -1
- package/build/css/pdp-main-non-critical.css +1 -1
- package/build/css/pdp-main.css +1 -1
- package/build/css/plp-main.css +1 -1
- package/build/css/store-locator-main.css +1 -1
- package/build/js/account-hub.min.js +1 -1
- package/build/js/basket.min.js +2 -2
- package/build/js/bloomreach-widget.min.js +1 -0
- package/build/js/bundle.min.js +1 -1
- package/build/js/checkout.min.js +2 -2
- package/build/js/components/general/accordion.js +69 -0
- package/build/js/components/general/back-to-top.js +45 -0
- package/build/js/components/general/backdrop.js +23 -0
- package/build/js/components/general/cart-slider.js +36 -0
- package/build/js/components/general/clamp-content.js +95 -0
- package/build/js/components/general/clamp.js +216 -0
- package/build/js/components/general/clear-input.js +33 -0
- package/build/js/components/general/cookie-chat-back.js +51 -0
- package/build/js/components/general/cookies-policy.js +9 -0
- package/build/js/components/general/create-popup-slider.js +194 -0
- package/build/js/components/general/device-type.js +6 -0
- package/build/js/components/general/footer.js +67 -0
- package/build/js/components/general/handleAccordion.js +35 -0
- package/build/js/components/general/image-accordion.js +54 -0
- package/build/js/components/general/is-trade-pro.js +38 -0
- package/build/js/components/general/main-nav.js +16 -0
- package/build/js/components/general/main-navigation.js +275 -0
- package/build/js/components/general/notification.js +70 -0
- package/build/js/components/general/offer-banner.js +74 -0
- package/build/js/components/general/scroll-disable.js +54 -0
- package/build/js/components/general/search.js +43 -0
- package/build/js/components/general/snack-bar.js +160 -0
- package/build/js/components/general/sticky_header.js +62 -0
- package/build/js/components/general/switchVat.js +161 -0
- package/build/js/components/general/text-clamp.js +102 -0
- package/build/js/components/general/tooltips.js +8 -0
- package/build/js/components/general/validation.js +48 -0
- package/build/js/emulation.min.js +3377 -164
- package/build/js/general.bundle.min.js +1 -1
- package/build/js/gift-cards.min.js +1 -1
- package/build/js/kitchen/kitchen-plp.min.js +1 -1
- package/build/js/merged-checkout.min.js +2 -2
- package/build/js/mini-basket-slider.min.js +1 -1
- package/build/js/package-bulk-add.min.js +1 -0
- package/build/js/page/basket/mini-basket-total.js +17 -2
- package/build/js/page/bloomreach-widget.js +1148 -0
- package/build/js/page/checkout-payment-details.js +12 -1
- package/build/js/page/checkout.js +1 -1
- package/build/js/page/components/notify-me.js +99 -0
- package/build/js/page/components/order-summary.js +35 -0
- package/build/js/page/plp-load-more.js +81 -66
- package/build/js/page/ripple/bulk-add.js +63 -0
- package/build/js/page/ripple/package-bulk-add.js +43 -0
- package/build/js/page/ripple/postcode-checker.js +83 -0
- package/build/js/page/ripple/thumb-gallery.js +168 -0
- package/build/js/page/utils/create-count-stepper.js +30 -9
- package/build/js/page/utils/create-loading-button.js +37 -0
- package/build/js/page/utils/create-toast.js +79 -0
- package/build/js/page/utils/custom-dropdown.js +80 -0
- package/build/js/pdp-count-stepper.min.js +1 -1
- package/build/js/pdp.bundle.min.js +2 -1
- package/build/js/plp.bundle.min.js +1 -1
- package/build/js/postcode-checker.min.js +1 -0
- package/build/js/project-list.min.js +1 -1
- package/build/js/saving-shopping-list.min.js +1 -1
- package/build/js/wickes-dc.js +1 -0
- package/package.json +1 -4
- package/src/badges-ripple.html +120 -0
- package/src/badges.html +9 -18
- package/src/components/base/button.hbs +23 -5
- package/src/components/bloomreach/complete-card-dropdown.hbs +47 -0
- package/src/components/bloomreach/complete-card-skeleton.hbs +19 -0
- package/src/components/bloomreach/complete-card.hbs +138 -0
- package/src/components/bloomreach/complete-divider.hbs +3 -0
- package/src/components/bloomreach/complete-summary-skeleton.hbs +12 -0
- package/src/components/bloomreach/complete-summary.hbs +43 -0
- package/src/components/bloomreach/complete-wrapper.hbs +1 -0
- package/src/components/bloomreach/complete-your-project.hbs +21 -0
- package/src/components/card-store-locator.hbs +70 -33
- package/src/components/card_bloomreach_media_banner.hbs +10 -0
- package/src/components/card_product_banner_v2.hbs +4 -1
- package/src/components/card_sponsor_banner.hbs +4 -1
- package/src/components/cart-voucher.hbs +10 -1
- package/src/components/checkout_order-summary-new.hbs +11 -2
- package/src/components/click-and-collect-modal.hbs +0 -14
- package/src/components/date-selection.hbs +1 -1
- package/src/components/delivery-types.hbs +11 -3
- package/src/components/fulfilment-accordions.hbs +1 -1
- package/src/components/gift-cards.hbs +1 -1
- package/src/components/injected-content.hbs +6 -1
- package/src/components/kitchen/price.hbs +49 -29
- package/src/components/kitchen/strip-stickers.hbs +9 -3
- package/src/components/modal.hbs +1 -1
- package/src/components/modals/notify-me-modal.hbs +76 -0
- package/src/components/order-item.hbs +18 -5
- package/src/components/order-summary.hbs +2 -2
- package/src/components/package-card.hbs +30 -0
- package/src/components/pdp-price-actions.hbs +17 -0
- package/src/components/postcode-checker.hbs +24 -0
- package/src/components/potential-promotion.hbs +12 -3
- package/src/components/price-badges.hbs +14 -0
- package/src/components/price-block-v2.hbs +91 -31
- package/src/components/product-main-info-v2.hbs +2 -0
- package/src/components/sponsor-top-banner.hbs +10 -0
- package/src/components/suite-includes.hbs +43 -12
- package/src/components/suite-product-card.hbs +37 -15
- package/src/components/thumb-gallery.hbs +23 -0
- package/src/data/data_badges.json +143 -0
- package/src/data/data_bathroom-plp.json +814 -0
- package/src/data/data_delivery-address-v2.json +1 -1
- package/src/data/data_locators.json +441 -135
- package/src/data/data_search-results_v2.json +20 -2
- package/src/data/data_shopping-cart-v2.json +23 -5
- package/src/data/data_spr_injected_content.json +4 -0
- package/src/data/data_suite-includes-products.json +73 -2
- package/src/elements/checkbox.hbs +8 -1
- package/src/js/components/banner-placement-manager.js +25 -9
- package/src/js/components/general/accordion.js +25 -2
- package/src/js/components/general/cart-slider.js +19 -6
- package/src/js/components/package-card.js +69 -0
- package/src/js/components/store-locator-cards.js +76 -0
- package/src/js/emulation/banner-placement-manager.js +285 -53
- package/src/js/emulation/bloomreach-widget-calculations.js +132 -0
- package/src/js/emulation/bloomreach-widget-loading.js +11 -0
- package/src/js/emulation/checkout-delivery-details.js +28 -25
- package/src/js/emulation/custom-slider-emulation.js +1 -1
- package/src/js/emulation/date-selection.js +136 -24
- package/src/js/emulation/forms.js +12 -0
- package/src/js/emulation/gift-cards.js +1 -1
- package/src/js/emulation/mini-basket-data.js +3 -3
- package/src/js/emulation/mock.js +3112 -4
- package/src/js/emulation/notify-me.js +9 -0
- package/src/js/emulation/plp-load-more.js +13 -4
- package/src/js/emulation/postcode-checker.js +11 -0
- package/src/js/emulation/store-locator-load-more.js +69 -0
- package/src/js/emulation/switchCalendar.js +12 -8
- package/src/js/page/basket/mini-basket-total.js +17 -2
- package/src/js/page/bloomreach-widget.js +1148 -0
- package/src/js/page/checkout-payment-details.js +12 -1
- package/src/js/page/checkout.js +1 -1
- package/src/js/page/components/notify-me.js +99 -0
- package/src/js/page/components/order-summary.js +35 -0
- package/src/js/page/plp-load-more.js +81 -66
- package/src/js/page/ripple/bulk-add.js +63 -0
- package/src/js/page/ripple/package-bulk-add.js +43 -0
- package/src/js/page/ripple/postcode-checker.js +83 -0
- package/src/js/page/ripple/thumb-gallery.js +168 -0
- package/src/js/page/utils/create-count-stepper.js +30 -9
- package/src/js/page/utils/create-loading-button.js +37 -0
- package/src/js/page/utils/create-toast.js +79 -0
- package/src/js/page/utils/custom-dropdown.js +80 -0
- package/src/page_bathroom-plp-vat.html +81 -0
- package/src/page_bathroom-plp-without-load-more.html +83 -0
- package/src/page_bathroom-plp.html +98 -0
- package/src/page_checkout_next-day-delivery-details.html +2 -2
- package/src/page_checkout_payment-details-v2-asm.html +1 -1
- package/src/page_checkout_payment-details-v2.html +1 -1
- package/src/page_checkout_payment-details_with-card-loader.html +1 -1
- package/src/page_checkout_payment-details_with-klarna-loader.html +1 -1
- package/src/page_checkout_payment-details_with-loader-v2.html +1 -1
- package/src/page_checkout_rapid-delivery-details.html +7 -5
- package/src/page_klarna_payment-details_with-klarna.html +1 -1
- package/src/page_my-account-installer-carousel.html +131 -0
- package/src/page_payment-details-with-billie.html +1 -1
- package/src/page_payment-details-with-clearpay.html +1 -1
- package/src/page_payment-details-with-gift-card.html +1 -1
- package/src/page_payment-details_with_apple-pay.html +1 -1
- package/src/page_payment-details_with_google-pay.html +1 -1
- package/src/page_plp_bloomreach.html +81 -0
- package/src/page_plp_v2.html +6 -0
- package/src/page_product-details-banner.html +1 -4
- package/src/page_product-details-big-wins-disabled-delivery.html +1 -4
- package/src/page_product-details-big-wins-non-registered.html +1 -4
- package/src/page_product-details-big-wins-out-nearest.html +1 -4
- package/src/page_product-details-big-wins-unhappy.html +1 -4
- package/src/page_product-details-big-wins.html +1 -4
- package/src/page_product-details-billie.html +1 -4
- package/src/page_product-details-bloomreach.html +130 -0
- package/src/page_product-details-calculator.html +1 -4
- package/src/page_product-details-cashback-v2.html +1 -4
- package/src/page_product-details-clearpay.html +1 -4
- package/src/page_product-details-cnc-error-notification.html +1 -4
- package/src/page_product-details-cnc-success-notification-vat.html +1 -5
- package/src/page_product-details-cnc-success-notification.html +1 -4
- package/src/page_product-details-default-store.html +1 -4
- package/src/page_product-details-energy-efficiency.html +1 -4
- package/src/page_product-details-flooring-with-pr-placeholder.html +1 -4
- package/src/page_product-details-flooring.html +1 -4
- package/src/page_product-details-gallery-actual.html +1 -4
- package/src/page_product-details-mfe-calculator.html +10 -7
- package/src/page_product-details-minimum-v2.html +0 -1
- package/src/page_product-details-mtm-doors.html +1 -4
- package/src/page_product-details-only-clearpay.html +1 -4
- package/src/page_product-details-paint-mixing.html +1 -4
- package/src/page_product-details-ripple-gallery.html +119 -0
- package/src/page_product-details-saved-pl.html +1 -4
- package/src/page_product-details-suite-includes-banners.html +139 -0
- package/src/page_product-details-suite-includes-vat.html +126 -0
- package/src/page_product-details-suite-includes.html +32 -20
- package/src/page_product-details-tile-steps-klarna-widget-with-method-ids.html +1 -4
- package/src/page_product-details-tile-steps-logout.html +1 -4
- package/src/page_product-details-tile-steps-no-new-project-list.html +1 -4
- package/src/page_product-details-tile-steps-with-klarna.html +1 -4
- package/src/page_product-details-tile-steps.html +1 -4
- package/src/page_product-details-v2.html +1 -4
- package/src/page_product-details-vat.html +1 -4
- package/src/page_product-details-wisdom-mcfc-registered.html +1 -4
- package/src/page_product-details-wisdom-mcfc.html +1 -4
- package/src/page_product-details-wisdom-oos-registered.html +1 -4
- package/src/page_product-details-wisdom-oos.html +1 -4
- package/src/page_product-details-wisdom-registered.html +1 -4
- package/src/page_product-details-wisdom.html +1 -4
- package/src/page_product-details-with-favourite.html +1 -4
- package/src/page_product-details-with-global-search-v2.html +8 -4
- package/src/page_product-details_no-previous-default.html +1 -4
- package/src/page_shopping-cart-v2-vat.html +2 -1
- package/src/page_store-locator-list.html +17 -28
- package/src/page_track-my-order-result.html +1 -0
- package/src/partials/scripts.hbs +1 -0
- package/src/scss/common/_CTAs.scss +7 -3
- package/src/scss/common/_common.scss +1 -0
- package/src/scss/common/_elements.scss +13 -1
- package/src/scss/common/_loading-button.scss +49 -0
- package/src/scss/components/_card-store-locator.scss +139 -32
- package/src/scss/components/_custom-slider.scss +18 -0
- package/src/scss/components/_date-selection-add-new-styles.scss +43 -1
- package/src/scss/components/_image-accordion.scss +5 -2
- package/src/scss/components/_kitchen-card.scss +5 -4
- package/src/scss/components/_notifications.scss +86 -5
- package/src/scss/components/_notify-me-modal.scss +139 -0
- package/src/scss/components/_order-summary.scss +25 -12
- package/src/scss/components/_package-card.scss +63 -0
- package/src/scss/components/_package-plp.scss +88 -0
- package/src/scss/components/_pdp-action-v2-critical.scss +12 -0
- package/src/scss/components/_pdp-action-v2.scss +12 -0
- package/src/scss/components/_postcode-checker.scss +115 -0
- package/src/scss/components/_price-badges-critical.scss +10 -1
- package/src/scss/components/_price-badges.scss +10 -2
- package/src/scss/components/_price-block-critical.scss +11 -3
- package/src/scss/components/_price-block.scss +15 -4
- package/src/scss/components/_suite-includes.scss +29 -26
- package/src/scss/components/_suite-product-card.scss +33 -23
- package/src/scss/components/_thumb-gallery-critical.scss +34 -0
- package/src/scss/components/_thumb-gallery.scss +192 -0
- package/src/scss/components/bloomreach/_bloomreach.scss +3 -0
- package/src/scss/components/bloomreach/_complete-card-dropdown.scss +174 -0
- package/src/scss/components/bloomreach/_complete-card.scss +402 -0
- package/src/scss/components/bloomreach/_complete-your-project.scss +207 -0
- package/src/scss/components/card-product-banner.scss +35 -27
- package/src/scss/components/checkout-chip.scss +1 -0
- package/src/scss/components/checkout-payment-details-v2.scss +12 -0
- package/src/scss/components/kitchen/_price.scss +10 -0
- package/src/scss/components/kitchen/_strip-stickers.scss +46 -0
- package/src/scss/components/my-account/_clipboard-code.scss +4 -0
- package/src/scss/components/price-block-v2-critical.scss +54 -1
- package/src/scss/components/price-block-v2.scss +54 -3
- package/src/scss/components/special-opening-schedule-v2.scss +2 -6
- package/src/scss/components/special-opening-schedule.scss +17 -4
- package/src/scss/emulation.scss +0 -6
- package/src/scss/helpers/_CTAs.scss +15 -5
- package/src/scss/helpers/_variables.scss +1 -0
- package/src/scss/pages/page_checkout_delivery-new.scss +36 -0
- package/src/scss/pages/page_product-details-v2-critical.scss +217 -111
- package/src/scss/pages/page_product-details-v2.scss +200 -109
- package/src/scss/pages/page_product-details.scss +0 -2
- package/src/scss/pages/page_products-list-combined.scss +8 -1
- package/src/scss/pages/page_products-list.scss +8 -1
- package/src/scss/pages/page_shopping-cart-v2.scss +34 -10
- package/src/scss/pages/page_store-locator.scss +48 -26
- package/src/scss/pdp-main-critical.scss +1 -1
- package/src/scss/pdp-main.scss +5 -1
- package/src/scss/plp-main.scss +5 -0
- package/src/scss/store-locator-main.scss +15 -1
- package/src/sitemap.html +15 -0
- package/build/css/components/kitchen/strip-stickers.css +0 -1
- package/build/css/components/strip-stickers.css +0 -1
- package/src/js/emulation/store-locator-list.js +0 -19
- package/src/scss/components/kitchen/strip-stickers.scss +0 -18
- package/src/scss/components/strip-stickers.scss +0 -18
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
var Wick = Wick || {};
|
|
2
|
+
Wick.Accordion = (function () {
|
|
3
|
+
var accordionRoot = '.accordion',
|
|
4
|
+
accordionToggler = '.accordion__header',
|
|
5
|
+
accordionIcon = '.accordion__action',
|
|
6
|
+
accordionBottomClose = '.opening-times-accordion__close',
|
|
7
|
+
accordionContent = '.accordion__content',
|
|
8
|
+
collapsed = 'accordion_collapsed',
|
|
9
|
+
$asideAccordion = $('.aside-accordion .js-toggle-aside-accordion');
|
|
10
|
+
|
|
11
|
+
function toggleAccordion($acc) {
|
|
12
|
+
if (!$acc.length) return;
|
|
13
|
+
|
|
14
|
+
$acc.toggleClass(collapsed);
|
|
15
|
+
$acc.children(accordionContent).stop(true, true).slideToggle(200);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function getTriggerSelector($acc) {
|
|
19
|
+
return $acc.attr('data-action-element') === 'icon' ? accordionIcon : accordionToggler;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function onAccordionClick(e) {
|
|
23
|
+
var $trigger = $(e.currentTarget);
|
|
24
|
+
var $acc = $trigger.closest(accordionRoot);
|
|
25
|
+
if (!$acc.length) return;
|
|
26
|
+
|
|
27
|
+
var triggerSel = getTriggerSelector($acc);
|
|
28
|
+
|
|
29
|
+
if (!$trigger.is(triggerSel)) return;
|
|
30
|
+
|
|
31
|
+
toggleAccordion($acc);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function onAccordionBottomCloseClick(e) {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
|
|
37
|
+
var $trigger = $(e.currentTarget);
|
|
38
|
+
var $acc = $trigger.closest(accordionRoot);
|
|
39
|
+
if (!$acc.length) return;
|
|
40
|
+
|
|
41
|
+
if (!$acc.hasClass(collapsed)) {
|
|
42
|
+
toggleAccordion($acc);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function init() {
|
|
47
|
+
$(document)
|
|
48
|
+
.off('click.wickAccordion', accordionToggler + ',' + accordionIcon)
|
|
49
|
+
.on('click.wickAccordion', accordionToggler + ',' + accordionIcon, onAccordionClick);
|
|
50
|
+
|
|
51
|
+
$(document)
|
|
52
|
+
.off('click.wickAccordionClose', accordionBottomClose)
|
|
53
|
+
.on('click.wickAccordionClose', accordionBottomClose, onAccordionBottomCloseClick);
|
|
54
|
+
|
|
55
|
+
$asideAccordion.off('click.wickAsideAccordion').on('click.wickAsideAccordion', function () {
|
|
56
|
+
if (window.matchMedia('(min-width: 992px)').matches) {
|
|
57
|
+
if ($(this).text().toLowerCase() !== 'useful links') {
|
|
58
|
+
$(this)
|
|
59
|
+
.closest('.aside-nav2__holder')
|
|
60
|
+
.toggleClass('is-active')
|
|
61
|
+
.find('.aside-nav2__list')
|
|
62
|
+
.slideToggle(250);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
init();
|
|
69
|
+
})();
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
var Wick = Wick || {};
|
|
2
|
+
Wick.BackToTop = (function () {
|
|
3
|
+
let $backToTop = $('#back-to-top'),
|
|
4
|
+
scrollTrigger = 200,
|
|
5
|
+
actionSpeed = 700,
|
|
6
|
+
chatBotBtnTag = 'wickes-chat',
|
|
7
|
+
backToTopWithChatClass = 'back-to-top--with-chat';
|
|
8
|
+
|
|
9
|
+
function checkScrollPosition(){
|
|
10
|
+
$(window).scrollTop() > scrollTrigger ? $backToTop.fadeIn(300) : $backToTop.fadeOut(300);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function clickHandler(){
|
|
14
|
+
$backToTop.click(function () {
|
|
15
|
+
$backToTop.prop("disabled", true);
|
|
16
|
+
|
|
17
|
+
setTimeout(function () {
|
|
18
|
+
$backToTop.prop("disabled", false);
|
|
19
|
+
}, actionSpeed);
|
|
20
|
+
|
|
21
|
+
$('html, body').animate({
|
|
22
|
+
scrollTop: 0
|
|
23
|
+
}, actionSpeed);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function chatBotClassHandler(){
|
|
28
|
+
window.onload = function(){
|
|
29
|
+
let chatBotElement = $(chatBotBtnTag);
|
|
30
|
+
if(chatBotElement.length) {
|
|
31
|
+
$backToTop.addClass(backToTopWithChatClass);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function init(){
|
|
37
|
+
$(window).on('scroll', _.debounce(checkScrollPosition, 200));
|
|
38
|
+
|
|
39
|
+
clickHandler();
|
|
40
|
+
|
|
41
|
+
chatBotClassHandler();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
init();
|
|
45
|
+
})();
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var Wick = Wick || {};
|
|
2
|
+
|
|
3
|
+
Wick.Backdrop = (function () {
|
|
4
|
+
const el = {
|
|
5
|
+
modalBackdrop: 'modal-backdrop',
|
|
6
|
+
modalBackdropShow: 'show'
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function show() {
|
|
10
|
+
if (!$(`.${el.modalBackdrop}`).length) {
|
|
11
|
+
$('body').append(`<div class="${el.modalBackdrop} ${el.modalBackdropShow}"></div>`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function hide() {
|
|
16
|
+
$('body').find(`.${el.modalBackdrop}.${el.modalBackdropShow}`).remove();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return {
|
|
20
|
+
show,
|
|
21
|
+
hide,
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const cartSliderHTML = '<div class="custom-slider just-added d-none"></div>';
|
|
2
|
+
|
|
3
|
+
createPopupSlider({
|
|
4
|
+
type: 'cart',
|
|
5
|
+
sliderSelector: '.custom-slider.just-added',
|
|
6
|
+
onAppendEvent: 'productAddedToCart',
|
|
7
|
+
onAppend: function (event, { showSlider, handleScroll, el }) {
|
|
8
|
+
Wick.MiniBasketSliderFE.isMiniBasketLoaded = false;
|
|
9
|
+
|
|
10
|
+
if (event.detail.bulkAddToCartData) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (!$('.custom-slider.just-added').length) {
|
|
15
|
+
$('body').append(cartSliderHTML);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const htmlContent = event.detail.html;
|
|
19
|
+
|
|
20
|
+
if (htmlContent) {
|
|
21
|
+
$(el.slider).append(htmlContent);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
showSlider();
|
|
25
|
+
|
|
26
|
+
if ($(el.sliderWrap).length) {
|
|
27
|
+
$(el.sliderWrap).on(
|
|
28
|
+
'scroll',
|
|
29
|
+
_.debounce(() => handleScroll(el.sliderWrap), 100)
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
onClose: function () {
|
|
34
|
+
Wick.MiniBasketSliderFE.cartEntries = [];
|
|
35
|
+
},
|
|
36
|
+
});
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
var Wick = Wick || {};
|
|
2
|
+
Wick.ClampContent = {
|
|
3
|
+
CLAMP_BUTTON_SELECTOR: '.clamp_btn.clamp_btn-new',
|
|
4
|
+
CLAMP_BUTTON_READ_MORE_TEXT: 'Read more',
|
|
5
|
+
CLAMP_BUTTON_READ_LESS_TEXT: 'Read less',
|
|
6
|
+
CLAMPED_CLASS: 'clamped-text',
|
|
7
|
+
CLAMP_BUTTON_HTML: '<a class="clamp_btn clamp_btn-new" href="#">Read more</a>',
|
|
8
|
+
MAX_LINES: 3,
|
|
9
|
+
clampContentClass: 'clamp-content',
|
|
10
|
+
clampContentSafariClass: 'clamp-content--safari',
|
|
11
|
+
clampContentSelector: '.clamp-content',
|
|
12
|
+
clampElementsList: [
|
|
13
|
+
'.page-header__intro',
|
|
14
|
+
'.srp-injected__content'
|
|
15
|
+
],
|
|
16
|
+
calculateLineCount(element) {
|
|
17
|
+
const lineHeight = parseFloat(element.css('line-height'));
|
|
18
|
+
return Math.round(element[0].scrollHeight / lineHeight);
|
|
19
|
+
},
|
|
20
|
+
updateClamping(el) {
|
|
21
|
+
const arrayElement = $(el);
|
|
22
|
+
const linesQuantity = Wick.ClampContent.calculateLineCount(arrayElement);
|
|
23
|
+
const buttonNextToEl = arrayElement.next(Wick.ClampContent.CLAMP_BUTTON_SELECTOR);
|
|
24
|
+
|
|
25
|
+
const isExpanded = buttonNextToEl.text() === Wick.ClampContent.CLAMP_BUTTON_READ_LESS_TEXT;
|
|
26
|
+
|
|
27
|
+
const shouldElementClamp = linesQuantity > Wick.ClampContent.MAX_LINES;
|
|
28
|
+
|
|
29
|
+
if (isExpanded && shouldElementClamp) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
Wick.ClampContent.updateClampedClass(arrayElement, shouldElementClamp);
|
|
34
|
+
Wick.ClampContent.updateButtonState(arrayElement, shouldElementClamp);
|
|
35
|
+
},
|
|
36
|
+
updateClampedClass(element, shouldClamp) {
|
|
37
|
+
element.toggleClass(Wick.ClampContent.CLAMPED_CLASS, shouldClamp);
|
|
38
|
+
},
|
|
39
|
+
updateButtonState(element, shouldClamp) {
|
|
40
|
+
const buttonNextToEl = element.next(Wick.ClampContent.CLAMP_BUTTON_SELECTOR);
|
|
41
|
+
buttonNextToEl.remove();
|
|
42
|
+
|
|
43
|
+
if (shouldClamp) {
|
|
44
|
+
element.after(Wick.ClampContent.CLAMP_BUTTON_HTML);
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
executeClamping() {
|
|
48
|
+
const $clampContentWrapper = $(Wick.ClampContent.clampContentSelector);
|
|
49
|
+
const arrayClampContent = $clampContentWrapper.toArray();
|
|
50
|
+
|
|
51
|
+
$.each(arrayClampContent, function (_, el) {
|
|
52
|
+
Wick.ClampContent.updateClamping(el);
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
bindEvent() {
|
|
56
|
+
$(document).on('click', Wick.ClampContent.CLAMP_BUTTON_SELECTOR, function (e) {
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
const toggleButton = $(this);
|
|
59
|
+
const relatedContent = toggleButton.prev('.clamp-content');
|
|
60
|
+
|
|
61
|
+
relatedContent.toggleClass(Wick.ClampContent.CLAMPED_CLASS);
|
|
62
|
+
|
|
63
|
+
toggleButton.text(
|
|
64
|
+
relatedContent.hasClass(Wick.ClampContent.CLAMPED_CLASS)
|
|
65
|
+
? Wick.ClampContent.CLAMP_BUTTON_READ_MORE_TEXT
|
|
66
|
+
: Wick.ClampContent.CLAMP_BUTTON_READ_LESS_TEXT
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
isSafari() {
|
|
71
|
+
return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
72
|
+
},
|
|
73
|
+
getElementsForClamping() {
|
|
74
|
+
Wick.ClampContent.clampElementsList.forEach((el) => {
|
|
75
|
+
$(el).addClass(Wick.ClampContent.clampContentClass);
|
|
76
|
+
|
|
77
|
+
if (Wick.ClampContent.isSafari()) {
|
|
78
|
+
$(el).addClass(Wick.ClampContent.clampContentSafariClass);
|
|
79
|
+
}
|
|
80
|
+
})
|
|
81
|
+
},
|
|
82
|
+
init() {
|
|
83
|
+
Wick.ClampContent.getElementsForClamping();
|
|
84
|
+
$(Wick.ClampContent.clampContentSelector).length && Wick.ClampContent.executeClamping();
|
|
85
|
+
Wick.ClampContent.bindEvent();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
$(window).on('resize', _.debounce(function () {
|
|
90
|
+
$(Wick.ClampContent.clampContentSelector).length && Wick.ClampContent.executeClamping();
|
|
91
|
+
}, 250));
|
|
92
|
+
|
|
93
|
+
$(document).ready(function () {
|
|
94
|
+
Wick.ClampContent.init();
|
|
95
|
+
});
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
var Wick = Wick || {};
|
|
2
|
+
Wick.Clamping = (function () {
|
|
3
|
+
var originalTexts = {};
|
|
4
|
+
|
|
5
|
+
return {
|
|
6
|
+
clamp: function (origin, params) {
|
|
7
|
+
|
|
8
|
+
var text = $(origin).text().trim();
|
|
9
|
+
var link = $(origin).find('.clamp_btn');
|
|
10
|
+
var linkNode = null;
|
|
11
|
+
if (link.length) {
|
|
12
|
+
linkNode = link.detach();
|
|
13
|
+
}
|
|
14
|
+
if (params.reset) {
|
|
15
|
+
return {
|
|
16
|
+
text: originalTexts[params.id],
|
|
17
|
+
type: 'reset',
|
|
18
|
+
link: linkNode
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var cssObj = {};
|
|
23
|
+
cssObj.fontSize = $(origin).css('font-size');
|
|
24
|
+
cssObj.lineHeight = $(origin).css('line-height');
|
|
25
|
+
cssObj.width = $(origin).width();
|
|
26
|
+
|
|
27
|
+
if (originalTexts[params.id]) {
|
|
28
|
+
text = originalTexts[params.id];
|
|
29
|
+
} else {
|
|
30
|
+
originalTexts[params.id] = text;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
$(origin).text(text);
|
|
34
|
+
|
|
35
|
+
var clone = $('<p></p>');
|
|
36
|
+
clone.css({
|
|
37
|
+
display: 'inline-block',
|
|
38
|
+
margin: 0,
|
|
39
|
+
width: 'auto',
|
|
40
|
+
maxWidth: cssObj.width,
|
|
41
|
+
fontSize: cssObj.fontSize,
|
|
42
|
+
lineHeight: cssObj.lineHeight
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
$('body').append(clone);
|
|
46
|
+
var arr = text.split(" ");
|
|
47
|
+
var someString = '', safeWordIndex, dangerWordIndex;
|
|
48
|
+
|
|
49
|
+
if ($(origin).height() <= parseInt($(origin).css('line-height')) * (params.lines)) {
|
|
50
|
+
clone.remove();
|
|
51
|
+
return {
|
|
52
|
+
text: text,
|
|
53
|
+
type: 'full',
|
|
54
|
+
link: linkNode
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
for (var i = 0; i < arr.length; i++) {
|
|
58
|
+
someString += arr[i];
|
|
59
|
+
clone.text(someString);
|
|
60
|
+
|
|
61
|
+
if (clone.height() > parseInt(clone.css('line-height')) * (params.lines - 1)) {
|
|
62
|
+
safeWordIndex = i;
|
|
63
|
+
break
|
|
64
|
+
}
|
|
65
|
+
someString += ' ';
|
|
66
|
+
}
|
|
67
|
+
var newArr = arr.splice(safeWordIndex);
|
|
68
|
+
var safePart = arr.join(' ').length;
|
|
69
|
+
var workPart = newArr.join(' ');
|
|
70
|
+
someString = '... Read more';
|
|
71
|
+
clone.text(someString);
|
|
72
|
+
var extraWidth = clone.width();
|
|
73
|
+
someString = '';
|
|
74
|
+
for (var j = 0; j < workPart.length; j++) {
|
|
75
|
+
someString += workPart[j];
|
|
76
|
+
clone.text(someString);
|
|
77
|
+
if (clone.width() > cssObj.width - extraWidth - 8) {
|
|
78
|
+
dangerWordIndex = j;
|
|
79
|
+
break
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
someString = text.slice(0, safePart + dangerWordIndex);
|
|
84
|
+
someString += '...';
|
|
85
|
+
clone.text(someString);
|
|
86
|
+
var clampedText = clone.text();
|
|
87
|
+
clone.remove();
|
|
88
|
+
|
|
89
|
+
return {
|
|
90
|
+
text: clampedText,
|
|
91
|
+
type: 'usual',
|
|
92
|
+
link: linkNode
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
clampAll: function (obj, params) {
|
|
96
|
+
var checkToMobile = $(window).width() < 768;
|
|
97
|
+
|
|
98
|
+
for (var i = 0; i < obj.length; i++) {
|
|
99
|
+
|
|
100
|
+
var unit = obj.eq(i);
|
|
101
|
+
var newID = params.id + i;
|
|
102
|
+
unit.addClass('clamp_container');
|
|
103
|
+
var newLines;
|
|
104
|
+
if (params.variableLines) {
|
|
105
|
+
newLines = params.lines - params.variableLines[i];
|
|
106
|
+
} else {
|
|
107
|
+
newLines = params.lines;
|
|
108
|
+
}
|
|
109
|
+
var clampage = Wick.Clamping.clamp(unit, {id: newID, lines: newLines});
|
|
110
|
+
unit.text(clampage.text);
|
|
111
|
+
|
|
112
|
+
if (checkToMobile) {
|
|
113
|
+
Wick.Clamping.resetCardContentStyle(unit)
|
|
114
|
+
} else {
|
|
115
|
+
Wick.Clamping.setHeightToOriginalCardContent(unit)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
var btn = $('<a>', {
|
|
119
|
+
text: 'Read more',
|
|
120
|
+
class: 'clamp_btn',
|
|
121
|
+
href: '#',
|
|
122
|
+
'data-id': newID,
|
|
123
|
+
'data-lines': newLines,
|
|
124
|
+
on: {
|
|
125
|
+
click: function (e) {
|
|
126
|
+
e.preventDefault();
|
|
127
|
+
var element = $(this).parent();
|
|
128
|
+
element.toggleClass('clamp-full');
|
|
129
|
+
var respond = null;
|
|
130
|
+
if ($(this).text() === 'Read more') {
|
|
131
|
+
$(this).text('Read less');
|
|
132
|
+
if (params.additionalLines) {
|
|
133
|
+
if (checkToMobile) {
|
|
134
|
+
element.parents(".full-width-offers").find(".card__inner").addClass("full-height");
|
|
135
|
+
respond = Wick.Clamping.clamp(element, {
|
|
136
|
+
reset: true,
|
|
137
|
+
id: $(this).attr('data-id')
|
|
138
|
+
});
|
|
139
|
+
} else {
|
|
140
|
+
$(this).parents(".full-width-offers").find(".card__content-wrap").addClass("change-card");
|
|
141
|
+
respond = Wick.Clamping.clamp(element, {
|
|
142
|
+
lines: +$(this).attr('data-lines') + params.additionalLines,
|
|
143
|
+
id: $(this).attr('data-id')
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
}
|
|
147
|
+
} else {
|
|
148
|
+
respond = Wick.Clamping.clamp(element, {reset: true, id: $(this).attr('data-id')});
|
|
149
|
+
}
|
|
150
|
+
} else {
|
|
151
|
+
element.parents(".full-width-offers").find(".card__inner").removeClass("full-height");
|
|
152
|
+
element.parents(".full-width-offers").find(".card__content-wrap").removeClass("change-card");
|
|
153
|
+
$(this).text('Read more');
|
|
154
|
+
respond = Wick.Clamping.clamp(element, {
|
|
155
|
+
lines: $(this).attr('data-lines'),
|
|
156
|
+
id: $(this).attr('data-id')
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
element.text(respond.text).append(respond.link);
|
|
160
|
+
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
if (clampage.type === 'usual') {
|
|
165
|
+
unit.append(btn);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if ((unit.height() / parseInt(unit.css('line-height'))) < newLines && checkToMobile) {
|
|
169
|
+
unit.children('.clamp_btn').addClass('clamp_btn-block');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
flush: function (obj) {
|
|
174
|
+
for (var i = 0; i < obj.length; i++) {
|
|
175
|
+
var unit = obj.eq(i);
|
|
176
|
+
var id = unit.find('.clamp_btn').attr('data-id');
|
|
177
|
+
if (id) {
|
|
178
|
+
unit.text(Wick.Clamping.clamp(unit, {id: id, reset: true}).text);
|
|
179
|
+
}
|
|
180
|
+
unit.removeClass('clamp_container clamp-full');
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
variableArray: function (obj) {
|
|
184
|
+
// this method returns the array, how many lines of text is in every element of jQuery collection passed in
|
|
185
|
+
var arr = [];
|
|
186
|
+
for (var i = 0; i < obj.length; i++) {
|
|
187
|
+
var unit = obj.eq(i);
|
|
188
|
+
var val = Math.round(unit.height() / parseInt(unit.css('lineHeight')));
|
|
189
|
+
arr.push(val);
|
|
190
|
+
}
|
|
191
|
+
return arr;
|
|
192
|
+
},
|
|
193
|
+
setHeightToOriginalCardContent: function (unit) {
|
|
194
|
+
let cardContentWrap = $(unit).closest('.card__content-wrap');
|
|
195
|
+
let originalHeight = cardContentWrap.outerHeight();
|
|
196
|
+
let newHeightStyle = 'height: ' + originalHeight + 'px;';
|
|
197
|
+
$(unit).closest('.card__content').attr('style', newHeightStyle);
|
|
198
|
+
},
|
|
199
|
+
resetCardContentStyle: function (unit) {
|
|
200
|
+
$(unit).closest('.card__content').attr('style', '');
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
//$0.innerHTML = Wick.Clamping.clamp($0, {id:'one', lines: 3}).text
|
|
205
|
+
//$($0).text(Wick.Clamping.clamp($($0), {id:'one', lines: 3}).text)
|
|
206
|
+
|
|
207
|
+
//Wick.Clamping.clampAll($($0), {id:'one', lines: 3})
|
|
208
|
+
|
|
209
|
+
//Wick.Clamping.flush($($0), 'one')
|
|
210
|
+
|
|
211
|
+
/*let TESTparamsTEST = {
|
|
212
|
+
id: 'x1',
|
|
213
|
+
reset: false,
|
|
214
|
+
lines: 3
|
|
215
|
+
};*/
|
|
216
|
+
})();
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var Wick = window.Wick || {};
|
|
2
|
+
|
|
3
|
+
Wick.ClearInput = {
|
|
4
|
+
el: {
|
|
5
|
+
$btnClear: $('[data-clearable] .btn--clear'),
|
|
6
|
+
formRow: '.form-row',
|
|
7
|
+
formTag: 'form',
|
|
8
|
+
$clearableInput: $('[data-clearable]'),
|
|
9
|
+
},
|
|
10
|
+
clearInputField () {
|
|
11
|
+
let $formTag = $(this).closest(Wick.ClearInput.el.formTag)
|
|
12
|
+
let $formRow = $(this).closest(Wick.ClearInput.el.formRow);
|
|
13
|
+
let $inputField = $formRow.length > 0 ? $formRow.find('input') : $formTag.find('input');
|
|
14
|
+
|
|
15
|
+
$inputField.val('').focus();
|
|
16
|
+
Wick.ClearInput.checkVisibilityOfClearButton(this, $inputField);
|
|
17
|
+
$(document).trigger('clearInput', [$formTag]);
|
|
18
|
+
},
|
|
19
|
+
checkVisibilityOfClearButton (currentBtnClear, el) {
|
|
20
|
+
$(currentBtnClear).toggleClass('d-block', el > 0);
|
|
21
|
+
},
|
|
22
|
+
init () {
|
|
23
|
+
Wick.ClearInput.el.$btnClear.on('click', Wick.ClearInput.clearInputField);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
$(document).ready(function () {
|
|
28
|
+
if (!Wick.ClearInput.el.$clearableInput.length) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
Wick.ClearInput.init();
|
|
33
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
var Wick = Wick || {};
|
|
2
|
+
Wick.CookieChatBack = (function(){
|
|
3
|
+
function init() {
|
|
4
|
+
var cookieBar = $('#cookie-bar'),
|
|
5
|
+
helpButton = $('.zEWidget-launcher'),
|
|
6
|
+
backToTopButton = $("#back-to-top"),
|
|
7
|
+
defaultMargin = 40,
|
|
8
|
+
cookieMargin = 0,
|
|
9
|
+
helpMargin = 0,
|
|
10
|
+
tradeProMargin = 0;
|
|
11
|
+
|
|
12
|
+
if (helpButton.length) {
|
|
13
|
+
helpButton.css({
|
|
14
|
+
visibility: 'visible',
|
|
15
|
+
margin: defaultMargin
|
|
16
|
+
});
|
|
17
|
+
helpMargin = helpButton.height() + parseInt(helpButton.css('margin-bottom'));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (cookieBar.length) {
|
|
21
|
+
cookieMargin = cookieBar.height();
|
|
22
|
+
helpMargin = 0;
|
|
23
|
+
helpButton.css({
|
|
24
|
+
visibility: 'hidden'
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (navigator.userAgent.match(/TradeProMobile_iOS|TradeProMobile_Android|DIYMobile_iOS|DIYMobile_Android/i)) {
|
|
29
|
+
tradeProMargin = 35;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
backToTopButton.css({
|
|
33
|
+
bottom: cookieMargin + defaultMargin + helpMargin + tradeProMargin,
|
|
34
|
+
right: defaultMargin
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
$(document).ready(function() {
|
|
39
|
+
init();
|
|
40
|
+
var cookieAccept = setInterval(function () {
|
|
41
|
+
init();
|
|
42
|
+
if (!$('#cookie-bar').length) {
|
|
43
|
+
clearInterval(cookieAccept);
|
|
44
|
+
}
|
|
45
|
+
}, 2000);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
$( window ).resize(_.debounce(function() {
|
|
49
|
+
init();
|
|
50
|
+
}, 200));
|
|
51
|
+
})();
|