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.
Files changed (150) hide show
  1. package/build/css/components/price-block-v2-critical.css +1 -1
  2. package/build/css/components/price-block-v2.css +1 -1
  3. package/build/css/kitchen-plp-main.css +1 -1
  4. package/build/css/main.css +1 -1
  5. package/build/css/my-account-main-v2.css +1 -1
  6. package/build/css/my-account-main.css +1 -1
  7. package/build/css/pages/page_product-details-v2-critical.css +1 -1
  8. package/build/css/pages/page_product-details-v2.css +1 -1
  9. package/build/css/pages/page_product-details.css +1 -1
  10. package/build/css/pdp-main-before-combine.css +1 -1
  11. package/build/css/pdp-main-critical.css +1 -1
  12. package/build/css/pdp-main-non-critical.css +1 -1
  13. package/build/css/pdp-main.css +1 -1
  14. package/build/css/plp-main.css +1 -1
  15. package/build/js/account-members.min.js +1 -1
  16. package/build/js/add-project-list-id.min.js +1 -1
  17. package/build/js/address-book.min.js +1 -1
  18. package/build/js/basket.min.js +2 -2
  19. package/build/js/bundle.min.js +1 -1
  20. package/build/js/change-password.min.js +1 -1
  21. package/build/js/checkout.min.js +2 -2
  22. package/build/js/emulation.min.js +238 -190
  23. package/build/js/general.bundle.min.js +1 -1
  24. package/build/js/gift-cards.min.js +1 -1
  25. package/build/js/kitchen/kitchen-plp.min.js +1 -1
  26. package/build/js/merged-checkout.min.js +2 -2
  27. package/build/js/package-bulk-add.min.js +1 -0
  28. package/build/js/page/plp-load-more.js +81 -66
  29. package/build/js/page/ripple/bulk-add.js +71 -0
  30. package/build/js/page/ripple/package-bulk-add.js +43 -0
  31. package/build/js/page/ripple/postcode-checker.js +83 -0
  32. package/build/js/page/ripple/thumb-gallery.js +168 -0
  33. package/build/js/page/utils/validation.js +1 -1
  34. package/build/js/pdp.bundle.min.js +2 -2
  35. package/build/js/personal-details.min.js +1 -1
  36. package/build/js/plp.bundle.min.js +1 -1
  37. package/build/js/postcode-checker.min.js +1 -0
  38. package/build/js/project-list.min.js +2 -2
  39. package/build/js/quiz.min.js +1 -1
  40. package/build/js/track-my-order.min.js +1 -1
  41. package/package.json +1 -1
  42. package/src/badges-ripple.html +120 -0
  43. package/src/badges.html +9 -18
  44. package/src/components/fulfilment-accordions.hbs +1 -1
  45. package/src/components/image-accordion.hbs +18 -0
  46. package/src/components/kitchen/price.hbs +49 -29
  47. package/src/components/kitchen/strip-stickers.hbs +9 -3
  48. package/src/components/package-card.hbs +30 -0
  49. package/src/components/pdp-price-actions.hbs +17 -0
  50. package/src/components/postcode-checker.hbs +24 -0
  51. package/src/components/price-badges.hbs +12 -10
  52. package/src/components/price-block-v2.hbs +274 -202
  53. package/src/components/product-main-info-v2.hbs +2 -0
  54. package/src/components/suite-includes.hbs +66 -0
  55. package/src/components/suite-product-card.hbs +47 -0
  56. package/src/components/thumb-gallery.hbs +23 -0
  57. package/src/data/data_badges.json +143 -0
  58. package/src/data/data_bathroom-plp.json +814 -0
  59. package/src/data/data_suite-includes-products.json +134 -0
  60. package/src/js/components/banner-placement-manager.js +25 -9
  61. package/src/js/components/general/image-accordion.js +54 -0
  62. package/src/js/components/package-card.js +69 -0
  63. package/src/js/components/store-locator-cards.js +76 -0
  64. package/src/js/emulation/banner-placement-manager.js +219 -188
  65. package/src/js/emulation/plp-load-more.js +13 -4
  66. package/src/js/emulation/postcode-checker.js +11 -0
  67. package/src/js/page/plp-load-more.js +81 -66
  68. package/src/js/page/ripple/bulk-add.js +71 -0
  69. package/src/js/page/ripple/package-bulk-add.js +43 -0
  70. package/src/js/page/ripple/postcode-checker.js +83 -0
  71. package/src/js/page/ripple/thumb-gallery.js +168 -0
  72. package/src/js/page/utils/validation.js +1 -1
  73. package/src/page_bathroom-plp-vat.html +81 -0
  74. package/src/page_bathroom-plp-without-load-more.html +83 -0
  75. package/src/page_bathroom-plp.html +98 -0
  76. package/src/page_product-details-banner.html +1 -3
  77. package/src/page_product-details-big-wins-disabled-delivery.html +1 -3
  78. package/src/page_product-details-big-wins-non-registered.html +1 -3
  79. package/src/page_product-details-big-wins-out-nearest.html +1 -3
  80. package/src/page_product-details-big-wins-unhappy.html +1 -3
  81. package/src/page_product-details-big-wins.html +1 -3
  82. package/src/page_product-details-billie.html +1 -3
  83. package/src/page_product-details-calculator.html +1 -3
  84. package/src/page_product-details-cashback-v2.html +1 -3
  85. package/src/page_product-details-clearpay.html +1 -3
  86. package/src/page_product-details-cnc-error-notification.html +1 -3
  87. package/src/page_product-details-cnc-success-notification-vat.html +1 -4
  88. package/src/page_product-details-cnc-success-notification.html +1 -3
  89. package/src/page_product-details-default-store.html +1 -3
  90. package/src/page_product-details-energy-efficiency.html +1 -3
  91. package/src/page_product-details-flooring-with-pr-placeholder.html +1 -3
  92. package/src/page_product-details-flooring.html +1 -3
  93. package/src/page_product-details-gallery-actual.html +1 -3
  94. package/src/page_product-details-mfe-calculator.html +1 -3
  95. package/src/page_product-details-mtm-doors.html +1 -3
  96. package/src/page_product-details-only-clearpay.html +1 -3
  97. package/src/page_product-details-paint-mixing.html +1 -3
  98. package/src/page_product-details-ripple-gallery.html +121 -0
  99. package/src/page_product-details-saved-pl.html +1 -3
  100. package/src/page_product-details-suite-includes-banners.html +139 -0
  101. package/src/page_product-details-suite-includes-billie.html +128 -0
  102. package/src/page_product-details-suite-includes-klarna.html +120 -0
  103. package/src/page_product-details-suite-includes-vat.html +126 -0
  104. package/src/page_product-details-suite-includes.html +122 -0
  105. package/src/page_product-details-tile-steps-klarna-widget-with-method-ids.html +1 -3
  106. package/src/page_product-details-tile-steps-logout.html +1 -3
  107. package/src/page_product-details-tile-steps-no-new-project-list.html +1 -3
  108. package/src/page_product-details-tile-steps-with-klarna.html +1 -3
  109. package/src/page_product-details-tile-steps.html +1 -3
  110. package/src/page_product-details-v2.html +1 -3
  111. package/src/page_product-details-vat.html +1 -3
  112. package/src/page_product-details-wisdom-mcfc-registered.html +1 -3
  113. package/src/page_product-details-wisdom-mcfc.html +1 -3
  114. package/src/page_product-details-wisdom-oos-registered.html +1 -3
  115. package/src/page_product-details-wisdom-oos.html +1 -3
  116. package/src/page_product-details-wisdom-registered.html +1 -3
  117. package/src/page_product-details-wisdom.html +1 -3
  118. package/src/page_product-details-with-favourite.html +1 -3
  119. package/src/page_product-details-with-global-search-v2.html +2 -3
  120. package/src/page_product-details-with-why-not-add-single.html +1 -0
  121. package/src/page_product-details_no-previous-default.html +1 -3
  122. package/src/scss/components/_date-selection-add-new-styles.scss +29 -0
  123. package/src/scss/components/_image-accordion.scss +54 -0
  124. package/src/scss/components/_kitchen-card.scss +1 -0
  125. package/src/scss/components/_package-card.scss +63 -0
  126. package/src/scss/components/_package-plp.scss +88 -0
  127. package/src/scss/components/_postcode-checker.scss +115 -0
  128. package/src/scss/components/_price-badges-critical.scss +10 -0
  129. package/src/scss/components/_price-badges.scss +10 -0
  130. package/src/scss/components/_price-block-critical.scss +1 -0
  131. package/src/scss/components/_price-block.scss +1 -0
  132. package/src/scss/components/_suite-includes.scss +141 -0
  133. package/src/scss/components/_suite-product-card.scss +98 -0
  134. package/src/scss/components/_thumb-gallery-critical.scss +34 -0
  135. package/src/scss/components/_thumb-gallery.scss +192 -0
  136. package/src/scss/components/kitchen/_price.scss +10 -0
  137. package/src/scss/components/kitchen/_strip-stickers.scss +46 -0
  138. package/src/scss/components/price-block-v2-critical.scss +58 -0
  139. package/src/scss/components/price-block-v2.scss +58 -0
  140. package/src/scss/pages/page_product-details-v2-critical.scss +216 -109
  141. package/src/scss/pages/page_product-details-v2.scss +168 -107
  142. package/src/scss/pages/page_product-details.scss +11 -0
  143. package/src/scss/pdp-main-critical.scss +1 -0
  144. package/src/scss/pdp-main.scss +6 -0
  145. package/src/scss/plp-main.scss +5 -0
  146. package/src/sitemap.html +13 -0
  147. package/build/css/components/kitchen/strip-stickers.css +0 -1
  148. package/build/css/components/strip-stickers.css +0 -1
  149. package/src/scss/components/kitchen/strip-stickers.scss +0 -18
  150. 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={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},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 "./utils/create-event";
