/
home
/
techb158
/
public_html
/
wp-includes
/
js
/
/home/techb158/public_html/wp-includes/js
mkdir
upload
Name
Size
Mode
Actions
codemirror/
-
0777
rm
crop/
-
0777
rm
dist/
-
0777
rm
imgareaselect/
-
0777
rm
jcrop/
-
0777
rm
jquery/
-
0777
rm
mediaelement/
-
0777
rm
plupload/
-
0777
rm
swfupload/
-
0777
rm
thickbox/
-
0777
rm
tinymce/
-
0777
rm
admin-bar.js
10549
0666
edit
dl
rm
admin-bar.min.js
3487
0666
edit
dl
rm
api-request.js
3324
0666
edit
dl
rm
api-request.min.js
1023
0666
edit
dl
rm
autosave.js
22476
0666
edit
dl
rm
autosave.min.js
5807
0666
edit
dl
rm
backbone.js
80436
0666
edit
dl
rm
backbone.min.js
24314
0666
edit
dl
rm
clipboard.js
26807
0666
edit
dl
rm
clipboard.min.js
9009
0666
edit
dl
rm
colorpicker.js
29083
0666
edit
dl
rm
colorpicker.min.js
16498
0666
edit
dl
rm
comment-reply.js
12383
0666
edit
dl
rm
comment-reply.min.js
2950
0666
edit
dl
rm
customize-base.js
25822
0666
edit
dl
rm
customize-base.min.js
7852
0666
edit
dl
rm
customize-loader.js
7903
0666
edit
dl
rm
customize-loader.min.js
3551
0666
edit
dl
rm
customize-models.js
6821
0666
edit
dl
rm
customize-models.min.js
3681
0666
edit
dl
rm
customize-preview-nav-menus.js
15024
0666
edit
dl
rm
customize-preview-nav-menus.min.js
5033
0666
edit
dl
rm
customize-preview-widgets.js
23253
0666
edit
dl
rm
customize-preview-widgets.min.js
7820
0666
edit
dl
rm
customize-preview.js
28597
0666
edit
dl
rm
customize-preview.min.js
11011
0666
edit
dl
rm
customize-selective-refresh.js
33335
0666
edit
dl
rm
customize-selective-refresh.min.js
10693
0666
edit
dl
rm
customize-views.js
5222
0666
edit
dl
rm
customize-views.min.js
2567
0666
edit
dl
rm
heartbeat.js
24052
0666
edit
dl
rm
heartbeat.min.js
5947
0666
edit
dl
rm
hoverintent-js.min.js
1718
0666
edit
dl
rm
hoverIntent.js
7225
0666
edit
dl
rm
hoverIntent.min.js
1499
0666
edit
dl
rm
imagesloaded.min.js
5520
0666
edit
dl
rm
json2.js
31
0666
edit
dl
rm
json2.min.js
35
0666
edit
dl
rm
masonry.min.js
24138
0666
edit
dl
rm
mce-view.js
25849
0666
edit
dl
rm
mce-view.min.js
9770
0666
edit
dl
rm
media-audiovideo.js
24717
0666
edit
dl
rm
media-audiovideo.min.js
12049
0666
edit
dl
rm
media-editor.js
29460
0666
edit
dl
rm
media-editor.min.js
11092
0666
edit
dl
rm
media-grid.js
27752
0666
edit
dl
rm
media-grid.min.js
13686
0666
edit
dl
rm
media-models.js
44085
0666
edit
dl
rm
media-models.min.js
13338
0666
edit
dl
rm
media-views.js
273089
0666
edit
dl
rm
media-views.min.js
110741
0666
edit
dl
rm
quicktags.js
22601
0666
edit
dl
rm
quicktags.min.js
11132
0666
edit
dl
rm
shortcode.js
10758
0666
edit
dl
rm
shortcode.min.js
2643
0666
edit
dl
rm
swfobject.js
0
0666
edit
dl
rm
swfobject.min.js
35
0666
edit
dl
rm
tw-sack.js
4970
0666
edit
dl
rm
tw-sack.min.js
3288
0666
edit
dl
rm
twemoji.js
37180
0666
edit
dl
rm
twemoji.min.js
19848
0666
edit
dl
rm
underscore.js
68873
0666
edit
dl
rm
underscore.min.js
19012
0666
edit
dl
rm
utils.js
4665
0666
edit
dl
rm
utils.min.js
1864
0666
edit
dl
rm
wp-ajax-response.js
3903
0666
edit
dl
rm
wp-ajax-response.min.js
2571
0666
edit
dl
rm
wp-api.js
46994
0666
edit
dl
rm
wp-api.min.js
14682
0666
edit
dl
rm
wp-auth-check.js
4444
0666
edit
dl
rm
wp-auth-check.min.js
1689
0666
edit
dl
rm
wp-backbone.js
15241
0666
edit
dl
rm
wp-backbone.min.js
3039
0666
edit
dl
rm
wp-custom-header.js
10465
0666
edit
dl
rm
wp-custom-header.min.js
4442
0666
edit
dl
rm
wp-embed-template.js
6779
0666
edit
dl
rm
wp-embed-template.min.js
3174
0666
edit
dl
rm
wp-embed.js
3214
0666
edit
dl
rm
wp-embed.min.js
1251
0666
edit
dl
rm
wp-emoji-loader.js
13357
0666
edit
dl
rm
wp-emoji-loader.min.js
2977
0666
edit
dl
rm
wp-emoji-release.min.js
22752
0666
edit
dl
rm
wp-emoji.js
8792
0666
edit
dl
rm
wp-emoji.min.js
2855
0666
edit
dl
rm
wp-list-revisions.js
970
0666
edit
dl
rm
wp-list-revisions.min.js
597
0666
edit
dl
rm
wp-lists.js
25315
0666
edit
dl
rm
wp-lists.min.js
7521
0666
edit
dl
rm
wp-pointer.js
10233
0666
edit
dl
rm
wp-pointer.min.js
3621
0666
edit
dl
rm
wp-sanitize.js
1622
0666
edit
dl
rm
wp-sanitize.min.js
402
0666
edit
dl
rm
wp-tooltip.js
1555
0666
edit
dl
rm
wp-tooltip.min.js
530
0666
edit
dl
rm
wp-util.js
4689
0666
edit
dl
rm
wp-util.min.js
1431
0666
edit
dl
rm
wpdialog.js
569
0666
edit
dl
rm
wpdialog.min.js
281
0666
edit
dl
rm
wplink.js
21240
0666
edit
dl
rm
wplink.min.js
11317
0666
edit
dl
rm
zxcvbn-async.js
821
0666
edit
dl
rm
zxcvbn-async.min.js
351
0666
edit
dl
rm
zxcvbn.min.js
822237
0666
edit
dl
rm
Edit:
/home/techb158/public_html/wp-includes/js/wp-emoji-loader.js
(13357B)
/** * @output wp-includes/js/wp-emoji-loader.js */ /* eslint-env es6 */ // Note: This is loaded as a script module, so there is no need for an IIFE to prevent pollution of the global scope. /** * Emoji Settings as exported in PHP via _print_emoji_detection_script(). * @typedef WPEmojiSettings * @type {object} * @property {?object} source * @property {?string} source.concatemoji * @property {?string} source.twemoji * @property {?string} source.wpemoji */ const selector = 'script#wp-emoji-settings'; const script = document.querySelector( selector ); if ( ! ( script instanceof HTMLScriptElement ) ) { throw new Error( `Element missing: ${ selector }`); } const settings = /** @type {WPEmojiSettings} */ ( JSON.parse( script.text ) ); // For compatibility with other scripts that read from this global, in particular wp-includes/js/wp-emoji.js (source file: js/_enqueues/wp/emoji.js). window._wpemojiSettings = settings; /** * Support tests. * @typedef SupportTests * @type {object} * @property {?boolean} flag * @property {?boolean} emoji */ const sessionStorageKey = 'wpEmojiSettingsSupports'; const tests = [ 'flag', 'emoji' ]; /** * Checks whether the browser supports offloading to a Worker. * * @since 6.3.0 * * @private * * @returns {boolean} */ function supportsWorkerOffloading() { return ( typeof Worker !== 'undefined' && typeof OffscreenCanvas !== 'undefined' && typeof URL !== 'undefined' && URL.createObjectURL && typeof Blob !== 'undefined' ); } /** * @typedef SessionSupportTests * @type {object} * @property {number} timestamp * @property {SupportTests} supportTests */ /** * Get support tests from session. * * @since 6.3.0 * * @private * * @returns {?SupportTests} Support tests, or null if not set or older than 1 week. */ function getSessionSupportTests() { try { /** @type {SessionSupportTests} */ const item = JSON.parse( sessionStorage.getItem( sessionStorageKey ) ); if ( typeof item === 'object' && typeof item.timestamp === 'number' && new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds. typeof item.supportTests === 'object' ) { return item.supportTests; } } catch ( e ) {} return null; } /** * Persist the supports in session storage. * * @since 6.3.0 * * @private * * @param {SupportTests} supportTests Support tests. */ function setSessionSupportTests( supportTests ) { try { /** @type {SessionSupportTests} */ const item = { supportTests: supportTests, timestamp: new Date().valueOf() }; sessionStorage.setItem( sessionStorageKey, JSON.stringify( item ) ); } catch ( e ) {} } /** * Checks if two sets of Emoji characters render the same visually. * * This is used to determine if the browser is rendering an emoji with multiple data points * correctly. set1 is the emoji in the correct form, using a zero-width joiner. set2 is the emoji * in the incorrect form, using a zero-width space. If the two sets render the same, then the browser * does not support the emoji correctly. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.9.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} set1 Set of Emoji to test. * @param {string} set2 Set of Emoji to test. * * @return {boolean} True if the two sets render the same. */ function emojiSetsRenderIdentically( context, set1, set2 ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set1, 0, 0 ); const rendered1 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( set2, 0, 0 ); const rendered2 = new Uint32Array( context.getImageData( 0, 0, context.canvas.width, context.canvas.height ).data ); return rendered1.every( ( rendered2Data, index ) => { return rendered2Data === rendered2[ index ]; } ); } /** * Checks if the center point of a single emoji is empty. * * This is used to determine if the browser is rendering an emoji with a single data point * correctly. The center point of an incorrectly rendered emoji will be empty. A correctly * rendered emoji will have a non-zero value at the center point. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 6.8.2 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} emoji Emoji to test. * * @return {boolean} True if the center point is empty. */ function emojiRendersEmptyCenterPoint( context, emoji ) { // Cleanup from previous test. context.clearRect( 0, 0, context.canvas.width, context.canvas.height ); context.fillText( emoji, 0, 0 ); // Test if the center point (16, 16) is empty (0,0,0,0). const centerPoint = context.getImageData(16, 16, 1, 1); for ( let i = 0; i < centerPoint.data.length; i++ ) { if ( centerPoint.data[ i ] !== 0 ) { // Stop checking the moment it's known not to be empty. return false; } } return true; } /** * Determines if the browser properly renders Emoji that Twemoji can supplement. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 4.2.0 * * @private * * @param {CanvasRenderingContext2D} context 2D Context. * @param {string} type Whether to test for support of "flag" or "emoji". * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * @param {Function} emojiRendersEmptyCenterPoint Reference to emojiRendersEmptyCenterPoint function, needed due to minification. * * @return {boolean} True if the browser can render emoji, false if it cannot. */ function browserSupportsEmoji( context, type, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ) { let isIdentical; switch ( type ) { case 'flag': /* * Test for Transgender flag compatibility. Added in Unicode 13. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (white flag emoji + transgender symbol). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width joiner sequence '\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for Sark flag compatibility. This is the least supported of the letter locale flags, * so gives us an easy test for full support. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly ([C] + [Q]). */ isIdentical = emojiSetsRenderIdentically( context, '\uD83C\uDDE8\uD83C\uDDF6', // as the sequence of two code points '\uD83C\uDDE8\u200B\uD83C\uDDF6' // as the two code points separated by a zero-width space ); if ( isIdentical ) { return false; } /* * Test for English flag compatibility. England is a country in the United Kingdom, it * does not have a two letter locale code but rather a five letter sub-division code. * * To test for support, we try to render it, and compare the rendering to how it would look if * the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]). */ isIdentical = emojiSetsRenderIdentically( context, // as the flag sequence '\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F', // with each code point separated by a zero-width space '\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F' ); return ! isIdentical; case 'emoji': /* * Is there a large, hairy, humanoid mythical creature living in the browser? * * To test for Emoji 17.0 support, try to render a new emoji: Hairy Creature. * * The hairy creature emoji is a single code point emoji. Testing for browser * support required testing the center point of the emoji to see if it is empty. * * 0xD83E 0x1FAC8 (\uD83E\u1FAC8) == 🫈 Hairy creature. * * When updating this test, please ensure that the emoji is either a single code point * or switch to using the emojiSetsRenderIdentically function and testing with a zero-width * joiner vs a zero-width space. */ const notSupported = emojiRendersEmptyCenterPoint( context, '\uD83E\u1FAC8' ); return ! notSupported; } return false; } /** * Checks emoji support tests. * * This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing * scope. Everything must be passed by parameters. * * @since 6.3.0 * * @private * * @param {string[]} tests Tests. * @param {Function} browserSupportsEmoji Reference to browserSupportsEmoji function, needed due to minification. * @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification. * @param {Function} emojiRendersEmptyCenterPoint Reference to emojiRendersEmptyCenterPoint function, needed due to minification. * * @return {SupportTests} Support tests. */ function testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ) { let canvas; if ( typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ) { canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement. } else { canvas = document.createElement( 'canvas' ); } const context = canvas.getContext( '2d', { willReadFrequently: true } ); /* * Chrome on OS X added native emoji rendering in M41. Unfortunately, * it doesn't work when the font is bolder than 500 weight. So, we * check for bold rendering support to avoid invisible emoji in Chrome. */ context.textBaseline = 'top'; context.font = '600 32px Arial'; const supports = {}; tests.forEach( ( test ) => { supports[ test ] = browserSupportsEmoji( context, test, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ); } ); return supports; } /** * Adds a script to the head of the document. * * @ignore * * @since 4.2.0 * * @param {string} src The url where the script is located. * * @return {void} */ function addScript( src ) { const script = document.createElement( 'script' ); script.src = src; script.defer = true; document.head.appendChild( script ); } settings.supports = { everything: true, everythingExceptFlag: true }; // Obtain the emoji support from the browser, asynchronously when possible. new Promise( ( resolve ) => { let supportTests = getSessionSupportTests(); if ( supportTests ) { resolve( supportTests ); return; } if ( supportsWorkerOffloading() ) { try { // Note that the functions are being passed as arguments due to minification. const workerScript = 'postMessage(' + testEmojiSupports.toString() + '(' + [ JSON.stringify( tests ), browserSupportsEmoji.toString(), emojiSetsRenderIdentically.toString(), emojiRendersEmptyCenterPoint.toString() ].join( ',' ) + '));'; const blob = new Blob( [ workerScript ], { type: 'text/javascript' } ); const worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojiSupports' } ); worker.onmessage = ( event ) => { supportTests = event.data; setSessionSupportTests( supportTests ); worker.terminate(); resolve( supportTests ); }; return; } catch ( e ) {} } supportTests = testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically, emojiRendersEmptyCenterPoint ); setSessionSupportTests( supportTests ); resolve( supportTests ); } ) // Once the browser emoji support has been obtained from the session, finalize the settings. .then( ( supportTests ) => { /* * Tests the browser support for flag emojis and other emojis, and adjusts the * support settings accordingly. */ for ( const test in supportTests ) { settings.supports[ test ] = supportTests[ test ]; settings.supports.everything = settings.supports.everything && settings.supports[ test ]; if ( 'flag' !== test ) { settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && settings.supports[ test ]; } } settings.supports.everythingExceptFlag = settings.supports.everythingExceptFlag && ! settings.supports.flag; // When the browser can not render everything we need to load a polyfill. if ( ! settings.supports.everything ) { const src = settings.source || {}; if ( src.concatemoji ) { addScript( src.concatemoji ); } else if ( src.wpemoji && src.twemoji ) { addScript( src.twemoji ); addScript( src.wpemoji ); } } } );
Save
cmd:
run