PHP 8.1.33
Preview: wp-emoji.js Size: 8.76 KB
/home/jambtst2015/public_html/www.securiskbrokers.com/wp-includes/js/wp-emoji.js

/**
 * wp-emoji.js is used to replace emoji with images in browsers when the browser
 * doesn't support emoji natively.
 *
 * @output wp-includes/js/wp-emoji.js
 */

( function( window, settings ) {
	/**
	 * Replaces emoji with images when browsers don't support emoji.
	 *
	 * @since 4.2.0
	 * @access private
	 *
	 * @class
	 *
	 * @see  Twitter Emoji library
	 * @link https://github.com/twitter/twemoji
	 *
	 * @return {Object} The wpEmoji parse and test functions.
	 */
	function wpEmoji() {
		var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,

		// Compression and maintain local scope.
		document = window.document,

		// Private.
		twemoji, timer,
		loaded = false,
		count = 0,
		ie11 = window.navigator.userAgent.indexOf( 'Trident/7.0' ) > 0;

		/**
		 * Detect if the browser supports SVG.
		 *
		 * @since 4.6.0
		 * @private
		 *
		 * @see Modernizr
		 * @link https://github.com/Modernizr/Modernizr/blob/master/feature-detects/svg/asimg.js
		 *
		 * @return {boolean} True if the browser supports svg, false if not.
		 */
		function browserSupportsSvgAsImage() {
			if ( !! document.implementation.hasFeature ) {
				return document.implementation.hasFeature( 'http://www.w3.org/TR/SVG11/feature#Image', '1.1' );
			}

			// document.implementation.hasFeature is deprecated. It can be presumed
			// if future browsers remove it, the browser will support SVGs as images.
			return true;
		}

		/**
		 * Runs when the document load event is fired, so we can do our first parse of
		 * the page.
		 *
		 * Listens to all the DOM mutations and checks for added nodes that contain
		 * emoji characters and replaces those with twitter emoji images.
		 *
		 * @since 4.2.0
		 * @private
		 */
		function load() {
			if ( loaded ) {
				return;
			}

			// Ensure twemoji is available on the global window before proceeding.
			if ( typeof window.twemoji === 'undefined' ) {
				// Break if waiting for longer than 30 seconds.
				if ( count > 600 ) {
					return;
				}

				// Still waiting.
				window.clearTimeout( timer );
				timer = window.setTimeout( load, 50 );
				count++;

				return;
			}

			twemoji = window.twemoji;
			loaded = true;

			// Initialize the mutation observer, which checks all added nodes for
			// replaceable emoji characters.
			if ( MutationObserver ) {
				new MutationObserver( function( mutationRecords ) {
					var i = mutationRecords.length,
						addedNodes, removedNodes, ii, node;

					while ( i-- ) {
						addedNodes = mutationRecords[ i ].addedNodes;
						removedNodes = mutationRecords[ i ].removedNodes;
						ii = addedNodes.length;

						/*
						 * Checks if an image has been replaced by a text element
						 * with the same text as the alternate description of the replaced image.
						 * (presumably because the image could not be loaded).
						 * If it is, do absolutely nothing.
						 *
						 * Node type 3 is a TEXT_NODE.
						 *
						 * @link https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
						 */
						if (
							ii === 1 && removedNodes.length === 1 &&
							addedNodes[0].nodeType === 3 &&
							removedNodes[0].nodeName === 'IMG' &&
							addedNodes[0].data === removedNodes[0].alt &&
							'load-failed' === removedNodes[0].getAttribute( 'data-error' )
						) {
							return;
						}

						// Loop through all the added nodes.
						while ( ii-- ) {
							node = addedNodes[ ii ];

							// Node type 3 is a TEXT_NODE.
							if ( node.nodeType === 3 ) {
								if ( ! node.parentNode ) {
									continue;
								}

								if ( ie11 ) {
									/*
									 * IE 11's implementation of MutationObserver is buggy.
									 * It unnecessarily splits text nodes when it encounters a HTML
									 * template interpolation symbol ( "{{", for example ). So, we
									 * join the text nodes back together as a work-around.
									 *
									 * Node type 3 is a TEXT_NODE.
									 */
									while( node.nextSibling && 3 === node.nextSibling.nodeType ) {
										node.nodeValue = node.nodeValue + node.nextSibling.nodeValue;
										node.parentNode.removeChild( node.nextSibling );
									}
								}

								node = node.parentNode;
							}

							if ( test( node.textContent ) ) {
								parse( node );
							}
						}
					}
				} ).observe( document.body, {
					childList: true,
					subtree: true
				} );
			}

			parse( document.body );
		}

		/**
		 * Tests if a text string contains emoji characters.
		 *
		 * @since 4.3.0
		 *
		 * @memberOf wp.emoji
		 *
		 * @param {string} text The string to test.
		 *
		 * @return {boolean} Whether the string contains emoji characters.
		 */
		function test( text ) {
			// Single char. U+20E3 to detect keycaps. U+00A9 "copyright sign" and U+00AE "registered sign" not included.
			var single = /[\u203C\u2049\u20E3\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2300\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638\u2639\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692\u2693\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753\u2754\u2755\u2757\u2763\u2764\u2795\u2796\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05\u2B06\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]/,
			// Surrogate pair range. Only tests for the second half.
			pair = /[\uDC00-\uDFFF]/;

			if ( text ) {
				return  pair.test( text ) || single.test( text );
			}

			return false;
		}

		/**
		 * Parses any emoji characters into Twemoji images.
		 *
		 * - When passed an element the emoji characters are replaced inline.
		 * - When passed a string the emoji characters are replaced and the result is
		 *   returned.
		 *
		 * @since 4.2.0
		 *
		 * @memberOf wp.emoji
		 *
		 * @param {HTMLElement|string} object The element or string to parse.
		 * @param {Object}             args   Additional options for Twemoji.
		 *
		 * @return {HTMLElement|string} A string where all emoji are now image tags of
		 *                              emoji. Or the element that was passed as the first argument.
		 */
		function parse( object, args ) {
			var params;

			/*
			 * If the browser has full support, twemoji is not loaded or our
			 * object is not what was expected, we do not parse anything.
			 */
			if ( settings.supports.everything || ! twemoji || ! object ||
				( 'string' !== typeof object && ( ! object.childNodes || ! object.childNodes.length ) ) ) {

				return object;
			}

			// Compose the params for the twitter emoji library.
			args = args || {};
			params = {
				base: browserSupportsSvgAsImage() ? settings.svgUrl : settings.baseUrl,
				ext:  browserSupportsSvgAsImage() ? settings.svgExt : settings.ext,
				className: args.className || 'emoji',
				callback: function( icon, options ) {
					// Ignore some standard characters that TinyMCE recommends in its character map.
					switch ( icon ) {
						case 'a9':
						case 'ae':
						case '2122':
						case '2194':
						case '2660':
						case '2663':
						case '2665':
						case '2666':
							return false;
					}

					if ( settings.supports.everythingExceptFlag &&
						! /^1f1(?:e[6-9a-f]|f[0-9a-f])-1f1(?:e[6-9a-f]|f[0-9a-f])$/.test( icon ) && // Country flags.
						! /^(1f3f3-fe0f-200d-1f308|1f3f4-200d-2620-fe0f)$/.test( icon )             // Rainbow and pirate flags.
					) {
						return false;
					}

					return ''.concat( options.base, icon, options.ext );
				},
				attributes: function() {
					return {
						role: 'img'
					};
				},
				onerror: function() {
					if ( twemoji.parentNode ) {
						this.setAttribute( 'data-error', 'load-failed' );
						twemoji.parentNode.replaceChild( document.createTextNode( twemoji.alt ), twemoji );
					}
				},
				doNotParse: function( node ) {
					if (
						node &&
						node.className &&
						typeof node.className === 'string' &&
						node.className.indexOf( 'wp-exclude-emoji' ) !== -1
					) {
						// Do not parse this node. Emojis will not be replaced in this node and all sub-nodes.
						return true;
					}

					return false;
				}
			};

			if ( typeof args.imgAttr === 'object' ) {
				params.attributes = function() {
					return args.imgAttr;
				};
			}

			return twemoji.parse( object, params );
		}

		/**
		 * Initialize our emoji support, and set up listeners.
		 */
		if ( settings ) {
			if ( settings.DOMReady ) {
				load();
			} else {
				settings.readyCallback = load;
			}
		}

		return {
			parse: parse,
			test: test
		};
	}

	window.wp = window.wp || {};

	/**
	 * @namespace wp.emoji
	 */
	window.wp.emoji = new wpEmoji();

} )( window, window._wpemojiSettings );

