{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_icebreaker/cartridge/js/pages/gift-card.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","14","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_currencySymbol","util","require","initializeDOM","$","$mcl","max","text","html","replace","left","val","initGiftCardMessage","gca","_value","click","first","updateInputTypes","initializeEvents","on","this","focus","show","hide","remove","siblings","removeClass","addClass","gcao","_prefixLen","_this","setTimeout","_tmpStr","parent","find","e","preventDefault","giftCardNo","giftCardPin","_giftCardNo","_giftCardPin","test","getJSON","Urls","checkBalance","format","done","giftCertificate","ID","balance","error","Resources","VALIDATE_ERRORPREFIX","GIFTCERT_BOTH_NO_BLANK","GIFTCERT_NO_BLANK","$form","closest","validate","$amt","$pa","$opa","is","GIFT_CERT_CHOOSE_AMOUNT","appendTo","valid","_data","serialize","attr","errors","GeneralErrors","css","margin","success","location","pageEntry","init","appPages","giftcard"],"mappings":"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","file":"page_giftcard.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t14: 0\n \t};\n\n \tvar deferredModules = [];\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 \tvar jsonpArray = window[\"appWebpackJsonp\"] = window[\"appWebpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([273,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","'use strict';\n\nvar util = require('../components/util');\n\nvar _currencySymbol;\n\nvar initGiftCardMessage = function() {\n\n\t// init left character count and max characters\n\tvar $mcl = $(\".gc-message span.max-char-limit\");\n\tvar max = $mcl.data(\"maxlimit\");\n\tvar text = $mcl.html();\n\t$mcl.html( text.replace(\"XXX\", \"\").replace(\"YYY\", max) );\n\tvar count = $(\".gc-message textarea\").val().length;\n\tvar left = max - count;\n\t$(\".gc-message span.count\").text(left);\n\n};\n\nvar checkBalance = function(giftCardNo, giftCardPin) {\n\tif (giftCardNo) {\n\n\t\t$.getJSON(Urls.checkBalance, {giftCardNo: giftCardNo, giftCardPin: giftCardPin, format: \"ajax\"\n\t\t}).done(function( data ) {\n\t\t\tif (data.giftCertificate) {\n\t\t\t\t$(\".gc-no\").html(data.giftCertificate.ID);\n\t\t\t\t$(\".balance\").html(data.giftCertificate.balance);\n\n\t\t\t\t$(\"input[name*=_giftCertPin]\").data(\"pinrequired\", \"false\");\n\n\t\t\t\t$(\"input[name*=_giftCertID]\").val(\"\");\n\t\t\t\t$(\"input[name*=_giftCertPin]\").val(\"\");\n\t\t\t\t$(\".check-balance .gc-info\").show();\n\t\t\t} else {\n\t\t\t\tif (data.error) {\n\t\t\t\t\t$(\".check-balance .error\").html(data.error).show();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nvar initializeDOM = function() {\n\n\t_currencySymbol = $(\".gc-purchase\").data(\"currencysymbol\");\n\n\tinitGiftCardMessage();\n\n\t// select the correct amount button if editing otherwise pre-select the first value\n\tif ($(\"#dwfrm_giftcert_purchase_amount\").val()) {\n\t\tvar gca = $(\"#dwfrm_giftcert_purchase_amount\").val();\n\t\tvar _value = gca.replace(/[^\\d]/g, \"\");\n\t\tif ($('.purchase-amount li[data-amount=' + _value +']').length > 0) {\n\t\t\t$('.purchase-amount li[data-amount=' + _value + ']').click();\n\t\t} else {\n\t\t\t$(\".purchase-amount li[data-amount='other']\").click();\n\t\t\t$('.purchase-amount-other input').val(gca);\n\t\t}\n\t} else {\n\t\t$('.amount-selection ul li').first().click();\n\t}\n\n\t// Format fields for better UI\n\tutil.updateInputTypes($('input[name$=\"_recipientEmail\"]'), 'email');\n\tutil.updateInputTypes($('input[name$=\"_confirmRecipientEmail\"]'), 'email');\n\tutil.updateInputTypes($('input[name$=\"_giftcert_purchase_amount\"]'), 'tel');\n\tutil.updateInputTypes($('input[name$=\"_giftCertPin\"]'), 'tel');\n\n};\n\nvar initializeEvents = function() {\n\n\t// set hidden form and button\n\t$(\".amount-selection ul li\").on(\"click\", function() {\n\t\tif ($(this).data('amount') == 'other') {\n\t\t\t$('.purchase-amount-other input').val(_currencySymbol + ' ');\n\t\t\t$('.purchase-amount-other input').focus();\n\t\t\t$('.purchase-amount-other').show();\n\t\t} else {\n\t\t\tvar gca = $(this).data('amount');\n\t\t\t$('.purchase-amount-other').hide();\n\t\t\t$(\"#dwfrm_giftcert_purchase_amount\").val(gca);\n\t\t}\n\n\t\t// Remove error if exists\n\t\t$(\".error.choose-amount\").remove();\n\n\t\t$(this).siblings().removeClass('selected');\n\t\t$(this).addClass('selected');\n\t});\n\n\t// other amounts\n\t$(\".purchase-amount-other .gift-cert-amount\").on(\"keyup\", function() {\n\t\tvar gcao = $(this).val();\n\t\tvar _prefixLen = (_currencySymbol + ' ').length;\n\n\t\tif (gcao.length < _prefixLen) {\n\t\t\t$(this).val(_currencySymbol + ' ');\n\t\t\t$(this).focus();\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t});\n\n\t$(\"#GiftCertificateForm\").on(\"click\", \".purchase-amount-other .gift-cert-amount\", function() {\n\t\t$(this).focus();\n\t\tvar _this = this;\n\t\tsetTimeout( function() {\n\t\t\tvar _tmpStr = $(_this).val();\n\t\t\t$(_this).val('');\n\t\t\t$(_this).val(_tmpStr);\n\t\t}, 500);\n\t});\n\n\t$(\"#GiftCertificateForm input[name*=_from], #GiftCertificateForm input[name*=_recipient], #GiftCertificateForm input[name*=_recipientEmail], #GiftCertificateForm input[name*=_confirmRecipientEmail]\").on(\"focusout\", function() {\n\t\tif ($(this).val() != \"\") {\n\t\t\t$(this).removeClass(\"error\");\n\t\t\t$(this).parent().find(\"span.error\").hide();\n\t\t}\n\t});\n\n\t$(\"button.gc-balance-submit\").on(\"click\", function(e) {\n\t\te.preventDefault();\n\n\t\t// Clear previous errors and any pre-existing data if any\n\t\t$(\".check-balance .gc-info\").hide();\n\t\t$(\".check-balance .error\").html(\"\").hide();\n\n\t\tvar _giftCardNo = $(\"input[name*=_giftCertID]\").val();\n\t\tvar _giftCardPin = $(\"input[name*=_giftCertPin]\").val();\n\n\t\t// Always show the PIN field (if not already visible)\n\t\t$(\".gc-balance-pin\").show();\n\n\t\t// Validate gift card number and PIN\n\t\tif (_giftCardNo && /^[a-zA-Z0-9]+$/.test(_giftCardNo)) {\n\t\t\tif (_giftCardPin && _giftCardPin.length === 4 && /^[a-zA-Z0-9]+$/.test(_giftCardPin)) {\n\t\t\t\t// Both gift card number and PIN are valid\n\t\t\t\tcheckBalance(_giftCardNo, _giftCardPin);\n\t\t\t} else {\n\t\t\t\t// Invalid or missing PIN\n\t\t\t\t$(\".check-balance .error\").html(Resources.VALIDATE_ERRORPREFIX + \" \" + Resources.GIFTCERT_BOTH_NO_BLANK).show();\n\t\t\t}\n\t\t} else {\n\t\t\t// Invalid or missing gift card number\n\t\t\t$(\".check-balance .error\").html(Resources.GIFTCERT_NO_BLANK).show();\n\t\t}\n\t});\n\n\t$(\".gc-message textarea\").on(\"keyup keydown\", function() {\n\t\tvar max = $(\".gc-message span.max-char-limit\").data(\"maxlimit\");\n\t\tvar value = $(this).val();\n\t\tvar left = max - value.length;\n\t\tif (left < 0) {\n\t\t\t$(this).val( value.slice(0, left) );\n\t\t\tleft = 0;\n\t\t}\n\t\t$(\".gc-message span.count\").text(left);\n\t});\n\n\t$(\"#GiftCertificateForm\").on(\"click\", \"#AddToBasketButton\", function(e) {\n\t\te.preventDefault();\n\n\t\tvar $form = $(this).closest(\"form\");\n\n\t\t$form.validate();\n\n\t\tvar $amt = $form.find(\".amount-selection\");\n\t\tvar $pa = $(\".purchase-amount\");\n\t\tvar $opa = $(\".purchase-amount-other\");\n\n\t\tif ($amt.find(\"li.selected\").length == 0) {\n\t\t\tif ($opa.is(\":visible\") == false && $(\".error.choose-amount\").length == 0) {\n\t\t\t\t$(\"