wickes-css2 2.94.0 → 2.95.0

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 (116) hide show
  1. package/Readme.md +3 -2
  2. package/build/css/main.css +1 -1
  3. package/build/css/my-account-main-v2.css +1 -1
  4. package/build/css/pages/checkout-new.css +1 -1
  5. package/build/css/pages/checkout.css +1 -1
  6. package/build/css/pages/my-account-v2.css +1 -1
  7. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  8. package/build/css/pages/page_my-orders.css +1 -0
  9. package/build/css/pages/page_products-list-combined.css +1 -1
  10. package/build/css/pages/page_products-list.css +1 -1
  11. package/build/css/pages/page_shopping-cart-v2.css +1 -1
  12. package/build/css/pages/tradePro-signup.css +1 -1
  13. package/build/css/pdp-main-non-critical.css +1 -1
  14. package/build/css/plp-main.css +1 -1
  15. package/build/js/basket.min.js +2 -2
  16. package/build/js/bundle.min.js +1 -1
  17. package/build/js/checkout.min.js +2 -2
  18. package/build/js/emulation.min.js +54 -2
  19. package/build/js/general.bundle.min.js +1 -1
  20. package/build/js/merged-checkout.min.js +2 -2
  21. package/build/js/my-orders.min.js +1 -0
  22. package/build/js/page/basket/summary-mobile.js +22 -0
  23. package/build/js/page/basket-v2.js +13 -0
  24. package/build/js/page/components/order-summary.js +8 -1
  25. package/build/js/page/components/sticky-order-observer.js +49 -0
  26. package/build/js/page/components/voucher.js +1 -1
  27. package/build/js/page/my-orders.js +165 -0
  28. package/build/js/page/quiz.js +20 -11
  29. package/build/js/pdp.bundle.min.js +1 -1
  30. package/build/js/plp.bundle.min.js +1 -1
  31. package/build/js/project-list.min.js +1 -1
  32. package/build/js/quiz.min.js +1 -1
  33. package/package.json +1 -1
  34. package/src/components/checkout-action.hbs +14 -11
  35. package/src/components/checkout-voucher-accordion.hbs +15 -0
  36. package/src/components/checkout_order-summary-new.hbs +5 -3
  37. package/src/components/checkout_voucher_large.hbs +20 -16
  38. package/src/components/date-selection.hbs +1 -1
  39. package/src/components/flatpickr-calendar.hbs +26 -0
  40. package/src/components/my-account/active-orders/header.hbs +6 -2
  41. package/src/components/my-account/active-orders/list-orders.hbs +14 -2
  42. package/src/components/my-account/active-orders/order-header.hbs +1 -1
  43. package/src/components/my-account/active-orders/order.hbs +10 -6
  44. package/src/components/my-account/clipboard-code-card.hbs +1 -1
  45. package/src/components/my-account/empty-orders.hbs +9 -0
  46. package/src/components/my-account/mobile-nav.hbs +23 -19
  47. package/src/components/my-account/orders-nav.hbs +15 -0
  48. package/src/components/my-account/sort-by.hbs +3 -0
  49. package/src/components/my-account/user-account-actions.hbs +1 -1
  50. package/src/components/order-item.hbs +3 -3
  51. package/src/components/order-summary.hbs +91 -56
  52. package/src/components/partner-signup-form.hbs +4 -0
  53. package/src/components/signup-form.hbs +1 -2
  54. package/src/components/summary-mobile-bar.hbs +17 -0
  55. package/src/data/data_delivery-address-v2.json +1 -1
  56. package/src/data/data_shopping-cart-v2.json +24 -0
  57. package/src/data/my-account/data_my-orders.json +246 -0
  58. package/src/elements/dropdown.hbs +1 -1
  59. package/src/js/components/flatpickr.js +167 -0
  60. package/src/js/components/general/handleAccordion.js +35 -0
  61. package/src/js/components/general/is-trade-pro.js +15 -1
  62. package/src/js/emulation/basket-data.js +2 -2
  63. package/src/js/emulation/mock.js +10 -0
  64. package/src/js/emulation/my-orders-local.js +41 -0
  65. package/src/js/page/basket/summary-mobile.js +22 -0
  66. package/src/js/page/basket-v2.js +13 -0
  67. package/src/js/page/components/order-summary.js +8 -1
  68. package/src/js/page/components/sticky-order-observer.js +49 -0
  69. package/src/js/page/components/voucher.js +1 -1
  70. package/src/js/page/my-orders.js +165 -0
  71. package/src/js/page/quiz.js +20 -11
  72. package/src/layouts/basket-new.hbs +1 -1
  73. package/src/layouts/checkout-new.hbs +1 -0
  74. package/src/page_checkout_confirmation-new-marketing-consent-error.html +0 -2
  75. package/src/page_checkout_delivery-address-customer-journey.html +0 -5
  76. package/src/page_checkout_delivery-address-v2.html +0 -4
  77. package/src/page_checkout_delivery-details-v2-asm.html +1 -5
  78. package/src/page_checkout_delivery-details-v2-calendar-message.html +0 -3
  79. package/src/page_checkout_delivery-details-v2-oos.html +0 -3
  80. package/src/page_checkout_delivery-details-v2-wisdom-not-available.html +0 -5
  81. package/src/page_checkout_delivery-details-v2-wisdom.html +0 -5
  82. package/src/page_checkout_delivery-details-with-loader-v2.html +0 -3
  83. package/src/page_checkout_delivery-details_guest-new.html +0 -5
  84. package/src/page_checkout_delivery_address-asm-new.html +0 -4
  85. package/src/page_checkout_next-day-delivery-details.html +0 -6
  86. package/src/page_checkout_payment-details-v2.html +1 -1
  87. package/src/page_checkout_payment-details_guest-with-checkout-journey.html +0 -2
  88. package/src/page_checkout_payment-details_login-with-checkout-journey.html +0 -2
  89. package/src/page_checkout_rapid-delivery-details.html +0 -6
  90. package/src/page_klarna_payment-details_with-klarna.html +3 -6
  91. package/src/page_my-orders-empty.html +49 -0
  92. package/src/page_my-orders.html +64 -0
  93. package/src/page_payment-details-with-clearpay.html +1 -1
  94. package/src/page_payment-details_with_apple-pay.html +1 -1
  95. package/src/page_payment-details_with_google-pay.html +1 -1
  96. package/src/page_shopping-cart-v2.html +6 -16
  97. package/src/page_tradePro-signup.html +1 -1
  98. package/src/scss/components/_checkout-action.scss +132 -6
  99. package/src/scss/components/_marketing-preferences.scss +1 -1
  100. package/src/scss/components/_order-summary.scss +329 -178
  101. package/src/scss/components/_sticky-element-appearance.scss +25 -0
  102. package/src/scss/components/my-account/_active-orders.scss +263 -0
  103. package/src/scss/components/my-account/_orders-nav.scss +61 -0
  104. package/src/scss/helpers/_variables.scss +3 -0
  105. package/src/scss/libs/flatpickr.scss +235 -0
  106. package/src/scss/main.scss +1 -0
  107. package/src/scss/pages/_checkout-widget.scss +137 -28
  108. package/src/scss/pages/my-account-v2.scss +1 -136
  109. package/src/scss/pages/page_checkout_delivery-new.scss +119 -10
  110. package/src/scss/pages/page_my-orders.scss +232 -0
  111. package/src/scss/pages/page_products-list-combined.scss +0 -1
  112. package/src/scss/pages/page_products-list.scss +0 -1
  113. package/src/scss/pages/page_shopping-cart-v2.scss +137 -36
  114. package/src/scss/pages/tradePro-signup.scss +27 -0
  115. package/src/sitemap.html +2 -0
  116. package/src/scss/components/my-account/_order.scss +0 -112
