wickes-css2 2.112.0-develop.1 → 2.112.0-dont-forget-widget.1
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/Readme.md +1 -1
- package/build/css/account-families-main.css +1 -1
- package/build/css/category-main.css +1 -1
- package/build/css/components/card-product-banner.css +1 -1
- package/build/css/components/card-store-locator-v2.css +1 -1
- package/build/css/components/special-opening-schedule-v2.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/checkout.css +1 -1
- package/build/css/pages/home-movers.css +1 -1
- package/build/css/pages/my-account-v2.css +1 -1
- package/build/css/pages/my-account.css +1 -1
- package/build/css/pages/oldweb_header.css +1 -1
- package/build/css/pages/page_act-trade-pro.css +1 -1
- package/build/css/pages/page_book-consultant-thank-you-new.css +1 -1
- package/build/css/pages/page_checkout-payment-details.css +1 -1
- package/build/css/pages/page_checkout_delivery-new.css +1 -1
- package/build/css/pages/page_content.css +1 -1
- package/build/css/pages/page_default-store.css +1 -1
- package/build/css/pages/page_fdl-management.css +1 -1
- package/build/css/pages/page_fi.css +1 -1
- package/build/css/pages/page_forgotten-password.css +1 -1
- package/build/css/pages/page_home.css +1 -1
- package/build/css/pages/page_in-store-checkout.css +1 -1
- package/build/css/pages/page_installer_form.css +1 -1
- package/build/css/pages/page_kitchen-claims.css +1 -1
- package/build/css/pages/page_merged-basket.css +1 -1
- package/build/css/pages/page_my-order.css +1 -1
- package/build/css/pages/page_my-orders.css +1 -1
- package/build/css/pages/page_new-checkout-forgot.css +1 -1
- package/build/css/pages/page_online-exclusive.css +1 -1
- package/build/css/pages/page_pre_home.css +1 -1
- package/build/css/pages/page_pre_home_thank-you.css +1 -1
- package/build/css/pages/page_product-details-v2.css +1 -1
- package/build/css/pages/page_product_search.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_registration.css +1 -1
- package/build/css/pages/page_shopping-cart-v2.css +1 -1
- package/build/css/pages/page_shopping-cart.css +1 -1
- package/build/css/pages/page_store-locator-details.css +1 -1
- package/build/css/pages/page_thankyou.css +1 -1
- package/build/css/pages/page_ti.css +1 -1
- package/build/css/pages/page_top-rated.css +1 -1
- package/build/css/pages/page_upd-pass.css +1 -1
- package/build/css/pages/page_wismo-details.css +1 -1
- package/build/css/pages/page_wismo-orders.css +1 -1
- package/build/css/pages/sticky_header.css +1 -1
- package/build/css/pages/tradePro-signup.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/shopping-list-pdf.css +1 -1
- package/build/css/store-locator-main.css +1 -1
- package/build/img/premium-delivery.png +0 -0
- package/build/img/premium-delivery.svg +1 -0
- package/build/js/bloomreach-widget.min.js +1 -1
- package/build/js/emulation.min.js +389 -11
- package/build/js/page/bloomreach-widget/bloomreach-widget.js +241 -0
- package/build/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +205 -359
- package/build/js/page/bloomreach-widget/why-not-add-widget.js +196 -0
- package/package.json +3 -5
- package/src/components/banner-news.hbs +5 -1
- package/src/components/bloomreach/complete-card.hbs +4 -32
- package/src/components/bloomreach/why-not-add-card-skeleton.hbs +14 -0
- package/src/components/bloomreach/why-not-add-card.hbs +73 -0
- package/src/components/bloomreach/why-not-add-content.hbs +41 -0
- package/src/components/bloomreach/why-not-add-skeleton.hbs +9 -0
- package/src/components/bloomreach/why-not-add.hbs +6 -0
- package/src/components/date-selection.hbs +33 -10
- package/src/components/delivery-types.hbs +5 -0
- package/src/components/pdp-price-actions.hbs +2 -2
- package/src/components/price-block-v2.hbs +2 -0
- package/src/components/reviews-rating.hbs +22 -0
- package/src/data/my-account/data_my-account.json +6 -26
- package/src/data/my-account/data_my-order.json +43 -0
- package/src/data/my-account/data_my-orders.json +15 -1
- package/src/img/premium-delivery.png +0 -0
- package/src/img/premium-delivery.svg +1 -0
- package/src/js/emulation/bloomreach-widget-loading.js +2 -2
- package/src/js/emulation/date-selection.js +59 -2
- package/src/js/emulation/mock.js +309 -0
- package/src/js/emulation/why-not-add-loading.js +11 -0
- package/src/js/emulation/why-not-add.js +28 -0
- package/src/js/page/bloomreach-widget/bloomreach-widget.js +241 -0
- package/src/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js} +205 -359
- package/src/js/page/bloomreach-widget/why-not-add-widget.js +196 -0
- package/src/page_checkout_premium-delivery-details.html +161 -0
- package/src/page_product-details-bloomreach.html +1 -1
- package/src/page_product-details-with-global-search-v2.html +2 -1
- package/src/page_product-details-with-why-not-add-single.html +131 -0
- package/src/scss/category-main.scss +5 -7
- package/src/scss/common/_app.scss +1 -1
- package/src/scss/common/_rewards-counter.scss +1 -2
- package/src/scss/common/_typography.scss +1 -1
- package/src/scss/common/_vat-toggle.scss +1 -1
- package/src/scss/components/_add-list-id.scss +0 -1
- package/src/scss/components/_advice-inspiration-critical.scss +2 -2
- package/src/scss/components/_advice-inspiration.scss +2 -3
- package/src/scss/components/_anchor-nav.scss +1 -1
- package/src/scss/components/_aside-accordion.scss +0 -5
- package/src/scss/components/_aside-nav.scss +1 -1
- package/src/scss/components/_aside-nav2.scss +0 -2
- package/src/scss/components/_autocomplete.scss +0 -1
- package/src/scss/components/_banner-2.scss +1 -1
- package/src/scss/components/_banner-info.scss +1 -1
- package/src/scss/components/_banner.scss +0 -2
- package/src/scss/components/_barcode.scss +0 -1
- package/src/scss/components/_big-wins-critical.scss +8 -9
- package/src/scss/components/_big-wins.scss +25 -32
- package/src/scss/components/_billie-modal.scss +5 -6
- package/src/scss/components/_billie-online-messaging.scss +2 -2
- package/src/scss/components/_card.scss +1 -5
- package/src/scss/components/_cards-slider.scss +1 -1
- package/src/scss/components/_category-tree.scss +2 -2
- package/src/scss/components/_charity-donations.scss +7 -7
- package/src/scss/components/_checkout-action.scss +0 -2
- package/src/scss/components/_checkout_order.scss +1 -1
- package/src/scss/components/_colour-block.scss +0 -2
- package/src/scss/components/_cookies-policy.scss +1 -1
- package/src/scss/components/_copy-project-id.scss +0 -1
- package/src/scss/components/_date-selection-add-new-styles.scss +30 -7
- package/src/scss/components/_date-selection.scss +32 -12
- package/src/scss/components/_donation-cart-new.scss +6 -6
- package/src/scss/components/_donation-cart.scss +3 -4
- package/src/scss/components/_favourite-product.scss +1 -1
- package/src/scss/components/_gallery-critical.scss +3 -3
- package/src/scss/components/_gallery-pdp-critical.scss +4 -4
- package/src/scss/components/_gallery-pdp.scss +2 -2
- package/src/scss/components/_gallery.scss +2 -2
- package/src/scss/components/_hero.scss +0 -1
- package/src/scss/components/_home-banner.scss +1 -1
- package/src/scss/components/_kitchen-card.scss +4 -4
- package/src/scss/components/_lines-group.scss +0 -1
- package/src/scss/components/_marketing-preferences.scss +1 -1
- package/src/scss/components/_merge-basket-options.scss +0 -1
- package/src/scss/components/_modal-box.scss +5 -5
- package/src/scss/components/_new-checkout-form.scss +1 -1
- package/src/scss/components/_notifications-critical.scss +1 -3
- package/src/scss/components/_order-item-cc.scss +6 -7
- package/src/scss/components/_order-item.scss +11 -12
- package/src/scss/components/_order-line-shop-list.scss +2 -2
- package/src/scss/components/_order-line.scss +3 -3
- package/src/scss/components/_page-overlay.scss +3 -9
- package/src/scss/components/_payment-transactions.scss +5 -5
- package/src/scss/components/_payments.scss +0 -1
- package/src/scss/components/_pdp-cta.scss +0 -4
- package/src/scss/components/_pdp-info-v2.scss +2 -5
- package/src/scss/components/_popular-categories.scss +0 -2
- package/src/scss/components/_potential-promotion.scss +1 -1
- package/src/scss/components/_price-badges-critical.scss +0 -1
- package/src/scss/components/_price-badges.scss +0 -2
- package/src/scss/components/_price-tooltip.scss +3 -2
- package/src/scss/components/_price.scss +2 -2
- package/src/scss/components/_product-card-critical.scss +1 -2
- package/src/scss/components/_product-card.scss +3 -5
- package/src/scss/components/_product-main-info.scss +4 -5
- package/src/scss/components/_project-list-multiple.scss +4 -4
- package/src/scss/components/_project-list-total.scss +1 -1
- package/src/scss/components/_proposition.scss +2 -2
- package/src/scss/components/_range-card.scss +1 -3
- package/src/scss/components/_range-types.scss +2 -2
- package/src/scss/components/_recommended.scss +1 -5
- package/src/scss/components/_rewards.scss +1 -1
- package/src/scss/components/_saving-shopping-list-modal.scss +1 -2
- package/src/scss/components/_seo-widgets.scss +1 -2
- package/src/scss/components/_share-list-modal.scss +1 -2
- package/src/scss/components/_shop-colour.scss +1 -1
- package/src/scss/components/_shopping-list-note.scss +2 -2
- package/src/scss/components/_smart-banner.scss +4 -5
- package/src/scss/components/_snack-bar.scss +2 -2
- package/src/scss/components/_steps-three.scss +3 -3
- package/src/scss/components/_steps.scss +2 -2
- package/src/scss/components/_sticky-element-appearance.scss +2 -2
- package/src/scss/components/_tables.scss +1 -2
- package/src/scss/components/_tabs.scss +0 -1
- package/src/scss/components/_tc-generic-floor.scss +3 -3
- package/src/scss/components/_tc-generic.scss +4 -4
- package/src/scss/components/_thank-you-modal.scss +3 -1
- package/src/scss/components/_ti-floor.scss +3 -4
- package/src/scss/components/_ti-header.scss +2 -2
- package/src/scss/components/_ti-radio.scss +4 -4
- package/src/scss/components/_ti-total-area.scss +10 -10
- package/src/scss/components/_tile-banner.scss +1 -1
- package/src/scss/components/_tile-product.scss +3 -4
- package/src/scss/components/_tooltip.scss +2 -2
- package/src/scss/components/_trade-offers.scss +0 -1
- package/src/scss/components/_tradepro-discount-banner.scss +0 -1
- package/src/scss/components/_user-address-delivery.scss +1 -3
- package/src/scss/components/_user-address.scss +1 -1
- package/src/scss/components/_usp-component.scss +0 -1
- package/src/scss/components/_voucher-accordion.scss +3 -3
- package/src/scss/components/_wisdom-critical.scss +2 -3
- package/src/scss/components/_wisdom.scss +6 -9
- package/src/scss/components/_your-details.scss +0 -1
- package/src/scss/components/account-families/_add-members.scss +1 -3
- package/src/scss/components/account-families/_member-card.scss +3 -3
- package/src/scss/components/bloomreach/_bloomreach.scss +3 -0
- package/src/scss/components/bloomreach/_complete-card.scss +0 -38
- package/src/scss/components/bloomreach/_reviews.scss +60 -0
- package/src/scss/components/bloomreach/_why-not-add-card.scss +212 -0
- package/src/scss/components/bloomreach/_why-not-add.scss +143 -0
- package/src/scss/components/card-store-locator-v2.scss +0 -1
- package/src/scss/components/card_v2.scss +3 -7
- package/src/scss/components/checkout-loader-modal.scss +0 -1
- package/src/scss/components/energy-efficiency.scss +6 -6
- package/src/scss/components/global-search.scss +14 -14
- package/src/scss/components/kitchen/_chips.scss +7 -6
- package/src/scss/components/kitchen/_filter-card.scss +1 -1
- package/src/scss/components/kitchen/_sort-by.scss +2 -3
- package/src/scss/components/kitchen/strip-stickers.scss +1 -1
- package/src/scss/components/loader.scss +5 -6
- package/src/scss/components/my-account/_active-orders.scss +6 -6
- package/src/scss/components/my-account/_consignment-info.scss +3 -3
- package/src/scss/components/my-account/_contacts.scss +2 -2
- package/src/scss/components/my-account/_menu.scss +2 -2
- package/src/scss/components/my-account/_mobile-nav.scss +4 -4
- package/src/scss/components/my-account/_order-process.scss +3 -3
- package/src/scss/components/my-account/_order-status.scss +3 -3
- package/src/scss/components/my-account/_orders-nav.scss +1 -1
- package/src/scss/components/my-account/_payment-status.scss +2 -2
- package/src/scss/components/my-account/_saving-totaliser.scss +8 -7
- package/src/scss/components/my-account/_shipment.scss +2 -2
- package/src/scss/components/pdf-loader.scss +1 -2
- package/src/scss/components/price-block-v2-critical.scss +0 -1
- package/src/scss/components/price-block-v2.scss +0 -3
- package/src/scss/components/store-locator-v2-details.scss +2 -2
- package/src/scss/components/strip-stickers.scss +1 -1
- package/src/scss/helpers/_elements.scss +0 -1
- package/src/scss/helpers/_mixins.scss +5 -5
- package/src/scss/helpers/_store-locator-elements.scss +0 -1
- package/src/scss/helpers/_typography.scss +3 -3
- package/src/scss/helpers/_utilities.scss +0 -1
- package/src/scss/helpers/helpers-pdp-critical/_CTAs-critical-pdp.scss +1 -1
- package/src/scss/helpers/helpers-pdp-critical/_elements-critical-pdp.scss +0 -1
- package/src/scss/helpers/helpers-pdp-critical/_helpers-critical-pdp.scss +1 -1
- package/src/scss/helpers/helpers-pdp-critical/_typography-critical-pdp.scss +4 -4
- package/src/scss/libs/_bootstrap-extracted.scss +42 -12
- package/src/scss/libs/_cat-libs.scss +10 -10
- package/src/scss/libs/_font-awesome-icons.scss +133 -113
- package/src/scss/libs/_homepage-libs.scss +12 -12
- package/src/scss/libs/_plp-libs.scss +11 -11
- package/src/scss/libs/_skeleton.scss +4 -4
- package/src/scss/libs/_store-locator-libs.scss +1 -1
- package/src/scss/libs/flatpickr.scss +6 -6
- package/src/scss/my-account-main-v2.scss +19 -19
- package/src/scss/my-account-main.scss +19 -19
- package/src/scss/pages/_checkout-confirmation.scss +1 -3
- package/src/scss/pages/_checkout-sign-in.scss +1 -2
- package/src/scss/pages/_checkout-tradepro.scss +3 -4
- package/src/scss/pages/_checkout-widget.scss +10 -16
- package/src/scss/pages/_checkout_delivery-details.scss +1 -3
- package/src/scss/pages/_checkout_edit-delivery-address.scss +0 -1
- package/src/scss/pages/_checkout_terms-and-conditions.scss +0 -1
- package/src/scss/pages/_checkout_your-details.scss +1 -1
- package/src/scss/pages/_contact-us.scss +0 -1
- package/src/scss/pages/_facets.scss +0 -2
- package/src/scss/pages/_my-account_address-details.scss +0 -3
- package/src/scss/pages/_my-account_change-email.scss +0 -1
- package/src/scss/pages/_my-account_new.scss +25 -31
- package/src/scss/pages/_my-account_order-details.scss +1 -1
- package/src/scss/pages/_my-account_order-history.scss +1 -2
- package/src/scss/pages/_my-account_personal-details.scss +0 -5
- package/src/scss/pages/_my-account_profile.scss +1 -2
- package/src/scss/pages/_my-account_your-account.scss +0 -1
- package/src/scss/pages/_page_category-landing.scss +3 -2
- package/src/scss/pages/bicester-header.scss +0 -1
- package/src/scss/pages/checkout-new.scss +7 -2
- package/src/scss/pages/checkout.scss +4 -5
- package/src/scss/pages/home-movers.scss +1 -1
- package/src/scss/pages/iframe-paypage.scss +44 -44
- package/src/scss/pages/my-account.scss +3 -3
- package/src/scss/pages/oldweb_header.scss +5 -6
- package/src/scss/pages/page_account-deletion.scss +1 -1
- package/src/scss/pages/page_act-trade-pro.scss +0 -1
- package/src/scss/pages/page_address-book.scss +0 -1
- package/src/scss/pages/page_bathroom-trends.scss +0 -1
- package/src/scss/pages/page_book-consultant-thank-you-new.scss +3 -5
- package/src/scss/pages/page_checkout-payment-details.scss +2 -5
- package/src/scss/pages/page_checkout_delivery-new.scss +1 -1
- package/src/scss/pages/page_cms_homepage.scss +1 -1
- package/src/scss/pages/page_contact-us.scss +1 -1
- package/src/scss/pages/page_content.scss +0 -4
- package/src/scss/pages/page_default-store.scss +2 -3
- package/src/scss/pages/page_empty-basket.scss +0 -5
- package/src/scss/pages/page_fdl-management.scss +0 -1
- package/src/scss/pages/page_fi.scss +0 -2
- package/src/scss/pages/page_home.scss +0 -2
- package/src/scss/pages/page_hotspot-guttering.scss +0 -1
- package/src/scss/pages/page_in-store-checkout.scss +1 -3
- package/src/scss/pages/page_installer.scss +3 -5
- package/src/scss/pages/page_installer_form.scss +0 -1
- package/src/scss/pages/page_kitchen-claims.scss +2 -5
- package/src/scss/pages/page_kitchen-list.scss +1 -1
- package/src/scss/pages/page_marketing-preferences.scss +1 -1
- package/src/scss/pages/page_merged-basket.scss +2 -2
- package/src/scss/pages/page_my-account_tradePro.scss +1 -1
- package/src/scss/pages/page_my-order.scss +15 -15
- package/src/scss/pages/page_my-orders.scss +2 -2
- package/src/scss/pages/page_new-checkout_login-register.scss +1 -2
- package/src/scss/pages/page_no-results.scss +1 -2
- package/src/scss/pages/page_online-exclusive.scss +6 -6
- package/src/scss/pages/page_personal-details.scss +2 -2
- package/src/scss/pages/page_pre_home.scss +7 -7
- package/src/scss/pages/page_pre_home_thank-you.scss +2 -2
- package/src/scss/pages/page_product-details-critical.scss +0 -1
- package/src/scss/pages/page_product-details-v2-critical.scss +1 -2
- package/src/scss/pages/page_product-details.scss +0 -1
- package/src/scss/pages/page_products-list-phone.scss +0 -7
- package/src/scss/pages/page_products-list.scss +2 -2
- package/src/scss/pages/page_quiz.scss +3 -3
- package/src/scss/pages/page_rate-review.scss +0 -3
- package/src/scss/pages/page_registration.scss +0 -3
- package/src/scss/pages/page_store-locator-details.scss +2 -2
- package/src/scss/pages/page_ti.scss +1 -5
- package/src/scss/pages/page_top-rated.scss +5 -5
- package/src/scss/pages/page_track-my-order.scss +1 -1
- package/src/scss/pages/page_track_your_order.scss +5 -5
- package/src/scss/pages/page_upd-pass.scss +0 -1
- package/src/scss/pages/page_wismo-details.scss +8 -8
- package/src/scss/pages/page_wismo-order-history.scss +3 -3
- package/src/scss/pages/page_wismo-orders.scss +7 -7
- package/src/scss/pages/print_quiz.scss +3 -1
- package/src/scss/pages/sticky_header.scss +5 -6
- package/src/scss/pages/tradePro-about.scss +1 -1
- package/src/scss/pages/tradePro-discount.scss +1 -2
- package/src/scss/pages/tradePro-rewards-old.scss +4 -3
- package/src/scss/pages/tradePro-signup.scss +3 -5
- package/src/scss/partials/_breadcrumbs-critical.scss +2 -2
- package/src/scss/partials/_breadcrumbs.scss +2 -2
- package/src/scss/partials/_footer-v2.scss +2 -2
- package/src/scss/partials/_footer.scss +4 -4
- package/src/scss/partials/_footer_checkout-new.scss +1 -1
- package/src/scss/partials/_footer_checkout.scss +1 -1
- package/src/scss/partials/_header-critical.scss +6 -9
- package/src/scss/partials/_header.scss +7 -9
- package/src/scss/partials/_header_checkout.scss +2 -2
- package/src/scss/partials/_main-nav.scss +7 -11
- package/src/scss/partials/_sign-up.scss +3 -3
- package/src/scss/shopping-list-pdf.scss +1 -1
- package/src/sitemap.html +12 -4
- package/src/components/.DS_Store +0 -0
- package/src/img/.DS_Store +0 -0
- package/src/img/placeholders/.DS_Store +0 -0
- package/src/js/page/.DS_Store +0 -0
- package/src/scss/.DS_Store +0 -0
- package/src/scss/pages/.DS_Store +0 -0
package/build/js/page/{bloomreach-widget.js → bloomreach-widget/complete-your-project-widget.js}
RENAMED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
var Wick = window.Wick || {};
|
|
2
2
|
|
|
3
|
-
import { createCountStepper } from '
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { createToast } from './utils/create-toast';
|
|
3
|
+
import { createCountStepper } from '../utils/create-count-stepper';
|
|
4
|
+
import { createDropdown } from '../utils/custom-dropdown';
|
|
5
|
+
import { createLoadingButton } from '../utils/create-loading-button';
|
|
6
|
+
import { createToast } from '../utils/create-toast';
|
|
8
7
|
|
|
9
8
|
const Handlebars = require('hbsfy/runtime');
|
|
10
9
|
|
|
11
|
-
Handlebars.registerPartial('checkbox', require('
|
|
12
|
-
Handlebars.registerPartial('loader', require('
|
|
13
|
-
Handlebars.registerPartial('button', require('
|
|
10
|
+
Handlebars.registerPartial('checkbox', require('../../../elements/checkbox.hbs'));
|
|
11
|
+
Handlebars.registerPartial('loader', require('../../../elements/loader.hbs'));
|
|
12
|
+
Handlebars.registerPartial('button', require('../../../components/base/button.hbs'));
|
|
14
13
|
Handlebars.registerPartial(
|
|
15
14
|
'bloomreach/complete-card-dropdown',
|
|
16
|
-
require('
|
|
15
|
+
require('../../../components/bloomreach/complete-card-dropdown.hbs')
|
|
17
16
|
);
|
|
18
|
-
Handlebars.registerPartial('notifications', require('
|
|
17
|
+
Handlebars.registerPartial('notifications', require('../../../elements/notifications.hbs'));
|
|
18
|
+
Handlebars.registerPartial('reviews-rating', require('../../../components/reviews-rating.hbs'));
|
|
19
19
|
|
|
20
|
-
const notificationTemplate = require('
|
|
21
|
-
const completeWrapperTemplate = require('
|
|
22
|
-
const completeDividerTemplate = require('
|
|
23
|
-
const completeCardTemplate = require('
|
|
24
|
-
const completeSummaryTemplate = require('
|
|
20
|
+
const notificationTemplate = require('../../../elements/notifications.hbs');
|
|
21
|
+
const completeWrapperTemplate = require('../../../components/bloomreach/complete-wrapper.hbs');
|
|
22
|
+
const completeDividerTemplate = require('../../../components/bloomreach/complete-divider.hbs');
|
|
23
|
+
const completeCardTemplate = require('../../../components/bloomreach/complete-card.hbs');
|
|
24
|
+
const completeSummaryTemplate = require('../../../components/bloomreach/complete-summary.hbs');
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
const CompleteYourProjectWidget = {
|
|
27
27
|
CALCULATE_PRODUCT_BUNDLE_TOTAL_EVENT: 'calculateProductBundleTotal',
|
|
28
28
|
ADD_PRODUCT_BUNDLE_TO_CART_EVENT: 'bulkAddToCart',
|
|
29
29
|
|
|
@@ -43,14 +43,8 @@ Wick.BloomreachWidget = {
|
|
|
43
43
|
countStepperInitializedData: 'count-stepper-initialized',
|
|
44
44
|
countStepperRoot: '.count-stepper',
|
|
45
45
|
ctaButton: '.complete-widget__cta .btn',
|
|
46
|
-
ctaButtonText: '.loading-button__text',
|
|
47
|
-
ctaButtonLoader: '.loading-button__loader',
|
|
48
46
|
summaryPriceValue: '.complete-widget__price-value',
|
|
49
47
|
summarySalePrice: '.complete-widget__sale-price',
|
|
50
|
-
summaryPriceInc: '.including-vat-inherit',
|
|
51
|
-
summaryPriceExc: '.excluding-vat-inherit',
|
|
52
|
-
summarySalePriceInc: '.including-vat-inherit',
|
|
53
|
-
summarySalePriceExc: '.excluding-vat-inherit',
|
|
54
48
|
|
|
55
49
|
dropdownErrorClass: 'complete-card-dropdown--error',
|
|
56
50
|
dropdownOpenClass: 'complete-card-dropdown--open',
|
|
@@ -68,8 +62,6 @@ Wick.BloomreachWidget = {
|
|
|
68
62
|
recommendationIndexAttr: 'data-recommendation-index',
|
|
69
63
|
selectedClass: 'complete-card--selected',
|
|
70
64
|
selectedValueData: 'selected-value',
|
|
71
|
-
starOverlay: '.star-overlay',
|
|
72
|
-
|
|
73
65
|
titleEl: '.complete-card__title',
|
|
74
66
|
|
|
75
67
|
widgetContainer: '[data-complete-widget]',
|
|
@@ -94,8 +86,7 @@ Wick.BloomreachWidget = {
|
|
|
94
86
|
},
|
|
95
87
|
|
|
96
88
|
setCtaText($button, text) {
|
|
97
|
-
const
|
|
98
|
-
const $text = $button.find(ctaButtonText);
|
|
89
|
+
const $text = $button.find(Wick.BloomreachWidget.el.loadingButtonText);
|
|
99
90
|
|
|
100
91
|
if ($text.length) {
|
|
101
92
|
$text.text(text);
|
|
@@ -106,61 +97,7 @@ Wick.BloomreachWidget = {
|
|
|
106
97
|
},
|
|
107
98
|
|
|
108
99
|
getBadgeColor(color) {
|
|
109
|
-
return
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
hasRecommendations(payloadData) {
|
|
113
|
-
if (Array.isArray(payloadData)) {
|
|
114
|
-
return payloadData.length > 0;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return Boolean(
|
|
118
|
-
payloadData &&
|
|
119
|
-
Array.isArray(payloadData.recommendedProducts) &&
|
|
120
|
-
payloadData.recommendedProducts.length
|
|
121
|
-
);
|
|
122
|
-
},
|
|
123
|
-
|
|
124
|
-
normalizePayload(payloadData) {
|
|
125
|
-
if (Array.isArray(payloadData)) {
|
|
126
|
-
return payloadData;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if (payloadData && Array.isArray(payloadData.recommendedProducts)) {
|
|
130
|
-
return payloadData.recommendedProducts;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return [];
|
|
134
|
-
},
|
|
135
|
-
|
|
136
|
-
getDisplayPrice(product) {
|
|
137
|
-
return product.displayPrice || product.price || {};
|
|
138
|
-
},
|
|
139
|
-
|
|
140
|
-
dispatchWidgetEvent(eventName, payload) {
|
|
141
|
-
return new Promise(function (resolve, reject) {
|
|
142
|
-
const eventDetail = { resolve, reject };
|
|
143
|
-
const event = createEvent(eventName, payload, eventDetail);
|
|
144
|
-
|
|
145
|
-
window.dispatchEvent(event);
|
|
146
|
-
});
|
|
147
|
-
},
|
|
148
|
-
|
|
149
|
-
getProductImage(product, fallbackProduct) {
|
|
150
|
-
const productImages = product.images || [];
|
|
151
|
-
const fallbackImages = fallbackProduct ? fallbackProduct.images || [] : [];
|
|
152
|
-
const images = productImages.length ? productImages : fallbackImages;
|
|
153
|
-
|
|
154
|
-
return (
|
|
155
|
-
images.find(function (item) {
|
|
156
|
-
return item.format === 'product';
|
|
157
|
-
}) ||
|
|
158
|
-
images.find(function (item) {
|
|
159
|
-
return item.imageType === 'PRIMARY';
|
|
160
|
-
}) ||
|
|
161
|
-
images[0] ||
|
|
162
|
-
{}
|
|
163
|
-
);
|
|
100
|
+
return CompleteYourProjectWidget.badgeColorMap[color] || color;
|
|
164
101
|
},
|
|
165
102
|
|
|
166
103
|
getDropdownOptions(product) {
|
|
@@ -199,7 +136,7 @@ Wick.BloomreachWidget = {
|
|
|
199
136
|
return;
|
|
200
137
|
}
|
|
201
138
|
|
|
202
|
-
|
|
139
|
+
CompleteYourProjectWidget.toast.show({
|
|
203
140
|
type: bulkData.messageType,
|
|
204
141
|
text: bulkData.messageText,
|
|
205
142
|
});
|
|
@@ -212,10 +149,10 @@ Wick.BloomreachWidget = {
|
|
|
212
149
|
if (promotionAttributes && promotionAttributes.overlayText) {
|
|
213
150
|
return {
|
|
214
151
|
text: promotionAttributes.overlayText,
|
|
215
|
-
textColor:
|
|
152
|
+
textColor: CompleteYourProjectWidget.getBadgeColor(
|
|
216
153
|
promotionAttributes.overlayTextColor
|
|
217
154
|
),
|
|
218
|
-
color:
|
|
155
|
+
color: CompleteYourProjectWidget.getBadgeColor(
|
|
219
156
|
promotionAttributes.overlayBackgroundColor
|
|
220
157
|
),
|
|
221
158
|
};
|
|
@@ -224,70 +161,6 @@ Wick.BloomreachWidget = {
|
|
|
224
161
|
return product.badge;
|
|
225
162
|
},
|
|
226
163
|
|
|
227
|
-
getWasPrice(product) {
|
|
228
|
-
const displayPrice = Wick.BloomreachWidget.getDisplayPrice(product);
|
|
229
|
-
|
|
230
|
-
return displayPrice && displayPrice.wasPrice ? displayPrice.wasPrice : null;
|
|
231
|
-
},
|
|
232
|
-
|
|
233
|
-
getWasPriceFormatted(product) {
|
|
234
|
-
const displayPrice = Wick.BloomreachWidget.getDisplayPrice(product);
|
|
235
|
-
const wasPrice = Wick.BloomreachWidget.getWasPrice(product);
|
|
236
|
-
|
|
237
|
-
if (wasPrice && wasPrice.formattedValue) {
|
|
238
|
-
return wasPrice.formattedValue;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
if (typeof wasPrice === 'number') {
|
|
242
|
-
return Wick.BloomreachWidget.formatPrice(wasPrice);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
if (wasPrice) {
|
|
246
|
-
return `${displayPrice.currencySymbol || '£'}${wasPrice}`;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
return '';
|
|
250
|
-
},
|
|
251
|
-
|
|
252
|
-
getDisplayPriceExcVat(product) {
|
|
253
|
-
return product.displayPriceExclusiveVat || product.priceExclusiveVat || null;
|
|
254
|
-
},
|
|
255
|
-
|
|
256
|
-
getPriceValue(price) {
|
|
257
|
-
return price && typeof price.value === 'number' ? price.value : 0;
|
|
258
|
-
},
|
|
259
|
-
|
|
260
|
-
getPriceFormattedValue(price) {
|
|
261
|
-
if (!price) {
|
|
262
|
-
return '';
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
if (price.formattedValue) {
|
|
266
|
-
return price.formattedValue;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
if (typeof price.value === 'number') {
|
|
270
|
-
return Wick.BloomreachWidget.formatPrice(price.value);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
return '';
|
|
274
|
-
},
|
|
275
|
-
|
|
276
|
-
getExcVatWasPrice(product) {
|
|
277
|
-
const displayPriceExclusiveVat = Wick.BloomreachWidget.getDisplayPriceExcVat(product);
|
|
278
|
-
const wasPrice = displayPriceExclusiveVat && displayPriceExclusiveVat.wasPrice;
|
|
279
|
-
|
|
280
|
-
if (wasPrice && wasPrice.formattedValue) {
|
|
281
|
-
return wasPrice.formattedValue;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
if (typeof wasPrice === 'number') {
|
|
285
|
-
return Wick.BloomreachWidget.formatPrice(wasPrice);
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
return wasPrice || '';
|
|
289
|
-
},
|
|
290
|
-
|
|
291
164
|
getExcVatFormattedValue(displayPrice, product) {
|
|
292
165
|
const excVat = product ? Wick.BloomreachWidget.getDisplayPriceExcVat(product) : null;
|
|
293
166
|
if (excVat && excVat.formattedValue) {
|
|
@@ -303,10 +176,10 @@ Wick.BloomreachWidget = {
|
|
|
303
176
|
getProductRenderData(product, index, options = {}) {
|
|
304
177
|
const shouldShowDropdown = index !== 0;
|
|
305
178
|
const dropdownOptions = shouldShowDropdown
|
|
306
|
-
?
|
|
179
|
+
? CompleteYourProjectWidget.getDropdownOptions(product)
|
|
307
180
|
: [];
|
|
308
181
|
const selectedDropdownValue = options.selectedDropdownValue || '';
|
|
309
|
-
const selectedDropdownLabel =
|
|
182
|
+
const selectedDropdownLabel = CompleteYourProjectWidget.getSelectedDropdownLabel(
|
|
310
183
|
dropdownOptions,
|
|
311
184
|
selectedDropdownValue
|
|
312
185
|
);
|
|
@@ -319,19 +192,17 @@ Wick.BloomreachWidget = {
|
|
|
319
192
|
);
|
|
320
193
|
|
|
321
194
|
const wasPriceFormatted = Wick.BloomreachWidget.getWasPriceFormatted(product);
|
|
322
|
-
const excVatFormattedValue =
|
|
195
|
+
const excVatFormattedValue = CompleteYourProjectWidget.getExcVatFormattedValue(
|
|
323
196
|
displayPrice,
|
|
324
197
|
product
|
|
325
198
|
);
|
|
326
199
|
const isSwitchVat = !!(window.ACC && window.ACC.app && window.ACC.app.isVatToggleAvailable);
|
|
327
200
|
|
|
328
|
-
const excVatWasPriceFormatted =
|
|
329
|
-
? Wick.BloomreachWidget.getExcVatWasPrice(product)
|
|
330
|
-
: '';
|
|
201
|
+
const excVatWasPriceFormatted = Wick.BloomreachWidget.getExcVatWasPrice(product);
|
|
331
202
|
|
|
332
203
|
return {
|
|
333
204
|
...product,
|
|
334
|
-
badge:
|
|
205
|
+
badge: CompleteYourProjectWidget.getBadge(product),
|
|
335
206
|
price: displayPrice,
|
|
336
207
|
wasPriceFormatted,
|
|
337
208
|
'switch-vat': isSwitchVat,
|
|
@@ -342,7 +213,11 @@ Wick.BloomreachWidget = {
|
|
|
342
213
|
Wick.BloomreachWidget.getDisplayPriceExcVat(product)
|
|
343
214
|
),
|
|
344
215
|
incVatWasPriceFormatted: wasPriceFormatted,
|
|
216
|
+
wasPriceIncVatFormattedValue: wasPriceFormatted,
|
|
217
|
+
incVatWasPriceFormattedValue: wasPriceFormatted,
|
|
345
218
|
excVatWasPriceFormatted,
|
|
219
|
+
wasPriceExcVatFormattedValue: excVatWasPriceFormatted,
|
|
220
|
+
excVatWasPriceFormattedValue: excVatWasPriceFormatted,
|
|
346
221
|
showFromPrice,
|
|
347
222
|
image:
|
|
348
223
|
options.image ||
|
|
@@ -363,7 +238,7 @@ Wick.BloomreachWidget = {
|
|
|
363
238
|
|
|
364
239
|
renderWidget($container, context) {
|
|
365
240
|
const { widgetContent, widgetWrapper, completeCard, recommendationIndexAttr } =
|
|
366
|
-
|
|
241
|
+
CompleteYourProjectWidget.el;
|
|
367
242
|
|
|
368
243
|
const $content = $container.find(widgetContent);
|
|
369
244
|
const recommendations = Wick.BloomreachWidget.normalizePayload(context);
|
|
@@ -372,16 +247,16 @@ Wick.BloomreachWidget = {
|
|
|
372
247
|
return;
|
|
373
248
|
}
|
|
374
249
|
|
|
375
|
-
|
|
250
|
+
CompleteYourProjectWidget.recommendations = recommendations;
|
|
376
251
|
|
|
377
252
|
$content.html(completeWrapperTemplate());
|
|
378
253
|
|
|
379
254
|
const $wrapper = $content.find(widgetWrapper);
|
|
380
255
|
|
|
381
|
-
|
|
256
|
+
CompleteYourProjectWidget.dropdownCurrent = {};
|
|
382
257
|
|
|
383
258
|
recommendations.forEach(function (recommendation, index) {
|
|
384
|
-
const product =
|
|
259
|
+
const product = CompleteYourProjectWidget.getProductRenderData(
|
|
385
260
|
recommendation.baseProduct,
|
|
386
261
|
index
|
|
387
262
|
);
|
|
@@ -402,7 +277,7 @@ Wick.BloomreachWidget = {
|
|
|
402
277
|
},
|
|
403
278
|
|
|
404
279
|
renderWidgetFromPayload(payloadData) {
|
|
405
|
-
const { widgetContainer, completeWidget } =
|
|
280
|
+
const { widgetContainer, completeWidget } = CompleteYourProjectWidget.el;
|
|
406
281
|
const $containers = $(widgetContainer);
|
|
407
282
|
|
|
408
283
|
if (!$containers.length) {
|
|
@@ -417,46 +292,23 @@ Wick.BloomreachWidget = {
|
|
|
417
292
|
$containers.each(function () {
|
|
418
293
|
const $container = $(this);
|
|
419
294
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
});
|
|
423
|
-
},
|
|
424
|
-
|
|
425
|
-
drawRating($root) {
|
|
426
|
-
const $ratingOverlay = $root.find('.rating-overlay');
|
|
427
|
-
|
|
428
|
-
$ratingOverlay.each(function () {
|
|
429
|
-
let rating = parseFloat($(this).attr('data-rating')) || 0;
|
|
430
|
-
const $stars = $(this).children(Wick.BloomreachWidget.el.starOverlay);
|
|
431
|
-
|
|
432
|
-
$stars.each(function () {
|
|
433
|
-
const $star = $(this);
|
|
434
|
-
|
|
435
|
-
if (rating >= 1) {
|
|
436
|
-
rating--;
|
|
437
|
-
} else if (rating > 0) {
|
|
438
|
-
const width = Math.asin(2 * rating - 1) / Math.PI + 0.5;
|
|
439
|
-
$star.css('width', width + 'rem');
|
|
440
|
-
rating = 0;
|
|
441
|
-
} else {
|
|
442
|
-
$star.css('width', '0rem');
|
|
443
|
-
}
|
|
444
|
-
});
|
|
295
|
+
CompleteYourProjectWidget.renderWidget($container, payloadData);
|
|
296
|
+
CompleteYourProjectWidget.initRenderedWidget($container);
|
|
445
297
|
});
|
|
446
298
|
},
|
|
447
299
|
|
|
448
300
|
getDropdownCard($dropdown) {
|
|
449
|
-
return $dropdown.closest(
|
|
301
|
+
return $dropdown.closest(CompleteYourProjectWidget.el.completeCard);
|
|
450
302
|
},
|
|
451
303
|
|
|
452
304
|
getDropdownCheckbox($dropdown) {
|
|
453
|
-
return
|
|
454
|
-
|
|
305
|
+
return CompleteYourProjectWidget.getDropdownCard($dropdown).find(
|
|
306
|
+
CompleteYourProjectWidget.el.cardCheckbox
|
|
455
307
|
);
|
|
456
308
|
},
|
|
457
309
|
|
|
458
310
|
setDropdownCheckboxState($dropdown, isChecked, shouldTriggerChange = true) {
|
|
459
|
-
const $checkbox =
|
|
311
|
+
const $checkbox = CompleteYourProjectWidget.getDropdownCheckbox($dropdown);
|
|
460
312
|
|
|
461
313
|
if (!$checkbox.length) {
|
|
462
314
|
return;
|
|
@@ -470,18 +322,18 @@ Wick.BloomreachWidget = {
|
|
|
470
322
|
},
|
|
471
323
|
|
|
472
324
|
setDropdownError($dropdown, hasError) {
|
|
473
|
-
$dropdown.toggleClass(
|
|
325
|
+
$dropdown.toggleClass(CompleteYourProjectWidget.el.dropdownErrorClass, hasError);
|
|
474
326
|
},
|
|
475
327
|
|
|
476
328
|
validateDropdown($dropdown, options = {}) {
|
|
477
|
-
const isValid = Boolean($dropdown.data(
|
|
329
|
+
const isValid = Boolean($dropdown.data(CompleteYourProjectWidget.el.selectedValueData));
|
|
478
330
|
|
|
479
|
-
|
|
331
|
+
CompleteYourProjectWidget.setDropdownError($dropdown, !isValid);
|
|
480
332
|
|
|
481
333
|
if (!isValid && options.uncheck) {
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
334
|
+
CompleteYourProjectWidget.setDropdownCheckboxState($dropdown, false, false);
|
|
335
|
+
CompleteYourProjectWidget.getDropdownCard($dropdown).removeClass(
|
|
336
|
+
CompleteYourProjectWidget.el.selectedClass
|
|
485
337
|
);
|
|
486
338
|
}
|
|
487
339
|
|
|
@@ -489,13 +341,13 @@ Wick.BloomreachWidget = {
|
|
|
489
341
|
},
|
|
490
342
|
|
|
491
343
|
validateCardDropdown($card, options = {}) {
|
|
492
|
-
const $dropdown = $card.find(
|
|
344
|
+
const $dropdown = $card.find(CompleteYourProjectWidget.el.dropdownRoot);
|
|
493
345
|
|
|
494
346
|
if (!$dropdown.length) {
|
|
495
347
|
return true;
|
|
496
348
|
}
|
|
497
349
|
|
|
498
|
-
return
|
|
350
|
+
return CompleteYourProjectWidget.validateDropdown($dropdown, options);
|
|
499
351
|
},
|
|
500
352
|
|
|
501
353
|
findVariantProduct(recommendation, selectedValue) {
|
|
@@ -509,7 +361,7 @@ Wick.BloomreachWidget = {
|
|
|
509
361
|
},
|
|
510
362
|
|
|
511
363
|
getCardQuantity($card) {
|
|
512
|
-
const $input = $card.find(
|
|
364
|
+
const $input = $card.find(CompleteYourProjectWidget.el.quantityInput);
|
|
513
365
|
const quantity = parseInt($input.val(), 10);
|
|
514
366
|
|
|
515
367
|
return Number.isNaN(quantity) ? 1 : quantity;
|
|
@@ -517,10 +369,10 @@ Wick.BloomreachWidget = {
|
|
|
517
369
|
|
|
518
370
|
getCardProduct($card) {
|
|
519
371
|
const { recommendationIndexAttr, dropdownRoot, selectedValueData } =
|
|
520
|
-
|
|
372
|
+
CompleteYourProjectWidget.el;
|
|
521
373
|
|
|
522
374
|
const recommendationIndex = Number($card.attr(recommendationIndexAttr));
|
|
523
|
-
const recommendation =
|
|
375
|
+
const recommendation = CompleteYourProjectWidget.recommendations[recommendationIndex];
|
|
524
376
|
|
|
525
377
|
if (!recommendation) {
|
|
526
378
|
return null;
|
|
@@ -531,7 +383,7 @@ Wick.BloomreachWidget = {
|
|
|
531
383
|
|
|
532
384
|
if (selectedValue) {
|
|
533
385
|
return (
|
|
534
|
-
|
|
386
|
+
CompleteYourProjectWidget.findVariantProduct(recommendation, selectedValue) ||
|
|
535
387
|
recommendation.baseProduct
|
|
536
388
|
);
|
|
537
389
|
}
|
|
@@ -540,7 +392,7 @@ Wick.BloomreachWidget = {
|
|
|
540
392
|
},
|
|
541
393
|
|
|
542
394
|
getSelectedEntries($root) {
|
|
543
|
-
const { completeCard, cardCheckbox } =
|
|
395
|
+
const { completeCard, cardCheckbox } = CompleteYourProjectWidget.el;
|
|
544
396
|
const entries = [];
|
|
545
397
|
|
|
546
398
|
$root.find(completeCard).each(function () {
|
|
@@ -551,7 +403,7 @@ Wick.BloomreachWidget = {
|
|
|
551
403
|
return;
|
|
552
404
|
}
|
|
553
405
|
|
|
554
|
-
const product =
|
|
406
|
+
const product = CompleteYourProjectWidget.getCardProduct($card);
|
|
555
407
|
|
|
556
408
|
if (!product) {
|
|
557
409
|
return;
|
|
@@ -559,7 +411,7 @@ Wick.BloomreachWidget = {
|
|
|
559
411
|
|
|
560
412
|
entries.push({
|
|
561
413
|
product,
|
|
562
|
-
quantity:
|
|
414
|
+
quantity: CompleteYourProjectWidget.getCardQuantity($card),
|
|
563
415
|
});
|
|
564
416
|
});
|
|
565
417
|
|
|
@@ -567,7 +419,7 @@ Wick.BloomreachWidget = {
|
|
|
567
419
|
},
|
|
568
420
|
|
|
569
421
|
getAddToCartEntries($root) {
|
|
570
|
-
return
|
|
422
|
+
return CompleteYourProjectWidget.getSelectedEntries($root).map(function (entry) {
|
|
571
423
|
return {
|
|
572
424
|
productCode: entry.product.code,
|
|
573
425
|
quantity: entry.quantity,
|
|
@@ -581,16 +433,10 @@ Wick.BloomreachWidget = {
|
|
|
581
433
|
const totalWasPriceExclusiveVat =
|
|
582
434
|
response.totalWasPriceExclusiveVat || response.totalExcVatWasPrice;
|
|
583
435
|
|
|
584
|
-
const {
|
|
585
|
-
|
|
586
|
-
summarySalePrice,
|
|
587
|
-
summaryPriceInc,
|
|
588
|
-
summaryPriceExc,
|
|
589
|
-
summarySalePriceInc,
|
|
590
|
-
summarySalePriceExc,
|
|
591
|
-
} = Wick.BloomreachWidget.el;
|
|
436
|
+
const { summaryPriceValue, summarySalePrice } = CompleteYourProjectWidget.el;
|
|
437
|
+
const { vatInc, vatExc } = Wick.BloomreachWidget.el;
|
|
592
438
|
|
|
593
|
-
|
|
439
|
+
CompleteYourProjectWidget.lastCalculationResponse = response;
|
|
594
440
|
|
|
595
441
|
const $price = $root.find(summaryPriceValue);
|
|
596
442
|
const $salePrice = $root.find(summarySalePrice);
|
|
@@ -602,46 +448,43 @@ Wick.BloomreachWidget = {
|
|
|
602
448
|
|
|
603
449
|
if (response.totalWasPrice) {
|
|
604
450
|
$total.addClass('complete-widget__total-sale');
|
|
605
|
-
const $priceInc = $price.find(
|
|
451
|
+
const $priceInc = $price.find(vatInc);
|
|
606
452
|
|
|
607
453
|
if ($priceInc.length) {
|
|
608
454
|
$priceInc.text(response.totalWasPrice);
|
|
609
|
-
$price
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
$salePrice.find(summarySalePriceInc).text(response.totalPrice || '');
|
|
614
|
-
$salePrice
|
|
615
|
-
.find(summarySalePriceExc)
|
|
616
|
-
.text(totalPriceExclusiveVat || response.totalPrice || '');
|
|
455
|
+
$price.find(vatExc).text(totalWasPriceExclusiveVat || response.totalWasPrice);
|
|
456
|
+
|
|
457
|
+
$salePrice.find(vatInc).text(response.totalPrice || '');
|
|
458
|
+
$salePrice.find(vatExc).text(totalPriceExclusiveVat || response.totalPrice || '');
|
|
617
459
|
} else {
|
|
618
460
|
$price.text(response.totalWasPrice);
|
|
619
461
|
$salePrice.text(response.totalPrice || '');
|
|
620
462
|
}
|
|
621
463
|
|
|
622
464
|
$salePrice.show();
|
|
465
|
+
Wick.BloomreachWidget.reapplyVatDisplay();
|
|
623
466
|
return;
|
|
624
467
|
}
|
|
625
468
|
|
|
626
469
|
$total.removeClass('complete-widget__total-sale');
|
|
627
|
-
const $priceInc = $price.find(
|
|
470
|
+
const $priceInc = $price.find(vatInc);
|
|
628
471
|
if ($priceInc.length) {
|
|
629
472
|
$priceInc.text(response.totalPrice || '£0.00');
|
|
630
|
-
$price
|
|
631
|
-
.find(summaryPriceExc)
|
|
632
|
-
.text(totalPriceExclusiveVat || response.totalPrice || '£0.00');
|
|
473
|
+
$price.find(vatExc).text(totalPriceExclusiveVat || response.totalPrice || '£0.00');
|
|
633
474
|
|
|
634
|
-
$salePrice.find(
|
|
635
|
-
$salePrice.find(
|
|
475
|
+
$salePrice.find(vatInc).text('');
|
|
476
|
+
$salePrice.find(vatExc).text('');
|
|
636
477
|
$salePrice.hide();
|
|
637
478
|
} else {
|
|
638
479
|
$price.text(response.totalPrice || '£0.00');
|
|
639
480
|
$salePrice.text('').hide();
|
|
640
481
|
}
|
|
482
|
+
|
|
483
|
+
Wick.BloomreachWidget.reapplyVatDisplay();
|
|
641
484
|
},
|
|
642
485
|
|
|
643
486
|
updateCta($root) {
|
|
644
|
-
const { ctaButton, cardCheckbox } =
|
|
487
|
+
const { ctaButton, cardCheckbox } = CompleteYourProjectWidget.el;
|
|
645
488
|
const selectedCount = $root.find(cardCheckbox).filter(':checked').length;
|
|
646
489
|
const $cta = $root.find(ctaButton);
|
|
647
490
|
|
|
@@ -650,44 +493,43 @@ Wick.BloomreachWidget = {
|
|
|
650
493
|
}
|
|
651
494
|
|
|
652
495
|
$cta.prop('disabled', !selectedCount);
|
|
653
|
-
|
|
496
|
+
CompleteYourProjectWidget.setCtaText(
|
|
497
|
+
$cta,
|
|
498
|
+
CompleteYourProjectWidget.getCtaText(selectedCount)
|
|
499
|
+
);
|
|
654
500
|
},
|
|
655
501
|
|
|
656
502
|
dispatchCalculateTotal($root) {
|
|
657
|
-
|
|
503
|
+
CompleteYourProjectWidget.updateCta($root);
|
|
658
504
|
|
|
659
505
|
return Wick.BloomreachWidget.dispatchWidgetEvent(
|
|
660
|
-
|
|
506
|
+
CompleteYourProjectWidget.CALCULATE_PRODUCT_BUNDLE_TOTAL_EVENT,
|
|
661
507
|
{
|
|
662
|
-
entries:
|
|
508
|
+
entries: CompleteYourProjectWidget.getSelectedEntries($root),
|
|
663
509
|
}
|
|
664
510
|
).then(function (response) {
|
|
665
|
-
|
|
511
|
+
CompleteYourProjectWidget.updateSummary($root, response);
|
|
666
512
|
});
|
|
667
513
|
},
|
|
668
514
|
|
|
669
515
|
dispatchAddToCart($root, $button) {
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
return new Promise(function (resolve, reject) {
|
|
673
|
-
const eventDetail = { resolve, reject };
|
|
674
|
-
const event = createEvent(
|
|
675
|
-
Wick.BloomreachWidget.ADD_PRODUCT_BUNDLE_TO_CART_EVENT,
|
|
676
|
-
{
|
|
677
|
-
entries: Wick.BloomreachWidget.getAddToCartEntries($root),
|
|
678
|
-
},
|
|
679
|
-
eventDetail
|
|
680
|
-
);
|
|
516
|
+
CompleteYourProjectWidget.loadingButton.start($button);
|
|
681
517
|
|
|
682
|
-
|
|
683
|
-
|
|
518
|
+
return Wick.BloomreachWidget.dispatchWidgetEvent(
|
|
519
|
+
CompleteYourProjectWidget.ADD_PRODUCT_BUNDLE_TO_CART_EVENT,
|
|
520
|
+
{
|
|
521
|
+
entries: CompleteYourProjectWidget.getAddToCartEntries($root),
|
|
522
|
+
}
|
|
523
|
+
)
|
|
684
524
|
.then(function (response) {
|
|
685
|
-
|
|
525
|
+
CompleteYourProjectWidget.handleBulkAddToCartResponse(response);
|
|
686
526
|
|
|
687
|
-
Wick.MiniBasketSliderFE
|
|
527
|
+
if (Wick.MiniBasketSliderFE) {
|
|
528
|
+
Wick.MiniBasketSliderFE.isMiniBasketLoaded = false;
|
|
529
|
+
}
|
|
688
530
|
})
|
|
689
531
|
.catch(function () {
|
|
690
|
-
|
|
532
|
+
CompleteYourProjectWidget.handleBulkAddToCartResponse({
|
|
691
533
|
bulkAddToCartData: {
|
|
692
534
|
messageType: 'error',
|
|
693
535
|
messageText: 'Selected product(s) were not added to basket',
|
|
@@ -695,19 +537,20 @@ Wick.BloomreachWidget = {
|
|
|
695
537
|
});
|
|
696
538
|
})
|
|
697
539
|
.finally(function () {
|
|
698
|
-
|
|
699
|
-
|
|
540
|
+
CompleteYourProjectWidget.loadingButton.stop($button);
|
|
541
|
+
CompleteYourProjectWidget.updateCta($root);
|
|
700
542
|
});
|
|
701
543
|
},
|
|
702
544
|
|
|
703
545
|
reinitCard($card) {
|
|
704
|
-
const { countBtn, completeWidget } =
|
|
546
|
+
const { countBtn, completeWidget } = CompleteYourProjectWidget.el;
|
|
705
547
|
|
|
706
548
|
$card.find(countBtn).remove();
|
|
707
549
|
|
|
708
|
-
|
|
550
|
+
CompleteYourProjectWidget.initQuantityFields($card);
|
|
709
551
|
Wick.BloomreachWidget.drawRating($card);
|
|
710
|
-
|
|
552
|
+
CompleteYourProjectWidget.alignCardBlocks($card.closest(completeWidget));
|
|
553
|
+
Wick.BloomreachWidget.reapplyVatDisplay();
|
|
711
554
|
},
|
|
712
555
|
|
|
713
556
|
replaceCardWithBaseProduct($dropdown, options = {}) {
|
|
@@ -717,17 +560,17 @@ Wick.BloomreachWidget = {
|
|
|
717
560
|
dropdownRoot,
|
|
718
561
|
dropdownErrorClass,
|
|
719
562
|
cardCheckbox,
|
|
720
|
-
} =
|
|
563
|
+
} = CompleteYourProjectWidget.el;
|
|
721
564
|
|
|
722
565
|
const $card = $dropdown.closest(completeCard);
|
|
723
566
|
const recommendationIndex = Number($card.attr(recommendationIndexAttr));
|
|
724
|
-
const recommendation =
|
|
567
|
+
const recommendation = CompleteYourProjectWidget.recommendations[recommendationIndex];
|
|
725
568
|
|
|
726
569
|
if (!recommendation || !recommendation.baseProduct) {
|
|
727
570
|
return null;
|
|
728
571
|
}
|
|
729
572
|
|
|
730
|
-
const productData =
|
|
573
|
+
const productData = CompleteYourProjectWidget.getProductRenderData(
|
|
731
574
|
recommendation.baseProduct,
|
|
732
575
|
recommendationIndex,
|
|
733
576
|
{
|
|
@@ -750,13 +593,13 @@ Wick.BloomreachWidget = {
|
|
|
750
593
|
$newCard.find(cardCheckbox).prop('checked', false);
|
|
751
594
|
|
|
752
595
|
$newCard
|
|
753
|
-
.find(
|
|
596
|
+
.find(CompleteYourProjectWidget.el.quantityInput)
|
|
754
597
|
.val(1)
|
|
755
|
-
.data(
|
|
756
|
-
.removeData(
|
|
757
|
-
.removeData(
|
|
598
|
+
.data(CompleteYourProjectWidget.el.previousQuantityData, 1)
|
|
599
|
+
.removeData(CompleteYourProjectWidget.el.quantityReadyData)
|
|
600
|
+
.removeData(CompleteYourProjectWidget.el.countStepperInitializedData);
|
|
758
601
|
|
|
759
|
-
|
|
602
|
+
CompleteYourProjectWidget.reinitCard($newCard);
|
|
760
603
|
|
|
761
604
|
return $newCard;
|
|
762
605
|
},
|
|
@@ -769,17 +612,17 @@ Wick.BloomreachWidget = {
|
|
|
769
612
|
dropdownRoot,
|
|
770
613
|
selectedValueData,
|
|
771
614
|
cardCheckbox,
|
|
772
|
-
} =
|
|
615
|
+
} = CompleteYourProjectWidget.el;
|
|
773
616
|
|
|
774
617
|
const $card = $dropdown.closest(completeCard);
|
|
775
618
|
const recommendationIndex = Number($card.attr(recommendationIndexAttr));
|
|
776
|
-
const recommendation =
|
|
619
|
+
const recommendation = CompleteYourProjectWidget.recommendations[recommendationIndex];
|
|
777
620
|
|
|
778
621
|
if (!recommendation) {
|
|
779
622
|
return null;
|
|
780
623
|
}
|
|
781
624
|
|
|
782
|
-
const variantProduct =
|
|
625
|
+
const variantProduct = CompleteYourProjectWidget.findVariantProduct(
|
|
783
626
|
recommendation,
|
|
784
627
|
selectedValue
|
|
785
628
|
);
|
|
@@ -788,7 +631,7 @@ Wick.BloomreachWidget = {
|
|
|
788
631
|
return null;
|
|
789
632
|
}
|
|
790
633
|
|
|
791
|
-
const productData =
|
|
634
|
+
const productData = CompleteYourProjectWidget.getProductRenderData(
|
|
792
635
|
{
|
|
793
636
|
...variantProduct,
|
|
794
637
|
variantOptions: recommendation.baseProduct.variantOptions,
|
|
@@ -818,51 +661,53 @@ Wick.BloomreachWidget = {
|
|
|
818
661
|
$newCard.find(cardCheckbox).prop('checked', true);
|
|
819
662
|
|
|
820
663
|
$newCard
|
|
821
|
-
.find(
|
|
664
|
+
.find(CompleteYourProjectWidget.el.quantityInput)
|
|
822
665
|
.val(1)
|
|
823
|
-
.data(
|
|
824
|
-
.removeData(
|
|
825
|
-
.removeData(
|
|
666
|
+
.data(CompleteYourProjectWidget.el.previousQuantityData, 1)
|
|
667
|
+
.removeData(CompleteYourProjectWidget.el.quantityReadyData)
|
|
668
|
+
.removeData(CompleteYourProjectWidget.el.countStepperInitializedData);
|
|
826
669
|
|
|
827
|
-
|
|
670
|
+
CompleteYourProjectWidget.reinitCard($newCard);
|
|
828
671
|
|
|
829
672
|
return $newCard;
|
|
830
673
|
},
|
|
831
674
|
|
|
832
675
|
handleDropdownSelect($dropdown, selectedValue) {
|
|
833
|
-
const $card = $dropdown.closest(
|
|
834
|
-
const recommendationIndex = $card.attr(
|
|
835
|
-
|
|
676
|
+
const $card = $dropdown.closest(CompleteYourProjectWidget.el.completeCard);
|
|
677
|
+
const recommendationIndex = $card.attr(
|
|
678
|
+
CompleteYourProjectWidget.el.recommendationIndexAttr
|
|
679
|
+
);
|
|
680
|
+
const currentValue = CompleteYourProjectWidget.dropdownCurrent[recommendationIndex];
|
|
836
681
|
|
|
837
682
|
if (`${currentValue}` === `${selectedValue}`) {
|
|
838
683
|
return;
|
|
839
684
|
}
|
|
840
685
|
|
|
841
|
-
|
|
686
|
+
CompleteYourProjectWidget.dropdownCurrent[recommendationIndex] = selectedValue;
|
|
842
687
|
|
|
843
|
-
const $completeWidget = $dropdown.closest(
|
|
688
|
+
const $completeWidget = $dropdown.closest(CompleteYourProjectWidget.el.completeWidget);
|
|
844
689
|
const isPlaceholder = !selectedValue;
|
|
845
690
|
|
|
846
691
|
if (isPlaceholder) {
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
692
|
+
CompleteYourProjectWidget.setDropdownError($dropdown, true);
|
|
693
|
+
CompleteYourProjectWidget.setDropdownCheckboxState($dropdown, false, false);
|
|
694
|
+
CompleteYourProjectWidget.replaceCardWithBaseProduct($dropdown, {
|
|
850
695
|
dropdownError: true,
|
|
851
696
|
});
|
|
852
697
|
|
|
853
698
|
if ($completeWidget.length) {
|
|
854
|
-
|
|
699
|
+
CompleteYourProjectWidget.dispatchCalculateTotal($completeWidget);
|
|
855
700
|
}
|
|
856
701
|
|
|
857
702
|
return;
|
|
858
703
|
}
|
|
859
704
|
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
705
|
+
CompleteYourProjectWidget.setDropdownError($dropdown, false);
|
|
706
|
+
CompleteYourProjectWidget.setDropdownCheckboxState($dropdown, true, false);
|
|
707
|
+
CompleteYourProjectWidget.replaceCardWithVariant($dropdown, selectedValue);
|
|
863
708
|
|
|
864
709
|
if ($completeWidget.length) {
|
|
865
|
-
|
|
710
|
+
CompleteYourProjectWidget.dispatchCalculateTotal($completeWidget);
|
|
866
711
|
}
|
|
867
712
|
},
|
|
868
713
|
|
|
@@ -874,9 +719,9 @@ Wick.BloomreachWidget = {
|
|
|
874
719
|
dropdownOption,
|
|
875
720
|
dropdownOpenClass,
|
|
876
721
|
dropdownOptionSelectedClass,
|
|
877
|
-
} =
|
|
722
|
+
} = CompleteYourProjectWidget.el;
|
|
878
723
|
|
|
879
|
-
|
|
724
|
+
CompleteYourProjectWidget.dropdown = createDropdown({
|
|
880
725
|
root: dropdownRoot,
|
|
881
726
|
toggle: dropdownToggle,
|
|
882
727
|
value: dropdownValue,
|
|
@@ -885,15 +730,15 @@ Wick.BloomreachWidget = {
|
|
|
885
730
|
selectedClass: dropdownOptionSelectedClass,
|
|
886
731
|
namespace: 'bloomreachDropdown',
|
|
887
732
|
onSelect($dropdown, $option, selectedValue) {
|
|
888
|
-
|
|
733
|
+
CompleteYourProjectWidget.handleDropdownSelect($dropdown, selectedValue);
|
|
889
734
|
},
|
|
890
735
|
});
|
|
891
736
|
|
|
892
|
-
|
|
737
|
+
CompleteYourProjectWidget.dropdown.bind();
|
|
893
738
|
},
|
|
894
739
|
|
|
895
740
|
bindCardSelection($root) {
|
|
896
|
-
const { completeCard, cardCheckbox, selectedClass } =
|
|
741
|
+
const { completeCard, cardCheckbox, selectedClass } = CompleteYourProjectWidget.el;
|
|
897
742
|
|
|
898
743
|
const $firstCard = $root.find(completeCard).first();
|
|
899
744
|
|
|
@@ -904,11 +749,11 @@ Wick.BloomreachWidget = {
|
|
|
904
749
|
$root.on('change.bloomreachCardSelection', cardCheckbox, function () {
|
|
905
750
|
const $checkbox = $(this);
|
|
906
751
|
const $card = $checkbox.closest(completeCard);
|
|
907
|
-
const $dropdown = $card.find(
|
|
752
|
+
const $dropdown = $card.find(CompleteYourProjectWidget.el.dropdownRoot);
|
|
908
753
|
|
|
909
754
|
if (
|
|
910
755
|
!$checkbox.prop('checked') &&
|
|
911
|
-
$dropdown.hasClass(
|
|
756
|
+
$dropdown.hasClass(CompleteYourProjectWidget.el.dropdownErrorClass)
|
|
912
757
|
) {
|
|
913
758
|
$card.removeClass(selectedClass);
|
|
914
759
|
return;
|
|
@@ -916,7 +761,7 @@ Wick.BloomreachWidget = {
|
|
|
916
761
|
|
|
917
762
|
if (
|
|
918
763
|
$checkbox.prop('checked') &&
|
|
919
|
-
!
|
|
764
|
+
!CompleteYourProjectWidget.validateCardDropdown($card, {
|
|
920
765
|
uncheck: true,
|
|
921
766
|
})
|
|
922
767
|
) {
|
|
@@ -927,12 +772,12 @@ Wick.BloomreachWidget = {
|
|
|
927
772
|
|
|
928
773
|
$card.toggleClass(selectedClass, this.checked);
|
|
929
774
|
|
|
930
|
-
|
|
775
|
+
CompleteYourProjectWidget.dispatchCalculateTotal($root);
|
|
931
776
|
});
|
|
932
777
|
},
|
|
933
778
|
|
|
934
779
|
bindDropdownValidation($root) {
|
|
935
|
-
const { cardCheckbox, completeCard } =
|
|
780
|
+
const { cardCheckbox, completeCard } = CompleteYourProjectWidget.el;
|
|
936
781
|
|
|
937
782
|
$root.off('click.bloomreachDropdownValidation', cardCheckbox);
|
|
938
783
|
$root.on('click.bloomreachDropdownValidation', cardCheckbox, function () {
|
|
@@ -941,18 +786,24 @@ Wick.BloomreachWidget = {
|
|
|
941
786
|
|
|
942
787
|
if (
|
|
943
788
|
$checkbox.prop('checked') &&
|
|
944
|
-
!
|
|
789
|
+
!CompleteYourProjectWidget.validateCardDropdown($card, {
|
|
945
790
|
uncheck: true,
|
|
946
791
|
})
|
|
947
792
|
) {
|
|
948
793
|
$checkbox.prop('checked', false);
|
|
949
|
-
$card.removeClass(
|
|
794
|
+
$card.removeClass(CompleteYourProjectWidget.el.selectedClass);
|
|
950
795
|
}
|
|
951
796
|
});
|
|
952
797
|
},
|
|
953
798
|
|
|
799
|
+
bindVatToggle() {
|
|
800
|
+
if (Wick.BloomreachWidget.bindVatToggle) {
|
|
801
|
+
Wick.BloomreachWidget.bindVatToggle('completeYourProjectVatToggle');
|
|
802
|
+
}
|
|
803
|
+
},
|
|
804
|
+
|
|
954
805
|
bindAddToCart($root) {
|
|
955
|
-
const { ctaButton } =
|
|
806
|
+
const { ctaButton } = CompleteYourProjectWidget.el;
|
|
956
807
|
|
|
957
808
|
$root.off('click.bloomreachAddToCart', ctaButton);
|
|
958
809
|
$root.on('click.bloomreachAddToCart', ctaButton, function (event) {
|
|
@@ -962,12 +813,12 @@ Wick.BloomreachWidget = {
|
|
|
962
813
|
|
|
963
814
|
if (
|
|
964
815
|
$button.prop('disabled') ||
|
|
965
|
-
|
|
816
|
+
CompleteYourProjectWidget.loadingButton.isLoading($button)
|
|
966
817
|
) {
|
|
967
818
|
return;
|
|
968
819
|
}
|
|
969
820
|
|
|
970
|
-
|
|
821
|
+
CompleteYourProjectWidget.dispatchAddToCart($root, $button);
|
|
971
822
|
});
|
|
972
823
|
},
|
|
973
824
|
|
|
@@ -992,14 +843,14 @@ Wick.BloomreachWidget = {
|
|
|
992
843
|
},
|
|
993
844
|
|
|
994
845
|
alignCardBlocks($root) {
|
|
995
|
-
const { titleEl, optionsEl } =
|
|
846
|
+
const { titleEl, optionsEl } = CompleteYourProjectWidget.el;
|
|
996
847
|
|
|
997
|
-
|
|
998
|
-
|
|
848
|
+
CompleteYourProjectWidget.alignBlock(titleEl, $root);
|
|
849
|
+
CompleteYourProjectWidget.alignBlock(optionsEl, $root);
|
|
999
850
|
},
|
|
1000
851
|
|
|
1001
852
|
setInitialSummary($root) {
|
|
1002
|
-
const entries =
|
|
853
|
+
const entries = CompleteYourProjectWidget.getSelectedEntries($root);
|
|
1003
854
|
const firstEntry = entries[0];
|
|
1004
855
|
|
|
1005
856
|
if (!firstEntry || !firstEntry.product) {
|
|
@@ -1011,7 +862,7 @@ Wick.BloomreachWidget = {
|
|
|
1011
862
|
const priceExcVat = Wick.BloomreachWidget.getDisplayPriceExcVat(product);
|
|
1012
863
|
const wasPriceFormatted = Wick.BloomreachWidget.getWasPriceFormatted(product);
|
|
1013
864
|
|
|
1014
|
-
|
|
865
|
+
CompleteYourProjectWidget.updateSummary($root, {
|
|
1015
866
|
totalPrice: Wick.BloomreachWidget.getPriceFormattedValue(displayPrice) || '£0.00',
|
|
1016
867
|
totalWasPrice: wasPriceFormatted || null,
|
|
1017
868
|
totalPriceExclusiveVat: Wick.BloomreachWidget.getPriceFormattedValue(priceExcVat),
|
|
@@ -1025,18 +876,18 @@ Wick.BloomreachWidget = {
|
|
|
1025
876
|
min: 1,
|
|
1026
877
|
onChange(qty, inputEl) {
|
|
1027
878
|
const $input = $(inputEl);
|
|
1028
|
-
const $card = $input.closest(
|
|
1029
|
-
const $completeWidget = $input.closest(
|
|
1030
|
-
const $checkbox = $card.find(
|
|
879
|
+
const $card = $input.closest(CompleteYourProjectWidget.el.completeCard);
|
|
880
|
+
const $completeWidget = $input.closest(CompleteYourProjectWidget.el.completeWidget);
|
|
881
|
+
const $checkbox = $card.find(CompleteYourProjectWidget.el.cardCheckbox);
|
|
1031
882
|
const previousQuantity =
|
|
1032
|
-
$input.data(
|
|
883
|
+
$input.data(CompleteYourProjectWidget.el.previousQuantityData) || 1;
|
|
1033
884
|
|
|
1034
|
-
if (!$input.data(
|
|
1035
|
-
$input.data(
|
|
885
|
+
if (!$input.data(CompleteYourProjectWidget.el.quantityReadyData)) {
|
|
886
|
+
$input.data(CompleteYourProjectWidget.el.previousQuantityData, qty || 1);
|
|
1036
887
|
return;
|
|
1037
888
|
}
|
|
1038
889
|
|
|
1039
|
-
if (!
|
|
890
|
+
if (!CompleteYourProjectWidget.validateCardDropdown($card)) {
|
|
1040
891
|
$input.val(previousQuantity);
|
|
1041
892
|
|
|
1042
893
|
const $minus = $card.find('.count-btn--minus');
|
|
@@ -1049,22 +900,22 @@ Wick.BloomreachWidget = {
|
|
|
1049
900
|
}
|
|
1050
901
|
|
|
1051
902
|
$checkbox.prop('checked', true);
|
|
1052
|
-
$card.addClass(
|
|
903
|
+
$card.addClass(CompleteYourProjectWidget.el.selectedClass);
|
|
1053
904
|
|
|
1054
|
-
$input.data(
|
|
905
|
+
$input.data(CompleteYourProjectWidget.el.previousQuantityData, qty);
|
|
1055
906
|
$input.trigger('change');
|
|
1056
907
|
|
|
1057
908
|
if ($completeWidget.length) {
|
|
1058
|
-
|
|
909
|
+
CompleteYourProjectWidget.dispatchCalculateTotal($completeWidget);
|
|
1059
910
|
}
|
|
1060
911
|
},
|
|
1061
912
|
});
|
|
1062
913
|
|
|
1063
914
|
stepper.init($root);
|
|
1064
915
|
|
|
1065
|
-
$root.find(inputSel).data(
|
|
916
|
+
$root.find(inputSel).data(CompleteYourProjectWidget.el.quantityReadyData, true);
|
|
1066
917
|
|
|
1067
|
-
|
|
918
|
+
CompleteYourProjectWidget.steppers.push(stepper);
|
|
1068
919
|
},
|
|
1069
920
|
|
|
1070
921
|
initQuantityFields($root) {
|
|
@@ -1073,7 +924,7 @@ Wick.BloomreachWidget = {
|
|
|
1073
924
|
countStepperInitializedData,
|
|
1074
925
|
countStepperRoot,
|
|
1075
926
|
previousQuantityData,
|
|
1076
|
-
} =
|
|
927
|
+
} = CompleteYourProjectWidget.el;
|
|
1077
928
|
|
|
1078
929
|
$root.find(quantityInput).each(function () {
|
|
1079
930
|
const $input = $(this);
|
|
@@ -1091,99 +942,94 @@ Wick.BloomreachWidget = {
|
|
|
1091
942
|
$input.data(countStepperInitializedData, true);
|
|
1092
943
|
$input.data(previousQuantityData, parseInt($input.val(), 10) || 1);
|
|
1093
944
|
|
|
1094
|
-
|
|
945
|
+
CompleteYourProjectWidget.initQuantityField(
|
|
1095
946
|
$input.closest(countStepperRoot),
|
|
1096
947
|
`#${inputId}`
|
|
1097
948
|
);
|
|
1098
949
|
});
|
|
1099
950
|
},
|
|
1100
951
|
|
|
1101
|
-
formatPrice(value) {
|
|
1102
|
-
return new Intl.NumberFormat('en-GB', {
|
|
1103
|
-
style: 'currency',
|
|
1104
|
-
currency: 'GBP',
|
|
1105
|
-
minimumFractionDigits: 2,
|
|
1106
|
-
maximumFractionDigits: 2,
|
|
1107
|
-
}).format(value);
|
|
1108
|
-
},
|
|
1109
|
-
|
|
1110
952
|
resetWidgetState($root) {
|
|
1111
|
-
$root.find(
|
|
953
|
+
$root.find(CompleteYourProjectWidget.el.cardCheckbox).prop('checked', false);
|
|
1112
954
|
|
|
1113
955
|
$root
|
|
1114
|
-
.find(
|
|
1115
|
-
.removeClass(
|
|
956
|
+
.find(CompleteYourProjectWidget.el.completeCard)
|
|
957
|
+
.removeClass(CompleteYourProjectWidget.el.selectedClass);
|
|
1116
958
|
|
|
1117
959
|
$root
|
|
1118
|
-
.find(
|
|
960
|
+
.find(CompleteYourProjectWidget.el.quantityInput)
|
|
1119
961
|
.val(1)
|
|
1120
|
-
.data(
|
|
962
|
+
.data(CompleteYourProjectWidget.el.previousQuantityData, 1);
|
|
1121
963
|
},
|
|
1122
964
|
|
|
1123
965
|
resetBackForwardState() {
|
|
1124
|
-
$(
|
|
966
|
+
$(CompleteYourProjectWidget.el.completeWidget).each(function () {
|
|
1125
967
|
const $widget = $(this);
|
|
1126
968
|
|
|
1127
|
-
|
|
1128
|
-
|
|
969
|
+
CompleteYourProjectWidget.resetWidgetState($widget);
|
|
970
|
+
CompleteYourProjectWidget.bindCardSelection($widget);
|
|
1129
971
|
});
|
|
1130
972
|
},
|
|
1131
973
|
|
|
1132
974
|
initRenderedWidget($container) {
|
|
1133
|
-
if (!
|
|
1134
|
-
|
|
975
|
+
if (!CompleteYourProjectWidget.toast) {
|
|
976
|
+
CompleteYourProjectWidget.toast = createToast({
|
|
1135
977
|
template: notificationTemplate,
|
|
1136
978
|
});
|
|
1137
979
|
}
|
|
1138
|
-
if (!
|
|
1139
|
-
|
|
980
|
+
if (!CompleteYourProjectWidget.loadingButton) {
|
|
981
|
+
CompleteYourProjectWidget.loadingButton = createLoadingButton();
|
|
1140
982
|
}
|
|
1141
|
-
const $completeWidget = $container.find(
|
|
983
|
+
const $completeWidget = $container.find(CompleteYourProjectWidget.el.completeWidget);
|
|
1142
984
|
|
|
1143
985
|
if (!$completeWidget.length) {
|
|
1144
986
|
return;
|
|
1145
987
|
}
|
|
1146
988
|
|
|
1147
989
|
Wick.BloomreachWidget.drawRating($completeWidget);
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
990
|
+
CompleteYourProjectWidget.bindCardSelection($completeWidget);
|
|
991
|
+
CompleteYourProjectWidget.bindDropdowns();
|
|
992
|
+
CompleteYourProjectWidget.bindDropdownValidation($completeWidget);
|
|
993
|
+
CompleteYourProjectWidget.bindAddToCart($completeWidget);
|
|
994
|
+
CompleteYourProjectWidget.bindVatToggle();
|
|
995
|
+
CompleteYourProjectWidget.initQuantityFields($completeWidget);
|
|
1153
996
|
|
|
1154
997
|
$completeWidget
|
|
1155
|
-
.find(
|
|
1156
|
-
.removeClass(
|
|
998
|
+
.find(CompleteYourProjectWidget.el.dropdownRoot)
|
|
999
|
+
.removeClass(CompleteYourProjectWidget.el.dropdownErrorClass);
|
|
1157
1000
|
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1001
|
+
CompleteYourProjectWidget.alignCardBlocks($completeWidget);
|
|
1002
|
+
CompleteYourProjectWidget.updateCta($completeWidget);
|
|
1003
|
+
CompleteYourProjectWidget.setInitialSummary($completeWidget);
|
|
1004
|
+
Wick.BloomreachWidget.reapplyVatDisplay();
|
|
1161
1005
|
},
|
|
1162
1006
|
|
|
1163
1007
|
init(payloadData) {
|
|
1164
|
-
const $containers = $(
|
|
1008
|
+
const $containers = $(CompleteYourProjectWidget.el.widgetContainer);
|
|
1165
1009
|
|
|
1166
1010
|
if (!payloadData || !Wick.BloomreachWidget.hasRecommendations(payloadData)) {
|
|
1167
|
-
$containers.find(
|
|
1011
|
+
$containers.find(CompleteYourProjectWidget.el.completeWidget).hide();
|
|
1168
1012
|
return;
|
|
1169
1013
|
}
|
|
1170
1014
|
|
|
1171
|
-
|
|
1015
|
+
CompleteYourProjectWidget.renderWidgetFromPayload(payloadData);
|
|
1172
1016
|
},
|
|
1173
1017
|
};
|
|
1174
1018
|
|
|
1175
1019
|
$(document).ready(function () {
|
|
1176
1020
|
Wick.Responsive.onResize(function () {
|
|
1177
|
-
$(
|
|
1178
|
-
const $completeWidget = $(this).find(
|
|
1021
|
+
$(CompleteYourProjectWidget.el.widgetContainer).each(function () {
|
|
1022
|
+
const $completeWidget = $(this).find(CompleteYourProjectWidget.el.completeWidget);
|
|
1179
1023
|
|
|
1180
1024
|
if ($completeWidget.length) {
|
|
1181
|
-
|
|
1025
|
+
CompleteYourProjectWidget.alignCardBlocks($completeWidget);
|
|
1182
1026
|
}
|
|
1183
1027
|
});
|
|
1184
1028
|
});
|
|
1185
1029
|
});
|
|
1186
1030
|
|
|
1187
1031
|
window.addEventListener('pagehide', function () {
|
|
1188
|
-
|
|
1032
|
+
CompleteYourProjectWidget.resetBackForwardState();
|
|
1189
1033
|
});
|
|
1034
|
+
|
|
1035
|
+
export default CompleteYourProjectWidget;
|