golden hour
/var/www/html/wp-includes/js
⬆️ Go Up
Upload
File/Folder
Size
Actions
admin-bar.js
10.51 KB
Del
OK
admin-bar.min.js
3.47 KB
Del
OK
api-request.js
3.25 KB
Del
OK
api-request.min.js
1 KB
Del
OK
autosave.js
21.95 KB
Del
OK
autosave.min.js
5.69 KB
Del
OK
backbone.js
75.97 KB
Del
OK
backbone.min.js
23.26 KB
Del
OK
clipboard.js
27.81 KB
Del
OK
clipboard.min.js
10.36 KB
Del
OK
codemirror
-
Del
OK
colorpicker.js
28.4 KB
Del
OK
colorpicker.min.js
16.17 KB
Del
OK
comment-reply.js
12.17 KB
Del
OK
comment-reply.min.js
2.91 KB
Del
OK
crop
-
Del
OK
customize-base.js
25.15 KB
Del
OK
customize-base.min.js
7.67 KB
Del
OK
customize-loader.js
7.72 KB
Del
OK
customize-loader.min.js
3.47 KB
Del
OK
customize-models.js
6.66 KB
Del
OK
customize-models.min.js
3.61 KB
Del
OK
customize-preview-nav-menus.js
14.67 KB
Del
OK
customize-preview-nav-menus.min.js
4.92 KB
Del
OK
customize-preview-widgets.js
22.71 KB
Del
OK
customize-preview-widgets.min.js
7.64 KB
Del
OK
customize-preview.js
27.3 KB
Del
OK
customize-preview.min.js
10.51 KB
Del
OK
customize-selective-refresh.js
32.55 KB
Del
OK
customize-selective-refresh.min.js
10.44 KB
Del
OK
customize-views.js
4.95 KB
Del
OK
customize-views.min.js
2.39 KB
Del
OK
dist
-
Del
OK
heartbeat.js
22.6 KB
Del
OK
heartbeat.min.js
5.74 KB
Del
OK
hoverIntent.js
6.93 KB
Del
OK
hoverIntent.min.js
1.45 KB
Del
OK
hoverintent-js.min.js
1.68 KB
Del
OK
imagesloaded.min.js
5.5 KB
Del
OK
imgareaselect
-
Del
OK
jcrop
-
Del
OK
jquery
-
Del
OK
json2.js
17.99 KB
Del
OK
json2.min.js
3.08 KB
Del
OK
masonry.min.js
23.57 KB
Del
OK
mce-view.js
25.45 KB
Del
OK
mce-view.min.js
9.65 KB
Del
OK
media-audiovideo.js
27.03 KB
Del
OK
media-audiovideo.min.js
12.72 KB
Del
OK
media-editor.js
28.44 KB
Del
OK
media-editor.min.js
10.65 KB
Del
OK
media-grid.js
28.84 KB
Del
OK
media-grid.min.js
13.91 KB
Del
OK
media-models.js
45.41 KB
Del
OK
media-models.min.js
13.96 KB
Del
OK
media-views.js
268.05 KB
Del
OK
media-views.min.js
108.66 KB
Del
OK
mediaelement
-
Del
OK
plupload
-
Del
OK
quicktags.js
22.07 KB
Del
OK
quicktags.min.js
10.87 KB
Del
OK
shortcode.js
10.51 KB
Del
OK
shortcode.min.js
2.59 KB
Del
OK
swfobject.js
9.99 KB
Del
OK
swfupload
-
Del
OK
thickbox
-
Del
OK
tinymce
-
Del
OK
tw-sack.js
4.85 KB
Del
OK
tw-sack.min.js
3.22 KB
Del
OK
twemoji.js
31.21 KB
Del
OK
twemoji.min.js
14.9 KB
Del
OK
underscore.js
66.77 KB
Del
OK
underscore.min.js
18.63 KB
Del
OK
utils.js
4.56 KB
Del
OK
utils.min.js
1.82 KB
Del
OK
wp-ajax-response.js
3.12 KB
Del
OK
wp-ajax-response.min.js
2.03 KB
Del
OK
wp-api.js
45.88 KB
Del
OK
wp-api.min.js
14.34 KB
Del
OK
wp-auth-check.js
4.11 KB
Del
OK
wp-auth-check.min.js
1.62 KB
Del
OK
wp-backbone.js
14.88 KB
Del
OK
wp-backbone.min.js
2.97 KB
Del
OK
wp-custom-header.js
10.22 KB
Del
OK
wp-custom-header.min.js
4.34 KB
Del
OK
wp-embed-template.js
6.24 KB
Del
OK
wp-embed-template.min.js
3.08 KB
Del
OK
wp-embed.js
3.33 KB
Del
OK
wp-embed.min.js
1.44 KB
Del
OK
wp-emoji-loader.js
6.8 KB
Del
OK
wp-emoji-loader.min.js
1.81 KB
Del
OK
wp-emoji-release.min.js
17.75 KB
Del
OK
wp-emoji.js
8.78 KB
Del
OK
wp-emoji.min.js
2.81 KB
Del
OK
wp-list-revisions.js
970 B
Del
OK
wp-list-revisions.min.js
597 B
Del
OK
wp-lists.js
24.72 KB
Del
OK
wp-lists.min.js
7.27 KB
Del
OK
wp-pointer.js
9.99 KB
Del
OK
wp-pointer.min.js
3.54 KB
Del
OK
wp-sanitize.js
1.32 KB
Del
OK
wp-sanitize.min.js
458 B
Del
OK
wp-util.js
4.45 KB
Del
OK
wp-util.min.js
1.31 KB
Del
OK
wpdialog.js
560 B
Del
OK
wpdialog.min.js
272 B
Del
OK
wplink.js
20.66 KB
Del
OK
wplink.min.js
11.01 KB
Del
OK
zxcvbn-async.js
821 B
Del
OK
zxcvbn-async.min.js
351 B
Del
OK
zxcvbn.min.js
802.97 KB
Del
OK
Edit: wp-custom-header.js
/** * @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 || {} );
Save