var isAdminBar = false,
isEditMode = false;
(function ($) {
var get_acf_ElementSettings = function ($element) {
var elementSettings = {},
modelCID = $element.data('model-cid');
if (elementorFrontend.isEditMode() && modelCID) {
var settings = elementorFrontend.config.elements.data[ modelCID ],
settingsKeys = elementorFrontend.config.elements.keys[ settings.attributes.widgetType || settings.attributes.elType ];
jQuery.each(settings.getActiveControls(), function (controlKey) {
if (-1 !== settingsKeys.indexOf(controlKey)) {
elementSettings[ controlKey ] = settings.attributes[ controlKey ];
}
});
} else {
elementSettings = $element.data('settings') || {};
}
return elementSettings;
}
//
var dropCap = function ($target) {
if ($target.length) {
$first_p = $target.html().trim(); // removes any leading whitespace
if ($first_p.charAt(0) != '<') {
// not a html tag
$target.html('' + $first_p.charAt(0) + '' + $first_p.substring(1));
} else {
$first_p = $target.find('*:first-child').html().trim();
$target.find('*:first-child').html('' + $first_p.charAt(0) + '' + $first_p.substring(1));
}
}
};
var WidgetElementsACFDCEHandler = function ($scope, $) {
var elementSettings = get_acf_ElementSettings($scope);
if( elementSettings.acf_type == 'number' ) {
var acfNumbers = document.querySelectorAll("#" + elementSettings.acf_field_list);
if ( elementSettings.acf_currency_mode && elementSettings.acf_settoDecimal ) {
acfNumbers.forEach(function(acfNumber) {
number = acfNumber.innerHTML;
number = new Number(number).toLocaleString( elementSettings.acf_currency_type, { minimumFractionDigits: elementSettings.acf_integerDecimalOpt, maximumFractionDigits: elementSettings.acf_integerDecimalOpt });
acfNumber.innerHTML = number;
});
} else if ( elementSettings.acf_currency_mode && !elementSettings.acf_settoDecimal ) {
acfNumbers.forEach(function(acfNumber) {
number = acfNumber.innerHTML;
number = new Number(number).toLocaleString( elementSettings.acf_currency_type );
acfNumber.innerHTML = number;
});
} else if ( !elementSettings.acf_currency_mode && elementSettings.acf_settoDecimal ) {
acfNumbers.forEach(function(acfNumber) {
number = acfNumber.innerHTML;
number = new Number(number).toFixed( elementSettings.acf_integerDecimalOpt );
acfNumber.innerHTML = number;
});
}
}
if (elementSettings.drop_cap) {
var target = $scope.find('p:first');
if (!target.length) {
target = $scope.find('.edc-acf:first');
}
dropCap(target);
}
var bindEvents = function () {
$scope.find('.elementor-custom-embed-image-overlay').on('click', handleVideo);
};
var handleVideo = function () {
if (elementSettings.lightbox) {
alert(elementSettings.lightbox);
} else {
$(this).fadeOut(1000, function () {
$(this).remove();
playVideo();
});
}
};
var playVideo = function () {
var $videoFrame = $scope.find('iframe'),
newSourceUrl = $videoFrame[0].src.replace('&autoplay=0', '');
$videoFrame[0].src = newSourceUrl + '&autoplay=1';
};
bindEvents();
};
// Make sure you run this code under Elementor..
$(window).on('elementor/frontend/init', function () {
elementorFrontend.hooks.addAction('frontend/element_ready/dyncontel-acf.default', WidgetElementsACFDCEHandler);
});
})(jQuery);