Commit realizado el 12:13:52 08-04-2024

This commit is contained in:
Pagina Web Monito
2024-04-08 12:13:55 -04:00
commit 0c33094de9
7815 changed files with 1365694 additions and 0 deletions

View File

@@ -0,0 +1,201 @@
/* global wpforms_builder, wpforms_education */
/**
* WPForms Education core for Lite.
*
* @since 1.6.6
*/
'use strict';
var WPFormsEducation = window.WPFormsEducation || {};
WPFormsEducation.liteCore = window.WPFormsEducation.liteCore || ( function( document, window, $ ) {
/**
* Public functions and properties.
*
* @since 1.6.6
*
* @type {object}
*/
var app = {
/**
* Start the engine.
*
* @since 1.6.6
*/
init: function() {
$( app.ready );
},
/**
* Document ready.
*
* @since 1.6.6
*/
ready: function() {
app.events();
},
/**
* Register JS events.
*
* @since 1.6.6
*/
events: function() {
app.openModalButtonClick();
},
/**
* Registers click events that should open upgrade modal.
*
* @since 1.6.6
*/
openModalButtonClick: function() {
$( document )
.on( 'click', '.education-modal:not(.wpforms-add-fields-button)', app.openModalButtonHandler )
.on( 'mousedown', '.education-modal.wpforms-add-fields-button', app.openModalButtonHandler );
},
/**
* Open education modal handler.
*
* @since 1.8.0
*
* @param {Event} event Event.
*/
openModalButtonHandler: function( event ) {
const $this = $( this );
if ( $this.data( 'action' ) && [ 'activate', 'install' ].includes( $this.data( 'action' ) ) ) {
return;
}
event.preventDefault();
event.stopImmediatePropagation();
let name = $this.data( 'name' );
if ( $this.hasClass( 'wpforms-add-fields-button' ) ) {
name = $this.text();
name += name.indexOf( wpforms_builder.field ) < 0 ? ' ' + wpforms_builder.field : '';
}
const utmContent = WPFormsEducation.core.getUTMContentValue( $this );
app.upgradeModal( name, utmContent, $this.data( 'license' ), $this.data( 'video' ), $this.data( 'plural' ) );
},
/**
* Upgrade modal.
*
* @since 1.6.6
*
* @param {string} feature Feature name.
* @param {string} utmContent UTM content.
* @param {string} type Feature license type: pro or elite.
* @param {string} video Feature video URL.
* @param {boolean} isPlural Is feature name plural.
*/
upgradeModal( feature, utmContent, type, video, isPlural ) {
// Provide a default value.
if ( typeof type === 'undefined' || type.length === 0 ) {
type = 'pro';
}
// Make sure we received only supported type.
if ( $.inArray( type, [ 'pro', 'elite' ] ) < 0 ) {
return;
}
const message = wpforms_education.upgrade[ type ].message.replace( /%name%/g, feature );
const isVideoModal = ! _.isEmpty( video );
const titleMessage = isPlural ? wpforms_education.upgrade[ type ].title_plural : wpforms_education.upgrade[ type ].title;
let modalWidth = WPFormsEducation.core.getUpgradeModalWidth( isVideoModal );
const modal = $.alert( {
backgroundDismiss: true,
title : feature + ' ' + titleMessage,
icon : 'fa fa-lock',
content : message,
boxWidth : modalWidth,
theme : 'modern,wpforms-education',
closeIcon : true,
onOpenBefore: function() {
if ( isVideoModal ) {
this.$el.addClass( 'has-video' );
}
var videoHtml = isVideoModal ? '<iframe src="' + video + '" class="feature-video" frameborder="0" allowfullscreen="" width="475" height="267"></iframe>' : '';
this.$btnc.after( '<div class="discount-note">' + wpforms_education.upgrade_bonus + '</div>' );
this.$btnc.after( wpforms_education.upgrade[type].doc.replace( /%25name%25/g, feature ) );
this.$btnc.after( videoHtml );
this.$body.find( '.jconfirm-content' ).addClass( 'lite-upgrade' );
},
buttons : {
confirm: {
text : wpforms_education.upgrade[type].button,
btnClass: 'btn-confirm',
keys : [ 'enter' ],
action: function() {
window.open( WPFormsEducation.core.getUpgradeURL( utmContent, type ), '_blank' );
app.upgradeModalThankYou( type );
},
},
},
} );
$( window ).on( 'resize', function() {
modalWidth = WPFormsEducation.core.getUpgradeModalWidth( isVideoModal );
if ( modal.isOpen() ) {
modal.setBoxWidth( modalWidth );
}
} );
},
/**
* Upgrade modal second state.
*
* @since 1.6.6
*
* @param {string} type Feature license type: pro or elite.
*/
upgradeModalThankYou: function( type ) {
$.alert( {
title : wpforms_education.thanks_for_interest,
content : wpforms_education.upgrade[type].modal,
icon : 'fa fa-info-circle',
type : 'blue',
boxWidth: '565px',
buttons : {
confirm: {
text : wpforms_education.ok,
btnClass: 'btn-confirm',
keys : [ 'enter' ],
},
},
} );
},
};
// Provide access to public functions/properties.
return app;
}( document, window, jQuery ) );
// Initialize.
WPFormsEducation.liteCore.init();

