

La tua guida al Mixing
]*>/gi, ‘ ‘) .replace(blockWrapperRegex, ”) : program.requiredTemplate.replace(divRegex, ”); legalTextElement.textContent = ”; const parts = template.split(/(.*?)/g); parts.forEach(function(part) { if (!part) { return; } const anchorMatch = part.match(/(.*?)/); if (anchorMatch) { const linkElement = document.createElement(‘a’); linkElement.href = sanitizeUrl(anchorMatch[1]); linkElement.target = sanitizeHtml(anchorMatch[2]); linkElement.textContent = sanitizeHtml(anchorMatch[3]); legalTextElement.appendChild(linkElement); } else { legalTextElement.appendChild(document.createTextNode(part)); } }); } function generateDropdownOptions(smsProgramData) { if (!smsProgramData || smsProgramData.length === 0) { return ”; } var programs = false ? smsProgramData.filter(function(p, i, arr) { return arr.findIndex(function(q) { return q.countryCode === p.countryCode; }) === i; }) : smsProgramData; return programs.map(program => { const flag = getCountryUnicodeFlag(program.countryCode); const countryName = getCountryName(program.countryCode); const callingCode = program.countryCallingCode || ”; // Sanitize all values to prevent XSS const sanitizedCountryCode = sanitizeHtml(program.countryCode || ”); const sanitizedCountryName = sanitizeHtml(countryName || ”); const sanitizedCallingCode = sanitizeHtml(callingCode || ”); return ” + sanitizedCountryName + ‘ ‘ + sanitizedCallingCode + ”’; }).join(”); } function getCountryName(countryCode) { if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) { for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) { if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) { return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name; } } } return countryCode; } function getDefaultPlaceholder(countryCode) { if (!countryCode || typeof countryCode !== 'string') { return '+1 000 000 0000'; // Default US placeholder } var mockPlaceholders = [ { countryCode: 'US', placeholder: '+1 000 000 0000', helpText: 'Includere il prefisso internazionale US +1 prima del numero di telefono', }, { countryCode: 'GB', placeholder: '+44 0000 000000', helpText: 'Includere il prefisso internazionale GB +44 prima del numero di telefono', }, { countryCode: 'CA', placeholder: '+1 000 000 0000', helpText: 'Includere il prefisso internazionale CA +1 prima del numero di telefono', }, { countryCode: 'AU', placeholder: '+61 000 000 000', helpText: 'Includere il prefisso internazionale AU +61 prima del numero di telefono', }, { countryCode: 'DE', placeholder: '+49 000 0000000', helpText: 'Includere il prefisso internazionale DE +49 prima del numero di telefono', }, { countryCode: 'FR', placeholder: '+33 0 00 00 00 00', helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone', }, { countryCode: 'ES', placeholder: '+34 000 000 000', helpText: 'Incluya el código de país ES +34 antes del número de teléfono', }, { countryCode: 'NL', placeholder: '+31 0 00000000', helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer', }, { countryCode: 'BE', placeholder: '+32 000 00 00 00', helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone', }, { countryCode: 'CH', placeholder: '+41 00 000 00 00', helpText: 'Includere il prefisso internazionale CH +41 prima del numero di telefono', }, { countryCode: 'AT', placeholder: '+43 000 000 0000', helpText: 'Includere il prefisso internazionale AT +43 prima del numero di telefono', }, { countryCode: 'IE', placeholder: '+353 00 000 0000', helpText: 'Includere il prefisso internazionale IE +353 prima del numero di telefono', }, { countryCode: 'IT', placeholder: '+39 000 000 0000', helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono', }, ]; const selectedPlaceholder = mockPlaceholders.find(function(item) { return item && item.countryCode === countryCode; }); return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder; } function updatePlaceholder(countryCode, fieldName) { if (!countryCode || !fieldName) { return; } const phoneInput = document.querySelector('#mce-' + fieldName); if (!phoneInput) { return; } const placeholder = getDefaultPlaceholder(countryCode); if (placeholder) { phoneInput.placeholder = placeholder; } } function updateCountryCodeInstruction(countryCode, fieldName) { updatePlaceholder(countryCode, fieldName); } function getDefaultHelpText(countryCode) { var mockPlaceholders = [ { countryCode: 'US', placeholder: '+1 000 000 0000', helpText: 'Includere il prefisso internazionale US +1 prima del numero di telefono', }, { countryCode: 'GB', placeholder: '+44 0000 000000', helpText: 'Includere il prefisso internazionale GB +44 prima del numero di telefono', }, { countryCode: 'CA', placeholder: '+1 000 000 0000', helpText: 'Includere il prefisso internazionale CA +1 prima del numero di telefono', }, { countryCode: 'AU', placeholder: '+61 000 000 000', helpText: 'Includere il prefisso internazionale AU +61 prima del numero di telefono', }, { countryCode: 'DE', placeholder: '+49 000 0000000', helpText: 'Includere il prefisso internazionale DE +49 prima del numero di telefono', }, { countryCode: 'FR', placeholder: '+33 0 00 00 00 00', helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone', }, { countryCode: 'ES', placeholder: '+34 000 000 000', helpText: 'Incluya el código de país ES +34 antes del número de teléfono', }, { countryCode: 'NL', placeholder: '+31 0 00000000', helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer', }, { yCode: 'CH', placeholder: '+41 00 000 00 00', helpText: 'Inserire il prefisso internazionale CH +41 prima del numero di telefono', }, { countryCode: 'AT', placeholder: '+43 000 000 0000', helpText: 'Inserire il prefisso internazionale AT +43 prima del numero di telefono', }, { countryCode: 'IE', placeholder: '+353 00 000 0000', helpText: 'Inserire il prefisso internazionale IE +353 prima del numero di telefono', }, { countryCode: 'IT', placeholder: '+39 000 000 0000', helpText: 'Inserire il prefisso internazionale IT +39 prima del numero di telefono', }, ]; if (!countryCode || typeof countryCode !== 'string') { return mockPlaceholders[0].helpText; } const selectedHelpText = mockPlaceholders.find(function(item) { return item && item.countryCode === countryCode; }); return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText; } function setDefaultHelpText(countryCode) { const helpTextSpan = document.querySelector('#help-text'); if (!helpTextSpan) { return; } } function updateHelpTextCountryCode(countryCode, fieldName) { if (!countryCode || !fieldName) { return; } setDefaultHelpText(countryCode); } function initializeSmsPhoneDropdown(fieldName) { if (!fieldName || typeof fieldName !== 'string') { return; } const dropdown = document.querySelector('#country-select-' + fieldName); const displayFlag = document.querySelector('#flag-display-' + fieldName); if (!dropdown || !displayFlag) { return; } const smsPhoneData = window.MC?.smsPhoneData; if (smsPhoneData && smsPhoneData.programs && Array.isArray(smsPhoneData.programs)) { dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs); } const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs); if (defaultProgram && defaultProgram.countryCode) { dropdown.value = defaultProgram.countryCode; const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName); if (flagSpan) { flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode); flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag'); } updateSmsLegalText(defaultProgram.countryCode, fieldName); updatePlaceholder(defaultProgram.countryCode, fieldName); updateCountryCodeInstruction(defaultProgram.countryCode, fieldName); } var smsNotRequiredRemoveCountryCodeEnabled = true; var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Indirizzo e-mail","helper_text":"","type":"email","required":true,"audience_field_name":"Indirizzo e-mail","merge_id":0,"help_text_enabled":false,"enabled":true,"order":0,"field_type":"merge"},"FNAME":{"name":"FNAME","label":"Nome","helper_text":"","type":"text","required":false,"audience_field_name":"Nome","enabled":true,"order":1,"field_type":"merge","merge_id":1},"LNAME":{"name":"LNAME","label":"Cognome","helper_text":"","type":"text","required":false,"audience_field_name":"Cognome","enabled":true,"order":2,"field_type":"merge","merge_id":2},"ADDRESS":{"name":"ADDRESS","label":"Indirizzo","helper_text":"","type":"address","required":false,"audience_field_name":"Indirizzo","enabled":false,"order":null,"field_type":"merge","merge_id":3,"countries":{"2":"Albania","3":"Algeria","4":"Andorra","5":"Angola","6":"Argentina","7":"Armenia","8":"Australia","9":"Austria","10":"Azerbaijan","11":"Bahamas","12":"Bahrain","13":"Bangladesh","14":"Barbados","15":"Bielorussia","16":"Belgio","17":"Belize","18":"Benin","19":"Bermuda","20":"Bhutan","21":"Bolivia","22":"Bosnia ed Erzegovina","23":"Botswana","24":"Brasile","25":"Bulgaria","26":"Burkina Faso","27":"Burundi","28":"Cambogia","29":"Camerun","30":"Canada","31":"Capo Verde","32":"Isole Cayman","33":"Repubblica Centrafricana","34":"Ciad","35":"Cile","36":"Cina","37":"Colombia","38":"Congo","40":"Croazia","41":"Cipro","42":"Repubblica Ceca","43":"Danimarca","44":"Gibuti","45":"Ecuador","46":"Egitto","47":"El Salvador","48":"Guinea Equatoriale","49":"Eritrea","50":"Estonia","51":"Etiopia","52":"Figi","53":"Finlandia","54":"Francia","56":"Gabon","57":"Gambia","58":"Georgia","59":"Germania","60":"Ghana","61":"Grecia","62":"Guam","63":"Guinea","64":"Guinea-Bissau","65":"Guyana","66":"Honduras","67":"Hong Kong","68":"Ungheria","69":"Islanda","70":"India","71":"Indonesia","74":"Irlanda","75":"Israele","76":"Italia","78":"Giappone","79":"Giordania","80":"Kazakistan","81":"Kenya","82":"Kuwait","83":"Kirghizistan","84":"Repubblica Democratica Popolare del Laos","85":"Lettonia","86":"Libano","87":"Lesotho","88":"Liberia","90":"Liechtenstein","91":"Lituania","92":"Lussemburgo","93":"Macedonia del Nord","94":"Madagascar","95":"Malawi","96":"Malesia","97":"Maldive","98":"Mali","99":"Malta","100":"Mauritania","101":"Messico","102":"Moldavia","103":"Monaco","104":"Mongolia","105":"Marocco","106":"Mozambico","107":"Namibia","108":"Nepal","109":"Paesi Bassi","110":"Antille Olandesi","111":"Nuova Zelanda","112":"Nicaragua","113":"Niger","114":"Nigeria","116":"Norvegia","117":"Oman","118":"Pakistan","119":"Panama","120":"Paraguay",ArrayneInput.value = defaultProgram.countryCallingCode; } displayFlag?.addEventListener('click', function(e) { dropdown.focus(); }); dropdown?.addEventListener('change', function() { const selectedCountry = this.value; if (!selectedCountry || typeof selectedCountry !== 'string') { return; } const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName); if (flagSpan) { flagSpan.textContent = getCountryUnicodeFlag(selectedCountry); flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag'); } const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) { return program && program.countryCode === selectedCountry; }); var smsNotRequiredRemoveCountryCodeEnabled = true; var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Indirizzo e-mail","helper_text":"","type":"email","required":true,"audience_field_name":"Indirizzo e-mail","merge_id":0,"help_text_enabled":false,"enabled":true,"order":0,"field_type":"merge"},"FNAME":{"name":"FNAME","label":"Nome","helper_text":"","type":"text","required":false,"audience_field_name":"Nome","enabled":true,"order":1,"field_type":"merge","merge_id":1},"LNAME":{"name":"LNAME","label":"Cognome","helper_text":"","type":"text","required":false,"audience_field_name":"Cognome","enabled":true,"order":2,"field_type":"merge","merge_id":2},"ADDRESS":{"name":"ADDRESS","label":"Indirizzo","helper_text":"","type":"address","required":false,"audience_field_name":"Indirizzo","enabled":false,"order":null,"field_type":"merge","merge_id":3,"countries":{"2":"Albania","3":"Algeria","4":"Andorra","5":"Angola","6":"Argentina","7":"Armenia","8":"Australia","9":"Austria","10":"Azerbaigian","11":"Bahamas","12":"Bahrein","13":"Bangladesh","14":"Barbados","15":"Bielorussia","16":"Belgio","17":"Belize","18":"Benin","19":"Bermuda","20":"Bhutan","21":"Bolivia","22":"Bosnia ed Erzegovina","23":"Botswana","24":"Brasile","25":"Bulgaria","26":"Burkina Faso","27":"Burundi","28":"Cambogia","29":"Camerun","30":"Canada","31":"Capo Verde","32":"Isole Cayman","33":"Repubblica Centrafricana","34":"Ciad","35":"Cile","36":"Cina","37":"Colombia","38":"Congo","40":"Croazia","41":"Cipro","42":"Repubblica Ceca","43":"Danimarca","44":"Gibuti","45":"Ecuador","46":"Egitto","47":"El Salvador","48":"Guinea Equatoriale","49":"Eritrea","50":"Estonia","51":"Etiopia","52":"Figi","53":"Finlandia","54":"Francia","56":"Gabon","57":"Gambia","58":"Georgia","59":"Germania","60":"Ghana","61":"Grecia","62":"Guam","63":"Guinea","64":"Guinea-Bissau","65":"Guyana","66":"Honduras","67":"Hong Kong","68":"Ungheria","69":"Islanda","70":"India","71":"Indonesia","74":"Irlanda","75":"Israele","76":"Italia","78":"Giappone","79":"Giordania","80":"Kazakistan","81":"Kenya","82":"Kuwait","83":"Kirghizistan","84":"Repubblica Democratica Popolare del Laos","85":"Lettonia","86":"Libano","87":"Lesotho","88":"Liberia","90":"Liechtenstein","91":"Lituania","92":"Lussemburgo","93":"Macedonia del Nord","94":"Madagascar","95":"Malawi","96":"Malesia","97":"Maldive","98":"Mali","99":"Malta","100":"Mauritania","101":"Messico","102":"Moldavia","103":"Monaco","104":"Mongolia","105":"Marocco","106":"Mozambico","107":"Namibia","108":"Nepal","109":"Paesi Bassi","110":"Antille Olandesi","111":"Nuova Zelanda","112":"Nicaragua","113":"Niger","114":"Nigeria","116":"Norvegia","117":"Oman","118":"Pakistan","119":"Panama","120":"Paraguay","121":"Perù","122":"Filippine","123":"Polonia","124":"Portogallo","126":"Qatar","127":"Riunione","128":"Romania","129":"Russia","130":"Ruanda","132":"Samoa","133":"Arabia Saudita","134":"Senegal","135":"Seychelles","136":"Sierra Leone","137":"Singapore","138":"Slovacchia","139":"Slovenia","140":"Somalia","141":"Sudafrica","142":"Corea del Sud","143":"Spagna","144":"Sri Lanka","146":"Suriname","147":"Swaziland","148":"Svezia","149":"Svizzera","152":"Taiwan","153":"Tanzania","154":"Thailandia","155":"Togo","156":"Tunisia","157":"Turchia","158":"Turkmenistan","159":"Uganda","161":"Ucraina","162":"Emirati Arabi Uniti","163":"Uruguay","164":"USA","165":"Uzbekistan","166":"Città del Vaticano","167":"Venezuela","168":"Vietnam","169":"Isole Vergini Britanniche","170":"Yemen","173":"Zambia","174":"Zimbabwe","175":"Antigua e Barbuda","176":"Anguilla","178":"Samoa Americane","179":"Aruba","180":"Brunei","181":"Isola Bouvet","183":"Isole Cook","185":"Isola di Natale","187":"Repubblica Dominicana","188":"Sahara Occidentale","189":"Isole Falkland","191":"Isole Faroe","192":"Grenada","193":"Guyana Francese","194":"Gibilterra","195":"Groenlandia","196":"Guadalupa","198":"Guatemala","200":"Haiti","202":"Giamaica","203":"Kiribati","204":"Comore","205":"Saint Kitts e Nevis","206":"Saint Lucia","207":"Isole Marshall","208":"Macao","210":"Martinica","212":"Mauritius","213":"Nuova Caledonia","214":"Isola Norfolk","215":"Nauru","217":"Niue","219":"Papua Nuova Guinea","221":"Isole Pitcairn","222":"Palau","223":"Isole Salomone","225":"Isole Svalbard e Jan Mayen","227":"San Marino","232":"Tonga","233":"Timor Est","234":"Trinidad e Tobago","235":"Tuvalu","237":"Saint Vincent e Grenadine","238":"Isole Vergini Americane","239":"Vanuatu","241":"Mayotte","242":"Myanmar","255":"São Tomé e Príncipe","257":"Georgia del Sud e Isole Sandwich Meridionali","260":"Tagikistan","262":"Regno Unito","268":"Costa Rica","270":"Gue"}}rnsey","272":"Corea del Nord","274":"Afghanistan","275":"Costa d'Avorio","276":"Cuba","277":"Polinesia Francese","278":"Iran","279":"Iraq","281":"Libia","282":"Palestina","285":"Siria","286":"Isole Åland","287":"Isole Turks e Caicos","288":"Jersey (Isole del Canale)","289":"Dominica","290":"Montenegro","293":"Sudan","294":"Montserrat","298":"Curaçao","302":"Sint Maarten","311":"Sudan del Sud","315":"Repubblica del Kosovo","318":"Repubblica Democratica del Congo","323":"Isola di Man","324":"Saint Martin","325":"Bonaire, Sint Eustatius e Saba","326":"Serbia","327":"Saint-Barthélemy"},"defaultcountry":164},"PHONE":{"name":"PHONE","label":"Numero di telefono","helper_text":"","type":"phone","required":false,"audience_field_name":"Numero di telefono","phoneformat":"","enabled":false,"order":null,"field_type":"merge","merge_id":4},"BIRTHDAY":{"name":"BIRTHDAY","label":"Data di nascita","helper_text":"","type":"birthday","required":false,"audience_field_name":"Data di nascita","dateformat":"MM/DD","enabled":false,"order":null,"field_type":"merge","merge_id":5},"COMPANY":{"name":"COMPANY","label":"Azienda","helper_text":"","type":"text","required":false,"audience_field_name":"Azienda","enabled":false,"order":null,"field_type":"merge","merge_id":6},"MMERGE7":{"name":"MMERGE7","label":"Data di creazione","helper_text":"","type":"date","required":false,"audience_field_name":"Data di creazione","dateformat":"MM/DD/YYYY","enabled":false,"order":null,"field_type":"merge","merge_id":7},"MMERGE8":{"name":"MMERGE8","label":"ID record","helper_text":"","type":"number","required":false,"audience_field_name":"ID record","enabled":false,"order":null,"field_type":"merge","merge_id":8},"MMERGE9":{"name":"MMERGE9","label":"Addetto aziendale responsabile","helper_text":"","type":"text","required":false,"audience_field_name":"Addetto aziendale responsabile","enabled":false,"order":null,"field_type":"merge","merge_id":9},"MMERGE10":{"name":"MMERGE10","label":"Città","helper_text":"","type":"text","required":false,"audience_field_name":"Città","enabled":false,"order":null,"field_type":"merge","merge_id":10},"MMERGE11":{"name":"MMERGE11","label":"Paese/Regione","helper_text":"","type":"text","required":false,"audience_field_name":"Paese/Regione","enabled":false,"order":null,"field_type":"merge","merge_id":11},"MMERGE12":{"name":"MMERGE12","label":"Settore","helper_text":"","type="text","required":false,"audience_field_name":"Settore","enabled":false,"order":null,"field_type":"merge","merge_id":12},"MMERGE13":{"name":"MMERGE13","label":"Espositore","helper_text":"","type":"number","required":false,"audience_field_name":"Espositore","enabled":false,"order":null,"field_type":"merge","merge_id":13},"MMERGE14":{"name":"MMERGE14","label":"Visitatori","helper_text":"","type":"number","required":false,"audience_field_name":"Visitatori","enabled":false,"order":null,"field_type":"merge","merge_id":14},"MMERGE15":{"name":"MMERGE15","label":"Contatto per catering","helper_text":"","type":"text","required":false,"audience_field_name":"Contatto per catering","enabled":false,"order":null,"field_type":"merge","merge_id":15}}).find(function(f) { return f.name === fieldName && f.type === 'smsphone'; }); var isRequired = smsField ? smsField.required : false; var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true; var phoneInput = document.querySelector('#mce-' + fieldName); if (phoneInput && selectedProgram.countryCallingCode && shouldAppendCountryCode) { phoneInput.value = selectedProgram.countryCallingCode; } updateSmsLegalText(selectedCountry, fieldName); updatePlaceholder(selectedCountry, fieldName); updateCountryCodeInstruction(selectedCountry, fieldName); }); } document.addEventListener('DOMContentLoaded', function() { const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]'); smsPhoneFields.forEach(function(dropdown) { const fieldName = dropdown?.id.replace('country-select-', ''); initializeSmsPhoneDropdown(fieldName); }); });
