: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
// Add new dynamic partials when the document changes.
if ( 'undefined' !== typeof MutationObserver ) {
self.mutationObserver = new MutationObserver( function( mutations ) {
_.each( mutations, function( mutation ) {
self.addPartials( $( mutation.target ) );
self.mutationObserver.observe( document.documentElement, {
* Handle rendering of partials.
* @param {api.selectiveRefresh.Placement} placement
api.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) {
if ( placement.container ) {
self.addPartials( placement.container );
* Handle setting validities in partial refresh response.
* @param {object} data Response data.
* @param {object} data.setting_validities Setting validities.
api.selectiveRefresh.bind( 'render-partials-response', function handleSettingValiditiesResponse( data ) {
if ( data.setting_validities ) {
api.preview.send( 'selective-refresh-setting-validities', data.setting_validities );
api.preview.bind( 'edit-shortcut-visibility', function( visibility ) {
api.selectiveRefresh.editShortcutVisibility.set( visibility );
api.selectiveRefresh.editShortcutVisibility.bind( function( visibility ) {
var body = $( document.body ), shouldAnimateHide;
shouldAnimateHide = ( 'hidden' === visibility && body.hasClass( 'customize-partial-edit-shortcuts-shown' ) && ! body.hasClass( 'customize-partial-edit-shortcuts-hidden' ) );
body.toggleClass( 'customize-partial-edit-shortcuts-hidden', shouldAnimateHide );
body.toggleClass( 'customize-partial-edit-shortcuts-shown', 'visible' === visibility );
api.preview.bind( 'active', function() {
// Make all partials ready.
self.partial.each( function( partial ) {
partial.deferred.ready.resolve();
// Make all partials added henceforth as ready upon add.
self.partial.bind( 'add', function( partial ) {
partial.deferred.ready.resolve();
}( jQuery, wp.customize ) );