{"version":3,"file":"PledgeCampaign.js","mappings":"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","sources":["webpack://portalcomponents/./ClientApp/Components/Shared/Configuration.js","webpack://portalcomponents/./ClientApp/Components/Shared/I18n.js","webpack://portalcomponents/./ClientApp/Components/Helpers/DropdownBuilder.js","webpack://portalcomponents/./ClientApp/Components/Helpers/ErrorBuilder.js","webpack://portalcomponents/./ClientApp/Components/Helpers/FormManager.js","webpack://portalcomponents/./ClientApp/Components/Helpers/TextFormatter.js","webpack://portalcomponents/./ClientApp/Components/Shared/Exceptions.js","webpack://portalcomponents/./ClientApp/Components/Shared/LocalStorageManager.js","webpack://portalcomponents/./ClientApp/Components/Shared/SessionStorageManager.js","webpack://portalcomponents/./ClientApp/Components/Shared/URLSearchParameters.js","webpack://portalcomponents/./ClientApp/Components/Services/OAuthService.js","webpack://portalcomponents/./ClientApp/Components/Services/Ajax.js","webpack://portalcomponents/./ClientApp/Components/Services/HouseholdApiService.js","webpack://portalcomponents/./ClientApp/Components/Services/UserService.js","webpack://portalcomponents/./ClientApp/Components/Services/LookupApiService.js","webpack://portalcomponents/./ClientApp/Components/Services/PledgeCampaignApiService.js","webpack://portalcomponents/./ClientApp/Components/Shared/ComponentBase.js","webpack://portalcomponents/./ClientApp/Components/Helpers/NumberUtils.js","webpack://portalcomponents/./ClientApp/Components/Helpers/DateTimeFormatter.js","webpack://portalcomponents/./ClientApp/Components/mpp-pledge-campaign.js"],"sourcesContent":["function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*jshint esversion: 8 */\nvar authConfigurationCache = null;\nexport var Configuration = /*#__PURE__*/function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n\n this.SCRIPT_NAME = \"/dist/MPWidgets.\";\n }\n\n _createClass(Configuration, [{\n key: \"GetAuthConfiguration\",\n value: function GetAuthConfiguration(useCacheIfAvailable) {\n if (useCacheIfAvailable === true && authConfigurationCache != null) {\n return Promise.resolve(authConfigurationCache);\n }\n\n var appRoot = this.GetAppRoot();\n\n if (appRoot === \"\") {\n return;\n }\n\n var url = \"\".concat(appRoot, \"/Api/Auth\");\n return fetch(url).then(function (authInfo) {\n return authInfo.json().then(function (authConfiguration) {\n authConfigurationCache = authConfiguration;\n return authConfiguration;\n });\n }, function (err) {\n console.error(\"Unable to retrieve auth info!\");\n console.error(err);\n throw new Error(err);\n });\n }\n }, {\n key: \"GetAuthToken\",\n value: function GetAuthToken(cacheKey) {\n var appRoot = this.GetAppRoot();\n var url = \"\".concat(appRoot, \"/Home/Tokens?cacheKey=\").concat(cacheKey);\n return fetch(url).then(function (authInfo) {\n return authInfo.json();\n }, function (err) {\n console.error(\"Unable to retrieve auth token!\");\n console.error(err);\n throw new Error(err);\n });\n }\n }, {\n key: \"GetCSRFToken\",\n value: function GetCSRFToken() {\n var appRoot = this.GetAppRoot();\n var url = \"\".concat(appRoot, \"/Home/CSRFToken\");\n return fetch(url).then(function (authInfo) {\n return authInfo.json();\n }, function (err) {\n console.error(\"Unable to retrieve CSRF token!\");\n console.error(err);\n throw new Error(err);\n });\n }\n }, {\n key: \"GetAppRoot\",\n value: function GetAppRoot() {\n //if (sessionStorage.appRoot) {\n //\treturn sessionStorage.appRoot;\n //} else {\n //Find base URL of main components script and put it into session storage:\n if (document.getElementById(\"MPWidgets\") !== null && document.getElementById(\"MPWidgets\") !== undefined) {\n var currentScriptSrc = document.getElementById(\"MPWidgets\").src;\n\n if (currentScriptSrc) {\n var appRoot = currentScriptSrc.substring(0, currentScriptSrc.indexOf(this.SCRIPT_NAME));\n sessionStorage.appRoot = appRoot;\n return appRoot;\n } else {\n // eslint-disable-next-line no-console\n console.log(\"Error: Could not find script in header of page with id='MPWidgets'\");\n }\n } // }\n\n }\n }, {\n key: \"GetConfigurationSetting\",\n value: function GetConfigurationSetting(keyName) {\n return fetch(\"\".concat(this.GetAppRoot(), \"/Api/ConfigurationApi/GetConfigurationSettingValue?keyName=\").concat(keyName)).then(function (response) {\n return response.text();\n });\n }\n }, {\n key: \"GetCustomStyles\",\n value: function GetCustomStyles() {\n return fetch(\"\".concat(this.GetAppRoot(), \"/Api/ConfigurationApi/GetCustomStyles\")).then(function (response) {\n return response.json();\n });\n }\n }, {\n key: \"GetLocalCountryCode\",\n value: function GetLocalCountryCode(countryList) {\n var result = \"US\";\n\n if (!!window.navigator && !!countryList && !!countryList.length) {\n var locale = window.navigator.language || result;\n var localeParts = locale.split(\"-\");\n var countryCode = localeParts[localeParts.length - 1];\n var matches = countryList.filter(function (country) {\n return country.abbreviation == countryCode;\n });\n\n if (!!matches && matches.length > 0) {\n result = countryCode;\n }\n }\n\n return result;\n }\n }, {\n key: \"GetSiteInfo\",\n value: function GetSiteInfo() {\n var appRoot = this.GetAppRoot();\n var url = \"\".concat(appRoot, \"/api/ConfigurationApi/GetSiteInfo\");\n return fetch(url).then(function (response) {\n if (!response.ok) {\n throw new Error('Failed to fetch site info');\n }\n\n return response.json();\n }).then(function (data) {\n if (_typeof(data) !== 'object' || data === null) {\n throw new Error('Invalid site info data');\n }\n\n return data;\n })[\"catch\"](function () {\n return {};\n });\n }\n }]);\n\n return Configuration;\n}();\nexport var ConfigurationService = new Configuration();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { Configuration } from \"./Configuration\";\nexport var I18N = /*#__PURE__*/function () {\n function I18N(componentName) {\n _classCallCheck(this, I18N);\n\n this._componentName = componentName;\n this._locale = I18N.GetCurrentLocale();\n var config = new Configuration();\n this._appRoot = config.GetAppRoot();\n return fetch(\"\".concat(this._appRoot, \"/Api/ConfigurationApi/GetLabels?componentName=\").concat(this._componentName, \"&locale=\").concat(this._locale), {\n credentials: \"include\",\n mode: \"cors\",\n withCredentials: true\n }).then(function (response) {\n return response.json();\n });\n /*\r\n \t.catch((a, b) => {\r\n \t\t//TODO: Write this error into HTML:\r\n \t\tconsole.log(\"a\", a);\r\n \t\t//console.log(\"b\", b);\r\n \t\tvar h = this; //.getRootNode().host;\r\n \t\tconsole.log(\"h\", h);\r\n \t\tthis.parentNode.innerHTML = `Error: ${a}`;\r\n });\r\n */\n }\n\n _createClass(I18N, null, [{\n key: \"GetCurrentLocale\",\n value: function GetCurrentLocale() {\n return localStorage.userLocale || \"en\";\n }\n }]);\n\n return I18N;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { I18N } from \"../Shared/I18n\";\nexport var DropdownBuilder = /*#__PURE__*/function () {\n function DropdownBuilder() {\n _classCallCheck(this, DropdownBuilder);\n\n this._locale = null;\n } // Removes all <option> elements from select and populates with data formatted as id, value\n\n\n _createClass(DropdownBuilder, null, [{\n key: \"LoadDropdown\",\n value: function LoadDropdown(selectElement, data, placeholder) {\n // Remove all dropdown options:\n for (var j = selectElement.options.length - 1; j >= 0; j--) {\n selectElement.remove(j);\n } // Create empty first item:\n\n\n var firstOpt = document.createElement(\"option\");\n firstOpt.innerText = placeholder ? placeholder : \"- All Records -\";\n firstOpt.value = \"\";\n selectElement.appendChild(firstOpt); // Create option elements based on data:\n\n for (var i = 0; i < data.length; i++) {\n var opt = document.createElement(\"option\");\n opt.value = data[i].id;\n opt.innerText = data[i].value || data[i].name;\n\n if (data[i].disabled) {\n opt.setAttribute(\"disabled\", \"\");\n opt.style = \"background-color: #d9d8d8\";\n }\n\n selectElement.appendChild(opt);\n }\n } // Removes all <option> elements from select and populates with data formatted\n\n }, {\n key: \"BuildDropdownWithOptGroup\",\n value: function BuildDropdownWithOptGroup(selectElement, data, placeholder) {\n // Remove all dropdown optgroups and options:\n selectElement.innerHTML = \"\";\n\n var groupBy = function groupBy(keys) {\n return function (array) {\n return array.reduce(function (objectsByKeyValue, obj) {\n var value = keys.map(function (key) {\n return obj[key];\n });\n objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj);\n return objectsByKeyValue;\n }, {});\n };\n };\n\n var groupByGroupName = groupBy(['groupName']);\n var attributeByGroupName = Object.keys(groupByGroupName(data));\n var firstOpt = document.createElement(\"option\");\n firstOpt.innerText = placeholder ? placeholder : \"- Select -\";\n firstOpt.value = \"\";\n selectElement.appendChild(firstOpt);\n attributeByGroupName.forEach(function (groupName) {\n var optgroup = document.createElement(\"optgroup\");\n optgroup.label = groupName;\n var attrs = data.filter(function (attr) {\n return attr.groupName === groupName;\n });\n\n for (var i = 0; i < attrs.length; i++) {\n var opt = document.createElement(\"option\");\n opt.value = attrs[i].id;\n opt.innerText = attrs[i].name;\n optgroup.appendChild(opt);\n }\n\n selectElement.appendChild(optgroup);\n });\n } // Removes all <option> elements from select and populates with data formatted as id, value\n\n }, {\n key: \"BuildCountryDropdown\",\n value: function BuildCountryDropdown(selectElement, data, placeholder) {\n // Remove all dropdown options:\n for (var j = selectElement.options.length - 1; j >= 0; j--) {\n selectElement.remove(j);\n } // Create empty first item:\n\n\n var firstOpt = document.createElement(\"option\");\n firstOpt.innerText = placeholder ? placeholder : \"- All Records -\";\n firstOpt.value = \"\";\n selectElement.appendChild(firstOpt); // Create option elements based on data:\n\n for (var i = 0; i < data.length; i++) {\n if (data[i].abbreviation) {\n var opt = document.createElement(\"option\");\n opt.value = data[i].abbreviation;\n opt.innerText = data[i].value || data[i].name;\n\n if (data[i].abbreviation === 'US') {\n // move USA to top of optionsList\n selectElement.insertBefore(opt, selectElement[1]);\n } else {\n selectElement.appendChild(opt);\n }\n }\n }\n }\n }, {\n key: \"_GetMonthBaseOnLocale\",\n value: function _GetMonthBaseOnLocale(idx) {\n var objDate = new Date();\n objDate.setDate(1);\n objDate.setMonth(idx - 1);\n var month = objDate.toLocaleString(this._locale, {\n month: \"long\"\n });\n return month;\n }\n }, {\n key: \"BuildMonthsList\",\n value: function BuildMonthsList(selectElement, placeholder) {\n // Remove all dropdown options:\n for (var j = selectElement.options.length - 1; j >= 0; j--) {\n selectElement.remove(j);\n } // Create empty first item:\n\n\n var firstOpt = document.createElement(\"option\");\n firstOpt.innerText = placeholder ? placeholder : \"- All Records -\";\n firstOpt.value = \"\";\n selectElement.appendChild(firstOpt);\n this._locale = I18N.GetCurrentLocale();\n var monthNames = [];\n\n for (var m = 1; m <= 12; m++) {\n monthNames.push(this._GetMonthBaseOnLocale(m));\n }\n\n for (var i = 0; i < monthNames.length; i++) {\n var opt = document.createElement(\"option\");\n opt.value = i + 1;\n opt.innerText = monthNames[i];\n selectElement.appendChild(opt);\n }\n } // istanbul ignore next\n\n }, {\n key: \"GetCurrentMonth\",\n value: function GetCurrentMonth() {\n var date = new Date();\n return date.getMonth() + 1;\n }\n }, {\n key: \"ReduceMonthDropDown\",\n value: function ReduceMonthDropDown(selectElement, numberOfMonthsOut) {\n var month = this.GetCurrentMonth();\n var keptMonths = [];\n var monthValue = 0;\n\n for (var rr = 0; rr < numberOfMonthsOut; rr++) {\n monthValue = month + rr;\n\n if (monthValue > 12) {\n monthValue = monthValue - 12;\n }\n\n keptMonths.push(monthValue);\n }\n\n Array.from(selectElement.querySelectorAll(\"option\")).forEach(function (opt) {\n var value = opt.value;\n var monthNumber = Number(\"+\".concat(value));\n\n if (!!value && !keptMonths.includes(monthNumber)) {\n opt.disabled = true;\n opt.style.color = \"#C0C0C0\";\n }\n });\n }\n }]);\n\n return DropdownBuilder;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*jshint esversion: 6 */\n\n/**\r\n * Helps to renders error message on the screen\r\n */\nexport var ErrorBuilder = /*#__PURE__*/function () {\n function ErrorBuilder() {\n _classCallCheck(this, ErrorBuilder);\n }\n\n _createClass(ErrorBuilder, null, [{\n key: \"RenderHandler\",\n value:\n /**\r\n * A wrapper around Render method for catch()\r\n * Usage: promise.catch(ErrorBuilder.RenderHandler(errorDOMContainer));\r\n * @param {DOM node} container\r\n */\n function RenderHandler(container, i18n) {\n var _this = this;\n\n return function (error) {\n _this.Render(container, error, i18n);\n };\n }\n /**\r\n * Renders the validation part of an error message if applicable\r\n * @param {object} error - error object\r\n */\n\n }, {\n key: \"GetValidationError\",\n value: function GetValidationError(error) {\n var errorMessage = \"\";\n\n if (error.type && error.type == \"https://tools.ietf.org/html/rfc7231#section-6.5.1\") {\n //{\"type\":\"https://tools.ietf.org/html/rfc7231#section-6.5.1\",\"title\":\"One or more validation errors occurred.\",\"status\":400,\"traceId\":\"|741ab745-441eae0cac4b73b5.\",\"errors\":{\"Address.AddressLine1\":[\"potentially unsafe data detected in AddressLine1\"]}}\n if (error.title) {\n errorMessage = error.title.replace(/[ \\.]+$/, \"\");\n }\n }\n\n if (error.errors) {\n if (errorMessage !== \"\") {\n errorMessage += \": \";\n }\n\n Object.keys(error.errors).forEach(function (key) {\n errorMessage += \"\".concat(error.errors[key][0], \"; \");\n });\n }\n\n if (error.status === 422) {\n if (errorMessage !== \"\") {\n errorMessage += \": \";\n }\n\n Object.keys(error.message).forEach(function (key) {\n errorMessage += \"\".concat(error.errors[key][0], \"; \");\n });\n }\n\n return errorMessage;\n }\n /**\r\n * Renders error message in the provided container\r\n * Usage: promise.catch((error) => { ErrorBuilder.Render(errorDOMContainer, error); })\r\n * @param {DOM Node} container - Parent DOM container\r\n * @param {object} error - error object\r\n * @param {object} i18n - localized labels\r\n */\n\n }, {\n key: \"Render\",\n value: function Render(container, error, i18n) {\n if (!!container) {\n if (!error) {\n error = \"Unidentified error occurred\";\n } else if (error.status == 404) {\n error = \"Not found\";\n }\n\n if (!!error.IsLocalizable && !!i18n && !!error.Values) {\n var errorMessage = i18n[error.Details] || error.Details;\n\n if (!!error.Values) {\n for (var key in error.Values) {\n if (error.Values.hasOwnProperty(key)) {\n errorMessage = errorMessage.replace(new RegExp(\"\\\\[\".concat(key, \"\\\\]\"), \"ig\"), error.Values[key]);\n }\n }\n }\n\n error = errorMessage;\n } else if (error.status == 422 || error.type && error.type == \"https://tools.ietf.org/html/rfc7231#section-6.5.1\") {\n error = GetValidationError(error);\n } else {\n error = error.message || error.Message || error.details || error.Details || error;\n }\n\n console.error(error);\n container.innerHTML = `<div class=\"mppw-alert mppw-alert__danger\"><div class=\"mppw-alert__icon\"></div><span class=\"mppw-alert__text\">${error}</span></div>` ;\n }\n }\n /**\r\n * Renders alert message in the provided container\r\n * Usage: promise.catch(ErrorBuilder.RenderAlert(errorDOMContainer, type, message))\r\n * @param {DOM Node} container\r\n * @param {string} type\r\n * @param {string} message\r\n */\n\n }, {\n key: \"RenderAlert\",\n value: function RenderAlert(container, type, message) {\n if (!!container) {\n type = type || 'danger';\n message = message || 'Default alert message';\n container.innerHTML += `<div class=\"mppw-alert mppw-alert__${type}\"><div class=\"mppw-alert__icon\"></div><span class=\"mppw-alert__text\">${message}</span></div>` ;\n }\n }\n }, {\n key: \"ClearAllAlerts\",\n value:\n /**\r\n * Clears any alerts that are displayed\r\n * @param {DOM Node} container\r\n */\n function ClearAllAlerts(container) {\n if (!!container) {\n container.innerHTML = '';\n }\n }\n }]);\n\n return ErrorBuilder;\n}();","function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nexport var FormManager = /*#__PURE__*/function () {\n // Constructor:\n function FormManager(form) {\n _classCallCheck(this, FormManager);\n\n this._form = form;\n this._isDirty = false;\n this._handleUnloadPageFunction = null;\n\n this._wireupValidation();\n\n this._form.setAttribute(\"novalidate\", true);\n }\n\n _createClass(FormManager, [{\n key: \"Dispose\",\n value: function Dispose() {\n if (this._handleUnloadPageFunction != null) {\n window.removeEventListener(\"beforeunload\", this._handleUnloadPageFunction);\n }\n } // Method for checking validity of entire form:\n\n }, {\n key: \"IsValid\",\n value: function IsValid() {\n var isValid = true;\n\n var _iterator = _createForOfIteratorHelper(this._form.elements),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var field = _step.value;\n\n if (field.type != \"submit\" && field.type != \"reset\" && field.type != \"hidden\" && field.type != \"button\" && !field.disabled) {\n if (!this.ValidateField(field)) {\n isValid = false;\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return isValid;\n }\n }, {\n key: \"SetIsDirty\",\n value: function SetIsDirty(value) {\n this._isDirty = value;\n } // Method for checking validity of particular form field\n\n }, {\n key: \"ValidateField\",\n value: function ValidateField(field) {\n var isValid = true;\n\n if (!!field.dataset.ignoreValidation) {\n return true;\n }\n\n var requiredMessage = field.dataset.requiredMessage || \"Required\";\n var invalidMessage = field.dataset.invalidMessage || \"Invalid format\";\n field.setAttribute('value', field.value); // Format validation:\n\n if (field.type == \"date\" && !!field.getAttribute(\"min\") && new Date(field.getAttribute(\"min\")) > new Date(field.value)) {\n this._setInvalid(field, invalidMessage);\n\n isValid = false;\n } else if (field.type == \"date\" && !!field.getAttribute(\"max\") && new Date(field.value) > new Date(field.getAttribute(\"max\"))) {\n this._setInvalid(field, invalidMessage);\n\n isValid = false;\n } else if (field.type != \"date\" && !!field.getAttribute(\"min\") && field.getAttribute(\"min\") > field.value.length) {\n this._setInvalid(field, invalidMessage);\n\n isValid = false;\n } else if (field.type != \"date\" && !!field.getAttribute(\"max\") && field.value.length > field.getAttribute(\"max\")) {\n this._setInvalid(field, invalidMessage);\n\n isValid = false;\n } else if (!!field.getAttribute(\"maxlength\") && field.value.length > field.getAttribute(\"maxlength\")) {\n this._setInvalid(field, invalidMessage);\n\n isValid = false;\n } else if (field.type === \"tel\" && field.value.length > 0 && field.value[0] !== '+' && !FormManager.PHONE_REGEX.test(field.value)) {\n this._setInvalid(field, invalidMessage);\n\n isValid = false;\n } else if (field.type === \"email\" && field.value.length > 0 && !FormManager.EMAIL_REGEX.test(field.value)) {\n this._setInvalid(field, invalidMessage);\n\n isValid = false;\n } else {\n this._setValid(field);\n } // Story: Make email required if phone is empty (and vice-versa)\n // Alternate field dependency (must have required attribute and require-if-blank=\"<alternate field name>\")\n // i.e. This field is required if the provided field is not populated\n\n\n var dependencyPassed = true;\n\n if (!!field.dataset.requireIfBlank) {\n var $dependentField = this._form.querySelector(\"[name=\\\"\".concat(field.dataset.requireIfBlank, \"\\\"]\"));\n\n if (!!$dependentField) {\n dependencyPassed = !this._checkRequired($dependentField);\n }\n } // Parent field dependency (must have required attribute and require-if=\"<parent field name>\")\n // i.e. This field is required if the provided field is populated\n\n\n if (!!field.dataset.requireIf) {\n var $parentField = this._form.querySelector(\"[name=\\\"\".concat(field.dataset.requireIf, \"\\\"]\"));\n\n if (!!$parentField) {\n dependencyPassed = this._checkRequired($parentField);\n }\n } // Required validation:\n\n\n if (field.getAttribute(\"required\") != null && isValid == true && dependencyPassed == true) {\n isValid = this._checkRequired(field);\n\n if (!isValid) {\n this._setInvalid(field, requiredMessage);\n } else {\n this._setValid(field);\n }\n }\n\n return isValid;\n } // Method for resetting form after a successful submission\n\n }, {\n key: \"Reset\",\n value: function Reset() {\n var form = this._form;\n form.reset(); // TODO: remove when we figure out why reset() doesn't work for group-details contactForm\n\n this.ResetFormValues();\n this.SetIsDirty(false);\n }\n }, {\n key: \"ResetValidationMessages\",\n value: function ResetValidationMessages() {\n var form = this._form;\n\n for (var i = 0; i < form.length; i++) {\n var formElement = form.elements[i];\n\n switch (formElement.type) {\n case 'submit':\n case 'hidden':\n case 'reset':\n case 'button':\n // Do not reset value when type is one of above\n break;\n\n default:\n formElement.parentElement.classList.remove(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n formElement.parentElement.classList.remove(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n\n this._clearMessages(formElement);\n\n }\n }\n } // Resets form element values to empty string\n\n }, {\n key: \"ResetFormValues\",\n value: function ResetFormValues() {\n var form = this._form;\n\n for (var i = 0; i < form.length; i++) {\n var formElement = form.elements[i];\n\n switch (formElement.type) {\n case 'submit':\n case 'hidden':\n case 'reset':\n case 'button':\n // Do not reset value when type is one of above\n break;\n\n default:\n formElement.setAttribute('value', '');\n formElement.parentElement.classList.remove(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n formElement.parentElement.classList.remove(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n\n this._clearMessages(formElement);\n\n if (formElement.type === 'textarea') {//formElement.parentElement.lastElementChild.innerHTML = '';\n }\n\n }\n }\n } //Private methods:\n\n }, {\n key: \"_checkRequired\",\n value: function _checkRequired(field) {\n var isValid = true;\n\n switch (field.type) {\n case \"checkbox\":\n if (!!field.dataset.checkboxGroup) {\n // At least one checkbox in group satisfies requirement:\n isValid = this._form.querySelectorAll(\"input[data-checkbox-group='\".concat(field.dataset.checkboxGroup, \"']:checked\")).length > 0;\n } else {\n isValid = field.checked;\n }\n\n break;\n\n case \"radio\":\n isValid = this._form.querySelectorAll(\"input[name='\".concat(field.name, \"']:checked\")).length > 0;\n break;\n\n case \"select-one\":\n case \"select-multiple\":\n isValid = !!field.value;\n break;\n\n default:\n isValid = field.value.length > 0;\n }\n\n return isValid;\n }\n }, {\n key: \"_wireupValidation\",\n value: function _wireupValidation() {\n var _this = this;\n\n //Notify user when user is navigating away from dirty form:\n this._handleUnloadPageFunction = function (event) {\n if (!!_this._isDirty) {\n event.returnValue = true; // Browsers no longer display this custom message\n\n return \"Are you sure you want to navigate away from this page? Changes made will not be saved.\";\n }\n };\n\n window.addEventListener(\"beforeunload\", this._handleUnloadPageFunction); //Immediately validate each field on change:\n\n var allElements = this._form.elements;\n Array.from(allElements).forEach(function (element) {\n element.addEventListener(\"change\", function () {\n _this.ValidateField(element);\n\n _this.SetIsDirty(true); //Validate dependent fields:\n\n\n if (!!element.dataset.requireIfBlank) {\n var dependentField = _this._form.querySelector(\"[name=\\\"\".concat(element.dataset.requireIfBlank, \"\\\"]\"));\n\n if (!!dependentField) {\n _this.ValidateField(dependentField);\n }\n }\n\n if (!!element.dataset.requireIf) {\n var parentField = _this._form.querySelector(\"[name=\\\"\".concat(element.dataset.requireIf, \"\\\"]\"));\n\n if (!!parentField) {\n _this.ValidateField(parentField);\n }\n }\n });\n }); // Counter for text areas:\n\n var textAreas = this._form.querySelectorAll(\"textarea\");\n\n Array.from(textAreas).forEach(function (element) {\n element.addEventListener(\"keyup\", function () {\n var characterCount = element.value.length;\n var maxCount = element.getAttribute('maxlength') || 500;\n var counterDiv = element.nextElementSibling.nextElementSibling; // standardize placement of structure for nextElementSibling\n\n if (!!counterDiv && counterDiv.classList.contains(FormManager.TEXTAREA_COUNTER_CLASSNAME)) {\n if (characterCount > 0) {\n counterDiv.innerText = \"\".concat(characterCount, \" / \").concat(maxCount);\n } else {\n counterDiv.innerText = '';\n }\n }\n });\n }); // Counter for input text boxes\n // Right now only used in mpp-custom-forms\n\n var textInputs = this._form.querySelectorAll('[data-input-text-counter]');\n\n Array.from(textInputs).forEach(function (element) {\n element.addEventListener(\"keyup\", function () {\n var characterCount = element.value.length;\n var maxCount = element.getAttribute('maxlength') || 500;\n var counterDiv = element.nextElementSibling.nextElementSibling; // standardize placement of structure for nextElementSibling\n\n if (!!counterDiv && counterDiv.classList.contains(FormManager.TEXTAREA_COUNTER_CLASSNAME)) {\n if (characterCount > 0) {\n counterDiv.innerText = \"\".concat(characterCount, \" / \").concat(maxCount);\n } else {\n counterDiv.innerText = '';\n }\n }\n });\n }); // Mask for phone numbers:\n\n var phoneFields = this._form.querySelectorAll(\"input[type='tel']\");\n\n Array.from(phoneFields).forEach(function (element) {\n element.addEventListener(\"input\", function (e) {\n if (!e.target.value.startsWith(\"+\")) {\n var x = e.target.value.replace(/\\D/g, '');\n\n if (x.length > 10) {\n x = x.match(/(\\d{0,1})(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\n e.target.value = !x[2] ? x[1] : x[1] + '-' + x[2] + (x[3] ? '-' + x[3] : '') + (x[4] ? '-' + x[4] : '');\n } else {\n x = x.match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\n e.target.value = !x[2] ? x[1] : x[1] + '-' + x[2] + (x[3] ? '-' + x[3] : '');\n }\n } else {\n var y = e.target.value.replace(/[^0-9\\+\\-]/g, '');\n e.target.value = y;\n }\n });\n });\n }\n }, {\n key: \"_setInvalid\",\n value: function _setInvalid(field, message) {\n var formField = field.closest(\".\".concat(FormManager.FIELD_CONTAINER_CLASSNAME));\n var formFieldAlt = field.closest(\".\".concat(FormManager.FIELD_CONTAINER_CLASSNAME_ALT));\n var existingMessageDiv = formField === null ? formFieldAlt.nextSibling : formField.nextSibling;\n\n if (!!existingMessageDiv && !!existingMessageDiv.classList && existingMessageDiv.classList.contains(FormManager.MESSAGE_CONTAINER_CLASSNAME)) {\n existingMessageDiv.parentNode.removeChild(existingMessageDiv);\n }\n\n if (!!formField) {\n formField.classList.remove(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n formField.classList.add(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n } else {\n formFieldAlt.classList.remove(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n formFieldAlt.classList.add(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n }\n\n if (message !== \"\") {\n var messageDiv = document.createElement(\"div\");\n messageDiv.setAttribute(\"class\", FormManager.MESSAGE_CONTAINER_CLASSNAME);\n messageDiv.innerHTML = \"<label class=\\\"mppw-form-field__message--is-invalid\\\">\".concat(message, \"</label>\");\n\n if (!!formField) {\n formField.parentNode.insertBefore(messageDiv, formField.nextSibling);\n } else {\n formFieldAlt.parentNode.insertBefore(messageDiv, formFieldAlt.nextSibling);\n }\n }\n }\n }, {\n key: \"_setValid\",\n value: function _setValid(field) {\n var formField = field.closest(\".\".concat(FormManager.FIELD_CONTAINER_CLASSNAME));\n var formFieldAlt = field.closest(\".\".concat(FormManager.FIELD_CONTAINER_CLASSNAME_ALT));\n var existingMessageDiv = formField === null ? formFieldAlt.nextSibling : formField.nextSibling;\n\n if (!!existingMessageDiv && !!existingMessageDiv.classList && existingMessageDiv.classList.contains(FormManager.MESSAGE_CONTAINER_CLASSNAME)) {\n existingMessageDiv.parentNode.removeChild(existingMessageDiv);\n }\n\n if (!!formField) {\n formField.classList.remove(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n formField.classList.add(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n } else {\n formFieldAlt.classList.remove(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n formFieldAlt.classList.add(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n }\n }\n }, {\n key: \"_clearMessages\",\n value: function _clearMessages(field) {\n var formField = field.closest(\".\".concat(FormManager.FIELD_CONTAINER_CLASSNAME));\n var formFieldAlt = field.closest(\".\".concat(FormManager.FIELD_CONTAINER_CLASSNAME_ALT));\n var existingMessageDiv = formField === null ? formFieldAlt.nextSibling : formField.nextSibling;\n\n if (!!existingMessageDiv && !!existingMessageDiv.classList && existingMessageDiv.classList.contains(FormManager.MESSAGE_CONTAINER_CLASSNAME)) {\n existingMessageDiv.parentNode.removeChild(existingMessageDiv);\n }\n\n if (!!formField) {\n formField.classList.remove(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n formField.classList.remove(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n } else {\n formFieldAlt.classList.remove(FormManager.FIELD_CONTAINER_INVALID_CLASSNAME);\n formFieldAlt.classList.remove(FormManager.FIELD_CONTAINER_VALID_CLASSNAME);\n }\n }\n }], [{\n key: \"TEXTAREA_COUNTER_CLASSNAME\",\n get: //Constants:\n function get() {\n return \"mppw-textarea-counter\";\n }\n }, {\n key: \"MESSAGE_CONTAINER_CLASSNAME\",\n get: function get() {\n return \"mppw-form-field__message_container\";\n }\n }, {\n key: \"FIELD_CONTAINER_CLASSNAME\",\n get: function get() {\n return \"mppw-form-field\";\n }\n }, {\n key: \"FIELD_CONTAINER_CLASSNAME_ALT\",\n get: function get() {\n return \"mppw-form-field-alt\";\n }\n }, {\n key: \"FIELD_CONTAINER_VALID_CLASSNAME\",\n get: function get() {\n return \"mppw-form-field--is-valid\";\n }\n }, {\n key: \"FIELD_CONTAINER_INVALID_CLASSNAME\",\n get: function get() {\n return \"mppw-form-field--is-invalid\";\n }\n }, {\n key: \"EMAIL_REGEX\",\n get: function get() {\n return /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n }\n }, {\n key: \"PHONE_REGEX\",\n get: function get() {\n return /^((\\d{3}-\\d{3}-\\d{4}( x\\d+)?)|(\\d{11}( x\\d+)?)|(\\+\\d.*))$/;\n }\n }]);\n\n return FormManager;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*jshint esversion: 6 */\nexport var TextFormatter = /*#__PURE__*/function () {\n function TextFormatter(value) {\n _classCallCheck(this, TextFormatter);\n\n this._value = !!value ? String(value) : \"\";\n }\n /**\r\n * This function is needed to honor line breaks\r\n * @param {*} textValue - string\r\n */\n\n\n _createClass(TextFormatter, [{\n key: \"addLineBreaks\",\n value: function addLineBreaks() {\n return this._value.replace(/(?:\\r\\n|\\r|\\n)/g, \"<br />\");\n }\n }]);\n\n return TextFormatter;\n}();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/*jshint esversion: 8 */\nexport var ArgumentException = /*#__PURE__*/function (_Error) {\n _inherits(ArgumentException, _Error);\n\n var _super = _createSuper(ArgumentException);\n\n function ArgumentException(argName) {\n _classCallCheck(this, ArgumentException);\n\n return _super.call(this, \"Argument \".concat(argName, \" is invalid, null or undefined\"));\n }\n\n return ArgumentException;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport var ArgumentTypeException = /*#__PURE__*/function (_Error2) {\n _inherits(ArgumentTypeException, _Error2);\n\n var _super2 = _createSuper(ArgumentTypeException);\n\n function ArgumentTypeException(argName) {\n _classCallCheck(this, ArgumentTypeException);\n\n return _super2.call(this, \"Type of argument \".concat(argName, \" is invalid\"));\n }\n\n return ArgumentTypeException;\n}( /*#__PURE__*/_wrapNativeSuper(Error));","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*jshint esversion: 8 */\nimport { ArgumentException } from \"./Exceptions\";\nimport { ArgumentTypeException } from \"./Exceptions\";\n\nvar _getKey = function _getKey(key) {\n return \"mpp-widgets_\".concat(key);\n};\n/**\r\n * Static storage wrapper class. Provides get, set and clear abilities\r\n */\n\n\nexport var LocalStorageManager = /*#__PURE__*/function () {\n function LocalStorageManager() {\n _classCallCheck(this, LocalStorageManager);\n }\n\n _createClass(LocalStorageManager, null, [{\n key: \"setItem\",\n value:\n /**\r\n * Sets item in storage under provided key name\r\n * @param {string} key Key under which item is stored\r\n * @param {object} item Item to be stored\r\n * @throws {ArgumentException}\r\n * @throws {ArgumentTypeException}\r\n */\n function setItem(key, item) {\n if (!key) {\n throw new ArgumentException(\"key\");\n }\n\n if (typeof key !== \"string\") {\n throw new ArgumentTypeException(\"key\");\n }\n\n if (!!window.localStorage && !!window.localStorage.setItem) {\n var fullKey = _getKey(key);\n\n window.localStorage.setItem(fullKey, item);\n }\n }\n /**\r\n * Gets item from storage, if not available returns null\r\n * @param {string} key Key under which item is stored\r\n * @returns {object} Item object if available, otherwise returns null\r\n * @throws {ArgumentException}\r\n * @throws {ArgumentTypeException}\r\n */\n\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n if (!key) {\n throw new ArgumentException(\"key\");\n }\n\n if (typeof key !== \"string\") {\n throw new ArgumentTypeException(\"key\");\n }\n\n var item = null;\n\n if (!!window.localStorage && !!window.localStorage.getItem) {\n var fullKey = _getKey(key);\n\n item = window.localStorage.getItem(fullKey) || null;\n }\n\n return item;\n }\n /**\r\n * Clears all \"context\" items in localStorage\r\n */\n\n }, {\n key: \"clear\",\n value: function clear(startsWith) {\n if (!!window.localStorage && !!window.localStorage.removeItem) {\n var storageKeys = Object.keys(window.localStorage);\n\n if (!!storageKeys.length) {\n var searchFor = _getKey(startsWith);\n\n for (var key in storageKeys) {\n if (!!key) {\n var keyValue = storageKeys[key];\n\n if (!!keyValue && !!keyValue.startsWith && !!keyValue.startsWith(searchFor)) {\n window.localStorage.removeItem(keyValue);\n }\n }\n }\n }\n }\n }\n }]);\n\n return LocalStorageManager;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*jshint esversion: 8 */\nimport { ArgumentException } from \"./Exceptions\";\nimport { ArgumentTypeException } from \"./Exceptions\";\n\nvar _getKey = function _getKey(key) {\n return \"mpp-widgets_\".concat(key);\n};\n/**\r\n * Static storage wrapper class. Provides get, set and clear abilities\r\n */\n\n\nexport var SessionStorageManager = /*#__PURE__*/function () {\n function SessionStorageManager() {\n _classCallCheck(this, SessionStorageManager);\n }\n\n _createClass(SessionStorageManager, null, [{\n key: \"setItem\",\n value:\n /**\r\n * Sets item in storage under provided key name\r\n * @param {string} key Key under which item is stored\r\n * @param {object} item Item to be stored\r\n * @throws {ArgumentException}\r\n * @throws {ArgumentTypeException}\r\n */\n function setItem(key, item) {\n if (!key) {\n throw new ArgumentException(\"key\");\n }\n\n if (typeof key !== \"string\") {\n throw new ArgumentTypeException(\"key\");\n }\n\n if (!!window.sessionStorage && !!window.sessionStorage.setItem) {\n var fullKey = _getKey(key);\n\n window.sessionStorage.setItem(fullKey, item);\n }\n }\n /**\r\n * Gets item from storage, if not available returns null\r\n * @param {string} key Key under which item is stored\r\n * @returns {object} Item object if available, otherwise returns null\r\n * @throws {ArgumentException}\r\n * @throws {ArgumentTypeException}\r\n */\n\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n if (!key) {\n throw new ArgumentException(\"key\");\n }\n\n if (typeof key !== \"string\") {\n throw new ArgumentTypeException(\"key\");\n }\n\n var item = null;\n\n if (!!window.sessionStorage && !!window.sessionStorage.getItem) {\n var fullKey = _getKey(key);\n\n item = window.sessionStorage.getItem(fullKey) || null;\n }\n\n return item;\n }\n /**\r\n * Clears all \"context\" items in sessionStorage\r\n */\n\n }, {\n key: \"clear\",\n value: function clear(startsWith) {\n if (!!window.sessionStorage && !!window.sessionStorage.removeItem) {\n var storageKeys = Object.keys(window.sessionStorage);\n\n if (!!storageKeys.length) {\n var searchFor = _getKey(startsWith);\n\n for (var key in storageKeys) {\n if (!!key) {\n var keyValue = storageKeys[key];\n\n if (!!keyValue && !!keyValue.startsWith && !!keyValue.startsWith(searchFor)) {\n window.sessionStorage.removeItem(keyValue);\n }\n }\n }\n }\n }\n }\n }]);\n\n return SessionStorageManager;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar privateMethods = {\n getUrlParameter: function getUrlParameter(params, name) {\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\n var results = regex.exec(params);\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n }\n};\nexport var URLSearchParameters = /*#__PURE__*/function () {\n /**\r\n * @return {URLSearchParameters}\r\n */\n function URLSearchParameters(params) {\n _classCallCheck(this, URLSearchParameters);\n\n this._params = params;\n if (URLSearchParams) this._urlSearchParams = new URLSearchParams(this._params);\n return this;\n }\n\n _createClass(URLSearchParameters, [{\n key: \"get\",\n value: function get(name) {\n if (this._params === \"\") return \"\";\n return URLSearchParams ? this._urlSearchParams.get(name) : privateMethods.getUrlParameter.call(this._params, name);\n }\n }, {\n key: \"has\",\n value: function has(name) {\n if (this._params === \"\") return false;\n\n if (URLSearchParams) {\n return this._urlSearchParams.has(name);\n } else {\n var param = privateMethods.getUrlParameter.call(this._params, name);\n return param !== undefined;\n }\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this._params ? this._params.substr(1) : \"\";\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return this._params !== \"\";\n }\n }]);\n\n return URLSearchParameters;\n}();","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* jshint esversion: 8 */\nimport { ConfigurationService } from '../Shared/Configuration';\nimport { LocalStorageManager } from '../Shared/LocalStorageManager';\nimport { SessionStorageManager } from '../Shared/SessionStorageManager';\nimport { URLSearchParameters } from '../Shared/URLSearchParameters';\nvar _tokenKeyName = \"AuthToken\";\nvar _idTokenKeyName = \"IdToken\";\nvar _expiresAfterName = \"ExpiresAfter\";\nvar _csrfToken = \"CSRFToken\";\nwindow.mppw_refreshTokenPromise = null;\nexport var OAuthService = /*#__PURE__*/function () {\n function OAuthService() {\n _classCallCheck(this, OAuthService);\n }\n\n _createClass(OAuthService, null, [{\n key: \"Token\",\n get: function get() {\n var tokenValue = LocalStorageManager.getItem(_tokenKeyName);\n var token = tokenValue === \"null\" ? null : tokenValue;\n return token;\n },\n set: function set(token) {\n LocalStorageManager.setItem(_tokenKeyName, token);\n }\n }, {\n key: \"IdToken\",\n get: function get() {\n var idTokenValue = LocalStorageManager.getItem(_idTokenKeyName);\n var idToken = idTokenValue === \"null\" ? null : idTokenValue;\n return idToken;\n },\n set: function set(idToken) {\n LocalStorageManager.setItem(_idTokenKeyName, idToken);\n }\n }, {\n key: \"ExpiresAfter\",\n get: function get() {\n var expiresAfterValue = LocalStorageManager.getItem(_expiresAfterName);\n var expiresAfter = expiresAfterValue === \"null\" ? null : new Date(expiresAfterValue);\n return expiresAfter;\n },\n set: function set(expiresAfter) {\n LocalStorageManager.setItem(_expiresAfterName, expiresAfter);\n }\n }, {\n key: \"CSRFToken\",\n get: function get() {\n try {\n var token = JSON.parse(SessionStorageManager.getItem(_csrfToken));\n return token;\n } catch (_unused) {\n return null;\n }\n },\n set: function set(token) {\n SessionStorageManager.setItem(_csrfToken, JSON.stringify(token));\n }\n }, {\n key: \"SignIn\",\n value: function SignIn() {\n ConfigurationService.GetAuthConfiguration().then(function (oauthConfig) {\n if (!!oauthConfig) {\n var url = \"\".concat(oauthConfig.signInUrl, \"?\") + \"response_type=\".concat(oauthConfig.responseType) + \"&scope=\".concat(oauthConfig.scope) + \"&client_id=\".concat(oauthConfig.clientId) + \"&redirect_uri=\".concat(oauthConfig.redirectUrl) + \"&nonce=\".concat(oauthConfig.nonce) + \"&state=\".concat(encodeURIComponent(window.location));\n OAuthService.Token = null;\n window.location.replace(url);\n }\n });\n }\n }, {\n key: \"SignOut\",\n value: function SignOut() {\n ConfigurationService.GetAuthConfiguration(true).then(function (oauthConfig) {\n if (!!oauthConfig) {\n var url = \"\".concat(oauthConfig.signOutUrl, \"?\") + \"id_token_hint=\".concat(OAuthService.IdToken) + \"&post_logout_redirect_uri=\".concat(oauthConfig.postLogoutRedirectUrl) + \"&state=\".concat(encodeURI(window.location));\n OAuthService.Token = null;\n OAuthService.IdToken = null;\n window.location.replace(url);\n }\n });\n }\n }, {\n key: \"SaveCSRFTokenAsync\",\n value: function () {\n var _SaveCSRFTokenAsync = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var result;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return ConfigurationService.GetCSRFToken();\n\n case 2:\n result = _context.sent;\n OAuthService.CSRFToken = result;\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function SaveCSRFTokenAsync() {\n return _SaveCSRFTokenAsync.apply(this, arguments);\n }\n\n return SaveCSRFTokenAsync;\n }()\n }, {\n key: \"SaveAuthTokensAsync\",\n value: function () {\n var _SaveAuthTokensAsync = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var tokenParamName, userSearchParameters, token, url, tokens;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n tokenParamName = \"cacheKey\";\n userSearchParameters = new URLSearchParameters(window.location.search);\n token = userSearchParameters.get(tokenParamName);\n\n if (!token) {\n _context2.next = 9;\n break;\n }\n\n if (!!window.history && !!window.history.replaceState && !!token) {\n url = String(window.location);\n url = url.replace(\"?\" + tokenParamName + \"=\", \"\").replace(\"&\" + tokenParamName + \"=\", \"\").replace(token, \"\");\n window.history.replaceState({}, document.title, url);\n }\n\n _context2.next = 7;\n return ConfigurationService.GetAuthToken(token);\n\n case 7:\n tokens = _context2.sent;\n\n OAuthService._SaveTokens(tokens);\n\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function SaveAuthTokensAsync() {\n return _SaveAuthTokensAsync.apply(this, arguments);\n }\n\n return SaveAuthTokensAsync;\n }()\n }, {\n key: \"RefreshTokensAsync\",\n value: function () {\n var _RefreshTokensAsync = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (!(window.mppw_refreshTokenPromise != null)) {\n _context3.next = 2;\n break;\n }\n\n return _context3.abrupt(\"return\", window.mppw_refreshTokenPromise);\n\n case 2:\n // Put RE-AUTH promise into a global var so that other requests may reuse existing promise until it is resolved\n window.mppw_refreshTokenPromise = new Promise(function (resolve) {\n if (!OAuthService.Token || !OAuthService.IdToken || !OAuthService.ExpiresAfter) {\n resolve();\n return;\n }\n\n ConfigurationService.GetAuthConfiguration(true).then(function (oauthConfig) {\n if (!!oauthConfig) {\n var url = \"\".concat(oauthConfig.signInUrl, \"?\") + \"response_type=\".concat(oauthConfig.responseType) + \"&scope=\".concat(oauthConfig.scope) + \"&client_id=\".concat(oauthConfig.clientId) + \"&redirect_uri=\".concat(oauthConfig.redirectUrl) + \"&nonce=\".concat(oauthConfig.nonce) + \"&state=REAUTH\";\n fetch(url, {\n credentials: \"include\"\n }).then(function (response) {\n return response.json().then(function (tokens) {\n OAuthService._SaveTokens(tokens);\n\n resolve();\n })[\"catch\"](function () {\n OAuthService._ClearTokens();\n\n resolve();\n });\n })[\"catch\"](function () {\n OAuthService._ClearTokens();\n\n resolve();\n });\n }\n });\n })[\"finally\"](function () {\n // Remove resolved promise from the global var\n window.mppw_refreshTokenPromise = null;\n });\n return _context3.abrupt(\"return\", window.mppw_refreshTokenPromise);\n\n case 4:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function RefreshTokensAsync() {\n return _RefreshTokensAsync.apply(this, arguments);\n }\n\n return RefreshTokensAsync;\n }()\n }, {\n key: \"_SaveTokens\",\n value: function _SaveTokens(tokens) {\n OAuthService.Token = tokens.accessToken;\n OAuthService.IdToken = tokens.idToken;\n var expiresAfter = new Date();\n expiresAfter.setSeconds(expiresAfter.getSeconds() + tokens.expiresIn - 60);\n OAuthService.ExpiresAfter = expiresAfter;\n }\n }, {\n key: \"_ClearTokens\",\n value: function _ClearTokens() {\n OAuthService.Token = null;\n OAuthService.IdToken = null;\n OAuthService.ExpiresAfter = null;\n }\n }]);\n\n return OAuthService;\n}();","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { OAuthService } from './OAuthService'; // adapted from: https://stackoverflow.com/questions/51297206/fetch-api-global-error-handler\n\nvar _addAuth = function _addAuth(options) {\n options = options || {};\n\n if (!!OAuthService.Token) {\n options.credentials = \"include\";\n options.withCredentials = true;\n options.headers = options.headers || {};\n options.headers.Authorization = \"Bearer \".concat(OAuthService.Token);\n }\n\n return options;\n};\n\nvar _addCSRF = function _addCSRF(options) {\n return new Promise(function (resolve) {\n options = options || {};\n options.headers = options.headers || {};\n\n if (!!OAuthService.CSRFToken && !!OAuthService.CSRFToken.token && !!OAuthService.CSRFToken.expiresAfterUtc) {\n var expiresAfterUTC = new Date(OAuthService.CSRFToken.expiresAfterUtc);\n\n var nowUTC = _getCurrentUTCDateTime();\n\n if (nowUTC >= expiresAfterUTC) {\n OAuthService.SaveCSRFTokenAsync().then(function () {\n options.headers[\"x-csrf-token\"] = OAuthService.CSRFToken.token;\n resolve(options);\n });\n } else {\n options.headers[\"x-csrf-token\"] = OAuthService.CSRFToken.token;\n resolve(options);\n }\n } else {\n resolve(options);\n }\n });\n};\n\nvar _getCurrentUTCDateTime = function _getCurrentUTCDateTime() {\n var now = new Date();\n var utcDateTime = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds());\n return utcDateTime;\n};\n\nvar _htmlSanitizer = /<\\/?(embed|form|frame|frameset|html|iframe|input|keygen|link|meta|noembed|noframes|noscript|object|plaintext|pre|script|select|style|svg|video|wbr|xmp)[^>]*>/ig;\nvar _eventSanitizer = /(<[^>]+\\s)on[^=]+/ig;\n\nvar _htmlSanitize = function _htmlSanitize(textObj) {\n var sanitize = function sanitize(str) {\n return str.replace(_htmlSanitizer, \"\").replace(_eventSanitizer, \"$1 sanitizedEvent\");\n };\n\n var cleanKeys = function cleanKeys(obj, depth) {\n if (!obj) {\n return obj;\n }\n\n Object.getOwnPropertyNames(obj).forEach(function (key) {\n if (typeof obj[key] === \"string\") {\n obj[key] = sanitize(obj[key]);\n }\n\n if (_typeof(obj[key]) === \"object\" && depth < 40) {\n obj[key] = cleanKeys(obj[key], depth + 1);\n }\n });\n return obj;\n };\n\n return cleanKeys(textObj, 0);\n};\n\nexport var Ajax = /*#__PURE__*/function () {\n function Ajax() {\n _classCallCheck(this, Ajax);\n }\n\n _createClass(Ajax, null, [{\n key: \"Get\",\n value: function Get(url) {\n return Ajax.RefreshTokensIfNeededAsync().then(function () {\n return new Promise(function (resolve, reject) {\n var options = _addAuth();\n\n fetch(url, options).then(function (response) {\n if (response.ok) {\n response.json().then(function (json) {\n resolve(_htmlSanitize(json));\n })[\"catch\"](function (err) {\n reject(err);\n });\n } else {\n if (response.status === 401) {\n OAuthService.SignIn();\n } else {\n reject(response);\n }\n }\n });\n });\n });\n }\n }, {\n key: \"Post\",\n value: function () {\n var _Post = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, data, additionalHeaders) {\n var retry,\n options,\n response,\n json,\n err,\n _args = arguments;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n retry = _args.length > 3 && _args[3] !== undefined ? _args[3] : true;\n _context.next = 3;\n return Ajax.RefreshTokensIfNeededAsync();\n\n case 3:\n options = _addAuth({\n method: \"POST\",\n body: data\n });\n\n if (additionalHeaders) {\n Object.keys(additionalHeaders).forEach(function (header) {\n options.headers[header] = additionalHeaders[header];\n });\n }\n\n _context.next = 7;\n return _addCSRF(options);\n\n case 7:\n options = _context.sent;\n _context.prev = 8;\n _context.next = 11;\n return fetch(url, options);\n\n case 11:\n response = _context.sent;\n\n if (!response.ok) {\n _context.next = 21;\n break;\n }\n\n _context.next = 15;\n return response.json();\n\n case 15:\n json = _context.sent;\n _context.next = 18;\n return _htmlSanitize(json);\n\n case 18:\n return _context.abrupt(\"return\", _context.sent);\n\n case 21:\n _context.next = 23;\n return response.json();\n\n case 23:\n err = _context.sent;\n throw err;\n\n case 25:\n _context.next = 36;\n break;\n\n case 27:\n _context.prev = 27;\n _context.t0 = _context[\"catch\"](8);\n\n if (!(retry && _context.t0.SecondaryStatusCode && _context.t0.SecondaryStatusCode === \"CSRF\")) {\n _context.next = 35;\n break;\n }\n\n _context.next = 32;\n return OAuthService.SaveCSRFTokenAsync();\n\n case 32:\n return _context.abrupt(\"return\", this.Post(url, data, additionalHeaders, false));\n\n case 35:\n throw _context.t0;\n\n case 36:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[8, 27]]);\n }));\n\n function Post(_x, _x2, _x3) {\n return _Post.apply(this, arguments);\n }\n\n return Post;\n }()\n }, {\n key: \"RefreshTokensIfNeededAsync\",\n value: function () {\n var _RefreshTokensIfNeededAsync = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var currentTime, expiresAfter;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n currentTime = new Date();\n expiresAfter = OAuthService.ExpiresAfter;\n\n if (!(currentTime > expiresAfter)) {\n _context2.next = 5;\n break;\n }\n\n _context2.next = 5;\n return OAuthService.RefreshTokensAsync();\n\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function RefreshTokensIfNeededAsync() {\n return _RefreshTokensIfNeededAsync.apply(this, arguments);\n }\n\n return RefreshTokensIfNeededAsync;\n }()\n }]);\n\n return Ajax;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { Configuration } from \"../Shared/Configuration\";\nimport { Ajax } from \"./Ajax\";\nexport var HouseholdApiService = /*#__PURE__*/function () {\n function HouseholdApiService() {\n _classCallCheck(this, HouseholdApiService);\n\n var config = new Configuration();\n this._appRoot = config.GetAppRoot();\n }\n\n _createClass(HouseholdApiService, [{\n key: \"GetHousehold\",\n value: function GetHousehold() {\n var url = \"\".concat(this._appRoot, \"/Api/HouseholdApi/GetHousehold\");\n return Ajax.Post(url);\n }\n }, {\n key: \"GetHouseholdMembers\",\n value: function GetHouseholdMembers() {\n var url = \"\".concat(this._appRoot, \"/Api/HouseholdApi/GetHouseholdMembers\");\n return Ajax.Post(url);\n }\n }, {\n key: \"UpdateHousehold\",\n value: function UpdateHousehold(formData) {\n var url = \"\".concat(this._appRoot, \"/Api/HouseholdApi/UpdateHousehold\");\n return Ajax.Post(url, formData);\n }\n }, {\n key: \"UpdateHouseholdMember\",\n value: function UpdateHouseholdMember(formData) {\n var url = \"\".concat(this._appRoot, \"/Api/HouseholdApi/UpdateHouseholdMember\");\n return Ajax.Post(url, formData);\n }\n }]);\n\n return HouseholdApiService;\n}();","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* jshint esversion: 8 */\nimport { ConfigurationService } from \"../Shared/Configuration\";\nimport { Ajax } from \"./Ajax\";\nimport { I18N } from \"../Shared/I18n\";\nimport { OAuthService } from \"./OAuthService\";\nexport var UserService = /*#__PURE__*/function () {\n function UserService() {\n _classCallCheck(this, UserService);\n }\n\n _createClass(UserService, null, [{\n key: \"GetCurrentUser\",\n value: function () {\n var _GetCurrentUser = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var i18n, userNotAuthenticatedMsg, userNotFoundMsg, appRoot, url, currentUser;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return new I18N(\"mpp-user-service\");\n\n case 2:\n i18n = _context.sent;\n userNotAuthenticatedMsg = i18n.notAuthenticatedMessage;\n userNotFoundMsg = i18n.userNotFound; // Get configuration\n\n appRoot = ConfigurationService.GetAppRoot();\n url = \"\".concat(appRoot, \"/Api/Auth/User\"); // Get current user\n\n currentUser = new Promise(function (resolve, reject) {\n Ajax.Get(url).then(function (userInfo) {\n if (!!userInfo) {\n resolve(userInfo);\n } else {\n console.info(userNotAuthenticatedMsg);\n reject(userNotFoundMsg);\n }\n }, function () {\n console.info(userNotAuthenticatedMsg);\n reject(userNotFoundMsg);\n });\n }); // Return currentUser\n\n _context.next = 10;\n return currentUser;\n\n case 10:\n return _context.abrupt(\"return\", _context.sent);\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function GetCurrentUser() {\n return _GetCurrentUser.apply(this, arguments);\n }\n\n return GetCurrentUser;\n }()\n }, {\n key: \"GetCurrentUserAttributes\",\n value: function () {\n var _GetCurrentUserAttributes = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n var appRoot, url, currentUserAttributes;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n // Get configuration\n appRoot = ConfigurationService.GetAppRoot();\n url = \"\".concat(appRoot, \"/Api/Attributes/ContactAttributes\"); // Get current user attributes\n\n currentUserAttributes = new Promise(function (resolve, reject) {\n Ajax.Get(url).then(function (userAttributesInfo) {\n if (!!userAttributesInfo) {\n resolve(userAttributesInfo);\n } else {\n reject(0);\n }\n }, function () {\n reject(0);\n });\n }); // Return currentUser\n\n _context2.next = 5;\n return currentUserAttributes;\n\n case 5:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n function GetCurrentUserAttributes() {\n return _GetCurrentUserAttributes.apply(this, arguments);\n }\n\n return GetCurrentUserAttributes;\n }()\n }, {\n key: \"GetAllActiveAttributes\",\n value: function () {\n var _GetAllActiveAttributes = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n var appRoot, url, allActiveAttributes;\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n // Get configuration\n appRoot = ConfigurationService.GetAppRoot();\n url = \"\".concat(appRoot, \"/Api/Attributes/Available\");\n allActiveAttributes = new Promise(function (resolve, reject) {\n Ajax.Get(url).then(function (allAttributesInfo) {\n if (!!allAttributesInfo) {\n resolve(allAttributesInfo);\n } else {\n reject(0);\n }\n }, function () {\n reject(0);\n });\n }); // Return all attributes\n\n _context3.next = 5;\n return allActiveAttributes;\n\n case 5:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function GetAllActiveAttributes() {\n return _GetAllActiveAttributes.apply(this, arguments);\n }\n\n return GetAllActiveAttributes;\n }()\n }, {\n key: \"SaveUserAttributes\",\n value: function () {\n var _SaveUserAttributes = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(data) {\n var appRoot, url, allActiveAttributes;\n return regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n // Get configuration\n appRoot = ConfigurationService.GetAppRoot();\n url = \"\".concat(appRoot, \"/Api/Attributes\");\n allActiveAttributes = new Promise(function (resolve, reject) {\n Ajax.Post(url, data, {\n 'Content-Type': \"application/json\"\n }).then(function () {\n resolve(1);\n }, function (err) {\n reject(err);\n });\n }); // Return all attributes\n\n _context4.next = 5;\n return allActiveAttributes;\n\n case 5:\n return _context4.abrupt(\"return\", _context4.sent);\n\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n function SaveUserAttributes(_x) {\n return _SaveUserAttributes.apply(this, arguments);\n }\n\n return SaveUserAttributes;\n }()\n }]);\n\n return UserService;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { Configuration } from \"../Shared/Configuration\";\nimport { Ajax } from \"./Ajax\";\nexport var LookupApiService = /*#__PURE__*/function () {\n function LookupApiService() {\n _classCallCheck(this, LookupApiService);\n\n var config = new Configuration();\n this._appRoot = config.GetAppRoot();\n }\n\n _createClass(LookupApiService, [{\n key: \"GetCongregations\",\n value: function GetCongregations(showAll) {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/Congregations\");\n\n if (showAll === true) {\n url += \"?onlineOnly=false\";\n }\n\n return Ajax.Get(url);\n }\n }, {\n key: \"GetCountries\",\n value: function GetCountries() {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/Countries\");\n return Ajax.Get(url);\n }\n }, {\n key: \"GetGenders\",\n value: function GetGenders() {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/Genders\");\n return Ajax.Get(url);\n }\n }, {\n key: \"GetMaritalStatuses\",\n value: function GetMaritalStatuses() {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/MaritalStatuses\");\n return Ajax.Get(url);\n }\n }, {\n key: \"GetHouseholdPositions\",\n value: function GetHouseholdPositions() {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/HouseholdPositions\");\n return Ajax.Get(url);\n }\n }, {\n key: \"GetSuffixes\",\n value: function GetSuffixes() {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/Suffixes\");\n return Ajax.Get(url);\n }\n }, {\n key: \"GetPrefixes\",\n value: function GetPrefixes() {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/Prefixes\");\n return Ajax.Get(url);\n }\n }, {\n key: \"GetFrequency\",\n value: function GetFrequency() {\n var url = \"\".concat(this._appRoot, \"/Api/LookupApi/Frequency\");\n return Ajax.Get(url);\n }\n }]);\n\n return LookupApiService;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { Configuration } from \"../Shared/Configuration\";\nimport { Ajax } from \"./Ajax\";\nexport var PledgeCampaignApiService = /*#__PURE__*/function () {\n function PledgeCampaignApiService() {\n _classCallCheck(this, PledgeCampaignApiService);\n\n var config = new Configuration();\n this._appRoot = config.GetAppRoot();\n }\n\n _createClass(PledgeCampaignApiService, [{\n key: \"GetCampaign\",\n value: function GetCampaign(campaignId) {\n var url = \"\".concat(this._appRoot, \"/Api/PledgeCampaignApi/GetPledgeCampaign?id=\").concat(campaignId);\n return Ajax.Get(url);\n }\n }, {\n key: \"GetFrequencyData\",\n value: function GetFrequencyData() {\n var url = \"\".concat(this._appRoot, \"/Api/PledgeCampaignApi/GetFrequencyData\");\n return Ajax.Get(url);\n }\n }, {\n key: \"SavePledge\",\n value: function SavePledge(formData) {\n var url = \"\".concat(this._appRoot, \"/Api/PledgeCampaignApi/SavePledge\");\n return Ajax.Post(url, formData);\n }\n }, {\n key: \"HasPledged\",\n value: function HasPledged(campaignId, contactId) {\n var url = \"\".concat(this._appRoot, \"/Api/PledgeCampaignApi/HasPledged?campaignId=\").concat(campaignId, \"&contactId=\").concat(contactId);\n return Ajax.Get(url);\n }\n }, {\n key: \"GetMyPledges\",\n value: function GetMyPledges() {\n var url = \"\".concat(this._appRoot, \"/Api/PledgeCampaignApi/MyPledges\");\n return Ajax.Get(url);\n }\n }, {\n key: \"CancelMyPledge\",\n value: function CancelMyPledge(pledgeId, cancelEmailTemplateId) {\n var url = \"\".concat(this._appRoot, \"/Api/PledgeCampaignApi/CancelMyPledge?pledgeId=\").concat(pledgeId, \"&cancelEmailTemplateId=\").concat(cancelEmailTemplateId);\n return Ajax.Get(url);\n }\n }]);\n\n return PledgeCampaignApiService;\n}();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/*jshint esversion: 6 */\nimport { Configuration } from \"./Configuration\";\nexport var ComponentBase = /*#__PURE__*/function (_HTMLElement) {\n _inherits(ComponentBase, _HTMLElement);\n\n var _super = _createSuper(ComponentBase);\n\n function ComponentBase() {\n var _this;\n\n _classCallCheck(this, ComponentBase);\n\n _this = _super.call(this);\n _this._baseRoot = _this.attachShadow({\n mode: \"open\"\n });\n _this._root = document.createElement(\"div\");\n\n _this._baseRoot.appendChild(_this._root);\n\n _this._Init();\n\n return _this;\n }\n\n _createClass(ComponentBase, [{\n key: \"_Init\",\n value: function _Init() {\n this.setStyleFiles();\n }\n }, {\n key: \"setStyleFiles\",\n value: function () {\n var _setStyleFiles = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var _this2 = this;\n\n var config, customCss;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n this.customCssUrl = this.getAttribute(\"customCss\");\n config = new Configuration();\n this._appRoot = config.GetAppRoot();\n\n if (this._appRoot) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 5:\n _context.next = 7;\n return config.GetCustomStyles().then(function (customCssFiles) {\n customCssFiles.forEach(function (cssFile) {\n var customCss = document.createElement('link');\n customCss.rel = \"stylesheet\";\n customCss.type = \"text/css\";\n customCss.media = \"screen\";\n customCss.href = cssFile;\n\n _this2._baseRoot.appendChild(customCss);\n });\n });\n\n case 7:\n if (!!this.customCssUrl) {\n customCss = document.createElement('link');\n customCss.rel = \"stylesheet\";\n customCss.type = \"text/css\";\n customCss.media = \"screen\";\n customCss.href = this.customCssUrl;\n\n this._baseRoot.appendChild(customCss);\n }\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function setStyleFiles() {\n return _setStyleFiles.apply(this, arguments);\n }\n\n return setStyleFiles;\n }()\n }], [{\n key: \"registerComponent\",\n value: function registerComponent(customElementName, componentType) {\n window.customElements.define(customElementName, componentType);\n Array.from(document.getElementsByClassName(customElementName + \"-widget\")).forEach(function (el) {\n var myWidget = new componentType();\n el.getAttributeNames().forEach(function (attr) {\n if (attr === \"class\") {\n return;\n }\n\n myWidget.setAttribute(attr, el.getAttribute(attr));\n });\n el.appendChild(myWidget);\n });\n }\n }]);\n\n return ComponentBase;\n}( /*#__PURE__*/_wrapNativeSuper(HTMLElement));","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*jshint esversion: 6 */\nexport var NumberUtils = /*#__PURE__*/function () {\n function NumberUtils() {\n _classCallCheck(this, NumberUtils);\n }\n\n _createClass(NumberUtils, null, [{\n key: \"toCurrencyString\",\n value: function toCurrencyString(amount) {\n amount = Number(amount);\n amount = isNaN(amount) === false && !!amount ? +amount : 0;\n return amount.toLocaleString('en', {\n style: 'currency',\n currency: 'USD'\n });\n }\n }]);\n\n return NumberUtils;\n}();","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*jshint esversion: 6 */\nimport { StringUtils } from \"./StringUtils\";\nexport var DateTimeFormatter = /*#__PURE__*/function () {\n function DateTimeFormatter() {\n _classCallCheck(this, DateTimeFormatter);\n\n this._locale = localStorage.userLocale || \"en\";\n this._dayMonthOptions = {\n month: 'short',\n day: 'numeric'\n };\n this._shortOptions = {\n weekday: 'short',\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n };\n this._timeOptions = {\n hour: 'numeric',\n minute: '2-digit'\n };\n this._weekDays = ['Sundays', 'Mondays', 'Tuesdays', 'Wednesdays', 'Thursdays', 'Fridays', 'Saturdays'];\n }\n /**\r\n * This function is needed to normalize date/time string value without timezone offset specified\r\n * which causes issues in Safari browsers\r\n * @param {*} dateValue - date time string\r\n */\n\n\n _createClass(DateTimeFormatter, [{\n key: \"NormalizeDateTime\",\n value: function NormalizeDateTime(dateValue) {\n if (!dateValue) return null;\n var parts = dateValue.split(/[^0-9]/).map(Number);\n\n var _parts = _slicedToArray(parts, 6),\n year = _parts[0],\n month = _parts[1],\n day = _parts[2],\n hour = _parts[3],\n minute = _parts[4],\n second = _parts[5];\n\n return parts.length >= 3 ? new Date(year, month - 1, day, hour || 0, minute || 0, second || 0) : null;\n }\n }, {\n key: \"ToShortDate\",\n value: function ToShortDate(dateValue) {\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return \"\";\n }\n\n var d = new Date(dateValue);\n return d.toLocaleDateString(this._locale, this._shortOptions);\n }\n }, {\n key: \"ToShortDateTime\",\n value: function ToShortDateTime(dateValue) {\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return \"\";\n }\n\n var d = new Date(dateValue);\n return d.toLocaleDateString(this._locale, this._shortOptions) + ' ' + d.toLocaleTimeString(this._locale, this._timeOptions);\n }\n }, {\n key: \"ToShortTime\",\n value: function ToShortTime(dateValue) {\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return \"\";\n }\n\n var d = new Date(dateValue);\n return d.toLocaleTimeString(this._locale, this._timeOptions);\n }\n }, {\n key: \"ToShortDateRange\",\n value: function ToShortDateRange(startDate, endDate) {\n if (!(startDate = this.NormalizeDateTime(startDate)) || !(endDate = this.NormalizeDateTime(endDate))) {\n return \"\";\n }\n\n startDate = new Date(startDate);\n endDate = new Date(endDate);\n var start = startDate.toLocaleDateString(this._locale, this._shortOptions);\n var end = endDate.toLocaleDateString(this._locale, this._shortOptions);\n return start + ' - ' + end;\n }\n }, {\n key: \"ToShortDayMonthOnlyRange\",\n value: function ToShortDayMonthOnlyRange(startDate, endDate) {\n if (!(startDate = this.NormalizeDateTime(startDate)) || !(endDate = this.NormalizeDateTime(endDate))) {\n return \"\";\n }\n\n startDate = new Date(startDate);\n endDate = new Date(endDate);\n var start = startDate.toLocaleDateString(this._locale, this._dayMonthOptions);\n var end = endDate.toLocaleDateString(this._locale, this._dayMonthOptions);\n return start + ' - ' + end;\n }\n }, {\n key: \"ToShortDateTimeRange\",\n value: function ToShortDateTimeRange(startDate, endDate) {\n if (!(startDate = this.NormalizeDateTime(startDate)) || !(endDate = this.NormalizeDateTime(endDate))) {\n return \"\";\n }\n\n startDate = new Date(startDate);\n endDate = new Date(endDate);\n var start = startDate.toLocaleDateString(this._locale, this._shortOptions);\n var end = endDate.toLocaleDateString(this._locale, this._shortOptions);\n\n if (start === end) {\n return start + ' ' + startDate.toLocaleTimeString(this._locale, this._timeOptions) + ' - ' + endDate.toLocaleTimeString(this._locale, this._timeOptions);\n } else {\n return start + ' ' + startDate.toLocaleTimeString(this._locale, this._timeOptions) + ' - ' + end + ' ' + endDate.toLocaleTimeString(this._locale, this._timeOptions);\n }\n }\n }, {\n key: \"IsInThePast\",\n value: function IsInThePast(dateValue) {\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return false;\n }\n\n return new Date(dateValue) < new Date();\n }\n }, {\n key: \"IsBeforeThisDate\",\n value: function IsBeforeThisDate(dateValue, dateValueToCompare) {\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return false;\n }\n\n if (!(dateValueToCompare = this.NormalizeDateTime(dateValueToCompare))) {\n return false;\n }\n\n return new Date(dateValue) < new Date(dateValueToCompare);\n }\n }, {\n key: \"IsAfterThisDate\",\n value: function IsAfterThisDate(dateValue, dateValueToCompare) {\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return false;\n }\n\n if (!(dateValueToCompare = this.NormalizeDateTime(dateValueToCompare))) {\n return false;\n }\n\n return new Date(dateValue) > new Date(dateValueToCompare);\n }\n }, {\n key: \"GetDayOfWeekFromString\",\n value: function GetDayOfWeekFromString(dayOfWeek) {\n return this._weekDays.indexOf(dayOfWeek);\n }\n }, {\n key: \"GetDayOfWeekAfterThisDate\",\n value: function GetDayOfWeekAfterThisDate(dateValue, dayOfWeek) {\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return false;\n }\n\n var finalDate = new Date(dateValue);\n var currentDayOfWeek = finalDate.getDay();\n var targetDayOfWeek = this.GetDayOfWeekFromString(dayOfWeek);\n\n while (currentDayOfWeek !== targetDayOfWeek) {\n finalDate.setDate(finalDate.getDate() + 1);\n currentDayOfWeek = finalDate.getDay();\n }\n\n return finalDate;\n }\n }, {\n key: \"ToShortDateFormatted\",\n value: function ToShortDateFormatted(dateValue) {\n var standardFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!(dateValue = this.NormalizeDateTime(dateValue))) {\n return false;\n }\n\n var d = dateValue ? new Date(dateValue) : new Date();\n var dd = d.getDate();\n var mm = d.getMonth() + 1;\n var yyyy = d.getFullYear();\n\n if (dd < 10) {\n dd = '0' + dd;\n }\n\n if (mm < 10) {\n mm = '0' + mm;\n }\n\n if (standardFormat === true) {\n return mm + '/' + dd + '/' + yyyy;\n } else {\n return yyyy + '-' + mm + '-' + dd;\n }\n }\n }, {\n key: \"MonthDiff\",\n value: function MonthDiff(a, b) {\n if (a.getDate() < b.getDate()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -this.MonthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.getFullYear() - a.getFullYear()) * 12 + (b.getMonth() - a.getMonth()); // b is in (anchor - 1 month, anchor + 1 month)\n\n var clonedA = new Date(a);\n var anchor = clonedA.setMonth(clonedA.getMonth() + wholeMonthDiff);\n var anchor2;\n var adjust;\n\n if (b - anchor < 0) {\n var cloned2A = new Date(a);\n anchor2 = cloned2A.setMonth(cloned2A.getMonth() + wholeMonthDiff - 1); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n var _cloned2A = new Date(a);\n\n anchor2 = _cloned2A.setMonth(_cloned2A.getMonth() + wholeMonthDiff + 1); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return Math.floor(wholeMonthDiff + adjust) || 0;\n }\n }, {\n key: \"YearDiff\",\n value: function YearDiff(a, b) {\n return Math.floor(this.MonthDiff(a, b) / 12);\n }\n }]);\n\n return DateTimeFormatter;\n}();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/* jshint esversion: 8 */\nimport { DropdownBuilder } from \"./Helpers/DropdownBuilder\";\nimport { ErrorBuilder } from \"./Helpers/ErrorBuilder\";\nimport { FormManager } from \"./Helpers/FormManager\";\nimport { TextFormatter } from \"./Helpers/TextFormatter\";\nimport { HouseholdApiService } from \"./Services/HouseholdApiService\";\nimport { UserService } from \"./Services/UserService\";\nimport { LookupApiService } from \"./Services/LookupApiService\";\nimport { PledgeCampaignApiService } from \"./Services/PledgeCampaignApiService\";\nimport { ComponentBase } from \"./Shared/ComponentBase\";\nimport { Configuration } from \"./Shared/Configuration\";\nimport { I18N } from \"./Shared/I18n\";\nimport { NumberUtils } from \"./Helpers/NumberUtils\";\nimport { DateTimeFormatter } from \"./Helpers/DateTimeFormatter\";\nexport var MppPledgeCampaign = /*#__PURE__*/function (_ComponentBase) {\n _inherits(MppPledgeCampaign, _ComponentBase);\n\n var _super = _createSuper(MppPledgeCampaign);\n\n function MppPledgeCampaign() {\n var _this;\n\n _classCallCheck(this, MppPledgeCampaign);\n\n _this = _super.call(this);\n var config = new Configuration();\n _this._appRoot = config.GetAppRoot();\n _this._dateFormatter = new DateTimeFormatter();\n return _this;\n }\n\n _createClass(MppPledgeCampaign, [{\n key: \"attributeChangedCallback\",\n value: function attributeChangedCallback(name, oldValue, newValue) {\n console.log(\"Attribute changed!\", \"\".concat(name, \" changed from \").concat(oldValue, \" to \").concat(newValue));\n\n if (!!this._$pledgeCampaignWrapper) {\n this.loadAttributes();\n this.LoadPledgeCampaign(this.i18n);\n }\n }\n }, {\n key: \"loadAttributes\",\n value: function loadAttributes() {\n this.pledgeCampaignID = this.getAttribute(\"pledgecampaignid\") || \"3\";\n this.pledgeEmailTemplate = this.getAttribute(\"pledgeemailtemplate\") || \"528\";\n this.suggestedAmounts = this.getAttribute(\"suggestedamounts\");\n } // istanbul ignore next\n\n }, {\n key: \"createI18N\",\n value: function createI18N() {\n return new I18N(\"mpp-pledge-campaign\");\n } // istanbul ignore next\n\n }, {\n key: \"getPledgeCampaignApiService\",\n value: function getPledgeCampaignApiService(i18n) {\n return new PledgeCampaignApiService();\n }\n }, {\n key: \"connectedCallback\",\n value: function () {\n var _connectedCallback = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var i18n;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return this.createI18N();\n\n case 3:\n i18n = _context.sent;\n _context.next = 10;\n break;\n\n case 6:\n _context.prev = 6;\n _context.t0 = _context[\"catch\"](0);\n\n if (_context.t0.toString().startsWith(\"TypeError\")) {\n this._root.innerHTML = \"Unable to connect. Please check Permitted URLs.\";\n } else {\n this._root.innerHTML = \"\".concat(_context.t0);\n }\n\n return _context.abrupt(\"return\");\n\n case 10:\n this.i18n = i18n;\n this.userInfo = null; // Load attributes\n\n this.loadAttributes();\n\n this._initHTMLElements(i18n); // Services\n\n\n this._pledgeCampaignService = this.getPledgeCampaignApiService();\n this._lookupService = new LookupApiService(); // Load Pledge Campaign\n\n this.LoadPledgeCampaign(this.i18n); // Load Frequency Data\n\n this.LoadFrequencyData(this.i18n); // Login Listener verify with Contact Info\n\n this.VerifyLogin(this.i18n); // Wire-up event listeners:\n\n this.BindEventListeners(this.i18n);\n\n case 20:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 6]]);\n }));\n\n function connectedCallback() {\n return _connectedCallback.apply(this, arguments);\n }\n\n return connectedCallback;\n }() // istanbul ignore next\n\n }, {\n key: \"_initHTMLElements\",\n value: function _initHTMLElements(i18n) {\n this._root.innerHTML = \"\\n\\t\\t\\t<link href=\\\"\".concat(this._appRoot, \"/Content/mppw-widgetstyles.css\\\" rel=\\\"stylesheet\\\" type=\\\"text/css\\\" />\\n\\t\\t\\t<div class=\\\"mppw-component-container mpp-pledge-campaign\\\">\\n\\t\\t\\t\\t<div id=\\\"emptyContainer\\\"></div>\\n\\t\\t\\t\\t<div id=\\\"pledgeCampaignWrapper\\\"></div>\\n\\t\\t\\t\\t<div id=\\\"alertContainer\\\"></div>\\n\\t\\t\\t</div>\\n\\t\\t\"); // Selectors\n\n this._$emptyContainer = this._root.querySelector(\"#emptyContainer\");\n this._$pledgeCampaignWrapper = this._root.querySelector(\"#pledgeCampaignWrapper\");\n this._$alertContainer = this._root.querySelector(\"#alertContainer\"); // Templates\n\n this._$emptyContainer.innerHTML += `<i class=\"mppw-spinner\"></i>` ;\n this._$pledgeCampaignWrapper.innerHTML = `<div id=\"pledgeCampaignDetails\"></div><form id=\"pledgeForm\"><h2>${i18n.createPledgeTitle}</h2><h3>${i18n.pledgeDetailsTitle}</h3><input type=\"hidden\" name=\"PledgeCampaignID\" value=\"${this.pledgeCampaignID}\"/> <input type=\"hidden\" name=\"PledgeEmailTemplateId\" value=\"${this.pledgeEmailTemplate}\"/> <input type=\"hidden\" name=\"InstallmentsPlanned\" id=\"InstallmentsPlanned\" value=\"0\"/> <input type=\"hidden\" name=\"InstallmentsPerYear\" id=\"InstallmentsPerYear\" value=\"0\"/> <input type=\"hidden\" name=\"ContactId\" id=\"ContactID\" value=\"0\"/><div class=\"form--row\"><div class=\"form--col\" id=\"colPledgeAmountButton\"><div class=\"form--row toggle--btn-wrapper\" id=\"pledgeAmountButtonWrapper\"><input type=\"button\" class=\"mppw-btn secondary mr-5 toggle--btn\" value=\"$30\"/> <input type=\"button\" class=\"mppw-btn secondary mr-5 toggle--btn\" value=\"$50\"/> <input type=\"button\" class=\"mppw-btn secondary mr-5 toggle--btn\" value=\"$100\"/></div></div><div class=\"form--col\"><div class=\"mppw-form-field mppw-form-field__static-container\"><input type=\"number\" id=\"InstallmentAmount\" name=\"InstallmentAmount\" class=\"mppw-form-field__control\" required=\"\"/> <label class=\"mppw-form-field__label\" for=\"InstallmentAmount\">${i18n.pledgeAmountLabel}*</label></div></div></div><div class=\"form--row\"><div class=\"form--col\"><div class=\"mppw-form-field mppw-form-field__static-container\"><select class=\"mppw-form-field__control\" id=\"Frequency\" name=\"Frequency\" value=\"\" required=\"\"></select> <label class=\"mppw-form-field__label\">${i18n.frequencyLabel}*</label></div></div><div class=\"form--col\"><div class=\"mppw-form-field\"><input type=\"date\" id=\"FirstInstallmentDate\" name=\"FirstInstallmentDate\" class=\"mppw-form-field__control\" placeholder=\"mm/dd/yyyy\" required data-invalid-message=\"\" min=\"\" max=\"\"> <label class=\"mppw-form-field__label\" for=\"FirstInstallmentDate\">${i18n.pledgeStartDateLabel}*</label></div></div><div class=\"form--col\"><div class=\"mppw-form-field\"><input type=\"date\" id=\"LastInstallmentDate\" name=\"LastInstallmentDate\" class=\"mppw-form-field__control\" placeholder=\"mm/dd/yyyy\" required data-invalid-message=\"\" min=\"\" max=\"\"> <label class=\"mppw-form-field__label\" for=\"LastInstallmentDate\">${i18n.pledgeEndDateLabel}*</label></div></div></div><div class=\"form--row\"><input type=\"hidden\" id=\"TotalPledge\" name=\"TotalPledge\"/> <strong>${i18n.totalPledgeLabel}: </strong> <span id=\"TotalPledgeValue\">$0.00</span></div><div id=\"makePledgeAsWrapper\"><h3>${i18n.personalDetailsTitle}</h3><div class=\"form--row\"><div class=\"form--col\"><div class=\"mppw-form-field mppw-form-field__static-container\"><select class=\"mppw-form-field__control\" id=\"applyAs\" value=\"0\"><option value=\"0\">${i18n.blankFormLabel}</option></select> <label class=\"mppw-form-field__label\">${i18n.makePledgeAsLabel}...</label></div></div></div></div><div id=\"contactBlankForm\"><h3>${i18n.contactTitle}</h3><div class=\"form--row\"><div class=\"form--col\"><div class=\"mppw-form-field\"><input type=\"text\" id=\"FirstName\" name=\"FirstName\" class=\"mppw-form-field__control\" required=\"\" data-required-message=\"First Name is required please\"/> <label class=\"mppw-form-field__label\" for=\"FirstName\">${i18n.firstNameLabel}*</label></div></div><div class=\"form--col\"><div class=\"mppw-form-field\"><input type=\"text\" id=\"LastName\" name=\"LastName\" class=\"mppw-form-field__control\" required=\"\" data-required-message=\"Last Name is required please\"/> <label class=\"mppw-form-field__label\" for=\"LastName\">${i18n.lastNameLabel}*</label></div></div></div><div class=\"form--row\"><div class=\"form--col\"><div class=\"mppw-form-field\"><input type=\"email\" id=\"Email\" name=\"Email\" class=\"mppw-form-field__control\" required=\"\" data-required-message=\"Email is required please\"> <label class=\"mppw-form-field__label\" for=\"Email\">${i18n.emailLabel}*</label></div></div><div class=\"form--col\"><div class=\"mppw-form-field\"><input type=\"tel\" id=\"MobilePhoneNumber\" name=\"MobilePhoneNumber\" class=\"mppw-form-field__control\" maxlength=\"50\"> <label class=\"mppw-form-field__label\" for=\"MobilePhoneNumber\">${i18n.mobilePhoneLabel}</label></div></div></div></div><div class=\"mppw-right form--footer form--row\"><div class=\"form--col\"></div><div class=\"form--col\"><input type=\"submit\" class=\"mppw-btn primary submit--btn\" id=\"createPledge\" value=\"${i18n.createPledgeButtonLabel}\"/></div></div></form>` ; // Selectors from Template (Form)\n\n this._$loginButton = this._root.querySelector('#loginButton');\n this._$colPledgeAmountButton = this._root.querySelector(\"#colPledgeAmountButton\");\n this._$pledgeAmountButtonWrapper = this._root.querySelector(\"#pledgeAmountButtonWrapper\");\n this._$pledgeAmountToggleButtons = this._$pledgeAmountButtonWrapper.querySelectorAll('.toggle--btn');\n this._$pledgeForm = this._root.querySelector('#pledgeForm');\n this._$makePledgeAsWrapper = this._root.querySelector('#makePledgeAsWrapper');\n this._$applyAs = this._root.querySelector('#applyAs');\n this._$contactId = this._root.querySelector('#ContactID');\n this._$contactBlankForm = this._root.querySelector('#contactBlankForm');\n this._$frequencyDropdown = this._root.querySelector('#Frequency');\n this._$installmentAmount = this._root.querySelector('#InstallmentAmount');\n this._$firstInstallmentDate = this._root.querySelector('#FirstInstallmentDate');\n this._$lastInstallmentDate = this._root.querySelector('#LastInstallmentDate');\n this._$totalPledge = this._root.querySelector('#TotalPledge');\n this._$firstName = this._root.querySelector('#FirstName');\n this._$lastName = this._root.querySelector('#LastName');\n this._$email = this._root.querySelector('#Email');\n this._$totalPledgeDisplay = this._root.querySelector('#TotalPledgeValue');\n this._$installmentsPlanned = this._root.querySelector('#InstallmentsPlanned');\n this._$installmentsPerYear = this._root.querySelector('#InstallmentsPerYear'); // Selectors (Pledge Details)\n\n this._$pledgeCampaignDetails = this._root.querySelector('#pledgeCampaignDetails'); // Initially hide form\n\n this._$pledgeForm.style.display = \"none\";\n }\n }, {\n key: \"_justDate\",\n value: function _justDate(datetime) {\n if (!!datetime) {\n return new Date(datetime).toISOString().split('T')[0];\n }\n\n return \"\";\n }\n }, {\n key: \"LoadPledgeCampaign\",\n value: function LoadPledgeCampaign(i18n) {\n var _this2 = this;\n\n return this._pledgeCampaignService.GetCampaign(this.pledgeCampaignID).then(function (pledgeCampaignResponse) {\n // Show form\n _this2._$pledgeForm.style.display = \"\"; // Clear any previous alerts\n\n ErrorBuilder.ClearAllAlerts(_this2._$alertContainer);\n var photo = pledgeCampaignResponse.photo,\n title = pledgeCampaignResponse.title,\n description = pledgeCampaignResponse.description,\n campaignGoal = pledgeCampaignResponse.campaignGoal,\n pledged = pledgeCampaignResponse.pledged,\n received = pledgeCampaignResponse.received,\n installmentAmount = pledgeCampaignResponse.installmentAmount,\n campaignStartDate = pledgeCampaignResponse.campaignStartDate,\n campaignEndDate = pledgeCampaignResponse.campaignEndDate,\n allowOnlinePledge = pledgeCampaignResponse.allowOnlinePledge,\n pledgeBeyondEndDate = pledgeCampaignResponse.pledgeBeyondEndDate,\n userHasAlreadyPledged = pledgeCampaignResponse.userHasAlreadyPledged,\n thankYouMessage = pledgeCampaignResponse.thankYouMessage; // variables used in mpp-pledge-campaign-details.html\n\n var PLEDGE_CAMPAIGN_PHOTO = photo && photo;\n var PLEDGE_CAMPAIGN_TITLE = title && title || 'No campaign title found';\n var PLEDGE_CAMPAIGN_DESCRIPTION = description && new TextFormatter(description).addLineBreaks() || 'No campaign description found';\n var PLEDGE_CAMPAIGN_PLEDGED = NumberUtils.toCurrencyString(pledged);\n var PLEDGE_CAMPAIGN_GOAL = NumberUtils.toCurrencyString(campaignGoal);\n var PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE = pledged / campaignGoal * 100;\n var PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE = received / campaignGoal * 100;\n var PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE_VALUE = Number(PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE).toLocaleString();\n var PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE_VALUE = Number(PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE).toLocaleString();\n _this2._onlineThankYouMessage = thankYouMessage;\n _this2._pledgeBeyondEndDate = pledgeBeyondEndDate;\n _this2._pledgeStartDate = _this2._justDate(campaignStartDate);\n _this2._pledgeEndDate = _this2._justDate(campaignEndDate);\n\n if (_this2._pledgeBeyondEndDate) {\n _this2._pledgeEndDate = \"\";\n }\n\n _this2.PrefillDates(_this2._pledgeStartDate, _this2._pledgeEndDate);\n\n _this2._$pledgeCampaignDetails.innerHTML = `<div class=\"mpp-innerpage\"><div class=\"mpp-card--header\"><img id=\"photo\" class=\"${PLEDGE_CAMPAIGN_PHOTO == null ? 'hidden' : 'mpp-pledge-campaign--photo'}\" src=\"${PLEDGE_CAMPAIGN_PHOTO}\"/></div><h1 id=\"title\">${PLEDGE_CAMPAIGN_TITLE}</h1><p id=\"description\">${PLEDGE_CAMPAIGN_DESCRIPTION}</p><h2>${i18n.progressTitle}</h2><div class=\"progress--container\"><h4 class=\"progress--subtitle\">${PLEDGE_CAMPAIGN_PLEDGED} ${i18n.pledgedOfLabel} ${PLEDGE_CAMPAIGN_GOAL} ${i18n.goalLabel}</h4><svg width=\"100%\" height=\"19\"><defs><linearGradient id=\"gradient\"><stop offset=\"0%\" stop-color=\"#1b88b0\"></stop><stop offset=\"100%\" stop-color=\"#1fb5ac\"></stop></linearGradient></defs><g><rect class=\"background\" y=\"2\" height=\"15\" rx=\"4\" ry=\"4\" fill=\"#efefef\" width=\"100%\"></rect><rect class=\"pledged\" y=\"2\" height=\"15\" rx=\"4\" ry=\"4\" fill=\"url(#gradient)\" width=\"${PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE > 100 ? 100 : PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE}%\"></rect><rect class=\"received\" x=\"${PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE > 100 ? 100 : PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE}%\" fill=\"#000\" width=\"2\" height=\"19\"></rect></g></svg><div class=\"mpp-innerpage\"><p class=\"mpp-card--description\"><span class=\"progress-legend progress-legend--received\"></span>${PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE_VALUE}% ${i18n.receivedLabel} <span class=\"progress-legend progress-legend--pledged\"></span>${PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE_VALUE}% ${i18n.pledgedLabel}</p></div></div></div>` ; // hide pledge form if now allowed online or campaign end is not null and less than todays date\n\n var hideFormBasedOnEndDate = campaignEndDate !== null && new Date().getTime() > new Date(campaignEndDate).getTime();\n\n if (allowOnlinePledge === false || hideFormBasedOnEndDate) {\n _this2._$pledgeForm.style.display = \"none\";\n ErrorBuilder.RenderAlert(_this2._$alertContainer, 'warning', i18n.notAcceptingPledgesMessage);\n } // display warning if user has already pledged\n\n\n if (userHasAlreadyPledged) {\n ErrorBuilder.RenderAlert(_this2._$alertContainer, 'warning', i18n.userHasAlreadyPledgedMessage);\n } // assign suggested amounts attribute\n\n\n _this2.SetSuggestedAmounts();\n })[\"catch\"](function (error) {\n // Log/display error\n console.error('[mpp-pledge-campaign.js]: LoadPledgeCampaign Error: ', error);\n\n if (error.status === 404) {\n console.error('[mpp-pledge-campaign.js]: Pledge Campaign Not Found');\n }\n })[\"finally\"](function () {\n // Function call completed\n _this2._$emptyContainer.innerHTML = \"\";\n });\n }\n }, {\n key: \"SetSuggestedAmounts\",\n value: function SetSuggestedAmounts() {\n var _this3 = this;\n\n if (this.suggestedAmounts === null || this.suggestedAmounts === \"\") {\n this.suggestedAmounts = \"30,50,100\";\n } //start out with hiding the button div, and hide each individual button\n\n\n this._$colPledgeAmountButton.style.display = \"none\";\n\n this._$pledgeAmountToggleButtons.forEach(function (b) {\n b.style.display = \"none\";\n });\n\n if (this.suggestedAmounts !== \"\" && this.suggestedAmounts !== \"null\") {\n var suggestedAmountsArr = this.suggestedAmounts.split(',');\n suggestedAmountsArr.map(function (amount, i) {\n if (i >= _this3._$pledgeAmountToggleButtons.length) {\n return;\n }\n\n _this3._$pledgeAmountToggleButtons[i].value = '$' + amount;\n\n _this3._$pledgeAmountToggleButtons[i].classList.remove('active'); // if any of the numbers are above zero, show that button and show the button column\n\n\n if (Number(amount) > 0) {\n _this3._$pledgeAmountToggleButtons[i].style.display = \"\";\n _this3._$colPledgeAmountButton.style.display = \"\";\n }\n });\n }\n }\n }, {\n key: \"_getStartOrToday\",\n value: function _getStartOrToday(datetime) {\n datetime = new Date(datetime);\n return this._justDate(new Date(Math.max(new Date(), datetime)));\n }\n }, {\n key: \"PrefillDates\",\n value: function PrefillDates(startDate, endDate) {\n var minDate = this._getStartOrToday(startDate);\n\n var maxDate = !!endDate && Date.parse(endDate) >= new Date() ? this._justDate(endDate) : \"yyyy-mm-dd\";\n\n this._$firstInstallmentDate.setAttribute('min', minDate);\n\n this._$firstInstallmentDate.setAttribute('max', maxDate);\n\n this._$firstInstallmentDate.setAttribute('value', minDate);\n\n this._$lastInstallmentDate.setAttribute('min', minDate);\n\n this._$lastInstallmentDate.setAttribute('max', maxDate);\n\n this._$lastInstallmentDate.setAttribute('value', maxDate);\n }\n }, {\n key: \"LoadFrequencyData\",\n value: function LoadFrequencyData(i18n) {\n var _this4 = this;\n\n this._pledgeCampaignService.GetFrequencyData().then(function (frequencyResponse) {\n DropdownBuilder.LoadDropdown(_this4._$frequencyDropdown, frequencyResponse, i18n.frequencyLabel);\n })[\"catch\"](function (error) {\n // Log/display error\n console.error('[mpp-pledge-campaign.js]: LoadFrequencyData Error: ', error);\n })[\"finally\"](function () {// Function call completed\n });\n } // istanbul ignore next\n\n }, {\n key: \"getHouseholdApiService\",\n value: function getHouseholdApiService() {\n return new HouseholdApiService();\n }\n }, {\n key: \"VerifyLogin\",\n value: function VerifyLogin(i18n) {\n var _this5 = this;\n\n UserService.GetCurrentUser().then(function (userInfo) {\n _this5._getHouseholdMembers(i18n, userInfo);\n }, function () {\n // no cached contactInfo\n _this5._$makePledgeAsWrapper.style.display = \"none\";\n\n _this5.ShowContactBlankForm();\n\n _this5._$contactId.value = \"0\";\n });\n }\n }, {\n key: \"_getHouseholdMembers\",\n value: function _getHouseholdMembers(i18n, userInfo) {\n var _this6 = this;\n\n var householdService = this.getHouseholdApiService();\n householdService.GetHouseholdMembers().then(function (members) {\n if (!!members && members.length > 0) {\n var allMembers = members.map(function (member) {\n return {\n id: member.contactId,\n value: member.displayName\n };\n });\n DropdownBuilder.LoadDropdown(_this6._$applyAs, allMembers, i18n.blankFormLabel);\n _this6._$applyAs.value = userInfo.contactId;\n _this6._$contactId.value = userInfo.contactId;\n _this6.userInfo = userInfo.user;\n\n _this6.HideContactBlankForm();\n }\n });\n }\n }, {\n key: \"BindEventListeners\",\n value: function BindEventListeners(i18n) {\n var _this7 = this;\n\n // submit pledge form\n var pledgeForm = new FormManager(this._$pledgeForm);\n\n this._$pledgeForm.addEventListener(\"submit\", function (e) {\n e.preventDefault();\n\n if (pledgeForm.IsValid()) {\n if (_this7.PastCampaignEndDate(_this7._$lastInstallmentDate.value, _this7._pledgeEndDate)) {\n _this7.DisplayErrorPastCampaignEndDate();\n } else {\n var formData = new FormData(_this7._$pledgeForm);\n\n if (!formData.get(\"ContactId\")) {\n formData.set(\"ContactId\", 0);\n }\n\n _this7.AddNotesToFormData(formData);\n\n _this7._savePledge(formData, pledgeForm, i18n);\n }\n } else {\n _this7._$alertContainer.innerHTML = '';\n ErrorBuilder.RenderAlert(_this7._$alertContainer, 'warning', i18n.pledgeFormWarningMessage);\n }\n });\n\n this._$applyAs.addEventListener(\"change\", function () {\n ErrorBuilder.ClearAllAlerts(_this7._$alertContainer);\n var makePledgeAsValue = _this7._$applyAs.value; // toggle contact form show contact fields if blank form\n\n if (!!makePledgeAsValue) {\n _this7.HideContactBlankForm();\n\n _this7._$contactId.value = makePledgeAsValue; // verify if user has pledged and provide warning\n\n _this7._havePledged(makePledgeAsValue, i18n);\n } else {\n _this7._$contactId.value = \"0\";\n _this7._$alertContainer.innerHTML = '';\n\n _this7.ShowContactBlankForm();\n }\n }); // add active class to clicked button\n\n\n var _iterator = _createForOfIteratorHelper(this._$pledgeAmountToggleButtons),\n _step;\n\n try {\n var _loop = function _loop() {\n var toggleButton = _step.value;\n toggleButton.addEventListener(\"click\", function (e) {\n e.preventDefault();\n\n var pledgeAmountSelectedButton = _this7._$pledgeAmountButtonWrapper.querySelector('.toggle--btn.active');\n\n if (!!pledgeAmountSelectedButton) {\n pledgeAmountSelectedButton.classList.remove('active');\n }\n\n toggleButton.classList.add('active');\n _this7._$installmentAmount.value = toggleButton.value.slice(1);\n\n _this7.CalculateTotalPledge();\n });\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop();\n } // filling input will reset active classes\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this._$installmentAmount.addEventListener(\"keydown\", function () {\n var pledgeAmountSelectedButton = _this7._$pledgeAmountButtonWrapper.querySelector('.toggle--btn.active');\n\n if (!!pledgeAmountSelectedButton) {\n pledgeAmountSelectedButton.classList.remove('active');\n }\n }); // pledgeDetails to calculate totalPledge\n\n\n this._$installmentAmount.addEventListener(\"change\", function () {\n return _this7.CalculateTotalPledge();\n });\n\n this._$frequencyDropdown.addEventListener(\"change\", function () {\n return _this7.CalculateTotalPledge();\n });\n\n this._$firstInstallmentDate && this._$firstInstallmentDate.addEventListener(\"change\", function () {\n return _this7.CalculateTotalPledge();\n });\n this._$lastInstallmentDate && this._$lastInstallmentDate.addEventListener(\"change\", function () {\n return _this7.CalculateTotalPledge();\n });\n }\n }, {\n key: \"_havePledged\",\n value: function _havePledged(makePledgeAsValue, i18n) {\n var _this8 = this;\n\n return this._pledgeCampaignService.HavePledged(this.pledgeCampaignID, makePledgeAsValue).then(function (response) {\n if (response) {\n ErrorBuilder.RenderAlert(_this8._$alertContainer, 'warning', i18n.userHasAlreadyPledgedMessage);\n } else {\n _this8._$alertContainer.innerHTML = '';\n }\n })[\"catch\"](function (error) {\n console.error(error);\n _this8._$alertContainer.innerHTML = '';\n ErrorBuilder.RenderAlert(_this8._$alertContainer, 'danger', 'pledgeCampaignService.HavePledged() inquiry has failed');\n });\n }\n }, {\n key: \"_savePledge\",\n value: function _savePledge(formData, pledgeForm, i18n) {\n var _this9 = this;\n\n return this._pledgeCampaignService.SavePledge(formData).then(function (response) {\n var _this9$_onlineThankYo;\n\n pledgeForm.Reset();\n\n _this9.SetSuggestedAmounts();\n\n _this9._$totalPledge.value = 0;\n _this9._$totalPledgeDisplay.innerHTML = NumberUtils.toCurrencyString(0);\n\n _this9.PrefillDates(_this9._pledgeStartDate, _this9._pledgeEndDate);\n\n var thankYouMessage = ((_this9$_onlineThankYo = _this9._onlineThankYouMessage) === null || _this9$_onlineThankYo === void 0 ? void 0 : _this9$_onlineThankYo.trim()) || i18n.pledgeFormSuccessMessage;\n ErrorBuilder.RenderAlert(_this9._$alertContainer, 'success', thankYouMessage);\n })[\"catch\"](function (error) {\n _this9._$alertContainer.innerHTML = '';\n ErrorBuilder.RenderHandler(_this9._$alertContainer, 'danger', error.details);\n console.error(error);\n });\n }\n }, {\n key: \"AddNotesToFormData\",\n value: function AddNotesToFormData(formData) {\n var firstName = formData.get('FirstName');\n var lastName = formData.get('LastName');\n var email = formData.get('Email');\n var mobilePhoneNumber = formData.get('MobilePhoneNumber');\n var notes = \"First Name: \".concat(firstName, \"\\nLastName: \").concat(lastName, \"\\nEmail: \").concat(email, \"\\nPhone: \").concat(mobilePhoneNumber);\n formData.set('Notes', notes);\n }\n }, {\n key: \"WeeksBetweenDates\",\n value: function WeeksBetweenDates(startDate, endDate) {\n var sd = new Date(startDate);\n var ed = new Date(endDate);\n var WEEK = 7 * 24 * 60 * 60 * 1000;\n return Math.floor((ed - sd) / WEEK) + 1;\n }\n }, {\n key: \"MonthsBetweenDates\",\n value: function MonthsBetweenDates(startDate, endDate) {\n var sd = new Date(startDate);\n var ed = new Date(endDate);\n\n var months = this._dateFormatter.MonthDiff(sd, ed);\n\n return months;\n }\n }, {\n key: \"YearsBetweenDates\",\n value: function YearsBetweenDates(startDate, endDate) {\n var sd = new Date(startDate);\n var ed = new Date(endDate);\n\n var years = this._dateFormatter.YearDiff(sd, ed);\n\n return years;\n }\n }, {\n key: \"CalculateTotalPledge\",\n value: function CalculateTotalPledge() {\n // Total Pledge: Calculated based on the Amount, First Installment Date, Frequency and End Date.\n var installmentAmount = !!this._$installmentAmount.value ? parseFloat(this._$installmentAmount.value.replaceAll(\",\", \"\")).toFixed(2) : 0;\n var frequency = this._$frequencyDropdown.value || 1;\n var firstInstallmentDate = this._$firstInstallmentDate.value;\n var lastInstallmentDate = this._$lastInstallmentDate.value;\n\n switch (parseInt(frequency)) {\n case 1:\n // one-time pledge\n this._$totalPledge.value = installmentAmount;\n this._$installmentsPlanned.value = 1;\n this._$installmentsPerYear.value = 1;\n break;\n\n case 2:\n // annually\n var numberOfYears = this.YearsBetweenDates(firstInstallmentDate, lastInstallmentDate);\n this._$totalPledge.value = parseFloat(installmentAmount * numberOfYears).toFixed(2);\n this._$installmentsPlanned.value = numberOfYears;\n this._$installmentsPerYear.value = 1;\n break;\n\n case 12:\n // monthly\n var numberOfMonths = this.MonthsBetweenDates(firstInstallmentDate, lastInstallmentDate);\n this._$totalPledge.value = parseFloat(installmentAmount * numberOfMonths).toFixed(2);\n this._$installmentsPlanned.value = numberOfMonths;\n\n if (numberOfMonths <= 12) {\n this._$installmentsPerYear.value = numberOfMonths;\n } else {\n this._$installmentsPerYear.value = 12;\n }\n\n break;\n\n case 24:\n // twice per month\n var twicePerMonthCount = this.MonthsBetweenDates(firstInstallmentDate, lastInstallmentDate) * 2;\n this._$totalPledge.value = parseFloat(installmentAmount * twicePerMonthCount).toFixed(2);\n this._$installmentsPlanned.value = twicePerMonthCount;\n\n if (twicePerMonthCount <= 24) {\n this._$installmentsPerYear.value = twicePerMonthCount;\n } else {\n this._$installmentsPerYear.value = 24;\n }\n\n break;\n\n case 26:\n // every other week\n var everyOtherWeekCount = Math.floor(this.WeeksBetweenDates(firstInstallmentDate, lastInstallmentDate) / 2);\n this._$totalPledge.value = parseFloat(installmentAmount * everyOtherWeekCount).toFixed(2);\n this._$installmentsPlanned.value = everyOtherWeekCount;\n\n if (everyOtherWeekCount <= 26) {\n this._$installmentsPerYear.value = everyOtherWeekCount;\n } else {\n this._$installmentsPerYear.value = 26;\n }\n\n break;\n\n case 52:\n // weekly\n var weeklyCount = this.WeeksBetweenDates(firstInstallmentDate, lastInstallmentDate);\n this._$totalPledge.value = parseFloat(installmentAmount * weeklyCount).toFixed(2);\n this._$installmentsPlanned.value = weeklyCount;\n\n if (weeklyCount <= 52) {\n this._$installmentsPerYear.value = weeklyCount;\n } else {\n this._$installmentsPerYear.value = 52;\n }\n\n break;\n\n default:\n this._$totalPledge.value = 0;\n this._$installmentsPlanned.value = 0;\n this._$installmentsPerYear.value = 0;\n break;\n }\n\n this._$totalPledgeDisplay.innerHTML = NumberUtils.toCurrencyString(this._$totalPledge.value);\n\n if (this.PastCampaignEndDate(this._$lastInstallmentDate.value, this._pledgeEndDate)) {\n this.DisplayErrorPastCampaignEndDate();\n }\n }\n }, {\n key: \"ShowContactBlankForm\",\n value: function ShowContactBlankForm() {\n this._$contactBlankForm.style.display = \"\";\n\n this._$firstName.setAttribute(\"required\", true);\n\n this._$lastName.setAttribute(\"required\", true);\n\n this._$email.setAttribute(\"required\", true);\n\n this._$contactId.value = \"0\";\n }\n }, {\n key: \"HideContactBlankForm\",\n value: function HideContactBlankForm() {\n this._$contactBlankForm.style.display = \"none\";\n\n this._$firstName.removeAttribute(\"required\");\n\n this._$lastName.removeAttribute(\"required\");\n\n this._$email.removeAttribute(\"required\");\n }\n }, {\n key: \"PastCampaignEndDate\",\n value: function PastCampaignEndDate(lastInstallmentDate, pledgeEndDate) {\n if (!this._pledgeBeyondEndDate && lastInstallmentDate != null && pledgeEndDate != null) {\n var dateInserted = new Date(lastInstallmentDate);\n var endDate = new Date(pledgeEndDate);\n\n if (dateInserted > endDate) {\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: \"DisplayErrorPastCampaignEndDate\",\n value: function DisplayErrorPastCampaignEndDate() {\n this._$alertContainer.innerHTML = '';\n ErrorBuilder.RenderAlert(this._$alertContainer, 'danger', 'Error: You cannot give past the campaign end date (' + this._dateFormatter.ToShortDateFormatted(this._pledgeEndDate, true) + ')');\n }\n }], [{\n key: \"observedAttributes\",\n get: function get() {\n return [\"pledgecampaignid\", \"pledgeemailtemplate\", \"suggestedamounts\"];\n }\n }]);\n\n return MppPledgeCampaign;\n}(ComponentBase);\nMppPledgeCampaign.registerComponent(\"mpp-pledge-campaign\", MppPledgeCampaign);"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","authConfigurationCache","Configuration","instance","Constructor","TypeError","_classCallCheck","this","SCRIPT_NAME","protoProps","value","useCacheIfAvailable","Promise","resolve","appRoot","GetAppRoot","url","concat","fetch","then","authInfo","json","authConfiguration","err","console","error","Error","cacheKey","document","getElementById","undefined","currentScriptSrc","src","substring","indexOf","sessionStorage","log","keyName","response","text","countryList","result","window","navigator","localeParts","language","split","countryCode","matches","filter","country","abbreviation","ok","data","ConfigurationService","I18N","componentName","_componentName","_locale","GetCurrentLocale","config","_appRoot","credentials","mode","withCredentials","staticProps","localStorage","userLocale","DropdownBuilder","selectElement","placeholder","j","options","remove","firstOpt","createElement","innerText","appendChild","opt","id","name","disabled","setAttribute","style","innerHTML","keys","groupByGroupName","array","reduce","objectsByKeyValue","map","attributeByGroupName","forEach","groupName","optgroup","label","attrs","attr","insertBefore","idx","objDate","Date","setDate","setMonth","toLocaleString","month","monthNames","m","push","_GetMonthBaseOnLocale","getMonth","numberOfMonthsOut","GetCurrentMonth","keptMonths","monthValue","rr","Array","from","querySelectorAll","monthNumber","Number","includes","color","ErrorBuilder","container","i18n","_this","Render","errorMessage","type","title","replace","errors","status","message","IsLocalizable","Values","Details","hasOwnProperty","RegExp","GetValidationError","Message","details","_arrayLikeToArray","arr","len","arr2","FormManager","form","_form","_isDirty","_handleUnloadPageFunction","_wireupValidation","get","removeEventListener","_step","isValid","_iterator","o","allowArrayLike","it","isArray","minLen","n","toString","call","slice","test","_unsupportedIterableToArray","F","s","done","e","_e","f","normalCompletion","didErr","step","next","_e2","_createForOfIteratorHelper","elements","field","ValidateField","dataset","ignoreValidation","requiredMessage","invalidMessage","getAttribute","PHONE_REGEX","EMAIL_REGEX","_setInvalid","_setValid","dependencyPassed","requireIfBlank","$dependentField","querySelector","_checkRequired","requireIf","$parentField","reset","ResetFormValues","SetIsDirty","formElement","parentElement","classList","FIELD_CONTAINER_VALID_CLASSNAME","FIELD_CONTAINER_INVALID_CLASSNAME","_clearMessages","checkboxGroup","checked","event","returnValue","addEventListener","allElements","element","dependentField","parentField","textAreas","characterCount","maxCount","counterDiv","nextElementSibling","contains","TEXTAREA_COUNTER_CLASSNAME","textInputs","phoneFields","startsWith","y","x","match","formField","closest","FIELD_CONTAINER_CLASSNAME","formFieldAlt","FIELD_CONTAINER_CLASSNAME_ALT","existingMessageDiv","nextSibling","MESSAGE_CONTAINER_CLASSNAME","parentNode","removeChild","add","messageDiv","TextFormatter","_value","String","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","self","Super","_getPrototypeOf","NewTarget","Reflect","construct","arguments","apply","ReferenceError","_assertThisInitialized","_wrapNativeSuper","Class","_cache","Map","fn","Function","has","set","Wrapper","_construct","Parent","args","a","bind","sham","Proxy","Boolean","valueOf","p","setPrototypeOf","__proto__","getPrototypeOf","ArgumentException","_Error","_super","argName","ArgumentTypeException","_Error2","_super2","_getKey","LocalStorageManager","item","setItem","fullKey","getItem","removeItem","storageKeys","searchFor","keyValue","SessionStorageManager","privateMethods","getUrlParameter","params","results","exec","decodeURIComponent","URLSearchParameters","_params","URLSearchParams","_urlSearchParams","substr","asyncGeneratorStep","gen","reject","_next","_throw","arg","info","_asyncToGenerator","_tokenKeyName","_idTokenKeyName","_expiresAfterName","_csrfToken","mppw_refreshTokenPromise","OAuthService","_RefreshTokensAsync","_SaveAuthTokensAsync","_SaveCSRFTokenAsync","tokenValue","token","idTokenValue","idToken","expiresAfterValue","expiresAfter","JSON","parse","_unused","stringify","GetAuthConfiguration","oauthConfig","signInUrl","responseType","scope","clientId","redirectUrl","nonce","encodeURIComponent","location","Token","signOutUrl","IdToken","postLogoutRedirectUrl","encodeURI","regeneratorRuntime","mark","_callee","wrap","_context","prev","GetCSRFToken","sent","CSRFToken","stop","_callee2","tokenParamName","userSearchParameters","tokens","_context2","search","history","replaceState","GetAuthToken","_SaveTokens","_callee3","_context3","abrupt","ExpiresAfter","_ClearTokens","accessToken","setSeconds","getSeconds","expiresIn","_addAuth","headers","Authorization","_addCSRF","expiresAfterUtc","expiresAfterUTC","_getCurrentUTCDateTime","SaveCSRFTokenAsync","now","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","_htmlSanitizer","_eventSanitizer","_htmlSanitize","textObj","cleanKeys","depth","getOwnPropertyNames","Ajax","_RefreshTokensIfNeededAsync","_Post","RefreshTokensIfNeededAsync","SignIn","additionalHeaders","retry","_args","method","body","header","t0","SecondaryStatusCode","Post","_x","_x2","_x3","currentTime","RefreshTokensAsync","HouseholdApiService","formData","UserService","_SaveUserAttributes","_GetAllActiveAttributes","_GetCurrentUserAttributes","_GetCurrentUser","userNotAuthenticatedMsg","userNotFoundMsg","currentUser","notAuthenticatedMessage","userNotFound","Get","userInfo","currentUserAttributes","userAttributesInfo","allActiveAttributes","allAttributesInfo","_callee4","_context4","LookupApiService","showAll","PledgeCampaignApiService","campaignId","contactId","pledgeId","cancelEmailTemplateId","ComponentBase","_HTMLElement","_setStyleFiles","_baseRoot","attachShadow","_root","_Init","setStyleFiles","customCss","_this2","customCssUrl","GetCustomStyles","customCssFiles","cssFile","rel","media","href","customElementName","componentType","customElements","define","getElementsByClassName","el","myWidget","getAttributeNames","HTMLElement","NumberUtils","amount","isNaN","currency","DateTimeFormatter","_dayMonthOptions","day","_shortOptions","weekday","year","_timeOptions","hour","minute","_weekDays","dateValue","parts","_parts","_arrayWithHoles","_arr","_n","_d","_s","_i","_iterableToArrayLimit","_nonIterableRest","second","NormalizeDateTime","toLocaleDateString","d","toLocaleTimeString","startDate","endDate","start","end","dateValueToCompare","dayOfWeek","finalDate","currentDayOfWeek","getDay","targetDayOfWeek","GetDayOfWeekFromString","getDate","standardFormat","dd","mm","yyyy","getFullYear","b","MonthDiff","adjust","wholeMonthDiff","clonedA","anchor","cloned2A","_cloned2A","Math","floor","MppPledgeCampaign","_ComponentBase","_connectedCallback","_dateFormatter","oldValue","newValue","_$pledgeCampaignWrapper","loadAttributes","LoadPledgeCampaign","pledgeCampaignID","pledgeEmailTemplate","suggestedAmounts","createI18N","_initHTMLElements","_pledgeCampaignService","getPledgeCampaignApiService","_lookupService","LoadFrequencyData","VerifyLogin","BindEventListeners","_$emptyContainer","_$alertContainer","createPledgeTitle","pledgeDetailsTitle","pledgeAmountLabel","frequencyLabel","pledgeStartDateLabel","pledgeEndDateLabel","totalPledgeLabel","personalDetailsTitle","blankFormLabel","makePledgeAsLabel","contactTitle","firstNameLabel","lastNameLabel","emailLabel","mobilePhoneLabel","createPledgeButtonLabel","_$loginButton","_$colPledgeAmountButton","_$pledgeAmountButtonWrapper","_$pledgeAmountToggleButtons","_$pledgeForm","_$makePledgeAsWrapper","_$applyAs","_$contactId","_$contactBlankForm","_$frequencyDropdown","_$installmentAmount","_$firstInstallmentDate","_$lastInstallmentDate","_$totalPledge","_$firstName","_$lastName","_$email","_$totalPledgeDisplay","_$installmentsPlanned","_$installmentsPerYear","_$pledgeCampaignDetails","display","datetime","toISOString","GetCampaign","pledgeCampaignResponse","ClearAllAlerts","photo","description","campaignGoal","pledged","received","campaignStartDate","installmentAmount","campaignEndDate","allowOnlinePledge","pledgeBeyondEndDate","userHasAlreadyPledged","thankYouMessage","PLEDGE_CAMPAIGN_PHOTO","PLEDGE_CAMPAIGN_TITLE","PLEDGE_CAMPAIGN_DESCRIPTION","addLineBreaks","PLEDGE_CAMPAIGN_PLEDGED","toCurrencyString","PLEDGE_CAMPAIGN_GOAL","PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE","PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE","PLEDGE_CAMPAIGN_PLEDGED_PERCENTAGE_VALUE","PLEDGE_CAMPAIGN_RECEIVED_PERCENTAGE_VALUE","_onlineThankYouMessage","_pledgeBeyondEndDate","_pledgeStartDate","_justDate","_pledgeEndDate","PrefillDates","progressTitle","pledgedOfLabel","goalLabel","receivedLabel","pledgedLabel","hideFormBasedOnEndDate","getTime","RenderAlert","notAcceptingPledgesMessage","userHasAlreadyPledgedMessage","SetSuggestedAmounts","_this3","max","minDate","_getStartOrToday","maxDate","_this4","GetFrequencyData","frequencyResponse","LoadDropdown","_this5","GetCurrentUser","_getHouseholdMembers","ShowContactBlankForm","_this6","getHouseholdApiService","GetHouseholdMembers","members","allMembers","member","displayName","user","HideContactBlankForm","_this7","pledgeForm","preventDefault","IsValid","PastCampaignEndDate","DisplayErrorPastCampaignEndDate","FormData","AddNotesToFormData","_savePledge","pledgeFormWarningMessage","makePledgeAsValue","_havePledged","_loop","toggleButton","pledgeAmountSelectedButton","CalculateTotalPledge","_this8","HavePledged","_this9","SavePledge","_this9$_onlineThankYo","Reset","trim","pledgeFormSuccessMessage","RenderHandler","firstName","lastName","email","mobilePhoneNumber","notes","sd","ed","YearDiff","parseFloat","replaceAll","toFixed","frequency","firstInstallmentDate","lastInstallmentDate","parseInt","numberOfYears","YearsBetweenDates","numberOfMonths","MonthsBetweenDates","twicePerMonthCount","everyOtherWeekCount","WeeksBetweenDates","weeklyCount","removeAttribute","pledgeEndDate","ToShortDateFormatted","registerComponent"],"sourceRoot":""}