View File

@@ -0,0 +1 @@
"use strict";var WPFormsEducation=window.WPFormsEducation||{};WPFormsEducation.liteCore=window.WPFormsEducation.liteCore||function(t,c,u){var l={init:function(){u(l.ready)},ready:function(){l.events()},events:function(){l.openModalButtonClick()},openModalButtonClick:function(){u(t).on("click",".education-modal:not(.wpforms-add-fields-button)",l.openModalButtonHandler).on("mousedown",".education-modal.wpforms-add-fields-button",l.openModalButtonHandler)},openModalButtonHandler:function(o){var e=u(this);if(!e.data("action")||!["activate","install"].includes(e.data("action"))){o.preventDefault(),o.stopImmediatePropagation();let t=e.data("name");e.hasClass("wpforms-add-fields-button")&&(t=e.text(),t+=t.indexOf(wpforms_builder.field)<0?" "+wpforms_builder.field:"");o=WPFormsEducation.core.getUTMContentValue(e);l.upgradeModal(t,o,e.data("license"),e.data("video"),e.data("plural"))}},upgradeModal(o,e,n,a,i){if(void 0!==n&&0!==n.length||(n="pro"),!(u.inArray(n,["pro","elite"])<0)){var d=wpforms_education.upgrade[n].message.replace(/%name%/g,o);const r=!_.isEmpty(a);i=i?wpforms_education.upgrade[n].title_plural:wpforms_education.upgrade[n].title;let t=WPFormsEducation.core.getUpgradeModalWidth(r);const s=u.alert({backgroundDismiss:!0,title:o+" "+i,icon:"fa fa-lock",content:d,boxWidth:t,theme:"modern,wpforms-education",closeIcon:!0,onOpenBefore:function(){r&&this.$el.addClass("has-video");var t=r?'<iframe src="'+a+'" class="feature-video" frameborder="0" allowfullscreen="" width="475" height="267"></iframe>':"";this.$btnc.after('<div class="discount-note">'+wpforms_education.upgrade_bonus+"</div>"),this.$btnc.after(wpforms_education.upgrade[n].doc.replace(/%25name%25/g,o)),this.$btnc.after(t),this.$body.find(".jconfirm-content").addClass("lite-upgrade")},buttons:{confirm:{text:wpforms_education.upgrade[n].button,btnClass:"btn-confirm",keys:["enter"],action:function(){c.open(WPFormsEducation.core.getUpgradeURL(e,n),"_blank"),l.upgradeModalThankYou(n)}}}});u(c).on("resize",function(){t=WPFormsEducation.core.getUpgradeModalWidth(r),s.isOpen()&&s.setBoxWidth(t)})}},upgradeModalThankYou:function(t){u.alert({title:wpforms_education.thanks_for_interest,content:wpforms_education.upgrade[t].modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_education.ok,btnClass:"btn-confirm",keys:["enter"]}}})}};return l}(document,window,jQuery),WPFormsEducation.liteCore.init();

