\")\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 = \"\");\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, \"
\");\n }\n }]);\n\n return TextFormatter;\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/**\r\n * GoogleMapsApi\r\n * Class to load google maps api with api key\r\n * and global Callback to init map after resolution of promise.\r\n *\r\n * @exports {GoogleMapsApi}\r\n * @example MapApi = new GoogleMapsApi();\r\n *\t\t MapApi.load().then(() => {});\r\n */\nvar GoogleMapsApi = /*#__PURE__*/function () {\n /**\r\n * Constructor\r\n * @property {string} apiKey\r\n * @property {string} callbackName\r\n */\n function GoogleMapsApi(gApiKey) {\n _classCallCheck(this, GoogleMapsApi);\n\n // api key for google maps\n this.apiKey = gApiKey; // Set global callback\n\n if (!window._GoogleMapsApi) {\n this.callbackName = '_GoogleMapsApi.mapLoaded';\n window._GoogleMapsApi = this;\n window._GoogleMapsApi.mapLoaded = this.mapLoaded.bind(this);\n }\n }\n /**\r\n * Load\r\n * Create script element with google maps\r\n * api url, containing api key and callback for\r\n * map init.\r\n * @return {promise}\r\n * @this {_GoogleMapsApi}\r\n */\n\n\n _createClass(GoogleMapsApi, [{\n key: \"load\",\n value: function load() {\n var _this = this;\n\n if (!this.promise) {\n this.promise = new Promise(function (resolve) {\n _this.resolve = resolve;\n\n if (typeof window.google === 'undefined') {\n var script = document.createElement('script');\n script.src = \"//maps.googleapis.com/maps/api/js?key=\".concat(_this.apiKey, \"&callback=\").concat(_this.callbackName);\n script.async = true;\n document.body.append(script);\n } else {\n _this.resolve();\n }\n });\n }\n\n return this.promise;\n }\n /**\r\n * mapLoaded\r\n * Global callback for loaded/resolved map instance.\r\n * @this {_GoogleMapsApi}\r\n *\r\n */\n\n }, {\n key: \"mapLoaded\",\n value: function mapLoaded() {\n if (this.resolve) {\n this.resolve();\n }\n }\n }]);\n\n return GoogleMapsApi;\n}();\n\nexport default GoogleMapsApi;","export var stylers = {\n /**\r\n * Map Styler JSON\r\n */\n styles: [{\n \"featureType\": \"administrative\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#444444\"\n }]\n }, {\n \"featureType\": \"landscape\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"color\": \"#f2f2f2\"\n }]\n }, {\n \"featureType\": \"landscape.natural.landcover\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [{\n \"visibility\": \"simplified\"\n }]\n }, {\n \"featureType\": \"poi\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"featureType\": \"road\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"saturation\": -100\n }, {\n \"lightness\": 45\n }]\n }, {\n \"featureType\": \"road.highway\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"visibility\": \"simplified\"\n }]\n }, {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [{\n \"color\": \"#ffffff\"\n }]\n }, {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"featureType\": \"transit\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"featureType\": \"water\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"color\": \"#dde6e8\"\n }, {\n \"visibility\": \"on\"\n }]\n }],\n\n /**\r\n * Map Icon/Pin SVG\r\n * SVG is base64 encoded.\r\n */\n icons: {\n red: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMzVweCIgaGVpZ2h0PSI0M3B4IiB2aWV3Qm94PSIwIDAgMzUgNDMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDUxLjMgKDU3NTQ0KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5QaW4gLSBPUiBDb3B5IDM8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNNjgyLDM3MSBMNjgyLDM4MCBMNjczLDM3MSBMNjU5LDM3MSBMNjU5LDM0OCBMNjgyLDM0OCBMNjgyLDM3MSBaIiBpZD0icGF0aC0xIj48L3BhdGg+CiAgICAgICAgPGZpbHRlciB4PSItNDMuNSUiIHk9Ii0yNS4wJSIgd2lkdGg9IjE4Ny4wJSIgaGVpZ2h0PSIxNjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0yIj4KICAgICAgICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMiIgaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9InNoYWRvd09mZnNldE91dGVyMSI+PC9mZU9mZnNldD4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMyIgaW49InNoYWRvd09mZnNldE91dGVyMSIgcmVzdWx0PSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlR2F1c3NpYW5CbHVyPgogICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMC4yMTE3NjQ3MDYgICAwIDAgMCAwIDAuMjA3ODQzMTM3ICAgMCAwIDAgMCAwLjIxNTY4NjI3NSAgMCAwIDAgMC4yNCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIj48L2ZlQ29sb3JNYXRyaXg+CiAgICAgICAgPC9maWx0ZXI+CiAgICA8L2RlZnM+CiAgICA8ZyBpZD0i8J+OqC1EZXNpZ24iIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJQcm9mZXNzaW9uYWwtRGV0YWlsLS0tQ3JpZGVyYS0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04OTAuMDAwMDAwLCAtNDE5MS4wMDAwMDApIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgICAgICAgICA8ZyBpZD0iUHJvcGVydGllcy1NYXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwLjAwMDAwMCwgMzUzMy4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJMb2NhdGlvbnMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE4Ny4wMDAwMDAsIDMxNC4wMDAwMDApIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iUGlucyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPSJQaW4tLS1PUi1Db3B5LTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZSBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIxIiBmaWx0ZXI9InVybCgjZmlsdGVyLTIpIiB4bGluazpocmVmPSIjcGF0aC0xIj48L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgZmlsbD0iI0UwNDQwMyIgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=='\n }\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 GoogleMapsApi from \"../Maps/GMapsApi\";\nimport { stylers } from \"../Maps/stylers\";\nimport markerTmpl from \"../Maps/marker.tmpl\";\nimport { Configuration } from \"../Shared/Configuration\";\nvar _googleMapsLink = \" https://maps.google.com/?q=\";\nexport var MapBuilder = /*#__PURE__*/function () {\n function MapBuilder() {\n _classCallCheck(this, MapBuilder);\n }\n\n _createClass(MapBuilder, null, [{\n key: \"DrawMap\",\n value: function DrawMap(element, addressData) {\n var _this = this;\n\n var config = new Configuration();\n config.GetConfigurationSetting(\"GoogleMapsAPIKey\").then(function (gApiKey) {\n var gmapApi = new GoogleMapsApi(gApiKey); // Call map renderer\n\n gmapApi.load().then(function () {\n _this._renderMap(element, addressData);\n });\n });\n }\n }, {\n key: \"GetGoogleMapsLink\",\n value: function GetGoogleMapsLink(data) {\n var mapsLink = \"\";\n\n if (!!data && data.addressId > 0 && !!data.addressLine1) {\n var encodedParameters = encodeURI(\"\".concat(data.addressLine1, \"+\").concat(data.city, \"+\").concat(data.state, \"+\").concat(data.postalCode));\n\n var _mapsLink = \"\".concat(_googleMapsLink).concat(encodedParameters);\n\n return _mapsLink;\n }\n\n return mapsLink;\n }\n /**\r\n * Render Map\r\n * @param {map obj} mapEl - Google Map\r\n * @param {obj} data - map data\r\n */\n\n }, {\n key: \"_renderMap\",\n value: function _renderMap(mapEl, data) {\n var options = {\n mapTypeId: google.maps.MapTypeId.ROADMAP,\n styles: stylers.styles,\n zoom: data.zoom,\n center: {\n lat: data.lat,\n lng: data.lng\n }\n };\n var map = new google.maps.Map(mapEl, options);\n\n this._renderMarker(map, data);\n }\n /**\r\n * Render Marker\r\n * Renders custom map marker and infowindow\r\n * @param {map element} mapEl\r\n * @param {object} data\r\n */\n\n }, {\n key: \"_renderMarker\",\n value: function _renderMarker(map, data) {\n var icon = {\n url: stylers.icons.red,\n scaledSize: new google.maps.Size(80, 80)\n };\n var tmpl = markerTmpl(data);\n var marker = new google.maps.Marker({\n position: new google.maps.LatLng(data.lat, data.lng),\n map: map,\n //icon: icon,\n title: data.title,\n content: tmpl,\n animation: google.maps.Animation.DROP\n });\n var infowindow = new google.maps.InfoWindow();\n\n this._handleMarkerClick(map, marker, infowindow);\n }\n /**\r\n * Handle Marker Click\r\n *\r\n * @param {map obj} mapEl\r\n * @param {marker} marker\r\n * @param {infowindow} infoWindow\r\n */\n\n }, {\n key: \"_handleMarkerClick\",\n value: function _handleMarkerClick(map, marker, infowindow) {\n google.maps.event.addListener(marker, 'click', function () {\n infowindow.setContent(marker.content);\n infowindow.open(map, marker);\n });\n google.maps.event.addListener(map, 'click', function (event) {\n if (infowindow) {\n infowindow.close(map, infowindow);\n }\n });\n } //TODO: remove old code:\n\n }, {\n key: \"xCreateMap\",\n value: function xCreateMap(address, mapElement) {\n var geocoder = new google.maps.Geocoder();\n var latlng = new google.maps.LatLng(-34.397, 150.644);\n var myOptions = {\n zoom: 8,\n center: latlng,\n mapTypeControl: true,\n mapTypeControlOptions: {\n style: google.maps.MapTypeControlStyle.DROPDOWN_MENU\n },\n navigationControl: true,\n mapTypeId: google.maps.MapTypeId.ROADMAP\n };\n var map = new google.maps.Map(mapElement, myOptions);\n\n if (geocoder) {\n geocoder.geocode({\n 'address': address\n }, function (results, status) {\n //let locationResult = results[0];\n if (status === google.maps.GeocoderStatus.OK) {\n if (status !== google.maps.GeocoderStatus.ZERO_RESULTS) {\n map.setCenter(results[0].geometry.location);\n var infowindow = new google.maps.InfoWindow({\n content: '' + address + '',\n size: new google.maps.Size(150, 50)\n });\n var marker = new google.maps.Marker({\n position: results[0].geometry.location,\n map: map,\n title: address\n });\n google.maps.event.addListener(marker, 'click', function () {\n infowindow.open(map, marker);\n }); //successful\n } else {//unsuccessful\n }\n } else {//unsuccessful\n }\n });\n }\n }\n }]);\n\n return MapBuilder;\n}();","/**\r\n * Marker Template\r\n * @param {obj} data - property data/json\r\n */\nfunction markerTmpl(data) {\n var url = encodeURIComponent(data.address);\n return \"\\n\\t\\n\\t
\\n\\t\\t
\\n\\t\\t
\".concat(data.title, \"\\n\\t\\t
\\n\\t\\t\\t\").concat(data.address, \"\\n\\t\\t \\n\\t\\t
Get Directions\\n\\t\\t
\\n\\t
\\n\\t
\\n \");\n}\n\nexport default markerTmpl;","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 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 _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 _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 */\nimport { SessionStorageManager } from \"./SessionStorageManager\";\nimport { ArgumentException } from \"./Exceptions\";\nimport { ArgumentTypeException } from \"./Exceptions\";\nvar _keyPrefix = \"mpp-return-context_\";\n/**\r\n * For internal use. Generates a full sessionStorage key - prefix + provided key\r\n * @param {string} key Storage key\r\n * @returns {string} Generated full storage key\r\n*/\n\nvar _getKey = function _getKey(key) {\n return \"\".concat(_keyPrefix, \"_\").concat(key);\n};\n/**\r\n * Return context provider. Gets/sets context for a category of widgets\r\n */\n\n\nexport var ReturnContext = /*#__PURE__*/function () {\n function ReturnContext() {\n _classCallCheck(this, ReturnContext);\n }\n\n _createClass(ReturnContext, null, [{\n key: \"Set\",\n value:\n /**\r\n * Saves provided formData and current URL in session storage\r\n * @param {string} category Widget category\r\n * @param {FormData} formData FormData that needs to be stored\r\n * @throws {ArgumentException}\r\n * @throws {ArgumentTypeException}\r\n */\n function Set(category, formData) {\n if (!category) {\n throw new ArgumentException(\"category\");\n }\n\n if (typeof category !== \"string\") {\n throw new ArgumentTypeException(\"category\");\n }\n\n if (!formData) {\n throw new ArgumentException(\"formData\");\n }\n\n if (_typeof(formData) !== \"object\" || !(formData instanceof FormData)) {\n throw new ArgumentTypeException(\"formData\");\n }\n\n SessionStorageManager.clear(_keyPrefix);\n var formDataObject = {};\n\n var _iterator = _createForOfIteratorHelper(formData.entries()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var pair = _step.value;\n formDataObject[pair[0]] = !!formDataObject[pair[0]] ? formDataObject[pair[0]] + \",\" + pair[1] : pair[1];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var item = JSON.stringify({\n Url: window.location.href,\n FormData: formDataObject\n });\n SessionStorageManager.setItem(_getKey(category), item);\n }\n /**\r\n * Retrieves context for provided category from session storage\r\n * @param {string} category Widget category\r\n * @returns {object} If available returns object { url, formData }, if not - returns null\r\n * @throws {ArgumentException}\r\n * @throws {ArgumentTypeException}\r\n */\n\n }, {\n key: \"Get\",\n value: function Get(category) {\n if (!category) {\n throw new ArgumentException(\"category\");\n }\n\n if (typeof category !== \"string\") {\n throw new ArgumentTypeException(\"category\");\n }\n\n var item = SessionStorageManager.getItem(_getKey(category));\n return JSON.parse(item);\n }\n /**\r\n * Gets widget categories\r\n * @returns {object} JSON object {category, categoryName}\r\n */\n\n }, {\n key: \"Categories\",\n get: function get() {\n return {\n Groups: \"Groups\",\n Events: \"Events\",\n Opportunities: \"Opportunities\",\n OnlineDirectory: \"OnlineDirectory\",\n None: \"None\"\n };\n }\n /**\r\n * Apllies object values to the specified form element\r\n * @param {object} formData JSON object key/value pairs\r\n * @param {Form} form Form element\r\n * @returns {boolean} Indicates if hidden container should be open\r\n * @throws {ArgumentException}\r\n */\n\n }, {\n key: \"ApplyFilter\",\n value: function ApplyFilter(formData, form, hiddenContainer) {\n var inHiddenContainer = false;\n\n if (!formData) {\n throw new ArgumentException(\"formData\");\n }\n\n if (!form) {\n throw new ArgumentException(\"form\");\n }\n\n var formElements = [];\n\n for (var i = 0; i < form.elements.length; i++) {\n formElements.push(form.elements[i]);\n }\n\n var _loop = function _loop(key) {\n value = formData[key];\n var formElementMatches = formElements.filter(function (item) {\n return item.name == key;\n });\n\n for (var _i = 0; _i < formElementMatches.length; _i++) {\n var formElement = formElementMatches[_i];\n\n if (!!formElement) {\n var changed = false;\n\n if (formElement.type === \"checkbox\") {\n var checked = value.split(\",\").includes(formElement.value);\n\n if (formElement.checked != checked) {\n formElement.checked = checked;\n changed = true;\n }\n } else {\n if (formElement.value != value) {\n formElement.value = value;\n changed = true;\n }\n }\n\n if (!inHiddenContainer && changed) {\n if (!!hiddenContainer && hiddenContainer.contains(formElement)) {\n hiddenContainer.style.display = \"\";\n inHiddenContainer = true;\n }\n }\n }\n }\n };\n\n for (var key in formData) {\n var value;\n\n _loop(key);\n }\n\n return inHiddenContainer;\n }\n }]);\n\n return ReturnContext;\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\n/*jshint esversion: 8 */\nimport { Configuration } from \"../Shared/Configuration\";\nimport { DateTimeFormatter } from \"./DateTimeFormatter\";\nimport { TextFormatter } from \"./TextFormatter\";\nimport { MapBuilder } from \"./MapBuilder\";\nimport { ReturnContext } from \"../Shared/ReturnContextProvider\";\nexport var InnerPageBuilder = /*#__PURE__*/function () {\n function InnerPageBuilder() {\n _classCallCheck(this, InnerPageBuilder);\n }\n\n _createClass(InnerPageBuilder, null, [{\n key: \"BuildGoBack\",\n value: function BuildGoBack() {\n var navLabel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Search';\n var returnUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var category = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ReturnContext.Categories.None;\n var actualReturnUrl = null;\n var returnContext = ReturnContext.Get(category);\n\n if (!!returnContext) {\n actualReturnUrl = returnContext.Url;\n }\n\n if (!actualReturnUrl) {\n actualReturnUrl = returnUrl;\n }\n\n return \"\");\n }\n }, {\n key: \"BuildFinderDetailImage\",\n value: function BuildFinderDetailImage(imageSrc, type) {\n if (imageSrc === null || imageSrc === undefined) {\n return \"\");\n } else {\n return \"\");\n }\n }\n }, {\n key: \"BuildImage\",\n value: function BuildImage(imageSrc, type) {\n if (imageSrc === null || imageSrc === undefined) {\n return \"
\");\n } else {\n return \"
\");\n }\n }\n }, {\n key: \"BuildTitle\",\n value: function BuildTitle(headerName) {\n return \"\".concat(headerName, \"
\");\n }\n }, {\n key: \"BuildSubtitle\",\n value: function BuildSubtitle() {\n var headerType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n var headerName = arguments.length > 1 ? arguments[1] : undefined;\n return \"\").concat(headerName, \"\");\n }\n }, {\n key: \"BuildCustomButton\",\n value: function BuildCustomButton(targetUrl, btnText) {\n if (!!targetUrl) {\n return \"\").concat(btnText, \"\");\n } else {\n return \"\";\n }\n }\n }, {\n key: \"BuildDateTime\",\n value: function BuildDateTime() {\n var dateTimes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var isAddToCalendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return \"\\n\\t\\t\\t
\\n\\t\\t\\t\\t\".concat(dateTimes.map(function (dateTime) {\n return \"
\").concat(dateTime.text, \"
\");\n }).join(''), \"\\n\\t\\t\\t\\n\\t\\t\\t\").concat(isAddToCalendar ? \"\".concat(this.BuildButton({\n type: 'primary',\n text: 'Add to Calendar'\n })) : '', \"\\n\\t\\t
\");\n }\n }, {\n key: \"BuildGroupDateTime\",\n value: function BuildGroupDateTime(meetingFrequency, meetingDay, meetingTime) {\n return \"\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\".concat(!!meetingFrequency ? \"\".concat(meetingFrequency, \" on\") : '', \" \").concat(!!meetingDay ? meetingDay : '', \" \").concat(!!meetingTime && !!meetingDay ? \"@ \".concat(new DateTimeFormatter().ToShortTime(meetingTime)) : '', \"
\\n\\t\\t\\t\\n\\t\\t
\");\n }\n }, {\n key: \"BuildEventDateTime\",\n value: function BuildEventDateTime(meetingDay, meetingTime, location) {\n var isAddToCalendar = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return \"\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\".concat(meetingDay, \" @ \").concat(new DateTimeFormatter().ToShortTime(meetingTime), \"
\\n\\t\\t\\t\\t\").concat(location === null ? '' : \"\".concat(location, \"
\"), \"\\n\\t\\t\\t\\n\\t\\t\\t\").concat(isAddToCalendar ? \"\".concat(this.BuildButton({\n type: 'primary',\n text: 'Add to Calendar'\n })) : '', \"\\n\\t\\t
\");\n }\n }, {\n key: \"BuildOpportunityDateTime\",\n value: function BuildOpportunityDateTime(startDate, meetingDay) {\n return \"\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\".concat(startDate === null ? meetingDay : new DateTimeFormatter().ToShortDateTime(startDate), \"
\\n\\t\\t\\t\\n\\t\\t
\");\n }\n }, {\n key: \"BuildDescription\",\n value: function BuildDescription() {\n var description = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (description === null || description === undefined) {\n return;\n }\n\n return \"\\n\\t\\t\\t\".concat(new TextFormatter(description).addLineBreaks(), \"\\n\\t\\t
\");\n }\n }, {\n key: \"BuildSpecialText\",\n value: function BuildSpecialText() {\n var special = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var regular = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var counterText = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (regular === null || regular === undefined || regular === 'undefined') {\n return;\n }\n\n if (special === '' || special === null) {\n return \"\".concat(new TextFormatter(regular).addLineBreaks(), \" \").concat(new TextFormatter(counterText).addLineBreaks(), \"
\");\n } else {\n return \"\".concat(special, \"
\").concat(new TextFormatter(regular).addLineBreaks(), \" \").concat(new TextFormatter(counterText).addLineBreaks(), \"
\");\n }\n }\n }, {\n key: \"BuildCapacityText\",\n value: function BuildCapacityText() {\n var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n if (label === null || label === undefined || label === 'undefined') {\n return;\n }\n\n if (title === '' || title === null) {\n return \"\");\n } else {\n return \"\".concat(title, \"
\").concat(label, \"
\");\n }\n }\n }, {\n key: \"BuildAddress\",\n value: function BuildAddress() {\n var address = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Primary Address\";\n return \"\\n\\t\\t\\t
\".concat(label, \":\\n\\t\\t\\t
\\n\\t\\t\\t\\t\").concat(address.filter(function (el) {\n return el !== null;\n }).map(function (line) {\n return \"- \".concat(line, \"
\");\n }).join(''), \"\\n\\t\\t\\t
\\n\\t\\t
\");\n }\n }, {\n key: \"BuildButton\",\n value: function BuildButton(_ref) {\n var type = _ref.type,\n text = _ref.text;\n return \"\");\n } // Shows or hides the element(s) passed in\n // Example: this.DisplayElements(true, this._$formContainer, this._$pageLoadingContainer);\n\n }, {\n key: \"DisplayElements\",\n value: function DisplayElements() {\n var display = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n for (var _len = arguments.length, elements = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n elements[_key - 1] = arguments[_key];\n }\n\n for (var _i = 0, _elements = elements; _i < _elements.length; _i++) {\n var element = _elements[_i];\n\n if (element) {\n // Get all inputs for the given div\n var inputElements = element.getElementsByTagName(\"input\");\n\n if (display === true) {\n // Display div\n element.style.display = \"block\"; // Remove the disabled attribute that was set below\n\n var _iterator = _createForOfIteratorHelper(inputElements),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var el = _step.value;\n el.removeAttribute(\"disabled\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n // Hide div\n element.style.display = \"none\"; // Add disabled to prevent form validation issues on hidden inputs\n\n var _iterator2 = _createForOfIteratorHelper(inputElements),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _el = _step2.value;\n\n _el.setAttribute(\"disabled\", true);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }\n }\n }, {\n key: \"BuildLabels\",\n value: function BuildLabels(labels, i18n) {\n labels = labels || [];\n labels = labels.filter(function (i) {\n return i;\n });\n return \"\\n\\t\\t\\t\".concat(labels.map(function (label) {\n return \"- \".concat(InnerPageBuilder.ApplyI18n(i18n, label), \"
\");\n }).join(''), \"\\n\\t\\t
\");\n }\n /**\r\n * Method looks for i18n translation if label text starts with i18n_\r\n * @param {Array} i18n Array of label translations\r\n * @param {String} label Current label\r\n */\n\n }, {\n key: \"ApplyI18n\",\n value: function ApplyI18n(i18n, label) {\n var result = label;\n\n if (!!label && !!label.indexOf && label.indexOf(\"i18n_\") == 0) {\n label = label.substring(5);\n result = i18n[label];\n }\n\n return result;\n }\n }, {\n key: \"old_BuildMap\",\n value: function old_BuildMap() {\n var labels = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['8381 Katella Ave', 'Stanton, CA 90680'];\n var address = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3315.3649250590233!2d-117.9861483308044!3d33.80289458458454!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x80dd291d79475c01%3A0x6526723d8f95e53c!2s8381+Katella+Ave%2C+Stanton%2C+CA+90680!5e0!3m2!1sen!2sus!4v1537121370163\";\n // latitude and longitude as params\n return \"\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\").concat(labels.map(function (label) {\n return \"
\".concat(label, \"
\");\n }).join(''), \"\\n\\t\\t\\t\\t
Get Directions\\n\\t\\t\\t
\\n\\t\\t
\");\n }\n }, {\n key: \"BuildMap\",\n value: function BuildMap(address) {\n var text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Get Directions\";\n // latitude and longitude as params\n // if latitude and longitude doesn't exist\n // directions show place\n return \"\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\").concat(text, \"\\n\\t\\t\\t
\\n\\t\\t
\");\n }\n }, {\n key: \"BuildGoogleMap\",\n value: function BuildGoogleMap($mapEl, latitude, longitude, address, title) {\n var addressData = {\n lat: latitude,\n lng: longitude,\n address: address,\n title: title,\n zoom: 10\n };\n MapBuilder.DrawMap($mapEl, addressData);\n }\n }, {\n key: \"BuildMapAddress\",\n value: function BuildMapAddress(address) {\n var showAddressLabel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var text = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"Get Directions\";\n\n if (address === null || address === undefined) {\n return '';\n } else {\n if (showAddressLabel === true) {\n return \"\".concat(address, \"
\\n\\t\\t\\t\\t\").concat(text, \" >\");\n } else {\n return \"\").concat(text, \" >\");\n }\n }\n }\n }, {\n key: \"MapsSelector\",\n value: function MapsSelector(address) {\n if (\n /* if we're on iOS, open in Apple Maps */\n navigator.platform.indexOf(\"iPhone\") != -1 || navigator.platform.indexOf(\"iPod\") != -1 || navigator.platform.indexOf(\"iPad\") != -1) {\n var iOSMapAddress = \"maps://maps.google.com/maps?daddr=\".concat(address, \"&ll=\");\n return iOSMapAddress;\n } else {\n /* else use Google */\n var mapAddress = \"https://maps.google.com/maps?daddr=\".concat(address, \"&ll=\");\n return mapAddress;\n }\n }\n }, {\n key: \"BuildProgress\",\n value: function BuildProgress() {\n var header = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '$750 of $1,000 Goal (75%)';\n var percentage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '75';\n var description = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '12 installments beginning 05/15/2019';\n return \"\\n\\t\\t\\t
Progress:
\\n\\t\\t\\t
\".concat(header, \"
\\n\\t\\t\\t
\\n\\t\\t\\t
\").concat(description, \"
\\n\\t\\t
\");\n }\n }, {\n key: \"BuildContacts\",\n value: function BuildContacts() {\n var contacts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var headerName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Contact(s)\";\n var allowEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (contacts === undefined || contacts === null) {\n return;\n }\n\n return \"\\n\\t\\t\\t
\".concat(headerName, \":
\\n\\t\\t\\t
\\n\\t\\t\\t\\t\").concat(contacts && contacts.map(function (contact) {\n var hasEmailAddress = contact.emailAddress && contact.emailAddress !== '';\n var displayName = contact.displayName,\n imageUrl = contact.imageUrl,\n contactId = contact.contactId;\n displayName = displayName.replace(' ', '
');\n return \"- \\n\\t\\t\\t\\t\\t\\t\\t\") : \">\".concat(displayName.charAt(0)), \"\\n\\t\\t\\t\\t\\t\\t\\t\").concat(displayName, \"\\n\\t\\t\\t\\t\\t\\t
\");\n }).join(''), \"\\n\\t\\t\\t
\\n\\t\\t
\");\n }\n }, {\n key: \"BuildPageMetadata\",\n value: function BuildPageMetadata(title) {\n var dateTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var description = arguments.length > 2 ? arguments[2] : undefined;\n var meetingInstructions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n return \"\\n\\t\\t\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\".concat(title, \"
\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\").concat(meetingInstructions, \"
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\").concat(dateTimes.map(function (dateTime) {\n return \"\".concat(dateTime);\n }).join(''), \"
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t\\t\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\").concat(description, \"
\\n\\t\\t
\");\n }\n }, {\n key: \"BuildInnerPageDetails\",\n value: function BuildInnerPageDetails() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n\n params = params.filter(Boolean);\n return \"\\n\\t\\t\\t\".concat(params.map(function (param) {\n return \"\".concat(param);\n }).join(''), \"\\n\\t\\t\");\n } // Adds tab click event handling\n\n }, {\n key: \"BindTabEventListeners\",\n value: function BindTabEventListeners(tabElements, root) {\n var _this = this;\n\n // Add click event listener to each element\n for (var i = 0; i < tabElements.length; i++) {\n tabElements[i].addEventListener(\"click\", function (e) {\n e.preventDefault(); // Add active class to the currently selected tab\n\n var clickedTab = e.currentTarget;\n\n _this.SetActiveTab(tabElements, clickedTab.id, root);\n });\n }\n } // Set specific tab element id as active\n\n }, {\n key: \"SetActiveTab\",\n value: function SetActiveTab(tabElements, activeTabId, root) {\n // Remove active class from tabs\n for (var y = 0; y < tabElements.length; y++) {\n tabElements[y].classList.remove(\"active\");\n } // Add active class to the currently selected tab\n\n\n var activeTabElement = root.querySelector(\"#\".concat(activeTabId));\n activeTabElement.classList.add(\"active\"); // Remove active class from all content areas\n\n var tabContentAreas = root.querySelectorAll(\".mpp-form--tab-content\");\n\n for (var j = 0; j < tabContentAreas.length; j++) {\n tabContentAreas[j].classList.remove(\"active\");\n } // Add active class to the currently selected content area\n\n\n var activeContentArea = root.querySelector(\".\".concat(activeTabId));\n activeContentArea.classList.add(\"active\");\n } // Hide all tabs in tabsToHideArray which is an array of html element id's\n\n }, {\n key: \"HideTabs\",\n value: function HideTabs(tabElements, tabsToHideArray, root) {\n var _this2 = this;\n\n // Remove hidden class from tabs\n for (var y = 0; y < tabElements.length; y++) {\n tabElements[y].classList.remove(\"hide-tab\");\n } // Remove hidden class from all content areas\n\n\n var tabContentAreas = root.querySelectorAll(\".mpp-form--tab-content\");\n\n for (var j = 0; j < tabContentAreas.length; j++) {\n tabContentAreas[j].classList.remove(\"hide-tab\");\n } // Hide specific tabs\n\n\n if (!!tabsToHideArray) {\n tabsToHideArray.forEach(function (element) {\n _this2.SetTabVisibile(element, false, root);\n });\n }\n } // Set specific html element tab id visibility\n\n }, {\n key: \"SetTabVisibile\",\n value: function SetTabVisibile(visibleTabId, visible, root) {\n var toggleTabElement = root.querySelector(\"#\".concat(visibleTabId));\n var toggleTabContentArea = root.querySelector(\".\".concat(visibleTabId));\n visible === true ? toggleTabElement.classList.remove(\"hide-tab\") : toggleTabElement.classList.add(\"hide-tab\");\n visible === true ? toggleTabContentArea.classList.remove(\"hide-tab\") : toggleTabContentArea.classList.add(\"hide-tab\");\n }\n }]);\n\n return InnerPageBuilder;\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 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\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 _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 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\n/*jshint esversion: 8 */\nimport { Configuration } from \"./Configuration\";\nimport { ArgumentException } from \"./Exceptions\";\n/**\r\n * Variable that contains promise indicating that google api was initialized\r\n */\n\nvar _googlePlacesInitPromise = null;\n/**\r\n * Decodes \"place\" object received from google api into a simpler JSON object\r\n * @param {object} place Google Place selection result\r\n */\n\nvar _decodeGooglePlacesData = function _decodeGooglePlacesData(place) {\n var result = null;\n\n if (!!place && !!place.address_components && !!place.address_components.length) {\n var components = place.address_components;\n result = {};\n\n for (var idx in components) {\n var component = components[idx];\n\n if (!!component) {\n var value = component.long_name;\n var shortValue = component.short_name;\n\n if (!!value && !!component.types && !!component.types.length) {\n var type = component.types[0];\n\n switch (type) {\n case \"street_number\":\n result.address = result.address || [];\n result.address[0] = value;\n break;\n\n case \"route\":\n result.address = result.address || [];\n result.address[1] = value;\n break;\n\n case \"locality\":\n result.city = value;\n break;\n\n case \"administrative_area_level_1\":\n result.state = shortValue || value;\n break;\n\n case \"country\":\n result.country = value;\n break;\n\n case \"postal_code\":\n result.postalCode = value;\n break;\n }\n }\n }\n }\n\n result.addressLine1 = !!result.address ? result.address.join(\" \") : \"\";\n }\n\n return result;\n};\n/**\r\n * Method is responsible for injecting Google Places Api script into the page\r\n * @param {HTMLElement} parentContainer Element into which script tag will be injected\r\n * @param {string} apiKey Google API key\r\n */\n\n\nvar _loadGooglePlacesScript = function _loadGooglePlacesScript(parentContainer, apiKey) {\n if (!parentContainer) {\n throw new ArgumentException(\"parentContainer\");\n }\n\n if (!apiKey) {\n throw new ArgumentException(\"apiKey\");\n }\n\n return new Promise(function (resolve, reject) {\n window.initGoogleAutoComplete = function () {\n resolve();\n };\n\n window.gm_authFailure = function (data) {\n console.log(\"Gogle Places Init failed\");\n console.log(data);\n reject();\n };\n\n var script = document.createElement('script');\n script.src = \"https://maps.googleapis.com/maps/api/js?key=\".concat(apiKey, \"&libraries=places&callback=initGoogleAutoComplete\");\n\n script.onerror = function (err) {\n console.log(\"Gogle Places Init error\");\n console.log(err);\n reject();\n };\n\n script.onabort = function (err) {\n console.log(\"Gogle Places Init abort\");\n console.log(err);\n reject();\n };\n\n parentContainer.appendChild(script);\n });\n};\n/**\r\n * Creates a framework to add Google Places API address autocomplete to a textbox\r\n */\n\n\nexport var AddressAutoComplete = /*#__PURE__*/function () {\n /**\r\n * Class constructor. Gets API key, initializes Google Places JS API\r\n * @param {HTMLElement} parentContainer Parent container into which Google API script will be injected\r\n */\n function AddressAutoComplete(parentContainer) {\n _classCallCheck(this, AddressAutoComplete);\n\n if (!parentContainer) {\n throw new ArgumentException(\"parentContainer\");\n }\n\n var config = new Configuration();\n\n if (_googlePlacesInitPromise == null) {\n config.GetConfigurationSetting(\"GoogleMapsAPIKey\").then(function (gApiKey) {\n if (!!gApiKey) {\n _googlePlacesInitPromise = _loadGooglePlacesScript(parentContainer, gApiKey);\n }\n });\n }\n }\n /**\r\n * Attaches autocomplete functionality to the given textbox, triggers callback on address select\r\n * @param {HTMLElement} textBoxElement Element (textbox) to which Autocomplete functionality will be attached\r\n * @param {Function} addressSelectedCallback OnSelect callback\r\n */\n\n\n _createClass(AddressAutoComplete, [{\n key: \"attach\",\n value: function attach(textBoxElement, addressSelectedCallback) {\n if (!textBoxElement) {\n throw new ArgumentException(\"textBoxElement\");\n }\n\n if (!addressSelectedCallback) {\n throw new ArgumentException(\"addressSelectedCallback\");\n }\n\n if (_googlePlacesInitPromise != null) {\n _googlePlacesInitPromise.then(function () {\n var googleAutoComplete = new google.maps.places.Autocomplete(textBoxElement, {\n types: ['geocode']\n });\n googleAutoComplete.setFields(['address_component']);\n googleAutoComplete.addListener('place_changed', function () {\n var place = googleAutoComplete.getPlace();\n\n var address = _decodeGooglePlacesData(place);\n\n addressSelectedCallback(address);\n });\n }, function () {\n console.log(\"Unable to attach address autocomplete. Google Places API is not initialized!\");\n });\n } else {\n console.log(\"Ignored. Google Places API is not initialized.\");\n }\n }\n }]);\n\n return AddressAutoComplete;\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 _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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread 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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 DateTimeUtils = /*#__PURE__*/function () {\n function DateTimeUtils() {\n _classCallCheck(this, DateTimeUtils);\n }\n\n _createClass(DateTimeUtils, null, [{\n key: \"ParseAsLocalDateTime\",\n value: function ParseAsLocalDateTime(dateTimeString) {\n // yyyy-mm-ddThh:mm:ss\n var parts = dateTimeString.split(/\\D/).map(function (part) {\n return parseInt(part);\n });\n parts[1] = parts[1] - 1; // adjust month\n\n return _construct(Date, _toConsumableArray(parts));\n }\n }]);\n\n return DateTimeUtils;\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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread 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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 { DateTimeFormatter } from './Helpers/DateTimeFormatter';\nimport { DropdownBuilder } from './Helpers/DropdownBuilder';\nimport { ErrorBuilder } from './Helpers/ErrorBuilder';\nimport { FormManager } from './Helpers/FormManager';\nimport { InnerPageBuilder } from './Helpers/InnerPageBuilder';\nimport { HouseholdApiService } from './Services/HouseholdApiService';\nimport { LookupApiService } from './Services/LookupApiService';\nimport { OAuthService } from './Services/OAuthService';\nimport { UserService } from './Services/UserService';\nimport { AddressAutoComplete } from './Shared/AddressAutoComplete';\nimport { ComponentBase } from './Shared/ComponentBase';\nimport { Configuration } from './Shared/Configuration';\nimport { DateTimeUtils } from './Shared/DateTimeUtils';\nimport { I18N } from './Shared/I18n';\n\nvar MppHousehold = /*#__PURE__*/function (_ComponentBase) {\n _inherits(MppHousehold, _ComponentBase);\n\n var _super = _createSuper(MppHousehold);\n\n function MppHousehold() {\n var _this;\n\n _classCallCheck(this, MppHousehold);\n\n _this = _super.call(this);\n var config = new Configuration();\n _this._getLocalCountryCode = config.GetLocalCountryCode;\n _this._appRoot = config.GetAppRoot();\n _this._isHeadOfHousehold = false;\n _this._householdId = null;\n _this._addressAutoComplete = new AddressAutoComplete(_this._root);\n return _this;\n }\n\n _createClass(MppHousehold, [{\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._$householdWrapper) {\n this.loadAttributes();\n this.LoadHousehold(this.i18n);\n }\n }\n }, {\n key: \"loadAttributes\",\n value: function loadAttributes() {\n this.hideAddHouseholdMember = this.getAttribute(\"hideaddhouseholdmember\") || \"false\";\n }\n }, {\n key: \"connectedCallback\",\n value: function () {\n var _connectedCallback = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var _this2 = this;\n\n var i18n;\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-household\")[\"catch\"](function (error) {\n if (error.toString().startsWith(\"TypeError\")) {\n _this2._root.innerHTML = \"Unable to connect. Please check Permitted URLs.\";\n } else {\n _this2._root.innerHTML = \"\".concat(error);\n }\n });\n\n case 2:\n i18n = _context.sent;\n // Load attributes\n this.loadAttributes(); // Literals\n\n this.i18n = i18n;\n this._root.innerHTML = \"\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t
\").concat(i18n.header, \"
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\");\n this._locale = localStorage.userLocale || \"en\"; // Selectors\n\n this._$loginButtonContainer = this._root.querySelector(\"#loginButtonContainer\");\n this._$householdWrapper = this._root.querySelector(\"#householdWrapper\");\n this._$emptyContainer = this._root.querySelector(\"#emptyContainer\"); // Templates\n\n this._$loginButtonContainer.innerHTML += `` ;\n this._$emptyContainer.innerHTML += `` ;\n this._$householdWrapper.innerHTML += `` ; // Dynamically Generated from Templates Selector\n\n this._$loginButton = this._root.querySelector(\"#loginButton\");\n this._$householdName = this._root.querySelector('#householdName');\n this._$editHouseholdName = this._root.querySelector('#editHouseholdName');\n this._$householdDetails = this._root.querySelector('#householdDetails');\n this._$householdAlertContainer = this._root.querySelector('#householdAlertContainer');\n this._$householdForm = this._root.querySelector('#householdForm');\n this._$householdFormContainer = this._root.querySelector('#householdFormContainer');\n this._$householdSeasonalFormContainer = this._root.querySelector('#householdSeasonalFormContainer');\n this._$closeHousehold = this._root.querySelector('#closeHousehold');\n this._$saveHousehold = this._root.querySelector('#saveHousehold');\n this._$addNewMemberButton = this._root.querySelector('#addNewMember');\n this._$householdMemberList = this._root.querySelector('#householdMemberList');\n this._$householdMemberAlertContainer = this._root.querySelector('#householdMemberAlertContainer');\n this._$householdMemberForm = this._root.querySelector('#householdMemberForm');\n this._$householdMemberFormContainer = this._root.querySelector('#householdMemberFormContainer');\n this._$closeHouseholdMember = this._root.querySelector('#closeHouseholdMember');\n this._$saveHouseholdMember = this._root.querySelector('#saveHouseholdMember');\n this._$householdMemberMemberHeader = this._root.querySelector('#householdMemberMemberHeader'); // Services\n\n this._householdService = new HouseholdApiService();\n this._lookupService = new LookupApiService();\n UserService.GetCurrentUser().then(function (userInfo) {\n _this2._$loginButtonContainer.style.display = \"none\";\n _this2._$householdWrapper.style.display = \"\";\n\n _this2.LoadHousehold(i18n);\n }, function () {\n _this2._$emptyContainer.innerHTML = \"\";\n _this2._$householdWrapper.style.display = \"none\";\n _this2._$loginButtonContainer.style.display = \"\";\n }); //this.BuildHouseholdMemberForm('', i18n);\n // Wire-up event listeners:\n\n this.BindEventListeners();\n\n case 35:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function connectedCallback() {\n return _connectedCallback.apply(this, arguments);\n }\n\n return connectedCallback;\n }()\n }, {\n key: \"BindEventListeners\",\n value: function BindEventListeners() {\n var _this3 = this;\n\n // Event\n this._$loginButton.addEventListener(\"click\", function () {\n OAuthService.SignIn();\n }); // Open Household to Edit\n\n\n this._$editHouseholdName.addEventListener(\"click\", function (e) {\n e.preventDefault();\n _this3._$householdAlertContainer.innerHTML = '';\n\n var searchMode = _this3._$editHouseholdName.getAttribute(\"data-searchmode\");\n\n if (searchMode === \"0\") {\n _this3.ShowHouseholdForm();\n } else {\n _this3.CloseOrCancelHouseholdForm();\n }\n }); // Close or Cancel Household form\n\n\n this._$closeHousehold.addEventListener(\"click\", function (e) {\n e.preventDefault();\n _this3._$householdAlertContainer.innerHTML = '';\n\n _this3.CloseOrCancelHouseholdForm();\n });\n\n var householdForm = new FormManager(this._$householdForm);\n\n this._$saveHouseholdMember.addEventListener(\"click\", function (e) {\n if (householdMemberForm.IsValid()) {\n var formData = new FormData(_this3._$householdMemberForm);\n\n _this3.AddCommunicationPreferencesToFormData(formData);\n\n _this3.AddDisplayNameToFormData(formData);\n\n _this3.AddHouseholdIdToFormData(formData);\n\n var isExistingContact = parseInt(formData.get(\"contactId\")) > 0;\n\n _this3._householdService.UpdateHouseholdMember(formData).then(function (membersResponse) {\n _this3._$householdAlertContainer.innerHTML = '';\n\n if (!!isExistingContact) {\n ErrorBuilder.RenderAlert(_this3._$householdMemberAlertContainer, 'success', _this3.i18n.thankYouUpdateMember);\n } else {\n ErrorBuilder.RenderAlert(_this3._$householdMemberAlertContainer, 'success', _this3.i18n.thankYouAddMember);\n }\n\n householdMemberForm.Reset();\n\n _this3.CloseOrCancelHouseholdMemberForm();\n\n _this3.BuildHouseholdMemberCards(membersResponse);\n })[\"catch\"](ErrorBuilder.RenderHandler(_this3._$householdMemberAlertContainer, _this3.i18n));\n } else {\n ErrorBuilder.RenderAlert(_this3._$householdMemberAlertContainer, 'warning', 'Please complete household member form!');\n }\n });\n\n this._$saveHousehold.addEventListener(\"click\", function (e) {\n if (householdForm.IsValid()) {\n var formData = new FormData(_this3._$householdForm);\n\n _this3.AddRepeatAnnuallyToFormData(formData);\n\n _this3.AddHouseholdUnlistedToFormData(formData);\n\n _this3._householdService.UpdateHousehold(formData).then(function (householdResponse) {\n _this3._$householdMemberAlertContainer.innerHTML = '';\n householdForm.Reset();\n ErrorBuilder.RenderAlert(_this3._$householdAlertContainer, 'success', _this3.i18n.thankYouUpdateMember);\n\n _this3.CloseOrCancelHouseholdForm();\n\n _this3.BuildHouseholdDetails(householdResponse);\n\n _this3.BuildHouseholdForm(householdResponse, _this3.i18n);\n })[\"catch\"](ErrorBuilder.RenderHandler(_this3._$householdMemberAlertContainer, _this3.i18n));\n } else {\n ErrorBuilder.RenderAlert(_this3._$householdAlertContainer, 'warning', _this3.i18n.completeHouseholdForm);\n }\n }); // Household Form Edit Submit\n\n\n this._$householdForm.addEventListener(\"submit\", function (e) {\n e.preventDefault();\n return;\n });\n\n var householdMemberForm = new FormManager(this._$householdMemberForm); // Open Household Member Form\n\n this._$addNewMemberButton.addEventListener(\"click\", function (e) {\n e.preventDefault();\n _this3._$householdMemberAlertContainer.innerHTML = '';\n\n var searchMode = _this3._$addNewMemberButton.getAttribute(\"data-searchmode\");\n\n _this3.BuildHouseholdMemberForm('', _this3.i18n);\n\n if (searchMode === \"0\") {\n _this3.ShowHouseholdMemberForm();\n } else {\n _this3.CloseOrCancelHouseholdMemberForm();\n }\n }); // Household Member Form Edit Submit\n // if contactId = 0 new member if contactId != 0 update member\n\n\n this._$householdMemberForm.addEventListener(\"submit\", function (e) {\n e.preventDefault();\n return;\n }); // Close or Cancel Household Member Form\n\n\n this._$closeHouseholdMember.addEventListener(\"click\", function (e) {\n e.preventDefault();\n _this3._$householdMemberAlertContainer.innerHTML = '';\n householdMemberForm.Reset();\n\n _this3.CloseOrCancelHouseholdMemberForm();\n });\n }\n }, {\n key: \"AddHouseholdUnlistedToFormData\",\n value: function AddHouseholdUnlistedToFormData(formData) {\n formData.set('homePhoneUnlisted', formData.get('homePhoneUnlisted') == \"on\");\n formData.set('homeAddressUnlisted', formData.get('homeAddressUnlisted') == \"on\");\n }\n }, {\n key: \"AddRepeatAnnuallyToFormData\",\n value: function AddRepeatAnnuallyToFormData(formData) {\n if (!!formData.get('alternativeAddressRepeatAnnually')) {\n formData.set('alternativeAddressRepeatAnnually', 'true');\n }\n }\n }, {\n key: \"AddHouseholdIdToFormData\",\n value: function AddHouseholdIdToFormData(formData) {\n if (formData.get('householdId') === '') {\n formData.set('householdId', \"\".concat(this._householdId));\n }\n }\n }, {\n key: \"AddDisplayNameToFormData\",\n value: function AddDisplayNameToFormData(formData) {\n var lastName = formData.get('lastName');\n var nickName = formData.get('nickName');\n var firstName = formData.get('firstName');\n formData.set('displayName', \"\".concat(lastName, \", \").concat(nickName || firstName));\n\n if (!!formData.get('suffixId')) {\n var suffixId = parseInt(formData.get('suffixId'));\n\n var suffixName = _toConsumableArray(this._root.querySelector('#suffixId').options).sort(function (a, b) {\n return a.value - b.value;\n })[suffixId].text;\n\n var displayName = formData.get('displayName');\n formData.set('displayName', displayName + \" \".concat(suffixName));\n }\n }\n }, {\n key: \"AddCommunicationPreferencesToFormData\",\n value: function AddCommunicationPreferencesToFormData(formData) {\n formData.set('removeFromDirectory', formData.get('removeFromDirectory') == \"on\");\n formData.set('emailUnlisted', formData.get('emailUnlisted') == \"on\");\n formData.set('mobilePhoneUnlisted', formData.get('mobilePhoneUnlisted') == \"on\");\n formData.set('doNotText', formData.get('doNotText') == \"on\");\n formData.set('bulkEmailOptOut', formData.get('bulkEmailOptOut') == \"on\");\n }\n }, {\n key: \"LoadHousehold\",\n value: function LoadHousehold() {\n var _this4 = this;\n\n var i18n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.i18n;\n // variables used in household-card.html\n var APP_ROOT = this._appRoot;\n\n this._householdService.GetHousehold().then(function (data) {\n _this4._$emptyContainer.innerHTML = \"\";\n _this4._$householdWrapper.style = \"\"; // if (this._isHeadOfHousehold) {\n\n _this4.BuildHouseholdForm(data, i18n); // }\n\n\n var name = data.name,\n address = data.address,\n alternativeAddress = data.alternativeAddress,\n familyMembers = data.familyMembers,\n congregationName = data.congregationName,\n congregationId = data.congregationId;\n _this4._$householdName.innerHTML = name;\n\n _this4.BuildHouseholdDetails(data);\n\n _this4.VerifyHeadOfHousehold().then(function () {\n _this4.BuildHouseholdMemberCards(familyMembers);\n });\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderHandler(_this4._$emptyContainer);\n _this4._$emptyContainer.innerHTML = \"\";\n _this4._$householdWrapper.style.display = \"none\";\n _this4._$loginButtonContainer.style.display = \"\";\n });\n }\n }, {\n key: \"VerifyHeadOfHousehold\",\n value: function VerifyHeadOfHousehold() {\n var _this5 = this;\n\n // remove add household member button based on config\n this._$addNewMemberButton.style.display = this.hideAddHouseholdMember === \"true\" ? \"none\" : 'flex';\n return UserService.GetCurrentUser().then(function (userInfo) {\n if (!!userInfo) {\n _this5.userInfo = userInfo;\n _this5._householdId = _this5.userInfo.householdId;\n\n if (_this5.userInfo && _this5.userInfo.isHeadOfHousehold) {\n _this5._isHeadOfHousehold = _this5.userInfo.isHeadOfHousehold;\n }\n\n if (!_this5._isHeadOfHousehold) {\n _this5._$editHouseholdName.setAttribute(\"disabled\", \"\");\n\n _this5._$addNewMemberButton.setAttribute(\"disabled\", \"\");\n }\n }\n });\n }\n }, {\n key: \"BuildHouseholdDetails\",\n value: function BuildHouseholdDetails(householdResponse) {\n var address = householdResponse.address,\n alternativeAddress = householdResponse.alternativeAddress,\n congregationName = householdResponse.congregationName,\n alternativeAddressRepeatAnnually = householdResponse.alternativeAddressRepeatAnnually,\n alternativeAddressStart = householdResponse.alternativeAddressStart,\n alternativeAddressEnd = householdResponse.alternativeAddressEnd;\n var country,\n addressLine1,\n addressLine2,\n city,\n stateRegion,\n postalCode = '';\n\n if (address !== null) {\n country = address.country;\n addressLine1 = address.addressLine1;\n addressLine2 = address.addressLine2;\n city = address.city;\n stateRegion = address.stateRegion;\n postalCode = address.postalCode;\n }\n\n var altCountry,\n altAddressLine1,\n altAddressLine2,\n altCity,\n altStateRegion,\n altPostalCode = '';\n\n if (alternativeAddress !== null) {\n altCountry = alternativeAddress.country;\n altAddressLine1 = alternativeAddress.addressLine1;\n altAddressLine2 = alternativeAddress.addressLine2;\n altCity = alternativeAddress.city;\n altStateRegion = alternativeAddress.stateRegion;\n altPostalCode = alternativeAddress.postalCode;\n }\n\n var isAltAddressInPast = !alternativeAddressRepeatAnnually && new Date(alternativeAddressEnd) < new Date();\n var isAltAddressInFuture = alternativeAddressRepeatAnnually || new Date(alternativeAddressStart) > new Date() || new Date(alternativeAddressEnd) > new Date();\n var validAlternativeAddress = !!alternativeAddress && !isAltAddressInPast && isAltAddressInFuture;\n var altAddressDateRange = '';\n\n if (alternativeAddressRepeatAnnually) {\n altAddressDateRange = \"\".concat(new DateTimeFormatter().ToShortDayMonthOnlyRange(alternativeAddressStart, alternativeAddressEnd), \" annually\");\n } else {\n altAddressDateRange = \"\".concat(new DateTimeFormatter().ToShortDateRange(alternativeAddressStart, alternativeAddressEnd));\n }\n\n this._$householdDetails.innerHTML = InnerPageBuilder.BuildInnerPageDetails(!!congregationName ? InnerPageBuilder.BuildLabels([congregationName]) : '', !!address ? InnerPageBuilder.BuildAddress([country, addressLine1, addressLine2, \"\".concat(city || '', \", \").concat(stateRegion || '', \" \").concat(postalCode || '')], this.i18n.primaryAddressLabel) : '', validAlternativeAddress ? InnerPageBuilder.BuildAddress([altCountry, altAddressLine1, altAddressLine2, \"\".concat(altCity || '', \", \").concat(altStateRegion || '', \" \").concat(altPostalCode || ''), altAddressDateRange], this.i18n.alternativeAddressLabel) : '');\n }\n }, {\n key: \"BuildHouseholdMemberCards\",\n value: function BuildHouseholdMemberCards(familyMembers) {\n var _this6 = this;\n\n var householdMemberListHTML = '';\n\n if (familyMembers.length) {\n var _iterator = _createForOfIteratorHelper(familyMembers),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var member = _step.value;\n // variables used in household-card.html\n var contactId = member.contactId,\n displayName = member.displayName,\n firstName = member.firstName,\n nickName = member.nickName,\n lastName = member.lastName,\n imageUrl = member.imageUrl,\n householdPositionId = member.householdPositionId,\n householdPositionName = member.householdPositionName,\n dateOfBirth = member.dateOfBirth;\n var dateOfBirthText = ''; // Manually resolving date issue in DateTimeFormatter.js file\n\n if (dateOfBirth) {\n var newDate = DateTimeUtils.ParseAsLocalDateTime(dateOfBirth);\n var shortOptions = {\n weekday: 'short',\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n };\n dateOfBirthText = newDate.toLocaleDateString('en', shortOptions).slice(5);\n }\n\n var IMAGE_URL_SRC = !!imageUrl ? imageUrl : \"\".concat(this._appRoot, \"/Content/icons/icon-household-member.svg\");\n householdMemberListHTML += `` ;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n this._$householdMemberList.innerHTML = \"\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t
No additional household members found\\n\\t\\t\\t
\";\n }\n\n this._$householdMemberList.innerHTML = householdMemberListHTML;\n this._$editHouseholdMemberButtons = this._$householdMemberList.querySelectorAll('.mpp-card--edit-household-btn');\n\n var _iterator2 = _createForOfIteratorHelper(this._$editHouseholdMemberButtons),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var editHouseholdMemberBtn = _step2.value;\n\n if (this._isHeadOfHousehold) {\n editHouseholdMemberBtn.addEventListener(\"click\", function (e) {\n e.preventDefault();\n var contactId = e.target.dataset.contactid;\n\n _this6._$addNewMemberButton.click();\n\n var householdMember = familyMembers.find(function (x) {\n return x.contactId.toString() === contactId;\n });\n\n _this6.BuildHouseholdMemberForm(householdMember, _this6.i18n);\n\n var firstName = householdMember.firstName,\n nickName = householdMember.nickName,\n lastName = householdMember.lastName,\n displayName = householdMember.displayName;\n\n if (nickName !== '') {\n _this6._root.querySelector('#householdMemberHeader').innerHTML = \"\".concat(_this6.i18n.editLabel, \" \").concat(!!lastName && !!nickName ? \"\".concat(nickName, \" \").concat(lastName) : \"\".concat(displayName));\n } else {\n _this6._root.querySelector('#householdMemberHeader').innerHTML = \"\".concat(_this6.i18n.editLabel, \" \").concat(!!lastName && !!firstName ? \"\".concat(firstName, \" \").concat(lastName) : \"\".concat(displayName));\n }\n });\n } else {\n editHouseholdMemberBtn.setAttribute('disabled', '');\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }, {\n key: \"ShowHouseholdForm\",\n value: function ShowHouseholdForm() {\n this._$householdForm.style.display = \"block\";\n this._$householdDetails.style.display = \"none\";\n this._$householdMemberForm.style.display = \"none\";\n this._$householdMemberList.style.display = \"none\";\n\n this._$editHouseholdName.setAttribute(\"data-searchmode\", \"1\");\n\n this._$addNewMemberButton.setAttribute(\"disabled\", \"\");\n\n this._$editHouseholdName.setAttribute(\"disabled\", \"\");\n }\n }, {\n key: \"CloseOrCancelHouseholdForm\",\n value: function CloseOrCancelHouseholdForm() {\n this._$householdForm.style.display = \"none\";\n this._$householdDetails.style.display = \"block\";\n this._$householdMemberList.style.display = \"grid\";\n\n this._$editHouseholdName.setAttribute(\"data-searchmode\", \"0\");\n\n this._$addNewMemberButton.removeAttribute(\"disabled\");\n\n this._$editHouseholdName.removeAttribute(\"disabled\");\n }\n }, {\n key: \"ShowHouseholdMemberForm\",\n value: function ShowHouseholdMemberForm() {\n this._$householdMemberForm.style.display = \"block\";\n this._$householdMemberList.style.display = \"none\";\n\n this._$addNewMemberButton.setAttribute(\"data-searchmode\", \"1\");\n\n this._$addNewMemberButton.setAttribute(\"disabled\", \"\");\n\n this._$editHouseholdName.setAttribute(\"disabled\", \"\");\n\n if (this._$addNewMemberButton.text.includes(this.i18n.addMemberLabel)) {\n this._root.querySelector('#householdMemberHeader').innerHTML = this.i18n.addMemberLabel;\n }\n }\n }, {\n key: \"CloseOrCancelHouseholdMemberForm\",\n value: function CloseOrCancelHouseholdMemberForm() {\n this._$householdMemberForm.style.display = \"none\";\n this._$householdMemberList.style.display = \"grid\";\n\n this._$addNewMemberButton.setAttribute(\"data-searchmode\", \"0\");\n\n this._$addNewMemberButton.removeAttribute(\"disabled\");\n\n this._$editHouseholdName.removeAttribute(\"disabled\");\n }\n }, {\n key: \"BuildHouseholdForm\",\n value: function BuildHouseholdForm(householdData, i18n) {\n var _this7 = this;\n\n if (householdData === undefined) return; // variables used in household-form.html\n\n var householdId = householdData.householdId,\n name = householdData.name,\n homePhone = householdData.homePhone,\n congregationId = householdData.congregationId,\n congregationName = householdData.congregationName,\n address = householdData.address,\n alternativeAddress = householdData.alternativeAddress,\n alternativeAddressStart = householdData.alternativeAddressStart,\n alternativeAddressEnd = householdData.alternativeAddressEnd,\n alternativeAddressRepeatAnnually = householdData.alternativeAddressRepeatAnnually,\n homePhoneUnlisted = householdData.homePhoneUnlisted,\n homeAddressUnlisted = householdData.homeAddressUnlisted; // Build Household Form\n\n var HOMEPHONE_VALUE = homePhone || '';\n var ADDRESSID_VALUE = address && address.addressId || '';\n var COUNTRY_VALUE = address && address.countryCode || '';\n var ADDRESS1_VALUE = address && address.addressLine1 || '';\n var ADDRESS2_VALUE = address && address.addressLine2 || '';\n var CITY_VALUE = address && address.city || '';\n var STATE_VALUE = address && address.stateRegion || '';\n var ZIP_VALUE = address && address.postalCode || '';\n var ALTERNATIVE_START_VALUE = alternativeAddressStart && alternativeAddressStart.slice(0, 10) || '';\n var ALTERNATIVE_END_VALUE = alternativeAddressEnd && alternativeAddressEnd.slice(0, 10) || '';\n var ALTERNATIVE_ADDRESSID_VALUE = alternativeAddress && alternativeAddress.addressId || '';\n var ALTERNATIVE_COUNTRY_VALUE = alternativeAddress && alternativeAddress.countryCode || '';\n var ALTERNATIVE_ADDRESS1_VALUE = alternativeAddress && alternativeAddress.addressLine1 || '';\n var ALTERNATIVE_ADDRESS2_VALUE = alternativeAddress && alternativeAddress.addressLine2 || '';\n var ALTERNATIVE_CITY_VALUE = alternativeAddress && alternativeAddress.city || '';\n var ALTERNATIVE_STATE_VALUE = alternativeAddress && alternativeAddress.stateRegion || '';\n var ALTERNATIVE_ZIP_VALUE = alternativeAddress && alternativeAddress.postalCode || '';\n this._$householdFormContainer.innerHTML = ` ${i18n.homePhoneUnlistedLabel}
${i18n.homeAddressUnlistedLabel}
${i18n.repeatAnnuallyLabel}
` ;\n new FormManager(this._$householdForm);\n this.RepeatAnnuallyHandler(alternativeAddressRepeatAnnually);\n this.HouseholdUnlistedHandler(homePhoneUnlisted, homeAddressUnlisted);\n this.PopulateHouseholdSelectOptions(COUNTRY_VALUE, ALTERNATIVE_COUNTRY_VALUE, congregationId, congregationName); // Attach Google Maps API\n\n var applyAddress = function applyAddress(address, prefix) {\n if (!!address) {\n var _addressLine1Element = _this7._$householdFormContainer.querySelector(\"#\".concat(prefix, \"addressLine1\"));\n\n _addressLine1Element.value = address.addressLine1 || \"\";\n\n var addressLine2Element = _this7._$householdFormContainer.querySelector(\"#\".concat(prefix, \"addressLine2\"));\n\n addressLine2Element.value = \"\";\n\n var cityElement = _this7._$householdFormContainer.querySelector(\"#\".concat(prefix, \"city\"));\n\n cityElement.value = address.city || \"\";\n\n var stateRegionElement = _this7._$householdFormContainer.querySelector(\"#\".concat(prefix, \"stateRegion\"));\n\n stateRegionElement.value = address.state || \"\";\n\n var postalCodeElement = _this7._$householdFormContainer.querySelector(\"#\".concat(prefix, \"postalCode\"));\n\n postalCodeElement.value = address.postalCode || \"\";\n\n var countryElement = _this7._$householdFormContainer.querySelector(\"#\".concat(prefix, \"country\"));\n\n for (var idx in countryElement.options) {\n var option = countryElement.options[idx];\n\n if (option.innerHTML == address.country) {\n countryElement.value = option.value;\n break;\n }\n }\n }\n };\n\n var addressLine1Element = this._$householdFormContainer.querySelector(\"#addressLine1\");\n\n this._addressAutoComplete.attach(addressLine1Element, function (address) {\n applyAddress(address, \"\");\n });\n\n addressLine1Element = this._$householdFormContainer.querySelector(\"#alt_addressLine1\");\n\n this._addressAutoComplete.attach(addressLine1Element, function (address) {\n applyAddress(address, \"alt_\");\n });\n }\n }, {\n key: \"BuildHouseholdMemberForm\",\n value: function BuildHouseholdMemberForm() {\n var member = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var i18n = arguments.length > 1 ? arguments[1] : undefined;\n var householdMember = {\n contactId: 0,\n householdId: '',\n imageUrl: '',\n firstName: '',\n middleName: '',\n lastName: '',\n nickName: '',\n displayName: '',\n genderId: '',\n dateOfBirth: '',\n maritalStatusId: '',\n emailAddress: '',\n mobilePhoneNumber: '',\n workPhoneNumber: '',\n homePhoneNumber: '',\n householdPositionId: '',\n suffixId: '',\n suffixName: '',\n prefixId: '',\n emailUnlisted: false,\n mobilePhoneUnlisted: false,\n doNotText: false,\n bulkEmailOptOut: false,\n removeFromDirectory: false\n };\n\n if (member !== '') {\n var contactId = member.contactId,\n householdId = member.householdId,\n firstName = member.firstName,\n lastName = member.lastName,\n middleName = member.middleName,\n nickName = member.nickName,\n displayName = member.displayName,\n genderId = member.genderId,\n maritalStatusId = member.maritalStatusId,\n imageUrl = member.imageUrl,\n householdPositionId = member.householdPositionId,\n suffixName = member.suffixName,\n suffixId = member.suffixId,\n prefixId = member.prefixId,\n dateOfBirth = member.dateOfBirth,\n emailAddress = member.emailAddress,\n mobilePhoneNumber = member.mobilePhoneNumber,\n workPhoneNumber = member.workPhoneNumber,\n homePhoneNumber = member.homePhoneNumber,\n emailUnlisted = member.emailUnlisted,\n mobilePhoneUnlisted = member.mobilePhoneUnlisted,\n doNotText = member.doNotText,\n bulkEmailOptOut = member.bulkEmailOptOut,\n removeFromDirectory = member.removeFromDirectory;\n householdMember = {\n contactId: contactId || 0,\n householdId: householdId || 0,\n imageUrl: imageUrl || '',\n firstName: firstName || '',\n middleName: middleName || '',\n lastName: lastName || '',\n nickName: nickName || '',\n displayName: displayName || '',\n genderId: genderId || null,\n dateOfBirth: dateOfBirth && dateOfBirth.slice(0, 10) || '',\n maritalStatusId: maritalStatusId || null,\n emailAddress: emailAddress || '',\n mobilePhoneNumber: mobilePhoneNumber || '',\n workPhoneNumber: workPhoneNumber || '',\n homePhoneNumber: homePhoneNumber || '',\n householdPositionId: householdPositionId || null,\n suffixName: suffixName || '',\n suffixId: suffixId || null,\n prefixId: prefixId || null,\n emailUnlisted: emailUnlisted || false,\n mobilePhoneUnlisted: mobilePhoneUnlisted || false,\n doNotText: doNotText || false,\n bulkEmailOptOut: bulkEmailOptOut || false,\n removeFromDirectory: removeFromDirectory || false\n };\n }\n\n var IMAGE_URL_SRC = !!householdMember.imageUrl ? householdMember.imageUrl : \"\".concat(this._appRoot, \"/Content/icons/icon-household-member.svg\");\n var IMAGE_URL_LABEL = !!householdMember.imageUrl ? i18n.changePhotoLabel : i18n.addPhotoLabel;\n var today = new Date().toISOString().split('T')[0];\n var isAddMemberOperation = householdMember.contactId > 0;\n this._$householdMemberFormContainer.innerHTML = `` ;\n new FormManager(this._$householdMemberForm);\n this.BindImageUrlUploader();\n this.CommunicationPreferencesHandler(member.removeFromDirectory, member.emailUnlisted, member.mobilePhoneUnlisted, member.doNotText, member.bulkEmailOptOut);\n this.PopulateHouseholdMemberSelectOptions(member.genderId, member.maritalStatusId, member.householdPositionId, member.prefixId, member.suffixId);\n }\n }, {\n key: \"HouseholdUnlistedHandler\",\n value: function HouseholdUnlistedHandler(homePhoneUnlisted, homeAddressUnlisted) {\n this._root.querySelector('#homePhoneUnlisted').checked = homePhoneUnlisted;\n this._root.querySelector('#homeAddressUnlisted').checked = homeAddressUnlisted;\n }\n }, {\n key: \"RepeatAnnuallyHandler\",\n value: function RepeatAnnuallyHandler(alternativeAddressRepeatAnnually) {\n this._root.querySelector('#alternativeAddressRepeatAnnually').checked = alternativeAddressRepeatAnnually;\n }\n }, {\n key: \"CommunicationPreferencesHandler\",\n value: function CommunicationPreferencesHandler(removeFromDirectory, emailUnlisted, mobilePhoneUnlisted, doNotText, bulkEmailOptOut) {\n this._root.querySelector('#removeFromDirectory').checked = removeFromDirectory;\n this._root.querySelector('#emailUnlisted').checked = emailUnlisted;\n this._root.querySelector('#mobilePhoneUnlisted').checked = mobilePhoneUnlisted;\n this._root.querySelector('#doNotText').checked = doNotText;\n this._root.querySelector('#bulkEmailOptOut').checked = bulkEmailOptOut;\n }\n }, {\n key: \"BindImageUrlUploader\",\n value: function BindImageUrlUploader() {\n var _this8 = this;\n\n this._$imageUrl = this._root.querySelector(\"#imageUrl\");\n this._$householdImagePreview = this._root.querySelector('#householdImagePreview');\n this._$fileTooLarge = this._root.querySelector(\"#fileTooLarge\");\n this._$imageUrlLabel = this._root.querySelector('#imageUrlLabel');\n\n this._$imageUrl.addEventListener(\"change\", function (event) {\n _this8._$fileTooLarge.style.display = \"none\";\n var file = _this8._$imageUrl.files[0];\n var MAX_FILE_SIZE = 10485760; // 10MB\n\n if (file.size >= MAX_FILE_SIZE) {\n _this8._$fileTooLarge.style.display = \"block\";\n } else {\n var reader = new FileReader();\n\n reader.onload = function (e) {\n _this8._$householdImagePreview.src = e.target.result;\n _this8._$householdImagePreview.className = \"mpp-card--household-image\";\n _this8._$imageUrlLabel.innerHTML = _this8.i18n.changePhotoLabel;\n };\n\n reader.readAsDataURL(event.target.files[0]);\n }\n });\n }\n }, {\n key: \"PopulateHouseholdSelectOptions\",\n value: function PopulateHouseholdSelectOptions(countryCode, alternativeCountryCode, congregationId, congregationName) {\n var _this9 = this;\n\n this._$addressCountry = this._root.querySelector('#country');\n this._$alternativeAddressCountry = this._root.querySelector('#alt_country');\n this._$congregationId = this._root.querySelector('#congregationId');\n\n this._lookupService.GetCountries().then(function (data) {\n _this9._localCountryCode = _this9._getLocalCountryCode(data);\n DropdownBuilder.BuildCountryDropdown(_this9._$addressCountry, data, _this9.i18n.countryLabel);\n DropdownBuilder.BuildCountryDropdown(_this9._$alternativeAddressCountry, data, _this9.i18n.countryLabel);\n _this9._$addressCountry.value = _this9.GetCountryCodeOrDefaultLocal(countryCode, data);\n _this9._$alternativeAddressCountry.value = _this9.GetCountryCodeOrDefaultLocal(alternativeCountryCode, data);\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderAlert(_this9._$emptyContainer, 'danger', error.StatusCode + (error.Details || error.Message));\n });\n\n this._lookupService.GetCongregations(false).then(function (data) {\n if (!data.find(function (item) {\n return item.id === congregationId;\n })) {\n data.push({\n \"id\": congregationId,\n \"value\": congregationName,\n \"name\": congregationName\n });\n }\n\n DropdownBuilder.LoadDropdown(_this9._$congregationId, data, _this9.i18n.congregationLabel);\n _this9._$congregationId.value = congregationId;\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderAlert(_this9._$emptyContainer, 'danger', error.StatusCode + (error.Details || error.Message));\n });\n }\n }, {\n key: \"GetCountryCodeOrDefaultLocal\",\n value: function GetCountryCodeOrDefaultLocal(countryCode, countyList) {\n var matches = countyList.filter(function (country) {\n return country.abbreviation == countryCode;\n });\n\n if (!!matches && matches.length > 0) {\n return countryCode;\n }\n\n return this._localCountryCode;\n }\n }, {\n key: \"PopulateHouseholdMemberSelectOptions\",\n value: function PopulateHouseholdMemberSelectOptions(gender, maritalStatus, householdPosition, prefix, suffix) {\n var _this10 = this;\n\n this._$genderId = this._root.querySelector('#genderId');\n this._$maritalStatusId = this._root.querySelector('#maritalStatusId');\n this._$householdPositionId = this._root.querySelector('#householdPositionId');\n this._$prefixId = this._root.querySelector('#prefixId');\n this._$suffixId = this._root.querySelector('#suffixId');\n\n this._lookupService.GetGenders().then(function (data) {\n DropdownBuilder.LoadDropdown(_this10._$genderId, data, _this10.i18n.genderLabel);\n _this10._$genderId.value = gender;\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderAlert(_this10._$emptyContainer, 'danger', error.StatusCode + (error.Details || error.Message));\n });\n\n this._lookupService.GetMaritalStatuses().then(function (data) {\n DropdownBuilder.LoadDropdown(_this10._$maritalStatusId, data, _this10.i18n.maritalStatusLabel);\n _this10._$maritalStatusId.value = maritalStatus;\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderAlert(_this10._$emptyContainer, 'danger', error.StatusCode + (error.Details || error.Message));\n });\n\n this._lookupService.GetHouseholdPositions().then(function (data) {\n DropdownBuilder.LoadDropdown(_this10._$householdPositionId, data, _this10.i18n.householdPositionLabel);\n _this10._$householdPositionId.value = householdPosition;\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderAlert(_this10._$emptyContainer, 'danger', error.StatusCode + (error.Details || error.Message));\n });\n\n this._lookupService.GetPrefixes().then(function (data) {\n DropdownBuilder.LoadDropdown(_this10._$prefixId, data, _this10.i18n.prefixLabel);\n _this10._$prefixId.value = prefix;\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderAlert(_this10._$emptyContainer, 'danger', error.StatusCode + (error.Details || error.Message));\n });\n\n this._lookupService.GetSuffixes().then(function (data) {\n DropdownBuilder.LoadDropdown(_this10._$suffixId, data, _this10.i18n.suffixLabel);\n _this10._$suffixId.value = suffix;\n })[\"catch\"](function (error) {\n console.error(error);\n ErrorBuilder.RenderAlert(_this10._$emptyContainer, 'danger', error.StatusCode + (error.Details || error.Message));\n });\n }\n }], [{\n key: \"observedAttributes\",\n get: function get() {\n return [\"hideaddhouseholdmember\"];\n }\n }]);\n\n return MppHousehold;\n}(ComponentBase);\n\nMppHousehold.registerComponent(\"mpp-household\", MppHousehold);"],"names":["_arrayLikeToArray","arr","len","length","i","arr2","Array","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","DateTimeFormatter","instance","Constructor","TypeError","_classCallCheck","this","_locale","localStorage","userLocale","_dayMonthOptions","month","day","_shortOptions","weekday","year","_timeOptions","hour","minute","_weekDays","protoProps","value","dateValue","parts","split","map","Number","_parts","isArray","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","_iterableToArrayLimit","o","minLen","n","prototype","toString","call","slice","constructor","name","from","test","_unsupportedIterableToArray","_nonIterableRest","second","Date","NormalizeDateTime","toLocaleDateString","d","toLocaleTimeString","startDate","endDate","start","end","dateValueToCompare","dayOfWeek","indexOf","finalDate","currentDayOfWeek","getDay","targetDayOfWeek","GetDayOfWeekFromString","setDate","getDate","standardFormat","arguments","dd","mm","getMonth","yyyy","getFullYear","a","b","MonthDiff","adjust","wholeMonthDiff","clonedA","anchor","setMonth","cloned2A","_cloned2A","Math","floor","_typeof","obj","authConfigurationCache","Configuration","SCRIPT_NAME","useCacheIfAvailable","Promise","resolve","appRoot","GetAppRoot","url","concat","fetch","then","authInfo","json","authConfiguration","console","error","Error","cacheKey","document","getElementById","currentScriptSrc","src","substring","sessionStorage","log","keyName","response","text","countryList","result","window","navigator","localeParts","language","countryCode","matches","filter","country","abbreviation","ok","data","ConfigurationService","I18N","componentName","_componentName","GetCurrentLocale","config","_appRoot","credentials","mode","withCredentials","staticProps","DropdownBuilder","selectElement","placeholder","j","options","remove","firstOpt","createElement","innerText","appendChild","opt","id","disabled","setAttribute","style","innerHTML","keys","groupByGroupName","array","reduce","objectsByKeyValue","attributeByGroupName","forEach","groupName","optgroup","label","attrs","attr","insertBefore","idx","objDate","toLocaleString","monthNames","m","_GetMonthBaseOnLocale","numberOfMonthsOut","GetCurrentMonth","keptMonths","monthValue","rr","querySelectorAll","monthNumber","includes","color","ErrorBuilder","container","i18n","_this","Render","errorMessage","type","title","replace","errors","status","message","IsLocalizable","Values","Details","hasOwnProperty","RegExp","GetValidationError","Message","details","FormManager","form","_form","_isDirty","_handleUnloadPageFunction","_wireupValidation","get","removeEventListener","_step","isValid","_iterator","allowArrayLike","it","F","s","e","f","normalCompletion","didErr","step","_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","GoogleMapsApi","gApiKey","apiKey","_GoogleMapsApi","callbackName","mapLoaded","bind","promise","google","script","async","body","append","stylers","styles","icons","red","MapBuilder","addressData","GetConfigurationSetting","load","_renderMap","addressId","addressLine1","encodedParameters","encodeURI","city","state","postalCode","mapEl","mapTypeId","maps","MapTypeId","ROADMAP","zoom","center","lat","lng","Map","_renderMarker","Size","tmpl","encodeURIComponent","address","marker","Marker","position","LatLng","content","animation","Animation","DROP","infowindow","InfoWindow","_handleMarkerClick","addListener","setContent","open","close","mapElement","geocoder","Geocoder","myOptions","mapTypeControl","mapTypeControlOptions","MapTypeControlStyle","DROPDOWN_MENU","navigationControl","geocode","results","GeocoderStatus","OK","ZERO_RESULTS","setCenter","geometry","location","size","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","self","Super","_getPrototypeOf","NewTarget","Reflect","construct","apply","ReferenceError","_assertThisInitialized","_wrapNativeSuper","Class","_cache","fn","Function","has","set","Wrapper","_construct","Parent","args","sham","Proxy","Boolean","valueOf","p","setPrototypeOf","__proto__","getPrototypeOf","ArgumentException","_Error","_super","argName","ArgumentTypeException","_Error2","_super2","_getKey","SessionStorageManager","item","setItem","fullKey","getItem","removeItem","storageKeys","searchFor","keyValue","_keyPrefix","ReturnContext","category","formData","FormData","clear","formDataObject","entries","pair","JSON","stringify","Url","href","parse","Groups","Events","Opportunities","OnlineDirectory","None","hiddenContainer","inHiddenContainer","formElements","_loop","formElementMatches","changed","display","InnerPageBuilder","navLabel","returnUrl","Categories","actualReturnUrl","returnContext","Get","imageSrc","headerName","headerType","targetUrl","btnText","isAddToCalendar","dateTime","className","join","BuildButton","meetingFrequency","meetingDay","meetingTime","ToShortTime","ToShortDateTime","description","addLineBreaks","special","regular","counterText","el","line","_ref","_len","_key","_elements","inputElements","getElementsByTagName","removeAttribute","_step2","_iterator2","labels","ApplyI18n","$mapEl","latitude","longitude","DrawMap","MapsSelector","platform","percentage","contacts","allowEmail","contact","hasEmailAddress","emailAddress","displayName","imageUrl","contactId","charAt","dateTimes","meetingInstructions","_len2","params","_key2","param","tabElements","root","preventDefault","clickedTab","currentTarget","SetActiveTab","activeTabId","tabContentAreas","tabsToHideArray","_this2","SetTabVisibile","visibleTabId","visible","toggleTabElement","toggleTabContentArea","LocalStorageManager","privateMethods","getUrlParameter","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","_unused","GetAuthConfiguration","oauthConfig","signInUrl","responseType","scope","clientId","redirectUrl","nonce","Token","signOutUrl","IdToken","postLogoutRedirectUrl","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","header","t0","SecondaryStatusCode","Post","_x","_x2","_x3","currentTime","RefreshTokensAsync","HouseholdApiService","LookupApiService","showAll","UserService","_SaveUserAttributes","_GetAllActiveAttributes","_GetCurrentUserAttributes","_GetCurrentUser","userNotAuthenticatedMsg","userNotFoundMsg","currentUser","notAuthenticatedMessage","userNotFound","userInfo","currentUserAttributes","userAttributesInfo","allActiveAttributes","allAttributesInfo","_callee4","_context4","_googlePlacesInitPromise","AddressAutoComplete","parentContainer","initGoogleAutoComplete","gm_authFailure","onerror","onabort","_loadGooglePlacesScript","textBoxElement","addressSelectedCallback","googleAutoComplete","places","Autocomplete","types","setFields","place","address_components","components","component","long_name","shortValue","short_name","_decodeGooglePlacesData","getPlace","ComponentBase","_HTMLElement","_setStyleFiles","_baseRoot","attachShadow","_root","_Init","setStyleFiles","customCss","customCssUrl","GetCustomStyles","customCssFiles","cssFile","rel","media","customElementName","componentType","customElements","define","getElementsByClassName","myWidget","getAttributeNames","HTMLElement","DateTimeUtils","dateTimeString","part","parseInt","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","MppHousehold","_ComponentBase","_connectedCallback","_getLocalCountryCode","GetLocalCountryCode","_isHeadOfHousehold","_householdId","_addressAutoComplete","oldValue","newValue","_$householdWrapper","loadAttributes","LoadHousehold","hideAddHouseholdMember","_$loginButtonContainer","_$emptyContainer","loginMessage","loginButton","editLabel","editContactInfo","closeButton","saveButton","addMemberLabel","_$loginButton","_$householdName","_$editHouseholdName","_$householdDetails","_$householdAlertContainer","_$householdForm","_$householdFormContainer","_$householdSeasonalFormContainer","_$closeHousehold","_$saveHousehold","_$addNewMemberButton","_$householdMemberList","_$householdMemberAlertContainer","_$householdMemberForm","_$householdMemberFormContainer","_$closeHouseholdMember","_$saveHouseholdMember","_$householdMemberMemberHeader","_householdService","_lookupService","GetCurrentUser","BindEventListeners","_this3","ShowHouseholdForm","CloseOrCancelHouseholdForm","householdForm","householdMemberForm","IsValid","AddCommunicationPreferencesToFormData","AddDisplayNameToFormData","AddHouseholdIdToFormData","isExistingContact","UpdateHouseholdMember","membersResponse","RenderAlert","thankYouUpdateMember","thankYouAddMember","Reset","CloseOrCancelHouseholdMemberForm","BuildHouseholdMemberCards","RenderHandler","AddRepeatAnnuallyToFormData","AddHouseholdUnlistedToFormData","UpdateHousehold","householdResponse","BuildHouseholdDetails","BuildHouseholdForm","completeHouseholdForm","searchMode","BuildHouseholdMemberForm","ShowHouseholdMemberForm","lastName","nickName","firstName","suffixId","suffixName","sort","_this4","GetHousehold","familyMembers","alternativeAddress","congregationName","congregationId","VerifyHeadOfHousehold","_this5","householdId","isHeadOfHousehold","addressLine2","stateRegion","alternativeAddressRepeatAnnually","alternativeAddressStart","alternativeAddressEnd","altCountry","altAddressLine1","altAddressLine2","altCity","altStateRegion","altPostalCode","altAddressDateRange","isAltAddressInPast","isAltAddressInFuture","validAlternativeAddress","ToShortDayMonthOnlyRange","ToShortDateRange","BuildInnerPageDetails","BuildLabels","BuildAddress","primaryAddressLabel","alternativeAddressLabel","_this6","householdMemberListHTML","member","householdPositionId","householdPositionName","dateOfBirth","dateOfBirthText","ParseAsLocalDateTime","editMemberLabel","_$editHouseholdMemberButtons","editHouseholdMemberBtn","contactid","click","householdMember","find","householdData","_this7","homePhone","homePhoneUnlisted","homeAddressUnlisted","HOMEPHONE_VALUE","ADDRESSID_VALUE","COUNTRY_VALUE","ADDRESS1_VALUE","ADDRESS2_VALUE","CITY_VALUE","STATE_VALUE","ZIP_VALUE","ALTERNATIVE_START_VALUE","ALTERNATIVE_END_VALUE","ALTERNATIVE_ADDRESSID_VALUE","ALTERNATIVE_COUNTRY_VALUE","ALTERNATIVE_ADDRESS1_VALUE","ALTERNATIVE_ADDRESS2_VALUE","ALTERNATIVE_CITY_VALUE","ALTERNATIVE_STATE_VALUE","ALTERNATIVE_ZIP_VALUE","congregationLabel","homePhoneUnlistedLabel","homePhoneLabel","homeAddressUnlistedLabel","addressLineLabel","cityLabel","stateLabel","postalCodeLabel","countryLabel","seasonalAddressLabel","repeatAnnuallyLabel","seasonalStartDateLabel","seasonalEndDateLabel","RepeatAnnuallyHandler","HouseholdUnlistedHandler","PopulateHouseholdSelectOptions","applyAddress","prefix","countryElement","option","addressLine1Element","attach","middleName","genderId","maritalStatusId","mobilePhoneNumber","workPhoneNumber","homePhoneNumber","prefixId","emailUnlisted","mobilePhoneUnlisted","doNotText","bulkEmailOptOut","removeFromDirectory","IMAGE_URL_SRC","IMAGE_URL_LABEL","changePhotoLabel","addPhotoLabel","today","toISOString","isAddMemberOperation","householdMemberSubheader","uploadPhotoWarningMessage","personalLabel","prefixLabel","firstNameLabel","nicknameLabel","lastNameLabel","middleNameLabel","suffixLabel","genderLabel","dateOfBirthLabel","maritalStatusLabel","emailLabel","mobilePhoneLabel","workPhoneLabel","householdPositionLabel","communicationPreferencesLabel","hideFromOnlineDirectoryLabel","emailUnlistedLabel","mobilePhoneUnlistedLabel","doNotTextLabel","bulkEmailOptOutLabel","BindImageUrlUploader","CommunicationPreferencesHandler","PopulateHouseholdMemberSelectOptions","_this8","_$imageUrl","_$householdImagePreview","_$fileTooLarge","_$imageUrlLabel","files","reader","FileReader","onload","readAsDataURL","alternativeCountryCode","_this9","_$addressCountry","_$alternativeAddressCountry","_$congregationId","GetCountries","_localCountryCode","BuildCountryDropdown","GetCountryCodeOrDefaultLocal","StatusCode","GetCongregations","LoadDropdown","countyList","gender","maritalStatus","householdPosition","suffix","_this10","_$genderId","_$maritalStatusId","_$householdPositionId","_$prefixId","_$suffixId","GetGenders","GetMaritalStatuses","GetHouseholdPositions","GetPrefixes","GetSuffixes","registerComponent"],"sourceRoot":""}