{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 4e6a5d7d7864fdd4501a?c4a5","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","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","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 4e6a5d7d7864fdd4501a","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":""}