<% if (Object.keys(item.css_variables || {}).length > 0) { %>
<% } %>
<% } %>
<% if (item.type == 'date-format') { %>
<%# Block Type: date-format %>
<%
var dateFormat = item.date_format || 'DD-MM-YYYY';
var dateOrder = [];
if (dateFormat.toUpperCase().indexOf('DD') < dateFormat.toUpperCase().indexOf('MM') &&
dateFormat.toUpperCase().indexOf('MM') < dateFormat.toUpperCase().indexOf('YYYY')) {
dateOrder = ['day', 'month', 'year']; // DD-MM-YYYY
} else if (dateFormat.toUpperCase().indexOf('MM') < dateFormat.toUpperCase().indexOf('DD') &&
dateFormat.toUpperCase().indexOf('DD') < dateFormat.toUpperCase().indexOf('YYYY')) {
dateOrder = ['month', 'day', 'year']; // MM-DD-YYYY
} else {
dateOrder = ['day', 'month', 'year']; // default
}
// Parse item.value if provided
var defaultDay = null;
var defaultMonth = null;
var defaultYear = null;
if (item.value) {
// Try to parse the value as a date
var parsedDate = null;
// Try different separators and formats
var separators = ['-', '.', '/', ' '];
var parts = null;
for (var i = 0; i < separators.length; i++) {
if (item.value.indexOf(separators[i]) > -1) {
parts = item.value.split(separators[i]);
break;
}
}
if (parts && parts.length === 3) {
var p1 = parseInt(parts[0]);
var p2 = parseInt(parts[1]);
var p3 = parseInt(parts[2]);
if (!isNaN(p1) && !isNaN(p2) && !isNaN(p3)) {
// Determine format based on values and current format
if (p3 > 31 || p3.toString().length === 4) {
// Year is last
if (p1 > 12) {
defaultYear = p3; defaultMonth = p2; defaultDay = p1; // DD-MM-YYYY
} else if (p2 > 12) {
defaultYear = p3; defaultMonth = p1; defaultDay = p2; // MM-DD-YYYY
} else {
// Use current format preference
if (dateFormat === 'MM-DD-YYYY') {
defaultYear = p3; defaultMonth = p1; defaultDay = p2;
} else {
defaultYear = p3; defaultMonth = p2; defaultDay = p1; // default DD-MM-YYYY
}
}
} else {
// All values are ambiguous (≤31), use current format
if (dateFormat === 'MM-DD-YYYY') {
defaultYear = p3; defaultMonth = p1; defaultDay = p2;
} else {
defaultYear = p3; defaultMonth = p2; defaultDay = p1; // default DD-MM-YYYY
}
}
}
}
// If parsing failed, try as ISO date
if (defaultDay === null) {
var isoDate = new Date(item.value);
if (!isNaN(isoDate.getTime())) {
defaultDay = isoDate.getDate();
defaultMonth = isoDate.getMonth() + 1;
defaultYear = isoDate.getFullYear();
}
}
}
// If no value provided or parsing failed, don't set any default date
// Leave defaultDay, defaultMonth, defaultYear as null
var minDate = null;
var maxDate = null;
var minYear = null;
var maxYear = null;
if (item.min_date) {
var minParts = item.min_date.split('-');
if (minParts.length === 3) {
var minDay = parseInt(minParts[0]);
var minMonth = parseInt(minParts[1]);
var minYearParsed = parseInt(minParts[2]);
minDate = new Date(minYearParsed, minMonth - 1, minDay);
minYear = minYearParsed;
}
}
if (item.max_date) {
var maxParts = item.max_date.split('-');
if (maxParts.length === 3) {
var maxDay = parseInt(maxParts[0]);
var maxMonth = parseInt(maxParts[1]);
var maxYearParsed = parseInt(maxParts[2]);
maxDate = new Date(maxYearParsed, maxMonth - 1, maxDay);
maxYear = maxYearParsed;
}
}
// If no min/max specified, use defaults (100 years ago to 1 year ahead)
if (!minYear) {
var currentDate = new Date();
minYear = currentDate.getFullYear() - 100;
}
if (!maxYear) {
var currentDate = new Date();
maxYear = currentDate.getFullYear() + 1;
}
%>
= 0) ? 'data-show-on-answer="' + item.show_on_answer + '"' : '' %> data-block-area-index="<%- contentItemIndex %>">
>
<%// The content rendered below is expected to be one or more .type-columns__item elements %>
<%- TemplateManager.renderTemplate('screen-content', {screen: item}) %>
<%
// Create a temporary screen object with just this nested item for rendering
let tempScreen = { content: [nestedItem] };
%>
<%- TemplateManager.renderTemplate('screen-content', {
screen: tempScreen,
overrideContentItemIndex: contentItemIndex + "." + nestedIndex
}) %>
<% }) %>
<% } %>
<% if (Object.keys(item.css_variables || {}).length > 0) { %>
<% } %>
<% } %>
<% if (item.type == 'country') { %>
<%# Block Type: country %>
<%# Select autocomplete field template with unified structure %>
= 0) ? 'data-show-on-answer="' + item.show_on_answer + '"' : '' %> data-block-area-index="<%- contentItemIndex %>">
<%
let countriesList = [{"code":"AF","name":"Afghanistan","flag":"🇦🇫"},{"code":"AL","name":"Albania","flag":"🇦🇱"},{"code":"DZ","name":"Algeria","flag":"🇩🇿"},{"code":"AS","name":"American Samoa","flag":"🇦🇸"},{"code":"AD","name":"Andorra","flag":"🇦🇩"},{"code":"AO","name":"Angola","flag":"🇦🇴"},{"code":"AI","name":"Anguilla","flag":"🇦🇮"},{"code":"AG","name":"Antigua and Barbuda","flag":"🇦🇬"},{"code":"AR","name":"Argentina","flag":"🇦🇷"},{"code":"AM","name":"Armenia","flag":"🇦🇲"},{"code":"AW","name":"Aruba","flag":"🇦🇼"},{"code":"AU","name":"Australia","flag":"🇦🇺"},{"code":"AT","name":"Austria","flag":"🇦🇹"},{"code":"AZ","name":"Azerbaijan","flag":"🇦🇿"},{"code":"BS","name":"Bahamas","flag":"🇧🇸"},{"code":"BH","name":"Bahrain","flag":"🇧🇭"},{"code":"BD","name":"Bangladesh","flag":"🇧🇩"},{"code":"BB","name":"Barbados","flag":"🇧🇧"},{"code":"BY","name":"Belarus","flag":"🇧🇾"},{"code":"BE","name":"Belgium","flag":"🇧🇪"},{"code":"BZ","name":"Belize","flag":"🇧🇿"},{"code":"BJ","name":"Benin","flag":"🇧🇯"},{"code":"BM","name":"Bermuda Islands","flag":"🇧🇲"},{"code":"BT","name":"Bhutan","flag":"🇧🇹"},{"code":"BO","name":"Bolivia","flag":"🇧🇴"},{"code":"BQ","name":"Bonaire, Sint Eustatius and Saba","flag":"🇧🇶"},{"code":"BA","name":"Bosnia and Herzegovina","flag":"🇧🇦"},{"code":"BW","name":"Botswana","flag":"🇧🇼"},{"code":"BR","name":"Brazil","flag":"🇧🇷"},{"code":"IO","name":"British Indian Ocean Territory","flag":"🇮🇴"},{"code":"VG","name":"British Virgin Islands","flag":"🇻🇬"},{"code":"BN","name":"Brunei","flag":"🇧🇳"},{"code":"BG","name":"Bulgaria","flag":"🇧🇬"},{"code":"BF","name":"Burkina Faso","flag":"🇧🇫"},{"code":"BI","name":"Burundi","flag":"🇧🇮"},{"code":"CV","name":"Cabo Verde","flag":"🇨🇻"},{"code":"KH","name":"Cambodia","flag":"🇰🇭"},{"code":"CM","name":"Cameroon","flag":"🇨🇲"},{"code":"CA","name":"Canada","flag":"🇨🇦"},{"code":"CF","name":"CAR","flag":"🇨🇫"},{"code":"KY","name":"Cayman Islands","flag":"🇰🇾"},{"code":"TD","name":"Chad","flag":"🇹🇩"},{"code":"CL","name":"Chile","flag":"🇨🇱"},{"code":"TW","name":"China","flag":"🇹🇼"},{"code":"CX","name":"Christmas Island","flag":"🇨🇽"},{"code":"CO","name":"Colombia","flag":"🇨🇴"},{"code":"KM","name":"Comoros","flag":"🇰🇲"},{"code":"CK","name":"Cook Islands","flag":"🇨🇰"},{"code":"CR","name":"Costa Rica","flag":"🇨🇷"},{"code":"CI","name":"Côte d'Ivoire","flag":"🇨🇮"},{"code":"HR","name":"Croatia","flag":"🇭🇷"},{"code":"CU","name":"Cuba","flag":"🇨🇺"},{"code":"CW","name":"Curaçao","flag":"🇨🇼"},{"code":"CY","name":"Cyprus","flag":"🇨🇾"},{"code":"CZ","name":"Czech Republic","flag":"🇨🇿"},{"code":"CD","name":"Democratic Republic of the Congo","flag":"🇨🇩"},{"code":"DK","name":"Denmark","flag":"🇩🇰"},{"code":"DJ","name":"Djibouti","flag":"🇩🇯"},{"code":"DM","name":"Dominica","flag":"🇩🇲"},{"code":"DO","name":"Dominican Republic","flag":"🇩🇴"},{"code":"KP","name":"DPRK","flag":"🇰🇵"},{"code":"TL","name":"East Timor","flag":"🇹🇱"},{"code":"EC","name":"Ecuador","flag":"🇪🇨"},{"code":"EG","name":"Egypt","flag":"🇪🇬"},{"code":"SV","name":"El Salvador","flag":"🇸🇻"},{"code":"GQ","name":"Equatorial Guinea","flag":"🇬🇶"},{"code":"ER","name":"Eritrea","flag":"🇪🇷"},{"code":"EE","name":"Estonia","flag":"🇪🇪"},{"code":"SZ","name":"Eswatini","flag":"🇸🇿"},{"code":"ET","name":"Ethiopia","flag":"🇪🇹"},{"code":"FK","name":"Falkland Islands","flag":"🇫🇰"},{"code":"FJ","name":"Fiji","flag":"🇫🇯"},{"code":"FI","name":"Finland","flag":"🇫🇮"},{"code":"FR","name":"France","flag":"🇫🇷"},{"code":"PF","name":"French Polynesia","flag":"🇵🇫"},{"code":"TF","name":"French Southern and Antarctic Lands","flag":"🇹🇫"},{"code":"GA","name":"Gabon","flag":"🇬🇦"},{"code":"GM","name":"Gambia","flag":"🇬🇲"},{"code":"GE","name":"Georgia","flag":"🇬🇪"},{"code":"DE","name":"Germany","flag":"🇩🇪"},{"code":"GH","name":"Ghana","flag":"🇬🇭"},{"code":"GI","name":"Gibraltar","flag":"🇬🇮"},{"code":"GR","name":"Greece","flag":"🇬🇷"},{"code":"GL","name":"Greenland","flag":"🇬🇱"},{"code":"GD","name":"Grenada","flag":"🇬🇩"},{"code":"GP","name":"Guadeloupe","flag":"🇬🇵"},{"code":"GU","name":"Guam","flag":"🇬🇺"},{"code":"GT","name":"Guatemala","flag":"🇬🇹"},{"code":"GG","name":"Guernsey","flag":"🇬🇬"},{"code":"GN","name":"Guinea","flag":"🇬🇳"},{"code":"GW","name":"Guinea-Bissau","flag":"🇬🇼"},{"code":"GF","name":"Guyana","flag":"🇬🇫"},{"code":"GY","name":"Guyana","flag":"🇬🇾"},{"code":"HT","name":"Haiti","flag":"🇭🇹"},{"code":"HN","name":"Honduras","flag":"🇭🇳"},{"code":"HK","name":"Hong Kong","flag":"🇭🇰"},{"code":"HU","name":"Hungary","flag":"🇭🇺"},{"code":"IS","name":"Iceland","flag":"🇮🇸"},{"code":"IN","name":"India","flag":"🇮🇳"},{"code":"ID","name":"Indonesia","flag":"🇮🇩"},{"code":"IR","name":"Iran","flag":"🇮🇷"},{"code":"IQ","name":"Iraq","flag":"🇮🇶"},{"code":"IE","name":"Ireland","flag":"🇮🇪"},{"code":"IL","name":"Israel","flag":"🇮🇱"},{"code":"IT","name":"Italy","flag":"🇮🇹"},{"code":"JM","name":"Jamaica","flag":"🇯🇲"},{"code":"JP","name":"Japan","flag":"🇯🇵"},{"code":"JE","name":"Jersey","flag":"🇯🇪"},{"code":"JO","name":"Jordan","flag":"🇯🇴"},{"code":"KZ","name":"Kazakhstan","flag":"🇰🇿"},{"code":"KE","name":"Kenya","flag":"🇰🇪"},{"code":"KI","name":"Kiribati","flag":"🇰🇮"},{"code":"KW","name":"Kuwait","flag":"🇰🇼"},{"code":"KG","name":"Kyrgyzstan","flag":"🇰🇬"},{"code":"LA","name":"Laos","flag":"🇱🇦"},{"code":"LV","name":"Latvia","flag":"🇱🇻"},{"code":"LB","name":"Lebanon","flag":"🇱🇧"},{"code":"LS","name":"Lesotho","flag":"🇱🇸"},{"code":"LR","name":"Liberia","flag":"🇱🇷"},{"code":"LY","name":"Libya","flag":"🇱🇾"},{"code":"LI","name":"Liechtenstein","flag":"🇱🇮"},{"code":"LT","name":"Lithuania","flag":"🇱🇹"},{"code":"LU","name":"Luxembourg","flag":"🇱🇺"},{"code":"MO","name":"Macau, Aomen","flag":"🇲🇴"},{"code":"MG","name":"Madagascar","flag":"🇲🇬"},{"code":"MW","name":"Malawi","flag":"🇲🇼"},{"code":"MY","name":"Malaysia","flag":"🇲🇾"},{"code":"MV","name":"Maldives","flag":"🇲🇻"},{"code":"ML","name":"Mali","flag":"🇲🇱"},{"code":"MT","name":"Malta","flag":"🇲🇹"},{"code":"MH","name":"Marshall Islands","flag":"🇲🇭"},{"code":"MQ","name":"Martinique","flag":"🇲🇶"},{"code":"MR","name":"Mauritania","flag":"🇲🇷"},{"code":"MU","name":"Mauritius","flag":"🇲🇺"},{"code":"YT","name":"Mayotte","flag":"🇾🇹"},{"code":"MX","name":"Mexico","flag":"🇲🇽"},{"code":"FM","name":"Micronesia","flag":"🇫🇲"},{"code":"MD","name":"Moldova","flag":"🇲🇩"},{"code":"MC","name":"Monaco","flag":"🇲🇨"},{"code":"MN","name":"Mongolia","flag":"🇲🇳"},{"code":"ME","name":"Montenegro","flag":"🇲🇪"},{"code":"MS","name":"Montserrat","flag":"🇲🇸"},{"code":"MA","name":"Morocco","flag":"🇲🇦"},{"code":"MZ","name":"Mozambique","flag":"🇲🇿"},{"code":"MM","name":"Myanmar","flag":"🇲🇲"},{"code":"NA","name":"Namibia","flag":"🇳🇦"},{"code":"NR","name":"Nauru","flag":"🇳🇷"},{"code":"NP","name":"Nepal","flag":"🇳🇵"},{"code":"NL","name":"Netherlands","flag":"🇳🇱"},{"code":"NC","name":"New Caledonia","flag":"🇳🇨"},{"code":"NZ","name":"New Zealand","flag":"🇳🇿"},{"code":"NI","name":"Nicaragua","flag":"🇳🇮"},{"code":"NE","name":"Niger","flag":"🇳🇪"},{"code":"NG","name":"Nigeria","flag":"🇳🇬"},{"code":"NU","name":"Niue","flag":"🇳🇺"},{"code":"NF","name":"Norfolk Island","flag":"🇳🇫"},{"code":"MK","name":"North Macedonia","flag":"🇲🇰"},{"code":"MP","name":"Northern Mariana Islands","flag":"🇲🇵"},{"code":"NO","name":"Norway","flag":"🇳🇴"},{"code":"OM","name":"Oman","flag":"🇴🇲"},{"code":"PK","name":"Pakistan","flag":"🇵🇰"},{"code":"PW","name":"Palau","flag":"🇵🇼"},{"code":"PA","name":"Panama","flag":"🇵🇦"},{"code":"PG","name":"Papua New Guinea","flag":"🇵🇬"},{"code":"PY","name":"Paraguay","flag":"🇵🇾"},{"code":"PE","name":"Peru","flag":"🇵🇪"},{"code":"PH","name":"Philippines","flag":"🇵🇭"},{"code":"PN","name":"Pitcairn Islands","flag":"🇵🇳"},{"code":"PL","name":"Poland","flag":"🇵🇱"},{"code":"PT","name":"Portugal","flag":"🇵🇹"},{"code":"PR","name":"Puerto Rico","flag":"🇵🇷"},{"code":"QA","name":"Qatar","flag":"🇶🇦"},{"code":"CG","name":"Republic of the Congo","flag":"🇨🇬"},{"code":"KR","name":"Republic of Korea","flag":"🇰🇷"},{"code":"RE","name":"Réunion","flag":"🇷🇪"},{"code":"RO","name":"Romania","flag":"🇷🇴"},{"code":"RU","name":"Russia","flag":"🇷🇺"},{"code":"RW","name":"Rwanda","flag":"🇷🇼"},{"code":"BL","name":"Saint Barthélemy","flag":"🇧🇱"},{"code":"SH","name":"Saint Helena, Ascension and Tristan da Cunha","flag":"🇸🇭"},{"code":"KN","name":"Saint Kitts and Nevis","flag":"🇰🇳"},{"code":"LC","name":"Saint Lucia","flag":"🇱🇨"},{"code":"MF","name":"Saint Martin","flag":"🇲🇫"},{"code":"PM","name":"Saint Pierre and Miquelon","flag":"🇵🇲"},{"code":"VC","name":"Saint Vincent and the Grenadines","flag":"🇻🇨"},{"code":"WS","name":"Samoa","flag":"🇼🇸"},{"code":"SM","name":"San Marino","flag":"🇸🇲"},{"code":"ST","name":"São Tomé and Príncipe","flag":"🇸🇹"},{"code":"SA","name":"Saudi Arabia","flag":"🇸🇦"},{"code":"SN","name":"Senegal","flag":"🇸🇳"},{"code":"RS","name":"Serbia","flag":"🇷🇸"},{"code":"SC","name":"Seychelles","flag":"🇸🇨"},{"code":"SL","name":"Sierra Leone","flag":"🇸🇱"},{"code":"SG","name":"Singapore","flag":"🇸🇬"},{"code":"SX","name":"Sint Maarten","flag":"🇸🇽"},{"code":"SK","name":"Slovakia","flag":"🇸🇰"},{"code":"SI","name":"Slovenia","flag":"🇸🇮"},{"code":"SB","name":"Solomon Islands","flag":"🇸🇧"},{"code":"SO","name":"Somalia","flag":"🇸🇴"},{"code":"ZA","name":"South Africa","flag":"🇿🇦"},{"code":"SS","name":"South Sudan","flag":"🇸🇸"},{"code":"ES","name":"Spain","flag":"🇪🇸"},{"code":"LK","name":"Sri Lanka","flag":"🇱🇰"},{"code":"SD","name":"Sudan","flag":"🇸🇩"},{"code":"SR","name":"Suriname","flag":"🇸🇷"},{"code":"SJ","name":"Svalbard","flag":"🇸🇯"},{"code":"SE","name":"Sweden","flag":"🇸🇪"},{"code":"CH","name":"Switzerland","flag":"🇨🇭"},{"code":"SY","name":"Syria","flag":"🇸🇾"},{"code":"TJ","name":"Tajikistan","flag":"🇹🇯"},{"code":"TZ","name":"Tanzania","flag":"🇹🇿"},{"code":"TH","name":"Thailand","flag":"🇹🇭"},{"code":"TG","name":"Togo","flag":"🇹🇬"},{"code":"TK","name":"Tokelau","flag":"🇹🇰"},{"code":"TO","name":"Tonga","flag":"🇹🇴"},{"code":"TT","name":"Trinidad and Tobago","flag":"🇹🇹"},{"code":"TN","name":"Tunisia","flag":"🇹🇳"},{"code":"TR","name":"Turkey","flag":"🇹🇷"},{"code":"TM","name":"Turkmenistan","flag":"🇹🇲"},{"code":"TC","name":"Turks and Caicos","flag":"🇹🇨"},{"code":"TV","name":"Tuvalu","flag":"🇹🇻"},{"code":"AE","name":"UAE","flag":"🇦🇪"},{"code":"UG","name":"Uganda","flag":"🇺🇬"},{"code":"UA","name":"Ukraine","flag":"🇺🇦"},{"code":"GB","name":"United Kingdom","flag":"🇬🇧"},{"code":"US","name":"United States of America","flag":"🇺🇸"},{"code":"UY","name":"Uruguay","flag":"🇺🇾"},{"code":"UZ","name":"Uzbekistan","flag":"🇺🇿"},{"code":"VU","name":"Vanuatu","flag":"🇻🇺"},{"code":"VA","name":"Vatican","flag":"🇻🇦"},{"code":"VE","name":"Venezuela","flag":"🇻🇪"},{"code":"VN","name":"Vietnam","flag":"🇻🇳"},{"code":"VI","name":"Virgin Islands (U.S.)","flag":"🇻🇮"},{"code":"WF","name":"Wallis and Futuna","flag":"🇼🇫"},{"code":"YE","name":"Yemen","flag":"🇾🇪"},{"code":"ZM","name":"Zambia","flag":"🇿🇲"},{"code":"ZW","name":"Zimbabwe","flag":"🇿🇼"}];
// Get default value from locales.country_code or item.value
// const defaultValue = (typeof locales !== 'undefined' && locales.country_code) ? locales.country_code : (__(item.value || ''));
const defaultValue = __(item.value) ? __(item.value) : (window?.locales?.country_code ?? '');
let placeholderText = __(item.placeholder || 'Select country');
// If there's a default value, try to find matching country text
if (defaultValue) {
const matchingCountry = countriesList.find(country =>
country.code === defaultValue.toUpperCase() ||
country.name.toLowerCase() === defaultValue.toLowerCase()
);
if (matchingCountry) {
placeholderText = `${matchingCountry.flag} ${matchingCountry.name}`;
}
} else {
// If no default value, use first country as placeholder
const firstCountry = countriesList[0];
if (firstCountry) {
placeholderText = `${firstCountry.flag} ${firstCountry.name}`;
}
}
%>
/>
= 0) ? 'data-show-on-answer="' + item.show_on_answer + '"' : '' %> data-block-area-index="<%- contentItemIndex %>">
<%
// Get default value and find corresponding display text for translations
const defaultValue = __(item.value || '');
let placeholderText = __(item.placeholder || 'Select language');
// If there are translations available, try to find current or first one
if (typeof window.translationsVariants !== 'undefined' && window.translationsVariants && window.translationsVariants.length > 0) {
const currentTranslation = window.translationsVariants.find(t => t.is_current);
const firstTranslation = window.translationsVariants[0];
if (currentTranslation) {
placeholderText = `${currentTranslation.emoji} ${currentTranslation.display_name} (${currentTranslation.display_name_en})`;
} else if (firstTranslation) {
placeholderText = `${firstTranslation.emoji} ${firstTranslation.display_name} (${firstTranslation.display_name_en})`;
}
}
%>
<% if (window.translationsVariants && window.translationsVariants.length > 0) { %>
<%
// Sort translations by English name for autocomplete list
let sortedAutocompleteTranslations = [...window.translationsVariants].sort(function(a, b) {
return (a.display_name_en || '').localeCompare(b.display_name_en || '');
});
sortedAutocompleteTranslations.forEach(function(translation) {
%>