Вход Регистрация
Файл: wordpress/wp-includes/js/tinymce/plugins/wpemoji/plugin.js
Строк: 184
<?php
( function( tinymcewp ) {
    
tinymce.PluginManager.add'wpemoji', function( editor ) {
        var 
typing,
            
env tinymce.Env,
            
ua window.navigator.userAgent,
            
isWin ua.indexOf'Windows' ) > -1,
            
isWin8 = ( function() {
                var 
match ua.match( /Windows NT 6.(d)/ );

                if ( 
match && match[1] > ) {
                    return 
true;
                }

                return 
false;
            }());

        if ( ! 
wp || ! wp.emoji || ! wp.emoji.replaceEmoji ) {
            return;
        }

        function 
setImgAttrimage ) {
            
image.className 'emoji';
            
image.setAttribute'data-mce-resize''false' );
            
image.setAttribute'data-mce-placeholder''1' );
            
image.setAttribute'data-wp-emoji''1' );
        }

        function 
replaceEmojinode ) {
            var 
imgAttr = {
                
'data-mce-resize''false',
                
'data-mce-placeholder''1',
                
'data-wp-emoji''1'
            
};

            
wp.emoji.parsenode, { imgAttrimgAttr } );
        }

        
// Test if the node text contains emoji char(s) and replace.
        
function parseNodenode ) {
            var 
selectionbookmark;

            if ( 
node && window.twemoji && window.twemoji.testnode.textContent || node.innerText ) ) {
                if ( 
env.webkit ) {
                    
selection editor.selection;
                    
bookmark selection.getBookmark();
                }

                
replaceEmojinode );

                if ( 
env.webkit ) {
                    
selection.moveToBookmarkbookmark );
                }
            }
        }

        if ( 
isWin8 ) {
            
// Windows 8+ emoji can be "typed" with the onscreen keyboard.
            // That triggers the normal keyboard events, but not the 'input' event.
            // Thankfully it sets keyCode 231 when the onscreen keyboard inserts any emoji.
            
editor.on'keyup', function( event ) {
                if ( 
event.keyCode === 231 ) {
                    
parseNodeeditor.selection.getNode() );
                }
            } );
        } else if ( ! 
isWin ) {
            
// In MacOS inserting emoji doesn't trigger the stanradr keyboard events.
            // Thankfully it triggers the 'input' event.
            // This works in Android and iOS as well.
            
editor.on'keydown keyup', function( event ) {
                
typing = ( event.type === 'keydown' );
            } );

            
editor.on'input', function() {
                if ( 
typing ) {
                    return;
                }

                
parseNodeeditor.selection.getNode() );
            });
        }

        
editor.on'setcontent', function( event ) {
            var 
selection editor.selection,
                
node selection.getNode();

            if ( 
window.twemoji && window.twemoji.testnode.textContent || node.innerText ) ) {
                
replaceEmojinode );

                
// In IE all content in the editor is left selected after wp.emoji.parse()...
                // Collapse the selection to the beginning.
                
if ( env.ie && env.ie && event.load && node && node.nodeName === 'BODY' ) {
                    
selection.collapsetrue );
                }
            }
        } );

        
// Convert Twemoji compatible pasted emoji replacement images into our format.
        
editor.on'PastePostProcess', function( event ) {
            if ( 
window.twemoji ) {
                
tinymce.eacheditor.dom.$( 'img.emoji'event.node ), function( image ) {
                    if ( 
image.alt && window.twemoji.testimage.alt ) ) {
                        
setImgAttrimage );
                    }
                });
            }
        });

        
editor.on'postprocess', function( event ) {
            if ( 
event.content ) {
                
event.content event.content.replace( /<img[^>]+data-wp-emoji="[^>]+>/g, function( img ) {
                    var alt = img.match( /alt="
([^"]+)"/ );

                    if ( 
alt && alt[1] ) {
                        return 
alt[1];
                    }

                    return 
img;
                });
            }
        } );

        
editor.on'resolvename', function( event ) {
            if ( 
event.target.nodeName === 'IMG' && editor.dom.getAttribevent.target'data-wp-emoji' ) ) {
                
event.preventDefault();
            }
        } );
    } );
} )( 
window.tinymcewindow.wp );
?>
Онлайн: 1
Реклама