{"version":3,"sources":["EngageSports.Common/DataTypes/JavaScript/InitializeIntlTelInputControls.js"],"names":["$","engageCore","intlTelInputProperties","validInputRegex","characterReplaceRegex","validateIntlTelInput","source","args","$source","$formItem","parents","$phone","find","$dialCodes","length","intlTelInput","val","iso2","text","intlTelInputMessages","invalidCountryMessage","IsValid","errorCode","message","tooShortMessage","tooLongMessage","notANumberMessage","errorMessage","getErrorMessage","initializeIntlTelInputControls","each","_","propertyData","concat","phoneClientId","$validator","siblings","countryDataClientId","$wrapper","selectedDialCode","countryData","fn","getCountryData","initialCountryMatches","grep","data","toLowerCase","initialCountry","removeClass","on","e","type","originalEvent","clipboardData","getData","test","replace","nationalMode","separateDialCode","preferredCountries","utilsScript","version","eventData","_ref","window","ValidatorValidate","css","hide","jQuery"],"mappings":"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","file":"EngageSports.Common\\DataTypes\\JavaScript\\InitializeIntlTelInputControls.min.js","sourcesContent":["/* global jQuery */\r\nvoid (function initializeIntlTelInputControls($, engageCore) {\r\n\t'use strict';\r\n\r\n\tengageCore.intlTelInputProperties = engageCore.intlTelInputProperties || [];\r\n\r\n\tconst validInputRegex =\r\n\t\t/^(?:(?:\\(?(?:00)([1-4]\\d\\d|[1-9]\\d?)\\)?)?[-. \\\\/]?)?((?:\\(?\\d{1,}\\)?[-. \\\\/]?){0,})(?:[-. \\\\/]?x[-. \\\\/]?(\\d+))?$/g;\r\n\tconst characterReplaceRegex = /(?:[^\\dx.()\\s-]+)/g;\r\n\r\n\t/**\r\n\t * @param {number} errorCode The error code\r\n\t * @returns {string} The error message\r\n\t */\r\n\tfunction getErrorMessage(errorCode) {\r\n\t\tconst INVALID_COUNTRY_CODE = 1;\r\n\t\tconst TOO_SHORT = 2;\r\n\t\tconst TOO_LONG = 3;\r\n\t\tconst NOT_A_NUMBER = 4;\r\n\r\n\t\tif (errorCode === INVALID_COUNTRY_CODE) {\r\n\t\t\treturn (\r\n\t\t\t\t(engageCore.intlTelInputMessages &&\r\n\t\t\t\t\tengageCore.intlTelInputMessages.invalidCountryMessage) ||\r\n\t\t\t\t'You have not selected a country code for your phone number, or the code is not valid. Please select the appropriate country code from the drop down to continue.'\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (errorCode === TOO_SHORT) {\r\n\t\t\treturn (\r\n\t\t\t\t(engageCore.intlTelInputMessages &&\r\n\t\t\t\t\tengageCore.intlTelInputMessages.tooShortMessage) ||\r\n\t\t\t\t'The phone number provided is too short.'\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (errorCode === TOO_LONG) {\r\n\t\t\treturn (\r\n\t\t\t\t(engageCore.intlTelInputMessages &&\r\n\t\t\t\t\tengageCore.intlTelInputMessages.tooLongMessage) ||\r\n\t\t\t\t'The phone number provided is too long.'\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (errorCode === NOT_A_NUMBER) {\r\n\t\t\treturn (\r\n\t\t\t\t(engageCore.intlTelInputMessages &&\r\n\t\t\t\t\tengageCore.intlTelInputMessages.notANumberMessage) ||\r\n\t\t\t\t'The phone number provided is not a valid phone number.'\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t(engageCore.intlTelInputMessages &&\r\n\t\t\t\tengageCore.intlTelInputMessages.errorMessage) ||\r\n\t\t\t'The phone number provided is not a valid phone number.'\r\n\t\t);\r\n\t}\r\n\r\n\tengageCore.validateIntlTelInput = function validateIntlTelInput(\r\n\t\tsource,\r\n\t\targs\r\n\t) {\r\n\t\tconst $source = $(source);\r\n\t\tconst $formItem = $source.parents('.dnnFormItem');\r\n\t\tconst $phone = $formItem.find('.engagecore-intltelinput');\r\n\t\tconst $dialCodes = $formItem.find('.engagecore-dialcodes');\r\n\r\n\t\tif (\r\n\t\t\t$phone.length &&\r\n\t\t\t$dialCodes.length &&\r\n\t\t\t$phone.intlTelInput('getSelectedCountryData')\r\n\t\t) {\r\n\t\t\t$dialCodes.val($phone.intlTelInput('getSelectedCountryData').iso2);\r\n\t\t}\r\n\r\n\t\tif (\r\n\t\t\t!$phone.length ||\r\n\t\t\t!$dialCodes.length ||\r\n\t\t\t$dialCodes.val() === 'auto'\r\n\t\t) {\r\n\t\t\t$source.text(\r\n\t\t\t\t(engageCore.intlTelInputMessages &&\r\n\t\t\t\t\tengageCore.intlTelInputMessages.invalidCountryMessage) ||\r\n\t\t\t\t\t'You have not selected a country code for your phone number, or the code is not valid. Please select the appropriate country code from the drop down to continue.'\r\n\t\t\t);\r\n\t\t\targs.IsValid = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ($phone.intlTelInput('isValidNumber')) {\r\n\t\t\targs.IsValid = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst errorCode = $phone.intlTelInput('getValidationError');\r\n\t\tconst IS_POSSIBLE = 0;\r\n\t\tif (errorCode === IS_POSSIBLE) {\r\n\t\t\t// If the number is a possible number we want to return valid.\r\n\t\t\targs.IsValid = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst message = getErrorMessage(errorCode);\r\n\t\t$source.text(message);\r\n\t\targs.IsValid = false;\r\n\t};\r\n\r\n\tengageCore.initializeIntlTelInputControls = () => {\r\n\t\t$.each(engageCore.intlTelInputProperties, (_, propertyData) => {\r\n\t\t\tconst $phone = $(`#${propertyData.phoneClientId}`);\r\n\t\t\tconst $validator = $phone.siblings(\r\n\t\t\t\t'span.dnnFormMessage.dnnFormError'\r\n\t\t\t);\r\n\t\t\tconst $dialCodes = $(`#${propertyData.countryDataClientId}`);\r\n\t\t\tconst $wrapper = $phone.parents('.intl-tel-input__property');\r\n\t\t\tconst selectedDialCode = $dialCodes.val();\r\n\t\t\tconst countryData = $.fn.intlTelInput.getCountryData();\r\n\t\t\tconst initialCountryMatches = selectedDialCode\r\n\t\t\t\t? $.grep(\r\n\t\t\t\t\t\tcountryData,\r\n\t\t\t\t\t\t(data) =>\r\n\t\t\t\t\t\t\tdata.iso2.toLowerCase() ===\r\n\t\t\t\t\t\t\tselectedDialCode.toLowerCase()\r\n\t\t\t\t\t)\r\n\t\t\t\t: [];\r\n\t\t\tconst initialCountry =\r\n\t\t\t\tinitialCountryMatches && initialCountryMatches.length === 1\r\n\t\t\t\t\t? initialCountryMatches[0].iso2\r\n\t\t\t\t\t: 'auto';\r\n\r\n\t\t\t$wrapper.removeClass('no-js');\r\n\r\n\t\t\t$phone.on('paste propertychange', (e) => {\r\n\t\t\t\tlet val = $phone.val();\r\n\t\t\t\tif (\r\n\t\t\t\t\te.type === 'paste' &&\r\n\t\t\t\t\te.originalEvent.clipboardData.getData('text')\r\n\t\t\t\t) {\r\n\t\t\t\t\tval = e.originalEvent.clipboardData.getData('text');\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn validInputRegex.test(val);\r\n\t\t\t});\r\n\r\n\t\t\t$phone.on('input', () =>\r\n\t\t\t\t$phone.val($phone.val().replace(characterReplaceRegex, ''))\r\n\t\t\t);\r\n\r\n\t\t\t$phone.intlTelInput({\r\n\t\t\t\tnationalMode: false,\r\n\t\t\t\tseparateDialCode: true,\r\n\t\t\t\tinitialCountry,\r\n\t\t\t\tpreferredCountries: propertyData.preferredCountries || [],\r\n\t\t\t\tutilsScript: `/Resources/libraries/intl-tel-input/${propertyData.version}/js/utils.js`,\r\n\t\t\t});\r\n\r\n\t\t\t$phone.on('countrychange', (eventData, { iso2 }) => {\r\n\t\t\t\t$phone.val('');\r\n\t\t\t\t$dialCodes.val(iso2);\r\n\r\n\t\t\t\tif ($validator.length && window.ValidatorValidate) {\r\n\t\t\t\t\twindow.ValidatorValidate($validator[0]); // eslint-disable-line new-cap\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$validator.css('visibility', 'hidden');\r\n\t\t\t\t$validator.text('');\r\n\t\t\t\t$phone.removeClass('validate-success');\r\n\t\t\t\t$phone.removeClass('validate-fail');\r\n\t\t\t});\r\n\r\n\t\t\t$dialCodes.hide();\r\n\t\t});\r\n\t};\r\n\r\n\t$(() => engageCore.initializeIntlTelInputControls());\r\n})(jQuery, (window.engageCore = window.engageCore || {}));\r\n"]}