jQuery(document).ready(function ($){
var __t=(window.wp&&wp.i18n&&typeof wp.i18n.__==='function')
? function (s){ return wp.i18n.__(s, 'decm-divi-event-calendar-module'); }
: function (s){ return s; };
var htmlLocale=(document.documentElement&&document.documentElement.lang) ? document.documentElement.lang:'';
var normalizedLocale=(htmlLocale||'en').replace('_', '-').toLowerCase();
var normalizedLocaleShort=normalizedLocale.split('-')[0];
function setMomentLocaleSafe(){
if(typeof moment==='undefined'||typeof moment.locale!=='function'){
return;
}
var active=moment.locale(normalizedLocale);
if(normalizedLocaleShort&&active!==normalizedLocale){
moment.locale(normalizedLocaleShort);
}}
function translateStaticLabel($elements, sourceText, translatedText){
$elements.each(function (){
var $el=$(this);
var raw=$el.text()||'';
var hasColon=/:\s*$/.test(raw);
var normalized=raw.replace(/:\s*$/, '').trim().toLowerCase();
if(normalized===sourceText.toLowerCase()){
$el.text(translatedText + (hasColon ? ':':''));
}});
}
function translateMoreInfoButtonText(text){
var normalized=(text||'').trim().toLowerCase();
if(!normalized||normalized==='more info'){
return __t('More Info');
}
if(normalized==='view more'){
return __t('View More');
}
return text;
}
function translateInitialServerRenderedContent(){
var modules=$('.decm_event_display');
if(!modules.length){
return;
}
modules.each(function (){
var $module=$(this);
translateStaticLabel($module.find('.event__date_label'), 'Date', __t('Date'));
translateStaticLabel($module.find('.event__time_label'), 'Time', __t('Time'));
translateStaticLabel($module.find('.event__venue_label'), 'Venue', __t('Venue'));
translateStaticLabel($module.find('.event__location_label'), 'Location', __t('Location'));
translateStaticLabel($module.find('.event__organizer_label'), 'Organizer', __t('Organizer'));
translateStaticLabel($module.find('.event__category_label'), 'Category', __t('Category'));
translateStaticLabel($module.find('.event__tags_label'), 'Tag', __t('Tag'));
translateStaticLabel($module.find('.event__ticket_label'), 'Ticket', __t('Ticket'));
translateStaticLabel($module.find('.event__rsvp_label'), 'RSVP', __t('RSVP'));
translateStaticLabel($module.find('.event__price_label'), 'Price', __t('Price'));
translateStaticLabel($module.find('.event__website_label'), 'Website', __t('Website'));
$module.find('.event__website_value a').each(function (){
var $link=$(this);
if(($link.text()||'').trim().toLowerCase()==='view events website'){
$link.text(__t('View Events Website'));
}});
$module.find('.load-more-btn').each(function (){
var $btn=$(this);
if(($btn.text()||'').trim().toLowerCase()==='load more'){
$btn.text(__t('Load More'));
}});
$module.find('.dec-more-info-button .act-view-more').each(function (){
var $btn=$(this);
var current=($btn.text()||'').trim();
var translated=translateMoreInfoButtonText(current);
if(translated!==current){
$btn.text(translated);
}});
});
}
translateInitialServerRenderedContent();
function isFeatureImageOn(showFeatureImage){
return showFeatureImage==='on'||showFeatureImage==='true';
}
function isCoverOverlayOn(coverOverlayVal){
return coverOverlayVal==='on'||coverOverlayVal==='true'||coverOverlayVal===true ||
coverOverlayVal===1||coverOverlayVal==='1';
}
function isShowTitleOn(showTitle){
return showTitle==='on'||showTitle==='true';
}
function getTitleHeadingLevel(params){
var level=(params&&(params.title_level||params.header_level))||'h2';
if(typeof level!=='string'){
return 'h2';
}
level=level.toLowerCase();
return /^h[1-6]$/.test(level) ? level:'h2';
}
function getButtonIconClassSuffix(params, buttonType){
var key=buttonType==='load_more' ? 'load_more_button_icon_classes':'more_info_button_icon_classes';
var classes=params&&params[key] ? String(params[key]).trim():'';
return classes ? ' ' + classes:'';
}
function getCalloutBoxClass(layout, event, showFeatureImage, layoutType){
var layoutKey=(layout||'').toString().toLowerCase();
var hasImage = !!(event&&event.image&&/src=["'][^"']+["']/.test(event.image));
var featureOn=isFeatureImageOn(showFeatureImage);
var classClout='callout-box-cover';
if(layoutKey==='cover'){
classClout='callout-box-cover';
}else if(layoutKey==='list'){
classClout='callout-box-list';
if(['calloutOnImage_Datail', 'calloutOnImage_Datail_button'].indexOf(layoutType||'')!==-1&&hasImage&&featureOn){
classClout +=' callout-box-list-on-Image';
}}else if(layoutKey==='grid'){
classClout=(hasImage&&featureOn) ? 'callout_box':'callout-box-cover';
}
return classClout;
}
function escapeHtml(text){
if(!text) return '';
var map={
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#039;'
};
return text.replace(/[&<>"']/g, function(m){ return map[m]; });
}
function phpToMomentFormat(format){
var replacements={
'd': 'DD',
'D': 'ddd',
'j': 'D',
'l': 'dddd',
'N': 'E',
'S': '',
'w': 'e',
'z': 'DDD',
'W': 'W',
'F': 'MMMM',
'm': 'MM',
'M': 'MMM',
'n': 'M',
'Y': 'YYYY',
'y': 'YY',
'a': 'a',
'A': 'A',
'g': 'h',
'G': 'H',
'h': 'hh',
'H': 'HH',
'i': 'mm',
's': 'ss'
};
var momentFormat='';
for (var i=0; i < format.length; i++){
var char=format.charAt(i);
momentFormat +=(replacements[char]!==undefined ? replacements[char]:char);
}
return momentFormat;
}
function decm_get_event(button, page, per_page, hiddenF){
const e=button;
var params={
'disable_title_link': '',
'disable_button_link': '',
'show_recurring_event': '',
'disable_image_link': '',
'custom_event_link': '',
'event_selection': '',
'date_format': '',
'show_feature_image': '',
'show_postponed_canceled_event': '',
'show_virtual_events': '',
'show_hybrid_event': '',
'show_title': '',
'show_more_info': '',
'show_more_info_btn_text': '',
'button_make_fullwidth': 'off',
'button_align': '',
'button_align_tablet': '',
'button_align_phone': '',
'more_info_button_icon_desktop': '',
'more_info_button_icon_tablet': '',
'more_info_button_icon_phone': '',
'load_more_button_icon_desktop': '',
'load_more_button_icon_tablet': '',
'load_more_button_icon_phone': '',
'more_info_button_icon_classes': '',
'load_more_button_icon_classes': '',
'limit_recurring_count': '',
'show_past': '',
'cutoff_ongoing_events': 'cut_end_date_reached',
'event_order': '',
'event_ofset_number': '',
'events_count': '',
'events_count_tablet': '',
'events_count_phone': '',
'show_callout_box': '',
'show_callout_box_date': '',
'show_callout_box_date_range': '',
'show_callout_box_month': '',
'show_callout_month_range': '',
'callout_month_format': '',
'callout_day_of_the_week': '',
'show_callout_day_of_week_range': '',
'callout_week_format': '',
'show_callout_box_year': '',
'callout_year_format': '',
'show_callout_year_range': '',
'callout_time_format': '',
'show_callout_time_range': '',
'show_date_details': '',
'show_end_date_details': '',
'date_detail_label': '',
'date_details_format': '',
'show_time_details': '',
'details_time_label': '',
'details_time_format': '',
'show_end_time_details': '',
'show_venue_details': '',
'show_organizer_details': '',
'venue_detail_label': '',
'organizer_detail_label': '',
'Show_purchase_now': '',
'show_place_left': '',
'show_rsvp': '',
'rsvp_label': '',
'show_respond_now': '',
'show_cat': '',
'cat_label': '',
'hide_coma_cat': '',
'show_tags': '',
'tags_label': '',
'hide_coma_tag': '',
'show_website': '',
'website_label': '',
'show_preposition_dividr': '',
'show_callout_box_class': '',
'stack_event_d': '',
'show_label_icon': '',
'stack_label_icon': '',
'show_price': '',
'price_detail_label': '',
'show_price_ticket': '',
'columns': '',
'columns_desktop': '',
'columns_tablet': '',
'columns_phone': '',
'pagination_type': '',
'prv_link_btn': 'Previous',
'next_link_btn': 'Next',
'load_more_text': 'Load More',
'excerpt_length': '27',
'show_excerpt': 'off',
'show_pagination': 'off',
'page': '',
'per_page': '3',
'layout': 'grid',
'layout_type': '',
'show_callout_box_starttime': '',
'show_colon_label': '',
'show_timezone': 'off',
'month_with_heading': '',
'month_separator_heading_format': '',
'title_level': 'h2',
'show_location': '',
'location_detail_label': '',
'location_street_address': '',
'location_locality': '',
'show_location_state': '',
'location_postal_code': '',
'location_country': '',
'location_street_comma': '',
'location_locality_comma': '',
'show_location_state_comma': '',
'location_postal_code_comma': '',
'location_country_comma': '',
'show_postal_code_before_locality': '',
'dec-eventfeed-category': '',
'dec-eventfeed-tag': '',
'dec-eventfeed-venue': '',
'dec-eventfeed-year': '',
'dec-eventfeed-month': '',
'dec-eventfeed-day': '',
'dec-eventfeed-time': '',
'EventstartDate': '',
'EventendDate': '',
'dec-eventfeed-city': '',
'dec-eventfeed-state': '',
'dec-eventfeed-country': '',
'dec-eventfeed-address': '',
'EventcostMin': '',
'EventcostMax': '',
'dec-eventfeed-future-past': '',
'dec-eventfeed-organizer': '',
'dec-eventfeed-status': '',
'dec-filter-search': '',
'dec-eventfeed-recurring': '',
'org_link_target': '',
'enable_org_link': '',
'enable_venue_link': '',
'venue_link_target': '',
'enable_cat_link': '',
'category_link_target': '',
'enable_tag_link': '',
'tag_link_target': '',
'single_event_link': '',
'custome_single_event_link': '',
'entire_event_clickable': '',
'website_link': '',
'website_link_target': '',
'event_selection_cat': '',
'event_selection_tag': '',
'event_selection_org': '',
'event_selection_series': '',
'feature_image_overlay': '',
'feature_image_overlay_icon': '',
'feature_image_overlay_icon_color': '#fff',
'feature_image_overlay_background': 'rgba(0,0,0,0.4)',
'cover_feature_image_overlay_on': '',
'cover_image_overlay_color': 'rgba(0,0,0,0.4)',
};
$.each(params, function (key){
var value=$(e).closest('.pagination-container')
.siblings('.events-main__container')
.find('input.hidden-data-field[name="' + key + '"]')
.val();
params[key]=(value===undefined||value===null) ? '':value;
});
if(!params.organizer_detail_label||params.organizer_detail_label===''||params.organizer_detail_label==='undefined'){
var altValue=$('input.hidden-data-field[name="organizer_detail_label"]').first().val();
if(altValue&&altValue!==''&&altValue!=='undefined'){
params.organizer_detail_label=altValue;
}else{
params.organizer_detail_label='Organizer';
}}
if(params.event_selection!=='custom_event'){
params.event_selection_cat='';
params.event_selection_tag='';
params.event_selection_org='';
params.event_selection_venue='';
params.event_selection_series='';
}
var thiscontainer=$(e).closest('.pagination-container')
.siblings('.events-main__container');
params['action']='decm_get_events_action';
params['security']=ajax_object.ajax_nonce;
if(page!=''&&page!=undefined){
params['page']=page;
params['per_page']=per_page ? parseInt(per_page, 10):parseInt(params['per_page']||'3', 10);
}else{
params['per_page']=getResponsiveEventsCount(params);
}
if(params.layout=='grid'||params.layout=='cover'){
params.layout_type='';
}
var data=params;
function getEventTitleLink(event, params){
let url=event.event_url||'#';
let target='';
let showLink=true;
if(params.single_event_link==='disable_link'){
showLink = !(params.disable_title_link&&params.disable_title_link!=='off');
return { url, target, showLink };}
if(params.single_event_link==='custom_link_replace'){
url=params.custom_event_link||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}else if(params.single_event_link==='redirect_website_link'){
url=event.event_website||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}
return { url, target, showLink };}
function getEventImageLink(event, params){
let url=event.event_url||'#';
let target='';
let showLink=true;
if(params.single_event_link==='disable_link'){
showLink = !(params.disable_image_link&&params.disable_image_link!=='off');
return { url, target, showLink };}
if(params.single_event_link==='custom_link_replace'){
url=params.custom_event_link||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}else if(params.single_event_link==='redirect_website_link'){
url=event.event_website||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}
return { url, target, showLink };}
function getResponsiveButtonAlign(params){
var screenWidth=document.documentElement.clientWidth||window.innerWidth||screen.width;
if(screenWidth <=767){
return params.button_align_phone!=='' ? params.button_align_phone:params.button_align;
}else if(screenWidth >=768&&screenWidth <=1024){
return params.button_align_tablet!=='' ? params.button_align_tablet:params.button_align;
}else{
return params.button_align;
}}
function getResponsiveEventsCount(params){
var screenWidth=document.documentElement.clientWidth||window.innerWidth||screen.width;
var eventsCountDesktop=parseInt(params.events_count||params.per_page||'6', 10)||6;
var eventsCountTablet=params.events_count_tablet!==''&&params.events_count_tablet!==undefined&&params.events_count_tablet!==null
? parseInt(params.events_count_tablet, 10):null;
var eventsCountPhone=params.events_count_phone!==''&&params.events_count_phone!==undefined&&params.events_count_phone!==null
? parseInt(params.events_count_phone, 10):null;
var deviceType='desktop';
var finalCount=eventsCountDesktop;
if(screenWidth <=767){
deviceType='phone';
finalCount=eventsCountPhone!==null ? eventsCountPhone :
(eventsCountTablet!==null ? eventsCountTablet:eventsCountDesktop);
}else if(screenWidth >=768&&screenWidth <=1024){
deviceType='tablet';
finalCount=eventsCountTablet!==null ? eventsCountTablet:eventsCountDesktop;
}else{
deviceType='desktop';
finalCount=eventsCountDesktop;
}
return finalCount;
}
function calculateEqualHeights(containerSelector){
var container=$(containerSelector);
if(!container.length) return;
if(!container.hasClass('button-align-enabled')) return;
if(!container.hasClass('grid-container')&&!container.hasClass('cover-container')) return;
var eventContainers=container.find('.event-container.button-align-enabled');
if(eventContainers.length===0) return;
eventContainers.css('height', 'auto');
container[0].offsetHeight;
var rows={};
var rowKeys=[];
eventContainers.each(function (){
var $el=$(this);
var top=Math.round($el.position().top);
if(rows[top]===undefined){
rows[top]=[];
rowKeys.push(top);
}
rows[top].push($el);
});
rowKeys.forEach(function (top){
var group=rows[top];
var maxHeight=0;
group.forEach(function ($el){
var height=$el.outerHeight(true);
if(height > maxHeight){
maxHeight=height;
}});
if(maxHeight > 0){
group.forEach(function ($el){
$el.css('height', maxHeight + 'px');
});
}});
}
function getEventButtonLink(event, params){
let url=event.event_url||'#';
let target='';
let showLink=true;
if(params.single_event_link==='disable_link'){
showLink = !(params.disable_button_link&&params.disable_button_link!=='off');
}else if(params.single_event_link==='custom_link_replace'){
url=params.custom_event_link||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}else if(params.single_event_link==='redirect_website_link'){
url=event.event_website||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}
return { url, target, showLink };}
function getEventLinkSettings(event, params){
let url=event.event_url||'#';
let target='';
let showLink=true;
if(params.single_event_link==='disable_link'){
showLink=(params.disable_entire_event_link!=='on');
}else if(params.single_event_link==='custom_link_replace'){
url=params.custom_event_link||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}else if(params.single_event_link==='redirect_website_link'){
url=event.event_website||url;
if(params.custome_single_event_link==='new_tab'){
target=' target="_blank" rel="noopener noreferrer"';
}}
return { url, target, showLink };}
$.ajax({
type: "POST",
url: ajax_object.ajax_url,
data: data,
success: function (response){
var events=response.data.events;
var container=thiscontainer;
if(response.data.pagination.pagination_type==='load_more'){
}else{
container.empty();
}
var allEventHtml='';
var existingMonths=new Set(
container.find('.month-heading').map(function (){
return $(this).text();
}).get()
);
$.each(events, function (i, event){
if(event.month_separator){
if(params.month_with_heading==='on'&&params.layout==='list'){
var monthHeading=event.month_heading_format||event.month_heading||'';
if(monthHeading&&!existingMonths.has(monthHeading)){
existingMonths.add(monthHeading);
allEventHtml +='<h2 class="ecs-events-list-separator-month">' +
'<span class="month-heading ecs-events-calendar-list__month-separator-text">' +
escapeHtml(monthHeading) +
'</span></h2>';
}}
return true;
}
setMomentLocaleSafe();
const toMoment=iso=> (iso ? moment.parseZone(iso):null);
const fmt=(m, format)=> {
if(!m||!m.isValid()) return '';
const r=m.format(format);
return (r&&r.indexOf('undefined')===-1) ? r:'';
};
const startM=toMoment(event.callout_start_date||event.start_time);
const endM=toMoment(event.callout_end_date||event.end_time);
const momentFormat=phpToMomentFormat(params.date_format||'d');
const formattedDate_startDate=fmt(startM, momentFormat)||(event.callout_start_date||'');
const formattedDate_endDate=fmt(endM, momentFormat)||(event.callout_end_date||'');
const fallbackStartDay=event.callout_date
? moment.unix(event.callout_date).format('DD')
: fmt(startM, 'DD');
const fallbackEndDay=fmt(endM, 'DD') ||
(event.callout_end_date ? moment.parseZone(event.callout_end_date).format('DD'):'');
const momentFormat_month=phpToMomentFormat(params.callout_month_format||'F');
const formattedDate_startMonth =
fmt(startM, momentFormat_month) ||
(event.start_month ? fmt(toMoment(event.start_month), momentFormat_month):'') ||
(event.month||'');
const formattedDate_endMonth =
fmt(endM, momentFormat_month) ||
(event.end_month ? fmt(toMoment(event.end_month), momentFormat_month):'') ||
(event.month||'');
const momentFormat_year=phpToMomentFormat(params.callout_year_format||'Y');
const formattedDate_startYear=fmt(startM, momentFormat_year)||(event.year||'');
const formattedDate_endYear=fmt(endM, momentFormat_year)||(event.year||'');
const momentFormat_time=phpToMomentFormat(params.callout_time_format||'g:i a');
const formattedDate_startTime=fmt(startM, momentFormat_time)||(event.callout_start_time||'');
const formattedDate_endTime=fmt(endM, momentFormat_time)||(event.callout_end_time||'');
const DayFormat=phpToMomentFormat(params.callout_week_format||'D');
const formattedDate_startDay=fmt(startM, DayFormat);
const formattedDate_endDay=fmt(endM, DayFormat);
const momentFormatDetails=phpToMomentFormat(params.date_details_format||'F d, Y');
const formattedDate_startDate_Details=fmt(startM, momentFormatDetails)||(event.date||event.callout_start_date||'');
const formattedDate_endDate_Details=fmt(endM, momentFormatDetails)||(event.callout_end_date||'');
const momentFormat_timeDetails=phpToMomentFormat(params.details_time_format||'g:i a');
const formattedDate_startTimeDetails=fmt(startM, momentFormat_timeDetails)||(event.callout_start_time||'');
const formattedDate_endTimeDetails=fmt(endM, momentFormat_timeDetails)||(event.callout_end_time||'');
var newSss=wp.i18n._x('Organizer', 'decm-divi-event-calendar-module');
var classClout=getCalloutBoxClass(params.layout, event, params.show_feature_image, params.layout_type);
var isAllDay=event.is_all_day||false;
var allDayText=event.all_day_text||__t('All Day Event');
var isSameDate=false;
var isSameTime=false;
if(startM&&endM&&startM.isValid()&&endM.isValid()){
isSameDate=startM.format('YYYY-MM-DD')===endM.format('YYYY-MM-DD');
if(isSameDate&&formattedDate_startTimeDetails&&formattedDate_endTimeDetails){
isSameTime=formattedDate_startTimeDetails===formattedDate_endTimeDetails&&formattedDate_startTimeDetails!=='';
}}
var layoutType=params.layout_type||'default';
var eventHtml='';
var screenWidth=document.documentElement.clientWidth||window.innerWidth||screen.width;
var columnsDesktop=(params.columns_desktop&&params.columns_desktop!==''&&params.columns_desktop!==undefined)
? params.columns_desktop
: ((params.columns&&params.columns!==''&&params.columns!==undefined) ? params.columns:'3');
var columnsTablet=(params.columns_tablet&&params.columns_tablet!==''&&params.columns_tablet!==undefined)
? params.columns_tablet
: columnsDesktop;
var columnsPhone=(params.columns_phone&&params.columns_phone!==''&&params.columns_phone!==undefined)
? params.columns_phone
: columnsTablet;
var currentColumns;
var deviceType='desktop';
if(screenWidth <=767){
deviceType='phone';
currentColumns=columnsPhone;
}else if(screenWidth >=768&&screenWidth <=1024){
deviceType='tablet';
currentColumns=columnsTablet;
}else{
deviceType='desktop';
currentColumns=columnsDesktop;
}
var columns=currentColumns;
const buttonAlign=getResponsiveButtonAlign(params);
const buttonAlignEnabledClass=(buttonAlign==='on') ? 'button-align-enabled':'';
var coverBgStyle='';
var coverOverlayOn=false;
var coverHasImageSrc=false;
if(params.layout==='cover'){
coverOverlayOn=isCoverOverlayOn(params.cover_feature_image_overlay_on);
coverHasImageSrc=isFeatureImageOn(params.show_feature_image)&&event.image &&
(event.image.match(/src=["']([^"']+)["']/)||event.image.match(/src=([^\s>]+)/));
if(!coverHasImageSrc&&!coverOverlayOn&&params.cover_image_overlay_color){
coverBgStyle=' style="background-color: ' + params.cover_image_overlay_color + '; background: ' + params.cover_image_overlay_color + ';"';
}}
eventHtml +='<div class="event-container ' + layoutType + ' cs-col-' + columns + ' ' + buttonAlignEnabledClass + '" ' +
'data-columns-desktop="' + columnsDesktop + '" ' +
'data-columns-tablet="' + columnsTablet + '" ' +
'data-columns-phone="' + columnsPhone + '"' +
coverBgStyle + '>';
if(params.layout==='cover'){
if(coverOverlayOn){
var coverOverlayStyle='position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2;';
if(params.cover_image_overlay_color){
coverOverlayStyle='background:' + params.cover_image_overlay_color + '; ' + coverOverlayStyle;
}
eventHtml +='<div class="cover_overlayop" style="' + coverOverlayStyle + '"></div>';
}
if(coverHasImageSrc){
if((event.image||'').indexOf('tribe-events-event-image')!==-1){
eventHtml +=(event.image||'').replace(/<img([^>]*)>/, '<img$1 style="position: relative; z-index: 1;">');
}else{
eventHtml +='<div class="tribe-events-event-image">' +
(event.image||'').replace(/<img/, '<img style="position: relative; z-index: 1;"') +
'</div>';
}}
}
const { __ }=wp.i18n;
var mainLayoutStyle=(params.layout==='cover') ? ' style="position: relative; z-index: 3;"':'';
eventHtml +='<div class="main-layout-container"' + mainLayoutStyle + '>';
var linkSettings=getEventLinkSettings(event, params);
if(params.entire_event_clickable==='on'&&linkSettings.showLink){
eventHtml +='<a class="ecs_event_clickable" href="' + linkSettings.url + '" rel="bookmark"' + linkSettings.target + ' style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 5;"></a>';
}
if(['callout_image_detail', 'callout_image_detail_button', 'callout_detail_image', 'callout_detail_image_button'].includes(layoutType)){
if(params.show_callout_box==='on'){
eventHtml +='<div class="callout-column seprate_col">';
eventHtml +='<div class="' + params.show_callout_box_class + ' ' + classClout + '">';
if(params.show_callout_box_date==='on'){
eventHtml +='<div class="event-day ' + (params.show_callout_box_date_class||'') + '">';
if(params.show_callout_box_date_range==='off'){
eventHtml +=(params.date_format!=='' ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay);
}else{
if(isAllDay){
eventHtml +=(params.date_format!=='' ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay);
}else{
if(!isSameDate){
eventHtml +=(params.date_format!==''
? ((formattedDate_startDate||fallbackStartDay) + ' - ' + (formattedDate_endDate||fallbackEndDay))
: (fallbackStartDay + ' - ' + fallbackEndDay));
}else{
eventHtml +=(params.date_format!=='' ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay);
}}
}
eventHtml +='</div>';
}
if(params.show_callout_box_month==='on'){
eventHtml +='<div class="event-month">';
if(params.show_callout_month_range==='off'){
eventHtml +=(params.callout_month_format!=='' ? (formattedDate_startMonth||event.month||''):(event.month||formattedDate_startMonth));
}else{
if(isAllDay){
eventHtml +=(params.callout_month_format!=='' ? (formattedDate_startMonth||event.month||''):(event.month||formattedDate_startMonth));
}else{
eventHtml +=(params.callout_month_format!==''
? ((formattedDate_startMonth||event.month||'') + ' - ' + (formattedDate_endMonth||event.month||''))
: (event.month_range||((formattedDate_startMonth||'') + ' - ' + (formattedDate_endMonth||''))));
}}
eventHtml +='</div>';
}
if(params.callout_day_of_the_week==='on'){
eventHtml +='<div class="event-day-of-week">';
if(params.show_callout_day_of_week_range==='off'){
eventHtml +=(params.callout_week_format!=='' ? formattedDate_startDay:formattedDate_startDay);
}else{
if(isAllDay){
eventHtml +=(params.callout_week_format!=='' ? formattedDate_startDay:formattedDate_startDay);
}else{
eventHtml +=(params.callout_week_format!==''
? (formattedDate_startDay + ' - ' + formattedDate_endDay)
: (formattedDate_startDay + ' - ' + formattedDate_endDay));
}}
eventHtml +='</div>';
}
if(params.show_callout_box_year==='on'){
eventHtml +='<div class="event-year">';
if(params.show_callout_year_range==='off'){
eventHtml +=(params.callout_year_format!=='' ? formattedDate_startYear:(event.year||formattedDate_startYear));
}else{
if(isAllDay){
eventHtml +=(params.callout_year_format!=='' ? formattedDate_startYear:(event.year||formattedDate_startYear));
}else{
eventHtml +=(params.callout_year_format!==''
? (formattedDate_startYear + ' - ' + formattedDate_endYear)
: ((event.year||formattedDate_startYear) + ' - ' + (event.year||formattedDate_endYear)));
}}
eventHtml +='</div>';
}
if(params.show_callout_box_starttime==='on'&&!isAllDay){
eventHtml +='<div class="event-time">';
if(params.show_callout_time_range==='off'){
eventHtml +=(params.callout_time_format!=='' ? formattedDate_startTime:(event.callout_start_time||formattedDate_startTime));
}else{
if(!(isSameDate&&isSameTime)){
eventHtml +=(params.callout_time_format!==''
? (formattedDate_startTime + ' - ' + formattedDate_endTime)
: ((event.callout_start_time||formattedDate_startTime) + ' - ' + (event.callout_end_time||formattedDate_endTime)));
}else{
eventHtml +=(params.callout_time_format!=='' ? formattedDate_startTime:(event.callout_start_time||formattedDate_startTime));
}}
eventHtml +='</div>';
}
eventHtml +='</div></div>';
}}
const imageColumnClass=layoutType.includes('calloutOnImage') ? 'with-callout-overlay':'image-only';
eventHtml +='<div class="image-column ' + imageColumnClass + '">';
const hasImageSrc=event.image&&(event.image.match(/src=["']([^"']+)["']/)||event.image.match(/src=([^\s>]+)/));
const isGridOrList=params.layout==='grid'||params.layout==='list';
const hasImage=event.image&&isFeatureImageOn(params.show_feature_image)&&(isGridOrList ? hasImageSrc:true);
const imageAlignClass=hasImage ? 'image-align ':'';
eventHtml +='<div class="' + imageAlignClass + 'img-width decm-show-image-left imge_callout">';
const imageLink=getEventImageLink(event, params);
if(imageLink.showLink&&hasImage){
eventHtml +='<a class="dec-image-overlay-url" href="' + imageLink.url + '"' + imageLink.target + '>';
}
if(!isFeatureImageOn(params.show_feature_image)||params.layout=='cover'||!hasImage){
}else{
eventHtml +='<div class="feature-image">';
if((event.image||'').indexOf('tribe-events-event-image')!==-1){
let iconObj={};
if(typeof params.feature_image_overlay_icon==='string'){
try {
iconObj=JSON.parse(params.feature_image_overlay_icon);
} catch (e){
iconObj={};}}else if(typeof params.feature_image_overlay_icon==='object'&&params.feature_image_overlay_icon!==null){
iconObj=params.feature_image_overlay_icon;
}
const iconUnicode=iconObj.unicode||'';
eventHtml +=(event.image||'').replace('</div>',
(params.feature_image_overlay==='on'
? '<div class="feature-image-overlay overlayop event-overlay-background">'
+ (iconUnicode ? ('<span class="event-overlay-icon" style="font-family:ETmodules;">' + iconUnicode + '</span>'):'')
+ '</div>'
: '') + '</div>'
);
}else{
let iconObj={};
if(typeof params.feature_image_overlay_icon==='string'){
try {
iconObj=JSON.parse(params.feature_image_overlay_icon);
} catch (e){
iconObj={};}}else if(typeof params.feature_image_overlay_icon==='object'&&params.feature_image_overlay_icon!==null){
iconObj=params.feature_image_overlay_icon;
}
const iconUnicode=iconObj.unicode||'';
eventHtml +='<div class="tribe-events-event-image">' +
(event.image||'') +
(params.feature_image_overlay==='on'
? '<div class="feature-image-overlay overlayop event-overlay-background">'
+ (iconUnicode ? ('<span class="event-overlay-icon" style="font-family:ETmodules;">' + iconUnicode + '</span>'):'')
+ '</div>'
: '') +
'</div>';
}
eventHtml +='</div>';
}
if(['calloutOnImage_Datail', 'calloutOnImage_Datail_button'].includes(layoutType)){
if(params.show_callout_box==='on'){
eventHtml +='<div class="' + params.show_callout_box_class + ' ' + classClout + '">';
if(params.show_callout_box_date==='on'&&params.show_callout_box_date_range==='off'){
eventHtml +='<div class="event-day ' + (params.show_callout_box_date_class||'') + '">';
eventHtml +=(params.date_format!=='' ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay);
eventHtml +='</div>';
}
if(params.show_callout_box_date==='on'&&params.show_callout_box_date_range==='on'){
eventHtml +='<div class="event-day ' + (params.show_callout_box_date_class||'') + '">';
if(isAllDay){
eventHtml +=(params.date_format!=='' ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay);
}else{
if(!isSameDate){
eventHtml +=(params.date_format!=='' ? ((formattedDate_startDate||fallbackStartDay) + '-' + (formattedDate_endDate||fallbackEndDay)):(fallbackStartDay + '-' + fallbackEndDay));
}else{
eventHtml +=(params.date_format!=='' ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay);
}}
eventHtml +='</div>';
}
if(params.show_callout_box_month==='on'&&params.show_callout_month_range==='off'){
eventHtml +='<div class="event-month ' + (params.show_callout_box_month_class||'') + '">';
eventHtml +=(params.callout_month_format!=='' ? (formattedDate_startMonth||event.month||''):(event.month||formattedDate_startMonth));
eventHtml +='</div>';
}
if(params.show_callout_box_month==='on'&&params.show_callout_month_range==='on'){
eventHtml +='<div class="event-month ' + (params.show_callout_box_month_class||'') + '">';
if(isAllDay){
eventHtml +=(params.callout_month_format!=='' ? (formattedDate_startMonth||event.month||''):(event.month||formattedDate_startMonth));
}else{
eventHtml +=(params.callout_month_format!=='' ? ((formattedDate_startMonth||event.month||'') + '-' + (formattedDate_endMonth||event.month||'')):(event.month_range||((formattedDate_startMonth||'') + '-' + (formattedDate_endMonth||''))));
}
eventHtml +='</div>';
}
if(params.callout_day_of_the_week==='on'&&params.show_callout_day_of_week_range==='off'){
eventHtml +='<div class="event-day-of-week">';
eventHtml +=(params.callout_week_format!=='' ? formattedDate_startDay:new Date(event.callout_start_date).getDay());
eventHtml +='</div>';
}
if(params.callout_day_of_the_week==='on'&&params.show_callout_day_of_week_range==='on'){
eventHtml +='<div class="event-day-of-week">';
if(isAllDay){
eventHtml +=(params.callout_week_format!=='' ? formattedDate_startDay:new Date(event.callout_start_date).getDay());
}else{
eventHtml +=(params.callout_week_format!=='' ? formattedDate_startDay + '-' + formattedDate_endDay:new Date(event.callout_start_date).getDay() + '-' + new Date(event.callout_end_date).getDay());
}
eventHtml +='</div>';
}
if(params.show_callout_box_year==='on'&&params.show_callout_year_range==='off'){
eventHtml +='<div class="event-year">';
eventHtml +=(params.callout_year_format!=='' ? formattedDate_startYear:event.year);
eventHtml +='</div>';
}
if(params.show_callout_box_year==='on'&&params.show_callout_year_range==='on'){
eventHtml +='<div class="event-year">';
if(isAllDay){
eventHtml +=(params.callout_year_format!=='' ? formattedDate_startYear:event.year);
}else{
eventHtml +=(params.callout_year_format!=='' ? formattedDate_startYear + '-' + formattedDate_endYear:event.year + '-' + event.year);
}
eventHtml +='</div>';
}
if(params.show_callout_box_Stime==='on'&&!isAllDay){
if(params.show_callout_time_range==='off'){
eventHtml +='<div class="event-time">';
eventHtml +=(params.callout_time_format!=='' ? formattedDate_startTime:event.callout_start_time);
eventHtml +='</div>';
}
if(params.show_callout_box_Stime==='on'&&params.show_callout_time_range==='on'){
eventHtml +='<div class="event-time">';
if(!(isSameDate&&isSameTime)){
eventHtml +=(params.callout_time_format!=='' ? formattedDate_startTime + '-' + formattedDate_endTime:event.callout_start_time + '-' + event.callout_end_time);
}else{
eventHtml +=(params.callout_time_format!=='' ? formattedDate_startTime:event.callout_start_time);
}
eventHtml +='</div>';
}}
eventHtml +='</div>';
}}else{
if(params.layout==='grid'||params.layout=='cover'){
if(params.show_callout_box==='on'){
eventHtml +='<div class="callout-column">';
eventHtml +='<div class="' + params.show_callout_box_class + ' ' + classClout + '">';
if(params.show_callout_box_date==='on'){
eventHtml +='<div class="event-day ' + (params.show_callout_box_date_class||'') + '">';
if(params.show_callout_box_date_range==='off'){
eventHtml +=params.date_format ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay;
}else{
if(isAllDay){
eventHtml +=params.date_format ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay;
}else{
if(!isSameDate){
eventHtml +=params.date_format ?
((formattedDate_startDate||fallbackStartDay) + ' - ' + (formattedDate_endDate||fallbackEndDay)) :
(fallbackStartDay + ' - ' + fallbackEndDay);
}else{
eventHtml +=params.date_format ? (formattedDate_startDate||fallbackStartDay):fallbackStartDay;
}}
}
eventHtml +='</div>';
}
if(params.show_callout_box_month==='on'){
eventHtml +='<div class="event-month">';
if(params.show_callout_month_range==='off'){
eventHtml +=params.callout_month_format ? (formattedDate_startMonth||event.month||''):(event.month||formattedDate_startMonth);
}else{
if(isAllDay){
eventHtml +=params.callout_month_format ? (formattedDate_startMonth||event.month||''):(event.month||formattedDate_startMonth);
}else{
eventHtml +=params.callout_month_format ?
((formattedDate_startMonth||event.month||'') + ' - ' + (formattedDate_endMonth||event.month||'')) :
(event.month_range||((formattedDate_startMonth||'') + ' - ' + (formattedDate_endMonth||'')));
}}
eventHtml +='</div>';
}
if(params.callout_day_of_the_week==='on'){
eventHtml +='<div class="event-day-of-week">';
if(params.show_callout_day_of_week_range==='off'){
eventHtml +=(params.callout_week_format!=='' ? formattedDate_startDay:formattedDate_startDay);
}else{
if(isAllDay){
eventHtml +=(params.callout_week_format!=='' ? formattedDate_startDay:formattedDate_startDay);
}else{
eventHtml +=(params.callout_week_format!==''
? (formattedDate_startDay + ' - ' + formattedDate_endDay)
: (formattedDate_startDay + ' - ' + formattedDate_endDay));
}}
eventHtml +='</div>';
}
if(params.show_callout_box_year==='on'){
eventHtml +='<div class="event-year">';
if(params.show_callout_year_range==='off'){
eventHtml +=params.callout_year_format ? formattedDate_startYear:event.year;
}else{
if(isAllDay){
eventHtml +=params.callout_year_format ? formattedDate_startYear:event.year;
}else{
eventHtml +=params.callout_year_format ?
(formattedDate_startYear + ' - ' + formattedDate_endYear)
: (event.year + ' - ' + event.year);
}}
eventHtml +='</div>';
}
if(params.show_callout_box_starttime==='on'&&!isAllDay){
eventHtml +='<span class="event-time">';
if(params.show_callout_time_range==='off'){
eventHtml +=params.callout_time_format ? formattedDate_startTime:event.callout_start_time;
}else{
eventHtml +=params.callout_time_format ?
(formattedDate_startTime + ' - ' + formattedDate_endTime)
: (event.callout_start_time + ' - ' + event.callout_end_time);
}
eventHtml +='</span>';
}
eventHtml +='</div></div>';
}}
}
if(imageLink.showLink&&hasImage){
eventHtml +='</a>';
}
eventHtml +='</div></div>';
const detailsClass=layoutType.includes('_button') ? 'with-button':'';
var buttonAlignEnabledClassDetails=(buttonAlign==='on') ? 'button-align-enabled':'';
eventHtml +='<div class="details-column ' + detailsClass + ' ' + buttonAlignEnabledClassDetails + '">';
eventHtml +='<div class="decm-show-detail-center ' + buttonAlignEnabledClassDetails + '">';
const titleLink=getEventTitleLink(event, params);
if(isShowTitleOn(params.show_title)){
var titleTag=getTitleHeadingLevel(params);
eventHtml +='<div class="event__title_box">';
if(titleLink.showLink){
eventHtml +='<' + titleTag + ' class="event__title"><a href="' + titleLink.url + '"' + titleLink.target + '>' + event.title + '</a></' + titleTag + '>';
}else{
eventHtml +='<' + titleTag + ' class="event__title">' + event.title + '</' + titleTag + '>';
}
eventHtml +='</div>';
}
if(params.stack_event_d==='off'){
eventHtml +='<div class="event__details_inline">';
}
if(params.show_date_details==="on"&&formattedDate_startDate_Details){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__date_value">' + ' ';
if(isAllDay){
eventHtml +=(isSameDate
? formattedDate_startDate_Details
: (params.show_end_date_details==='on'&&formattedDate_endDate_Details
? formattedDate_startDate_Details + ' - ' + formattedDate_endDate_Details
: formattedDate_startDate_Details));
}else{
eventHtml +=(params.show_end_date_details==='on'&&formattedDate_endDate_Details&&!isSameDate ? formattedDate_startDate_Details + ' - ' + formattedDate_endDate_Details:formattedDate_startDate_Details);
}
eventHtml +='</span>';
}else{
eventHtml +='<div class="event__date ' + (params.stack_label_icon==='on' ? 'stacked':'') + ' ' + (params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'||params.show_label_icon!=='none'){
const dateLabel=(params.date_detail_label===''||params.date_detail_label==='Date') ? 'Date':params.date_detail_label;
eventHtml +='<span class="event__date_label ecs-detail-label"> ' + __t(dateLabel) + (params.show_colon_label==='on' ? ': ':' ') + '</span>';
}
eventHtml +='</div>';
eventHtml +='<span class="event__date_value">' + ' ';
if(isAllDay){
eventHtml +=(isSameDate
? formattedDate_startDate_Details
: (params.show_end_date_details==='on'&&formattedDate_endDate_Details
? formattedDate_startDate_Details + ' - ' + formattedDate_endDate_Details
: formattedDate_startDate_Details));
}else{
eventHtml +=(params.show_end_date_details==='on'&&formattedDate_endDate_Details&&!isSameDate ? formattedDate_startDate_Details + ' - ' + formattedDate_endDate_Details:formattedDate_startDate_Details);
}
eventHtml +='</span>';
eventHtml +='</div>';
}}
if(params.show_time_details==='on'&&(formattedDate_startTimeDetails||isAllDay)){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__time_value">' + ' ';
if(isAllDay||(!formattedDate_startTimeDetails&&!formattedDate_endTimeDetails)){
eventHtml +=allDayText;
}else{
eventHtml +=(params.show_end_time_details==='on'&&formattedDate_endTimeDetails&&!(isSameDate&&isSameTime) ?
((params.show_preposition_dividr==='on' ? ' @ ':'') + formattedDate_startTimeDetails +
' - ' +
(params.show_preposition_dividr==='on' ? ' @ ':'') + formattedDate_endTimeDetails) :
(params.show_preposition_dividr==='on' ? ' @ ':'') + formattedDate_startTimeDetails) +
(params.show_timezone==='on'&&event.timeZone ? ' ' + event.timeZone:'');
}
eventHtml +='</span>';
}else{
var timeIconClass=(params.show_label_icon==='icon'||params.show_label_icon==='label_icon') ? 'event-time-decm-icon':'';
eventHtml +='<div class="event__time ' + (params.stack_label_icon==='on' ? 'stacked':'') + ' ' + (!isAllDay ? (params.show_label_icon||''):'') + ' ' + (!isAllDay ? timeIconClass:'') + '">';
if(!isAllDay){
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'||params.show_label_icon!=='none'){
const timeLabel=(params.details_time_label===''||params.details_time_label==='Time') ? 'Time':params.details_time_label;
eventHtml +='<span class="event__time_label ecs-detail-label">' + __t(timeLabel) + (params.show_colon_label==='on' ? ': ':' ') + '</span>';
}
eventHtml +='</div>';
}
eventHtml +='<span class="event__time_value">' + ' ';
if(isAllDay||(!formattedDate_startTimeDetails&&!formattedDate_endTimeDetails)){
eventHtml +=allDayText;
}else{
eventHtml +=(params.show_end_time_details==='on'&&formattedDate_endTimeDetails&&!(isSameDate&&isSameTime) ?
((params.show_preposition_dividr==='on' ? ' @ ':'') + formattedDate_startTimeDetails +
' - ' +
(params.show_preposition_dividr==='on' ? ' @ ':'') + formattedDate_endTimeDetails) :
(params.show_preposition_dividr==='on' ? ' @ ':'') + formattedDate_startTimeDetails) +
(params.show_timezone==='on'&&event.timeZone ? ' ' + event.timeZone:'');
}
eventHtml +='</span>';
eventHtml +='</div>';
}}
if(params.show_venue_details==="on"&&event.venue){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__venue_value"> <em>' + (params.show_preposition_dividr==='on' ? ' at ':'') + '</em>' + event.venue + '</span>';
}else{
eventHtml +='<div class="event__venue ' + (params.stack_label_icon==='on' ? 'stacked':'') + ' ' + (params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'||params.show_label_icon!=='none'){
const venueLabel=(params.venue_detail_label===''||params.venue_detail_label==='Venue') ? 'Venue':params.venue_detail_label;
eventHtml +='<span class="event__venue_label ecs-detail-label">' + __t(venueLabel) + (params.show_colon_label==='on' ? ': ':' ') + '</span>';
}
eventHtml +='</div>';
eventHtml +='<span class="event__venue_value"> <em>' + (params.show_preposition_dividr==='on' ? ' at ':'') + '</em>' + event.venue + '</span>';
eventHtml +='</div>';
}}
if(params.show_location==="on"&&event.location){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__location_value"><em>' +
(params.show_preposition_dividr==='on' ? ' in ':'') + '</em>' +
event.location + '</span>';
}else{
eventHtml +='<div class="event__location ' +
(params.stack_label_icon==='on' ? 'stacked':'') + ' ' +
(params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label' ||
params.show_label_icon==='label_icon' ||
params.show_label_icon!=='none'
){
const locationLabel=(params.location_detail_label===''||params.location_detail_label==='Location'||params.location_detail_label==='location') ? 'Location':params.location_detail_label;
const label=__t(locationLabel);
const sep=params.show_colon_label==='on' ? ':&nbsp;':'&nbsp;';
eventHtml +=`<span class="event__location_label ecs-detail-label">${label}${sep}</span>`;
}
eventHtml +='</div>';
eventHtml +='<span class="event__location_value"> <em>' +
(params.show_preposition_dividr==='on' ? ' at ':'') + '</em>' +
event.location + '</span>';
eventHtml +='</div>';
}}
function escHtml(s){
return String(s ?? '')
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#039;');
}
function isOn(v){
return v===true||v==='on'||v===1||v==='1'||v==='yes'||v==='true';
}
const showOrganizerDetails=isOn(params.show_organizer_details);
const allowOrganizerLink =
isOn(params.organizer_link) ||
isOn(params.enable_org_link) ||
isOn(params.link_organizer);
const linkNewTab =
isOn(params.organizer_link_target_blank) ||
isOn(params.open_organizer_link_new_tab);
const linkNofollow=isOn(params.organizer_link_nofollow);
function renderOrganizer(o){
if(!o) return '';
if(typeof o==='string') return escHtml(o);
const name=escHtml(o.name||'');
if(!name) return '';
if(allowOrganizerLink&&o.url){
const href=escHtml(o.url);
const target=linkNewTab ? ' target="_blank"':'';
const rel =
linkNewTab||linkNofollow ? ` rel="${linkNofollow ? 'nofollow':'noopener noreferrer'}"`:'';
return `<a href="${href}" class="event__organizer_link"${target}${rel}>${name}</a>`;
}
return name;
}
if(showOrganizerDetails){
let organizerValue='';
if(Array.isArray(event.organizers)){
organizerValue=event.organizers.map(renderOrganizer).filter(Boolean).join(', ');
}else if(event.organizers&&typeof event.organizers==='object'){
organizerValue=renderOrganizer(event.organizers);
}else if(typeof event.organizers==='string'){
organizerValue=escHtml(event.organizers);
}
const hasOrganizerValue=organizerValue&&organizerValue.trim()!=='';
if(hasOrganizerValue){
if(params.stack_event_d==='off'){
eventHtml +=`<span class="event__organizer_value"> ${organizerValue}</span>`;
}else{
const stackedClass=isOn(params.stack_label_icon) ? 'stacked':'';
const labelIconClass=params.show_label_icon||'';
eventHtml +=`<div class="event__organizer ${stackedClass} ${labelIconClass}">`;
eventHtml +=`<div class="label-icon-line">`;
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'){
let organizerLabel=params.organizer_detail_label||'';
if(!organizerLabel||organizerLabel===''||organizerLabel==='undefined'||String(organizerLabel).trim()===''){
organizerLabel='Organizer';
}
const labelText=__t(organizerLabel);
const label=`${escHtml(labelText)}${params.show_colon_label==='on' ? ':':''}`;
eventHtml +=`<span class="event__organizer_label ecs-detail-label">${label}</span>`;
}else{
}
eventHtml +=`</div>`;
eventHtml +=`<span class="event__organizer_value"> ${organizerValue}</span>`;
eventHtml +=`</div>`;
}}
}
if(params.show_cat==="on"&&event.categories&&event.categories.length > 0){
const categoryLinks=[];
const categoryNames=[];
event.categories.forEach(category=> {
categoryNames.push(category.name);
if(params.enable_cat_link==='on'&&category.url){
const target=params.category_link_target==='new_tab' ? ' target="_blank"':'';
categoryLinks.push('<a href="' + category.url + '"' + target + '>' + category.name + '</a>');
}else{
categoryLinks.push(category.name);
}});
const categoryValue=params.hide_coma_cat==='on'
? categoryLinks.join(', ').replace(/,/g, ' ')
: categoryLinks.join(', ');
const preposition=params.show_preposition_dividr==='on' ? ' | ':'';
const hasCategoryValue=categoryValue&&categoryValue.trim()!=='';
if(hasCategoryValue){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__category_value"> <em>' +
preposition + '</em>' +
categoryValue + '</span>';
}else{
eventHtml +='<div class="event__category ' +
(params.stack_label_icon==='on' ? 'stacked':'') + ' ' +
(params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'){
const catLabel=(params.cat_label===''||params.cat_label==='Category') ? 'Category':params.cat_label;
const label=__t(catLabel);
const sep=params.show_colon_label==='on' ? ':&nbsp;':'&nbsp;';
eventHtml +=`<span class="event__category_label ecs-detail-label">${label}${sep}</span>`;
}
eventHtml +='</div>';
eventHtml +='<span class="event__category_value"><em>' +
preposition + '</em>' +
categoryValue + '</span>';
eventHtml +='</div>';
}}
}
if(params.show_tags==="on"&&event.tags&&event.tags.length > 0){
const tagLinks=[];
const tagNames=[];
event.tags.forEach(tag=> {
tagNames.push(tag.name);
if(params.enable_tag_link==='on'&&tag.url){
const target=params.tag_link_target==='new_tab' ? ' target="_blank"':'';
tagLinks.push('<a href="' + tag.url + '"' + target + '>' + tag.name + '</a>');
}else{
tagLinks.push(tag.name);
}});
const tagValue=params.hide_coma_tag==='on'
? tagLinks.join(', ').replace(/,/g, ' ')
: tagLinks.join(', ');
const preposition=params.show_preposition_dividr==='on' ? ' | ':'';
const hasTagValue=tagValue&&tagValue.trim()!=='';
if(hasTagValue){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__tag_value"> <em>' +
preposition + '</em>' +
tagValue + '</span>';
}else{
eventHtml +='<div class="event__tag ' +
(params.stack_label_icon==='on' ? 'stacked':'') + ' ' +
(params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'){
const tagsLabel=(params.tags_label===''||params.tags_label==='Tags') ? 'Tag':params.tags_label;
const label=__t(tagsLabel);
const sep=params.show_colon_label==='on' ? ':&nbsp;':'&nbsp;';
eventHtml +=`<span class="event__tag_label ecs-detail-label">${label}${sep}</span>`;
}
eventHtml +='</div>';
eventHtml +='<span class="event__tag_value"><em>' +
preposition + '</em>' +
tagValue + '</span>';
eventHtml +='</div>';
}}
}
if(params.show_price_ticket==="on"&&event.ticket){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__ticket_value">' + ' ' + event.ticket + '</span>';
}else{
eventHtml +='<div class="event__ticket ' + (params.stack_label_icon==='on' ? 'stacked':'') + ' ' + (params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'||params.show_label_icon!=='none'){
const ticketLabel=(!params.price_ticket_label||params.price_ticket_label===''||params.price_ticket_label==='Ticket') ? 'Ticket':params.price_ticket_label;
eventHtml +='<span class="event__ticket_label ecs-detail-label">' + __t(ticketLabel) + (params.show_colon_label==='on' ? ': ':' ') + '</span>';
}
eventHtml +='</div>';
eventHtml +='<span class="event__ticket_value">' + ' ' + event.ticket + '</span>';
eventHtml +='</div>';
}}
if(params.show_rsvp==="on"&&event.rsvp){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__rsvp_value">' + ' ' + event.rsvp + '</span>';
}else{
eventHtml +='<div class="event__rsvp ' + (params.show_label_icon||'') + ' ' + (params.stack_label_icon==='on' ? 'stacked':'') + ' ' + (params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'||params.show_label_icon!=='none'){
const rsvpLabel=(params.rsvp_label===''||params.rsvp_label==='RSVP') ? 'RSVP':params.rsvp_label;
eventHtml +='<span class="event__rsvp_label ecs-detail-label">' + __t(rsvpLabel) + (params.show_colon_label==='on' ? ': ':' ') + '</span>';
}
eventHtml +='</div>';
eventHtml +='<span class="event__rsvp_value">' + ' ' + event.rsvp + '</span>';
eventHtml +='</div>';
}}
if(params.show_price==="on"&&event.price){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__price_value">' + ' ' + event.price + '</span>';
}else{
eventHtml +='<div class="event__price ' + (params.stack_label_icon==='on' ? 'stacked':'') + ' ' + (params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'||params.show_label_icon!=='none'){
const priceLabel=(!params.price_detail_label||params.price_detail_label===''||params.price_detail_label==='Price') ? 'Price':params.price_detail_label;
eventHtml +='<span class="event__price_label ecs-detail-label">' + __t(priceLabel) + (params.show_colon_label==='on' ? ': ':' ') + '</span>';
}
eventHtml +='</div>';
eventHtml +='<span class="event__price_value">' + ' ' + event.price + '</span>';
eventHtml +='</div>';
}}
if(params.show_website==="on"&&event.event_website){
if(params.stack_event_d==='off'){
eventHtml +='<span class="event__website_value"> <a href="' + event.event_website + '">' + __t('View Events Website') + '</a></span>';
}else{
eventHtml +='<div class="event__website ' + (params.stack_label_icon==='on' ? 'stacked':'') + ' ' + (params.show_label_icon||'') + '">';
eventHtml +='<div class="label-icon-line">';
if(params.show_label_icon==='label'||params.show_label_icon==='label_icon'){
const websiteLabel=(params.website_label===''||params.website_label==='Website') ? 'Website':params.website_label;
const label=__t(websiteLabel);
const sep=params.show_colon_label==='on' ? ':&nbsp;':'&nbsp;';
eventHtml +=`<span class="event__website_label ecs-detail-label">${label}${sep}</span>`;
}
eventHtml +='</div>';
eventHtml +='<span class="event__website_value"><a href="' + event.event_website + '">' + __t('View Events Website') + '</a></span>';
eventHtml +='</div>';
}}
if(params.stack_event_d==='off'){
eventHtml +='</div>';
}
if(params.show_excerpt==='on'){
let t='';
if(params.excerpt_content==='show_desc'&&event.post_description){
t=event.post_description;
}else if(event.post_excerpt){
t=event.post_excerpt;
}
if(typeof params.excerpt_length!=='undefined'&&params.excerpt_length > 0&&t){
t=t.substring(0, params.excerpt_length) + '...';
}
if(t){
eventHtml +='<div class="event__des_excer"><p class="ecs-excerpt">' + t + '</p></div>';
}}
if(params.show_more_info==='on'){
const buttonText=event.more_info_button_text||translateMoreInfoButtonText(params.show_more_info_btn_text);
const buttonAlign=getResponsiveButtonAlign(params);
const buttonAlignClass=(buttonAlign==='on') ? 'button-align-bottom':'';
if([
'image_detail',
'detail_image',
'calloutOnImage_Datail',
'callout_detail_image',
'callout_image_detail'
].includes(layoutType)){
eventHtml +='<div class="event__show_more_if ' + buttonAlignClass + '" data-button-align-desktop="' + (params.button_align||'off') + '" data-button-align-tablet="' + (params.button_align_tablet||'') + '" data-button-align-phone="' + (params.button_align_phone||'') + '">';
eventHtml +='<div class="ecs-showdetail dec-more-info-button et_pb_button_wrapper mb-2 ' + buttonAlignClass + '">';
const buttonLink=getEventButtonLink(event, params);
let iconDataAttrs='';
if(params.more_info_button_icon_desktop){
iconDataAttrs +=' data-icon="' + escapeHtml(params.more_info_button_icon_desktop) + '"';
}
if(params.more_info_button_icon_tablet){
iconDataAttrs +=' data-icon-tablet="' + escapeHtml(params.more_info_button_icon_tablet) + '"';
}
if(params.more_info_button_icon_phone){
iconDataAttrs +=' data-icon-phone="' + escapeHtml(params.more_info_button_icon_phone) + '"';
}
var moreInfoBtnClass='act-view-more et_pb_button' + (params.button_make_fullwidth==='on' ? ' act-view-more-fullwidth':'') + getButtonIconClassSuffix(params, 'more_info');
if(buttonLink.showLink){
eventHtml +='<a href="' + buttonLink.url + '" rel="bookmark" class="' + moreInfoBtnClass + '"' + buttonLink.target + iconDataAttrs + '>' +
buttonText + '</a>';
}else{
eventHtml +='<span class="' + moreInfoBtnClass + ' disabled"' + iconDataAttrs + '>' + buttonText + '</span>';
}
eventHtml +='</div></div>';
}else{
if(params.layout==='grid'||params.layout=='cover'){
eventHtml +='<div class="event__show_more_if ' + buttonAlignClass + '" data-button-align-desktop="' + (params.button_align||'off') + '" data-button-align-tablet="' + (params.button_align_tablet||'') + '" data-button-align-phone="' + (params.button_align_phone||'') + '">';
eventHtml +='<div class="ecs-showdetail dec-more-info-button et_pb_button_wrapper mb-2 ' + buttonAlignClass + '">';
const buttonLink=getEventButtonLink(event, params);
let iconDataAttrs='';
if(params.more_info_button_icon_desktop){
iconDataAttrs +=' data-icon="' + escapeHtml(params.more_info_button_icon_desktop) + '"';
}
if(params.more_info_button_icon_tablet){
iconDataAttrs +=' data-icon-tablet="' + escapeHtml(params.more_info_button_icon_tablet) + '"';
}
if(params.more_info_button_icon_phone){
iconDataAttrs +=' data-icon-phone="' + escapeHtml(params.more_info_button_icon_phone) + '"';
}
var moreInfoBtnClassGrid='act-view-more et_pb_button' + (params.button_make_fullwidth==='on' ? ' act-view-more-fullwidth':'') + getButtonIconClassSuffix(params, 'more_info');
if(buttonLink.showLink){
eventHtml +='<a href="' + buttonLink.url + '" rel="bookmark" class="' + moreInfoBtnClassGrid + '"' + buttonLink.target + iconDataAttrs + '>' +
buttonText + '</a>';
}else{
eventHtml +='<span class="' + moreInfoBtnClassGrid + ' disabled"' + iconDataAttrs + '>' + buttonText + '</span>';
}
eventHtml +='</div></div>';
}}
}
eventHtml +='</div></div>';
if(params.show_more_info==='on'&&[
'callout_image_detail_button',
'callout_detail_image_button',
'calloutOnImage_Datail_button'
].includes(layoutType)){
let iconDataAttrsSeparate='';
if(params.more_info_button_icon_desktop){
iconDataAttrsSeparate +=' data-icon="' + escapeHtml(params.more_info_button_icon_desktop) + '"';
}
if(params.more_info_button_icon_tablet){
iconDataAttrsSeparate +=' data-icon-tablet="' + escapeHtml(params.more_info_button_icon_tablet) + '"';
}
if(params.more_info_button_icon_phone){
iconDataAttrsSeparate +=' data-icon-phone="' + escapeHtml(params.more_info_button_icon_phone) + '"';
}
const buttonText=event.more_info_button_text||translateMoreInfoButtonText(params.show_more_info_btn_text);
const buttonAlignClass=(buttonAlign==='on') ? 'button-align-bottom':'';
var buttonAlignEnabledClassButton=(buttonAlign==='on') ? 'button-align-enabled':'';
eventHtml +='<div class="button-column ' + buttonAlignEnabledClassButton + '">';
eventHtml +='<div class="event__show_more_if ' + buttonAlignClass + '" data-button-align-desktop="' + (params.button_align||'off') + '" data-button-align-tablet="' + (params.button_align_tablet||'') + '" data-button-align-phone="' + (params.button_align_phone||'') + '">';
eventHtml +='<div class="ecs-showdetail dec-more-info-button et_pb_button_wrapper ' + buttonAlignClass + '">';
const buttonLink=getEventButtonLink(event, params);
var moreInfoBtnClassSep='act-view-more et_pb_button' + (params.button_make_fullwidth==='on' ? ' act-view-more-fullwidth':'') + getButtonIconClassSuffix(params, 'more_info');
if(buttonLink.showLink){
eventHtml +='<a href="' + buttonLink.url + '" rel="bookmark" class="' + moreInfoBtnClassSep + '"' + buttonLink.target + iconDataAttrsSeparate + '>' +
buttonText + '</a>';
}else{
eventHtml +='<span class="' + moreInfoBtnClassSep + ' disabled"' + iconDataAttrsSeparate + '>' + buttonText + '</span>';
}
eventHtml +='</div></div></div>';
}
eventHtml +='</div></div>';
allEventHtml +=eventHtml;
});
var noResultsMessage='';
if(events.length===0){
var resultsMessage=container.siblings('.events-main__container').find('input.hidden-data-field[name="results_message"]').val() ||
'There are no upcoming events at this time.';
noResultsMessage='<div class="ecs-event-list event-display_stylecover">' +
'<div class="events-results-message">' + resultsMessage + '</div>' +
'</div>';
}
if(response.data.pagination.pagination_type==='load_more'){
container.append(allEventHtml);
}else{
container.html(allEventHtml);
container.append(hiddenF);
if(noResultsMessage){
container.after(noResultsMessage);
}else{
container.siblings('.ecs-event-list.event-display_stylecover').remove();
}}
setTimeout(function(){
calculateEqualHeights(thiscontainer);
}, 200);
updatePagination(response.data.pagination, params, $(e).closest('.pagination-container'));
},
error: function (){
alert(__t("AJAX error occurred!"));
}});
}
$(document).on('click', '.prev, .next, .dec-numeric a, .load-more-btn', function (e){
e.preventDefault();
const button=$(this);
const hiddenF=$(this).closest('.pagination-container').siblings('.events-main__container').find('.hidden_feild');
var page=$(this).data('page');
var per_page=$(this).data('per-page')||$(hiddenF).find('input[name="per_page"]').val()||3;
decm_get_event(button, page, per_page, hiddenF);
});
function updatePagination(paginationData, params, $paginationContainer){
var container=$paginationContainer.siblings('.events-main__container');
var hiddenFields=container.find('.hidden_feild');
var originalPerPage=hiddenFields.find('input[name="per_page"]').val()||params.per_page||'3';
var paginationHtml='';
switch (paginationData.pagination_type){
case 'paged':
paginationHtml=`
<div class="dec-pagination dec-prev-next">
${paginationData.current_page > 1 ?
`<a href="#" class="prev ecs-page_alignment_left" data-page="${paginationData.current_page - 1}">${__t(params.prv_link_btn)}</a>`:''}
${paginationData.current_page < paginationData.total_pages ?
`<a href="#" class="next ecs-page_alignment_right" data-page="${paginationData.current_page + 1}">${__t(params.next_link_btn)}</a>`:''}
</div>`;
break;
case 'numeric_pagination': {
const total=Number(paginationData.total_pages)||1;
const cur=Math.min(total, Math.max(1, Number(paginationData.current_page)||1));
let html='<div class="dec-pagination dec-numeric">';
html +=`<span class="dec-page-text-container">
<span class="dec-page-text-display">${__t('Page')}</span> ${cur} ${__t('of')} ${total}
</span>`;
if(cur > 1){
html +=`<a href="#" data-page="1" class="dec-page-text-display ecs-page-numbers">${__t('First »')}</a>`;
}
const addPage=(p)=> {
html +=`<a href="#" class="ecs-page-numbers ${p===cur ? 'current':''}" data-page="${p}">${p}</a>`;
};
const addEllipsis=()=> {
html +=`<span class="dec-ellipsis" aria-hidden="true">…</span>`;
};
const pagesSet=new Set([1, 2, 3, total, cur - 1, cur, cur + 1]);
const pages=[...pagesSet].filter(p=> p >=1&&p <=total).sort((a, b)=> a - b);
let prev=null;
for (const p of pages){
if(prev!==null&&p - prev > 1) addEllipsis();
addPage(p);
prev=p;
}
if(cur < total){
html +=`<a href="#" data-page="${total}" class="dec-page-text-display ecs-page-numbers">${__t('Last »')}</a>`;
}
html +='</div>';
paginationHtml=html;
break;
}
case 'load_more':
if(paginationData.current_page < paginationData.total_pages){
let loadMoreIconDataAttrs='';
if(params.load_more_button_icon_desktop){
loadMoreIconDataAttrs +=' data-icon="' + escapeHtml(params.load_more_button_icon_desktop) + '"';
}
if(params.load_more_button_icon_tablet){
loadMoreIconDataAttrs +=' data-icon-tablet="' + escapeHtml(params.load_more_button_icon_tablet) + '"';
}
if(params.load_more_button_icon_phone){
loadMoreIconDataAttrs +=' data-icon-phone="' + escapeHtml(params.load_more_button_icon_phone) + '"';
}
paginationHtml=`
<div class="dec-load-more ecs-showdetail et_pb_button_wrapper   mb-2">
<a href="#" role="button" class="load-more-btn ecs-ajax_load_more act-view-more et_pb_button${getButtonIconClassSuffix(params, 'load_more')}"${loadMoreIconDataAttrs}
data-page="${paginationData.current_page + 1}"
data-per-page="${originalPerPage}">
${__t(params.load_more_text)}
</a>
</div>`;
}
break;
}
$paginationContainer.find('.dec-pagination').remove();
$paginationContainer.html(paginationHtml);
}
var resizeTimeout;
$(window).on('resize', function(){
clearTimeout(resizeTimeout);
resizeTimeout=setTimeout(function(){
$('.events-main__container.button-align-enabled').each(function(){
calculateEqualHeights($(this));
});
}, 150);
});
});
function waitForElement(selector, callback){
const observer=new MutationObserver(()=> {
const element=document.querySelector(selector);
if(element){
observer.disconnect();
callback(element);
}});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
function modifyLiElement(){
waitForElement('li[data-range-key="Aujourd"]', function(liElement){
liElement.textContent="Aujourd'hui";
});
}
function exampleCustomFunction(){
console.log("This is an example of a custom function.");
}
document.addEventListener('DOMContentLoaded', function(){
modifyLiElement();
exampleCustomFunction();
});
document.addEventListener('DOMContentLoaded', function(){
var dateEventsContainer=document.getElementById('date-events');
if(dateEventsContainer){
var container=dateEventsContainer.querySelector('#difl-inline-contents-container');
if(container){
var spans=container.getElementsByClassName('difl_inline_contents_item');
if(spans.length < 3||!spans[2].textContent.trim()){
spans[1].style.display='none';
}}
}});
jQuery(document).ready(function(){
var text_expand_text="Voir plus";
var text_collapse_text="Voir moins";
var text_expand_icon="3";
var text_collapse_icon="2";
jQuery(".pa-toggle-content").each(function(){
jQuery(this).append('<div class="pa-text-expand-button"><span class="pa-text-collapse-button">' + text_expand_text + '</span></div>');
jQuery(this).find(".pa-text-collapse-button").on("click", function(){
jQuery(this).parent().siblings(".et_pb_text_inner").toggleClass("pa-text-toggle-expanded");
if(jQuery(this).parent().siblings(".et_pb_text_inner").hasClass("pa-text-toggle-expanded")){
jQuery(this).html(text_collapse_text);
}else{
jQuery(this).html(text_expand_text);
}});
});
});
jQuery(document).ready(function($){
    $('.decm-events-details').each(function(){
        var categories=$(this).find('.decm-show-data-display-block.ecs-categories');
var dateEvent=$(this).find('.decm-show-data-display-block.ecs-eventDate');
        var title1=$(this).find('.entry-title.title1.summary');
       
        if(categories.length&&title1.length&&dateEvent.length){
            categories.insertBefore(title1);
dateEvent.insertBefore(title1);
        }
    });
});