{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_bardot/cartridge/client/default/js/kleber/kleberEmailValidation.js","webpack:///../sfra/cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack:///./cartridges/app_bardot/cartridge/client/default/js/kleber/kleberCommon.js","webpack:///./cartridges/app_bardot/cartridge/client/default/js/giftCertificatePDP.js","webpack:///./cartridges/app_bardot/cartridge/client/default/js/giftCertificate/giftCertificatePDP.js","webpack:///./cartridges/app_bardot/cartridge/client/default/js/giftCertificate/giftCertificateFormValidation.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","KLEBER_REQUEST_URL","kleber","require","emailRegex","KLEBER_METHODS","verifyEmail","kleberConfigs","window","isProductionInstance","isKleberEmailValid","emailEntered","email","val","Promise","resolve","reject","isKleberEmailValidationEnabled","test","getTemporaryAccessKey","then","kleberTemporaryAccessKey","$","ajax","url","dataType","type","contentType","data","Method","RequestId","RequestKey","EmailAddress","DepartmentCode","OutputFormat","success","DtResponse","Result","StatusCode","addClass","attr","removeAttr","validationMessage","parents","find","empty","append","removeClass","error","err","isValidEmail","inputEmail","include","keys","forEach","kleberTemporaryAccessKeyExpiry","parseInt","currentTime","Date","getTime","generateTemporaryAccessKeyURL","method","done","status","xhr","fail","processInclude","document","ready","formValidation","kleberEmailValidation","on","this","closest","hasClass","css","form","invalidFeedback","siblings","text","e","preventDefault","stopPropagation","stopImmediatePropagation","submit","checkValidity","emailField","isValid","spinner","start","serialize","response","$form","amountError","stop","trigger","length","message","setTimeout","remove","redirectUrl","location","href","responseJSON","$checkBalanceNotification","html","errorMessage","balanceMessage","click","currentElement","amount","width","giftCertPinHolder","giftCertCode","hide","keyup","show","off","submitUrl","$giftCertBalanceMsg","formElement","payload","clearFormErrors","fields","feedbackElement","indexOf","parent","children","Array","isArray","join","prop","visualError","prepend"],"mappings":"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","file":"default\\js\\giftCertificatePDP.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 86);\n","/* eslint-disable no-unused-vars */\r\n'use strict';\r\n\r\nvar kleber = require('./kleberCommon.js');\r\n\r\n// eslint-disable-next-line no-useless-escape\r\nvar emailRegex = /^[\\w.%+\\-]+@[\\w.\\-]+\\.[\\w]{2,6}$/;\r\n\r\n\r\n var KLEBER_METHODS = {\r\n Default: {\r\n verifyEmail: 'DataTools.Verify.Email.BriteVerify.VerifyEmail'\r\n }\r\n };\r\n\r\nvar kleberConfigs = window.kleberConfigs;\r\nvar isProductionInstance = kleberConfigs.isProductionInstance;\r\nvar KLEBER_REQUEST_URL;\r\n\r\nif (isProductionInstance) {\r\n KLEBER_REQUEST_URL = 'https://kleber.datatoolscloud.net.au/KleberWebService/DtKleberService.svc/ProcessQueryStringRequest';\r\n} else {\r\n KLEBER_REQUEST_URL = 'https://kleber-devuat.datatoolscloud.net.au/KleberWebService/DtKleberService.svc/ProcessQueryStringRequest';\r\n}\r\n\r\n/**\r\n * Checks if Kleber email validation feature is enabled\r\n * @returns {boolean} - Kleber email validation feature enabled\r\n */\r\n function isEnableKleberEmailValidation() {\r\n if (kleberConfigs && kleberConfigs.isKleberEmailValidationEnabled) {\r\n return kleberConfigs.isKleberEmailValidationEnabled;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * This function retrieves the Kleber email validation.\r\n * The Kleber temporary key is retrieved/generated via a promise and when the promise is resolved, the Kleber Search API is invoked.\r\n * Once we receive the response, email validation is done\r\n * @param {*} emailEntered - email input entered by customer\r\n * @returns {boolean} - true/false\r\n **/\r\nfunction isKleberEmailValid(emailEntered) {\r\n var email = emailEntered.val();\r\n return new Promise((resolve, reject) => {\r\n if (isEnableKleberEmailValidation()) {\r\n if (email !== '' || emailRegex.test(email)) {\r\n kleber.getTemporaryAccessKey().then(kleberTemporaryAccessKey => {\r\n $.ajax({\r\n url: KLEBER_REQUEST_URL,\r\n dataType: 'jsonp',\r\n type: 'GET',\r\n contentType: 'application/json; charset=utf-8',\r\n data: {\r\n Method: KLEBER_METHODS.Default.verifyEmail,\r\n RequestId: ' ',\r\n RequestKey: kleberTemporaryAccessKey,\r\n EmailAddress: email,\r\n DepartmentCode: '',\r\n OutputFormat: 'json'\r\n },\r\n success: function (data) {\r\n if (data.DtResponse.Result[0].StatusCode !== '0' && data.DtResponse.Result[0].StatusCode !== '1' && data.DtResponse.Result[0].StatusCode !== '3') {\r\n emailEntered.addClass('is-invalid');\r\n if ($('.submit-customer').attr('disabled')) {\r\n $('.submit-customer').removeAttr('disabled');\r\n }\r\n var validationMessage = emailEntered.data('kleber-validation-message');\r\n emailEntered.parents('.form-group').find('.invalid-feedback').empty().append(validationMessage);\r\n resolve(false);\r\n } else {\r\n emailEntered.removeClass('is-invalid');\r\n emailEntered.parents('.form-group').find('.invalid-feedback').empty();\r\n resolve(true);\r\n }\r\n },\r\n error: function (err) {\r\n resolve(false);\r\n }\r\n });\r\n });\r\n } else {\r\n emailEntered.addClass('is-invalid');\r\n if ($('.submit-customer').attr('disabled')) {\r\n $('.submit-customer').removeAttr('disabled');\r\n }\r\n var validationMessage = emailEntered.data('kleber-validation-message');\r\n emailEntered.parents('.form-group').find('.invalid-feedback').empty().append(validationMessage);\r\n resolve(false);\r\n }\r\n } else {\r\n resolve(true);\r\n }\r\n });\r\n}\r\n\r\n\r\nmodule.exports = {\r\n isValidEmail: function (inputEmail) { // eslint-disable-line\r\n if (inputEmail) {\r\n return isKleberEmailValid(inputEmail);\r\n }\r\n }\r\n};\r\n","'use strict';\r\n\r\nmodule.exports = function (include) {\r\n if (typeof include === 'function') {\r\n include();\r\n } else if (typeof include === 'object') {\r\n Object.keys(include).forEach(function (key) {\r\n if (typeof include[key] === 'function') {\r\n include[key]();\r\n }\r\n });\r\n }\r\n};\r\n","'use-strict';\r\n\r\nvar kleberConfigs = window.kleberConfigs;\r\n\r\n/**\r\n * Creates a promise for retrieving/generating temporary access key\r\n *\r\n * @returns {Object} Promise\r\n */\r\n function getTemporaryAccessKey() {\r\n // Check and generate new key if key is going to expire in 1 minute\r\n var kleberTemporaryAccessKeyExpiry = kleberConfigs.kleberTemporaryAccessKeyExpiry\r\n ? parseInt(kleberConfigs.kleberTemporaryAccessKeyExpiry): 0; //eslint-disable-line\r\n var currentTime = new Date().getTime();\r\n if (\r\n kleberConfigs.kleberTemporaryAccessKey &&\r\n kleberTemporaryAccessKeyExpiry &&\r\n kleberTemporaryAccessKeyExpiry - currentTime > 60000\r\n ) {\r\n // Key can be reused\r\n return new Promise((resolve, reject) => {//eslint-disable-line\r\n resolve(kleberConfigs.kleberTemporaryAccessKey);\r\n });\r\n }\r\n\r\n // Generate new key\r\n return new Promise((resolve, reject) => {\r\n $.ajax({\r\n type: 'GET',\r\n url: kleberConfigs.generateTemporaryAccessKeyURL,\r\n method: 'GET',\r\n dataType: 'json'\r\n })\r\n .done(function (data, status, xhr) {//eslint-disable-line\r\n if (\r\n data.kleberTemporaryAccessKey &&\r\n data.kleberTemporaryAccessKeyExpiry\r\n ) {\r\n kleberConfigs.kleberTemporaryAccessKey =\r\n data.kleberTemporaryAccessKey;\r\n kleberConfigs.kleberTemporaryAccessKeyExpiry =\r\n data.kleberTemporaryAccessKeyExpiry;\r\n }\r\n resolve(kleberConfigs.kleberTemporaryAccessKey);\r\n })\r\n .fail(function (xhr, status, error) {//eslint-disable-line\r\n reject('');\r\n });\r\n });\r\n}\r\n\r\nmodule.exports = {\r\n getTemporaryAccessKey: getTemporaryAccessKey\r\n};\r\n","'use strict';\r\n\r\nvar processInclude = require('base/util');\r\n\r\n$(document).ready(function () {\r\n processInclude(require('./giftCertificate/giftCertificatePDP'));\r\n});\r\n","'use strict';\r\n\r\nvar formValidation = require('./giftCertificateFormValidation');\r\nvar kleberEmailValidation = require('../kleber/kleberEmailValidation');\r\n\r\n/**\r\n * Updates the Mini-Cart quantity value after the customer has pressed the \"Add to Cart\" button\r\n * @param {string} response - ajax response from clicking the add to cart button\r\n */\r\nfunction handlePostGiftCertAdd(response) {\r\n $('.minicart').trigger('count:update', response);\r\n\r\n if (response.error) {\r\n return;\r\n }\r\n\r\n if ($('.add-to-cart-messages').length === 0) {\r\n $('body').append('
');\r\n }\r\n\r\n $('.add-to-cart-messages').append(\r\n '
'\r\n + response.message\r\n + '
'\r\n );\r\n\r\n setTimeout(function () {\r\n $('.add-to-cart-messages').remove();\r\n }, 5000);\r\n}\r\n\r\n/**\r\n * Clean form fields\r\n * @param {Object} $form - jQuery form object\r\n */\r\nfunction cleanForm($form) {\r\n $form.find('input[type=text], input[type=email], input[type=number], textarea').val('');\r\n $form.find('.alert').remove();\r\n}\r\n\r\n/**\r\n * move error HTML5 message to different element\r\n */\r\nfunction validateAmount() {\r\n var amountError = $('.invalid-feedback-amount-hidden').text();\r\n if (amountError) {\r\n $('.invalid-feedback-amount').text(amountError).css('display', 'inline-block');\r\n }\r\n}\r\n\r\nmodule.exports = function () {\r\n $('.gift-cert-msg-close').on('click', function () {\r\n $(this).closest('.gift-cert-balance-msg').addClass('d-none');\r\n });\r\n\r\n $('#amount-input').on('blur', function () {\r\n var $this = $(this);\r\n if ($this.hasClass('is-invalid')) {\r\n $('.invalid-feedback-amount').css('display', 'inline-block');\r\n } else {\r\n $('.invalid-feedback-amount').css('display', 'none');\r\n }\r\n });\r\n\r\n $('.buttons-giftcert').on('click', function () {\r\n var form = $('form.giftcert-purchase');\r\n var invalidFeedback = $('.js-fixed-amount-invalid-message');\r\n var update = invalidFeedback.siblings().hasClass('gift-line-item');\r\n \r\n if (!update) {\r\n if (!$('.giftCertificateAmountCta').hasClass('active')) {\r\n form.addClass('is-invalid');\r\n invalidFeedback.siblings().addClass('is-invalid');\r\n invalidFeedback.text('How much do you want to gift?');\r\n } else {\r\n form.removeClass('is-invalid');\r\n invalidFeedback.siblings().removeClass('is-invalid');\r\n invalidFeedback.text('');\r\n }\r\n }\r\n });\r\n\r\n $('form.giftcert-purchase').on('submit', function (e) {\r\n if ($(this).hasClass('is-invalid')) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n\r\n $('form.giftcert-purchase').submit(function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n $('form.giftcert-purchase .btn-save-container button').attr('disabled', 'disabled');\r\n var form = $(this);\r\n\r\n if (!form[0].checkValidity()) {\r\n return false;\r\n }\r\n\r\n var url = form.attr('action');\r\n\r\n var emailField = $('form.giftcert-purchase #recipientEmail-input');\r\n\r\n kleberEmailValidation.isValidEmail(emailField).then(isValid => {\r\n if (isValid) {\r\n form.spinner().start();\r\n $.ajax({\r\n url: url,\r\n type: 'post',\r\n dataType: 'json',\r\n data: form.serialize(),\r\n success: function (data) {\r\n form.spinner().stop();\r\n $('form.giftcert-purchase .btn-save-container button').removeAttr('disabled', 'disabled');\r\n handlePostGiftCertAdd(data);\r\n \r\n if (!data.success) {\r\n formValidation(form, data);\r\n validateAmount();\r\n } else {\r\n $('body').trigger('product:afterAddToCart', data);\r\n cleanForm($('form.giftcert-purchase'));\r\n \r\n // Reset the selected value (fixed or custom)\r\n form.find('.js-giftCertificateAmount').removeClass('active');\r\n form.find('#amount-input').val('');\r\n }\r\n \r\n if (data.success && data.redirectUrl) {\r\n window.location.href = data.redirectUrl;\r\n }\r\n },\r\n error: function (err) {\r\n if (err.responseJSON.redirectUrl) {\r\n window.location.href = err.responseJSON.redirectUrl;\r\n }\r\n form.spinner().stop();\r\n }\r\n });\r\n }\r\n $('form.giftcert-purchase .btn-save-container button').removeAttr('disabled', 'disabled');\r\n });\r\n return false;\r\n });\r\n\r\n $('form.js-giftcert-check-balance').submit(function (e) {\r\n var form = $(this);\r\n e.preventDefault();\r\n var url = form.attr('action');\r\n form.spinner().start();\r\n\r\n $.ajax({\r\n url: url,\r\n type: 'post',\r\n dataType: 'json',\r\n data: form.serialize(),\r\n success: function (data) {\r\n form.spinner().stop();\r\n\r\n var $checkBalanceNotification = $('.gift-cert-balance-msg');\r\n\r\n if (data.error) {\r\n $checkBalanceNotification\r\n .addClass('alert-danger')\r\n .removeClass('alert-info')\r\n .find('.resultMessage')\r\n .html(data.errorMessage);\r\n\r\n setTimeout(function () {\r\n // Prevent hiding the container if the content of the message has changed to \"alert-info\"\r\n if ($checkBalanceNotification.hasClass('alert-danger')) {\r\n $checkBalanceNotification.addClass('d-none');\r\n }\r\n }, 5000);\r\n } else {\r\n $checkBalanceNotification\r\n .addClass('alert-info')\r\n .removeClass('alert-danger')\r\n .find('.resultMessage')\r\n .html(data.balanceMessage)\r\n .removeClass('d-none');\r\n }\r\n\r\n // Make the container visible after all data inside is set\r\n $checkBalanceNotification.removeClass('d-none');\r\n },\r\n error: function (err) {\r\n if (err.responseJSON.redirectUrl) {\r\n window.location.href = err.responseJSON.redirectUrl;\r\n }\r\n form.spinner().stop();\r\n }\r\n });\r\n return false;\r\n });\r\n\r\n $('.js-giftCertificateAmount').click(function (e) {\r\n e.preventDefault();\r\n var currentElement = $(this);\r\n\r\n // Remove the selected status class from all buttons and add it only to the current\r\n currentElement.closest('.row').find('.js-giftCertificateAmount, .js-otherGiftCertificateAmount').removeClass('active');\r\n currentElement.addClass('active');\r\n\r\n var amount = parseInt(currentElement.data('amount'), 10);\r\n $('#amount-input').val(amount);\r\n $('.gift-certificate-amount-row').addClass('d-none');\r\n });\r\n\r\n $('.js-otherGiftCertificateAmount').click(function (e) {\r\n e.preventDefault();\r\n var currentElement = $(this);\r\n\r\n // Remove the selected status class from all buttons and add it only to the current\r\n currentElement.closest('.row').find('.js-giftCertificateAmount').removeClass('active');\r\n currentElement.addClass('active');\r\n\r\n $('#amount-input').val('');\r\n $('.gift-certificate-amount-row').removeClass('d-none');\r\n });\r\n\r\n if ($(window).width() > 1440) {\r\n $('#message-input').attr('placeholder', 'Please enter your message..');\r\n }\r\n\r\n // Hide gift pin initial and show when gift cert code leghth >= 6\r\n $(document).ready(function () {\r\n var giftCertPinHolder = $('#giftCertPinHolder');\r\n var giftCertCode = $('#giftCertCode');\r\n giftCertPinHolder.hide();\r\n\r\n giftCertCode.keyup(function () {\r\n if (this.value.length >= 6) {\r\n giftCertPinHolder.show();\r\n } else {\r\n giftCertPinHolder.hide();\r\n }\r\n });\r\n });\r\n};\r\n\r\n// Gift certificate Balance Message\r\n$('#btnGiftCertCheckBalance').off('click').on('click', function (e) {\r\n e.preventDefault();\r\n var $form = $('.js-giftcert-check-balance');\r\n var submitUrl = $(this).data('url');\r\n\r\n $.ajax({\r\n url: submitUrl,\r\n method: 'POST',\r\n data: $form.serialize()\r\n }).done(function (data) {\r\n var $giftCertBalanceMsg = $('.gift-cert-balance-msg');\r\n\r\n $giftCertBalanceMsg.removeClass('d-none');\r\n\r\n if (data.error) {\r\n $giftCertBalanceMsg\r\n .addClass('alert-danger')\r\n .removeClass('alert-info')\r\n .find('.resultMessage').html(data.errorMessage);\r\n\r\n setTimeout(function () {\r\n if ($giftCertBalanceMsg.hasClass('alert-danger')) {\r\n $giftCertBalanceMsg.addClass('d-none');\r\n }\r\n }, 5000);\r\n } else {\r\n $giftCertBalanceMsg\r\n .addClass('alert-info')\r\n .removeClass('alert-danger')\r\n .find('.resultMessage')\r\n .html(data.balanceMessage)\r\n .removeClass('d-none');\r\n }\r\n });\r\n});\r\n\r\n","'use strict';\r\n\r\n/**\r\n * Remove all validation. Should be called every time before revalidating form\r\n * @param {element} form - Form to be cleared\r\n * @returns {void}\r\n */\r\nfunction clearFormErrors(form) {\r\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\r\n}\r\n\r\nmodule.exports = function (formElement, payload) {\r\n // clear form validation first\r\n clearFormErrors(formElement);\r\n $('.alert', formElement).remove();\r\n\r\n if (typeof payload === 'object' && payload.fields) {\r\n Object.keys(payload.fields).forEach(function (key) {\r\n if (payload.fields[key]) {\r\n var feedbackElement = null;\r\n\r\n // This check is to ensure we inject the error message in the proper visible element\r\n if ($('.gift-certificate-amount-row').hasClass('d-none') && key.indexOf('amount') > 0) {\r\n feedbackElement = $('.invalid-feedback.js-fixed-amount-invalid-message');\r\n } else {\r\n feedbackElement = $(formElement).find('[name=\"' + key + '\"]')\r\n .parent()\r\n .children('.invalid-feedback');\r\n }\r\n\r\n if (feedbackElement.length > 0) {\r\n if (Array.isArray(payload[key])) {\r\n feedbackElement.html(payload.fields[key].join('
'));\r\n } else {\r\n feedbackElement.html(payload.fields[key]);\r\n }\r\n\r\n feedbackElement.siblings('.form-control').addClass('is-invalid');\r\n feedbackElement.removeClass('d-none');\r\n }\r\n }\r\n });\r\n }\r\n if (payload && payload.error) {\r\n var form = $(formElement).prop('tagName') === 'FORM'\r\n ? $(formElement)\r\n : $(formElement).parents('form');\r\n var visualError = '';\r\n if (Array.isArray(payload.error)) {\r\n visualError = payload.error.join('
');\r\n } else {\r\n visualError = payload.message;\r\n }\r\n form.prepend('
'\r\n + visualError + '
');\r\n }\r\n};\r\n"],"sourceRoot":""}