[ Avaa Bypassed ]




Upload:

Command:

www-data@13.59.144.10: ~ $
/**
 * @output wp-includes/js/wp-custom-header.js
 */

/* global YT */
(function( window, settings ) {

	var NativeHandler, YouTubeHandler;

	/** @namespace wp */
	window.wp = window.wp || {};

	// Fail gracefully in unsupported browsers.
	if ( ! ( 'addEventListener' in window ) ) {
		return;
	}

	/**
	 * Trigger an event.
	 *
	 * @param {Element} target HTML element to dispatch the event on.
	 * @param {string} name Event name.
	 */
	function trigger( target, name ) {
		var evt;

		if ( 'function' === typeof window.Event ) {
			evt = new Event( name );
		} else {
			evt = document.createEvent( 'Event' );
			evt.initEvent( name, true, true );
		}

		target.dispatchEvent( evt );
	}

	/**
	 * Create a custom header instance.
	 *
	 * @memberOf wp
	 *
	 * @class
	 */
	function CustomHeader() {
		this.handlers = {
			nativeVideo: new NativeHandler(),
			youtube: new YouTubeHandler()
		};
	}

	CustomHeader.prototype = {
		/**
		 * Initialize the custom header.
		 *
		 * If the environment supports video, loops through registered handlers
		 * until one is found that can handle the video.
		 */
		initialize: function() {
			if ( this.supportsVideo() ) {
				for ( var id in this.handlers ) {
					var handler = this.handlers[ id ];

					if ( 'test' in handler && handler.test( settings ) ) {
						this.activeHandler = handler.initialize.call( handler, settings );

						// Dispatch custom event when the video is loaded.
						trigger( document, 'wp-custom-header-video-loaded' );
						break;
					}
				}
			}
		},

		/**
		 * Determines if the current environment supports video.
		 *
		 * Themes and plugins can override this method to change the criteria.
		 *
		 * @return {boolean}
		 */
		supportsVideo: function() {
			// Don't load video on small screens. @todo Consider bandwidth and other factors.
			if ( window.innerWidth < settings.minWidth || window.innerHeight < settings.minHeight ) {
				return false;
			}

			return true;
		},

		/**
		 * Base handler for custom handlers to extend.
		 *
		 * @type {BaseHandler}
		 */
		BaseVideoHandler: BaseHandler
	};

	/**
	 * Create a video handler instance.
	 *
	 * @memberOf wp
	 *
	 * @class
	 */
	function BaseHandler() {}

	BaseHandler.prototype = {
		/**
		 * Initialize the video handler.
		 *
		 * @param {Object} settings Video settings.
		 */
		initialize: function( settings ) {
			var handler = this,
				button = document.createElement( 'button' );

			this.settings = settings;
			this.container = document.getElementById( 'wp-custom-header' );
			this.button = button;

			button.setAttribute( 'type', 'button' );
			button.setAttribute( 'id', 'wp-custom-header-video-button' );
			button.setAttribute( 'class', 'wp-custom-header-video-button wp-custom-header-video-play' );
			button.innerHTML = settings.l10n.play;

			// Toggle video playback when the button is clicked.
			button.addEventListener( 'click', function() {
				if ( handler.isPaused() ) {
					handler.play();
				} else {
					handler.pause();
				}
			});

			// Update the button class and text when the video state changes.
			this.container.addEventListener( 'play', function() {
				button.className = 'wp-custom-header-video-button wp-custom-header-video-play';
				button.innerHTML = settings.l10n.pause;
				if ( 'a11y' in window.wp ) {
					window.wp.a11y.speak( settings.l10n.playSpeak);
				}
			});

			this.container.addEventListener( 'pause', function() {
				button.className = 'wp-custom-header-video-button wp-custom-header-video-pause';
				button.innerHTML = settings.l10n.play;
				if ( 'a11y' in window.wp ) {
					window.wp.a11y.speak( settings.l10n.pauseSpeak);
				}
			});

			this.ready();
		},

		/**
		 * Ready method called after a handler is initialized.
		 *
		 * @abstract
		 */
		ready: function() {},

		/**
		 * Whether the video is paused.
		 *
		 * @abstract
		 * @return {boolean}
		 */
		isPaused: function() {},

		/**
		 * Pause the video.
		 *
		 * @abstract
		 */
		pause: function() {},

		/**
		 * Play the video.
		 *
		 * @abstract
		 */
		play: function() {},

		/**
		 * Append a video node to the header container.
		 *
		 * @param {Element} node HTML element.
		 */
		setVideo: function( node ) {
			var editShortcutNode,
				editShortcut = this.container.getElementsByClassName( 'customize-partial-edit-shortcut' );

			if ( editShortcut.length ) {
				editShortcutNode = this.container.removeChild( editShortcut[0] );
			}

			this.container.innerHTML = '';
			this.container.appendChild( node );

			if ( editShortcutNode ) {
				this.container.appendChild( editShortcutNode );
			}
		},

		/**
		 * Show the video controls.
		 *
		 * Appends a play/pause button to header container.
		 */
		showControls: function() {
			if ( ! this.container.contains( this.button ) ) {
				this.container.appendChild( this.button );
			}
		},

		/**
		 * Whether the handler can process a video.
		 *
		 * @abstract
		 * @param {Object} settings Video settings.
		 * @return {boolean}
		 */
		test: function() {
			return false;
		},

		/**
		 * Trigger an event on the header container.
		 *
		 * @param {string} name Event name.
		 */
		trigger: function( name ) {
			trigger( this.container, name );
		}
	};

	/**
	 * Create a custom handler.
	 *
	 * @memberOf wp
	 *
	 * @param {Object} protoProps Properties to apply to the prototype.
	 * @return CustomHandler The subclass.
	 */
	BaseHandler.extend = function( protoProps ) {
		var prop;

		function CustomHandler() {
			var result = BaseHandler.apply( this, arguments );
			return result;
		}

		CustomHandler.prototype = Object.create( BaseHandler.prototype );
		CustomHandler.prototype.constructor = CustomHandler;

		for ( prop in protoProps ) {
			CustomHandler.prototype[ prop ] = protoProps[ prop ];
		}

		return CustomHandler;
	};

	/**
	 * Native video handler.
	 *
	 * @memberOf wp
	 *
	 * @class
	 */
	NativeHandler = BaseHandler.extend(/** @lends wp.NativeHandler.prototype */{
		/**
		 * Whether the native handler supports a video.
		 *
		 * @param {Object} settings Video settings.
		 * @return {boolean}
		 */
		test: function( settings ) {
			var video = document.createElement( 'video' );
			return video.canPlayType( settings.mimeType );
		},

		/**
		 * Set up a native video element.
		 */
		ready: function() {
			var handler = this,
				video = document.createElement( 'video' );

			video.id = 'wp-custom-header-video';
			video.autoplay = true;
			video.loop = true;
			video.muted = true;
			video.playsInline = true;
			video.width = this.settings.width;
			video.height = this.settings.height;

			video.addEventListener( 'play', function() {
				handler.trigger( 'play' );
			});

			video.addEventListener( 'pause', function() {
				handler.trigger( 'pause' );
			});

			video.addEventListener( 'canplay', function() {
				handler.showControls();
			});

			this.video = video;
			handler.setVideo( video );
			video.src = this.settings.videoUrl;
		},

		/**
		 * Whether the video is paused.
		 *
		 * @return {boolean}
		 */
		isPaused: function() {
			return this.video.paused;
		},

		/**
		 * Pause the video.
		 */
		pause: function() {
			this.video.pause();
		},

		/**
		 * Play the video.
		 */
		play: function() {
			this.video.play();
		}
	});

	/**
	 * YouTube video handler.
	 *
	 * @memberOf wp
	 *
	 * @class wp.YouTubeHandler
	 */
	YouTubeHandler = BaseHandler.extend(/** @lends wp.YouTubeHandler.prototype */{
		/**
		 * Whether the handler supports a video.
		 *
		 * @param {Object} settings Video settings.
		 * @return {boolean}
		 */
		test: function( settings ) {
			return 'video/x-youtube' === settings.mimeType;
		},

		/**
		 * Set up a YouTube iframe.
		 *
		 * Loads the YouTube IFrame API if the 'YT' global doesn't exist.
		 */
		ready: function() {
			var handler = this;

			if ( 'YT' in window ) {
				YT.ready( handler.loadVideo.bind( handler ) );
			} else {
				var tag = document.createElement( 'script' );
				tag.src = 'https://www.youtube.com/iframe_api';
				tag.onload = function () {
					YT.ready( handler.loadVideo.bind( handler ) );
				};

				document.getElementsByTagName( 'head' )[0].appendChild( tag );
			}
		},

		/**
		 * Load a YouTube video.
		 */
		loadVideo: function() {
			var handler = this,
				video = document.createElement( 'div' ),
				// @link http://stackoverflow.com/a/27728417
				VIDEO_ID_REGEX = /^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/;

			video.id = 'wp-custom-header-video';
			handler.setVideo( video );

			handler.player = new YT.Player( video, {
				height: this.settings.height,
				width: this.settings.width,
				videoId: this.settings.videoUrl.match( VIDEO_ID_REGEX )[1],
				events: {
					onReady: function( e ) {
						e.target.mute();
						handler.showControls();
					},
					onStateChange: function( e ) {
						if ( YT.PlayerState.PLAYING === e.data ) {
							handler.trigger( 'play' );
						} else if ( YT.PlayerState.PAUSED === e.data ) {
							handler.trigger( 'pause' );
						} else if ( YT.PlayerState.ENDED === e.data ) {
							e.target.playVideo();
						}
					}
				},
				playerVars: {
					autoplay: 1,
					controls: 0,
					disablekb: 1,
					fs: 0,
					iv_load_policy: 3,
					loop: 1,
					modestbranding: 1,
					playsinline: 1,
					rel: 0,
					showinfo: 0
				}
			});
		},

		/**
		 * Whether the video is paused.
		 *
		 * @return {boolean}
		 */
		isPaused: function() {
			return YT.PlayerState.PAUSED === this.player.getPlayerState();
		},

		/**
		 * Pause the video.
		 */
		pause: function() {
			this.player.pauseVideo();
		},

		/**
		 * Play the video.
		 */
		play: function() {
			this.player.playVideo();
		}
	});

	// Initialize the custom header when the DOM is ready.
	window.wp.customHeader = new CustomHeader();
	document.addEventListener( 'DOMContentLoaded', window.wp.customHeader.initialize.bind( window.wp.customHeader ), false );

	// Selective refresh support in the Customizer.
	if ( 'customize' in window.wp ) {
		window.wp.customize.selectiveRefresh.bind( 'render-partials-response', function( response ) {
			if ( 'custom_header_settings' in response ) {
				settings = response.custom_header_settings;
			}
		});

		window.wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) {
			if ( 'custom_header' === placement.partial.id ) {
				window.wp.customHeader.initialize();
			}
		});
	}

})( window, window._wpCustomHeaderSettings || {} );