@@ -1 +1 @@
1
- !function n(r,o,a){function l(t,e){if(!o[t]){if(!r[t]){var i="function"==typeof require&&require;if(!e&&i)return i(t,!0);if(u)return u(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}i=o[t]={exports:{}},r[t][0].call(i.exports,function(e){return l(r[t][1][e]||e)},i,i.exports,n,r,o,a)}return o[t].exports}for(var u="function"==typeof require&&require,e=0;e<a.length;e++)l(a[e]);return l}({1:[function(e,t,i){"use strict";var r=e("./utils/create-event"),n=e("./utils/validation"),o=e("./utils/helpers");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 l(t,e){var i,n=Object.keys(t);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(t),e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,i)),n}function u(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?l(Object(r),!0).forEach(function(e){var t,i;t=n,i=r[e=e],(e=function(e){e=function(e,t){if("object"!==a(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!==a(i))return i;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:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))})}return n}var d=window.Wick||{};d.Quiz={STYLE_QUIZ_EMAIL:"styleQuizEmail",el:{quizContainer:".main-quiz",quizActions:".quiz-actions",body:"body",html:"html",input:'input[type="text"]',modal:".quiz-modal",modalEmail:"#quiz-modal",modalEmailFinal:"#quiz-modal-final",btnQuizEmail:"#email-results-quiz",cancelBtn:".quiz-modal__controls .btn-cancel",submitBtn:'.quiz-modal__controls [type="submit"]',quizForm:".quiz-modal__form",btnPrintResultQuiz:"#print-results-quiz",emailInput:"#email",firstNameInput:"#firstName",surnameInput:"#surname",formInvalidClass:"form_invalid"},errorMessages:{errorFirstName:"Please enter a first name",errorSurname:"Please enter a surname",errorEmail:"Please enter a valid email address"},getFieldsConfigurations:function(){return[{input:d.Quiz.el.firstNameInput,validator:n.isValidInputTextField,error:d.Quiz.errorMessages.errorFirstName},{input:d.Quiz.el.surnameInput,validator:n.isValidInputTextField,error:d.Quiz.errorMessages.errorSurname},{input:d.Quiz.el.emailInput,validator:n.isValidEmail,error:d.Quiz.errorMessages.errorEmail}]},showModal:function(e){$(e).modal("show")},closeModal:function(e,t){t&&t.preventDefault(),$(e).modal("hide")},validateInput:function(e,t,i){t=t($(e).val());return(0,n.updateStylingError)(e,t,i),t},validateForm:function(){var e=d.Quiz.getFieldsConfigurations(),t=!0;return e.forEach(function(e){e=d.Quiz.validateInput(e.input,e.validator,e.error);t=t&&e}),t},clearAllForm:function(){$(d.Quiz.el.modalEmail+" ".concat(d.Quiz.el.input)).val("")},disableButton:function(e){$(e).attr("disabled",!0)},enableButton:function(e){$(e).removeAttr("disabled")},requestToEmailResult:function(){var n={email:$(d.Quiz.el.emailInput).val(),firstName:$(d.Quiz.el.firstNameInput).val(),lastName:$(d.Quiz.el.surnameInput).val()};return d.Quiz.disableButton(d.Quiz.el.submitBtn),new Promise(function(e,t){var i=u({},n),i=(0,r.createEvent)(d.Quiz.STYLE_QUIZ_EMAIL,i,{resolve:e,reject:t});window.dispatchEvent(i)}).then(function(){d.Quiz.closeModal(d.Quiz.el.modalEmail)}).catch(function(e){console.error(e)}).finally(function(){d.Quiz.clearAllForm(),d.Quiz.showModal(d.Quiz.el.modalEmailFinal),d.Quiz.enableButton(d.Quiz.el.submitBtn)})},submitForm:function(e){e.preventDefault(),d.Quiz.validateForm()?d.Quiz.requestToEmailResult():$(d.Quiz.el.quizForm).addClass(d.Quiz.el.formInvalidClass)},loadScript:function(e,t){var i=document.createElement("script");i.src=e,i.onload=t,i.onerror=function(){return console.error("Failed to load script:",e)},document.head.appendChild(i)},handleSaveAsPDF:function(){"undefined"==typeof html2pdf?d.Quiz.loadScript("https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.9.2/html2pdf.bundle.min.js",function(){d.Quiz.generatePDF()}):d.Quiz.generatePDF()},convertSvgToCanvas:function(t){return new Promise(function(r,o){var e=document.querySelectorAll(t+' img[src*=".svg"]'),a=e.length;0===a&&r(),e.forEach(function(e){var t=document.createElement("canvas"),i=t.getContext("2d"),n=new Image;n.crossOrigin="Anonymous",n.onload=function(){t.width=2*n.width,t.height=2*n.height,i.drawImage(n,0,0,t.width,t.height);try{e.src=t.toDataURL("image/png"),--a}catch(e){return void o(e)}0===a&&r()},n.onerror=function(){o(new Error("Failed to load image"))},n.src=e.src})})},generatePDF:function(){var e=document.body.querySelector(d.Quiz.el.quizContainer);d.Quiz.convertSvgToCanvas(d.Quiz.el.quizContainer).then(function(){html2pdf().set({margin:1,filename:"Wickes Matchmaker Quiz result.pdf",image:{type:"jpeg",quality:.98},html2canvas:{scale:2,useCORS:!0,windowWidth:770},jsPDF:{format:[695.28,200]}}).from(e).save()}).catch(function(e){return console.error("Error converting SVGs:",e)})},handlePrint:function(){var e=d.Quiz.el.html,t=document.createElement("iframe"),i=(t.name="printFrame",t.style.display="none",document.body.appendChild(t),t.contentWindow),e=(i.document.write("<html><head>"),$('[type="text/css"]').each(function(e,t){i.document.write(t.outerHTML)}),i.document.write("</head><body>"),$(e).clone());e.find("script, iframe").remove(),e.find("svg").each(function(){this.setAttribute("xmlns","http://www.w3.org/2000/svg")}),i.document.write(e.html()),i.document.write("</body></html>"),i.document.close(),i.focus(),t.onload=function(){setTimeout(function(){i.print(),document.body.removeChild(t)},500)}},disablePrintButtonOnMobileApp:function(){(0,o.isApp)()&&d.Quiz.disableButton(d.Quiz.el.btnPrintResultQuiz)},handlePrintOrPDFInteraction:function(e){e.preventDefault(),(0,o.isTouchDevice)()?d.Quiz.handleSaveAsPDF():d.Quiz.handlePrint()},init:function(){$(d.Quiz.el.body).on("click",d.Quiz.el.btnQuizEmail,function(e){e.preventDefault(),d.Quiz.showModal(d.Quiz.el.modalEmail)}),$(d.Quiz.el.cancelBtn).on("click",function(e){d.Quiz.closeModal(d.Quiz.el.modal,e)}),$(d.Quiz.el.body).on("submit",d.Quiz.el.quizForm,d.Quiz.submitForm);var t=_.debounce(d.Quiz.handlePrintOrPDFInteraction,500);$(d.Quiz.el.btnPrintResultQuiz).on("click",function(e){e.preventDefault(),t(e)}),d.Quiz.disablePrintButtonOnMobileApp()}},$(document).ready(function(){d.Quiz.init()})},{"./utils/create-event":2,"./utils/helpers":3,"./utils/validation":4}],2:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.createEvent=function(e,t,i){return new CustomEvent(e,{detail:{payload:t,resolve:i.resolve,reject:i.reject}})}},{}],3:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.countLetters=function(e){e=e.match(/[a-zA-Z]/g);return e?e.length:0},i.createImageElements=function(e,t){return e.map(function(e){return $("<img>").attr("src",e).attr("alt",t)})},i.highlightCharacter=function(e,t,i){return e.includes(t)?(t=new RegExp("\\".concat(t,"+"),"g"),i='<span class="'.concat(i,'">$&</span>'),e.replace(t,i)):e},i.isApp=function(){return navigator.userAgent.match(/TradeProMobile_iOS|TradeProMobile_Android|DIYMobile_iOS|DIYMobile_Android|DIYApp_Guest_Mobile_iOS|DIYApp_Guest_Mobile_Android|AGENT_PLACEHOLDER/i)},i.isHasSymbol=function(e,t){return e.includes(t)},i.isKeyboardOpen=function(){var e=window.innerHeight,t=window.visualViewport.height;return e!==t},i.isTouchDevice=function(){return"ontouchstart"in window},i.scrollToTop=function(e){e.scrollTop(0)}},{}],4:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.addErrorMessage=A,i.addFieldValidation=function(e,i){$(e).each(function(e,t){$(t).blur(function(){a(this),i(this),n.idsOfInputsWithNoNeedToUpdateDuringTyping.includes(t.id)||$(this).keyup(function(){a(this),i(this)})})})},i.clearValidationErrors=function(e){e=$(e);e.hasClass("form_invalid")&&e.removeClass("form_invalid").find(".form-row[data-row-required]").removeClass("form-row_validation-error").find(".form-row__error").remove()},i.isNameOnCardContainsAtLeast14Digits=b,i.isNameOnCardContainsOnly16Digits=w,i.isValidAddress2=h,i.isValidAddressSelection=p,i.isValidEmail=l,i.isValidFieldSize=s,i.isValidHouseName=v,i.isValidInputTextField=c,i.isValidPassword=u,i.isValidPhoneNumber=f,i.isValidPostcodeField=m,i.isValidStoreId=z,i.isValidTitle=d,i.isValidVoucher=g,i.removeErrorStyling=Q,i.showValidationErrors=function(e,t){e=$(e);e.hasClass(r.formInvalid)?e.find(r.fieldRow).find(".form-row__error").text(t):(e.find(".form-row__error").remove(),e.addClass(r.formInvalid).find(r.fieldRow).append(function(e){return'<div class="form-row__error"> '.concat(e||"Error message here","</div>")}(t)).addClass(r.rowValidationError));t=e.find(r.fieldRow).first();{var i;t.length&&!function(e){"function"==typeof jQuery&&e instanceof jQuery&&(e=e[0]);e=e.getBoundingClientRect();return 0<=e.top&&0<=e.left&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)}(t)&&(e=t.closest(".modal").length,i=e?t.closest(".modal"):$("html, body"),e=e?0:t.offset().top-30,i.animate({scrollTop:e},300))}},i.updateInputValueBeforeValidation=a,i.updateStylingError=y,i.updateStylingErrorForElement=E,i.validateAddress1=function(e){y(e.id,c(e.value),invalidAddressOne)},i.validateAddress2=function(e){y(e.id,h(e.value),invalidAddressTwo)},i.validateAddressSelection=function(e){y(e.id,p(e),selectAddressMessage)},i.validateCity=function(e){y(e.id,c(e.value),invalidTownCity)},i.validateEmail=function(e){y(e.id,l(e.value),invalidEmailAddress)},i.validateFirstName=function(e){y(e.id,c(e.value),invalidFirstName)},i.validateGuidPattern=function(e){return o.guidPattern.test(e)},i.validateHouseName=function(e){y(e.id,v(e.value))},i.validateLastName=function(e){y(e.id,c(e.value),invalidLastName)},i.validateMobile=function(e,t){y(e.id,f(e.value,t),invalidMobile)},i.validateNameOnCard=function(e){y(e.id,!0);var t=c(e.value);t?e.value.length>nameOnCardMaxLength?y(e.id,!1,invalidNameOnCardLength):w(e.value)?y(e.id,!1,invalidCustomNameOnCard):b(e.value)&&y(e.id,!1,validationWarnNameOnCard):y(e.id,t,invalidNameOnCard)},i.validatePassword=function(e){y(e.id,u(e.value),invalidPassword)},i.validatePhone=function(e){y(e.id,f(e.value,!0),invalidTelephone)},i.validatePostcode=function(e,t){var i=e.value,n=m(i);t&&n&&(i=i.replace(/\s/g,""),$("#"+$.escapeSelector(e.id)).val(i.substr(0,i.length-3)+" "+i.substr(i.length-3)));y(e.id,n,invalidPostCode)},i.validateStoreId=function(e){y(e.id,z(e.value),invalidStoreId)},i.validateTitle=function(e){y(e.id,d(e.value),invalidTitle)},i.validateUserFriendlyIdPattern=function(e){return o.userFriendlyIdPattern.test(e)},i.validateVoucher=function(e){E(e,g(e.value),invalidVoucherCode)},i.wrapWithError=P;var n={idsOfInputsWithNoNeedToUpdateDuringTyping:["address-lookup-query","modal-address-lookup-query"]},r={formInvalid:"form_invalid",fieldRow:".form-row[data-row-required]",rowValidationError:"form-row_validation-error"},o={guidPattern:/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i,userFriendlyIdPattern:/^[A-Za-z]{2,3}\d{6}$/};function a(e){$(e).val($.trim($(e).val()))}function l(e){var t=new RegExp("^(?=.{1,64}@)[\\w\\+-]+(\\.[\\w\\+-]+)*@(([A-Za-z\\d]+[A-Za-z\\d-]*\\.){1,3}[A-Za-z]{2,16}|(?:(?:25[0-5]|2[0-4][\\d]|[01]?[\\d][\\d]?)\\.){3}(?:25[0-5]|2[0-4][\\d]|[01]?[\\d][\\d]?))$"),i=e.length<=254;return t.test(e)&&i}function u(e){return 0<e.length}function d(e){return 0<e.length}function s(e){return 0<e.length&&e.length<255}function c(e){var t=new RegExp("^[\\w ()/&.,'-]+$|^$");return s(e)&&t.test(e)}function f(e,t){var i=new RegExp("^0{1}\\d{10}$|^0{1}\\d{5}\\s{1}\\d{5}$|^0{1}\\d{4}\\s{1}\\d{6}$|^0{1}\\d{3}\\s{1}\\d{3}\\s{1}\\d{4}$|^0{1}\\d{2}\\s{1}\\d{4}\\s{1}\\d{4}$|^0{1}\\d{3}\\s{1}\\d{7}$"),n=new RegExp("^0{1}\\d{9}$|^0{1}\\d{5}\\s{1}\\d{4}$|^0{1}\\d{4}\\s{1}\\d{5}$"),i=i.test(e)||n.test(e);return t?0===e.length||i:0<e.length&&i}function m(e){var e=e.toUpperCase().replaceAll(" ",""),t=new RegExp("^(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})$");return 4<e.replace(/\s+/g,"").length&&t.test(e)}function v(e){var t=new RegExp("^[\\w ()/&.,'-]+$|^$");return 0<e.length&&t.test(e)}function p(e){return!$("#"+$.escapeSelector(e.id)).is(":visible")}function h(e){var t=new RegExp("^[\\w ().,'-]+$|^$");return 0===e.length||t.test(e)}function g(e){return 0<e.trim().length}function w(e){return new RegExp("^\\d{16}$").test(e)}function b(e){return new RegExp("^(.*\\d){14,}.*$").test(e)}function z(e){return"0"!==e}function y(e,t,i){E($(e),t,i)}function E(e,t,i){e=$(e).closest(".form-row");e.is(":visible")&&(Q(e),t||(P(e),A(e,i)))}function Q(e){e.removeClass("form-row_validation-error"),e.find(".form-row__error").remove()}function P(e){$(e).addClass("form-row_validation-error")}function A(e,t){t&&$(e).append('<div class="form-row__error">'+t+"</div>")}},{}]},{},[1]);
1
+ !function n(r,o,a){function l(t,e){if(!o[t]){if(!r[t]){var i="function"==typeof require&&require;if(!e&&i)return i(t,!0);if(u)return u(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}i=o[t]={exports:{}},r[t][0].call(i.exports,function(e){return l(r[t][1][e]||e)},i,i.exports,n,r,o,a)}return o[t].exports}for(var u="function"==typeof require&&require,e=0;e<a.length;e++)l(a[e]);return l}({1:[function(e,t,i){"use strict";var r=e("./utils/create-event"),n=e("./utils/validation"),o=e("./utils/helpers");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 l(t,e){var i,n=Object.keys(t);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(t),e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,i)),n}function u(n){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?l(Object(r),!0).forEach(function(e){var t,i;t=n,i=r[e=e],(e=function(e){e=function(e,t){if("object"!==a(e)||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!==a(i))return i;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:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))})}return n}var d=window.Wick||{};d.Quiz={STYLE_QUIZ_EMAIL:"styleQuizEmail",el:{quizContainer:".main-quiz",quizActions:".quiz-actions",body:"body",html:"html",input:'input[type="text"]',modal:".quiz-modal",modalEmail:"#quiz-modal",modalEmailFinal:"#quiz-modal-final",btnQuizEmail:"#email-results-quiz",cancelBtn:".quiz-modal__controls .btn-cancel",submitBtn:'.quiz-modal__controls [type="submit"]',quizForm:".quiz-modal__form",btnPrintResultQuiz:"#print-results-quiz",emailInput:"#email",firstNameInput:"#firstName",surnameInput:"#surname",formInvalidClass:"form_invalid"},errorMessages:{errorFirstName:"Please enter a first name",errorSurname:"Please enter a surname",errorEmail:"Please enter a valid email address"},getFieldsConfigurations:function(){return[{input:d.Quiz.el.firstNameInput,validator:n.isValidInputTextField,error:d.Quiz.errorMessages.errorFirstName},{input:d.Quiz.el.surnameInput,validator:n.isValidInputTextField,error:d.Quiz.errorMessages.errorSurname},{input:d.Quiz.el.emailInput,validator:n.isValidEmail,error:d.Quiz.errorMessages.errorEmail}]},showModal:function(e){$(e).modal("show")},closeModal:function(e,t){t&&t.preventDefault(),$(e).modal("hide")},validateInput:function(e,t,i){t=t($(e).val());return(0,n.updateStylingError)(e,t,i),t},validateForm:function(){var e=d.Quiz.getFieldsConfigurations(),t=!0;return e.forEach(function(e){e=d.Quiz.validateInput(e.input,e.validator,e.error);t=t&&e}),t},clearAllForm:function(){$(d.Quiz.el.modalEmail+" ".concat(d.Quiz.el.input)).val("")},disableButton:function(e){$(e).attr("disabled",!0)},enableButton:function(e){$(e).removeAttr("disabled")},requestToEmailResult:function(){var n={email:$(d.Quiz.el.emailInput).val(),firstName:$(d.Quiz.el.firstNameInput).val(),lastName:$(d.Quiz.el.surnameInput).val()};return d.Quiz.disableButton(d.Quiz.el.submitBtn),new Promise(function(e,t){var i=u({},n),i=(0,r.createEvent)(d.Quiz.STYLE_QUIZ_EMAIL,i,{resolve:e,reject:t});window.dispatchEvent(i)}).then(function(){d.Quiz.closeModal(d.Quiz.el.modalEmail)}).catch(function(e){console.error(e)}).finally(function(){d.Quiz.clearAllForm(),d.Quiz.showModal(d.Quiz.el.modalEmailFinal),d.Quiz.enableButton(d.Quiz.el.submitBtn)})},submitForm:function(e){e.preventDefault(),d.Quiz.validateForm()?d.Quiz.requestToEmailResult():$(d.Quiz.el.quizForm).addClass(d.Quiz.el.formInvalidClass)},loadScript:function(e,t){var i=document.createElement("script");i.src=e,i.onload=t,i.onerror=function(){return console.error("Failed to load script:",e)},document.head.appendChild(i)},handleSaveAsPDF:function(){"undefined"==typeof html2pdf?d.Quiz.loadScript("https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.9.2/html2pdf.bundle.min.js",function(){d.Quiz.generatePDF()}):d.Quiz.generatePDF()},convertSvgToCanvas:function(t){return new Promise(function(r,o){var e=document.querySelectorAll(t+' img[src*=".svg"]'),a=e.length;0===a&&r(),e.forEach(function(e){var t=document.createElement("canvas"),i=t.getContext("2d"),n=new Image;n.crossOrigin="Anonymous",n.onload=function(){t.width=2*n.width,t.height=2*n.height,i.drawImage(n,0,0,t.width,t.height);try{e.src=t.toDataURL("image/png"),--a}catch(e){return void o(e)}0===a&&r()},n.onerror=function(){o(new Error("Failed to load image"))},n.src=e.src})})},generatePDF:function(){var e=document.body.querySelector(d.Quiz.el.quizContainer);d.Quiz.convertSvgToCanvas(d.Quiz.el.quizContainer).then(function(){var t={margin:1,filename:"Wickes Matchmaker Quiz result.pdf",image:{type:"jpeg",quality:.98},html2canvas:{scale:2,useCORS:!0,windowWidth:770},jsPDF:{format:[695.28,200]}};html2pdf().set(t).from(e).output("datauristring").then(function(e){window.ReactNativeWebView&&window.ReactNativeWebView.postMessage?window.ReactNativeWebView.postMessage(JSON.stringify({event:"matchMakertoolResultBase64",data:{filename:t.filename,file:e}})):console.warn("ReactNativeWebView not available")}).save()}).catch(function(e){return console.error("Error converting SVGs:",e)})},handlePrint:function(){var e=d.Quiz.el.html,t=document.createElement("iframe"),i=(t.name="printFrame",t.style.display="none",document.body.appendChild(t),t.contentWindow),e=(i.document.write("<html><head>"),$('[type="text/css"]').each(function(e,t){i.document.write(t.outerHTML)}),i.document.write("</head><body>"),$(e).clone());e.find("script, iframe").remove(),e.find("svg").each(function(){this.setAttribute("xmlns","http://www.w3.org/2000/svg")}),i.document.write(e.html()),i.document.write("</body></html>"),i.document.close(),i.focus(),t.onload=function(){setTimeout(function(){i.print(),document.body.removeChild(t)},500)}},handlePrintOrPDFInteraction:function(e){e.preventDefault(),(0,o.isTouchDevice)()?d.Quiz.handleSaveAsPDF():d.Quiz.handlePrint()},init:function(){$(d.Quiz.el.body).on("click",d.Quiz.el.btnQuizEmail,function(e){e.preventDefault(),d.Quiz.showModal(d.Quiz.el.modalEmail)}),$(d.Quiz.el.cancelBtn).on("click",function(e){d.Quiz.closeModal(d.Quiz.el.modal,e)}),$(d.Quiz.el.body).on("submit",d.Quiz.el.quizForm,d.Quiz.submitForm);var t=_.debounce(d.Quiz.handlePrintOrPDFInteraction,500);$(d.Quiz.el.btnPrintResultQuiz).on("click",function(e){e.preventDefault(),t(e)})}},$(document).ready(function(){d.Quiz.init()})},{"./utils/create-event":2,"./utils/helpers":3,"./utils/validation":4}],2:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.createEvent=function(e,t,i){return new CustomEvent(e,{detail:{payload:t,resolve:i.resolve,reject:i.reject}})}},{}],3:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.countLetters=function(e){e=e.match(/[a-zA-Z]/g);return e?e.length:0},i.createImageElements=function(e,t){return e.map(function(e){return $("<img>").attr("src",e).attr("alt",t)})},i.highlightCharacter=function(e,t,i){return e.includes(t)?(t=new RegExp("\\".concat(t,"+"),"g"),i='<span class="'.concat(i,'">$&</span>'),e.replace(t,i)):e},i.isApp=function(){return navigator.userAgent.match(/TradeProMobile_iOS|TradeProMobile_Android|DIYMobile_iOS|DIYMobile_Android|DIYApp_Guest_Mobile_iOS|DIYApp_Guest_Mobile_Android|AGENT_PLACEHOLDER/i)},i.isHasSymbol=function(e,t){return e.includes(t)},i.isKeyboardOpen=function(){var e=window.innerHeight,t=window.visualViewport.height;return e!==t},i.isTouchDevice=function(){return"ontouchstart"in window},i.scrollToTop=function(e){e.scrollTop(0)}},{}],4:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.addErrorMessage=_,i.addFieldValidation=function(e,i){$(e).each(function(e,t){$(t).blur(function(){a(this),i(this),n.idsOfInputsWithNoNeedToUpdateDuringTyping.includes(t.id)||$(this).keyup(function(){a(this),i(this)})})})},i.clearValidationErrors=function(e){e=$(e);e.hasClass("form_invalid")&&e.removeClass("form_invalid").find(".form-row[data-row-required]").removeClass("form-row_validation-error").find(".form-row__error").remove()},i.isNameOnCardContainsAtLeast14Digits=b,i.isNameOnCardContainsOnly16Digits=w,i.isValidAddress2=h,i.isValidAddressSelection=p,i.isValidEmail=l,i.isValidFieldSize=s,i.isValidHouseName=v,i.isValidInputTextField=c,i.isValidPassword=u,i.isValidPhoneNumber=f,i.isValidPostcodeField=m,i.isValidStoreId=y,i.isValidTitle=d,i.isValidVoucher=g,i.removeErrorStyling=Q,i.showValidationErrors=function(e,t){e=$(e);e.hasClass(r.formInvalid)?e.find(r.fieldRow).find(".form-row__error").text(t):(e.find(".form-row__error").remove(),e.addClass(r.formInvalid).find(r.fieldRow).append(function(e){return'<div class="form-row__error"> '.concat(e||"Error message here","</div>")}(t)).addClass(r.rowValidationError));t=e.find(r.fieldRow).first();{var i;t.length&&!function(e){"function"==typeof jQuery&&e instanceof jQuery&&(e=e[0]);e=e.getBoundingClientRect();return 0<=e.top&&0<=e.left&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)}(t)&&(e=t.closest(".modal").length,i=e?t.closest(".modal"):$("html, body"),e=e?0:t.offset().top-30,i.animate({scrollTop:e},300))}},i.updateInputValueBeforeValidation=a,i.updateStylingError=z,i.updateStylingErrorForElement=E,i.validateAddress1=function(e){z(e.id,c(e.value),invalidAddressOne)},i.validateAddress2=function(e){z(e.id,h(e.value),invalidAddressTwo)},i.validateAddressSelection=function(e){z(e.id,p(e),selectAddressMessage)},i.validateCity=function(e){z(e.id,c(e.value),invalidTownCity)},i.validateEmail=function(e){z(e.id,l(e.value),invalidEmailAddress)},i.validateFirstName=function(e){z(e.id,c(e.value),invalidFirstName)},i.validateGuidPattern=function(e){return o.guidPattern.test(e)},i.validateHouseName=function(e){z(e.id,v(e.value))},i.validateLastName=function(e){z(e.id,c(e.value),invalidLastName)},i.validateMobile=function(e,t){z(e.id,f(e.value,t),invalidMobile)},i.validateNameOnCard=function(e){z(e.id,!0);var t=c(e.value);t?e.value.length>nameOnCardMaxLength?z(e.id,!1,invalidNameOnCardLength):w(e.value)?z(e.id,!1,invalidCustomNameOnCard):b(e.value)&&z(e.id,!1,validationWarnNameOnCard):z(e.id,t,invalidNameOnCard)},i.validatePassword=function(e){z(e.id,u(e.value),invalidPassword)},i.validatePhone=function(e){z(e.id,f(e.value,!0),invalidTelephone)},i.validatePostcode=function(e,t){var i=e.value,n=m(i);t&&n&&(i=i.replace(/\s/g,""),$("#"+$.escapeSelector(e.id)).val(i.substr(0,i.length-3)+" "+i.substr(i.length-3)));z(e.id,n,invalidPostCode)},i.validateStoreId=function(e){z(e.id,y(e.value),invalidStoreId)},i.validateTitle=function(e){z(e.id,d(e.value),invalidTitle)},i.validateUserFriendlyIdPattern=function(e){return o.userFriendlyIdPattern.test(e)},i.validateVoucher=function(e){E(e,g(e.value),invalidVoucherCode)},i.wrapWithError=P;var n={idsOfInputsWithNoNeedToUpdateDuringTyping:["address-lookup-query","modal-address-lookup-query"]},r={formInvalid:"form_invalid",fieldRow:".form-row[data-row-required]",rowValidationError:"form-row_validation-error"},o={guidPattern:/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i,userFriendlyIdPattern:/^[A-Za-z]{2,3}\d{6}$/};function a(e){$(e).val($.trim($(e).val()))}function l(e){var t=new RegExp("^(?=.{1,64}@)[\\w\\+-]+(\\.[\\w\\+-]+)*@(([A-Za-z\\d]+[A-Za-z\\d-]*\\.){1,3}[A-Za-z]{2,16}|(?:(?:25[0-5]|2[0-4][\\d]|[01]?[\\d][\\d]?)\\.){3}(?:25[0-5]|2[0-4][\\d]|[01]?[\\d][\\d]?))$"),i=e.length<=254;return t.test(e)&&i}function u(e){return 0<e.length}function d(e){return 0<e.length}function s(e){return 0<e.length&&e.length<255}function c(e){var t=new RegExp("^[\\w ()/&.,'-]+$|^$");return s(e)&&t.test(e)}function f(e,t){var i=new RegExp("^0{1}\\d{10}$|^0{1}\\d{5}\\s{1}\\d{5}$|^0{1}\\d{4}\\s{1}\\d{6}$|^0{1}\\d{3}\\s{1}\\d{3}\\s{1}\\d{4}$|^0{1}\\d{2}\\s{1}\\d{4}\\s{1}\\d{4}$|^0{1}\\d{3}\\s{1}\\d{7}$"),n=new RegExp("^0{1}\\d{9}$|^0{1}\\d{5}\\s{1}\\d{4}$|^0{1}\\d{4}\\s{1}\\d{5}$"),i=i.test(e)||n.test(e);return t?0===e.length||i:0<e.length&&i}function m(e){var e=e.toUpperCase().replaceAll(" ",""),t=new RegExp("^(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})$");return 4<e.replace(/\s+/g,"").length&&t.test(e)}function v(e){var t=new RegExp("^[\\w ()/&.,'-]+$|^$");return 0<e.length&&t.test(e)}function p(e){return!$("#"+$.escapeSelector(e.id)).is(":visible")}function h(e){var t=new RegExp("^[\\w ().,'-]+$|^$");return 0===e.length||t.test(e)}function g(e){return 0<e.trim().length}function w(e){return new RegExp("^\\d{16}$").test(e)}function b(e){return new RegExp("^(.*\\d){14,}.*$").test(e)}function y(e){return"0"!==e}function z(e,t,i){E($(e),t,i)}function E(e,t,i){e=$(e).closest(".form-row");e.is(":visible")&&(Q(e),t||(P(e),_(e,i)))}function Q(e){e.removeClass("form-row_validation-error"),e.find(".form-row__error").remove()}function P(e){$(e).addClass("form-row_validation-error")}function _(e,t){t&&$(e).append('<div class="form-row__error">'+t+"</div>")}},{}]},{},[1]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickes-css2",
3
- "version": "2.94.0",
3
+ "version": "2.95.0",
4
4
  "description": "CSS and JS and page templates in use by Wickes",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,14 +1,15 @@
