PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /home/trave494/bilosproperties.com/wp-content/plugins/js_composer/assets/js/backend/
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
IP: 209.182.202.254
Choose File :

Url:
Dir : /home/trave494/bilosproperties.com/wp-content/plugins/js_composer/assets/js/backend/media-editor.js

/* =========================================================
 * media-editor.js v1.0.0
 * =========================================================
 * Copyright 2013 Wpbakery
 *
 * WP 3.5 Media manager integration into Visual Composer.
 * ========================================================= */
(function ( $ ) {
	var media = wp.media,
		Attachment = media.model.Attachment,
		Attachments = media.model.Attachments,
		Query = media.model.Query,
		l10n = i18nLocale,
		workflows = {};
	// wp.media.controller.VcSingleImage extends featuredImage controller
	// ---------------------------------
	media.controller.VcSingleImage = media.controller.FeaturedImage.extend( {
		defaults: _.defaults( {
			id: 'vc_single-image',
			filterable: 'uploaded',
			multiple: false,
			toolbar: 'vc_single-image',
			title: l10n.set_image,
			priority: 60,
			syncSelection: false
		}, media.controller.Library.prototype.defaults ),
		updateSelection: function () {
			var selection = this.get( 'selection' ),
				id = media.VcSingleImage.getData(),
				attachment;
			if ( '' !== id && - 1 !== id ) {
				attachment = Attachment.get( id );
				attachment.fetch();
			}
			selection.reset( attachment ? [ attachment ] : [] );
		}
	} );
	media.controller.VcGallery = media.controller.VcSingleImage.extend( {
		defaults: _.defaults( {
			id: 'vc_gallery',
			title: l10n.add_images,
			toolbar: 'main-insert',
			filterable: 'uploaded',
			library: media.query( { type: 'image' } ),
			multiple: 'add',
			editable: true,
			priority: 60,
			syncSelection: false
		}, media.controller.Library.prototype.defaults ),
		updateSelection: function () {
			var selection = this.get( 'selection' ),
				ids = media.vc_editor.getData(),
				attachments;
			if ( '' !== ids && - 1 !== ids ) {
				attachments = _.map( ids.split( /,/ ), function ( id ) {
					var attachment = Attachment.get( id );
					attachment.fetch();
					return attachment;
				} );
			}
			selection.reset( attachments );
		}
	} );

	media.VcSingleImage = {
		getData: function () {
			return this.$hidden_ids.val();
		},
		set: function ( selection ) {

			this.$img_ul.html( _.template( $( '#vc_settings-image-block' ).html(), selection.attributes ) );

			this.$clear_button.show();

			this.$hidden_ids.val( selection.get( 'id' ) ).trigger( 'change' );
			return false;
		},
		frame: function ( element ) {
			this.element = element;

			this.$button = $( this.element );
			this.$block = this.$button.closest( '.edit_form_line' );
			this.$hidden_ids = this.$block.find( '.gallery_widget_attached_images_ids' );
			this.$img_ul = this.$block.find( '.gallery_widget_attached_images_list' );
			this.$clear_button = this.$img_ul.next();

			// TODO: Refactor this all params as template

			if ( this._frame ) {
				return this._frame;
			}
			this._frame = wp.media( {
				state: 'vc_single-image',
				states: [ new wp.media.controller.VcSingleImage() ]
			} );
			this._frame.on( 'toolbar:create:vc_single-image', function ( toolbar ) {
				this.createSelectToolbar( toolbar, {
					text: l10n.set_image
				} );
			}, this._frame );

			this._frame.state( 'vc_single-image' ).on( 'select', this.select );
			return this._frame;
		},
		select: function () {
			var selection = this.get( 'selection' ).single();
			wp.media.VcSingleImage.set( selection ? selection : - 1 );
		}
	};

	media.view.MediaFrame.VcGallery = media.view.MediaFrame.Post.extend( {
		// Define insert-vc state.
		createStates: function () {
			var options = this.options;

			// Add the default states.
			this.states.add( [
				// Main states.
				new media.controller.VcGallery()
			] );
		},
		// Removing let menu from manager
		bindHandlers: function () {
			media.view.MediaFrame.Select.prototype.bindHandlers.apply( this, arguments );
			this.on( 'toolbar:create:main-insert', this.createToolbar, this );

			var handlers = {
				content: {
					'embed': 'embedContent',
					'edit-selection': 'editSelectionContent'
				},
				toolbar: {
					'main-insert': 'mainInsertToolbar'
				}
			};

			_.each( handlers, function ( regionHandlers, region ) {
				_.each( regionHandlers, function ( callback, handler ) {
					this.on( region + ':render:' + handler, this[ callback ], this );
				}, this );
			}, this );
		},
		// Changing main button title
		mainInsertToolbar: function ( view ) {
			var controller = this;

			this.selectionStatusToolbar( view );

			view.set( 'insert', {
				style: 'primary',
				priority: 80,
				text: l10n.add_images,
				requires: { selection: true },

				click: function () {
					var state = controller.state(),
						selection = state.get( 'selection' );

					controller.close();
					state.trigger( 'insert', selection ).reset();
				}
			} );
		}
	} );
	media.vc_editor = _.clone( media.editor );
	_.extend( media.vc_editor, {
		$vc_editor_element: null,
		getData: function () {
			var $button = wp.media.vc_editor.$vc_editor_element,
				$block = $button.closest( '.edit_form_line' ),
				$hidden_ids = $block.find( '.gallery_widget_attached_images_ids' );
			return $hidden_ids.val();
		},
		insert: function ( images ) {
			var $button = wp.media.vc_editor.$vc_editor_element,
				$block = $button.closest( '.edit_form_line' ),
				$hidden_ids = $block.find( '.gallery_widget_attached_images_ids' ),
				$img_ul = $block.find( '.gallery_widget_attached_images_list' ),
				$clear_button = $img_ul.next(),
				$thumbnails_string = '';

			_.each( images, function ( image ) {
				$thumbnails_string += _.template( $( '#vc_settings-image-block' ).html(), image );
			} );
			$hidden_ids.val( _.map( images, function ( image ) {
				return image.id;
			} ).join( ',' ) ).trigger( 'change' );
			$img_ul.html( $thumbnails_string );
		},
		open: function ( id ) {
			var workflow, editor;

			id = this.id( id );

			workflow = this.get( id );

			// Initialize the editor's workflow if we haven't yet.
			if ( ! workflow ) {
				workflow = this.add( id );
			}

			return workflow.open();
		},
		add: function ( id, options ) {
			var workflow = this.get( id );
			if ( workflow ) {
				return workflow;
			}

			workflow = workflows[ id ] = new media.view.MediaFrame.VcGallery( _.defaults( options || {}, {
				state: 'vc_gallery',
				title: l10n.add_images,
				library: { type: 'image' },
				multiple: true
			} ) );
			workflow.on( 'insert', function ( selection ) {
				var state = workflow.state(),
					data = [];

				selection = selection || state.get( 'selection' );
				if ( ! selection ) {
					return;
				}

				this.insert( _.map( selection.models, function ( model ) {
					return model.attributes;
				} ) );
			}, this );
			return workflow;
		},
		init: function () {
			$( 'body' ).unbind( 'click.vcGalleryWidget' ).on( 'click.vcGalleryWidget',
				'.gallery_widget_add_images',
				function ( event ) {
					event.preventDefault();
					var $this = $( this ),
						editor = 'visual-composer';
					wp.media.vc_editor.$vc_editor_element = $( this );
					if ( $this.attr( 'use-single' ) === 'true' ) {
						wp.media.VcSingleImage.frame( this ).open( 'vc_editor' );
						return;
					}
					$this.blur();
					wp.media.vc_editor.open( editor );
				} );
		}
	} );
	_.bindAll( media.vc_editor, 'open' );
	$( document ).ready( function () {
		media.vc_editor.init();
	} );
}( jQuery ));