Filemanager

Name Type Size Permission Actions
codemirror Folder 0777
crop Folder 0777
dist Folder 0777
imgareaselect Folder 0777
jcrop Folder 0777
jquery Folder 0777
mediaelement Folder 0777
plupload Folder 0777
swfupload Folder 0777
thickbox Folder 0777
tinymce Folder 0777
admin-bar.js File 10.51 KB 0777
admin-bar.min.js File 3.45 KB 0777
api-request.js File 3.25 KB 0777
api-request.min.js File 1023 B 0777
autosave.js File 21.95 KB 0777
autosave.min.js File 5.67 KB 0777
backbone.js File 77.87 KB 0777
backbone.min.js File 23.57 KB 0777
clipboard.js File 26.18 KB 0777
clipboard.min.js File 8.8 KB 0777
colorpicker.js File 28.4 KB 0777
colorpicker.min.js File 16.13 KB 0777
comment-reply.js File 12.17 KB 0777
comment-reply.min.js File 2.91 KB 0777
customize-base.js File 25.22 KB 0777
customize-base.min.js File 7.67 KB 0777
customize-loader.js File 7.72 KB 0777
customize-loader.min.js File 3.47 KB 0777
customize-models.js File 6.66 KB 0777
customize-models.min.js File 3.59 KB 0777
customize-preview-nav-menus.js File 14.67 KB 0777
customize-preview-nav-menus.min.js File 4.92 KB 0777
customize-preview-widgets.js File 22.71 KB 0777
customize-preview-widgets.min.js File 7.64 KB 0777
customize-preview.js File 27.3 KB 0777
customize-preview.min.js File 10.45 KB 0777
customize-selective-refresh.js File 32.55 KB 0777
customize-selective-refresh.min.js File 10.44 KB 0777
customize-views.js File 4.95 KB 0777
customize-views.min.js File 2.39 KB 0777
heartbeat.js File 23.39 KB 0777
heartbeat.min.js File 5.87 KB 0777
hoverIntent.js File 7.06 KB 0777
hoverIntent.min.js File 1.46 KB 0777
hoverintent-js.min.js File 1.68 KB 0777
imagesloaded.min.js File 5.39 KB 0777
json2.js File 17.99 KB 0777
json2.min.js File 3.07 KB 0777
masonry.min.js File 23.57 KB 0777
mce-view.js File 25.24 KB 0777
mce-view.min.js File 9.54 KB 0777
media-audiovideo.js File 24.45 KB 0777
media-audiovideo.min.js File 11.85 KB 0777
media-editor.js File 28.44 KB 0777
media-editor.min.js File 10.63 KB 0777
media-grid.js File 26.23 KB 0777
media-grid.min.js File 13.03 KB 0777
media-models.js File 42.77 KB 0777
media-models.min.js File 13.02 KB 0777
media-views.js File 265.05 KB 0777
media-views.min.js File 107.69 KB 0777
quicktags.js File 22.07 KB 0777
quicktags.min.js File 10.87 KB 0777
shortcode.js File 10.51 KB 0777
shortcode.min.js File 2.58 KB 0777
swfobject.js File 9.99 KB 0777
tw-sack.js File 4.85 KB 0777
tw-sack.min.js File 3.21 KB 0777
twemoji.js File 32.31 KB 0777
twemoji.min.js File 15.38 KB 0777
underscore.js File 66.77 KB 0777
underscore.min.js File 18.39 KB 0777
utils.js File 4.56 KB 0777
utils.min.js File 1.82 KB 0777
wp-ajax-response.js File 3.68 KB 0777
wp-ajax-response.min.js File 2.38 KB 0777
wp-api.js File 45.88 KB 0777
wp-api.min.js File 14.34 KB 0777
wp-auth-check.js File 4.11 KB 0777
wp-auth-check.min.js File 1.62 KB 0777
wp-backbone.js File 14.88 KB 0777
wp-backbone.min.js File 2.97 KB 0777
wp-custom-header.js File 10.22 KB 0777
wp-custom-header.min.js File 4.34 KB 0777
wp-embed-template.js File 6.62 KB 0777
wp-embed-template.min.js File 3.1 KB 0777
wp-embed.js File 3.14 KB 0777
wp-embed.min.js File 1.22 KB 0777
wp-emoji-loader.js File 12.23 KB 0777
wp-emoji-loader.min.js File 2.92 KB 0777
wp-emoji-release.min.js File 18.25 KB 0777
wp-emoji.js File 8.76 KB 0777
wp-emoji.min.js File 2.82 KB 0777
wp-list-revisions.js File 970 B 0777
wp-list-revisions.min.js File 597 B 0777
wp-lists.js File 24.72 KB 0777
wp-lists.min.js File 7.34 KB 0777
wp-pointer.js File 9.99 KB 0777
wp-pointer.min.js File 3.54 KB 0777
wp-sanitize.js File 1.32 KB 0777
wp-sanitize.min.js File 458 B 0777
wp-util.js File 4.57 KB 0777
wp-util.min.js File 1.39 KB 0777
wpdialog.js File 569 B 0777
wpdialog.min.js File 281 B 0777
wplink.js File 20.66 KB 0777
wplink.min.js File 10.99 KB 0777
zxcvbn-async.js File 821 B 0777
zxcvbn-async.min.js File 351 B 0777
zxcvbn.min.js File 802.97 KB 0777