View File

@@ -0,0 +1,472 @@
/* global wpforms_education_lite_connect, WPFormsChallenge */
/**
* WPForms Education for Lite.
*
* Lite Connect feature.
*
* @since 1.7.4
*/
'use strict';
var WPFormsEducation = window.WPFormsEducation || {};
WPFormsEducation.liteConnect = window.WPFormsEducation.liteConnect || ( function( document, window, $ ) {
/**
* Public functions and properties.
*
* @since 1.7.4
*
* @type {object}
*/
var app = {
/**
* Start the engine.
*
* @since 1.7.4
*/
init: function() {
$( app.ready );
// Page load.
$( window ).on( 'load', function() {
// In the case of jQuery 3.+, we need to wait for a ready event first.
if ( typeof $.ready.then === 'function' ) {
$.ready.then( app.load );
} else {
app.load();
}
} );
},
/**
* Document ready.
*
* @since 1.7.4
*/
ready: function() {
},
/**
* Page load.
*
* @since 1.7.4
*/
load: function() {
app.events();
app.initLiteConnectToggle();
app.maybeRevealBuilderTopBar();
},
/**
* Register JS events.
*
* @since 1.7.4
*/
events: function() {
app.enableLiteConnectToggleClick();
app.enableLiteConnectButtonClick();
app.dismissBuilderTopBarClick();
app.autoSaveToggleChange();
},
/**
* Init Lite Connect toggle.
*
* @since 1.7.5
*/
initLiteConnectToggle: function() {
$( '.wpforms-toggle-control.wpforms-setting-lite-connect-auto-save-toggle input' ).prop( 'disabled', false );
},
/**
* Enable Lite Connect toggle mousedown handler.
*
* @since 1.7.4
*/
enableLiteConnectToggleClick: function() {
$( document ).on(
'mousedown touchstart',
'.wpforms-toggle-control.wpforms-setting-lite-connect-auto-save-toggle',
function( event ) {
var $input = $( this ).find( 'input' ),
isEnabled = $input.is( ':checked' ),
isTouchDevice = 'ontouchstart' in document.documentElement;
if ( ! isTouchDevice ) {
event.preventDefault();
}
if ( $input.prop( 'disabled' ) ) {
return;
}
app.openSettingsLiteConnectModal( isEnabled, function() {
$input
.trigger( 'click' )
.prop( 'disabled', true );
} );
}
);
},
/**
* Enable Lite Connect button click handler.
*
* @since 1.7.4
*/
enableLiteConnectButtonClick: function() {
$( document ).on(
'click',
'.wpforms-dyk-lite-connect .button-primary',
function( event ) {
event.preventDefault();
var $button = $( this );
if ( $button.hasClass( 'wpforms-is-enabled' ) ) {
window.open( $button.attr( 'href' ) );
return;
}
app.openSettingsLiteConnectModal(
false,
app.enableLiteConnectButtonModalConfirm
);
}
);
},
/**
* Enable Lite Connect button modal confirm Callback.
*
* @since 1.7.4
*/
enableLiteConnectButtonModalConfirm: function() {
var $toggle = $( '.wpforms-dyk-lite-connect .button-primary' );
app.saveSettingAjaxPost( true, $toggle, function() {
app.switchSettingView( true, $toggle );
} );
},
/**
* Form Entry Backups information modal.
*
* @since 1.7.4
*
* @param {boolean} isEnabled Current setting state.
* @param {Function} confirmCallback Confirm button action.
*/
openSettingsLiteConnectModal: function( isEnabled, confirmCallback ) {
if ( isEnabled ) {
app.openSettingsLiteConnectDisableModal( confirmCallback );
} else {
app.openSettingsLiteConnectEnableModal( confirmCallback );
}
},
/**
* Form Entry Backups enable information modal.
*
* @since 1.7.4
*
* @param {Function} confirmCallback Confirm button action.
*/
openSettingsLiteConnectEnableModal: function( confirmCallback ) {
$.alert( {
title: false,
content: wp.template( 'wpforms-settings-lite-connect-modal-content' )(),
icon: false,
type: 'orange',
boxWidth: '550px',
theme: 'modern',
useBootstrap: false,
scrollToPreviousElement: false,
buttons: {
confirm: {
text: wpforms_education_lite_connect.enable_modal.confirm,
btnClass: 'btn-confirm',
keys: [ 'enter' ],
action: function() {
if ( typeof confirmCallback === 'function' ) {
confirmCallback();
}
// Maybe close Challenge popup.
if ( window.WPFormsChallenge ) {
var completeChallenge = WPFormsChallenge.embed && WPFormsChallenge.embed.completeChallenge;
}
if ( typeof completeChallenge === 'function' ) {
completeChallenge();
}
},
},
cancel: {
text: wpforms_education_lite_connect.enable_modal.cancel,
action: function() {
$( '.wpforms-challenge-popup-container' ).removeClass( 'wpforms-invisible' );
},
},
},
onOpenBefore: function() {
$( 'body' ).addClass( 'wpforms-setting-lite-connect-modal' );
$( '.wpforms-challenge-popup-container' ).addClass( 'wpforms-invisible' );
},
onDestroy: function() {
$( 'body' ).removeClass( 'wpforms-setting-lite-connect-modal' );
},
} );
},
/**
* Form Entry Backups disable information modal.
*
* @since 1.7.4
*
* @param {Function} confirmCallback Confirm button action.
*/
openSettingsLiteConnectDisableModal: function( confirmCallback ) {
$.alert( {
title: wpforms_education_lite_connect.disable_modal.title,
content: wpforms_education_lite_connect.disable_modal.content,
icon: 'fa fa-exclamation-circle',
type: 'red',
boxWidth: '400px',
theme: 'modern',
useBootstrap: false,
animateFromElement: false,
scrollToPreviousElement: false,
buttons: {
cancel: {
text: wpforms_education_lite_connect.disable_modal.cancel,
keys: [ 'enter' ],
btnClass: 'btn-confirm',
},
confirm: {
text: wpforms_education_lite_connect.disable_modal.confirm,
action: function() {
if ( typeof confirmCallback === 'function' ) {
confirmCallback();
}
},
},
},
} );
},
/**
* Save Lite Connect Enabled setting AJAX post call.
*
* @since 1.7.4
*
* @param {boolean} isEnabled Lite Connect setting flag.
* @param {jQuery|undefined} $toggle Toggle control outer element.
* @param {Function} successCallback Success result callback.
*/
saveSettingAjaxPost: function( isEnabled, $toggle, successCallback ) {
$toggle = $toggle || $();
var $input = $toggle.find( 'input' );
// Perform AJAX request.
$.post(
wpforms_education_lite_connect.ajax_url,
{
action: 'wpforms_update_lite_connect_enabled_setting',
value: isEnabled ? 1 : 0,
nonce: wpforms_education_lite_connect.nonce,
}
).done( function( res ) {
if ( ! res.success ) {
$input.prop( 'checked', ! isEnabled );
app.updateResultModal( 'error' );
return;
}
app.updateResultModal( isEnabled ? 'enabled' : 'disabled' );
if ( typeof successCallback === 'function' ) {
successCallback();
}
} ).fail( function( xhr, textStatus, e ) {
$input.prop( 'checked', ! isEnabled );
app.updateResultModal( 'error' );
} ).always( function( xhr, textStatus, e ) {
$input.prop( 'disabled', false );
} );
},
/**
* Lite Connect toggle `change` event handler with "auto save" feature.
*
* @since 1.7.4
*/
autoSaveToggleChange: function() {
$( document ).on(
'change',
'.wpforms-toggle-control.wpforms-setting-lite-connect-auto-save-toggle input',
function() {
var $input = $( this ),
$toggle = $input.closest( '.wpforms-toggle-control' ),
isEnabled = $input.is( ':checked' );
app.saveSettingAjaxPost( isEnabled, $toggle, function() {
app.switchSettingView( isEnabled, $toggle );
} );
}
);
},
/**
* After updating setting via AJAX we should hide toggle container and show info container.
*
* @since 1.7.4
*
* @param {boolean} isEnabled Toggle state.
* @param {jQuery} $toggle Toggle control.
*/
switchSettingView: function( isEnabled, $toggle ) {
var $wrapper = $toggle.closest( '.wpforms-education-lite-connect-wrapper' ),
$setting = $wrapper.find( '.wpforms-education-lite-connect-setting' ),
$enabledInfo = $wrapper.find( '.wpforms-education-lite-connect-enabled-info' );
$setting.toggleClass( 'wpforms-hidden', isEnabled );
$enabledInfo.toggleClass( 'wpforms-hidden', ! isEnabled );
},
/**
* Update result message modal.
*
* @since 1.7.4
*
* @param {string} msg Message slug.
*/
updateResultModal: function( msg ) {
if ( ! wpforms_education_lite_connect.update_result[ msg ] ) {
return;
}
$.alert( {
title: wpforms_education_lite_connect.update_result[ msg + '_title' ],
content: wpforms_education_lite_connect.update_result[ msg ],
icon: 'fa fa-check-circle',
type: msg === 'error' ? 'red' : 'green',
theme: 'modern',
boxWidth: '400px',
useBootstrap: false,
animation: 'scale',
closeAnimation: 'scale',
animateFromElement: false,
scrollToPreviousElement: false,
buttons: {
confirm: {
text : wpforms_education_lite_connect.update_result.close,
btnClass: 'btn-confirm',
keys : [ 'enter' ],
},
},
} );
},
/**
* Reveal top bar in the Form Builder.
*
* @since 1.7.4
*/
maybeRevealBuilderTopBar: function() {
// Skip it is not Form Builder or Entry Backups is already enabled or top bar is dismissed.
if (
! window.wpforms_builder ||
wpforms_education_lite_connect.is_enabled === '1' ||
$( '#wpforms-builder-lite-connect-top-bar' ).length === 0
) {
return;
}
setTimeout( function() {
app.toggleBuilderTopBar( true );
}, 3000 );
},
/**
* Toggle top bar in the Form Builder.
*
* @since 1.7.4
*
* @param {boolean} open True for open, false for close.
*/
toggleBuilderTopBar: function( open ) {
var cssVar = '--wpforms-admin-bar-height',
root = document.documentElement,
adminBarHeight = parseInt( getComputedStyle( root ).getPropertyValue( cssVar ), 10 ),
topBarHeight = 45;
adminBarHeight += open ? topBarHeight : -topBarHeight;
root.setAttribute(
'style',
cssVar + ': ' + ( adminBarHeight ) + 'px!important;'
);
},
/**
* Dismiss top bar in the Form Builder.
*
* @since 1.7.4
*/
dismissBuilderTopBarClick: function() {
$( document ).on(
'click',
'#wpforms-builder-lite-connect-top-bar .wpforms-dismiss-button',
function() {
app.toggleBuilderTopBar( false );
}
);
},
};
// Provide access to public functions/properties.
return app;
}( document, window, jQuery ) );
// Initialize.
WPFormsEducation.liteConnect.init();

File diff suppressed because one or more lines are too long