[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.147.85.80: ~ $
/**
 * @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 0755
crop Folder 0755
dist Folder 0755
imgareaselect Folder 0755
jcrop Folder 0755
jquery Folder 0755
mediaelement Folder 0755
plupload Folder 0755
swfupload Folder 0755
thickbox Folder 0755
tinymce Folder 0755
admin-bar.js File 10.3 KB 0644
admin-bar.min.js File 3.41 KB 0644
api-request.js File 3.25 KB 0644
api-request.min.js File 1023 B 0644
autosave.js File 21.95 KB 0644
autosave.min.js File 5.67 KB 0644
backbone.js File 78.51 KB 0644
backbone.min.js File 23.71 KB 0644
clipboard.js File 26.18 KB 0644
clipboard.min.js File 8.8 KB 0644
colorpicker.js File 28.4 KB 0644
colorpicker.min.js File 16.13 KB 0644
comment-reply.js File 12.22 KB 0644
comment-reply.min.js File 2.96 KB 0644
customize-base.js File 25.22 KB 0644
customize-base.min.js File 7.67 KB 0644
customize-loader.js File 7.72 KB 0644
customize-loader.min.js File 3.47 KB 0644
customize-models.js File 6.66 KB 0644
customize-models.min.js File 3.59 KB 0644
customize-preview-nav-menus.js File 14.67 KB 0644
customize-preview-nav-menus.min.js File 4.92 KB 0644
customize-preview-widgets.js File 22.71 KB 0644
customize-preview-widgets.min.js File 7.64 KB 0644
customize-preview.js File 27.3 KB 0644
customize-preview.min.js File 10.45 KB 0644
customize-selective-refresh.js File 32.55 KB 0644
customize-selective-refresh.min.js File 10.44 KB 0644
customize-views.js File 4.95 KB 0644
customize-views.min.js File 2.39 KB 0644
heartbeat.js File 23.49 KB 0644
heartbeat.min.js File 5.81 KB 0644
hoverIntent.js File 7.06 KB 0644
hoverIntent.min.js File 1.46 KB 0644
hoverintent-js.min.js File 1.68 KB 0644
imagesloaded.min.js File 5.39 KB 0644
json2.js File 17.99 KB 0644
json2.min.js File 3.07 KB 0644
masonry.min.js File 23.57 KB 0644
mce-view.js File 25.24 KB 0644
mce-view.min.js File 9.54 KB 0644
media-audiovideo.js File 24.39 KB 0644
media-audiovideo.min.js File 11.78 KB 0644
media-editor.js File 28.44 KB 0644
media-editor.min.js File 10.63 KB 0644
media-grid.js File 26.18 KB 0644
media-grid.min.js File 12.95 KB 0644
media-models.js File 42.74 KB 0644
media-models.min.js File 12.98 KB 0644
media-views.js File 266.87 KB 0644
media-views.min.js File 108.02 KB 0644
quicktags.js File 22.07 KB 0644
quicktags.min.js File 10.87 KB 0644
shortcode.js File 10.51 KB 0644
shortcode.min.js File 2.58 KB 0644
swfobject.js File 9.99 KB 0644
tw-sack.js File 4.85 KB 0644
tw-sack.min.js File 3.21 KB 0644
twemoji.js File 32.16 KB 0644
twemoji.min.js File 15.42 KB 0644
underscore.js File 67.12 KB 0644
underscore.min.js File 18.44 KB 0644
utils.js File 4.56 KB 0644
utils.min.js File 1.82 KB 0644
wp-ajax-response.js File 3.75 KB 0644
wp-ajax-response.min.js File 2.45 KB 0644
wp-api.js File 45.88 KB 0644
wp-api.min.js File 14.34 KB 0644
wp-auth-check.js File 4.11 KB 0644
wp-auth-check.min.js File 1.62 KB 0644
wp-backbone.js File 14.88 KB 0644
wp-backbone.min.js File 2.97 KB 0644
wp-custom-header.js File 10.22 KB 0644
wp-custom-header.min.js File 4.34 KB 0644
wp-embed-template.js File 6.62 KB 0644
wp-embed-template.min.js File 3.1 KB 0644
wp-embed.js File 3.14 KB 0644
wp-embed.min.js File 1.22 KB 0644
wp-emoji-loader.js File 11.92 KB 0644
wp-emoji-loader.min.js File 2.86 KB 0644
wp-emoji-release.min.js File 18.29 KB 0644
wp-emoji.js File 8.76 KB 0644
wp-emoji.min.js File 2.82 KB 0644
wp-list-revisions.js File 970 B 0644
wp-list-revisions.min.js File 597 B 0644
wp-lists.js File 24.72 KB 0644
wp-lists.min.js File 7.34 KB 0644
wp-pointer.js File 9.99 KB 0644
wp-pointer.min.js File 3.54 KB 0644
wp-sanitize.js File 1.32 KB 0644
wp-sanitize.min.js File 458 B 0644
wp-util.js File 4.57 KB 0644
wp-util.min.js File 1.39 KB 0644
wpdialog.js File 569 B 0644
wpdialog.min.js File 281 B 0644
wplink.js File 20.74 KB 0644
wplink.min.js File 11.05 KB 0644
zxcvbn-async.js File 821 B 0644
zxcvbn-async.min.js File 351 B 0644
zxcvbn.min.js File 802.97 KB 0644