1
- <div class="checkout-action__wrapper {{mod}}">
1
+ <div class="checkout-action__wrapper {{lookup . "mod"}} {{view}}">
2
2
  {{#if head}}
3
3
  {{> checkout-section-title title=head}}
4
4
  {{/if}}
5
- <div class="checkout-action">
5
+ <div class="checkout-action {{#if container}}container{{/if}}">
6
6
  <div class="checkout-action__section">
7
7
  <a href="#" class="btn btn_full btn-action btn-checkout">
8
- Checkout
9
- <span class="icon">
10
- <i class="fas fa-arrow-right"></i>
11
- </span>
8
+ <span class="btn-wickes-checkout__label checkout-text--mixed">Checkout</span>
9
+ <span class="btn-wickes-checkout__label checkout-text--collect">Wickes Checkout</span>
10
+ <span class="icon">
11
+ <i class="fas fa-arrow-right"></i>
12
+ </span>
12
13
  </a>
13
14
  </div>
14
15
  <div class="checkout-action__section checkout-widget__basket-block">
@@ -23,13 +24,15 @@
23
24
  </div>
24
25
  </div>
25
26
  </a>
27
+ {{#unless hidePaypalEmail}}
26
28
  <div class="pay-pal_container-email">
27
- <div class="pay-pal_email-heading">Your PayPal email: </div>
28
- <div class="pay-pal_email-value">John.doe@gmail.com</div>
29
- <div class="pay-pal_email-link">
30
- <a href="#" title="" target="_blank">Don't use this email</a>
31
- </div>
29
+ <div class="pay-pal_email-heading">Your PayPal email: </div>
30
+ <div class="pay-pal_email-value">John.doe@gmail.com</div>
31
+ <div class="pay-pal_email-link">
32
+ <a href="#" title="" target="_blank">Don't use this email</a>
33
+ </div>
32
34
  </div>
35
+ {{/unless}}
33
36
  </div>
34
37
  </div>
35
38
  </div>
@@ -0,0 +1,15 @@
1
+ <li class="checkout-widget__voucher-accordion">
2
+ <div
3
+ class="checkout-widget__voucher-toggle collapsed"
4
+ data-toggle="collapse"
5
+ data-target="#checkout-voucher-accordion-{{id}}"
6
+ >
7
+ Got a voucher?
8
+ <span class="checkout-widget__icon">
9
+ <i class="fal fa-angle-up fa-2x"></i>
10
+ </span>
11
+ </div>
12
+ <div class="collapse" id="checkout-voucher-accordion-{{id}}">
13
+ {{> checkout_voucher_large id=id title=""}}
14
+ </div>
15
+ </li>
@@ -12,12 +12,13 @@
12
12
  {{/each}}
13
13
  {{else}}
14
14
  {{#each info}}
15
- <li class="checkout-widget__item {{#if mod}}checkout-widget__item-{{mod}}{{/if}}">
15
+ <li class="checkout-widget__item {{#if (lookup this "mod")}}checkout-widget__item-{{lookup this "mod"}}{{/if}}">
16
16
  <span>{{title}}</span>
17
17
  <span class="checkout-widget__item-value">{{value}}</span>
18
18
  </li>
19
19
  {{/each}}
20
20
  {{/if}}
21
+ {{> checkout-voucher-accordion id=id}}
21
22
  {{#if discounts}}
22
23
  <li class="checkout-widget__accordion-wrap checkout-widget__details-discount">
23
24
  <span class="checkout-widget__detail-name checkout-widget__detail-name_accordion collapsed" data-toggle="collapse"
@@ -35,7 +36,8 @@
35
36
  </li>
36
37
  {{/if}}
37
38
  </ul>
38
- <div class="checkout-widget__total">
39
+ {{#unless mobile}}
40
+ <div class="checkout-widget__total" data-sticky-observe>
39
41
  {{#if confirmationSummary}}
40
42
  <div> {{ confirmation-summary.total.title }}</div>
41
43
  <div class="checkout-widget__total-value">{{ confirmation-summary.total.value }}</div>
@@ -44,5 +46,5 @@
44
46
  <div class="checkout-widget__total-value">{{ total.value }}</div>
45
47
  {{/if}}
46
48
  </div>
47
-
49
+ {{/unless}}
48
50
  </div>
@@ -1,19 +1,23 @@
1
1
  <div class="voucher">
2
- {{#if title}}
3
- {{> checkout-section-title}}
4
- {{/if}}
5
- <div class="checkout-widget checkout-voucher checkout-voucher_fixed">
6
- <form id="form-checkout-voucher{{id}}">
7
- {{> form-row id=(concat 'voucher-code' id) label="Voucher" label-hidden="true" required="true" placeholder="Enter code"}}
8
- <button class="voucher__btn btn btn-secondary btn_full">
9
- <span class="btn__text">Apply</span>
10
- </button>
11
- </form>
2
+ {{#if title}}
3
+ {{> checkout-section-title}}
4
+ {{/if}}
5
+ <div class="checkout-widget checkout-voucher checkout-voucher_fixed">
6
+ <form id="form-checkout-voucher{{id}}">
7
+ {{> form-row id=(concat 'voucher-code' id) label="Voucher" label-hidden="true" required="true" placeholder="Enter code" info=""}}
8
+ <button class="voucher__btn btn btn-primary">
9
+ <span class="btn__text">Apply</span>
10
+ </button>
11
+ </form>
12
+ </div>
13
+ {{#unless voucherApplied}}
14
+ <div class="checkout-widget checkout-voucher voucher-applied checkout-voucher-hide">
15
+ <div class="voucher-applied__inner">
16
+ <span class="icon icon__check">
17
+ <i class="fas fa-check-circle"></i>
18
+ </span>
19
+ <h5 class="heading-5 text-center">Voucher has been applied</h5>
20
+ </div>
12
21
  </div>
13
- {{#unless voucherApplied}}
14
- <div class="checkout-widget checkout-voucher voucher-applied checkout-voucher-hide">
15
- <i class="fas fa-check-circle"></i>
16
- <h3 class="heading-3 text-center">Voucher has been applied</h3>
17
- </div>
18
- {{/unless}}
22
+ {{/unless}}
19
23
  </div>
@@ -24,7 +24,7 @@
24
24
  {{/each}}
25
25
  </div>
26
26
  {{#each calendar}}
27
- {{#if (eq (mod @index 7) 0)}}
27
+ {{#if (eq (mod_dec @index 7) 0)}}
28
28
  <div class="calendar__row">
29
29
  <div class="calendar__row_days">
30
30
  {{/if}}
@@ -0,0 +1,26 @@
1
+ <div class="flatpickr-datepicker" choose-date="" show-years="15">
2
+ <label class="flatpickr-datepicker__label">
3
+ Monthly view
4
+ {{> info-icon
5
+ modification="icon-info"
6
+ title=textTooltip
7
+ data-placement="top"
8
+ data-container=".flatpickr-datepicker__label"
9
+ }}
10
+ </label>
11
+ <div class="flatpickr-datepicker__field">
12
+ <input
13
+ type="text"
14
+ class="flatpickr-input"
15
+ id="calendarInputFlatpickr"
16
+ placeholder="Select year and month"
17
+ readonly
18
+ />
19
+ <span class="icon-wrap icon-wrap--cross" id="crossIcon">
20
+ <i class="far fa-times cross-icon"></i>
21
+ </span>
22
+ <span class="icon-wrap" id="calendarIcon">
23
+ <i class="fas fa-calendar-alt icon-calendar"></i>
24
+ </span>
25
+ </div>
26
+ </div>
@@ -1,4 +1,8 @@
1
1
  <div class="active-orders__header">
2
- <h3 class="active-orders__title">{{title}}</h3>
3
- <a class="btn btn_full btn-primary btn--all-orders d-none d-sm-block" rel="stylesheet" href="#">{{linkText}}</a>
2
+ {{#if title}}
3
+ <h3 class="active-orders__title">{{title}}</h3>
4
+ {{/if}}
5
+ {{#if linkText}}
6
+ <a class="btn btn_full btn-primary btn--all-orders d-none d-sm-block" rel="stylesheet" href="#">{{linkText}}</a>
7
+ {{/if}}
4
8
  </div>
@@ -1,9 +1,21 @@
1
1
  <div class="active-orders">
2
- {{> my-account/active-orders/header}}
2
+ {{#if title}}
3
+ {{> my-account/active-orders/header}}
4
+ {{/if}}
3
5
 
4
6
  {{#each orders}}
5
7
  {{> my-account/active-orders/order switch-vat=../switch-vat}}
6
8
  {{/each}}
7
9
 
8
- <a class="btn btn_full btn-primary btn--all-orders d-sm-none" rel="stylesheet" href="#">{{linkText}}</a>
10
+ {{#if linkText}}
11
+ <a class="btn btn_full btn-primary btn--all-orders d-sm-none" rel="stylesheet" href="#">{{linkText}}</a>
12
+ {{/if}}
9
13
  </div>
14
+ {{#if isLoadMore}}
15
+ <div class="load-more-wrap">
16
+ <input id="numberOfPagesOrders" value="3" type="hidden">
17
+ <button class="btn btn-primary btn-load-more">
18
+ Load more
19
+ </button>
20
+ </div>
21
+ {{/if}}
@@ -1,6 +1,6 @@
1
1
  <header class="order-header">
2
2
  <h3 class="order-header__title">Order {{orderId}}</h3>
3
- <div class="order-header__status">
3
+ <div class="order-status {{orderStatus.statusClass}}">
4
4
  <i class="{{orderStatus.statusIcon}} icon"></i>
5
5
  <span>{{orderStatus.statusTitle}}</span>
6
6
  </div>
@@ -3,13 +3,17 @@
3
3
 
4
4
  {{> my-account/active-orders/order-details switch-vat=switch-vat}}
5
5
 
6
- {{> my-account/active-orders/consignment-info}}
6
+ {{#if totalConsignments}}
7
+ {{> my-account/active-orders/consignment-info}}
8
+ {{/if}}
7
9
 
8
- <section class="shipment-details">
9
- {{#each shipmentDetails}}
10
- {{> my-account/active-orders/shipment-detail}}
11
- {{/each}}
12
- </section>
10
+ {{#if shipmentDetails}}
11
+ <section class="shipment-details">
12
+ {{#each shipmentDetails}}
13
+ {{> my-account/active-orders/shipment-detail}}
14
+ {{/each}}
15
+ </section>
16
+ {{/if}}
13
17
 
14
18
  <div class="view-more">
15
19
  <a class="link" href="/">
@@ -1,4 +1,4 @@
1
- <div class="clipboard-code {{mod}}">
1
+ <div class="clipboard-code {{this.mod}}">
2
2
  {{#if customIcon}}
3
3
  {{{customIcon}}}
4
4
  {{else}}
@@ -0,0 +1,9 @@
1
+ <div class="empty-orders">
2
+ <h2 class="empty-orders__title">{{title}}</h2>
3
+ <span class="empty-orders__image">
4
+ {{{image}}}
5
+ </span>
6
+ {{#if btnText}}
7
+ <a href="#" class="btn btn-primary empty-orders__btn">{{btnText}}</a>
8
+ {{/if}}
9
+ </div>
@@ -1,17 +1,19 @@
1
- <div class="account-nav {{mod}}" {{#if (eq @index ../active-index)}}data-active-index="{{active-index}}"{{/if}}>
1
+ <div class="account-nav {{this.mod}}" {{#if (eq @index ../active-index)}}data-active-index="{{active-index}}"{{/if}}>
2
2
  <div class="account-nav__toggle accordion accordion_collapsed">
3
3
  <div class="accordion__header" role="link" aria-expanded="false">
4
- <span class="account-nav__icon">
5
- {{#each menu}}
6
- {{#if (eq @index ../active-index)}}
7
- {{#if customIcon}}
8
- {{{icon}}}
9
- {{else}}
10
- <i class="{{icon}} icon"></i>
11
- {{/if}}
4
+ {{#each menu}}
5
+ {{#if (eq @index ../active-index)}}
6
+ {{#if icon}}
7
+ <span class="account-nav__icon">
8
+ {{#if customIcon}}
9
+ {{{icon}}}
10
+ {{else}}
11
+ <i class="{{icon}} icon"></i>
12
+ {{/if}}
13
+ </span>
12
14
  {{/if}}
13
- {{/each}}
14
- </span>
15
+ {{/if}}
16
+ {{/each}}
15
17
  <span class="accordion__header-text">{{page-name}}</span>
16
18
  <span class="icon accordion__header-icon">
17
19
  <i class="fas fa-angle-up"></i>
@@ -23,14 +25,16 @@
23
25
  <ul class="account-nav__list">
24
26
  {{#each menu}}
25
27
  <li class="account-nav__item">
26
- <a class="account-nav__link" data-index="{{@index}}" href="{{link}}">
27
- <span class="account-nav__icon">
28
- {{#if customIcon}}
29
- {{{icon}}}
30
- {{else}}
31
- <i class="{{icon}} icon"></i>
32
- {{/if}}
33
- </span>
28
+ <a class="account-nav__link" data-index="{{@index}}" href="{{link}}" id="{{id}}">
29
+ {{#if icon}}
30
+ <span class="account-nav__icon">
31
+ {{#if customIcon}}
32
+ {{{icon}}}
33
+ {{else}}
34
+ <i class="{{icon}} icon"></i>
35
+ {{/if}}
36
+ </span>
37
+ {{/if}}
34
38
  {{title}}
35
39
  {{#if total}}
36
40
  <span class="rewards">{{total}}</span>
@@ -0,0 +1,15 @@
1
+ <nav class="nav-orders">
2
+ {{> my-account/mobile-nav
3
+ mod="d-sm-none"
4
+ menu=nav
5
+ active-index=0
6
+ page-name=nav.[0].title
7
+ }}
8
+ <ul class="nav-orders__wrap d-none d-sm-flex">
9
+ {{#each nav}}
10
+ <li class="nav-orders__item {{#if isActive}}active{{/if}}">
11
+ <a class="link" href="#" id="{{id}}">{{title}}</a>
12
+ </li>
13
+ {{/each}}
14
+ </ul>
15
+ </nav>
@@ -0,0 +1,3 @@
1
+ <div class="sort-orders">
2
+ {{> form-row dropdown="true" id="sort_orders" label="Sort by" placeholder="Name (descending)"}}
3
+ </div>
@@ -1,4 +1,4 @@
1
- <ul class="account-actions__list {{mod}}">
1
+ <ul class="account-actions__list {{this.mod}}">
2
2
  <li class="account-actions__item">
3
3
  <a class="account-actions__link" href="#">
4
4
  <span class="icon">
@@ -87,7 +87,7 @@
87
87
  <div class="price-vat">Inc.VAT</div>
88
88
  </div>
89
89
  <div class="excluding-vat d-none">
90
- <span class="order-item__value">£{{price}}</span>
90
+ <span class="order-item__value">£{{priceExcVat}}</span>
91
91
  <div class="price-vat">Exc.VAT</div>
92
92
  </div>
93
93
  {{else}}
@@ -106,7 +106,7 @@
106
106
  <div class="price-vat">Inc.VAT</div>
107
107
  </div>
108
108
  <div class="excluding-vat d-none">
109
- <span class="order-item__value">£{{pricePerSQM.value}}</span>
109
+ <span class="order-item__value">£{{pricePerSQMExcVat.value}}</span>
110
110
  <div class="price-vat">Exc.VAT</div>
111
111
  </div>
112
112
  {{else}}
@@ -127,7 +127,7 @@
127
127
  <div class="price-vat">Inc.VAT</div>
128
128
  </div>
129
129
  <div class="excluding-vat d-none">
130
- <span class="order-item__value">£{{total}}</span>
130
+ <span class="order-item__value">£{{totalExcVat}}</span>
131
131
  <div class="price-vat">Exc.VAT</div>
132
132
  </div>
133
133
  {{else}}
@@ -1,66 +1,101 @@
1
+ {{#if basket}}
2
+ <div class="summary summary--mobile d-lg-none" id="summary-mobile-{{id}}">
3
+ {{> summary-mobile-bar}}
4
+ <div class="collapse summary__aside container" id="checkout-summary-mobile-accordion-{{id}}" data-sticky-element>
5
+
6
+ {{> checkout_order-summary-new head=title mod=mod id=(concat id "-mobile") mobile="true"}}
7
+ {{#unless basket}}
8
+ <div class="summary__payment footer-checkout">
9
+ {{#unless merged}}
10
+ {{#if paymentsCheckoutV2}}
11
+ <div class="footer-checkout-holder footer-checkout-holder--payways">
12
+ {{> payments-checkout-v2}}
13
+ </div>
14
+ {{else}}
15
+ <div class="footer-checkout-holder">
16
+ {{> payments-checkout clearPayIcon="true"}}
17
+ <span class="footer-checkout__copyright">
18
+ Copyright ©
19
+ <span class="current-year"></span> Wickes.co.uk
20
+ </span>
21
+ </div>
22
+ {{/if}}
23
+ {{else}}
24
+ <div class="summary__payment-message">
25
+ <p class="summary__payment-main">{{vat-message.main}}</p>
26
+ <p class="summary__payment-additional">{{vat-message.additional}}</p>
27
+ </div>
28
+ {{/unless}}
29
+ </div>
30
+ {{/unless}}
31
+ </div>
32
+ </div>
33
+ {{/if}}
34
+
35
+
1
36
  <div class="summary {{#if mod}}summary-large{{/if}} {{#if paymentsCheckoutV2 }}summary--payways{{/if}}">
2
- {{> checkout-section-title}}
3
- {{#if mod}}
4
- <div class="summary__accordion collapsed"
5
- data-toggle="collapse"
6
- data-target="#checkout-details-accordion-{{id}}"
7
- >
8
- <span class="summary__accordion-text">Show full summary</span>
9
- <span class="icon summary-icon-small">
37
+ {{> checkout-section-title}}
38
+ {{#if mod}}
39
+ <div class="summary__accordion collapsed"
40
+ data-toggle="collapse"
41
+ data-target="#checkout-details-accordion-{{id}}"
42
+ >
43
+ <span class="summary__accordion-text">Show full summary</span>
44
+ <span class="icon summary-icon-small">
10
45
  <i class="fas fa-angle-up"></i>
11
46
  </span>
12
- </div>
13
- {{/if}}
14
- <div class="summary__aside">
15
- {{> checkout_order-summary-new head=title mod=mod id=id}}
47
+ </div>
48
+ {{/if}}
49
+ <div class="summary__aside">
50
+ {{> checkout_order-summary-new head=title mod=mod id=id}}
16
51
 
17
- {{#if klarna-placement}}
18
- <div class="summary__klarna">
19
- <klarna-placement
20
- data-key="credit-promotion-badge"
21
- data-locale="en-GB"
22
- data-purchase-amount="12000"
23
- ></klarna-placement>
52
+ {{#if klarna-placement}}
53
+ <div class="summary__klarna">
54
+ <klarna-placement
55
+ data-key="credit-promotion-badge"
56
+ data-locale="en-GB"
57
+ data-purchase-amount="12000"
58
+ ></klarna-placement>
59
+ </div>
60
+ {{/if}}
61
+ {{#if clearpay-placement}}
62
+ {{> clearpay applyMargin=true hasKlarna=true}}
63
+ {{/if}}
64
+ {{#unless basket}}
65
+ <div class="summary__payment footer-checkout">
66
+ {{#unless merged}}
67
+ {{#if paymentsCheckoutV2 }}
68
+ <div class="footer-checkout-holder footer-checkout-holder--payways">
69
+ {{> payments-checkout-v2 }}
24
70
  </div>
25
- {{/if}}
26
- {{#if clearpay-placement}}
27
- {{> clearpay applyMargin=true hasKlarna=true}}
28
- {{/if}}
29
- {{#unless basket}}
30
- <div class="summary__payment footer-checkout">
31
- {{#unless merged}}
32
- {{#if paymentsCheckoutV2 }}
33
- <div class="footer-checkout-holder footer-checkout-holder--payways">
34
- {{> payments-checkout-v2 }}
35
- </div>
36
- {{else}}
37
- <div class="footer-checkout-holder">
38
- {{> payments-checkout clearPayIcon="true" }}
39
- <span class="footer-checkout__copyright">Copyright © <span class="current-year"></span> Wickes.co.uk</span>
40
- </div>
41
- {{/if}}
42
- {{else}}
43
- <div class="summary__payment-message">
44
- <p class="summary__payment-main">{{vat-message.main}}</p>
45
- <p class="summary__payment-additional">{{vat-message.additional}}</p>
46
- </div>
47
- {{/unless}}
71
+ {{else}}
72
+ <div class="footer-checkout-holder">
73
+ {{> payments-checkout clearPayIcon="true" }}
74
+ <span class="footer-checkout__copyright">Copyright © <span class="current-year"></span> Wickes.co.uk</span>
48
75
  </div>
76
+ {{/if}}
77
+ {{else}}
78
+ <div class="summary__payment-message">
79
+ <p class="summary__payment-main">{{vat-message.main}}</p>
80
+ <p class="summary__payment-additional">{{vat-message.additional}}</p>
81
+ </div>
49
82
  {{/unless}}
50
- </div>
83
+ </div>
84
+ {{/unless}}
85
+ </div>
51
86
 
52
- {{#if basket-id}}
53
- <div class="summary__basked-id">
54
- Basket ID: <span class="id-number">136589003</span>
55
- </div>
56
- {{/if}}
87
+ {{#if basket-id}}
88
+ <div class="summary__basked-id">
89
+ Basket ID: <span class="id-number">136589003</span>
90
+ </div>
91
+ {{/if}}
57
92
 
58
- {{#if email}}
59
- <div class="summary__email">
60
- <h3 class="heading-3">Email</h3>
61
- <div class="summary__email-info">
62
- Examplemail@wickes.co.uk
63
- </div>
64
- </div>
65
- {{/if}}
93
+ {{#if email}}
94
+ <div class="summary__email">
95
+ <h3 class="heading-3">Email</h3>
96
+ <div class="summary__email-info">
97
+ Examplemail@wickes.co.uk
98
+ </div>
99
+ </div>
100
+ {{/if}}
66
101
  </div>
@@ -3,6 +3,10 @@
3
3
  <div class="col-md-12 pl-0">
4
4
  <div class="row">
5
5
  <div class="col-md-7 signup-tradepro-wrap">
6
+ {{#if fill-remaining}}
7
+ {{> notifications notification-page.warning classModifier="notification_warning fill-remaining fill-remaining--local"
8
+ text="Please fill in the remaining fields below, in order to create your account."}}
9
+ {{/if}}
6
10
  <form class="signup-tradepro form-bg">
7
11
  <div class="signup-tradepro__row">
8
12
  <div class="signup-tradepro__descr">