{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 0c7d49f6cda8d7b46f3e?df0f","webpack:///./app/fields.js?f138","webpack:///./app/events.js?64f7","webpack:///./app/message.js?938b","webpack:///./app/style.js?d3c3","webpack:///./app/polyfills/classList.js?b242","webpack:///./app/main/controller.js","webpack:///./app/main/view.js","webpack:///./app/main/index.js"],"names":["Fields","CARD_NUMBER","CVV","EXPIRY","module","exports","Events","checkOrigin","event","expected","origin","message","blur","focus","empty","complete","brand","error","value","input","change","require","Message","create","details","_generic","updateCvvPresent","updateIFrame","type","inputHeight","changeValue","newValue","autofill","callback","eventName","registerCallback","brandChange","askForBrand","askerField","asker","beginTokenization","tokenResponse","result","code","errorOrToken","last4","expiryMonth","expiryYear","token","validationRequest","validationResponse","field","valid","clear","update","name","Style","supportedClassProperties","supportedStyleProperties","supportedCSSProperties","supportedPseudoClasses","getDefaultCustomClasses","base","validateStyleArgument","styles","errors","group","hasOwnProperty","indexOf","push","rule","subRule","buildRuleStringFromStyle","style","rules","color","fontFamily","fontStyle","fontSize","textDecoration","fontWeight","paddingLeft","paddingTop","paddingRight","paddingBottom","padding","regExp","RegExp","forEach","list","fn","scope","i","length","call","ClassList","element","prototype","add","arguments","contains","className","remove","replace","toggle","test","oldName","newName","Element","Object","defineProperty","get","window","DOMTokenList","Controller","view","self","eventCallbacks","customClasses","bind","receiveMessage","on","createToken","updateWrapperClass","classes","render","class","callbackEvent","REMOTE_ORIGIN","data","String","JSON","parse","err","setCustomClasses","property","options","msg","postMessage","mount","unmount","supportedEvents","parent","errorMsg","getParent","View","$iFrame","iFrameLoaded","parentOf","isSupportedBrowser","_updateIFrame","iframe","height","_addClass","classList","_error","_removeClass","_create","location","protocol","hostname","port","document","createElement","src","REMOTE_PAGE_URL","encodeURIComponent","href","scrolling","width","border","overflow","backgroundColor","allowTransparency","_mount","querySelector","appendChild","_unmount","removeChild","firstChild","str","console","viewCmd","parameter","viewCommands","addClass","removeClass","iFrameSrc","contentWindow","stringify","e","queuedMessages","onload","handler","addEventListener","controller"],"mappings":"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","file":"customcheckout.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"customcheckout\"] = factory();\n\telse\n\t\troot[\"customcheckout\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0c7d49f6cda8d7b46f3e","var Fields = {\n CARD_NUMBER: 'card-number',\n CVV: 'cvv',\n EXPIRY: 'expiry',\n};\n\nmodule.exports = Fields;\n\n\n// WEBPACK FOOTER //\n// ./app/fields.js","var Events = {\n\n checkOrigin: function(event, expected) {\n if(!event) return false;\n \n // Ensure correct origin\n if (event.origin !== expected) {\n return false;\n }\n return true;\n },\n\n message: 'message',\n blur: 'blur',\n focus: 'focus',\n empty: 'empty',\n complete: 'complete',\n brand: 'brand',\n error: 'error',\n value: 'value',\n input: 'input',\n change: 'change',\n};\n\nmodule.exports = Events;\n\n\n// WEBPACK FOOTER //\n// ./app/events.js","/* \nMethods for easily creating strictly formatted messages that can be passed \nbetween iframes and the source page. \n*/\nconst Events = require('../app/events.js');\n\nvar Message = {\n\n // Used on field/iframe creation\n // details are e.g. style, placeholder, classes\n create: function(details) {\n return this._generic('create', details);\n },\n\n // Sent from the cvv iframe to the card number and expiry iframes, to\n // indicate that cvv is being used on the page. \n updateCvvPresent: function() {\n return this._generic('cvvPresent');\n },\n\n // sent back from an iFrame to the source window after creation. \n // used to update the dimensions of the iFrame to fit the created input.\n updateIFrame: function(type, inputHeight) {\n return this._generic('updateIFrame', { type: type, inputHeight: inputHeight} );\n },\n\n changeValue: function(newValue, autofill) {\n return this._generic('changeValue', { newValue: newValue, autofill: autofill });\n },\n\n callback: function(eventName, event) {\n const details = {\n eventName: eventName,\n event: event,\n };\n return this._generic('callbackEvent', details);\n },\n\n // Sent from source window to the iFrames to set up an \n // event callback that can be triggered on the iframe, \n // back to the source.\n registerCallback: function(eventName) {\n const details = {\n eventName: eventName,\n };\n return this._generic('registerCallback', details);\n },\n\n // Sent from the card number window to the cvv window when the card brand\n // changes, so that cvv can validate against the current brand.\n brandChange: function(brand) {\n const details = {\n brand: brand,\n };\n return this._generic('brandChange', details);\n },\n\n // Sent from the card number to the cvv window when cvv asks for it (as opposed\n // to when brand changes -- above). Needed in the case that cvv has been mounted\n // or re-mounted after the brand has been updated.\n askForBrand: function(askerField) {\n const details = {\n asker: askerField,\n };\n return this._generic('askForBrand', details);\n },\n\n // Sent from the source window to the card number iframe to start the \n // tokenization process (validation and ajax request).\n beginTokenization: function() {\n return this._generic('beginTokenization');\n },\n\n tokenResponse: function(result, code, errorOrToken, last4, expiryMonth, expiryYear) {\n let details = { event: {} };\n details.event.code = code;\n if(result === Events.error) {\n details.event.error = errorOrToken;\n } else {\n details.event.token = errorOrToken;\n details.event.last4 = last4;\n details.event.expiryMonth = expiryMonth;\n details.event.expiryYear = expiryYear;\n }\n return this._generic('tokenResponse', details);\n },\n\n // Sent from one iframe input to another requesting validation information.\n validationRequest: function() {\n return this._generic('validationRequest');\n },\n\n // Sent from one iframe back to the one that requested validation information.\n // If valid, message includes the value of the field.\n validationResponse: function(field, valid, value) {\n const details = {\n field: field,\n valid: valid, \n value: value, \n };\n return this._generic('validationResponse', details);\n },\n\n // Sent from one iframe input to another requesting input focus.\n focus: function() {\n return this._generic('focus');\n },\n\n // Sent from one iframe input to another requesting input blur.\n blur: function() {\n return this._generic('blur');\n },\n\n // Sent from one iframe input to another requesting input clear.\n clear: function() {\n return this._generic('clear');\n },\n\n // Used to update field/iframe\n // details are e.g. style, placeholder, classes\n update: function(details) {\n return this._generic('update', details);\n },\n\n // Create an empty named message\n _generic: function(name, details) {\n return {\n name: name,\n details: details,\n };\n },\n};\n\nmodule.exports = Message;\n\n\n// WEBPACK FOOTER //\n// ./app/message.js","let Style = {\n supportedClassProperties: ['base', 'complete', 'error', 'empty', 'focus'],\n supportedStyleProperties: ['base', 'complete', 'error', 'empty'],\n supportedCSSProperties: ['color', 'fontFamily', 'fontSize', 'fontStyle', \n 'textDecoration', 'fontWeight', 'paddingLeft', 'paddingTop', 'paddingRight',\n 'paddingBottom', 'padding'],\n supportedPseudoClasses: [':hover', ':focus'],\n\n getDefaultCustomClasses: function() {\n return {\n base: 'bambora-checkoutfield',\n complete: 'bambora-checkoutfield-complete',\n empty: 'bambora-checkoutfield-empty',\n focus: 'bambora-checkoutfield-focus',\n error: 'bambora-checkoutfield-error',\n };\n },\n\n // Parse the argument of style information passed in and return an array of \n // errors present (if any).\n validateStyleArgument: function(styles) {\n let errors = [];\n for (let group in styles) {\n if (styles.hasOwnProperty(group)) {\n if (this.supportedStyleProperties.indexOf(group) <= -1) {\n errors.push(`'${group}' is not a supported style group`);\n \n } else {\n if (typeof styles[group] !== 'object') {\n errors.push(`style group '${group}' must be an object`);\n continue;\n }\n\n for (let rule in styles[group]) {\n if (styles[group].hasOwnProperty(rule)) {\n if (this.supportedCSSProperties.indexOf(rule) <= -1 && \n this.supportedPseudoClasses.indexOf(rule) <= -1) {\n errors.push(`'${rule}' is not a supported style setting`);\n \n } else if (this.supportedPseudoClasses.indexOf(rule) > -1) {\n if (typeof styles[group][rule] !== 'object') {\n errors.push(`style property ${rule} must be an object`);\n continue;\n }\n\n for (let subRule in styles[group][rule]) {\n if (styles[group][rule].hasOwnProperty(subRule)) {\n if (this.supportedCSSProperties.indexOf(subRule) <= -1) {\n errors.push(`${subRule} is not a supported nested style setting`);\n\n } else {\n if (typeof styles[group][rule][subRule] !== 'string') {\n errors.push(`style property ${subRule} must be an object`);\n }\n }\n }\n }\n } else {\n if (typeof styles[group][rule] !== 'string') {\n errors.push(`style property ${rule} must be a string`);\n }\n }\n }\n }\n }\n }\n }\n return errors;\n },\n\n buildRuleStringFromStyle: function(style) {\n let rules = '';\n\n if (style.color) {\n rules += `color: ${style.color}; `;\n }\n\n if (style.fontFamily) {\n rules += `font-family: ${style.fontFamily}; `;\n }\n\n if (style.fontStyle) {\n rules += `font-style: ${style.fontStyle};`;\n }\n\n if (style.fontSize) {\n rules += `font-size: ${style.fontSize}; `;\n }\n\n if (style.textDecoration) {\n rules += `text-decoration: ${style.textDecoration}; `;\n }\n\n if (style.fontWeight) {\n rules += `font-weight: ${style.fontWeight}; `;\n }\n\n if (style.paddingLeft) {\n rules += `padding-left: ${style.paddingLeft}; `; \n }\n\n if (style.paddingTop) {\n rules += `padding-top: ${style.paddingTop}; `;\n }\n\n if (style.paddingRight) {\n rules += `padding-right: ${style.paddingRight}; `;\n }\n\n if (style.paddingBottom) {\n rules += `padding-bottom: ${style.paddingBottom}; `;\n }\n\n if (style.padding) {\n rules += `padding: ${style.padding}; `;\n }\n\n return rules;\n },\n\n};\n\nmodule.exports = Style;\n\n\n\n// WEBPACK FOOTER //\n// ./app/style.js","// Source: https://gist.github.com/k-gun/c2ea7c49edf7b757fe9561ba37cb19ca\n;(function() {\n // helpers\n var regExp = function(name) {\n return new RegExp('(^| )'+ name +'( |$)');\n };\n var forEach = function(list, fn, scope) {\n for (var i = 0; i < list.length; i++) {\n fn.call(scope, list[i]);\n }\n };\n\n // class list object with basic methods\n function ClassList(element) {\n this.element = element;\n }\n\n ClassList.prototype = {\n add: function() {\n forEach(arguments, function(name) {\n if (!this.contains(name)) {\n this.element.className += this.element.className.length > 0 ? ' ' + name : name;\n }\n }, this);\n },\n remove: function() {\n forEach(arguments, function(name) {\n this.element.className =\n this.element.className.replace(regExp(name), ' ');\n }, this);\n },\n toggle: function(name) {\n return this.contains(name) \n ? (this.remove(name), false) : (this.add(name), true);\n },\n contains: function(name) {\n return regExp(name).test(this.element.className);\n },\n // bonus..\n replace: function(oldName, newName) {\n this.remove(oldName), this.add(newName);\n }\n };\n\n // IE8/9, Safari\n if (!('classList' in Element.prototype)) {\n Object.defineProperty(Element.prototype, 'classList', {\n get: function() {\n return new ClassList(this);\n }\n });\n }\n\n // replace() support for others\n if (window.DOMTokenList && DOMTokenList.prototype.replace == null) {\n DOMTokenList.prototype.replace = ClassList.prototype.replace;\n }\n})();\n\n\n\n// WEBPACK FOOTER //\n// ./app/polyfills/classList.js","/* global REMOTE_ORIGIN */\n\nconst Events = require('../events.js');\nconst Fields = require('../fields.js');\nconst Message = require('../message.js');\nconst Style = require('../style.js');\n\n/* Constructor */\n\nfunction Controller(view) {\n var self = this;\n self.view = view;\n\n self.eventCallbacks = {}; // the functions that are registered on fields to \n // be called on events (e.g. on load, error, etc.)\n\n self.customClasses = {};\n self.customClasses[Fields.CARD_NUMBER] = Style.getDefaultCustomClasses();\n self.customClasses[Fields.CVV] = Style.getDefaultCustomClasses();\n self.customClasses[Fields.EXPIRY] = Style.getDefaultCustomClasses();\n\n // link message eventListener callback to the view immediately\n self.view.bind('message', function(event) {\n self.receiveMessage(event);\n });\n\n // bind API methods to use controller 'self' for internal 'this', so that \n // they behave as expected\n self.create = self.create.bind(self);\n self.on = self.on.bind(self);\n self.createToken = self.createToken.bind(self);\n}\n\nController.prototype.updateWrapperClass = function(eventName, event) {\n const self = this;\n const field = event.field; \n const classes = self.customClasses[field];\n\n if (eventName === Events.focus) {\n self.view.render('addClass', { field: field, class: classes.focus });\n } else if (eventName === Events.blur) {\n self.view.render('removeClass', { field: field, class: classes.focus });\n } else if (eventName === Events.empty) {\n if (event.empty) {\n self.view.render('addClass', { field: field, class: classes.empty });\n } else {\n self.view.render('removeClass', { field: field, class: classes.empty });\n }\n } else if (eventName === Events.complete) {\n if (event.complete) {\n self.view.render('removeClass', { field: field, class: classes.error });\n self.view.render('addClass', { field: field, class: classes.complete });\n } else {\n self.view.render('removeClass', { field: field, class: classes.complete });\n }\n } else if (eventName === Events.error) {\n self.view.render('removeClass', { field: field, class: classes.complete });\n self.view.render('addClass', { field: field, class: classes.error });\n }\n};\n\nController.prototype.callbackEvent = function(details) {\n const self = this;\n const eventName = details.eventName;\n const event = details.event;\n\n self.updateWrapperClass(eventName, event);\n if (self.eventCallbacks[eventName]) {\n self.eventCallbacks[eventName](event);\n }\n};\n\nController.prototype.receiveMessage = function(event) {\n const self = this;\n \n if (!Events.checkOrigin(event, REMOTE_ORIGIN)) {\n return false;\n }\n\n // Handle message\n let message = event.data;\n if (typeof message === 'string' || message instanceof String) {\n try {\n message = JSON.parse(message);\n } catch (err) {\n self.view.render('error', `Could not parse message: ${err.name} - ${err.message}`);\n }\n }\n const details = message.details;\n \n if (message.name === 'updateIFrame') {\n self.view.render('updateIFrame', details); \n } else if (message.name === 'callbackEvent') {\n self.callbackEvent(details);\n } else if (message.name === 'tokenResponse') {\n self.eventCallbacks['token'](details.event);\n }\n \n return true;\n};\n\nController.prototype.setCustomClasses = function(type, classes) {\n const self = this;\n for (let property in classes) {\n if (classes.hasOwnProperty(property)) {\n if (Style.supportedClassProperties.indexOf(property) > -1) {\n if (typeof classes[property] === 'string' || classes[property] instanceof String) {\n self.customClasses[type][property] = classes[property];\n } else {\n self.view.render('error', `'${property}' classes property requires a string value`);\n }\n } else {\n self.view.render('error', `'${property}' is not a supported custom class`);\n }\n }\n }\n};\n\n/* API Methods */\n\nController.prototype.create = function(type, options={}) {\n const self = this;\n\n if (type !== Fields.CARD_NUMBER && type !== Fields.CVV && type !== Fields.EXPIRY) {\n self.view.render('error', `type must be ${Fields.CARD_NUMBER}, ${Fields.CVV}, or ${Fields.EXPIRY}`);\n return; \n }\n\n if (options.classes) {\n self.setCustomClasses(type, options.classes);\n }\n \n self.view.render('create', type); \n var msg = Message.create(options);\n self.view.postMessage(msg, type);\n \n return {\n // field object API methods:\n mount: self.mount.bind(this, type),\n unmount: self.unmount.bind(this, type),\n focus: self.focus.bind(this, type),\n blur: self.blur.bind(this, type),\n clear: self.clear.bind(this, type),\n update: self.update.bind(this, type),\n };\n};\n\n// Registers the callback in the controller's callbacks object and \n// posts a message to the iframe of the event to respond to. \nController.prototype.on = function(eventName, callback) {\n var self = this;\n\n // Return error if callback type is not supported \n const supportedEvents = [Events.blur, Events.focus, Events.empty, Events.complete, Events.brand, Events.error];\n if(supportedEvents.indexOf(eventName) <= -1) {\n self.view.render('error', `event type '${eventName}' not supported`);\n return; \n }\n\n // register this callback for each of the inputs \n self.eventCallbacks[eventName] = callback;\n};\n\n// Kicks off token creation by registering the callback and \n// sending a 'createToken' message to the iframe.\nController.prototype.createToken = function(callback) {\n var self = this;\n self.eventCallbacks['token'] = callback;\n self.view.postMessage(Message.beginTokenization(), Fields.CARD_NUMBER);\n};\n\n/* field object API methods */\n\n// Method on the object returned from #create()\n// type and options arguments are bound to the function on creation\nController.prototype.mount = function(type, parent) {\n var self = this;\n\n self.view.render('mount', {\n parent: parent, \n type: type, \n errorMsg: `Mount could not find wrapper element '${parent}'`,\n });\n \n self.view.render('addClass', { field: type, class: self.customClasses[type].empty });\n self.view.render('addClass', { field: type, class: self.customClasses[type].base });\n};\n\n/*\n * Methods on the object returned from #create()\n * type and options arguments are bound to the function on creation\n */\n\nController.prototype.unmount = function(type) {\n var self = this;\n var parent = self.view.getParent(type);\n \n self.view.render('removeClass', { field: type, class: self.customClasses[type].empty });\n self.view.render('removeClass', { field: type, class: self.customClasses[type].base });\n\n self.view.render('unmount', {\n type: type, \n errorMsg: `Unmount could not find wrapper element '${parent}'`,\n });\n};\n\nController.prototype.focus = function(type) {\n self.view.postMessage(Message.focus(), type);\n};\n\nController.prototype.blur = function(type) {\n self.view.postMessage(Message.blur(), type);\n};\n\nController.prototype.clear = function(type) {\n self.view.postMessage(Message.clear(), type);\n};\n\nController.prototype.update = function(type, options={}) {\n\n if (options.classes) {\n self.setCustomClasses(type, options.classes);\n }\n \n var msg = Message.update(options);\n self.view.postMessage(msg, type);\n};\n\nmodule.exports = Controller;\n\n\n// WEBPACK FOOTER //\n// ./app/main/controller.js","/* global REMOTE_PAGE_URL */\nrequire('../polyfills/classList.js');\n\nconst Fields = require('../fields.js');\n\n/* Constructor */\n\nfunction View() {\n const self = this;\n\n self.$iFrame = {};\n self.$iFrame[Fields.CARD_NUMBER] = null;\n self.$iFrame[Fields.CVV] = null;\n self.$iFrame[Fields.EXPIRY] = null;\n\n self.iFrameLoaded = {};\n self.iFrameLoaded[Fields.CARD_NUMBER] = false;\n self.iFrameLoaded[Fields.CVV] = false;\n self.iFrameLoaded[Fields.EXPIRY] = false;\n\n self.parentOf = {};\n self.parentOf[Fields.CARD_NUMBER] = null;\n self.parentOf[Fields.CVV] = null;\n self.parentOf[Fields.EXPIRY] = null;\n}\n\nView.prototype.isSupportedBrowser = function() {\n return true; // TODO: Decide what features are needed, use Modernizr to detect\n};\n\n/* Render methods */\n\n/* Called by the controller with `view.render('method-name', arg);` */\n\nView.prototype._updateIFrame = function(data) {\n const self = this;\n const iframe = self.$iFrame[data.type];\n\n if (iframe) {\n iframe.height = data.inputHeight;\n }\n};\n\nView.prototype._addClass = function(data) {\n const self = this;\n const parent = self.parentOf[data.field];\n if (parent) {\n parent.classList.add(data.class);\n } else {\n self._error('Parent element does not exist');\n }\n};\n\nView.prototype._removeClass = function(data) {\n const self = this;\n const parent = self.parentOf[data.field];\n if (parent) {\n parent.classList.remove(data.class);\n } else {\n self._error('Parent element does not exist');\n }\n};\n\nView.prototype._create = function(type) {\n\n if (!window.location.origin) { // .origin not supported in ie < 11\n window.location.origin = `${window.location.protocol}//${window.location.hostname}`;\n if (window.location.port) {\n window.location.origin += `:${window.location.port}`;\n }\n }\n\n var iframe = document.createElement('iframe');\n iframe.src = `${REMOTE_PAGE_URL}?type=${type}&source=${encodeURIComponent(window.location.href)}&origin=${encodeURIComponent(window.location.origin)}`;\n iframe.scrolling = 'no';\n iframe.height = '0';\n iframe.width = '100%';\n iframe.name = `bambora-${type}-iframe`;\n iframe.style.border = 'none';\n iframe.style.overflow = 'visible';\n iframe.style.backgroundColor = 'transparent';\n iframe.allowTransparency = 'true';\n\n this.$iFrame[type] = iframe;\n};\n\nView.prototype._mount = function(data) {\n const self = this;\n var parent = document.querySelector(data.parent);\n const iframe = this.$iFrame[data.type];\n\n if (parent) {\n parent.appendChild(iframe);\n self.parentOf[data.type] = parent;\n } else {\n self._error(data.errorMsg);\n }\n};\n\nView.prototype._unmount = function(data) {\n const self = this;\n var parent = self.parentOf[data.type];\n\n if (parent) {\n parent.removeChild(parent.firstChild);\n self.parentOf[data.type] = null;\n } else {\n self._error(data.errorMsg);\n }\n};\n\nView.prototype._error = function(str) {\n console.error(`Custom Checkout: ${str}`);\n};\n\n/* Render handler */\n\nView.prototype.render = function(viewCmd, parameter) {\n const self = this;\n var viewCommands = {\n updateIFrame: function() {\n self._updateIFrame(parameter);\n },\n addClass: function() {\n self._addClass(parameter);\n },\n removeClass: function() {\n self._removeClass(parameter);\n },\n create: function() {\n self._create(parameter);\n },\n mount: function() {\n self._mount(parameter);\n },\n unmount: function() {\n self._unmount(parameter);\n },\n error: function() {\n self._error(parameter);\n },\n };\n\n viewCommands[viewCmd]();\n};\n\n/* Message passing to iFrames */\n\n// Send a message to the specified iFrame. If the iframe has been loaded,\n// send message immediately, otherwise, add message to queue of messages in the\n// iframe's onload event.\nView.prototype.postMessage = function(msg, field) {\n const self = this;\n var iFrameSrc = REMOTE_PAGE_URL; // defined in webpack config\n\n if (self.$iFrame[field] === null && field === Fields.CVV) {\n return; // cvv field is optional, no need to send message\n\n } else if (self.$iFrame[field] === null) {\n self._error('Card number and expiry fields are required');\n\n } else if (self.iFrameLoaded[field]) {\n try {\n self.$iFrame[field].contentWindow.postMessage(JSON.stringify(msg), iFrameSrc);\n } catch (e) {\n self.render('error', `The ${field} field has not been mounted to the page`);\n }\n } else {\n var queuedMessages = self.$iFrame[field].onload;\n msg = JSON.stringify(msg);\n self.$iFrame[field].onload = function() {\n if(queuedMessages) {\n queuedMessages();\n }\n self.$iFrame[field].contentWindow.postMessage(msg, iFrameSrc);\n self.iFrameLoaded[field] = true;\n };\n }\n};\n\n// Returns the parent DOM element found and setup during 'mount'.\nView.prototype.getParent = function(type) {\n const self = this;\n var parent = self.parentOf[type];\n return parent;\n};\n\n/* callback binding */\n\nView.prototype.bind = function(event, handler) {\n if (event === 'message') {\n window.addEventListener('message', handler, false);\n }\n};\n\nmodule.exports = View;\n\n\n\n// WEBPACK FOOTER //\n// ./app/main/view.js","const View = require('./view.js');\nconst Controller = require('./controller.js');\n\nmodule.exports = function() {\n this.view = new View();\n\n // Fail gracefully if browser unsupported\n if(!this.view.isSupportedBrowser()) {\n this.view.render('error', 'Custom Checkout is not supported by browser');\n return;\n }\n\n this.controller = new Controller(this.view);\n\n // API endpoints:\n return {\n create: this.controller.create,\n on: this.controller.on,\n createToken: this.controller.createToken,\n };\n};\n\n\n// WEBPACK FOOTER //\n// ./app/main/index.js"],"sourceRoot":""}