wickes-css2 2.113.0-develop.7 → 2.113.0-develop.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/css/components/price-block-v2-critical.css +1 -1
- package/build/css/components/price-block-v2.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/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/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/js/account-members.min.js +1 -1
- package/build/js/add-project-list-id.min.js +1 -1
- package/build/js/address-book.min.js +1 -1
- package/build/js/basket.min.js +2 -2
- package/build/js/bundle.min.js +1 -1
- package/build/js/change-password.min.js +1 -1
- package/build/js/checkout.min.js +2 -2
- package/build/js/emulation.min.js +238 -190
- 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/package-bulk-add.min.js +1 -0
- package/build/js/page/plp-load-more.js +81 -66
- package/build/js/page/ripple/bulk-add.js +71 -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/validation.js +1 -1
- package/build/js/pdp.bundle.min.js +2 -2
- package/build/js/personal-details.min.js +1 -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 +2 -2
- package/build/js/quiz.min.js +1 -1
- package/build/js/track-my-order.min.js +1 -1
- package/package.json +1 -1
- package/src/badges-ripple.html +120 -0
- package/src/badges.html +9 -18
- package/src/components/fulfilment-accordions.hbs +1 -1
- package/src/components/image-accordion.hbs +18 -0
- package/src/components/kitchen/price.hbs +49 -29
- package/src/components/kitchen/strip-stickers.hbs +9 -3
- 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/price-badges.hbs +12 -10
- package/src/components/price-block-v2.hbs +274 -202
- package/src/components/product-main-info-v2.hbs +2 -0
- package/src/components/suite-includes.hbs +66 -0
- package/src/components/suite-product-card.hbs +47 -0
- 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_suite-includes-products.json +134 -0
- package/src/js/components/banner-placement-manager.js +25 -9
- package/src/js/components/general/image-accordion.js +54 -0
- 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 +219 -188
- package/src/js/emulation/plp-load-more.js +13 -4
- package/src/js/emulation/postcode-checker.js +11 -0
- package/src/js/page/plp-load-more.js +81 -66
- package/src/js/page/ripple/bulk-add.js +71 -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/validation.js +1 -1
- 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_product-details-banner.html +1 -3
- package/src/page_product-details-big-wins-disabled-delivery.html +1 -3
- package/src/page_product-details-big-wins-non-registered.html +1 -3
- package/src/page_product-details-big-wins-out-nearest.html +1 -3
- package/src/page_product-details-big-wins-unhappy.html +1 -3
- package/src/page_product-details-big-wins.html +1 -3
- package/src/page_product-details-billie.html +1 -3
- package/src/page_product-details-calculator.html +1 -3
- package/src/page_product-details-cashback-v2.html +1 -3
- package/src/page_product-details-clearpay.html +1 -3
- package/src/page_product-details-cnc-error-notification.html +1 -3
- package/src/page_product-details-cnc-success-notification-vat.html +1 -4
- package/src/page_product-details-cnc-success-notification.html +1 -3
- package/src/page_product-details-default-store.html +1 -3
- package/src/page_product-details-energy-efficiency.html +1 -3
- package/src/page_product-details-flooring-with-pr-placeholder.html +1 -3
- package/src/page_product-details-flooring.html +1 -3
- package/src/page_product-details-gallery-actual.html +1 -3
- package/src/page_product-details-mfe-calculator.html +1 -3
- package/src/page_product-details-mtm-doors.html +1 -3
- package/src/page_product-details-only-clearpay.html +1 -3
- package/src/page_product-details-paint-mixing.html +1 -3
- package/src/page_product-details-ripple-gallery.html +121 -0
- package/src/page_product-details-saved-pl.html +1 -3
- package/src/page_product-details-suite-includes-banners.html +139 -0
- package/src/page_product-details-suite-includes-billie.html +128 -0
- package/src/page_product-details-suite-includes-klarna.html +120 -0
- package/src/page_product-details-suite-includes-vat.html +126 -0
- package/src/page_product-details-suite-includes.html +122 -0
- package/src/page_product-details-tile-steps-klarna-widget-with-method-ids.html +1 -3
- package/src/page_product-details-tile-steps-logout.html +1 -3
- package/src/page_product-details-tile-steps-no-new-project-list.html +1 -3
- package/src/page_product-details-tile-steps-with-klarna.html +1 -3
- package/src/page_product-details-tile-steps.html +1 -3
- package/src/page_product-details-v2.html +1 -3
- package/src/page_product-details-vat.html +1 -3
- package/src/page_product-details-wisdom-mcfc-registered.html +1 -3
- package/src/page_product-details-wisdom-mcfc.html +1 -3
- package/src/page_product-details-wisdom-oos-registered.html +1 -3
- package/src/page_product-details-wisdom-oos.html +1 -3
- package/src/page_product-details-wisdom-registered.html +1 -3
- package/src/page_product-details-wisdom.html +1 -3
- package/src/page_product-details-with-favourite.html +1 -3
- package/src/page_product-details-with-global-search-v2.html +2 -3
- package/src/page_product-details-with-why-not-add-single.html +1 -0
- package/src/page_product-details_no-previous-default.html +1 -3
- package/src/scss/components/_date-selection-add-new-styles.scss +29 -0
- package/src/scss/components/_image-accordion.scss +54 -0
- package/src/scss/components/_kitchen-card.scss +1 -0
- package/src/scss/components/_package-card.scss +63 -0
- package/src/scss/components/_package-plp.scss +88 -0
- package/src/scss/components/_postcode-checker.scss +115 -0
- package/src/scss/components/_price-badges-critical.scss +10 -0
- package/src/scss/components/_price-badges.scss +10 -0
- package/src/scss/components/_price-block-critical.scss +1 -0
- package/src/scss/components/_price-block.scss +1 -0
- package/src/scss/components/_suite-includes.scss +141 -0
- package/src/scss/components/_suite-product-card.scss +98 -0
- package/src/scss/components/_thumb-gallery-critical.scss +34 -0
- package/src/scss/components/_thumb-gallery.scss +192 -0
- package/src/scss/components/kitchen/_price.scss +10 -0
- package/src/scss/components/kitchen/_strip-stickers.scss +46 -0
- package/src/scss/components/price-block-v2-critical.scss +58 -0
- package/src/scss/components/price-block-v2.scss +58 -0
- package/src/scss/pages/page_product-details-v2-critical.scss +216 -109
- package/src/scss/pages/page_product-details-v2.scss +168 -107
- package/src/scss/pages/page_product-details.scss +11 -0
- package/src/scss/pdp-main-critical.scss +1 -0
- package/src/scss/pdp-main.scss +6 -0
- package/src/scss/plp-main.scss +5 -0
- package/src/sitemap.html +13 -0
- package/build/css/components/kitchen/strip-stickers.css +0 -1
- package/build/css/components/strip-stickers.css +0 -1
- package/src/scss/components/kitchen/strip-stickers.scss +0 -18
- package/src/scss/components/strip-stickers.scss +0 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function r(o,a,i){function l(t,e){if(!a[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=a[t]={exports:{}},o[t][0].call(n.exports,function(e){return l(o[t][1][e]||e)},n,n.exports,r,o,a,i)}return a[t].exports}for(var s="function"==typeof require&&require,e=0;e<i.length;e++)l(i[e]);return l}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}n.__esModule=!0;var a=o(e("./handlebars/base")),i=r(e("./handlebars/safe-string")),l=r(e("./handlebars/exception")),s=o(e("./handlebars/utils")),c=o(e("./handlebars/runtime")),e=r(e("./handlebars/no-conflict"));function u(){var t=new a.HandlebarsEnvironment;return s.extend(t,a),t.SafeString=i.default,t.Exception=l.default,t.Utils=s,t.escapeExpression=s.escapeExpression,t.VM=c,t.template=function(e){return c.template(e,t)},t}var f=u();f.create=u,e.default(f),f.default=f,n.default=f,t.exports=n.default},{"./handlebars/base":2,"./handlebars/exception":5,"./handlebars/no-conflict":18,"./handlebars/runtime":19,"./handlebars/safe-string":20,"./handlebars/utils":21}],2:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0,n.HandlebarsEnvironment=f;var o=e("./utils"),a=r(e("./exception")),i=e("./helpers"),l=e("./decorators"),s=r(e("./logger")),c=e("./internal/proto-access"),u=(n.VERSION="4.7.8",n.COMPILER_REVISION=8,n.LAST_COMPATIBLE_COMPILER_REVISION=7,n.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"},"[object Object]");function f(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},i.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}f.prototype={constructor:f,logger:s.default,log:s.default.log,registerHelper:function(e,t){if(o.toString.call(e)===u){if(t)throw new a.default("Arg not supported with multiple helpers");o.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(o.toString.call(e)===u)o.extend(this.partials,e);else{if(void 0===t)throw new a.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if(o.toString.call(e)===u){if(t)throw new a.default("Arg not supported with multiple decorators");o.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){c.resetLoggedProperties()}};e=s.default.log;n.log=e,n.createFrame=o.createFrame,n.logger=s.default},{"./decorators":3,"./exception":5,"./helpers":6,"./internal/proto-access":15,"./logger":17,"./utils":21}],3:[function(e,t,n){"use strict";n.__esModule=!0,n.registerDefaultDecorators=function(e){r.default(e)};var n=e("./decorators/inline"),r=(e=n)&&e.__esModule?e:{default:e}},{"./decorators/inline":4}],4:[function(e,t,n){"use strict";n.__esModule=!0;var i=e("../utils");n.default=function(e){e.registerDecorator("inline",function(r,o,a,e){var t=r;return o.partials||(o.partials={},t=function(e,t){var n=a.partials,e=(a.partials=i.extend({},n,o.partials),r(e,t));return a.partials=n,e}),o.partials[e.args[0]]=e.fn,t})},t.exports=n.default},{"../utils":21}],5:[function(e,t,n){"use strict";n.__esModule=!0;var s=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function c(e,t){for(var t=t&&t.loc,n=void 0,r=void 0,o=void 0,a=void 0,i=(t&&(n=t.start.line,r=t.end.line,o=t.start.column,a=t.end.column,e+=" - "+n+":"+o),Error.prototype.constructor.call(this,e)),l=0;l<s.length;l++)this[s[l]]=i[s[l]];Error.captureStackTrace&&Error.captureStackTrace(this,c);try{t&&(this.lineNumber=n,this.endLineNumber=r,Object.defineProperty?(Object.defineProperty(this,"column",{value:o,enumerable:!0}),Object.defineProperty(this,"endColumn",{value:a,enumerable:!0})):(this.column=o,this.endColumn=a))}catch(e){}}c.prototype=new Error,n.default=c,t.exports=n.default},{}],6:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0,n.registerDefaultHelpers=function(e){o.default(e),a.default(e),i.default(e),l.default(e),s.default(e),c.default(e),u.default(e)},n.moveHelperToHooks=function(e,t,n){e.helpers[t]&&(e.hooks[t]=e.helpers[t],n||delete e.helpers[t])};var o=r(e("./helpers/block-helper-missing")),a=r(e("./helpers/each")),i=r(e("./helpers/helper-missing")),l=r(e("./helpers/if")),s=r(e("./helpers/log")),c=r(e("./helpers/lookup")),u=r(e("./helpers/with"))},{"./helpers/block-helper-missing":7,"./helpers/each":8,"./helpers/helper-missing":9,"./helpers/if":10,"./helpers/log":11,"./helpers/lookup":12,"./helpers/with":13}],7:[function(e,t,n){"use strict";n.__esModule=!0;var a=e("../utils");n.default=function(o){o.registerHelper("blockHelperMissing",function(e,t){var n=t.inverse,r=t.fn;return!0===e?r(this):!1===e||null==e?n(this):a.isArray(e)?0<e.length?(t.ids&&(t.ids=[t.name]),o.helpers.each(e,t)):n(this):(t.data&&t.ids&&((n=a.createFrame(t.data)).contextPath=a.appendContextPath(t.data.contextPath,t.name),t={data:n}),r(e,t))})},t.exports=n.default},{"../utils":21}],8:[function(e,t,n){"use strict";n.__esModule=!0;var h=e("../utils"),e=e("../exception"),m=(e=e)&&e.__esModule?e:{default:e};n.default=function(e){e.registerHelper("each",function(r,e){if(!e)throw new m.default("Must pass iterator to #each");var t,o=e.fn,n=e.inverse,a=0,i="",l=void 0,s=void 0;function c(e,t,n){l&&(l.key=e,l.index=t,l.first=0===t,l.last=!!n,s)&&(l.contextPath=s+e),i+=o(r[e],{data:l,blockParams:h.blockParams([r[e],e],[s+e,null])})}if(e.data&&e.ids&&(s=h.appendContextPath(e.data.contextPath,e.ids[0])+"."),h.isFunction(r)&&(r=r.call(this)),e.data&&(l=h.createFrame(e.data)),r&&"object"==typeof r)if(h.isArray(r))for(var u=r.length;a<u;a++)a in r&&c(a,a,a===r.length-1);else if("function"==typeof Symbol&&r[Symbol.iterator]){for(var f=[],p=r[Symbol.iterator](),d=p.next();!d.done;d=p.next())f.push(d.value);for(u=(r=f).length;a<u;a++)c(a,a,a===r.length-1)}else t=void 0,Object.keys(r).forEach(function(e){void 0!==t&&c(t,a-1),t=e,a++}),void 0!==t&&c(t,a-1,!0);return i=0===a?n(this):i})},t.exports=n.default},{"../exception":5,"../utils":21}],9:[function(e,t,n){"use strict";n.__esModule=!0;var e=e("../exception"),r=(e=e)&&e.__esModule?e:{default:e};n.default=function(e){e.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new r.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},t.exports=n.default},{"../exception":5}],10:[function(e,t,n){"use strict";n.__esModule=!0;var r=e("../utils"),e=e("../exception"),o=(e=e)&&e.__esModule?e:{default:e};n.default=function(n){n.registerHelper("if",function(e,t){if(2!=arguments.length)throw new o.default("#if requires exactly one argument");return r.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||r.isEmpty(e)?t.inverse(this):t.fn(this)}),n.registerHelper("unless",function(e,t){if(2!=arguments.length)throw new o.default("#unless requires exactly one argument");return n.helpers.if.call(this,e,{fn:t.inverse,inverse:t.fn,hash:t.hash})})},t.exports=n.default},{"../exception":5,"../utils":21}],11:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(o){o.registerHelper("log",function(){for(var e=[void 0],t=arguments[arguments.length-1],n=0;n<arguments.length-1;n++)e.push(arguments[n]);var r=1;null!=t.hash.level?r=t.hash.level:t.data&&null!=t.data.level&&(r=t.data.level),e[0]=r,o.log.apply(o,e)})},t.exports=n.default},{}],12:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(e){e.registerHelper("lookup",function(e,t,n){return e&&n.lookupProperty(e,t)})},t.exports=n.default},{}],13:[function(e,t,n){"use strict";n.__esModule=!0;var o=e("../utils"),e=e("../exception"),a=(e=e)&&e.__esModule?e:{default:e};n.default=function(e){e.registerHelper("with",function(e,t){if(2!=arguments.length)throw new a.default("#with requires exactly one argument");o.isFunction(e)&&(e=e.call(this));var n,r=t.fn;return o.isEmpty(e)?t.inverse(this):(n=t.data,t.data&&t.ids&&((n=o.createFrame(t.data)).contextPath=o.appendContextPath(t.data.contextPath,t.ids[0])),r(e,{data:n,blockParams:o.blockParams([e],[n&&n.contextPath])}))})},t.exports=n.default},{"../exception":5,"../utils":21}],14:[function(e,t,n){"use strict";n.__esModule=!0,n.createNewLookupObject=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.extend.apply(void 0,[Object.create(null)].concat(t))};var r=e("../utils")},{"../utils":21}],15:[function(e,t,n){"use strict";n.__esModule=!0,n.createProtoAccessControl=function(e){var t=Object.create(null),n=(t.constructor=!1,t.__defineGetter__=!1,t.__defineSetter__=!1,t.__lookupGetter__=!1,Object.create(null));return n.__proto__=!1,{properties:{whitelist:r.createNewLookupObject(n,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:r.createNewLookupObject(t,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}},n.resultIsAllowed=function(e,t,n){return i("function"==typeof e?t.methods:t.properties,n)},n.resetLoggedProperties=function(){Object.keys(a).forEach(function(e){delete a[e]})};var r=e("./create-new-lookup-object"),n=e("../logger"),o=(e=n)&&e.__esModule?e:{default:e},a=Object.create(null);function i(e,t){return void 0!==e.whitelist[t]?!0===e.whitelist[t]:void 0!==e.defaultValue?e.defaultValue:(!0!==a[e=t]&&(a[e]=!0,o.default.log("error",'Handlebars: Access has been denied to resolve the property "'+e+'" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details')),!1)}},{"../logger":17,"./create-new-lookup-object":14}],16:[function(e,t,n){"use strict";n.__esModule=!0,n.wrapHelper=function(t,n){if("function"!=typeof t)return t;return function(){var e=arguments[arguments.length-1];return arguments[arguments.length-1]=n(e),t.apply(this,arguments)}}},{}],17:[function(e,t,n){"use strict";n.__esModule=!0;var r=e("./utils"),o={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){var t;return e="string"==typeof e?0<=(t=r.indexOf(o.methodMap,e.toLowerCase()))?t:parseInt(e,10):e},log:function(e){if(e=o.lookupLevel(e),"undefined"!=typeof console&&o.lookupLevel(o.level)<=e){e=o.methodMap[e];console[e]||(e="log");for(var t=arguments.length,n=Array(1<t?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];console[e].apply(console,n)}}};n.default=o,t.exports=n.default},{"./utils":21}],18:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(e){"object"!=typeof globalThis&&(Object.prototype.__defineGetter__("__magic__",function(){return this}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__);var t=globalThis.Handlebars;e.noConflict=function(){return globalThis.Handlebars===e&&(globalThis.Handlebars=t),e}},t.exports=n.default},{}],19:[function(e,t,n){"use strict";n.__esModule=!0,n.checkRevision=function(e){var t=e&&e[0]||1,n=p.COMPILER_REVISION;if(!(t>=p.LAST_COMPATIBLE_COMPILER_REVISION&&t<=p.COMPILER_REVISION))throw t<p.LAST_COMPATIBLE_COMPILER_REVISION?(n=p.REVISION_CHANGES[n],t=p.REVISION_CHANGES[t],new f.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+n+") or downgrade your runtime to an older version ("+t+").")):new f.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")},n.template=function(s,c){if(!c)throw new f.default("No environment passed to template");if(!s||!s.main)throw new f.default("Unknown template object: "+typeof s);s.main.decorator=s.main_d,c.VM.checkRevision(s.compiler);var n=s.compiler&&7===s.compiler[0];var i={strict:function(e,t,n){if(e&&t in e)return i.lookupProperty(e,t);throw new f.default('"'+t+'" not defined in '+e,{loc:n})},lookupProperty:function(e,t){var n=e[t];return null==n||Object.prototype.hasOwnProperty.call(e,t)||h.resultIsAllowed(n,i.protoAccessControl,t)?n:void 0},lookup:function(e,t){for(var n=e.length,r=0;r<n;r++)if(null!=(e[r]&&i.lookupProperty(e[r],t)))return e[r][t]},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:u.escapeExpression,invokePartial:function(e,t,n){n.hash&&(t=u.extend({},t,n.hash),n.ids)&&(n.ids[0]=!0),e=c.VM.resolvePartial.call(this,e,t,n);var r=u.extend({},n,{hooks:this.hooks,protoAccessControl:this.protoAccessControl}),o=c.VM.invokePartial.call(this,e,t,r);if(null==o&&c.compile&&(n.partials[n.name]=c.compile(e,s.compilerOptions,c),o=n.partials[n.name](t,r)),null==o)throw new f.default("The partial "+n.name+" could not be compiled when running in runtime-only mode");if(n.indent){for(var a=o.split("\n"),i=0,l=a.length;i<l&&(a[i]||i+1!==l);i++)a[i]=n.indent+a[i];o=a.join("\n")}return o},fn:function(e){var t=s[e];return t.decorator=s[e+"_d"],t},programs:[],program:function(e,t,n,r,o){var a=this.programs[e],i=this.fn(e);return a=t||o||r||n?m(this,e,i,t,n,r,o):a||(this.programs[e]=m(this,e,i))},data:function(e,t){for(;e&&t--;)e=e._parent;return e},mergeIfNeeded:function(e,t){var n=e||t;return n=e&&t&&e!==t?u.extend({},t,e):n},nullContext:Object.seal({}),noop:c.VM.noop,compilerInfo:s.compiler};function l(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=t.data,r=(l._setup(t),!t.partial&&s.useData&&(n=function(e,t){t&&"root"in t||((t=t?p.createFrame(t):{}).root=e);return t}(e,n)),void 0),o=s.useBlockParams?[]:void 0;function a(e){return""+s.main(i,e,i.helpers,i.partials,n,o,r)}return s.useDepths&&(r=t.depths?e!=t.depths[0]?[e].concat(t.depths):t.depths:[e]),(a=v(s.main,a,i,t.depths||[],n,o))(e,t)}return l.isTop=!0,l._setup=function(e){var t,r,o;e.partial?(i.protoAccessControl=e.protoAccessControl,i.helpers=e.helpers,i.partials=e.partials,i.decorators=e.decorators,i.hooks=e.hooks):(t=u.extend({},c.helpers,e.helpers),r=t,o=i,Object.keys(r).forEach(function(e){var t,n=r[e];r[e]=(t=o.lookupProperty,d.wrapHelper(n,function(e){return u.extend({lookupProperty:t},e)}))}),i.helpers=t,s.usePartial&&(i.partials=i.mergeIfNeeded(e.partials,c.partials)),(s.usePartial||s.useDecorators)&&(i.decorators=u.extend({},c.decorators,e.decorators)),i.hooks={},i.protoAccessControl=h.createProtoAccessControl(e),t=e.allowCallsToHelperMissing||n,a.moveHelperToHooks(i,"helperMissing",t),a.moveHelperToHooks(i,"blockHelperMissing",t))},l._child=function(e,t,n,r){if(s.useBlockParams&&!n)throw new f.default("must pass block params");if(s.useDepths&&!r)throw new f.default("must pass parent depths");return m(i,e,s[e],t,0,n,r)},l},n.wrapProgram=m,n.resolvePartial=function(e,t,n){e?e.call||n.name||(n.name=e,e=n.partials[e]):e="@partial-block"===n.name?n.data["partial-block"]:n.partials[n.name];return e},n.invokePartial=function(e,t,r){var o=r.data&&r.data["partial-block"];r.partial=!0,r.ids&&(r.data.contextPath=r.ids[0]||r.data.contextPath);var a=void 0;r.fn&&r.fn!==i&&!function(){r.data=p.createFrame(r.data);var n=r.fn;a=r.data["partial-block"]=function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return t.data=p.createFrame(t.data),t.data["partial-block"]=o,n(e,t)},n.partials&&(r.partials=u.extend({},r.partials,n.partials))}();void 0===e&&a&&(e=a);{if(void 0===e)throw new f.default("The partial "+r.name+" could not be found");if(e instanceof Function)return e(t,r)}},n.noop=i;var u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e("./utils")),n=e("./exception"),f=(n=n)&&n.__esModule?n:{default:n},p=e("./base"),a=e("./helpers"),d=e("./internal/wrapHelper"),h=e("./internal/proto-access");function m(r,e,o,a,t,i,l){function n(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=l;return!l||e==l[0]||e===r.nullContext&&null===l[0]||(n=[e].concat(l)),o(r,e,r.helpers,r.partials,t.data||a,i&&[t.blockParams].concat(i),n)}return(n=v(o,n,r,l,a,i)).program=e,n.depth=l?l.length:0,n.blockParams=t||0,n}function i(){return""}function v(e,t,n,r,o,a){return e.decorator&&(t=e.decorator(t,e={},n,r&&r[0],o,a,r),u.extend(t,e)),t}},{"./base":2,"./exception":5,"./helpers":6,"./internal/proto-access":15,"./internal/wrapHelper":16,"./utils":21}],20:[function(e,t,n){"use strict";function r(e){this.string=e}n.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},n.default=r,t.exports=n.default},{}],21:[function(e,t,n){"use strict";n.__esModule=!0,n.extend=l,n.indexOf=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},n.escapeExpression=function(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}return a.test(e)?e.replace(o,i):e},n.isEmpty=function(e){return!e&&0!==e||!(!u(e)||0!==e.length)},n.createFrame=function(e){var t=l({},e);return t._parent=e,t},n.blockParams=function(e,t){return e.path=t,e},n.appendContextPath=function(e,t){return(e?e+".":"")+t};var r={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},o=/[&<>"'`=]/g,a=/[&<>"'`=]/;function i(e){return r[e]}function l(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}var s=Object.prototype.toString,c=(n.toString=s,function(e){return"function"==typeof e}),u=(c(/x/)&&(n.isFunction=c=function(e){return"function"==typeof e&&"[object Function]"===s.call(e)}),n.isFunction=c,Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===s.call(e)});n.isArray=u},{}],22:[function(e,t,n){t.exports=e("./dist/cjs/handlebars.runtime").default},{"./dist/cjs/handlebars.runtime":1}],23:[function(e,t,n){t.exports=e("handlebars/runtime").default},{"handlebars/runtime":22}],24:[function(e,t,n){e=e("hbsfy/runtime");t.exports=e.template({1:function(e,t,n,r,o){return"notification notification_general"},3:function(e,t,n,r,o){return' <span class="icon notification__icon">\n <span class="fas fa-check-circle"></span>\n </span>\n'},5:function(e,t,n,r,o){return' <span class="icon notification__icon">\n <span class="fas fa-exclamation-circle"></span>\n </span>\n'},7:function(e,t,n,r,o){return' <span class="icon notification__icon">\n <span class="fas fa-times-circle"></span>\n </span>\n'},9:function(e,t,n,r,o){return' <span class="icon notification__icon">\n <i class="fas fa-user-hard-hat"></i>\n </span>\n'},11:function(e,t,n,r,o){var a,i,l=null!=t?t:e.nullContext||{},s=e.hooks.helperMissing,c="function",e=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <div class="notification__wrap">\n <h4 class="title">'+(null!=(a=typeof(i=null!=(i=e(n,"title")||(null!=t?e(t,"title"):t))?i:s)==c?i.call(l,{name:"title",hash:{},data:o,loc:{start:{line:30,column:24},end:{line:30,column:35}}}):i)?a:"")+'</h4>\n <p class="description">'+(null!=(a=typeof(i=null!=(i=e(n,"text")||(null!=t?e(t,"text"):t))?i:s)==c?i.call(l,{name:"text",hash:{},data:o,loc:{start:{line:31,column:29},end:{line:31,column:39}}}):i)?a:"")+"</p>\n </div>\n"},13:function(e,t,n,r,o){var a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return" "+(null!=(a="function"==typeof(n=null!=(n=a(n,"text")||(null!=t?a(t,"text"):t))?n:e.hooks.helperMissing)?n.call(null!=t?t:e.nullContext||{},{name:"text",hash:{},data:o,loc:{start:{line:34,column:4},end:{line:34,column:14}}}):n)?a:"")+"\n"},15:function(e,t,n,r,o){var a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <div class="accordion-notifications">\n <input class="accordion-notifications-item-input" type="checkbox" name="accordion-notifications" id="accordion-notifications" />\n <div class="accordion-notifications-list">\n <div class="additional-notifications">\n'+(null!=(n=a(n,"each").call(null!=t?t:e.nullContext||{},null!=t?a(t,"additional-list"):t,{name:"each",hash:{},fn:e.program(16,o,0),inverse:e.noop,data:o,loc:{start:{line:42,column:8},end:{line:44,column:17}}}))?n:"")+' </div>\n </div>\n <label for="accordion-notifications" class="accordion-notifications-view-all">View all errors</label>\n </div>\n'},16:function(e,t,n,r,o){var a=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <p class="notification-item">'+(null!=(a="function"==typeof(n=null!=(n=a(n,"notification")||(null!=t?a(t,"notification"):t))?n:e.hooks.helperMissing)?n.call(null!=t?t:e.nullContext||{},{name:"notification",hash:{},data:o,loc:{start:{line:43,column:39},end:{line:43,column:57}}}):n)?a:"")+"</p>\n"},18:function(e,t,n,r,o){return' <b>\n <a class="notification_link" href="#">Learn more</a>\n </b>\n'},20:function(e,t,n,r,o){return' <i class="fas fa-angle-right"></i>\n'},22:function(e,t,n,r,o){var a,i=null!=t?t:e.nullContext||{},l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <span class="icon notification__close notification__close'+e.escapeExpression("function"==typeof(a=null!=(a=l(n,"mod")||(null!=t?l(t,"mod"):t))?a:e.hooks.helperMissing)?a.call(i,{name:"mod",hash:{},data:o,loc:{start:{line:60,column:61},end:{line:60,column:68}}}):a)+'">\n <span class="fa'+(null!=(a=l(n,"if").call(i,null!=t?l(t,"bold"):t,{name:"if",hash:{},fn:e.program(23,o,0),inverse:e.program(25,o,0),data:o,loc:{start:{line:61,column:21},end:{line:61,column:50}}}))?a:"")+' fa-times"></span>\n </span>\n'},23:function(e,t,n,r,o){return"s"},25:function(e,t,n,r,o){return"r"},27:function(e,t,n,r,o){var a,i=null!=t?t:e.nullContext||{},l=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return' <span class="icon notification__hide notification_accordion"\n data-toggle="collapse" data-target="#'+e.escapeExpression("function"==typeof(a=null!=(a=l(n,"target-id")||(null!=t?l(t,"target-id"):t))?a:e.hooks.helperMissing)?a.call(i,{name:"target-id",hash:{},data:o,loc:{start:{line:66,column:47},end:{line:66,column:60}}}):a)+'">\n <span class="fa'+(null!=(a=l(n,"if").call(i,null!=t?l(t,"bold"):t,{name:"if",hash:{},fn:e.program(23,o,0),inverse:e.program(25,o,0),data:o,loc:{start:{line:67,column:27},end:{line:67,column:56}}}))?a:"")+' fa-times"></span>\n </span>\n'},compiler:[8,">= 4.3.0"],main:function(e,t,n,r,o){var a,i,l=null!=t?t:e.nullContext||{},s=e.lookupProperty||function(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]};return'<div class="'+(null!=(a=s(n,"unless").call(l,null!=t?s(t,"app"):t,{name:"unless",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o,loc:{start:{line:1,column:12},end:{line:1,column:71}}}))?a:"")+" "+e.escapeExpression("function"==typeof(i=null!=(i=s(n,"classModifier")||(null!=t?s(t,"classModifier"):t))?i:e.hooks.helperMissing)?i.call(l,{name:"classModifier",hash:{},data:o,loc:{start:{line:1,column:72},end:{line:1,column:89}}}):i)+'">\n'+(null!=(a=s(n,"if").call(l,null!=t?s(t,"success"):t,{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o,loc:{start:{line:2,column:2},end:{line:6,column:9}}}))?a:"")+(null!=(a=s(n,"if").call(l,null!=t?s(t,"warning"):t,{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:7,column:2},end:{line:11,column:9}}}))?a:"")+(null!=(a=s(n,"if").call(l,null!=t?s(t,"info"):t,{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o,loc:{start:{line:12,column:2},end:{line:16,column:9}}}))?a:"")+(null!=(a=s(n,"if").call(l,null!=t?s(t,"error"):t,{name:"if",hash:{},fn:e.program(7,o,0),inverse:e.noop,data:o,loc:{start:{line:17,column:2},end:{line:21,column:9}}}))?a:"")+(null!=(a=s(n,"if").call(l,null!=t?s(t,"reminder"):t,{name:"if",hash:{},fn:e.program(9,o,0),inverse:e.noop,data:o,loc:{start:{line:22,column:2},end:{line:26,column:9}}}))?a:"")+"\n"+(null!=(a=s(n,"if").call(l,null!=t?s(t,"title"):t,{name:"if",hash:{},fn:e.program(11,o,0),inverse:e.program(13,o,0),data:o,loc:{start:{line:28,column:2},end:{line:35,column:9}}}))?a:"")+"\n"+(null!=(a=s(n,"if").call(l,null!=t?s(t,"additional-notifications"):t,{name:"if",hash:{},fn:e.program(15,o,0),inverse:e.noop,data:o,loc:{start:{line:37,column:2},end:{line:49,column:9}}}))?a:"")+"\n"+(null!=(a=s(n,"if").call(l,null!=t?s(t,"link"):t,{name:"if",hash:{},fn:e.program(18,o,0),inverse:e.noop,data:o,loc:{start:{line:51,column:2},end:{line:55,column:9}}}))?a:"")+(null!=(a=s(n,"if").call(l,null!=t?s(t,"angle-icon"):t,{name:"if",hash:{},fn:e.program(20,o,0),inverse:e.noop,data:o,loc:{start:{line:56,column:2},end:{line:58,column:9}}}))?a:"")+(null!=(a=s(n,"if").call(l,null!=t?s(t,"withCloseBtn"):t,{name:"if",hash:{},fn:e.program(22,o,0),inverse:e.noop,data:o,loc:{start:{line:59,column:2},end:{line:63,column:9}}}))?a:"")+(null!=(a=s(n,"if").call(l,null!=t?s(t,"withHideBtn"):t,{name:"if",hash:{},fn:e.program(27,o,0),inverse:e.noop,data:o,loc:{start:{line:64,column:2},end:{line:69,column:9}}}))?a:"")+"</div>\n"},useData:!0})},{"hbsfy/runtime":23}],25:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.createBulkAddHelper=function(e){var t=e.productCodeSelector,n=null,r=null;function o(){return $(t).val()}function a(e){e=e&&e.bulkAddToCartData;e&&n.show({type:e.messageType,text:e.messageText})}return{init:function(){n=n||(0,i.createToast)({template:s}),r=r||(0,l.createLoadingButton)()},getProductCode:o,addProductToCart:function(e){var t={entries:[{productCode:o(),quantity:u}]};return e&&(t.postCode=e),p(c,t)},showBulkAddResult:a,showBulkAddFailed:function(){return a(f)},get loadingButton(){return r}}},n.dispatchWindowEvent=p;var i=e("../utils/create-toast"),l=e("../utils/create-loading-button"),o=e("../utils/create-event"),s=e("../../../elements/notifications.hbs"),c="bulkAddToCart",u=1,f={bulkAddToCartData:{messageType:"error",messageText:"Product was not added to basket"}};function p(n,r){return new Promise(function(e,t){window.dispatchEvent((0,o.createEvent)(n,r,{resolve:e,reject:t}))})}},{"../../../elements/notifications.hbs":24,"../utils/create-event":27,"../utils/create-loading-button":28,"../utils/create-toast":29}],26:[function(e,t,n){"use strict";function k(e){return(k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=e("./bulk-add");function P(){P=function(){return i};var i={},e=Object.prototype,s=e.hasOwnProperty,c=Object.defineProperty||function(e,t,n){e[t]=n.value},t="function"==typeof Symbol?Symbol:{},r=t.iterator||"@@iterator",n=t.asyncIterator||"@@asyncIterator",o=t.toStringTag||"@@toStringTag";function a(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{a({},"")}catch(e){a=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var o,a,i,l,t=t&&t.prototype instanceof p?t:p,t=Object.create(t.prototype),r=new _(r||[]);return c(t,"_invoke",{value:(o=e,a=n,i=r,l="suspendedStart",function(e,t){if("executing"===l)throw new Error("Generator is already running");if("completed"===l){if("throw"===e)throw t;return{value:void 0,done:!0}}for(i.method=e,i.arg=t;;){var n=i.delegate;if(n){n=function e(t,n){var r=n.method,o=t.iterator[r];if(void 0===o)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=void 0,e(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),f;r=u(o,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,f;o=r.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=void 0),n.delegate=null,f):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}(n,i);if(n){if(n===f)continue;return n}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===l)throw l="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);l="executing";n=u(o,a,i);if("normal"===n.type){if(l=i.done?"completed":"suspendedYield",n.arg===f)continue;return{value:n.arg,done:i.done}}"throw"===n.type&&(l="completed",i.method="throw",i.arg=n.arg)}})}),t}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}i.wrap=l;var f={};function p(){}function d(){}function h(){}var t={},m=(a(t,r,function(){return this}),Object.getPrototypeOf),m=m&&m(m(x([]))),v=(m&&m!==e&&s.call(m,r)&&(t=m),h.prototype=p.prototype=Object.create(t));function g(e){["next","throw","return"].forEach(function(t){a(e,t,function(e){return this._invoke(t,e)})})}function y(i,l){var t;c(this,"_invoke",{value:function(n,r){function e(){return new l(function(e,t){!function t(e,n,r,o){var a,e=u(i[e],i,n);if("throw"!==e.type)return(n=(a=e.arg).value)&&"object"==k(n)&&s.call(n,"__await")?l.resolve(n.__await).then(function(e){t("next",e,r,o)},function(e){t("throw",e,r,o)}):l.resolve(n).then(function(e){a.value=e,r(a)},function(e){return t("throw",e,r,o)});o(e.arg)}(n,r,e,t)})}return t=t?t.then(e,e):e()}})}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function x(t){if(t||""===t){var n,e=t[r];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length))return n=-1,(e=function e(){for(;++n<t.length;)if(s.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e}).next=e}throw new TypeError(k(t)+" is not iterable")}return c(v,"constructor",{value:d.prototype=h,configurable:!0}),c(h,"constructor",{value:d,configurable:!0}),d.displayName=a(h,o,"GeneratorFunction"),i.isGeneratorFunction=function(e){e="function"==typeof e&&e.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},i.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,a(e,o,"GeneratorFunction")),e.prototype=Object.create(v),e},i.awrap=function(e){return{__await:e}},g(y.prototype),a(y.prototype,n,function(){return this}),i.AsyncIterator=y,i.async=function(e,t,n,r,o){void 0===o&&(o=Promise);var a=new y(l(e,t,n,r),o);return i.isGeneratorFunction(t)?a:a.next().then(function(e){return e.done?e.value:a.next()})},g(v),a(v,o,"Generator"),a(v,r,function(){return this}),a(v,"toString",function(){return"[object Generator]"}),i.keys=function(e){var t,n=Object(e),r=[];for(t in n)r.push(t);return r.reverse(),function e(){for(;r.length;){var t=r.pop();if(t in n)return e.value=t,e.done=!1,e}return e.done=!0,e}},i.values=x,_.prototype={constructor:_,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var t in this)"t"===t.charAt(0)&&s.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(n){if(this.done)throw n;var r=this;function e(e,t){return a.type="throw",a.arg=n,r.next=e,t&&(r.method="next",r.arg=void 0),!!t}for(var t=this.tryEntries.length-1;0<=t;--t){var o=this.tryEntries[t],a=o.completion;if("root"===o.tryLoc)return e("end");if(o.tryLoc<=this.prev){var i=s.call(o,"catchLoc"),l=s.call(o,"finallyLoc");if(i&&l){if(this.prev<o.catchLoc)return e(o.catchLoc,!0);if(this.prev<o.finallyLoc)return e(o.finallyLoc)}else if(i){if(this.prev<o.catchLoc)return e(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return e(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;0<=n;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&s.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}var a=(o=o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc?null:o)?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),w(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var n,r,o=this.tryEntries[t];if(o.tryLoc===e)return"throw"===(n=o.completion).type&&(r=n.arg,w(o)),r}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:x(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},i}function s(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,o)}var r,o,a,i=window.Wick||{};function l(e){return c.apply(this,arguments)}function c(){var l;return l=P().mark(function e(t){var n;return P().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.preventDefault(),n=$(r),a.loadingButton.isLoading(n))return e.abrupt("return");e.next=4;break;case 4:return a.loadingButton.start(n),e.prev=5,e.t0=a,e.next=9,a.addProductToCart();case 9:e.t1=e.sent,e.t0.showBulkAddResult.call(e.t0,e.t1),i.MiniBasketSliderFE.isMiniBasketLoaded=!1,e.next=17;break;case 14:e.prev=14,e.t2=e.catch(5),a.showBulkAddFailed();case 17:return e.prev=17,a.loadingButton.stop(n),e.finish(17);case 20:case"end":return e.stop()}},e,null,[[5,14,17,20]])}),(c=function(){var e=this,i=arguments;return new Promise(function(t,n){var r=l.apply(e,i);function o(e){s(r,t,n,o,a,"next",e)}function a(e){s(r,t,n,o,a,"throw",e)}o(void 0)})}).apply(this,arguments)}i.PackageBulkAdd=(r=".package-bulk-add",o=".pdp-price input[name=productCodePost]",a=(0,e.createBulkAddHelper)({productCodeSelector:o}),{init:function(){a.init(),$(r).on("click",l)}}),$(document).ready(i.PackageBulkAdd.init)},{"./bulk-add":25}],27:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.createEvent=function(e,t,n){return new CustomEvent(e,{detail:{payload:t,resolve:n.resolve,reject:n.reject}})}},{}],28:[function(e,t,n){"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}Object.defineProperty(n,"__esModule",{value:!0}),n.createLoadingButton=function(){var n=function(r){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?i(Object(o),!0).forEach(function(e){var t,n;t=r,n=o[e=e],(e=function(e){e=function(e,t){if("object"!==a(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}(e,"string");return"symbol"===a(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):i(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))})}return r}({text:".loading-button__text",loader:".loading-button__loader",loadingClass:"loading-button--loading"},0<arguments.length&&void 0!==arguments[0]?arguments[0]:{});function t(e,t){e.length&&(e.toggleClass(n.loadingClass,t),e.find(n.text).toggleClass("d-none",t),e.find(n.loader).toggleClass("d-none",!t))}return{setLoading:t,start:function(e){t(e,!0)},stop:function(e){t(e,!1)},isLoading:function(e){return e.hasClass(n.loadingClass)}}}},{}],29:[function(e,t,n){"use strict";function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}Object.defineProperty(n,"__esModule",{value:!0}),n.createToast=function(){var n=function(r){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?i(Object(o),!0).forEach(function(e){var t,n;t=r,n=o[e=e],(e=function(e){e=function(e,t){if("object"!==a(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}(e,"string");return"symbol"===a(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):i(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))})}return r}({containerClass:"toast-container",toastClass:"toast",closeSelector:".notification__close",backdropClass:"modal-backdrop--toast",duration:3e3,template:null,getData:function(e,t){return{text:t,classModifier:"".concat(n.toastClass," notification_").concat(e),success:"success"===e,warning:"warning"===e,error:"error"===e}}},0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}),r=null;function o(){r&&(window.clearTimeout(r),r=null),$(".".concat(n.containerClass)).remove(),$(".".concat(n.backdropClass)).removeClass(n.backdropClass),window.Wick&&Wick.Backdrop&&Wick.Backdrop.hide(),$(document).off("click.toast")}return{show:function(e){var t=void 0===(t=e.type)?"success":t,e=void 0===(e=e.text)?"":e;n.template&&(o(),t=n.template(n.getData(t,e)),window.Wick&&Wick.Backdrop&&(Wick.Backdrop.show(),$(".modal-backdrop").addClass(n.backdropClass)),$("body").append('<div class="'.concat(n.containerClass,'">').concat(t,"</div>")),$(".".concat(n.containerClass)).off("click.toastClose",n.closeSelector).on("click.toastClose",n.closeSelector,function(e){e.preventDefault(),o()}),$(document).off("click.toast").on("click.toast",".".concat(n.backdropClass),function(){o()}),r=window.setTimeout(o,n.duration))},hide:o}}},{}]},{},[26]);
|
|
@@ -1,77 +1,92 @@
|
|
|
1
|
-
import {createEvent} from
|
|
2
|
-
import {appendLoader, showLoader, hideLoader} from
|
|
1
|
+
import { createEvent } from './utils/create-event';
|
|
2
|
+
import { appendLoader, showLoader, hideLoader } from './utils/loader';
|
|
3
3
|
|
|
4
4
|
var Wick = window.Wick || {};
|
|
5
5
|
|
|
6
6
|
Wick.PLPLoadMore = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
7
|
+
PLP_LOAD_MORE_EVENT: 'loadMore',
|
|
8
|
+
HIDDEN_CLASS_NAME: 'd-none',
|
|
9
|
+
MAX_PRODUCTS_PER_PAGE: 32,
|
|
10
|
+
initialPageNumber: 0,
|
|
11
|
+
el: {
|
|
12
|
+
$loadMoreBtn: $('.btn-load-more'),
|
|
13
|
+
loader: '.loader-wrapper',
|
|
14
|
+
$sortOptions: $('#sort_form1'),
|
|
15
|
+
productsList: $('.package-plp__cards').length ? '.package-plp__cards' : '.products-list',
|
|
16
|
+
$packageContent: $('.package-plp__content'),
|
|
17
|
+
},
|
|
18
|
+
numberOfPagesPLP: $('#numberOfPagesPLP').val(),
|
|
19
|
+
loaderPayload: {
|
|
20
|
+
wrapper: 'body',
|
|
21
|
+
hidden: true,
|
|
22
|
+
modifier: 'basket-loader',
|
|
23
|
+
},
|
|
24
|
+
loadMore() {
|
|
25
|
+
showLoader(Wick.PLPLoadMore.el.loader);
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
const eventDetail = { resolve, reject };
|
|
29
|
+
const payload = {
|
|
30
|
+
currentPage: ++Wick.PLPLoadMore.initialPageNumber,
|
|
31
|
+
sort: Wick.PLPLoadMore.el.$sortOptions.val() || '',
|
|
32
|
+
isRippleData: Wick.PLPLoadMore.el.$packageContent.length,
|
|
33
|
+
};
|
|
34
|
+
const event = createEvent(Wick.PLPLoadMore.PLP_LOAD_MORE_EVENT, payload, eventDetail);
|
|
35
|
+
window.dispatchEvent(event);
|
|
36
|
+
})
|
|
37
|
+
.then((response) => {
|
|
38
|
+
if (!response.length) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
Wick.PLPLoadMore.showNewCards(response);
|
|
43
|
+
Wick.PLPLoadMore.toggleLoadMoreBtn();
|
|
44
|
+
Wick.VatToggle.reapplyDisplayClass();
|
|
45
|
+
})
|
|
46
|
+
.finally(() => {
|
|
47
|
+
hideLoader(Wick.PLPLoadMore.el.loader);
|
|
48
|
+
Wick.PLPLoadMore.el.$loadMoreBtn.blur();
|
|
49
|
+
Wick.BannerPlacementManager.checkProductsInColumn();
|
|
50
|
+
$(window).trigger('productBannerPositionChanged');
|
|
51
|
+
Wick.EnergyEfficiency.drawEnergyLabels();
|
|
52
|
+
Wick.PLP?.bindEvents();
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
showNewCards(newProductsHtml) {
|
|
56
|
+
const $newProductsHtml = $(newProductsHtml);
|
|
57
|
+
$(Wick.PLPLoadMore.el.productsList).append($newProductsHtml);
|
|
58
|
+
Wick.PackageCards.alignGridRows();
|
|
59
|
+
},
|
|
60
|
+
toggleLoadMoreBtn(checkCardsAmount = false) {
|
|
61
|
+
const isLastPage =
|
|
62
|
+
Wick.PLPLoadMore.initialPageNumber + 1 >= +Wick.PLPLoadMore.numberOfPagesPLP;
|
|
63
|
+
let shouldHide = isLastPage;
|
|
64
|
+
|
|
65
|
+
if (checkCardsAmount) {
|
|
66
|
+
const cardsCount = $(Wick.PLPLoadMore.el.productsList).children().length;
|
|
67
|
+
shouldHide = cardsCount <= Wick.PLPLoadMore.MAX_PRODUCTS_PER_PAGE && isLastPage;
|
|
37
68
|
}
|
|
38
69
|
|
|
39
|
-
Wick.PLPLoadMore.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Wick.PLPLoadMore.el.$loadMoreBtn.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
Wick.EnergyEfficiency.drawEnergyLabels();
|
|
49
|
-
Wick.PLP?.bindEvents();
|
|
50
|
-
})
|
|
51
|
-
},
|
|
52
|
-
showNewCards (newProductsHtml) {
|
|
53
|
-
const $newProductsHtml = $(newProductsHtml);
|
|
54
|
-
$(Wick.PLPLoadMore.el.productsList).append($newProductsHtml);
|
|
55
|
-
},
|
|
56
|
-
toggleLoadMoreBtn() {
|
|
57
|
-
if (Wick.PLPLoadMore.initialPageNumber + 1 >= +Wick.PLPLoadMore.numberOfPagesPLP) {
|
|
58
|
-
Wick.PLPLoadMore.el.$loadMoreBtn.addClass(Wick.PLPLoadMore.HIDDEN_CLASS_NAME);
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
init () {
|
|
62
|
-
if (!Wick.PLPLoadMore.el.$loadMoreBtn.length) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
appendLoader(Wick.PLPLoadMore.loaderPayload);
|
|
70
|
+
Wick.PLPLoadMore.el.$loadMoreBtn.toggleClass(
|
|
71
|
+
Wick.PLPLoadMore.HIDDEN_CLASS_NAME,
|
|
72
|
+
shouldHide
|
|
73
|
+
);
|
|
74
|
+
},
|
|
75
|
+
init() {
|
|
76
|
+
if (!Wick.PLPLoadMore.el.$loadMoreBtn.length) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
66
79
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
80
|
+
if (Wick.PLPLoadMore.el.$packageContent.length) {
|
|
81
|
+
Wick.PLPLoadMore.toggleLoadMoreBtn(true);
|
|
82
|
+
}
|
|
70
83
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
84
|
+
appendLoader(Wick.PLPLoadMore.loaderPayload);
|
|
85
|
+
|
|
86
|
+
Wick.PLPLoadMore.el.$loadMoreBtn.on('click', Wick.PLPLoadMore.loadMore);
|
|
87
|
+
},
|
|
88
|
+
};
|
|
75
89
|
|
|
76
|
-
|
|
90
|
+
$(document).ready(function () {
|
|
91
|
+
Wick.PLPLoadMore.init();
|
|
77
92
|
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { createToast } from '../utils/create-toast';
|
|
2
|
+
import { createLoadingButton } from '../utils/create-loading-button';
|
|
3
|
+
import { createEvent } from '../utils/create-event';
|
|
4
|
+
const notificationTemplate = require('../../../elements/notifications.hbs');
|
|
5
|
+
|
|
6
|
+
const BULK_ADD_EVENT = 'bulkAddToCart';
|
|
7
|
+
const QUANTITY = 1;
|
|
8
|
+
|
|
9
|
+
const bulkAddFailedResponse = {
|
|
10
|
+
bulkAddToCartData: {
|
|
11
|
+
messageType: 'error',
|
|
12
|
+
messageText: 'Product was not added to basket',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export function dispatchWindowEvent(eventName, payload) {
|
|
17
|
+
return new Promise(function (resolve, reject) {
|
|
18
|
+
window.dispatchEvent(createEvent(eventName, payload, { resolve, reject }));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function createBulkAddHelper({ productCodeSelector }) {
|
|
23
|
+
let toast = null;
|
|
24
|
+
let loadingButton = null;
|
|
25
|
+
|
|
26
|
+
function getProductCode() {
|
|
27
|
+
return $(productCodeSelector).val();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function addProductToCart(postcode) {
|
|
31
|
+
const item = { productCode: getProductCode(), quantity: QUANTITY };
|
|
32
|
+
|
|
33
|
+
const payload = {
|
|
34
|
+
entries: [item]
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
if (postcode) {
|
|
38
|
+
payload.postCode = postcode;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return dispatchWindowEvent(BULK_ADD_EVENT, payload);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function showBulkAddResult(response) {
|
|
45
|
+
const bulkData = response && response.bulkAddToCartData;
|
|
46
|
+
|
|
47
|
+
if (bulkData) {
|
|
48
|
+
toast.show({ type: bulkData.messageType, text: bulkData.messageText });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function init() {
|
|
53
|
+
if (!toast) {
|
|
54
|
+
toast = createToast({ template: notificationTemplate });
|
|
55
|
+
}
|
|
56
|
+
if (!loadingButton) {
|
|
57
|
+
loadingButton = createLoadingButton();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
init,
|
|
63
|
+
getProductCode,
|
|
64
|
+
addProductToCart,
|
|
65
|
+
showBulkAddResult,
|
|
66
|
+
showBulkAddFailed: () => showBulkAddResult(bulkAddFailedResponse),
|
|
67
|
+
get loadingButton() {
|
|
68
|
+
return loadingButton;
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createBulkAddHelper } from './bulk-add';
|
|
2
|
+
|
|
3
|
+
var Wick = window.Wick || {};
|
|
4
|
+
|
|
5
|
+
Wick.PackageBulkAdd = (function () {
|
|
6
|
+
const selectors = {
|
|
7
|
+
button: '.package-bulk-add',
|
|
8
|
+
productCodeInput: '.pdp-price input[name=productCodePost]',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const bulkAdd = createBulkAddHelper({ productCodeSelector: selectors.productCodeInput });
|
|
12
|
+
|
|
13
|
+
async function handleButtonClick(e) {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
|
|
16
|
+
const $buttons = $(selectors.button);
|
|
17
|
+
|
|
18
|
+
if (bulkAdd.loadingButton.isLoading($buttons)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
bulkAdd.loadingButton.start($buttons);
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
bulkAdd.showBulkAddResult(await bulkAdd.addProductToCart());
|
|
26
|
+
Wick.MiniBasketSliderFE.isMiniBasketLoaded = false;
|
|
27
|
+
} catch {
|
|
28
|
+
bulkAdd.showBulkAddFailed();
|
|
29
|
+
} finally {
|
|
30
|
+
bulkAdd.loadingButton.stop($buttons);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function init() {
|
|
35
|
+
bulkAdd.init();
|
|
36
|
+
|
|
37
|
+
$(selectors.button).on('click', handleButtonClick);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return { init };
|
|
41
|
+
})();
|
|
42
|
+
|
|
43
|
+
$(document).ready(Wick.PackageBulkAdd.init);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { isValidPostcodeField } from '../utils/validation';
|
|
2
|
+
import { createBulkAddHelper, dispatchWindowEvent } from './bulk-add';
|
|
3
|
+
|
|
4
|
+
var Wick = window.Wick || {};
|
|
5
|
+
|
|
6
|
+
Wick.PostcodeChecker = (function () {
|
|
7
|
+
const POSTCODE_CHECK_AVAILABILITY_EVENT = 'postcodeCheckAviability';
|
|
8
|
+
const QUANTITY = 1;
|
|
9
|
+
|
|
10
|
+
const selectors = {
|
|
11
|
+
root: '.postcode-checker',
|
|
12
|
+
input: '.postcode-checker__input',
|
|
13
|
+
button: '.postcode-checker__button',
|
|
14
|
+
productCodeInput: '.pdp-price input[name=productCodePost]',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const modifiers = {
|
|
18
|
+
hasError: 'postcode-checker--error',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const bulkAdd = createBulkAddHelper({ productCodeSelector: selectors.productCodeInput });
|
|
22
|
+
|
|
23
|
+
function checkPostcodeAvailability(postcode) {
|
|
24
|
+
const payload = { postcode, productCode: bulkAdd.getProductCode(), quantity: QUANTITY };
|
|
25
|
+
|
|
26
|
+
return dispatchWindowEvent(POSTCODE_CHECK_AVAILABILITY_EVENT, payload);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async function bulkAddForPostcode(postcode) {
|
|
30
|
+
try {
|
|
31
|
+
await checkPostcodeAvailability(postcode);
|
|
32
|
+
bulkAdd.showBulkAddResult(await bulkAdd.addProductToCart(postcode));
|
|
33
|
+
Wick.MiniBasketSliderFE.isMiniBasketLoaded = false;
|
|
34
|
+
} catch {
|
|
35
|
+
bulkAdd.showBulkAddFailed();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function isPostcodeValid($component, $postcodeInput) {
|
|
40
|
+
const isValid = isValidPostcodeField($postcodeInput.val());
|
|
41
|
+
$component.toggleClass(modifiers.hasError, !isValid);
|
|
42
|
+
console.log({ isValid, val: $postcodeInput.val() });
|
|
43
|
+
return isValid;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function handleSubmitClick($component, $postcodeInput, $submitButton) {
|
|
47
|
+
if (
|
|
48
|
+
bulkAdd.loadingButton.isLoading($submitButton) ||
|
|
49
|
+
!isPostcodeValid($component, $postcodeInput)
|
|
50
|
+
) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
bulkAdd.loadingButton.start($submitButton);
|
|
55
|
+
|
|
56
|
+
const postcode = $postcodeInput.val();
|
|
57
|
+
|
|
58
|
+
bulkAddForPostcode(postcode).finally(function () {
|
|
59
|
+
bulkAdd.loadingButton.stop($submitButton);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function init() {
|
|
64
|
+
bulkAdd.init();
|
|
65
|
+
|
|
66
|
+
$(selectors.root).each(function () {
|
|
67
|
+
const $component = $(this);
|
|
68
|
+
const $postcodeInput = $component.find(selectors.input);
|
|
69
|
+
const $submitButton = $component.find(selectors.button);
|
|
70
|
+
|
|
71
|
+
$component.removeClass(modifiers.hasError);
|
|
72
|
+
|
|
73
|
+
$submitButton.on('click', function (e) {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
handleSubmitClick($component, $postcodeInput, $submitButton);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return { init };
|
|
81
|
+
})();
|
|
82
|
+
|
|
83
|
+
$(document).ready(Wick.PostcodeChecker.init);
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
var Wick = window.Wick || {};
|
|
2
|
+
|
|
3
|
+
Wick.ThumbGallery = (function () {
|
|
4
|
+
const BASE_URL = 'https://media.wickes.co.uk/image/upload/';
|
|
5
|
+
const productName = window.pdpProduct && window.pdpProduct.name ? window.pdpProduct.name : '';
|
|
6
|
+
|
|
7
|
+
const IMG_BREAKPOINTS = [
|
|
8
|
+
{ media: '(max-width: 576px)', w: 576, h: 324 },
|
|
9
|
+
{ media: '(max-width: 768px)', w: 510, h: 287 },
|
|
10
|
+
{ media: '(max-width: 992px)', w: 310, h: 174 },
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
const MAIN_DEFAULT = { w: 710, h: 399 };
|
|
14
|
+
const THUMB = { w: 100, h: 56 };
|
|
15
|
+
|
|
16
|
+
function buildCloudinaryUrl(publicId, w, h) {
|
|
17
|
+
const transforms = `b_rgb:FFFFFF,c_pad,dpr_1.0,f_jpg,h_${h},q_auto:good,w_${w}`;
|
|
18
|
+
return `${BASE_URL}${transforms}/c_pad,h_${h},w_${w}/v1/${publicId}?pgw=1`;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function parseIdentifiers(hybrisString) {
|
|
22
|
+
return hybrisString
|
|
23
|
+
.trim()
|
|
24
|
+
.slice(1, hybrisString.length - 1)
|
|
25
|
+
.split(',')
|
|
26
|
+
.map((s) => s.trim())
|
|
27
|
+
.filter(Boolean);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function generateMainSlideHtml(publicId) {
|
|
31
|
+
const sources = IMG_BREAKPOINTS.map(
|
|
32
|
+
(bp) =>
|
|
33
|
+
`<source srcset="${buildCloudinaryUrl(publicId, bp.w, bp.h)}" media="${bp.media}">`
|
|
34
|
+
).join('\n ');
|
|
35
|
+
|
|
36
|
+
return `<div class="thumb-gallery__slide-wrapper swiper-slide">
|
|
37
|
+
<picture>
|
|
38
|
+
${sources}
|
|
39
|
+
<img class="swiper-slide-main" src="${buildCloudinaryUrl(publicId, MAIN_DEFAULT.w, MAIN_DEFAULT.h)}" alt="${productName}">
|
|
40
|
+
</picture>
|
|
41
|
+
</div>`;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function generateThumbSlideHtml(publicId) {
|
|
45
|
+
return `<div class="thumb-gallery__slide-wrapper swiper-slide">
|
|
46
|
+
<img class="swiper-slide-thumbs" src="${buildCloudinaryUrl(publicId, THUMB.w, THUMB.h)}" alt="${productName}">
|
|
47
|
+
</div>`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const SELECTORS = {
|
|
51
|
+
galleryCarousel: '.thumb-gallery',
|
|
52
|
+
swiperContainerMain: '.swiper-container-main',
|
|
53
|
+
swiperContainerThumbs: '.swiper-container-thumbs',
|
|
54
|
+
swiperMainWrapper: '.swiper-container-main .swiper-wrapper',
|
|
55
|
+
swiperThumbsWrapper: '.swiper-container-thumbs .swiper-wrapper',
|
|
56
|
+
nextBtn: '.thumb-gallery__next-btn',
|
|
57
|
+
prevBtn: '.thumb-gallery__prev-btn',
|
|
58
|
+
thumbNextBtn: '.swiper-container-thumbs__next-btn',
|
|
59
|
+
thumbPrevBtn: '.swiper-container-thumbs__prev-btn',
|
|
60
|
+
swiperSlide: '.swiper-slide',
|
|
61
|
+
activeThumbClass: 'swiper-true-active',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const THUMBS_SWIPER_CONFIG = {
|
|
65
|
+
spaceBetween: 8,
|
|
66
|
+
slidesPerView: 8,
|
|
67
|
+
watchSlidesVisibility: true,
|
|
68
|
+
watchSlidesProgress: true,
|
|
69
|
+
watchOverflow: true,
|
|
70
|
+
observer: true,
|
|
71
|
+
observeParents: true,
|
|
72
|
+
simulateTouch: false,
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const THUMBS_BREAKPOINTS = {
|
|
76
|
+
991: { slidesPerView: 5 },
|
|
77
|
+
767: { allowTouchMove: true, slidesPerView: 5 },
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const MAIN_SWIPER_CONFIG = {
|
|
81
|
+
speed: 400,
|
|
82
|
+
slidesPerView: 1,
|
|
83
|
+
loop: true,
|
|
84
|
+
observer: true,
|
|
85
|
+
observeParents: true,
|
|
86
|
+
simulateTouch: false,
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
function handleThumbClick(swiper) {
|
|
90
|
+
return function () {
|
|
91
|
+
const clickedIndex = $(this).index();
|
|
92
|
+
swiper.slideToLoop(clickedIndex);
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function updateActiveThumbnail(swiper, thumbsSwiper) {
|
|
97
|
+
const activeIndex = swiper.realIndex;
|
|
98
|
+
thumbsSwiper.slides.removeClass(SELECTORS.activeThumbClass);
|
|
99
|
+
thumbsSwiper.slides.eq(activeIndex).addClass(SELECTORS.activeThumbClass);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function getThumbsConfig($thumbNextBtn, $thumbPrevBtn) {
|
|
103
|
+
return {
|
|
104
|
+
...THUMBS_SWIPER_CONFIG,
|
|
105
|
+
navigation: {
|
|
106
|
+
nextEl: $thumbNextBtn[0],
|
|
107
|
+
prevEl: $thumbPrevBtn[0],
|
|
108
|
+
},
|
|
109
|
+
breakpoints: { ...THUMBS_BREAKPOINTS },
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function getMainSwiperConfig($nextBtn, $prevBtn, thumbsSwiper, onSlideChange) {
|
|
114
|
+
return {
|
|
115
|
+
...MAIN_SWIPER_CONFIG,
|
|
116
|
+
navigation: {
|
|
117
|
+
nextEl: $nextBtn[0],
|
|
118
|
+
prevEl: $prevBtn[0],
|
|
119
|
+
},
|
|
120
|
+
thumbs: { swiper: thumbsSwiper },
|
|
121
|
+
on: { slideChange: onSlideChange },
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function initializeCarousel($slider, ids) {
|
|
126
|
+
$slider.find(SELECTORS.swiperMainWrapper).html(ids.map(generateMainSlideHtml).join('\n'));
|
|
127
|
+
$slider
|
|
128
|
+
.find(SELECTORS.swiperThumbsWrapper)
|
|
129
|
+
.html(ids.map(generateThumbSlideHtml).join('\n'));
|
|
130
|
+
|
|
131
|
+
const $container = $slider.find(SELECTORS.swiperContainerMain);
|
|
132
|
+
const $nextBtn = $slider.find(SELECTORS.nextBtn);
|
|
133
|
+
const $prevBtn = $slider.find(SELECTORS.prevBtn);
|
|
134
|
+
|
|
135
|
+
const $thumbContainer = $slider.find(SELECTORS.swiperContainerThumbs);
|
|
136
|
+
const $thumbNextBtn = $slider.find(SELECTORS.thumbNextBtn);
|
|
137
|
+
const $thumbPrevBtn = $slider.find(SELECTORS.thumbPrevBtn);
|
|
138
|
+
|
|
139
|
+
const thumbsSwiper = new Swiper(
|
|
140
|
+
$thumbContainer[0],
|
|
141
|
+
getThumbsConfig($thumbNextBtn, $thumbPrevBtn)
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
const swiper = new Swiper(
|
|
145
|
+
$container[0],
|
|
146
|
+
getMainSwiperConfig($nextBtn, $prevBtn, thumbsSwiper, () => {
|
|
147
|
+
updateActiveThumbnail(swiper, thumbsSwiper);
|
|
148
|
+
})
|
|
149
|
+
);
|
|
150
|
+
|
|
151
|
+
$thumbContainer.on('click', SELECTORS.swiperSlide, handleThumbClick(swiper));
|
|
152
|
+
updateActiveThumbnail(swiper, thumbsSwiper);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function init(hybrisString) {
|
|
156
|
+
const ids = parseIdentifiers(hybrisString);
|
|
157
|
+
|
|
158
|
+
if (ids.length < 2) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
$(SELECTORS.galleryCarousel).each(function (_, slider) {
|
|
163
|
+
initializeCarousel($(slider), ids);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return { init };
|
|
168
|
+
})();
|
|
@@ -148,7 +148,7 @@ export function validatePostcode(element, ifConvert) {
|
|
|
148
148
|
export function isValidPostcodeField(value) {
|
|
149
149
|
const transformedValue = value.toUpperCase().replaceAll(' ', '');
|
|
150
150
|
const regExp = new RegExp(
|
|
151
|
-
'^(
|
|
151
|
+
'^((GIR0AA)|((([A-PR-UWYZ][0-9][0-9]?)|([A-PR-UWYZ][A-HK-Y][0-9][0-9]?)|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))[0-9][A-BD-HJLNP-UW-Z]{2}))$'
|
|
152
152
|
);
|
|
153
153
|
return transformedValue.replace(/\s+/g, '').length > 4 && regExp.test(transformedValue);
|
|
154
154
|
}
|