(function ($){
'use strict';
$(window).on('elementor/frontend/init', function (){
elementorFrontend.hooks.addAction('frontend/element_ready/widget', function ($scope){
try {
initWidgetFoldingForElement($scope);
} catch (e){
console.error(e);
}
var modelCid=$scope.data('model-cid')||$scope.attr('data-model-cid');
if(!modelCid||!elementor.channels||!elementor.channels.editor){
return;
}
var model=elementor.channels.editor.request('editor:model', modelCid);
if(!model) return;
model.on('change:enable_folding', function (){
console.log('enable_folding changed', $scope);
try {
initWidgetFoldingForElement($scope);
console.log('enable_folding changed → re-init folding', $scope);
} catch (e){
console.error(e);
}});
});
});
})(jQuery);
function initWidgetFoldingForElement($element){
if(! $element.hasClass('penci-widget-folded-yes') ){
return;
}
var $container=$element.find(".elementor-widget-container");
var readMoreText=readLessText=ajax_var_more.more;
$element.find(".widget-fold-button-wrapper").remove();
var originalHeight=$container.outerHeight();
var foldedHeight=$element.outerHeight();
if(foldedHeight >=originalHeight){
return;
}
var buttonHtml=`<div class="widget-fold-button-wrapper">
<button class="widget-fold-button" data-read-more="${readMoreText}" data-read-less="${readLessText}">
${readMoreText}
</button>
</div>`;
$container.append(buttonHtml);
$element.find(".widget-fold-button").on("click", function(e){
e.preventDefault();
var $button=jQuery(this);
var $widget=$button.closest(".elementor-element");
if($widget.hasClass("penci-widget-folded-yes")){
$widget.removeClass("penci-widget-folded-yes").addClass("widget-expanded");
$button.text($button.data("read-less"));
}else{
$widget.removeClass("widget-expanded").addClass("penci-widget-folded-yes");
$button.text($button.data("read-more"));
}});
};