/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 33); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var EventList; (function (EventList) { EventList["FormSubmit"] = "formSubmit"; EventList["FormOfflineSubmit"] = "formOfflineSubmit"; EventList["FormNoCreditCardSubmit"] = "formNoCreditCardSubmit"; EventList["FormApiSubmit"] = "formApiSubmit"; EventList["FormPreSubmit"] = "formPreSubmit"; EventList["FormChange"] = "formChange"; EventList["FormFieldDetect"] = "formFieldDetected"; EventList["FormProcessDone"] = "formProcessDone"; EventList["StoreCallback"] = "storeCallback"; EventList["ZuoraCallback"] = "zuoraCallback"; EventList["PayPalExpressCheckoutChange"] = "payPalExpressCheckoutChange"; EventList["AmazonPay"] = "amazonPay"; EventList["OffLine"] = "offline"; EventList["FormPreviewSubmit"] = "formPreviewSubmit"; EventList["AmazonPaySubmit"] = "amazonPaySubmit"; EventList["AmazonPayBaidEmpty"] = "amazonPayBaidEmpty"; EventList["PaypalSubmit"] = "paypalSubmit"; EventList["PaypalBaidEmpty"] = "paypalBaidEmpty"; EventList["SaveLeadSubmit"] = "saveLeadSubmit"; EventList["ExistingPaymentMethodSubmit"] = "existingPaymentMethodSubmit"; EventList["IframeRender"] = "iframeRender"; EventList["UnKnownError"] = "unknownError"; EventList["SubmitAccountCreation"] = "submitAccountCreation"; })(EventList = exports.EventList || (exports.EventList = {})); /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var FormTypeList; (function (FormTypeList) { FormTypeList[FormTypeList["PassThrough"] = 0] = "PassThrough"; FormTypeList[FormTypeList["Zuora"] = 1] = "Zuora"; FormTypeList[FormTypeList["Offline"] = 2] = "Offline"; FormTypeList[FormTypeList["Amazon"] = 3] = "Amazon"; FormTypeList[FormTypeList["PayPalExpressCheckout"] = 4] = "PayPalExpressCheckout"; FormTypeList[FormTypeList["ZuoraDirectPost"] = 5] = "ZuoraDirectPost"; FormTypeList[FormTypeList["NoCreditCard"] = 6] = "NoCreditCard"; FormTypeList[FormTypeList["CreateAccount"] = 7] = "CreateAccount"; })(FormTypeList = exports.FormTypeList || (exports.FormTypeList = {})); /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var DomMethods = /** @class */ (function () { function DomMethods(options, params) { this.options = options; this.params = params; } DomMethods.prototype.offset = function () { return $(this.options).offset(); }; DomMethods.prototype.callable = function () { return $(this.options, this.params); }; Object.defineProperty(DomMethods.prototype, "length", { get: function () { return $(this.options, this.params).length; }, enumerable: true, configurable: true }); DomMethods.prototype.val = function (value) { return $(this.options).val(value); }; DomMethods.prototype.attr = function (name, value) { return $(this.options).attr(name, value); }; DomMethods.prototype.removeAttr = function (name) { return $(this.options).removeAttr(name); }; DomMethods.prototype.removeClass = function (name) { return $(this.options).removeClass(name); }; DomMethods.prototype.append = function (value, option) { return $(this.options).append(value, option); }; DomMethods.prototype.animate = function (value, option) { return $(this.options).animate(value, option); }; DomMethods.prototype.replaceWith = function (value, option) { return $(this.options).replaceWith(value, option); }; DomMethods.prototype.change = function (callback) { return $(this.options).change(callback); }; DomMethods.prototype.click = function (callback) { return $(this.options).click(callback); }; DomMethods.prototype.blur = function (callback) { return $(this.options).click(callback); }; DomMethods.prototype.fadeIn = function () { return $(this.options, this.params).fadeIn(); }; DomMethods.prototype.fadeOut = function () { return $(this.options, this.params).fadeOut(); }; DomMethods.prototype.hide = function () { return $(this.options, this.params).hide(); }; DomMethods.prototype.is = function (property) { return $(this.options).is(property); }; DomMethods.prototype.prop = function (property, value) { return $(this.options).prop(property, value); }; DomMethods.prototype.find = function (value, option) { return $(this.options).find(value, option); }; return DomMethods; }()); exports.DomMethods = DomMethods; // tslint:disable-next-line:variable-name exports.DomHelper = function (options, params) { var domMethods = new DomMethods(options, params); return domMethods.callable(); }; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var string_helper_1 = __webpack_require__(5); var form_classes_1 = __webpack_require__(6); var dom_helper_1 = __webpack_require__(2); var VALIDATION_IS_NOT_NECESSARY = ['couponCode']; var TEXT_REGEX_PATTERN = /^[a-zA-Z0-9\s.,'#\-\/]*$/; var FormHelper = /** @class */ (function () { function FormHelper() { } FormHelper.isEmailValid = function (email) { if (email) { var re = /^[a-zA-Z0-9](\.?[a-zA-Z0-9_+-]){0,}@[a-zA-Z0-9-]+\.([a-zA-Z]{1,6}\.)?[a-zA-Z]{2,20}$/; return re.test(String(email).toLowerCase()); } return false; }; FormHelper.isEmailMatching = function (retypeEmail) { if (retypeEmail) { var email = dom_helper_1.DomHelper('.store-email-address').val(); if (email.length > 0 && email === retypeEmail) { return true; } } return false; }; FormHelper.isCreditCardCvvValid = function (cvv) { if (cvv && !isNaN(+cvv) && cvv.length > 2 && cvv.length < 5) { return true; } return false; }; FormHelper.isCreditCardNumberValid = function (cardNo) { if (!cardNo) { return false; } return $.payment.validateCardNumber(cardNo); }; FormHelper.isCreditCardExpirationMonthValid = function (month) { if (month && !isNaN(+month) && +month > 0 && +month < 13) { return true; } return false; }; FormHelper.isCreditCardExpirationYearValid = function (year) { if (year && !isNaN(+year) && +year > 2017) { return true; } return false; }; FormHelper.isCreditCardPostalValid = function (postalCode) { if (postalCode) { var postalPattern = /^[a-zA-Z0-9\s-]+$/; return postalPattern.test(postalCode); } return false; }; FormHelper.isAddress2Valid = function (address) { return address ? TEXT_REGEX_PATTERN.test(address) : true; }; FormHelper.isTestTokenValid = function (token) { return !!(token && token.trim()) && $('.store-test-token').data('valid') === true && !$('.store-test-token-error').is(':visible'); }; FormHelper.fadeInClass = function (formElement, className) { var elements = formElement.querySelectorAll('.' + className); for (var i = 0; i < elements.length; i++) { dom_helper_1.DomHelper(elements.item(i)).fadeIn(); } }; FormHelper.fadeOutClass = function (formElement, className) { var elements = formElement.querySelectorAll('.' + className); for (var i = 0; i < elements.length; i++) { dom_helper_1.DomHelper(elements.item(i)).fadeOut(); } }; FormHelper.hideClass = function (formElement, className) { var elements = formElement.querySelectorAll("." + className); for (var i = 0; i < elements.length; i++) { dom_helper_1.DomHelper(elements.item(i)).hide(); } }; FormHelper.hideAllForms = function () { var elements = document.querySelectorAll('.store-form, .store-login-form'); for (var i = 0; i < elements.length; i++) { dom_helper_1.DomHelper(elements.item(i)).hide(); } }; FormHelper.getFirstVisibleErrorIfExists = function (formElement) { for (var _i = 0, _a = Array.from(form_classes_1.FORM_NAME_ERRORS_MAP.values()); _i < _a.length; _i++) { var errors = _a[_i]; for (var _b = 0, errors_1 = errors; _b < errors_1.length; _b++) { var errorClass = errors_1[_b]; if (this.isVisibleElement(formElement, errorClass)) { return errorClass; } } } return null; }; FormHelper.isVisibleElement = function (formElement, errorClass) { var errorElement = formElement.querySelector('.' + errorClass); return !!(errorElement && dom_helper_1.DomHelper(errorElement).is(':visible')); }; FormHelper.isElementWithSelector = function (element, selector) { var errorElement = element.querySelector(selector); if (errorElement) { return true; } return false; }; FormHelper.scrollToClass = function (formElement, className) { var errorElement = formElement.querySelector('.' + className); dom_helper_1.DomHelper('html, body').animate({ scrollTop: dom_helper_1.DomHelper(errorElement).offset().top - 40 }, 1000); }; FormHelper.isNonEmpty = function (value) { if (!value || value.trim().length === 0 || !TEXT_REGEX_PATTERN.test(value.trim())) { return false; } return true; }; FormHelper.isPasswordValid = function (password) { if (password) { var passwordPattern = new RegExp(dom_helper_1.DomHelper('.store-password').prop('pattern')); return passwordPattern.test(password); } return false; }; FormHelper.isConfirmPasswordMatching = function (confirmPassword) { if (confirmPassword) { var password = dom_helper_1.DomHelper('.store-password').val(); if (password.length > 0 && password === confirmPassword) { return true; } } return false; }; FormHelper.isAcceptTermsChecked = function () { return dom_helper_1.DomHelper('.store-accept-terms').prop('checked') === true; }; FormHelper.getValidatorByClassName = function (name) { switch (name) { case 'store-email-address-error': return FormHelper.isEmailValid; case 'store-retype-email-address-error': return FormHelper.isEmailMatching; case 'store-credit-card-cvv-error': return FormHelper.isCreditCardCvvValid; case 'store-credit-card-number-error': return FormHelper.isCreditCardNumberValid; case 'store-credit-card-expiration-month-error': return FormHelper.isCreditCardExpirationMonthValid; case 'store-credit-card-expiration-year-error': return FormHelper.isCreditCardExpirationYearValid; case 'store-credit-card-postal-code-error': case 'store-postal-code-error': return FormHelper.isCreditCardPostalValid; case 'store-credit-card-address2-error': case 'store-address2-error': return FormHelper.isAddress2Valid; case 'store-test-token-error': return FormHelper.isTestTokenValid; case 'store-password-error': return FormHelper.isPasswordValid; case 'store-confirm-password-error': return FormHelper.isConfirmPasswordMatching; case 'store-accept-terms-error': return FormHelper.isAcceptTermsChecked; default: return FormHelper.isNonEmpty; } }; FormHelper.customerFieldToFormField = function (customerFieldName) { switch (customerFieldName) { case 'retypeEmail': case 'crmId': case 'mktoCooke': case 'advantageCustomerId': case 'isAdvantageCustomerExists': case 'bidAmount': case 'mcEmail': return ''; case 'street': return 'address'; case 'email': return 'emailAddress'; default: return customerFieldName; } }; FormHelper.formFieldToCustomerField = function (formFieldName) { switch (formFieldName) { case 'retypeEmail': case 'crmId': case 'mktoCooke': case 'advantageCustomerId': case 'isAdvantageCustomerExists': case 'bidAmount': case 'mcEmail': return ''; case 'address': return 'street'; case 'emailAddress': return 'email'; default: return formFieldName; } }; FormHelper.getCreditCardType = function (cardType) { switch (cardType.toLowerCase()) { case 'visa': return 'Visa'; case 'discover': return 'Discover'; case 'mastercard': return 'MasterCard'; case 'amex': return 'AmericanExpress'; default: return cardType.toLowerCase(); } }; FormHelper.validateMandatoryFields = function (formElement) { var fieldElement; var isEverythingOkay = true; var isEverythingOkaySet = false; for (var _i = 0, _a = Array.from(form_classes_1.FORM_NAME_ERRORS_MAP.keys()); _i < _a.length; _i++) { var fieldClassName = _a[_i]; fieldElement = formElement.querySelector('.store-' + fieldClassName); if (fieldElement && dom_helper_1.DomHelper(fieldElement).prop('required')) { var okay = FormHelper.validateField({ fieldName: string_helper_1.StringHelper.dashToCamelCase(fieldClassName), formElement: formElement, newValue: dom_helper_1.DomHelper(fieldElement).val() }); if (!okay && !isEverythingOkaySet) { isEverythingOkay = false; isEverythingOkaySet = true; } } } return isEverythingOkay; }; FormHelper.formatCreditCard = function (element) { if (dom_helper_1.DomHelper(element).val()) { var creditCard = dom_helper_1.DomHelper(element) .val() .split(' ') .join(''); creditCard = creditCard .match(new RegExp('.{1,4}$|.{1,4}', 'g')) .join(' '); dom_helper_1.DomHelper(element).val(creditCard); } }; FormHelper.validateField = function (data) { if (VALIDATION_IS_NOT_NECESSARY.includes(data.fieldName)) { return true; } var className = 'store-' + string_helper_1.StringHelper.camelCaseToDash(data.fieldName) + '-error'; var validator = FormHelper.getValidatorByClassName(className); if (!validator(data.newValue)) { FormHelper.fadeInClass(data.formElement, className); return false; } else { FormHelper.fadeOutClass(data.formElement, className); return true; } }; return FormHelper; }()); exports.FormHelper = FormHelper; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var FormErrorList = /** @class */ (function () { function FormErrorList() { } Object.defineProperty(FormErrorList, "SUBMIT_READY", { get: function () { return { code: 100, message: 'Submit not ready' }; }, enumerable: true, configurable: true }); Object.defineProperty(FormErrorList, "SUBMIT_FAILED", { get: function () { return { code: 101, message: 'Submit failed' }; }, enumerable: true, configurable: true }); return FormErrorList; }()); exports.FormErrorList = FormErrorList; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var StringHelper = /** @class */ (function () { function StringHelper() { } StringHelper.dashToCamelCase = function (name) { if (name) { return name.replace(/-([a-z])/g, function (m, w) { return w.toUpperCase(); }); } return ''; }; StringHelper.camelCaseToDash = function (name) { if (name) { return name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); } return ''; }; return StringHelper; }()); exports.StringHelper = StringHelper; /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FORM_NAME_ERRORS_MAP = new Map([ ['email-address', ['store-email-address-error']], ['retype-email-address', ['store-retype-email-address-error']], ['first-name', ['store-first-name-error']], ['last-name', ['store-last-name-error']], ['age', ['store-age-error']], ['address', ['store-address-error']], ['address2', ['store-address2-error']], ['city', ['store-city-error']], ['country', ['store-country-error']], ['state', ['store-state-error']], ['snaid', ['store-snaid-error']], ['postal-code', ['store-postal-code-error']], ['username', ['store-username-error']], ['password', ['store-password-error']], ['confirm-password', ['store-confirm-password-error']], ['phone-number', ['store-phone-number-error']], ['home-phone-number', ['store-home-phone-number-error']], ['mobile-phone-number', ['store-mobile-phone-number-error']], ['firm-name', ['store-firm-name-error']], ['credit-card-number', ['store-credit-card-number-error']], ['credit-card-cvv', ['store-credit-card-cvv-error']], ['credit-card-expiration-month', ['store-credit-card-expiration-month-error']], ['credit-card-expiration-year', ['store-credit-card-expiration-year-error']], ['credit-card-holder-name', ['store-credit-card-holder-name-error']], ['credit-card-postal-code', ['store-credit-card-postal-code-error']], ['credit-card-country', ['store-credit-card-country-error']], ['credit-card-state', ['store-credit-card-state-error']], ['credit-card-city', ['store-credit-card-city-error']], ['credit-card-address', ['store-credit-card-address-error']], ['credit-card-address2', ['store-credit-card-address2-error']], ['coupon-code', [ 'store-coupon-code-error', 'store-coupon-code-invalid-error', 'store-coupon-code-expired-error', 'store-coupon-code-exceed-usage-limit-error', 'store-coupon-code-exceed-reservation-time-error' ]], ['test-token', ['store-test-token-error']], ['accept-terms', ['store-accept-terms-error']] ]); /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var form_1 = __webpack_require__(8); var form_type_list_1 = __webpack_require__(1); var form_error_list_1 = __webpack_require__(4); var event_list_1 = __webpack_require__(0); var event_listeners_1 = __webpack_require__(21); var Store = /** @class */ (function () { function Store() { this._storeForms = []; this._forms = []; this._eventListenersList = []; this._form = new form_1.Form(this); } Store.prototype.dispatchEvent = function (event, error, data) { var functionList = this.getEventListeners(event); for (var _i = 0, functionList_1 = functionList; _i < functionList_1.length; _i++) { var func = functionList_1[_i]; func(error, data); } }; Store.prototype.addEventListener = function (event, callback) { this.pushEventListener(event, callback); }; Object.defineProperty(Store.prototype, "form", { get: function () { return this._form; }, enumerable: true, configurable: true }); Object.defineProperty(Store.prototype, "FormTypes", { get: function () { return form_type_list_1.FormTypeList; }, enumerable: true, configurable: true }); Object.defineProperty(Store.prototype, "Events", { get: function () { return event_list_1.EventList; }, enumerable: true, configurable: true }); Object.defineProperty(Store.prototype, "Errors", { get: function () { return form_error_list_1.FormErrorList; }, enumerable: true, configurable: true }); Object.defineProperty(Store.prototype, "formHandler", { get: function () { return this._form; }, enumerable: true, configurable: true }); Store.prototype.pushEventListener = function (event, callback) { for (var _i = 0, _a = this._eventListenersList; _i < _a.length; _i++) { var eventListener = _a[_i]; if (eventListener.event === event) { eventListener.listeners.push(callback); break; } } var newEventListener = new event_listeners_1.EventListeners(); newEventListener.event = event; newEventListener.listeners.push(callback); this._eventListenersList.push(newEventListener); }; Store.prototype.getEventListeners = function (event) { for (var _i = 0, _a = this._eventListenersList; _i < _a.length; _i++) { var eventListener = _a[_i]; if (eventListener.event === event) { return eventListener.listeners; } } return []; }; Store.prototype.getStoreFieldValue = function (form, name) { var elements = form.querySelectorAll('.store-' + name); if (elements.length) { if (elements[0]) { return elements[0].value; } } return ''; }; return Store; }()); exports.Store = Store; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var form_helper_1 = __webpack_require__(3); var zuora_form_handler_1 = __webpack_require__(9); var form_type_list_1 = __webpack_require__(1); var event_list_1 = __webpack_require__(0); var form_classes_1 = __webpack_require__(6); var form_field_listener_1 = __webpack_require__(10); var form_submit_listener_1 = __webpack_require__(11); var form_error_list_1 = __webpack_require__(4); var pass_through_form_handler_1 = __webpack_require__(12); var paypal_express_checkout_form_handler_1 = __webpack_require__(13); var dom_helper_1 = __webpack_require__(2); var amazonpay_form_handler_1 = __webpack_require__(16); var offline_form_handler_1 = __webpack_require__(17); var directpost_form_handler_1 = __webpack_require__(18); var nocreditcard_form_handler_1 = __webpack_require__(19); var create_account_form_handler_1 = __webpack_require__(20); var Form = /** @class */ (function () { function Form(store) { this._countries = []; this._usStates = []; this._canadaStates = []; this.isDefaultCountries = false; this.typeList = []; this._typeListInstances = []; this.isFormProcessingDone = false; this.isStoreForm = true; this._store = store; this.setupListeners(); } Form.prototype.exists = function () { if (dom_helper_1.DomHelper('.store-form').length) { return true; } if (dom_helper_1.DomHelper('.store-login-form').length) { this.isStoreForm = false; this._typeListInstances = []; this.typeList = []; return true; } return false; }; Form.prototype.initialize = function () { if (!this.exists()) { return; } this.initializeHandlers(); var forms = document.querySelectorAll('.store-form, .store-login-form'); if (!this.isFormProcessingDone) { if (forms) { this.formElements = forms; } for (var i = 0; i < forms.length; i++) { this.processForm(forms.item(i)); } this._store.dispatchEvent(event_list_1.EventList.FormProcessDone, null, forms); } }; Form.prototype.isSubmitReady = function () { return this.formHandler.isSubmitReady(); }; Form.prototype.isPreview = function () { return this.formHandler.isPreview(); }; Form.prototype.setForm = function (form) { this.formHandler.setForm(form); }; Form.prototype.getForm = function () { return this.formHandler.getForm(); }; Form.prototype.setValue = function (name, value) { if (name === 'customerParams') { this.customer = __assign({}, value); } if (this.formHandler) { this.formHandler.setValue(name, value); } }; Form.prototype.getValue = function (name) { this.formHandler.getValue(name); }; Form.prototype.reset = function () { this.formHandler.reset(); }; Form.prototype.submit = function (callback) { if (this.formHandler.isSubmitReady()) { this.formHandler.submit(callback); } else { if (callback) { callback(form_error_list_1.FormErrorList.SUBMIT_READY, null); } } }; Form.prototype.render = function (callback) { this.formHandler.render(callback); }; Form.prototype.hideAll = function () { form_helper_1.FormHelper.hideAllForms(); }; Object.defineProperty(Form.prototype, "countries", { get: function () { return this._countries; }, set: function (countries) { this._countries = countries; }, enumerable: true, configurable: true }); Object.defineProperty(Form.prototype, "usStates", { get: function () { return this._usStates; }, set: function (states) { this._usStates = states; }, enumerable: true, configurable: true }); Object.defineProperty(Form.prototype, "canadaStates", { get: function () { return this._canadaStates; }, set: function (states) { this._canadaStates = states; }, enumerable: true, configurable: true }); Object.defineProperty(Form.prototype, "type", { get: function () { return this.formType; }, set: function (type) { this.formType = type; this.formHandler = this.getTypeInstance(type); this.formHandler.setValue('countries', this._countries); this.formHandler.setValue('canadaStates', this._canadaStates); this.formHandler.setValue('usStates', this._usStates); }, enumerable: true, configurable: true }); Object.defineProperty(Form.prototype, "types", { set: function (typeList) { this.typeList = typeList; }, enumerable: true, configurable: true }); Form.prototype.setCreditCardStates = function () { var forms = document.querySelectorAll('.store-form'); var form; for (var i = 0; i < forms.length; i++) { form = forms.item(i); var stateElement = form.querySelector('.store-credit-card-state'); if (stateElement) { switch (this.getFormCreditCardCountry().toLowerCase()) { case 'can': case 'canada': this.setStates(this.convertCreditCardElement(stateElement, 'select'), this.canadaStates); this.getForm().creditCardState = dom_helper_1.DomHelper('.store-credit-card-state').val(); break; case 'usa': case 'united states': this.setStates(this.convertCreditCardElement(stateElement, 'select'), this.usStates); this.getForm().creditCardState = dom_helper_1.DomHelper('.store-credit-card-state').val(); break; default: var newElement = this.convertCreditCardElement(stateElement, 'input'); dom_helper_1.DomHelper(newElement).val(this.getForm().creditCardState); break; } } } }; Form.prototype.getNewTypeInstance = function (type) { switch (type) { case form_type_list_1.FormTypeList.Amazon: return new amazonpay_form_handler_1.AmazonPayFormHandler(this._store); case form_type_list_1.FormTypeList.PassThrough: return new pass_through_form_handler_1.PassThroughFormHandler(this._store); case form_type_list_1.FormTypeList.PayPalExpressCheckout: return new paypal_express_checkout_form_handler_1.PaypalExpressCheckoutFormHandler(this._store); case form_type_list_1.FormTypeList.Offline: return new offline_form_handler_1.OfflineFormHandler(this._store); case form_type_list_1.FormTypeList.Zuora: return new zuora_form_handler_1.ZuoraFormHandler(this._store); case form_type_list_1.FormTypeList.ZuoraDirectPost: return new directpost_form_handler_1.DirectpostFormHandler(this._store); case form_type_list_1.FormTypeList.NoCreditCard: return new nocreditcard_form_handler_1.NoCreditCardFormHandler(this._store); case form_type_list_1.FormTypeList.CreateAccount: return new create_account_form_handler_1.CreateAccountFormHandler(this._store); default: return new zuora_form_handler_1.ZuoraFormHandler(this._store); } }; Form.prototype.getTypeInstance = function (type) { for (var _i = 0, _a = this._typeListInstances; _i < _a.length; _i++) { var handler = _a[_i]; if (handler instanceof amazonpay_form_handler_1.AmazonPayFormHandler && type === form_type_list_1.FormTypeList.Amazon) { return handler; } if (handler instanceof pass_through_form_handler_1.PassThroughFormHandler && type === form_type_list_1.FormTypeList.PassThrough) { return handler; } if (handler instanceof paypal_express_checkout_form_handler_1.PaypalExpressCheckoutFormHandler && type === form_type_list_1.FormTypeList.PayPalExpressCheckout) { return handler; } if (handler instanceof offline_form_handler_1.OfflineFormHandler && type === form_type_list_1.FormTypeList.Offline) { return handler; } if (handler instanceof directpost_form_handler_1.DirectpostFormHandler && type === form_type_list_1.FormTypeList.ZuoraDirectPost) { return handler; } if (handler instanceof zuora_form_handler_1.ZuoraFormHandler && type === form_type_list_1.FormTypeList.Zuora) { return handler; } if (handler instanceof nocreditcard_form_handler_1.NoCreditCardFormHandler && type === form_type_list_1.FormTypeList.NoCreditCard) { return handler; } if (handler instanceof create_account_form_handler_1.CreateAccountFormHandler && type === form_type_list_1.FormTypeList.CreateAccount) { return handler; } } var newHandler = this.getNewTypeInstance(type); this._typeListInstances.push(newHandler); this.typeList.push(type); return newHandler; }; Form.prototype.initializeHandlers = function () { for (var _i = 0, _a = this.typeList; _i < _a.length; _i++) { var type = _a[_i]; var handler = this.getTypeInstance(type); if (handler) { // console.log('handler init', handler); handler.initialize(); } else { var newHandler = this.getNewTypeInstance(type); this._typeListInstances.push(newHandler); // console.log('handler init', newHandler); newHandler.initialize(); } } // Set zuora as default if (!this._typeListInstances.length && this.isStoreForm) { var zuoraHandler = this.getNewTypeInstance(form_type_list_1.FormTypeList.Zuora); this._typeListInstances.push(zuoraHandler); // console.log('handler init', zuoraHandler); zuoraHandler.initialize(); } }; Form.prototype.processForm = function (elementForm) { var _this = this; form_classes_1.FORM_NAME_ERRORS_MAP.forEach(function (fieldErrorClassNames, fieldClassName) { new form_field_listener_1.FormFieldListener(_this._store, elementForm, fieldClassName); for (var _i = 0, fieldErrorClassNames_1 = fieldErrorClassNames; _i < fieldErrorClassNames_1.length; _i++) { var errorClassName = fieldErrorClassNames_1[_i]; form_helper_1.FormHelper.hideClass(elementForm, errorClassName); } }); new form_submit_listener_1.FormSubmitListener(this._store, elementForm); }; Form.prototype.isCountrySelected = function (country) { var form = this.getForm(); if (form && form.country) { if (form.country.toLowerCase() === country.value.toLowerCase()) { return true; } if (form.country.toLowerCase() === country.label.toLowerCase()) { return true; } } if (!this.customer || !this.customer.country) { return false; } if (this.customer.country.toLowerCase() === country.value.toLowerCase()) { return true; } if (this.customer.country.toLowerCase() === country.label.toLowerCase()) { return true; } return false; }; Form.prototype.setDefaultCountries = function (element, fieldName) { if (!dom_helper_1.DomHelper(element).attr('data-default-countries')) { return; } if (!element.nodeName || element.nodeName.toLowerCase() !== 'select') { return; } for (var _i = 0, _a = this.countries; _i < _a.length; _i++) { var country = _a[_i]; dom_helper_1.DomHelper(element).append(dom_helper_1.DomHelper('