2
- import {appendLoader, showLoader, hideLoader} from "./utils/loader";
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
- PLP_LOAD_MORE_EVENT: 'loadMore',
8
- HIDDEN_CLASS_NAME: 'd-none',
9
- initialPageNumber: 0,
10
- el: {
11
- $loadMoreBtn: $('.btn-load-more'),
12
- loader: '.loader-wrapper',
13
- $sortOptions: $('#sort_form1'),
14
- productsList: '.products-list'
15
- },
16
- numberOfPagesPLP: $('#numberOfPagesPLP').val(),
17
- loaderPayload: {
18
- wrapper: 'body',
19
- hidden: true,
20
- modifier: 'basket-loader',
21
- },
22
- loadMore () {
23
- showLoader(Wick.PLPLoadMore.el.loader);
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
- return new Promise((resolve, reject) => {
26
- const eventDetail = {resolve, reject};
27
- const payload = {
28
- currentPage: ++Wick.PLPLoadMore.initialPageNumber,
29
- sort: Wick.PLPLoadMore.el.$sortOptions.val() || '',
30
- };
31
- const event = createEvent(Wick.PLPLoadMore.PLP_LOAD_MORE_EVENT, payload, eventDetail);
32
- window.dispatchEvent(event);
33
- })
34
- .then((response) => {
35
- if (!response.length) {
36
- return;
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.showNewCards(response);
40
- Wick.PLPLoadMore.toggleLoadMoreBtn();
41
- Wick.VatToggle.reapplyDisplayClass();
42
- })
43
- .finally(() => {
44
- hideLoader(Wick.PLPLoadMore.el.loader);
45
- Wick.PLPLoadMore.el.$loadMoreBtn.blur();
46
- Wick.BannerPlacementManager.checkProductsInColumn();
47
- $(window).trigger('productBannerPositionChanged');
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
- Wick.PLPLoadMore.el.$loadMoreBtn.on('click', Wick.PLPLoadMore.loadMore);
68
- }
69
- }
80
+ if (Wick.PLPLoadMore.el.$packageContent.length) {
81
+ Wick.PLPLoadMore.toggleLoadMoreBtn(true);
82
+ }
70
83
 
71
- $(document).ready(function () {
72
- if (!Wick.PLPLoadMore.el.$loadMoreBtn.length) {
73
- return;
74
- }
84
+ appendLoader(Wick.PLPLoadMore.loaderPayload);
85
+
86
+ Wick.PLPLoadMore.el.$loadMoreBtn.on('click', Wick.PLPLoadMore.loadMore);
87
+ },
88
+ };
75
89
 
76
- Wick.PLPLoadMore.init();
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
- '^(GIR 0AA)|((([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})$'
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
  }