HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/amberconcept/wp-content/plugins/zeen-engine/admin/js/zeen-engine-admin.js
/**
 * Copyright: Codetipi
 * Theme: Zeen Engine
 * Version: 2.6.5
 */
(function( $ ) {

    'use strict';
	var zeenEngineAdmin = {
		init: function() {
			this.cache();
			this.bind();
			this.colorPicker();
			this.dragDrop();
			this.required();
			this.slider();
			this.dates();
		},
		cache: function() {
			this.$doc				= $( document );
			this.$body				= $( 'body' );
			this.$colorPicker 		= $( '.zeen-engine-color-pick' );
			this.$colorPickerA 		= $( '.zeen-engine-color-pick-a' );
			this.$slider			= $( '.zeen-engine-slider' );
			this.$widgetMulti		= $( '#widgets-right .tipi-multi-on' );
			this.$dates				= $( '.zeen-engine-date-field' ).find( 'input' );
			this.$sliderReset		= $( '.zeen-engine-slider-wrap .zeen-engine-reset' );
			this.$sectionShower		= $( '.zeen-engine-metabox-wrap .zeen-engine-trig' );
			this.$required			= $( '.zeen-engine-req' );
			this.$dragDrop			= $( '.zeen-engine-drag-drop' );
			this.modal 				= false;
			this.galleryModal		= false;
			this.galleryNativeModal = false;
		},
		dates: function() {
			if ( this.$dates.length === 0 ) {
				return;
			}
			this.$dates.datepicker({
				beforeShow: function(input, inst) {
			       $('#ui-datepicker-div').addClass('zeen-engine-date-box-wrap');
			   	},
		        showOtherMonths: true,
		        closeText: zeenEngineJS.i18n.close,
		        currentText: zeenEngineJS.i18n.now,
		        prevText: '<span class="dashicons dashicons-arrow-left-alt2"></span>',
		        nextText: '<span class="dashicons dashicons-arrow-right-alt2"></span>'
		      });
		},
		bind: function() {
			this.$sliderReset.on( 'click', this.sliderReset );
			this.$sectionShower.on( 'click', this.sectionShower );
			this.$body.on( 'click', '.zeen-engine-gallery', this.galleryUpload );
			this.$body.on( 'click', '.zeen-engine-upload', this.upload );
			this.$body.on( 'click', '.tipi-del-tag', this.tagRemove );
			this.$body.on( 'click', '.zeen-engine-remove', this.uploadRemove );
			this.$body.on( 'click', '.zeen-engine-remove-gallery', this.parentRemove );
			this.$body.on( 'click', '.zeen-engine-sb-delete', this.sbRemove );
			this.$body.on( 'change', '.zeen-engine-required', this.requiredCheck );
			this.$doc.on( 'widget-added widget-updated', this.widgetChange );
			this.$doc.on( 'widget-added widget-updated', this.tagSuggest.bind(this ) );
			this.$body.on( 'click', '.zeen-engine-drag-x', this.dragRemove );
			this.$body.on( 'click', '.zeen-engine-drag-add', this.dragAdd );
			this.$body.on( 'click', '.button__zeen__migration', this.migration );

		},
		sbRemove: function( e ) {
			e.preventDefault();
			var check = confirm( zeenEngineJS.i18n.titleSbRemoveConfirm );
	        if ( ! check ) {
	        	return;
	        }
			var remover = $( this );
			$.ajax({
                type : "POST",
                data : { 
                	action: 'zeen_engine_sb_remove',
                	nonce: zeenEngineJS.nonce,
                	id: remover.data('id'),
                	type: remover.data('type')
                },
                url: zeenEngineJS.ajax,
                dataType: "json",
                success : function( data ) {
                	remover.closest('.zeen-engine-sb').fadeOut();
                },
                error : function( jqXHR, textStatus, errorThrown) {
                    console.log(jqXHR, textStatus,errorThrown);
                }
            });
		},
		dragRemove: function( e ) {
			e.preventDefault();
			$( this ).parent().remove();
		},
		dragDrop: function() {
			this.$dragDrop.sortable({
			  	placeholder: "ui-state-highlight",
				classes: {
					"ui-sortable": "zeen-engine-control-only"
				},
				start: function( e, ui ){
			        ui.placeholder.height( ui.item.height() );
			    }
			});
			this.$dragDrop.disableSelection();
		},
		migration: function( e ) {
			e.preventDefault();
			var button = $( this ),
			type = $( '#theme__selection' ).find(":selected").val();
			$.ajax({
                type : "POST",
                data : { action: 'zeen_engine_migration', nonce: zeenEngineJS.nonce, type: type },
                url: zeenEngineJS.ajax,
                dataType: "json",
                beforeSend : function() {
                	button.closest( '.tipi-content-area' ).addClass('migrate--running');
                },
                success : function( data ) {
                	button.closest( '.tipi-content-area' ).removeClass('migrate--running');
                },
                error : function( jqXHR, textStatus, errorThrown) {
                    console.log(jqXHR, textStatus,errorThrown);
                }
            });
		},
		dragAdd: function( e ) {
			e.preventDefault();
			var $adder = $( this ),
				$addParent = $adder.parent(),
				$dragDummy = $addParent.find( '> .zeen-engine-drag-el-dummy' ),
				$dragWarp = $addParent.find( '> .zeen-engine-drag-drop' );

			$dragWarp.data( 'count', $dragWarp.data('count') + 1 );

			var $theClone = $dragDummy.find('> div').clone();

			var $theCloneData = $theClone.find( '.zeen-engine-data' );
			$theCloneData.each( function() {
			    var el = $( this );
			    el.removeClass('zeen-engine-data');
			    var elName = el.data('name') + '[' + $dragWarp.data('count') + ']' + '[' + el.data('choice') + ']';
			    el.attr('name', elName );
			});

			$theClone.appendTo( $dragWarp );
			$theClone.find('input:first').focus();
		},
		requiredCheck: function ( e, el ) {

			var $reqCheckThis =  typeof el === 'undefined' ? $( this ) : $(el);
			$reqCheckThis.each( function() {
				var $reqCheckEachThis = $( this );
				var $reqCheck = $reqCheckEachThis.closest('.zeen-engine-control');
				var $reqCheckControl = $reqCheck.data('control');

				switch( $reqCheckControl ) {
				    case 'on-off':

				    	$reqCheckEachThis.data('dependees').forEach( function(dependee) {
						    if ( ( $reqCheckEachThis.is(":checked") === true ) && ( dependee.val === 'on' ) ) {
								zeenEngineAdmin.showIt( $('#' + dependee.id ), e );
							} else if ( ( $reqCheckEachThis.is(":checked") === false ) && ( dependee.val === 'on' ) ) {
								zeenEngineAdmin.hideIt( $('#' + dependee.id ), e );
							}

							if ( ( $reqCheckEachThis.is(":checked") === false ) && ( dependee.val === 'off' ) ) {
								zeenEngineAdmin.showIt( $('#' + dependee.id ), e );
							} else if ( ( $reqCheckEachThis.is(":checked") === true ) && ( dependee.val === 'off' ) ) {
								zeenEngineAdmin.hideIt( $('#' + dependee.id ), e );
							}
						});

				        break;
				    case 'radio-images':

				    	$reqCheckEachThis.data('dependees').forEach( function(dependee) {

				    		if ( dependee.val.length > 1 ) {
				    			for( var i = 0, len = dependee.val.length; i < len; i++){
									dependee.val[i] = dependee.val[i].toString();
								}

					    		if ( $reqCheckEachThis.is(':checked') === true && $.inArray(  $reqCheckEachThis.val(), dependee.val ) != -1 ) {
					    			zeenEngineAdmin.showIt( $('#' + dependee.id ), e );
					    		} else {
					    			if ( typeof el === 'undefined' ) {
					    				zeenEngineAdmin.hideIt( $('#' + dependee.id ), e );
					    			}
								}

				    		} else {

				    			if ( ( $reqCheckEachThis.is(':checked') === true ) && ( $reqCheckEachThis.val() == dependee.val ) ) {
					    			zeenEngineAdmin.showIt( $('#' + dependee.id ), e );
					    		} else {
					    			if ( typeof el === 'undefined' ) {
					    				zeenEngineAdmin.hideIt( $('#' + dependee.id ), e );
					    			}
								}
				    		}
						});

				        break;
				    case 'select':

				    	$reqCheckEachThis.data('dependees').forEach( function(dependee) {

				    		if ( ( $reqCheckEachThis.val() ) == dependee.val ) {
				    			zeenEngineAdmin.showIt( $('#' + dependee.id ), e );
				    		} else {
				    			if ( typeof el === 'undefined' ) {
				    				zeenEngineAdmin.hideIt( $('#' + dependee.id ), e );
				    			}
							}

						});

				        break;
				    default:
				}
			});
		},
		showIt: function ( el, e ) {
			if ( typeof e !== 'undefined' ) {
				el.slideDown(100);
				return;
			}
			el.show();
		},
		hideIt: function ( el, e ) {
			if ( typeof e !== 'undefined' ) {
				el.slideUp(100);
				return;
			}
			el.hide();
		},
		required: function ( e ) {
			this.$required.each( function() {
				var $reqThis = $( this );
				var $reqId = $reqThis.attr('id');
				var $reqVal = $reqThis.data('req-val');
				var $req = $reqThis.data('req');

				var $req2 = $reqThis.data('req-2');

				if ( $req2 !== '' ) {
					var $reqVal2 = $reqThis.data('req-val-2');
					var $reqInputVal2 = $( '#' + $req2 ).find('.zeen-engine-input-val');
					$reqInputVal2.addClass('zeen-engine-required');


					if ( typeof $reqInputVal2.data('dependees') === 'undefined' ) {
						$reqInputVal2.data('dependees', [ { id: $reqId, val: $reqVal2 } ] );
					} else {
						var $reqArray = $reqInputVal2.data('dependees');
						$reqArray.push( { id: $reqId, val: $reqVal2 } );
						$reqInputVal2.data('dependees', $reqArray );
					}

				}

				var $reqInputVal = $( '#' + $req ).find('.zeen-engine-input-val');
				$reqInputVal.addClass('zeen-engine-required');


				if ( typeof $reqInputVal.data('dependees') === 'undefined' ) {
					$reqInputVal.data('dependees', [ { id: $reqId, val: $reqVal } ] );
				} else {
					var $reqArray = $reqInputVal.data('dependees');
					$reqArray.push( { id: $reqId, val: $reqVal } );
					$reqInputVal.data('dependees', $reqArray );
				}

			});
			zeenEngineAdmin.requiredCheck(e, '.zeen-engine-required');
		},
		uploadRemove: function( e ) {
			e.preventDefault();

			var uploadThis = $( this );
			uploadThis.closest('.zeen-engine-meta-control').find('.zeen-engine-img-input').val('');
			var zeenEngineVisSwitch 	= uploadThis.closest('.zeen-engine-meta-control').find('.zeen-engine-vis-switch');
			if ( zeenEngineVisSwitch.length ) {
				zeenEngineVisSwitch.addClass('zeen-engine-hide');
			}
			zeenEngineAdmin.parentRemove(e, uploadThis );
		},
		parentRemove: function( e, el ) {
			e.preventDefault();

			if ( typeof el !== 'undefined' ) {
				el.parent().remove();
			} else {
				$( this ).parent().remove();
			}
		},
		upload: function( e ) {
		 	e.preventDefault();
		 	var zeenEngineDest 		= $( this ).closest( '#' + $( this ).data( 'dest' ) ),
		 		zeenEngineOutput 	= $( this ).data( 'output' ),
		 		zeenEngineFileType	= $( this ).data( 'file-type' ),
		 		zeenEngineVisSwitch 	= zeenEngineDest.find('.zeen-engine-vis-switch');

			zeenEngineAdmin.modal = wp.media({
				title: zeenEngineJS.i18n.titleModal,
				button: {
					text: zeenEngineJS.i18n.titleButton,
				},
				multiple: false
			});

		    zeenEngineAdmin.modal.on( 'select', function() {

	        	var zeenEngineImg = zeenEngineAdmin.modal.state().get('selection').first().toJSON();
	        	if ( zeenEngineFileType === 'img' ) {
					var	zeenEngineImgUrl = typeof zeenEngineImg.sizes.thumbnail !== 'undefined' ? zeenEngineImg.sizes.thumbnail.url : zeenEngineImg.url;
				}

				var zeenEngineSrcId = zeenEngineOutput === 'id' ? zeenEngineImg.id : zeenEngineImg.url;
				zeenEngineDest.find('.zeen-engine-img-input').val( zeenEngineSrcId ).trigger('change');


				zeenEngineDest.find('.zeen-engine-img').remove();
		        zeenEngineDest.find('.zeen-engine-control-only').append( '<span class="zeen-engine-img"><a href="#" class="zeen-engine-remove zeen-engine--x"></a></span>' );
				if ( zeenEngineFileType === 'img' ) {
					zeenEngineDest.find('.zeen-engine-control-only .zeen-engine-img').append('<img src="' + zeenEngineImgUrl + '" alt="">');	
		        } else {
		        	zeenEngineDest.find('.zeen-engine-control-only .zeen-engine-img').append('<img class="media--not-img" src="' + zeenEngineJS.i18n.mdIcon1 + '" srcset="' + zeenEngineJS.i18n.mdIcon1 + ' 2x" alt="">');
		        }

	            if ( zeenEngineVisSwitch.length ) {
					zeenEngineVisSwitch.removeClass('zeen-engine-hide');
				}

			}).open();
		},
		galleryGetter: function( currGal ) {
			// Inspired in parts by Option Tree - thanks Derek.
			var output,	inputs = currGal.closest('.zeen-engine-control-only').find('.zeen-engine-input-val'), ids = '';
			inputs.each( function() {
				ids += $(this).val() + ',';
			});
			if ( ids.length > 0 ) {
				ids = ids.slice( 0, -1 );
			}
			var sc = wp.shortcode.next( 'gallery', ( '[gallery ids="' + ids + '"]' ) );

			if ( sc.shortcode.get('ids') === 'undefined' ) {
				sc.shortcode.set( 'ids', ids )
			}
			var attachments = wp.media.gallery.attachments( sc.shortcode );
			output = new wp.media.model.Selection( attachments.models, {
		        props:    attachments.props.toJSON()
		      , multiple: true
		      })
		    output.gallery = attachments.gallery;
			output.more().done( function () {
				output.props.set({ query: false })
				output.unmirror()
				output.props.unset('orderby')
			});

			return output;
		},
		galleryUpload: function( e ) {
		 	e.preventDefault();
		 	var currGal = $( this );
			zeenEngineAdmin.galleryNativeModal = wp.media({
				title: zeenEngineJS.i18n.titleGalleryModal,
				button: {
					text: zeenEngineJS.i18n.titleButton,
				},
				multiple: true,
				id: 'zeen-engine-gallery',
				editing: true,
				frame: 'post',
				state: 'gallery-edit',
				selection:  zeenEngineAdmin.galleryGetter( currGal )
			});

		    zeenEngineAdmin.galleryNativeModal.on( 'update insert', function(){
	        	var models = zeenEngineAdmin.galleryNativeModal.states.get("gallery-edit"),
	        		library = models.get('library').models;
				$( '#' + currGal.data( 'dest' ) ).find('.zeen-engine-gallery-images-wrap').html('');
				for ( var counter = 0; counter < library.length; counter++ ) {
					var obj = library[counter].toJSON();
					var zeenEngineGalleryImgUrl = typeof obj.sizes.thumbnail !== 'undefined' ? obj.sizes.thumbnail.url : obj.url;
		            $( '#' + currGal.data( 'dest' ) ).find('.zeen-engine-gallery-images-wrap').append( '<span data-id="' + obj.id + '" class="zeen-engine-img"><a href="#" class="zeen-engine-remove-gallery zeen-engine--x"></a><img src="' + zeenEngineGalleryImgUrl + '" alt=""><input type="hidden" class="zeen-engine-input-val" value="' + obj.id + '" name="' + currGal.data( 'name' ) +'[]"></span>' );
		        }

		        counter = 0;

			}).open();
		},
		sectionShower: function( e ) {
			e.preventDefault();
			var zeenEngineTrig = $('#' + $( this ).data('section') );
			zeenEngineTrig.siblings().addClass('zeen-engine-hide');
			zeenEngineTrig.removeClass('zeen-engine-hide');
			$( this ).siblings().removeClass('zeen-engine-active');
			$( this ).addClass('zeen-engine-active');
		},
		colorPicker: function() {
			this.$colorPicker.wpColorPicker();
			this.$colorPickerA.alphaColorPicker();
		},
		slider: function() {
			this.$slider.each( function() {
				var $this = $( this );
		        $this.slider({
			        min: $this.data('min'),
			        max: $this.data('max'),
			        step: $this.data('step'),
			        range: 'min',
			        value: $this.data('value'),
			        slide: function( event, ui ) {
			        	$this.next().val( ui.value );
			        	$this.next().next().find('.zeen-engine-val').html( ui.value );
			       }
			    });
			});
		},
		tagRemove: function( e ) {

			var removeTagData = $( this ).data();
			var revemoTagInput = $( this ).closest('.tipi-tags-suggest-wrap').find( '.tipi-tag-suggest' ).val();

			revemoTagInput = $.grep(revemoTagInput, function(value) {
			  return value != removeTagData['id'];
			});
			$( this ).closest('span').remove();
		},
		tagSuggest: function( e ) {
			$('.tipi-tag-suggest').suggest( zeenEngineJS.ajaxURL + '?action=ajax-tag-search&tax=post_tag', { delay: 350, minchars: 2, multiple: true, multipleSep: ',' } );
		},
		sliderReset: function() {
	        var slider = $( this ).closest( '.zeen-engine-control' ).find( '.zeen-engine-slider' );
	        var defaultVal = slider.data( 'default' );
	        slider.slider({
	            value: defaultVal,
	        });
	        slider.next().val( defaultVal );
	        slider.next().next().find('.zeen-engine-val').html( defaultVal );
		},
		widgetChange: function( e, widget ) {

			if ( typeof widget !== 'undefined' ) {
				this.$widgetMulti = widget.find('.tipi-multi-on');
			}

			if ( ! this.$widgetMulti.hasClass('tipi-sorted') ) {
		        this.$widgetMulti.addClass('tipi-sorted').searchableOptionList();
		    }
		    zeenEngineAdmin.$required = $( '.zeen-engine-req' );

			zeenEngineAdmin.required();
		},
	};

	zeenEngineAdmin.init();

} )( jQuery );