Directory Contents

Dirs: 11 × Files: 100

Name Size Perms Modified Actions
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
crop DIR
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
dist DIR
- drwxr-xr-x 2024-12-09 13:54:39
Edit Download
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
jcrop DIR
- drwxr-xr-x 2024-12-09 13:54:39
Edit Download
jquery DIR
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
plupload DIR
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
swfupload DIR
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
thickbox DIR
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
tinymce DIR
- drwxr-xr-x 2024-12-09 13:54:38
Edit Download
10.30 KB lrw-r--r-- 2024-05-11 22:28:08
Edit Download
3.41 KB lrw-r--r-- 2024-05-11 22:28:08
Edit Download
3.25 KB lrw-r--r-- 2020-12-01 08:44:06
Edit Download
1023 B lrw-r--r-- 2022-04-09 00:07:18
Edit Download
21.95 KB lrw-r--r-- 2021-03-18 23:01:04
Edit Download
5.67 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
78.51 KB lrw-r--r-- 2024-08-08 23:37:20
Edit Download
23.71 KB lrw-r--r-- 2024-08-08 23:37:20
Edit Download
26.18 KB lrw-r--r-- 2022-10-04 19:55:24
Edit Download
8.80 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
28.40 KB lrw-r--r-- 2012-11-17 20:11:30
Edit Download
16.13 KB lrw-r--r-- 2022-09-23 23:55:30
Edit Download
12.22 KB lrw-r--r-- 2024-09-04 00:36:10
Edit Download
2.96 KB lrw-r--r-- 2024-09-04 00:36:10
Edit Download
25.22 KB lrw-r--r-- 2023-05-20 14:19:24
Edit Download
7.67 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
7.72 KB lrw-r--r-- 2024-04-12 21:47:14
Edit Download
3.47 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
6.66 KB lrw-r--r-- 2020-06-25 16:43:08
Edit Download
3.59 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
14.67 KB lrw-r--r-- 2020-07-28 03:35:02
Edit Download
4.92 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
22.71 KB lrw-r--r-- 2020-06-20 16:58:10
Edit Download
7.64 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
27.30 KB lrw-r--r-- 2020-07-28 03:35:02
Edit Download
10.45 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
32.55 KB lrw-r--r-- 2024-04-12 21:47:14
Edit Download
10.44 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
4.95 KB lrw-r--r-- 2018-06-28 06:30:16
Edit Download
2.39 KB lrw-r--r-- 2021-01-06 20:29:24
Edit Download
23.49 KB lrw-r--r-- 2024-09-12 03:09:16
Edit Download
5.81 KB lrw-r--r-- 2024-09-12 03:09:16
Edit Download
1.68 KB lrw-r--r-- 2019-12-10 06:03:02
Edit Download
7.06 KB lrw-r--r-- 2022-01-03 20:03:18
Edit Download
1.46 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
5.39 KB lrw-r--r-- 2023-08-11 22:18:26
Edit Download
17.99 KB lrw-r--r-- 2015-10-06 18:02:26
Edit Download
3.07 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
23.57 KB lrw-r--r-- 2020-06-13 22:53:28
Edit Download
25.24 KB lrw-r--r-- 2023-10-10 01:31:28
Edit Download
9.54 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
24.39 KB lrw-r--r-- 2024-02-15 21:53:16
Edit Download
11.78 KB lrw-r--r-- 2024-02-15 21:53:16
Edit Download
28.44 KB lrw-r--r-- 2020-07-28 03:35:02
Edit Download
10.63 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
26.18 KB lrw-r--r-- 2024-07-17 15:28:16
Edit Download
12.95 KB lrw-r--r-- 2024-02-15 21:53:16
Edit Download
42.74 KB lrw-r--r-- 2024-02-15 21:53:16
Edit Download
12.98 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
266.87 KB lrw-r--r-- 2024-11-06 05:47:16
Edit Download
108.02 KB lrw-r--r-- 2024-11-06 05:47:16
Edit Download
22.07 KB lrw-r--r-- 2021-09-09 03:29:58
Edit Download
10.87 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
10.51 KB lrw-r--r-- 2020-01-29 05:45:18
Edit Download
2.58 KB lrw-r--r-- 2022-09-23 23:55:30
Edit Download
9.99 KB lrw-r--r-- 2012-04-18 03:09:30
Edit Download
4.85 KB lrw-r--r-- 2012-08-23 04:04:18
Edit Download
3.21 KB lrw-r--r-- 2022-04-09 00:07:18
Edit Download
32.16 KB lrw-r--r-- 2024-02-13 19:36:08
Edit Download
15.42 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
67.12 KB lrw-r--r-- 2024-08-11 03:57:16
Edit Download
18.44 KB lrw-r--r-- 2024-08-11 03:57:16
Edit Download
4.56 KB lrw-r--r-- 2020-01-29 05:45:18
Edit Download
1.82 KB lrw-r--r-- 2022-09-23 23:55:30
Edit Download
3.75 KB lrw-r--r-- 2024-06-21 22:17:14
Edit Download
2.45 KB lrw-r--r-- 2024-06-21 22:17:14
Edit Download
45.88 KB lrw-r--r-- 2023-01-10 14:30:14
Edit Download
14.34 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
4.11 KB lrw-r--r-- 2021-03-18 23:01:04
Edit Download
1.62 KB lrw-r--r-- 2021-03-18 23:01:04
Edit Download
14.88 KB lrw-r--r-- 2024-04-12 21:47:14
Edit Download
2.97 KB lrw-r--r-- 2022-04-09 00:07:18
Edit Download
10.22 KB lrw-r--r-- 2021-04-10 16:40:06
Edit Download
4.34 KB lrw-r--r-- 2023-02-02 21:36:32
Edit Download
6.62 KB lrw-r--r-- 2021-11-11 07:49:18
Edit Download
3.10 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
3.14 KB lrw-r--r-- 2023-08-10 23:49:18
Edit Download
1.22 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
11.92 KB lrw-r--r-- 2024-02-13 19:36:08
Edit Download
2.86 KB lrw-r--r-- 2024-02-13 19:36:08
Edit Download
18.29 KB lrw-r--r-- 2024-06-27 16:55:22
Edit Download
8.76 KB lrw-r--r-- 2023-02-02 05:53:26
Edit Download
2.82 KB lrw-r--r-- 2023-02-02 05:53:26
Edit Download
970 B lrw-r--r-- 2018-06-28 06:30:16
Edit Download
597 B lrw-r--r-- 2021-01-06 20:29:24
Edit Download
24.72 KB lrw-r--r-- 2023-06-24 18:32:20
Edit Download
7.34 KB lrw-r--r-- 2023-06-24 18:32:20
Edit Download
9.99 KB lrw-r--r-- 2021-02-17 01:25:04
Edit Download
3.54 KB lrw-r--r-- 2022-04-09 00:07:18
Edit Download
1.32 KB lrw-r--r-- 2019-09-04 21:13:22
Edit Download
458 B lrw-r--r-- 2022-04-09 00:07:18
Edit Download
4.57 KB lrw-r--r-- 2022-09-20 07:52:10
Edit Download
1.39 KB lrw-r--r-- 2022-09-20 07:52:10
Edit Download
569 B lrw-r--r-- 2023-01-25 02:13:12
Edit Download
281 B lrw-r--r-- 2023-01-25 02:13:12
Edit Download
20.74 KB lrw-r--r-- 2024-09-30 09:19:16
Edit Download
11.05 KB lrw-r--r-- 2024-09-30 09:19:16
Edit Download
821 B lrw-r--r-- 2018-06-28 06:30:16
Edit Download
351 B lrw-r--r-- 2021-02-23 21:45:20
Edit Download
802.97 KB lrw-r--r-- 2019-10-26 04:17:08
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).