Файловый менеджер - Редактировать - /var/www/html/components/com_community/assets/release/js/bundle.js
Ðазад
(function () { /** * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/almond for details */ //Going sloppy to avoid 'use strict' string cost, but strict practices should //be followed. /*jslint sloppy: true */ /*global setTimeout: false */ var requirejs, require, define; (function (undef) { var main, req, makeMap, handlers, defined = {}, waiting = {}, config = {}, defining = {}, hasOwn = Object.prototype.hasOwnProperty, aps = [].slice, jsSuffixRegExp = /\.js$/; function hasProp(obj, prop) { return hasOwn.call(obj, prop); } /** * Given a relative module name, like ./something, normalize it to * a real name that can be mapped to a path. * @param {String} name the relative name * @param {String} baseName a real name that the name arg is relative * to. * @returns {String} normalized name */ function normalize(name, baseName) { var nameParts, nameSegment, mapValue, foundMap, lastIndex, foundI, foundStarMap, starI, i, j, part, baseParts = baseName && baseName.split("/"), map = config.map, starMap = (map && map['*']) || {}; //Adjust any relative paths. if (name && name.charAt(0) === ".") { //If have a base name, try to normalize against it, //otherwise, assume it is a top-level require that will //be relative to baseUrl in the end. if (baseName) { //Convert baseName to array, and lop off the last part, //so that . matches that "directory" and not name of the baseName's //module. For instance, baseName of "one/two/three", maps to //"one/two/three.js", but we want the directory, "one/two" for //this normalization. baseParts = baseParts.slice(0, baseParts.length - 1); name = name.split('/'); lastIndex = name.length - 1; // Node .js allowance: if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); } name = baseParts.concat(name); //start trimDots for (i = 0; i < name.length; i += 1) { part = name[i]; if (part === ".") { name.splice(i, 1); i -= 1; } else if (part === "..") { if (i === 1 && (name[2] === '..' || name[0] === '..')) { //End of the line. Keep at least one non-dot //path segment at the front so it can be mapped //correctly to disk. Otherwise, there is likely //no path mapping for a path starting with '..'. //This can still fail, but catches the most reasonable //uses of .. break; } else if (i > 0) { name.splice(i - 1, 2); i -= 2; } } } //end trimDots name = name.join("/"); } else if (name.indexOf('./') === 0) { // No baseName, so this is ID is resolved relative // to baseUrl, pull off the leading dot. name = name.substring(2); } } //Apply map config if available. if ((baseParts || starMap) && map) { nameParts = name.split('/'); for (i = nameParts.length; i > 0; i -= 1) { nameSegment = nameParts.slice(0, i).join("/"); if (baseParts) { //Find the longest baseName segment match in the config. //So, do joins on the biggest to smallest lengths of baseParts. for (j = baseParts.length; j > 0; j -= 1) { mapValue = map[baseParts.slice(0, j).join('/')]; //baseName segment has config, find if it has one for //this name. if (mapValue) { mapValue = mapValue[nameSegment]; if (mapValue) { //Match, update name to the new value. foundMap = mapValue; foundI = i; break; } } } } if (foundMap) { break; } //Check for a star map match, but just hold on to it, //if there is a shorter segment match later in a matching //config, then favor over this star map. if (!foundStarMap && starMap && starMap[nameSegment]) { foundStarMap = starMap[nameSegment]; starI = i; } } if (!foundMap && foundStarMap) { foundMap = foundStarMap; foundI = starI; } if (foundMap) { nameParts.splice(0, foundI, foundMap); name = nameParts.join('/'); } } return name; } function makeRequire(relName, forceSync) { return function () { //A version of a require function that passes a moduleName //value for items that may need to //look up paths relative to the moduleName return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync])); }; } function makeNormalize(relName) { return function (name) { return normalize(name, relName); }; } function makeLoad(depName) { return function (value) { defined[depName] = value; }; } function callDep(name) { if (hasProp(waiting, name)) { var args = waiting[name]; delete waiting[name]; defining[name] = true; main.apply(undef, args); } if (!hasProp(defined, name) && !hasProp(defining, name)) { throw new Error('No ' + name); } return defined[name]; } //Turns a plugin!resource to [plugin, resource] //with the plugin being undefined if the name //did not have a plugin prefix. function splitPrefix(name) { var prefix, index = name ? name.indexOf('!') : -1; if (index > -1) { prefix = name.substring(0, index); name = name.substring(index + 1, name.length); } return [prefix, name]; } /** * Makes a name map, normalizing the name, and using a plugin * for normalization if necessary. Grabs a ref to plugin * too, as an optimization. */ makeMap = function (name, relName) { var plugin, parts = splitPrefix(name), prefix = parts[0]; name = parts[1]; if (prefix) { prefix = normalize(prefix, relName); plugin = callDep(prefix); } //Normalize according if (prefix) { if (plugin && plugin.normalize) { name = plugin.normalize(name, makeNormalize(relName)); } else { name = normalize(name, relName); } } else { name = normalize(name, relName); parts = splitPrefix(name); prefix = parts[0]; name = parts[1]; if (prefix) { plugin = callDep(prefix); } } //Using ridiculous property names for space reasons return { f: prefix ? prefix + '!' + name : name, //fullName n: name, pr: prefix, p: plugin }; }; function makeConfig(name) { return function () { return (config && config.config && config.config[name]) || {}; }; } handlers = { require: function (name) { return makeRequire(name); }, exports: function (name) { var e = defined[name]; if (typeof e !== 'undefined') { return e; } else { return (defined[name] = {}); } }, module: function (name) { return { id: name, uri: '', exports: defined[name], config: makeConfig(name) }; } }; main = function (name, deps, callback, relName) { var cjsModule, depName, ret, map, i, args = [], callbackType = typeof callback, usingExports; //Use name if no relName relName = relName || name; //Call the callback to define the module, if necessary. if (callbackType === 'undefined' || callbackType === 'function') { //Pull out the defined dependencies and pass the ordered //values to the callback. //Default to [require, exports, module] if no deps deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; for (i = 0; i < deps.length; i += 1) { map = makeMap(deps[i], relName); depName = map.f; //Fast path CommonJS standard dependencies. if (depName === "require") { args[i] = handlers.require(name); } else if (depName === "exports") { //CommonJS module spec 1.1 args[i] = handlers.exports(name); usingExports = true; } else if (depName === "module") { //CommonJS module spec 1.1 cjsModule = args[i] = handlers.module(name); } else if (hasProp(defined, depName) || hasProp(waiting, depName) || hasProp(defining, depName)) { args[i] = callDep(depName); } else if (map.p) { map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); args[i] = defined[depName]; } else { throw new Error(name + ' missing ' + depName); } } ret = callback ? callback.apply(defined[name], args) : undefined; if (name) { //If setting exports via "module" is in play, //favor that over return value and exports. After that, //favor a non-undefined return value over exports use. if (cjsModule && cjsModule.exports !== undef && cjsModule.exports !== defined[name]) { defined[name] = cjsModule.exports; } else if (ret !== undef || !usingExports) { //Use the return value from the function. defined[name] = ret; } } } else if (name) { //May just be an object definition for the module. Only //worry about defining if have a module name. defined[name] = callback; } }; requirejs = require = req = function (deps, callback, relName, forceSync, alt) { if (typeof deps === "string") { if (handlers[deps]) { //callback in this case is really relName return handlers[deps](callback); } //Just return the module wanted. In this scenario, the //deps arg is the module name, and second arg (if passed) //is just the relName. //Normalize module name, if it contains . or .. return callDep(makeMap(deps, callback).f); } else if (!deps.splice) { //deps is a config object, not an array. config = deps; if (config.deps) { req(config.deps, config.callback); } if (!callback) { return; } if (callback.splice) { //callback is an array, which means it is a dependency list. //Adjust args if there are dependencies deps = callback; callback = relName; relName = null; } else { deps = undef; } } //Support require(['a']) callback = callback || function () {}; //If relName is a function, it is an errback handler, //so remove it. if (typeof relName === 'function') { relName = forceSync; forceSync = alt; } //Simulate async callback; if (forceSync) { main(undef, deps, callback, relName); } else { //Using a non-zero value because of concern for what old browsers //do, and latest browsers "upgrade" to 4 if lower value is used: //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: //If want a value immediately, use require('id') instead -- something //that works in almond on the global level, but not guaranteed and //unlikely to work in other AMD implementations. setTimeout(function () { main(undef, deps, callback, relName); }, 4); } return req; }; /** * Just drops the config on the floor, but returns req in case * the config return value is used. */ req.config = function (cfg) { return req(cfg); }; /** * Expose module registry for debugging and tooling */ requirejs._defined = defined; define = function (name, deps, callback) { //This module may not have dependencies if (!deps.splice) { //deps is not an array, so probably means //an object literal or factory function for //the value. Adjust args. callback = deps; deps = []; } if (!hasProp(defined, name) && !hasProp(waiting, name)) { waiting[name] = [name, deps, callback]; } }; define.amd = { jQuery: true }; }()); define("../../vendors/almond", function(){}); ;(function( root ) { /** * Relative path for assets loading. * @name joms.BASE_URL * @const {string} */ joms.BASE_URL = root.joms_base_url; delete root.joms_base_url; // Fix www/non-www redirection. var reDomain = /https?:\/\/[^/]+/; var baseDomain = joms.BASE_URL.match( reDomain ); var realDomain = (location.href).match( reDomain ); if ( baseDomain && realDomain && baseDomain[0] !== realDomain[0] ) { joms.BASE_URL.replace( reDomain, realDomain[0] ); } /** * Relative path for assets loading. * @name joms.ASSETS_URL * @const {string} */ joms.ASSETS_URL = root.joms_assets_url; delete root.joms_assets_url; /** * Detect mobile browser. * @name joms.mobile * @const {boolean} */ joms.mobile = (function() { var mobile = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i; return mobile.test( navigator.userAgent ); })(); /** * Detect mobile safari (iOS) browser. * @name joms.ios * @const {boolean} */ joms.ios = (function() { var ios = /iphone|ipad|ipod/i; return ios.test( navigator.userAgent ); })(); /** * Detect screen size based on it's width and css breakpoint rule. * Breakpoints: 0 - 480 | 481 - 991 | 992 - ~ * @function joms.screenSize */ joms.screenSize = function() { var width = window.innerWidth; if ( width <= 480 ) return 'small'; if ( width <= 991 ) return 'medium'; return 'large'; }; /** * jQuery.ajax wrapper to perform ajax request * @function joms.ajax * @param {object} options - Ajax call options */ joms.ajax = function( options ) { var url = root.jax_live_site || '', token = root.jax_token_var || '_no_token_found_', data = {}; options || (options = {}); // Match jax.call parameters. data[token] = 1; data.task = 'azrul_ajax'; data.option = options.option || 'community'; data.func = options.func; data.no_html = 1; delete options.option; delete options.func; // Build arguments. if ( options.data && options.data.length ) { for ( var i = 0, arg; i < options.data.length; i++ ) { arg = options.data[ i ]; if ( typeof arg === 'string' ) arg = arg.replace( /"/g, '"' ); if ( !joms._.isArray( arg ) ) arg = [ '_d_', encodeURIComponent( arg ) ]; data[ 'arg' + ( i + 2 ) ] = JSON.stringify( arg ); } } var response; // Override options. options.url = url; options.type = 'post'; options.dataType = 'json'; options.data = data; options.success = function( json ) { if ( json ) response = json; }; options.complete = function() { response || (response = { error: 'Undefined error.' }); if ( response.noLogin ) { joms.api && joms.api.login( response ); joms.view.misc.fixSVG(); return; } // Execute additional callbacks (if any). var stop; if ( joms._onAjaxReponseQueue && joms._onAjaxReponseQueue[ data.func ] && joms._onAjaxReponseQueue[ data.func ].length ) { for ( var i = 0; i < joms._onAjaxReponseQueue[ data.func ].length; i++ ) { if ( typeof joms._onAjaxReponseQueue[ data.func ][i] === 'function' ) { if ( joms._onAjaxReponseQueue[ data.func ][i]( response ) === false ) { stop = true; } } } } if ( typeof options.callback === 'function' && ( !stop ) ) { options.callback( response ); } joms.view.misc.fixSVG(); }; // Perform ajax request. return joms.jQuery.ajax( options ); }; /** * Hide non-jomsocial contents. * @function joms.____ */ joms.____ = function() { var node = joms.jQuery('#community-wrap'); while ( node.length && node[0].tagName.toLowerCase() !== 'body' ) { node.siblings().hide(); node = node.parent(); node.css({ border: '0 none', padding: 0, marginTop: 0, marginBottom: 0, width: 'auto' }); } }; /** * Prints SVG icons into document.body for testing purpose. * @function joms._printSVGIcons */ joms._printSVGIcons = function() { var icons = [ 'home', 'newspaper', 'pencil', 'image', 'images', 'camera', 'play', 'film', 'camera2', 'bullhorn', 'library', 'profile', 'support', 'envelope', 'location', 'clock', 'bell', 'calendar', 'box-add', 'box-remove', 'bubble', 'bubbles', 'user', 'users', 'spinner', 'search', 'key', 'lock', 'wrench', 'cog', 'gift', 'remove', 'briefcase', 'switch', 'signup', 'list', 'menu', 'earth', 'link', 'eye', 'star', 'star2', 'star3', 'thumbs-up', 'happy', 'smiley', 'tongue', 'sad', 'wink', 'grin', 'cool', 'angry', 'evil', 'shocked', 'confused', 'neutral', 'wondering', 'warning', 'info', 'blocked', 'spam', 'close', 'checkmark', 'plus', 'arrow-right', 'arrow-left', 'tab', 'filter', 'console', 'share', 'facebook', 'libreoffice', 'file-zip', 'arrow-down', 'redo', 'tag', 'search-user' ]; var $ct = joms.jQuery('<div>'); for ( var i = 0; i < icons.length; i++ ) { $ct.append( '<svg viewBox="0 0 30 30" class="joms-icon" style="width:30px;height:30px">' + '<use xlink:href="#joms-icon-' + icons[i] + '"></use>' + '</svg>' ); } $ct.appendTo( document.body ); }; // AMD-style output. if ( typeof define === 'function' ) define('core',[],function () { return root.joms; }); })( this ); (function( root, $, IS_DESKTOP, factory ) { joms.util || (joms.util = {}); joms.util.crop = factory( root, $, IS_DESKTOP ); })( window, joms.jQuery, !joms.mobile, function( window, $, IS_DESKTOP ) { var cropper, wrapper, hammertime, measurements, resizeDirection; function Cropper( elem ) { return Cropper.attach( elem ); } Cropper.init = function() { wrapper || ( wrapper = $('<div class="joms-cropper__wrapper" />') ); cropper || ( cropper = $('<div class="joms-cropper__box" />') ); }; Cropper.attach = function( elem ) { Cropper.init(); Cropper.detach(); reset(); $( elem ).wrap( wrapper ); // todo (rudy) change this hack wrapper = $( elem ).parent(); cropper.insertAfter( elem ); if ( !hammertime ) { hammertime = new joms.Hammer( cropper[0] ); hammertime.on( 'touch drag release', function( e ) { e.stopPropagation(); e.preventDefault(); e.gesture.stopPropagation(); e.gesture.preventDefault(); if ( e.type === 'touch' ) { disableDesktopEvents(); onTouch( e.gesture ); } else if ( e.type !== 'release' ) { onDragOrResize( e.gesture ); } else { onRelease( e.gesture ); enableDesktopEvents(); } }); } enableDesktopEvents(); return elem; }; Cropper.detach = function() { Cropper.init(); cropper.detach(); wrapper.children().unwrap(); wrapper.detach(); }; Cropper.getSelection = function() { var mea = measurements; return { x: mea.cropperLeft, y: mea.cropperTop, width: mea.cropperWidth, height: mea.cropperHeight }; }; function reset() { cropper.css({ top: '', left: '', right: '', bottom: '', width: '', height: '', webkitTransform: '', mozTransform: '', transform: '' }); } function measure() { var wrp = wrapper[0], img = wrapper.children('img'), pos = cropper.position(); measurements = { imageWidth : img.width(), imageHeight : img.height(), wrapperTop : wrp.scrollTop, wrapperLeft : wrp.scrollLeft, wrapperWidth : wrapper.width(), wrapperHeight : wrapper.height(), cropperTop : pos.top + wrp.scrollTop, cropperLeft : pos.left + wrp.scrollLeft, cropperWidth : cropper.outerWidth(), cropperHeight : cropper.outerHeight() }; } function onTouch( gesture ) { measure(); resizeDirection = getResizeDirection( gesture ); } var onDragOrResize = joms._.throttle(function( gesture ) { resizeDirection ? onResize( gesture ) : onDrag( gesture ); }, IS_DESKTOP ? 10 : 100 ); function onDrag( gesture ) { var mea = measurements, top = gesture.deltaY, left = gesture.deltaX, value; // Respect horizontal boundaries. left = Math.min( left, mea.imageWidth - mea.cropperWidth - mea.cropperLeft ); left = Math.max( left, 0 - mea.cropperLeft ); // Respect vertical boundaries. top = Math.min( top, mea.imageHeight - mea.cropperHeight - mea.cropperTop ); top = Math.max( top, 0 - mea.cropperTop ); value = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; cropper.css({ webkitTransform: value, mozTransform: value, transform: value }); } function onResize( gesture ) { var dir = resizeDirection, mea = measurements, css = {}; if ( dir.match( /n/ ) ) { css.top = 'auto'; css.bottom = mea.wrapperHeight - mea.cropperTop - mea.cropperHeight; css.height = mea.cropperHeight - gesture.deltaY; } else if ( dir.match( /s/ ) ) { css.bottom = 'auto'; css.top = mea.cropperTop; css.height = mea.cropperHeight + gesture.deltaY; } if ( dir.match( /e/ ) ) { css.right = 'auto'; css.left = mea.cropperLeft; css.width = mea.cropperWidth + gesture.deltaX; } else if ( dir.match( /w/ ) ) { css.left = 'auto'; css.right = mea.wrapperWidth - mea.cropperLeft - mea.cropperWidth; css.width = mea.cropperWidth - gesture.deltaX; } // Restrict cropper box to 1:1 ratio. css.width = css.height = Math.max( css.width || 0, css.height || 0, 64 ); // Respect vertical boundaries. if ( dir.match( /n/ ) ) { css.height = Math.min( css.height, mea.wrapperHeight - css.bottom ); } else if ( dir.match( /s/ ) ) { css.height = Math.min( css.height, mea.imageHeight - css.top ); } else if ( cropper[0].style.top !== 'auto' ) { css.height = Math.min( css.height, mea.imageHeight - parseInt( cropper.css('top') ) ); } else { css.height = Math.min( css.height, mea.wrapperHeight - parseInt( cropper.css('bottom') ) ); } // Respect horizontal boundaries. if ( dir.match( /e/ ) ) { css.width = Math.min( css.width, mea.imageWidth - css.left ); } else if ( dir.match( /w/ ) ) { css.width = Math.min( css.width, mea.wrapperWidth - css.right ); } else if ( cropper[0].style.left !== 'auto' ) { css.width = Math.min( css.width, mea.imageWidth - parseInt( cropper.css('left') ) ); } else { css.width = Math.min( css.width, mea.wrapperWidth - parseInt( cropper.css('right') ) ); } // Restrict cropper box to 1:1 ratio. css.width = css.height = Math.min( css.width, css.height ); cropper.css( css ); } function onRelease() { var pos = cropper.position(), mea = measurements; cropper.css({ top: Math.max( pos.top + mea.wrapperTop, 0 ), left: Math.max( pos.left + mea.wrapperLeft, 0 ), right: '', bottom: '', webkitTransform: '', mozTransform: '', transform: '' }); measure(); } function getPointerPosition( pageX, pageY ) { var offset = cropper.offset(); return { top : pageY - offset.top, left : pageX - offset.left }; } function getResizeDirection( gesture ) { var treshhold = IS_DESKTOP ? 15 : 20, pos = getPointerPosition( gesture.center.pageX, gesture.center.pageY ), mea = measurements, dir = ''; if ( pos.top < treshhold ) { dir += 'n'; } else if ( pos.top > mea.cropperHeight - treshhold ) { dir += 's'; } if ( pos.left < treshhold ) { dir += 'w'; } else if ( pos.left > mea.cropperWidth - treshhold ) { dir += 'e'; } return dir; } function enableDesktopEvents() { if ( IS_DESKTOP ) { cropper.on( 'mousemove.joms-cropper', onMouseMove ); } } function disableDesktopEvents() { if ( IS_DESKTOP ) { cropper.off( 'mousemove.joms-cropper' ); } } function onMouseMove( e ) { var parentOffset = $( e.target ).parent().offset(), relX = e.pageX - parentOffset.left, relY = e.pageY - parentOffset.top, treshhold = 15, cursor = '', m; measure(); m = measurements; if ( relY < m.cropperTop - m.wrapperTop + treshhold ) cursor += 'n'; else if ( relY > m.cropperTop - m.wrapperTop + m.cropperHeight - treshhold ) cursor += 's'; if ( relX < m.cropperLeft - m.wrapperLeft + treshhold ) cursor += 'w'; else if ( relX > m.cropperLeft - m.wrapperLeft + m.cropperWidth - treshhold ) cursor += 'e'; cropper.css({ cursor: cursor ? cursor + '-resize' : '' }); } return Cropper; }); define("utils/crop", function(){}); define('utils/map',[ 'core' ], function() { var API_KEY = window.joms_gmap_key, $ = jQuery, instance; function GoogleMaps() { if ( ! instance ) { instance = this; } } GoogleMaps.prototype = { search: function( keyword ) { var that = this; return $.Deferred(function( defer ) { that.autocompleteService().then(function( service ) { service.getPlacePredictions({ input: keyword }, function( results, status ) { if ( status === 'OK' ) { defer.resolve( that.mapResult( results ) ); } else { defer.reject( status ); } }); }); }); }, mapResult: function( results ) { var data = []; if ( _.isArray( results ) ) { _.each( results, function( item ) { var id = item.place_id, nameParts = item.description.split( /,\s(.+)?/ ), name = nameParts[0], description = nameParts[1] || ''; data.push({ id: id, name: name, description: description }); }); } return data; }, render: function( elem, place ) { var $elem = $( elem ).show(), map = $elem.data( 'joms-map' ), marker = $elem.data( 'joms-map-marker' ), name = place.formatted_address || '', location, viewport; if ( place.geometry ) { location = place.geometry.location; viewport = place.geometry.viewport; } else { location = new google.maps.LatLng( place.latitude, place.longitude ); } if ( ! map ) { $elem.data( 'joms-map', map = new google.maps.Map( elem, { center: location, zoom: 15, draggable: false, scrollwheel: false, disableDefaultUI: true }) ); } if ( ! marker ) { $elem.data( 'joms-map-marker', marker = new google.maps.Marker({ map: map, position: location, title: name }) ); } map.setCenter( location ); marker.setPosition( location ); if ( viewport ) { map.fitBounds( viewport ); } else { map.setZoom( 15 ); } }, loadAPI: function() { if(joms_maps_api == "openstreetmap"){ return this.loadAPI_OPENSTREET(); }else{ return this.loadAPI_GOOGLE(); } }, loadAPI_OPENSTREET: function() { this.callback = false; var that = this; return $.Deferred(function( defer ) { var script, callback,script2,r; r = false; if(typeof openstreetmap == "undefined"){ script2 = document.createElement( 'script' ); script2.type = 'text/javascript'; script2.src = joms.ASSETS_URL+'source/js/utils/openstreet.js'; document.body.appendChild( script2 ); } if ( window.L && window.L.map ) { if(that.callback !== false){ that.callback(); } defer.resolve(); return; } if ( that.loaded ) { if(that.callback !== false){ that.callback(); } defer.resolve(); return; } that.queue = that.queue || []; that.queue.push( defer ); if ( that.loading ) { return; } that.loading = true; script = document.createElement( 'script' ); script.type = 'text/javascript'; script.src = 'https://unpkg.com/leaflet@1.3.4/dist/leaflet.js' script.onload = script.onreadystatechange = function() { if (!r && (!this.readyState || this.readyState == 'complete')) { r = true; that.callback(); } }; jQuery("<link>") .appendTo("head") .attr({ type: "text/css", rel: "stylesheet", href: "https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" }); that.callback = function() { that.loaded = true; that.loading = false; while ( that.queue.length ) { ( that.queue.shift() ).resolve(); } that.callback = false; }; document.body.appendChild( script ); }); }, loadAPI_GOOGLE: function() { var that = this; return $.Deferred(function( defer ) { var script, callback; if ( window.google && window.google.maps && window.google.maps.places ) { defer.resolve(); return; } if ( that.loaded ) { defer.resolve(); return; } that.queue = that.queue || []; that.queue.push( defer ); if ( that.loading ) { return; } that.loading = true; callback = _.uniqueId( 'jomsCallback' ); script = document.createElement( 'script' ); script.type = 'text/javascript'; script.src = 'https://maps.googleapis.com/maps/api/js?libraries=places' + ( API_KEY ? ( '&key=' + API_KEY ) : '' ) + '&callback=' + callback; window[ callback ] = function() { that.loaded = true; that.loading = false; while ( that.queue.length ) { ( that.queue.shift() ).resolve(); } delete window[ callback ]; }; document.body.appendChild( script ); }); }, autocompleteService: function() { var that = this; return $.Deferred(function( defer ) { that.loadAPI().then(function() { var cache = '_cacheAutocompleteService'; that[ cache ] = that[ cache ] || new google.maps.places.AutocompleteService(); defer.resolve( that[ cache ] ); }); }); }, placeService: function() { var that = this; return $.Deferred(function( defer ) { that.loadAPI().then(function() { var cache = '_cachePlaceService', div = document.createElement( 'div' ); document.body.appendChild( div ); that[ cache ] = that[ cache ] || new google.maps.places.PlacesService( div ); defer.resolve( that[ cache ] ); }); }); }, placeDetail: function( id ) { var that = this; return $.Deferred(function( defer ) { that.placeService().then(function( service ) { var cache = '_cachePlaceDetail'; that[ cache ] = that[ cache ] || {}; if ( that[ cache ][ id ] ) { defer.resolve( that[ cache ][ id ] ); } else { service.getDetails({ placeId: id }, function( place, status ) { if ( status === 'OK' ) { that[ cache ][ id ] = place; defer.resolve( place ); } else { defer.reject( status ); } }); } }); }); } }; // Export as `joms.util.map`. joms.util || (joms.util = {}); joms.util.map = function( callback ) { var gmap; if ( typeof callback !== 'function' ) { return; } gmap = new GoogleMaps(); gmap.loadAPI().done(function() { callback(); }); }; joms.util.map.search = function( keyword ) { return $.Deferred(function( defer ) { var gmap = new GoogleMaps(); gmap.search( keyword ).done(function( results ) { defer.resolve( results ); }); }); }; joms.util.map.detail = function( id ) { return $.Deferred(function( defer ) { var gmap = new GoogleMaps(); gmap.placeDetail( id ).done(function( place ) { defer.resolve( place ); }); }); }; }); define('utils/popup',[ 'core', 'utils/map' ], function() { function Popup() {} Popup.prototype.prepare = function( callback ) { var mfp, that; if ( joms.jQuery.magnificPopup ) { mfp = this.showPopup(); callback( mfp ); return; } that = this; this.loadlib(function() { if ( joms.jQuery.magnificPopup ) { mfp = that.showPopup(); callback( mfp ); } }); }; Popup.prototype.showPopup = function() { joms.jQuery.magnificPopup.open({ type: 'inline', items: { src: [] }, tClose: window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, tLoading: window.joms_lang.COM_COMMUNITY_POPUP_LOADING, callbacks: { beforeOpen: function() { joms.jQuery('html').css('overflow', 'hidden'); }, afterClose: function() { joms.jQuery('html').css('overflow', ''); } } }); var mfp = joms.jQuery.magnificPopup.instance, className = 'joms-popup__wrapper'; if ( joms.mobile ) { className += ' joms-popup__mobile'; } mfp.container.addClass( className ); mfp.updateStatus('loading'); mfp.container .off('click.joms-closepopup', '.joms-js--button-close') .on('click.joms-closepopup', '.joms-js--button-close', function() { mfp.close(); }); return mfp; }; Popup.prototype.loadlib = function( callback ) { callback(); }; // Factory. joms.util || (joms.util = {}); joms.util.popup = new Popup(); }); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.dropdown = factory( root, $ ); define('utils/dropdown',[ 'utils/popup' ], function() { return joms.util.dropdown; }); })( window, joms.jQuery, function( window, $, undefined ) { var // Event list. evtClick = 'click.dropdown', evtHide = 'collapse.dropdown', // Selectors. slrButton = '[data-ui-object=joms-dropdown-button]', slrDropdown = '.joms-dropdown,.joms-popover', // Element cache. lastbtn, lastdd, popup, elem, doc; function hide() { lastdd && lastdd.hide(); lastbtn && btnRemoveClass( lastbtn ); } function toggle( e ) { var btn, dd, $elm, type, size; e.stopPropagation(); e.preventDefault(); $elm = $(e.currentTarget); type = $elm.attr('data-type'); btn = $( e.currentTarget ); dd = btn.siblings( slrDropdown ); if ( !dd.length ) { return; } if ( dd.is(':visible') ) { dd.hide(); btnRemoveClass( btn ); return; } size = joms.screenSize(); if (size !== 'large') { $elm.siblings('.joms-dropdown').css('right', 0); } if ( size === 'large' || type === 'no-popup' ) { hide(); dd.show(); btnAddClass( btn ); lastbtn = btn; lastdd = dd; executeAdditionalFn( dd ); return; } joms.util.popup.prepare(function( mfp ) { popup = mfp; popup.items[0] = { type: 'inline', src: buildHtml( dd ) }; popup.updateItemHTML(); executeAdditionalFn( dd ); elem = popup.contentContainer; elem.on( 'click', 'li > a', function() { popup.close(); }); }); } function btnAddClass( btn ) { var par = btn.parent(); if ( par.hasClass('.joms-focus__button--options--desktop') ) { par.addClass('active'); } else { btn.addClass('active'); } } function btnRemoveClass( btn ) { var par = btn.parent(); if ( par.hasClass('.joms-focus__button--options--desktop') ) { par.removeClass('active'); } else { btn.removeClass('active'); } } function buildHtml( dd ) { return '<div class="joms-popup joms-popup--dropdown">' + dd[0].outerHTML + '</div>'; } function executeAdditionalFn( dd ) { var className = dd.attr('class') || '', offset; // fix popup goes out of browser's window dd.css('left', ''); offset = dd.offset(); if ( offset.left < 0 ) { dd.css('left', -25 ); } if ( className.match('joms-popover--toolbar-general') ) { joms.api.notificationGeneral(); return; } if ( className.match('joms-popover--toolbar-friendrequest') ) { joms.api.notificationFriend(); return; } if ( className.match('joms-popover--toolbar-pm') ) { joms.api.notificationPm(); return; } } // Change privacy dropdown. var selectPrivacy = joms._.debounce(function( e ) { var className = e.currentTarget.className || '', ul, li, btn, hidden, span, svg; if ( className.indexOf('joms-dropdown--privacy') < 0 ) { return; } ul = $( e.currentTarget ); li = $( e.target ).closest('li'); if ( li.length ) { btn = $('.joms-button--privacy').filter('[data-name="' + ul.data('name') + '"]'); hidden = btn.children('[data-ui-object=joms-dropdown-value]'); span = btn.children('span'); svg = btn.find('use'); hidden.val( li.data('value') ); span.html( li.children('span').html() ); svg.attr( 'xlink:href', window.location.href.replace(/#.*$/, '') + '#' + li.data('classname') ); } hide(); popup && popup.close(); }, 100 ); function initialize() { uninitialize(); doc || (doc = $( document.body )); doc.on( evtClick, hide ); doc.on( evtClick, slrButton, toggle ); doc.on( evtHide, slrButton, hide ); doc.on( evtClick, slrDropdown, function( e ) { var shouldPropagate = $( e.target ).data( 'propagate' ) || $( e.currentTarget ).data( 'propagate' ); if ( ! shouldPropagate ) { e.stopPropagation(); } selectPrivacy( e ); var $elm = $(e.currentTarget); if(!$elm.hasClass("joms-popover--toolbar-search")){ $elm.hide(); } }); } function uninitialize() { if ( doc ) { doc.off( evtClick ); doc.off( evtClick, slrButton ); doc.off( evtHide, slrButton ); doc.off( evtClick, slrDropdown ); } } // Exports. return { start: initialize, stop: uninitialize }; }); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.hovercard = factory( root, $ ); })( window, joms.jQuery, function( window, $ ) { var card, showTimer = 0, hideTimer = 0, animateTimer = 0, cache = {}, mouseOver = false, current = 0; var MOUSEOVER_EVENT = 'mouseover.joms-hcard', MOUSEOUT_EVENT = 'mouseout.joms-hcard', IMG_SELECTOR = 'img[data-author]'; function initialize() { // Only enable on desktop browser. if ( joms.mobile ) { return; } createCard(); // Attach handler. $( document.body ) .off( MOUSEOVER_EVENT ).off( MOUSEOUT_EVENT ) .on( MOUSEOVER_EVENT, IMG_SELECTOR, onMouseOver ) .on( MOUSEOUT_EVENT, IMG_SELECTOR, onMouseOut ); } function onMouseOver( e ) { var img = $( e.target ), id = img.data('author'); // Remove title attribute to avoid redundancy. img.removeAttr('title'); resetCard(); mouseOver = true; current = id; clearTimeout( hideTimer ); if ( cache[id] ) { clearTimeout( showTimer ); showTimer = setTimeout(function() { mouseOver && updateCard( cache[id], img ); }, 100 ); return; } joms.ajax({ func: 'profile,ajaxFetchCard', data: [ id ], callback: function( json ) { if ( json.html ) { cache[id] = json.html; clearTimeout( showTimer ); mouseOver && current == id && updateCard( json.html, img ); } } }); } function onMouseOut() { mouseOver = false; clearTimeout( showTimer ); hideTimer = setTimeout(function() { card && resetCard(); }, 100 ); } function createCard() { card = $('<div>Loading...</div>'); card.css({ position: 'absolute', zIndex: 2000, display: 'none', opacity:0, transition: 'opacity 300ms, top 300ms' }); card.appendTo( document.body ); card.on( MOUSEOVER_EVENT, function() { clearTimeout( hideTimer ); }); card.on( MOUSEOUT_EVENT, onMouseOut ); } function resetCard() { clearTimeout( animateTimer ); card && card.css({ display: 'none', opacity: 0 }); } function updateCard( html, img ) { var doc = $( document ), offset = img.offset(), width = img.width(), height = img.height(), maxWidth = window.innerWidth, maxHeight = window.innerHeight + doc.scrollTop(), cardHeight = 140, alignLeft = offset.left + 320 < maxWidth, top = offset.top + height + 10; card.html( html ); cardHeight = card.height(); if ( top + cardHeight > maxHeight ) { top = offset.top - cardHeight - 4; } card.css({ top: top - 10, left: alignLeft ? offset.left : '', right: alignLeft ? '' : maxWidth - offset.left - width, display: 'block', opacity: 0 }); animateTimer = setTimeout(function() { card.css({ top: top, opacity: 1 }) }, 300) } // Exports. return { initialize: initialize }; }); define("utils/hovercard", function(){}); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.reaction = factory( root, $ ); })( window, joms.jQuery, function( window, $ ) { var $card; var showTimer = 0; var hideTimer = 0; var animateTimer = 0; var current = 0; var holdTimer = 0; var MOUSEOVER_EVENT = 'mouseover.joms-button--reaction'; var MOUSEOUT_EVENT = 'mouseout.joms-button--reaction'; var MOUSEDOWN_EVENT = 'mousedown.joms-button--reaction'; var MOUSEUP_EVENT = 'mouseup.joms-button--reaction'; var TOUCH_START = 'touchstart.joms-button--reaction'; var TOUCH_END = 'touchend.joms-button--reaction'; var TOUCH_MOVE = 'touchmove.joms-button--reaction'; var CONTEXTMENU = 'contextmenu.joms-button--reaction'; var REACT_BTN = 'a.joms-button--reaction'; var CARD = '.joms-reactions'; function initialize() { if (!joms.getData('enablereaction')) { return; } createCard(); // Attach handler. if (joms.mobile) { $( document.body ) .off( TOUCH_START ).off( TOUCH_END ) .off( CONTEXTMENU ).off( TOUCH_MOVE ) .on( TOUCH_START, REACT_BTN, onTouchStart ) .on( TOUCH_END, REACT_BTN, onTouchEnd ) .on( TOUCH_MOVE, onTouchMove ) .on( CONTEXTMENU, REACT_BTN, onContextMenu ); } else { $( document.body ) .off( MOUSEOVER_EVENT ).off( MOUSEOUT_EVENT ) .off( MOUSEDOWN_EVENT ).off( MOUSEUP_EVENT ) .on( MOUSEOVER_EVENT, REACT_BTN, onMouseOver ) .on( MOUSEOUT_EVENT, REACT_BTN, onMouseOut ) .on( MOUSEDOWN_EVENT, REACT_BTN, onMouseDown ) .on( MOUSEUP_EVENT, REACT_BTN, onMouseUp ); $( document.body ) .on( MOUSEOVER_EVENT, CARD, function() { clearTimeout( hideTimer ) }) .on( MOUSEOUT_EVENT, CARD, onMouseOut ); } } var isTapped = true; var clickTimer; var touchMoving = false; function onTouchStart( e ) { clearTimeout( clickTimer ); clearTimeout( holdTimer ); var $btn = $(e.target); touchMoving = false; isTapped = true; $btn.attr('onclick', ''); hideCard(); $(document).off('click.hide-reaction-bar'); holdTimer = setTimeout( function() { onHold( e ); isTapped = false; }, 300); } function onTouchEnd( e ) { clearTimeout( holdTimer ); clearTimeout( clickTimer ); clickTimer = setTimeout(function() { $(document) .off('click.hide-reaction-bar') .one('click.hide-reaction-bar', hideCard); }, 300); if (isTapped) { onTap( e ); } touchMoving = false; isTapped = true; } function onTouchMove( e ) { clearTimeout( holdTimer ); clearTimeout( clickTimer ); clearTimeout( hideTimer ); isTapped = false; touchMoving = true; hideTimer = setTimeout( function() { hideCard(); }, 300); } function onHold( e ) { if (!touchMoving) { updateCard( e ); } } function onTap( e ) { var $elm = $(e.target), type = $elm.attr('data-type'), uid = $elm.attr('data-uid'), reactId = $elm.attr('data-reactid'), action = $elm.attr('data-action'); if (type === 'stream') { if (action === 'react') { joms.view.stream.react( uid, reactId ); } else { joms.view.stream.unreact( uid, reactId ); } } if (type === 'comment') { if (action === 'react') { joms.view.comment.react( uid, reactId ); } else { joms.view.comment.unreact( uid, reactId ); } } if (type === 'page') { if (action === 'react') { joms.view.page.react( uid, reactId ); } else { joms.view.page.unreact( uid, reactId ); } } } function onContextMenu( e ) { e.preventDefault(); e.stopPropagation(); return false; } function onMouseOver( e ) { clearTimeout(hideTimer); clearTimeout(animateTimer); hideCard(); showTimer = setTimeout( function() { updateCard( e ); }, 500) } function onMouseOut(e) { clearTimeout(showTimer); hideTimer = setTimeout( function() { hideCard(); }, 1000) } function onMouseDown(e) { if (e.which === 1) { clearTimeout(showTimer); } } function onMouseUp(e) { if (e.which === 1) { clearTimeout(showTimer); $card.hide(); } } function hideCard() { clearTimeout( animateTimer ); if ($card.is(':visible')) { $card.css({ display: 'none', opacity: 0 }) } } function updateCard( e ) { clearTimeout( animateTimer ); var $elm = $(e.target); var uid = $elm.attr('data-uid'); var type = $elm.attr('data-type'); $card.find('.joms-reactions__item').each( function(idx, item ) { var $item = $(item), reactId = $item.attr('data-react-id'), text = $item.attr('data-text'), attr = ''; if (type === 'stream') { attr = 'joms.view.stream.react('+uid+', '+reactId+', \'onBar\')'; } if (type === 'comment') { attr = 'joms.view.comment.react('+uid+', '+reactId+', \'onBar\')'; } if (type === 'page') { attr = 'joms.view.page.react('+uid+', '+reactId+', \'onBar\')'; } $item.attr('onclick', attr); $item.off('click.react').one('click.react', function() { hideCard(); }); }) var screenWidth = $(document).width(); var cardWidth = $card.outerWidth(); var offset = $elm.offset(); var height = $card.height(); var top = offset.top - height - 10; var isRTL = $('html').attr('dir') === 'rtl'; if (isRTL) { var left = offset.left - cardWidth + $elm.outerWidth() + 10; left = left < 0 ? 0 : left; } else { var left = offset.left - 10; var offsetRight = screenWidth - left; if (offsetRight < cardWidth) { left = left - (cardWidth - offsetRight); if ( left < 0 ) { left = $(document).width(); } } } $card.css({ display: 'block', top: top, left: left }); animateTimer = setTimeout( function() { $card.css({ opacity: 1, top: top - 5 }) }, 300); } function createCard() { $card = $(joms.getLayout('stream.reaction').trim()); $card.hide().appendTo( document.body ); } // Exports. return { initialize: initialize }; }); define("utils/reaction", function(){}); (function( root, factory ) { joms.util || (joms.util = {}); joms.util.loadLib = factory( root ); })( window, function( window ) { // @todo: Google Map library loader. function loadGmap( fn ) { return fn(); } // MediaElement.js library loader. function loadMediaElement( fn ) { if ( window.MediaElement ) { return fn(); } joms.$LAB.script( joms.ASSETS_URL + 'vendors/mediaelement/mediaelement-and-player.min.js' ).wait(function () { fn(); }); } // Flowplayer library loader. function loadFlowplayer( fn ) { if ( window.flowplayer ) { return fn(); } joms.$LAB.script( joms.ASSETS_URL + 'flowplayer/flowplayer-3.2.6.min.js' ).wait(function () { fn(); }); } // Plupload library loader. function loadPlupload( fn ) { if ( window.plupload ) { return fn(); } joms.$LAB.script( joms.ASSETS_URL + 'vendors/plupload.min.js' ).wait(function() { fn(); }); } // Trumbowyg rich editor loader. function loadTrumbowyg( fn ) { if ( !joms.jQuery ) { return false; } if ( joms.jQuery.trumbowyg ) { return fn(); } joms.loadCSS( joms.ASSETS_URL + 'vendors/trumbowyg/ui/trumbowyg.min.css' ); joms.$LAB.script( joms.ASSETS_URL + 'vendors/trumbowyg/trumbowyg.min.js' ).wait() .script( joms.ASSETS_URL + 'vendors/trumbowyg/plugins/base64/trumbowyg.base64.min.js' ).wait() .script( joms.ASSETS_URL + 'vendors/trumbowyg/plugins/upload/trumbowyg.upload.js' ).wait(function() { fn(); }); } // Load dragsort library. function loadDragsort( fn ) { if ( window.Sortable ) { return fn(); } joms.$LAB.script( joms.ASSETS_URL + 'dragsort/jquery.dragsort-0.5.1.min.js' ).wait(function() { fn(); }); } function load( lib, fn ) { if ( lib === 'gmap' ) { return loadGmap( fn ); } if ( lib === 'mediaelement' ) { return loadMediaElement( fn ); } if ( lib === 'flowplayer' ) { return loadFlowplayer( fn ); } if ( lib === 'plupload' ) { return loadPlupload( fn ); } if ( lib === 'trumbowyg' ) { return loadTrumbowyg( fn ); } if ( lib === 'dragsort' ) { return loadDragsort( fn ); } fn(); } // Exports. return load; }); define("utils/loadlib", function(){}); (function( root, $, _, factory ) { var LocationAutocomplete = factory( root, $, _ ); define('utils/location-autocomplete',[ 'utils/map' ], function() { return LocationAutocomplete; }); // make jQuery plugin $.fn.locationAutocomplete = function() { return this.each(function() { var key = 'location-autocomplete', $el = $( this ); if ( ! $el.data( key ) ) { $el.data( key, new LocationAutocomplete( this )); } }); }; // detect input on page load $(function() { $('.joms-input--location').locationAutocomplete(); }); })( window, joms.jQuery, window._, function( window, $, _ ) { function LocationAutocomplete( el ) { this.$input = $( el ); this.$wrapper = this.$input.parent('.joms-location__wrapper'); this.$inputDesc = this.$input.siblings('.js-desc'); this.$inputLat = this.$input.siblings('.js-lat'); this.$inputLng = this.$input.siblings('.js-lng'); this.$description = this.$input.siblings('.joms-location__description'); this.$dropdown = this.$input.siblings('.joms-location__dropdown'); this.$loading = this.$dropdown.find('.joms-location__loading'); this.$result = this.$dropdown.find('.joms-location__result'); this.$header = this.$dropdown.find('.joms-location__header'); this.$map = this.$dropdown.find('.joms-location__map'); this.$list = this.$dropdown.find('.joms-location__list'); this.$input.on('focus.joms-location', $.proxy( this.focus, this )); this.$input.on('blur.joms-location', $.proxy( this.hide, this )); this.$input.on('input.joms-location', $.proxy( this.search, this )); this.$dropdown.on('mousedown', '.joms-location__list a', $.proxy( this.select, this )); this.$dropdown.on('click', '.joms-location__close', $.proxy( this.hide, this )); this._location_cache = {}; } LocationAutocomplete.prototype.show = function() { this.$dropdown.show(); }; LocationAutocomplete.prototype.hide = function() { this.$dropdown && this.$dropdown.hide(); }; LocationAutocomplete.prototype.focus = function() { this._search_success && this.show(); }; LocationAutocomplete.prototype.search = function() { var query = $.trim( this.$input.val() ); this.$wrapper.css('display', 'inline-block'); this.$description.html( this.$description.data('tips') ); if ( query ) { this.$result.hide(); this.$loading.show(); this.$dropdown.show(); this._search( query ); } setTimeout( $.proxy(function() { this.$wrapper.css('display', ''); }, this ), 0 ); }; LocationAutocomplete.prototype._search = _.debounce(function( query ) { this._get_autocomplete_service().done(function( service ) { service.getPlacePredictions({ input: query }, $.proxy(function( results, status ) { this.$loading.hide(); this.$result.show(); if ( status === 'OK' ) { this._format_result( results ).done( $.proxy(function( html ) { this.$list.html( html ); this._search_success = true; }, this )); } }, this )); }); }, 1000 ); LocationAutocomplete.prototype.select = function( e ) { var $item = $( e.currentTarget ), name = $item.find('.js-name').text(), desc = $item.find('.js-desc').text(), placeId = $item.data('place-id'); e.preventDefault(); e.stopPropagation(); if ( placeId ) { this.$input.val( name ); this.$inputDesc.val( desc ); this.$description.html( desc ); this._get_location_detail( placeId ).done(function( place ) { var loc = place.geometry.location; this.$inputLat.val( loc.lat() ); this.$inputLng.val( loc.lng() ); this._render_map( this.$map[0], place ); }); } }; LocationAutocomplete.prototype._load_library = function() { return $.Deferred( $.proxy(function( defer ) { joms.util.map( $.proxy(function() { defer.resolveWith( this, [ window.google ]); }, this )); }, this )); }; LocationAutocomplete.prototype._get_autocomplete_service = function() { return $.Deferred( $.proxy(function( defer ) { if ( this._autocomplete_service ) { defer.resolveWith( this, [ this._autocomplete_service ]); } else { this._load_library().done(function( google ) { this._autocomplete_service = new google.maps.places.AutocompleteService(); defer.resolveWith( this, [ this._autocomplete_service ]); }); } }, this )); }; LocationAutocomplete.prototype._get_location_service = function() { return $.Deferred( $.proxy(function( defer ) { if ( this._location_service ) { defer.resolveWith( this, [ this._location_service ]); } else { this._load_library().done(function( google ) { var div = document.createElement('div'); document.body.appendChild( div ); this._location_service = new google.maps.places.PlacesService( div ); defer.resolveWith( this, [ this._location_service ]); }); } }, this )); }; LocationAutocomplete.prototype._get_location_detail = function( id ) { return $.Deferred( $.proxy(function( defer ) { if ( this._location_cache && this._location_cache[ id ] ) { defer.resolveWith( this, [ this._location_cache[ id ] ]); } else { this._get_location_service().done(function( service ) { service.getDetails({ placeId: id }, $.proxy(function( place, status ) { if ( status === 'OK' ) { // this._location_cache || (this._location_cache = {}); this._location_cache[ id ] = place; defer.resolveWith( this, [ place ]); } else { defer.rejectWith( this, [ status ]); } }, this )); }); } }, this )); }; LocationAutocomplete.prototype._render_map = function( div, place ) { var location = place.geometry.location, viewport = place.geometry.viewport, map, marker; div = $( div ).show(); map = div.data('joms-map'); marker = div.data('joms-map-marker'); if ( !map ) { map = new window.google.maps.Map( div[0], { center: location, zoom: 15, draggable: false, scrollwheel: false, disableDefaultUI: true }); div.data('joms-map', map ); } if ( !marker ) { marker = new window.google.maps.Marker({ position: location, map: map, title: 'You are here (more or less)' }); div.data('joms-map-marker', marker ); } map.setCenter( location ); marker.setPosition( location ); if ( viewport ) { map.fitBounds( viewport ); } else { map.setZoom( 15 ); } }; LocationAutocomplete.prototype._format_result = function( results ) { return $.Deferred( $.proxy(function( defer ) { var html = [], defers = [], template; template = [ '<a href="javascript:" data-place-id="{place_id}">', '<span class="joms-location__name js-name">{name}</span>', '<span class="joms-location__desc js-desc">{description}</span>', '</a>' ].join(''); _.each( results, function( item ) { // defers.push( item); defers.push( this._get_location_detail( item.place_id ) ); }, this ); $.when.apply( $, defers ).then( $.proxy(function() { var html = _.map( arguments, function( place ) { return template .replace('{place_id}', place.place_id ) .replace('{name}', place.name ) .replace('{description}', place.formatted_address || ' ' ); }); defer.resolveWith( this, [ html.join('') ]); }, this )); }, this )); }; return LocationAutocomplete; }); (function( root, factory ) { joms.util || (joms.util = {}); joms.util.tab = factory( root ); })( window, function() { function start() { startTab(); startLegacyTab(); } function startTab() { var cssTabBar = '.joms-tab__bar', cssTabItem = '.joms-tab__content', doc; function toggle( e ) { var el = joms.jQuery( e.currentTarget ), par = el.parent( cssTabBar ), target = el.attr('href'), selected, url, clicked; if ( el.find('.joms-tab__bar--button').length ) { clicked = joms.jQuery( e.target ); if ( clicked.hasClass('add') || clicked[0].tagName.match(/use|svg/i) ) { e.preventDefault(); e.stopPropagation(); return false; } } if ( target.indexOf('#') !== 0 ) { return; } selected = el.closest( cssTabBar ).siblings( target ); selected.show().siblings( cssTabItem ).hide(); el.addClass('active').siblings('a').removeClass('active'); url = par.data('id'); if ( url ) { url = '#tab:' + url + '/' + el.data('id'); window.location = url; } jQuery(window).trigger('tab:change'); return false; } function initialize() { uninitialize(); doc || (doc = joms.jQuery( document.body )); doc.on( 'click.joms-tab', cssTabBar + ' a', toggle ); } function uninitialize() { doc && doc.off('click.joms-tab'); } initialize(); } function startLegacyTab() { joms.jQuery('.cTabsBar').on( 'click', 'li', function( e ) { var li = joms.jQuery( e.currentTarget ), wrapper = li.closest('.cTabsBar').siblings('.cTabsContentWrap'), index, tab; if ( !wrapper.length ) return; index = li.prevAll().length; tab = wrapper.children('.cTabsContent').eq( index ); if ( !tab.length ) return; li.addClass('cTabCurrent').siblings('.cTabCurrent').removeClass('cTabCurrent'); tab.siblings('.cTabsContent').hide(); tab.show(); }); } // Exports. return { start: start }; }); define("utils/tab", function(){}); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.tagging = factory( root, $ ); // Also register as jQuery plugin. $.fn.jomsTagging = function( extraFetch ) { return this.each(function() { joms.util.tagging( this, extraFetch ); }); }; })( window, joms.jQuery, function( window, $ ) { var // Virtual keys. VK_ENTER = 13, VK_ESC = 27, VK_KEYUP = 38, VK_KEYDOWN = 40, // Namespace. namespace = 'joms-tagging', // CSS selectors. cssTextareaS = '.joms-textarea', cssWrapper = cssTextareaS + '__wrapper', cssBeautifier = cssTextareaS + '__beautifier', cssHidden = cssTextareaS + '__hidden', cssDropdown = cssTextareaS + '__tag-ct', cssDropdownItem = cssTextareaS + '__tag-item', cssDropdownItemActive = cssDropdownItem + '--active', // Regular expressions. rTags = /@\[\[(\d+):contact:([^\]]+)\]\]/g, rTag = /@\[\[(\d+):contact:([^\]]+)\]\]/, rHashTag = /(^|#|\s)(#[^#\s]+)/g, rHashTagReplace = '$1<b>$2</b>', rEol = /\n/g, rEolReplace ='<br>'; var cssTextarea = '.input.joms-textarea'; function Tagging( textarea, extraFetch ) { this.textarea = textarea; this.fetcher = extraFetch || false; this.$textarea = $( textarea ); this.$textarea.data( 'initialValue', textarea.value ); this.$textarea.data( namespace, this ); this.$textarea.on( 'focus.' + namespace, $.proxy( this.initialize, this ) ); this.contenteditable = false ; this.contenteditable = this.$textarea.attr('contenteditable') == "true" ? true:false; return this; } Tagging.prototype.getValue = function() { var value = ''; // value = this.textarea.value ; // return value; if (this.contenteditable) { this.$textarea.children().each(function (idx, item) { //item = joms.util.emoji.replaceEmojiElementsToText($(item).clone(true)); let text = item.textContent; if (value) { value += '\n' + text; } else { value = text } }); if (this.$textarea.children().length == 0) { return this.$textarea.text(); } if (!value) { value = $('.input.input-status.joms-textarea').text(); } return value; } else { value = this.textarea.value ; return value; } } Tagging.prototype.setValue = function(value) { if(this.contenteditable){ //this.textarea.value = value ; let html = "" ; var tags = this.tagsAdded ; let linevalue = "" ; if (tags.length ) { rMatch = '^'; rReplace = ''; start = 0; for ( i = 0; i < tags.length; i++ ) { tag = tags[i]; rMatch += '([\\s\\S]{' + ( tag.start - start ) + '})([\\s\\S]{' + tag.length + '})'; rReplace += '$' + ( i * 2 + 1 ) + '<span contenteditable="false">' + tag.name + '</span>'; //rReplace += '$' + ( i * 2 + 1 ) + ' '.repeat(tag.length ); start = tag.start + tag.length; } rMatch = new RegExp( rMatch ); value = value.replace( rMatch, rReplace ); } let lines = value.split("\n"); for ( j = 0; j < lines.length; j++ ) { // ignore emojis here linevalue = lines[j] ; html += '<div>'+linevalue+'</div>'; } if(html == "<div><br></div>"){ retrun ; } if(html ==""){ html = "<div><br></div>"; } var re = /(?:\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb\udffc]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udffd]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69])(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5\udeeb\udeec\udef4-\udefa\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd71\udd73-\udd76\udd7a-\udda2\udda5-\uddaa\uddae-\uddb4\uddb7\uddba\uddbc-\uddca\uddd0\uddde-\uddff\ude70-\ude73\ude78-\ude7a\ude80-\ude82\ude90-\ude95]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g; // ignore emojis here fix colorful html too . var re = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*/g; html = html.replace(re,(matched, index, original ) => { return joms.util.emoji.getIconByUni(matched); }); this.$textarea.html(html); }else{ this.textarea.value = value; } } Tagging.prototype.setSelectionRange = function(start, end){ if(this.contenteditable){ // move caret in div. //this.textarea.setSelectionRange(tag.start + tmp.length, tag.start + tmp.length); range = document.createRange(); range.selectNodeContents(this.textarea); var selection = window.getSelection(); // if (range) { range.collapse(false); selection.removeAllRanges(); selection.addRange(range); // } }else{ this.textarea.setSelectionRange(start,end); } } Tagging.prototype.initialize = function() { var value, tags, match, start, i; this.dropdownIsOpened = false; this.dropdownIsClicked = false; this.dropdownSelectedItem = false; this.domPrepare(); // this.inputPrepare(); this.tagsAdded = []; value = ''; if ( this.$textarea.data('initialValue') ) { value = this.getValue(); tags = value.match( rTags ); this.setValue(value.replace( rTags, '$2' )); //this.textarea.value = value.replace( rTags, '$2' ); if ( tags && tags.length ) { for ( i = 0; i < tags.length; i++ ) { match = tags[i].match( rTag ); start = value.indexOf( tags[i] ); value = value.replace( tags[i], match[2] ); this.tagsAdded.push({ id : match[1], name : match[2], start : start, length : match[2].length }); } } } this.beautifierUpdate( value, this.tagsAdded ); this.hiddenUpdate( value, this.tagsAdded ); this.inputAutogrow(); this.$textarea .off( 'focus.' + namespace ).on( 'focus.' + namespace, $.proxy( this.inputOnKeydown, this ) ) .off( 'click.' + namespace ).on( 'click.' + namespace, $.proxy( this.inputOnKeydown, this ) ) .off( 'keydown.' + namespace ).on( 'keydown.' + namespace, $.proxy( this.inputOnKeydown, this ) ) .off( 'keyup.' + namespace ).on( 'keyup.' + namespace, $.proxy( this.inputOnKeyup, this ) ) .off( 'input.' + namespace ).on( 'input.' + namespace, $.proxy( this.inputOnInput, this ) ) .off( 'blur.' + namespace ).on( 'blur.' + namespace, $.proxy( this.inputOnBlur, this ) ); this.$dropdown .off( 'mouseenter.' + namespace ).on( 'mouseenter.' + namespace, cssDropdownItem, $.proxy( this.dropdownOnMouseEnter, this ) ) .off( 'mousedown.' + namespace ).on( 'mousedown.' + namespace, cssDropdownItem, $.proxy( this.dropdownOnMouseDown, this ) ) .off( 'mouseup.' + namespace ).on( 'mouseup.' + namespace, cssDropdownItem, $.proxy( this.dropdownOnMouseUp, this ) ); this.textarea.joms_beautifier = this.$beautifier; this.textarea.joms_hidden = this.$hidden; var that = this; this.textarea.joms_reset = function() { that.inputReset(); }; }; Tagging.prototype.domPrepare = function() { this.$wrapper = this.$textarea.parent( cssWrapper ); if ( !this.$wrapper.length ) { this.$textarea.wrap( '<div class="' + cssWrapper.substr(1) + '"></div>' ); this.$wrapper = this.$textarea.parent(); } this.$beautifier = this.$wrapper.children( cssBeautifier ); if ( !this.$beautifier.length ) { //let cssTextarea = ".joms-textarea"; this.$beautifier = $( '<div class="' + ".joms-textarea".substr(1).replace("."," ") + ' ' + cssBeautifier.substr(1) + '"></div>' ); this.$beautifier.prependTo( this.$wrapper ); } this.$hidden = this.$wrapper.children( cssHidden ); if ( !this.$hidden.length ) { this.$hidden = $( '<input type="hidden" class="' + cssHidden.substr(1) + '">' ); this.$hidden.appendTo( this.$wrapper ); } this.$dropdown = this.$wrapper.children( cssDropdown ); if ( !this.$dropdown.length ) { this.$dropdown = $( '<div class="' + cssDropdown.substr(1) + '"></div>' ); this.$dropdown.appendTo( this.$wrapper ); } }; Tagging.prototype.inputPrepare = function() { }; // @todo Tagging.prototype.inputReset = function() { if ( this.tagsAdded ) { this.tagsAdded = []; } // console.log('inputReset'); // this.tagsAdded = []; // this.$hidden.val(); // this.$textarea.val(); // this.$beautifier.html( text ); // this.$textarea.trigger( 'reset.' + namespace ); }; Tagging.prototype.inputAutogrow = function() { var prevHeight = +this.$textarea.data( namespace + '-prevHeight' ), height; this.$wrapper.css({ height: prevHeight }); this.$textarea.css({ height: '' }); height = this.textarea.scrollHeight + 2; this.$textarea.css({ height: height }); if ( height !== +prevHeight ) { this.$textarea.data( namespace + '-prevHeight', height ); } this.$wrapper.css({ height: '' }); }; Tagging.prototype.inputOnKeydown = function( e ) { // Catch dropdown navigation buttons. if ( this.dropdownIsOpened ) { if ([ VK_ENTER, VK_ESC, VK_KEYUP, VK_KEYDOWN ].indexOf( e.keyCode ) >= 0 ) { return false; } } // Reset input to initial state if Esc button is pressed. if ( e.keyCode === VK_ESC ) { this.inputReset(); return false; } this.prevSelStart = this.textarea.selectionStart; this.prevSelEnd = this.textarea.selectionEnd; }; Tagging.prototype.inputOnKeyup = function( e ) { if ( this.dropdownIsOpened ) { if ( e.keyCode === VK_KEYUP || e.keyCode === VK_KEYDOWN ) { this.dropdownChangeItem( e.keyCode ); return false; } if ( e.keyCode === VK_ENTER ) { this.dropdownSelectItem(); return false; } if ( e.keyCode === VK_ESC ) { this.dropdownHide(); return false; } } }; Tagging.prototype.inputOnInput = function() { var value = this.getValue(), delta, tag, length, name, tmp, index, rMatch, rReplace, shift, i, j; // Shift tags position. if ( this.tagsAdded ) { // if text is selected (selectionStart !== selectionEnd) if ( this.prevSelStart !== this.prevSelEnd ) { for ( i = 0; i < this.tagsAdded.length; i++ ) { tag = this.tagsAdded[i]; length = tag.start + tag.length; if ( // Intersection. ( this.prevSelStart > tag.start && this.prevSelStart < length ) || ( this.prevSelEnd > tag.start && this.prevSelEnd < length ) || // Enclose. ( tag.start >= this.prevSelStart && length <= this.prevSelEnd ) ) { this.tagsAdded.splice( i--, 1 ); } } } delta = this.textarea.selectionStart - this.prevSelStart - ( this.prevSelEnd - this.prevSelStart ); for ( i = 0; i < this.tagsAdded.length; i++ ) { tag = this.tagsAdded[i]; // Tag's start is in right of or exactly at cursor position. if ( tag.start >= this.prevSelStart ) { tag.start += delta; } else { length = tag.start + tag.length; // Tag's end is in left of cursor position. if ( length < this.prevSelStart ) { // do nothing // Cursor position is inside a tag. } else if ( length > this.prevSelStart ) { // Not backspace. if ( delta > 0 ) { this.tagsAdded.splice( i--, 1 ); // Backspace. } else if ( delta < 0 ) { name = value.substring( tag.start, this.prevSelStart + delta ); index = name.split(' ').length - 1; name = tag.name.split(' '); name.splice( index, 1 ); name = name.join(' '); tmp = tag.name.split(' '); tmp = tmp.slice( 0, index ); tmp = tmp.join(' '); rMatch = new RegExp( '^([\\s\\S]{' + tag.start + '})([\\s\\S]{' + ( tag.length + delta ) + '})' ); rReplace = '$1' + name; // this.textarea.value = this.textarea.value.replace( rMatch, rReplace ); this.setValue (this.getValue().replace( rMatch, rReplace )); //value = this.textarea.value; value = this.getValue(); shift = tag.length - name.length; tag.name = name; tag.length = name.length; for ( j = i + 1; j < this.tagsAdded.length; j++ ) { this.tagsAdded[j].start -= shift; } if ( !name.length ) { this.tagsAdded.splice( i--, 1 ); } i = this.tagsAdded.length; this.setValue (value); this.setSelectionRange(tag.start + tmp.length, tag.start + tmp.length); } // Tag's end is exactly at cursor position... and a backspace is pressed. } else if ( delta < 0 ) { name = tag.name.split(' '); name.pop(); name = name.join(' '); tmp = tag.name.split(' '); tmp = tmp.slice( 0, index ); tmp = tmp.join(' '); rMatch = new RegExp( '^([\\s\\S]{' + tag.start + '})([\\s\\S]{' + ( tag.length + delta ) + '})' ); rReplace = '$1' + name; //this.textarea.value = this.textarea.value.replace( rMatch, rReplace ); this.setValue (this.getValue().replace( rMatch, rReplace )); // value = this.textarea.value; value = this.getValue(); shift = tag.length - name.length; tag.name = name; tag.length = name.length; for ( j = i + 1; j < this.tagsAdded.length; j++ ) { this.tagsAdded[j].start -= shift; } if ( !name.length ) { this.tagsAdded.splice( i--, 1 ); } i = this.tagsAdded.length; this.setValue(this.getValue()); this.setSelectionRange(tag.start + tmp.length, tag.start + tmp.length); //this.setSelectionRange(tag.start + name.length, tag.start + name.length); } } } } this.inputAutogrow(); // if(!this.contenteditable){ this.beautifierUpdate( value, this.tagsAdded ); //} this.hiddenUpdate( value, this.tagsAdded || [] ); this.dropdownToggle(); }; Tagging.prototype.inputOnBlur = function() { this.dropdownIsClicked || this.dropdownHide(); }; Tagging.prototype.beautifierUpdate = joms._.debounce(function( value, tags ) { var rMatch, rReplace, start, tag, i; if ( tags.length ) { rMatch = '^'; rReplace = ''; start = 0; for ( i = 0; i < tags.length; i++ ) { tag = tags[i]; rMatch += '([\\s\\S]{' + ( tag.start - start ) + '})([\\s\\S]{' + tag.length + '})'; rReplace += '$' + ( i * 2 + 1 ) + '[b]' + tag.name + '[/b] '; start = tag.start + tag.length; } rMatch = new RegExp( rMatch ); value = value.replace( rMatch, rReplace ); } value = value.replace( /</g, '<' ).replace( />/g, '>' ); value = value.replace( /\[(\/?b)\]/g, '<$1>' ); value = value.replace( rHashTag, rHashTagReplace ); value = value.replace( rEol, rEolReplace ); this.$beautifier.html( value ); }, joms.mobile ? 100 : 1 ); Tagging.prototype.hiddenUpdate = joms._.debounce(function( value, tags ) { var rMatch, rReplace, start, tag, i; if ( tags.length ) { rMatch = '^'; rReplace = ''; start = 0; for ( i = 0; i < tags.length; i++ ) { tag = tags[i]; rMatch += '([\\s\\S]{' + ( tag.start - start ) + '})([\\s\\S]{' + tag.length + '})'; rReplace += '$' + ( i * 2 + 1 ) + '@[[' + tag.id + ':contact:' + tag.name + ']]'; start = tag.start + tag.length; } rMatch = new RegExp( rMatch ); value = value.replace( rMatch, rReplace ); } this.$hidden.val( value ); }, joms.mobile ? 500 : 50 ); Tagging.prototype.dropdownToggle = joms._.debounce(function() { var cpos = this.textarea.selectionStart, substr = this.getValue().substr( 0, cpos ), index = substr.lastIndexOf('@'); if ( index < 0 || ++index >= cpos ) { this.dropdownHide(); return; } substr = substr.substring( index, cpos ); this.dropdownFetch( substr, joms._.bind( this.dropdownUpdate, this ) ); }, joms.mobile ? 1000 : 200 ); Tagging.prototype.dropdownFetch = function( keyword, callback, friends ) { var source = ( window.joms_friends || [] ).concat( friends || [] ), added = this.tagsAdded || [], matches = [], uniques = [], item, name, isAdded, that, i, j; // Map data-source. if ( source && source.length ) { keyword = keyword.toLowerCase(); for ( i = 0; (i < source.length) && (matches.length < 20); i++ ) { item = source[i]; name = ( item.name || '' ).toLowerCase(); if ( name.indexOf( keyword ) >= 0 ) { isAdded = false; for ( j = 0; j < added.length; j++ ) { if ( +item.id === +added[j].id ) { isAdded = true; break; } } if ( !isAdded && uniques.indexOf( +item.id ) < 0 ) { uniques.push( +item.id ); matches.push({ id: item.id, name: item.name, img: item.avatar }); } } } } matches.sort(function( a, b ) { if ( a.name < b.name ) return -1; if ( a.name > b.name ) return 1; return 0; }); callback( matches ); if ( typeof this.fetcher === 'function' && !friends ) { that = this; this.fetcher(function( friends ) { friends || (friends = []); that.dropdownFetch( keyword, joms._.bind( that.dropdownUpdate, that ), friends ); }); } }; Tagging.prototype.dropdownUpdate = function( matches ) { var html, item, cname, i, length; if ( !( matches && matches.length ) ) { this.dropdownHide(); return; } html = ''; cname = cssDropdownItem.substr(1); length = Math.min( 10, matches.length ); for ( i = 0; i < length; i++ ) { item = matches[ i ]; html += '<a href="javascript:" class=' + cname + ' data-id="' + item.id + '" data-name="' + item.name + '">'; html += '<img src="' + item.img + '">' + item.name + '</a>'; } this.dropdownShow( html ); }; Tagging.prototype.dropdownShow = function( html ) { this.$dropdown.html( html ).show(); this.dropdownIsOpened = true; this.dropdownSelectedItem = false; }; Tagging.prototype.dropdownHide = function() { this.$dropdown.hide(); this.dropdownIsOpened = false; }; Tagging.prototype.dropdownOnMouseEnter = function( e ) { this.dropdownChangeItem( e ); }; Tagging.prototype.dropdownOnMouseDown = function() { this.dropdownIsClicked = true; }; Tagging.prototype.dropdownOnMouseUp = function( e ) { this.dropdownSelectItem( e ); this.dropdownIsClicked = false; this.dropdownHide(); }; Tagging.prototype.dropdownChangeItem = function( e ) { var className = cssDropdownItemActive.substr(1), elem, sibs, next; if ( typeof e !== 'number' ) { elem = this.dropdownSelectedItem = $( e.target ); sibs = elem.siblings( cssDropdownItemActive ); elem.addClass( className ); sibs.removeClass( className ); return; } elem = this.$dropdown.children( cssDropdownItemActive ); if ( !elem.length ) { elem = this.dropdownSelectedItem = this.$dropdown.children()[ e === VK_KEYUP ? 'last' : 'first' ](); elem.addClass( className ); return; } next = elem[ e === VK_KEYUP ? 'prev' : 'next' ](); elem.removeClass( className ); if ( next.length ) { this.dropdownSelectedItem = next; next.addClass( className ); } else { this.dropdownSelectedItem = false; } }; Tagging.prototype.dropdownSelectItem = function( e ) { var el = e ? $( e.currentTarget ) : this.dropdownSelectedItem, id = el.data('id'), name = el.data('name'), cpos = this.textarea.selectionStart, substr = this.getValue().substr( 0, cpos ), index = substr.lastIndexOf('@'), re, value; this.tagsAdded || (this.tagsAdded = []); this.tagsAdded.push({ id : id, name : name, start : index, length : name.length }); re = new RegExp( '^([\\s\\S]{' + index + '})[\\s\\S]{' + ( cpos - index ) + '}' ); value = this.getValue().replace( re, '$1' + name ); this.setValue(value); this.inputAutogrow(); //if(!this.contenteditable){ this.beautifierUpdate( value, this.tagsAdded ); //} this.hiddenUpdate( value, this.tagsAdded ); this.dropdownHide(); if(this.contenteditable){ // move caret in div. //this.textarea.setSelectionRange(tag.start + tmp.length, tag.start + tmp.length); range = document.createRange(); range.selectNodeContents(this.$textarea.children(":last").get(0)); var selection = window.getSelection(); // if (range) { range.collapse(false); selection.removeAllRanges(); selection.addRange(range); // } } }; // Public. Tagging.prototype.clear = function() { this.tagsAdded = []; this.$textarea && this.$textarea.val(''); this.$hidden && this.$hidden.val(''); this.$beautifier && this.$beautifier.empty(); }; // Exports. return function( textarea, extraFetch ) { var instance = $( textarea ).data( namespace ); if ( instance ) { return instance; } else { return new Tagging( textarea, extraFetch ); } }; }); define("utils/tagging", function(){}); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.validation = factory( root, $ ); })( window, joms.jQuery, function( window, $ ) { var STATUS_VALID = 'valid', STATUS_INVALID = 'invalid'; function getErrorContainer( el ) { var wrapper, error; el = $( el ); wrapper = el.parents('.joms-select--wrapper, .joms-textarea__wrapper, .joms-location__wrapper, .joms-checkbox--wrapper, .joms-radio--wrapper'); error = wrapper.length ? wrapper.next('p.joms-help') : el.next('p.joms-help'); if ( !error.length ) { error = $('<p class="joms-help" style="color:red">'); error.hide().insertAfter( wrapper.length ? wrapper : el ); } return error; } function addRequiredSign() { $('.joms-form__group').find('[required]') .add( $('.joms-form__group').find('[data-required]') ) .each(function() { var el = $( this ), par = el.closest('.joms-form__group'), label = par.children().first(); if ( !label.find('.joms-required').length ) { label.append(' <span class="joms-required">*</span>'); } }); } function addTextareaMaxChars() { var textarea = $('.joms-form__group').find('textarea[data-maxchars]'); textarea.css('display', 'inline'); textarea.wrap('<div style="position:relative"></div>'); textarea.parent().append('<div class="joms-js--textarea-counter" style="position:absolute;bottom:2px;right:5px"></div>'); textarea.each(function() { var $el = $( this ); $el.siblings('.joms-js--textarea-counter').html( $el.data('maxchars') ); }); textarea.off('input').on( 'input', function() { var $el = $( this ), $counter = $el.siblings('.joms-js--textarea-counter'), maxChars = $el.data('maxchars') || 0, val; if ( maxChars ) { val = $el.val(); if ( val.length > maxChars ) { val = val.substr( 0, maxChars ); $el.val( val ); } $counter.html( maxChars - val.length ); } }); } function addTextareaCharChecker() { var textarea = $('.joms-textarea__wrapper').find('.joms-textarea--limit'), errClass = 'joms-textarea--error', evtName = 'input.joms-textarea-limit'; textarea.off( evtName ).on( evtName, function() { var $el = $( this ), $wrapper = $el.parent('.joms-textarea__wrapper'), $counter = $wrapper.find('.joms-textarea__limit > span > span'), minChars = $el.data('min-char'), maxChars = $el.data('max-char'), val = $el.val(), len = val.length; if ( !$wrapper.length ) { $wrapper = $el; } // normalize min/max characters bound minChars = isNaN( minChars ) ? 0 : Math.max( 0, +minChars ); maxChars = isNaN( maxChars ) ? false : Math.max( minChars, +maxChars ); if ( len < minChars ) { if ( !$wrapper.hasClass( errClass )) { $wrapper.addClass( errClass ); } } else { if ( $wrapper.hasClass( errClass )) { $wrapper.removeClass( errClass ); } if ( maxChars !== false && len > maxChars ) { val = val.substr( 0, maxChars ); $el.val( val ); } } $wrapper.css('display', 'inline-block'); $counter.html( val.length ); setTimeout(function() { $wrapper.css('display', ''); }, 0 ); }); } function addValidationTrigger() { var evtSuffix = 'joms-validation', evtFocus = 'focus.' + evtSuffix, evtBlur = 'blur.' + evtSuffix, evtChange = 'change.' +evtSuffix, evtValidate = 'validate.' + evtSuffix, $form = $( '.joms-form__group' ), $fields = $form.find( '[required]' ).add( $form.find( '[data-required]' ) ); $fields .off( evtChange ).on( evtChange, function( e, callback) { var $el = $(this); if ($el.attr('type') === 'checkbox' || $el.attr('type') === 'radio') { $el.trigger( evtValidate, callback ); } }) .off( evtFocus ).on( evtFocus, function() { var $el = $( this ); $el.data( 'currentValue', $el.val() ); }) .off( evtBlur ).on( evtBlur, function( e, callback ) { var $el = $( this ), currentValue = $el.data( 'currentValue' ); if ( typeof currentValue !== 'undefined' && $el.val() !== currentValue ) { $el.trigger( evtValidate, callback ); } }) .off( evtValidate ).on( evtValidate, function( e, callback ) { var $el = $( this ), $error = getErrorContainer( $el ), $label = $el.closest( '.joms-form__group' ).children().first(), name = $el.attr( 'name' ), type = ( $el.attr( 'type' ) || '' ).toLowerCase(), tagName = $el.prop( 'tagName' ).toLowerCase(), label = $.trim( $label.text().replace( /\*/g, '' ) ), val = $.trim( $el.val() ), validation; if ( typeof callback !== 'function' ) { callback = function() { var verify = $el.data( 'verify' ), $verify; // Trigger validation if confirmation field is not empty. if ( verify ) { $verify = $( verify ); if ( $verify.length && $.trim( $verify.val() ) ) { $verify.trigger( evtValidate ); } } }; } if ( type.match( /^(text|password)$/ ) || tagName.match( /^(select|textarea)$/ ) ) { if ( ! val ) { setMessage( $el, [ name, label, 'COM_COMMUNITY_REGISTER_INVALID_VALUE' ] ); callback( STATUS_INVALID ); } else { validation = $el.data( 'validation' ) || ''; if ( validation === 'username' ) { validateUsername( $el, val, callback, $el.data( 'current' ) || '' ); } else if ( validation === 'email' ) { validateEmail( $el, val, callback ); } else if ( validation.match( /^email:/ ) ) { validateEmailConfirmation( $el, val, callback ); } else if ( validation === 'password' ) { validatePassword( $el, val, callback ); } else if ( validation.match( /^password:/ ) ) { validatePasswordConfirmation( $el, val, callback ); } else { $error.fadeOut(); callback( STATUS_VALID ); } } } else if (type.match( /^(radio|checkbox)$/ )) { var checked = $('[name="'+name+'"]:checked').length; if (!checked) { setMessage( $el, [ name, label, 'COM_COMMUNITY_REGISTER_INVALID_VALUE' ] ); callback( STATUS_INVALID ); } else { $error.fadeOut(); callback( STATUS_VALID ); } } }); } function validateUsername( el, username, callback, current ) { joms.ajax({ func: 'register,ajaxCheckUserName', data: [ username, current ], callback: function( json ) { var error = getErrorContainer( el ); if ( json.error ) { error.html( json.error ); error.show(); callback( STATUS_INVALID ); } else { error.fadeOut(); callback( STATUS_VALID ); } } }); } function validateEmail( el, email, callback ) { var reEmail = /^([*+!.&#$¦\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,10})$/i; if ( !reEmail.test( email ) ) { setMessage( el, [ '', '', 'COM_COMMUNITY_INVALID_EMAIL' ]); callback( STATUS_INVALID ); return; } joms.ajax({ func: 'register,ajaxCheckEmail', data: [ email ], callback: function( json ) { var error = getErrorContainer( el ); if ( json.error ) { error.html( json.error ); error.show(); callback( STATUS_INVALID ); } else { error.fadeOut(); callback( STATUS_VALID ); } } }); } function validateEmailConfirmation( el, value, callback ) { var data, ref, error; data = el.data('validation').split(':'); ref = $( data[1] ); error = getErrorContainer( el ); if ( !ref.length ) { error.fadeOut(); callback( STATUS_VALID ); return; } if ( value !== ref.val() ) { setMessage( el, [ '', '', 'COM_COMMUNITY_REGISTER_EMAIL_NOT_SAME' ]); callback( STATUS_INVALID ); return; } error.fadeOut(); callback( STATUS_VALID ); } function validatePassword( el, value, callback ) { joms.ajax({ func: 'register,ajaxCheckPass', data: [ value ], callback: function( json ) { var error = getErrorContainer( el ); if ( json.error ) { error.html( json.error.replace(/\n/g, '<br/>') ); error.show(); callback( STATUS_INVALID ); } else { error.fadeOut(); callback( STATUS_VALID ); } } }); } function validatePasswordConfirmation( el, value, callback ) { var data, ref, error; data = el.data('validation').split(':'); ref = $( data[1] ); error = getErrorContainer( el ); if ( !ref.length ) { error.fadeOut(); callback( STATUS_VALID ); return; } if ( value !== ref.val() ) { setMessage( el, [ '', '', 'COM_COMMUNITY_REGISTER_PASSWORD_NOT_SAME' ]); callback( STATUS_INVALID ); return; } error.fadeOut(); callback( STATUS_VALID ); } function validate( $form, callback ) { var errors = 0, counter = 0, form, fields, fieldsCount, checkbox, radio; form = $( $form ); fields = form.find('[required]').add( form.find('[data-required]') ); fieldsCount = fields.length; if ( !fields.length ) { callback( errors ); } fields.each(function() { var $el = $( this ); $el.trigger( 'validate.joms-validation', function( result ) { if ( result === STATUS_INVALID ) { errors++; } if ( ++counter >= fieldsCount ) { callback( errors ); } }); }); return false; } function setMessage( el, data ) { joms.ajax({ func: 'register,ajaxSetMessage', data: data, callback: function( json ) { var error = getErrorContainer( el ); error.html( json.message ); error.show(); } }); } function start() { addRequiredSign(); addTextareaMaxChars(); addTextareaCharChecker(); addValidationTrigger(); } function stop() { } // Exports. return { start: start, stop: stop, validate: validate }; }); define("utils/validation", function(){}); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.video = factory( root, $ ); define('utils/video',[ 'utils/loadlib' ], function() { return joms.util.video; }); })( window, joms.jQuery, function( window, $ ) { var player = {}; player._initMediaElement = function( id, type, data ) { if ( type === 'file' && data.fileType === 'flv' ) { joms.util.loadLib( 'flowplayer', function () { window.flowplayer( id, { src: joms.ASSETS_URL + 'flowplayer/flowplayer-3.2.7.swf', wmode: 'opaque' }, { streamingServer: 'lighttpd', playlist: [{ url: data.filePath, autoPlay: false, autoBuffering: true, provider: 'lighttpd', scaling: 'scale' }], plugins: { lighttpd: { url: joms.ASSETS_URL + 'flowplayer/flowplayer.pseudostreaming-3.2.7.swf', queryString: window.escape('?target=${start}') }, controls: { url: joms.ASSETS_URL + 'flowplayer/flowplayer.controls-3.2.5.swf' } } } ); }); } else { joms.util.loadLib( 'mediaelement', function () { var $elem = $( '#' + id ).css({ visibility: '' }); var options = { iPadUseNativeControls: type === 'file' ? true : false, iPhoneUseNativeControls: type === 'file' ? true : false, success: function( me, el, pl ) { setTimeout(function() { pl.disableControls(); pl.enableControls(); }, 1 ); if ( me.pluginType === 'flash' ) { me.addEventListener( 'canplay', function() { me.play(); }, false ); } else if ( joms.mobile && ( ( me.pluginType === 'youtube' ) || ( me.pluginType === 'vimeo' ) ) ) { // do nothing } else { me.play(); } } }; // #638 Play video on firefox is not as good as on chrome. if ( type === 'youtube' ) { options.defaultVideoWidth = $elem.width(); options.defaultVideoHeight = $elem.height(); } $elem.mediaelementplayer( options ); }); } } player.responsivePlayer = function( $ct, data) { var $media = $ct.find('.joms-media__thumbnail'), $player = $('<div class="joms-media__responsive-player"></div>'), maxHeight = 500, ctWidth, height, width, ratio; ctWidth = $ct.width(); ratio = ( data.width / data.height ) || 16/9; height = ctWidth / ratio; if (height > maxHeight) { height = maxHeight; width = height * ratio; } else { width = ctWidth; } $player.css({ width: width, height: height, margin: '0 auto' }); $ct.addClass('being-played'); $player.html('<iframe src="'+ data.src +'" width="'+width+'" height="'+height+'" '+ data.options +'"></iframe>'); $media.html($player); } player._play_file = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), $video, id, fileType; id = joms._.uniqueId('joms-js--video-'); fileType = data.path.match(/\.flv$/) ? 'flv' : 'mp4'; if ( fileType === 'flv' ) { $video = $( '<div class="flowplayer" id="' + id + '" style="width:100%;height:281px;"></div>'); } else { $video = $( '<video id="' + id + '" width="480" height="360" preload="metadata" autoplay="autoplay">' + '<source src="' + data.path + '" type="video/mp4" />' + '</video>' ); } $ct.addClass('being-played'); $player.html( $video ); player._initMediaElement( id, data.type, { fileType: fileType, filePath: data.path }); } player._play_youtube = function( $ct, data ) { window.joms_videoplayer_native ? player._play_YoutubeNativePlayer( $ct, data ) : player._play_YoutubeJomsPlayer( $ct, data ); } player._play_YoutubeJomsPlayer = function( $ct, data ) { var id, path, $video, $player; id = joms._.uniqueId('joms-js--video-'); path = data.path; if (joms.ios) { path = path.replace(/#.*$/, ''); path = path.replace(/&t=\d+/, ''); } $video = $( '<video id="' + id + '" controls="control" preload="none">' + '<source src="' + path + '" type="video/youtube" />' + '</video>' ); $video.css({ visibility: 'hidden' }); $player = $ct.find('.joms-media__thumbnail'); if ( ! $player.length ) { $player = $ct; } $ct.addClass('being-played'); $player.html( $video ); player._initMediaElement( id, data.type ); } player._play_YoutubeNativePlayer = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'); if ( ! $player.length ) { $player = $ct; } $ct.addClass('being-played joms-media--video-native'); $player.html( '<iframe src="//www.youtube.com/embed/' + data.id + '?autoplay=1&rel=0" width="500" height="281" frameborder="0" allowfullscreen allow="autoplay; encrypted-media"></iframe>' ); } player._play_vimeo = function( $ct, data ) { data.src = '//player.vimeo.com/video/' + data.id + '?autoplay=1'; data.options = 'frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen'; player.responsivePlayer( $ct, data ); } player._play_myspace = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'https://media.myspace.com/play/video/'+data.id; $ct.addClass('being-played'); $player.html('<iframe src="'+path+'" frameborder="0" width="500" height="281" AllowFullScreen></iframe>'); } player._play_blip = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = '//blip.tv/play/' + data.id; $ct.addClass('being-played'); $player.html( '<iframe src="' + path + '" width="500" height="281" frameborder="0" allowfullscreen></iframe>' ); } player._play_dailymotion = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'); $ct.addClass('being-played'); $player.html( '<iframe frameborder="0" width="500" height="270" src="//www.dailymotion.com/embed/video/'+data.id+'?autoPlay=1" allowfullscreen="" allow="autoplay"></iframe>' ); } player._play_liveleak = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = '//www.liveleak.com/ll_embed?i=' + data.id; $ct.addClass('being-played'); $player.html( '<iframe src="' + path + '" width="500" height="281" frameborder="0" allowfullscreen></iframe>' ); } player._play_yahoo = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = data.path; path = path.replace('www.yahoo.com/movies/v', 'movies.yahoo.com/video'); path = path + '?format=embed&player_autoplay=true'; $ct.addClass('being-played'); $player.html( '<iframe src="' + path + '" width="500" height="281" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" allowtransparency="true"></iframe>' ); } player._play_metacafe = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'http://www.metacafe.com/embed/' + data.id + '/'; $ct.addClass('being-played'); $player.html( '<iframe src="' + path + '" width="500" height="281" frameborder="0" allowfullscreen></iframe>' ); } player._play_funnyordie = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = '//www.funnyordie.com/embed/' + data.id + '/'; $ct.addClass('being-played'); $player.html( '<iframe src="'+path+'" width="500" height="300" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>' ); } player._play_collegehumor = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'http://www.collegehumor.com/e/' + data.id; $ct.addClass('being-played'); $player.html( '<iframe src="'+path+'" width="500" height="281" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>' ); } player._play_flickr = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'https://www.flickr.com/photos/'+data.id; $ct.addClass('being-played'); $player.html('<a data-flickr-embed="true" href="'+path+'" ><img src="https://farm2.staticflickr.com/1729/42437754852_936a2d5e9f_b.jpg" width="1024" height="576" alt="flickr"></a><script async src="https://embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>'); } player._play_dotsub = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'https://dotsub.com/media/'+data.id+'/embed/'; $ct.addClass('being-played'); $player.html('<iframe src="'+path+'" frameborder="0" width="500" height="281" AllowFullScreen></iframe>'); } player._play_gloria = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'https://gloria.tv/video/'+data.id+'/embed/'; $ct.addClass('being-played'); $player.html('<iframe src="'+path+'" frameborder="0" width="500" height="265" AllowFullScreen></iframe>'); } player._play_sapo = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'http://rd.videos.sapo.pt/playhtml?file=http://rd.videos.sapo.pt/'+data.id+'/mov/1'; $ct.addClass('being-played'); $player.html('<iframe src="'+path+'" frameborder="0" width="500" height="265" AllowFullScreen></iframe>'); } player._play_facebook = function( $ct, data ) { console.log(data); data.src = 'https://www.facebook.com/plugins/video.php?href='+encodeURIComponent('https://www.facebook.com/watch/?v='+data.id) +'&show_text=false'; data.options = 'style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true" allow="encrypted-media"'; player.responsivePlayer( $ct, data ); } player._play_soundcloud = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = 'https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/'+data.id+'&color=%23ff5500&auto_play=true&hide_related=false&show_comments=false&show_user=false&show_reposts=false&show_teaser=true&visual=true'; $ct.addClass('being-played'); $player.html('<iframe src="'+path+'" width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" ></iframe>'); } player._play_godtube = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), splitted = data.id.split('|'), videoID = splitted[0], type = splitted[1], embedID = splitted[2]; if (type === 'godtube') { $ct.addClass('being-played'); var path = 'https://www.godtube.com/embed/watch/'+splitted[0].toLowerCase()+'/?w=728&h=408&ap=true&sl=true&title=true&dp=true'; $player.html('<iframe width="500" height="250" aspectratio="16:9" frameborder="0" scrolling="no" src="'+path+'"></iframe>"'); } else if (type === 'youtube') { $ct.addClass('being-played'); var xdata = { id: embedID, path: 'https://www.youtube.com/watch?v='+embedID, type: type } player._play_youtube( $ct, xdata ); } else { player._play_other( $ct, data ); } } player._play_rutube = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path = '//rutube.ru/play/embed/'+data.id; $ct.addClass('being-played'); $player.html('<iframe src="'+path+'" frameborder="0" width="500" height="265" AllowFullScreen></iframe>'); } player._play_ku6 = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'); $ct.addClass('being-played'); $player.html('<iframe src="'+data.id+'" frameborder="0" width="500" height="265" AllowFullScreen></iframe>'); } player._play_twitch = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), videoid = data.id.split('|')[0], type = data.id.split('|')[1], path; $ct.addClass('being-played'); if (type === 'clip') { path ='https://clips.twitch.tv/embed?autoplay=true&clip=' + videoid + '&parent=' + location.hostname; } else { path ='https://player.twitch.tv/?autoplay=true&video=' + videoid + '&parent=' + location.hostname; } $player.html('<iframe src="'+path+'" frameborder="0" allowfullscreen="true" scrolling="no" height="265" width="500"></iframe>'); } player._play_flic = function( $ct, data ) { player._play_flickr( $ct, data ); } player._play_vbox7 = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'), path ='https://www.vbox7.com/emb/external.php?vid=' + data.id + '&autoplay=1'; $ct.addClass('being-played'); $player.html('<iframe src="'+path+'" frameborder="0" allowtransparency="true" webkitallowfullscreen mozallowfullscreen allowfullscreen height="265" width="500"></iframe>'); } player._play_veoh = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'); $ct.addClass('being-played'); $player.html([ '<object width="500" height="280">', '<embed src="http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1509&permalinkId=' + data.id + '&player=videodetailsembedded&videoAutoPlay=1&id=anonymous"', 'type="application/x-shockwave-flash"', 'allowscriptaccess="always"', 'allowfullscreen="true"', 'width="500"', 'height="280"', '>', '</embed>', '</object>' ].join('')); } player._play_videa = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'); $ct.addClass('being-played'); $player.html('<iframe width="500" height="280" src="//videa.hu/player?v='+data.id+'&autoplay=1" allowfullscreen="allowfullscreen" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" frameborder="0"></iframe>'); } player._play_youku = function( $ct, data ) { var $player = $ct.find('.joms-media__thumbnail'); $ct.addClass('being-played'); $player.html('<iframe height=280 width=500 src="http://player.youku.com/embed/' + data.id + '" frameborder=0 allowfullscreen></iframe>'); } player._play_other = function( $ct, data ) { window.open( data.path ); } var play = function ( $ct, data ) { var fn = '_play_' + data.type; if ( typeof player[fn] === 'function') { player[fn]( $ct, data); } else { player._play_other( $ct, data ); } } // Exports. return { play: play }; }); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.wysiwyg = factory( root, $ ); define('utils/wysiwyg',[ 'utils/loadlib' ], function() { return joms.util.wysiwyg; }); })( window, joms.jQuery, function( window, $ ) { function start() { var editor = $('textarea').filter('[data-wysiwyg=trumbowyg]'); if ( !editor.length ) { return; } joms.util.loadLib( 'trumbowyg', function() { trumbowygTranslate(); // Check RTL. var isRTL = false; if ( $('html').attr('dir') === 'rtl' ) { isRTL = true; } // TODO: Set upload path. $.extend( jQuery.trumbowyg, { upload: { serverPath: joms.BASE_URL + 'index.php?option=com_community&view=photos&task=ajaxPreviewComment&isEditor=1' } }); editor.each(function() { var btns, config, instance; btns = $( this ).data( 'btns' ); btns = btns || 'viewHTML,|,bold,italic,underline,|,unorderedList,orderedList,|,link,image'; btns = btns.split(','); config = { btnsDef: { image: { dropdown: [ 'insertImage', 'upload' ], ico: 'insertImage' } }, btns: btns, fullscreenable: false, mobile: false, tablet: false, removeformatPasted: true, autogrow: true }; if ( isRTL ) { config.dir = 'rtl'; } instance = $( this ).trumbowyg( config ) .on('tbwblur', function() { var t = $( this ).data('trumbowyg'); t.syncCode(); }) .data('trumbowyg'); // Override modal button render. instance.buildModalBtn = trumbowygBuildModalBtn; // Override modal input. instance._openModalInsert = instance.openModalInsert; instance.openModalInsert = function( title, fields, cmd ) { var modBox = instance._openModalInsert( title, fields, cmd ); modBox.find('label').each(function() { var label = $( this ), input = label.find('input'), name = input.attr('name'), type = input.attr('type'), html; if ([ 'url', 'file', 'title', 'text', 'target', 'alt' ].indexOf( name ) >= 0 ) { html = '<div class="joms-form__group" style="text-align:left">'; html += '<span style="width:90px;text-align:center">' + label.find('.trumbowyg-input-infos').text() + '</span>'; if ( type === 'file' ) { html += '<input name="' + name + '" class="joms-input" value="' + ( input.val() || '' ) + '" type="file"'; html += ' accept="image/png,image/jpeg,image/gif,image/bmp">'; } else { html += '<input name="' + name + '" class="joms-input" value="' + ( input.val() || '' ) + '" type="' + ( type || 'text' ) + '">'; } html += '</div>'; label.replaceWith( $(html) ); } }); return modBox; }; }); }); } function trumbowygBuildModalBtn( name, modal ) { return $('<button/>', { 'class': 'joms-button--full-small joms-button--' + ( name === 'submit' ? 'primary' : 'neutral' ), 'type': name, 'text': this.lang[name] || name }).appendTo( modal.find('form') ); } function trumbowygTranslate() { $.extend( jQuery.trumbowyg.langs.en, window.joms_lang.wysiwyg || {}); } // Exports. return { start: start }; }); define('utils/dialog',[ 'core' ], function() { var getScrollbarWidth = function getScrollbarWidth() { var outer = document.createElement("div"); outer.style.visibility = "hidden"; outer.style.width = "100px"; outer.style.msOverflowStyle = "scrollbar"; document.body.appendChild(outer); var widthNoScroll = outer.offsetWidth; outer.style.overflow = "scroll"; var inner = document.createElement("div"); inner.style.width = "100%"; outer.appendChild(inner); var widthWithScroll = inner.offsetWidth; outer.parentNode.removeChild(outer); return widthNoScroll - widthWithScroll; } var $ = joms.jQuery; var $body = $(document.body); var cachedStyle = ''; var scrollbarWidth = getScrollbarWidth(); var Dialog = function Dialog() {}; Dialog.prototype.prepare = function prepare( callback ) { var modal = this.show(); callback = callback || function() {}; callback( modal ) } Dialog.prototype.show = function show() { var modal = new window.tingle.modal({ closeMethods: ['overlay', 'button', 'escape'], closeLabel: window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, cssClass: ['joms-dialog'], onClose: function() { var $content = joms.jQuery(modal.getContent()); var $container = $content.parents('.tingle-modal'); $container.remove(); }, beforeClose: function() { $body.attr('style', cachedStyle ? cachedStyle : ''); return true; }, beforeOpen: function() { cachedStyle = $body.attr('style'); var paddingRight = parseInt($body.css('paddingRight')); $body.css('padding-right', scrollbarWidth + paddingRight); } }); var loader = '<div style="width: 100%; text-align: center;"><img src="' + joms.BASE_URL + 'components/com_community/assets/ajax-loader.gif" /></div>'; modal.setContent(loader); modal.open(); return modal; } joms.util || (joms.util = {}); joms.util.dialog = new Dialog(); }); define('utils/emoji',[ 'core' ], function() { var $ = joms.jQuery; var JomsEmoji = function JomsEmoji() { this.renderBoard() }; var image = document.createElement('img'); image.src = joms.ASSETS_URL+"emoticons/jomsoical-emoji.png"; image.onerror = function(){ //debugger; sheet.insertRule(".joms-emo2 { color: #ffffff !important;}", 0); } JomsEmoji.prototype.showBoard = function showBoard( elm ) { this.$editor = {}; if ($(elm).parent().parent().data('editor') != "") { this.$editor = $(elm).parent().parent().data('editor') } // $('#joms-emoticon-js__board').remove(); var $body = $('body'), $board = $('#joms-emoticon-js__board'), $icon = $(elm).parents('.joms-icon--emoticon'), offset = $(elm).offset(), offsetTop = 0, emoticons = joms.getData('joms_emo'), isRTL = $('html').attr('dir') === 'rtl'; if (!$board.length) { html = this.renderBoard(); $body.append(html); $board = $('#joms-emoticon-js__board'); // $board.hide(); } this.$board = $board; let that = this; $board.on('input', 'input', function (e) { that.filterEmoji(this); }); $board.on('click', '.joms-board-emoji-anchor', function (e) { e.stopImmediatePropagation(); e.stopPropagation(); e.preventDefault(); let category = $(this).attr("data-category"); let categoryPostition = $("#" + category).parent().get(0).offsetTop; let scroll = $board.find("#joms-emoji-js__scroll"); let scrollPosition = scroll.get(0).offsetTop; scroll.get(0).scrollTop = categoryPostition - 113; return false; }); var spacer = isRTL ? 15 : ($board.outerWidth() - 30); var above = { display: 'block', top: (offset.top - $board.outerHeight()) + 'px', left: (offset.left - spacer) + 'px', position: 'absolute' } var animate_above = { opacity: '1', top: (offset.top - $board.outerHeight() - 10) + 'px' } var below = { display: 'block', top: (offset.top + 20) + 'px', left: (offset.left - spacer) + 'px', position: 'absolute' } var animate_below = { opacity: '1', top: (offset.top + 24) + 'px' } offsetTop = offset.top - $(window).scrollTop(); var pos, ani, positionClass; if (offsetTop > ($board.outerHeight() + 30)) { pos = above; ani = animate_above; positionClass = 'joms-board--above' } else { pos = below; ani = animate_below; positionClass = 'joms-board--below'; } $board.is(':hidden') && setTimeout(function () { $('.joms-icon--active').removeClass('joms-icon--active'); $icon.addClass('joms-icon--active'); $board.css(pos); $board.addClass(positionClass) setTimeout(function () { $board.css(ani); }, 100); $(document).on('click', function (e) { if($(e.target).hasClass("joms-emoji-search")){ e.stopImmediatePropagation(); e.preventDefault(); e.stopPropagation(); return false; } $board.css({ display: 'none', opacity: '0' }); $board.removeClass('joms-board--above joms-board--below'); }); }, 100); } JomsEmoji.prototype.renderBoard = function renderBoard() { let board = $('<div id="joms-emoticon-js__board" class=" joms-emoticon__board joms-emoticon-js__board joms-emoji-js__board"></div>'); board.width("240px").css('Zindex',"1103").css('background','#ffffff none repeat scroll 0% 0%'); let bar = $('<div class="joms-emoji-js__bar"></div>'); board.append(bar); _.each(emoji_categories_SVGs, function (svg, name) { let span = $('<span class="joms-board-emoji-anchor" data-category ="' + name + '" ></span>'); span.append(svg); span.css("cursor","pointer"); bar.append(span); }); let search = $('<div class="joms-emoji-js__search"><input class="joms-emoji-search" type="text" placeholder="'+window.joms_lang.COM_COMMUNITY_EMOJI_SEARCH+'"></div>'); board.append(search); let scroll = $('<div id="joms-emoji-js__scroll" class="joms-emoji-js__scroll"></div>'); scroll.height(300).css('overflow', "hidden");//.css('overflowY', 'scroll'); let filterpanel = $('<div class="joms-emoji-js_category" id="joms-emoji-js_filter" ></div>'); let label = $('<div class="joms-emoji-js_category-label" id="filter" ><span >'+window.joms_lang.COM_COMMUNITY_EMOJI_SEARCH_RESULTS+'</span></div>'); filterpanel.append(label); filterpanel.hide(); scroll.append(filterpanel); let recentPanel = $('<div class="joms-emoji-js_category clearfix" id="joms-emoji-js_recent" ></div>'); label = $('<div class="joms-emoji-js_category-label" id="recent" ><span >'+window.joms_lang.COM_COMMUNITY_EMOJI_RECENTLY_USED+'</span></div>'); recentPanel.append(label); recentPanel.width("250px"); recentPanel.height("auto"); let recentUsed = this.getRecentused(); if (recentUsed != null && Array.isArray(recentUsed)) { _.each(recentUsed, function (emojiId) { let code = ""; if (emoji_json.emojis[emojiId]["b"].includes("-")) { let res = ""; if(typeof emoji_json.emojis[emojiId]["c"] !== "undefined"){ res = emoji_json.emojis[emojiId]["c"].split("-"); }else{ res = emoji_json.emojis[emojiId]["b"].split("-"); } _.each(res, function (c) { code += "&#x" + c + ";"; }) } else { code = "&#x" + emoji_json.emojis[emojiId]["b"] + ";" } let recentEmoji = $('<span onclick="joms.util.emoji.insert(this)" data-shortCode="'+emojiId+'" data-code=":' + emojiId + ':" data-uniCode="' + code + '" title="' + emoji_json.emojis[emojiId]["b"] + '" class="joms-emoji-js_emoji joms-content1-emo2 joms-emo2 joms-emo2-'+emojiId+'">' + code + '</span>'); recentPanel.append(recentEmoji); }) } scroll.append(recentPanel); board.append(scroll); let emojis = emoji_json.categories; _.each(emojis, function (emoji_detail) { let category = $('<div class="joms-emoji-js_category clearfix"></div>'); let label = $('<div class="joms-emoji-js_category-label" id="' + emoji_detail.id + '" ><span >' + window.joms_lang[emoji_detail.name] + '</span></div>'); category.append(label); category.width("250px"); category.height("auto"); _.each(emoji_detail.emojis, function (emojiId) { let code = ""; if (emoji_json.emojis[emojiId]["b"].includes("-")) { let res = ""; if(typeof emoji_json.emojis[emojiId]["c"] !== "undefined"){ res = emoji_json.emojis[emojiId]["c"].split("-"); }else{ res = emoji_json.emojis[emojiId]["b"].split("-"); } _.each(res, function (c) { code += "&#x" + c + ";"; }) } else { code = "&#x" + emoji_json.emojis[emojiId]["b"] + ";" } let emoji = $('<span onclick="joms.util.emoji.insert(this)" data-shortCode="'+emojiId+'" data-code=":' + emojiId + ':" data-uniCode="' + code + '" title="' + emoji_json.emojis[emojiId]["b"] + '" class="joms-emoji-js_emoji joms-content1-emo2 joms-emo2 joms-emo2-'+emojiId+'">' + code + '</span>'); emoji_json.emojis[emojiId].element = emoji; category.append(emoji); }) scroll.append(category); }) return board.get(0).outerHTML; } JomsEmoji.prototype.getRecentused = function getRecentused() { let emojis = localStorage.getItem("joms.emojis"); if(emojis == null || typeof emojis == "undefined" ){ return false; } return JSON.parse(emojis); } JomsEmoji.prototype.addToRecent = function addToRecent(code) { let emojis = this.getRecentused(); if (!Array.isArray(emojis)) { emojis = []; } let found = emojis.filter(emoji => emoji == code); if(found.length == 00){ emojis.push(code); } localStorage.setItem("joms.emojis", JSON.stringify(emojis)); } JomsEmoji.prototype.insert = function insert(elm) { let code = $(elm).attr('data-unicode'); let shortCode = $(elm).attr('data-shortCode'); this.addToRecent(shortCode); this.$editor.smileyCallback(code); } JomsEmoji.prototype.filterEmoji = function filterEmoji(input) { if (input.value != "") { let emojis_found = {}; _.each(emoji_json.emojis, function (emoji,emojikey) { if(typeof emoji["j"] != "undefined" && Object.values(emoji["j"]).filter(tag => tag.includes(input.value)).length){ emojis_found[emojikey] = emoji; } }) $(".joms-emoji-js_category").hide(); $("#joms-emoji-js_filter").show(); let filterpanel = $("#joms-emoji-js_filter"); filterpanel.children('span').remove(); _.each(emojis_found, function (emoji,emojikey) { let code = ""; if (emoji["b"].includes("-")) { let res = ""; if(typeof emoji["c"] !== "undefined"){ res = emoji["c"].split("-"); }else{ res = emoji["b"].split("-"); } _.each(res, function (c) { code += "&#x" + c + ";"; }) } else { code = "&#x" + emoji["b"] + ";" } let emojiSpan = '<span onclick="joms.util.emoji.insert(this)" data-shortCode="'+emojikey+'" data-code=":' + emojikey + ':" data-uniCode="' + code + '" title="' + emoji["b"] + '" class="joms-emoji-js_emoji joms-content1-emo2 joms-emo2 joms-emo2-'+emojikey+'">' + code + '</span>'; filterpanel.append(emojiSpan); }) } else { $(".joms-emoji-js_category").show(); $("#joms-emoji-js_filter").hide(); } } JomsEmoji.prototype.length = function(code){ code = code.substring(1,code.length-1); let emojiId = code; let unicode = "" if (emoji_json.emojis[emojiId]["b"].includes("-")) { let res = ""; if(typeof emoji_json.emojis[emojiId]["c"] !== "undefined"){ res = emoji_json.emojis[emojiId]["c"].split("-"); }else{ res = emoji_json.emojis[emojiId]["b"].split("-"); } _.each(res, function (c) { unicode += "&#x" + c + ";"; }) } else { unicode = "&#x" + emoji_json.emojis[emojiId]["b"] + ";" } return $('<i>'+unicode +'</i>').text().length ; } JomsEmoji.prototype.getUnicode = function(code){ code = code.substring(1,code.length-1); let emojiId = code; let unicode = "" if (emoji_json.emojis[emojiId]["b"].includes("-")) { let res = ""; if(typeof emoji_json.emojis[emojiId]["c"] !== "undefined"){ res = emoji_json.emojis[emojiId]["c"].split("-"); }else{ res = emoji_json.emojis[emojiId]["b"].split("-"); } _.each(res, function (c) { unicode += "&#x" + c + ";"; }) } else { unicode = "&#x" + emoji_json.emojis[emojiId]["b"] + ";" } return unicode; } JomsEmoji.prototype.toCodePoint = function (unicodeSurrogates, sep) { var r = [], c = 0, p = 0, i = 0; while (i < unicodeSurrogates.length) { c = unicodeSurrogates.charCodeAt(i++); if (p) { r.push((0x10000 + ((p - 0xD800) << 10) + (c - 0xDC00)).toString(16)); p = 0; } else if (0xD800 <= c && c <= 0xDBFF) { p = c; } else { r.push(c.toString(16)); } } return r.join(sep || '-'); } JomsEmoji.prototype.stringFromCodePoint = function () { var MAX_SIZE = 0x4000 var codeUnits = [] var highSurrogate var lowSurrogate var index = -1 var length = arguments.length if (!length) { return '' } var result = '' while (++index < length) { var codePoint = Number(arguments[index]) if ( !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` codePoint < 0 || // not a valid Unicode code point codePoint > 0x10ffff || // not a valid Unicode code point Math.floor(codePoint) != codePoint // not an integer ) { throw RangeError('Invalid code point: ' + codePoint) } if (codePoint <= 0xffff) { // BMP code point codeUnits.push(codePoint) } else { // Astral code point; split in surrogate halves // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae codePoint -= 0x10000 highSurrogate = (codePoint >> 10) + 0xd800 lowSurrogate = codePoint % 0x400 + 0xdc00 codeUnits.push(highSurrogate, lowSurrogate) } if (index + 1 === length || codeUnits.length > MAX_SIZE) { result += String.fromCharCode.apply(null, codeUnits) codeUnits.length = 0 } } return result } JomsEmoji.prototype.getIcon = function(code){ code = code.substring(1,code.length-1); let emojiId = code; let emojicode = ""; if (emoji_json.emojis[emojiId]["b"].includes("-")) { let res ; if(typeof emoji_json.emojis[emojiId]["c"] !== "undefined"){ res = emoji_json.emojis[emojiId]["c"].split("-"); }else{ res = emoji_json.emojis[emojiId]["b"].split("-"); } _.each(res, function (c) { emojicode += "&#x" + c + ";"; }) } else { emojicode = "&#x" + emoji_json.emojis[emojiId]["b"] + ";" } return '<i contenteditable="false" shortCode="'+emojiId+'" class="joms-content1-emo2 joms-emo2 joms-emo2-'+emojiId+'">'+emojicode +'</i>' } JomsEmoji.prototype.getIconByUni = function(unicode){ let codepoint = this.toCodePoint(unicode).toUpperCase(); let codes =emoji_json.emojis ; let found = false ; $.each(codes,function(idx,code){ if(code["b"]== codepoint){ found = idx ; return false; } if(code["c"]== codepoint){ found = idx ; return false; } }); if(found !== false){ return this.getIcon(":"+found+":"); } return false; } JomsEmoji.prototype.getCodeByUni = function(unicode){ let codepoint = this.toCodePoint(unicode).toUpperCase(); let codes =emoji_json.emojis ; let found = false ; $.each(codes,function(idx,code){ if(code["b"]== codepoint){ found = idx ; return false; } if(code["c"]== codepoint){ found = idx ; return false; } }); if(found !== false){ return ":"+found+":"; } return false; } JomsEmoji.prototype.replaceEmojiElementsToText = function( element ) { let icons = element.find("i"); if(icons.length){ _.each(icons,function(icon){ let code = $(icon).attr('shortCode'); icon.replaceWith(":"+code+":"); }); } return element ; }, JomsEmoji.prototype.getEmoticon = function( str ) { var emoticons = joms.getData('joms_emo'), codes = [], names = []; _.each( emoticons, function(emo, name) { codes.unshift(emo); names.unshift(name); }) _.each( codes, function( code, idx ) { _.each( code, function(c) { let code = ""; let emojiId = names[idx] ; if (emoji_json.emojis[emojiId]["b"].includes("-")) { let res = ""; if(typeof emoji_json.emojis[emojiId]["c"] !== "undefined"){ res = emoji_json.emojis[emojiId]["c"].split("-"); }else{ res = emoji_json.emojis[emojiId]["b"].split("-"); } _.each(res, function (c) { code += "&#x" + c + ";"; }) } else { code = "&#x" + emoji_json.emojis[emojiId]["b"] + ";" } str = str.replace(c, '<i contenteditable="false" class="joms-content1-emo2 joms-emo2 joms-emo2-'+names[idx]+'">'+code +'</i><br>' ); }); }); return str; } joms.util || (joms.util = {}); joms.util.emoji = new JomsEmoji(); }); var sheet = (function() { // Create the <style> tag var style = document.createElement("style"); // Add a media (and/or media query) here if you'd like! // style.setAttribute("media", "screen") // style.setAttribute("media", "only screen and (max-width : 1024px)") // WebKit hack :( style.appendChild(document.createTextNode("")); // Add the <style> element to the page document.head.appendChild(style); return style.sheet; })(); var emoji_categories_SVGs = { recent: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"/><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/></svg>", people: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"/><path d=\"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"/></svg>", nature: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"/><path d=\"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"/></svg>", foods: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"/></svg>", activity: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"/></svg>", places: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"/><path d=\"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"/></svg>", objects: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"/><path d=\"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"/></svg>", symbols: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"/></svg>", flags:"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"></path></svg>" /*custom: "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><g transform=\"translate(2.000000, 1.000000)\"><rect id=\"Rectangle\" x=\"8\" y=\"0\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect><rect id=\"Rectangle\" transform=\"translate(9.843, 10.549) rotate(-60) translate(-9.843, -10.549) \" x=\"8.343\" y=\"0.049\" width=\"3\" height=\"21\" rx=\"1.5\"></rect></g></svg>"*/ }; var emoji_json = { "compressed": true, "categories": [ { "id": "people", "name": "COM_COMMUNITY_EMOJI_SMILEYS_AND_PEOPLE", "emojis": [ "grinning", "grin", "joy", "rolling_on_the_floor_laughing", "smiley", "smile", "sweat_smile", "laughing", "wink", "blush", "yum", "sunglasses", "heart_eyes", "kissing_heart", "kissing", "kissing_smiling_eyes", "kissing_closed_eyes", "relaxed", "slightly_smiling_face", "hugging_face", "star-struck", "thinking_face", "face_with_raised_eyebrow", "neutral_face", "expressionless", "no_mouth", "face_with_rolling_eyes", "smirk", "persevere", "disappointed_relieved", "open_mouth", "zipper_mouth_face", "hushed", "sleepy", "tired_face", "sleeping", "relieved", "stuck_out_tongue", "stuck_out_tongue_winking_eye", "stuck_out_tongue_closed_eyes", "drooling_face", "unamused", "sweat", "pensive", "confused", "upside_down_face", "money_mouth_face", "astonished", "white_frowning_face", "slightly_frowning_face", "confounded", "disappointed", "worried", "triumph", "cry", "sob", "frowning", "anguished", "fearful", "weary", "exploding_head", "grimacing", "cold_sweat", "scream", "flushed", "zany_face", "dizzy_face", "rage", "angry", "face_with_symbols_on_mouth", "mask", "face_with_thermometer", "face_with_head_bandage", "nauseated_face", "face_vomiting", "sneezing_face", "innocent", "face_with_cowboy_hat", "clown_face", "lying_face", "shushing_face", "face_with_hand_over_mouth", "face_with_monocle", "nerd_face", "smiling_imp", "imp", "japanese_ogre", "japanese_goblin", "skull", "skull_and_crossbones", "ghost", "alien", "space_invader", "robot_face", "hankey", "smiley_cat", "smile_cat", "joy_cat", "heart_eyes_cat", "smirk_cat", "kissing_cat", "scream_cat", "crying_cat_face", "pouting_cat", "see_no_evil", "hear_no_evil", "speak_no_evil", "baby", "child", "boy", "girl", "adult", "man", "woman", "older_adult", "older_man", "older_woman", "male-doctor", "female-doctor", "male-student", "female-student", "male-teacher", "female-teacher", "male-judge", "female-judge", "male-farmer", "female-farmer", "male-cook", "female-cook", "male-mechanic", "female-mechanic", "male-factory-worker", "female-factory-worker", "male-office-worker", "female-office-worker", "male-scientist", "female-scientist", "male-technologist", "female-technologist", "male-singer", "female-singer", "male-artist", "female-artist", "male-pilot", "female-pilot", "male-astronaut", "female-astronaut", "male-firefighter", "female-firefighter", "cop", "male-police-officer", "female-police-officer", "sleuth_or_spy", "male-detective", "female-detective", "guardsman", "male-guard", "female-guard", "construction_worker", "male-construction-worker", "female-construction-worker", "prince", "princess", "man_with_turban", "man-wearing-turban", "woman-wearing-turban", "man_with_gua_pi_mao", "person_with_headscarf", "bearded_person", "person_with_blond_hair", "blond-haired-man", "blond-haired-woman", "man_in_tuxedo", "bride_with_veil", "pregnant_woman", "breast-feeding", "angel", "santa", "mrs_claus", "mage", "female_mage", "male_mage", "fairy", "female_fairy", "male_fairy", "vampire", "female_vampire", "male_vampire", "merperson", "mermaid", "merman", "elf", "female_elf", "male_elf", "genie", "female_genie", "male_genie", "zombie", "female_zombie", "male_zombie", "person_frowning", "man-frowning", "woman-frowning", "person_with_pouting_face", "man-pouting", "woman-pouting", "no_good", "man-gesturing-no", "woman-gesturing-no", "ok_woman", "man-gesturing-ok", "woman-gesturing-ok", "information_desk_person", "man-tipping-hand", "woman-tipping-hand", "raising_hand", "man-raising-hand", "woman-raising-hand", "bow", "man-bowing", "woman-bowing", "face_palm", "man-facepalming", "woman-facepalming", "shrug", "man-shrugging", "woman-shrugging", "massage", "man-getting-massage", "woman-getting-massage", "haircut", "man-getting-haircut", "woman-getting-haircut", "walking", "man-walking", "woman-walking", "runner", "man-running", "woman-running", "dancer", "man_dancing", "dancers", "man-with-bunny-ears-partying", "woman-with-bunny-ears-partying", "person_in_steamy_room", "woman_in_steamy_room", "man_in_steamy_room", "person_climbing", "woman_climbing", "man_climbing", "person_in_lotus_position", "woman_in_lotus_position", "man_in_lotus_position", "bath", "sleeping_accommodation", "man_in_business_suit_levitating", "speaking_head_in_silhouette", "bust_in_silhouette", "busts_in_silhouette", "fencer", "horse_racing", "skier", "snowboarder", "golfer", "man-golfing", "woman-golfing", "surfer", "man-surfing", "woman-surfing", "rowboat", "man-rowing-boat", "woman-rowing-boat", "swimmer", "man-swimming", "woman-swimming", "person_with_ball", "man-bouncing-ball", "woman-bouncing-ball", "weight_lifter", "man-lifting-weights", "woman-lifting-weights", "bicyclist", "man-biking", "woman-biking", "mountain_bicyclist", "man-mountain-biking", "woman-mountain-biking", "racing_car", "racing_motorcycle", "person_doing_cartwheel", "man-cartwheeling", "woman-cartwheeling", "wrestlers", "man-wrestling", "woman-wrestling", "water_polo", "man-playing-water-polo", "woman-playing-water-polo", "handball", "man-playing-handball", "woman-playing-handball", "juggling", "man-juggling", "woman-juggling", "couple", "two_men_holding_hands", "two_women_holding_hands", "couplekiss", "woman-kiss-man", "man-kiss-man", "woman-kiss-woman", "couple_with_heart", "woman-heart-man", "man-heart-man", "woman-heart-woman", "family", "man-woman-boy", "man-woman-girl", "man-woman-girl-boy", "man-woman-boy-boy", "man-woman-girl-girl", "man-man-boy", "man-man-girl", "man-man-girl-boy", "man-man-boy-boy", "man-man-girl-girl", "woman-woman-boy", "woman-woman-girl", "woman-woman-girl-boy", "woman-woman-boy-boy", "woman-woman-girl-girl", "man-boy", "man-boy-boy", "man-girl", "man-girl-boy", "man-girl-girl", "woman-boy", "woman-boy-boy", "woman-girl", "woman-girl-boy", "woman-girl-girl", "selfie", "muscle", "point_left", "point_right", "point_up", "point_up_2", "middle_finger", "point_down", "v", "crossed_fingers", "spock-hand", "the_horns", "call_me_hand", "raised_hand_with_fingers_splayed", "hand", "ok_hand", "plus1", "-1", "fist", "facepunch", "left-facing_fist", "right-facing_fist", "raised_back_of_hand", "wave", "i_love_you_hand_sign", "writing_hand", "clap", "open_hands", "raised_hands", "palms_up_together", "pray", "handshake", "nail_care", "ear", "nose", "footprints", "eyes", "eye", "brain", "tongue", "lips", "kiss", "cupid", "heart", "heartbeat", "broken_heart", "two_hearts", "sparkling_heart", "heartpulse", "blue_heart", "green_heart", "yellow_heart", "orange_heart", "purple_heart", "black_heart", "gift_heart", "revolving_hearts", "heart_decoration", "heavy_heart_exclamation_mark_ornament", "love_letter", "zzz", "anger", "bomb", "boom", "sweat_drops", "dash", "dizzy", "speech_balloon", "left_speech_bubble", "right_anger_bubble", "thought_balloon", "hole", "eyeglasses", "dark_sunglasses", "necktie", "shirt", "jeans", "scarf", "gloves", "coat", "socks", "dress", "kimono", "bikini", "womans_clothes", "purse", "handbag", "pouch", "shopping_bags", "school_satchel", "mans_shoe", "athletic_shoe", "high_heel", "sandal", "boot", "crown", "womans_hat", "tophat", "mortar_board", "billed_cap", "helmet_with_white_cross", "prayer_beads", "lipstick", "ring", "gem", "cold" ] }, { "id": "nature", "name": "COM_COMMUNITY_EMOJI_ANIMALS_AND_NATURE", "emojis": [ "monkey_face", "monkey", "gorilla", "dog", "dog2", "poodle", "wolf", "fox_face", "cat", "cat2", "lion_face", "tiger", "tiger2", "leopard", "horse", "racehorse", "unicorn_face", "zebra_face", "deer", "cow", "ox", "water_buffalo", "cow2", "pig", "pig2", "boar", "pig_nose", "ram", "sheep", "goat", "dromedary_camel", "camel", "giraffe_face", "elephant", "rhinoceros", "mouse", "mouse2", "rat", "hamster", "rabbit", "rabbit2", "chipmunk", "hedgehog", "bat", "bear", "koala", "panda_face", "feet", "turkey", "chicken", "rooster", "hatching_chick", "baby_chick", "hatched_chick", "bird", "penguin", "dove_of_peace", "eagle", "duck", "owl", "frog", "crocodile", "turtle", "lizard", "snake", "dragon_face", "dragon", "sauropod", "t-rex", "whale", "whale2", "dolphin", "fish", "tropical_fish", "blowfish", "shark", "octopus", "shell", "crab", "shrimp", "squid", "snail", "butterfly", "bug", "ant", "bee", "beetle", "cricket", "spider", "spider_web", "scorpion", "bouquet", "cherry_blossom", "white_flower", "rosette", "rose", "wilted_flower", "hibiscus", "sunflower", "blossom", "tulip", "seedling", "evergreen_tree", "deciduous_tree", "palm_tree", "cactus", "ear_of_rice", "herb", "shamrock", "four_leaf_clover", "maple_leaf", "fallen_leaf", "leaves" ] }, { "id": "foods", "name": "COM_COMMUNITY_EMOJI_FOOD_AND_DRINK", "emojis": [ "grapes", "melon", "watermelon", "tangerine", "lemon", "banana", "pineapple", "apple", "green_apple", "pear", "peach", "cherries", "strawberry", "kiwifruit", "tomato", "coconut", "avocado", "eggplant", "potato", "carrot", "corn", "hot_pepper", "cucumber", "broccoli", "mushroom", "peanuts", "chestnut", "bread", "croissant", "baguette_bread", "pretzel", "pancakes", "cheese_wedge", "meat_on_bone", "poultry_leg", "cut_of_meat", "bacon", "hamburger", "fries", "pizza", "hotdog", "sandwich", "taco", "burrito", "stuffed_flatbread", "egg", "fried_egg", "shallow_pan_of_food", "stew", "bowl_with_spoon", "green_salad", "popcorn", "canned_food", "bento", "rice_cracker", "rice_ball", "rice", "curry", "ramen", "spaghetti", "sweet_potato", "oden", "sushi", "fried_shrimp", "fish_cake", "dango", "dumpling", "fortune_cookie", "takeout_box", "icecream", "shaved_ice", "ice_cream", "doughnut", "cookie", "birthday", "cake", "pie", "chocolate_bar", "candy", "lollipop", "custard", "honey_pot", "baby_bottle", "glass_of_milk", "coffee", "tea", "sake", "champagne", "wine_glass", "cocktail", "tropical_drink", "beer", "beers", "clinking_glasses", "tumbler_glass", "cup_with_straw", "chopsticks", "knife_fork_plate", "fork_and_knife", "spoon", "hocho", "amphora" ] }, { "id": "activity", "name": "COM_COMMUNITY_EMOJI_ACTIVITIES", "emojis": [ "jack_o_lantern", "christmas_tree", "fireworks", "sparkler", "sparkles", "balloon", "tada", "confetti_ball", "tanabata_tree", "bamboo", "dolls", "flags", "wind_chime", "rice_scene", "ribbon", "gift", "reminder_ribbon", "admission_tickets", "ticket", "medal", "trophy", "sports_medal", "first_place_medal", "second_place_medal", "third_place_medal", "soccer", "baseball", "basketball", "volleyball", "football", "rugby_football", "tennis", "8ball", "bowling", "cricket_bat_and_ball", "field_hockey_stick_and_ball", "ice_hockey_stick_and_puck", "table_tennis_paddle_and_ball", "badminton_racquet_and_shuttlecock", "boxing_glove", "martial_arts_uniform", "goal_net", "dart", "golf", "ice_skate", "fishing_pole_and_fish", "running_shirt_with_sash", "ski", "sled", "curling_stone", "video_game", "joystick", "game_die", "spades", "hearts", "diamonds", "clubs", "black_joker", "mahjong", "flower_playing_cards" ] }, { "id": "places", "name": "COM_COMMUNITY_EMOJI_TRAVEL_AND_PLACES", "emojis": [ "earth_africa", "earth_americas", "earth_asia", "globe_with_meridians", "world_map", "japan", "snow_capped_mountain", "mountain", "volcano", "mount_fuji", "camping", "beach_with_umbrella", "desert", "desert_island", "national_park", "stadium", "classical_building", "building_construction", "house_buildings", "cityscape", "derelict_house_building", "house", "house_with_garden", "office", "post_office", "european_post_office", "hospital", "bank", "hotel", "love_hotel", "convenience_store", "school", "department_store", "factory", "japanese_castle", "european_castle", "wedding", "tokyo_tower", "statue_of_liberty", "church", "mosque", "synagogue", "shinto_shrine", "kaaba", "fountain", "tent", "foggy", "night_with_stars", "sunrise_over_mountains", "sunrise", "city_sunset", "city_sunrise", "bridge_at_night", "hotsprings", "milky_way", "carousel_horse", "ferris_wheel", "roller_coaster", "barber", "circus_tent", "performing_arts", "frame_with_picture", "art", "slot_machine", "steam_locomotive", "railway_car", "bullettrain_side", "bullettrain_front", "train2", "metro", "light_rail", "station", "tram", "monorail", "mountain_railway", "train", "bus", "oncoming_bus", "trolleybus", "minibus", "ambulance", "fire_engine", "police_car", "oncoming_police_car", "taxi", "oncoming_taxi", "car", "oncoming_automobile", "blue_car", "truck", "articulated_lorry", "tractor", "bike", "scooter", "motor_scooter", "busstop", "motorway", "railway_track", "fuelpump", "rotating_light", "traffic_light", "vertical_traffic_light", "construction", "octagonal_sign", "anchor", "boat", "canoe", "speedboat", "passenger_ship", "ferry", "motor_boat", "ship", "airplane", "small_airplane", "airplane_departure", "airplane_arriving", "seat", "helicopter", "suspension_railway", "mountain_cableway", "aerial_tramway", "satellite", "rocket", "flying_saucer", "bellhop_bell", "door", "bed", "couch_and_lamp", "toilet", "shower", "bathtub", "hourglass", "hourglass_flowing_sand", "watch", "alarm_clock", "stopwatch", "timer_clock", "mantelpiece_clock", "clock12", "clock1230", "clock1", "clock130", "clock2", "clock230", "clock3", "clock330", "clock4", "clock430", "clock5", "clock530", "clock6", "clock630", "clock7", "clock730", "clock8", "clock830", "clock9", "clock930", "clock10", "clock1030", "clock11", "clock1130", "new_moon", "waxing_crescent_moon", "first_quarter_moon", "moon", "full_moon", "waning_gibbous_moon", "last_quarter_moon", "waning_crescent_moon", "crescent_moon", "new_moon_with_face", "first_quarter_moon_with_face", "last_quarter_moon_with_face", "thermometer", "sunny", "full_moon_with_face", "sun_with_face", "star", "star2", "stars", "cloud", "partly_sunny", "thunder_cloud_and_rain", "mostly_sunny", "barely_sunny", "partly_sunny_rain", "rain_cloud", "snow_cloud", "lightning", "tornado", "fog", "wind_blowing_face", "cyclone", "rainbow", "closed_umbrella", "umbrella", "umbrella_with_rain_drops", "umbrella_on_ground", "zap", "snowflake", "snowman", "snowman_without_snow", "comet", "fire", "droplet", "ocean" ] }, { "id": "objects", "name": "COM_COMMUNITY_EMOJI_OBJECTS", "emojis": [ "mute", "speaker", "sound", "loud_sound", "loudspeaker", "mega", "postal_horn", "bell", "no_bell", "musical_score", "musical_note", "notes", "studio_microphone", "level_slider", "control_knobs", "microphone", "headphones", "radio", "saxophone", "guitar", "musical_keyboard", "trumpet", "violin", "drum_with_drumsticks", "iphone", "calling", "phone", "telephone_receiver", "pager", "fax", "battery", "electric_plug", "computer", "desktop_computer", "printer", "keyboard", "three_button_mouse", "trackball", "minidisc", "floppy_disk", "cd", "dvd", "movie_camera", "film_frames", "film_projector", "clapper", "tv", "camera", "camera_with_flash", "video_camera", "vhs", "mag", "mag_right", "microscope", "telescope", "satellite_antenna", "candle", "bulb", "flashlight", "izakaya_lantern", "notebook_with_decorative_cover", "closed_book", "book", "green_book", "blue_book", "orange_book", "books", "notebook", "ledger", "page_with_curl", "scroll", "page_facing_up", "newspaper", "rolled_up_newspaper", "bookmark_tabs", "bookmark", "label", "moneybag", "yen", "dollar", "euro", "pound", "money_with_wings", "credit_card", "chart", "currency_exchange", "heavy_dollar_sign", "email", "e-mail", "incoming_envelope", "envelope_with_arrow", "outbox_tray", "inbox_tray", "package", "mailbox", "mailbox_closed", "mailbox_with_mail", "mailbox_with_no_mail", "postbox", "ballot_box_with_ballot", "pencil2", "black_nib", "lower_left_fountain_pen", "lower_left_ballpoint_pen", "lower_left_paintbrush", "lower_left_crayon", "memo", "briefcase", "file_folder", "open_file_folder", "card_index_dividers", "date", "calendar", "spiral_note_pad", "spiral_calendar_pad", "card_index", "chart_with_upwards_trend", "chart_with_downwards_trend", "bar_chart", "clipboard", "pushpin", "round_pushpin", "paperclip", "linked_paperclips", "straight_ruler", "triangular_ruler", "scissors", "card_file_box", "file_cabinet", "wastebasket", "lock", "unlock", "lock_with_ink_pen", "closed_lock_with_key", "key", "old_key", "hammer", "pick", "hammer_and_pick", "hammer_and_wrench", "dagger_knife", "crossed_swords", "gun", "bow_and_arrow", "shield", "wrench", "nut_and_bolt", "gear", "compression", "alembic", "scales", "link", "chains", "syringe", "pill", "smoking", "coffin", "funeral_urn", "moyai", "oil_drum", "crystal_ball", "shopping_trolley" ] }, { "id": "symbols", "name": "COM_COMMUNITY_EMOJI_SYMBOLS", "emojis": [ "atm", "put_litter_in_its_place", "potable_water", "wheelchair", "mens", "womens", "restroom", "baby_symbol", "wc", "passport_control", "customs", "baggage_claim", "left_luggage", "warning", "children_crossing", "no_entry", "no_entry_sign", "no_bicycles", "no_smoking", "do_not_litter", "non-potable_water", "no_pedestrians", "no_mobile_phones", "underage", "radioactive_sign", "biohazard_sign", "arrow_up", "arrow_upper_right", "arrow_right", "arrow_lower_right", "arrow_down", "arrow_lower_left", "arrow_left", "arrow_upper_left", "arrow_up_down", "left_right_arrow", "leftwards_arrow_with_hook", "arrow_right_hook", "arrow_heading_up", "arrow_heading_down", "arrows_clockwise", "arrows_counterclockwise", "back", "end", "on", "soon", "top", "place_of_worship", "atom_symbol", "om_symbol", "star_of_david", "wheel_of_dharma", "yin_yang", "latin_cross", "orthodox_cross", "star_and_crescent", "peace_symbol", "menorah_with_nine_branches", "six_pointed_star", "aries", "taurus", "gemini", "cancer", "leo", "virgo", "libra", "scorpius", "sagittarius", "capricorn", "aquarius", "pisces", "ophiuchus", "twisted_rightwards_arrows", "repeat", "repeat_one", "arrow_forward", "fast_forward", "black_right_pointing_double_triangle_with_vertical_bar", "black_right_pointing_triangle_with_double_vertical_bar", "arrow_backward", "rewind", "black_left_pointing_double_triangle_with_vertical_bar", "arrow_up_small", "arrow_double_up", "arrow_down_small", "arrow_double_down", "double_vertical_bar", "black_square_for_stop", "black_circle_for_record", "eject", "cinema", "low_brightness", "high_brightness", "signal_strength", "vibration_mode", "mobile_phone_off", "female_sign", "male_sign", "medical_symbol", "recycle", "fleur_de_lis", "trident", "name_badge", "beginner", "o", "white_check_mark", "ballot_box_with_check", "heavy_check_mark", "heavy_multiplication_x", "x", "negative_squared_cross_mark", "heavy_plus_sign", "heavy_minus_sign", "heavy_division_sign", "curly_loop", "loop", "part_alternation_mark", "eight_spoked_asterisk", "eight_pointed_black_star", "sparkle", "bangbang", "interrobang", "question", "grey_question", "grey_exclamation", "exclamation", "wavy_dash", "tm", "hash", "keycap_star", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "keycap_ten", "hundred", "capital_abcd", "abcd", "numbers", "symbols", "abc", "a", "ab", "b", "cl", "cool", "free", "information_source", "id", "m", "new", "ng", "o2", "ok", "parking", "sos", "up", "vs", "koko", "sa", "u6708", "u6709", "u6307", "ideograph_advantage", "u5272", "u7121", "u7981", "accept", "u7533", "u5408", "u7a7a", "congratulations", "secret", "u55b6", "u6e80", "black_small_square", "white_small_square", "white_medium_square", "black_medium_square", "white_medium_small_square", "black_medium_small_square", "black_large_square", "white_large_square", "large_orange_diamond", "large_blue_diamond", "small_orange_diamond", "small_blue_diamond", "small_red_triangle", "small_red_triangle_down", "diamond_shape_with_a_dot_inside", "radio_button", "black_square_button", "white_square_button", "white_circle", "black_circle", "red_circle", "large_blue_circle" ] }, { "id": "flags", "name": "COM_COMMUNITY_EMOJI_FLAGS", "emojis": [ "checkered_flag", "cn", "crossed_flags", "de", "es", "flag-ac", "flag-ad", "flag-ae", "flag-af", "flag-ag", "flag-ai", "flag-al", "flag-am", "flag-ao", "flag-aq", "flag-ar", "flag-as", "flag-at", "flag-au", "flag-aw", "flag-ax", "flag-az", "flag-ba", "flag-bb", "flag-bd", "flag-be", "flag-bf", "flag-bg", "flag-bh", "flag-bi", "flag-bj", "flag-bl", "flag-bm", "flag-bn", "flag-bo", "flag-bq", "flag-br", "flag-bs", "flag-bt", "flag-bv", "flag-bw", "flag-by", "flag-bz", "flag-ca", "flag-cc", "flag-cd", "flag-cf", "flag-cg", "flag-ch", "flag-ci", "flag-ck", "flag-cl", "flag-cm", "flag-co", "flag-cp", "flag-cr", "flag-cu", "flag-cv", "flag-cw", "flag-cx", "flag-cy", "flag-cz", "flag-dg", "flag-dj", "flag-dk", "flag-dm", "flag-do", "flag-dz", "flag-ea", "flag-ec", "flag-ee", "flag-eg", "flag-eh", "flag-england", "flag-er", "flag-et", "flag-eu", "flag-fi", "flag-fj", "flag-fk", "flag-fm", "flag-fo", "flag-ga", "flag-gd", "flag-ge", "flag-gf", "flag-gg", "flag-gh", "flag-gi", "flag-gl", "flag-gm", "flag-gn", "flag-gp", "flag-gq", "flag-gr", "flag-gs", "flag-gt", "flag-gu", "flag-gw", "flag-gy", "flag-hk", "flag-hm", "flag-hn", "flag-hr", "flag-ht", "flag-hu", "flag-ic", "flag-id", "flag-ie", "flag-il", "flag-im", "flag-in", "flag-io", "flag-iq", "flag-ir", "flag-is", "flag-je", "flag-jm", "flag-jo", "flag-ke", "flag-kg", "flag-kh", "flag-ki", "flag-km", "flag-kn", "flag-kp", "flag-kw", "flag-ky", "flag-kz", "flag-la", "flag-lb", "flag-lc", "flag-li", "flag-lk", "flag-lr", "flag-ls", "flag-lt", "flag-lu", "flag-lv", "flag-ly", "flag-ma", "flag-mc", "flag-md", "flag-me", "flag-mf", "flag-mg", "flag-mh", "flag-mk", "flag-ml", "flag-mm", "flag-mn", "flag-mo", "flag-mp", "flag-mq", "flag-mr", "flag-ms", "flag-mt", "flag-mu", "flag-mv", "flag-mw", "flag-mx", "flag-my", "flag-mz", "flag-na", "flag-nc", "flag-ne", "flag-nf", "flag-ng", "flag-ni", "flag-nl", "flag-no", "flag-np", "flag-nr", "flag-nu", "flag-nz", "flag-om", "flag-pa", "flag-pe", "flag-pf", "flag-pg", "flag-ph", "flag-pk", "flag-pl", "flag-pm", "flag-pn", "flag-pr", "flag-ps", "flag-pt", "flag-pw", "flag-py", "flag-qa", "flag-re", "flag-ro", "flag-rs", "flag-rw", "flag-sa", "flag-sb", "flag-sc", "flag-scotland", "flag-sd", "flag-se", "flag-sg", "flag-sh", "flag-si", "flag-sj", "flag-sk", "flag-sl", "flag-sm", "flag-sn", "flag-so", "flag-sr", "flag-ss", "flag-st", "flag-sv", "flag-sx", "flag-sy", "flag-sz", "flag-ta", "flag-tc", "flag-td", "flag-tf", "flag-tg", "flag-th", "flag-tj", "flag-tk", "flag-tl", "flag-tm", "flag-tn", "flag-to", "flag-tr", "flag-tt", "flag-tv", "flag-tw", "flag-tz", "flag-ua", "flag-ug", "flag-um", "flag-uy", "flag-uz", "flag-va", "flag-vc", "flag-ve", "flag-vg", "flag-vi", "flag-vn", "flag-vu", "flag-wales", "flag-wf", "flag-ws", "flag-xk", "flag-ye", "flag-yt", "flag-za", "flag-zm", "flag-zw", "fr", "gb", "it", "jp", "kr", "rainbow-flag", "ru", "triangular_flag_on_post", "us", "waving_black_flag", "waving_white_flag" ] } ], "emojis": { "hundred": { "a": "Hundred Points Symbol", "b": "1F4AF", "j": [ "score", "perfect", "numbers", "century", "exam", "quiz", "test", "pass", "hundred" ], "k": [ 25, 26 ] }, "cold": { "a": "Freezing Face", "b": "1F976", "j": [ "freezing", "freeze", "cold", ], "k": [ 51, 28 ] }, "numbers": { "a": "Input Symbol for Numbers", "b": "1F522", "j": [ "numbers", "blue-square" ], "k": [ 27, 36 ] }, "monkey_face": { "a": "Monkey Face", "b": "1F435", "j": [ "animal", "nature", "circus" ], "k": [ 13, 31 ], "l": [ ":o)" ] }, "grinning": { "a": "Grinning Face", "b": "1F600", "j": [ "face", "smile", "happy", "joy", ":D", "grin" ], "k": [ 30, 24 ], "m": ":D" }, "earth_africa": { "a": "Earth Globe Europe-Africa", "b": "1F30D", "j": [ "globe", "world", "international" ], "k": [ 6, 5 ] }, "checkered_flag": { "a": "Chequered Flag", "b": "1F3C1", "j": [ "contest", "finishline", "race", "gokart" ], "k": [ 9, 27 ] }, "mute": { "a": "Speaker with Cancellation Stroke", "b": "1F507", "j": [ "sound", "volume", "silence", "quiet" ], "k": [ 27, 9 ] }, "jack_o_lantern": { "a": "Jack-O-Lantern", "b": "1F383", "j": [ "halloween", "light", "pumpkin", "creepy", "fall" ], "k": [ 8, 17 ] }, "atm": { "a": "Automated Teller Machine", "b": "1F3E7", "j": [ "money", "sales", "cash", "blue-square", "payment", "bank" ], "k": [ 12, 4 ] }, "grapes": { "a": "Grapes", "b": "1F347", "j": [ "fruit", "food", "wine" ], "k": [ 7, 9 ] }, "earth_americas": { "a": "Earth Globe Americas", "b": "1F30E", "j": [ "globe", "world", "USA", "international" ], "k": [ 6, 6 ] }, "grin": { "a": "Grinning Face with Smiling Eyes", "b": "1F601", "j": [ "face", "happy", "smile", "joy", "kawaii" ], "k": [ 30, 25 ] }, "melon": { "a": "Melon", "b": "1F348", "j": [ "fruit", "nature", "food" ], "k": [ 7, 10 ] }, "triangular_flag_on_post": { "a": "Triangular Flag on Post", "b": "1F6A9", "j": [ "mark", "milestone", "place" ], "k": [ 35, 14 ] }, "monkey": { "a": "Monkey", "b": "1F412", "j": [ "animal", "nature", "banana", "circus" ], "k": [ 12, 48 ] }, "christmas_tree": { "a": "Christmas Tree", "b": "1F384", "j": [ "festival", "vacation", "december", "xmas", "celebration" ], "k": [ 8, 18 ] }, "put_litter_in_its_place": { "a": "Put Litter in Its Place Symbol", "b": "1F6AE", "j": [ "blue-square", "sign", "human", "info" ], "k": [ 35, 19 ] }, "speaker": { "a": "Speaker", "b": "1F508", "j": [ "sound", "volume", "silence", "broadcast" ], "k": [ 27, 10 ] }, "earth_asia": { "a": "Earth Globe Asia-Australia", "b": "1F30F", "j": [ "globe", "world", "east", "international" ], "k": [ 6, 7 ] }, "crossed_flags": { "a": "Crossed Flags", "b": "1F38C", "j": [ "japanese", "nation", "country", "border" ], "k": [ 8, 31 ] }, "joy": { "a": "Face with Tears of Joy", "b": "1F602", "j": [ "face", "cry", "tears", "weep", "happy", "happytears", "haha" ], "k": [ 30, 26 ] }, "sound": { "a": "Speaker with One Sound Wave", "b": "1F509", "j": [ "volume", "speaker", "broadcast" ], "k": [ 27, 11 ] }, "watermelon": { "a": "Watermelon", "b": "1F349", "j": [ "fruit", "food", "picnic", "summer" ], "k": [ 7, 11 ] }, "gorilla": { "a": "Gorilla", "b": "1F98D", "j": [ "animal", "nature", "circus" ], "k": [ 42, 37 ], "o": 9 }, "fireworks": { "a": "Fireworks", "b": "1F386", "j": [ "photo", "festival", "carnival", "congratulations" ], "k": [ 8, 25 ] }, "potable_water": { "a": "Potable Water Symbol", "b": "1F6B0", "j": [ "blue-square", "liquid", "restroom", "cleaning", "faucet" ], "k": [ 35, 21 ] }, "wheelchair": { "a": "Wheelchair Symbol", "b": "267F", "j": [ "blue-square", "disabled", "a11y", "accessibility" ], "k": [ 48, 10 ], "o": 4 }, "rolling_on_the_floor_laughing": { "a": "Rolling on the Floor Laughing", "b": "1F923", "k": [ 38, 26 ], "o": 9 }, "loud_sound": { "a": "Speaker with Three Sound Waves", "b": "1F50A", "j": [ "volume", "noise", "noisy", "speaker", "broadcast" ], "k": [ 27, 12 ] }, "waving_black_flag": { "a": "Waving Black Flag", "b": "1F3F4", "k": [ 12, 19 ], "o": 7 }, "tangerine": { "a": "Tangerine", "b": "1F34A", "j": [ "food", "fruit", "nature", "orange" ], "k": [ 7, 12 ] }, "dog": { "a": "Dog Face", "b": "1F436", "j": [ "animal", "friend", "nature", "woof", "puppy", "pet", "faithful" ], "k": [ 13, 32 ] }, "sparkler": { "a": "Firework Sparkler", "b": "1F387", "j": [ "stars", "night", "shine" ], "k": [ 8, 26 ] }, "globe_with_meridians": { "a": "Globe with Meridians", "b": "1F310", "j": [ "earth", "international", "world", "internet", "interweb", "i18n" ], "k": [ 6, 8 ] }, "smiley": { "a": "Smiling Face with Open Mouth", "b": "1F603", "j": [ "face", "happy", "joy", "haha", ":D", ":)", "smile", "funny" ], "k": [ 30, 27 ], "l": [ "=)", "=-)" ], "m": ":)" }, "loudspeaker": { "a": "Public Address Loudspeaker", "b": "1F4E2", "j": [ "volume", "sound" ], "k": [ 26, 25 ] }, "sparkles": { "a": "Sparkles", "b": "2728", "j": [ "stars", "shine", "shiny", "cool", "awesome", "good", "magic" ], "k": [ 49, 48 ] }, "dog2": { "a": "Dog", "b": "1F415", "j": [ "animal", "nature", "friend", "doge", "pet", "faithful" ], "k": [ 12, 51 ] }, "waving_white_flag": { "a": "Waving White Flag", "b": "1F3F3-FE0F", "c": "1F3F3", "k": [ 12, 15 ], "o": 7 }, "world_map": { "a": "World Map", "b": "1F5FA-FE0F", "c": "1F5FA", "j": [ "location", "direction" ], "k": [ 30, 18 ], "o": 7 }, "lemon": { "a": "Lemon", "b": "1F34B", "j": [ "fruit", "nature" ], "k": [ 7, 13 ] }, "mens": { "a": "Mens Symbol", "b": "1F6B9", "j": [ "toilet", "restroom", "wc", "blue-square", "gender", "male" ], "k": [ 36, 29 ] }, "womens": { "a": "Womens Symbol", "b": "1F6BA", "j": [ "purple-square", "woman", "female", "toilet", "loo", "restroom", "gender" ], "k": [ 36, 30 ] }, "rainbow-flag": { "a": "Rainbow Flag", "b": "1F3F3-FE0F-200D-1F308", "c": "1F3F3-200D-1F308", "k": [ 12, 14 ], "o": 7 }, "smile": { "a": "Smiling Face with Open Mouth and Smiling Eyes", "b": "1F604", "j": [ "face", "happy", "joy", "funny", "haha", "laugh", "like", ":D", ":)" ], "k": [ 30, 28 ], "l": [ "C:", "c:", ":D", ":-D" ], "m": ":)" }, "banana": { "a": "Banana", "b": "1F34C", "j": [ "fruit", "food", "monkey" ], "k": [ 7, 14 ] }, "mega": { "a": "Cheering Megaphone", "b": "1F4E3", "j": [ "sound", "speaker", "volume" ], "k": [ 26, 26 ] }, "japan": { "a": "Silhouette of Japan", "b": "1F5FE", "j": [ "nation", "country", "japanese", "asia" ], "k": [ 30, 22 ] }, "poodle": { "a": "Poodle", "b": "1F429", "j": [ "dog", "animal", "101", "nature", "pet" ], "k": [ 13, 19 ] }, "balloon": { "a": "Balloon", "b": "1F388", "j": [ "party", "celebration", "birthday", "circus" ], "k": [ 8, 27 ] }, "flag-ac": { "a": "Ascension Island Flag", "b": "1F1E6-1F1E8", "k": [ 0, 31 ] }, "sweat_smile": { "a": "Smiling Face with Open Mouth and Cold Sweat", "b": "1F605", "j": [ "face", "hot", "happy", "laugh", "sweat", "smile", "relief" ], "k": [ 30, 29 ] }, "pineapple": { "a": "Pineapple", "b": "1F34D", "j": [ "fruit", "nature", "food" ], "k": [ 7, 15 ] }, "restroom": { "a": "Restroom", "b": "1F6BB", "j": [ "blue-square", "toilet", "refresh", "wc", "gender" ], "k": [ 36, 31 ] }, "postal_horn": { "a": "Postal Horn", "b": "1F4EF", "j": [ "instrument", "music" ], "k": [ 26, 38 ] }, "wolf": { "a": "Wolf Face", "b": "1F43A", "j": [ "animal", "nature", "wild" ], "k": [ 13, 36 ] }, "tada": { "a": "Party Popper", "b": "1F389", "j": [ "party", "congratulations", "birthday", "magic", "circus", "celebration" ], "k": [ 8, 28 ] }, "snow_capped_mountain": { "a": "Snow Capped Mountain", "b": "1F3D4-FE0F", "c": "1F3D4", "k": [ 11, 37 ], "o": 7 }, "laughing": { "a": "Smiling Face with Open Mouth and Tightly-Closed Eyes", "b": "1F606", "j": [ "happy", "joy", "lol", "satisfied", "haha", "face", "glad", "XD", "laugh" ], "k": [ 30, 30 ], "l": [ ":>", ":->" ], "n": [ "satisfied" ] }, "apple": { "a": "Red Apple", "b": "1F34E", "j": [ "fruit", "mac", "school" ], "k": [ 7, 16 ] }, "flag-ad": { "a": "Andorra Flag", "b": "1F1E6-1F1E9", "k": [ 0, 32 ] }, "fox_face": { "a": "Fox Face", "b": "1F98A", "j": [ "animal", "nature", "face" ], "k": [ 42, 34 ], "o": 9 }, "confetti_ball": { "a": "Confetti Ball", "b": "1F38A", "j": [ "festival", "party", "birthday", "circus" ], "k": [ 8, 29 ] }, "bell": { "a": "Bell", "b": "1F514", "j": [ "sound", "notification", "christmas", "xmas", "chime" ], "k": [ 27, 22 ] }, "mountain": { "a": "Mountain", "b": "26F0-FE0F", "c": "26F0", "j": [ "photo", "nature", "environment" ], "k": [ 48, 38 ], "o": 5 }, "baby_symbol": { "a": "Baby Symbol", "b": "1F6BC", "j": [ "orange-square", "child" ], "k": [ 36, 32 ] }, "wc": { "a": "Water Closet", "b": "1F6BE", "j": [ "toilet", "restroom", "blue-square" ], "k": [ 36, 34 ] }, "wink": { "a": "Winking Face", "b": "1F609", "j": [ "face", "happy", "mischievous", "secret", ";)", "smile", "eye" ], "k": [ 30, 33 ], "l": [ ";)", ";-)" ], "m": ";)" }, "no_bell": { "a": "Bell with Cancellation Stroke", "b": "1F515", "j": [ "sound", "volume", "mute", "quiet", "silent" ], "k": [ 27, 23 ] }, "green_apple": { "a": "Green Apple", "b": "1F34F", "j": [ "fruit", "nature" ], "k": [ 7, 17 ] }, "tanabata_tree": { "a": "Tanabata Tree", "b": "1F38B", "j": [ "plant", "nature", "branch", "summer" ], "k": [ 8, 30 ] }, "flag-ae": { "a": "United Arab Emirates Flag", "b": "1F1E6-1F1EA", "k": [ 0, 33 ] }, "volcano": { "a": "Volcano", "b": "1F30B", "j": [ "photo", "nature", "disaster" ], "k": [ 6, 3 ] }, "cat": { "a": "Cat Face", "b": "1F431", "j": [ "animal", "meow", "nature", "pet", "kitten" ], "k": [ 13, 27 ] }, "flag-af": { "a": "Afghanistan Flag", "b": "1F1E6-1F1EB", "k": [ 0, 34 ] }, "musical_score": { "a": "Musical Score", "b": "1F3BC", "j": [ "treble", "clef", "compose" ], "k": [ 9, 22 ] }, "blush": { "a": "Smiling Face with Smiling Eyes", "b": "1F60A", "j": [ "face", "smile", "happy", "flushed", "crush", "embarrassed", "shy", "joy" ], "k": [ 30, 34 ], "m": ":)" }, "pear": { "a": "Pear", "b": "1F350", "j": [ "fruit", "nature", "food" ], "k": [ 7, 18 ] }, "bamboo": { "a": "Pine Decoration", "b": "1F38D", "j": [ "plant", "nature", "vegetable", "panda", "pine_decoration" ], "k": [ 8, 32 ] }, "passport_control": { "a": "Passport Control", "b": "1F6C2", "j": [ "custom", "blue-square" ], "k": [ 36, 43 ] }, "mount_fuji": { "a": "Mount Fuji", "b": "1F5FB", "j": [ "photo", "mountain", "nature", "japanese" ], "k": [ 30, 19 ] }, "cat2": { "a": "Cat", "b": "1F408", "j": [ "animal", "meow", "pet", "cats" ], "k": [ 12, 38 ] }, "musical_note": { "a": "Musical Note", "b": "1F3B5", "j": [ "score", "tone", "sound" ], "k": [ 9, 15 ] }, "dolls": { "a": "Japanese Dolls", "b": "1F38E", "j": [ "japanese", "toy", "kimono" ], "k": [ 8, 33 ] }, "lion_face": { "a": "Lion Face", "b": "1F981", "k": [ 42, 25 ], "o": 8 }, "camping": { "a": "Camping", "b": "1F3D5-FE0F", "c": "1F3D5", "j": [ "photo", "outdoors", "tent" ], "k": [ 11, 38 ], "o": 7 }, "flag-ag": { "a": "Antigua & Barbuda Flag", "b": "1F1E6-1F1EC", "k": [ 0, 35 ] }, "customs": { "a": "Customs", "b": "1F6C3", "j": [ "passport", "border", "blue-square" ], "k": [ 36, 44 ] }, "yum": { "a": "Face Savouring Delicious Food", "b": "1F60B", "j": [ "happy", "joy", "tongue", "smile", "face", "silly", "yummy", "nom", "delicious", "savouring" ], "k": [ 30, 35 ] }, "peach": { "a": "Peach", "b": "1F351", "j": [ "fruit", "nature", "food" ], "k": [ 7, 19 ] }, "tiger": { "a": "Tiger Face", "b": "1F42F", "j": [ "animal", "cat", "danger", "wild", "nature", "roar" ], "k": [ 13, 25 ] }, "notes": { "a": "Multiple Musical Notes", "b": "1F3B6", "j": [ "music", "score" ], "k": [ 9, 16 ] }, "flags": { "a": "Carp Streamer", "b": "1F38F", "j": [ "fish", "japanese", "koinobori", "carp", "banner" ], "k": [ 8, 34 ] }, "beach_with_umbrella": { "a": "Beach with Umbrella", "b": "1F3D6-FE0F", "c": "1F3D6", "k": [ 11, 39 ], "o": 7 }, "cherries": { "a": "Cherries", "b": "1F352", "j": [ "food", "fruit" ], "k": [ 7, 20 ] }, "flag-ai": { "a": "Anguilla Flag", "b": "1F1E6-1F1EE", "k": [ 0, 36 ] }, "baggage_claim": { "a": "Baggage Claim", "b": "1F6C4", "j": [ "blue-square", "airport", "transport" ], "k": [ 36, 45 ] }, "sunglasses": { "a": "Smiling Face with Sunglasses", "b": "1F60E", "j": [ "face", "cool", "smile", "summer", "beach", "sunglass" ], "k": [ 30, 38 ], "l": [ "8)" ] }, "left_luggage": { "a": "Left Luggage", "b": "1F6C5", "j": [ "blue-square", "travel" ], "k": [ 36, 46 ] }, "wind_chime": { "a": "Wind Chime", "b": "1F390", "j": [ "nature", "ding", "spring", "bell" ], "k": [ 8, 35 ] }, "strawberry": { "a": "Strawberry", "b": "1F353", "j": [ "fruit", "food", "nature" ], "k": [ 7, 21 ] }, "desert": { "a": "Desert", "b": "1F3DC-FE0F", "c": "1F3DC", "j": [ "photo", "warm", "saharah" ], "k": [ 11, 45 ], "o": 7 }, "studio_microphone": { "a": "Studio Microphone", "b": "1F399-FE0F", "c": "1F399", "j": [ "sing", "recording", "artist", "talkshow" ], "k": [ 8, 41 ], "o": 7 }, "flag-al": { "a": "Albania Flag", "b": "1F1E6-1F1F1", "k": [ 0, 37 ] }, "tiger2": { "a": "Tiger", "b": "1F405", "j": [ "animal", "nature", "roar" ], "k": [ 12, 35 ] }, "heart_eyes": { "a": "Smiling Face with Heart-Shaped Eyes", "b": "1F60D", "j": [ "face", "love", "like", "affection", "valentines", "infatuation", "crush", "heart" ], "k": [ 30, 37 ] }, "desert_island": { "a": "Desert Island", "b": "1F3DD-FE0F", "c": "1F3DD", "j": [ "photo", "tropical", "mojito" ], "k": [ 11, 46 ], "o": 7 }, "kiwifruit": { "a": "Kiwifruit", "b": "1F95D", "k": [ 42, 9 ], "o": 9 }, "rice_scene": { "a": "Moon Viewing Ceremony", "b": "1F391", "j": [ "photo", "japan", "asia", "tsukimi" ], "k": [ 8, 36 ] }, "kissing_heart": { "a": "Face Throwing a Kiss", "b": "1F618", "j": [ "face", "love", "like", "affection", "valentines", "infatuation", "kiss" ], "k": [ 30, 48 ], "l": [ ":*", ":-*" ] }, "warning": { "a": "Warning Sign", "b": "26A0-FE0F", "c": "26A0", "j": [ "exclamation", "wip", "alert", "error", "problem", "issue" ], "k": [ 48, 20 ], "o": 4 }, "flag-am": { "a": "Armenia Flag", "b": "1F1E6-1F1F2", "k": [ 0, 38 ] }, "leopard": { "a": "Leopard", "b": "1F406", "j": [ "animal", "nature" ], "k": [ 12, 36 ] }, "level_slider": { "a": "Level Slider", "b": "1F39A-FE0F", "c": "1F39A", "j": [ "scale" ], "k": [ 8, 42 ], "o": 7 }, "horse": { "a": "Horse Face", "b": "1F434", "j": [ "animal", "brown", "nature" ], "k": [ 13, 30 ] }, "children_crossing": { "a": "Children Crossing", "b": "1F6B8", "j": [ "school", "warning", "danger", "sign", "driving", "yellow-diamond" ], "k": [ 36, 28 ] }, "ribbon": { "a": "Ribbon", "b": "1F380", "j": [ "decoration", "pink", "girl", "bowtie" ], "k": [ 8, 14 ] }, "national_park": { "a": "National Park", "b": "1F3DE-FE0F", "c": "1F3DE", "j": [ "photo", "environment", "nature" ], "k": [ 11, 47 ], "o": 7 }, "control_knobs": { "a": "Control Knobs", "b": "1F39B-FE0F", "c": "1F39B", "j": [ "dial" ], "k": [ 8, 43 ], "o": 7 }, "kissing": { "a": "Kissing Face", "b": "1F617", "j": [ "love", "like", "face", "3", "valentines", "infatuation", "kiss" ], "k": [ 30, 47 ] }, "tomato": { "a": "Tomato", "b": "1F345", "j": [ "fruit", "vegetable", "nature", "food" ], "k": [ 7, 7 ] }, "flag-ao": { "a": "Angola Flag", "b": "1F1E6-1F1F4", "k": [ 0, 39 ] }, "stadium": { "a": "Stadium", "b": "1F3DF-FE0F", "c": "1F3DF", "j": [ "photo", "place", "sports", "concert", "venue" ], "k": [ 11, 48 ], "o": 7 }, "flag-aq": { "a": "Antarctica Flag", "b": "1F1E6-1F1F6", "k": [ 0, 40 ] }, "gift": { "a": "Wrapped Present", "b": "1F381", "j": [ "present", "birthday", "christmas", "xmas" ], "k": [ 8, 15 ] }, "no_entry": { "a": "No Entry", "b": "26D4", "j": [ "limit", "security", "privacy", "bad", "denied", "stop", "circle" ], "k": [ 48, 35 ], "o": 5 }, "kissing_smiling_eyes": { "a": "Kissing Face with Smiling Eyes", "b": "1F619", "j": [ "face", "affection", "valentines", "infatuation", "kiss" ], "k": [ 30, 49 ] }, "coconut": { "a": "Coconut", "b": "1F965", "j": [ "fruit", "nature", "food", "palm" ], "k": [ 42, 17 ], "o": 10 }, "racehorse": { "a": "Horse", "b": "1F40E", "j": [ "animal", "gamble", "luck" ], "k": [ 12, 44 ] }, "microphone": { "a": "Microphone", "b": "1F3A4", "j": [ "sound", "music", "PA", "sing", "talkshow" ], "k": [ 8, 50 ] }, "classical_building": { "a": "Classical Building", "b": "1F3DB-FE0F", "c": "1F3DB", "j": [ "art", "culture", "history" ], "k": [ 11, 44 ], "o": 7 }, "no_entry_sign": { "a": "No Entry Sign", "b": "1F6AB", "j": [ "forbid", "stop", "limit", "denied", "disallow", "circle" ], "k": [ 35, 16 ] }, "reminder_ribbon": { "a": "Reminder Ribbon", "b": "1F397-FE0F", "c": "1F397", "j": [ "sports", "cause", "support", "awareness" ], "k": [ 8, 40 ], "o": 7 }, "kissing_closed_eyes": { "a": "Kissing Face with Closed Eyes", "b": "1F61A", "j": [ "face", "love", "like", "affection", "valentines", "infatuation", "kiss" ], "k": [ 30, 50 ] }, "unicorn_face": { "a": "Unicorn Face", "b": "1F984", "k": [ 42, 28 ], "o": 8 }, "flag-ar": { "a": "Argentina Flag", "b": "1F1E6-1F1F7", "k": [ 0, 41 ] }, "headphones": { "a": "Headphone", "b": "1F3A7", "j": [ "music", "score", "gadgets" ], "k": [ 9, 1 ] }, "avocado": { "a": "Avocado", "b": "1F951", "j": [ "fruit", "food" ], "k": [ 41, 49 ], "o": 9 }, "relaxed": { "a": "White Smiling Face", "b": "263A-FE0F", "c": "263A", "j": [ "face", "blush", "massage", "happiness" ], "k": [ 47, 41 ], "o": 1 }, "zebra_face": { "a": "Zebra Face", "b": "1F993", "k": [ 42, 43 ], "o": 10 }, "eggplant": { "a": "Aubergine", "b": "1F346", "j": [ "vegetable", "nature", "food", "aubergine" ], "k": [ 7, 8 ] }, "radio": { "a": "Radio", "b": "1F4FB", "j": [ "communication", "music", "podcast", "program" ], "k": [ 26, 50 ] }, "building_construction": { "a": "Building Construction", "b": "1F3D7-FE0F", "c": "1F3D7", "j": [ "wip", "working", "progress" ], "k": [ 11, 40 ], "o": 7 }, "flag-as": { "a": "American Samoa Flag", "b": "1F1E6-1F1F8", "k": [ 0, 42 ] }, "admission_tickets": { "a": "Admission Tickets", "b": "1F39F-FE0F", "c": "1F39F", "k": [ 8, 45 ], "o": 7 }, "no_bicycles": { "a": "No Bicycles", "b": "1F6B3", "j": [ "cyclist", "prohibited", "circle" ], "k": [ 35, 24 ] }, "no_smoking": { "a": "No Smoking Symbol", "b": "1F6AD", "j": [ "cigarette", "blue-square", "smell", "smoke" ], "k": [ 35, 18 ] }, "slightly_smiling_face": { "a": "Slightly Smiling Face", "b": "1F642", "j": [ "face", "smile" ], "k": [ 31, 38 ], "l": [ ":)", "(:", ":-)" ], "o": 7 }, "flag-at": { "a": "Austria Flag", "b": "1F1E6-1F1F9", "k": [ 0, 43 ] }, "ticket": { "a": "Ticket", "b": "1F3AB", "j": [ "event", "concert", "pass" ], "k": [ 9, 5 ] }, "saxophone": { "a": "Saxophone", "b": "1F3B7", "j": [ "music", "instrument", "jazz", "blues" ], "k": [ 9, 17 ] }, "deer": { "a": "Deer", "b": "1F98C", "j": [ "animal", "nature", "horns", "venison" ], "k": [ 42, 36 ], "o": 9 }, "house_buildings": { "a": "House Buildings", "b": "1F3D8-FE0F", "c": "1F3D8", "k": [ 11, 41 ], "o": 7 }, "potato": { "a": "Potato", "b": "1F954", "j": [ "food", "tuber", "vegatable", "starch" ], "k": [ 42, 0 ], "o": 9 }, "guitar": { "a": "Guitar", "b": "1F3B8", "j": [ "music", "instrument" ], "k": [ 9, 18 ] }, "carrot": { "a": "Carrot", "b": "1F955", "j": [ "vegetable", "food", "orange" ], "k": [ 42, 1 ], "o": 9 }, "cityscape": { "a": "Cityscape", "b": "1F3D9-FE0F", "c": "1F3D9", "j": [ "photo", "night life", "urban" ], "k": [ 11, 42 ], "o": 7 }, "flag-au": { "a": "Australia Flag", "b": "1F1E6-1F1FA", "k": [ 0, 44 ] }, "do_not_litter": { "a": "Do Not Litter Symbol", "b": "1F6AF", "j": [ "trash", "bin", "garbage", "circle" ], "k": [ 35, 20 ] }, "hugging_face": { "a": "Hugging Face", "b": "1F917", "k": [ 37, 31 ], "o": 8 }, "cow": { "a": "Cow Face", "b": "1F42E", "j": [ "beef", "ox", "animal", "nature", "moo", "milk" ], "k": [ 13, 24 ] }, "medal": { "a": "Medal", "b": "1F396-FE0F", "c": "1F396", "k": [ 8, 39 ], "o": 7 }, "musical_keyboard": { "a": "Musical Keyboard", "b": "1F3B9", "j": [ "piano", "instrument", "compose" ], "k": [ 9, 19 ] }, "corn": { "a": "Ear of Maize", "b": "1F33D", "j": [ "food", "vegetable", "plant" ], "k": [ 6, 51 ] }, "derelict_house_building": { "a": "Derelict House Building", "b": "1F3DA-FE0F", "c": "1F3DA", "k": [ 11, 43 ], "o": 7 }, "non-potable_water": { "a": "Non-Potable Water Symbol", "b": "1F6B1", "j": [ "drink", "faucet", "tap", "circle" ], "k": [ 35, 22 ] }, "trophy": { "a": "Trophy", "b": "1F3C6", "j": [ "win", "award", "contest", "place", "ftw", "ceremony" ], "k": [ 10, 19 ] }, "flag-aw": { "a": "Aruba Flag", "b": "1F1E6-1F1FC", "k": [ 0, 45 ] }, "star-struck": { "a": "Grinning Face with Star Eyes", "b": "1F929", "k": [ 38, 49 ], "n": [ "grinning_face_with_star_eyes" ], "o": 10 }, "ox": { "a": "Ox", "b": "1F402", "j": [ "animal", "cow", "beef" ], "k": [ 12, 32 ] }, "trumpet": { "a": "Trumpet", "b": "1F3BA", "j": [ "music", "brass" ], "k": [ 9, 20 ] }, "hot_pepper": { "a": "Hot Pepper", "b": "1F336-FE0F", "c": "1F336", "j": [ "food", "spicy", "chilli", "chili" ], "k": [ 6, 44 ], "o": 7 }, "sports_medal": { "a": "Sports Medal", "b": "1F3C5", "k": [ 10, 18 ], "o": 7 }, "flag-ax": { "a": "Åland Islands Flag", "b": "1F1E6-1F1FD", "k": [ 0, 46 ] }, "water_buffalo": { "a": "Water Buffalo", "b": "1F403", "j": [ "animal", "nature", "ox", "cow" ], "k": [ 12, 33 ] }, "no_pedestrians": { "a": "No Pedestrians", "b": "1F6B7", "j": [ "rules", "crossing", "walking", "circle" ], "k": [ 36, 27 ] }, "thinking_face": { "a": "Thinking Face", "b": "1F914", "k": [ 37, 28 ], "o": 8 }, "house": { "a": "House Building", "b": "1F3E0", "j": [ "building", "home" ], "k": [ 11, 49 ] }, "no_mobile_phones": { "a": "No Mobile Phones", "b": "1F4F5", "j": [ "iphone", "mute", "circle" ], "k": [ 26, 44 ] }, "flag-az": { "a": "Azerbaijan Flag", "b": "1F1E6-1F1FF", "k": [ 0, 47 ] }, "first_place_medal": { "a": "First Place Medal", "b": "1F947", "k": [ 41, 42 ], "o": 9 }, "house_with_garden": { "a": "House with Garden", "b": "1F3E1", "j": [ "home", "plant", "nature" ], "k": [ 11, 50 ] }, "violin": { "a": "Violin", "b": "1F3BB", "j": [ "music", "instrument", "orchestra", "symphony" ], "k": [ 9, 21 ] }, "face_with_raised_eyebrow": { "a": "Face with One Eyebrow Raised", "b": "1F928", "k": [ 38, 48 ], "n": [ "face_with_one_eyebrow_raised" ], "o": 10 }, "cucumber": { "a": "Cucumber", "b": "1F952", "j": [ "fruit", "food", "pickle" ], "k": [ 41, 50 ], "o": 9 }, "cow2": { "a": "Cow", "b": "1F404", "j": [ "beef", "ox", "animal", "nature", "moo", "milk" ], "k": [ 12, 34 ] }, "flag-ba": { "a": "Bosnia & Herzegovina Flag", "b": "1F1E7-1F1E6", "k": [ 0, 48 ] }, "pig": { "a": "Pig Face", "b": "1F437", "j": [ "animal", "oink", "nature" ], "k": [ 13, 33 ] }, "drum_with_drumsticks": { "a": "Drum with Drumsticks", "b": "1F941", "k": [ 41, 37 ], "o": 9 }, "underage": { "a": "No One Under Eighteen Symbol", "b": "1F51E", "j": [ "18", "drink", "pub", "night", "minor", "circle" ], "k": [ 27, 32 ] }, "broccoli": { "a": "Broccoli", "b": "1F966", "j": [ "fruit", "food", "vegetable" ], "k": [ 42, 18 ], "o": 10 }, "office": { "a": "Office Building", "b": "1F3E2", "j": [ "building", "bureau", "work" ], "k": [ 11, 51 ] }, "second_place_medal": { "a": "Second Place Medal", "b": "1F948", "k": [ 41, 43 ], "o": 9 }, "neutral_face": { "a": "Neutral Face", "b": "1F610", "j": [ "indifference", "meh", ":|", "neutral" ], "k": [ 30, 40 ], "l": [ ":|", ":-|" ] }, "third_place_medal": { "a": "Third Place Medal", "b": "1F949", "k": [ 41, 44 ], "o": 9 }, "mushroom": { "a": "Mushroom", "b": "1F344", "j": [ "plant", "vegetable" ], "k": [ 7, 6 ] }, "flag-bb": { "a": "Barbados Flag", "b": "1F1E7-1F1E7", "k": [ 0, 49 ] }, "radioactive_sign": { "a": "Radioactive Sign", "b": "2622-FE0F", "c": "2622", "k": [ 47, 33 ], "o": 1 }, "pig2": { "a": "Pig", "b": "1F416", "j": [ "animal", "nature" ], "k": [ 13, 0 ] }, "expressionless": { "a": "Expressionless Face", "b": "1F611", "j": [ "face", "indifferent", "-_-", "meh", "deadpan" ], "k": [ 30, 41 ] }, "iphone": { "a": "Mobile Phone", "b": "1F4F1", "j": [ "technology", "apple", "gadgets", "dial" ], "k": [ 26, 40 ] }, "post_office": { "a": "Japanese Post Office", "b": "1F3E3", "j": [ "building", "envelope", "communication" ], "k": [ 12, 0 ] }, "european_post_office": { "a": "European Post Office", "b": "1F3E4", "j": [ "building", "email" ], "k": [ 12, 1 ] }, "soccer": { "a": "Soccer Ball", "b": "26BD", "j": [ "sports", "football" ], "k": [ 48, 26 ], "o": 5 }, "boar": { "a": "Boar", "b": "1F417", "j": [ "animal", "nature" ], "k": [ 13, 1 ] }, "peanuts": { "a": "Peanuts", "b": "1F95C", "j": [ "food", "nut" ], "k": [ 42, 8 ], "o": 9 }, "calling": { "a": "Mobile Phone with Rightwards Arrow at Left", "b": "1F4F2", "j": [ "iphone", "incoming" ], "k": [ 26, 41 ] }, "biohazard_sign": { "a": "Biohazard Sign", "b": "2623-FE0F", "c": "2623", "k": [ 47, 34 ], "o": 1 }, "flag-bd": { "a": "Bangladesh Flag", "b": "1F1E7-1F1E9", "k": [ 0, 50 ] }, "no_mouth": { "a": "Face Without Mouth", "b": "1F636", "j": [ "face", "hellokitty" ], "k": [ 31, 26 ] }, "face_with_rolling_eyes": { "a": "Face with Rolling Eyes", "b": "1F644", "k": [ 31, 40 ], "o": 8 }, "phone": { "a": "Black Telephone", "b": "260E-FE0F", "c": "260E", "j": [ "technology", "communication", "dial", "telephone" ], "k": [ 47, 21 ], "n": [ "telephone" ], "o": 1 }, "pig_nose": { "a": "Pig Nose", "b": "1F43D", "j": [ "animal", "oink" ], "k": [ 13, 39 ] }, "chestnut": { "a": "Chestnut", "b": "1F330", "j": [ "food", "squirrel" ], "k": [ 6, 38 ] }, "arrow_up": { "a": "Upwards Black Arrow", "b": "2B06-FE0F", "c": "2B06", "j": [ "blue-square", "continue", "top", "direction" ], "k": [ 50, 18 ], "o": 4 }, "hospital": { "a": "Hospital", "b": "1F3E5", "j": [ "building", "health", "surgery", "doctor" ], "k": [ 12, 2 ] }, "flag-be": { "a": "Belgium Flag", "b": "1F1E7-1F1EA", "k": [ 0, 51 ] }, "baseball": { "a": "Baseball", "b": "26BE", "j": [ "sports", "balls" ], "k": [ 48, 27 ], "o": 5 }, "smirk": { "a": "Smirking Face", "b": "1F60F", "j": [ "face", "smile", "mean", "prank", "smug", "sarcasm" ], "k": [ 30, 39 ] }, "arrow_upper_right": { "a": "North East Arrow", "b": "2197-FE0F", "c": "2197", "j": [ "blue-square", "point", "direction", "diagonal", "northeast" ], "k": [ 46, 36 ], "o": 1 }, "flag-bf": { "a": "Burkina Faso Flag", "b": "1F1E7-1F1EB", "k": [ 1, 0 ] }, "basketball": { "a": "Basketball and Hoop", "b": "1F3C0", "j": [ "sports", "balls", "NBA" ], "k": [ 9, 26 ] }, "ram": { "a": "Ram", "b": "1F40F", "j": [ "animal", "sheep", "nature" ], "k": [ 12, 45 ] }, "bank": { "a": "Bank", "b": "1F3E6", "j": [ "building", "money", "sales", "cash", "business", "enterprise" ], "k": [ 12, 3 ] }, "bread": { "a": "Bread", "b": "1F35E", "j": [ "food", "wheat", "breakfast", "toast" ], "k": [ 7, 32 ] }, "telephone_receiver": { "a": "Telephone Receiver", "b": "1F4DE", "j": [ "technology", "communication", "dial" ], "k": [ 26, 21 ] }, "croissant": { "a": "Croissant", "b": "1F950", "j": [ "food", "bread", "french" ], "k": [ 41, 48 ], "o": 9 }, "pager": { "a": "Pager", "b": "1F4DF", "j": [ "bbcall", "oldschool", "90s" ], "k": [ 26, 22 ] }, "sheep": { "a": "Sheep", "b": "1F411", "j": [ "animal", "nature", "wool", "shipit" ], "k": [ 12, 47 ] }, "arrow_right": { "a": "Black Rightwards Arrow", "b": "27A1-FE0F", "c": "27A1", "j": [ "blue-square", "next" ], "k": [ 50, 12 ], "o": 1 }, "persevere": { "a": "Persevering Face", "b": "1F623", "j": [ "face", "sick", "no", "upset", "oops" ], "k": [ 31, 7 ] }, "flag-bg": { "a": "Bulgaria Flag", "b": "1F1E7-1F1EC", "k": [ 1, 1 ] }, "volleyball": { "a": "Volleyball", "b": "1F3D0", "j": [ "sports", "balls" ], "k": [ 11, 33 ], "o": 8 }, "hotel": { "a": "Hotel", "b": "1F3E8", "j": [ "building", "accomodation", "checkin" ], "k": [ 12, 5 ] }, "arrow_lower_right": { "a": "South East Arrow", "b": "2198-FE0F", "c": "2198", "j": [ "blue-square", "direction", "diagonal", "southeast" ], "k": [ 46, 37 ], "o": 1 }, "goat": { "a": "Goat", "b": "1F410", "j": [ "animal", "nature" ], "k": [ 12, 46 ] }, "flag-bh": { "a": "Bahrain Flag", "b": "1F1E7-1F1ED", "k": [ 1, 2 ] }, "love_hotel": { "a": "Love Hotel", "b": "1F3E9", "j": [ "like", "affection", "dating" ], "k": [ 12, 6 ] }, "disappointed_relieved": { "a": "Disappointed but Relieved Face", "b": "1F625", "j": [ "face", "phew", "sweat", "nervous" ], "k": [ 31, 9 ] }, "baguette_bread": { "a": "Baguette Bread", "b": "1F956", "j": [ "food", "bread", "french" ], "k": [ 42, 2 ], "o": 9 }, "football": { "a": "American Football", "b": "1F3C8", "j": [ "sports", "balls", "NFL" ], "k": [ 10, 26 ] }, "fax": { "a": "Fax Machine", "b": "1F4E0", "j": [ "communication", "technology" ], "k": [ 26, 23 ] }, "convenience_store": { "a": "Convenience Store", "b": "1F3EA", "j": [ "building", "shopping", "groceries" ], "k": [ 12, 7 ] }, "dromedary_camel": { "a": "Dromedary Camel", "b": "1F42A", "j": [ "animal", "hot", "desert", "hump" ], "k": [ 13, 20 ] }, "arrow_down": { "a": "Downwards Black Arrow", "b": "2B07-FE0F", "c": "2B07", "j": [ "blue-square", "direction", "bottom" ], "k": [ 50, 19 ], "o": 4 }, "battery": { "a": "Battery", "b": "1F50B", "j": [ "power", "energy", "sustain" ], "k": [ 27, 13 ] }, "rugby_football": { "a": "Rugby Football", "b": "1F3C9", "j": [ "sports", "team" ], "k": [ 10, 27 ] }, "pretzel": { "a": "Pretzel", "b": "1F968", "j": [ "food", "bread", "twisted" ], "k": [ 42, 20 ], "o": 10 }, "open_mouth": { "a": "Face with Open Mouth", "b": "1F62E", "j": [ "face", "surprise", "impressed", "wow", "whoa", ":O" ], "k": [ 31, 18 ], "l": [ ":o", ":-o", ":O", ":-O" ] }, "flag-bi": { "a": "Burundi Flag", "b": "1F1E7-1F1EE", "k": [ 1, 3 ] }, "flag-bj": { "a": "Benin Flag", "b": "1F1E7-1F1EF", "k": [ 1, 4 ] }, "pancakes": { "a": "Pancakes", "b": "1F95E", "j": [ "food", "breakfast", "flapjacks", "hotcakes" ], "k": [ 42, 10 ], "o": 9 }, "school": { "a": "School", "b": "1F3EB", "j": [ "building", "student", "education", "learn", "teach" ], "k": [ 12, 8 ] }, "tennis": { "a": "Tennis Racquet and Ball", "b": "1F3BE", "j": [ "sports", "balls", "green" ], "k": [ 9, 24 ] }, "zipper_mouth_face": { "a": "Zipper-Mouth Face", "b": "1F910", "j": [ "face", "sealed", "zipper", "secret" ], "k": [ 37, 24 ], "o": 8 }, "camel": { "a": "Bactrian Camel", "b": "1F42B", "j": [ "animal", "nature", "hot", "desert", "hump" ], "k": [ 13, 21 ] }, "arrow_lower_left": { "a": "South West Arrow", "b": "2199-FE0F", "c": "2199", "j": [ "blue-square", "direction", "diagonal", "southwest" ], "k": [ 46, 38 ], "o": 1 }, "electric_plug": { "a": "Electric Plug", "b": "1F50C", "j": [ "charger", "power" ], "k": [ 27, 14 ] }, "cheese_wedge": { "a": "Cheese Wedge", "b": "1F9C0", "k": [ 42, 48 ], "o": 8 }, "hushed": { "a": "Hushed Face", "b": "1F62F", "j": [ "face", "woo", "shh" ], "k": [ 31, 19 ] }, "computer": { "a": "Personal Computer", "b": "1F4BB", "j": [ "technology", "laptop", "screen", "display", "monitor" ], "k": [ 25, 38 ] }, "giraffe_face": { "a": "Giraffe Face", "b": "1F992", "k": [ 42, 42 ], "o": 10 }, "8ball": { "a": "Billiards", "b": "1F3B1", "j": [ "pool", "hobby", "game", "luck", "magic" ], "k": [ 9, 11 ] }, "flag-bl": { "a": "St. Barthélemy Flag", "b": "1F1E7-1F1F1", "k": [ 1, 5 ] }, "arrow_left": { "a": "Leftwards Black Arrow", "b": "2B05-FE0F", "c": "2B05", "j": [ "blue-square", "previous", "back" ], "k": [ 50, 17 ], "o": 4 }, "department_store": { "a": "Department Store", "b": "1F3EC", "j": [ "building", "shopping", "mall" ], "k": [ 12, 9 ] }, "meat_on_bone": { "a": "Meat on Bone", "b": "1F356", "j": [ "good", "food", "drumstick" ], "k": [ 7, 24 ] }, "arrow_upper_left": { "a": "North West Arrow", "b": "2196-FE0F", "c": "2196", "j": [ "blue-square", "point", "direction", "diagonal", "northwest" ], "k": [ 46, 35 ], "o": 1 }, "flag-bm": { "a": "Bermuda Flag", "b": "1F1E7-1F1F2", "k": [ 1, 6 ] }, "sleepy": { "a": "Sleepy Face", "b": "1F62A", "j": [ "face", "tired", "rest", "nap" ], "k": [ 31, 14 ] }, "bowling": { "a": "Bowling", "b": "1F3B3", "j": [ "sports", "fun", "play" ], "k": [ 9, 13 ] }, "factory": { "a": "Factory", "b": "1F3ED", "j": [ "building", "industry", "pollution", "smoke" ], "k": [ 12, 10 ] }, "desktop_computer": { "a": "Desktop Computer", "b": "1F5A5-FE0F", "c": "1F5A5", "j": [ "technology", "computing", "screen" ], "k": [ 29, 51 ], "o": 7 }, "elephant": { "a": "Elephant", "b": "1F418", "j": [ "animal", "nature", "nose", "th", "circus" ], "k": [ 13, 2 ] }, "rhinoceros": { "a": "Rhinoceros", "b": "1F98F", "j": [ "animal", "nature", "horn" ], "k": [ 42, 39 ], "o": 9 }, "arrow_up_down": { "a": "Up Down Arrow", "b": "2195-FE0F", "c": "2195", "j": [ "blue-square", "direction", "way", "vertical" ], "k": [ 46, 34 ], "o": 1 }, "cricket_bat_and_ball": { "a": "Cricket Bat and Ball", "b": "1F3CF", "k": [ 11, 32 ], "o": 8 }, "printer": { "a": "Printer", "b": "1F5A8-FE0F", "c": "1F5A8", "j": [ "paper", "ink" ], "k": [ 30, 0 ], "o": 7 }, "poultry_leg": { "a": "Poultry Leg", "b": "1F357", "j": [ "food", "meat", "drumstick", "bird", "chicken", "turkey" ], "k": [ 7, 25 ] }, "tired_face": { "a": "Tired Face", "b": "1F62B", "j": [ "sick", "whine", "upset", "frustrated" ], "k": [ 31, 15 ] }, "japanese_castle": { "a": "Japanese Castle", "b": "1F3EF", "j": [ "photo", "building" ], "k": [ 12, 12 ] }, "flag-bn": { "a": "Brunei Flag", "b": "1F1E7-1F1F3", "k": [ 1, 7 ] }, "field_hockey_stick_and_ball": { "a": "Field Hockey Stick and Ball", "b": "1F3D1", "k": [ 11, 34 ], "o": 8 }, "sleeping": { "a": "Sleeping Face", "b": "1F634", "j": [ "face", "tired", "sleepy", "night", "zzz" ], "k": [ 31, 24 ] }, "left_right_arrow": { "a": "Left Right Arrow", "b": "2194-FE0F", "c": "2194", "j": [ "shape", "direction", "horizontal", "sideways" ], "k": [ 46, 33 ], "o": 1 }, "keyboard": { "a": "Keyboard", "b": "2328-FE0F", "c": "2328", "j": [ "technology", "computer", "type", "input", "text" ], "k": [ 46, 43 ], "o": 1 }, "european_castle": { "a": "European Castle", "b": "1F3F0", "j": [ "building", "royalty", "history" ], "k": [ 12, 13 ] }, "mouse": { "a": "Mouse Face", "b": "1F42D", "j": [ "animal", "nature", "cheese_wedge", "rodent" ], "k": [ 13, 23 ] }, "flag-bo": { "a": "Bolivia Flag", "b": "1F1E7-1F1F4", "k": [ 1, 8 ] }, "cut_of_meat": { "a": "Cut of Meat", "b": "1F969", "k": [ 42, 21 ], "o": 10 }, "ice_hockey_stick_and_puck": { "a": "Ice Hockey Stick and Puck", "b": "1F3D2", "k": [ 11, 35 ], "o": 8 }, "mouse2": { "a": "Mouse", "b": "1F401", "j": [ "animal", "nature", "rodent" ], "k": [ 12, 31 ] }, "three_button_mouse": { "a": "Three Button Mouse", "b": "1F5B1-FE0F", "c": "1F5B1", "k": [ 30, 1 ], "o": 7 }, "leftwards_arrow_with_hook": { "a": "Leftwards Arrow with Hook", "b": "21A9-FE0F", "c": "21A9", "j": [ "back", "return", "blue-square", "undo", "enter" ], "k": [ 46, 39 ], "o": 1 }, "bacon": { "a": "Bacon", "b": "1F953", "j": [ "food", "breakfast", "pork", "pig", "meat" ], "k": [ 41, 51 ], "o": 9 }, "relieved": { "a": "Relieved Face", "b": "1F60C", "j": [ "face", "relaxed", "phew", "massage", "happiness" ], "k": [ 30, 36 ] }, "flag-bq": { "a": "Caribbean Netherlands Flag", "b": "1F1E7-1F1F6", "k": [ 1, 9 ] }, "wedding": { "a": "Wedding", "b": "1F492", "j": [ "love", "like", "affection", "couple", "marriage", "bride", "groom" ], "k": [ 24, 44 ] }, "tokyo_tower": { "a": "Tokyo Tower", "b": "1F5FC", "j": [ "photo", "japanese" ], "k": [ 30, 20 ] }, "arrow_right_hook": { "a": "Rightwards Arrow with Hook", "b": "21AA-FE0F", "c": "21AA", "j": [ "blue-square", "return", "rotate", "direction" ], "k": [ 46, 40 ], "o": 1 }, "hamburger": { "a": "Hamburger", "b": "1F354", "j": [ "meat", "fast food", "beef", "cheeseburger", "mcdonalds", "burger king" ], "k": [ 7, 22 ] }, "stuck_out_tongue": { "a": "Face with Stuck-out Tongue", "b": "1F61B", "j": [ "face", "prank", "childish", "playful", "mischievous", "smile", "tongue" ], "k": [ 30, 51 ], "l": [ ":p", ":-p", ":P", ":-P", ":b", ":-b" ], "m": ":p" }, "trackball": { "a": "Trackball", "b": "1F5B2-FE0F", "c": "1F5B2", "j": [ "technology", "trackpad" ], "k": [ 30, 2 ], "o": 7 }, "flag-br": { "a": "Brazil Flag", "b": "1F1E7-1F1F7", "k": [ 1, 10 ] }, "rat": { "a": "Rat", "b": "1F400", "j": [ "animal", "mouse", "rodent" ], "k": [ 12, 30 ] }, "table_tennis_paddle_and_ball": { "a": "Table Tennis Paddle and Ball", "b": "1F3D3", "k": [ 11, 36 ], "o": 8 }, "minidisc": { "a": "Minidisc", "b": "1F4BD", "j": [ "technology", "record", "data", "disk", "90s" ], "k": [ 25, 40 ] }, "stuck_out_tongue_winking_eye": { "a": "Face with Stuck-out Tongue and Winking Eye", "b": "1F61C", "j": [ "face", "prank", "childish", "playful", "mischievous", "smile", "wink", "tongue" ], "k": [ 31, 0 ], "l": [ ";p", ";-p", ";b", ";-b", ";P", ";-P" ], "m": ";p" }, "fries": { "a": "French Fries", "b": "1F35F", "j": [ "chips", "snack", "fast food" ], "k": [ 7, 33 ] }, "badminton_racquet_and_shuttlecock": { "a": "Badminton Racquet and Shuttlecock", "b": "1F3F8", "k": [ 12, 22 ], "o": 8 }, "statue_of_liberty": { "a": "Statue of Liberty", "b": "1F5FD", "j": [ "american", "newyork" ], "k": [ 30, 21 ] }, "flag-bs": { "a": "Bahamas Flag", "b": "1F1E7-1F1F8", "k": [ 1, 11 ] }, "arrow_heading_up": { "a": "Arrow Pointing Rightwards Then Curving Upwards", "b": "2934-FE0F", "c": "2934", "j": [ "blue-square", "direction", "top" ], "k": [ 50, 15 ], "o": 3 }, "hamster": { "a": "Hamster Face", "b": "1F439", "j": [ "animal", "nature" ], "k": [ 13, 35 ] }, "stuck_out_tongue_closed_eyes": { "a": "Face with Stuck-out Tongue and Tightly-Closed Eyes", "b": "1F61D", "j": [ "face", "prank", "playful", "mischievous", "smile", "tongue" ], "k": [ 31, 1 ] }, "pizza": { "a": "Slice of Pizza", "b": "1F355", "j": [ "food", "party" ], "k": [ 7, 23 ] }, "boxing_glove": { "a": "Boxing Glove", "b": "1F94A", "j": [ "sports", "fighting" ], "k": [ 41, 45 ], "o": 9 }, "floppy_disk": { "a": "Floppy Disk", "b": "1F4BE", "j": [ "oldschool", "technology", "save", "90s", "80s" ], "k": [ 25, 41 ] }, "arrow_heading_down": { "a": "Arrow Pointing Rightwards Then Curving Downwards", "b": "2935-FE0F", "c": "2935", "j": [ "blue-square", "direction", "bottom" ], "k": [ 50, 16 ], "o": 3 }, "flag-bt": { "a": "Bhutan Flag", "b": "1F1E7-1F1F9", "k": [ 1, 12 ] }, "rabbit": { "a": "Rabbit Face", "b": "1F430", "j": [ "animal", "nature", "pet", "spring", "magic", "bunny" ], "k": [ 13, 26 ] }, "church": { "a": "Church", "b": "26EA", "j": [ "building", "religion", "christ" ], "k": [ 48, 37 ], "o": 5 }, "drooling_face": { "a": "Drooling Face", "b": "1F924", "j": [ "face" ], "k": [ 38, 27 ], "o": 9 }, "flag-bv": { "a": "Bouvet Island Flag", "b": "1F1E7-1F1FB", "k": [ 1, 13 ] }, "mosque": { "a": "Mosque", "b": "1F54C", "j": [ "islam", "worship", "minaret" ], "k": [ 28, 15 ], "o": 8 }, "rabbit2": { "a": "Rabbit", "b": "1F407", "j": [ "animal", "nature", "pet", "magic", "spring" ], "k": [ 12, 37 ] }, "hotdog": { "a": "Hot Dog", "b": "1F32D", "j": [ "food", "frankfurter" ], "k": [ 6, 35 ], "o": 8 }, "martial_arts_uniform": { "a": "Martial Arts Uniform", "b": "1F94B", "j": [ "judo", "karate", "taekwondo" ], "k": [ 41, 46 ], "o": 9 }, "arrows_clockwise": { "a": "Clockwise Downwards and Upwards Open Circle Arrows", "b": "1F503", "j": [ "sync", "cycle", "round", "repeat" ], "k": [ 27, 5 ] }, "cd": { "a": "Optical Disc", "b": "1F4BF", "j": [ "technology", "dvd", "disk", "disc", "90s" ], "k": [ 25, 42 ] }, "arrows_counterclockwise": { "a": "Anticlockwise Downwards and Upwards Open Circle Arrows", "b": "1F504", "j": [ "blue-square", "sync", "cycle" ], "k": [ 27, 6 ] }, "sandwich": { "a": "Sandwich", "b": "1F96A", "j": [ "food", "lunch", "bread" ], "k": [ 42, 22 ], "o": 10 }, "chipmunk": { "a": "Chipmunk", "b": "1F43F-FE0F", "c": "1F43F", "j": [ "animal", "nature", "rodent", "squirrel" ], "k": [ 13, 41 ], "o": 7 }, "synagogue": { "a": "Synagogue", "b": "1F54D", "j": [ "judaism", "worship", "temple", "jewish" ], "k": [ 28, 16 ], "o": 8 }, "unamused": { "a": "Unamused Face", "b": "1F612", "j": [ "indifference", "bored", "straight face", "serious", "sarcasm" ], "k": [ 30, 42 ], "m": ":(" }, "goal_net": { "a": "Goal Net", "b": "1F945", "j": [ "sports" ], "k": [ 41, 41 ], "o": 9 }, "flag-bw": { "a": "Botswana Flag", "b": "1F1E7-1F1FC", "k": [ 1, 14 ] }, "dvd": { "a": "Dvd", "b": "1F4C0", "j": [ "cd", "disk", "disc" ], "k": [ 25, 43 ] }, "hedgehog": { "a": "Hedgehog", "b": "1F994", "j": [ "animal", "nature", "spiny" ], "k": [ 42, 44 ], "o": 10 }, "dart": { "a": "Direct Hit", "b": "1F3AF", "j": [ "game", "play", "bar", "target", "bullseye" ], "k": [ 9, 9 ] }, "taco": { "a": "Taco", "b": "1F32E", "j": [ "food", "mexican" ], "k": [ 6, 36 ], "o": 8 }, "back": { "a": "Back with Leftwards Arrow Above", "b": "1F519", "j": [ "arrow", "words", "return" ], "k": [ 27, 27 ] }, "flag-by": { "a": "Belarus Flag", "b": "1F1E7-1F1FE", "k": [ 1, 15 ] }, "shinto_shrine": { "a": "Shinto Shrine", "b": "26E9-FE0F", "c": "26E9", "j": [ "temple", "japan", "kyoto" ], "k": [ 48, 36 ], "o": 5 }, "movie_camera": { "a": "Movie Camera", "b": "1F3A5", "j": [ "film", "record" ], "k": [ 8, 51 ] }, "sweat": { "a": "Face with Cold Sweat", "b": "1F613", "j": [ "face", "hot", "sad", "tired", "exercise" ], "k": [ 30, 43 ] }, "burrito": { "a": "Burrito", "b": "1F32F", "j": [ "food", "mexican" ], "k": [ 6, 37 ], "o": 8 }, "flag-bz": { "a": "Belize Flag", "b": "1F1E7-1F1FF", "k": [ 1, 16 ] }, "pensive": { "a": "Pensive Face", "b": "1F614", "j": [ "face", "sad", "depressed", "upset" ], "k": [ 30, 44 ] }, "kaaba": { "a": "Kaaba", "b": "1F54B", "j": [ "mecca", "mosque", "islam" ], "k": [ 28, 14 ], "o": 8 }, "film_frames": { "a": "Film Frames", "b": "1F39E-FE0F", "c": "1F39E", "k": [ 8, 44 ], "o": 7 }, "bat": { "a": "Bat", "b": "1F987", "j": [ "animal", "nature", "blind", "vampire" ], "k": [ 42, 31 ], "o": 9 }, "golf": { "a": "Flag in Hole", "b": "26F3", "j": [ "sports", "business", "flag", "hole", "summer" ], "k": [ 48, 41 ], "o": 5 }, "end": { "a": "End with Leftwards Arrow Above", "b": "1F51A", "j": [ "words", "arrow" ], "k": [ 27, 28 ] }, "film_projector": { "a": "Film Projector", "b": "1F4FD-FE0F", "c": "1F4FD", "j": [ "video", "tape", "record", "movie" ], "k": [ 27, 0 ], "o": 7 }, "bear": { "a": "Bear Face", "b": "1F43B", "j": [ "animal", "nature", "wild" ], "k": [ 13, 37 ] }, "ice_skate": { "a": "Ice Skate", "b": "26F8-FE0F", "c": "26F8", "j": [ "sports" ], "k": [ 48, 45 ], "o": 5 }, "fountain": { "a": "Fountain", "b": "26F2", "j": [ "photo", "summer", "water", "fresh" ], "k": [ 48, 40 ], "o": 5 }, "confused": { "a": "Confused Face", "b": "1F615", "j": [ "face", "indifference", "huh", "weird", "hmmm", ":/" ], "k": [ 30, 45 ], "l": [ ":\\", ":-\\", ":/", ":-/" ] }, "flag-ca": { "a": "Canada Flag", "b": "1F1E8-1F1E6", "k": [ 1, 17 ] }, "on": { "a": "On with Exclamation Mark with Left Right Arrow Above", "b": "1F51B", "j": [ "arrow", "words" ], "k": [ 27, 29 ] }, "stuffed_flatbread": { "a": "Stuffed Flatbread", "b": "1F959", "j": [ "food", "flatbread", "stuffed", "gyro" ], "k": [ 42, 5 ], "o": 9 }, "soon": { "a": "Soon with Rightwards Arrow Above", "b": "1F51C", "j": [ "arrow", "words" ], "k": [ 27, 30 ] }, "upside_down_face": { "a": "Upside-Down Face", "b": "1F643", "j": [ "face", "flipped", "silly", "smile" ], "k": [ 31, 39 ], "o": 8 }, "fishing_pole_and_fish": { "a": "Fishing Pole and Fish", "b": "1F3A3", "j": [ "food", "hobby", "summer" ], "k": [ 8, 49 ] }, "tent": { "a": "Tent", "b": "26FA", "j": [ "photo", "camping", "outdoors" ], "k": [ 49, 12 ], "o": 5 }, "clapper": { "a": "Clapper Board", "b": "1F3AC", "j": [ "movie", "film", "record" ], "k": [ 9, 6 ] }, "egg": { "a": "Egg", "b": "1F95A", "j": [ "food", "chicken", "breakfast" ], "k": [ 42, 6 ], "o": 9 }, "flag-cc": { "a": "Cocos (keeling) Islands Flag", "b": "1F1E8-1F1E8", "k": [ 1, 18 ] }, "koala": { "a": "Koala", "b": "1F428", "j": [ "animal", "nature" ], "k": [ 13, 18 ] }, "foggy": { "a": "Foggy", "b": "1F301", "j": [ "photo", "mountain" ], "k": [ 5, 45 ] }, "tv": { "a": "Television", "b": "1F4FA", "j": [ "technology", "program", "oldschool", "show", "television" ], "k": [ 26, 49 ] }, "panda_face": { "a": "Panda Face", "b": "1F43C", "j": [ "animal", "nature", "panda" ], "k": [ 13, 38 ] }, "fried_egg": { "a": "Cooking", "b": "1F373", "j": [ "food", "breakfast", "kitchen", "egg" ], "k": [ 8, 1 ], "n": [ "cooking" ] }, "top": { "a": "Top with Upwards Arrow Above", "b": "1F51D", "j": [ "words", "blue-square" ], "k": [ 27, 31 ] }, "flag-cd": { "a": "Congo - Kinshasa Flag", "b": "1F1E8-1F1E9", "k": [ 1, 19 ] }, "money_mouth_face": { "a": "Money-Mouth Face", "b": "1F911", "j": [ "face", "rich", "dollar", "money" ], "k": [ 37, 25 ], "o": 8 }, "running_shirt_with_sash": { "a": "Running Shirt with Sash", "b": "1F3BD", "j": [ "play", "pageant" ], "k": [ 9, 23 ] }, "astonished": { "a": "Astonished Face", "b": "1F632", "j": [ "face", "xox", "surprised", "poisoned" ], "k": [ 31, 22 ] }, "feet": { "a": "Paw Prints", "b": "1F43E", "k": [ 13, 40 ], "n": [ "paw_prints" ] }, "camera": { "a": "Camera", "b": "1F4F7", "j": [ "gadgets", "photography" ], "k": [ 26, 46 ] }, "flag-cf": { "a": "Central African Republic Flag", "b": "1F1E8-1F1EB", "k": [ 1, 20 ] }, "place_of_worship": { "a": "Place of Worship", "b": "1F6D0", "j": [ "religion", "church", "temple", "prayer" ], "k": [ 37, 5 ], "o": 8 }, "night_with_stars": { "a": "Night with Stars", "b": "1F303", "j": [ "evening", "city", "downtown" ], "k": [ 5, 47 ] }, "ski": { "a": "Ski and Ski Boot", "b": "1F3BF", "j": [ "sports", "winter", "cold", "snow" ], "k": [ 9, 25 ] }, "shallow_pan_of_food": { "a": "Shallow Pan of Food", "b": "1F958", "j": [ "food", "cooking", "casserole", "paella" ], "k": [ 42, 4 ], "o": 9 }, "camera_with_flash": { "a": "Camera with Flash", "b": "1F4F8", "k": [ 26, 47 ], "o": 7 }, "sunrise_over_mountains": { "a": "Sunrise over Mountains", "b": "1F304", "j": [ "view", "vacation", "photo" ], "k": [ 5, 48 ] }, "turkey": { "a": "Turkey", "b": "1F983", "j": [ "animal", "bird" ], "k": [ 42, 27 ], "o": 8 }, "white_frowning_face": { "a": "White Frowning Face", "b": "2639-FE0F", "c": "2639", "k": [ 47, 40 ], "o": 1 }, "flag-cg": { "a": "Congo - Brazzaville Flag", "b": "1F1E8-1F1EC", "k": [ 1, 21 ] }, "stew": { "a": "Pot of Food", "b": "1F372", "j": [ "food", "meat", "soup" ], "k": [ 8, 0 ] }, "sled": { "a": "Sled", "b": "1F6F7", "j": [ "sleigh", "luge", "toboggan" ], "k": [ 37, 22 ], "o": 10 }, "atom_symbol": { "a": "Atom Symbol", "b": "269B-FE0F", "c": "269B", "j": [ "science", "physics", "chemistry" ], "k": [ 48, 18 ], "o": 4 }, "curling_stone": { "a": "Curling Stone", "b": "1F94C", "j": [ "sports" ], "k": [ 41, 47 ], "o": 10 }, "slightly_frowning_face": { "a": "Slightly Frowning Face", "b": "1F641", "j": [ "face", "frowning", "disappointed", "sad", "upset" ], "k": [ 31, 37 ], "o": 7 }, "sunrise": { "a": "Sunrise", "b": "1F305", "j": [ "morning", "view", "vacation", "photo" ], "k": [ 5, 49 ] }, "om_symbol": { "a": "Om Symbol", "b": "1F549-FE0F", "c": "1F549", "k": [ 28, 12 ], "o": 7 }, "chicken": { "a": "Chicken", "b": "1F414", "j": [ "animal", "cluck", "nature", "bird" ], "k": [ 12, 50 ] }, "bowl_with_spoon": { "a": "Bowl with Spoon", "b": "1F963", "j": [ "food", "breakfast", "cereal", "oatmeal", "porridge" ], "k": [ 42, 15 ], "o": 10 }, "flag-ch": { "a": "Switzerland Flag", "b": "1F1E8-1F1ED", "k": [ 1, 22 ] }, "video_camera": { "a": "Video Camera", "b": "1F4F9", "j": [ "film", "record" ], "k": [ 26, 48 ] }, "video_game": { "a": "Video Game", "b": "1F3AE", "j": [ "play", "console", "PS4", "controller" ], "k": [ 9, 8 ] }, "rooster": { "a": "Rooster", "b": "1F413", "j": [ "animal", "nature", "chicken" ], "k": [ 12, 49 ] }, "vhs": { "a": "Videocassette", "b": "1F4FC", "j": [ "record", "video", "oldschool", "90s", "80s" ], "k": [ 26, 51 ] }, "city_sunset": { "a": "Cityscape at Dusk", "b": "1F306", "j": [ "photo", "evening", "sky", "buildings" ], "k": [ 5, 50 ] }, "confounded": { "a": "Confounded Face", "b": "1F616", "j": [ "face", "confused", "sick", "unwell", "oops", ":S" ], "k": [ 30, 46 ] }, "green_salad": { "a": "Green Salad", "b": "1F957", "j": [ "food", "healthy", "lettuce" ], "k": [ 42, 3 ], "o": 9 }, "star_of_david": { "a": "Star of David", "b": "2721-FE0F", "c": "2721", "j": [ "judaism" ], "k": [ 49, 47 ], "o": 1 }, "flag-ci": { "a": "Côte D’ivoire Flag", "b": "1F1E8-1F1EE", "k": [ 1, 23 ] }, "popcorn": { "a": "Popcorn", "b": "1F37F", "j": [ "food", "movie theater", "films", "snack" ], "k": [ 8, 13 ], "o": 8 }, "city_sunrise": { "a": "Sunset over Buildings", "b": "1F307", "j": [ "photo", "good morning", "dawn" ], "k": [ 5, 51 ] }, "disappointed": { "a": "Disappointed Face", "b": "1F61E", "j": [ "face", "sad", "upset", "depressed", ":(" ], "k": [ 31, 2 ], "l": [ "):", ":(", ":-(" ], "m": ":(" }, "mag": { "a": "Left-Pointing Magnifying Glass", "b": "1F50D", "j": [ "search", "zoom", "find", "detective" ], "k": [ 27, 15 ] }, "hatching_chick": { "a": "Hatching Chick", "b": "1F423", "j": [ "animal", "chicken", "egg", "born", "baby", "bird" ], "k": [ 13, 13 ] }, "joystick": { "a": "Joystick", "b": "1F579-FE0F", "c": "1F579", "j": [ "game", "play" ], "k": [ 29, 20 ], "o": 7 }, "wheel_of_dharma": { "a": "Wheel of Dharma", "b": "2638-FE0F", "c": "2638", "j": [ "hinduism", "buddhism", "sikhism", "jainism" ], "k": [ 47, 39 ], "o": 1 }, "flag-ck": { "a": "Cook Islands Flag", "b": "1F1E8-1F1F0", "k": [ 1, 24 ] }, "canned_food": { "a": "Canned Food", "b": "1F96B", "j": [ "food", "soup" ], "k": [ 42, 23 ], "o": 10 }, "worried": { "a": "Worried Face", "b": "1F61F", "j": [ "face", "concern", "nervous", ":(" ], "k": [ 31, 3 ] }, "baby_chick": { "a": "Baby Chick", "b": "1F424", "j": [ "animal", "chicken", "bird" ], "k": [ 13, 14 ] }, "flag-cl": { "a": "Chile Flag", "b": "1F1E8-1F1F1", "k": [ 1, 25 ] }, "game_die": { "a": "Game Die", "b": "1F3B2", "j": [ "dice", "random", "tabletop", "play", "luck" ], "k": [ 9, 12 ] }, "mag_right": { "a": "Right-Pointing Magnifying Glass", "b": "1F50E", "j": [ "search", "zoom", "find", "detective" ], "k": [ 27, 16 ] }, "yin_yang": { "a": "Yin Yang", "b": "262F-FE0F", "c": "262F", "j": [ "balance" ], "k": [ 47, 38 ], "o": 1 }, "bridge_at_night": { "a": "Bridge at Night", "b": "1F309", "j": [ "photo", "sanfrancisco" ], "k": [ 6, 1 ] }, "spades": { "a": "Black Spade Suit", "b": "2660-FE0F", "c": "2660", "j": [ "poker", "cards", "suits", "magic" ], "k": [ 48, 4 ], "o": 1 }, "hatched_chick": { "a": "Front-Facing Baby Chick", "b": "1F425", "j": [ "animal", "chicken", "baby", "bird" ], "k": [ 13, 15 ] }, "flag-cm": { "a": "Cameroon Flag", "b": "1F1E8-1F1F2", "k": [ 1, 26 ] }, "latin_cross": { "a": "Latin Cross", "b": "271D-FE0F", "c": "271D", "j": [ "christianity" ], "k": [ 49, 46 ], "o": 1 }, "triumph": { "a": "Face with Look of Triumph", "b": "1F624", "j": [ "face", "gas", "phew", "proud", "pride" ], "k": [ 31, 8 ] }, "hotsprings": { "a": "Hot Springs", "b": "2668-FE0F", "c": "2668", "j": [ "bath", "warm", "relax" ], "k": [ 48, 8 ], "o": 1 }, "bento": { "a": "Bento Box", "b": "1F371", "j": [ "food", "japanese", "box" ], "k": [ 7, 51 ] }, "microscope": { "a": "Microscope", "b": "1F52C", "j": [ "laboratory", "experiment", "zoomin", "science", "study" ], "k": [ 27, 46 ] }, "cry": { "a": "Crying Face", "b": "1F622", "j": [ "face", "tears", "sad", "depressed", "upset", ":'(" ], "k": [ 31, 6 ], "l": [ ":'(" ], "m": ":'(" }, "bird": { "a": "Bird", "b": "1F426", "j": [ "animal", "nature", "fly", "tweet", "spring" ], "k": [ 13, 16 ] }, "cn": { "a": "China Flag", "b": "1F1E8-1F1F3", "j": [ "china", "chinese", "prc", "flag", "country", "nation", "banner" ], "k": [ 1, 27 ], "n": [ "flag-cn" ] }, "telescope": { "a": "Telescope", "b": "1F52D", "j": [ "stars", "space", "zoom", "science", "astronomy" ], "k": [ 27, 47 ] }, "rice_cracker": { "a": "Rice Cracker", "b": "1F358", "j": [ "food", "japanese" ], "k": [ 7, 26 ] }, "hearts": { "a": "Black Heart Suit", "b": "2665-FE0F", "c": "2665", "j": [ "poker", "cards", "magic", "suits" ], "k": [ 48, 6 ], "o": 1 }, "orthodox_cross": { "a": "Orthodox Cross", "b": "2626-FE0F", "c": "2626", "j": [ "suppedaneum", "religion" ], "k": [ 47, 35 ], "o": 1 }, "milky_way": { "a": "Milky Way", "b": "1F30C", "j": [ "photo", "space", "stars" ], "k": [ 6, 4 ] }, "rice_ball": { "a": "Rice Ball", "b": "1F359", "j": [ "food", "japanese" ], "k": [ 7, 27 ] }, "satellite_antenna": { "a": "Satellite Antenna", "b": "1F4E1", "k": [ 26, 24 ] }, "flag-co": { "a": "Colombia Flag", "b": "1F1E8-1F1F4", "k": [ 1, 28 ] }, "carousel_horse": { "a": "Carousel Horse", "b": "1F3A0", "j": [ "photo", "carnival" ], "k": [ 8, 46 ] }, "sob": { "a": "Loudly Crying Face", "b": "1F62D", "j": [ "face", "cry", "tears", "sad", "upset", "depressed" ], "k": [ 31, 17 ], "m": ":'(" }, "diamonds": { "a": "Black Diamond Suit", "b": "2666-FE0F", "c": "2666", "j": [ "poker", "cards", "magic", "suits" ], "k": [ 48, 7 ], "o": 1 }, "star_and_crescent": { "a": "Star and Crescent", "b": "262A-FE0F", "c": "262A", "j": [ "islam" ], "k": [ 47, 36 ], "o": 1 }, "penguin": { "a": "Penguin", "b": "1F427", "j": [ "animal", "nature" ], "k": [ 13, 17 ] }, "dove_of_peace": { "a": "Dove of Peace", "b": "1F54A-FE0F", "c": "1F54A", "k": [ 28, 13 ], "o": 7 }, "flag-cp": { "a": "Clipperton Island Flag", "b": "1F1E8-1F1F5", "k": [ 1, 29 ] }, "ferris_wheel": { "a": "Ferris Wheel", "b": "1F3A1", "j": [ "photo", "carnival", "londoneye" ], "k": [ 8, 47 ] }, "clubs": { "a": "Black Club Suit", "b": "2663-FE0F", "c": "2663", "j": [ "poker", "cards", "magic", "suits" ], "k": [ 48, 5 ], "o": 1 }, "peace_symbol": { "a": "Peace Symbol", "b": "262E-FE0F", "c": "262E", "j": [ "hippie" ], "k": [ 47, 37 ], "o": 1 }, "candle": { "a": "Candle", "b": "1F56F-FE0F", "c": "1F56F", "j": [ "fire", "wax" ], "k": [ 28, 42 ], "o": 7 }, "frowning": { "a": "Frowning Face with Open Mouth", "b": "1F626", "j": [ "face", "aw", "what" ], "k": [ 31, 10 ] }, "rice": { "a": "Cooked Rice", "b": "1F35A", "j": [ "food", "china", "asian" ], "k": [ 7, 28 ] }, "flag-cr": { "a": "Costa Rica Flag", "b": "1F1E8-1F1F7", "k": [ 1, 30 ] }, "roller_coaster": { "a": "Roller Coaster", "b": "1F3A2", "j": [ "carnival", "playground", "photo", "fun" ], "k": [ 8, 48 ] }, "menorah_with_nine_branches": { "a": "Menorah with Nine Branches", "b": "1F54E", "k": [ 28, 17 ], "o": 8 }, "black_joker": { "a": "Playing Card Black Joker", "b": "1F0CF", "j": [ "poker", "cards", "game", "play", "magic" ], "k": [ 0, 15 ] }, "eagle": { "a": "Eagle", "b": "1F985", "j": [ "animal", "nature", "bird" ], "k": [ 42, 29 ], "o": 9 }, "curry": { "a": "Curry and Rice", "b": "1F35B", "j": [ "food", "spicy", "hot", "indian" ], "k": [ 7, 29 ] }, "bulb": { "a": "Electric Light Bulb", "b": "1F4A1", "j": [ "light", "electricity", "idea" ], "k": [ 25, 7 ] }, "anguished": { "a": "Anguished Face", "b": "1F627", "j": [ "face", "stunned", "nervous" ], "k": [ 31, 11 ], "l": [ "D:" ] }, "flag-cu": { "a": "Cuba Flag", "b": "1F1E8-1F1FA", "k": [ 1, 31 ] }, "barber": { "a": "Barber Pole", "b": "1F488", "j": [ "hair", "salon", "style" ], "k": [ 24, 34 ] }, "duck": { "a": "Duck", "b": "1F986", "j": [ "animal", "nature", "bird", "mallard" ], "k": [ 42, 30 ], "o": 9 }, "six_pointed_star": { "a": "Six Pointed Star with Middle Dot", "b": "1F52F", "j": [ "purple-square", "religion", "jewish", "hexagram" ], "k": [ 27, 49 ] }, "ramen": { "a": "Steaming Bowl", "b": "1F35C", "j": [ "food", "japanese", "noodle", "chopsticks" ], "k": [ 7, 30 ] }, "flashlight": { "a": "Electric Torch", "b": "1F526", "j": [ "dark", "camping", "sight", "night" ], "k": [ 27, 40 ] }, "mahjong": { "a": "Mahjong Tile Red Dragon", "b": "1F004", "j": [ "game", "play", "chinese", "kanji" ], "k": [ 0, 14 ], "o": 5 }, "fearful": { "a": "Fearful Face", "b": "1F628", "j": [ "face", "scared", "terrified", "nervous", "oops", "huh" ], "k": [ 31, 12 ] }, "aries": { "a": "Aries", "b": "2648", "j": [ "sign", "purple-square", "zodiac", "astrology" ], "k": [ 47, 44 ], "o": 1 }, "spaghetti": { "a": "Spaghetti", "b": "1F35D", "j": [ "food", "italian", "noodle" ], "k": [ 7, 31 ] }, "circus_tent": { "a": "Circus Tent", "b": "1F3AA", "j": [ "festival", "carnival", "party" ], "k": [ 9, 4 ] }, "izakaya_lantern": { "a": "Izakaya Lantern", "b": "1F3EE", "j": [ "light", "paper", "halloween", "spooky" ], "k": [ 12, 11 ], "n": [ "lantern" ] }, "flag-cv": { "a": "Cape Verde Flag", "b": "1F1E8-1F1FB", "k": [ 1, 32 ] }, "weary": { "a": "Weary Face", "b": "1F629", "j": [ "face", "tired", "sleepy", "sad", "frustrated", "upset" ], "k": [ 31, 13 ] }, "flower_playing_cards": { "a": "Flower Playing Cards", "b": "1F3B4", "j": [ "game", "sunset", "red" ], "k": [ 9, 14 ] }, "owl": { "a": "Owl", "b": "1F989", "j": [ "animal", "nature", "bird", "hoot" ], "k": [ 42, 33 ], "o": 9 }, "performing_arts": { "a": "Performing Arts", "b": "1F3AD", "j": [ "acting", "theater", "drama" ], "k": [ 9, 7 ] }, "frog": { "a": "Frog Face", "b": "1F438", "j": [ "animal", "nature", "croak", "toad" ], "k": [ 13, 34 ] }, "flag-cw": { "a": "Curaçao Flag", "b": "1F1E8-1F1FC", "k": [ 1, 33 ] }, "notebook_with_decorative_cover": { "a": "Notebook with Decorative Cover", "b": "1F4D4", "j": [ "classroom", "notes", "record", "paper", "study" ], "k": [ 26, 11 ] }, "exploding_head": { "a": "Shocked Face with Exploding Head", "b": "1F92F", "j": [ "face", "shocked", "mind", "blown" ], "k": [ 39, 3 ], "n": [ "shocked_face_with_exploding_head" ], "o": 10 }, "taurus": { "a": "Taurus", "b": "2649", "j": [ "purple-square", "sign", "zodiac", "astrology" ], "k": [ 47, 45 ], "o": 1 }, "sweet_potato": { "a": "Roasted Sweet Potato", "b": "1F360", "j": [ "food", "nature" ], "k": [ 7, 34 ] }, "closed_book": { "a": "Closed Book", "b": "1F4D5", "j": [ "read", "library", "knowledge", "textbook", "learn" ], "k": [ 26, 12 ] }, "gemini": { "a": "Gemini", "b": "264A", "j": [ "sign", "zodiac", "purple-square", "astrology" ], "k": [ 47, 46 ], "o": 1 }, "frame_with_picture": { "a": "Frame with Picture", "b": "1F5BC-FE0F", "c": "1F5BC", "k": [ 30, 3 ], "o": 7 }, "flag-cx": { "a": "Christmas Island Flag", "b": "1F1E8-1F1FD", "k": [ 1, 34 ] }, "grimacing": { "a": "Grimacing Face", "b": "1F62C", "j": [ "face", "grimace", "teeth" ], "k": [ 31, 16 ] }, "crocodile": { "a": "Crocodile", "b": "1F40A", "j": [ "animal", "nature", "reptile", "lizard", "alligator" ], "k": [ 12, 40 ] }, "oden": { "a": "Oden", "b": "1F362", "j": [ "food", "japanese" ], "k": [ 7, 36 ] }, "flag-cy": { "a": "Cyprus Flag", "b": "1F1E8-1F1FE", "k": [ 1, 35 ] }, "book": { "a": "Open Book", "b": "1F4D6", "k": [ 26, 13 ], "n": [ "open_book" ] }, "turtle": { "a": "Turtle", "b": "1F422", "j": [ "animal", "slow", "nature", "tortoise" ], "k": [ 13, 12 ] }, "art": { "a": "Artist Palette", "b": "1F3A8", "j": [ "design", "paint", "draw", "colors" ], "k": [ 9, 2 ] }, "sushi": { "a": "Sushi", "b": "1F363", "j": [ "food", "fish", "japanese", "rice" ], "k": [ 7, 37 ] }, "cold_sweat": { "a": "Face with Open Mouth and Cold Sweat", "b": "1F630", "j": [ "face", "nervous", "sweat" ], "k": [ 31, 20 ] }, "cancer": { "a": "Cancer", "b": "264B", "j": [ "sign", "zodiac", "purple-square", "astrology" ], "k": [ 47, 47 ], "o": 1 }, "fried_shrimp": { "a": "Fried Shrimp", "b": "1F364", "j": [ "food", "animal", "appetizer", "summer" ], "k": [ 7, 38 ] }, "slot_machine": { "a": "Slot Machine", "b": "1F3B0", "j": [ "bet", "gamble", "vegas", "fruit machine", "luck", "casino" ], "k": [ 9, 10 ] }, "scream": { "a": "Face Screaming in Fear", "b": "1F631", "j": [ "face", "munch", "scared", "omg" ], "k": [ 31, 21 ] }, "fear": { "a": "Face Screaming in Fear", "b": "1F631", "j": [ "face", "munch", "scared", "omg" ], "k": [ 31, 21 ] }, "green_book": { "a": "Green Book", "b": "1F4D7", "j": [ "read", "library", "knowledge", "study" ], "k": [ 26, 14 ] }, "leo": { "a": "Leo", "b": "264C", "j": [ "sign", "purple-square", "zodiac", "astrology" ], "k": [ 47, 48 ], "o": 1 }, "flag-cz": { "a": "Czechia Flag", "b": "1F1E8-1F1FF", "k": [ 1, 36 ] }, "lizard": { "a": "Lizard", "b": "1F98E", "j": [ "animal", "nature", "reptile" ], "k": [ 42, 38 ], "o": 9 }, "virgo": { "a": "Virgo", "b": "264D", "j": [ "sign", "zodiac", "purple-square", "astrology" ], "k": [ 47, 49 ], "o": 1 }, "steam_locomotive": { "a": "Steam Locomotive", "b": "1F682", "j": [ "transportation", "vehicle", "train" ], "k": [ 34, 10 ] }, "de": { "a": "Germany Flag", "b": "1F1E9-1F1EA", "j": [ "german", "nation", "flag", "country", "banner" ], "k": [ 1, 37 ], "n": [ "flag-de" ] }, "flushed": { "a": "Flushed Face", "b": "1F633", "j": [ "face", "blush", "shy", "flattered" ], "k": [ 31, 23 ] }, "blue_book": { "a": "Blue Book", "b": "1F4D8", "j": [ "read", "library", "knowledge", "learn", "study" ], "k": [ 26, 15 ] }, "snake": { "a": "Snake", "b": "1F40D", "j": [ "animal", "evil", "nature", "hiss", "python" ], "k": [ 12, 43 ] }, "fish_cake": { "a": "Fish Cake with Swirl Design", "b": "1F365", "j": [ "food", "japan", "sea", "beach", "narutomaki", "pink", "swirl", "kamaboko", "surimi", "ramen" ], "k": [ 7, 39 ] }, "railway_car": { "a": "Railway Car", "b": "1F683", "j": [ "transportation", "vehicle" ], "k": [ 34, 11 ] }, "dango": { "a": "Dango", "b": "1F361", "j": [ "food", "dessert", "sweet", "japanese", "barbecue", "meat" ], "k": [ 7, 35 ] }, "orange_book": { "a": "Orange Book", "b": "1F4D9", "j": [ "read", "library", "knowledge", "textbook", "study" ], "k": [ 26, 16 ] }, "libra": { "a": "Libra", "b": "264E", "j": [ "sign", "purple-square", "zodiac", "astrology" ], "k": [ 47, 50 ], "o": 1 }, "dragon_face": { "a": "Dragon Face", "b": "1F432", "j": [ "animal", "myth", "nature", "chinese", "green" ], "k": [ 13, 28 ] }, "flag-dg": { "a": "Diego Garcia Flag", "b": "1F1E9-1F1EC", "k": [ 1, 38 ] }, "zany_face": { "a": "Grinning Face with One Large and One Small Eye", "b": "1F92A", "k": [ 38, 50 ], "n": [ "grinning_face_with_one_large_and_one_small_eye" ], "o": 10 }, "books": { "a": "Books", "b": "1F4DA", "j": [ "literature", "library", "study" ], "k": [ 26, 17 ] }, "dragon": { "a": "Dragon", "b": "1F409", "j": [ "animal", "myth", "nature", "chinese", "green" ], "k": [ 12, 39 ] }, "flag-dj": { "a": "Djibouti Flag", "b": "1F1E9-1F1EF", "k": [ 1, 39 ] }, "dumpling": { "a": "Dumpling", "b": "1F95F", "j": [ "food", "empanada", "pierogi", "potsticker" ], "k": [ 42, 11 ], "o": 10 }, "dizzy_face": { "a": "Dizzy Face", "b": "1F635", "j": [ "spent", "unconscious", "xox", "dizzy" ], "k": [ 31, 25 ] }, "scorpius": { "a": "Scorpius", "b": "264F", "j": [ "sign", "zodiac", "purple-square", "astrology", "scorpio" ], "k": [ 47, 51 ], "o": 1 }, "bullettrain_side": { "a": "High-Speed Train", "b": "1F684", "j": [ "transportation", "vehicle" ], "k": [ 34, 12 ] }, "bullettrain_front": { "a": "High-Speed Train with Bullet Nose", "b": "1F685", "j": [ "transportation", "vehicle", "speed", "fast", "public", "travel" ], "k": [ 34, 13 ] }, "notebook": { "a": "Notebook", "b": "1F4D3", "j": [ "stationery", "record", "notes", "paper", "study" ], "k": [ 26, 10 ] }, "fortune_cookie": { "a": "Fortune Cookie", "b": "1F960", "j": [ "food", "prophecy" ], "k": [ 42, 12 ], "o": 10 }, "sagittarius": { "a": "Sagittarius", "b": "2650", "j": [ "sign", "zodiac", "purple-square", "astrology" ], "k": [ 48, 0 ], "o": 1 }, "sauropod": { "a": "Sauropod", "b": "1F995", "j": [ "animal", "nature", "dinosaur", "brachiosaurus", "brontosaurus", "diplodocus", "extinct" ], "k": [ 42, 45 ], "o": 10 }, "flag-dk": { "a": "Denmark Flag", "b": "1F1E9-1F1F0", "k": [ 1, 40 ] }, "rage": { "a": "Pouting Face", "b": "1F621", "j": [ "angry", "mad", "hate", "despise" ], "k": [ 31, 5 ] }, "ledger": { "a": "Ledger", "b": "1F4D2", "j": [ "notes", "paper" ], "k": [ 26, 9 ] }, "angry": { "a": "Angry Face", "b": "1F620", "j": [ "mad", "face", "annoyed", "frustrated" ], "k": [ 31, 4 ], "l": [ ">:(", ">:-(" ] }, "t-rex": { "a": "T-Rex", "b": "1F996", "j": [ "animal", "nature", "dinosaur", "tyrannosaurus", "extinct" ], "k": [ 42, 46 ], "o": 10 }, "capricorn": { "a": "Capricorn", "b": "2651", "j": [ "sign", "zodiac", "purple-square", "astrology" ], "k": [ 48, 1 ], "o": 1 }, "takeout_box": { "a": "Takeout Box", "b": "1F961", "j": [ "food", "leftovers" ], "k": [ 42, 13 ], "o": 10 }, "flag-dm": { "a": "Dominica Flag", "b": "1F1E9-1F1F2", "k": [ 1, 41 ] }, "train2": { "a": "Train", "b": "1F686", "j": [ "transportation", "vehicle" ], "k": [ 34, 14 ] }, "page_with_curl": { "a": "Page with Curl", "b": "1F4C3", "j": [ "documents", "office", "paper" ], "k": [ 25, 46 ] }, "whale": { "a": "Spouting Whale", "b": "1F433", "j": [ "animal", "nature", "sea", "ocean" ], "k": [ 13, 29 ] }, "face_with_symbols_on_mouth": { "a": "Serious Face with Symbols Covering Mouth", "b": "1F92C", "k": [ 39, 0 ], "n": [ "serious_face_with_symbols_covering_mouth" ], "o": 10 }, "flag-do": { "a": "Dominican Republic Flag", "b": "1F1E9-1F1F4", "k": [ 1, 42 ] }, "metro": { "a": "Metro", "b": "1F687", "j": [ "transportation", "blue-square", "mrt", "underground", "tube" ], "k": [ 34, 15 ] }, "icecream": { "a": "Soft Ice Cream", "b": "1F366", "j": [ "food", "hot", "dessert", "summer" ], "k": [ 7, 40 ] }, "aquarius": { "a": "Aquarius", "b": "2652", "j": [ "sign", "purple-square", "zodiac", "astrology" ], "k": [ 48, 2 ], "o": 1 }, "flag-dz": { "a": "Algeria Flag", "b": "1F1E9-1F1FF", "k": [ 1, 43 ] }, "whale2": { "a": "Whale", "b": "1F40B", "j": [ "animal", "nature", "sea", "ocean" ], "k": [ 12, 41 ] }, "mask": { "a": "Face with Medical Mask", "b": "1F637", "j": [ "face", "sick", "ill", "disease" ], "k": [ 31, 27 ] }, "ill": { "a": "Face with Medical Mask", "b": "1F637", "j": [ "face", "sick", "ill", "disease" ], "k": [ 31, 27 ] }, "scroll": { "a": "Scroll", "b": "1F4DC", "j": [ "documents", "ancient", "history", "paper" ], "k": [ 26, 19 ] }, "shaved_ice": { "a": "Shaved Ice", "b": "1F367", "j": [ "hot", "dessert", "summer" ], "k": [ 7, 41 ] }, "pisces": { "a": "Pisces", "b": "2653", "j": [ "purple-square", "sign", "zodiac", "astrology" ], "k": [ 48, 3 ], "o": 1 }, "light_rail": { "a": "Light Rail", "b": "1F688", "j": [ "transportation", "vehicle" ], "k": [ 34, 16 ] }, "dolphin": { "a": "Dolphin", "b": "1F42C", "j": [ "animal", "nature", "fish", "sea", "ocean", "flipper", "fins", "beach" ], "k": [ 13, 22 ], "n": [ "flipper" ] }, "face_with_thermometer": { "a": "Face with Thermometer", "b": "1F912", "j": [ "sick", "temperature", "thermometer", "cold", "fever" ], "k": [ 37, 26 ], "o": 8 }, "flag-ea": { "a": "Ceuta & Melilla Flag", "b": "1F1EA-1F1E6", "k": [ 1, 44 ] }, "ophiuchus": { "a": "Ophiuchus", "b": "26CE", "j": [ "sign", "purple-square", "constellation", "astrology" ], "k": [ 48, 31 ] }, "station": { "a": "Station", "b": "1F689", "j": [ "transportation", "vehicle", "public" ], "k": [ 34, 17 ] }, "ice_cream": { "a": "Ice Cream", "b": "1F368", "j": [ "food", "hot", "dessert" ], "k": [ 7, 42 ] }, "page_facing_up": { "a": "Page Facing Up", "b": "1F4C4", "j": [ "documents", "office", "paper", "information" ], "k": [ 25, 47 ] }, "doughnut": { "a": "Doughnut", "b": "1F369", "j": [ "food", "dessert", "snack", "sweet", "donut" ], "k": [ 7, 43 ] }, "face_with_head_bandage": { "a": "Face with Head-Bandage", "b": "1F915", "j": [ "injured", "clumsy", "bandage", "hurt" ], "k": [ 37, 29 ], "o": 8 }, "fish": { "a": "Fish", "b": "1F41F", "j": [ "animal", "food", "nature" ], "k": [ 13, 9 ] }, "newspaper": { "a": "Newspaper", "b": "1F4F0", "j": [ "press", "headline" ], "k": [ 26, 39 ] }, "tram": { "a": "Tram", "b": "1F68A", "j": [ "transportation", "vehicle" ], "k": [ 34, 18 ] }, "flag-ec": { "a": "Ecuador Flag", "b": "1F1EA-1F1E8", "k": [ 1, 45 ] }, "twisted_rightwards_arrows": { "a": "Twisted Rightwards Arrows", "b": "1F500", "j": [ "blue-square", "shuffle", "music", "random" ], "k": [ 27, 2 ] }, "flag-ee": { "a": "Estonia Flag", "b": "1F1EA-1F1EA", "k": [ 1, 46 ] }, "cookie": { "a": "Cookie", "b": "1F36A", "j": [ "food", "snack", "oreo", "chocolate", "sweet", "dessert" ], "k": [ 7, 44 ] }, "monorail": { "a": "Monorail", "b": "1F69D", "j": [ "transportation", "vehicle" ], "k": [ 34, 37 ] }, "tropical_fish": { "a": "Tropical Fish", "b": "1F420", "j": [ "animal", "swim", "ocean", "beach", "nemo" ], "k": [ 13, 10 ] }, "rolled_up_newspaper": { "a": "Rolled Up Newspaper", "b": "1F5DE-FE0F", "c": "1F5DE", "k": [ 30, 12 ], "o": 7 }, "nauseated_face": { "a": "Nauseated Face", "b": "1F922", "j": [ "face", "vomit", "gross", "green", "sick", "throw up", "ill" ], "k": [ 38, 25 ], "o": 9 }, "repeat": { "a": "Clockwise Rightwards and Leftwards Open Circle Arrows", "b": "1F501", "j": [ "loop", "record" ], "k": [ 27, 3 ] }, "bookmark_tabs": { "a": "Bookmark Tabs", "b": "1F4D1", "j": [ "favorite", "save", "order", "tidy" ], "k": [ 26, 8 ] }, "repeat_one": { "a": "Clockwise Rightwards and Leftwards Open Circle Arrows with Circled One Overlay", "b": "1F502", "j": [ "blue-square", "loop" ], "k": [ 27, 4 ] }, "flag-eg": { "a": "Egypt Flag", "b": "1F1EA-1F1EC", "k": [ 1, 47 ] }, "mountain_railway": { "a": "Mountain Railway", "b": "1F69E", "j": [ "transportation", "vehicle" ], "k": [ 34, 38 ] }, "birthday": { "a": "Birthday Cake", "b": "1F382", "j": [ "food", "dessert", "cake" ], "k": [ 8, 16 ] }, "blowfish": { "a": "Blowfish", "b": "1F421", "j": [ "animal", "nature", "food", "sea", "ocean" ], "k": [ 13, 11 ] }, "face_vomiting": { "a": "Face with Open Mouth Vomiting", "b": "1F92E", "k": [ 39, 2 ], "n": [ "face_with_open_mouth_vomiting" ], "o": 10 }, "arrow_forward": { "a": "Black Right-Pointing Triangle", "b": "25B6-FE0F", "c": "25B6", "j": [ "blue-square", "right", "direction", "play" ], "k": [ 47, 10 ], "o": 1 }, "bookmark": { "a": "Bookmark", "b": "1F516", "j": [ "favorite", "label", "save" ], "k": [ 27, 24 ] }, "flag-eh": { "a": "Western Sahara Flag", "b": "1F1EA-1F1ED", "k": [ 1, 48 ] }, "shark": { "a": "Shark", "b": "1F988", "j": [ "animal", "nature", "fish", "sea", "ocean", "jaws", "fins", "beach" ], "k": [ 42, 32 ], "o": 9 }, "train": { "a": "Tram Car", "b": "1F68B", "j": [ "transportation", "vehicle", "carriage", "public", "travel" ], "k": [ 34, 19 ] }, "sneezing_face": { "a": "Sneezing Face", "b": "1F927", "j": [ "face", "gesundheit", "sneeze", "sick", "allergy" ], "k": [ 38, 47 ], "o": 9 }, "sneezing": { "a": "Sneezing Face", "b": "1F927", "j": [ "face", "gesundheit", "sneeze", "sick", "allergy" ], "k": [ 38, 47 ], "o": 9 }, "cake": { "a": "Shortcake", "b": "1F370", "j": [ "food", "dessert" ], "k": [ 7, 50 ] }, "bus": { "a": "Bus", "b": "1F68C", "j": [ "car", "vehicle", "transportation" ], "k": [ 34, 20 ] }, "pie": { "a": "Pie", "b": "1F967", "j": [ "food", "dessert", "pastry" ], "k": [ 42, 19 ], "o": 10 }, "innocent": { "a": "Smiling Face with Halo", "b": "1F607", "j": [ "face", "angel", "heaven", "halo" ], "k": [ 30, 31 ] }, "fast_forward": { "a": "Black Right-Pointing Double Triangle", "b": "23E9", "j": [ "blue-square", "play", "speed", "continue" ], "k": [ 46, 45 ] }, "label": { "a": "Label", "b": "1F3F7-FE0F", "c": "1F3F7", "j": [ "sale", "tag" ], "k": [ 12, 21 ], "o": 7 }, "octopus": { "a": "Octopus", "b": "1F419", "j": [ "animal", "creature", "ocean", "sea", "nature", "beach" ], "k": [ 13, 3 ] }, "flag-er": { "a": "Eritrea Flag", "b": "1F1EA-1F1F7", "k": [ 1, 49 ] }, "black_right_pointing_double_triangle_with_vertical_bar": { "a": "Black Right Pointing Double Triangle with Vertical Bar", "b": "23ED-FE0F", "c": "23ED", "k": [ 46, 49 ] }, "chocolate_bar": { "a": "Chocolate Bar", "b": "1F36B", "j": [ "food", "snack", "dessert", "sweet" ], "k": [ 7, 45 ] }, "oncoming_bus": { "a": "Oncoming Bus", "b": "1F68D", "j": [ "vehicle", "transportation" ], "k": [ 34, 21 ] }, "shell": { "a": "Spiral Shell", "b": "1F41A", "j": [ "nature", "sea", "beach" ], "k": [ 13, 4 ] }, "face_with_cowboy_hat": { "a": "Face with Cowboy Hat", "b": "1F920", "k": [ 38, 23 ], "o": 9 }, "moneybag": { "a": "Money Bag", "b": "1F4B0", "j": [ "dollar", "payment", "coins", "sale" ], "k": [ 25, 27 ] }, "es": { "a": "Spain Flag", "b": "1F1EA-1F1F8", "j": [ "spain", "flag", "nation", "country", "banner" ], "k": [ 1, 50 ], "n": [ "flag-es" ] }, "crab": { "a": "Crab", "b": "1F980", "j": [ "animal", "crustacean" ], "k": [ 42, 24 ], "o": 8 }, "yen": { "a": "Banknote with Yen Sign", "b": "1F4B4", "j": [ "money", "sales", "japanese", "dollar", "currency" ], "k": [ 25, 31 ] }, "flag-et": { "a": "Ethiopia Flag", "b": "1F1EA-1F1F9", "k": [ 1, 51 ] }, "clown_face": { "a": "Clown Face", "b": "1F921", "j": [ "face" ], "k": [ 38, 24 ], "o": 9 }, "black_right_pointing_triangle_with_double_vertical_bar": { "a": "Black Right Pointing Triangle with Double Vertical Bar", "b": "23EF-FE0F", "c": "23EF", "k": [ 46, 51 ] }, "trolleybus": { "a": "Trolleybus", "b": "1F68E", "j": [ "bart", "transportation", "vehicle" ], "k": [ 34, 22 ] }, "candy": { "a": "Candy", "b": "1F36C", "j": [ "snack", "dessert", "sweet", "lolly" ], "k": [ 7, 46 ] }, "lying_face": { "a": "Lying Face", "b": "1F925", "j": [ "face", "lie", "pinocchio" ], "k": [ 38, 28 ], "o": 9 }, "arrow_backward": { "a": "Black Left-Pointing Triangle", "b": "25C0-FE0F", "c": "25C0", "j": [ "blue-square", "left", "direction" ], "k": [ 47, 11 ], "o": 1 }, "dollar": { "a": "Banknote with Dollar Sign", "b": "1F4B5", "j": [ "money", "sales", "bill", "currency" ], "k": [ 25, 32 ] }, "shrimp": { "a": "Shrimp", "b": "1F990", "j": [ "animal", "ocean", "nature", "seafood" ], "k": [ 42, 40 ], "o": 9 }, "minibus": { "a": "Minibus", "b": "1F690", "j": [ "vehicle", "car", "transportation" ], "k": [ 34, 24 ] }, "flag-eu": { "a": "European Union Flag", "b": "1F1EA-1F1FA", "k": [ 2, 0 ] }, "lollipop": { "a": "Lollipop", "b": "1F36D", "j": [ "food", "snack", "candy", "sweet" ], "k": [ 7, 47 ] }, "squid": { "a": "Squid", "b": "1F991", "j": [ "animal", "nature", "ocean", "sea" ], "k": [ 42, 41 ], "o": 9 }, "euro": { "a": "Banknote with Euro Sign", "b": "1F4B6", "j": [ "money", "sales", "dollar", "currency" ], "k": [ 25, 33 ] }, "flag-fi": { "a": "Finland Flag", "b": "1F1EB-1F1EE", "k": [ 2, 1 ] }, "ambulance": { "a": "Ambulance", "b": "1F691", "j": [ "health", "911", "hospital" ], "k": [ 34, 25 ] }, "custard": { "a": "Custard", "b": "1F36E", "j": [ "dessert", "food" ], "k": [ 7, 48 ] }, "shushing_face": { "a": "Face with Finger Covering Closed Lips", "b": "1F92B", "k": [ 38, 51 ], "n": [ "face_with_finger_covering_closed_lips" ], "o": 10 }, "rewind": { "a": "Black Left-Pointing Double Triangle", "b": "23EA", "j": [ "play", "blue-square" ], "k": [ 46, 46 ] }, "black_left_pointing_double_triangle_with_vertical_bar": { "a": "Black Left Pointing Double Triangle with Vertical Bar", "b": "23EE-FE0F", "c": "23EE", "k": [ 46, 50 ] }, "face_with_hand_over_mouth": { "a": "Smiling Face with Smiling Eyes and Hand Covering Mouth", "b": "1F92D", "k": [ 39, 1 ], "n": [ "smiling_face_with_smiling_eyes_and_hand_covering_mouth" ], "o": 10 }, "flag-fj": { "a": "Fiji Flag", "b": "1F1EB-1F1EF", "k": [ 2, 2 ] }, "honey_pot": { "a": "Honey Pot", "b": "1F36F", "j": [ "bees", "sweet", "kitchen" ], "k": [ 7, 49 ] }, "snail": { "a": "Snail", "b": "1F40C", "j": [ "slow", "animal", "shell" ], "k": [ 12, 42 ] }, "pound": { "a": "Banknote with Pound Sign", "b": "1F4B7", "j": [ "british", "sterling", "money", "sales", "bills", "uk", "england", "currency" ], "k": [ 25, 34 ] }, "fire_engine": { "a": "Fire Engine", "b": "1F692", "j": [ "transportation", "cars", "vehicle" ], "k": [ 34, 26 ] }, "baby_bottle": { "a": "Baby Bottle", "b": "1F37C", "j": [ "food", "container", "milk" ], "k": [ 8, 10 ] }, "flag-fk": { "a": "Falkland Islands Flag", "b": "1F1EB-1F1F0", "k": [ 2, 3 ] }, "butterfly": { "a": "Butterfly", "b": "1F98B", "j": [ "animal", "insect", "nature", "caterpillar" ], "k": [ 42, 35 ], "o": 9 }, "money_with_wings": { "a": "Money with Wings", "b": "1F4B8", "j": [ "dollar", "bills", "payment", "sale" ], "k": [ 25, 35 ] }, "face_with_monocle": { "a": "Face with Monocle", "b": "1F9D0", "k": [ 42, 49 ], "o": 10 }, "police_car": { "a": "Police Car", "b": "1F693", "j": [ "vehicle", "cars", "transportation", "law", "legal", "enforcement" ], "k": [ 34, 27 ] }, "arrow_up_small": { "a": "Up-Pointing Small Red Triangle", "b": "1F53C", "j": [ "blue-square", "triangle", "direction", "point", "forward", "top" ], "k": [ 28, 10 ] }, "flag-fm": { "a": "Micronesia Flag", "b": "1F1EB-1F1F2", "k": [ 2, 4 ] }, "glass_of_milk": { "a": "Glass of Milk", "b": "1F95B", "k": [ 42, 7 ], "o": 9 }, "credit_card": { "a": "Credit Card", "b": "1F4B3", "j": [ "money", "sales", "dollar", "bill", "payment", "shopping" ], "k": [ 25, 30 ] }, "oncoming_police_car": { "a": "Oncoming Police Car", "b": "1F694", "j": [ "vehicle", "law", "legal", "enforcement", "911" ], "k": [ 34, 28 ] }, "bug": { "a": "Bug", "b": "1F41B", "j": [ "animal", "insect", "nature", "worm" ], "k": [ 13, 5 ] }, "nerd_face": { "a": "Nerd Face", "b": "1F913", "j": [ "face", "nerdy", "geek", "dork" ], "k": [ 37, 27 ], "o": 8 }, "arrow_double_up": { "a": "Black Up-Pointing Double Triangle", "b": "23EB", "j": [ "blue-square", "direction", "top" ], "k": [ 46, 47 ] }, "chart": { "a": "Chart with Upwards Trend and Yen Sign", "b": "1F4B9", "j": [ "green-square", "graph", "presentation", "stats" ], "k": [ 25, 36 ] }, "flag-fo": { "a": "Faroe Islands Flag", "b": "1F1EB-1F1F4", "k": [ 2, 5 ] }, "ant": { "a": "Ant", "b": "1F41C", "j": [ "animal", "insect", "nature", "bug" ], "k": [ 13, 6 ] }, "arrow_down_small": { "a": "Down-Pointing Small Red Triangle", "b": "1F53D", "j": [ "blue-square", "direction", "bottom" ], "k": [ 28, 11 ] }, "smiling_imp": { "a": "Smiling Face with Horns", "b": "1F608", "j": [ "devil", "horns" ], "k": [ 30, 32 ] }, "taxi": { "a": "Taxi", "b": "1F695", "j": [ "uber", "vehicle", "cars", "transportation" ], "k": [ 34, 29 ] }, "coffee": { "a": "Hot Beverage", "b": "2615", "j": [ "beverage", "caffeine", "latte", "espresso" ], "k": [ 47, 24 ], "o": 4 }, "fr": { "a": "France Flag", "b": "1F1EB-1F1F7", "j": [ "banner", "flag", "nation", "france", "french", "country" ], "k": [ 2, 6 ], "n": [ "flag-fr" ] }, "oncoming_taxi": { "a": "Oncoming Taxi", "b": "1F696", "j": [ "vehicle", "cars", "uber" ], "k": [ 34, 30 ] }, "arrow_double_down": { "a": "Black Down-Pointing Double Triangle", "b": "23EC", "j": [ "blue-square", "direction", "bottom" ], "k": [ 46, 48 ] }, "imp": { "a": "Imp", "b": "1F47F", "j": [ "devil", "angry", "horns" ], "k": [ 22, 51 ] }, "currency_exchange": { "a": "Currency Exchange", "b": "1F4B1", "j": [ "money", "sales", "dollar", "travel" ], "k": [ 25, 28 ] }, "tea": { "a": "Teacup Without Handle", "b": "1F375", "j": [ "drink", "bowl", "breakfast", "green", "british" ], "k": [ 8, 3 ] }, "bee": { "a": "Honeybee", "b": "1F41D", "k": [ 13, 7 ], "n": [ "honeybee" ] }, "heavy_dollar_sign": { "a": "Heavy Dollar Sign", "b": "1F4B2", "j": [ "money", "sales", "payment", "currency", "buck" ], "k": [ 25, 29 ] }, "car": { "a": "Automobile", "b": "1F697", "k": [ 34, 31 ], "n": [ "red_car" ] }, "sake": { "a": "Sake Bottle and Cup", "b": "1F376", "j": [ "wine", "drink", "drunk", "beverage", "japanese", "alcohol", "booze" ], "k": [ 8, 4 ] }, "flag-ga": { "a": "Gabon Flag", "b": "1F1EC-1F1E6", "k": [ 2, 7 ] }, "beetle": { "a": "Lady Beetle", "b": "1F41E", "j": [ "animal", "insect", "nature", "ladybug" ], "k": [ 13, 8 ] }, "japanese_ogre": { "a": "Japanese Ogre", "b": "1F479", "j": [ "monster", "red", "mask", "halloween", "scary", "creepy", "devil", "demon", "japanese", "ogre" ], "k": [ 22, 40 ] }, "double_vertical_bar": { "a": "Double Vertical Bar", "b": "23F8-FE0F", "c": "23F8", "k": [ 47, 4 ], "o": 7 }, "champagne": { "a": "Bottle with Popping Cork", "b": "1F37E", "j": [ "drink", "wine", "bottle", "celebration" ], "k": [ 8, 12 ], "o": 8 }, "japanese_goblin": { "a": "Japanese Goblin", "b": "1F47A", "j": [ "red", "evil", "mask", "monster", "scary", "creepy", "japanese", "goblin" ], "k": [ 22, 41 ] }, "black_square_for_stop": { "a": "Black Square for Stop", "b": "23F9-FE0F", "c": "23F9", "k": [ 47, 5 ], "o": 7 }, "oncoming_automobile": { "a": "Oncoming Automobile", "b": "1F698", "j": [ "car", "vehicle", "transportation" ], "k": [ 34, 32 ] }, "email": { "a": "Envelope", "b": "2709-FE0F", "c": "2709", "j": [ "letter", "postal", "inbox", "communication" ], "k": [ 49, 17 ], "n": [ "envelope" ], "o": 1 }, "cricket": { "a": "Cricket", "b": "1F997", "j": [ "sports" ], "k": [ 42, 47 ], "o": 10 }, "gb": { "a": "United Kingdom Flag", "b": "1F1EC-1F1E7", "k": [ 2, 8 ], "n": [ "uk", "flag-gb" ] }, "black_circle_for_record": { "a": "Black Circle for Record", "b": "23FA-FE0F", "c": "23FA", "k": [ 47, 6 ], "o": 7 }, "flag-gd": { "a": "Grenada Flag", "b": "1F1EC-1F1E9", "k": [ 2, 9 ] }, "spider": { "a": "Spider", "b": "1F577-FE0F", "c": "1F577", "j": [ "animal", "arachnid" ], "k": [ 29, 18 ], "o": 7 }, "blue_car": { "a": "Recreational Vehicle", "b": "1F699", "j": [ "transportation", "vehicle" ], "k": [ 34, 33 ] }, "skull": { "a": "Skull", "b": "1F480", "j": [ "dead", "skeleton", "creepy", "death" ], "k": [ 23, 0 ] }, "e-mail": { "a": "E-Mail Symbol", "b": "1F4E7", "j": [ "communication", "inbox" ], "k": [ 26, 30 ] }, "wine_glass": { "a": "Wine Glass", "b": "1F377", "j": [ "drink", "beverage", "drunk", "alcohol", "booze" ], "k": [ 8, 5 ] }, "spider_web": { "a": "Spider Web", "b": "1F578-FE0F", "c": "1F578", "j": [ "animal", "insect", "arachnid", "silk" ], "k": [ 29, 19 ], "o": 7 }, "cocktail": { "a": "Cocktail Glass", "b": "1F378", "j": [ "drink", "drunk", "alcohol", "beverage", "booze", "mojito" ], "k": [ 8, 6 ] }, "skull_and_crossbones": { "a": "Skull and Crossbones", "b": "2620-FE0F", "c": "2620", "j": [ "poison", "danger", "deadly", "scary", "death", "pirate", "evil" ], "k": [ 47, 32 ], "o": 1 }, "flag-ge": { "a": "Georgia Flag", "b": "1F1EC-1F1EA", "k": [ 2, 10 ] }, "eject": { "a": "Eject", "b": "23CF-FE0F", "c": "23CF", "k": [ 46, 44 ], "o": 4 }, "truck": { "a": "Delivery Truck", "b": "1F69A", "j": [ "cars", "transportation" ], "k": [ 34, 34 ] }, "incoming_envelope": { "a": "Incoming Envelope", "b": "1F4E8", "j": [ "email", "inbox" ], "k": [ 26, 31 ] }, "tropical_drink": { "a": "Tropical Drink", "b": "1F379", "j": [ "beverage", "cocktail", "summer", "beach", "alcohol", "booze", "mojito" ], "k": [ 8, 7 ] }, "scorpion": { "a": "Scorpion", "b": "1F982", "j": [ "animal", "arachnid" ], "k": [ 42, 26 ], "o": 8 }, "cinema": { "a": "Cinema", "b": "1F3A6", "j": [ "blue-square", "record", "film", "movie", "curtain", "stage", "theater" ], "k": [ 9, 0 ] }, "articulated_lorry": { "a": "Articulated Lorry", "b": "1F69B", "j": [ "vehicle", "cars", "transportation", "express" ], "k": [ 34, 35 ] }, "envelope_with_arrow": { "a": "Envelope with Downwards Arrow Above", "b": "1F4E9", "j": [ "email", "communication" ], "k": [ 26, 32 ] }, "ghost": { "a": "Ghost", "b": "1F47B", "j": [ "halloween", "spooky", "scary" ], "k": [ 22, 42 ] }, "flag-gf": { "a": "French Guiana Flag", "b": "1F1EC-1F1EB", "k": [ 2, 11 ] }, "bouquet": { "a": "Bouquet", "b": "1F490", "j": [ "flowers", "nature", "spring" ], "k": [ 24, 42 ] }, "tractor": { "a": "Tractor", "b": "1F69C", "j": [ "vehicle", "car", "farming", "agriculture" ], "k": [ 34, 36 ] }, "beer": { "a": "Beer Mug", "b": "1F37A", "j": [ "relax", "beverage", "drink", "drunk", "party", "pub", "summer", "alcohol", "booze" ], "k": [ 8, 8 ] }, "outbox_tray": { "a": "Outbox Tray", "b": "1F4E4", "j": [ "inbox", "email" ], "k": [ 26, 27 ] }, "low_brightness": { "a": "Low Brightness Symbol", "b": "1F505", "j": [ "sun", "afternoon", "warm", "summer" ], "k": [ 27, 7 ] }, "alien": { "a": "Extraterrestrial Alien", "b": "1F47D", "j": [ "UFO", "paul", "weird", "outer_space" ], "k": [ 22, 49 ] }, "flag-gg": { "a": "Guernsey Flag", "b": "1F1EC-1F1EC", "k": [ 2, 12 ] }, "cherry_blossom": { "a": "Cherry Blossom", "b": "1F338", "j": [ "nature", "plant", "spring", "flower" ], "k": [ 6, 46 ] }, "inbox_tray": { "a": "Inbox Tray", "b": "1F4E5", "j": [ "email", "documents" ], "k": [ 26, 28 ] }, "flag-gh": { "a": "Ghana Flag", "b": "1F1EC-1F1ED", "k": [ 2, 13 ] }, "bike": { "a": "Bicycle", "b": "1F6B2", "j": [ "sports", "bicycle", "exercise", "hipster" ], "k": [ 35, 23 ] }, "space_invader": { "a": "Alien Monster", "b": "1F47E", "j": [ "game", "arcade", "play" ], "k": [ 22, 50 ] }, "beers": { "a": "Clinking Beer Mugs", "b": "1F37B", "j": [ "relax", "beverage", "drink", "drunk", "party", "pub", "summer", "alcohol", "booze" ], "k": [ 8, 9 ] }, "high_brightness": { "a": "High Brightness Symbol", "b": "1F506", "j": [ "sun", "light" ], "k": [ 27, 8 ] }, "package": { "a": "Package", "b": "1F4E6", "j": [ "mail", "gift", "cardboard", "box", "moving" ], "k": [ 26, 29 ] }, "scooter": { "a": "Scooter", "b": "1F6F4", "k": [ 37, 19 ], "o": 9 }, "white_flower": { "a": "White Flower", "b": "1F4AE", "j": [ "japanese", "spring" ], "k": [ 25, 25 ] }, "clinking_glasses": { "a": "Clinking Glasses", "b": "1F942", "j": [ "beverage", "drink", "party", "alcohol", "celebrate", "cheers" ], "k": [ 41, 38 ], "o": 9 }, "robot_face": { "a": "Robot Face", "b": "1F916", "k": [ 37, 30 ], "o": 8 }, "signal_strength": { "a": "Antenna with Bars", "b": "1F4F6", "j": [ "blue-square", "reception", "phone", "internet", "connection", "wifi", "bluetooth", "bars" ], "k": [ 26, 45 ] }, "flag-gi": { "a": "Gibraltar Flag", "b": "1F1EC-1F1EE", "k": [ 2, 14 ] }, "flag-gl": { "a": "Greenland Flag", "b": "1F1EC-1F1F1", "k": [ 2, 15 ] }, "motor_scooter": { "a": "Motor Scooter", "b": "1F6F5", "j": [ "vehicle", "vespa", "sasha" ], "k": [ 37, 20 ], "o": 9 }, "mailbox": { "a": "Closed Mailbox with Raised Flag", "b": "1F4EB", "j": [ "email", "inbox", "communication" ], "k": [ 26, 34 ] }, "vibration_mode": { "a": "Vibration Mode", "b": "1F4F3", "j": [ "orange-square", "phone" ], "k": [ 26, 42 ] }, "hankey": { "a": "Pile of Poo", "b": "1F4A9", "k": [ 25, 15 ], "n": [ "poop", "shit" ] }, "rosette": { "a": "Rosette", "b": "1F3F5-FE0F", "c": "1F3F5", "j": [ "flower", "decoration", "military" ], "k": [ 12, 20 ], "o": 7 }, "tumbler_glass": { "a": "Tumbler Glass", "b": "1F943", "j": [ "drink", "beverage", "drunk", "alcohol", "liquor", "booze", "bourbon", "scotch", "whisky", "glass", "shot" ], "k": [ 41, 39 ], "o": 9 }, "cup_with_straw": { "a": "Cup with Straw", "b": "1F964", "j": [ "drink", "soda" ], "k": [ 42, 16 ], "o": 10 }, "flag-gm": { "a": "Gambia Flag", "b": "1F1EC-1F1F2", "k": [ 2, 16 ] }, "mailbox_closed": { "a": "Closed Mailbox with Lowered Flag", "b": "1F4EA", "j": [ "email", "communication", "inbox" ], "k": [ 26, 33 ] }, "mobile_phone_off": { "a": "Mobile Phone off", "b": "1F4F4", "j": [ "mute", "orange-square", "silence", "quiet" ], "k": [ 26, 43 ] }, "busstop": { "a": "Bus Stop", "b": "1F68F", "j": [ "transportation", "wait" ], "k": [ 34, 23 ] }, "smiley_cat": { "a": "Smiling Cat Face with Open Mouth", "b": "1F63A", "j": [ "animal", "cats", "happy", "smile" ], "k": [ 31, 30 ] }, "rose": { "a": "Rose", "b": "1F339", "j": [ "flowers", "valentines", "love", "spring" ], "k": [ 6, 47 ] }, "motorway": { "a": "Motorway", "b": "1F6E3-FE0F", "c": "1F6E3", "j": [ "road", "cupertino", "interstate", "highway" ], "k": [ 37, 11 ], "o": 7 }, "smile_cat": { "a": "Grinning Cat Face with Smiling Eyes", "b": "1F638", "j": [ "animal", "cats", "smile" ], "k": [ 31, 28 ] }, "flag-gn": { "a": "Guinea Flag", "b": "1F1EC-1F1F3", "k": [ 2, 17 ] }, "wilted_flower": { "a": "Wilted Flower", "b": "1F940", "j": [ "plant", "nature", "flower" ], "k": [ 41, 36 ], "o": 9 }, "mailbox_with_mail": { "a": "Open Mailbox with Raised Flag", "b": "1F4EC", "j": [ "email", "inbox", "communication" ], "k": [ 26, 35 ] }, "chopsticks": { "a": "Chopsticks", "b": "1F962", "j": [ "food" ], "k": [ 42, 14 ], "o": 10 }, "female_sign": { "a": "Female Sign", "b": "2640-FE0F", "c": "2640", "k": [ 47, 42 ], "o": 1 }, "mailbox_with_no_mail": { "a": "Open Mailbox with Lowered Flag", "b": "1F4ED", "j": [ "email", "inbox" ], "k": [ 26, 36 ] }, "knife_fork_plate": { "a": "Knife Fork Plate", "b": "1F37D-FE0F", "c": "1F37D", "k": [ 8, 11 ], "o": 7 }, "hibiscus": { "a": "Hibiscus", "b": "1F33A", "j": [ "plant", "vegetable", "flowers", "beach" ], "k": [ 6, 48 ] }, "flag-gp": { "a": "Guadeloupe Flag", "b": "1F1EC-1F1F5", "k": [ 2, 18 ] }, "railway_track": { "a": "Railway Track", "b": "1F6E4-FE0F", "c": "1F6E4", "j": [ "train", "transportation" ], "k": [ 37, 12 ], "o": 7 }, "male_sign": { "a": "Male Sign", "b": "2642-FE0F", "c": "2642", "k": [ 47, 43 ], "o": 1 }, "joy_cat": { "a": "Cat Face with Tears of Joy", "b": "1F639", "j": [ "animal", "cats", "haha", "happy", "tears" ], "k": [ 31, 29 ] }, "fuelpump": { "a": "Fuel Pump", "b": "26FD", "j": [ "gas station", "petroleum" ], "k": [ 49, 13 ], "o": 5 }, "sunflower": { "a": "Sunflower", "b": "1F33B", "j": [ "nature", "plant", "fall" ], "k": [ 6, 49 ] }, "postbox": { "a": "Postbox", "b": "1F4EE", "j": [ "email", "letter", "envelope" ], "k": [ 26, 37 ] }, "flag-gq": { "a": "Equatorial Guinea Flag", "b": "1F1EC-1F1F6", "k": [ 2, 19 ] }, "heart_eyes_cat": { "a": "Smiling Cat Face with Heart-Shaped Eyes", "b": "1F63B", "j": [ "animal", "love", "like", "affection", "cats", "valentines", "heart" ], "k": [ 31, 31 ] }, "fork_and_knife": { "a": "Fork and Knife", "b": "1F374", "j": [ "cutlery", "kitchen" ], "k": [ 8, 2 ] }, "medical_symbol": { "a": "Medical Symbol", "b": "2695-FE0F", "c": "2695", "k": [ 48, 14 ], "n": [ "staff_of_aesculapius" ], "o": 4 }, "recycle": { "a": "Black Universal Recycling Symbol", "b": "267B-FE0F", "c": "267B", "j": [ "arrow", "environment", "garbage", "trash" ], "k": [ 48, 9 ], "o": 3 }, "spoon": { "a": "Spoon", "b": "1F944", "j": [ "cutlery", "kitchen", "tableware" ], "k": [ 41, 40 ], "o": 9 }, "blossom": { "a": "Blossom", "b": "1F33C", "j": [ "nature", "flowers", "yellow" ], "k": [ 6, 50 ] }, "rotating_light": { "a": "Police Cars Revolving Light", "b": "1F6A8", "j": [ "police", "ambulance", "911", "emergency", "alert", "error", "pinged", "law", "legal" ], "k": [ 35, 13 ] }, "smirk_cat": { "a": "Cat Face with Wry Smile", "b": "1F63C", "j": [ "animal", "cats", "smirk" ], "k": [ 31, 32 ] }, "ballot_box_with_ballot": { "a": "Ballot Box with Ballot", "b": "1F5F3-FE0F", "c": "1F5F3", "k": [ 30, 17 ], "o": 7 }, "flag-gr": { "a": "Greece Flag", "b": "1F1EC-1F1F7", "k": [ 2, 20 ] }, "kissing_cat": { "a": "Kissing Cat Face with Closed Eyes", "b": "1F63D", "j": [ "animal", "cats", "kiss" ], "k": [ 31, 33 ] }, "pencil2": { "a": "Pencil", "b": "270F-FE0F", "c": "270F", "j": [ "stationery", "write", "paper", "writing", "school", "study" ], "k": [ 49, 42 ], "o": 1 }, "traffic_light": { "a": "Horizontal Traffic Light", "b": "1F6A5", "j": [ "transportation", "signal" ], "k": [ 35, 10 ] }, "fleur_de_lis": { "a": "Fleur De Lis", "b": "269C-FE0F", "c": "269C", "j": [ "decorative", "scout" ], "k": [ 48, 19 ], "o": 4 }, "tulip": { "a": "Tulip", "b": "1F337", "j": [ "flowers", "plant", "nature", "summer", "spring" ], "k": [ 6, 45 ] }, "hocho": { "a": "Hocho", "b": "1F52A", "j": [ "knife", "blade", "cutlery", "kitchen", "weapon" ], "k": [ 27, 44 ], "n": [ "knife" ] }, "flag-gs": { "a": "South Georgia & South Sandwich Islands Flag", "b": "1F1EC-1F1F8", "k": [ 2, 21 ] }, "seedling": { "a": "Seedling", "b": "1F331", "j": [ "plant", "nature", "grass", "lawn", "spring" ], "k": [ 6, 39 ] }, "amphora": { "a": "Amphora", "b": "1F3FA", "j": [ "vase", "jar" ], "k": [ 12, 24 ], "o": 8 }, "scream_cat": { "a": "Weary Cat Face", "b": "1F640", "j": [ "animal", "cats", "munch", "scared", "scream" ], "k": [ 31, 36 ] }, "vertical_traffic_light": { "a": "Vertical Traffic Light", "b": "1F6A6", "j": [ "transportation", "driving" ], "k": [ 35, 11 ] }, "black_nib": { "a": "Black Nib", "b": "2712-FE0F", "c": "2712", "j": [ "pen", "stationery", "writing", "write" ], "k": [ 49, 43 ], "o": 1 }, "flag-gt": { "a": "Guatemala Flag", "b": "1F1EC-1F1F9", "k": [ 2, 22 ] }, "trident": { "a": "Trident Emblem", "b": "1F531", "j": [ "weapon", "spear" ], "k": [ 27, 51 ] }, "flag-gu": { "a": "Guam Flag", "b": "1F1EC-1F1FA", "k": [ 2, 23 ] }, "name_badge": { "a": "Name Badge", "b": "1F4DB", "j": [ "fire", "forbid" ], "k": [ 26, 18 ] }, "construction": { "a": "Construction Sign", "b": "1F6A7", "j": [ "wip", "progress", "caution", "warning" ], "k": [ 35, 12 ] }, "lower_left_fountain_pen": { "a": "Lower Left Fountain Pen", "b": "1F58B-FE0F", "c": "1F58B", "k": [ 29, 29 ], "o": 7 }, "evergreen_tree": { "a": "Evergreen Tree", "b": "1F332", "j": [ "plant", "nature" ], "k": [ 6, 40 ] }, "crying_cat_face": { "a": "Crying Cat Face", "b": "1F63F", "j": [ "animal", "tears", "weep", "sad", "cats", "upset", "cry" ], "k": [ 31, 35 ] }, "flag-gw": { "a": "Guinea-Bissau Flag", "b": "1F1EC-1F1FC", "k": [ 2, 24 ] }, "lower_left_ballpoint_pen": { "a": "Lower Left Ballpoint Pen", "b": "1F58A-FE0F", "c": "1F58A", "k": [ 29, 28 ], "o": 7 }, "pouting_cat": { "a": "Pouting Cat Face", "b": "1F63E", "j": [ "animal", "cats" ], "k": [ 31, 34 ] }, "deciduous_tree": { "a": "Deciduous Tree", "b": "1F333", "j": [ "plant", "nature" ], "k": [ 6, 41 ] }, "octagonal_sign": { "a": "Octagonal Sign", "b": "1F6D1", "k": [ 37, 6 ], "o": 9 }, "beginner": { "a": "Japanese Symbol for Beginner", "b": "1F530", "j": [ "badge", "shield" ], "k": [ 27, 50 ] }, "flag-gy": { "a": "Guyana Flag", "b": "1F1EC-1F1FE", "k": [ 2, 25 ] }, "lower_left_paintbrush": { "a": "Lower Left Paintbrush", "b": "1F58C-FE0F", "c": "1F58C", "k": [ 29, 30 ], "o": 7 }, "o": { "a": "Heavy Large Circle", "b": "2B55", "j": [ "circle", "round" ], "k": [ 50, 23 ], "o": 5 }, "palm_tree": { "a": "Palm Tree", "b": "1F334", "j": [ "plant", "vegetable", "nature", "summer", "beach", "mojito", "tropical" ], "k": [ 6, 42 ] }, "anchor": { "a": "Anchor", "b": "2693", "j": [ "ship", "ferry", "sea", "boat" ], "k": [ 48, 12 ], "o": 4 }, "see_no_evil": { "a": "See-No-Evil Monkey", "b": "1F648", "j": [ "monkey", "animal", "nature", "haha" ], "k": [ 32, 43 ] }, "boat": { "a": "Sailboat", "b": "26F5", "k": [ 48, 43 ], "n": [ "sailboat" ], "o": 5 }, "white_check_mark": { "a": "White Heavy Check Mark", "b": "2705", "j": [ "green-square", "ok", "agree", "vote", "election", "answer", "tick" ], "k": [ 49, 15 ] }, "flag-hk": { "a": "Hong Kong Sar China Flag", "b": "1F1ED-1F1F0", "k": [ 2, 26 ] }, "lower_left_crayon": { "a": "Lower Left Crayon", "b": "1F58D-FE0F", "c": "1F58D", "k": [ 29, 31 ], "o": 7 }, "hear_no_evil": { "a": "Hear-No-Evil Monkey", "b": "1F649", "j": [ "animal", "monkey", "nature" ], "k": [ 32, 44 ] }, "cactus": { "a": "Cactus", "b": "1F335", "j": [ "vegetable", "plant", "nature" ], "k": [ 6, 43 ] }, "ear_of_rice": { "a": "Ear of Rice", "b": "1F33E", "j": [ "nature", "plant" ], "k": [ 7, 0 ] }, "speak_no_evil": { "a": "Speak-No-Evil Monkey", "b": "1F64A", "j": [ "monkey", "animal", "nature", "omg" ], "k": [ 32, 45 ] }, "flag-hm": { "a": "Heard & Mcdonald Islands Flag", "b": "1F1ED-1F1F2", "k": [ 2, 27 ] }, "ballot_box_with_check": { "a": "Ballot Box with Check", "b": "2611-FE0F", "c": "2611", "j": [ "ok", "agree", "confirm", "black-square", "vote", "election", "yes", "tick" ], "k": [ 47, 22 ], "o": 1 }, "canoe": { "a": "Canoe", "b": "1F6F6", "j": [ "boat", "paddle", "water", "ship" ], "k": [ 37, 21 ], "o": 9 }, "memo": { "a": "Memo", "b": "1F4DD", "j": [ "write", "documents", "stationery", "pencil", "paper", "writing", "legal", "exam", "quiz", "test", "study", "compose" ], "k": [ 26, 20 ], "n": [ "pencil" ] }, "herb": { "a": "Herb", "b": "1F33F", "j": [ "vegetable", "plant", "medicine", "weed", "grass", "lawn" ], "k": [ 7, 1 ] }, "flag-hn": { "a": "Honduras Flag", "b": "1F1ED-1F1F3", "k": [ 2, 28 ] }, "heavy_check_mark": { "a": "Heavy Check Mark", "b": "2714-FE0F", "c": "2714", "j": [ "ok", "nike", "answer", "yes", "tick" ], "k": [ 49, 44 ], "o": 1 }, "briefcase": { "a": "Briefcase", "b": "1F4BC", "j": [ "business", "documents", "work", "law", "legal", "job", "career" ], "k": [ 25, 39 ] }, "speedboat": { "a": "Speedboat", "b": "1F6A4", "j": [ "ship", "transportation", "vehicle", "summer" ], "k": [ 35, 9 ] }, "baby": { "skin_variations": { "1F3FB": { "unified": "1F476-1F3FB", "non_qualified": null, "image": "1f476-1f3fb.png", "sheet_x": 22, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F476-1F3FC", "non_qualified": null, "image": "1f476-1f3fc.png", "sheet_x": 22, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F476-1F3FD", "non_qualified": null, "image": "1f476-1f3fd.png", "sheet_x": 22, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F476-1F3FE", "non_qualified": null, "image": "1f476-1f3fe.png", "sheet_x": 22, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F476-1F3FF", "non_qualified": null, "image": "1f476-1f3ff.png", "sheet_x": 22, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Baby", "b": "1F476", "j": [ "child", "boy", "girl", "toddler" ], "k": [ 22, 10 ] }, "heavy_multiplication_x": { "a": "Heavy Multiplication X", "b": "2716-FE0F", "c": "2716", "j": [ "math", "calculation" ], "k": [ 49, 45 ], "o": 1 }, "child": { "skin_variations": { "1F3FB": { "unified": "1F9D2-1F3FB", "non_qualified": null, "image": "1f9d2-1f3fb.png", "sheet_x": 43, "sheet_y": 5, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D2-1F3FC", "non_qualified": null, "image": "1f9d2-1f3fc.png", "sheet_x": 43, "sheet_y": 6, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D2-1F3FD", "non_qualified": null, "image": "1f9d2-1f3fd.png", "sheet_x": 43, "sheet_y": 7, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D2-1F3FE", "non_qualified": null, "image": "1f9d2-1f3fe.png", "sheet_x": 43, "sheet_y": 8, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D2-1F3FF", "non_qualified": null, "image": "1f9d2-1f3ff.png", "sheet_x": 43, "sheet_y": 9, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Child", "b": "1F9D2", "j": [ "gender-neutral", "young" ], "k": [ 43, 4 ], "o": 10 }, "shamrock": { "a": "Shamrock", "b": "2618-FE0F", "c": "2618", "j": [ "vegetable", "plant", "nature", "irish", "clover" ], "k": [ 47, 25 ], "o": 4 }, "passenger_ship": { "a": "Passenger Ship", "b": "1F6F3-FE0F", "c": "1F6F3", "j": [ "yacht", "cruise", "ferry" ], "k": [ 37, 18 ], "o": 7 }, "flag-hr": { "a": "Croatia Flag", "b": "1F1ED-1F1F7", "k": [ 2, 29 ] }, "file_folder": { "a": "File Folder", "b": "1F4C1", "j": [ "documents", "business", "office" ], "k": [ 25, 44 ] }, "x": { "a": "Cross Mark", "b": "274C", "j": [ "no", "delete", "remove", "cancel" ], "k": [ 50, 1 ] }, "four_leaf_clover": { "a": "Four Leaf Clover", "b": "1F340", "j": [ "vegetable", "plant", "nature", "lucky", "irish" ], "k": [ 7, 2 ] }, "open_file_folder": { "a": "Open File Folder", "b": "1F4C2", "j": [ "documents", "load" ], "k": [ 25, 45 ] }, "boy": { "skin_variations": { "1F3FB": { "unified": "1F466-1F3FB", "non_qualified": null, "image": "1f466-1f3fb.png", "sheet_x": 15, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F466-1F3FC", "non_qualified": null, "image": "1f466-1f3fc.png", "sheet_x": 15, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F466-1F3FD", "non_qualified": null, "image": "1f466-1f3fd.png", "sheet_x": 15, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F466-1F3FE", "non_qualified": null, "image": "1f466-1f3fe.png", "sheet_x": 15, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F466-1F3FF", "non_qualified": null, "image": "1f466-1f3ff.png", "sheet_x": 15, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Boy", "b": "1F466", "j": [ "man", "male", "guy", "teenager" ], "k": [ 15, 42 ] }, "ferry": { "a": "Ferry", "b": "26F4-FE0F", "c": "26F4", "j": [ "boat", "ship", "yacht" ], "k": [ 48, 42 ], "o": 5 }, "flag-ht": { "a": "Haiti Flag", "b": "1F1ED-1F1F9", "k": [ 2, 30 ] }, "girl": { "skin_variations": { "1F3FB": { "unified": "1F467-1F3FB", "non_qualified": null, "image": "1f467-1f3fb.png", "sheet_x": 15, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F467-1F3FC", "non_qualified": null, "image": "1f467-1f3fc.png", "sheet_x": 15, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F467-1F3FD", "non_qualified": null, "image": "1f467-1f3fd.png", "sheet_x": 15, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F467-1F3FE", "non_qualified": null, "image": "1f467-1f3fe.png", "sheet_x": 16, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F467-1F3FF", "non_qualified": null, "image": "1f467-1f3ff.png", "sheet_x": 16, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Girl", "b": "1F467", "j": [ "female", "woman", "teenager" ], "k": [ 15, 48 ] }, "negative_squared_cross_mark": { "a": "Negative Squared Cross Mark", "b": "274E", "j": [ "x", "green-square", "no", "deny" ], "k": [ 50, 2 ] }, "flag-hu": { "a": "Hungary Flag", "b": "1F1ED-1F1FA", "k": [ 2, 31 ] }, "card_index_dividers": { "a": "Card Index Dividers", "b": "1F5C2-FE0F", "c": "1F5C2", "j": [ "organizing", "business", "stationery" ], "k": [ 30, 4 ], "o": 7 }, "maple_leaf": { "a": "Maple Leaf", "b": "1F341", "j": [ "nature", "plant", "vegetable", "ca", "fall" ], "k": [ 7, 3 ] }, "motor_boat": { "a": "Motor Boat", "b": "1F6E5-FE0F", "c": "1F6E5", "j": [ "ship" ], "k": [ 37, 13 ], "o": 7 }, "flag-ic": { "a": "Canary Islands Flag", "b": "1F1EE-1F1E8", "k": [ 2, 32 ] }, "fallen_leaf": { "a": "Fallen Leaf", "b": "1F342", "j": [ "nature", "plant", "vegetable", "leaves" ], "k": [ 7, 4 ] }, "adult": { "skin_variations": { "1F3FB": { "unified": "1F9D1-1F3FB", "non_qualified": null, "image": "1f9d1-1f3fb.png", "sheet_x": 42, "sheet_y": 51, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D1-1F3FC", "non_qualified": null, "image": "1f9d1-1f3fc.png", "sheet_x": 43, "sheet_y": 0, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D1-1F3FD", "non_qualified": null, "image": "1f9d1-1f3fd.png", "sheet_x": 43, "sheet_y": 1, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D1-1F3FE", "non_qualified": null, "image": "1f9d1-1f3fe.png", "sheet_x": 43, "sheet_y": 2, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D1-1F3FF", "non_qualified": null, "image": "1f9d1-1f3ff.png", "sheet_x": 43, "sheet_y": 3, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Adult", "b": "1F9D1", "j": [ "gender-neutral", "person" ], "k": [ 42, 50 ], "o": 10 }, "ship": { "a": "Ship", "b": "1F6A2", "j": [ "transportation", "titanic", "deploy" ], "k": [ 34, 42 ] }, "heavy_plus_sign": { "a": "Heavy Plus Sign", "b": "2795", "j": [ "math", "calculation", "addition", "more", "increase" ], "k": [ 50, 9 ] }, "date": { "a": "Calendar", "b": "1F4C5", "j": [ "calendar", "schedule" ], "k": [ 25, 48 ] }, "man": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB", "non_qualified": null, "image": "1f468-1f3fb.png", "sheet_x": 18, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F468-1F3FC", "non_qualified": null, "image": "1f468-1f3fc.png", "sheet_x": 18, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F468-1F3FD", "non_qualified": null, "image": "1f468-1f3fd.png", "sheet_x": 18, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F468-1F3FE", "non_qualified": null, "image": "1f468-1f3fe.png", "sheet_x": 18, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F468-1F3FF", "non_qualified": null, "image": "1f468-1f3ff.png", "sheet_x": 18, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Man", "b": "1F468", "j": [ "mustache", "father", "dad", "guy", "classy", "sir", "moustache" ], "k": [ 18, 11 ] }, "flag-id": { "a": "Indonesia Flag", "b": "1F1EE-1F1E9", "k": [ 2, 33 ] }, "leaves": { "a": "Leaf Fluttering in Wind", "b": "1F343", "j": [ "nature", "plant", "tree", "vegetable", "grass", "lawn", "spring" ], "k": [ 7, 5 ] }, "heavy_minus_sign": { "a": "Heavy Minus Sign", "b": "2796", "j": [ "math", "calculation", "subtract", "less" ], "k": [ 50, 10 ] }, "calendar": { "a": "Tear-off Calendar", "b": "1F4C6", "j": [ "schedule", "date", "planning" ], "k": [ 25, 49 ] }, "airplane": { "a": "Airplane", "b": "2708-FE0F", "c": "2708", "j": [ "vehicle", "transportation", "flight", "fly" ], "k": [ 49, 16 ], "o": 1 }, "spiral_note_pad": { "a": "Spiral Note Pad", "b": "1F5D2-FE0F", "c": "1F5D2", "k": [ 30, 8 ], "o": 7 }, "heavy_division_sign": { "a": "Heavy Division Sign", "b": "2797", "j": [ "divide", "math", "calculation" ], "k": [ 50, 11 ] }, "small_airplane": { "a": "Small Airplane", "b": "1F6E9-FE0F", "c": "1F6E9", "j": [ "flight", "transportation", "fly", "vehicle" ], "k": [ 37, 14 ], "o": 7 }, "woman": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB", "non_qualified": null, "image": "1f469-1f3fb.png", "sheet_x": 20, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F469-1F3FC", "non_qualified": null, "image": "1f469-1f3fc.png", "sheet_x": 20, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F469-1F3FD", "non_qualified": null, "image": "1f469-1f3fd.png", "sheet_x": 20, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F469-1F3FE", "non_qualified": null, "image": "1f469-1f3fe.png", "sheet_x": 20, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F469-1F3FF", "non_qualified": null, "image": "1f469-1f3ff.png", "sheet_x": 20, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Woman", "b": "1F469", "j": [ "female", "girls", "lady" ], "k": [ 20, 23 ] }, "flag-ie": { "a": "Ireland Flag", "b": "1F1EE-1F1EA", "k": [ 2, 34 ] }, "curly_loop": { "a": "Curly Loop", "b": "27B0", "j": [ "scribble", "draw", "shape", "squiggle" ], "k": [ 50, 13 ] }, "flag-il": { "a": "Israel Flag", "b": "1F1EE-1F1F1", "k": [ 2, 35 ] }, "airplane_departure": { "a": "Airplane Departure", "b": "1F6EB", "k": [ 37, 15 ], "o": 7 }, "spiral_calendar_pad": { "a": "Spiral Calendar Pad", "b": "1F5D3-FE0F", "c": "1F5D3", "k": [ 30, 9 ], "o": 7 }, "older_adult": { "skin_variations": { "1F3FB": { "unified": "1F9D3-1F3FB", "non_qualified": null, "image": "1f9d3-1f3fb.png", "sheet_x": 43, "sheet_y": 11, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D3-1F3FC", "non_qualified": null, "image": "1f9d3-1f3fc.png", "sheet_x": 43, "sheet_y": 12, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D3-1F3FD", "non_qualified": null, "image": "1f9d3-1f3fd.png", "sheet_x": 43, "sheet_y": 13, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D3-1F3FE", "non_qualified": null, "image": "1f9d3-1f3fe.png", "sheet_x": 43, "sheet_y": 14, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D3-1F3FF", "non_qualified": null, "image": "1f9d3-1f3ff.png", "sheet_x": 43, "sheet_y": 15, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Older Adult", "b": "1F9D3", "j": [ "human", "elder", "senior", "gender-neutral" ], "k": [ 43, 10 ], "o": 10 }, "airplane_arriving": { "a": "Airplane Arriving", "b": "1F6EC", "k": [ 37, 16 ], "o": 7 }, "card_index": { "a": "Card Index", "b": "1F4C7", "j": [ "business", "stationery" ], "k": [ 25, 50 ] }, "loop": { "a": "Double Curly Loop", "b": "27BF", "j": [ "tape", "cassette" ], "k": [ 50, 14 ] }, "older_man": { "skin_variations": { "1F3FB": { "unified": "1F474-1F3FB", "non_qualified": null, "image": "1f474-1f3fb.png", "sheet_x": 21, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F474-1F3FC", "non_qualified": null, "image": "1f474-1f3fc.png", "sheet_x": 22, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F474-1F3FD", "non_qualified": null, "image": "1f474-1f3fd.png", "sheet_x": 22, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F474-1F3FE", "non_qualified": null, "image": "1f474-1f3fe.png", "sheet_x": 22, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F474-1F3FF", "non_qualified": null, "image": "1f474-1f3ff.png", "sheet_x": 22, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Older Man", "b": "1F474", "j": [ "human", "male", "men", "old", "elder", "senior" ], "k": [ 21, 50 ] }, "flag-im": { "a": "Isle of Man Flag", "b": "1F1EE-1F1F2", "k": [ 2, 36 ] }, "flag-in": { "a": "India Flag", "b": "1F1EE-1F1F3", "j": [ "india", "indian", ], "k": [ 2, 37 ] }, "chart_with_upwards_trend": { "a": "Chart with Upwards Trend", "b": "1F4C8", "j": [ "graph", "presentation", "stats", "recovery", "business", "economics", "money", "sales", "good", "success" ], "k": [ 25, 51 ] }, "part_alternation_mark": { "a": "Part Alternation Mark", "b": "303D-FE0F", "c": "303D", "j": [ "graph", "presentation", "stats", "business", "economics", "bad" ], "k": [ 50, 25 ], "o": 3 }, "seat": { "a": "Seat", "b": "1F4BA", "j": [ "sit", "airplane", "transport", "bus", "flight", "fly" ], "k": [ 25, 37 ] }, "older_woman": { "skin_variations": { "1F3FB": { "unified": "1F475-1F3FB", "non_qualified": null, "image": "1f475-1f3fb.png", "sheet_x": 22, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F475-1F3FC", "non_qualified": null, "image": "1f475-1f3fc.png", "sheet_x": 22, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F475-1F3FD", "non_qualified": null, "image": "1f475-1f3fd.png", "sheet_x": 22, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F475-1F3FE", "non_qualified": null, "image": "1f475-1f3fe.png", "sheet_x": 22, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F475-1F3FF", "non_qualified": null, "image": "1f475-1f3ff.png", "sheet_x": 22, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Older Woman", "b": "1F475", "j": [ "human", "female", "women", "lady", "old", "elder", "senior" ], "k": [ 22, 4 ] }, "eight_spoked_asterisk": { "a": "Eight Spoked Asterisk", "b": "2733-FE0F", "c": "2733", "j": [ "star", "sparkle", "green-square" ], "k": [ 49, 49 ], "o": 1 }, "chart_with_downwards_trend": { "a": "Chart with Downwards Trend", "b": "1F4C9", "j": [ "graph", "presentation", "stats", "recession", "business", "economics", "money", "sales", "bad", "failure" ], "k": [ 26, 0 ] }, "flag-io": { "a": "British Indian Ocean Territory Flag", "b": "1F1EE-1F1F4", "k": [ 2, 38 ] }, "male-doctor": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-2695-FE0F", "non_qualified": "1F468-1F3FB-200D-2695", "image": "1f468-1f3fb-200d-2695-fe0f.png", "sheet_x": 17, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-2695-FE0F", "non_qualified": "1F468-1F3FC-200D-2695", "image": "1f468-1f3fc-200d-2695-fe0f.png", "sheet_x": 17, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-2695-FE0F", "non_qualified": "1F468-1F3FD-200D-2695", "image": "1f468-1f3fd-200d-2695-fe0f.png", "sheet_x": 17, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-2695-FE0F", "non_qualified": "1F468-1F3FE-200D-2695", "image": "1f468-1f3fe-200d-2695-fe0f.png", "sheet_x": 17, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-2695-FE0F", "non_qualified": "1F468-1F3FF-200D-2695", "image": "1f468-1f3ff-200d-2695-fe0f.png", "sheet_x": 17, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Male Doctor", "b": "1F468-200D-2695-FE0F", // d83d dc68 200d 2695 "c": "1F468-200D-2695", "j": [ "doctor", "male", ], "k": [ 17, 43 ] }, "helicopter": { "a": "Helicopter", "b": "1F681", "j": [ "transportation", "vehicle", "fly" ], "k": [ 34, 9 ] }, "female-doctor": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-2695-FE0F", "non_qualified": "1F469-1F3FB-200D-2695", "image": "1f469-1f3fb-200d-2695-fe0f.png", "sheet_x": 20, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-2695-FE0F", "non_qualified": "1F469-1F3FC-200D-2695", "image": "1f469-1f3fc-200d-2695-fe0f.png", "sheet_x": 20, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-2695-FE0F", "non_qualified": "1F469-1F3FD-200D-2695", "image": "1f469-1f3fd-200d-2695-fe0f.png", "sheet_x": 20, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-2695-FE0F", "non_qualified": "1F469-1F3FE-200D-2695", "image": "1f469-1f3fe-200d-2695-fe0f.png", "sheet_x": 20, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-2695-FE0F", "non_qualified": "1F469-1F3FF-200D-2695", "image": "1f469-1f3ff-200d-2695-fe0f.png", "sheet_x": 20, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Doctor", "b": "1F469-200D-2695-FE0F", "c": "1F469-200D-2695", "k": [ 20, 1 ] }, "suspension_railway": { "a": "Suspension Railway", "b": "1F69F", "j": [ "vehicle", "transportation" ], "k": [ 34, 39 ] }, "bar_chart": { "a": "Bar Chart", "b": "1F4CA", "j": [ "graph", "presentation", "stats" ], "k": [ 26, 1 ] }, "flag-iq": { "a": "Iraq Flag", "b": "1F1EE-1F1F6", "k": [ 2, 39 ] }, "eight_pointed_black_star": { "a": "Eight Pointed Black Star", "b": "2734-FE0F", "c": "2734", "j": [ "orange-square", "shape", "polygon" ], "k": [ 49, 50 ], "o": 1 }, "mountain_cableway": { "a": "Mountain Cableway", "b": "1F6A0", "j": [ "transportation", "vehicle", "ski" ], "k": [ 34, 40 ] }, "male-student": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F393", "non_qualified": null, "image": "1f468-1f3fb-200d-1f393.png", "sheet_x": 16, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F393", "non_qualified": null, "image": "1f468-1f3fc-200d-1f393.png", "sheet_x": 16, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F393", "non_qualified": null, "image": "1f468-1f3fd-200d-1f393.png", "sheet_x": 16, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F393", "non_qualified": null, "image": "1f468-1f3fe-200d-1f393.png", "sheet_x": 16, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F393", "non_qualified": null, "image": "1f468-1f3ff-200d-1f393.png", "sheet_x": 16, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Student", "b": "1F468-200D-1F393", "k": [ 16, 14 ] }, "clipboard": { "a": "Clipboard", "b": "1F4CB", "j": [ "stationery", "documents" ], "k": [ 26, 2 ] }, "flag-ir": { "a": "Iran Flag", "b": "1F1EE-1F1F7", "k": [ 2, 40 ] }, "sparkle": { "a": "Sparkle", "b": "2747-FE0F", "c": "2747", "j": [ "stars", "green-square", "awesome", "good", "fireworks" ], "k": [ 50, 0 ], "o": 1 }, "female-student": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F393", "non_qualified": null, "image": "1f469-1f3fb-200d-1f393.png", "sheet_x": 18, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F393", "non_qualified": null, "image": "1f469-1f3fc-200d-1f393.png", "sheet_x": 18, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F393", "non_qualified": null, "image": "1f469-1f3fd-200d-1f393.png", "sheet_x": 18, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F393", "non_qualified": null, "image": "1f469-1f3fe-200d-1f393.png", "sheet_x": 18, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F393", "non_qualified": null, "image": "1f469-1f3ff-200d-1f393.png", "sheet_x": 18, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Student", "b": "1F469-200D-1F393", "k": [ 18, 29 ] }, "pushpin": { "a": "Pushpin", "b": "1F4CC", "j": [ "stationery", "mark", "here" ], "k": [ 26, 3 ] }, "aerial_tramway": { "a": "Aerial Tramway", "b": "1F6A1", "j": [ "transportation", "vehicle", "ski" ], "k": [ 34, 41 ] }, "flag-is": { "a": "Iceland Flag", "b": "1F1EE-1F1F8", "k": [ 2, 41 ] }, "bangbang": { "a": "Double Exclamation Mark", "b": "203C-FE0F", "c": "203C", "j": [ "exclamation", "surprise" ], "k": [ 46, 29 ], "o": 1 }, "interrobang": { "a": "Exclamation Question Mark", "b": "2049-FE0F", "c": "2049", "j": [ "wat", "punctuation", "surprise" ], "k": [ 46, 30 ], "o": 3 }, "satellite": { "a": "Satellite", "b": "1F6F0-FE0F", "c": "1F6F0", "j": [ "communication", "future", "radio", "space" ], "k": [ 37, 17 ], "o": 7 }, "it": { "a": "Italy Flag", "b": "1F1EE-1F1F9", "j": [ "italy", "flag", "nation", "country", "banner" ], "k": [ 2, 42 ], "n": [ "flag-it" ] }, "male-teacher": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F3EB", "non_qualified": null, "image": "1f468-1f3fb-200d-1f3eb.png", "sheet_x": 16, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F3EB", "non_qualified": null, "image": "1f468-1f3fc-200d-1f3eb.png", "sheet_x": 16, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F3EB", "non_qualified": null, "image": "1f468-1f3fd-200d-1f3eb.png", "sheet_x": 16, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F3EB", "non_qualified": null, "image": "1f468-1f3fe-200d-1f3eb.png", "sheet_x": 16, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F3EB", "non_qualified": null, "image": "1f468-1f3ff-200d-1f3eb.png", "sheet_x": 16, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Teacher", "b": "1F468-200D-1F3EB", "k": [ 16, 32 ] }, "round_pushpin": { "a": "Round Pushpin", "b": "1F4CD", "j": [ "stationery", "location", "map", "here" ], "k": [ 26, 4 ] }, "flag-je": { "a": "Jersey Flag", "b": "1F1EF-1F1EA", "k": [ 2, 43 ] }, "question": { "a": "Black Question Mark Ornament", "b": "2753", "j": [ "doubt", "confused" ], "k": [ 50, 3 ] }, "rocket": { "a": "Rocket", "b": "1F680", "j": [ "launch", "ship", "staffmode", "NASA", "outer space", "outer_space", "fly" ], "k": [ 34, 8 ] }, "female-teacher": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F3EB", "non_qualified": null, "image": "1f469-1f3fb-200d-1f3eb.png", "sheet_x": 18, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F3EB", "non_qualified": null, "image": "1f469-1f3fc-200d-1f3eb.png", "sheet_x": 18, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F3EB", "non_qualified": null, "image": "1f469-1f3fd-200d-1f3eb.png", "sheet_x": 18, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F3EB", "non_qualified": null, "image": "1f469-1f3fe-200d-1f3eb.png", "sheet_x": 18, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F3EB", "non_qualified": null, "image": "1f469-1f3ff-200d-1f3eb.png", "sheet_x": 19, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Teacher", "b": "1F469-200D-1F3EB", "k": [ 18, 47 ] }, "paperclip": { "a": "Paperclip", "b": "1F4CE", "j": [ "documents", "stationery" ], "k": [ 26, 5 ] }, "linked_paperclips": { "a": "Linked Paperclips", "b": "1F587-FE0F", "c": "1F587", "k": [ 29, 27 ], "o": 7 }, "flying_saucer": { "a": "Flying Saucer", "b": "1F6F8", "j": [ "transportation", "vehicle", "ufo" ], "k": [ 37, 23 ], "o": 10 }, "male-judge": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-2696-FE0F", "non_qualified": "1F468-1F3FB-200D-2696", "image": "1f468-1f3fb-200d-2696-fe0f.png", "sheet_x": 17, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-2696-FE0F", "non_qualified": "1F468-1F3FC-200D-2696", "image": "1f468-1f3fc-200d-2696-fe0f.png", "sheet_x": 17, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-2696-FE0F", "non_qualified": "1F468-1F3FD-200D-2696", "image": "1f468-1f3fd-200d-2696-fe0f.png", "sheet_x": 18, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-2696-FE0F", "non_qualified": "1F468-1F3FE-200D-2696", "image": "1f468-1f3fe-200d-2696-fe0f.png", "sheet_x": 18, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-2696-FE0F", "non_qualified": "1F468-1F3FF-200D-2696", "image": "1f468-1f3ff-200d-2696-fe0f.png", "sheet_x": 18, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Male Judge", "b": "1F468-200D-2696-FE0F", "c": "1F468-200D-2696", "k": [ 17, 49 ] }, "grey_question": { "a": "White Question Mark Ornament", "b": "2754", "j": [ "doubts", "gray", "huh", "confused" ], "k": [ 50, 4 ] }, "flag-jm": { "a": "Jamaica Flag", "b": "1F1EF-1F1F2", "k": [ 2, 44 ] }, "bellhop_bell": { "a": "Bellhop Bell", "b": "1F6CE-FE0F", "c": "1F6CE", "j": [ "service" ], "k": [ 37, 3 ], "o": 7 }, "straight_ruler": { "a": "Straight Ruler", "b": "1F4CF", "j": [ "stationery", "calculate", "length", "math", "school", "drawing", "architect", "sketch" ], "k": [ 26, 6 ] }, "flag-jo": { "a": "Jordan Flag", "b": "1F1EF-1F1F4", "k": [ 2, 45 ] }, "female-judge": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-2696-FE0F", "non_qualified": "1F469-1F3FB-200D-2696", "image": "1f469-1f3fb-200d-2696-fe0f.png", "sheet_x": 20, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-2696-FE0F", "non_qualified": "1F469-1F3FC-200D-2696", "image": "1f469-1f3fc-200d-2696-fe0f.png", "sheet_x": 20, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-2696-FE0F", "non_qualified": "1F469-1F3FD-200D-2696", "image": "1f469-1f3fd-200d-2696-fe0f.png", "sheet_x": 20, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-2696-FE0F", "non_qualified": "1F469-1F3FE-200D-2696", "image": "1f469-1f3fe-200d-2696-fe0f.png", "sheet_x": 20, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-2696-FE0F", "non_qualified": "1F469-1F3FF-200D-2696", "image": "1f469-1f3ff-200d-2696-fe0f.png", "sheet_x": 20, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Judge", "b": "1F469-200D-2696-FE0F", "c": "1F469-200D-2696", "k": [ 20, 7 ] }, "grey_exclamation": { "a": "White Exclamation Mark Ornament", "b": "2755", "j": [ "surprise", "punctuation", "gray", "wow", "warning" ], "k": [ 50, 5 ] }, "door": { "a": "Door", "b": "1F6AA", "j": [ "house", "entry", "exit" ], "k": [ 35, 15 ] }, "male-farmer": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F33E", "non_qualified": null, "image": "1f468-1f3fb-200d-1f33e.png", "sheet_x": 16, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F33E", "non_qualified": null, "image": "1f468-1f3fc-200d-1f33e.png", "sheet_x": 16, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F33E", "non_qualified": null, "image": "1f468-1f3fd-200d-1f33e.png", "sheet_x": 16, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F33E", "non_qualified": null, "image": "1f468-1f3fe-200d-1f33e.png", "sheet_x": 16, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F33E", "non_qualified": null, "image": "1f468-1f3ff-200d-1f33e.png", "sheet_x": 16, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Farmer", "b": "1F468-200D-1F33E", "k": [ 16, 2 ] }, "jp": { "a": "Japan Flag", "b": "1F1EF-1F1F5", "j": [ "japanese", "nation", "flag", "country", "banner" ], "k": [ 2, 46 ], "n": [ "flag-jp" ] }, "triangular_ruler": { "a": "Triangular Ruler", "b": "1F4D0", "j": [ "stationery", "math", "architect", "sketch" ], "k": [ 26, 7 ] }, "exclamation": { "a": "Heavy Exclamation Mark Symbol", "b": "2757", "j": [ "heavy_exclamation_mark", "danger", "surprise", "punctuation", "wow", "warning" ], "k": [ 50, 6 ], "n": [ "heavy_exclamation_mark" ], "o": 5 }, "bed": { "a": "Bed", "b": "1F6CF-FE0F", "c": "1F6CF", "j": [ "sleep", "rest" ], "k": [ 37, 4 ], "o": 7 }, "female-farmer": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F33E", "non_qualified": null, "image": "1f469-1f3fb-200d-1f33e.png", "sheet_x": 18, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F33E", "non_qualified": null, "image": "1f469-1f3fc-200d-1f33e.png", "sheet_x": 18, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F33E", "non_qualified": null, "image": "1f469-1f3fd-200d-1f33e.png", "sheet_x": 18, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F33E", "non_qualified": null, "image": "1f469-1f3fe-200d-1f33e.png", "sheet_x": 18, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F33E", "non_qualified": null, "image": "1f469-1f3ff-200d-1f33e.png", "sheet_x": 18, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Farmer", "b": "1F469-200D-1F33E", "k": [ 18, 17 ] }, "scissors": { "a": "Black Scissors", "b": "2702-FE0F", "c": "2702", "j": [ "stationery", "cut" ], "k": [ 49, 14 ], "o": 1 }, "wavy_dash": { "a": "Wavy Dash", "b": "3030-FE0F", "c": "3030", "j": [ "draw", "line", "moustache", "mustache", "squiggle", "scribble" ], "k": [ 50, 24 ], "o": 1 }, "flag-ke": { "a": "Kenya Flag", "b": "1F1F0-1F1EA", "k": [ 2, 47 ] }, "flag-kg": { "a": "Kyrgyzstan Flag", "b": "1F1F0-1F1EC", "k": [ 2, 48 ] }, "couch_and_lamp": { "a": "Couch and Lamp", "b": "1F6CB-FE0F", "c": "1F6CB", "j": [ "read", "chill" ], "k": [ 36, 47 ], "o": 7 }, "male-cook": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F373", "non_qualified": null, "image": "1f468-1f3fb-200d-1f373.png", "sheet_x": 16, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F373", "non_qualified": null, "image": "1f468-1f3fc-200d-1f373.png", "sheet_x": 16, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F373", "non_qualified": null, "image": "1f468-1f3fd-200d-1f373.png", "sheet_x": 16, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F373", "non_qualified": null, "image": "1f468-1f3fe-200d-1f373.png", "sheet_x": 16, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F373", "non_qualified": null, "image": "1f468-1f3ff-200d-1f373.png", "sheet_x": 16, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Cook", "b": "1F468-200D-1F373", "k": [ 16, 8 ] }, "card_file_box": { "a": "Card File Box", "b": "1F5C3-FE0F", "c": "1F5C3", "j": [ "business", "stationery" ], "k": [ 30, 5 ], "o": 7 }, "file_cabinet": { "a": "File Cabinet", "b": "1F5C4-FE0F", "c": "1F5C4", "j": [ "filing", "organizing" ], "k": [ 30, 6 ], "o": 7 }, "flag-kh": { "a": "Cambodia Flag", "b": "1F1F0-1F1ED", "k": [ 2, 49 ] }, "female-cook": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F373", "non_qualified": null, "image": "1f469-1f3fb-200d-1f373.png", "sheet_x": 18, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F373", "non_qualified": null, "image": "1f469-1f3fc-200d-1f373.png", "sheet_x": 18, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F373", "non_qualified": null, "image": "1f469-1f3fd-200d-1f373.png", "sheet_x": 18, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F373", "non_qualified": null, "image": "1f469-1f3fe-200d-1f373.png", "sheet_x": 18, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F373", "non_qualified": null, "image": "1f469-1f3ff-200d-1f373.png", "sheet_x": 18, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Cook", "b": "1F469-200D-1F373", "k": [ 18, 23 ] }, "toilet": { "a": "Toilet", "b": "1F6BD", "j": [ "restroom", "wc", "washroom", "bathroom", "potty" ], "k": [ 36, 33 ] }, "wastebasket": { "a": "Wastebasket", "b": "1F5D1-FE0F", "c": "1F5D1", "j": [ "bin", "trash", "rubbish", "garbage", "toss" ], "k": [ 30, 7 ], "o": 7 }, "flag-ki": { "a": "Kiribati Flag", "b": "1F1F0-1F1EE", "k": [ 2, 50 ] }, "shower": { "a": "Shower", "b": "1F6BF", "j": [ "clean", "water", "bathroom" ], "k": [ 36, 35 ] }, "male-mechanic": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F527", "non_qualified": null, "image": "1f468-1f3fb-200d-1f527.png", "sheet_x": 17, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F527", "non_qualified": null, "image": "1f468-1f3fc-200d-1f527.png", "sheet_x": 17, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F527", "non_qualified": null, "image": "1f468-1f3fd-200d-1f527.png", "sheet_x": 17, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F527", "non_qualified": null, "image": "1f468-1f3fe-200d-1f527.png", "sheet_x": 17, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F527", "non_qualified": null, "image": "1f468-1f3ff-200d-1f527.png", "sheet_x": 17, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Mechanic", "b": "1F468-200D-1F527", "k": [ 17, 19 ] }, "tm": { "a": "Trade Mark Sign", "b": "2122-FE0F", "c": "2122", "j": [ "trademark", "brand", "law", "legal" ], "k": [ 46, 31 ], "o": 1 }, "hash": { "a": "Hash Key", "b": "0023-FE0F-20E3", "c": "0023-20E3", "j": [ "symbol", "blue-square", "twitter" ], "k": [ 0, 0 ], "o": 3 }, "flag-km": { "a": "Comoros Flag", "b": "1F1F0-1F1F2", "k": [ 2, 51 ] }, "bathtub": { "a": "Bathtub", "b": "1F6C1", "j": [ "clean", "shower", "bathroom" ], "k": [ 36, 42 ] }, "female-mechanic": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F527", "non_qualified": null, "image": "1f469-1f3fb-200d-1f527.png", "sheet_x": 19, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F527", "non_qualified": null, "image": "1f469-1f3fc-200d-1f527.png", "sheet_x": 19, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F527", "non_qualified": null, "image": "1f469-1f3fd-200d-1f527.png", "sheet_x": 19, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F527", "non_qualified": null, "image": "1f469-1f3fe-200d-1f527.png", "sheet_x": 19, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F527", "non_qualified": null, "image": "1f469-1f3ff-200d-1f527.png", "sheet_x": 19, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Mechanic", "b": "1F469-200D-1F527", "k": [ 19, 29 ] }, "lock": { "a": "Lock", "b": "1F512", "j": [ "security", "password", "padlock" ], "k": [ 27, 20 ] }, "male-factory-worker": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F3ED", "non_qualified": null, "image": "1f468-1f3fb-200d-1f3ed.png", "sheet_x": 16, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F3ED", "non_qualified": null, "image": "1f468-1f3fc-200d-1f3ed.png", "sheet_x": 16, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F3ED", "non_qualified": null, "image": "1f468-1f3fd-200d-1f3ed.png", "sheet_x": 16, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F3ED", "non_qualified": null, "image": "1f468-1f3fe-200d-1f3ed.png", "sheet_x": 16, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F3ED", "non_qualified": null, "image": "1f468-1f3ff-200d-1f3ed.png", "sheet_x": 16, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Factory Worker", "b": "1F468-200D-1F3ED", "k": [ 16, 38 ] }, "flag-kn": { "a": "St. Kitts & Nevis Flag", "b": "1F1F0-1F1F3", "k": [ 3, 0 ] }, "hourglass": { "a": "Hourglass", "b": "231B", "j": [ "time", "clock", "oldschool", "limit", "exam", "quiz", "test" ], "k": [ 46, 42 ], "o": 1 }, "keycap_star": { "a": "Keycap Star", "b": "002A-FE0F-20E3", "c": "002A-20E3", "k": [ 0, 1 ], "o": 3 }, "unlock": { "a": "Open Lock", "b": "1F513", "j": [ "privacy", "security" ], "k": [ 27, 21 ] }, "flag-kp": { "a": "North Korea Flag", "b": "1F1F0-1F1F5", "k": [ 3, 1 ] }, "female-factory-worker": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F3ED", "non_qualified": null, "image": "1f469-1f3fb-200d-1f3ed.png", "sheet_x": 19, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F3ED", "non_qualified": null, "image": "1f469-1f3fc-200d-1f3ed.png", "sheet_x": 19, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F3ED", "non_qualified": null, "image": "1f469-1f3fd-200d-1f3ed.png", "sheet_x": 19, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F3ED", "non_qualified": null, "image": "1f469-1f3fe-200d-1f3ed.png", "sheet_x": 19, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F3ED", "non_qualified": null, "image": "1f469-1f3ff-200d-1f3ed.png", "sheet_x": 19, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Factory Worker", "b": "1F469-200D-1F3ED", "k": [ 19, 1 ] }, "zero": { "a": "Keycap 0", "b": "0030-FE0F-20E3", "c": "0030-20E3", "j": [ "0", "numbers", "blue-square", "null" ], "k": [ 0, 2 ], "o": 3 }, "lock_with_ink_pen": { "a": "Lock with Ink Pen", "b": "1F50F", "j": [ "security", "secret" ], "k": [ 27, 17 ] }, "hourglass_flowing_sand": { "a": "Hourglass with Flowing Sand", "b": "23F3", "j": [ "oldschool", "time", "countdown" ], "k": [ 47, 3 ] }, "one": { "a": "Keycap 1", "b": "0031-FE0F-20E3", "c": "0031-20E3", "j": [ "blue-square", "numbers", "1" ], "k": [ 0, 3 ], "o": 3 }, "kr": { "a": "South Korea Flag", "b": "1F1F0-1F1F7", "j": [ "south", "korea", "nation", "flag", "country", "banner" ], "k": [ 3, 2 ], "n": [ "flag-kr" ] }, "watch": { "a": "Watch", "b": "231A", "j": [ "time", "accessories" ], "k": [ 46, 41 ], "o": 1 }, "male-office-worker": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F4BC", "non_qualified": null, "image": "1f468-1f3fb-200d-1f4bc.png", "sheet_x": 17, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F4BC", "non_qualified": null, "image": "1f468-1f3fc-200d-1f4bc.png", "sheet_x": 17, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F4BC", "non_qualified": null, "image": "1f468-1f3fd-200d-1f4bc.png", "sheet_x": 17, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F4BC", "non_qualified": null, "image": "1f468-1f3fe-200d-1f4bc.png", "sheet_x": 17, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F4BC", "non_qualified": null, "image": "1f468-1f3ff-200d-1f4bc.png", "sheet_x": 17, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Office Worker", "b": "1F468-200D-1F4BC", "k": [ 17, 13 ] }, "closed_lock_with_key": { "a": "Closed Lock with Key", "b": "1F510", "j": [ "security", "privacy" ], "k": [ 27, 18 ] }, "female-office-worker": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F4BC", "non_qualified": null, "image": "1f469-1f3fb-200d-1f4bc.png", "sheet_x": 19, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F4BC", "non_qualified": null, "image": "1f469-1f3fc-200d-1f4bc.png", "sheet_x": 19, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F4BC", "non_qualified": null, "image": "1f469-1f3fd-200d-1f4bc.png", "sheet_x": 19, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F4BC", "non_qualified": null, "image": "1f469-1f3fe-200d-1f4bc.png", "sheet_x": 19, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F4BC", "non_qualified": null, "image": "1f469-1f3ff-200d-1f4bc.png", "sheet_x": 19, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Office Worker", "b": "1F469-200D-1F4BC", "k": [ 19, 23 ] }, "two": { "a": "Keycap 2", "b": "0032-FE0F-20E3", "c": "0032-20E3", "j": [ "numbers", "2", "prime", "blue-square" ], "k": [ 0, 4 ], "o": 3 }, "alarm_clock": { "a": "Alarm Clock", "b": "23F0", "j": [ "time", "wake" ], "k": [ 47, 0 ] }, "key": { "a": "Key", "b": "1F511", "j": [ "lock", "door", "password" ], "k": [ 27, 19 ] }, "flag-kw": { "a": "Kuwait Flag", "b": "1F1F0-1F1FC", "k": [ 3, 3 ] }, "stopwatch": { "a": "Stopwatch", "b": "23F1-FE0F", "c": "23F1", "j": [ "time", "deadline" ], "k": [ 47, 1 ] }, "male-scientist": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F52C", "non_qualified": null, "image": "1f468-1f3fb-200d-1f52c.png", "sheet_x": 17, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F52C", "non_qualified": null, "image": "1f468-1f3fc-200d-1f52c.png", "sheet_x": 17, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F52C", "non_qualified": null, "image": "1f468-1f3fd-200d-1f52c.png", "sheet_x": 17, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F52C", "non_qualified": null, "image": "1f468-1f3fe-200d-1f52c.png", "sheet_x": 17, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F52C", "non_qualified": null, "image": "1f468-1f3ff-200d-1f52c.png", "sheet_x": 17, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Scientist", "b": "1F468-200D-1F52C", "k": [ 17, 25 ] }, "three": { "a": "Keycap 3", "b": "0033-FE0F-20E3", "c": "0033-20E3", "j": [ "3", "numbers", "prime", "blue-square" ], "k": [ 0, 5 ], "o": 3 }, "flag-ky": { "a": "Cayman Islands Flag", "b": "1F1F0-1F1FE", "k": [ 3, 4 ] }, "old_key": { "a": "Old Key", "b": "1F5DD-FE0F", "c": "1F5DD", "j": [ "lock", "door", "password" ], "k": [ 30, 11 ], "o": 7 }, "flag-kz": { "a": "Kazakhstan Flag", "b": "1F1F0-1F1FF", "k": [ 3, 5 ] }, "hammer": { "a": "Hammer", "b": "1F528", "j": [ "tools", "build", "create" ], "k": [ 27, 42 ] }, "female-scientist": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F52C", "non_qualified": null, "image": "1f469-1f3fb-200d-1f52c.png", "sheet_x": 19, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F52C", "non_qualified": null, "image": "1f469-1f3fc-200d-1f52c.png", "sheet_x": 19, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F52C", "non_qualified": null, "image": "1f469-1f3fd-200d-1f52c.png", "sheet_x": 19, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F52C", "non_qualified": null, "image": "1f469-1f3fe-200d-1f52c.png", "sheet_x": 19, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F52C", "non_qualified": null, "image": "1f469-1f3ff-200d-1f52c.png", "sheet_x": 19, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Scientist", "b": "1F469-200D-1F52C", "k": [ 19, 35 ] }, "timer_clock": { "a": "Timer Clock", "b": "23F2-FE0F", "c": "23F2", "j": [ "alarm" ], "k": [ 47, 2 ] }, "four": { "a": "Keycap 4", "b": "0034-FE0F-20E3", "c": "0034-20E3", "j": [ "4", "numbers", "blue-square" ], "k": [ 0, 6 ], "o": 3 }, "male-technologist": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F4BB", "non_qualified": null, "image": "1f468-1f3fb-200d-1f4bb.png", "sheet_x": 17, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F4BB", "non_qualified": null, "image": "1f468-1f3fc-200d-1f4bb.png", "sheet_x": 17, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F4BB", "non_qualified": null, "image": "1f468-1f3fd-200d-1f4bb.png", "sheet_x": 17, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F4BB", "non_qualified": null, "image": "1f468-1f3fe-200d-1f4bb.png", "sheet_x": 17, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F4BB", "non_qualified": null, "image": "1f468-1f3ff-200d-1f4bb.png", "sheet_x": 17, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Technologist", "b": "1F468-200D-1F4BB", "k": [ 17, 7 ] }, "mantelpiece_clock": { "a": "Mantelpiece Clock", "b": "1F570-FE0F", "c": "1F570", "j": [ "time" ], "k": [ 28, 43 ], "o": 7 }, "five": { "a": "Keycap 5", "b": "0035-FE0F-20E3", "c": "0035-20E3", "j": [ "5", "numbers", "blue-square", "prime" ], "k": [ 0, 7 ], "o": 3 }, "flag-la": { "a": "Laos Flag", "b": "1F1F1-1F1E6", "k": [ 3, 6 ] }, "pick": { "a": "Pick", "b": "26CF-FE0F", "c": "26CF", "j": [ "tools", "dig" ], "k": [ 48, 32 ], "o": 5 }, "flag-lb": { "a": "Lebanon Flag", "b": "1F1F1-1F1E7", "k": [ 3, 7 ] }, "clock12": { "a": "Clock Face Twelve Oclock", "b": "1F55B", "j": [ "time", "noon", "midnight", "midday", "late", "early", "schedule" ], "k": [ 28, 29 ] }, "hammer_and_pick": { "a": "Hammer and Pick", "b": "2692-FE0F", "c": "2692", "j": [ "tools", "build", "create" ], "k": [ 48, 11 ], "o": 4 }, "six": { "a": "Keycap 6", "b": "0036-FE0F-20E3", "c": "0036-20E3", "j": [ "6", "numbers", "blue-square" ], "k": [ 0, 8 ], "o": 3 }, "female-technologist": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F4BB", "non_qualified": null, "image": "1f469-1f3fb-200d-1f4bb.png", "sheet_x": 19, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F4BB", "non_qualified": null, "image": "1f469-1f3fc-200d-1f4bb.png", "sheet_x": 19, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F4BB", "non_qualified": null, "image": "1f469-1f3fd-200d-1f4bb.png", "sheet_x": 19, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F4BB", "non_qualified": null, "image": "1f469-1f3fe-200d-1f4bb.png", "sheet_x": 19, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F4BB", "non_qualified": null, "image": "1f469-1f3ff-200d-1f4bb.png", "sheet_x": 19, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Technologist", "b": "1F469-200D-1F4BB", "k": [ 19, 17 ] }, "hammer_and_wrench": { "a": "Hammer and Wrench", "b": "1F6E0-FE0F", "c": "1F6E0", "j": [ "tools", "build", "create" ], "k": [ 37, 8 ], "o": 7 }, "flag-lc": { "a": "St. Lucia Flag", "b": "1F1F1-1F1E8", "k": [ 3, 8 ] }, "clock1230": { "a": "Clock Face Twelve-Thirty", "b": "1F567", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 41 ] }, "seven": { "a": "Keycap 7", "b": "0037-FE0F-20E3", "c": "0037-20E3", "j": [ "7", "numbers", "blue-square", "prime" ], "k": [ 0, 9 ], "o": 3 }, "male-singer": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F3A4", "non_qualified": null, "image": "1f468-1f3fb-200d-1f3a4.png", "sheet_x": 16, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F3A4", "non_qualified": null, "image": "1f468-1f3fc-200d-1f3a4.png", "sheet_x": 16, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F3A4", "non_qualified": null, "image": "1f468-1f3fd-200d-1f3a4.png", "sheet_x": 16, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F3A4", "non_qualified": null, "image": "1f468-1f3fe-200d-1f3a4.png", "sheet_x": 16, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F3A4", "non_qualified": null, "image": "1f468-1f3ff-200d-1f3a4.png", "sheet_x": 16, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Singer", "b": "1F468-200D-1F3A4", "k": [ 16, 20 ] }, "eight": { "a": "Keycap 8", "b": "0038-FE0F-20E3", "c": "0038-20E3", "j": [ "8", "blue-square", "numbers" ], "k": [ 0, 10 ], "o": 3 }, "flag-li": { "a": "Liechtenstein Flag", "b": "1F1F1-1F1EE", "k": [ 3, 9 ] }, "dagger_knife": { "a": "Dagger Knife", "b": "1F5E1-FE0F", "c": "1F5E1", "k": [ 30, 13 ], "o": 7 }, "clock1": { "a": "Clock Face One Oclock", "b": "1F550", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 18 ] }, "female-singer": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F3A4", "non_qualified": null, "image": "1f469-1f3fb-200d-1f3a4.png", "sheet_x": 18, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F3A4", "non_qualified": null, "image": "1f469-1f3fc-200d-1f3a4.png", "sheet_x": 18, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F3A4", "non_qualified": null, "image": "1f469-1f3fd-200d-1f3a4.png", "sheet_x": 18, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F3A4", "non_qualified": null, "image": "1f469-1f3fe-200d-1f3a4.png", "sheet_x": 18, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F3A4", "non_qualified": null, "image": "1f469-1f3ff-200d-1f3a4.png", "sheet_x": 18, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Singer", "b": "1F469-200D-1F3A4", "k": [ 18, 35 ] }, "male-artist": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F3A8", "non_qualified": null, "image": "1f468-1f3fb-200d-1f3a8.png", "sheet_x": 16, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F3A8", "non_qualified": null, "image": "1f468-1f3fc-200d-1f3a8.png", "sheet_x": 16, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F3A8", "non_qualified": null, "image": "1f468-1f3fd-200d-1f3a8.png", "sheet_x": 16, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F3A8", "non_qualified": null, "image": "1f468-1f3fe-200d-1f3a8.png", "sheet_x": 16, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F3A8", "non_qualified": null, "image": "1f468-1f3ff-200d-1f3a8.png", "sheet_x": 16, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Artist", "b": "1F468-200D-1F3A8", "k": [ 16, 26 ] }, "crossed_swords": { "a": "Crossed Swords", "b": "2694-FE0F", "c": "2694", "j": [ "weapon" ], "k": [ 48, 13 ], "o": 4 }, "nine": { "a": "Keycap 9", "b": "0039-FE0F-20E3", "c": "0039-20E3", "j": [ "blue-square", "numbers", "9" ], "k": [ 0, 11 ], "o": 3 }, "flag-lk": { "a": "Sri Lanka Flag", "b": "1F1F1-1F1F0", "k": [ 3, 10 ] }, "clock130": { "a": "Clock Face One-Thirty", "b": "1F55C", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 30 ] }, "clock2": { "a": "Clock Face Two Oclock", "b": "1F551", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 19 ] }, "gun": { "a": "Pistol", "b": "1F52B", "j": [ "violence", "weapon", "pistol", "revolver" ], "k": [ 27, 45 ] }, "keycap_ten": { "a": "Keycap Ten", "b": "1F51F", "j": [ "numbers", "10", "blue-square" ], "k": [ 27, 33 ] }, "female-artist": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F3A8", "non_qualified": null, "image": "1f469-1f3fb-200d-1f3a8.png", "sheet_x": 18, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F3A8", "non_qualified": null, "image": "1f469-1f3fc-200d-1f3a8.png", "sheet_x": 18, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F3A8", "non_qualified": null, "image": "1f469-1f3fd-200d-1f3a8.png", "sheet_x": 18, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F3A8", "non_qualified": null, "image": "1f469-1f3fe-200d-1f3a8.png", "sheet_x": 18, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F3A8", "non_qualified": null, "image": "1f469-1f3ff-200d-1f3a8.png", "sheet_x": 18, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Artist", "b": "1F469-200D-1F3A8", "k": [ 18, 41 ] }, "flag-lr": { "a": "Liberia Flag", "b": "1F1F1-1F1F7", "k": [ 3, 11 ] }, "clock230": { "a": "Clock Face Two-Thirty", "b": "1F55D", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 31 ] }, "bow_and_arrow": { "a": "Bow and Arrow", "b": "1F3F9", "j": [ "sports" ], "k": [ 12, 23 ], "o": 8 }, "male-pilot": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-2708-FE0F", "non_qualified": "1F468-1F3FB-200D-2708", "image": "1f468-1f3fb-200d-2708-fe0f.png", "sheet_x": 18, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-2708-FE0F", "non_qualified": "1F468-1F3FC-200D-2708", "image": "1f468-1f3fc-200d-2708-fe0f.png", "sheet_x": 18, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-2708-FE0F", "non_qualified": "1F468-1F3FD-200D-2708", "image": "1f468-1f3fd-200d-2708-fe0f.png", "sheet_x": 18, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-2708-FE0F", "non_qualified": "1F468-1F3FE-200D-2708", "image": "1f468-1f3fe-200d-2708-fe0f.png", "sheet_x": 18, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-2708-FE0F", "non_qualified": "1F468-1F3FF-200D-2708", "image": "1f468-1f3ff-200d-2708-fe0f.png", "sheet_x": 18, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Male Pilot", "b": "1F468-200D-2708-FE0F", "c": "1F468-200D-2708", "k": [ 18, 3 ] }, "flag-ls": { "a": "Lesotho Flag", "b": "1F1F1-1F1F8", "k": [ 3, 12 ] }, "flag-lt": { "a": "Lithuania Flag", "b": "1F1F1-1F1F9", "k": [ 3, 13 ] }, "capital_abcd": { "a": "Input Symbol for Latin Capital Letters", "b": "1F520", "j": [ "alphabet", "words", "blue-square" ], "k": [ 27, 34 ] }, "female-pilot": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-2708-FE0F", "non_qualified": "1F469-1F3FB-200D-2708", "image": "1f469-1f3fb-200d-2708-fe0f.png", "sheet_x": 20, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-2708-FE0F", "non_qualified": "1F469-1F3FC-200D-2708", "image": "1f469-1f3fc-200d-2708-fe0f.png", "sheet_x": 20, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-2708-FE0F", "non_qualified": "1F469-1F3FD-200D-2708", "image": "1f469-1f3fd-200d-2708-fe0f.png", "sheet_x": 20, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-2708-FE0F", "non_qualified": "1F469-1F3FE-200D-2708", "image": "1f469-1f3fe-200d-2708-fe0f.png", "sheet_x": 20, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-2708-FE0F", "non_qualified": "1F469-1F3FF-200D-2708", "image": "1f469-1f3ff-200d-2708-fe0f.png", "sheet_x": 20, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Pilot", "b": "1F469-200D-2708-FE0F", "c": "1F469-200D-2708", "k": [ 20, 13 ] }, "clock3": { "a": "Clock Face Three Oclock", "b": "1F552", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 20 ] }, "shield": { "a": "Shield", "b": "1F6E1-FE0F", "c": "1F6E1", "j": [ "protection", "security" ], "k": [ 37, 9 ], "o": 7 }, "male-astronaut": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F680", "non_qualified": null, "image": "1f468-1f3fb-200d-1f680.png", "sheet_x": 17, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F680", "non_qualified": null, "image": "1f468-1f3fc-200d-1f680.png", "sheet_x": 17, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F680", "non_qualified": null, "image": "1f468-1f3fd-200d-1f680.png", "sheet_x": 17, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F680", "non_qualified": null, "image": "1f468-1f3fe-200d-1f680.png", "sheet_x": 17, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F680", "non_qualified": null, "image": "1f468-1f3ff-200d-1f680.png", "sheet_x": 17, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Astronaut", "b": "1F468-200D-1F680", "k": [ 17, 31 ] }, "abcd": { "a": "Input Symbol for Latin Small Letters", "b": "1F521", "j": [ "blue-square", "alphabet" ], "k": [ 27, 35 ] }, "clock330": { "a": "Clock Face Three-Thirty", "b": "1F55E", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 32 ] }, "flag-lu": { "a": "Luxembourg Flag", "b": "1F1F1-1F1FA", "k": [ 3, 14 ] }, "wrench": { "a": "Wrench", "b": "1F527", "j": [ "tools", "diy", "ikea", "fix", "maintainer" ], "k": [ 27, 41 ] }, "nut_and_bolt": { "a": "Nut and Bolt", "b": "1F529", "j": [ "handy", "tools", "fix" ], "k": [ 27, 43 ] }, "clock4": { "a": "Clock Face Four Oclock", "b": "1F553", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 21 ] }, "female-astronaut": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F680", "non_qualified": null, "image": "1f469-1f3fb-200d-1f680.png", "sheet_x": 19, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F680", "non_qualified": null, "image": "1f469-1f3fc-200d-1f680.png", "sheet_x": 19, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F680", "non_qualified": null, "image": "1f469-1f3fd-200d-1f680.png", "sheet_x": 19, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F680", "non_qualified": null, "image": "1f469-1f3fe-200d-1f680.png", "sheet_x": 19, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F680", "non_qualified": null, "image": "1f469-1f3ff-200d-1f680.png", "sheet_x": 19, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Astronaut", "b": "1F469-200D-1F680", "k": [ 19, 41 ] }, "flag-lv": { "a": "Latvia Flag", "b": "1F1F1-1F1FB", "k": [ 3, 15 ] }, "gear": { "a": "Gear", "b": "2699-FE0F", "c": "2699", "j": [ "cog" ], "k": [ 48, 17 ], "o": 4 }, "male-firefighter": { "skin_variations": { "1F3FB": { "unified": "1F468-1F3FB-200D-1F692", "non_qualified": null, "image": "1f468-1f3fb-200d-1f692.png", "sheet_x": 17, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F468-1F3FC-200D-1F692", "non_qualified": null, "image": "1f468-1f3fc-200d-1f692.png", "sheet_x": 17, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F468-1F3FD-200D-1F692", "non_qualified": null, "image": "1f468-1f3fd-200d-1f692.png", "sheet_x": 17, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F468-1F3FE-200D-1F692", "non_qualified": null, "image": "1f468-1f3fe-200d-1f692.png", "sheet_x": 17, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F468-1F3FF-200D-1F692", "non_qualified": null, "image": "1f468-1f3ff-200d-1f692.png", "sheet_x": 17, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Male Firefighter", "b": "1F468-200D-1F692", "k": [ 17, 37 ] }, "flag-ly": { "a": "Libya Flag", "b": "1F1F1-1F1FE", "k": [ 3, 16 ] }, "symbols": { "a": "Input Symbol for Symbols", "b": "1F523", "j": [ "blue-square", "music", "note", "ampersand", "percent", "glyphs", "characters" ], "k": [ 27, 37 ] }, "clock430": { "a": "Clock Face Four-Thirty", "b": "1F55F", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 33 ] }, "flag-ma": { "a": "Morocco Flag", "b": "1F1F2-1F1E6", "k": [ 3, 17 ] }, "compression": { "a": "Compression", "b": "1F5DC-FE0F", "c": "1F5DC", "k": [ 30, 10 ], "o": 7 }, "female-firefighter": { "skin_variations": { "1F3FB": { "unified": "1F469-1F3FB-200D-1F692", "non_qualified": null, "image": "1f469-1f3fb-200d-1f692.png", "sheet_x": 19, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F469-1F3FC-200D-1F692", "non_qualified": null, "image": "1f469-1f3fc-200d-1f692.png", "sheet_x": 19, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F469-1F3FD-200D-1F692", "non_qualified": null, "image": "1f469-1f3fd-200d-1f692.png", "sheet_x": 19, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F469-1F3FE-200D-1F692", "non_qualified": null, "image": "1f469-1f3fe-200d-1f692.png", "sheet_x": 19, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F469-1F3FF-200D-1F692", "non_qualified": null, "image": "1f469-1f3ff-200d-1f692.png", "sheet_x": 20, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Female Firefighter", "b": "1F469-200D-1F692", "k": [ 19, 47 ] }, "abc": { "a": "Input Symbol for Latin Letters", "b": "1F524", "j": [ "blue-square", "alphabet" ], "k": [ 27, 38 ] }, "clock5": { "a": "Clock Face Five Oclock", "b": "1F554", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 22 ] }, "clock530": { "a": "Clock Face Five-Thirty", "b": "1F560", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 34 ] }, "a": { "a": "Negative Squared Latin Capital Letter a", "b": "1F170-FE0F", "c": "1F170", "j": [ "red-square", "alphabet", "letter" ], "k": [ 0, 16 ] }, "alembic": { "a": "Alembic", "b": "2697-FE0F", "c": "2697", "j": [ "distilling", "science", "experiment", "chemistry" ], "k": [ 48, 16 ], "o": 4 }, "flag-mc": { "a": "Monaco Flag", "b": "1F1F2-1F1E8", "k": [ 3, 18 ] }, "cop": { "skin_variations": { "1F3FB": { "unified": "1F46E-1F3FB", "non_qualified": null, "image": "1f46e-1f3fb.png", "sheet_x": 20, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F46E-1F3FC", "non_qualified": null, "image": "1f46e-1f3fc.png", "sheet_x": 20, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F46E-1F3FD", "non_qualified": null, "image": "1f46e-1f3fd.png", "sheet_x": 20, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F46E-1F3FE", "non_qualified": null, "image": "1f46e-1f3fe.png", "sheet_x": 20, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F46E-1F3FF", "non_qualified": null, "image": "1f46e-1f3ff.png", "sheet_x": 20, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F46E-200D-2642-FE0F", "a": "Police Officer", "b": "1F46E", "k": [ 20, 45 ] }, "scales": { "a": "Scales", "b": "2696-FE0F", "c": "2696", "k": [ 48, 15 ], "o": 4 }, "clock6": { "a": "Clock Face Six Oclock", "b": "1F555", "j": [ "time", "late", "early", "schedule", "dawn", "dusk" ], "k": [ 28, 23 ] }, "flag-md": { "a": "Moldova Flag", "b": "1F1F2-1F1E9", "k": [ 3, 19 ] }, "ab": { "a": "Negative Squared Ab", "b": "1F18E", "j": [ "red-square", "alphabet" ], "k": [ 0, 20 ] }, "male-police-officer": { "skin_variations": { "1F3FB": { "unified": "1F46E-1F3FB-200D-2642-FE0F", "non_qualified": "1F46E-1F3FB-200D-2642", "image": "1f46e-1f3fb-200d-2642-fe0f.png", "sheet_x": 20, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F46E-1F3FC-200D-2642-FE0F", "non_qualified": "1F46E-1F3FC-200D-2642", "image": "1f46e-1f3fc-200d-2642-fe0f.png", "sheet_x": 20, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F46E-1F3FD-200D-2642-FE0F", "non_qualified": "1F46E-1F3FD-200D-2642", "image": "1f46e-1f3fd-200d-2642-fe0f.png", "sheet_x": 20, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F46E-1F3FE-200D-2642-FE0F", "non_qualified": "1F46E-1F3FE-200D-2642", "image": "1f46e-1f3fe-200d-2642-fe0f.png", "sheet_x": 20, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F46E-1F3FF-200D-2642-FE0F", "non_qualified": "1F46E-1F3FF-200D-2642", "image": "1f46e-1f3ff-200d-2642-fe0f.png", "sheet_x": 20, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F46E", "a": "Male Police Officer", "b": "1F46E-200D-2642-FE0F", "c": "1F46E-200D-2642", "k": [ 20, 39 ] }, "link": { "a": "Link Symbol", "b": "1F517", "j": [ "rings", "url" ], "k": [ 27, 25 ] }, "flag-me": { "a": "Montenegro Flag", "b": "1F1F2-1F1EA", "k": [ 3, 20 ] }, "clock630": { "a": "Clock Face Six-Thirty", "b": "1F561", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 35 ] }, "b": { "a": "Negative Squared Latin Capital Letter B", "b": "1F171-FE0F", "c": "1F171", "j": [ "red-square", "alphabet", "letter" ], "k": [ 0, 17 ] }, "female-police-officer": { "skin_variations": { "1F3FB": { "unified": "1F46E-1F3FB-200D-2640-FE0F", "non_qualified": "1F46E-1F3FB-200D-2640", "image": "1f46e-1f3fb-200d-2640-fe0f.png", "sheet_x": 20, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F46E-1F3FC-200D-2640-FE0F", "non_qualified": "1F46E-1F3FC-200D-2640", "image": "1f46e-1f3fc-200d-2640-fe0f.png", "sheet_x": 20, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F46E-1F3FD-200D-2640-FE0F", "non_qualified": "1F46E-1F3FD-200D-2640", "image": "1f46e-1f3fd-200d-2640-fe0f.png", "sheet_x": 20, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F46E-1F3FE-200D-2640-FE0F", "non_qualified": "1F46E-1F3FE-200D-2640", "image": "1f46e-1f3fe-200d-2640-fe0f.png", "sheet_x": 20, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F46E-1F3FF-200D-2640-FE0F", "non_qualified": "1F46E-1F3FF-200D-2640", "image": "1f46e-1f3ff-200d-2640-fe0f.png", "sheet_x": 20, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Police Officer", "b": "1F46E-200D-2640-FE0F", "c": "1F46E-200D-2640", "k": [ 20, 33 ] }, "clock7": { "a": "Clock Face Seven Oclock", "b": "1F556", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 24 ] }, "cl": { "a": "Squared Cl", "b": "1F191", "j": [ "alphabet", "words", "red-square" ], "k": [ 0, 21 ] }, "sleuth_or_spy": { "skin_variations": { "1F3FB": { "unified": "1F575-1F3FB", "non_qualified": null, "image": "1f575-1f3fb.png", "sheet_x": 29, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F575-1F3FC", "non_qualified": null, "image": "1f575-1f3fc.png", "sheet_x": 29, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F575-1F3FD", "non_qualified": null, "image": "1f575-1f3fd.png", "sheet_x": 29, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F575-1F3FE", "non_qualified": null, "image": "1f575-1f3fe.png", "sheet_x": 29, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F575-1F3FF", "non_qualified": null, "image": "1f575-1f3ff.png", "sheet_x": 29, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoleted_by": "1F575-FE0F-200D-2642-FE0F", "a": "Sleuth or Spy", "b": "1F575-FE0F", "c": "1F575", "k": [ 29, 11 ], "o": 7 }, "flag-mf": { "a": "St. Martin Flag", "b": "1F1F2-1F1EB", "k": [ 3, 21 ] }, "chains": { "a": "Chains", "b": "26D3-FE0F", "c": "26D3", "j": [ "lock", "arrest" ], "k": [ 48, 34 ], "o": 5 }, "syringe": { "a": "Syringe", "b": "1F489", "j": [ "health", "hospital", "drugs", "blood", "medicine", "needle", "doctor", "nurse" ], "k": [ 24, 35 ] }, "male-detective": { "skin_variations": { "1F3FB": { "unified": "1F575-1F3FB-200D-2642-FE0F", "non_qualified": "1F575-1F3FB-200D-2642", "image": "1f575-1f3fb-200d-2642-fe0f.png", "sheet_x": 29, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F575-1F3FC-200D-2642-FE0F", "non_qualified": "1F575-1F3FC-200D-2642", "image": "1f575-1f3fc-200d-2642-fe0f.png", "sheet_x": 29, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F575-1F3FD-200D-2642-FE0F", "non_qualified": "1F575-1F3FD-200D-2642", "image": "1f575-1f3fd-200d-2642-fe0f.png", "sheet_x": 29, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F575-1F3FE-200D-2642-FE0F", "non_qualified": "1F575-1F3FE-200D-2642", "image": "1f575-1f3fe-200d-2642-fe0f.png", "sheet_x": 29, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F575-1F3FF-200D-2642-FE0F", "non_qualified": "1F575-1F3FF-200D-2642", "image": "1f575-1f3ff-200d-2642-fe0f.png", "sheet_x": 29, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F575-FE0F", "a": "Male Detective", "b": "1F575-FE0F-200D-2642-FE0F", "k": [ 29, 5 ], "o": 7 }, "cool": { "a": "Squared Cool", "b": "1F192", "j": [ "words", "blue-square" ], "k": [ 0, 22 ] }, "clock730": { "a": "Clock Face Seven-Thirty", "b": "1F562", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 36 ] }, "flag-mg": { "a": "Madagascar Flag", "b": "1F1F2-1F1EC", "k": [ 3, 22 ] }, "free": { "a": "Squared Free", "b": "1F193", "j": [ "blue-square", "words" ], "k": [ 0, 23 ] }, "flag-mh": { "a": "Marshall Islands Flag", "b": "1F1F2-1F1ED", "k": [ 3, 23 ] }, "clock8": { "a": "Clock Face Eight Oclock", "b": "1F557", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 25 ] }, "pill": { "a": "Pill", "b": "1F48A", "j": [ "health", "medicine", "doctor", "pharmacy", "drug" ], "k": [ 24, 36 ] }, "female-detective": { "skin_variations": { "1F3FB": { "unified": "1F575-1F3FB-200D-2640-FE0F", "non_qualified": "1F575-1F3FB-200D-2640", "image": "1f575-1f3fb-200d-2640-fe0f.png", "sheet_x": 29, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F575-1F3FC-200D-2640-FE0F", "non_qualified": "1F575-1F3FC-200D-2640", "image": "1f575-1f3fc-200d-2640-fe0f.png", "sheet_x": 29, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F575-1F3FD-200D-2640-FE0F", "non_qualified": "1F575-1F3FD-200D-2640", "image": "1f575-1f3fd-200d-2640-fe0f.png", "sheet_x": 29, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F575-1F3FE-200D-2640-FE0F", "non_qualified": "1F575-1F3FE-200D-2640", "image": "1f575-1f3fe-200d-2640-fe0f.png", "sheet_x": 29, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F575-1F3FF-200D-2640-FE0F", "non_qualified": "1F575-1F3FF-200D-2640", "image": "1f575-1f3ff-200d-2640-fe0f.png", "sheet_x": 29, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Detective", "b": "1F575-FE0F-200D-2640-FE0F", "k": [ 28, 51 ], "o": 7 }, "clock830": { "a": "Clock Face Eight-Thirty", "b": "1F563", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 37 ] }, "guardsman": { "skin_variations": { "1F3FB": { "unified": "1F482-1F3FB", "non_qualified": null, "image": "1f482-1f3fb.png", "sheet_x": 23, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F482-1F3FC", "non_qualified": null, "image": "1f482-1f3fc.png", "sheet_x": 23, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F482-1F3FD", "non_qualified": null, "image": "1f482-1f3fd.png", "sheet_x": 23, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F482-1F3FE", "non_qualified": null, "image": "1f482-1f3fe.png", "sheet_x": 23, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F482-1F3FF", "non_qualified": null, "image": "1f482-1f3ff.png", "sheet_x": 23, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F482-200D-2642-FE0F", "a": "Guardsman", "b": "1F482", "j": [ "uk", "gb", "british", "male", "guy", "royal" ], "k": [ 23, 31 ] }, "information_source": { "a": "Information Source", "b": "2139-FE0F", "c": "2139", "j": [ "blue-square", "alphabet", "letter" ], "k": [ 46, 32 ], "o": 3 }, "flag-mk": { "a": "Macedonia Flag", "b": "1F1F2-1F1F0", "k": [ 3, 24 ] }, "smoking": { "a": "Smoking Symbol", "b": "1F6AC", "j": [ "kills", "tobacco", "cigarette", "joint", "smoke" ], "k": [ 35, 17 ] }, "id": { "a": "Squared Id", "b": "1F194", "j": [ "purple-square", "words" ], "k": [ 0, 24 ] }, "clock9": { "a": "Clock Face Nine Oclock", "b": "1F558", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 26 ] }, "flag-ml": { "a": "Mali Flag", "b": "1F1F2-1F1F1", "k": [ 3, 25 ] }, "coffin": { "a": "Coffin", "b": "26B0-FE0F", "c": "26B0", "j": [ "vampire", "dead", "die", "death", "rip", "graveyard", "cemetery", "casket", "funeral", "box" ], "k": [ 48, 24 ], "o": 4 }, "male-guard": { "skin_variations": { "1F3FB": { "unified": "1F482-1F3FB-200D-2642-FE0F", "non_qualified": "1F482-1F3FB-200D-2642", "image": "1f482-1f3fb-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F482-1F3FC-200D-2642-FE0F", "non_qualified": "1F482-1F3FC-200D-2642", "image": "1f482-1f3fc-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F482-1F3FD-200D-2642-FE0F", "non_qualified": "1F482-1F3FD-200D-2642", "image": "1f482-1f3fd-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F482-1F3FE-200D-2642-FE0F", "non_qualified": "1F482-1F3FE-200D-2642", "image": "1f482-1f3fe-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F482-1F3FF-200D-2642-FE0F", "non_qualified": "1F482-1F3FF-200D-2642", "image": "1f482-1f3ff-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F482", "a": "Male Guard", "b": "1F482-200D-2642-FE0F", "c": "1F482-200D-2642", "k": [ 23, 25 ] }, "m": { "a": "Circled Latin Capital Letter M", "b": "24C2-FE0F", "c": "24C2", "j": [ "alphabet", "blue-circle", "letter" ], "k": [ 47, 7 ], "o": 1 }, "funeral_urn": { "a": "Funeral Urn", "b": "26B1-FE0F", "c": "26B1", "j": [ "dead", "die", "death", "rip", "ashes" ], "k": [ 48, 25 ], "o": 4 }, "female-guard": { "skin_variations": { "1F3FB": { "unified": "1F482-1F3FB-200D-2640-FE0F", "non_qualified": "1F482-1F3FB-200D-2640", "image": "1f482-1f3fb-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F482-1F3FC-200D-2640-FE0F", "non_qualified": "1F482-1F3FC-200D-2640", "image": "1f482-1f3fc-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F482-1F3FD-200D-2640-FE0F", "non_qualified": "1F482-1F3FD-200D-2640", "image": "1f482-1f3fd-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F482-1F3FE-200D-2640-FE0F", "non_qualified": "1F482-1F3FE-200D-2640", "image": "1f482-1f3fe-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F482-1F3FF-200D-2640-FE0F", "non_qualified": "1F482-1F3FF-200D-2640", "image": "1f482-1f3ff-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Guard", "b": "1F482-200D-2640-FE0F", "c": "1F482-200D-2640", "k": [ 23, 19 ] }, "flag-mm": { "a": "Myanmar (burma) Flag", "b": "1F1F2-1F1F2", "k": [ 3, 26 ] }, "clock930": { "a": "Clock Face Nine-Thirty", "b": "1F564", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 38 ] }, "moyai": { "a": "Moyai", "b": "1F5FF", "j": [ "rock", "easter island", "moai" ], "k": [ 30, 23 ] }, "new": { "a": "Squared New", "b": "1F195", "j": [ "blue-square", "words", "start" ], "k": [ 0, 25 ] }, "flag-mn": { "a": "Mongolia Flag", "b": "1F1F2-1F1F3", "k": [ 3, 27 ] }, "construction_worker": { "skin_variations": { "1F3FB": { "unified": "1F477-1F3FB", "non_qualified": null, "image": "1f477-1f3fb.png", "sheet_x": 22, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F477-1F3FC", "non_qualified": null, "image": "1f477-1f3fc.png", "sheet_x": 22, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F477-1F3FD", "non_qualified": null, "image": "1f477-1f3fd.png", "sheet_x": 22, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F477-1F3FE", "non_qualified": null, "image": "1f477-1f3fe.png", "sheet_x": 22, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F477-1F3FF", "non_qualified": null, "image": "1f477-1f3ff.png", "sheet_x": 22, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F477-200D-2642-FE0F", "a": "Construction Worker", "b": "1F477", "k": [ 22, 28 ] }, "clock10": { "a": "Clock Face Ten Oclock", "b": "1F559", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 27 ] }, "clock1030": { "a": "Clock Face Ten-Thirty", "b": "1F565", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 39 ] }, "ng": { "a": "Squared Ng", "b": "1F196", "j": [ "blue-square", "words", "shape", "icon" ], "k": [ 0, 26 ] }, "male-construction-worker": { "skin_variations": { "1F3FB": { "unified": "1F477-1F3FB-200D-2642-FE0F", "non_qualified": "1F477-1F3FB-200D-2642", "image": "1f477-1f3fb-200d-2642-fe0f.png", "sheet_x": 22, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F477-1F3FC-200D-2642-FE0F", "non_qualified": "1F477-1F3FC-200D-2642", "image": "1f477-1f3fc-200d-2642-fe0f.png", "sheet_x": 22, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F477-1F3FD-200D-2642-FE0F", "non_qualified": "1F477-1F3FD-200D-2642", "image": "1f477-1f3fd-200d-2642-fe0f.png", "sheet_x": 22, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F477-1F3FE-200D-2642-FE0F", "non_qualified": "1F477-1F3FE-200D-2642", "image": "1f477-1f3fe-200d-2642-fe0f.png", "sheet_x": 22, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F477-1F3FF-200D-2642-FE0F", "non_qualified": "1F477-1F3FF-200D-2642", "image": "1f477-1f3ff-200d-2642-fe0f.png", "sheet_x": 22, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F477", "a": "Male Construction Worker", "b": "1F477-200D-2642-FE0F", "c": "1F477-200D-2642", "k": [ 22, 22 ] }, "flag-mo": { "a": "Macau Sar China Flag", "b": "1F1F2-1F1F4", "k": [ 3, 28 ] }, "oil_drum": { "a": "Oil Drum", "b": "1F6E2-FE0F", "c": "1F6E2", "j": [ "barrell" ], "k": [ 37, 10 ], "o": 7 }, "o2": { "a": "Negative Squared Latin Capital Letter O", "b": "1F17E-FE0F", "c": "1F17E", "j": [ "alphabet", "red-square", "letter" ], "k": [ 0, 18 ] }, "female-construction-worker": { "skin_variations": { "1F3FB": { "unified": "1F477-1F3FB-200D-2640-FE0F", "non_qualified": "1F477-1F3FB-200D-2640", "image": "1f477-1f3fb-200d-2640-fe0f.png", "sheet_x": 22, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F477-1F3FC-200D-2640-FE0F", "non_qualified": "1F477-1F3FC-200D-2640", "image": "1f477-1f3fc-200d-2640-fe0f.png", "sheet_x": 22, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F477-1F3FD-200D-2640-FE0F", "non_qualified": "1F477-1F3FD-200D-2640", "image": "1f477-1f3fd-200d-2640-fe0f.png", "sheet_x": 22, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F477-1F3FE-200D-2640-FE0F", "non_qualified": "1F477-1F3FE-200D-2640", "image": "1f477-1f3fe-200d-2640-fe0f.png", "sheet_x": 22, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F477-1F3FF-200D-2640-FE0F", "non_qualified": "1F477-1F3FF-200D-2640", "image": "1f477-1f3ff-200d-2640-fe0f.png", "sheet_x": 22, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Construction Worker", "b": "1F477-200D-2640-FE0F", "c": "1F477-200D-2640", "k": [ 22, 16 ] }, "clock11": { "a": "Clock Face Eleven Oclock", "b": "1F55A", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 28 ] }, "crystal_ball": { "a": "Crystal Ball", "b": "1F52E", "j": [ "disco", "party", "magic", "circus", "fortune_teller" ], "k": [ 27, 48 ] }, "flag-mp": { "a": "Northern Mariana Islands Flag", "b": "1F1F2-1F1F5", "k": [ 3, 29 ] }, "flag-mq": { "a": "Martinique Flag", "b": "1F1F2-1F1F6", "k": [ 3, 30 ] }, "prince": { "skin_variations": { "1F3FB": { "unified": "1F934-1F3FB", "non_qualified": null, "image": "1f934-1f3fb.png", "sheet_x": 39, "sheet_y": 29, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F934-1F3FC", "non_qualified": null, "image": "1f934-1f3fc.png", "sheet_x": 39, "sheet_y": 30, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F934-1F3FD", "non_qualified": null, "image": "1f934-1f3fd.png", "sheet_x": 39, "sheet_y": 31, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F934-1F3FE", "non_qualified": null, "image": "1f934-1f3fe.png", "sheet_x": 39, "sheet_y": 32, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F934-1F3FF", "non_qualified": null, "image": "1f934-1f3ff.png", "sheet_x": 39, "sheet_y": 33, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Prince", "b": "1F934", "j": [ "boy", "man", "male", "crown", "royal", "king" ], "k": [ 39, 28 ], "o": 9 }, "ok": { "a": "Squared Ok", "b": "1F197", "j": [ "good", "agree", "yes", "blue-square" ], "k": [ 0, 27 ] }, "clock1130": { "a": "Clock Face Eleven-Thirty", "b": "1F566", "j": [ "time", "late", "early", "schedule" ], "k": [ 28, 40 ] }, "shopping_trolley": { "a": "Shopping Trolley", "b": "1F6D2", "k": [ 37, 7 ], "o": 9 }, "flag-mr": { "a": "Mauritania Flag", "b": "1F1F2-1F1F7", "k": [ 3, 31 ] }, "princess": { "skin_variations": { "1F3FB": { "unified": "1F478-1F3FB", "non_qualified": null, "image": "1f478-1f3fb.png", "sheet_x": 22, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F478-1F3FC", "non_qualified": null, "image": "1f478-1f3fc.png", "sheet_x": 22, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F478-1F3FD", "non_qualified": null, "image": "1f478-1f3fd.png", "sheet_x": 22, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F478-1F3FE", "non_qualified": null, "image": "1f478-1f3fe.png", "sheet_x": 22, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F478-1F3FF", "non_qualified": null, "image": "1f478-1f3ff.png", "sheet_x": 22, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Princess", "b": "1F478", "j": [ "girl", "woman", "female", "blond", "crown", "royal", "queen" ], "k": [ 22, 34 ] }, "new_moon": { "a": "New Moon Symbol", "b": "1F311", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 9 ] }, "parking": { "a": "Negative Squared Latin Capital Letter P", "b": "1F17F-FE0F", "c": "1F17F", "j": [ "cars", "blue-square", "alphabet", "letter" ], "k": [ 0, 19 ], "o": 5 }, "sos": { "a": "Squared Sos", "b": "1F198", "j": [ "help", "red-square", "words", "emergency", "911" ], "k": [ 0, 28 ] }, "man_with_turban": { "skin_variations": { "1F3FB": { "unified": "1F473-1F3FB", "non_qualified": null, "image": "1f473-1f3fb.png", "sheet_x": 21, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F473-1F3FC", "non_qualified": null, "image": "1f473-1f3fc.png", "sheet_x": 21, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F473-1F3FD", "non_qualified": null, "image": "1f473-1f3fd.png", "sheet_x": 21, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F473-1F3FE", "non_qualified": null, "image": "1f473-1f3fe.png", "sheet_x": 21, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F473-1F3FF", "non_qualified": null, "image": "1f473-1f3ff.png", "sheet_x": 21, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F473-200D-2642-FE0F", "a": "Man with Turban", "b": "1F473", "j": [ "male", "indian", "hinduism", "arabs" ], "k": [ 21, 44 ] }, "flag-ms": { "a": "Montserrat Flag", "b": "1F1F2-1F1F8", "k": [ 3, 32 ] }, "waxing_crescent_moon": { "a": "Waxing Crescent Moon Symbol", "b": "1F312", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 10 ] }, "up": { "a": "Squared Up with Exclamation Mark", "b": "1F199", "j": [ "blue-square", "above", "high" ], "k": [ 0, 29 ] }, "first_quarter_moon": { "a": "First Quarter Moon Symbol", "b": "1F313", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 11 ] }, "flag-mt": { "a": "Malta Flag", "b": "1F1F2-1F1F9", "k": [ 3, 33 ] }, "man-wearing-turban": { "skin_variations": { "1F3FB": { "unified": "1F473-1F3FB-200D-2642-FE0F", "non_qualified": "1F473-1F3FB-200D-2642", "image": "1f473-1f3fb-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F473-1F3FC-200D-2642-FE0F", "non_qualified": "1F473-1F3FC-200D-2642", "image": "1f473-1f3fc-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F473-1F3FD-200D-2642-FE0F", "non_qualified": "1F473-1F3FD-200D-2642", "image": "1f473-1f3fd-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F473-1F3FE-200D-2642-FE0F", "non_qualified": "1F473-1F3FE-200D-2642", "image": "1f473-1f3fe-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F473-1F3FF-200D-2642-FE0F", "non_qualified": "1F473-1F3FF-200D-2642", "image": "1f473-1f3ff-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F473", "a": "Man Wearing Turban", "b": "1F473-200D-2642-FE0F", "c": "1F473-200D-2642", "k": [ 21, 38 ] }, "moon": { "a": "Waxing Gibbous Moon Symbol", "b": "1F314", "k": [ 6, 12 ], "n": [ "waxing_gibbous_moon" ] }, "woman-wearing-turban": { "skin_variations": { "1F3FB": { "unified": "1F473-1F3FB-200D-2640-FE0F", "non_qualified": "1F473-1F3FB-200D-2640", "image": "1f473-1f3fb-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F473-1F3FC-200D-2640-FE0F", "non_qualified": "1F473-1F3FC-200D-2640", "image": "1f473-1f3fc-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F473-1F3FD-200D-2640-FE0F", "non_qualified": "1F473-1F3FD-200D-2640", "image": "1f473-1f3fd-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F473-1F3FE-200D-2640-FE0F", "non_qualified": "1F473-1F3FE-200D-2640", "image": "1f473-1f3fe-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F473-1F3FF-200D-2640-FE0F", "non_qualified": "1F473-1F3FF-200D-2640", "image": "1f473-1f3ff-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Wearing Turban", "b": "1F473-200D-2640-FE0F", "c": "1F473-200D-2640", "k": [ 21, 32 ] }, "vs": { "a": "Squared Vs", "b": "1F19A", "j": [ "words", "orange-square" ], "k": [ 0, 30 ] }, "flag-mu": { "a": "Mauritius Flag", "b": "1F1F2-1F1FA", "k": [ 3, 34 ] }, "man_with_gua_pi_mao": { "skin_variations": { "1F3FB": { "unified": "1F472-1F3FB", "non_qualified": null, "image": "1f472-1f3fb.png", "sheet_x": 21, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F472-1F3FC", "non_qualified": null, "image": "1f472-1f3fc.png", "sheet_x": 21, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F472-1F3FD", "non_qualified": null, "image": "1f472-1f3fd.png", "sheet_x": 21, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F472-1F3FE", "non_qualified": null, "image": "1f472-1f3fe.png", "sheet_x": 21, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F472-1F3FF", "non_qualified": null, "image": "1f472-1f3ff.png", "sheet_x": 21, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Man with Gua Pi Mao", "b": "1F472", "j": [ "male", "boy", "chinese" ], "k": [ 21, 26 ] }, "koko": { "a": "Squared Katakana Koko", "b": "1F201", "j": [ "blue-square", "here", "katakana", "japanese", "destination" ], "k": [ 5, 29 ] }, "full_moon": { "a": "Full Moon Symbol", "b": "1F315", "j": [ "nature", "yellow", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 13 ] }, "flag-mv": { "a": "Maldives Flag", "b": "1F1F2-1F1FB", "k": [ 3, 35 ] }, "person_with_headscarf": { "skin_variations": { "1F3FB": { "unified": "1F9D5-1F3FB", "non_qualified": null, "image": "1f9d5-1f3fb.png", "sheet_x": 43, "sheet_y": 23, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D5-1F3FC", "non_qualified": null, "image": "1f9d5-1f3fc.png", "sheet_x": 43, "sheet_y": 24, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D5-1F3FD", "non_qualified": null, "image": "1f9d5-1f3fd.png", "sheet_x": 43, "sheet_y": 25, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D5-1F3FE", "non_qualified": null, "image": "1f9d5-1f3fe.png", "sheet_x": 43, "sheet_y": 26, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D5-1F3FF", "non_qualified": null, "image": "1f9d5-1f3ff.png", "sheet_x": 43, "sheet_y": 27, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Person with Headscarf", "b": "1F9D5", "k": [ 43, 22 ], "o": 10 }, "waning_gibbous_moon": { "a": "Waning Gibbous Moon Symbol", "b": "1F316", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep", "waxing_gibbous_moon" ], "k": [ 6, 14 ] }, "sa": { "a": "Squared Katakana Sa", "b": "1F202-FE0F", "c": "1F202", "j": [ "japanese", "blue-square", "katakana" ], "k": [ 5, 30 ] }, "flag-mw": { "a": "Malawi Flag", "b": "1F1F2-1F1FC", "k": [ 3, 36 ] }, "last_quarter_moon": { "a": "Last Quarter Moon Symbol", "b": "1F317", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 15 ] }, "u6708": { "a": "Squared Cjk Unified Ideograph-6708", "b": "1F237-FE0F", "c": "1F237", "j": [ "chinese", "month", "moon", "japanese", "orange-square", "kanji" ], "k": [ 5, 38 ] }, "bearded_person": { "skin_variations": { "1F3FB": { "unified": "1F9D4-1F3FB", "non_qualified": null, "image": "1f9d4-1f3fb.png", "sheet_x": 43, "sheet_y": 17, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D4-1F3FC", "non_qualified": null, "image": "1f9d4-1f3fc.png", "sheet_x": 43, "sheet_y": 18, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D4-1F3FD", "non_qualified": null, "image": "1f9d4-1f3fd.png", "sheet_x": 43, "sheet_y": 19, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D4-1F3FE", "non_qualified": null, "image": "1f9d4-1f3fe.png", "sheet_x": 43, "sheet_y": 20, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D4-1F3FF", "non_qualified": null, "image": "1f9d4-1f3ff.png", "sheet_x": 43, "sheet_y": 21, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Bearded Person", "b": "1F9D4", "j": [ "person", "bewhiskered" ], "k": [ 43, 16 ], "o": 10 }, "flag-mx": { "a": "Mexico Flag", "b": "1F1F2-1F1FD", "k": [ 3, 37 ] }, "u6709": { "a": "Squared Cjk Unified Ideograph-6709", "b": "1F236", "j": [ "orange-square", "chinese", "have", "kanji" ], "k": [ 5, 37 ] }, "person_with_blond_hair": { "skin_variations": { "1F3FB": { "unified": "1F471-1F3FB", "non_qualified": null, "image": "1f471-1f3fb.png", "sheet_x": 21, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F471-1F3FC", "non_qualified": null, "image": "1f471-1f3fc.png", "sheet_x": 21, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F471-1F3FD", "non_qualified": null, "image": "1f471-1f3fd.png", "sheet_x": 21, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F471-1F3FE", "non_qualified": null, "image": "1f471-1f3fe.png", "sheet_x": 21, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F471-1F3FF", "non_qualified": null, "image": "1f471-1f3ff.png", "sheet_x": 21, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F471-200D-2642-FE0F", "a": "Person with Blond Hair", "b": "1F471", "k": [ 21, 20 ] }, "waning_crescent_moon": { "a": "Waning Crescent Moon Symbol", "b": "1F318", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 16 ] }, "flag-my": { "a": "Malaysia Flag", "b": "1F1F2-1F1FE", "k": [ 3, 38 ] }, "u6307": { "a": "Squared Cjk Unified Ideograph-6307", "b": "1F22F", "j": [ "chinese", "point", "green-square", "kanji" ], "k": [ 5, 32 ], "o": 5 }, "blond-haired-man": { "skin_variations": { "1F3FB": { "unified": "1F471-1F3FB-200D-2642-FE0F", "non_qualified": "1F471-1F3FB-200D-2642", "image": "1f471-1f3fb-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F471-1F3FC-200D-2642-FE0F", "non_qualified": "1F471-1F3FC-200D-2642", "image": "1f471-1f3fc-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F471-1F3FD-200D-2642-FE0F", "non_qualified": "1F471-1F3FD-200D-2642", "image": "1f471-1f3fd-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F471-1F3FE-200D-2642-FE0F", "non_qualified": "1F471-1F3FE-200D-2642", "image": "1f471-1f3fe-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F471-1F3FF-200D-2642-FE0F", "non_qualified": "1F471-1F3FF-200D-2642", "image": "1f471-1f3ff-200d-2642-fe0f.png", "sheet_x": 21, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F471", "a": "Blond Haired Man", "b": "1F471-200D-2642-FE0F", "c": "1F471-200D-2642", "k": [ 21, 14 ] }, "crescent_moon": { "a": "Crescent Moon", "b": "1F319", "j": [ "night", "sleep", "sky", "evening", "magic" ], "k": [ 6, 17 ] }, "flag-mz": { "a": "Mozambique Flag", "b": "1F1F2-1F1FF", "k": [ 3, 39 ] }, "new_moon_with_face": { "a": "New Moon with Face", "b": "1F31A", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 18 ] }, "flag-na": { "a": "Namibia Flag", "b": "1F1F3-1F1E6", "k": [ 3, 40 ] }, "blond-haired-woman": { "skin_variations": { "1F3FB": { "unified": "1F471-1F3FB-200D-2640-FE0F", "non_qualified": "1F471-1F3FB-200D-2640", "image": "1f471-1f3fb-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F471-1F3FC-200D-2640-FE0F", "non_qualified": "1F471-1F3FC-200D-2640", "image": "1f471-1f3fc-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F471-1F3FD-200D-2640-FE0F", "non_qualified": "1F471-1F3FD-200D-2640", "image": "1f471-1f3fd-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F471-1F3FE-200D-2640-FE0F", "non_qualified": "1F471-1F3FE-200D-2640", "image": "1f471-1f3fe-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F471-1F3FF-200D-2640-FE0F", "non_qualified": "1F471-1F3FF-200D-2640", "image": "1f471-1f3ff-200d-2640-fe0f.png", "sheet_x": 21, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Blond Haired Woman", "b": "1F471-200D-2640-FE0F", "c": "1F471-200D-2640", "k": [ 21, 8 ] }, "ideograph_advantage": { "a": "Circled Ideograph Advantage", "b": "1F250", "j": [ "chinese", "kanji", "obtain", "get", "circle" ], "k": [ 5, 42 ] }, "first_quarter_moon_with_face": { "a": "First Quarter Moon with Face", "b": "1F31B", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 19 ] }, "man_in_tuxedo": { "skin_variations": { "1F3FB": { "unified": "1F935-1F3FB", "non_qualified": null, "image": "1f935-1f3fb.png", "sheet_x": 39, "sheet_y": 35, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F935-1F3FC", "non_qualified": null, "image": "1f935-1f3fc.png", "sheet_x": 39, "sheet_y": 36, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F935-1F3FD", "non_qualified": null, "image": "1f935-1f3fd.png", "sheet_x": 39, "sheet_y": 37, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F935-1F3FE", "non_qualified": null, "image": "1f935-1f3fe.png", "sheet_x": 39, "sheet_y": 38, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F935-1F3FF", "non_qualified": null, "image": "1f935-1f3ff.png", "sheet_x": 39, "sheet_y": 39, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Man in Tuxedo", "b": "1F935", "j": [ "couple", "marriage", "wedding", "groom" ], "k": [ 39, 34 ], "o": 9 }, "flag-nc": { "a": "New Caledonia Flag", "b": "1F1F3-1F1E8", "k": [ 3, 41 ] }, "u5272": { "a": "Squared Cjk Unified Ideograph-5272", "b": "1F239", "j": [ "cut", "divide", "chinese", "kanji", "pink-square" ], "k": [ 5, 40 ] }, "flag-ne": { "a": "Niger Flag", "b": "1F1F3-1F1EA", "k": [ 3, 42 ] }, "last_quarter_moon_with_face": { "a": "Last Quarter Moon with Face", "b": "1F31C", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 20 ] }, "u7121": { "a": "Squared Cjk Unified Ideograph-7121", "b": "1F21A", "j": [ "nothing", "chinese", "kanji", "japanese", "orange-square" ], "k": [ 5, 31 ], "o": 5 }, "bride_with_veil": { "skin_variations": { "1F3FB": { "unified": "1F470-1F3FB", "non_qualified": null, "image": "1f470-1f3fb.png", "sheet_x": 21, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F470-1F3FC", "non_qualified": null, "image": "1f470-1f3fc.png", "sheet_x": 21, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F470-1F3FD", "non_qualified": null, "image": "1f470-1f3fd.png", "sheet_x": 21, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F470-1F3FE", "non_qualified": null, "image": "1f470-1f3fe.png", "sheet_x": 21, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F470-1F3FF", "non_qualified": null, "image": "1f470-1f3ff.png", "sheet_x": 21, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Bride with Veil", "b": "1F470", "j": [ "couple", "marriage", "wedding", "woman", "bride" ], "k": [ 21, 2 ] }, "u7981": { "a": "Squared Cjk Unified Ideograph-7981", "b": "1F232", "j": [ "kanji", "japanese", "chinese", "forbidden", "limit", "restricted", "red-square" ], "k": [ 5, 33 ] }, "pregnant_woman": { "skin_variations": { "1F3FB": { "unified": "1F930-1F3FB", "non_qualified": null, "image": "1f930-1f3fb.png", "sheet_x": 39, "sheet_y": 5, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F930-1F3FC", "non_qualified": null, "image": "1f930-1f3fc.png", "sheet_x": 39, "sheet_y": 6, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F930-1F3FD", "non_qualified": null, "image": "1f930-1f3fd.png", "sheet_x": 39, "sheet_y": 7, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F930-1F3FE", "non_qualified": null, "image": "1f930-1f3fe.png", "sheet_x": 39, "sheet_y": 8, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F930-1F3FF", "non_qualified": null, "image": "1f930-1f3ff.png", "sheet_x": 39, "sheet_y": 9, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Pregnant Woman", "b": "1F930", "j": [ "baby" ], "k": [ 39, 4 ], "o": 9 }, "thermometer": { "a": "Thermometer", "b": "1F321-FE0F", "c": "1F321", "j": [ "weather", "temperature", "hot", "cold" ], "k": [ 6, 25 ], "o": 7 }, "flag-nf": { "a": "Norfolk Island Flag", "b": "1F1F3-1F1EB", "k": [ 3, 43 ] }, "sunny": { "a": "Black Sun with Rays", "b": "2600-FE0F", "c": "2600", "j": [ "weather", "nature", "brightness", "summer", "beach", "spring" ], "k": [ 47, 16 ], "o": 1 }, "accept": { "a": "Circled Ideograph Accept", "b": "1F251", "j": [ "ok", "good", "chinese", "kanji", "agree", "yes", "orange-circle" ], "k": [ 5, 43 ] }, "flag-ng": { "a": "Nigeria Flag", "b": "1F1F3-1F1EC", "k": [ 3, 44 ] }, "breast-feeding": { "skin_variations": { "1F3FB": { "unified": "1F931-1F3FB", "non_qualified": null, "image": "1f931-1f3fb.png", "sheet_x": 39, "sheet_y": 11, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F931-1F3FC", "non_qualified": null, "image": "1f931-1f3fc.png", "sheet_x": 39, "sheet_y": 12, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F931-1F3FD", "non_qualified": null, "image": "1f931-1f3fd.png", "sheet_x": 39, "sheet_y": 13, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F931-1F3FE", "non_qualified": null, "image": "1f931-1f3fe.png", "sheet_x": 39, "sheet_y": 14, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F931-1F3FF", "non_qualified": null, "image": "1f931-1f3ff.png", "sheet_x": 39, "sheet_y": 15, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Breast-Feeding", "b": "1F931", "k": [ 39, 10 ], "o": 10 }, "full_moon_with_face": { "a": "Full Moon with Face", "b": "1F31D", "j": [ "nature", "twilight", "planet", "space", "night", "evening", "sleep" ], "k": [ 6, 21 ] }, "flag-ni": { "a": "Nicaragua Flag", "b": "1F1F3-1F1EE", "k": [ 3, 45 ] }, "u7533": { "a": "Squared Cjk Unified Ideograph-7533", "b": "1F238", "j": [ "chinese", "japanese", "kanji", "orange-square" ], "k": [ 5, 39 ] }, "angel": { "skin_variations": { "1F3FB": { "unified": "1F47C-1F3FB", "non_qualified": null, "image": "1f47c-1f3fb.png", "sheet_x": 22, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F47C-1F3FC", "non_qualified": null, "image": "1f47c-1f3fc.png", "sheet_x": 22, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F47C-1F3FD", "non_qualified": null, "image": "1f47c-1f3fd.png", "sheet_x": 22, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F47C-1F3FE", "non_qualified": null, "image": "1f47c-1f3fe.png", "sheet_x": 22, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F47C-1F3FF", "non_qualified": null, "image": "1f47c-1f3ff.png", "sheet_x": 22, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Baby Angel", "b": "1F47C", "j": [ "heaven", "wings", "halo" ], "k": [ 22, 43 ] }, "sun_with_face": { "a": "Sun with Face", "b": "1F31E", "j": [ "nature", "morning", "sky" ], "k": [ 6, 22 ] }, "santa": { "skin_variations": { "1F3FB": { "unified": "1F385-1F3FB", "non_qualified": null, "image": "1f385-1f3fb.png", "sheet_x": 8, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F385-1F3FC", "non_qualified": null, "image": "1f385-1f3fc.png", "sheet_x": 8, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F385-1F3FD", "non_qualified": null, "image": "1f385-1f3fd.png", "sheet_x": 8, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F385-1F3FE", "non_qualified": null, "image": "1f385-1f3fe.png", "sheet_x": 8, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F385-1F3FF", "non_qualified": null, "image": "1f385-1f3ff.png", "sheet_x": 8, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Father Christmas", "b": "1F385", "j": [ "festival", "man", "male", "xmas", "father christmas" ], "k": [ 8, 19 ] }, "u5408": { "a": "Squared Cjk Unified Ideograph-5408", "b": "1F234", "j": [ "japanese", "chinese", "join", "kanji", "red-square" ], "k": [ 5, 35 ] }, "flag-nl": { "a": "Netherlands Flag", "b": "1F1F3-1F1F1", "k": [ 3, 46 ] }, "mrs_claus": { "skin_variations": { "1F3FB": { "unified": "1F936-1F3FB", "non_qualified": null, "image": "1f936-1f3fb.png", "sheet_x": 39, "sheet_y": 41, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F936-1F3FC", "non_qualified": null, "image": "1f936-1f3fc.png", "sheet_x": 39, "sheet_y": 42, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F936-1F3FD", "non_qualified": null, "image": "1f936-1f3fd.png", "sheet_x": 39, "sheet_y": 43, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F936-1F3FE", "non_qualified": null, "image": "1f936-1f3fe.png", "sheet_x": 39, "sheet_y": 44, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F936-1F3FF", "non_qualified": null, "image": "1f936-1f3ff.png", "sheet_x": 39, "sheet_y": 45, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Mother Christmas", "b": "1F936", "j": [ "woman", "female", "xmas", "mother christmas" ], "k": [ 39, 40 ], "n": [ "mother_christmas" ], "o": 9 }, "u7a7a": { "a": "Squared Cjk Unified Ideograph-7a7a", "b": "1F233", "j": [ "kanji", "japanese", "chinese", "empty", "sky", "blue-square" ], "k": [ 5, 34 ] }, "star": { "a": "White Medium Star", "b": "2B50", "j": [ "night", "yellow" ], "k": [ 50, 22 ], "o": 5 }, "flag-no": { "a": "Norway Flag", "b": "1F1F3-1F1F4", "k": [ 3, 47 ] }, "mage": { "skin_variations": { "1F3FB": { "unified": "1F9D9-1F3FB", "non_qualified": null, "image": "1f9d9-1f3fb.png", "sheet_x": 44, "sheet_y": 43, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D9-1F3FB-200D-2640-FE0F" }, "1F3FC": { "unified": "1F9D9-1F3FC", "non_qualified": null, "image": "1f9d9-1f3fc.png", "sheet_x": 44, "sheet_y": 44, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D9-1F3FC-200D-2640-FE0F" }, "1F3FD": { "unified": "1F9D9-1F3FD", "non_qualified": null, "image": "1f9d9-1f3fd.png", "sheet_x": 44, "sheet_y": 45, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D9-1F3FD-200D-2640-FE0F" }, "1F3FE": { "unified": "1F9D9-1F3FE", "non_qualified": null, "image": "1f9d9-1f3fe.png", "sheet_x": 44, "sheet_y": 46, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D9-1F3FE-200D-2640-FE0F" }, "1F3FF": { "unified": "1F9D9-1F3FF", "non_qualified": null, "image": "1f9d9-1f3ff.png", "sheet_x": 44, "sheet_y": 47, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D9-1F3FF-200D-2640-FE0F" } }, "obsoleted_by": "1F9D9-200D-2640-FE0F", "a": "Mage", "b": "1F9D9", "k": [ 44, 42 ], "o": 10 }, "star2": { "a": "Glowing Star", "b": "1F31F", "j": [ "night", "sparkle", "awesome", "good", "magic" ], "k": [ 6, 23 ] }, "flag-np": { "a": "Nepal Flag", "b": "1F1F3-1F1F5", "k": [ 3, 48 ] }, "congratulations": { "a": "Circled Ideograph Congratulation", "b": "3297-FE0F", "c": "3297", "j": [ "chinese", "kanji", "japanese", "red-circle" ], "k": [ 50, 26 ], "o": 1 }, "flag-nr": { "a": "Nauru Flag", "b": "1F1F3-1F1F7", "k": [ 3, 49 ] }, "stars": { "a": "Shooting Star", "b": "1F320", "j": [ "night", "photo" ], "k": [ 6, 24 ] }, "female_mage": { "skin_variations": { "1F3FB": { "unified": "1F9D9-1F3FB-200D-2640-FE0F", "non_qualified": "1F9D9-1F3FB-200D-2640", "image": "1f9d9-1f3fb-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 31, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D9-1F3FB" }, "1F3FC": { "unified": "1F9D9-1F3FC-200D-2640-FE0F", "non_qualified": "1F9D9-1F3FC-200D-2640", "image": "1f9d9-1f3fc-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 32, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D9-1F3FC" }, "1F3FD": { "unified": "1F9D9-1F3FD-200D-2640-FE0F", "non_qualified": "1F9D9-1F3FD-200D-2640", "image": "1f9d9-1f3fd-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 33, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D9-1F3FD" }, "1F3FE": { "unified": "1F9D9-1F3FE-200D-2640-FE0F", "non_qualified": "1F9D9-1F3FE-200D-2640", "image": "1f9d9-1f3fe-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 34, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D9-1F3FE" }, "1F3FF": { "unified": "1F9D9-1F3FF-200D-2640-FE0F", "non_qualified": "1F9D9-1F3FF-200D-2640", "image": "1f9d9-1f3ff-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 35, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D9-1F3FF" } }, "obsoletes": "1F9D9", "a": "Female Mage", "b": "1F9D9-200D-2640-FE0F", "c": "1F9D9-200D-2640", "k": [ 44, 30 ], "o": 10 }, "secret": { "a": "Circled Ideograph Secret", "b": "3299-FE0F", "c": "3299", "j": [ "privacy", "chinese", "sshh", "kanji", "red-circle" ], "k": [ 50, 27 ], "o": 1 }, "flag-nu": { "a": "Niue Flag", "b": "1F1F3-1F1FA", "k": [ 3, 50 ] }, "u55b6": { "a": "Squared Cjk Unified Ideograph-55b6", "b": "1F23A", "j": [ "japanese", "opening hours", "orange-square" ], "k": [ 5, 41 ] }, "male_mage": { "skin_variations": { "1F3FB": { "unified": "1F9D9-1F3FB-200D-2642-FE0F", "non_qualified": "1F9D9-1F3FB-200D-2642", "image": "1f9d9-1f3fb-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 37, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D9-1F3FC-200D-2642-FE0F", "non_qualified": "1F9D9-1F3FC-200D-2642", "image": "1f9d9-1f3fc-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 38, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D9-1F3FD-200D-2642-FE0F", "non_qualified": "1F9D9-1F3FD-200D-2642", "image": "1f9d9-1f3fd-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 39, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D9-1F3FE-200D-2642-FE0F", "non_qualified": "1F9D9-1F3FE-200D-2642", "image": "1f9d9-1f3fe-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 40, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D9-1F3FF-200D-2642-FE0F", "non_qualified": "1F9D9-1F3FF-200D-2642", "image": "1f9d9-1f3ff-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 41, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Male Mage", "b": "1F9D9-200D-2642-FE0F", "c": "1F9D9-200D-2642", "k": [ 44, 36 ], "o": 10 }, "cloud": { "a": "Cloud", "b": "2601-FE0F", "c": "2601", "j": [ "weather", "sky" ], "k": [ 47, 17 ], "o": 1 }, "flag-nz": { "a": "New Zealand Flag", "b": "1F1F3-1F1FF", "k": [ 3, 51 ] }, "partly_sunny": { "a": "Sun Behind Cloud", "b": "26C5", "j": [ "weather", "nature", "cloudy", "morning", "fall", "spring" ], "k": [ 48, 29 ], "o": 5 }, "fairy": { "skin_variations": { "1F3FB": { "unified": "1F9DA-1F3FB", "non_qualified": null, "image": "1f9da-1f3fb.png", "sheet_x": 45, "sheet_y": 9, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DA-1F3FB-200D-2640-FE0F" }, "1F3FC": { "unified": "1F9DA-1F3FC", "non_qualified": null, "image": "1f9da-1f3fc.png", "sheet_x": 45, "sheet_y": 10, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DA-1F3FC-200D-2640-FE0F" }, "1F3FD": { "unified": "1F9DA-1F3FD", "non_qualified": null, "image": "1f9da-1f3fd.png", "sheet_x": 45, "sheet_y": 11, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DA-1F3FD-200D-2640-FE0F" }, "1F3FE": { "unified": "1F9DA-1F3FE", "non_qualified": null, "image": "1f9da-1f3fe.png", "sheet_x": 45, "sheet_y": 12, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DA-1F3FE-200D-2640-FE0F" }, "1F3FF": { "unified": "1F9DA-1F3FF", "non_qualified": null, "image": "1f9da-1f3ff.png", "sheet_x": 45, "sheet_y": 13, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DA-1F3FF-200D-2640-FE0F" } }, "obsoleted_by": "1F9DA-200D-2640-FE0F", "a": "Fairy", "b": "1F9DA", "k": [ 45, 8 ], "o": 10 }, "u6e80": { "a": "Squared Cjk Unified Ideograph-6e80", "b": "1F235", "j": [ "full", "chinese", "japanese", "red-square", "kanji" ], "k": [ 5, 36 ] }, "black_small_square": { "a": "Black Small Square", "b": "25AA-FE0F", "c": "25AA", "j": [ "shape", "icon" ], "k": [ 47, 8 ], "o": 1 }, "thunder_cloud_and_rain": { "a": "Thunder Cloud and Rain", "b": "26C8-FE0F", "c": "26C8", "k": [ 48, 30 ], "o": 5 }, "female_fairy": { "skin_variations": { "1F3FB": { "unified": "1F9DA-1F3FB-200D-2640-FE0F", "non_qualified": "1F9DA-1F3FB-200D-2640", "image": "1f9da-1f3fb-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 49, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DA-1F3FB" }, "1F3FC": { "unified": "1F9DA-1F3FC-200D-2640-FE0F", "non_qualified": "1F9DA-1F3FC-200D-2640", "image": "1f9da-1f3fc-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 50, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DA-1F3FC" }, "1F3FD": { "unified": "1F9DA-1F3FD-200D-2640-FE0F", "non_qualified": "1F9DA-1F3FD-200D-2640", "image": "1f9da-1f3fd-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 51, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DA-1F3FD" }, "1F3FE": { "unified": "1F9DA-1F3FE-200D-2640-FE0F", "non_qualified": "1F9DA-1F3FE-200D-2640", "image": "1f9da-1f3fe-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 0, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DA-1F3FE" }, "1F3FF": { "unified": "1F9DA-1F3FF-200D-2640-FE0F", "non_qualified": "1F9DA-1F3FF-200D-2640", "image": "1f9da-1f3ff-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 1, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DA-1F3FF" } }, "obsoletes": "1F9DA", "a": "Female Fairy", "b": "1F9DA-200D-2640-FE0F", "c": "1F9DA-200D-2640", "k": [ 44, 48 ], "o": 10 }, "flag-om": { "a": "Oman Flag", "b": "1F1F4-1F1F2", "k": [ 4, 0 ] }, "white_small_square": { "a": "White Small Square", "b": "25AB-FE0F", "c": "25AB", "j": [ "shape", "icon" ], "k": [ 47, 9 ], "o": 1 }, "flag-pa": { "a": "Panama Flag", "b": "1F1F5-1F1E6", "k": [ 4, 1 ] }, "mostly_sunny": { "a": "Mostly Sunny", "b": "1F324-FE0F", "c": "1F324", "k": [ 6, 26 ], "n": [ "sun_small_cloud" ], "o": 7 }, "male_fairy": { "skin_variations": { "1F3FB": { "unified": "1F9DA-1F3FB-200D-2642-FE0F", "non_qualified": "1F9DA-1F3FB-200D-2642", "image": "1f9da-1f3fb-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 3, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9DA-1F3FC-200D-2642-FE0F", "non_qualified": "1F9DA-1F3FC-200D-2642", "image": "1f9da-1f3fc-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 4, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9DA-1F3FD-200D-2642-FE0F", "non_qualified": "1F9DA-1F3FD-200D-2642", "image": "1f9da-1f3fd-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 5, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9DA-1F3FE-200D-2642-FE0F", "non_qualified": "1F9DA-1F3FE-200D-2642", "image": "1f9da-1f3fe-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 6, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9DA-1F3FF-200D-2642-FE0F", "non_qualified": "1F9DA-1F3FF-200D-2642", "image": "1f9da-1f3ff-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 7, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Male Fairy", "b": "1F9DA-200D-2642-FE0F", "c": "1F9DA-200D-2642", "k": [ 45, 2 ], "o": 10 }, "barely_sunny": { "a": "Barely Sunny", "b": "1F325-FE0F", "c": "1F325", "k": [ 6, 27 ], "n": [ "sun_behind_cloud" ], "o": 7 }, "white_medium_square": { "a": "White Medium Square", "b": "25FB-FE0F", "c": "25FB", "j": [ "shape", "stone", "icon" ], "k": [ 47, 12 ], "o": 3 }, "flag-pe": { "a": "Peru Flag", "b": "1F1F5-1F1EA", "k": [ 4, 2 ] }, "vampire": { "skin_variations": { "1F3FB": { "unified": "1F9DB-1F3FB", "non_qualified": null, "image": "1f9db-1f3fb.png", "sheet_x": 45, "sheet_y": 27, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DB-1F3FB-200D-2640-FE0F" }, "1F3FC": { "unified": "1F9DB-1F3FC", "non_qualified": null, "image": "1f9db-1f3fc.png", "sheet_x": 45, "sheet_y": 28, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DB-1F3FC-200D-2640-FE0F" }, "1F3FD": { "unified": "1F9DB-1F3FD", "non_qualified": null, "image": "1f9db-1f3fd.png", "sheet_x": 45, "sheet_y": 29, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DB-1F3FD-200D-2640-FE0F" }, "1F3FE": { "unified": "1F9DB-1F3FE", "non_qualified": null, "image": "1f9db-1f3fe.png", "sheet_x": 45, "sheet_y": 30, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DB-1F3FE-200D-2640-FE0F" }, "1F3FF": { "unified": "1F9DB-1F3FF", "non_qualified": null, "image": "1f9db-1f3ff.png", "sheet_x": 45, "sheet_y": 31, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoleted_by": "1F9DB-1F3FF-200D-2640-FE0F" } }, "obsoleted_by": "1F9DB-200D-2640-FE0F", "a": "Vampire", "b": "1F9DB", "k": [ 45, 26 ], "o": 10 }, "female_vampire": { "skin_variations": { "1F3FB": { "unified": "1F9DB-1F3FB-200D-2640-FE0F", "non_qualified": "1F9DB-1F3FB-200D-2640", "image": "1f9db-1f3fb-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 15, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DB-1F3FB" }, "1F3FC": { "unified": "1F9DB-1F3FC-200D-2640-FE0F", "non_qualified": "1F9DB-1F3FC-200D-2640", "image": "1f9db-1f3fc-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 16, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DB-1F3FC" }, "1F3FD": { "unified": "1F9DB-1F3FD-200D-2640-FE0F", "non_qualified": "1F9DB-1F3FD-200D-2640", "image": "1f9db-1f3fd-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 17, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DB-1F3FD" }, "1F3FE": { "unified": "1F9DB-1F3FE-200D-2640-FE0F", "non_qualified": "1F9DB-1F3FE-200D-2640", "image": "1f9db-1f3fe-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 18, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DB-1F3FE" }, "1F3FF": { "unified": "1F9DB-1F3FF-200D-2640-FE0F", "non_qualified": "1F9DB-1F3FF-200D-2640", "image": "1f9db-1f3ff-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 19, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DB-1F3FF" } }, "obsoletes": "1F9DB", "a": "Female Vampire", "b": "1F9DB-200D-2640-FE0F", "c": "1F9DB-200D-2640", "k": [ 45, 14 ], "o": 10 }, "partly_sunny_rain": { "a": "Partly Sunny Rain", "b": "1F326-FE0F", "c": "1F326", "k": [ 6, 28 ], "n": [ "sun_behind_rain_cloud" ], "o": 7 }, "flag-pf": { "a": "French Polynesia Flag", "b": "1F1F5-1F1EB", "k": [ 4, 3 ] }, "black_medium_square": { "a": "Black Medium Square", "b": "25FC-FE0F", "c": "25FC", "j": [ "shape", "button", "icon" ], "k": [ 47, 13 ], "o": 3 }, "white_medium_small_square": { "a": "White Medium Small Square", "b": "25FD", "j": [ "shape", "stone", "icon", "button" ], "k": [ 47, 14 ], "o": 3 }, "rain_cloud": { "a": "Rain Cloud", "b": "1F327-FE0F", "c": "1F327", "k": [ 6, 29 ], "o": 7 }, "flag-pg": { "a": "Papua New Guinea Flag", "b": "1F1F5-1F1EC", "k": [ 4, 4 ] }, "male_vampire": { "skin_variations": { "1F3FB": { "unified": "1F9DB-1F3FB-200D-2642-FE0F", "non_qualified": "1F9DB-1F3FB-200D-2642", "image": "1f9db-1f3fb-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 21, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9DB-1F3FC-200D-2642-FE0F", "non_qualified": "1F9DB-1F3FC-200D-2642", "image": "1f9db-1f3fc-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 22, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9DB-1F3FD-200D-2642-FE0F", "non_qualified": "1F9DB-1F3FD-200D-2642", "image": "1f9db-1f3fd-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 23, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9DB-1F3FE-200D-2642-FE0F", "non_qualified": "1F9DB-1F3FE-200D-2642", "image": "1f9db-1f3fe-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 24, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9DB-1F3FF-200D-2642-FE0F", "non_qualified": "1F9DB-1F3FF-200D-2642", "image": "1f9db-1f3ff-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 25, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Male Vampire", "b": "1F9DB-200D-2642-FE0F", "c": "1F9DB-200D-2642", "k": [ 45, 20 ], "o": 10 }, "flag-ph": { "a": "Philippines Flag", "b": "1F1F5-1F1ED", "k": [ 4, 5 ] }, "merperson": { "skin_variations": { "1F3FB": { "unified": "1F9DC-1F3FB", "non_qualified": null, "image": "1f9dc-1f3fb.png", "sheet_x": 45, "sheet_y": 45, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DC-1F3FB-200D-2642-FE0F" }, "1F3FC": { "unified": "1F9DC-1F3FC", "non_qualified": null, "image": "1f9dc-1f3fc.png", "sheet_x": 45, "sheet_y": 46, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DC-1F3FC-200D-2642-FE0F" }, "1F3FD": { "unified": "1F9DC-1F3FD", "non_qualified": null, "image": "1f9dc-1f3fd.png", "sheet_x": 45, "sheet_y": 47, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DC-1F3FD-200D-2642-FE0F" }, "1F3FE": { "unified": "1F9DC-1F3FE", "non_qualified": null, "image": "1f9dc-1f3fe.png", "sheet_x": 45, "sheet_y": 48, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DC-1F3FE-200D-2642-FE0F" }, "1F3FF": { "unified": "1F9DC-1F3FF", "non_qualified": null, "image": "1f9dc-1f3ff.png", "sheet_x": 45, "sheet_y": 49, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DC-1F3FF-200D-2642-FE0F" } }, "obsoleted_by": "1F9DC-200D-2642-FE0F", "a": "Merperson", "b": "1F9DC", "k": [ 45, 44 ], "o": 10 }, "black_medium_small_square": { "a": "Black Medium Small Square", "b": "25FE", "j": [ "icon", "shape", "button" ], "k": [ 47, 15 ], "o": 3 }, "snow_cloud": { "a": "Snow Cloud", "b": "1F328-FE0F", "c": "1F328", "k": [ 6, 30 ], "o": 7 }, "lightning": { "a": "Lightning", "b": "1F329-FE0F", "c": "1F329", "k": [ 6, 31 ], "n": [ "lightning_cloud" ], "o": 7 }, "black_large_square": { "a": "Black Large Square", "b": "2B1B", "j": [ "shape", "icon", "button" ], "k": [ 50, 20 ], "o": 5 }, "mermaid": { "skin_variations": { "1F3FB": { "unified": "1F9DC-1F3FB-200D-2640-FE0F", "non_qualified": "1F9DC-1F3FB-200D-2640", "image": "1f9dc-1f3fb-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 33, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9DC-1F3FC-200D-2640-FE0F", "non_qualified": "1F9DC-1F3FC-200D-2640", "image": "1f9dc-1f3fc-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 34, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9DC-1F3FD-200D-2640-FE0F", "non_qualified": "1F9DC-1F3FD-200D-2640", "image": "1f9dc-1f3fd-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 35, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9DC-1F3FE-200D-2640-FE0F", "non_qualified": "1F9DC-1F3FE-200D-2640", "image": "1f9dc-1f3fe-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 36, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9DC-1F3FF-200D-2640-FE0F", "non_qualified": "1F9DC-1F3FF-200D-2640", "image": "1f9dc-1f3ff-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 37, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Mermaid", "b": "1F9DC-200D-2640-FE0F", "c": "1F9DC-200D-2640", "j": [ "woman", "female", "merwoman", "ariel" ], "k": [ 45, 32 ], "o": 10 }, "flag-pk": { "a": "Pakistan Flag", "b": "1F1F5-1F1F0", "k": [ 4, 6 ] }, "merman": { "skin_variations": { "1F3FB": { "unified": "1F9DC-1F3FB-200D-2642-FE0F", "non_qualified": "1F9DC-1F3FB-200D-2642", "image": "1f9dc-1f3fb-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 39, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DC-1F3FB" }, "1F3FC": { "unified": "1F9DC-1F3FC-200D-2642-FE0F", "non_qualified": "1F9DC-1F3FC-200D-2642", "image": "1f9dc-1f3fc-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 40, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DC-1F3FC" }, "1F3FD": { "unified": "1F9DC-1F3FD-200D-2642-FE0F", "non_qualified": "1F9DC-1F3FD-200D-2642", "image": "1f9dc-1f3fd-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 41, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DC-1F3FD" }, "1F3FE": { "unified": "1F9DC-1F3FE-200D-2642-FE0F", "non_qualified": "1F9DC-1F3FE-200D-2642", "image": "1f9dc-1f3fe-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 42, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DC-1F3FE" }, "1F3FF": { "unified": "1F9DC-1F3FF-200D-2642-FE0F", "non_qualified": "1F9DC-1F3FF-200D-2642", "image": "1f9dc-1f3ff-200d-2642-fe0f.png", "sheet_x": 45, "sheet_y": 43, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DC-1F3FF" } }, "obsoletes": "1F9DC", "a": "Merman", "b": "1F9DC-200D-2642-FE0F", "c": "1F9DC-200D-2642", "j": [ "man", "male", "triton" ], "k": [ 45, 38 ], "o": 10 }, "white_large_square": { "a": "White Large Square", "b": "2B1C", "j": [ "shape", "icon", "stone", "button" ], "k": [ 50, 21 ], "o": 5 }, "tornado": { "a": "Tornado", "b": "1F32A-FE0F", "c": "1F32A", "j": [ "weather", "cyclone", "twister" ], "k": [ 6, 32 ], "n": [ "tornado_cloud" ], "o": 7 }, "flag-pl": { "a": "Poland Flag", "b": "1F1F5-1F1F1", "k": [ 4, 7 ] }, "elf": { "skin_variations": { "1F3FB": { "unified": "1F9DD-1F3FB", "non_qualified": null, "image": "1f9dd-1f3fb.png", "sheet_x": 46, "sheet_y": 11, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DD-1F3FB-200D-2642-FE0F" }, "1F3FC": { "unified": "1F9DD-1F3FC", "non_qualified": null, "image": "1f9dd-1f3fc.png", "sheet_x": 46, "sheet_y": 12, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DD-1F3FC-200D-2642-FE0F" }, "1F3FD": { "unified": "1F9DD-1F3FD", "non_qualified": null, "image": "1f9dd-1f3fd.png", "sheet_x": 46, "sheet_y": 13, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DD-1F3FD-200D-2642-FE0F" }, "1F3FE": { "unified": "1F9DD-1F3FE", "non_qualified": null, "image": "1f9dd-1f3fe.png", "sheet_x": 46, "sheet_y": 14, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DD-1F3FE-200D-2642-FE0F" }, "1F3FF": { "unified": "1F9DD-1F3FF", "non_qualified": null, "image": "1f9dd-1f3ff.png", "sheet_x": 46, "sheet_y": 15, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9DD-1F3FF-200D-2642-FE0F" } }, "obsoleted_by": "1F9DD-200D-2642-FE0F", "a": "Elf", "b": "1F9DD", "k": [ 46, 10 ], "o": 10 }, "fog": { "a": "Fog", "b": "1F32B-FE0F", "c": "1F32B", "j": [ "weather" ], "k": [ 6, 33 ], "o": 7 }, "large_orange_diamond": { "a": "Large Orange Diamond", "b": "1F536", "j": [ "shape", "jewel", "gem" ], "k": [ 28, 4 ] }, "flag-pm": { "a": "St. Pierre & Miquelon Flag", "b": "1F1F5-1F1F2", "k": [ 4, 8 ] }, "flag-pn": { "a": "Pitcairn Islands Flag", "b": "1F1F5-1F1F3", "k": [ 4, 9 ] }, "wind_blowing_face": { "a": "Wind Blowing Face", "b": "1F32C-FE0F", "c": "1F32C", "k": [ 6, 34 ], "o": 7 }, "female_elf": { "skin_variations": { "1F3FB": { "unified": "1F9DD-1F3FB-200D-2640-FE0F", "non_qualified": "1F9DD-1F3FB-200D-2640", "image": "1f9dd-1f3fb-200d-2640-fe0f.png", "sheet_x": 45, "sheet_y": 51, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9DD-1F3FC-200D-2640-FE0F", "non_qualified": "1F9DD-1F3FC-200D-2640", "image": "1f9dd-1f3fc-200d-2640-fe0f.png", "sheet_x": 46, "sheet_y": 0, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9DD-1F3FD-200D-2640-FE0F", "non_qualified": "1F9DD-1F3FD-200D-2640", "image": "1f9dd-1f3fd-200d-2640-fe0f.png", "sheet_x": 46, "sheet_y": 1, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9DD-1F3FE-200D-2640-FE0F", "non_qualified": "1F9DD-1F3FE-200D-2640", "image": "1f9dd-1f3fe-200d-2640-fe0f.png", "sheet_x": 46, "sheet_y": 2, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9DD-1F3FF-200D-2640-FE0F", "non_qualified": "1F9DD-1F3FF-200D-2640", "image": "1f9dd-1f3ff-200d-2640-fe0f.png", "sheet_x": 46, "sheet_y": 3, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Female Elf", "b": "1F9DD-200D-2640-FE0F", "c": "1F9DD-200D-2640", "k": [ 45, 50 ], "o": 10 }, "large_blue_diamond": { "a": "Large Blue Diamond", "b": "1F537", "j": [ "shape", "jewel", "gem" ], "k": [ 28, 5 ] }, "male_elf": { "skin_variations": { "1F3FB": { "unified": "1F9DD-1F3FB-200D-2642-FE0F", "non_qualified": "1F9DD-1F3FB-200D-2642", "image": "1f9dd-1f3fb-200d-2642-fe0f.png", "sheet_x": 46, "sheet_y": 5, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DD-1F3FB" }, "1F3FC": { "unified": "1F9DD-1F3FC-200D-2642-FE0F", "non_qualified": "1F9DD-1F3FC-200D-2642", "image": "1f9dd-1f3fc-200d-2642-fe0f.png", "sheet_x": 46, "sheet_y": 6, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DD-1F3FC" }, "1F3FD": { "unified": "1F9DD-1F3FD-200D-2642-FE0F", "non_qualified": "1F9DD-1F3FD-200D-2642", "image": "1f9dd-1f3fd-200d-2642-fe0f.png", "sheet_x": 46, "sheet_y": 7, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DD-1F3FD" }, "1F3FE": { "unified": "1F9DD-1F3FE-200D-2642-FE0F", "non_qualified": "1F9DD-1F3FE-200D-2642", "image": "1f9dd-1f3fe-200d-2642-fe0f.png", "sheet_x": 46, "sheet_y": 8, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DD-1F3FE" }, "1F3FF": { "unified": "1F9DD-1F3FF-200D-2642-FE0F", "non_qualified": "1F9DD-1F3FF-200D-2642", "image": "1f9dd-1f3ff-200d-2642-fe0f.png", "sheet_x": 46, "sheet_y": 9, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9DD-1F3FF" } }, "obsoletes": "1F9DD", "a": "Male Elf", "b": "1F9DD-200D-2642-FE0F", "c": "1F9DD-200D-2642", "k": [ 46, 4 ], "o": 10 }, "small_orange_diamond": { "a": "Small Orange Diamond", "b": "1F538", "j": [ "shape", "jewel", "gem" ], "k": [ 28, 6 ] }, "flag-pr": { "a": "Puerto Rico Flag", "b": "1F1F5-1F1F7", "k": [ 4, 10 ] }, "cyclone": { "a": "Cyclone", "b": "1F300", "j": [ "weather", "swirl", "blue", "cloud", "vortex", "spiral", "whirlpool", "spin", "tornado", "hurricane", "typhoon" ], "k": [ 5, 44 ] }, "rainbow": { "a": "Rainbow", "b": "1F308", "j": [ "nature", "happy", "unicorn_face", "photo", "sky", "spring" ], "k": [ 6, 0 ] }, "small_blue_diamond": { "a": "Small Blue Diamond", "b": "1F539", "j": [ "shape", "jewel", "gem" ], "k": [ 28, 7 ] }, "genie": { "obsoleted_by": "1F9DE-200D-2642-FE0F", "a": "Genie", "b": "1F9DE", "k": [ 46, 18 ], "o": 10 }, "flag-ps": { "a": "Palestinian Territories Flag", "b": "1F1F5-1F1F8", "k": [ 4, 11 ] }, "small_red_triangle": { "a": "Up-Pointing Red Triangle", "b": "1F53A", "j": [ "shape", "direction", "up", "top" ], "k": [ 28, 8 ] }, "closed_umbrella": { "a": "Closed Umbrella", "b": "1F302", "j": [ "weather", "rain", "drizzle" ], "k": [ 5, 46 ] }, "female_genie": { "a": "Female Genie", "b": "1F9DE-200D-2640-FE0F", "c": "1F9DE-200D-2640", "k": [ 46, 16 ], "o": 10 }, "flag-pt": { "a": "Portugal Flag", "b": "1F1F5-1F1F9", "k": [ 4, 12 ] }, "flag-pw": { "a": "Palau Flag", "b": "1F1F5-1F1FC", "k": [ 4, 13 ] }, "small_red_triangle_down": { "a": "Down-Pointing Red Triangle", "b": "1F53B", "j": [ "shape", "direction", "bottom" ], "k": [ 28, 9 ] }, "umbrella": { "a": "Umbrella", "b": "2602-FE0F", "c": "2602", "j": [ "rainy", "weather", "spring" ], "k": [ 47, 18 ], "o": 1 }, "male_genie": { "obsoletes": "1F9DE", "a": "Male Genie", "b": "1F9DE-200D-2642-FE0F", "c": "1F9DE-200D-2642", "k": [ 46, 17 ], "o": 10 }, "zombie": { "obsoleted_by": "1F9DF-200D-2642-FE0F", "a": "Zombie", "b": "1F9DF", "k": [ 46, 21 ], "o": 10 }, "flag-py": { "a": "Paraguay Flag", "b": "1F1F5-1F1FE", "k": [ 4, 14 ] }, "diamond_shape_with_a_dot_inside": { "a": "Diamond Shape with a Dot Inside", "b": "1F4A0", "j": [ "jewel", "blue", "gem", "crystal", "fancy" ], "k": [ 25, 6 ] }, "umbrella_with_rain_drops": { "a": "Umbrella with Rain Drops", "b": "2614", "k": [ 47, 23 ], "o": 4 }, "radio_button": { "a": "Radio Button", "b": "1F518", "j": [ "input", "old", "music", "circle" ], "k": [ 27, 26 ] }, "female_zombie": { "a": "Female Zombie", "b": "1F9DF-200D-2640-FE0F", "c": "1F9DF-200D-2640", "k": [ 46, 19 ], "o": 10 }, "flag-qa": { "a": "Qatar Flag", "b": "1F1F6-1F1E6", "k": [ 4, 15 ] }, "umbrella_on_ground": { "a": "Umbrella on Ground", "b": "26F1-FE0F", "c": "26F1", "k": [ 48, 39 ], "o": 5 }, "black_square_button": { "a": "Black Square Button", "b": "1F532", "j": [ "shape", "input", "frame" ], "k": [ 28, 0 ] }, "zap": { "a": "High Voltage Sign", "b": "26A1", "j": [ "thunder", "weather", "lightning bolt", "fast" ], "k": [ 48, 21 ], "o": 4 }, "male_zombie": { "obsoletes": "1F9DF", "a": "Male Zombie", "b": "1F9DF-200D-2642-FE0F", "c": "1F9DF-200D-2642", "k": [ 46, 20 ], "o": 10 }, "flag-re": { "a": "Réunion Flag", "b": "1F1F7-1F1EA", "k": [ 4, 16 ] }, "flag-ro": { "a": "Romania Flag", "b": "1F1F7-1F1F4", "k": [ 4, 17 ] }, "snowflake": { "a": "Snowflake", "b": "2744-FE0F", "c": "2744", "j": [ "winter", "season", "cold", "weather", "christmas", "xmas" ], "k": [ 49, 51 ], "o": 1 }, "white_square_button": { "a": "White Square Button", "b": "1F533", "j": [ "shape", "input" ], "k": [ 28, 1 ] }, "person_frowning": { "skin_variations": { "1F3FB": { "unified": "1F64D-1F3FB", "non_qualified": null, "image": "1f64d-1f3fb.png", "sheet_x": 33, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F64D-1F3FC", "non_qualified": null, "image": "1f64d-1f3fc.png", "sheet_x": 33, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F64D-1F3FD", "non_qualified": null, "image": "1f64d-1f3fd.png", "sheet_x": 33, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F64D-1F3FE", "non_qualified": null, "image": "1f64d-1f3fe.png", "sheet_x": 33, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F64D-1F3FF", "non_qualified": null, "image": "1f64d-1f3ff.png", "sheet_x": 33, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F64D-200D-2640-FE0F", "a": "Person Frowning", "b": "1F64D", "k": [ 33, 30 ] }, "flag-rs": { "a": "Serbia Flag", "b": "1F1F7-1F1F8", "k": [ 4, 18 ] }, "man-frowning": { "skin_variations": { "1F3FB": { "unified": "1F64D-1F3FB-200D-2642-FE0F", "non_qualified": "1F64D-1F3FB-200D-2642", "image": "1f64d-1f3fb-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F64D-1F3FC-200D-2642-FE0F", "non_qualified": "1F64D-1F3FC-200D-2642", "image": "1f64d-1f3fc-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F64D-1F3FD-200D-2642-FE0F", "non_qualified": "1F64D-1F3FD-200D-2642", "image": "1f64d-1f3fd-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F64D-1F3FE-200D-2642-FE0F", "non_qualified": "1F64D-1F3FE-200D-2642", "image": "1f64d-1f3fe-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F64D-1F3FF-200D-2642-FE0F", "non_qualified": "1F64D-1F3FF-200D-2642", "image": "1f64d-1f3ff-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Frowning", "b": "1F64D-200D-2642-FE0F", "c": "1F64D-200D-2642", "k": [ 33, 24 ] }, "white_circle": { "a": "Medium White Circle", "b": "26AA", "j": [ "shape", "round" ], "k": [ 48, 22 ], "o": 4 }, "snowman": { "a": "Snowman", "b": "2603-FE0F", "c": "2603", "j": [ "winter", "season", "cold", "weather", "christmas", "xmas", "frozen", "without_snow" ], "k": [ 47, 19 ], "o": 1 }, "snowman_without_snow": { "a": "Snowman Without Snow", "b": "26C4", "k": [ 48, 28 ], "o": 5 }, "ru": { "a": "Russia Flag", "b": "1F1F7-1F1FA", "j": [ "russian", "federation", "flag", "nation", "country", "banner" ], "k": [ 4, 19 ], "n": [ "flag-ru" ] }, "black_circle": { "a": "Medium Black Circle", "b": "26AB", "j": [ "shape", "button", "round" ], "k": [ 48, 23 ], "o": 4 }, "woman-frowning": { "skin_variations": { "1F3FB": { "unified": "1F64D-1F3FB-200D-2640-FE0F", "non_qualified": "1F64D-1F3FB-200D-2640", "image": "1f64d-1f3fb-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F64D-1F3FC-200D-2640-FE0F", "non_qualified": "1F64D-1F3FC-200D-2640", "image": "1f64d-1f3fc-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F64D-1F3FD-200D-2640-FE0F", "non_qualified": "1F64D-1F3FD-200D-2640", "image": "1f64d-1f3fd-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F64D-1F3FE-200D-2640-FE0F", "non_qualified": "1F64D-1F3FE-200D-2640", "image": "1f64d-1f3fe-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F64D-1F3FF-200D-2640-FE0F", "non_qualified": "1F64D-1F3FF-200D-2640", "image": "1f64d-1f3ff-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F64D", "a": "Woman Frowning", "b": "1F64D-200D-2640-FE0F", "c": "1F64D-200D-2640", "k": [ 33, 18 ] }, "flag-rw": { "a": "Rwanda Flag", "b": "1F1F7-1F1FC", "k": [ 4, 20 ] }, "comet": { "a": "Comet", "b": "2604-FE0F", "c": "2604", "j": [ "space" ], "k": [ 47, 20 ], "o": 1 }, "person_with_pouting_face": { "skin_variations": { "1F3FB": { "unified": "1F64E-1F3FB", "non_qualified": null, "image": "1f64e-1f3fb.png", "sheet_x": 33, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F64E-1F3FC", "non_qualified": null, "image": "1f64e-1f3fc.png", "sheet_x": 33, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F64E-1F3FD", "non_qualified": null, "image": "1f64e-1f3fd.png", "sheet_x": 33, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F64E-1F3FE", "non_qualified": null, "image": "1f64e-1f3fe.png", "sheet_x": 34, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F64E-1F3FF", "non_qualified": null, "image": "1f64e-1f3ff.png", "sheet_x": 34, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F64E-200D-2640-FE0F", "a": "Person with Pouting Face", "b": "1F64E", "k": [ 33, 48 ] }, "red_circle": { "a": "Large Red Circle", "b": "1F534", "j": [ "shape", "error", "danger" ], "k": [ 28, 2 ] }, "large_blue_circle": { "a": "Large Blue Circle", "b": "1F535", "j": [ "shape", "icon", "button" ], "k": [ 28, 3 ] }, "man-pouting": { "skin_variations": { "1F3FB": { "unified": "1F64E-1F3FB-200D-2642-FE0F", "non_qualified": "1F64E-1F3FB-200D-2642", "image": "1f64e-1f3fb-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F64E-1F3FC-200D-2642-FE0F", "non_qualified": "1F64E-1F3FC-200D-2642", "image": "1f64e-1f3fc-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F64E-1F3FD-200D-2642-FE0F", "non_qualified": "1F64E-1F3FD-200D-2642", "image": "1f64e-1f3fd-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F64E-1F3FE-200D-2642-FE0F", "non_qualified": "1F64E-1F3FE-200D-2642", "image": "1f64e-1f3fe-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F64E-1F3FF-200D-2642-FE0F", "non_qualified": "1F64E-1F3FF-200D-2642", "image": "1f64e-1f3ff-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Pouting", "b": "1F64E-200D-2642-FE0F", "c": "1F64E-200D-2642", "k": [ 33, 42 ] }, "flag-sa": { "a": "Saudi Arabia Flag", "b": "1F1F8-1F1E6", "k": [ 4, 21 ] }, "fire": { "a": "Fire", "b": "1F525", "j": [ "hot", "cook", "flame" ], "k": [ 27, 39 ] }, "woman-pouting": { "skin_variations": { "1F3FB": { "unified": "1F64E-1F3FB-200D-2640-FE0F", "non_qualified": "1F64E-1F3FB-200D-2640", "image": "1f64e-1f3fb-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F64E-1F3FC-200D-2640-FE0F", "non_qualified": "1F64E-1F3FC-200D-2640", "image": "1f64e-1f3fc-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F64E-1F3FD-200D-2640-FE0F", "non_qualified": "1F64E-1F3FD-200D-2640", "image": "1f64e-1f3fd-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F64E-1F3FE-200D-2640-FE0F", "non_qualified": "1F64E-1F3FE-200D-2640", "image": "1f64e-1f3fe-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F64E-1F3FF-200D-2640-FE0F", "non_qualified": "1F64E-1F3FF-200D-2640", "image": "1f64e-1f3ff-200d-2640-fe0f.png", "sheet_x": 33, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F64E", "a": "Woman Pouting", "b": "1F64E-200D-2640-FE0F", "c": "1F64E-200D-2640", "k": [ 33, 36 ] }, "flag-sb": { "a": "Solomon Islands Flag", "b": "1F1F8-1F1E7", "k": [ 4, 22 ] }, "droplet": { "a": "Droplet", "b": "1F4A7", "j": [ "water", "drip", "faucet", "spring" ], "k": [ 25, 13 ] }, "no_good": { "skin_variations": { "1F3FB": { "unified": "1F645-1F3FB", "non_qualified": null, "image": "1f645-1f3fb.png", "sheet_x": 32, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F645-1F3FC", "non_qualified": null, "image": "1f645-1f3fc.png", "sheet_x": 32, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F645-1F3FD", "non_qualified": null, "image": "1f645-1f3fd.png", "sheet_x": 32, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F645-1F3FE", "non_qualified": null, "image": "1f645-1f3fe.png", "sheet_x": 32, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F645-1F3FF", "non_qualified": null, "image": "1f645-1f3ff.png", "sheet_x": 32, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F645-200D-2640-FE0F", "a": "Face with No Good Gesture", "b": "1F645", "k": [ 32, 1 ] }, "flag-sc": { "a": "Seychelles Flag", "b": "1F1F8-1F1E8", "k": [ 4, 23 ] }, "ocean": { "a": "Water Wave", "b": "1F30A", "j": [ "sea", "water", "wave", "nature", "tsunami", "disaster" ], "k": [ 6, 2 ] }, "man-gesturing-no": { "skin_variations": { "1F3FB": { "unified": "1F645-1F3FB-200D-2642-FE0F", "non_qualified": "1F645-1F3FB-200D-2642", "image": "1f645-1f3fb-200d-2642-fe0f.png", "sheet_x": 31, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F645-1F3FC-200D-2642-FE0F", "non_qualified": "1F645-1F3FC-200D-2642", "image": "1f645-1f3fc-200d-2642-fe0f.png", "sheet_x": 31, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F645-1F3FD-200D-2642-FE0F", "non_qualified": "1F645-1F3FD-200D-2642", "image": "1f645-1f3fd-200d-2642-fe0f.png", "sheet_x": 31, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F645-1F3FE-200D-2642-FE0F", "non_qualified": "1F645-1F3FE-200D-2642", "image": "1f645-1f3fe-200d-2642-fe0f.png", "sheet_x": 31, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F645-1F3FF-200D-2642-FE0F", "non_qualified": "1F645-1F3FF-200D-2642", "image": "1f645-1f3ff-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Gesturing No", "b": "1F645-200D-2642-FE0F", "c": "1F645-200D-2642", "k": [ 31, 47 ] }, "flag-sd": { "a": "Sudan Flag", "b": "1F1F8-1F1E9", "k": [ 4, 24 ] }, "woman-gesturing-no": { "skin_variations": { "1F3FB": { "unified": "1F645-1F3FB-200D-2640-FE0F", "non_qualified": "1F645-1F3FB-200D-2640", "image": "1f645-1f3fb-200d-2640-fe0f.png", "sheet_x": 31, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F645-1F3FC-200D-2640-FE0F", "non_qualified": "1F645-1F3FC-200D-2640", "image": "1f645-1f3fc-200d-2640-fe0f.png", "sheet_x": 31, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F645-1F3FD-200D-2640-FE0F", "non_qualified": "1F645-1F3FD-200D-2640", "image": "1f645-1f3fd-200d-2640-fe0f.png", "sheet_x": 31, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F645-1F3FE-200D-2640-FE0F", "non_qualified": "1F645-1F3FE-200D-2640", "image": "1f645-1f3fe-200d-2640-fe0f.png", "sheet_x": 31, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F645-1F3FF-200D-2640-FE0F", "non_qualified": "1F645-1F3FF-200D-2640", "image": "1f645-1f3ff-200d-2640-fe0f.png", "sheet_x": 31, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F645", "a": "Woman Gesturing No", "b": "1F645-200D-2640-FE0F", "c": "1F645-200D-2640", "k": [ 31, 41 ] }, "flag-se": { "a": "Sweden Flag", "b": "1F1F8-1F1EA", "k": [ 4, 25 ] }, "flag-sg": { "a": "Singapore Flag", "b": "1F1F8-1F1EC", "k": [ 4, 26 ] }, "ok_woman": { "skin_variations": { "1F3FB": { "unified": "1F646-1F3FB", "non_qualified": null, "image": "1f646-1f3fb.png", "sheet_x": 32, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F646-1F3FC", "non_qualified": null, "image": "1f646-1f3fc.png", "sheet_x": 32, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F646-1F3FD", "non_qualified": null, "image": "1f646-1f3fd.png", "sheet_x": 32, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F646-1F3FE", "non_qualified": null, "image": "1f646-1f3fe.png", "sheet_x": 32, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F646-1F3FF", "non_qualified": null, "image": "1f646-1f3ff.png", "sheet_x": 32, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F646-200D-2640-FE0F", "a": "Face with Ok Gesture", "b": "1F646", "j": [ "women", "girl", "female", "pink", "human", "woman" ], "k": [ 32, 19 ] }, "flag-sh": { "a": "St. Helena Flag", "b": "1F1F8-1F1ED", "k": [ 4, 27 ] }, "man-gesturing-ok": { "skin_variations": { "1F3FB": { "unified": "1F646-1F3FB-200D-2642-FE0F", "non_qualified": "1F646-1F3FB-200D-2642", "image": "1f646-1f3fb-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F646-1F3FC-200D-2642-FE0F", "non_qualified": "1F646-1F3FC-200D-2642", "image": "1f646-1f3fc-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F646-1F3FD-200D-2642-FE0F", "non_qualified": "1F646-1F3FD-200D-2642", "image": "1f646-1f3fd-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F646-1F3FE-200D-2642-FE0F", "non_qualified": "1F646-1F3FE-200D-2642", "image": "1f646-1f3fe-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F646-1F3FF-200D-2642-FE0F", "non_qualified": "1F646-1F3FF-200D-2642", "image": "1f646-1f3ff-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Gesturing Ok", "b": "1F646-200D-2642-FE0F", "c": "1F646-200D-2642", "k": [ 32, 13 ] }, "flag-si": { "a": "Slovenia Flag", "b": "1F1F8-1F1EE", "k": [ 4, 28 ] }, "woman-gesturing-ok": { "skin_variations": { "1F3FB": { "unified": "1F646-1F3FB-200D-2640-FE0F", "non_qualified": "1F646-1F3FB-200D-2640", "image": "1f646-1f3fb-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F646-1F3FC-200D-2640-FE0F", "non_qualified": "1F646-1F3FC-200D-2640", "image": "1f646-1f3fc-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F646-1F3FD-200D-2640-FE0F", "non_qualified": "1F646-1F3FD-200D-2640", "image": "1f646-1f3fd-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F646-1F3FE-200D-2640-FE0F", "non_qualified": "1F646-1F3FE-200D-2640", "image": "1f646-1f3fe-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F646-1F3FF-200D-2640-FE0F", "non_qualified": "1F646-1F3FF-200D-2640", "image": "1f646-1f3ff-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F646", "a": "Woman Gesturing Ok", "b": "1F646-200D-2640-FE0F", "c": "1F646-200D-2640", "k": [ 32, 7 ] }, "information_desk_person": { "skin_variations": { "1F3FB": { "unified": "1F481-1F3FB", "non_qualified": null, "image": "1f481-1f3fb.png", "sheet_x": 23, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F481-1F3FC", "non_qualified": null, "image": "1f481-1f3fc.png", "sheet_x": 23, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F481-1F3FD", "non_qualified": null, "image": "1f481-1f3fd.png", "sheet_x": 23, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F481-1F3FE", "non_qualified": null, "image": "1f481-1f3fe.png", "sheet_x": 23, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F481-1F3FF", "non_qualified": null, "image": "1f481-1f3ff.png", "sheet_x": 23, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F481-200D-2640-FE0F", "a": "Information Desk Person", "b": "1F481", "k": [ 23, 13 ] }, "flag-sj": { "a": "Svalbard & Jan Mayen Flag", "b": "1F1F8-1F1EF", "k": [ 4, 29 ] }, "man-tipping-hand": { "skin_variations": { "1F3FB": { "unified": "1F481-1F3FB-200D-2642-FE0F", "non_qualified": "1F481-1F3FB-200D-2642", "image": "1f481-1f3fb-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F481-1F3FC-200D-2642-FE0F", "non_qualified": "1F481-1F3FC-200D-2642", "image": "1f481-1f3fc-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F481-1F3FD-200D-2642-FE0F", "non_qualified": "1F481-1F3FD-200D-2642", "image": "1f481-1f3fd-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F481-1F3FE-200D-2642-FE0F", "non_qualified": "1F481-1F3FE-200D-2642", "image": "1f481-1f3fe-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F481-1F3FF-200D-2642-FE0F", "non_qualified": "1F481-1F3FF-200D-2642", "image": "1f481-1f3ff-200d-2642-fe0f.png", "sheet_x": 23, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Tipping Hand", "b": "1F481-200D-2642-FE0F", "c": "1F481-200D-2642", "k": [ 23, 7 ] }, "flag-sk": { "a": "Slovakia Flag", "b": "1F1F8-1F1F0", "k": [ 4, 30 ] }, "flag-sl": { "a": "Sierra Leone Flag", "b": "1F1F8-1F1F1", "k": [ 4, 31 ] }, "woman-tipping-hand": { "skin_variations": { "1F3FB": { "unified": "1F481-1F3FB-200D-2640-FE0F", "non_qualified": "1F481-1F3FB-200D-2640", "image": "1f481-1f3fb-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F481-1F3FC-200D-2640-FE0F", "non_qualified": "1F481-1F3FC-200D-2640", "image": "1f481-1f3fc-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F481-1F3FD-200D-2640-FE0F", "non_qualified": "1F481-1F3FD-200D-2640", "image": "1f481-1f3fd-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F481-1F3FE-200D-2640-FE0F", "non_qualified": "1F481-1F3FE-200D-2640", "image": "1f481-1f3fe-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F481-1F3FF-200D-2640-FE0F", "non_qualified": "1F481-1F3FF-200D-2640", "image": "1f481-1f3ff-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F481", "a": "Woman Tipping Hand", "b": "1F481-200D-2640-FE0F", "c": "1F481-200D-2640", "k": [ 23, 1 ] }, "flag-sm": { "a": "San Marino Flag", "b": "1F1F8-1F1F2", "k": [ 4, 32 ] }, "raising_hand": { "skin_variations": { "1F3FB": { "unified": "1F64B-1F3FB", "non_qualified": null, "image": "1f64b-1f3fb.png", "sheet_x": 33, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F64B-1F3FC", "non_qualified": null, "image": "1f64b-1f3fc.png", "sheet_x": 33, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F64B-1F3FD", "non_qualified": null, "image": "1f64b-1f3fd.png", "sheet_x": 33, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F64B-1F3FE", "non_qualified": null, "image": "1f64b-1f3fe.png", "sheet_x": 33, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F64B-1F3FF", "non_qualified": null, "image": "1f64b-1f3ff.png", "sheet_x": 33, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F64B-200D-2640-FE0F", "a": "Happy Person Raising One Hand", "b": "1F64B", "k": [ 33, 6 ] }, "flag-sn": { "a": "Senegal Flag", "b": "1F1F8-1F1F3", "k": [ 4, 33 ] }, "man-raising-hand": { "skin_variations": { "1F3FB": { "unified": "1F64B-1F3FB-200D-2642-FE0F", "non_qualified": "1F64B-1F3FB-200D-2642", "image": "1f64b-1f3fb-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F64B-1F3FC-200D-2642-FE0F", "non_qualified": "1F64B-1F3FC-200D-2642", "image": "1f64b-1f3fc-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F64B-1F3FD-200D-2642-FE0F", "non_qualified": "1F64B-1F3FD-200D-2642", "image": "1f64b-1f3fd-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F64B-1F3FE-200D-2642-FE0F", "non_qualified": "1F64B-1F3FE-200D-2642", "image": "1f64b-1f3fe-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F64B-1F3FF-200D-2642-FE0F", "non_qualified": "1F64B-1F3FF-200D-2642", "image": "1f64b-1f3ff-200d-2642-fe0f.png", "sheet_x": 33, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Raising Hand", "b": "1F64B-200D-2642-FE0F", "c": "1F64B-200D-2642", "k": [ 33, 0 ] }, "flag-so": { "a": "Somalia Flag", "b": "1F1F8-1F1F4", "k": [ 4, 34 ] }, "woman-raising-hand": { "skin_variations": { "1F3FB": { "unified": "1F64B-1F3FB-200D-2640-FE0F", "non_qualified": "1F64B-1F3FB-200D-2640", "image": "1f64b-1f3fb-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F64B-1F3FC-200D-2640-FE0F", "non_qualified": "1F64B-1F3FC-200D-2640", "image": "1f64b-1f3fc-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F64B-1F3FD-200D-2640-FE0F", "non_qualified": "1F64B-1F3FD-200D-2640", "image": "1f64b-1f3fd-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F64B-1F3FE-200D-2640-FE0F", "non_qualified": "1F64B-1F3FE-200D-2640", "image": "1f64b-1f3fe-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F64B-1F3FF-200D-2640-FE0F", "non_qualified": "1F64B-1F3FF-200D-2640", "image": "1f64b-1f3ff-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F64B", "a": "Woman Raising Hand", "b": "1F64B-200D-2640-FE0F", "c": "1F64B-200D-2640", "k": [ 32, 46 ] }, "flag-sr": { "a": "Suriname Flag", "b": "1F1F8-1F1F7", "k": [ 4, 35 ] }, "bow": { "skin_variations": { "1F3FB": { "unified": "1F647-1F3FB", "non_qualified": null, "image": "1f647-1f3fb.png", "sheet_x": 32, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F647-1F3FC", "non_qualified": null, "image": "1f647-1f3fc.png", "sheet_x": 32, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F647-1F3FD", "non_qualified": null, "image": "1f647-1f3fd.png", "sheet_x": 32, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F647-1F3FE", "non_qualified": null, "image": "1f647-1f3fe.png", "sheet_x": 32, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F647-1F3FF", "non_qualified": null, "image": "1f647-1f3ff.png", "sheet_x": 32, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F647-200D-2642-FE0F", "a": "Person Bowing Deeply", "b": "1F647", "k": [ 32, 37 ] }, "man-bowing": { "skin_variations": { "1F3FB": { "unified": "1F647-1F3FB-200D-2642-FE0F", "non_qualified": "1F647-1F3FB-200D-2642", "image": "1f647-1f3fb-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F647-1F3FC-200D-2642-FE0F", "non_qualified": "1F647-1F3FC-200D-2642", "image": "1f647-1f3fc-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F647-1F3FD-200D-2642-FE0F", "non_qualified": "1F647-1F3FD-200D-2642", "image": "1f647-1f3fd-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F647-1F3FE-200D-2642-FE0F", "non_qualified": "1F647-1F3FE-200D-2642", "image": "1f647-1f3fe-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F647-1F3FF-200D-2642-FE0F", "non_qualified": "1F647-1F3FF-200D-2642", "image": "1f647-1f3ff-200d-2642-fe0f.png", "sheet_x": 32, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F647", "a": "Man Bowing", "b": "1F647-200D-2642-FE0F", "c": "1F647-200D-2642", "k": [ 32, 31 ] }, "flag-ss": { "a": "South Sudan Flag", "b": "1F1F8-1F1F8", "k": [ 4, 36 ] }, "woman-bowing": { "skin_variations": { "1F3FB": { "unified": "1F647-1F3FB-200D-2640-FE0F", "non_qualified": "1F647-1F3FB-200D-2640", "image": "1f647-1f3fb-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F647-1F3FC-200D-2640-FE0F", "non_qualified": "1F647-1F3FC-200D-2640", "image": "1f647-1f3fc-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F647-1F3FD-200D-2640-FE0F", "non_qualified": "1F647-1F3FD-200D-2640", "image": "1f647-1f3fd-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F647-1F3FE-200D-2640-FE0F", "non_qualified": "1F647-1F3FE-200D-2640", "image": "1f647-1f3fe-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F647-1F3FF-200D-2640-FE0F", "non_qualified": "1F647-1F3FF-200D-2640", "image": "1f647-1f3ff-200d-2640-fe0f.png", "sheet_x": 32, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Bowing", "b": "1F647-200D-2640-FE0F", "c": "1F647-200D-2640", "k": [ 32, 25 ] }, "flag-st": { "a": "São Tomé & Príncipe Flag", "b": "1F1F8-1F1F9", "k": [ 4, 37 ] }, "face_palm": { "skin_variations": { "1F3FB": { "unified": "1F926-1F3FB", "non_qualified": null, "image": "1f926-1f3fb.png", "sheet_x": 38, "sheet_y": 42, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F926-1F3FC", "non_qualified": null, "image": "1f926-1f3fc.png", "sheet_x": 38, "sheet_y": 43, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F926-1F3FD", "non_qualified": null, "image": "1f926-1f3fd.png", "sheet_x": 38, "sheet_y": 44, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F926-1F3FE", "non_qualified": null, "image": "1f926-1f3fe.png", "sheet_x": 38, "sheet_y": 45, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F926-1F3FF", "non_qualified": null, "image": "1f926-1f3ff.png", "sheet_x": 38, "sheet_y": 46, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Face Palm", "b": "1F926", "k": [ 38, 41 ], "o": 9 }, "flag-sv": { "a": "El Salvador Flag", "b": "1F1F8-1F1FB", "k": [ 4, 38 ] }, "man-facepalming": { "skin_variations": { "1F3FB": { "unified": "1F926-1F3FB-200D-2642-FE0F", "non_qualified": "1F926-1F3FB-200D-2642", "image": "1f926-1f3fb-200d-2642-fe0f.png", "sheet_x": 38, "sheet_y": 36, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F926-1F3FC-200D-2642-FE0F", "non_qualified": "1F926-1F3FC-200D-2642", "image": "1f926-1f3fc-200d-2642-fe0f.png", "sheet_x": 38, "sheet_y": 37, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F926-1F3FD-200D-2642-FE0F", "non_qualified": "1F926-1F3FD-200D-2642", "image": "1f926-1f3fd-200d-2642-fe0f.png", "sheet_x": 38, "sheet_y": 38, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F926-1F3FE-200D-2642-FE0F", "non_qualified": "1F926-1F3FE-200D-2642", "image": "1f926-1f3fe-200d-2642-fe0f.png", "sheet_x": 38, "sheet_y": 39, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F926-1F3FF-200D-2642-FE0F", "non_qualified": "1F926-1F3FF-200D-2642", "image": "1f926-1f3ff-200d-2642-fe0f.png", "sheet_x": 38, "sheet_y": 40, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Facepalming", "b": "1F926-200D-2642-FE0F", "c": "1F926-200D-2642", "k": [ 38, 35 ], "o": 9 }, "flag-sx": { "a": "Sint Maarten Flag", "b": "1F1F8-1F1FD", "k": [ 4, 39 ] }, "flag-sy": { "a": "Syria Flag", "b": "1F1F8-1F1FE", "k": [ 4, 40 ] }, "woman-facepalming": { "skin_variations": { "1F3FB": { "unified": "1F926-1F3FB-200D-2640-FE0F", "non_qualified": "1F926-1F3FB-200D-2640", "image": "1f926-1f3fb-200d-2640-fe0f.png", "sheet_x": 38, "sheet_y": 30, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F926-1F3FC-200D-2640-FE0F", "non_qualified": "1F926-1F3FC-200D-2640", "image": "1f926-1f3fc-200d-2640-fe0f.png", "sheet_x": 38, "sheet_y": 31, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F926-1F3FD-200D-2640-FE0F", "non_qualified": "1F926-1F3FD-200D-2640", "image": "1f926-1f3fd-200d-2640-fe0f.png", "sheet_x": 38, "sheet_y": 32, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F926-1F3FE-200D-2640-FE0F", "non_qualified": "1F926-1F3FE-200D-2640", "image": "1f926-1f3fe-200d-2640-fe0f.png", "sheet_x": 38, "sheet_y": 33, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F926-1F3FF-200D-2640-FE0F", "non_qualified": "1F926-1F3FF-200D-2640", "image": "1f926-1f3ff-200d-2640-fe0f.png", "sheet_x": 38, "sheet_y": 34, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Facepalming", "b": "1F926-200D-2640-FE0F", "c": "1F926-200D-2640", "k": [ 38, 29 ], "o": 9 }, "shrug": { "skin_variations": { "1F3FB": { "unified": "1F937-1F3FB", "non_qualified": null, "image": "1f937-1f3fb.png", "sheet_x": 40, "sheet_y": 7, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F937-1F3FC", "non_qualified": null, "image": "1f937-1f3fc.png", "sheet_x": 40, "sheet_y": 8, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F937-1F3FD", "non_qualified": null, "image": "1f937-1f3fd.png", "sheet_x": 40, "sheet_y": 9, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F937-1F3FE", "non_qualified": null, "image": "1f937-1f3fe.png", "sheet_x": 40, "sheet_y": 10, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F937-1F3FF", "non_qualified": null, "image": "1f937-1f3ff.png", "sheet_x": 40, "sheet_y": 11, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Shrug", "b": "1F937", "k": [ 40, 6 ], "o": 9 }, "flag-sz": { "a": "Swaziland Flag", "b": "1F1F8-1F1FF", "k": [ 4, 41 ] }, "flag-ta": { "a": "Tristan Da Cunha Flag", "b": "1F1F9-1F1E6", "k": [ 4, 42 ] }, "man-shrugging": { "skin_variations": { "1F3FB": { "unified": "1F937-1F3FB-200D-2642-FE0F", "non_qualified": "1F937-1F3FB-200D-2642", "image": "1f937-1f3fb-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 1, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F937-1F3FC-200D-2642-FE0F", "non_qualified": "1F937-1F3FC-200D-2642", "image": "1f937-1f3fc-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 2, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F937-1F3FD-200D-2642-FE0F", "non_qualified": "1F937-1F3FD-200D-2642", "image": "1f937-1f3fd-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 3, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F937-1F3FE-200D-2642-FE0F", "non_qualified": "1F937-1F3FE-200D-2642", "image": "1f937-1f3fe-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 4, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F937-1F3FF-200D-2642-FE0F", "non_qualified": "1F937-1F3FF-200D-2642", "image": "1f937-1f3ff-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 5, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Shrugging", "b": "1F937-200D-2642-FE0F", "c": "1F937-200D-2642", "k": [ 40, 0 ], "o": 9 }, "woman-shrugging": { "skin_variations": { "1F3FB": { "unified": "1F937-1F3FB-200D-2640-FE0F", "non_qualified": "1F937-1F3FB-200D-2640", "image": "1f937-1f3fb-200d-2640-fe0f.png", "sheet_x": 39, "sheet_y": 47, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F937-1F3FC-200D-2640-FE0F", "non_qualified": "1F937-1F3FC-200D-2640", "image": "1f937-1f3fc-200d-2640-fe0f.png", "sheet_x": 39, "sheet_y": 48, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F937-1F3FD-200D-2640-FE0F", "non_qualified": "1F937-1F3FD-200D-2640", "image": "1f937-1f3fd-200d-2640-fe0f.png", "sheet_x": 39, "sheet_y": 49, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F937-1F3FE-200D-2640-FE0F", "non_qualified": "1F937-1F3FE-200D-2640", "image": "1f937-1f3fe-200d-2640-fe0f.png", "sheet_x": 39, "sheet_y": 50, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F937-1F3FF-200D-2640-FE0F", "non_qualified": "1F937-1F3FF-200D-2640", "image": "1f937-1f3ff-200d-2640-fe0f.png", "sheet_x": 39, "sheet_y": 51, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Shrugging", "b": "1F937-200D-2640-FE0F", "c": "1F937-200D-2640", "k": [ 39, 46 ], "o": 9 }, "flag-tc": { "a": "Turks & Caicos Islands Flag", "b": "1F1F9-1F1E8", "k": [ 4, 43 ] }, "massage": { "skin_variations": { "1F3FB": { "unified": "1F486-1F3FB", "non_qualified": null, "image": "1f486-1f3fb.png", "sheet_x": 24, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F486-1F3FC", "non_qualified": null, "image": "1f486-1f3fc.png", "sheet_x": 24, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F486-1F3FD", "non_qualified": null, "image": "1f486-1f3fd.png", "sheet_x": 24, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F486-1F3FE", "non_qualified": null, "image": "1f486-1f3fe.png", "sheet_x": 24, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F486-1F3FF", "non_qualified": null, "image": "1f486-1f3ff.png", "sheet_x": 24, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F486-200D-2640-FE0F", "a": "Face Massage", "b": "1F486", "k": [ 24, 10 ] }, "flag-td": { "a": "Chad Flag", "b": "1F1F9-1F1E9", "k": [ 4, 44 ] }, "man-getting-massage": { "skin_variations": { "1F3FB": { "unified": "1F486-1F3FB-200D-2642-FE0F", "non_qualified": "1F486-1F3FB-200D-2642", "image": "1f486-1f3fb-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F486-1F3FC-200D-2642-FE0F", "non_qualified": "1F486-1F3FC-200D-2642", "image": "1f486-1f3fc-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F486-1F3FD-200D-2642-FE0F", "non_qualified": "1F486-1F3FD-200D-2642", "image": "1f486-1f3fd-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F486-1F3FE-200D-2642-FE0F", "non_qualified": "1F486-1F3FE-200D-2642", "image": "1f486-1f3fe-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F486-1F3FF-200D-2642-FE0F", "non_qualified": "1F486-1F3FF-200D-2642", "image": "1f486-1f3ff-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Getting Massage", "b": "1F486-200D-2642-FE0F", "c": "1F486-200D-2642", "k": [ 24, 4 ] }, "flag-tf": { "a": "French Southern Territories Flag", "b": "1F1F9-1F1EB", "k": [ 4, 45 ] }, "woman-getting-massage": { "skin_variations": { "1F3FB": { "unified": "1F486-1F3FB-200D-2640-FE0F", "non_qualified": "1F486-1F3FB-200D-2640", "image": "1f486-1f3fb-200d-2640-fe0f.png", "sheet_x": 23, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F486-1F3FC-200D-2640-FE0F", "non_qualified": "1F486-1F3FC-200D-2640", "image": "1f486-1f3fc-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F486-1F3FD-200D-2640-FE0F", "non_qualified": "1F486-1F3FD-200D-2640", "image": "1f486-1f3fd-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F486-1F3FE-200D-2640-FE0F", "non_qualified": "1F486-1F3FE-200D-2640", "image": "1f486-1f3fe-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F486-1F3FF-200D-2640-FE0F", "non_qualified": "1F486-1F3FF-200D-2640", "image": "1f486-1f3ff-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F486", "a": "Woman Getting Massage", "b": "1F486-200D-2640-FE0F", "c": "1F486-200D-2640", "k": [ 23, 50 ] }, "flag-tg": { "a": "Togo Flag", "b": "1F1F9-1F1EC", "k": [ 4, 46 ] }, "haircut": { "skin_variations": { "1F3FB": { "unified": "1F487-1F3FB", "non_qualified": null, "image": "1f487-1f3fb.png", "sheet_x": 24, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F487-1F3FC", "non_qualified": null, "image": "1f487-1f3fc.png", "sheet_x": 24, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F487-1F3FD", "non_qualified": null, "image": "1f487-1f3fd.png", "sheet_x": 24, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F487-1F3FE", "non_qualified": null, "image": "1f487-1f3fe.png", "sheet_x": 24, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F487-1F3FF", "non_qualified": null, "image": "1f487-1f3ff.png", "sheet_x": 24, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F487-200D-2640-FE0F", "a": "Haircut", "b": "1F487", "k": [ 24, 28 ] }, "flag-th": { "a": "Thailand Flag", "b": "1F1F9-1F1ED", "k": [ 4, 47 ] }, "man-getting-haircut": { "skin_variations": { "1F3FB": { "unified": "1F487-1F3FB-200D-2642-FE0F", "non_qualified": "1F487-1F3FB-200D-2642", "image": "1f487-1f3fb-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F487-1F3FC-200D-2642-FE0F", "non_qualified": "1F487-1F3FC-200D-2642", "image": "1f487-1f3fc-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F487-1F3FD-200D-2642-FE0F", "non_qualified": "1F487-1F3FD-200D-2642", "image": "1f487-1f3fd-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F487-1F3FE-200D-2642-FE0F", "non_qualified": "1F487-1F3FE-200D-2642", "image": "1f487-1f3fe-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F487-1F3FF-200D-2642-FE0F", "non_qualified": "1F487-1F3FF-200D-2642", "image": "1f487-1f3ff-200d-2642-fe0f.png", "sheet_x": 24, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Getting Haircut", "b": "1F487-200D-2642-FE0F", "c": "1F487-200D-2642", "k": [ 24, 22 ] }, "flag-tj": { "a": "Tajikistan Flag", "b": "1F1F9-1F1EF", "k": [ 4, 48 ] }, "flag-tk": { "a": "Tokelau Flag", "b": "1F1F9-1F1F0", "k": [ 4, 49 ] }, "woman-getting-haircut": { "skin_variations": { "1F3FB": { "unified": "1F487-1F3FB-200D-2640-FE0F", "non_qualified": "1F487-1F3FB-200D-2640", "image": "1f487-1f3fb-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F487-1F3FC-200D-2640-FE0F", "non_qualified": "1F487-1F3FC-200D-2640", "image": "1f487-1f3fc-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F487-1F3FD-200D-2640-FE0F", "non_qualified": "1F487-1F3FD-200D-2640", "image": "1f487-1f3fd-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F487-1F3FE-200D-2640-FE0F", "non_qualified": "1F487-1F3FE-200D-2640", "image": "1f487-1f3fe-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F487-1F3FF-200D-2640-FE0F", "non_qualified": "1F487-1F3FF-200D-2640", "image": "1f487-1f3ff-200d-2640-fe0f.png", "sheet_x": 24, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F487", "a": "Woman Getting Haircut", "b": "1F487-200D-2640-FE0F", "c": "1F487-200D-2640", "k": [ 24, 16 ] }, "walking": { "skin_variations": { "1F3FB": { "unified": "1F6B6-1F3FB", "non_qualified": null, "image": "1f6b6-1f3fb.png", "sheet_x": 36, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F6B6-1F3FC", "non_qualified": null, "image": "1f6b6-1f3fc.png", "sheet_x": 36, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F6B6-1F3FD", "non_qualified": null, "image": "1f6b6-1f3fd.png", "sheet_x": 36, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F6B6-1F3FE", "non_qualified": null, "image": "1f6b6-1f3fe.png", "sheet_x": 36, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F6B6-1F3FF", "non_qualified": null, "image": "1f6b6-1f3ff.png", "sheet_x": 36, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F6B6-200D-2642-FE0F", "a": "Pedestrian", "b": "1F6B6", "k": [ 36, 21 ] }, "flag-tl": { "a": "Timor-Leste Flag", "b": "1F1F9-1F1F1", "k": [ 4, 50 ] }, "man-walking": { "skin_variations": { "1F3FB": { "unified": "1F6B6-1F3FB-200D-2642-FE0F", "non_qualified": "1F6B6-1F3FB-200D-2642", "image": "1f6b6-1f3fb-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6B6-1F3FC-200D-2642-FE0F", "non_qualified": "1F6B6-1F3FC-200D-2642", "image": "1f6b6-1f3fc-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6B6-1F3FD-200D-2642-FE0F", "non_qualified": "1F6B6-1F3FD-200D-2642", "image": "1f6b6-1f3fd-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6B6-1F3FE-200D-2642-FE0F", "non_qualified": "1F6B6-1F3FE-200D-2642", "image": "1f6b6-1f3fe-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6B6-1F3FF-200D-2642-FE0F", "non_qualified": "1F6B6-1F3FF-200D-2642", "image": "1f6b6-1f3ff-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F6B6", "a": "Man Walking", "b": "1F6B6-200D-2642-FE0F", "c": "1F6B6-200D-2642", "k": [ 36, 15 ] }, "flag-tm": { "a": "Turkmenistan Flag", "b": "1F1F9-1F1F2", "k": [ 4, 51 ] }, "woman-walking": { "skin_variations": { "1F3FB": { "unified": "1F6B6-1F3FB-200D-2640-FE0F", "non_qualified": "1F6B6-1F3FB-200D-2640", "image": "1f6b6-1f3fb-200d-2640-fe0f.png", "sheet_x": 36, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6B6-1F3FC-200D-2640-FE0F", "non_qualified": "1F6B6-1F3FC-200D-2640", "image": "1f6b6-1f3fc-200d-2640-fe0f.png", "sheet_x": 36, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6B6-1F3FD-200D-2640-FE0F", "non_qualified": "1F6B6-1F3FD-200D-2640", "image": "1f6b6-1f3fd-200d-2640-fe0f.png", "sheet_x": 36, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6B6-1F3FE-200D-2640-FE0F", "non_qualified": "1F6B6-1F3FE-200D-2640", "image": "1f6b6-1f3fe-200d-2640-fe0f.png", "sheet_x": 36, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6B6-1F3FF-200D-2640-FE0F", "non_qualified": "1F6B6-1F3FF-200D-2640", "image": "1f6b6-1f3ff-200d-2640-fe0f.png", "sheet_x": 36, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Walking", "b": "1F6B6-200D-2640-FE0F", "c": "1F6B6-200D-2640", "k": [ 36, 9 ] }, "flag-tn": { "a": "Tunisia Flag", "b": "1F1F9-1F1F3", "k": [ 5, 0 ] }, "runner": { "skin_variations": { "1F3FB": { "unified": "1F3C3-1F3FB", "non_qualified": null, "image": "1f3c3-1f3fb.png", "sheet_x": 9, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F3C3-1F3FC", "non_qualified": null, "image": "1f3c3-1f3fc.png", "sheet_x": 9, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F3C3-1F3FD", "non_qualified": null, "image": "1f3c3-1f3fd.png", "sheet_x": 9, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F3C3-1F3FE", "non_qualified": null, "image": "1f3c3-1f3fe.png", "sheet_x": 9, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F3C3-1F3FF", "non_qualified": null, "image": "1f3c3-1f3ff.png", "sheet_x": 9, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F3C3-200D-2642-FE0F", "a": "Runner", "b": "1F3C3", "k": [ 9, 46 ], "n": [ "running" ] }, "flag-to": { "a": "Tonga Flag", "b": "1F1F9-1F1F4", "k": [ 5, 1 ] }, "man-running": { "skin_variations": { "1F3FB": { "unified": "1F3C3-1F3FB-200D-2642-FE0F", "non_qualified": "1F3C3-1F3FB-200D-2642", "image": "1f3c3-1f3fb-200d-2642-fe0f.png", "sheet_x": 9, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3C3-1F3FC-200D-2642-FE0F", "non_qualified": "1F3C3-1F3FC-200D-2642", "image": "1f3c3-1f3fc-200d-2642-fe0f.png", "sheet_x": 9, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3C3-1F3FD-200D-2642-FE0F", "non_qualified": "1F3C3-1F3FD-200D-2642", "image": "1f3c3-1f3fd-200d-2642-fe0f.png", "sheet_x": 9, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3C3-1F3FE-200D-2642-FE0F", "non_qualified": "1F3C3-1F3FE-200D-2642", "image": "1f3c3-1f3fe-200d-2642-fe0f.png", "sheet_x": 9, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3C3-1F3FF-200D-2642-FE0F", "non_qualified": "1F3C3-1F3FF-200D-2642", "image": "1f3c3-1f3ff-200d-2642-fe0f.png", "sheet_x": 9, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F3C3", "a": "Man Running", "b": "1F3C3-200D-2642-FE0F", "c": "1F3C3-200D-2642", "k": [ 9, 40 ] }, "flag-tr": { "a": "Turkey Flag", "b": "1F1F9-1F1F7", "k": [ 5, 2 ] }, "flag-tt": { "a": "Trinidad & Tobago Flag", "b": "1F1F9-1F1F9", "k": [ 5, 3 ] }, "woman-running": { "skin_variations": { "1F3FB": { "unified": "1F3C3-1F3FB-200D-2640-FE0F", "non_qualified": "1F3C3-1F3FB-200D-2640", "image": "1f3c3-1f3fb-200d-2640-fe0f.png", "sheet_x": 9, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3C3-1F3FC-200D-2640-FE0F", "non_qualified": "1F3C3-1F3FC-200D-2640", "image": "1f3c3-1f3fc-200d-2640-fe0f.png", "sheet_x": 9, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3C3-1F3FD-200D-2640-FE0F", "non_qualified": "1F3C3-1F3FD-200D-2640", "image": "1f3c3-1f3fd-200d-2640-fe0f.png", "sheet_x": 9, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3C3-1F3FE-200D-2640-FE0F", "non_qualified": "1F3C3-1F3FE-200D-2640", "image": "1f3c3-1f3fe-200d-2640-fe0f.png", "sheet_x": 9, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3C3-1F3FF-200D-2640-FE0F", "non_qualified": "1F3C3-1F3FF-200D-2640", "image": "1f3c3-1f3ff-200d-2640-fe0f.png", "sheet_x": 9, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Running", "b": "1F3C3-200D-2640-FE0F", "c": "1F3C3-200D-2640", "k": [ 9, 34 ] }, "flag-tv": { "a": "Tuvalu Flag", "b": "1F1F9-1F1FB", "k": [ 5, 4 ] }, "dancer": { "skin_variations": { "1F3FB": { "unified": "1F483-1F3FB", "non_qualified": null, "image": "1f483-1f3fb.png", "sheet_x": 23, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F483-1F3FC", "non_qualified": null, "image": "1f483-1f3fc.png", "sheet_x": 23, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F483-1F3FD", "non_qualified": null, "image": "1f483-1f3fd.png", "sheet_x": 23, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F483-1F3FE", "non_qualified": null, "image": "1f483-1f3fe.png", "sheet_x": 23, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F483-1F3FF", "non_qualified": null, "image": "1f483-1f3ff.png", "sheet_x": 23, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Dancer", "b": "1F483", "j": [ "female", "girl", "woman", "fun" ], "k": [ 23, 37 ] }, "flag-tw": { "a": "Taiwan Flag", "b": "1F1F9-1F1FC", "k": [ 5, 5 ] }, "man_dancing": { "skin_variations": { "1F3FB": { "unified": "1F57A-1F3FB", "non_qualified": null, "image": "1f57a-1f3fb.png", "sheet_x": 29, "sheet_y": 22, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F57A-1F3FC", "non_qualified": null, "image": "1f57a-1f3fc.png", "sheet_x": 29, "sheet_y": 23, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F57A-1F3FD", "non_qualified": null, "image": "1f57a-1f3fd.png", "sheet_x": 29, "sheet_y": 24, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F57A-1F3FE", "non_qualified": null, "image": "1f57a-1f3fe.png", "sheet_x": 29, "sheet_y": 25, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F57A-1F3FF", "non_qualified": null, "image": "1f57a-1f3ff.png", "sheet_x": 29, "sheet_y": 26, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Man Dancing", "b": "1F57A", "j": [ "male", "boy", "fun", "dancer" ], "k": [ 29, 21 ], "o": 9 }, "dancers": { "obsoleted_by": "1F46F-200D-2640-FE0F", "a": "Woman with Bunny Ears", "b": "1F46F", "k": [ 21, 1 ] }, "flag-tz": { "a": "Tanzania Flag", "b": "1F1F9-1F1FF", "k": [ 5, 6 ] }, "flag-ua": { "a": "Ukraine Flag", "b": "1F1FA-1F1E6", "k": [ 5, 7 ] }, "man-with-bunny-ears-partying": { "a": "Man with Bunny Ears Partying", "b": "1F46F-200D-2642-FE0F", "c": "1F46F-200D-2642", "k": [ 21, 0 ] }, "woman-with-bunny-ears-partying": { "obsoletes": "1F46F", "a": "Woman with Bunny Ears Partying", "b": "1F46F-200D-2640-FE0F", "c": "1F46F-200D-2640", "k": [ 20, 51 ] }, "flag-ug": { "a": "Uganda Flag", "b": "1F1FA-1F1EC", "k": [ 5, 8 ] }, "flag-um": { "a": "U.s. Outlying Islands Flag", "b": "1F1FA-1F1F2", "k": [ 5, 9 ] }, "person_in_steamy_room": { "skin_variations": { "1F3FB": { "unified": "1F9D6-1F3FB", "non_qualified": null, "image": "1f9d6-1f3fb.png", "sheet_x": 43, "sheet_y": 41, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D6-1F3FB-200D-2642-FE0F" }, "1F3FC": { "unified": "1F9D6-1F3FC", "non_qualified": null, "image": "1f9d6-1f3fc.png", "sheet_x": 43, "sheet_y": 42, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D6-1F3FC-200D-2642-FE0F" }, "1F3FD": { "unified": "1F9D6-1F3FD", "non_qualified": null, "image": "1f9d6-1f3fd.png", "sheet_x": 43, "sheet_y": 43, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D6-1F3FD-200D-2642-FE0F" }, "1F3FE": { "unified": "1F9D6-1F3FE", "non_qualified": null, "image": "1f9d6-1f3fe.png", "sheet_x": 43, "sheet_y": 44, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D6-1F3FE-200D-2642-FE0F" }, "1F3FF": { "unified": "1F9D6-1F3FF", "non_qualified": null, "image": "1f9d6-1f3ff.png", "sheet_x": 43, "sheet_y": 45, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D6-1F3FF-200D-2642-FE0F" } }, "obsoleted_by": "1F9D6-200D-2642-FE0F", "a": "Person in Steamy Room", "b": "1F9D6", "k": [ 43, 40 ], "o": 10 }, "woman_in_steamy_room": { "skin_variations": { "1F3FB": { "unified": "1F9D6-1F3FB-200D-2640-FE0F", "non_qualified": "1F9D6-1F3FB-200D-2640", "image": "1f9d6-1f3fb-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 29, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D6-1F3FC-200D-2640-FE0F", "non_qualified": "1F9D6-1F3FC-200D-2640", "image": "1f9d6-1f3fc-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 30, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D6-1F3FD-200D-2640-FE0F", "non_qualified": "1F9D6-1F3FD-200D-2640", "image": "1f9d6-1f3fd-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 31, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D6-1F3FE-200D-2640-FE0F", "non_qualified": "1F9D6-1F3FE-200D-2640", "image": "1f9d6-1f3fe-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 32, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D6-1F3FF-200D-2640-FE0F", "non_qualified": "1F9D6-1F3FF-200D-2640", "image": "1f9d6-1f3ff-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 33, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman in Steamy Room", "b": "1F9D6-200D-2640-FE0F", "c": "1F9D6-200D-2640", "j": [ "female", "woman", "spa", "steamroom", "sauna" ], "k": [ 43, 28 ], "o": 10 }, "flag-un": { "a": "United Nations Flag", "b": "1F1FA-1F1F3", "k": [ 5, 10 ] }, "us": { "a": "United States Flag", "b": "1F1FA-1F1F8", "j": [ "united", "states", "america", "flag", "nation", "country", "banner" ], "k": [ 5, 11 ], "n": [ "flag-us" ] }, "man_in_steamy_room": { "skin_variations": { "1F3FB": { "unified": "1F9D6-1F3FB-200D-2642-FE0F", "non_qualified": "1F9D6-1F3FB-200D-2642", "image": "1f9d6-1f3fb-200d-2642-fe0f.png", "sheet_x": 43, "sheet_y": 35, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D6-1F3FB" }, "1F3FC": { "unified": "1F9D6-1F3FC-200D-2642-FE0F", "non_qualified": "1F9D6-1F3FC-200D-2642", "image": "1f9d6-1f3fc-200d-2642-fe0f.png", "sheet_x": 43, "sheet_y": 36, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D6-1F3FC" }, "1F3FD": { "unified": "1F9D6-1F3FD-200D-2642-FE0F", "non_qualified": "1F9D6-1F3FD-200D-2642", "image": "1f9d6-1f3fd-200d-2642-fe0f.png", "sheet_x": 43, "sheet_y": 37, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D6-1F3FD" }, "1F3FE": { "unified": "1F9D6-1F3FE-200D-2642-FE0F", "non_qualified": "1F9D6-1F3FE-200D-2642", "image": "1f9d6-1f3fe-200d-2642-fe0f.png", "sheet_x": 43, "sheet_y": 38, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D6-1F3FE" }, "1F3FF": { "unified": "1F9D6-1F3FF-200D-2642-FE0F", "non_qualified": "1F9D6-1F3FF-200D-2642", "image": "1f9d6-1f3ff-200d-2642-fe0f.png", "sheet_x": 43, "sheet_y": 39, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D6-1F3FF" } }, "obsoletes": "1F9D6", "a": "Man in Steamy Room", "b": "1F9D6-200D-2642-FE0F", "c": "1F9D6-200D-2642", "j": [ "male", "man", "spa", "steamroom", "sauna" ], "k": [ 43, 34 ], "o": 10 }, "person_climbing": { "skin_variations": { "1F3FB": { "unified": "1F9D7-1F3FB", "non_qualified": null, "image": "1f9d7-1f3fb.png", "sheet_x": 44, "sheet_y": 7, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D7-1F3FB-200D-2640-FE0F" }, "1F3FC": { "unified": "1F9D7-1F3FC", "non_qualified": null, "image": "1f9d7-1f3fc.png", "sheet_x": 44, "sheet_y": 8, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D7-1F3FC-200D-2640-FE0F" }, "1F3FD": { "unified": "1F9D7-1F3FD", "non_qualified": null, "image": "1f9d7-1f3fd.png", "sheet_x": 44, "sheet_y": 9, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D7-1F3FD-200D-2640-FE0F" }, "1F3FE": { "unified": "1F9D7-1F3FE", "non_qualified": null, "image": "1f9d7-1f3fe.png", "sheet_x": 44, "sheet_y": 10, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D7-1F3FE-200D-2640-FE0F" }, "1F3FF": { "unified": "1F9D7-1F3FF", "non_qualified": null, "image": "1f9d7-1f3ff.png", "sheet_x": 44, "sheet_y": 11, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D7-1F3FF-200D-2640-FE0F" } }, "obsoleted_by": "1F9D7-200D-2640-FE0F", "a": "Person Climbing", "b": "1F9D7", "k": [ 44, 6 ], "o": 10 }, "flag-uy": { "a": "Uruguay Flag", "b": "1F1FA-1F1FE", "k": [ 5, 12 ] }, "woman_climbing": { "skin_variations": { "1F3FB": { "unified": "1F9D7-1F3FB-200D-2640-FE0F", "non_qualified": "1F9D7-1F3FB-200D-2640", "image": "1f9d7-1f3fb-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 47, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D7-1F3FB" }, "1F3FC": { "unified": "1F9D7-1F3FC-200D-2640-FE0F", "non_qualified": "1F9D7-1F3FC-200D-2640", "image": "1f9d7-1f3fc-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 48, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D7-1F3FC" }, "1F3FD": { "unified": "1F9D7-1F3FD-200D-2640-FE0F", "non_qualified": "1F9D7-1F3FD-200D-2640", "image": "1f9d7-1f3fd-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 49, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D7-1F3FD" }, "1F3FE": { "unified": "1F9D7-1F3FE-200D-2640-FE0F", "non_qualified": "1F9D7-1F3FE-200D-2640", "image": "1f9d7-1f3fe-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 50, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D7-1F3FE" }, "1F3FF": { "unified": "1F9D7-1F3FF-200D-2640-FE0F", "non_qualified": "1F9D7-1F3FF-200D-2640", "image": "1f9d7-1f3ff-200d-2640-fe0f.png", "sheet_x": 43, "sheet_y": 51, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D7-1F3FF" } }, "obsoletes": "1F9D7", "a": "Woman Climbing", "b": "1F9D7-200D-2640-FE0F", "c": "1F9D7-200D-2640", "k": [ 43, 46 ], "o": 10 }, "flag-uz": { "a": "Uzbekistan Flag", "b": "1F1FA-1F1FF", "k": [ 5, 13 ] }, "man_climbing": { "skin_variations": { "1F3FB": { "unified": "1F9D7-1F3FB-200D-2642-FE0F", "non_qualified": "1F9D7-1F3FB-200D-2642", "image": "1f9d7-1f3fb-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 1, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D7-1F3FC-200D-2642-FE0F", "non_qualified": "1F9D7-1F3FC-200D-2642", "image": "1f9d7-1f3fc-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 2, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D7-1F3FD-200D-2642-FE0F", "non_qualified": "1F9D7-1F3FD-200D-2642", "image": "1f9d7-1f3fd-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 3, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D7-1F3FE-200D-2642-FE0F", "non_qualified": "1F9D7-1F3FE-200D-2642", "image": "1f9d7-1f3fe-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 4, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D7-1F3FF-200D-2642-FE0F", "non_qualified": "1F9D7-1F3FF-200D-2642", "image": "1f9d7-1f3ff-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 5, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Climbing", "b": "1F9D7-200D-2642-FE0F", "c": "1F9D7-200D-2642", "k": [ 44, 0 ], "o": 10 }, "flag-va": { "a": "Vatican City Flag", "b": "1F1FB-1F1E6", "k": [ 5, 14 ] }, "person_in_lotus_position": { "skin_variations": { "1F3FB": { "unified": "1F9D8-1F3FB", "non_qualified": null, "image": "1f9d8-1f3fb.png", "sheet_x": 44, "sheet_y": 25, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D8-1F3FB-200D-2640-FE0F" }, "1F3FC": { "unified": "1F9D8-1F3FC", "non_qualified": null, "image": "1f9d8-1f3fc.png", "sheet_x": 44, "sheet_y": 26, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D8-1F3FC-200D-2640-FE0F" }, "1F3FD": { "unified": "1F9D8-1F3FD", "non_qualified": null, "image": "1f9d8-1f3fd.png", "sheet_x": 44, "sheet_y": 27, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D8-1F3FD-200D-2640-FE0F" }, "1F3FE": { "unified": "1F9D8-1F3FE", "non_qualified": null, "image": "1f9d8-1f3fe.png", "sheet_x": 44, "sheet_y": 28, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D8-1F3FE-200D-2640-FE0F" }, "1F3FF": { "unified": "1F9D8-1F3FF", "non_qualified": null, "image": "1f9d8-1f3ff.png", "sheet_x": 44, "sheet_y": 29, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false, "obsoleted_by": "1F9D8-1F3FF-200D-2640-FE0F" } }, "obsoleted_by": "1F9D8-200D-2640-FE0F", "a": "Person in Lotus Position", "b": "1F9D8", "k": [ 44, 24 ], "o": 10 }, "flag-vc": { "a": "St. Vincent & Grenadines Flag", "b": "1F1FB-1F1E8", "k": [ 5, 15 ] }, "flag-ve": { "a": "Venezuela Flag", "b": "1F1FB-1F1EA", "k": [ 5, 16 ] }, "woman_in_lotus_position": { "skin_variations": { "1F3FB": { "unified": "1F9D8-1F3FB-200D-2640-FE0F", "non_qualified": "1F9D8-1F3FB-200D-2640", "image": "1f9d8-1f3fb-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 13, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D8-1F3FB" }, "1F3FC": { "unified": "1F9D8-1F3FC-200D-2640-FE0F", "non_qualified": "1F9D8-1F3FC-200D-2640", "image": "1f9d8-1f3fc-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 14, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D8-1F3FC" }, "1F3FD": { "unified": "1F9D8-1F3FD-200D-2640-FE0F", "non_qualified": "1F9D8-1F3FD-200D-2640", "image": "1f9d8-1f3fd-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 15, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D8-1F3FD" }, "1F3FE": { "unified": "1F9D8-1F3FE-200D-2640-FE0F", "non_qualified": "1F9D8-1F3FE-200D-2640", "image": "1f9d8-1f3fe-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 16, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D8-1F3FE" }, "1F3FF": { "unified": "1F9D8-1F3FF-200D-2640-FE0F", "non_qualified": "1F9D8-1F3FF-200D-2640", "image": "1f9d8-1f3ff-200d-2640-fe0f.png", "sheet_x": 44, "sheet_y": 17, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false, "obsoletes": "1F9D8-1F3FF" } }, "obsoletes": "1F9D8", "a": "Woman in Lotus Position", "b": "1F9D8-200D-2640-FE0F", "c": "1F9D8-200D-2640", "j": [ "woman", "female", "meditation", "yoga", "serenity", "zen", "mindfulness" ], "k": [ 44, 12 ], "o": 10 }, "man_in_lotus_position": { "skin_variations": { "1F3FB": { "unified": "1F9D8-1F3FB-200D-2642-FE0F", "non_qualified": "1F9D8-1F3FB-200D-2642", "image": "1f9d8-1f3fb-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 19, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F9D8-1F3FC-200D-2642-FE0F", "non_qualified": "1F9D8-1F3FC-200D-2642", "image": "1f9d8-1f3fc-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 20, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F9D8-1F3FD-200D-2642-FE0F", "non_qualified": "1F9D8-1F3FD-200D-2642", "image": "1f9d8-1f3fd-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 21, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F9D8-1F3FE-200D-2642-FE0F", "non_qualified": "1F9D8-1F3FE-200D-2642", "image": "1f9d8-1f3fe-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 22, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F9D8-1F3FF-200D-2642-FE0F", "non_qualified": "1F9D8-1F3FF-200D-2642", "image": "1f9d8-1f3ff-200d-2642-fe0f.png", "sheet_x": 44, "sheet_y": 23, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man in Lotus Position", "b": "1F9D8-200D-2642-FE0F", "c": "1F9D8-200D-2642", "j": [ "man", "male", "meditation", "yoga", "serenity", "zen", "mindfulness" ], "k": [ 44, 18 ], "o": 10 }, "flag-vg": { "a": "British Virgin Islands Flag", "b": "1F1FB-1F1EC", "k": [ 5, 17 ] }, "flag-vi": { "a": "U.s. Virgin Islands Flag", "b": "1F1FB-1F1EE", "k": [ 5, 18 ] }, "bath": { "skin_variations": { "1F3FB": { "unified": "1F6C0-1F3FB", "non_qualified": null, "image": "1f6c0-1f3fb.png", "sheet_x": 36, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F6C0-1F3FC", "non_qualified": null, "image": "1f6c0-1f3fc.png", "sheet_x": 36, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F6C0-1F3FD", "non_qualified": null, "image": "1f6c0-1f3fd.png", "sheet_x": 36, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F6C0-1F3FE", "non_qualified": null, "image": "1f6c0-1f3fe.png", "sheet_x": 36, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F6C0-1F3FF", "non_qualified": null, "image": "1f6c0-1f3ff.png", "sheet_x": 36, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Bath", "b": "1F6C0", "j": [ "clean", "shower", "bathroom" ], "k": [ 36, 36 ] }, "sleeping_accommodation": { "skin_variations": { "1F3FB": { "unified": "1F6CC-1F3FB", "non_qualified": null, "image": "1f6cc-1f3fb.png", "sheet_x": 36, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F6CC-1F3FC", "non_qualified": null, "image": "1f6cc-1f3fc.png", "sheet_x": 36, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F6CC-1F3FD", "non_qualified": null, "image": "1f6cc-1f3fd.png", "sheet_x": 36, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F6CC-1F3FE", "non_qualified": null, "image": "1f6cc-1f3fe.png", "sheet_x": 37, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F6CC-1F3FF", "non_qualified": null, "image": "1f6cc-1f3ff.png", "sheet_x": 37, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Sleeping Accommodation", "b": "1F6CC", "k": [ 36, 48 ], "o": 7 }, "flag-vn": { "a": "Vietnam Flag", "b": "1F1FB-1F1F3", "k": [ 5, 19 ] }, "man_in_business_suit_levitating": { "skin_variations": { "1F3FB": { "unified": "1F574-1F3FB", "non_qualified": null, "image": "1f574-1f3fb.png", "sheet_x": 28, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F574-1F3FC", "non_qualified": null, "image": "1f574-1f3fc.png", "sheet_x": 28, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F574-1F3FD", "non_qualified": null, "image": "1f574-1f3fd.png", "sheet_x": 28, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F574-1F3FE", "non_qualified": null, "image": "1f574-1f3fe.png", "sheet_x": 28, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F574-1F3FF", "non_qualified": null, "image": "1f574-1f3ff.png", "sheet_x": 28, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Man in Business Suit Levitating", "b": "1F574-FE0F", "c": "1F574", "k": [ 28, 45 ], "o": 7 }, "flag-vu": { "a": "Vanuatu Flag", "b": "1F1FB-1F1FA", "k": [ 5, 20 ] }, "flag-wf": { "a": "Wallis & Futuna Flag", "b": "1F1FC-1F1EB", "k": [ 5, 21 ] }, "speaking_head_in_silhouette": { "a": "Speaking Head in Silhouette", "b": "1F5E3-FE0F", "c": "1F5E3", "k": [ 30, 14 ], "o": 7 }, "bust_in_silhouette": { "a": "Bust in Silhouette", "b": "1F464", "j": [ "user", "person", "human" ], "k": [ 15, 40 ] }, "flag-ws": { "a": "Samoa Flag", "b": "1F1FC-1F1F8", "k": [ 5, 22 ] }, "busts_in_silhouette": { "a": "Busts in Silhouette", "b": "1F465", "j": [ "user", "person", "human", "group", "team" ], "k": [ 15, 41 ] }, "flag-xk": { "a": "Kosovo Flag", "b": "1F1FD-1F1F0", "k": [ 5, 23 ] }, "fencer": { "a": "Fencer", "b": "1F93A", "k": [ 40, 48 ], "o": 9 }, "flag-ye": { "a": "Yemen Flag", "b": "1F1FE-1F1EA", "k": [ 5, 24 ] }, "flag-yt": { "a": "Mayotte Flag", "b": "1F1FE-1F1F9", "k": [ 5, 25 ] }, "horse_racing": { "skin_variations": { "1F3FB": { "unified": "1F3C7-1F3FB", "non_qualified": null, "image": "1f3c7-1f3fb.png", "sheet_x": 10, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F3C7-1F3FC", "non_qualified": null, "image": "1f3c7-1f3fc.png", "sheet_x": 10, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F3C7-1F3FD", "non_qualified": null, "image": "1f3c7-1f3fd.png", "sheet_x": 10, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F3C7-1F3FE", "non_qualified": null, "image": "1f3c7-1f3fe.png", "sheet_x": 10, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F3C7-1F3FF", "non_qualified": null, "image": "1f3c7-1f3ff.png", "sheet_x": 10, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Horse Racing", "b": "1F3C7", "j": [ "animal", "betting", "competition", "gambling", "luck" ], "k": [ 10, 20 ] }, "flag-za": { "a": "South Africa Flag", "b": "1F1FF-1F1E6", "k": [ 5, 26 ] }, "skier": { "a": "Skier", "b": "26F7-FE0F", "c": "26F7", "j": [ "sports", "winter", "snow" ], "k": [ 48, 44 ], "o": 5 }, "flag-zm": { "a": "Zambia Flag", "b": "1F1FF-1F1F2", "k": [ 5, 27 ] }, "snowboarder": { "skin_variations": { "1F3FB": { "unified": "1F3C2-1F3FB", "non_qualified": null, "image": "1f3c2-1f3fb.png", "sheet_x": 9, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F3C2-1F3FC", "non_qualified": null, "image": "1f3c2-1f3fc.png", "sheet_x": 9, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F3C2-1F3FD", "non_qualified": null, "image": "1f3c2-1f3fd.png", "sheet_x": 9, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F3C2-1F3FE", "non_qualified": null, "image": "1f3c2-1f3fe.png", "sheet_x": 9, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F3C2-1F3FF", "non_qualified": null, "image": "1f3c2-1f3ff.png", "sheet_x": 9, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Snowboarder", "b": "1F3C2", "j": [ "sports", "winter" ], "k": [ 9, 28 ] }, "golfer": { "skin_variations": { "1F3FB": { "unified": "1F3CC-1F3FB", "non_qualified": null, "image": "1f3cc-1f3fb.png", "sheet_x": 11, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CC-1F3FC", "non_qualified": null, "image": "1f3cc-1f3fc.png", "sheet_x": 11, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CC-1F3FD", "non_qualified": null, "image": "1f3cc-1f3fd.png", "sheet_x": 11, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CC-1F3FE", "non_qualified": null, "image": "1f3cc-1f3fe.png", "sheet_x": 11, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CC-1F3FF", "non_qualified": null, "image": "1f3cc-1f3ff.png", "sheet_x": 11, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoleted_by": "1F3CC-FE0F-200D-2642-FE0F", "a": "Golfer", "b": "1F3CC-FE0F", "c": "1F3CC", "k": [ 11, 24 ], "o": 7 }, "flag-zw": { "a": "Zimbabwe Flag", "b": "1F1FF-1F1FC", "k": [ 5, 28 ] }, "man-golfing": { "skin_variations": { "1F3FB": { "unified": "1F3CC-1F3FB-200D-2642-FE0F", "non_qualified": "1F3CC-1F3FB-200D-2642", "image": "1f3cc-1f3fb-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CC-1F3FC-200D-2642-FE0F", "non_qualified": "1F3CC-1F3FC-200D-2642", "image": "1f3cc-1f3fc-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CC-1F3FD-200D-2642-FE0F", "non_qualified": "1F3CC-1F3FD-200D-2642", "image": "1f3cc-1f3fd-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CC-1F3FE-200D-2642-FE0F", "non_qualified": "1F3CC-1F3FE-200D-2642", "image": "1f3cc-1f3fe-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CC-1F3FF-200D-2642-FE0F", "non_qualified": "1F3CC-1F3FF-200D-2642", "image": "1f3cc-1f3ff-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F3CC-FE0F", "a": "Man Golfing", "b": "1F3CC-FE0F-200D-2642-FE0F", "k": [ 11, 18 ], "o": 7 }, "flag-england": { "a": "England Flag", "b": "1F3F4-E0067-E0062-E0065-E006E-E0067-E007F", "k": [ 12, 16 ], "o": 7 }, "woman-golfing": { "skin_variations": { "1F3FB": { "unified": "1F3CC-1F3FB-200D-2640-FE0F", "non_qualified": "1F3CC-1F3FB-200D-2640", "image": "1f3cc-1f3fb-200d-2640-fe0f.png", "sheet_x": 11, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CC-1F3FC-200D-2640-FE0F", "non_qualified": "1F3CC-1F3FC-200D-2640", "image": "1f3cc-1f3fc-200d-2640-fe0f.png", "sheet_x": 11, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CC-1F3FD-200D-2640-FE0F", "non_qualified": "1F3CC-1F3FD-200D-2640", "image": "1f3cc-1f3fd-200d-2640-fe0f.png", "sheet_x": 11, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CC-1F3FE-200D-2640-FE0F", "non_qualified": "1F3CC-1F3FE-200D-2640", "image": "1f3cc-1f3fe-200d-2640-fe0f.png", "sheet_x": 11, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CC-1F3FF-200D-2640-FE0F", "non_qualified": "1F3CC-1F3FF-200D-2640", "image": "1f3cc-1f3ff-200d-2640-fe0f.png", "sheet_x": 11, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Golfing", "b": "1F3CC-FE0F-200D-2640-FE0F", "k": [ 11, 12 ], "o": 7 }, "flag-scotland": { "a": "Scotland Flag", "b": "1F3F4-E0067-E0062-E0073-E0063-E0074-E007F", "k": [ 12, 17 ], "o": 7 }, "flag-wales": { "a": "Wales Flag", "b": "1F3F4-E0067-E0062-E0077-E006C-E0073-E007F", "k": [ 12, 18 ], "o": 7 }, "surfer": { "skin_variations": { "1F3FB": { "unified": "1F3C4-1F3FB", "non_qualified": null, "image": "1f3c4-1f3fb.png", "sheet_x": 10, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F3C4-1F3FC", "non_qualified": null, "image": "1f3c4-1f3fc.png", "sheet_x": 10, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F3C4-1F3FD", "non_qualified": null, "image": "1f3c4-1f3fd.png", "sheet_x": 10, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F3C4-1F3FE", "non_qualified": null, "image": "1f3c4-1f3fe.png", "sheet_x": 10, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F3C4-1F3FF", "non_qualified": null, "image": "1f3c4-1f3ff.png", "sheet_x": 10, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F3C4-200D-2642-FE0F", "a": "Surfer", "b": "1F3C4", "k": [ 10, 12 ] }, "man-surfing": { "skin_variations": { "1F3FB": { "unified": "1F3C4-1F3FB-200D-2642-FE0F", "non_qualified": "1F3C4-1F3FB-200D-2642", "image": "1f3c4-1f3fb-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3C4-1F3FC-200D-2642-FE0F", "non_qualified": "1F3C4-1F3FC-200D-2642", "image": "1f3c4-1f3fc-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3C4-1F3FD-200D-2642-FE0F", "non_qualified": "1F3C4-1F3FD-200D-2642", "image": "1f3c4-1f3fd-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3C4-1F3FE-200D-2642-FE0F", "non_qualified": "1F3C4-1F3FE-200D-2642", "image": "1f3c4-1f3fe-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3C4-1F3FF-200D-2642-FE0F", "non_qualified": "1F3C4-1F3FF-200D-2642", "image": "1f3c4-1f3ff-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F3C4", "a": "Man Surfing", "b": "1F3C4-200D-2642-FE0F", "c": "1F3C4-200D-2642", "k": [ 10, 6 ] }, "woman-surfing": { "skin_variations": { "1F3FB": { "unified": "1F3C4-1F3FB-200D-2640-FE0F", "non_qualified": "1F3C4-1F3FB-200D-2640", "image": "1f3c4-1f3fb-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3C4-1F3FC-200D-2640-FE0F", "non_qualified": "1F3C4-1F3FC-200D-2640", "image": "1f3c4-1f3fc-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3C4-1F3FD-200D-2640-FE0F", "non_qualified": "1F3C4-1F3FD-200D-2640", "image": "1f3c4-1f3fd-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3C4-1F3FE-200D-2640-FE0F", "non_qualified": "1F3C4-1F3FE-200D-2640", "image": "1f3c4-1f3fe-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3C4-1F3FF-200D-2640-FE0F", "non_qualified": "1F3C4-1F3FF-200D-2640", "image": "1f3c4-1f3ff-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Surfing", "b": "1F3C4-200D-2640-FE0F", "c": "1F3C4-200D-2640", "k": [ 10, 0 ] }, "rowboat": { "skin_variations": { "1F3FB": { "unified": "1F6A3-1F3FB", "non_qualified": null, "image": "1f6a3-1f3fb.png", "sheet_x": 35, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6A3-1F3FC", "non_qualified": null, "image": "1f6a3-1f3fc.png", "sheet_x": 35, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6A3-1F3FD", "non_qualified": null, "image": "1f6a3-1f3fd.png", "sheet_x": 35, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6A3-1F3FE", "non_qualified": null, "image": "1f6a3-1f3fe.png", "sheet_x": 35, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6A3-1F3FF", "non_qualified": null, "image": "1f6a3-1f3ff.png", "sheet_x": 35, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoleted_by": "1F6A3-200D-2642-FE0F", "a": "Rowboat", "b": "1F6A3", "k": [ 35, 3 ] }, "man-rowing-boat": { "skin_variations": { "1F3FB": { "unified": "1F6A3-1F3FB-200D-2642-FE0F", "non_qualified": "1F6A3-1F3FB-200D-2642", "image": "1f6a3-1f3fb-200d-2642-fe0f.png", "sheet_x": 34, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6A3-1F3FC-200D-2642-FE0F", "non_qualified": "1F6A3-1F3FC-200D-2642", "image": "1f6a3-1f3fc-200d-2642-fe0f.png", "sheet_x": 34, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6A3-1F3FD-200D-2642-FE0F", "non_qualified": "1F6A3-1F3FD-200D-2642", "image": "1f6a3-1f3fd-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6A3-1F3FE-200D-2642-FE0F", "non_qualified": "1F6A3-1F3FE-200D-2642", "image": "1f6a3-1f3fe-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6A3-1F3FF-200D-2642-FE0F", "non_qualified": "1F6A3-1F3FF-200D-2642", "image": "1f6a3-1f3ff-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F6A3", "a": "Man Rowing Boat", "b": "1F6A3-200D-2642-FE0F", "c": "1F6A3-200D-2642", "k": [ 34, 49 ] }, "woman-rowing-boat": { "skin_variations": { "1F3FB": { "unified": "1F6A3-1F3FB-200D-2640-FE0F", "non_qualified": "1F6A3-1F3FB-200D-2640", "image": "1f6a3-1f3fb-200d-2640-fe0f.png", "sheet_x": 34, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6A3-1F3FC-200D-2640-FE0F", "non_qualified": "1F6A3-1F3FC-200D-2640", "image": "1f6a3-1f3fc-200d-2640-fe0f.png", "sheet_x": 34, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6A3-1F3FD-200D-2640-FE0F", "non_qualified": "1F6A3-1F3FD-200D-2640", "image": "1f6a3-1f3fd-200d-2640-fe0f.png", "sheet_x": 34, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6A3-1F3FE-200D-2640-FE0F", "non_qualified": "1F6A3-1F3FE-200D-2640", "image": "1f6a3-1f3fe-200d-2640-fe0f.png", "sheet_x": 34, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6A3-1F3FF-200D-2640-FE0F", "non_qualified": "1F6A3-1F3FF-200D-2640", "image": "1f6a3-1f3ff-200d-2640-fe0f.png", "sheet_x": 34, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Rowing Boat", "b": "1F6A3-200D-2640-FE0F", "c": "1F6A3-200D-2640", "k": [ 34, 43 ] }, "swimmer": { "skin_variations": { "1F3FB": { "unified": "1F3CA-1F3FB", "non_qualified": null, "image": "1f3ca-1f3fb.png", "sheet_x": 10, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F3CA-1F3FC", "non_qualified": null, "image": "1f3ca-1f3fc.png", "sheet_x": 10, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F3CA-1F3FD", "non_qualified": null, "image": "1f3ca-1f3fd.png", "sheet_x": 10, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F3CA-1F3FE", "non_qualified": null, "image": "1f3ca-1f3fe.png", "sheet_x": 10, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F3CA-1F3FF", "non_qualified": null, "image": "1f3ca-1f3ff.png", "sheet_x": 10, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F3CA-200D-2642-FE0F", "a": "Swimmer", "b": "1F3CA", "k": [ 10, 40 ] }, "man-swimming": { "skin_variations": { "1F3FB": { "unified": "1F3CA-1F3FB-200D-2642-FE0F", "non_qualified": "1F3CA-1F3FB-200D-2642", "image": "1f3ca-1f3fb-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CA-1F3FC-200D-2642-FE0F", "non_qualified": "1F3CA-1F3FC-200D-2642", "image": "1f3ca-1f3fc-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CA-1F3FD-200D-2642-FE0F", "non_qualified": "1F3CA-1F3FD-200D-2642", "image": "1f3ca-1f3fd-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CA-1F3FE-200D-2642-FE0F", "non_qualified": "1F3CA-1F3FE-200D-2642", "image": "1f3ca-1f3fe-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CA-1F3FF-200D-2642-FE0F", "non_qualified": "1F3CA-1F3FF-200D-2642", "image": "1f3ca-1f3ff-200d-2642-fe0f.png", "sheet_x": 10, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F3CA", "a": "Man Swimming", "b": "1F3CA-200D-2642-FE0F", "c": "1F3CA-200D-2642", "k": [ 10, 34 ] }, "woman-swimming": { "skin_variations": { "1F3FB": { "unified": "1F3CA-1F3FB-200D-2640-FE0F", "non_qualified": "1F3CA-1F3FB-200D-2640", "image": "1f3ca-1f3fb-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CA-1F3FC-200D-2640-FE0F", "non_qualified": "1F3CA-1F3FC-200D-2640", "image": "1f3ca-1f3fc-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CA-1F3FD-200D-2640-FE0F", "non_qualified": "1F3CA-1F3FD-200D-2640", "image": "1f3ca-1f3fd-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CA-1F3FE-200D-2640-FE0F", "non_qualified": "1F3CA-1F3FE-200D-2640", "image": "1f3ca-1f3fe-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CA-1F3FF-200D-2640-FE0F", "non_qualified": "1F3CA-1F3FF-200D-2640", "image": "1f3ca-1f3ff-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Swimming", "b": "1F3CA-200D-2640-FE0F", "c": "1F3CA-200D-2640", "k": [ 10, 28 ] }, "person_with_ball": { "skin_variations": { "1F3FB": { "unified": "26F9-1F3FB", "non_qualified": null, "image": "26f9-1f3fb.png", "sheet_x": 49, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "26F9-1F3FC", "non_qualified": null, "image": "26f9-1f3fc.png", "sheet_x": 49, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "26F9-1F3FD", "non_qualified": null, "image": "26f9-1f3fd.png", "sheet_x": 49, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "26F9-1F3FE", "non_qualified": null, "image": "26f9-1f3fe.png", "sheet_x": 49, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "26F9-1F3FF", "non_qualified": null, "image": "26f9-1f3ff.png", "sheet_x": 49, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoleted_by": "26F9-FE0F-200D-2642-FE0F", "a": "Person with Ball", "b": "26F9-FE0F", "c": "26F9", "k": [ 49, 6 ], "o": 5 }, "man-bouncing-ball": { "skin_variations": { "1F3FB": { "unified": "26F9-1F3FB-200D-2642-FE0F", "non_qualified": "26F9-1F3FB-200D-2642", "image": "26f9-1f3fb-200d-2642-fe0f.png", "sheet_x": 49, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "26F9-1F3FC-200D-2642-FE0F", "non_qualified": "26F9-1F3FC-200D-2642", "image": "26f9-1f3fc-200d-2642-fe0f.png", "sheet_x": 49, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "26F9-1F3FD-200D-2642-FE0F", "non_qualified": "26F9-1F3FD-200D-2642", "image": "26f9-1f3fd-200d-2642-fe0f.png", "sheet_x": 49, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "26F9-1F3FE-200D-2642-FE0F", "non_qualified": "26F9-1F3FE-200D-2642", "image": "26f9-1f3fe-200d-2642-fe0f.png", "sheet_x": 49, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "26F9-1F3FF-200D-2642-FE0F", "non_qualified": "26F9-1F3FF-200D-2642", "image": "26f9-1f3ff-200d-2642-fe0f.png", "sheet_x": 49, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "26F9-FE0F", "a": "Man Bouncing Ball", "b": "26F9-FE0F-200D-2642-FE0F", "k": [ 49, 0 ], "o": 5 }, "woman-bouncing-ball": { "skin_variations": { "1F3FB": { "unified": "26F9-1F3FB-200D-2640-FE0F", "non_qualified": "26F9-1F3FB-200D-2640", "image": "26f9-1f3fb-200d-2640-fe0f.png", "sheet_x": 48, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "26F9-1F3FC-200D-2640-FE0F", "non_qualified": "26F9-1F3FC-200D-2640", "image": "26f9-1f3fc-200d-2640-fe0f.png", "sheet_x": 48, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "26F9-1F3FD-200D-2640-FE0F", "non_qualified": "26F9-1F3FD-200D-2640", "image": "26f9-1f3fd-200d-2640-fe0f.png", "sheet_x": 48, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "26F9-1F3FE-200D-2640-FE0F", "non_qualified": "26F9-1F3FE-200D-2640", "image": "26f9-1f3fe-200d-2640-fe0f.png", "sheet_x": 48, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "26F9-1F3FF-200D-2640-FE0F", "non_qualified": "26F9-1F3FF-200D-2640", "image": "26f9-1f3ff-200d-2640-fe0f.png", "sheet_x": 48, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Bouncing Ball", "b": "26F9-FE0F-200D-2640-FE0F", "k": [ 48, 46 ], "o": 5 }, "weight_lifter": { "skin_variations": { "1F3FB": { "unified": "1F3CB-1F3FB", "non_qualified": null, "image": "1f3cb-1f3fb.png", "sheet_x": 11, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CB-1F3FC", "non_qualified": null, "image": "1f3cb-1f3fc.png", "sheet_x": 11, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CB-1F3FD", "non_qualified": null, "image": "1f3cb-1f3fd.png", "sheet_x": 11, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CB-1F3FE", "non_qualified": null, "image": "1f3cb-1f3fe.png", "sheet_x": 11, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CB-1F3FF", "non_qualified": null, "image": "1f3cb-1f3ff.png", "sheet_x": 11, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoleted_by": "1F3CB-FE0F-200D-2642-FE0F", "a": "Weight Lifter", "b": "1F3CB-FE0F", "c": "1F3CB", "k": [ 11, 6 ], "o": 7 }, "man-lifting-weights": { "skin_variations": { "1F3FB": { "unified": "1F3CB-1F3FB-200D-2642-FE0F", "non_qualified": "1F3CB-1F3FB-200D-2642", "image": "1f3cb-1f3fb-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CB-1F3FC-200D-2642-FE0F", "non_qualified": "1F3CB-1F3FC-200D-2642", "image": "1f3cb-1f3fc-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CB-1F3FD-200D-2642-FE0F", "non_qualified": "1F3CB-1F3FD-200D-2642", "image": "1f3cb-1f3fd-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CB-1F3FE-200D-2642-FE0F", "non_qualified": "1F3CB-1F3FE-200D-2642", "image": "1f3cb-1f3fe-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CB-1F3FF-200D-2642-FE0F", "non_qualified": "1F3CB-1F3FF-200D-2642", "image": "1f3cb-1f3ff-200d-2642-fe0f.png", "sheet_x": 11, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F3CB-FE0F", "a": "Man Lifting Weights", "b": "1F3CB-FE0F-200D-2642-FE0F", "k": [ 11, 0 ], "o": 7 }, "woman-lifting-weights": { "skin_variations": { "1F3FB": { "unified": "1F3CB-1F3FB-200D-2640-FE0F", "non_qualified": "1F3CB-1F3FB-200D-2640", "image": "1f3cb-1f3fb-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F3CB-1F3FC-200D-2640-FE0F", "non_qualified": "1F3CB-1F3FC-200D-2640", "image": "1f3cb-1f3fc-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F3CB-1F3FD-200D-2640-FE0F", "non_qualified": "1F3CB-1F3FD-200D-2640", "image": "1f3cb-1f3fd-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F3CB-1F3FE-200D-2640-FE0F", "non_qualified": "1F3CB-1F3FE-200D-2640", "image": "1f3cb-1f3fe-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F3CB-1F3FF-200D-2640-FE0F", "non_qualified": "1F3CB-1F3FF-200D-2640", "image": "1f3cb-1f3ff-200d-2640-fe0f.png", "sheet_x": 10, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Lifting Weights", "b": "1F3CB-FE0F-200D-2640-FE0F", "k": [ 10, 46 ], "o": 7 }, "bicyclist": { "skin_variations": { "1F3FB": { "unified": "1F6B4-1F3FB", "non_qualified": null, "image": "1f6b4-1f3fb.png", "sheet_x": 35, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F6B4-1F3FC", "non_qualified": null, "image": "1f6b4-1f3fc.png", "sheet_x": 35, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F6B4-1F3FD", "non_qualified": null, "image": "1f6b4-1f3fd.png", "sheet_x": 35, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F6B4-1F3FE", "non_qualified": null, "image": "1f6b4-1f3fe.png", "sheet_x": 35, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F6B4-1F3FF", "non_qualified": null, "image": "1f6b4-1f3ff.png", "sheet_x": 35, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F6B4-200D-2642-FE0F", "a": "Bicyclist", "b": "1F6B4", "k": [ 35, 37 ] }, "man-biking": { "skin_variations": { "1F3FB": { "unified": "1F6B4-1F3FB-200D-2642-FE0F", "non_qualified": "1F6B4-1F3FB-200D-2642", "image": "1f6b4-1f3fb-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6B4-1F3FC-200D-2642-FE0F", "non_qualified": "1F6B4-1F3FC-200D-2642", "image": "1f6b4-1f3fc-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6B4-1F3FD-200D-2642-FE0F", "non_qualified": "1F6B4-1F3FD-200D-2642", "image": "1f6b4-1f3fd-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6B4-1F3FE-200D-2642-FE0F", "non_qualified": "1F6B4-1F3FE-200D-2642", "image": "1f6b4-1f3fe-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6B4-1F3FF-200D-2642-FE0F", "non_qualified": "1F6B4-1F3FF-200D-2642", "image": "1f6b4-1f3ff-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F6B4", "a": "Man Biking", "b": "1F6B4-200D-2642-FE0F", "c": "1F6B4-200D-2642", "k": [ 35, 31 ] }, "woman-biking": { "skin_variations": { "1F3FB": { "unified": "1F6B4-1F3FB-200D-2640-FE0F", "non_qualified": "1F6B4-1F3FB-200D-2640", "image": "1f6b4-1f3fb-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6B4-1F3FC-200D-2640-FE0F", "non_qualified": "1F6B4-1F3FC-200D-2640", "image": "1f6b4-1f3fc-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6B4-1F3FD-200D-2640-FE0F", "non_qualified": "1F6B4-1F3FD-200D-2640", "image": "1f6b4-1f3fd-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6B4-1F3FE-200D-2640-FE0F", "non_qualified": "1F6B4-1F3FE-200D-2640", "image": "1f6b4-1f3fe-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6B4-1F3FF-200D-2640-FE0F", "non_qualified": "1F6B4-1F3FF-200D-2640", "image": "1f6b4-1f3ff-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Biking", "b": "1F6B4-200D-2640-FE0F", "c": "1F6B4-200D-2640", "k": [ 35, 25 ] }, "mountain_bicyclist": { "skin_variations": { "1F3FB": { "unified": "1F6B5-1F3FB", "non_qualified": null, "image": "1f6b5-1f3fb.png", "sheet_x": 36, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FC": { "unified": "1F6B5-1F3FC", "non_qualified": null, "image": "1f6b5-1f3fc.png", "sheet_x": 36, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FD": { "unified": "1F6B5-1F3FD", "non_qualified": null, "image": "1f6b5-1f3fd.png", "sheet_x": 36, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FE": { "unified": "1F6B5-1F3FE", "non_qualified": null, "image": "1f6b5-1f3fe.png", "sheet_x": 36, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true }, "1F3FF": { "unified": "1F6B5-1F3FF", "non_qualified": null, "image": "1f6b5-1f3ff.png", "sheet_x": 36, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": true } }, "obsoleted_by": "1F6B5-200D-2642-FE0F", "a": "Mountain Bicyclist", "b": "1F6B5", "k": [ 36, 3 ] }, "man-mountain-biking": { "skin_variations": { "1F3FB": { "unified": "1F6B5-1F3FB-200D-2642-FE0F", "non_qualified": "1F6B5-1F3FB-200D-2642", "image": "1f6b5-1f3fb-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6B5-1F3FC-200D-2642-FE0F", "non_qualified": "1F6B5-1F3FC-200D-2642", "image": "1f6b5-1f3fc-200d-2642-fe0f.png", "sheet_x": 35, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6B5-1F3FD-200D-2642-FE0F", "non_qualified": "1F6B5-1F3FD-200D-2642", "image": "1f6b5-1f3fd-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6B5-1F3FE-200D-2642-FE0F", "non_qualified": "1F6B5-1F3FE-200D-2642", "image": "1f6b5-1f3fe-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6B5-1F3FF-200D-2642-FE0F", "non_qualified": "1F6B5-1F3FF-200D-2642", "image": "1f6b5-1f3ff-200d-2642-fe0f.png", "sheet_x": 36, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "obsoletes": "1F6B5", "a": "Man Mountain Biking", "b": "1F6B5-200D-2642-FE0F", "c": "1F6B5-200D-2642", "k": [ 35, 49 ] }, "woman-mountain-biking": { "skin_variations": { "1F3FB": { "unified": "1F6B5-1F3FB-200D-2640-FE0F", "non_qualified": "1F6B5-1F3FB-200D-2640", "image": "1f6b5-1f3fb-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F6B5-1F3FC-200D-2640-FE0F", "non_qualified": "1F6B5-1F3FC-200D-2640", "image": "1f6b5-1f3fc-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F6B5-1F3FD-200D-2640-FE0F", "non_qualified": "1F6B5-1F3FD-200D-2640", "image": "1f6b5-1f3fd-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F6B5-1F3FE-200D-2640-FE0F", "non_qualified": "1F6B5-1F3FE-200D-2640", "image": "1f6b5-1f3fe-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F6B5-1F3FF-200D-2640-FE0F", "non_qualified": "1F6B5-1F3FF-200D-2640", "image": "1f6b5-1f3ff-200d-2640-fe0f.png", "sheet_x": 35, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Mountain Biking", "b": "1F6B5-200D-2640-FE0F", "c": "1F6B5-200D-2640", "k": [ 35, 43 ] }, "racing_car": { "a": "Racing Car", "b": "1F3CE-FE0F", "c": "1F3CE", "j": [ "sports", "race", "fast", "formula", "f1" ], "k": [ 11, 31 ], "o": 7 }, "racing_motorcycle": { "a": "Racing Motorcycle", "b": "1F3CD-FE0F", "c": "1F3CD", "k": [ 11, 30 ], "o": 7 }, "person_doing_cartwheel": { "skin_variations": { "1F3FB": { "unified": "1F938-1F3FB", "non_qualified": null, "image": "1f938-1f3fb.png", "sheet_x": 40, "sheet_y": 25, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F938-1F3FC", "non_qualified": null, "image": "1f938-1f3fc.png", "sheet_x": 40, "sheet_y": 26, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F938-1F3FD", "non_qualified": null, "image": "1f938-1f3fd.png", "sheet_x": 40, "sheet_y": 27, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F938-1F3FE", "non_qualified": null, "image": "1f938-1f3fe.png", "sheet_x": 40, "sheet_y": 28, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F938-1F3FF", "non_qualified": null, "image": "1f938-1f3ff.png", "sheet_x": 40, "sheet_y": 29, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Person Doing Cartwheel", "b": "1F938", "k": [ 40, 24 ], "o": 9 }, "man-cartwheeling": { "skin_variations": { "1F3FB": { "unified": "1F938-1F3FB-200D-2642-FE0F", "non_qualified": "1F938-1F3FB-200D-2642", "image": "1f938-1f3fb-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 19, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F938-1F3FC-200D-2642-FE0F", "non_qualified": "1F938-1F3FC-200D-2642", "image": "1f938-1f3fc-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 20, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F938-1F3FD-200D-2642-FE0F", "non_qualified": "1F938-1F3FD-200D-2642", "image": "1f938-1f3fd-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 21, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F938-1F3FE-200D-2642-FE0F", "non_qualified": "1F938-1F3FE-200D-2642", "image": "1f938-1f3fe-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 22, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F938-1F3FF-200D-2642-FE0F", "non_qualified": "1F938-1F3FF-200D-2642", "image": "1f938-1f3ff-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 23, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Cartwheeling", "b": "1F938-200D-2642-FE0F", "c": "1F938-200D-2642", "k": [ 40, 18 ], "o": 9 }, "woman-cartwheeling": { "skin_variations": { "1F3FB": { "unified": "1F938-1F3FB-200D-2640-FE0F", "non_qualified": "1F938-1F3FB-200D-2640", "image": "1f938-1f3fb-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 13, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F938-1F3FC-200D-2640-FE0F", "non_qualified": "1F938-1F3FC-200D-2640", "image": "1f938-1f3fc-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 14, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F938-1F3FD-200D-2640-FE0F", "non_qualified": "1F938-1F3FD-200D-2640", "image": "1f938-1f3fd-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 15, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F938-1F3FE-200D-2640-FE0F", "non_qualified": "1F938-1F3FE-200D-2640", "image": "1f938-1f3fe-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 16, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F938-1F3FF-200D-2640-FE0F", "non_qualified": "1F938-1F3FF-200D-2640", "image": "1f938-1f3ff-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 17, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Cartwheeling", "b": "1F938-200D-2640-FE0F", "c": "1F938-200D-2640", "k": [ 40, 12 ], "o": 9 }, "wrestlers": { "a": "Wrestlers", "b": "1F93C", "k": [ 40, 51 ], "o": 9 }, "man-wrestling": { "a": "Man Wrestling", "b": "1F93C-200D-2642-FE0F", "c": "1F93C-200D-2642", "k": [ 40, 50 ], "o": 9 }, "woman-wrestling": { "a": "Woman Wrestling", "b": "1F93C-200D-2640-FE0F", "c": "1F93C-200D-2640", "k": [ 40, 49 ], "o": 9 }, "water_polo": { "skin_variations": { "1F3FB": { "unified": "1F93D-1F3FB", "non_qualified": null, "image": "1f93d-1f3fb.png", "sheet_x": 41, "sheet_y": 13, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F93D-1F3FC", "non_qualified": null, "image": "1f93d-1f3fc.png", "sheet_x": 41, "sheet_y": 14, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F93D-1F3FD", "non_qualified": null, "image": "1f93d-1f3fd.png", "sheet_x": 41, "sheet_y": 15, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F93D-1F3FE", "non_qualified": null, "image": "1f93d-1f3fe.png", "sheet_x": 41, "sheet_y": 16, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F93D-1F3FF", "non_qualified": null, "image": "1f93d-1f3ff.png", "sheet_x": 41, "sheet_y": 17, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Water Polo", "b": "1F93D", "k": [ 41, 12 ], "o": 9 }, "man-playing-water-polo": { "skin_variations": { "1F3FB": { "unified": "1F93D-1F3FB-200D-2642-FE0F", "non_qualified": "1F93D-1F3FB-200D-2642", "image": "1f93d-1f3fb-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 7, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F93D-1F3FC-200D-2642-FE0F", "non_qualified": "1F93D-1F3FC-200D-2642", "image": "1f93d-1f3fc-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 8, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F93D-1F3FD-200D-2642-FE0F", "non_qualified": "1F93D-1F3FD-200D-2642", "image": "1f93d-1f3fd-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 9, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F93D-1F3FE-200D-2642-FE0F", "non_qualified": "1F93D-1F3FE-200D-2642", "image": "1f93d-1f3fe-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 10, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F93D-1F3FF-200D-2642-FE0F", "non_qualified": "1F93D-1F3FF-200D-2642", "image": "1f93d-1f3ff-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 11, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Playing Water Polo", "b": "1F93D-200D-2642-FE0F", "c": "1F93D-200D-2642", "k": [ 41, 6 ], "o": 9 }, "woman-playing-water-polo": { "skin_variations": { "1F3FB": { "unified": "1F93D-1F3FB-200D-2640-FE0F", "non_qualified": "1F93D-1F3FB-200D-2640", "image": "1f93d-1f3fb-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 1, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F93D-1F3FC-200D-2640-FE0F", "non_qualified": "1F93D-1F3FC-200D-2640", "image": "1f93d-1f3fc-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 2, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F93D-1F3FD-200D-2640-FE0F", "non_qualified": "1F93D-1F3FD-200D-2640", "image": "1f93d-1f3fd-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 3, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F93D-1F3FE-200D-2640-FE0F", "non_qualified": "1F93D-1F3FE-200D-2640", "image": "1f93d-1f3fe-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 4, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F93D-1F3FF-200D-2640-FE0F", "non_qualified": "1F93D-1F3FF-200D-2640", "image": "1f93d-1f3ff-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 5, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Playing Water Polo", "b": "1F93D-200D-2640-FE0F", "c": "1F93D-200D-2640", "k": [ 41, 0 ], "o": 9 }, "handball": { "skin_variations": { "1F3FB": { "unified": "1F93E-1F3FB", "non_qualified": null, "image": "1f93e-1f3fb.png", "sheet_x": 41, "sheet_y": 31, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F93E-1F3FC", "non_qualified": null, "image": "1f93e-1f3fc.png", "sheet_x": 41, "sheet_y": 32, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F93E-1F3FD", "non_qualified": null, "image": "1f93e-1f3fd.png", "sheet_x": 41, "sheet_y": 33, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F93E-1F3FE", "non_qualified": null, "image": "1f93e-1f3fe.png", "sheet_x": 41, "sheet_y": 34, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F93E-1F3FF", "non_qualified": null, "image": "1f93e-1f3ff.png", "sheet_x": 41, "sheet_y": 35, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Handball", "b": "1F93E", "k": [ 41, 30 ], "o": 9 }, "man-playing-handball": { "skin_variations": { "1F3FB": { "unified": "1F93E-1F3FB-200D-2642-FE0F", "non_qualified": "1F93E-1F3FB-200D-2642", "image": "1f93e-1f3fb-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 25, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F93E-1F3FC-200D-2642-FE0F", "non_qualified": "1F93E-1F3FC-200D-2642", "image": "1f93e-1f3fc-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 26, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F93E-1F3FD-200D-2642-FE0F", "non_qualified": "1F93E-1F3FD-200D-2642", "image": "1f93e-1f3fd-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 27, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F93E-1F3FE-200D-2642-FE0F", "non_qualified": "1F93E-1F3FE-200D-2642", "image": "1f93e-1f3fe-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 28, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F93E-1F3FF-200D-2642-FE0F", "non_qualified": "1F93E-1F3FF-200D-2642", "image": "1f93e-1f3ff-200d-2642-fe0f.png", "sheet_x": 41, "sheet_y": 29, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Playing Handball", "b": "1F93E-200D-2642-FE0F", "c": "1F93E-200D-2642", "k": [ 41, 24 ], "o": 9 }, "woman-playing-handball": { "skin_variations": { "1F3FB": { "unified": "1F93E-1F3FB-200D-2640-FE0F", "non_qualified": "1F93E-1F3FB-200D-2640", "image": "1f93e-1f3fb-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 19, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F93E-1F3FC-200D-2640-FE0F", "non_qualified": "1F93E-1F3FC-200D-2640", "image": "1f93e-1f3fc-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 20, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F93E-1F3FD-200D-2640-FE0F", "non_qualified": "1F93E-1F3FD-200D-2640", "image": "1f93e-1f3fd-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 21, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F93E-1F3FE-200D-2640-FE0F", "non_qualified": "1F93E-1F3FE-200D-2640", "image": "1f93e-1f3fe-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 22, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F93E-1F3FF-200D-2640-FE0F", "non_qualified": "1F93E-1F3FF-200D-2640", "image": "1f93e-1f3ff-200d-2640-fe0f.png", "sheet_x": 41, "sheet_y": 23, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Playing Handball", "b": "1F93E-200D-2640-FE0F", "c": "1F93E-200D-2640", "k": [ 41, 18 ], "o": 9 }, "juggling": { "skin_variations": { "1F3FB": { "unified": "1F939-1F3FB", "non_qualified": null, "image": "1f939-1f3fb.png", "sheet_x": 40, "sheet_y": 43, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F939-1F3FC", "non_qualified": null, "image": "1f939-1f3fc.png", "sheet_x": 40, "sheet_y": 44, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F939-1F3FD", "non_qualified": null, "image": "1f939-1f3fd.png", "sheet_x": 40, "sheet_y": 45, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F939-1F3FE", "non_qualified": null, "image": "1f939-1f3fe.png", "sheet_x": 40, "sheet_y": 46, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F939-1F3FF", "non_qualified": null, "image": "1f939-1f3ff.png", "sheet_x": 40, "sheet_y": 47, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Juggling", "b": "1F939", "k": [ 40, 42 ], "o": 9 }, "man-juggling": { "skin_variations": { "1F3FB": { "unified": "1F939-1F3FB-200D-2642-FE0F", "non_qualified": "1F939-1F3FB-200D-2642", "image": "1f939-1f3fb-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 37, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F939-1F3FC-200D-2642-FE0F", "non_qualified": "1F939-1F3FC-200D-2642", "image": "1f939-1f3fc-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 38, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F939-1F3FD-200D-2642-FE0F", "non_qualified": "1F939-1F3FD-200D-2642", "image": "1f939-1f3fd-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 39, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F939-1F3FE-200D-2642-FE0F", "non_qualified": "1F939-1F3FE-200D-2642", "image": "1f939-1f3fe-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 40, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F939-1F3FF-200D-2642-FE0F", "non_qualified": "1F939-1F3FF-200D-2642", "image": "1f939-1f3ff-200d-2642-fe0f.png", "sheet_x": 40, "sheet_y": 41, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Man Juggling", "b": "1F939-200D-2642-FE0F", "c": "1F939-200D-2642", "k": [ 40, 36 ], "o": 9 }, "woman-juggling": { "skin_variations": { "1F3FB": { "unified": "1F939-1F3FB-200D-2640-FE0F", "non_qualified": "1F939-1F3FB-200D-2640", "image": "1f939-1f3fb-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 31, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FC": { "unified": "1F939-1F3FC-200D-2640-FE0F", "non_qualified": "1F939-1F3FC-200D-2640", "image": "1f939-1f3fc-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 32, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FD": { "unified": "1F939-1F3FD-200D-2640-FE0F", "non_qualified": "1F939-1F3FD-200D-2640", "image": "1f939-1f3fd-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 33, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FE": { "unified": "1F939-1F3FE-200D-2640-FE0F", "non_qualified": "1F939-1F3FE-200D-2640", "image": "1f939-1f3fe-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 34, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false }, "1F3FF": { "unified": "1F939-1F3FF-200D-2640-FE0F", "non_qualified": "1F939-1F3FF-200D-2640", "image": "1f939-1f3ff-200d-2640-fe0f.png", "sheet_x": 40, "sheet_y": 35, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": false, "has_img_messenger": false } }, "a": "Woman Juggling", "b": "1F939-200D-2640-FE0F", "c": "1F939-200D-2640", "k": [ 40, 30 ], "o": 9 }, "couple": { "a": "Man and Woman Holding Hands", "b": "1F46B", "j": [ "pair", "people", "human", "love", "date", "dating", "like", "affection", "valentines", "marriage" ], "k": [ 20, 30 ], "n": [ "man_and_woman_holding_hands" ] }, "two_men_holding_hands": { "a": "Two Men Holding Hands", "b": "1F46C", "j": [ "pair", "couple", "love", "like", "bromance", "friendship", "people", "human" ], "k": [ 20, 31 ] }, "two_women_holding_hands": { "a": "Two Women Holding Hands", "b": "1F46D", "j": [ "pair", "friendship", "couple", "love", "like", "female", "people", "human" ], "k": [ 20, 32 ] }, "couplekiss": { "obsoleted_by": "1F469-200D-2764-FE0F-200D-1F48B-200D-1F468", "a": "Kiss", "b": "1F48F", "k": [ 24, 41 ] }, "woman-kiss-man": { "obsoletes": "1F48F", "a": "Woman Kiss Man", "b": "1F469-200D-2764-FE0F-200D-1F48B-200D-1F468", "c": "1F469-200D-2764-200D-1F48B-200D-1F468", "k": [ 20, 21 ] }, "man-kiss-man": { "a": "Man Kiss Man", "b": "1F468-200D-2764-FE0F-200D-1F48B-200D-1F468", "c": "1F468-200D-2764-200D-1F48B-200D-1F468", "k": [ 18, 10 ] }, "woman-kiss-woman": { "a": "Woman Kiss Woman", "b": "1F469-200D-2764-FE0F-200D-1F48B-200D-1F469", "c": "1F469-200D-2764-200D-1F48B-200D-1F469", "k": [ 20, 22 ] }, "couple_with_heart": { "obsoleted_by": "1F469-200D-2764-FE0F-200D-1F468", "a": "Couple with Heart", "b": "1F491", "k": [ 24, 43 ] }, "woman-heart-man": { "obsoletes": "1F491", "a": "Woman Heart Man", "b": "1F469-200D-2764-FE0F-200D-1F468", "c": "1F469-200D-2764-200D-1F468", "k": [ 20, 19 ] }, "man-heart-man": { "a": "Man Heart Man", "b": "1F468-200D-2764-FE0F-200D-1F468", "c": "1F468-200D-2764-200D-1F468", "k": [ 18, 9 ] }, "woman-heart-woman": { "a": "Woman Heart Woman", "b": "1F469-200D-2764-FE0F-200D-1F469", "c": "1F469-200D-2764-200D-1F469", "k": [ 20, 20 ] }, "family": { "obsoleted_by": "1F468-200D-1F469-200D-1F466", "a": "Family", "b": "1F46A", "k": [ 20, 29 ], "n": [ "man-woman-boy" ] }, "man-woman-boy": { "obsoletes": "1F46A", "a": "Man Woman Boy", "b": "1F468-200D-1F469-200D-1F466", "k": [ 17, 2 ], "n": [ "family" ] }, "man-woman-girl": { "a": "Man Woman Girl", "b": "1F468-200D-1F469-200D-1F467", "k": [ 17, 4 ] }, "man-woman-girl-boy": { "a": "Man Woman Girl Boy", "b": "1F468-200D-1F469-200D-1F467-200D-1F466", "k": [ 17, 5 ] }, "man-woman-boy-boy": { "a": "Man Woman Boy Boy", "b": "1F468-200D-1F469-200D-1F466-200D-1F466", "k": [ 17, 3 ] }, "man-woman-girl-girl": { "a": "Man Woman Girl Girl", "b": "1F468-200D-1F469-200D-1F467-200D-1F467", "k": [ 17, 6 ] }, "man-man-boy": { "a": "Man Man Boy", "b": "1F468-200D-1F468-200D-1F466", "k": [ 16, 49 ] }, "man-man-girl": { "a": "Man Man Girl", "b": "1F468-200D-1F468-200D-1F467", "k": [ 16, 51 ] }, "man-man-girl-boy": { "a": "Man Man Girl Boy", "b": "1F468-200D-1F468-200D-1F467-200D-1F466", "k": [ 17, 0 ] }, "man-man-boy-boy": { "a": "Man Man Boy Boy", "b": "1F468-200D-1F468-200D-1F466-200D-1F466", "k": [ 16, 50 ] }, "man-man-girl-girl": { "a": "Man Man Girl Girl", "b": "1F468-200D-1F468-200D-1F467-200D-1F467", "k": [ 17, 1 ] }, "woman-woman-boy": { "a": "Woman Woman Boy", "b": "1F469-200D-1F469-200D-1F466", "k": [ 19, 12 ] }, "woman-woman-girl": { "a": "Woman Woman Girl", "b": "1F469-200D-1F469-200D-1F467", "k": [ 19, 14 ] }, "woman-woman-girl-boy": { "a": "Woman Woman Girl Boy", "b": "1F469-200D-1F469-200D-1F467-200D-1F466", "k": [ 19, 15 ] }, "woman-woman-boy-boy": { "a": "Woman Woman Boy Boy", "b": "1F469-200D-1F469-200D-1F466-200D-1F466", "k": [ 19, 13 ] }, "woman-woman-girl-girl": { "a": "Woman Woman Girl Girl", "b": "1F469-200D-1F469-200D-1F467-200D-1F467", "k": [ 19, 16 ] }, "man-boy": { "a": "Man Boy", "b": "1F468-200D-1F466", "k": [ 16, 45 ] }, "man-boy-boy": { "a": "Man Boy Boy", "b": "1F468-200D-1F466-200D-1F466", "k": [ 16, 44 ] }, "man-girl": { "a": "Man Girl", "b": "1F468-200D-1F467", "k": [ 16, 48 ] }, "man-girl-boy": { "a": "Man Girl Boy", "b": "1F468-200D-1F467-200D-1F466", "k": [ 16, 46 ] }, "man-girl-girl": { "a": "Man Girl Girl", "b": "1F468-200D-1F467-200D-1F467", "k": [ 16, 47 ] }, "woman-boy": { "a": "Woman Boy", "b": "1F469-200D-1F466", "k": [ 19, 8 ] }, "woman-boy-boy": { "a": "Woman Boy Boy", "b": "1F469-200D-1F466-200D-1F466", "k": [ 19, 7 ] }, "woman-girl": { "a": "Woman Girl", "b": "1F469-200D-1F467", "k": [ 19, 11 ] }, "woman-girl-boy": { "a": "Woman Girl Boy", "b": "1F469-200D-1F467-200D-1F466", "k": [ 19, 9 ] }, "woman-girl-girl": { "a": "Woman Girl Girl", "b": "1F469-200D-1F467-200D-1F467", "k": [ 19, 10 ] }, "selfie": { "skin_variations": { "1F3FB": { "unified": "1F933-1F3FB", "non_qualified": null, "image": "1f933-1f3fb.png", "sheet_x": 39, "sheet_y": 23, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F933-1F3FC", "non_qualified": null, "image": "1f933-1f3fc.png", "sheet_x": 39, "sheet_y": 24, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F933-1F3FD", "non_qualified": null, "image": "1f933-1f3fd.png", "sheet_x": 39, "sheet_y": 25, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F933-1F3FE", "non_qualified": null, "image": "1f933-1f3fe.png", "sheet_x": 39, "sheet_y": 26, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F933-1F3FF", "non_qualified": null, "image": "1f933-1f3ff.png", "sheet_x": 39, "sheet_y": 27, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Selfie", "b": "1F933", "j": [ "camera", "phone" ], "k": [ 39, 22 ], "o": 9 }, "muscle": { "skin_variations": { "1F3FB": { "unified": "1F4AA-1F3FB", "non_qualified": null, "image": "1f4aa-1f3fb.png", "sheet_x": 25, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F4AA-1F3FC", "non_qualified": null, "image": "1f4aa-1f3fc.png", "sheet_x": 25, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F4AA-1F3FD", "non_qualified": null, "image": "1f4aa-1f3fd.png", "sheet_x": 25, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F4AA-1F3FE", "non_qualified": null, "image": "1f4aa-1f3fe.png", "sheet_x": 25, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F4AA-1F3FF", "non_qualified": null, "image": "1f4aa-1f3ff.png", "sheet_x": 25, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Flexed Biceps", "b": "1F4AA", "j": [ "arm", "flex", "hand", "summer", "strong", "biceps" ], "k": [ 25, 16 ] }, "point_left": { "skin_variations": { "1F3FB": { "unified": "1F448-1F3FB", "non_qualified": null, "image": "1f448-1f3fb.png", "sheet_x": 14, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F448-1F3FC", "non_qualified": null, "image": "1f448-1f3fc.png", "sheet_x": 14, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F448-1F3FD", "non_qualified": null, "image": "1f448-1f3fd.png", "sheet_x": 14, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F448-1F3FE", "non_qualified": null, "image": "1f448-1f3fe.png", "sheet_x": 14, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F448-1F3FF", "non_qualified": null, "image": "1f448-1f3ff.png", "sheet_x": 14, "sheet_y": 24, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "White Left Pointing Backhand Index", "b": "1F448", "j": [ "direction", "fingers", "hand", "left" ], "k": [ 14, 19 ] }, "point_right": { "skin_variations": { "1F3FB": { "unified": "1F449-1F3FB", "non_qualified": null, "image": "1f449-1f3fb.png", "sheet_x": 14, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F449-1F3FC", "non_qualified": null, "image": "1f449-1f3fc.png", "sheet_x": 14, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F449-1F3FD", "non_qualified": null, "image": "1f449-1f3fd.png", "sheet_x": 14, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F449-1F3FE", "non_qualified": null, "image": "1f449-1f3fe.png", "sheet_x": 14, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F449-1F3FF", "non_qualified": null, "image": "1f449-1f3ff.png", "sheet_x": 14, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "White Right Pointing Backhand Index", "b": "1F449", "j": [ "fingers", "hand", "direction", "right" ], "k": [ 14, 25 ] }, "point_up": { "skin_variations": { "1F3FB": { "unified": "261D-1F3FB", "non_qualified": null, "image": "261d-1f3fb.png", "sheet_x": 47, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "261D-1F3FC", "non_qualified": null, "image": "261d-1f3fc.png", "sheet_x": 47, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "261D-1F3FD", "non_qualified": null, "image": "261d-1f3fd.png", "sheet_x": 47, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "261D-1F3FE", "non_qualified": null, "image": "261d-1f3fe.png", "sheet_x": 47, "sheet_y": 30, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "261D-1F3FF", "non_qualified": null, "image": "261d-1f3ff.png", "sheet_x": 47, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "White Up Pointing Index", "b": "261D-FE0F", "c": "261D", "j": [ "hand", "fingers", "direction", "up" ], "k": [ 47, 26 ], "o": 1 }, "point_up_2": { "skin_variations": { "1F3FB": { "unified": "1F446-1F3FB", "non_qualified": null, "image": "1f446-1f3fb.png", "sheet_x": 14, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F446-1F3FC", "non_qualified": null, "image": "1f446-1f3fc.png", "sheet_x": 14, "sheet_y": 9, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F446-1F3FD", "non_qualified": null, "image": "1f446-1f3fd.png", "sheet_x": 14, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F446-1F3FE", "non_qualified": null, "image": "1f446-1f3fe.png", "sheet_x": 14, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F446-1F3FF", "non_qualified": null, "image": "1f446-1f3ff.png", "sheet_x": 14, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "White Up Pointing Backhand Index", "b": "1F446", "j": [ "fingers", "hand", "direction", "up" ], "k": [ 14, 7 ] }, "middle_finger": { "skin_variations": { "1F3FB": { "unified": "1F595-1F3FB", "non_qualified": null, "image": "1f595-1f3fb.png", "sheet_x": 29, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F595-1F3FC", "non_qualified": null, "image": "1f595-1f3fc.png", "sheet_x": 29, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F595-1F3FD", "non_qualified": null, "image": "1f595-1f3fd.png", "sheet_x": 29, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F595-1F3FE", "non_qualified": null, "image": "1f595-1f3fe.png", "sheet_x": 29, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F595-1F3FF", "non_qualified": null, "image": "1f595-1f3ff.png", "sheet_x": 29, "sheet_y": 43, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Reversed Hand with Middle Finger Extended", "b": "1F595", "k": [ 29, 38 ], "n": [ "reversed_hand_with_middle_finger_extended" ], "o": 7 }, "point_down": { "skin_variations": { "1F3FB": { "unified": "1F447-1F3FB", "non_qualified": null, "image": "1f447-1f3fb.png", "sheet_x": 14, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F447-1F3FC", "non_qualified": null, "image": "1f447-1f3fc.png", "sheet_x": 14, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F447-1F3FD", "non_qualified": null, "image": "1f447-1f3fd.png", "sheet_x": 14, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F447-1F3FE", "non_qualified": null, "image": "1f447-1f3fe.png", "sheet_x": 14, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F447-1F3FF", "non_qualified": null, "image": "1f447-1f3ff.png", "sheet_x": 14, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "White Down Pointing Backhand Index", "b": "1F447", "j": [ "fingers", "hand", "direction", "down" ], "k": [ 14, 13 ] }, "v": { "skin_variations": { "1F3FB": { "unified": "270C-1F3FB", "non_qualified": null, "image": "270c-1f3fb.png", "sheet_x": 49, "sheet_y": 31, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "270C-1F3FC", "non_qualified": null, "image": "270c-1f3fc.png", "sheet_x": 49, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "270C-1F3FD", "non_qualified": null, "image": "270c-1f3fd.png", "sheet_x": 49, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "270C-1F3FE", "non_qualified": null, "image": "270c-1f3fe.png", "sheet_x": 49, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "270C-1F3FF", "non_qualified": null, "image": "270c-1f3ff.png", "sheet_x": 49, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Victory Hand", "b": "270C-FE0F", "c": "270C", "j": [ "fingers", "ohyeah", "hand", "peace", "victory", "two" ], "k": [ 49, 30 ], "o": 1 }, "crossed_fingers": { "skin_variations": { "1F3FB": { "unified": "1F91E-1F3FB", "non_qualified": null, "image": "1f91e-1f3fb.png", "sheet_x": 38, "sheet_y": 12, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F91E-1F3FC", "non_qualified": null, "image": "1f91e-1f3fc.png", "sheet_x": 38, "sheet_y": 13, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F91E-1F3FD", "non_qualified": null, "image": "1f91e-1f3fd.png", "sheet_x": 38, "sheet_y": 14, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F91E-1F3FE", "non_qualified": null, "image": "1f91e-1f3fe.png", "sheet_x": 38, "sheet_y": 15, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F91E-1F3FF", "non_qualified": null, "image": "1f91e-1f3ff.png", "sheet_x": 38, "sheet_y": 16, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Hand with Index and Middle Fingers Crossed", "b": "1F91E", "j": [ "good", "lucky" ], "k": [ 38, 11 ], "n": [ "hand_with_index_and_middle_fingers_crossed" ], "o": 9 }, "spock-hand": { "skin_variations": { "1F3FB": { "unified": "1F596-1F3FB", "non_qualified": null, "image": "1f596-1f3fb.png", "sheet_x": 29, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F596-1F3FC", "non_qualified": null, "image": "1f596-1f3fc.png", "sheet_x": 29, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F596-1F3FD", "non_qualified": null, "image": "1f596-1f3fd.png", "sheet_x": 29, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F596-1F3FE", "non_qualified": null, "image": "1f596-1f3fe.png", "sheet_x": 29, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F596-1F3FF", "non_qualified": null, "image": "1f596-1f3ff.png", "sheet_x": 29, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Raised Hand with Part Between Middle and Ring Fingers", "b": "1F596", "k": [ 29, 44 ], "o": 7 }, "the_horns": { "skin_variations": { "1F3FB": { "unified": "1F918-1F3FB", "non_qualified": null, "image": "1f918-1f3fb.png", "sheet_x": 37, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F918-1F3FC", "non_qualified": null, "image": "1f918-1f3fc.png", "sheet_x": 37, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F918-1F3FD", "non_qualified": null, "image": "1f918-1f3fd.png", "sheet_x": 37, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F918-1F3FE", "non_qualified": null, "image": "1f918-1f3fe.png", "sheet_x": 37, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F918-1F3FF", "non_qualified": null, "image": "1f918-1f3ff.png", "sheet_x": 37, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Sign of the Horns", "b": "1F918", "k": [ 37, 32 ], "n": [ "sign_of_the_horns" ], "o": 8 }, "call_me_hand": { "skin_variations": { "1F3FB": { "unified": "1F919-1F3FB", "non_qualified": null, "image": "1f919-1f3fb.png", "sheet_x": 37, "sheet_y": 39, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F919-1F3FC", "non_qualified": null, "image": "1f919-1f3fc.png", "sheet_x": 37, "sheet_y": 40, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F919-1F3FD", "non_qualified": null, "image": "1f919-1f3fd.png", "sheet_x": 37, "sheet_y": 41, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F919-1F3FE", "non_qualified": null, "image": "1f919-1f3fe.png", "sheet_x": 37, "sheet_y": 42, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F919-1F3FF", "non_qualified": null, "image": "1f919-1f3ff.png", "sheet_x": 37, "sheet_y": 43, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Call Me Hand", "b": "1F919", "j": [ "hands", "gesture" ], "k": [ 37, 38 ], "o": 9 }, "raised_hand_with_fingers_splayed": { "skin_variations": { "1F3FB": { "unified": "1F590-1F3FB", "non_qualified": null, "image": "1f590-1f3fb.png", "sheet_x": 29, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F590-1F3FC", "non_qualified": null, "image": "1f590-1f3fc.png", "sheet_x": 29, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F590-1F3FD", "non_qualified": null, "image": "1f590-1f3fd.png", "sheet_x": 29, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F590-1F3FE", "non_qualified": null, "image": "1f590-1f3fe.png", "sheet_x": 29, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F590-1F3FF", "non_qualified": null, "image": "1f590-1f3ff.png", "sheet_x": 29, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Raised Hand with Fingers Splayed", "b": "1F590-FE0F", "c": "1F590", "j": [ "hand", "fingers", "palm" ], "k": [ 29, 32 ], "o": 7 }, "hand": { "skin_variations": { "1F3FB": { "unified": "270B-1F3FB", "non_qualified": null, "image": "270b-1f3fb.png", "sheet_x": 49, "sheet_y": 25, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "270B-1F3FC", "non_qualified": null, "image": "270b-1f3fc.png", "sheet_x": 49, "sheet_y": 26, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "270B-1F3FD", "non_qualified": null, "image": "270b-1f3fd.png", "sheet_x": 49, "sheet_y": 27, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "270B-1F3FE", "non_qualified": null, "image": "270b-1f3fe.png", "sheet_x": 49, "sheet_y": 28, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "270B-1F3FF", "non_qualified": null, "image": "270b-1f3ff.png", "sheet_x": 49, "sheet_y": 29, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Raised Hand", "b": "270B", "k": [ 49, 24 ], "n": [ "raised_hand" ] }, "ok_hand": { "skin_variations": { "1F3FB": { "unified": "1F44C-1F3FB", "non_qualified": null, "image": "1f44c-1f3fb.png", "sheet_x": 14, "sheet_y": 44, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F44C-1F3FC", "non_qualified": null, "image": "1f44c-1f3fc.png", "sheet_x": 14, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F44C-1F3FD", "non_qualified": null, "image": "1f44c-1f3fd.png", "sheet_x": 14, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F44C-1F3FE", "non_qualified": null, "image": "1f44c-1f3fe.png", "sheet_x": 14, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F44C-1F3FF", "non_qualified": null, "image": "1f44c-1f3ff.png", "sheet_x": 14, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Ok Hand Sign", "b": "1F44C", "j": [ "fingers", "limbs", "perfect", "ok", "okay" ], "k": [ 14, 43 ] }, "plus1": { "skin_variations": { "1F3FB": { "unified": "1F44D-1F3FB", "non_qualified": null, "image": "1f44d-1f3fb.png", "sheet_x": 14, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F44D-1F3FC", "non_qualified": null, "image": "1f44d-1f3fc.png", "sheet_x": 14, "sheet_y": 51, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F44D-1F3FD", "non_qualified": null, "image": "1f44d-1f3fd.png", "sheet_x": 15, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F44D-1F3FE", "non_qualified": null, "image": "1f44d-1f3fe.png", "sheet_x": 15, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F44D-1F3FF", "non_qualified": null, "image": "1f44d-1f3ff.png", "sheet_x": 15, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Thumbs Up Sign", "b": "1F44D", "j": [ "thumbsup", "yes", "awesome", "good", "agree", "accept", "cool", "hand", "like" ], "k": [ 14, 49 ], "n": [ "thumbsup" ] }, "-1": { "skin_variations": { "1F3FB": { "unified": "1F44E-1F3FB", "non_qualified": null, "image": "1f44e-1f3fb.png", "sheet_x": 15, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F44E-1F3FC", "non_qualified": null, "image": "1f44e-1f3fc.png", "sheet_x": 15, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F44E-1F3FD", "non_qualified": null, "image": "1f44e-1f3fd.png", "sheet_x": 15, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F44E-1F3FE", "non_qualified": null, "image": "1f44e-1f3fe.png", "sheet_x": 15, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F44E-1F3FF", "non_qualified": null, "image": "1f44e-1f3ff.png", "sheet_x": 15, "sheet_y": 8, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Thumbs Down Sign", "b": "1F44E", "j": [ "thumbsdown", "no", "dislike", "hand" ], "k": [ 15, 3 ], "n": [ "thumbsdown" ] }, "fist": { "skin_variations": { "1F3FB": { "unified": "270A-1F3FB", "non_qualified": null, "image": "270a-1f3fb.png", "sheet_x": 49, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "270A-1F3FC", "non_qualified": null, "image": "270a-1f3fc.png", "sheet_x": 49, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "270A-1F3FD", "non_qualified": null, "image": "270a-1f3fd.png", "sheet_x": 49, "sheet_y": 21, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "270A-1F3FE", "non_qualified": null, "image": "270a-1f3fe.png", "sheet_x": 49, "sheet_y": 22, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "270A-1F3FF", "non_qualified": null, "image": "270a-1f3ff.png", "sheet_x": 49, "sheet_y": 23, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Raised Fist", "b": "270A", "j": [ "fingers", "hand", "grasp" ], "k": [ 49, 18 ] }, "facepunch": { "skin_variations": { "1F3FB": { "unified": "1F44A-1F3FB", "non_qualified": null, "image": "1f44a-1f3fb.png", "sheet_x": 14, "sheet_y": 32, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F44A-1F3FC", "non_qualified": null, "image": "1f44a-1f3fc.png", "sheet_x": 14, "sheet_y": 33, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F44A-1F3FD", "non_qualified": null, "image": "1f44a-1f3fd.png", "sheet_x": 14, "sheet_y": 34, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F44A-1F3FE", "non_qualified": null, "image": "1f44a-1f3fe.png", "sheet_x": 14, "sheet_y": 35, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F44A-1F3FF", "non_qualified": null, "image": "1f44a-1f3ff.png", "sheet_x": 14, "sheet_y": 36, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Fisted Hand Sign", "b": "1F44A", "j": [ "angry", "violence", "fist", "hit", "attack", "hand" ], "k": [ 14, 31 ], "n": [ "punch" ] }, "left-facing_fist": { "skin_variations": { "1F3FB": { "unified": "1F91B-1F3FB", "non_qualified": null, "image": "1f91b-1f3fb.png", "sheet_x": 37, "sheet_y": 51, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F91B-1F3FC", "non_qualified": null, "image": "1f91b-1f3fc.png", "sheet_x": 38, "sheet_y": 0, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F91B-1F3FD", "non_qualified": null, "image": "1f91b-1f3fd.png", "sheet_x": 38, "sheet_y": 1, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F91B-1F3FE", "non_qualified": null, "image": "1f91b-1f3fe.png", "sheet_x": 38, "sheet_y": 2, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F91B-1F3FF", "non_qualified": null, "image": "1f91b-1f3ff.png", "sheet_x": 38, "sheet_y": 3, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Left-Facing Fist", "b": "1F91B", "k": [ 37, 50 ], "o": 9 }, "right-facing_fist": { "skin_variations": { "1F3FB": { "unified": "1F91C-1F3FB", "non_qualified": null, "image": "1f91c-1f3fb.png", "sheet_x": 38, "sheet_y": 5, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F91C-1F3FC", "non_qualified": null, "image": "1f91c-1f3fc.png", "sheet_x": 38, "sheet_y": 6, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F91C-1F3FD", "non_qualified": null, "image": "1f91c-1f3fd.png", "sheet_x": 38, "sheet_y": 7, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F91C-1F3FE", "non_qualified": null, "image": "1f91c-1f3fe.png", "sheet_x": 38, "sheet_y": 8, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F91C-1F3FF", "non_qualified": null, "image": "1f91c-1f3ff.png", "sheet_x": 38, "sheet_y": 9, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Right-Facing Fist", "b": "1F91C", "k": [ 38, 4 ], "o": 9 }, "raised_back_of_hand": { "skin_variations": { "1F3FB": { "unified": "1F91A-1F3FB", "non_qualified": null, "image": "1f91a-1f3fb.png", "sheet_x": 37, "sheet_y": 45, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F91A-1F3FC", "non_qualified": null, "image": "1f91a-1f3fc.png", "sheet_x": 37, "sheet_y": 46, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F91A-1F3FD", "non_qualified": null, "image": "1f91a-1f3fd.png", "sheet_x": 37, "sheet_y": 47, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F91A-1F3FE", "non_qualified": null, "image": "1f91a-1f3fe.png", "sheet_x": 37, "sheet_y": 48, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F91A-1F3FF", "non_qualified": null, "image": "1f91a-1f3ff.png", "sheet_x": 37, "sheet_y": 49, "added_in": "9.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Raised Back of Hand", "b": "1F91A", "j": [ "fingers", "raised", "backhand" ], "k": [ 37, 44 ], "o": 9 }, "wave": { "skin_variations": { "1F3FB": { "unified": "1F44B-1F3FB", "non_qualified": null, "image": "1f44b-1f3fb.png", "sheet_x": 14, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F44B-1F3FC", "non_qualified": null, "image": "1f44b-1f3fc.png", "sheet_x": 14, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F44B-1F3FD", "non_qualified": null, "image": "1f44b-1f3fd.png", "sheet_x": 14, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F44B-1F3FE", "non_qualified": null, "image": "1f44b-1f3fe.png", "sheet_x": 14, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F44B-1F3FF", "non_qualified": null, "image": "1f44b-1f3ff.png", "sheet_x": 14, "sheet_y": 42, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Waving Hand Sign", "b": "1F44B", "j": [ "hands", "gesture", "goodbye", "solong", "farewell", "hello", "hi", "palm" ], "k": [ 14, 37 ] }, "i_love_you_hand_sign": { "skin_variations": { "1F3FB": { "unified": "1F91F-1F3FB", "non_qualified": null, "image": "1f91f-1f3fb.png", "sheet_x": 38, "sheet_y": 18, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F91F-1F3FC", "non_qualified": null, "image": "1f91f-1f3fc.png", "sheet_x": 38, "sheet_y": 19, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F91F-1F3FD", "non_qualified": null, "image": "1f91f-1f3fd.png", "sheet_x": 38, "sheet_y": 20, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F91F-1F3FE", "non_qualified": null, "image": "1f91f-1f3fe.png", "sheet_x": 38, "sheet_y": 21, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F91F-1F3FF", "non_qualified": null, "image": "1f91f-1f3ff.png", "sheet_x": 38, "sheet_y": 22, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "I Love You Hand Sign", "b": "1F91F", "k": [ 38, 17 ], "o": 10 }, "writing_hand": { "skin_variations": { "1F3FB": { "unified": "270D-1F3FB", "non_qualified": null, "image": "270d-1f3fb.png", "sheet_x": 49, "sheet_y": 37, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "270D-1F3FC", "non_qualified": null, "image": "270d-1f3fc.png", "sheet_x": 49, "sheet_y": 38, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "270D-1F3FD", "non_qualified": null, "image": "270d-1f3fd.png", "sheet_x": 49, "sheet_y": 39, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "270D-1F3FE", "non_qualified": null, "image": "270d-1f3fe.png", "sheet_x": 49, "sheet_y": 40, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "270D-1F3FF", "non_qualified": null, "image": "270d-1f3ff.png", "sheet_x": 49, "sheet_y": 41, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Writing Hand", "b": "270D-FE0F", "c": "270D", "j": [ "lower_left_ballpoint_pen", "stationery", "write", "compose" ], "k": [ 49, 36 ], "o": 1 }, "clap": { "skin_variations": { "1F3FB": { "unified": "1F44F-1F3FB", "non_qualified": null, "image": "1f44f-1f3fb.png", "sheet_x": 15, "sheet_y": 10, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F44F-1F3FC", "non_qualified": null, "image": "1f44f-1f3fc.png", "sheet_x": 15, "sheet_y": 11, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F44F-1F3FD", "non_qualified": null, "image": "1f44f-1f3fd.png", "sheet_x": 15, "sheet_y": 12, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F44F-1F3FE", "non_qualified": null, "image": "1f44f-1f3fe.png", "sheet_x": 15, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F44F-1F3FF", "non_qualified": null, "image": "1f44f-1f3ff.png", "sheet_x": 15, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Clapping Hands Sign", "b": "1F44F", "j": [ "hands", "praise", "applause", "congrats", "yay" ], "k": [ 15, 9 ] }, "open_hands": { "skin_variations": { "1F3FB": { "unified": "1F450-1F3FB", "non_qualified": null, "image": "1f450-1f3fb.png", "sheet_x": 15, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F450-1F3FC", "non_qualified": null, "image": "1f450-1f3fc.png", "sheet_x": 15, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F450-1F3FD", "non_qualified": null, "image": "1f450-1f3fd.png", "sheet_x": 15, "sheet_y": 18, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F450-1F3FE", "non_qualified": null, "image": "1f450-1f3fe.png", "sheet_x": 15, "sheet_y": 19, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F450-1F3FF", "non_qualified": null, "image": "1f450-1f3ff.png", "sheet_x": 15, "sheet_y": 20, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Open Hands Sign", "b": "1F450", "j": [ "fingers", "butterfly", "hands", "open" ], "k": [ 15, 15 ] }, "raised_hands": { "skin_variations": { "1F3FB": { "unified": "1F64C-1F3FB", "non_qualified": null, "image": "1f64c-1f3fb.png", "sheet_x": 33, "sheet_y": 13, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F64C-1F3FC", "non_qualified": null, "image": "1f64c-1f3fc.png", "sheet_x": 33, "sheet_y": 14, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F64C-1F3FD", "non_qualified": null, "image": "1f64c-1f3fd.png", "sheet_x": 33, "sheet_y": 15, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F64C-1F3FE", "non_qualified": null, "image": "1f64c-1f3fe.png", "sheet_x": 33, "sheet_y": 16, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F64C-1F3FF", "non_qualified": null, "image": "1f64c-1f3ff.png", "sheet_x": 33, "sheet_y": 17, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Person Raising Both Hands in Celebration", "b": "1F64C", "j": [ "gesture", "hooray", "yea", "celebration", "hands" ], "k": [ 33, 12 ] }, "palms_up_together": { "skin_variations": { "1F3FB": { "unified": "1F932-1F3FB", "non_qualified": null, "image": "1f932-1f3fb.png", "sheet_x": 39, "sheet_y": 17, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FC": { "unified": "1F932-1F3FC", "non_qualified": null, "image": "1f932-1f3fc.png", "sheet_x": 39, "sheet_y": 18, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FD": { "unified": "1F932-1F3FD", "non_qualified": null, "image": "1f932-1f3fd.png", "sheet_x": 39, "sheet_y": 19, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FE": { "unified": "1F932-1F3FE", "non_qualified": null, "image": "1f932-1f3fe.png", "sheet_x": 39, "sheet_y": 20, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false }, "1F3FF": { "unified": "1F932-1F3FF", "non_qualified": null, "image": "1f932-1f3ff.png", "sheet_x": 39, "sheet_y": 21, "added_in": "10.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": false } }, "a": "Palms Up Together", "b": "1F932", "k": [ 39, 16 ], "o": 10 }, "pray": { "skin_variations": { "1F3FB": { "unified": "1F64F-1F3FB", "non_qualified": null, "image": "1f64f-1f3fb.png", "sheet_x": 34, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F64F-1F3FC", "non_qualified": null, "image": "1f64f-1f3fc.png", "sheet_x": 34, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F64F-1F3FD", "non_qualified": null, "image": "1f64f-1f3fd.png", "sheet_x": 34, "sheet_y": 5, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F64F-1F3FE", "non_qualified": null, "image": "1f64f-1f3fe.png", "sheet_x": 34, "sheet_y": 6, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F64F-1F3FF", "non_qualified": null, "image": "1f64f-1f3ff.png", "sheet_x": 34, "sheet_y": 7, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Person with Folded Hands", "b": "1F64F", "j": [ "please", "hope", "wish", "namaste", "highfive" ], "k": [ 34, 2 ] }, "handshake": { "a": "Handshake", "b": "1F91D", "j": [ "agreement", "shake" ], "k": [ 38, 10 ], "o": 9 }, "nail_care": { "skin_variations": { "1F3FB": { "unified": "1F485-1F3FB", "non_qualified": null, "image": "1f485-1f3fb.png", "sheet_x": 23, "sheet_y": 45, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F485-1F3FC", "non_qualified": null, "image": "1f485-1f3fc.png", "sheet_x": 23, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F485-1F3FD", "non_qualified": null, "image": "1f485-1f3fd.png", "sheet_x": 23, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F485-1F3FE", "non_qualified": null, "image": "1f485-1f3fe.png", "sheet_x": 23, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F485-1F3FF", "non_qualified": null, "image": "1f485-1f3ff.png", "sheet_x": 23, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Nail Polish", "b": "1F485", "j": [ "beauty", "manicure", "finger", "fashion", "nail" ], "k": [ 23, 44 ] }, "ear": { "skin_variations": { "1F3FB": { "unified": "1F442-1F3FB", "non_qualified": null, "image": "1f442-1f3fb.png", "sheet_x": 13, "sheet_y": 46, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F442-1F3FC", "non_qualified": null, "image": "1f442-1f3fc.png", "sheet_x": 13, "sheet_y": 47, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F442-1F3FD", "non_qualified": null, "image": "1f442-1f3fd.png", "sheet_x": 13, "sheet_y": 48, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F442-1F3FE", "non_qualified": null, "image": "1f442-1f3fe.png", "sheet_x": 13, "sheet_y": 49, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F442-1F3FF", "non_qualified": null, "image": "1f442-1f3ff.png", "sheet_x": 13, "sheet_y": 50, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Ear", "b": "1F442", "j": [ "face", "hear", "sound", "listen" ], "k": [ 13, 45 ] }, "nose": { "skin_variations": { "1F3FB": { "unified": "1F443-1F3FB", "non_qualified": null, "image": "1f443-1f3fb.png", "sheet_x": 14, "sheet_y": 0, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FC": { "unified": "1F443-1F3FC", "non_qualified": null, "image": "1f443-1f3fc.png", "sheet_x": 14, "sheet_y": 1, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FD": { "unified": "1F443-1F3FD", "non_qualified": null, "image": "1f443-1f3fd.png", "sheet_x": 14, "sheet_y": 2, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FE": { "unified": "1F443-1F3FE", "non_qualified": null, "image": "1f443-1f3fe.png", "sheet_x": 14, "sheet_y": 3, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true }, "1F3FF": { "unified": "1F443-1F3FF", "non_qualified": null, "image": "1f443-1f3ff.png", "sheet_x": 14, "sheet_y": 4, "added_in": "8.0", "has_img_apple": true, "has_img_google": true, "has_img_twitter": true, "has_img_emojione": true, "has_img_facebook": true, "has_img_messenger": true } }, "a": "Nose", "b": "1F443", "j": [ "smell", "sniff" ], "k": [ 13, 51 ] }, "footprints": { "a": "Footprints", "b": "1F463", "j": [ "feet", "tracking", "walking", "beach" ], "k": [ 15, 39 ] }, "eyes": { "a": "Eyes", "b": "1F440", "j": [ "look", "watch", "stalk", "peek", "see" ], "k": [ 13, 42 ] }, "eye": { "a": "Eye", "b": "1F441-FE0F", "c": "1F441", "j": [ "face", "look", "see", "watch", "stare" ], "k": [ 13, 44 ], "o": 7 }, "brain": { "a": "Brain", "b": "1F9E0", "j": [ "smart", "intelligent" ], "k": [ 46, 22 ], "o": 10 }, "tongue": { "a": "Tongue", "b": "1F445", "j": [ "mouth", "playful" ], "k": [ 14, 6 ] }, "lips": { "a": "Mouth", "b": "1F444", "j": [ "mouth", "kiss" ], "k": [ 14, 5 ] }, "kiss": { "a": "Kiss Mark", "b": "1F48B", "j": [ "face", "lips", "love", "like", "affection", "valentines" ], "k": [ 24, 37 ] }, "cupid": { "a": "Heart with Arrow", "b": "1F498", "j": [ "love", "like", "heart", "affection", "valentines" ], "k": [ 24, 50 ] }, "heart": { "a": "Heavy Black Heart", "b": "2764-FE0F", "c": "2764", "j": [ "love", "like", "valentines" ], "k": [ 50, 8 ], "l": [ "<3" ], "m": "<3", "o": 1 }, "heartbeat": { "a": "Beating Heart", "b": "1F493", "j": [ "love", "like", "affection", "valentines", "pink", "heart" ], "k": [ 24, 45 ] }, "broken_heart": { "a": "Broken Heart", "b": "1F494", "j": [ "sad", "sorry", "break", "heart", "heartbreak" ], "k": [ 24, 46 ], "l": [ "</3" ], "m": "</3" }, "two_hearts": { "a": "Two Hearts", "b": "1F495", "j": [ "love", "like", "affection", "valentines", "heart" ], "k": [ 24, 47 ] }, "sparkling_heart": { "a": "Sparkling Heart", "b": "1F496", "j": [ "love", "like", "affection", "valentines" ], "k": [ 24, 48 ] }, "heartpulse": { "a": "Growing Heart", "b": "1F497", "j": [ "like", "love", "affection", "valentines", "pink" ], "k": [ 24, 49 ] }, "blue_heart": { "a": "Blue Heart", "b": "1F499", "j": [ "love", "like", "affection", "valentines" ], "k": [ 24, 51 ], "m": "<3" }, "green_heart": { "a": "Green Heart", "b": "1F49A", "j": [ "love", "like", "affection", "valentines" ], "k": [ 25, 0 ], "m": "<3" }, "yellow_heart": { "a": "Yellow Heart", "b": "1F49B", "j": [ "love", "like", "affection", "valentines" ], "k": [ 25, 1 ], "m": "<3" }, "orange_heart": { "a": "Orange Heart", "b": "1F9E1", "j": [ "love", "like", "affection", "valentines" ], "k": [ 46, 23 ], "o": 10 }, "purple_heart": { "a": "Purple Heart", "b": "1F49C", "j": [ "love", "like", "affection", "valentines" ], "k": [ 25, 2 ], "m": "<3" }, "black_heart": { "a": "Black Heart", "b": "1F5A4", "j": [ "evil" ], "k": [ 29, 50 ], "o": 9 }, "gift_heart": { "a": "Heart with Ribbon", "b": "1F49D", "j": [ "love", "valentines" ], "k": [ 25, 3 ] }, "revolving_hearts": { "a": "Revolving Hearts", "b": "1F49E", "j": [ "love", "like", "affection", "valentines" ], "k": [ 25, 4 ] }, "heart_decoration": { "a": "Heart Decoration", "b": "1F49F", "j": [ "purple-square", "love", "like" ], "k": [ 25, 5 ] }, "heavy_heart_exclamation_mark_ornament": { "a": "Heavy Heart Exclamation Mark Ornament", "b": "2763-FE0F", "c": "2763", "k": [ 50, 7 ], "o": 1 }, "love_letter": { "a": "Love Letter", "b": "1F48C", "j": [ "email", "like", "affection", "envelope", "valentines" ], "k": [ 24, 38 ] }, "zzz": { "a": "Sleeping Symbol", "b": "1F4A4", "j": [ "sleepy", "tired", "dream" ], "k": [ 25, 10 ] }, "anger": { "a": "Anger Symbol", "b": "1F4A2", "j": [ "angry", "mad" ], "k": [ 25, 8 ] }, "bomb": { "a": "Bomb", "b": "1F4A3", "j": [ "boom", "explode", "explosion", "terrorism" ], "k": [ 25, 9 ] }, "boom": { "a": "Collision Symbol", "b": "1F4A5", "j": [ "bomb", "explode", "explosion", "collision", "blown" ], "k": [ 25, 11 ], "n": [ "collision" ] }, "sweat_drops": { "a": "Splashing Sweat Symbol", "b": "1F4A6", "j": [ "water", "drip", "oops" ], "k": [ 25, 12 ] }, "dash": { "a": "Dash Symbol", "b": "1F4A8", "j": [ "wind", "air", "fast", "shoo", "fart", "smoke", "puff" ], "k": [ 25, 14 ] }, "dizzy": { "a": "Dizzy Symbol", "b": "1F4AB", "j": [ "star", "sparkle", "shoot", "magic" ], "k": [ 25, 22 ] }, "speech_balloon": { "a": "Speech Balloon", "b": "1F4AC", "j": [ "bubble", "words", "message", "talk", "chatting" ], "k": [ 25, 23 ] }, "left_speech_bubble": { "a": "Left Speech Bubble", "b": "1F5E8-FE0F", "c": "1F5E8", "j": [ "words", "message", "talk", "chatting" ], "k": [ 30, 15 ], "o": 7 }, "right_anger_bubble": { "a": "Right Anger Bubble", "b": "1F5EF-FE0F", "c": "1F5EF", "j": [ "caption", "speech", "thinking", "mad" ], "k": [ 30, 16 ], "o": 7 }, "thought_balloon": { "a": "Thought Balloon", "b": "1F4AD", "j": [ "bubble", "cloud", "speech", "thinking", "dream" ], "k": [ 25, 24 ] }, "hole": { "a": "Hole", "b": "1F573-FE0F", "c": "1F573", "j": [ "embarrassing" ], "k": [ 28, 44 ], "o": 7 }, "eyeglasses": { "a": "Eyeglasses", "b": "1F453", "j": [ "fashion", "accessories", "eyesight", "nerdy", "dork", "geek" ], "k": [ 15, 23 ] }, "dark_sunglasses": { "a": "Dark Sunglasses", "b": "1F576-FE0F", "c": "1F576", "j": [ "face", "cool", "accessories" ], "k": [ 29, 17 ], "o": 7 }, "necktie": { "a": "Necktie", "b": "1F454", "j": [ "shirt", "suitup", "formal", "fashion", "cloth", "business" ], "k": [ 15, 24 ] }, "shirt": { "a": "T-Shirt", "b": "1F455", "k": [ 15, 25 ], "n": [ "tshirt" ] }, "jeans": { "a": "Jeans", "b": "1F456", "j": [ "fashion", "shopping" ], "k": [ 15, 26 ] }, "scarf": { "a": "Scarf", "b": "1F9E3", "j": [ "neck", "winter", "clothes" ], "k": [ 46, 25 ], "o": 10 }, "gloves": { "a": "Gloves", "b": "1F9E4", "j": [ "hands", "winter", "clothes" ], "k": [ 46, 26 ], "o": 10 }, "coat": { "a": "Coat", "b": "1F9E5", "j": [ "jacket" ], "k": [ 46, 27 ], "o": 10 }, "socks": { "a": "Socks", "b": "1F9E6", "j": [ "stockings", "clothes" ], "k": [ 46, 28 ], "o": 10 }, "dress": { "a": "Dress", "b": "1F457", "j": [ "clothes", "fashion", "shopping" ], "k": [ 15, 27 ] }, "kimono": { "a": "Kimono", "b": "1F458", "j": [ "dress", "fashion", "women", "female", "japanese" ], "k": [ 15, 28 ] }, "bikini": { "a": "Bikini", "b": "1F459", "j": [ "swimming", "female", "woman", "girl", "fashion", "beach", "summer" ], "k": [ 15, 29 ] }, "womans_clothes": { "a": "Womans Clothes", "b": "1F45A", "j": [ "fashion", "shopping_bags", "female" ], "k": [ 15, 30 ] }, "purse": { "a": "Purse", "b": "1F45B", "j": [ "fashion", "accessories", "money", "sales", "shopping" ], "k": [ 15, 31 ] }, "handbag": { "a": "Handbag", "b": "1F45C", "j": [ "fashion", "accessory", "accessories", "shopping" ], "k": [ 15, 32 ] }, "pouch": { "a": "Pouch", "b": "1F45D", "j": [ "bag", "accessories", "shopping" ], "k": [ 15, 33 ] }, "shopping_bags": { "a": "Shopping Bags", "b": "1F6CD-FE0F", "c": "1F6CD", "k": [ 37, 2 ], "o": 7 }, "school_satchel": { "a": "School Satchel", "b": "1F392", "j": [ "student", "education", "bag", "backpack" ], "k": [ 8, 37 ] }, "mans_shoe": { "a": "Mans Shoe", "b": "1F45E", "j": [ "fashion", "male" ], "k": [ 15, 34 ], "n": [ "shoe" ] }, "athletic_shoe": { "a": "Athletic Shoe", "b": "1F45F", "j": [ "shoes", "sports", "sneakers" ], "k": [ 15, 35 ] }, "high_heel": { "a": "High-Heeled Shoe", "b": "1F460", "j": [ "fashion", "shoes", "female", "pumps", "stiletto" ], "k": [ 15, 36 ] }, "sandal": { "a": "Womans Sandal", "b": "1F461", "j": [ "shoes", "fashion", "flip flops" ], "k": [ 15, 37 ] }, "boot": { "a": "Womans Boots", "b": "1F462", "j": [ "shoes", "fashion" ], "k": [ 15, 38 ] }, "crown": { "a": "Crown", "b": "1F451", "j": [ "king", "kod", "leader", "royalty", "lord" ], "k": [ 15, 21 ] }, "womans_hat": { "a": "Womans Hat", "b": "1F452", "j": [ "fashion", "accessories", "female", "lady", "spring" ], "k": [ 15, 22 ] }, "tophat": { "a": "Top Hat", "b": "1F3A9", "j": [ "magic", "gentleman", "classy", "circus" ], "k": [ 9, 3 ] }, "mortar_board": { "a": "Graduation Cap", "b": "1F393", "j": [ "school", "college", "degree", "university", "graduation", "cap", "hat", "legal", "learn", "education" ], "k": [ 8, 38 ] }, "billed_cap": { "a": "Billed Cap", "b": "1F9E2", "k": [ 46, 24 ], "o": 10 }, "helmet_with_white_cross": { "a": "Helmet with White Cross", "b": "26D1-FE0F", "c": "26D1", "k": [ 48, 33 ], "o": 5 }, "prayer_beads": { "a": "Prayer Beads", "b": "1F4FF", "j": [ "dhikr", "religious" ], "k": [ 27, 1 ], "o": 8 }, "lipstick": { "a": "Lipstick", "b": "1F484", "j": [ "female", "girl", "fashion", "woman" ], "k": [ 23, 43 ] }, "ring": { "a": "Ring", "b": "1F48D", "j": [ "wedding", "propose", "marriage", "valentines", "diamond", "fashion", "jewelry", "gem", "engagement" ], "k": [ 24, 39 ] }, "gem": { "a": "Gem Stone", "b": "1F48E", "j": [ "blue", "ruby", "diamond", "jewelry" ], "k": [ 24, 40 ] } }, "aliases": { "satisfied": "laughing", "grinning_face_with_star_eyes": "star-struck", "face_with_one_eyebrow_raised": "face_with_raised_eyebrow", "telephone": "phone", "cooking": "fried_egg", "paw_prints": "feet", "flag-cn": "cn", "lantern": "izakaya_lantern", "shocked_face_with_exploding_head": "exploding_head", "open_book": "book", "flag-de": "de", "grinning_face_with_one_large_and_one_small_eye": "zany_face", "serious_face_with_symbols_covering_mouth": "face_with_symbols_on_mouth", "flipper": "dolphin", "face_with_open_mouth_vomiting": "face_vomiting", "flag-es": "es", "face_with_finger_covering_closed_lips": "shushing_face", "smiling_face_with_smiling_eyes_and_hand_covering_mouth": "face_with_hand_over_mouth", "flag-fr": "fr", "honeybee": "bee", "red_car": "car", "envelope": "email", "uk": "gb", "flag-gb": "gb", "poop": "hankey", "shit": "hankey", "staff_of_aesculapius": "medical_symbol", "knife": "hocho", "sailboat": "boat", "pencil": "memo", "flag-it": "it", "flag-jp": "jp", "heavy_exclamation_mark": "exclamation", "flag-kr": "kr", "waxing_gibbous_moon": "moon", "mother_christmas": "mrs_claus", "sun_small_cloud": "mostly_sunny", "sun_behind_cloud": "barely_sunny", "sun_behind_rain_cloud": "partly_sunny_rain", "lightning_cloud": "lightning", "tornado_cloud": "tornado", "flag-ru": "ru", "running": "runner", "flag-us": "us", "man_and_woman_holding_hands": "couple", "man-woman-boy": "family", "family": "man-woman-boy", "reversed_hand_with_middle_finger_extended": "middle_finger", "hand_with_index_and_middle_fingers_crossed": "crossed_fingers", "sign_of_the_horns": "the_horns", "raised_hand": "hand", "thumbsup": "plus1", "thumbsdown": "-1", "punch": "facepunch", "collision": "boom", "tshirt": "shirt", "shoe": "mans_shoe" } }; (function( root, $, factory ) { joms.fn || (joms.fn = {}); joms.fn.tagging = factory( root, $ ); define('functions/tagging',[ 'utils/tagging' ], function() { return joms.fn.tagging; }); })( window, joms.jQuery, function( window, $ ) { var groupMembers = {}, eventMembers = {}, groupMembersFetching = {}, eventMembersFetching = {}, groupMembersFetchCallback = {}, eventMembersFetchCallback = {}; function initInputbox() { var inputbox = $( document.body ) .find('.joms-js--newcomment') .find('textarea.joms-textarea'); inputbox.each(function() { var el = $( this ); if ( !el[0].joms_beautifier ) { el[0].joms_data = el.data(); el.jomsTagging( fetchInputbox ); } }); } function fetchInputbox( callback ) { var that = this, data = this.textarea.joms_data, id = data.tagId || data.id, func = ( data.tagFunc || data.func || '' ).toLowerCase(), type = data.type || '', friends = [], url; if ( this.textarea.joms_friends ) { callback( this.textarea.joms_friends ); return; } if ( !func ) { url = 'index.php?option=com_community&view=friends&task=ajaxAutocomplete&type=comment&streamid=' + id; if ( window.joms_group_id ) { url += '&groupid=' + window.joms_group_id; } else if ( window.joms_event_id ) { url += '&eventid=' + window.joms_event_id; } } else { url = 'index.php?option=com_community&view=friends&task=ajaxAutocomplete'; if ( func.indexOf('album') > -1 ) { url += '&albumid=' + id; } else if ( func.indexOf('photo') > -1 ) { url += '&photoid=' + id + '&rule=photo-comment'; } else if ( func.indexOf('video') > -1 ) { url += '&videoid=' + id; } else if ( func.indexOf('discussion') > -1 ) { url += '&discussionid=' + id; } else if ( func.indexOf('inbox') > -1 ) { url += '&msgid=' + id; } else if ( type.match( /service\.comment\.joomla\.article/ ) ) { url += '&type=comment&streamid=' + id; } } this.fetchXHR && this.fetchXHR.abort(); this.fetchXHR = $.ajax({ url: joms.BASE_URL + url, dataType: 'json', success: function( json ) { that.textarea.joms_friends = friends = _parse( json ); }, complete: function() { var i, j, ilen, jlen; // Update (posibbly) old images and names. if ( friends.length && window.joms_friends.length ) { for ( i = 0, ilen = Math.min( friends.length, 30 ); i < ilen; i++ ) { for ( j = 0, jlen = Math.min( window.joms_friends.length, 30 ); j < jlen; j++ ) { if ( +friends[i].id === +window.joms_friends[j].id ) { window.joms_friends[j].avatar = friends[i].avatar; window.joms_friends[j].name = friends[i].name; } } } } that.fetchXHR = false; callback( friends ); } }); } function fetchFriendsInContext() { var url = 'index.php?option=com_community&view=friends&task=ajaxAutocomplete', friends = []; if ( window.joms_group_id ) { url += '&groupid=' + window.joms_group_id; } else if ( window.joms_event_id ) { url += '&eventid=' + window.joms_event_id; } else { url += '&allfriends=1'; } joms.jQuery.ajax({ url: joms.BASE_URL + url, dataType: 'json', success: function( json ) { friends = _parse( json ); }, complete: function() { window.joms_friends = friends; var event = new CustomEvent('JomsFriendsFetched'); document.dispatchEvent(event); } }); } function fetchGroupMembers( groupid, callback ) { var url = 'index.php?option=com_community&view=friends&task=ajaxAutocomplete&groupid=' + groupid; if ( !groupMembersFetchCallback[ groupid ] ) { groupMembersFetchCallback[ groupid ] = []; } if ( groupMembersFetching[ groupid ] ) { groupMembersFetchCallback[ groupid ].push( callback ); return; } if ( groupMembers[ groupid ] ) { callback( groupMembers[ groupid ] ); return; } groupMembersFetching[ groupid ] = true; joms.jQuery.ajax({ url: joms.BASE_URL + url, dataType: 'json', success: function( json ) { groupMembers[ groupid ] = _parse( json ); }, complete: function() { callback( groupMembers[ groupid ] ); while ( groupMembersFetchCallback[ groupid ].length ) { try { ( groupMembersFetchCallback[ groupid ].shift() )( groupMembers[ groupid ] ); } catch (e) {} } groupMembersFetching[ groupid ] = false; } }); } function fetchEventMembers( eventid, callback ) { var url = 'index.php?option=com_community&view=friends&task=ajaxAutocomplete&eventid=' + eventid; if ( !eventMembersFetchCallback[ eventid ] ) { eventMembersFetchCallback[ eventid ] = []; } if ( eventMembersFetching[ eventid ] ) { eventMembersFetchCallback[ eventid ].push( callback ); return; } if ( eventMembers[ eventid ] ) { callback( eventMembers[ eventid ] ); return; } eventMembersFetching[ eventid ] = true; joms.jQuery.ajax({ url: joms.BASE_URL + url, dataType: 'json', success: function( json ) { eventMembers[ eventid ] = _parse( json ); }, complete: function() { callback( eventMembers[ eventid ] ); while ( eventMembersFetchCallback[ eventid ].length ) { try { ( eventMembersFetchCallback[ eventid ].shift() )( eventMembers[ eventid ] ); } catch (e) {} } eventMembersFetching[ eventid ] = false; } }); } function _parse( json ) { var uniques = [], friends = [], id, i; if ( json && json.suggestions && json.suggestions.length ) { for ( i = 0; i < json.suggestions.length; i++ ) { id = '' + json.data[i]; if ( uniques.indexOf(id) >= 0 ) continue; uniques.push( id ); friends.push({ id: id, name: json.suggestions[i], avatar: json.img[i].replace( /^.+src="([^"]+)".+$/ , '$1'), type: 'contact' }); } } return friends; } // Exports. return { initInputbox: initInputbox, fetchInputbox: fetchInputbox, fetchFriendsInContext: fetchFriendsInContext, fetchGroupMembers: fetchGroupMembers, fetchEventMembers: fetchEventMembers }; }); (function (root, $, factory) { joms.view || (joms.view = {}); joms.view.comment = factory(root, $); define('views/comment',['utils/video', 'functions/tagging'], function () { return joms.view.comment; }); })(window, joms.jQuery, function (window, $) { var container, uploader, uploaderType, uploaderParams, uploaderButton, uploaderAttachment, uploaderRef, uploaderError; function initialize() { uninitialize(); container = $(document.body); container.on('keydown.joms-comment', '.joms-comment__reply textarea', keydown); container.on('focus.joms-comment', '.joms-comment__reply textarea', focused); container.on('focus.joms-comment', '.joms-js--pm-message textarea', focused); container.on('click.joms-comment', '.joms-comment__reply .joms-js--btn-send', onSend); container.on('click.joms-comment', '.joms-js--inbox-reply .joms-js--btn-send', onSend); container.on('click.joms-comment', '.joms-comment__more', showAll); addAttachmentInit(); initInputbox(); initVideoPlayers(); } function uninitialize() { if (container) { container.off('keydown.joms-comment', '.joms-comment__reply textarea'); container.off('focus.joms-comment', '.joms-comment__reply textarea'); container.off('focus.joms-comment', '.joms-js--pm-message textarea'); container.off('click.joms-comment', '.joms-comment__reply .joms-js--btn-send'); container.off('click.joms-comment', '.joms-js--inbox-reply .joms-js--btn-send'); container.off('click.joms-comment', '.joms-comment__more'); } } function initInputbox() { joms.fn.tagging.initInputbox(); } function initVideoPlayers() { var initialized = '.joms-js--initialized', cssVideos = '.joms-js--video', videos = $('.joms-comment__body,.joms-js--inbox').find(cssVideos).not(initialized).addClass(initialized.substr(1)); if (!videos.length) { return; } joms.loadCSS(joms.ASSETS_URL + 'vendors/mediaelement/mediaelementplayer.min.css'); videos.on('click.joms-video', cssVideos + '-play', function () { var $el = $(this).closest(cssVideos); joms.util.video.play($el, $el.data()); }); if (joms.ios) { setTimeout(function () { videos.find(cssVideos + '-play').click(); }, 2000); } } function keydown(e) { var key = e.keyCode || e.charCode, textarea; if (key !== 13 || e.shiftKey) { return; } textarea = $(e.target); if (textarea.data('noentersend') || joms.mobile) { return; } setTimeout(function () { send(e); }, 100); return false; } function focused(e) { var textarea = $(e.target), wrapper = textarea.closest('.joms-textarea__wrapper'), attachment = wrapper.find('.joms-textarea__attachment'); if (attachment.length) { uploaderAttachment = attachment; } } function onSend(e) { var el = $(e.currentTarget), textarea = el.closest('.joms-comment__reply,.joms-js--inbox-reply').find('textarea'); send({ currentTarget: textarea[0] }); } function send(e) { var el = $(e.currentTarget), text = (el.val() || ''), isEdit = +el.data('edit'), id, func, type, attachment; // Use tag value if available. if (el[0].joms_hidden) { text = el[0].joms_hidden.val() || text; } // Don't send empty message and no image. if (text.replace(/^\s+|\s+$/g, '') === '') { attachment = el.siblings('.joms-textarea__attachment'); if (!attachment.length || !attachment.is(':visible')) { alert(joms_lang.COM_COMMUNITY_CANNOT_EDIT_COMMENT_ERROR); return; } } id = +el.data('id'); func = el.data('func') || ''; type = el.data('type') || ''; if (isEdit) { editSave(el, id, func, type, text, function () { initVideoPlayers(); reset(el, 'edit'); }); } else { addSave(el, id, func, type, text, function () { el.val(''); initVideoPlayers(); reset(el); }); } } function reset(el, type) { if (type !== 'edit') { el.closest('.joms-comment__reply').find('.joms-textarea__attachment').hide(); } el = el[0]; if (el.joms_reset) { el.joms_reset(); } if (el.joms_beautifier && el.joms_beautifier !== 'none') { el.joms_beautifier.html(''); } if (el.joms_hidden) { el.joms_hidden.val(el.value); } } function addSave(el, id, func, type, text, callback) { var isWall = func, isPhotoAlbum = false, isPhoto = false, isVideo = false, isDiscussion = false, isInbox = false, isCustomWall = false, photo = false, file = false, data, ct, funcLower, $loading; if (el.data('saving')) { return; } el.data('saving', 1); if (isWall) { funcLower = func.toLowerCase(); if (funcLower.indexOf('album') > -1) { isPhotoAlbum = true; } else if (funcLower.indexOf('photo') > -1) { isPhoto = true; } else if (funcLower.indexOf('video') > -1) { isVideo = true; } else if (funcLower.indexOf('discussion') > -1) { isDiscussion = true; } else if (funcLower.indexOf('inbox') > -1) { isInbox = true; } else if (funcLower.indexOf('wall')) { isCustomWall = true; } } ct = uploaderAttachment; if (ct && ct.is(':visible')) { photo = ct.find('.joms-textarea__attachment--thumbnail').find('img'); file = photo.siblings('b'); if (photo.is(':visible')) { photo = photo.data('photo_id'); file = ''; } else if (file.is(':visible')) { file = file.data('id'); photo = ''; } } photo = photo || ''; file = file || ''; if (!isWall) { func = 'system,ajaxStreamAddComment'; data = [id, text, photo]; } else if (isVideo || isDiscussion) { data = [text, id, photo]; } else if (isInbox) { data = [id, text, photo, file]; } else if (isCustomWall) { data = [type, id, text, photo]; } else { data = [text, id, '', photo]; } $loading = $(el).siblings('.joms-textarea__loading'); $loading.show(); joms.ajax({ func: func, data: data, callback: function (json) { var $ct, item, status, counter; $loading.hide(); if (json.success) { if (isInbox) { _onInboxAdded(json.html); el.removeData('saving'); // Enable sibling items. if (uploaderRef) { uploaderRef.siblings('svg') .removeData('disabled') .css('opacity', ''); } return; } $ct = $('.joms-js--comments-' + id); $ct.append(json.html || ''); counter = $('.joms-comment__counter--' + id); counter.html(+counter.eq(0).text() + 1); counter.parents('.joms-comment__status').show(); joms.parseEmoji(); } if (typeof callback === 'function') { callback(json); } el.removeData('saving'); // Enable sibling items. if (uploaderRef) { uploaderRef.siblings('svg') .removeData('disabled') .css('opacity', ''); } if (json.error) { window.alert(json.error); } } }); } function edit(commentId, elem, type) { var isWall = type === 'wall', comment, reply, textarea; elem = $(elem); comment = elem.closest('.joms-comment__item'); textarea = comment.children('.joms-comment__reply').find('textarea'); if (isWall) { reply = comment.closest('.joms-comment').siblings('.joms-comment__reply'); } else { reply = comment.closest('.joms-stream').children('.joms-comment__reply'); } reply.hide(); comment.children('.joms-comment__body,.joms-comment__actions').hide(); comment.children('.joms-comment__reply').show(); textarea.jomsTagging(); textarea.off('reset.joms-tagging'); textarea.on('reset.joms-tagging', function () { comment.children('.joms-comment__reply').hide(); comment.children('.joms-comment__body,.joms-comment__actions').show(); reply.show(); }); textarea[0].focus(); } function editSave(el, commentId, func, type, text, callback) { var isWall = func, attachment, photo, photoSrc, data, $loading; if (el.data('saving')) { return; } el.data('saving', 1); attachment = el.siblings('.joms-textarea__attachment'); if (attachment.is(':visible')) { photo = attachment.find('.joms-textarea__attachment--thumbnail').find('img'); photoSrc = photo.attr('src'); photo = photo.data('photo_id') || '0'; } else if (attachment.data('no_thumb')) { photo = '0'; } else { photo = '-1'; } if (isWall) { data = [commentId, text, func, photo]; func = 'system,ajaxUpdateWall'; } else { func = 'system,ajaxeditComment'; data = [commentId, text, photo]; } $loading = $(el).siblings('.joms-textarea__loading'); $loading.show(); joms.ajax({ func: func, data: data, callback: function (json) { var $ct, $body, $reply; $loading.hide(); if (json.success) { $ct = $('.joms-js--comment-' + commentId); $body = $ct.find('.joms-js--comment-body'); $reply = $('.joms-js--newcomment-' + $ct.data('parent')); $ct.find('.joms-js--comment-editor').hide().find('textarea').val(json.originalComment || ''); $ct.find('.joms-js--comment-content').html(json.comment || ''); $ct.find('.joms-js--comment-actions').show(); $body.show(); $reply.show(); // Update photo if available. if (+photo < 0 || +photo > 0) { $body.children('.joms-js--comment-content').next('div').remove(); if (+photo > 0 && photoSrc) { $body.children('.joms-js--comment-content').after([ '<div style="padding:5px 0">', '<a href="javascript:" onclick="joms.api.photoZoom(\'', photoSrc, '\');">', '<img class="joms-stream-thumb" src="', photoSrc, '">', '</a>', '</div>' ].join('')); } } joms.parseEmoji(); } if (json.error) { alert(json.error) } if (typeof callback === 'function') { callback(json); } try { el.blur(); } catch (e) { } el.removeData('saving'); // Enable sibling items. if (uploaderRef) { uploaderRef.siblings('svg') .removeData('disabled') .css('opacity', ''); } } }); } // function editCancel( textarea ) { // } function like(commentId) { joms.ajax({ func: 'system,ajaxStreamAddLike', data: [commentId, 'comment'], callback: function (json) { var $ct, btn, info; if (json.success) { $ct = $('.joms-js--comment-' + commentId); if ($ct.length) { btn = $ct.find('.joms-comment__actions').find('.joms-button--liked'); btn.attr('onclick', 'joms.api.commentUnlike(\'' + commentId + '\');'); btn.addClass('liked'); btn.find('span').html(btn.data('lang-unlike')); btn.find('use').attr('xlink:href', window.location + '#joms-icon-thumbs-down'); info = $ct.find('.joms-comment__actions [data-action=showlike]'); if (!json.html) { info.remove(); } else if (info.length) { info.replaceWith(json.html); } else { btn.after(json.html); } } } } }); } function unlike(commentId) { joms.ajax({ func: 'system,ajaxStreamUnlike', data: [commentId, 'comment'], callback: function (json) { var $ct, btn, info; if (json.success) { $ct = $('.joms-js--comment-' + commentId); if ($ct.length) { btn = $ct.find('.joms-comment__actions').find('.joms-button--liked'); btn.attr('onclick', 'joms.api.commentLike(\'' + commentId + '\');'); btn.removeClass('liked'); btn.find('span').html(btn.data('lang-like')); btn.find('use').attr('xlink:href', window.location + '#joms-icon-thumbs-up'); info = $ct.find('.joms-comment__actions [data-action=showlike]'); if (!json.html) { info.remove(); } else if (info.length) { info.replaceWith(json.html); } else { btn.after(json.html); } } } } }); } function showAll(e) { var el = $(e.currentTarget), ct = el.closest('.joms-js--comments'), type = ct.data('type') || '', id = +ct.data('id'), shown = ct.children('.joms-js--comment').length, limit = window.joms_prev_comment_load; if (!id) { return; } joms.ajax({ func: 'system,ajaxStreamShowComments', data: [id, type, shown, limit], callback: function (json) { var html, ct, remaining, link, lang; if (json.success) { html = $($.trim(json.html)); if (type) { html = html.filter('.joms-js--comments').children(); } ct = $('.joms-js--comments-' + id); ct.find('.joms-js--comment').remove(); ct.append(html); json.total = +json.total; remaining = Math.max(0, json.total - ct.children('.joms-js--comment').length); if (remaining > 0) { link = ct.find('.joms-js--more-comments a'); lang = link.data('lang') || (window.joms_lang.COM_COMMUNITY_SHOW_PREVIOUS_COMMENTS + ' (%d)'); if (lang) { link.text(lang.replace('%d', remaining)); } } else { ct.find('.joms-js--more-comments').remove(); } initVideoPlayers(); joms.parseEmoji(); } } }); } function remove(commentId, type) { var cf = confirm(joms_lang.COM_COMMUNITY_ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_COMMENT); if (!cf) { return; } var isInbox = type === 'inbox', isWall = type === 'wall', func, data; if (isInbox) { func = 'inbox,ajaxRemoveMessage'; data = [commentId]; } else if (isWall) { func = window.joms_wall_remove_func; data = [commentId]; } else { func = 'system,ajaxStreamRemoveComment'; data = [commentId]; } joms.ajax({ func: func, data: data, callback: function (json) { var $ct; if (!json.success) { window.alert(json.error || 'Undefined error.'); return; } if (isInbox) { _onInboxRemoved(commentId); return; } $ct = $('.joms-js--comment-' + commentId); if ($ct.length) { $ct.fadeOut(300, function () { $(this).remove(); }); var parent_id = $ct.data('stream-id') || $ct.data('parent'); var counter = $('.joms-comment__counter--' + parent_id); if (counter.length) { var val = +counter.eq(0).text() - 1; if (val === 0) { counter.parents('.joms-comment__status').hide(); $ct.parents('.joms-popup').find('.joms-comment').html(joms_lang.COM_COMMUNITY_NO_COMMENTS_YET); } counter.html(val); } } } }); } function removeTag(id, type) { joms.ajax({ func: 'activities,ajaxRemoveUserTag', data: [id, type || 'comment'], callback: function (json) { var $comment, $cbutton, $ccontent, $ceditor, $textarea; if (json.success) { if (type === 'inbox') { $comment = $('.joms-js--inbox-item-' + id); $cbutton = $comment.find('.joms-button--remove-tag'); $ccontent = $comment.find('.joms-js--inbox-content'); $ccontent.html(json.data); $cbutton.remove(); } else { $comment = $('.joms-js--comment-' + id); $cbutton = $comment.find('.joms-button--remove-tag'); $ccontent = $comment.find('.joms-js--comment-content'); $ceditor = $comment.find('.joms-js--comment-editor'); $textarea = $ceditor.find('textarea'); $ccontent.html(json.data); $textarea.val(json.unparsed); $cbutton.remove(); } } } }); } function removePreview(id, type) { var isInbox = type === 'inbox', isWall = type === 'wall', func, data; if (isInbox) { func = 'inbox,ajaxRemovePreview'; data = [id]; } else if (isWall) { func = 'system,ajaxRemoveWallPreview'; data = [id]; } else { func = 'system,ajaxRemoveCommentPreview'; data = [id]; } joms.ajax({ func: func, data: data, callback: function (json) { if (!json.success) { window.alert(json.error || 'Undefined error.'); return; } if (isInbox) { _onInboxUpdated(id, json.html); return; } $('.joms-js--comment-' + id) .find('.joms-js--comment-preview').remove(); } }); } function removeThumbnail(id, type) { var isInbox = type === 'inbox', isWall = type === 'wall', func, data; if (isInbox) { func = 'inbox,ajaxRemoveThumbnail'; data = [id]; } else if (isWall) { // @todo } else { // @todo } joms.ajax({ func: func, data: data, callback: function (json) { if (!json.success) { window.alert(json.error || 'Undefined error.'); return; } if (isInbox) { _onInboxUpdated(id, json.html); return; } if (isWall) { // @todo return; } // @todo stream return; } }); } function addAttachment(elem, type, params) { var maxFileSize, extensions, settings; elem = $(elem); if (elem.data('disabled')) { return; } uploaderRef = elem; elem = elem.siblings('.joms-textarea__wrapper'); if (!elem.length) { return; } if (type !== 'file') { type = 'image'; } params = params || {}; maxFileSize = +params.max_file_size; extensions = params.exts; delete params.max_file_size; delete params.exts; uploaderType = type; uploaderParams = type === 'file' ? params : {}; settings = { file: { url: joms.BASE_URL + 'index.php?option=com_community&view=files&task=multiUpload', filters: { mime_types: [{ title: 'Document files', extensions: extensions }] }, max_file_size: maxFileSize > 0 ? ((+maxFileSize) * 1048576) : 0 }, image: { url: joms.BASE_URL + 'index.php?option=com_community&view=photos&task=ajaxPreviewComment', filters: { mime_types: [{ title: 'Image files', extensions: 'jpg,jpeg,png,gif' }] }, max_file_size: undefined } }; addAttachmentInit(elem, function () { uploader.refresh(); uploader.settings.url = settings[type].url; uploader.settings.filters = settings[type].filters; uploader.settings.max_file_size = settings[type].max_file_size; uploader.refresh(); window.joms_webdriver || uploaderButton.click(); }); } function addAttachmentInit(elem, callback) { if (typeof callback !== 'function') { callback = function () { }; } if (uploader) { uploaderAttachment = elem && elem.find('.joms-textarea__attachment'); callback(); return; } joms.util.loadLib('plupload', function () { setTimeout(function () { var container, button; container = $('<div id="joms-js--attachment-uploader" aria-hidden="true" style="width:1px; height:1px; overflow:hidden">').appendTo(document.body); button = $('<button id="joms-js--attachment-uploader-button">').appendTo(container); uploader = new window.plupload.Uploader({ url: joms.BASE_URL + 'index.php?option=com_community&view=photos&task=ajaxPreviewComment', container: 'joms-js--attachment-uploader', browse_button: 'joms-js--attachment-uploader-button', runtimes: 'html5,html4', multi_selection: false }); uploader.bind('FilesAdded', addAttachmentAdded); uploader.bind('BeforeUpload', addAttachmentBeforeUpload); uploader.bind('Error', addAttachmentError); uploader.bind('FileUploaded', addAttachmentUploaded); uploader.init(); uploaderAttachment = elem && elem.find('.joms-textarea__attachment'); uploaderButton = container.find('input[type=file]'); callback(); }); }); } function addAttachmentAdded(up) { uploaderError = false; window.setTimeout(function () { var ct = uploaderAttachment, loading = ct.find('.joms-textarea__attachment--loading'), thumb = ct.find('.joms-textarea__attachment--thumbnail'), button = ct.find('button'); if (uploaderError) { return; } up.start(); up.refresh(); thumb.find('img').replaceWith('<img>'); thumb.hide(); button.hide(); loading.show(); ct.show(); // Disable sibling items. uploaderRef.siblings('svg') .data('disabled', 1) .css('opacity', 0.5); }, 0); } function addAttachmentBeforeUpload(up) { var params = '', prop; for (prop in uploaderParams) { params += '&' + prop + '=' + uploaderParams[prop]; } up.settings.url += params; } function addAttachmentError(up, error) { uploaderError = true; window.alert(error && error.message || 'Undefined error.'); } function addAttachmentUploaded(up, file, info) { var json, ct, loading, thumb, button, img, label; try { json = JSON.parse(info.response); } catch (e) { } json || (json = {}); ct = uploaderAttachment; if (json.error || json.msg) { window.alert(json.error || json.msg); ct.hide(); return; } if (!((json.thumb_url && json.photo_id) || json.id)) { window.alert('Undefined error.'); ct.hide(); return; } loading = ct.find('.joms-textarea__attachment--loading'); thumb = ct.find('.joms-textarea__attachment--thumbnail'); img = thumb.find('img'); button = ct.find('button'); if (uploaderType === 'file') { label = $('<b>' + file.name + '</b>').data({ 'id': json.id, 'path': json.path, 'name': file.name }); img.removeData('photo_id'); img.hide().siblings('b').remove(); img.after(label); } else { img.siblings('b').remove(); img.attr('src', json.thumb_url); img.data('photo_id', json.photo_id).show(); } loading.hide(); thumb.show(); button.show(); ct.show(); } function removeAttachment(elem) { elem = $(elem); elem = elem.closest('.joms-textarea__attachment'); if (elem) { elem.find('.joms-textarea__attachment--thumbnail img').replaceWith('<img src="" alt="attachment">'); elem.hide(); elem.removeData('no_thumb'); elem.removeAttr('data-no_thumb'); } // Enable sibling items. if (uploaderRef) { uploaderRef.siblings('svg') .removeData('disabled') .css('opacity', ''); } } function cancel(id) { var $ct, $reply, data; if (id && id.nodeType) { $ct = $(id).closest('.joms-js--comment'); } else { $ct = $('.joms-js--comment-' + id); } if (!$ct.length) { return; } data = $ct.data(); $reply = $('.joms-js--newcomment-' + data.parent); $ct.find('.joms-js--comment-editor').hide(); $ct.find('.joms-js--comment-body').show(); $ct.find('.joms-js--comment-actions').show(); $reply.show(); } function toggleText(id) { var $text = $('.joms-js--comment-text-' + id), $full = $('.joms-js--comment-textfull-' + id), $btn = $('.joms-js--comment-texttoggle-' + id); $text.hide(); $full.show(); $btn.hide(); // if ( $full.is(':visible') ) { // $full.hide(); // $text.show(); // $btn.html( $btn.data('lang-more') ); // } else { // $text.hide(); // $full.show(); // $btn.html( $btn.data('lang-less') ); // } } function _onInboxAdded(html) { var ct, status, reply, textarea, tagging, attachment, loc, use, href, i; ct = $('.joms-js--inbox'); status = $('.joms-js--inbox-status'); reply = $('.joms-js--inbox-reply'); textarea = reply.find('textarea'); attachment = reply.find('.joms-textarea__attachment'); html = $($.trim(html)); loc = window.location.href.split('#')[0]; use = html.find('use'); for (i = 0; i < use.length; i++) { href = use.eq(i).attr('xlink:href').split('#')[1]; href = loc + '#' + href; use.eq(i).attr('xlink:href', href); } ct.append(html); if (textarea.length) { tagging = textarea.data('joms-tagging'); tagging ? tagging.clear() : textarea.val(''); } if (attachment.length) { attachment.hide(); } // update seen state if (status.length) { status.html('<span>' + status.data('lang-notseen') + '</span>'); } initVideoPlayers(); } function _onInboxUpdated(id, html) { var item, loc, use, href; if (!html) { _onInboxRemoved(id); return; } item = $('.joms-js--inbox-item-' + id); html = $($.trim(html)); loc = window.location.href.split('#')[0]; use = html.find('use'); href = use.attr('xlink:href').split('#')[1]; href = loc + '#' + href; use.attr('xlink:href', href); item.replaceWith(html); initVideoPlayers(); } function _onInboxRemoved(id) { var item; item = $('.joms-js--inbox-item-' + id); item.fadeOut(500, function () { item.remove(); }); } function showEmoticonBoard(elm) { $(elm).parent().parent().data('editor',this); joms.util.emoji.showBoard(elm); return; $('.joms-emoticon-js__board').remove(); var $body = $('body'), $board = $('.joms-emoticon-js__board'), $icon = $(elm).parents('.joms-icon--emoticon'), offset = $(elm).offset(), offsetTop = 0, emoticons = joms.getData('joms_emo'), isRTL = $('html').attr('dir') === 'rtl'; if (!$board.length) { html = renderEmoticonBoard(emoticons); $body.append(html); $board = $('.joms-emoticon-js__board'); } var spacer = isRTL ? 15 : ($board.outerWidth() - 30); var above = { display: 'block', top: (offset.top - $board.outerHeight()) + 'px', left: (offset.left - spacer) + 'px', position: 'absolute' } var animate_above = { opacity: '1', top: (offset.top - $board.outerHeight() - 10) + 'px' } var below = { display: 'block', top: (offset.top + 20) + 'px', left: (offset.left - spacer) + 'px', position: 'absolute' } var animate_below = { opacity: '1', top: (offset.top + 24) + 'px' } offsetTop = offset.top - $(window).scrollTop(); var pos, ani, positionClass; if (offsetTop > ($board.outerHeight() + 30)) { pos = above; ani = animate_above; positionClass = 'joms-board--above' } else { pos = below; ani = animate_below; positionClass = 'joms-board--below'; } $board.is(':hidden') && setTimeout(function () { $('.joms-icon--active').removeClass('joms-icon--active'); $icon.addClass('joms-icon--active'); $board.css(pos); $board.addClass(positionClass) setTimeout(function () { $board.css(ani); }, 100); $(document).one('click', function () { $board.css({ display: 'none', opacity: '0' }); $board.removeClass('joms-board--above joms-board--below'); }); }, 100) } function renderEmoticonBoard(emoticons) { var html = '<ul class="joms-emoticon__board joms-emoticon-js__board">'; for (var key in emoticons) { var emo = emoticons[key]; html += '\ <li>\ <span\ title="'+ key + '"\ onclick="joms.view.comment.insertEmoticon(this)"\ class="joms-emo2 joms-emo2-'+ key + '"\ data-code="'+ emo[0] + '" >\ </span>\ </li>\ '; } html += '</ul>'; return html; } function smileyCallback(code) { var $icon = $('.joms-icon--active'), $wrapper = $icon.parent().find('.joms-textarea__wrapper'), $input = $wrapper.find('textarea.joms-textarea'), $hiddenInput = $wrapper.find('input.joms-textarea__hidden'), value, start = $input.prop("selectionStart"); value = $input.val().slice(0, start) + code + $input.val().slice(start); $hiddenInput.val(value); $input.val(value); $input.prop("selectionStart", start + code.length); $input.prop("selectionEnd", start + code.length); $input.focus(); $input.trigger('keydown') } function insertEmoticon(elm) { var $icon = $('.joms-icon--active'), $wrapper = $icon.parent().find('.joms-textarea__wrapper'), $input = $wrapper.find('textarea.joms-textarea'), $hiddenInput = $wrapper.find('input.joms-textarea__hidden'), code = $(elm).attr('data-code'), value, start = $input.prop("selectionStart"); value = $input.val().slice(0, start) + code + $input.val().slice(start); $hiddenInput.val(value); $input.val(value); $input.prop("selectionStart", start + code.length); $input.prop("selectionEnd", start + code.length); $input.focus(); $input.trigger('keydown') } function react(uid, reactId, type) { var current = getReaction(reactId), text = current.text, name = current.name, reactClass = 'reaction-btn--' + name, $btn = $('.joms-js--comment-actions .joms-button--reaction[data-uid=' + uid + ']'); var classes = [ 'reaction-btn--like', 'reaction-btn--love', 'reaction-btn--haha', 'reaction-btn--wow', 'reaction-btn--sad', 'reaction-btn--angry' ]; $btn.removeClass(classes.join(' ')); if (type === 'onBar') { $btn.addClass('reaction-btn--animate'); setTimeout(function () { $btn.removeClass('reaction-btn--animate'); }, 200); } $btn.addClass(reactClass); $btn.text(text); $btn.attr('data-reactid', reactId); $btn.attr('data-action', 'unreact'); $btn.attr('onclick', 'javascript:;'); joms.ajax({ func: 'system,ajaxStreamAddLike', data: [uid, 'comment', reactId], callback: function (json) { var $status = $btn.siblings('.joms-comment__reaction-status'), onclick = 'joms.view.comment.unreact(' + uid + ', ' + reactId + ')'; $status.show(); $status.html(json.html); $btn.attr('onclick', onclick); } }); } function unreact(uid, reactId, type) { var $btn = $('.joms-js--comment-actions .joms-button--reaction[data-uid=' + uid + ']'), text = $btn.attr('data-lang-like'); var classes = [ 'reaction-btn--like', 'reaction-btn--love', 'reaction-btn--haha', 'reaction-btn--wow', 'reaction-btn--sad', 'reaction-btn--angry' ]; $btn.removeClass(classes.join(' ')); $btn.text(text); $btn.attr('data-reactid', 1); $btn.attr('data-action', 'react'); $btn.attr('onclick', 'javascript:;'); joms.ajax({ func: 'system,ajaxStreamUnlike', data: [uid, 'comment', reactId], callback: function (json) { var $status = $btn.siblings('.joms-comment__reaction-status'), onclick = 'joms.view.comment.react(' + uid + ', 1)'; $status.show(); $status.html(json.html); $btn.attr('onclick', onclick); } }); } function getReaction(reactId) { var data = joms.getData('joms_reaction'); var react = data.filter(function (item) { return item.id == reactId; }).pop(); return react; } // Exports. return { start: initialize, stop: uninitialize, like: like, unlike: unlike, edit: edit, cancel: cancel, remove: remove, removeTag: removeTag, removePreview: removePreview, removeThumbnail: removeThumbnail, addAttachment: addAttachment, removeAttachment: removeAttachment, toggleText: toggleText, initInputbox: initInputbox, showEmoticonBoard: showEmoticonBoard, insertEmoticon: insertEmoticon, smileyCallback : smileyCallback, react: react, unreact: unreact }; }); (function (root, $, factory) { joms.util || (joms.util = {}); joms.util.emoticon = factory(root, $); define('utils/emoticon',[], function () { return joms.util.emoticon; }); })(window, joms.jQuery, function (window, $) { function initialize() { } function showBoard(elm) { joms.util.emoji.showBoard(elm); return; this.$editor = {}; if ($(elm).parent().parent().data('editor') != "") { this.$editor = $(elm).parent().parent().data('editor') } $('.joms-emoticon-js__board').remove(); var $body = $('body'), $board = $('.joms-emoticon-js__board'), $icon = $(elm).parents('.joms-icon--emoticon'), offset = $(elm).offset(), offsetTop = 0, emoticons = joms.getData('joms_emo'), isRTL = $('html').attr('dir') === 'rtl'; if (!$board.length) { html = renderBoard(emoticons); $body.append(html); $board = $('.joms-emoticon-js__board'); } var spacer = isRTL ? 15 : ($board.outerWidth() - 30); var above = { display: 'block', top: (offset.top - $board.outerHeight()) + 'px', left: (offset.left - spacer) + 'px', position: 'absolute' } var animate_above = { opacity: '1', top: (offset.top - $board.outerHeight() - 10) + 'px' } var below = { display: 'block', top: (offset.top + 20) + 'px', left: (offset.left - spacer) + 'px', position: 'absolute' } var animate_below = { opacity: '1', top: (offset.top + 24) + 'px' } offsetTop = offset.top - $(window).scrollTop(); var pos, ani, positionClass; if (offsetTop > ($board.outerHeight() + 30)) { pos = above; ani = animate_above; positionClass = 'joms-board--above' } else { pos = below; ani = animate_below; positionClass = 'joms-board--below'; } $board.is(':hidden') && setTimeout(function () { $('.joms-icon--active').removeClass('joms-icon--active'); $icon.addClass('joms-icon--active'); $board.css(pos); $board.addClass(positionClass) setTimeout(function () { $board.css(ani); }, 100); $(document).one('click', function () { $board.css({ display: 'none', opacity: '0' }); $board.removeClass('joms-board--above joms-board--below'); }); }, 100) } function renderBoard(emoticons) { var html = '<ul class="joms-emoticon__board joms-emoticon-js__board">'; for (var key in emoticons) { var emo = emoticons[key]; html += '\ <li>\ <span\ title="' + key + '"\ onclick="joms.util.emoticon.insert(this)"\ class="joms-emo2 joms-emo2-' + key + '"\ data-code="' + emo[0] + '" >\ </span>\ </li>\ '; } html += '</ul>'; return html; } function insert(elm) { var code = $(elm).attr('data-code') ; this.$editor.smileyCallback(code ); } // Exports. return { start: initialize, showBoard: showBoard, insert: insert }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.remove = factory( root ); define('popups/stream.remove',[ 'utils/popup' ], function() { return joms.popup.stream.remove; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxConfirmDeleteActivity', data: [ '', id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'activities,ajaxDeleteActivity', data: [ '', id ], callback: function( json ) { var item; elem.off(); popup.close(); if ( json.success ) { item = joms.jQuery('.joms-stream').filter('[data-stream-id=' + id + ']'); item.fadeOut( 500, function() { item.remove(); }); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div>', '<div class="joms-popup__content">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.editLocation = factory( root, $ ); define('popups/stream.editlocation',[ 'utils/popup' ], function() { return joms.popup.stream.editLocation; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxeditLocation', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); _.defer(function() { initMap( json ); }); } }); } function cancel() { elem.off(); popup.close(); } function save() { var item = elem.find('.joms-js--location-input'), name = item.data('name'), lat = item.data('lat'), lng = item.data('lng'); joms.ajax({ func: 'activities,ajaxSaveLocation', data: [ id, name, lat, lng ], callback: function( json ) { var stream; elem.off(); popup.close(); if ( json.success ) { stream = $('.joms-stream').filter('[data-stream-id=' + id + ']'); stream.find('.joms-status-location a').html( name ); } } }); } function initMap( json ) { joms.util.map(function() { var map = elem.find('.joms-js--location-map'), input = elem.find('.joms-js--location-input'), loading = elem.find('.joms-js--location-loading'), selector = elem.find('.joms-js--location-selector'), position, options, map, marker; position = new window.google.maps.LatLng( json.latitude, json.longitude ); options = { center: position, zoom: 14, mapTypeId: window.google.maps.MapTypeId.ROADMAD, mapTypeControl: false, disableDefaultUI: true, draggable: false, scaleControl: false, scrollwheel: false, navigationControl: false, streetViewControl: false, disableDoubleClickZoom: true }; map = new window.google.maps.Map( map[0], options ); marker = new window.google.maps.Marker({ draggable: false, map: map }); marker.setPosition( position ); map.panTo( position ); input.on( 'input', function() { selector.hide() loading.show(); onInput( this.value ); }); var onInput = _.debounce(function( keyword ) { keyword = $.trim( keyword ); if ( ! keyword ) { return; } joms.util.map.search( keyword ).done(function( data ) { var html = ''; if ( _.isArray( data ) ) { _.each( data, function( item ) { html += '<a class="joms-map--location-item" data-id="' + item.id + '"">' + '<strong>' + item.name + '</strong><br />' + '<span>' + ( item.description || '' ) + '</span>' + '</a>'; }); } loading.hide(); selector.html( html ); selector.show(); }); }, 1000 ); input.val( json.location ); onInput( json.location ); selector.on( 'click', '.joms-map--location-item', function() { var elem = $( this ), data = elem.data(), name = elem.find( 'strong' ).text(), position; input.data( 'name', name ); joms.util.map.detail( data.id ).done(function( place ) { var geometry = place.geometry, location = geometry.location, viewport = geometry.viewport; input.data( 'lat', location.lat() ); input.data( 'lng', location.lng() ); map.setCenter( location ); marker.setPosition( location ); if ( viewport ) { map.fitBounds( viewport ); } else { map.setZoom( 15 ); } }); }); }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div>', '<div class="joms-popup__content">', ( json.html || json.error ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnEdit, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.addFeatured = factory( root ); define('popups/stream.addfeatured',[ 'utils/popup' ], function() { return joms.popup.stream.addFeatured; }); })( window, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; var context = window.joms_page; var contextid; if ( context === 'profile' ) { context = 'profile'; contextid = window.joms_user_id; } else if ( context === 'groups' ) { context = 'group'; contextid = window.joms_group_id; } else if ( context === 'events' ) { context = 'event'; contextid = window.joms_event_id; } else { context = 'frontpage'; contextid = 0; } joms.ajax({ func: 'system,ajaxFeatureStream', data: [ context, contextid, id ], callback: function( json ) { if ( json.success ) { window.location.reload(); return; } popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', (json.title || ' '), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || json.message ), '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.removeFeatured = factory( root, $ ); define('popups/stream.removefeatured',[ 'utils/popup' ], function() { return joms.popup.stream.removeFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; var context = window.joms_page; var contextid; if ( context === 'profile' ) { context = 'profile'; contextid = window.joms_user_id; } else if ( context === 'groups' ) { context = 'group'; contextid = window.joms_group_id; } else if ( context === 'events' ) { context = 'event'; contextid = window.joms_event_id; } else { context = 'frontpage'; contextid = 0; } joms.ajax({ func: 'system,ajaxUnfeatureStream', data: [ context, contextid, id ], callback: function( json ) { if ( json.success ) { window.location.reload(); return; } popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', (json.title || ' '), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || json.message ), '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.removeLocation = factory( root ); define('popups/stream.removelocation',[ 'utils/popup' ], function() { return joms.popup.stream.removeLocation; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxRemoveLocation', callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'activities,deleteLocation', data: [ id ], callback: function( json ) { var item; elem.off(); popup.close(); if ( json.success ) { item = joms.jQuery('.joms-stream').filter('[data-stream-id=' + id + ']'); item.find('.joms-status-location').remove(); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div>', '<div class="joms-popup__content">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.removeMood = factory( root ); define('popups/stream.removemood',[ 'utils/popup' ], function() { return joms.popup.stream.removeMood; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxConfirmRemoveMood', callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'activities,ajaxRemoveMood', data: [ id ], callback: function( json ) { var item; elem.off(); popup.close(); if ( json.success ) { item = joms.jQuery('.joms-stream').filter('[data-stream-id=' + id + ']'); item.find('[data-type=stream-content]').find('span').eq(0).html( json.html ); item.find('.colorcolorful-status__mood').html(''); item.find('li.joms-js--contextmenu-removemood').remove(); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div>', '<div class="joms-popup__content">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.report = factory( root ); define('popups/stream.report',[ 'utils/popup' ], function() { return joms.popup.stream.report; }); })( window, function() { var popup, elem, id, commentid; function render( _popup, _id, _commentid ) { if ( elem ) elem.off(); popup = _popup; id = _id; commentid = _commentid; joms.ajax({ func: 'system,ajaxReport', data: [], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'change', 'select', changeText ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function changeText( e ) { elem.find('textarea').val( e.target.value ); } function cancel() { elem.off(); popup.close(); } function save() { var rTrim = /^\s+|\s+$/g, message; message = elem.find('textarea').val(); message = message.replace( rTrim, '' ); if ( !message ) { elem.find('.joms-js--error').show(); return; } elem.find('.joms-js--error').hide(); joms.ajax({ func: 'system,ajaxSendReport', data: [ 'activities,reportActivities', window.location.href, message, id, commentid ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', json.html, '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, commentid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, commentid ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.selectPrivacy = factory( root, $ ); define('popups/stream.selectprivacy',[ 'utils/popup' ], function() { return joms.popup.stream.selectPrivacy; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; popup.items[0] = { type: 'inline', src: buildHtml() }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', 'a', save ); } function save( e ) { var el = $( e.currentTarget ), privacy = el.data('value'), className = el.data('classname'); joms.ajax({ func: 'activities,ajaxUpdatePrivacyActivity', data: [ id, privacy ], callback: function( json ) { var item; elem.off(); popup.close(); if ( json.success ) { item = $('.joms-stream').filter('[data-stream-id=' + id + ']'); item.find('.joms-stream__meta use').attr( 'xlink:href', window.location + '#' + className ); } } }); } function buildHtml() { var privacies, filter, base, html, i; privacies = [ [ 'public', 10, window.joms_lang.COM_COMMUNITY_PRIVACY_PUBLIC, 'earth' ], [ 'site_members', 20, window.joms_lang.COM_COMMUNITY_PRIVACY_SITE_MEMBERS, 'users' ], [ 'friends', 30, window.joms_lang.COM_COMMUNITY_PRIVACY_FRIENDS, 'user' ], [ 'me', 40, window.joms_lang.COM_COMMUNITY_PRIVACY_ME, 'lock' ] ]; // Filter. filter = window.joms_privacylist; if ( filter && filter.length ) { for ( i = privacies.length - 1; i >= 0; i-- ) { if ( filter.indexOf( privacies[i][0] ) < 0 ) { privacies.splice( i, 1 ); } } } base = window.location.href; base = base.replace( /#.*$/, '' ); html = ''; for ( i = 0; i < privacies.length; i++ ) { html += '<a href="javascript:" data-value="' + privacies[i][1] + '" data-classname="joms-icon-' + privacies[i][3] + '">'; html += '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="' + base + '#joms-icon-' + privacies[i][3] + '"></use></svg> '; html += '<span>' + privacies[i][2] + '</span></a>'; } return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--privacy">', '<div><div class="joms-popup__content joms-popup__content--single">', html, '</div></div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.share = factory( root, $ ); define('popups/stream.share',[ 'utils/loadlib', 'utils/popup' ], function() { return joms.popup.stream.share; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxSharePopup', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); initPhotoArranger(); initVideoPlayers(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var attachment = { msg: elem.find('textarea.joms-textarea').val(), privacy: elem.find('[data-ui-object=joms-dropdown-value]').val() }; joms.ajax({ func: 'activities,ajaxAddShare', data: [ id, JSON.stringify( attachment ) ], callback: function( json ) { elem.off(); popup.close(); if ( json.success ) { $('.joms-stream__container').prepend( json.html ); initPhotoArranger(); initVideoPlayers(); } } }); } function initPhotoArranger() { var initialized = '.joms-js--initialized', $containers = $('.joms-media--images').not( initialized ); $containers.each(function() { var $ct = $( this ), $imgs = $ct.find('img'), counter = 0; $imgs.each(function() { var $img = $( this ); $('<img>').on('load', function() { counter++; if ( counter === $imgs.length ) { $ct.siblings('.joms-media--loading').remove(); $ct.addClass( initialized.substr(1) ); $imgs.show(); joms.util.photos.arrange( $ct ); } }).attr( 'src', $img.attr('src') ); }); }); } function initVideoPlayers() { var initialized = '.joms-js--initialized', cssVideos = '.joms-js--video', videos = $( cssVideos ).not( initialized ).addClass( initialized.substr(1) ); if ( !videos.length ) { return; } joms.loadCSS( joms.ASSETS_URL + 'vendors/mediaelement/mediaelementplayer.min.css' ); videos.on( 'click.joms-video', cssVideos + '-play', function() { var $el = $( this ).closest( cssVideos ); joms.util.video.play( $el, $el.data() ); }); if ( joms.ios ) { setTimeout(function() { videos.find( cssVideos + '-play' ).click(); }, 2000 ); } } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnShare, '</button> ', '<div style="display:inline-block; position:relative;">', '<div class="joms-button--privacy" data-ui-object="joms-dropdown-button" data-name="share-privacy" data-type="no-popup">', '<svg class="joms-icon" viewBox="0 0 16 16"><use xlink:href="#joms-icon-earth"></use></svg>', '<input type="hidden" data-ui-object="joms-dropdown-value" value="10">', '</div>', '<ul class="joms-dropdown joms-dropdown--privacy" data-name="share-privacy">', '<li data-classname="joms-icon-earth" data-value="10" style="white-space:nowrap">', '<svg class="joms-icon" viewBox="0 0 16 16"><use xlink:href="#joms-icon-earth"></use></svg>', ' <span>', window.joms_lang.COM_COMMUNITY_PRIVACY_PUBLIC, '</span>', '</li>', '<li data-classname="joms-icon-users" data-value="20" style="white-space:nowrap">', '<svg class="joms-icon" viewBox="0 0 16 16"><use xlink:href="#joms-icon-users"></use></svg>', ' <span>', window.joms_lang.COM_COMMUNITY_PRIVACY_SITE_MEMBERS, '</span>', '</li>', '<li data-classname="joms-icon-user" data-value="30" style="white-space:nowrap">', '<svg class="joms-icon" viewBox="0 0 16 16"><use xlink:href="#joms-icon-user"></use></svg>', ' <span>', window.joms_lang.COM_COMMUNITY_PRIVACY_FRIENDS, '</span>', '</li>', '<li data-classname="joms-icon-lock" data-value="40" style="white-space:nowrap">', '<svg class="joms-icon" viewBox="0 0 16 16"><use xlink:href="#joms-icon-lock"></use></svg>', ' <span>', window.joms_lang.COM_COMMUNITY_PRIVACY_ME, '</span>', '</li>', '</ul>', '</div>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.showComments = factory( root, $ ); define('popups/stream.showcomments',[ 'utils/popup' ], function() { return joms.popup.stream.showComments; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id, type; function render( _popup, _id, _type ) { var data; if ( elem ) elem.off(); popup = _popup; id = _id; type = _type; data = [ id ]; if ( type ) { data.push( type ); } joms.ajax({ func: 'system,ajaxStreamShowComments', data: data, callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); initVideoPlayers(); joms.parseEmoji(); } }); } function initVideoPlayers() { var initialized = '.joms-js--initialized', cssVideos = '.joms-js--video', videos = $('.joms-comment__body,.joms-js--inbox').find( cssVideos ).not( initialized ).addClass( initialized.substr(1) ); if ( !videos.length ) { return; } joms.loadCSS( joms.ASSETS_URL + 'vendors/mediaelement/mediaelementplayer.min.css' ); videos.on( 'click.joms-video', cssVideos + '-play', function() { var $el = $( this ).closest( cssVideos ); joms.util.video.play( $el, $el.data() ); }); if ( joms.ios ) { setTimeout(function() { videos.find( cssVideos + '-play' ).click(); }, 2000 ); } } function buildHtml( json ) { var isEmpty = true, fragment; json || (json = {}); fragment = $( $.trim( json.html || '' ) ); if ( fragment.children().length ) { isEmpty = false; } return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--rounded joms-popup--80pc">', '<button class="mfp-close joms-hide"></button>', '<div class="joms-comment">', ( isEmpty ? window.joms_lang.COM_COMMUNITY_NO_COMMENTS_YET : json.html ), '</div>', '</div>' ].join(''); } // Exports. return function( id, type ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, type ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.showLikes = factory( root, $ ); define('popups/stream.showlikes',[ 'utils/popup' ], function() { return joms.popup.stream.showLikes; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id, target; function render( _popup, _id, _target ) { if ( elem ) elem.off(); popup = _popup; id = _id; target = _target; joms.ajax({ func: 'system,ajaxStreamShowLikes', data: [ id, target ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { var isEmpty = true, fragment; json || (json = {}); fragment = $( $.trim( json.html || '' ) ); if ( fragment.children().length ) { isEmpty = false; } return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--rounded joms-popup--80pc">', '<button class="mfp-close joms-hide"></button>', '<div class="joms-comment">', ( isEmpty ? window.joms_lang.COM_COMMUNITY_NO_LIKES_YET : json.html ), '</div>', '</div>' ].join(''); } // Exports. return function( id, target ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, target ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream || (joms.popup.stream = {}); joms.popup.stream.showOthers = factory( root, $ ); define('popups/stream.showothers',[ 'utils/popup' ], function() { return joms.popup.stream.showOthers; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxShowOthers', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--rounded joms-popup--80pc">', '<button class="mfp-close joms-hide"></button>', '<div class="joms-comment">', ( json.html || '' ), '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.stream = factory( root, joms.popup.stream || {}); define('popups/stream',[ 'popups/stream.remove', 'popups/stream.editlocation', 'popups/stream.addfeatured', 'popups/stream.removefeatured', 'popups/stream.removelocation', 'popups/stream.removemood', 'popups/stream.report', 'popups/stream.selectprivacy', 'popups/stream.share', 'popups/stream.showcomments', 'popups/stream.showlikes', 'popups/stream.showothers' ], function() { return joms.popup.stream; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.customize = factory( root, $ ); define('views/customize',[ 'popups/stream' ], function() { return joms.view.stream; }); })( window, joms.jQuery, function(/* window, $ */) { function initialize() { uninitialize(); } function uninitialize() { } // Exports. return { start: initialize, stop: uninitialize }; }); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.misc = factory( root, $ ); define('views/misc',[],function() { return joms.view.misc; }); })( window, joms.jQuery, function( window, $ ) { var $main, $sidebar; function initialize() { $main = $('.joms-main'); $sidebar = $('.joms-sidebar'); rearrangeModuleDiv(); $( window ).on( 'resize', rearrangeModuleDiv ); } var rearrangeModuleDiv = joms._.debounce(function() { if ( joms.screenSize() !== 'large' ) { if ( $sidebar.nextAll('.joms-main').length ) { $sidebar.insertAfter( $main ); } } else { if ( $sidebar.prevAll('.joms-main').length ) { $sidebar.insertBefore( $main ); } } }, 500 ); var fixSVG = joms._.debounce(function() { var url = window.joms_current_url, svgFixClass = 'joms-icon--svg-fixed', svg; if ( !url ) { return; } svg = $('.joms-icon use').not('.' + svgFixClass ); svg.each(function() { var href = ( this.getAttribute('xlink:href') || '' ), path = href.replace( /^[^#]*#/, '#' ); if ( href === url + path ) { svgFixClass += ' joms-icon--svg-unmodified'; } else { this.setAttribute( 'xlink:href', url + path ); } this.setAttribute( 'class', svgFixClass ); }); }, 200 ); // Exports. return { start: initialize, fixSVG: fixSVG }; }); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.stream = factory( root, $ ); define('views/stream',[ 'popups/stream' ], function() { return joms.view.stream; }); })( window, joms.jQuery, function( window, $ ) { var container; function initialize() { uninitialize(); container = $('.joms-stream__wrapper'); } function uninitialize() { if ( container ) { container.off(); } } function like( id ) { var item = container.find( '.joms-js--stream-' + id ); if (+item.attr('do-like')) { return; } item.attr('do-like', 1); joms.ajax({ func: 'system,ajaxStreamAddLike', data: [ id ], callback: function( json ) { var item, btn, info, counter, status; if ( json.success ) { item = container.find( '.joms-js--stream-' + id ); if ( item.length ) { btn = item.find('.joms-stream__actions').find('.joms-button--liked'); btn.attr( 'onclick', 'joms.api.streamUnlike(\'' + id + '\');' ); btn.addClass('liked'); btn.find('span').html( btn.data('lang-unlike') ); btn.find('use').attr( 'xlink:href', window.location + '#joms-icon-thumbs-down' ); info = item.find('.joms-stream__status'); if ( !json.html ) { info.remove(); } else if ( info.length ) { info.html( json.html ); } else { info = item.find('.joms-stream__actions'); info = $('<div class=joms-stream__status />').insertAfter( info ); info.html( json.html ); } status = item.find('.joms-stream__status--mobile'); if ( status.length ) { counter = status.find( '.joms-like__counter--' + id ); counter.html( +counter.eq(0).text() + 1 ); status.find('.joms-like__status').show(); } item.attr('do-like', 0); } } } }); } function unlike( id ) { var item = container.find( '.joms-js--stream-' + id ); if (+item.attr('do-like')) { return; } item.attr('do-like', 1); joms.ajax({ func: 'system,ajaxStreamUnlike', data: [ id ], callback: function( json ) { var item, btn, info, counter, status; if ( json.success ) { item = container.find( '.joms-js--stream-' + id ); if ( item.length ) { btn = item.find('.joms-stream__actions').find('.joms-button--liked'); btn.attr( 'onclick', 'joms.api.streamLike(\'' + id + '\');' ); btn.removeClass('liked'); btn.find('span').html( btn.data('lang-like') ); btn.find('use').attr( 'xlink:href', window.location + '#joms-icon-thumbs-up' ); info = item.find('.joms-stream__status'); if ( !json.html ) { info.remove(); } else if ( info.length ) { info.html( json.html ); } else { info = item.find('.joms-stream__actions'); info = $('<div class=joms-stream__status />').insertAfter( info ); info.html( json.html ); } status = item.find('.joms-stream__status--mobile'); if ( status.length ) { counter = status.find( '.joms-like__counter--' + id ); var val = +counter.eq(0).text() - 1; counter.html( val ); if (val === 0) { status.find('.joms-like__status').hide(); } } item.attr('do-like', 0); } } } }); } function edit( id ) { var $stream = $( '.joms-js--stream-' + id ).eq(0), $sbody = $stream.find('.joms-stream__body'), $colorfulContainer = $sbody.find('.colorful-status__container'), $scontent = $sbody.find('[data-type=stream-content]'), $seditor = $sbody.find('[data-type=stream-editor]'), $textarea = $seditor.find('textarea'), origValue = $textarea.val(); $scontent.hide(); $seditor.show(); $textarea.removeData('joms-tagging'); $textarea.jomsTagging(); $textarea.off( 'reset.joms-tagging' ); $textarea.on( 'reset.joms-tagging', function() { $seditor.hide(); $scontent.show(); $textarea.val( origValue ); }); if (!$textarea.hasClass('limited') && $colorfulContainer.length) { $textarea.attr('maxlength', 150); $textarea .on('keydown', function(e) { var ENTER = 13; if (e.keyCode === 13) { var numline = $textarea.val().split('\n').length; if (numline === 4) { e.preventDefault(); } } }) $textarea.addClass('limited'); } $textarea.focus(); } function editSave( id, text, origText ) { joms.ajax({ func: 'activities,ajaxSaveStatus', data: [ id, text ], callback: function( json ) { var $stream = $('.joms-stream').filter('[data-stream-id=' + id + ']'), $sbody = $stream.find('.joms-stream__body'), $scontent = $sbody.find('[data-type=stream-content]'), $colorfulContainer = $sbody.find('.colorful-status__container'), $seditor = $sbody.find('[data-type=stream-editor]'), $textarea = $seditor.find('textarea'); if ( json.success ) { if ($colorfulContainer.length) { $colorfulContainer.find('.colorful-status__inner').html(json.data) } else { $scontent.html( '<span>' + json.data + '</span>' ); } $scontent.html( '<span>' + json.data + '</span>' ); $textarea.val( json.unparsed ); } else { $textarea.val( origText ); } $seditor.hide(); $colorfulContainer.length || $scontent.show(); joms.parseEmoji(); } }); } function save( id, el ) { var $stream = $( el ).closest('.joms-js--stream'), $sbody = $stream.find('.joms-stream__body'), $seditor = $sbody.find('[data-type=stream-editor]'), $textarea = $seditor.find('textarea'), value = $textarea.val(); if ($textarea[0].joms_hidden) { value = $textarea[0].joms_hidden.val(); } editSave( id, value, value ); } function cancel( id ) { var $stream = $( '.joms-js--stream-' + id ), $sbody = $stream.find('.joms-stream__body'), $scontent = $sbody.find('[data-type=stream-content]'), $seditor = $sbody.find('[data-type=stream-editor]'); $seditor.hide(); $scontent.show(); } function editLocation( id ) { joms.popup.stream.editLocation( id ); } function remove( id ) { joms.popup.stream.remove( id ); } function removeLocation( id ) { joms.popup.stream.removeLocation( id ); } function removeMood( id ) { joms.popup.stream.removeMood( id ); } function removeTag( id ) { joms.ajax({ func: 'activities,ajaxRemoveUserTag', data: [ id, 'post' ], callback: function( json ) { var $stream, $sbody, $soptions, $scontent, $seditor, $textarea; if ( json.success ) { $stream = $( '.joms-js--stream-' + id ); $sbody = $stream.find('.joms-stream__body'); $soptions = $stream.find('.joms-list__options').find('.joms-dropdown').find('.joms-js--contextmenu-removetag'); $scontent = $sbody.find('[data-type=stream-content]'); $seditor = $sbody.find('[data-type=stream-editor]'); $textarea = $seditor.find('textarea'); $scontent.html( '<span>' + json.data + '</span>' ); $textarea.val( json.unparsed ); $soptions.remove(); } } }); } function selectPrivacy( id ) { joms.popup.stream.selectPrivacy( id ); } function share( id ) { joms.popup.stream.share( id ); } function hide( streamId, userId ) { joms.ajax({ func: 'activities,ajaxHideStatus', data: [ streamId, userId ], callback: function( json ) { var streams; if ( json.success ) { streams = container.find('.joms-stream[data-stream-id=' + streamId + ']'); streams.fadeOut( 500, function() { streams.remove(); }); } } }); } function ignoreUser( id ) { joms.popup.stream.ignoreUser( id ); } function showLikes( id, target ) { if ( target === 'popup' ) { joms.popup.stream.showLikes( id, target ); return; } joms.ajax({ func: 'system,ajaxStreamShowLikes', data: [ id ], callback: function( json ) { var streams; if ( json.success ) { streams = container.find('.joms-stream[data-stream-id=' + id + ']'); streams.find('.joms-stream__status').html( json.html || '' ); } } }); } function showComments( id, type ) { joms.popup.stream.showComments( id, type ); } function showOthers( id ) { joms.popup.stream.showOthers( id ); } function report( id, commentid ) { joms.popup.stream.report( id, commentid ); } function addFeatured( id ) { joms.popup.stream.addFeatured( id ); } function removeFeatured( id ) { joms.popup.stream.removeFeatured( id ); } function toggleText( id ) { var $text = $( '.joms-js--stream-text-' + id ), $full = $( '.joms-js--stream-textfull-' + id ), $btn = $( '.joms-js--stream-texttoggle-' + id ); if ( $full.is(':visible') ) { $full.hide(); $text.show(); $btn.html( $btn.data('lang-more') ); } else { $text.hide(); $full.show(); $btn.html( $btn.data('lang-less') ); } } function react( uid, reactId, type ) { var current = getReaction( reactId), text = current.text, name = current.name, reactClass = 'reaction-btn--' + name, $btn = $('.joms-button--reaction[data-uid='+uid+'][data-type=stream]'); var classes = [ 'reaction-btn--like', 'reaction-btn--love', 'reaction-btn--haha', 'reaction-btn--wow', 'reaction-btn--sad', 'reaction-btn--angry' ]; $btn.removeClass(classes.join(' ')); if (type === 'onBar') { $btn.addClass('reaction-btn--animate'); setTimeout(function() { $btn.removeClass('reaction-btn--animate'); }, 200); } $btn.addClass( reactClass ); $btn.text( text ); $btn.attr('data-reactid', reactId); $btn.attr('data-action', 'unreact'); $btn.attr('onclick', 'javascript:;'); joms.ajax({ func: 'system,ajaxStreamAddLike', data: [ uid, '', reactId ], callback: function( json ) { if (json) { var $status = $btn.parents('.joms-stream__actions').siblings('.joms-stream__status'); $status.show(); $status.html(json.html); var onclick = 'joms.view.stream.unreact('+uid+', '+reactId+')'; $btn.attr('onclick', onclick); } } }); } function unreact( uid, reactId ) { var $btn = $('.joms-stream__actions .joms-button--reaction[data-uid='+uid+'][data-type=stream]'), text = $btn.attr('data-lang-like'); var classes = [ 'reaction-btn--like', 'reaction-btn--love', 'reaction-btn--haha', 'reaction-btn--wow', 'reaction-btn--sad', 'reaction-btn--angry' ]; $btn.removeClass(classes.join(' ')); $btn.text( text ); $btn.attr('data-reactid', 1); $btn.attr('data-action', 'react'); $btn.attr('onclick', 'javascript:;'); joms.ajax({ func: 'system,ajaxStreamUnlike', data: [ uid, '', reactId ], callback: function( json ) { if (json) { var $status = $btn.parents('.joms-stream__actions').siblings('.joms-stream__status'); if (!json.html) { $status.hide(); } $status.html(json.html); var onclick = 'joms.view.stream.react('+uid+', 1)'; $btn.attr('onclick', onclick); } } }); } function getReaction( reactId ) { var data = joms.getData('joms_reaction'); var react = data.filter(function(item) { return item.id == reactId; }).pop(); return react; } // Exports. return { start: initialize, stop: uninitialize, like: like, unlike: unlike, edit: edit, save: save, cancel: cancel, editLocation: editLocation, remove: remove, removeLocation: removeLocation, removeMood: removeMood, removeTag: removeTag, selectPrivacy: selectPrivacy, share: share, hide: hide, ignoreUser: ignoreUser, showLikes: showLikes, showComments: showComments, showOthers: showOthers, report: report, toggleText: toggleText, addFeatured: addFeatured, removeFeatured: removeFeatured, react: react, unreact: unreact }; }); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.photos = factory( root, $ ); })( window, joms.jQuery, function( window, $ ) { var containers = [], maxHeightThreshold = 180; $( window ).resize( joms._.debounce(function() { _rearrange(); }, 500 )); function arrange( $ct ) { var $children = $ct.children(), width = $ct.width(); $children.css({ display: 'block', 'float': 'left', margin: '1px 0', overflow: 'hidden', padding: 0, position: 'relative' }).each(function() { var $el = $( this ); $el.data({ width: $el.width(), height: $el.height() }); }); _arrange( width, $children ); // Add to registered container. containers.push( $ct ); } function _arrange( ctWidth, $children ) { var from = 0, len = $children.length; $children.each(function( index ) { var divider, data, height, i; divider = 0; for ( i = from; i <= index; i++ ) { data = $children.eq(i).data(); divider += data.width / data.height; } height = ctWidth / divider; if ( height <= maxHeightThreshold ) { for ( i = from; i <= index; i++ ) { $children.eq( i ).find('img').css({ height: height }); } from = index + 1; } else if ( i === len ) { for ( i = from; i <= len; i++ ) { $children.eq( i ).nextAll().addBack() .css({ height: maxHeightThreshold }) .find('img').css({ height: height }); } } }); // fix ff issue $children.css('border', '1px solid transparent'); setTimeout(function() { $children.css('border', ''); }); } function _rearrange() { var i, $ct; for ( i = 0; i < containers.length; i++ ) { $ct = containers[i]; _arrange( $ct.width(), $ct.children() ); } } // Exports. return { arrange: arrange }; }); define("utils/photos", function(){}); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.streams = factory( root, $ ); define('views/streams',[ 'utils/hovercard', 'utils/photos', 'utils/video', 'functions/tagging' ], function() { return joms.view.streams; }); })( window, joms.jQuery, function( window, $ ) { var container, adAgencySettings, adAgencyImpressions; function initialize() { uninitialize(); container = $('.joms-stream__wrapper'); // Initialize only when container is available. if ( !container.length ) return; // Initialize comment box. initInputbox(); // Initialize jquery montage plugin. initPhotoArranger(); // Initialize media element. initVideoPlayers(); // Disable adagency, infinite scroll, and recent activities on single activity page. if ( !window.joms_singleactivity && !window.joms_filter_keyword ) { // Initialize ad agency. if ( +window.joms_adagency ) { initAdAgency(); } // Initialize infinite scroll. if ( +window.joms_infinitescroll ) { setupAutoLoadActivities(); } // Get recent activities. if ( +window.joms_enable_refresh ) { getRecentActivitiesCount(); } } var filterbar = document.getElementsByClassName('joms-activity-filter-action'); if ( filterbar && filterbar.length ) { window.FastClick.attach( filterbar[0] ); } } function uninitialize() { if ( container ) { container.off(); } } function initPhotoArranger() { var initialized = '.joms-js--initialized', $containers = $('.joms-media--images').not( initialized ); $containers.each(function() { var $ct = $( this ), $imgs = $ct.find('img'), counter = 0; $imgs.each(function() { var $img = $( this ); $('<img>').on('load', function() { counter++; if ( counter === $imgs.length ) { $ct.siblings('.joms-media--loading').remove(); $ct.addClass( initialized.substr(1) ); $imgs.show(); joms.util.photos.arrange( $ct ); } }).attr( 'src', $img.attr('src') ); }); }); } function initVideoPlayers() { var initialized = '.joms-js--initialized', cssVideos = '.joms-js--video', videos = $('.joms-stream__body').find( cssVideos ).not( initialized ).addClass( initialized.substr(1) ); if ( !videos.length ) { return; } joms.loadCSS( joms.ASSETS_URL + 'vendors/mediaelement/mediaelementplayer.min.css' ); videos.on( 'click.joms-video', cssVideos + '-play', function() { var $el = $( this ).closest( cssVideos ); joms.util.video.play( $el, $el.data() ); }); // if ( joms.ios ) { // setTimeout(function() { // videos.find( cssVideos + '-play' ).click(); // }, 1000 ); // } } function initInputbox() { joms.fn.tagging.initInputbox(); } function getEdgeStreamId( edge ) { var stream, ids; stream = container.find('.joms-stream').not('.joms-stream--adagency'); if ( !stream.length ) return 0; ids = []; stream.each(function() { ids.push( +$(this).data('stream-id') ); }); return ids[ edge === 'last' ? ids.length - 1 : 0 ]; } function getFilter() { var $ct = container.children('.joms-stream__container'); return { filter: $ct.data('filter'), filterId: $ct.data('filterid'), filterValue: $ct.data('filter-value') }; } function getRecentActivitiesCount() { var o = getRecentActivitiesCount, id, filter; if ( o.loading ) return; if ( !( id = window.joms_newest_stream_id ) ) { console.warn('Variable `window.joms_newest_stream_id` not found.'); return; } filter = getFilter(); o.loading = true; o.xhr && o.xhr.abort(); o.xhr = joms.ajax({ func: 'activities,ajaxGetRecentActivitiesCount', data: [ id, filter.filter, filter.filterId, filter.filterValue ], callback: function( json ) { var count = +json.count, delay = +json.nextPingDelay, $latest = $('.joms-js--stream-latest'), $link; o.loading = false; o.xhr = null; if ( !window.joms_postbox_posting ) { if ( count > 0 ) { $link = $( '<a href="javascript:">' + json.html + '</a>' ); $link.on( 'click', getRecentActivities ); $latest.html( $link ).show(); } else { $latest.hide().empty(); } } if ( delay > 0 ) { joms._.delay( getRecentActivitiesCount, delay ); } } }); } function getRecentActivities() { var o = getRecentActivities, id, filter; if ( o.loading ) return; if ( !( id = getEdgeStreamId() ) ) return; filter = getFilter(); o.loading = true; o.xhr && o.xhr.abort(); o.xhr = joms.ajax({ func: 'activities,ajaxGetRecentActivities', data: [ id, filter.filter, filter.filterId, filter.filterValue ], callback: function( json ) { var $items = $( $.trim( json.html ) ).filter('.joms-stream__wrapper').find('.joms-stream'), $latest = $('.joms-js--stream-latest'), i; // update newest stream id if ( json.newest_stream_id ) { window.joms_newest_stream_id = +json.newest_stream_id; } o.loading = false; if ( $items.length ) { for ( i = $items.length - 1; i >= 0; i-- ) { // Prevent duplicated stream. if ( ! ( $('.joms-js--stream-' + $items.eq(i).data('stream-id') ).length ) ) { container.find('.joms-stream__container').prepend( $items.eq( i ) ); } } } $latest.hide(); initInputbox(); initPhotoArranger(); initVideoPlayers(); } }); } function getOlderActivities() { var o = getOlderActivities, id, filter, btn, loading; if ( o.loading ) return; if ( !( id = getEdgeStreamId('last') ) ) return; filter = getFilter(); o.loading = true; btn = container.find('#activity-more'); loading = btn.find('.loading'); btn = btn.find('.joms-button--primary'); btn.hide(); loading.show(); joms.ajax({ func: 'activities,ajaxGetOlderActivities', data: [ id, filter.filter, filter.filterId, filter.filterValue ], callback: function( json ) { var isLast = false, $items; o.loading = false; loading.hide(); if ( json.html ) { $items = $( $.trim( json.html ) ).filter('.joms-stream__wrapper').find('.joms-stream'); if ( $items.length ) { container.find('.joms-stream__container').append( $items ); } else { isLast = true; } } initInputbox(); initPhotoArranger(); initVideoPlayers(); injectAdAgencyItem(); joms.parseEmoji(); if ( !isLast ) { btn.show(); } } }); } var setupAutoLoadActivities = function() { var load, win, doc, treshhold, lastScrollTop; if ( joms.mobile ) return false; $('.joms-stream__loadmore').find('a').hide(); win = $( window ); doc = $( document ); treshhold = Math.max( +window.joms_autoloadtrigger || 0, 20 ); lastScrollTop = 0; load = function() { var scrollTop = win.scrollTop(), winHeight = win.height(), direction, id, filter; direction = scrollTop < lastScrollTop ? 'up' : 'down'; lastScrollTop = scrollTop; if ( direction !== 'down' ) { return; } if ( ( scrollTop + winHeight ) < ( doc.height() - treshhold ) ) { return; } if ( load.loading ) { return; } load.loading = true; container.find('.joms-stream__loadmore .loading').show(); if ( !( id = getEdgeStreamId('last') ) ) { return; } filter = getFilter(); joms.ajax({ func: 'activities,ajaxGetOlderActivities', data: [ id, filter.filter, filter.filterId, filter.filterValue ], callback: function( json ) { var isLast = false, $items; container.find('.joms-stream__loadmore .loading').hide(); if ( json.html ) { $items = $( $.trim( json.html ) ).filter('.joms-stream__wrapper').find('.joms-stream'); if ( $items.length ) { container.find('.joms-stream__container').append( $items ); } else { isLast = true; } } initInputbox(); initPhotoArranger(); initVideoPlayers(); injectAdAgencyItem(); joms.parseEmoji(); if ( isLast ) return; load.loading = false; } }); } win.on( 'scroll', load ); }; function initAdAgency() { joms.ajax({ func: 'system,ajaxGetAdagency', callback: function( json ) { adAgencySettings = json || {}; // Shuffle ads. if ( adAgencySettings.ads && adAgencySettings.ads.length ) { adAgencySettings.ads = joms._.shuffle( adAgencySettings.ads ); } injectAdAgencyItem(); } }); } function createAdAgencyItem( config, ad ) { var html; html = '<div data-stream-type="adagency" class="joms-stream joms-stream--adagency">'; html += '<div class="joms-stream__header">'; html += '<div class="joms-avatar--stream">'; html += '<a href="' + ad.on_click_url + '" target="_blank" onclick="window.open(\'' + ad.on_click_url + '\'); return false;">'; html += '<img src="' + ad.banner_avatar + '">'; html += '</a>'; html += '</div>'; html += '<div class="joms-stream__meta">'; html += '<a class="joms-stream__user" href="' + ad.on_click_url + '" target="_blank" onclick="window.open(\'' + ad.on_click_url + '\'); return false;">' + ad.banner_headline + '</a>'; html += '<a href="' + ad.on_click_url + '" target="_blank" onclick="window.open(\'' + ad.on_click_url + '\'); return false;"><span class="joms-stream__time"><small>' + (ad.short_url_to_promote || ad.url_to_promote) + '</small></span></a>'; html += '</div>'; html += '</div>'; html += '<div class="joms-stream__body">'; html += '<p>' + ad.banner_text + '</p>'; html += '<div class="joms-media--image">'; html += '<a href="' + ad.on_click_url + '" target="_blank" onclick="window.open(\'' + ad.on_click_url + '\'); return false;">'; html += '<img src="' + ad.banner_image_content + '">'; html += '</a>'; html += '</div>'; html += '</div>'; if ( +config.show_sponsored_stream_info || +config.show_create_ad_link ) { html += '<div class="joms-stream__actions">'; if ( +config.show_sponsored_stream_info ) { html += '<span style="float:left">' + config.sponsored_stream_info_text + '</span>'; } if ( +config.show_create_ad_link ) { html += '<a href="' + config.create_ad_link + '" style="float:right">' + config.create_ad_link_text + '</a>'; } html += '<div style="clear:both"></div>'; html += '</div>'; } html += '</div>'; return html; } function injectAdAgencyItem() { var ads, config, after, every, counter, isAfter, pageMap, isLoggedIn, isPublic; if ( !(adAgencySettings && adAgencySettings.config && adAgencySettings.ads && adAgencySettings.ads.length) ) { return; } ads = adAgencySettings.ads; config = adAgencySettings.config; after = +config.display_stream_ads_after_value; every = +config.display_stream_ads_every_value; isAfter = +config.display_stream_ads; counter = 0; isLoggedIn = +window.joms_my_id; if ( !isLoggedIn ) { for ( var i = ads.length - 1; i >= 0; i-- ) { isPublic = +ads[i].banner_access; if ( !isPublic ) { ads.splice( i, 1 ); } } } if ( !ads.length ) { return; } pageMap = { frontpage : 'front_page_stream', profile : 'profile_stream', pages : 'pages_stream', groups : 'group_stream', events : 'event_stream' }; if ( ( config.js_stream_ads_on || [] ).indexOf( pageMap[ window.joms_page ] ) < 0 ) { return; } container.find('.joms-stream').not('.joms-stream--adagency').each(function( i ) { var elem, next; // Show ad after 'x' stream items. if ( isAfter ) { if ( !after ) { return false; } if ( i === after - 1 ) { elem = $( this ); next = elem.next(); if ( !next.length || !next.hasClass('joms-stream--adagency') ) { elem.after( createAdAgencyItem( config, ads[ counter ] ) ); increaseAdAgencyImpression( ads[ counter ] ); } return false; } // Show ad every 'x' stream items. } else { if ( !every ) { return false; } if ( (i + 1) % every === 0 ) { elem = $( this ); next = elem.next(); if ( !next.length || !next.hasClass('joms-stream--adagency') ) { elem.after( createAdAgencyItem( config, ads[ counter % ads.length ] ) ); increaseAdAgencyImpression( ads[ counter % ads.length ] ); } counter++; } } }); } function increaseAdAgencyImpression( ad ) { var id = [ ad.advertiser_id, ad.campaign_id, ad.banner_id, ad.campaign_type ].join('-'); adAgencyImpressions || (adAgencyImpressions = {}); if ( adAgencyImpressions[ id ] ) { return; } adAgencyImpressions[ id ] = true; joms.ajax({ func: 'system,ajaxAdagencyGetImpression', data: [ ad.advertiser_id, ad.campaign_id, ad.banner_id, ad.campaign_type ], callback: function() {} }); } // Exports. return { start: initialize, stop: uninitialize, loadMore: getOlderActivities }; }); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.toolbar = factory( root, $ ); })( window, joms.jQuery, function( window, $ ) { var wrapper, buttonMain, buttonUser, buttonSubMenu, xhr, lastbtn; function hideMenu( e ) { var nohide = $( e.target ).closest('.joms-trigger__menu--main, .joms-trigger__menu--user, .joms-menu, .joms-menu--user'); if ( nohide.length ) return; if ( wrapper.hasClass('show-menu') || wrapper.hasClass('show-menu--user') ) { e.preventDefault(); e.stopPropagation(); wrapper.removeClass('show-menu'); wrapper.removeClass('show-menu--user'); } } function toggleMenu( e ) { e.stopPropagation(); wrapper.toggleClass('show-menu'); } function toggleUserMenu( e ) { e.stopPropagation(); wrapper.toggleClass('show-menu--user'); } function toggleSubMenu( e ) { var el = $( e.currentTarget ).closest('li'); if ( el.hasClass('show-submenu') ) { el.removeClass('show-submenu'); } else { el.addClass('show-submenu').siblings().removeClass('show-submenu'); } } function start() { if ( !wrapper ) wrapper = $('.jomsocial-wrapper'); if ( !buttonMain ) buttonMain = $('.joms-trigger__menu--main'); if ( !buttonUser ) buttonUser = $('.joms-trigger__menu--user'); if ( !buttonSubMenu ) buttonSubMenu = $('.joms-menu__toggle'); stop(); wrapper.on( 'click.menu', hideMenu ); wrapper.on( 'click.menu', '.joms-js--has-dropdown', function( e ) { e.preventDefault(); e.stopPropagation(); window.location = $( e.currentTarget ).attr('href'); }); wrapper.on( 'mouseenter.menu', '.joms-toolbar--desktop > ul > li > a.joms-js--has-dropdown', function( e ) { var btn = $( e.currentTarget ); if ( ! btn.siblings('ul.joms-dropdown').is(':visible') ) { lastbtn = btn.trigger('click.dropdown'); } }); wrapper.on( 'mouseleave.menu', '.joms-toolbar--desktop', function() { if ( lastbtn ) { lastbtn.trigger('collapse.dropdown'); lastbtn = undefined; } }); buttonMain.on( 'click.menu', toggleMenu ); buttonUser.on( 'click.menu', toggleUserMenu ); buttonSubMenu.on( 'click.submenu', toggleSubMenu ); getNotifications(); } function stop() { if ( wrapper ) { wrapper.off( 'click.menu' ); wrapper.off( 'click.menu', '.joms-js--has-dropdown' ); wrapper.off( 'mouseenter.menu', '.joms-toolbar--desktop > ul > li > a.joms-js--has-dropdown' ); wrapper.off( 'mouseleave.menu', '.joms-toolbar--desktop' ); } if ( buttonMain ) buttonMain.off('click.menu'); if ( buttonUser ) buttonUser.off('click.menu'); if ( buttonSubMenu ) buttonSubMenu.off('click.submenu'); } function notificationGeneral() { joms.ajax({ func: 'notification,ajaxGetNotification', data: [ '' ], callback: function( json ) { var elem; if ( json.html ) { elem = $('.joms-popover--toolbar-general'); elem.html( json.html ); } } }); } function notificationFriend() { joms.ajax({ func: 'notification,ajaxGetRequest', data: [ '' ], callback: function( json ) { var elem; if ( json.html ) { elem = $('.joms-popover--toolbar-friendrequest'); elem.html( json.html ); elem.off( 'click', '.joms-button__approve' ).on( 'click', '.joms-button__approve', notificationFriendReject ); elem.off( 'click', '.joms-button__reject' ).on( 'click', '.joms-button__reject', notificationFriendApprove ); } } }); } function notificationFriendReject( e ) { var elem = $( e.currentTarget ), id = elem.data('connection'); joms.ajax({ func: 'friends,ajaxRejectRequest', data: [ id ], callback: function( json ) { elem = $('.joms-js__friend-request-' + id); elem.find('.joms-popover__actions').remove(); elem.find('.joms-popover__content').html( json.error || json.message ); notificationCounter( 'friendrequest', -1 ); } }); } function notificationFriendApprove( e ) { var elem = $( e.currentTarget ), id = elem.data('connection'); joms.ajax({ func: 'friends,ajaxApproveRequest', data: [ id ], callback: function( json ) { elem = $('.joms-js__friend-request-' + id); elem.find('.joms-popover__actions').remove(); elem.find('.joms-popover__content').html( json.error || json.message ); notificationCounter( 'friendrequest', -1 ); } }); } function notificationPm() { joms.ajax({ func: 'notification,ajaxGetInbox', data: [ '' ], callback: function( json ) { var elem; if ( json.html ) { elem = $('.joms-popover--toolbar-pm'); elem.html( json.html ); } } }); } function notificationCounter( type, count ) { var counters; if ([ 'general', 'friendrequest', 'pm' ].indexOf( type ) < 0) return; counters = $( '.joms-notifications__label--' + type ); count = +counters.eq(0).text() + count; counters.html( count > 0 ? count : '' ); } function search( elem ) { var keyword = elem, rTrim = /^\s+|\s+$/g, field, loading, viewall; if ( typeof elem !== 'string' ) { keyword = $( elem ).val(); } keyword = keyword || ''; if ( !keyword.replace(rTrim, '') ) return; if ( xhr ) { xhr.abort(); } elem = $('.joms-popover--toolbar-search'); field = elem.find('.joms-js--field'); loading = elem.find('.joms-js--loading'); viewall = elem.find('.joms-js--viewall'); elem.find('li:not(.joms-js--noremove)').remove(); viewall.hide(); loading.show(); xhr = joms.ajax({ func: 'search,ajaxSearch', data: [ keyword ], callback: function( json ) { var html, i, form, max, btn; loading.hide(); if ( json.error ) { html = '<li class="joms-js--error">' + json.error + '</li>'; field.after( html ); return; } if ( json.length ) { html = ''; max = Math.min( 3, json.length ); for ( i = 0; i < max; i++ ) { html += '<li><div class="joms-popover__avatar"><div class="joms-avatar">'; html += '<img src="' + json[i].thumb + '"></div></div>'; html += '<div class="joms-popover__content">'; html += '<h5><a href="' + json[i].url + '">' + json[i].name + '</a></h5>'; html += '</div></li>'; } form = viewall.find('form'); form.find('input').val( keyword ); viewall.off( 'click', 'a' ).on( 'click', 'a', function() { form[0].submit(); }); btn = viewall.find('a'); btn.html( btn.data('lang').replace( '%1$s', json.length ) ); field.after( html ); viewall.show(); elem.show(); } } }); } function getNotifications() { var viewerId = +window.joms_my_id; if ( !viewerId ) return; // do not call it if elements not found if ( ! $('.joms-js--notiflabel-general').length ) return; joms.ajax({ func: 'activities,ajaxGetTotalNotifications', callback: function( json ) { var generals, friendrequests, pms, delay, title; json || (json = {}); generals = json.newNotificationCount; friendrequests = json.newFriendInviteCount; pms = json.newMessageCount; delay = +json.nextPingDelay; if ( typeof generals !== 'undefined' ) { generals = +generals || ''; $('.joms-js--notiflabel-general').html( generals ); // Also update document's title. title = document.title; title = title.replace( /^\(\d+\)\s/, '' ); title = ( generals ? '(' + generals + ') ' : '' ) + title; document.title = title; } if ( typeof friendrequests !== 'undefined' ) { $('.joms-js--notiflabel-frequest').html( +friendrequests || '' ); } if ( typeof pms !== 'undefined' ) { $('.joms-js--notiflabel-inbox').html( +pms || '' ); } if ( delay > 0 ) { joms._.delay( getNotifications, delay ); } } }); } // Exports. return { start: start, stop: stop, notificationGeneral: notificationGeneral, notificationFriend: notificationFriend, notificationPm: notificationPm, notificationCounter: notificationCounter, search: search }; }); define("views/toolbar", function(){}); (function( root, $, factory ) { joms.fn || (joms.fn = {}); joms.fn.announcement = factory( root, $ ); define('functions/announcement',[],function() { return joms.fn.announcement; }); })( window, joms.jQuery, function( window, $ ) { function edit( groupid, id ) { $( '.joms-js--announcement-view-' + groupid + '-' + id ).hide(); $( '.joms-js--announcement-edit-' + groupid + '-' + id ).show(); $( '.joms-subnav,.joms-subnav--desktop' ).hide(); $( '.joms-sidebar' ).hide(); $( '.joms-main' ).css({ padding: 0, width: '100%' }); } function editCancel( groupid, id ) { $( '.joms-js--announcement-edit-' + groupid + '-' + id ).hide(); $( '.joms-js--announcement-view-' + groupid + '-' + id ).show(); $( '.joms-subnav,.joms-subnav--desktop' ).css( 'display', '' ); $( '.joms-main' ).css({ padding: '', width: '' }); $( '.joms-sidebar' ).show(); } // Exports. return { edit: edit, editCancel: editCancel }; }); (function( root, $, factory ) { joms.fn || (joms.fn = {}); joms.fn.facebook = factory( root, $ ); define('functions/facebook',[],function() { return joms.fn.facebook; }); })( window, joms.jQuery, function() { function update() { joms.ajax({ func: 'connect,ajaxUpdate', data: [ '' ], callback: function( json ) { console.log( json ); } }); } // Exports. return { update: update }; }); (function( root, $, factory ) { joms.fn || (joms.fn = {}); joms.fn.notification = factory( root, $ ); define('functions/notification',[],function() { return joms.fn.notification; }); })( window, joms.jQuery, function( window, $ ) { var requests = []; function updateCounter( type, id, count ) { var $el; id = type + '-' + id; // Prevent double/multiple request for one notification. if ( requests.indexOf( id ) >= 0 ) { return; } $el = $( '.joms-js--notiflabel-' + type ); if ( requests.indexOf( id ) < 0 ) { requests.push( id ); count = +$el.eq(0).text() + count; $el.html( count > 0 ? count : '' ); } } // Exports. return { updateCounter: updateCounter }; }); (function( root, $, factory ) { joms.fn || (joms.fn = {}); joms.fn.invitation = factory( root, $ ); define('functions/invitation',[ 'functions/notification' ], function() { return joms.fn.invitation; }); })( window, joms.jQuery, function( window, $ ) { function accept( type, id ) { var func; var data = [id]; switch (type) { case 'group': func = 'notification,ajaxGroupJoinInvitation'; break; case 'page': func = 'notification,ajaxPageJoinInvitation'; break; default: func = 'events,ajaxJoinInvitation'; break; } joms.ajax({ func: func, data: data, callback: function( json ) { _update( type, id, json ); } }); } function reject( type, id ) { var func; var data = [id]; switch (type) { case 'group': func = 'notification,ajaxGroupRejectInvitation'; break; case 'page': func = 'notification,ajaxPageRejectInvitation'; break; default: func = 'events,ajaxRejectInvitation'; break; } joms.ajax({ func: func, data: data, callback: function( json ) { _update( type, id, json ); } }); } function _update( type, id, json ) { $( '.joms-js--invitation-buttons-' + type + '-' + id ).remove(); $( '.joms-js--invitation-notice-' + type + '-' + id ).html( json && json.message || '' ); joms.fn.notification.updateCounter( 'general', id, -1 ); } // Exports. return { accept: accept, reject: reject }; }); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.field = factory( root, $ ); })( window, joms.jQuery, function( window, $ ) { function _createFileWrapper() { return [ '<div data-wrap="file" style="width:350px;max-width:100%;position:relative;overflow:hidden">', '<input type="text" class="joms-input" readonly="readonly" placeholder="', (window.joms_lang && window.joms_lang.COM_COMMUNITY_SELECT_FILE || 'Select file'), '.."', 'style="margin-bottom:2px">', '</div>' ].join(''); } function _extractFileName( path ) { var matches = path.match( /[^\\\/]+$/ ); if ( matches && matches[0] ) { return matches[0]; } return ''; } // Exports. return { file: function( $elems ) { $elems = $( $elems ); $elems.each(function( i, $elem ) { var $wrapper; $elem = $( $elem ); $wrapper = $elem.parent(); if ( ! $wrapper.data('wrap') ) { $wrapper = $( _createFileWrapper() ); $elem.before( $wrapper ); $elem.hide(); $elem.appendTo( $wrapper ); $elem.css({ cursor: 'pointer', position: 'absolute', right: 0, top: 0, width: '100%', height: '100%', opacity: 0 }); $elem.show(); } // On file selection. $elem.off( 'change.joms-file' ); $elem.on( 'change.joms-file', function() { $wrapper.find('.joms-input').val( _extractFileName( $(this).val() ) ); }); }); } }; }); define("utils/field", function(){}); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.info = factory( root, $ ); define('popups/info',[ 'utils/popup' ], function() { return joms.popup.info; }); })( window, joms.jQuery, function() { function render( popup, title, content ) { popup.items[0] = { type: 'inline', src: buildHtml( title, content ) }; popup.updateItemHTML(); } function buildHtml( title, content ) { return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( title || ' ' ), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( content || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( title, content ) { joms.util.popup.prepare(function( mfp ) { render( mfp, title, content ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.login = factory( root, $ ); define('popups/login',[ 'utils/popup' ], function() { return joms.popup.login; }); })( window, joms.jQuery, function() { var popup, elem; function login( _popup, _json ) { if ( _json && typeof _json === 'object' ) { render( _popup, _json ); return; } var uri = _json; if ( typeof _json !== 'string' ) { uri = window.location.href; uri = uri.replace(/#.*$/, ''); } joms.ajax({ func: 'system,ajaxLogin', data: [ uri ], callback: function( json ) { render( _popup, json ); } }); } function render( _popup, _json ) { if ( elem ) elem.off(); popup = _popup; popup.items[0] = { type: 'inline', src: buildHtml( _json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.find('form').on( 'submit', send ); } function send( e ) { e.preventDefault(); e.stopPropagation(); joms.ajax({ func: 'system,ajaxGetLoginFormToken', data: [], callback: function( json ) { var form = elem.find('form'); if ( json.token ) { form.find('.joms-js--token input').prop('name', json.token); } form.off('submit'); form.find('[name=submit]').click(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '</div>' ].join(''); } // Exports. return function( json ) { joms.util.popup.prepare(function( mfp ) { login( mfp, json ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.album || (joms.popup.album = {}); joms.popup.album.addFeatured = factory( root, $ ); define('popups/album.addfeatured',[ 'utils/popup' ], function() { return joms.popup.album.addFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'photos,ajaxAddFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE ,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.album || (joms.popup.album = {}); joms.popup.album.removeFeatured = factory( root, $ ); define('popups/album.removefeatured',[ 'utils/popup' ], function() { return joms.popup.album.removeFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'photos,ajaxRemoveFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.album || (joms.popup.album = {}); joms.popup.album.remove = factory( root ); define('popups/album.remove',[ 'utils/popup' ], function() { return joms.popup.album.remove; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'photos,ajaxRemoveAlbum', data: [ id, 'myphotos' ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form').submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', json.message, '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.album = factory( root, joms.popup.album || {}); define('popups/album',[ 'popups/album.addfeatured', 'popups/album.removefeatured', 'popups/album.remove' ], function() { return joms.popup.album; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.announcement || (joms.popup.announcement = {}); joms.popup.announcement.remove = factory( root ); define('popups/announcement.remove',[ 'utils/popup' ], function() { return joms.popup.announcement.remove; }); })( window, function() { var popup, elem, groupid, id; function render( _popup, _groupid, _id ) { if ( elem ) elem.off(); popup = _popup; groupid = _groupid; id = _id; joms.ajax({ func: 'groups,ajaxShowRemoveBulletin', data: [ groupid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( groupid, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, groupid, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.announcement = factory( root, joms.popup.announcement || {}); define('popups/announcement',[ 'popups/announcement.remove' ], function() { return joms.popup.announcement; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.app || (joms.popup.app = {}); joms.popup.app.about = factory( root, $ ); define('popups/app.about',[ 'utils/popup' ], function() { return joms.popup.app.about; }); })( window, joms.jQuery, function() { var popup, elem, name; function render( _popup, _name ) { if ( elem ) elem.off(); popup = _popup; name = _name; joms.ajax({ func: 'apps,ajaxShowAbout', data: [ name ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( name ) { joms.util.popup.prepare(function( mfp ) { render( mfp, name ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.app || (joms.popup.app = {}); joms.popup.app.browse = factory( root, $ ); define('popups/app.browse',[ 'utils/popup' ], function() { return joms.popup.app.browse; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, pos; function render( _popup, _pos ) { if ( elem ) elem.off(); popup = _popup; pos = _pos; joms.ajax({ func: 'apps,ajaxBrowse', data: [ pos ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', 'a[data-appname]', save ); elem.on( 'click', '.joms-js--btn-view-all', viewAll ); } }); } function save( e ) { var el = $( e.target ), appName = el.data('appname'), position = el.data('position'), stacked = position.indexOf('-stacked') >= 0, tabTemplate = '<a href="#joms-js--app-app_id" class="no-padding joms-js--app-tab-app_id active"><div class="joms-tab__bar--button"><span class="title">app_title</span></div></a>'; joms.ajax({ func: 'apps,ajaxAddApp', data: [ appName, position ], callback: function( json ) { var $pos, $btn, $tab; if ( json.success ) { $pos = $( '.joms-js--app-pos-' + pos ); $tab = $pos.find('.joms-tab__bar').eq(0); if (stacked) { $tab.before( $(json.item).show() ); } else { $btn = $tab.find('.joms-js--app-new'); $btn.prevAll().removeClass('active'); $btn.before( tabTemplate.replace( /app_id/g, json.id ).replace( /app_title/, json.title ) ); $pos.find('.joms-tab__content').hide(); $pos.append( $(json.item).show() ); } getSetting( json.id, appName ); } } }); } function getSetting( appId, appName ) { joms.ajax({ func: 'apps,ajaxShowSettings', data: [ appId, appName ], callback: function( json ) { elem.off( 'click', 'a[data-appname]' ); elem.html( buildHtml( json, 'setting' ) ); elem.on( 'click', '.joms-popup__content,.joms-popup__action', function( e ) { e.stopPropagation(); return false; }); elem.on( 'click', '[data-ui-object=popup-button-save]', function() { saveSetting(); }); } }); } function saveSetting() { var $form = elem.find('form'), params = $form.serializeArray(), data = [], i; for ( i = 0; i < params.length; i++ ) { data.push([ params[i].name, params[i].value ]); } joms.ajax({ func: 'apps,ajaxSaveSettings', data: [ data ], callback: function( json ) { if ( json.error ) { elem.find('.joms-popup__content').html( json.error ); elem.find('.joms-popup__action').remove(); return; } popup.close(); } }); } function viewAll() { var $ct = elem.find('.joms-popup__content').eq(0), height = $ct.innerHeight(); $ct.css({ height: height, overflow: 'auto' }); elem.find('.joms-js--btn-view-all').parent().remove(); elem.find('.joms-js--app').show(); $ct.animate({ scrollTop: $ct[0].scrollHeight }); } function buildHtml( json, type ) { var action = ''; json || (json = {}); if ( type === 'setting' && json.btnSave ) { action = [ '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close joms-left">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnSave, '</button>', '</div>' ].join(''); } else { action = [ '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>' ].join(''); } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', action, '</div>' ].join(''); } // Exports. return function( pos ) { joms.util.popup.prepare(function( mfp ) { render( mfp, pos ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.app || (joms.popup.app = {}); joms.popup.app.privacy = factory( root, $ ); define('popups/app.privacy',[ 'utils/popup' ], function() { return joms.popup.app.privacy; }); })( window, joms.jQuery, function() { var popup, elem, name; function render( _popup, _name ) { if ( elem ) elem.off(); popup = _popup; name = _name; joms.ajax({ func: 'apps,ajaxShowPrivacy', data: [ name ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function save() { var $radio = elem.find('input[type=radio]:checked'), privacy = $radio.val(); joms.ajax({ func: 'apps,ajaxSavePrivacy', data: [ name, privacy ], callback: function( json ) { if ( json.error ) { elem.find('.joms-popup__content').html( json.error ); elem.find('.joms-popup__action').remove(); return; } popup.close(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnSave, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( name ) { joms.util.popup.prepare(function( mfp ) { render( mfp, name ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.app || (joms.popup.app = {}); joms.popup.app.remove = factory( root, $ ); define('popups/app.remove',[ 'utils/popup' ], function() { return joms.popup.app.remove; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'apps,ajaxRemove', data: [ id ], callback: function( json ) { var $tab, $nexttab, $content; popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); // locate the app $tab = $( '.joms-js--app-tab-' + id ); $content = $( '#joms-js--app-' + id ); // find next tab $nexttab = $tab.prev(); if ( !$nexttab.length ) $nexttab = $tab.next().not('.joms-js--app-new'); // remove the app $tab.remove(); $content.remove(); $nexttab.length && $nexttab.click(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.app || (joms.popup.app = {}); joms.popup.app.setting = factory( root, $ ); define('popups/app.setting',[ 'utils/popup' ], function() { return joms.popup.app.setting; }); })( window, joms.jQuery, function() { var popup, elem, id, name; function render( _popup, _id, _name ) { if ( elem ) elem.off(); popup = _popup; id = _id; name = _name; joms.ajax({ func: 'apps,ajaxShowSettings', data: [ id, name ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function save() { var $form = elem.find('form'), params = $form.serializeArray(), data = [], i; for ( i = 0; i < params.length; i++ ) { data.push([ params[i].name, params[i].value ]); } joms.ajax({ func: 'apps,ajaxSaveSettings', data: [ data ], callback: function( json ) { if ( json.error ) { elem.find('.joms-popup__content').html( json.error ); elem.find('.joms-popup__action').remove(); return; } popup.close(); } }); } function buildHtml( json ) { var action = ''; json || (json = {}); if ( json.btnSave ) { action = [ '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close joms-left">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnSave, '</button>', '</div>' ].join(''); } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single" style="max-height:315px; overflow:auto">', ( json.html || '' ), '</div>', action, '</div>' ].join(''); } // Exports. return function( id, name ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, name ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.app = factory( root, joms.popup.app || {}); define('popups/app',[ 'popups/app.about', 'popups/app.browse', 'popups/app.privacy', 'popups/app.remove', 'popups/app.setting' ], function() { return joms.popup.app; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.avatar || (joms.popup.avatar = {}); joms.popup.avatar.change = factory( root, $ ); define('popups/avatar.change',[ 'utils/crop', 'utils/loadlib', 'utils/popup' ], function() { return joms.popup.avatar.change; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, type, id, uploader, container, button, result; function render( _popup, _type, _id ) { if ( elem ) elem.off(); popup = _popup; type = _type; id = _id; joms.ajax({ func: 'photos,ajaxUploadAvatar', data: [ type, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-upload', upload ); elem.on( 'click', '.joms-js--button-save', save ); elem.on( 'click', '.joms-js--button-rotate-left', rotateLeft ); elem.on( 'click', '.joms-js--button-rotate-right', rotateRight ); // Init uploader upon render. uploadInit(); } }); } function save() { var crop = joms.util.crop.getSelection(); joms.ajax({ func: 'photos,ajaxUpdateThumbnail', data: [ type, id, crop.x, crop.y, crop.width, crop.height ], callback: function( json ) { if ( json.success ) { window.location.reload( true ); } } }); } function rotateLeft() { joms.api.avatarRotate( type, id, 'left', function() { reloadImage(); }); } function rotateRight() { joms.api.avatarRotate( type, id, 'right', function() { reloadImage(); }); } function reloadImage() { var cropper = $('.joms-avatar__cropper'), img = cropper.find('img'), src = img.attr('src'); src = src.replace(/\?.*$/, ''); src = src + '?_=' + (new Date()).getTime(); joms.util.crop.detach(); img.removeAttr('src'); img.attr( 'src', src ); setTimeout(function() { joms.util.crop( img ); }, 100 ); } function upload() { uploadInit(function() { button.click(); }); } function uploadInit( callback ) { if ( typeof callback !== 'function' ) { callback = function() {}; } if ( uploader ) { callback(); return; } joms.util.loadLib( 'plupload', function () { var url; url = elem.find('form').attr('action'); container = $('<div id="joms-js--avatar-uploader" aria-hidden="true" style="width:1px; height:1px; position:absolute; overflow:hidden;">').appendTo( document.body ); button = $('<div id="joms-js--avatar-uploader-button">').appendTo( container ); uploader = new window.plupload.Uploader({ url: url, filters: [{ title: 'Image files', extensions: 'jpg,jpeg,png,gif' }], container: 'joms-js--avatar-uploader', browse_button: 'joms-js--avatar-uploader-button', runtimes: 'html5,html4', multi_selection: false, file_data_name: 'filedata' }); uploader.bind( 'FilesAdded', uploadAdded ); uploader.bind( 'Error', uploadError ); uploader.bind( 'UploadProgress', uploadProgress ); uploader.bind( 'FileUploaded', uploadUploaded ); uploader.bind( 'UploadComplete', uploadComplete ); uploader.init(); button = container.find('input[type=file]'); callback(); }); } function uploadAdded( up ) { window.setTimeout(function() { elem.find('.joms-progressbar__progress').css({ width: 0 }); up.refresh(); up.start(); }, 0); } function uploadError() { } function uploadProgress( up, file ) { var percent, bar, pleasewait; percent = Math.min( 100, Math.floor( file.loaded / file.size * 100 ) ); bar = elem.find( '.joms-progressbar__progress' ); bar.stop().animate({ width: percent + '%' }); pleasewait = $('.please-wait'); pleasewait.show(); } function uploadUploaded( up, files, data ) { var json = {}, cropper; // Parse json response. try { json = JSON.parse( data.response ); } catch ( e ) {} result = json; if ( json.msg && !json.error ) { cropper = $('.joms-avatar__cropper'); cropper.find('img').attr( 'src', json.msg ); cropper.show(); setTimeout(function() { var elem = cropper.find('img'); joms.util.crop.detach(); joms.util.crop( elem ); }, 100 ); } } function uploadComplete() { if ( ! result.error ) { elem.find('.joms-js--avatar-uploader-error').hide(); } else { elem.find('.joms-js--avatar-uploader-error').html( result.msg ).show(); elem.find('.joms-progressbar__progress').stop().animate({ width: '0%' }); } elem.find('.please-wait').hide(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', ( json.html || '' ), '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( type, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, type, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.avatar || (joms.popup.avatar = {}); joms.popup.avatar.remove = factory( root, $ ); define('popups/avatar.remove',[ 'utils/popup' ], function() { return joms.popup.avatar.remove; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _type, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxRemovePicture', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form').submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '<div class="joms-popup__hide">', '<form method="POST" action="', json.redirUrl, '"><input type="hidden" name="userid" value="' , id, '"></form>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( type, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, type, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.avatar || (joms.popup.avatar = {}); joms.popup.avatar.rotate = factory( root, $ ); define('popups/avatar.rotate',[],function() { return joms.popup.avatar.rotate; }); })( window, joms.jQuery, function( window, $ ) { function render( type, id, direction, callback ) { joms.ajax({ func: 'profile,ajaxRotateAvatar', data: [ type, id, direction ], callback: function( json ) { if ( json.error ) { window.alert( json.error ); return; } if ( json.success ) { $( '.joms-js--avatar-' + id ) .attr( 'src', json.avatar + '?_=' + (new Date()).getTime() ); if ( typeof callback === 'function' ) { callback( json ); } } } }); } // Exports. return function( type, id, direction, callback ) { render( type, id, direction, callback ); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.avatar = factory( root, joms.popup.avatar || {}); define('popups/avatar',[ 'popups/avatar.change', 'popups/avatar.remove', 'popups/avatar.rotate' ], function() { return joms.popup.avatar; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.comment || (joms.popup.comment = {}); joms.popup.comment.showLikes = factory( root, $ ); define('popups/comment.showlikes',[ 'utils/popup' ], function() { return joms.popup.comment.showLikes; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxshowLikedUser', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--rounded joms-popup--80pc">', '<button class="mfp-close joms-hide"></button>', '<div class="joms-comment">', ( json.html || '' ), '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.comment = factory( root, joms.popup.comment || {}); define('popups/comment',[ 'popups/comment.showlikes' ], function() { return joms.popup.comment; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.cover || (joms.popup.cover = {}); joms.popup.cover.change = factory( root, $ ); define('popups/cover.change',[ 'utils/loadlib', 'utils/popup' ], function() { return joms.popup.cover.change; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, type, id, uploader, container, button, result; function render( _popup, _type, _id ) { if ( elem ) elem.off(); popup = _popup; type = _type; id = _id; joms.ajax({ func: 'photos,ajaxChangeCover', data: [ type, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--album', getPhotoList ); elem.on( 'click', '.joms-js--back-to-album', backToAlbum ); elem.on( 'click', '.joms-js--select-photo', selectPhoto ); elem.on( 'click', '[data-ui-object=popup-button-upload]', upload ); // Init uploader upon render. uploadInit(); } }); } function getPhotoList() { var $el = $( this ), album = $el.data('album'), total = $el.data('total'); joms.ajax({ func: 'photos,ajaxGetPhotoList', data: [ album, total ], callback: function( json ) { if ( json && json.html ) { $('.joms-js--album-list').hide(); $('.joms-js--photo-list').html( json.html ).show(); } } }); } function backToAlbum() { $('.joms-js--photo-list').hide(); $('.joms-js--album-list').show(); } function selectPhoto() { var $el = $( this ), photo = $el.data('photo'); joms.ajax({ func: 'photos,ajaxSetPhotoCover', data: [ type, photo, id ], callback: function( json ) { if ( json && json.path ) { $('.joms-js--cover-image > img') .attr( 'src', json.path ) .css({ top: 0 }); $('.joms-js--cover-image-mobile') .css({ background: 'url(' + json.path + ') no-repeat center center' }); popup.close(); $('.joms-js--menu-reposition').show(); } } }); } function upload() { uploadInit(function() { button.click(); }); } function uploadInit( callback ) { if ( typeof callback !== 'function' ) { callback = function() {}; } if ( uploader ) { callback(); return; } joms.util.loadLib( 'plupload', function () { var url; url = elem.find('form').attr('action'); container = $('<div id="joms-js--cover-uploader" aria-hidden="true" style="width:1px; height:1px; position:absolute; overflow:hidden;">').appendTo( document.body ); button = $('<div id="joms-js--cover-uploader-button">').appendTo( container ); uploader = new window.plupload.Uploader({ url: url, filters: [{ title: 'Image files', extensions: 'jpg,jpeg,png,gif' }], container: 'joms-js--cover-uploader', browse_button: 'joms-js--cover-uploader-button', runtimes: 'html5,html4', multi_selection: false, file_data_name: 'uploadCover' }); uploader.bind( 'FilesAdded', uploadAdded ); uploader.bind( 'UploadProgress', uploadProgress ); uploader.bind( 'Error', function() {}); uploader.bind( 'FileUploaded', uploadUploaded ); uploader.bind( 'UploadComplete', uploadComplete ); uploader.init(); button = container.find('input[type=file]'); callback(); }); } function uploadAdded( up ) { window.setTimeout(function() { up.refresh(); up.start(); }, 0); } function uploadProgress( up, file ) { var percent, bar, pleasewait; percent = Math.min( 100, Math.floor( file.loaded / file.size * 100 ) ); bar = elem.find( '.joms-progressbar__progress' ); bar.stop().animate({ width: percent + '%' }); pleasewait = $('.please-wait'); pleasewait.show(); } function uploadUploaded( up, files, data ) { var json = {}; // Parse json response. try { json = JSON.parse( data.response ); } catch ( e ) {} result = json; if ( json.path ) { $('.joms-js--cover-image > img') .attr( 'src', json.path ) .css({ top: 0 }); $('.joms-js--cover-image-mobile') .css({ background: 'url(' + json.path + ') no-repeat center center' }); popup.close(); $('.joms-js--menu-reposition').show(); } } function uploadComplete() { if ( ! result.error ) { elem.find('.joms-js--cover-uploader-error').hide(); } else { elem.find('.joms-js--cover-uploader-error').html( result.error ).show(); elem.find('.joms-progressbar__progress').stop().animate({ width: '0%' }); } elem.find('.please-wait').hide(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', ( json.html || '' ), '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( type, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, type, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.cover || (joms.popup.cover = {}); joms.popup.cover.remove = factory( root, $ ); define('popups/cover.remove',[ 'utils/popup' ], function() { return joms.popup.cover.remove; }); })( window, joms.jQuery, function() { var popup, elem, type, id; function render( _popup, _type, _id ) { var func, data; if ( elem ) elem.off(); popup = _popup; type = _type; id = _id; func = 'profile,ajaxRemoveCover'; data = [ id ]; if ( type === 'group' || type ==='event' ) { func = 'photos,ajaxRemoveCover'; data = [ type, id ]; } joms.ajax({ func: func, data: data, callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var $form = elem.find('form'); if ( ! $form.data('saving') ) { $form.data( 'saving', 1 ); $form.submit(); } } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '<div class="joms-popup__hide">', '<form method="POST" action="', json.redirUrl, '">', ( type === 'group' || type ==='event' ? '<input type="hidden" name="type" value="' + type + '">' : '' ), ( type === 'group' || type ==='event' ? '<input type="hidden" name="id" value="' + id + '">' : '' ), ( type === 'group' || type ==='event' ? '' : '<input type="hidden" name="userid" value="' + id + '">' ), '</form>', '</div>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( type, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, type, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.cover = factory( root, joms.popup.cover || {}); define('popups/cover',[ 'popups/cover.change', 'popups/cover.remove' ], function() { return joms.popup.cover; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.discussion || (joms.popup.discussion = {}); joms.popup.discussion.lock = factory( root ); define('popups/discussion.lock',[ 'utils/popup' ], function() { return joms.popup.discussion.lock; }); })( window, function() { var popup, elem, groupid, id; function render( _popup, _groupid, _id ) { if ( elem ) elem.off(); popup = _popup; groupid = _groupid; id = _id; joms.ajax({ func: 'groups,ajaxShowLockDiscussion', data: [ groupid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( groupid, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, groupid, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.discussion || (joms.popup.discussion = {}); joms.popup.discussion.remove = factory( root ); define('popups/discussion.remove',[ 'utils/popup' ], function() { return joms.popup.discussion.remove; }); })( window, function() { var popup, elem, groupid, id; function render( _popup, _groupid, _id ) { if ( elem ) elem.off(); popup = _popup; groupid = _groupid; id = _id; joms.ajax({ func: 'groups,ajaxShowRemoveDiscussion', data: [ groupid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( groupid, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, groupid, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.discussion = factory( root, joms.popup.discussion || {}); define('popups/discussion',[ 'popups/discussion.lock', 'popups/discussion.remove' ], function() { return joms.popup.discussion; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event['delete'] = factory( root ); define('popups/event.delete',[ 'utils/popup' ], function() { return joms.popup.event['delete']; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'events,ajaxWarnEventDeletion', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save( e, step, action ) { var data, param; if ( step ) { data = [ id, step, action ]; } else { data = [ id, 1 ]; param = elem.find('[name=recurring]:checked'); data.push( param && param.length ? param.val() : '' ); } joms.ajax({ func: 'events,ajaxDeleteEvent', data: data, callback: function( json ) { var $ct; elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().first() .append( '<div>' + (json.error || json.message) + '</div>' ); if ( json.next ) { save( null, json.next, data[2] ); } else if ( json.redirect ) { $ct = elem.find('.joms-js--step2'); $ct.find('.joms-js--button-done') .html( json.btnDone ) .on( 'click', function() { window.location = json.redirect; }); $ct.find('.joms-popup__action').show(); $ct.find('.joms-popup__content').removeClass('joms-popup__content--single'); } } }); } function buildHtml( json ) { var form, rad, i; json || (json = {}); form = ''; if ( json.radios && json.radios.length ) { form = '<div><form style="margin:5px;padding:0">'; for ( i = 0; i < json.radios.length; i++ ) { rad = json.radios[i]; form += '<div><label> <input type="radio" name="recurring" value="' + rad[0] + '"' + (rad[2] ? ' checked' : '') + '> '; form += rad[1] + '</label></div>'; } form += '</form></div>'; } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.html, form, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnDelete, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '<div class="joms-popup__action joms-popup__hide">', '<button class="joms-button--primary joms-js--button-done"></button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.invite = factory( root, $ ); define('popups/event.invite',[ 'utils/popup' ], function() { return joms.popup.event.invite; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, tabAll, tabSelected, btnSelect, btnLoad, id, type, keyword, start, limit, xhr; function render( _popup, _id, _type ) { if ( elem ) elem.off(); popup = _popup; id = _id; type = _type; limit = 200; joms.ajax({ func: 'system,ajaxShowInvitationForm', data: [ null, '', id, 1, type === 'group' ? 0 : 1, type ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); // Override limit supplied in json. if ( json.limit ) { limit = +json.limit; } elem = popup.contentContainer; tabAll = elem.find('.joms-tab__content').eq(0); tabSelected = elem.find('.joms-tab__content').eq(1); btnSelect = elem.find('[data-btn-select]'); btnLoad = elem.find('[data-btn-load]'); elem.on( 'keyup', '[data-search]', search ); elem.on( 'click', '.joms-tab__bar a', changeTab ); elem.on( 'click', '[data-btn-select]', selectAll ); elem.on( 'click', '[data-btn-load]', load ); elem.on( 'click', '[data-btn-save]', save ); elem.on( 'click', 'input[type=checkbox]', toggle ); getFriendList(''); } }); } function search( e ) { var elem = $( e.currentTarget ); getFriendList( elem.val() ); } function save() { var friendsearch = '', checkboxes = tabSelected.find('input[type=checkbox]'), friends = [], emails = elem.find('input[name=emails]').val() || '', message = elem.find('[name=message]').val() || '', rTrim = /^\s+|\s+$/g, params; checkboxes.each(function() { friends.push( this.value ); }); emails = emails.replace( rTrim, '' ); message = message.replace( rTrim, '' ); params = [ [ 'friendsearch', friendsearch ], [ 'emails', emails ], [ 'message', message ], [ 'friends', friends.join(',') ], ]; joms.ajax({ func: 'system,ajaxSubmitInvitation', data: [ 'events,inviteUsers', id, params ], callback: function() { elem.off(); popup.close(); } }); } function changeTab( e ) { var $el = $( e.target ), selected = $el.attr('href') === '#joms-popup-tab-selected', lang = window.joms_lang[ selected ? 'COM_COMMUNITY_UNSELECT_ALL' : 'COM_COMMUNITY_SELECT_ALL' ]; btnSelect.html( lang ); } function selectAll() { var ct = $('.joms-tab__content:visible'), clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { ct.find('.joms-js--friend').remove(); elem.find('input[type=checkbox]').each(function() { this.checked = false; }); return; } // Add selected. clone = ct.find('.joms-js--friend').clone(); clone.find('input[type=checkbox]').add( ct.find('input[type=checkbox]') ).prop( 'checked', 'checked' ); ct = elem.find('#joms-popup-tab-selected'); ct.html( clone ); } function load() { getFriendList(); } function toggle( e ) { var checkbox = $( e.target ), ct = checkbox.closest('.joms-tab__content'), id, clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { id = checkbox[0].value; checkbox.closest('.joms-js--friend').remove(); elem.find('.joms-js--friend-' + id + ' input[type=checkbox]')[0].checked = false; return; } // Remove selected. if ( !checkbox[0].checked ) { id = checkbox[0].value; elem.find('#joms-popup-tab-selected .joms-js--friend-' + id).remove(); return; } // Add selected. ct = elem.find('#joms-popup-tab-selected'); clone = checkbox.closest('.joms-js--friend').clone(); checkbox = clone.find('input[type=checkbox]'); checkbox[0].checked = true; ct.append( clone ); } function getFriendList( _keyword ) { var isReset = typeof _keyword === 'string', func, data; if ( isReset ) { tabAll.empty(); start = 0; keyword = _keyword; } else { start += limit; } if (type === 'group') { func = 'system,ajaxLoadGroupEventMembers'; } else if (type === 'page') { func = 'system,ajaxLoadPageEventMembers'; } else { func = 'system,ajaxLoadFriendsList'; } data = [ keyword, 'events,inviteUsers', id, start, limit ]; if ( type === 'group' ) { data.splice( 1, 1 ); } xhr && xhr.abort(); xhr = joms.ajax({ func: func, data: data, callback: function( json ) { var html; if ( json.html ) { html = $( $.trim( json.html ) ); html.each(function() { var checkbox = $( this ).find(':checkbox'), value = checkbox.val(); if ( tabSelected.find(':checkbox[value=' + value + ']').length ) { checkbox[0].checked = true; } }); tabAll.append( html ); } if ( !isReset ) { tabAll[0].scrollTop = tabAll[0].scrollHeight; } // Toggle load more. if ( json.loadMore ) { btnSelect.css({ width: '49%', marginRight: '2%' }); btnLoad.css({ width: '49%' }).html( window.joms_lang.COM_COMMUNITY_INVITE_LOAD_MORE + ' (' + json.moreCount + ')' ).show(); } else { btnLoad.hide(); btnSelect.css({ width: '100%', marginRight: '0' }); } } }); } function buildHtml( json ) { return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--primary" data-btn-save="1">', json.btnInvite, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, type ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, type ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.join = factory( root, $ ); define('popups/event.join',[ 'utils/popup' ], function() { return joms.popup.event.join; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'events,ajaxRequestInvite', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1 ', ( json.isMember ? 'joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2 ', ( json.isMember ? '' : 'joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', json.html, '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.leave = factory( root, $ ); define('popups/event.leave',[ 'utils/popup' ], function() { return joms.popup.event.leave; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'events,ajaxIgnoreEvent', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.response = factory( root, $ ); define('popups/event.response',[ 'utils/popup' ], function() { return joms.popup.event.response; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id, _data ) { if ( elem ) elem.off(); popup = _popup; id = _id; popup.items[0] = { type: 'inline', src: buildHtml( _data ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', 'a[data-value]', save ); } function save( e ) { var value = $( e.currentTarget ).data('value'); joms.ajax({ func: 'events,ajaxUpdateStatus', data: [ id, value ], callback: function() { window.location.reload(); } }); } function buildHtml( data ) { var options = '', i; for ( i = 0; i < data.length; i++ ) { options += '<li><a data-value="' + data[i][0] + '" href="javascript:">' + data[i][1] + '</a></li>'; } return [ '<div class="joms-popup joms-popup--dropdown">', '<ul class="joms-dropdown">', options, '</ul>', '<button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', '</div>' ].join(''); } // Exports. return function( id ) { var data = [].slice.call( arguments ); data.shift(); joms.util.popup.prepare(function( mfp ) { render( mfp, id, data ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.addFeatured = factory( root, $ ); define('popups/event.addfeatured',[ 'utils/popup' ], function() { return joms.popup.event.addFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'events,ajaxAddFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.rejectGuest = factory( root, $ ); define('popups/event.rejectguest',[ 'utils/popup' ], function() { return joms.popup.event.rejectGuest; }); })( window, joms.jQuery, function() { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'events,ajaxConfirmRemoveGuest', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var checked = elem.find('input:checkbox')[0].checked || false; joms.ajax({ func: checked ? 'events,ajaxBlockGuest' : 'events,ajaxRemoveGuest', data: [ userid, id ], callback: function( json ) { var step1 = elem.find('.joms-js--step1'), step2 = elem.find('.joms-js--step2'); if ( !json.error ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } step2.find('.joms-popup__content').html( json.error || json.message ); step1.hide(); step2.show(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userid ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.removeFeatured = factory( root, $ ); define('popups/event.removefeatured',[ 'utils/popup' ], function() { return joms.popup.event.removeFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'events,ajaxRemoveFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.report = factory( root ); define('popups/event.report',[ 'utils/popup' ], function() { return joms.popup.event.report; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'system,ajaxReport', data: [], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'change', 'select', changeText ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function changeText( e ) { elem.find('textarea').val( e.target.value ); } function cancel() { elem.off(); popup.close(); } function save() { var rTrim = /^\s+|\s+$/g, message; message = elem.find('textarea').val(); message = message.replace( rTrim, '' ); if ( !message ) { elem.find('.joms-js--error').show(); return; } elem.find('.joms-js--error').hide(); joms.ajax({ func: 'system,ajaxSendReport', data: [ 'events,reportEvent', window.location.href, message, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', json.html, '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.banMember = factory( root, $ ); define('popups/event.banmember',[ 'utils/popup' ], function() { return joms.popup.event.banMember; }); })( window, joms.jQuery, function( window ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'events,ajaxBanMember', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.message || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userid ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.unbanMember = factory( root, $ ); define('popups/event.unbanmember',[ 'utils/popup' ], function() { return joms.popup.event.unbanMember; }); })( window, joms.jQuery, function( window ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'events,ajaxUnbanMember', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.message || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userid ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.event || (joms.popup.event = {}); joms.popup.event.unpublish = factory( root ); define('popups/event.unpublish',[ 'utils/popup' ], function() { return joms.popup.event.unpublish; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'events,ajaxShowUnpublishEvent', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save( e, step, action ) { var data, param; if ( step ) { data = [ id, step, action ]; } else { data = [ id ]; } elem.find('.joms-js--step1').find('.joms-popup__content').html(joms_lang.COM_COMMUNITY_POPUP_LOADING); elem.find('.joms-js--step1').find('.joms-popup__action').children().hide(); joms.ajax({ func: 'events,ajaxUnpublishEvent', data: data, callback: function( json ) { var $ct; elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().first() .append( '<div>' + (json.error || json.message) + '</div>' ); if ( json.next ) { save( null, json.next, data[2] ); } else if ( json.redirect ) { $ct = elem.find('.joms-js--step2'); $ct.find('.joms-js--button-done') .html( json.btnDone ) .on( 'click', function() { window.location = json.redirect; }); $ct.find('.joms-popup__action').show(); $ct.find('.joms-popup__content').removeClass('joms-popup__content--single'); } } }); } function buildHtml( json ) { var form, rad, i; json || (json = {}); form = ''; if ( json.radios && json.radios.length ) { form = '<div><form style="margin:5px;padding:0">'; for ( i = 0; i < json.radios.length; i++ ) { rad = json.radios[i]; form += '<div><label> <input type="radio" name="recurring" value="' + rad[0] + '"' + (rad[2] ? ' checked' : '') + '> '; form += rad[1] + '</label></div>'; } form += '</form></div>'; } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.html, form, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '<div class="joms-popup__action joms-popup__hide">', '<button class="joms-button--primary joms-js--button-done"></button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.event = factory( root, joms.popup.event || {}); define('popups/event',[ 'popups/event.delete', 'popups/event.invite', 'popups/event.join', 'popups/event.leave', 'popups/event.response', 'popups/event.addfeatured', 'popups/event.rejectguest', 'popups/event.removefeatured', 'popups/event.report', 'popups/event.banmember', 'popups/event.unbanmember', 'popups/event.unpublish' ], function() { return joms.popup.event; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.fbc || (joms.popup.fbc = {}); joms.popup.fbc.update = factory( root, $ ); define('popups/fbc.update',[ 'utils/popup' ], function() { return joms.popup.fbc.update; }); })( window, joms.jQuery, function( window ) { var popup, elem, lang, isMember; function render( _popup ) { if ( elem ) elem.off(); popup = _popup; if ( !window.joms_use_tfa ) { update(); } else { popup.items[0] = { type: 'inline', src: buildTfaDialog() }; popup.updateItemHTML(); elem = popup.contentContainer; elem.off('click'); elem.on( 'click', '.joms-js--button-next', function() { update( elem.find('[name=secret]').val() ); }); elem.on( 'click', '.joms-js--button-skip', function() { update(); }); } } function update( secret ) { if ( elem ) elem.off(); joms.ajax({ func: 'connect,ajaxUpdate', data: [ secret || '' ], callback: function( json ) { var isLoggedIn = json.jax_token_var; if ( isLoggedIn ) { json.btnNext = json.btnContinue; window.jax_token_var = json.jax_token_var; } popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; lang = json.lang; elem.off('click'); elem.on( 'click', '.joms-js--button-next', isLoggedIn ? importData : next ); elem.on( 'click', '.joms-js--button-back2', back2 ); elem.on( 'click', '.joms-js--button-next2', next2 ); elem.on( 'click', '.joms-js--button-back3', back3 ); } }); } function next() { var tnc, error; isMember = +elem.find('[name=membertype]:checked').val() === 2; if ( isMember ) { connectMember(); } else { tnc = elem.find('#joms-js--fbc-tnc-checkbox'); if ( !tnc.length ) { connectNewUser(); } else { tnc = tnc[0]; error = elem.find('.joms-js--fbc-tnc-error'); if ( tnc.checked ) { error.hide(); connectNewUser(); } else { error.show(); } } } } function back2() { elem.find('.joms-js--step2').hide(); elem.find('.joms-js--step3').hide(); elem.find('.joms-js--step1').show(); } function next2() { if ( isMember ) { validateMember(); } else { validateNewUser(); } } function connectNewUser() { joms.ajax({ func: 'connect,ajaxShowNewUserForm', data: [ '' ], callback: function( json ) { var div; elem.find('.joms-js--step1').hide(); div = elem.find('.joms-js--step2'); div.find('.joms-popup__content').html( json.html ); div.find('.joms-js--button-back2').html( json.btnBack ); div.find('.joms-js--button-next2').html( json.btnCreate ); div.show(); } }); } function connectMember() { joms.ajax({ func: 'connect,ajaxShowExistingUserForm', data: [ '' ], callback: function( json ) { var div; elem.find('.joms-js--step1').hide(); div = elem.find('.joms-js--step2'); div.find('.joms-popup__content').html( json.html ); div.find('.joms-js--button-back2').html( json.btnBack ); div.find('.joms-js--button-next2').html( json.btnLogin ); div.show(); } }); } function validateNewUser() { var div = elem.find('.joms-js--step2'), name = div.find('[name=name]').val(), user = div.find('[name=username]').val(), email = div.find('[name=email]').val(), types = div.find('[name=profiletype]'), profileType = '', type; if ( types.length ) { type = types.filter(':checked'); if ( !type.length ) { div.hide(); div = elem.find('.joms-js--step3'); div.find('.joms-popup__content').html( lang.selectProfileType ); div.find('.joms-js--button-back3').html( lang.btnBack ); div.show(); return; } profileType = types.filter(':checked').val(); } joms.ajax({ func: 'connect,ajaxCreateNewAccount', data: [ name, user, email, profileType ], callback: function( json ) { var div; if ( json.error ) { elem.find('.joms-js--step2').hide(); div = elem.find('.joms-js--step3'); div.find('.joms-popup__content').html( json.error ); div.find('.joms-js--button-back3').html( json.btnBack ); div.show(); return; } elem.off(); popup.close(); joms.popup.fbc.update(); } }); } function validateMember() { var div = elem.find('.joms-js--step2'), user = div.find('[name=username]').val(), pass = div.find('[name=password]').val(); joms.ajax({ func: 'connect,ajaxValidateLogin', data: [ user, pass ], callback: function( json ) { var div; if ( json.error ) { if (json.redirect) { alert(json.error); location.href = json.redirect; return; } elem.find('.joms-js--step2').hide(); div = elem.find('.joms-js--step3'); div.find('.joms-popup__content').html( json.error ); div.find('.joms-js--button-back3').html( json.btnBack ); div.show(); return; } elem.off(); popup.close(); joms.popup.fbc.update(); } }); } // function checkName( name ) { // joms.ajax({ // func: 'connect,ajaxCheckName', // data: [ name ], // callback: function( json ) { // } // }); // } // function checkUsername( username ) { // joms.ajax({ // func: 'connect,ajaxCheckUsername', // data: [ username ], // callback: function( json ) { // } // }); // } // function checkEmail( email ) { // joms.ajax({ // func: 'connect,ajaxCheckEmail', // data: [ email ], // callback: function( json ) { // } // }); // } function importData() { var status = elem.find('[name=importstatus]'), avatar = elem.find('[name=importavatar]'); status = status.length && status[0].checked ? 1 : 0; avatar = avatar.length && avatar[0].checked ? 1 : 0; joms.ajax({ func: 'connect,ajaxImportData', data: [ status, avatar ], callback: function( json ) { var div; elem.find('.joms-js--step1').hide(); if ( json.error ) { elem.off('click').on( 'click', '.joms-js--button-next2', cancel ); div = elem.find('.joms-js--step2'); div.find('.joms-popup__content').html( json.error ); div.find('.joms-js--button-back2').hide(); div.find('.joms-js--button-next2').html( json.btnNext ); div.show(); return; } if ( !json.btnUpdate ) { cancel(); window.location = json.redirect; return; } elem.off('click').on( 'click', '.joms-js--button-back2', cancel ); elem.off('click').on( 'click', '.joms-js--button-next2', function() { window.location = json.redirect; }); div = elem.find('.joms-js--step2'); div.find('.joms-popup__content').html( json.html ); div.find('.joms-js--button-back2').html( json.btnSkip ); div.find('.joms-js--button-next2').html( json.btnUpdate ); div.show(); } }); } function back3() { elem.find('.joms-js--step3').hide(); if ( isMember ) { elem.find('.joms-js--step2').hide(); elem.find('.joms-js--step1').show(); } else { elem.find('.joms-js--step2').show(); elem.find('.joms-js--step1').hide(); } } function cancel() { elem.off(); popup.close(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content ', ( json.btnNext ? '' : 'joms-popup__content--single' ), '">', ( json.error || json.html || '' ), '</div>', ( json.btnNext ? '<div class="joms-popup__action">' : '' ), ( json.btnNext ? '<button class="joms-button--primary joms-button--small joms-js--button-next">' + json.btnNext + '</button>' : '' ), ( json.btnNext ? '</div>' : '' ), '</div>', '<div class="joms-js--step2 joms-popup__hide">', '<div class="joms-popup__content"></div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-back2"></button>', '<button class="joms-button--primary joms-button--small joms-js--button-next2"></button>', '</div>', '</div>', '<div class="joms-js--step3 joms-popup__hide">', '<div class="joms-popup__content joms-popup__content--single"></div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-back3"></button>', '</div>', '</div>', '</div>' ].join(''); } function buildTfaDialog() { var lang = window.joms_lang || {}; return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', (lang.COM_COMMUNITY_AUTHENTICATION_KEY || 'Authentication key'), '</div>', '<div class="joms-popup__content">', '<span>', (lang.COM_COMMUNITY_AUTHENTICATION_KEY_LABEL || 'Insert your two-factor authentication key'), '</span>', '<input type="text" class="joms-input" name="secret">', '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-skip">', (lang.COM_COMMUNITY_SKIP_BUTTON || 'Skip'), '</button>', '<button class="joms-button--primary joms-button--small joms-js--button-next">', (lang.COM_COMMUNITY_NEXT || 'Next'), '</button>', '</div>', '</div>' ].join(''); } // Exports. return function() { joms.util.popup.prepare(function( mfp ) { render( mfp ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.fbc = factory( root, joms.popup.fbc || {}); define('popups/fbc',[ 'popups/fbc.update' ], function() { return joms.popup.fbc; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.file || (joms.popup.file = {}); joms.popup.file.download = factory( root, $ ); define('popups/file.download',[ 'utils/popup' ], function() { return joms.popup.file.download; }); })( window, joms.jQuery, function( window ) { var popup, elem, type, id, path; function render( _popup, _type, _id, _path ) { if ( elem ) elem.off(); popup = _popup; type = _type; id = _id; path = _path; joms.ajax({ func: 'files,ajaxFileDownload', data: [ type, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); if ( json.url ) { popup.close(); window.open( path ); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', (json.message || json.error), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( type, id, path ) { joms.util.popup.prepare(function( mfp ) { render( mfp, type, id, path ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.file || (joms.popup.file = {}); joms.popup.file.list = factory( root, $ ); define('popups/file.list',[ 'utils/loadlib', 'utils/popup' ], function() { return joms.popup.file.list; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, type, id, tab, start, $currentTab, $btnLoadMore; function render( _popup, _type, _id ) { if ( elem ) elem.off(); popup = _popup; type = _type; id = _id; joms.ajax({ func: 'files,ajaxviewMore', data: [ type, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; $btnLoadMore = elem.find('.joms-js--btn-loadmore'); elem.on( 'click', '.joms-js--tab-bar a', load ); elem.on( 'click', '.joms-js--btn-loadmore', loadmore ); tab = false; elem.find('.joms-js--tab-bar a.active').trigger('click'); } }); } function _load( tabid, callback ) { joms.ajax({ func: 'files,ajaxgetFileList', data: [ tabid, id, start, 4, type ], callback: function( json ) { callback( json ); } }); } function load() { var $tab = $( this ), tabid = $tab.data('id'); if ( tab === tabid ) { return; } tab = tabid; $currentTab = elem.find( '.joms-js--tab-' + tabid ); $tab.addClass('active').siblings().removeClass('active'); $btnLoadMore.css({ visibility: 'hidden' }); $currentTab.empty().show().siblings('.joms-js--tab').hide(); start = 0; _load( tab, function( json ) { $currentTab.html( json.html ); if ( json.next && json.count ) { start = json.next; $btnLoadMore.css({ visibility: 'visible' }); $btnLoadMore.html( window.joms_lang.COM_COMMUNITY_FILES_LOAD_MORE + ' (' + json.count + ')' ); } else { $btnLoadMore.css({ visibility: 'hidden' }); } }); } function loadmore() { _load( tab, function( json ) { $currentTab.append( json.html ); $currentTab[0].scrollTop = $currentTab[0].scrollHeight; if ( json.next && json.count ) { start = json.next; $btnLoadMore.css({ visibility: 'visible' }); $btnLoadMore.html( window.joms_lang.COM_COMMUNITY_FILES_LOAD_MORE + ' (' + json.count + ')' ); } else { $btnLoadMore.css({ visibility: 'hidden' }); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--600">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', json.html, '</div>' ].join(''); } // Exports. return function( type, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, type, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.file || (joms.popup.file = {}); joms.popup.file.remove = factory( root, $ ); define('popups/file.remove',[ 'utils/popup' ], function() { return joms.popup.file.remove; }); })( window, joms.jQuery, function( window, $ ) { var type, id; function render( popup, json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } function _delete( _type, _id ) { type = _type; id = _id; if ( window.confirm( window.joms_lang.COM_COMMUNITY_FILES_DELETE_CONFIRM ) ) { joms.ajax({ func: 'files,ajaxDeleteFile', data: [ type, id ], callback: function( json ) { if ( json.success ) { $( '.joms-js--file-' + id ).remove(); return; } joms.util.popup.prepare(function( mfp ) { render( mfp, json ); }); } }); } } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button> </div>', '<div class="joms-popup__content joms-popup__content--single">', (json.message || json.error), '</div>', '</div>' ].join(''); } // Exports. return function( type, id ) { _delete( type, id ); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.file || (joms.popup.file = {}); joms.popup.file.upload = factory( root, $ ); define('popups/file.upload',[ 'utils/loadlib', 'utils/popup' ], function() { return joms.popup.file.upload; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, type, id, uploader, uploaderUrl, uploaderButton, uploaderPreview, doReload; function render( _popup, _type, _id ) { if ( elem ) elem.off(); popup = _popup; type = _type; id = _id; joms.ajax({ func: 'files,ajaxFileUploadForm', data: [ type, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { doReload && window.location.reload(); }; elem = popup.contentContainer; doReload = false; uploaderPreview = elem.find('.joms-js--upload-preview'); elem.on( 'click', '.joms-js--btn-add', upload ); elem.on( 'click', '.joms-js--btn-upload', uploadStart ); elem.on( 'click', '.joms-js--btn-done', function() { doReload && window.location.reload(); }); // Init uploader upon render. uploadInit(); } }); } function upload() { uploadInit(function() { uploaderButton.click(); }); } function uploadInit( callback ) { if ( typeof callback !== 'function' ) { callback = function() {}; } if ( uploader ) { callback(); return; } uploaderUrl = joms.BASE_URL + elem.find('input[name=url]').val(); joms.util.loadLib( 'plupload', function () { var container, button; container = $('<div id="joms-js--file-uploader" aria-hidden="true" style="width:1px; height:1px; overflow:hidden">').appendTo( document.body ); button = $('<button id="joms-js--file-uploader-button">').appendTo( container ); uploader = new window.plupload.Uploader({ url: uploaderUrl, container: 'joms-js--file-uploader', browse_button: 'joms-js--file-uploader-button', runtimes: 'html5,html4', filters: [{ title: 'Document files', extensions: elem.find('input[name=filetype]').val() }], max_file_size: elem.find('input[name=maxfilesize]').val() + 'mb' }); uploader.bind( 'FilesAdded', uploadAdded ); uploader.bind( 'Error', uploadError ); uploader.bind( 'UploadProgress', uploadProgress ); uploader.bind( 'FileUploaded', uploadUploaded ); uploader.bind( 'uploadComplete', uploadComplete ); uploader.init(); uploaderButton = container.find('input[type=file]'); callback(); }); } function uploadAdded( up, files ) { var html = '', i; for ( i = 0; i < files.length; i++ ) { html += '<div class="joms-file--' + files[i].id + '" style="margin-bottom:5px">'; html += '<div><strong>' + files[i].name + '</strong> <span>(' + Math.round( files[i].size / 1024 ) + ' KB)</span></div>'; html += '<div class="joms-progressbar"><div class="joms-progressbar__progress" style="width:0%"></div></div>'; html += '</div>'; } uploaderPreview.find('.joms-js--upload-placeholder').remove(); uploaderPreview.append( html ); elem.find('.joms-js--btn-add').html( elem.find('.joms-js--btn-add').data('lang-more') ).css({ visibility: 'visible' }); elem.find('.joms-js--btn-upload').show(); elem.find('.joms-js--btn-done').hide(); } function uploadError( up, info ) { uploaderPreview.find( '.joms-file--' + info.file.id ).remove(); window.alert( info.message + ' (' + info.code + ')' ); } function uploadStart() { elem.find('.joms-js--btn-add').css({ visibility: 'hidden' }); elem.find('.joms-js--btn-upload').hide(); elem.find('.joms-js--btn-done').hide(); uploader.settings.url = uploaderUrl + '&type=' + type + '&id=' + id; uploader.refresh(); uploader.start(); } function uploadProgress( up, file ) { var percent, bar; percent = Math.min( 100, Math.floor( file.loaded / file.size * 100 ) ); bar = elem.find( '.joms-file--' + file.id ); bar = bar.find( '.joms-progressbar__progress' ); bar.stop().animate({ width: percent + '%' }); } function uploadUploaded( up, file, resp ) { var json = {}, item; try { json = JSON.parse( resp.response ); } catch (e) {} if ( json.error ) { uploader.stop(); elem.find('.joms-js--btn-add').css({ visibility: 'hidden' }); elem.find('.joms-js--btn-upload').hide(); elem.find('.joms-js--btn-done').show(); elem.find( '.joms-file--' + file.id ).nextAll().addBack().remove(); window.alert( json.msg ); return; } if ( json.msg ) { item = elem.find( '.joms-file--' + file.id ); item.css({ color: '#F00' }); } else if ( json.id ) { doReload = true; } } function uploadComplete() { elem.find('.joms-js--btn-add').css({ visibility: 'visible' }); elem.find('.joms-js--btn-upload').hide(); elem.find('.joms-js--btn-done').show(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', json.html, '</div>' ].join(''); } // Exports. return function( type, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, type, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.file || (joms.popup.file = {}); joms.popup.file.updateHit = factory( root ); define('popups/file.updatehit',[ 'utils/popup' ], function() { return joms.popup.file.updateHit; }); })( window, function( window ) { return function( id, location ) { joms.ajax({ func: 'files,ajaxUpdateHit', data: [ id ], callback: function() {} }); if ( typeof location === 'string' ) { window.open( location ); } }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.file = factory( root, joms.popup.file || {}); define('popups/file',[ 'popups/file.download', 'popups/file.list', 'popups/file.remove', 'popups/file.upload', 'popups/file.updatehit' ], function() { return joms.popup.file; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.friend || (joms.popup.friend = {}); joms.popup.friend.add = factory( root ); define('popups/friend.add',[ 'utils/popup' ], function() { return joms.popup.friend.add; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'friends,ajaxConnect', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var message = elem.find('textarea').val() .replace( /\t/g, '\\t' ) .replace( /\n/g, '\\n' ) .replace( /"/g, '"' ); joms.ajax({ func: 'friends,ajaxSaveFriend', data: [[[ 'msg', message ], [ 'userid', id ]]], callback: function( json ) { var step1 = elem.find('[data-ui-object=popup-step-1]'), step2 = elem.find('[data-ui-object=popup-step-2]'); if ( !json.error ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } step2.find('[data-ui-object=popup-message]').html( json.error || json.message ); step1.hide(); step2.show(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', '<div class="joms-stream__header" style="padding:0">', '<div class="joms-avatar--stream"><img src="', json.avatar, '"></div>', '<div class="joms-stream__meta"><span>', json.desc, '</span></div>', '</div>', '</div>', '<div class="joms-popup__content">', '<textarea class="joms-textarea" style="margin:0">', json.message, '</textarea>', '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnAdd, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.friend || (joms.popup.friend = {}); joms.popup.friend.addCancel = factory( root ); define('popups/friend.addcancel',[ 'utils/popup' ], function() { return joms.popup.friend.addCancel; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'friends,ajaxCancelRequest', data: [ id, window.location.href ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.friend || (joms.popup.friend = {}); joms.popup.friend.approve = factory( root, $ ); define('popups/friend.approve',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.friend.approve; }); })( window, joms.jQuery, function( window, $ ) { var id; function render( _id ) { id = _id; joms.ajax({ func: 'friends,ajaxApproveRequest', data: [ id ], callback: function( json ) { if ( json.success ) { update( json ); return; } // On error response. joms.util.popup.prepare(function( mfp ) { mfp.items[0] = { type: 'inline', src: buildErrorHtml( json ) }; mfp.updateItemHTML(); }); } }); } function update( json ) { $( '.joms-js--frequest-msg-' + id ).html( json.message ); $( '.joms-js--frequest-btn-' + id ).remove(); joms.fn.notification.updateCounter( 'frequest', id, -1 ); } function buildErrorHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { render( id ); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.friend || (joms.popup.friend = {}); joms.popup.friend.reject = factory( root, $ ); define('popups/friend.reject',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.friend.reject; }); })( window, joms.jQuery, function( window, $ ) { var id; function render( _id ) { id = _id; joms.ajax({ func: 'friends,ajaxRejectRequest', data: [ id ], callback: function( json ) { if ( json.success ) { update( json ); return; } // On error response. joms.util.popup.prepare(function( mfp ) { mfp.items[0] = { type: 'inline', src: buildErrorHtml( json ) }; mfp.updateItemHTML(); }); } }); } function update( json ) { $( '.joms-js--frequest-msg-' + id ).html( json.message ); $( '.joms-js--frequest-btn-' + id ).remove(); joms.fn.notification.updateCounter( 'frequest', id, -1 ); } function buildErrorHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { render( id ); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.friend || (joms.popup.friend = {}); joms.popup.friend.remove = factory( root, $ ); define('popups/friend.remove',[ 'utils/popup' ], function() { return joms.popup.friend.remove; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'friends,ajaxConfirmFriendRemoval', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var checkbox = elem.find('input[type=checkbox]'), func; if ( checkbox[0].checked ) { func = 'friends,ajaxBlockFriend'; } else { func = 'friends,ajaxRemoveFriend'; } joms.ajax({ func: func, data: [ id ], callback: function( json ) { var step1 = elem.find('[data-ui-object=popup-step-1]'), step2 = elem.find('[data-ui-object=popup-step-2]'); step2.find('[data-ui-object=popup-message]').html( json.error || json.message ); step1.hide(); step2.show(); if ( json && json.success ) { $( '#friend-' + id ).remove(); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.friend || (joms.popup.friend = {}); joms.popup.friend.response = factory( root ); define('popups/friend.response',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.friend.response; }); })( window, function() { var popup, elem, id, connection; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'friends,ajaxConnect', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); connection = json.connection_id; elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', reject ); elem.on( 'click', '.joms-js--button-save', approve ); } }); } function reject() { joms.ajax({ func: 'friends,ajaxRejectRequest', data: [ connection ], callback: function( json ) { update( json ); } }); } function approve() { joms.ajax({ func: 'friends,ajaxApproveRequest', data: [ connection ], callback: function( json ) { update( json ); } }); } function update( json ) { var step1 = elem.find('.joms-js--step1'), step2 = elem.find('.joms-js--step2'); if ( !json.error ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } step2.find('.joms-popup__content').html( json.error || json.message ); step1.hide(); step2.show(); } function buildHtml( json ) { var error = false; json || (json = {}); if ( json.error && !json.desc ) { error = json.error; } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', '<div class="joms-stream__header" style="padding:0">', '<div class="joms-avatar--stream"><img src="', json.avatar, '"></div>', '<div class="joms-stream__meta"><span>', json.desc, '</span></div>', '</div>', '</div>', '<div class="joms-popup__content">', '<div class="cStream-Quote">', json.message, '</div>', '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnReject, '</button>', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnAccept, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.friend = factory( root, joms.popup.friend || {}); define('popups/friend',[ 'popups/friend.add', 'popups/friend.addcancel', 'popups/friend.approve', 'popups/friend.reject', 'popups/friend.remove', 'popups/friend.response' ], function() { return joms.popup.friend; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.follower || (joms.popup.follower = {}); joms.popup.follower.add = factory( root ); define('popups/follower.add',[ 'utils/popup' ], function() { return joms.popup.follower.add; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'followers,ajaxConfirmFollow', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var message = ""; joms.ajax({ func: 'followers,ajaxSaveFollow', data: [[[ 'msg', message ], [ 'userid', id ]]], callback: function( json ) { var step1 = elem.find('[data-ui-object=popup-step-1]'), step2 = elem.find('[data-ui-object=popup-step-2]'); if ( !json.error ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } step2.find('[data-ui-object=popup-message]').html( json.error || json.message ); step1.hide(); step2.show(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', '<div class="joms-stream__header" style="padding:0">', '<div class="joms-avatar--stream"><img src="', json.avatar, '"></div>', '<div class="joms-stream__meta"><span>', json.desc, '</span></div>', '</div>', '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnAdd, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.follower || (joms.popup.follower = {}); joms.popup.follower.addCancel = factory( root ); define('popups/follower.addcancel',[ 'utils/popup' ], function() { return joms.popup.follower.addCancel; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'followers,ajaxCancelRequest', data: [ id, window.location.href ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.follower || (joms.popup.follower = {}); joms.popup.follower.approve = factory( root, $ ); define('popups/follower.approve',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.follower.approve; }); })( window, joms.jQuery, function( window, $ ) { var id; function render( _id ) { id = _id; joms.ajax({ func: 'followers,ajaxApproveRequest', data: [ id ], callback: function( json ) { if ( json.success ) { update( json ); return; } // On error response. joms.util.popup.prepare(function( mfp ) { mfp.items[0] = { type: 'inline', src: buildErrorHtml( json ) }; mfp.updateItemHTML(); }); } }); } function update( json ) { $( '.joms-js--frequest-msg-' + id ).html( json.message ); $( '.joms-js--frequest-btn-' + id ).remove(); joms.fn.notification.updateCounter( 'frequest', id, -1 ); } function buildErrorHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { render( id ); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.follower || (joms.popup.follower = {}); joms.popup.follower.reject = factory( root, $ ); define('popups/follower.reject',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.follower.reject; }); })( window, joms.jQuery, function( window, $ ) { var id; function render( _id ) { id = _id; joms.ajax({ func: 'followers,ajaxRejectRequest', data: [ id ], callback: function( json ) { if ( json.success ) { update( json ); return; } // On error response. joms.util.popup.prepare(function( mfp ) { mfp.items[0] = { type: 'inline', src: buildErrorHtml( json ) }; mfp.updateItemHTML(); }); } }); } function update( json ) { $( '.joms-js--frequest-msg-' + id ).html( json.message ); $( '.joms-js--frequest-btn-' + id ).remove(); joms.fn.notification.updateCounter( 'frequest', id, -1 ); } function buildErrorHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { render( id ); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.follower || (joms.popup.follower = {}); joms.popup.follower.remove = factory( root, $ ); define('popups/follower.remove',[ 'utils/popup' ], function() { return joms.popup.follower.remove; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'followers,ajaxConfirmUnfollow', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { func = 'followers,ajaxUnfollowSave'; joms.ajax({ func: func, data: [ id ], callback: function( json ) { var step1 = elem.find('[data-ui-object=popup-step-1]'), step2 = elem.find('[data-ui-object=popup-step-2]'); step2.find('[data-ui-object=popup-message]').html( json.error || json.message ); step1.hide(); step2.show(); if ( json && json.success ) { $( '#follower-' + id ).remove(); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.follower || (joms.popup.follower = {}); joms.popup.follower.response = factory( root ); define('popups/follower.response',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.follower.response; }); })( window, function() { var popup, elem, id, connection; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'followers,ajaxConnect', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); connection = json.connection_id; elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', reject ); elem.on( 'click', '.joms-js--button-save', approve ); } }); } function reject() { joms.ajax({ func: 'followers,ajaxRejectRequest', data: [ connection ], callback: function( json ) { update( json ); } }); } function approve() { joms.ajax({ func: 'followers,ajaxApproveRequest', data: [ connection ], callback: function( json ) { update( json ); } }); } function update( json ) { var step1 = elem.find('.joms-js--step1'), step2 = elem.find('.joms-js--step2'); if ( !json.error ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } step2.find('.joms-popup__content').html( json.error || json.message ); step1.hide(); step2.show(); } function buildHtml( json ) { var error = false; json || (json = {}); if ( json.error && !json.desc ) { error = json.error; } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', '<div class="joms-stream__header" style="padding:0">', '<div class="joms-avatar--stream"><img src="', json.avatar, '"></div>', '<div class="joms-stream__meta"><span>', json.desc, '</span></div>', '</div>', '</div>', '<div class="joms-popup__content">', '<div class="cStream-Quote">', json.message, '</div>', '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnReject, '</button>', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnAccept, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.follower = factory( root, joms.popup.follower || {}); define('popups/follower',[ 'popups/follower.add', 'popups/follower.addcancel', 'popups/follower.approve', 'popups/follower.reject', 'popups/follower.remove', 'popups/follower.response' ], function() { return joms.popup.follower; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.share = factory( root, $ ); define('popups/page.share',[ 'utils/popup' ], function() { return joms.popup.page.share; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, url; function render( _popup, _url ) { var title, description, image; if ( elem ) elem.off(); popup = _popup; url = _url; $.ajax({ url: url, success: function( response ) { title = response.match(/<meta property="og:title" content="([^"]+)"/i) || false; title = title && title[1]; description = response.match(/<meta property="og:description" content="([^"]+)"/i) || false; description = description && description[1]; image = response.match(/<meta property="og:image" content="([^"]+)"/i) || false; image = image && image[1]; }, complete: function() { var params = [ url, title || '', description || '', image || '' ]; joms.ajax({ func: 'bookmarks,ajaxShowBookmarks', data: params, callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-bookmarks a', openPopup ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } }); } function openPopup( e ) { var $a, url, title; e.preventDefault(); e.stopPropagation(); $a = $( this ); url = $a.attr('href'); title = $a.text(); elem.off(); popup.close(); window.open( url, title, 'top=150, left=150, width=650, height=330, scrollbars=yes' ); } function cancel() { elem.off(); popup.close(); } function save() { var $form = elem.find('form'), email = $form.find('[name=bookmarks-email]').val(), message = $form.find('[name=bookmarks-message]').val(); joms.ajax({ func: 'bookmarks,ajaxEmailPage', data: [ url, email, message ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button>', ( json.viaEmail ? ' <button class="joms-button--primary joms-button--small joms-js--button-save">' + json.btnShare + '</button>' : '' ), '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( url ) { joms.util.popup.prepare(function( mfp ) { render( mfp, url ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.invite = factory( root, $ ); define('popups/page.invite',[ 'utils/popup' ], function() { return joms.popup.page.invite; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, tabAll, tabSelected, btnSelect, btnLoad, id, keyword, start, limit, xhr; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; limit = 200; joms.ajax({ func: 'system,ajaxShowInvitationForm', data: [ null, '', id, 1, 1 ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); // Override limit supplied in json. if ( json.limit ) { limit = +json.limit; } elem = popup.contentContainer; tabAll = elem.find('.joms-tab__content').eq(0); tabSelected = elem.find('.joms-tab__content').eq(1); btnSelect = elem.find('[data-btn-select]'); btnLoad = elem.find('[data-btn-load]'); elem.on( 'keyup', '[data-search]', search ); elem.on( 'click', '.joms-tab__bar a', changeTab ); elem.on( 'click', '[data-btn-select]', selectAll ); elem.on( 'click', '[data-btn-load]', load ); elem.on( 'click', '[data-btn-save]', save ); elem.on( 'click', 'input[type=checkbox]', toggle ); getFriendList(''); } }); } function search( e ) { var elem = $( e.currentTarget ); getFriendList( elem.val() ); } function save() { var friendsearch = '', checkboxes = tabSelected.find('input[type=checkbox]'), friends = [], emails = elem.find('input[name=emails]').val() || '', message = elem.find('[name=message]').val() || '', rTrim = /^\s+|\s+$/g, params; checkboxes.each(function() { friends.push( this.value ); }); emails = emails.replace( rTrim, '' ); message = message.replace( rTrim, '' ); params = [ [ 'friendsearch', friendsearch ], [ 'emails', emails ], [ 'message', message ], [ 'friends', friends.join(',') ], ]; joms.ajax({ func: 'system,ajaxSubmitInvitation', data: [ 'pages,inviteUsers', id, params ], callback: function() { elem.off(); popup.close(); } }); } function changeTab( e ) { var $el = $( e.target ), selected = $el.attr('href') === '#joms-popup-tab-selected', lang = window.joms_lang[ selected ? 'COM_COMMUNITY_UNSELECT_ALL' : 'COM_COMMUNITY_SELECT_ALL' ]; btnSelect.html( lang ); } function selectAll() { var ct = $('.joms-tab__content:visible'), clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { ct.find('.joms-js--friend').remove(); elem.find('input[type=checkbox]').each(function() { this.checked = false; }); return; } // Add selected. clone = ct.find('.joms-js--friend').clone(); clone.find('input[type=checkbox]').add( ct.find('input[type=checkbox]') ).prop( 'checked', 'checked' ); ct = elem.find('#joms-popup-tab-selected'); ct.html( clone ); } function load() { getFriendList(); } function toggle( e ) { var checkbox = $( e.target ), ct = checkbox.closest('.joms-tab__content'), id, clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { id = checkbox[0].value; checkbox.closest('.joms-js--friend').remove(); elem.find('.joms-js--friend-' + id + ' input[type=checkbox]')[0].checked = false; return; } // Remove selected. if ( !checkbox[0].checked ) { id = checkbox[0].value; elem.find('#joms-popup-tab-selected .joms-js--friend-' + id).remove(); return; } // Add selected. ct = elem.find('#joms-popup-tab-selected'); clone = checkbox.closest('.joms-js--friend').clone(); checkbox = clone.find('input[type=checkbox]'); checkbox[0].checked = true; ct.append( clone ); } function getFriendList( _keyword ) { var isReset = typeof _keyword === 'string'; if ( isReset ) { tabAll.empty(); start = 0; keyword = _keyword; } else { start += limit; } xhr && xhr.abort(); xhr = joms.ajax({ func: 'system,ajaxLoadFriendsList', data: [ keyword, 'pages,inviteUsers', id, start, limit ], callback: function( json ) { var html; if ( json.html ) { html = $( $.trim( json.html ) ); html.each(function() { var checkbox = $( this ).find(':checkbox'), value = checkbox.val(); if ( tabSelected.find(':checkbox[value=' + value + ']').length ) { checkbox[0].checked = true; } }); tabAll.append( html ); } if ( !isReset ) { tabAll[0].scrollTop = tabAll[0].scrollHeight; } // Toggle load more. if ( json.loadMore ) { btnSelect.css({ width: '49%', marginRight: '2%' }); btnLoad.css({ width: '49%' }).html( window.joms_lang.COM_COMMUNITY_INVITE_LOAD_MORE + ' (' + json.moreCount + ')' ).show(); } else { btnLoad.hide(); btnSelect.css({ width: '100%', marginRight: '0' }); } } }); } function buildHtml( json ) { return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--primary" data-btn-save="1">', json.btnInvite, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.delete = factory( root ); define('popups/page.delete',[ 'utils/popup' ], function() { return joms.popup.page.delete; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'pages,ajaxWarnPageDeletion', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save( e, step ) { joms.ajax({ func: 'pages,ajaxDeletePage', data: [ id, step || 1 ], callback: function( json ) { var $ct; elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().first() .append( '<div>' + (json.error || json.message) + '</div>' ); if ( json.next ) { save( null, json.next ); } else if ( json.redirect ) { $ct = elem.find('.joms-js--step2'); $ct.find('.joms-js--button-done') .html( json.btnDone ) .on( 'click', function() { window.location = json.redirect; }); $ct.find('.joms-popup__action').show(); $ct.find('.joms-popup__content').removeClass('joms-popup__content--single'); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnDelete, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '<div class="joms-popup__action joms-popup__hide">', '<button class="joms-button--primary joms-js--button-done"></button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.unpublish = factory( root ); define('popups/page.unpublish',[ 'utils/popup' ], function() { return joms.popup.page.unpublish; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'pages,ajaxShowUnpublishPage', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.addFeatured = factory( root, $ ); define('popups/page.addfeatured',[ 'utils/popup' ], function() { return joms.popup.page.addFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'pages,ajaxAddFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.removeFeatured = factory( root, $ ); define('popups/page.removefeatured',[ 'utils/popup' ], function() { return joms.popup.page.removeFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'pages,ajaxRemoveFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.banMember = factory( root, $ ); define('popups/page.banmember',[ 'utils/popup' ], function() { return joms.popup.page.banMember; }); })( window, joms.jQuery, function( window ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'pages,ajaxBanMember', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.message || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userid ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.unbanMember = factory( root, $ ); define('popups/page.unbanmember',[ 'utils/popup' ], function() { return joms.popup.page.unbanMember; }); })( window, joms.jQuery, function( window ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'pages,ajaxUnbanMember', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.message || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userid ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.removeMember = factory( root, $ ); define('popups/page.removemember',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.page.removeMember; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'pages,ajaxConfirmMemberRemoval', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var checkbox = elem.find('input:checkbox'), func = checkbox[0].checked ? 'pages,ajaxBanMember' : 'pages,ajaxRemoveMember', data = [ userid, id ]; joms.ajax({ func: func, data: data, callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().append( json.error || json.message ); if ( json.success ) { $( '.joms-js--member-page-' + id + '-' + userid ).remove(); $( '.joms-js--request-buttons-page-' + id + '-' + userid ).remove(); $( '.joms-js--request-notice-page-' + id + '-' + userid ).html( json && json.message || '' ); joms.fn.notification.updateCounter( 'general', id, -1 ); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userId ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userId ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.page || (joms.popup.page = {}); joms.popup.page.report = factory( root ); define('popups/page.report',[ 'utils/popup' ], function() { return joms.popup.page.report; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'system,ajaxReport', data: [], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'change', 'select', changeText ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function changeText( e ) { elem.find('textarea').val( e.target.value ); } function cancel() { elem.off(); popup.close(); } function save() { var rTrim = /^\s+|\s+$/g, message; message = elem.find('textarea').val(); message = message.replace( rTrim, '' ); if ( !message ) { elem.find('.joms-js--error').show(); return; } elem.find('.joms-js--error').hide(); joms.ajax({ func: 'system,ajaxSendReport', data: [ 'pages,reportPage', window.location.href, message, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', json.html, '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.page = factory( root, joms.popup.page || {}); define('popups/page',[ 'popups/page.share', 'popups/page.invite', 'popups/page.delete', 'popups/page.unpublish', 'popups/page.addfeatured', 'popups/page.removefeatured', 'popups/page.banmember', 'popups/page.unbanmember', 'popups/page.removemember', 'popups/page.report', ], function() { return joms.popup.page; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group['delete'] = factory( root ); define('popups/group.delete',[ 'utils/popup' ], function() { return joms.popup.group['delete']; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'groups,ajaxWarnGroupDeletion', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save( e, step ) { joms.ajax({ func: 'groups,ajaxDeleteGroup', data: [ id, step || 1 ], callback: function( json ) { var $ct; elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().first() .append( '<div>' + (json.error || json.message) + '</div>' ); if ( json.next ) { save( null, json.next ); } else if ( json.redirect ) { $ct = elem.find('.joms-js--step2'); $ct.find('.joms-js--button-done') .html( json.btnDone ) .on( 'click', function() { window.location = json.redirect; }); $ct.find('.joms-popup__action').show(); $ct.find('.joms-popup__content').removeClass('joms-popup__content--single'); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnDelete, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '<div class="joms-popup__action joms-popup__hide">', '<button class="joms-button--primary joms-js--button-done"></button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.invite = factory( root, $ ); define('popups/group.invite',[ 'utils/popup' ], function() { return joms.popup.group.invite; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, tabAll, tabSelected, btnSelect, btnLoad, id, keyword, start, limit, xhr; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; limit = 200; joms.ajax({ func: 'system,ajaxShowInvitationForm', data: [ null, '', id, 1, 1 ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); // Override limit supplied in json. if ( json.limit ) { limit = +json.limit; } elem = popup.contentContainer; tabAll = elem.find('.joms-tab__content').eq(0); tabSelected = elem.find('.joms-tab__content').eq(1); btnSelect = elem.find('[data-btn-select]'); btnLoad = elem.find('[data-btn-load]'); elem.on( 'keyup', '[data-search]', search ); elem.on( 'click', '.joms-tab__bar a', changeTab ); elem.on( 'click', '[data-btn-select]', selectAll ); elem.on( 'click', '[data-btn-load]', load ); elem.on( 'click', '[data-btn-save]', save ); elem.on( 'click', 'input[type=checkbox]', toggle ); getFriendList(''); } }); } function search( e ) { var elem = $( e.currentTarget ); getFriendList( elem.val() ); } function save() { var friendsearch = '', checkboxes = tabSelected.find('input[type=checkbox]'), friends = [], emails = elem.find('input[name=emails]').val() || '', message = elem.find('[name=message]').val() || '', rTrim = /^\s+|\s+$/g, params; checkboxes.each(function() { friends.push( this.value ); }); emails = emails.replace( rTrim, '' ); message = message.replace( rTrim, '' ); params = [ [ 'friendsearch', friendsearch ], [ 'emails', emails ], [ 'message', message ], [ 'friends', friends.join(',') ], ]; joms.ajax({ func: 'system,ajaxSubmitInvitation', data: [ 'groups,inviteUsers', id, params ], callback: function() { elem.off(); popup.close(); } }); } function changeTab( e ) { var $el = $( e.target ), selected = $el.attr('href') === '#joms-popup-tab-selected', lang = window.joms_lang[ selected ? 'COM_COMMUNITY_UNSELECT_ALL' : 'COM_COMMUNITY_SELECT_ALL' ]; btnSelect.html( lang ); } function selectAll() { var ct = $('.joms-tab__content:visible'), clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { ct.find('.joms-js--friend').remove(); elem.find('input[type=checkbox]').each(function() { this.checked = false; }); return; } // Add selected. clone = ct.find('.joms-js--friend').clone(); clone.find('input[type=checkbox]').add( ct.find('input[type=checkbox]') ).prop( 'checked', 'checked' ); ct = elem.find('#joms-popup-tab-selected'); ct.html( clone ); } function load() { getFriendList(); } function toggle( e ) { var checkbox = $( e.target ), ct = checkbox.closest('.joms-tab__content'), id, clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { id = checkbox[0].value; checkbox.closest('.joms-js--friend').remove(); elem.find('.joms-js--friend-' + id + ' input[type=checkbox]')[0].checked = false; return; } // Remove selected. if ( !checkbox[0].checked ) { id = checkbox[0].value; elem.find('#joms-popup-tab-selected .joms-js--friend-' + id).remove(); return; } // Add selected. ct = elem.find('#joms-popup-tab-selected'); clone = checkbox.closest('.joms-js--friend').clone(); checkbox = clone.find('input[type=checkbox]'); checkbox[0].checked = true; ct.append( clone ); } function getFriendList( _keyword ) { var isReset = typeof _keyword === 'string'; if ( isReset ) { tabAll.empty(); start = 0; keyword = _keyword; } else { start += limit; } xhr && xhr.abort(); xhr = joms.ajax({ func: 'system,ajaxLoadFriendsList', data: [ keyword, 'groups,inviteUsers', id, start, limit ], callback: function( json ) { var html; if ( json.html ) { html = $( $.trim( json.html ) ); html.each(function() { var checkbox = $( this ).find(':checkbox'), value = checkbox.val(); if ( tabSelected.find(':checkbox[value=' + value + ']').length ) { checkbox[0].checked = true; } }); tabAll.append( html ); } if ( !isReset ) { tabAll[0].scrollTop = tabAll[0].scrollHeight; } // Toggle load more. if ( json.loadMore ) { btnSelect.css({ width: '49%', marginRight: '2%' }); btnLoad.css({ width: '49%' }).html( window.joms_lang.COM_COMMUNITY_INVITE_LOAD_MORE + ' (' + json.moreCount + ')' ).show(); } else { btnLoad.hide(); btnSelect.css({ width: '100%', marginRight: '0' }); } } }); } function buildHtml( json ) { return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--primary" data-btn-save="1">', json.btnInvite, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.join = factory( root, $ ); define('popups/group.join',[ 'utils/popup' ], function() { return joms.popup.group.join; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'groups,ajaxJoinGroup', data: [ id ], callback: function() { window.location.reload(); } }); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.leave = factory( root, $ ); define('popups/group.leave',[ 'utils/popup' ], function() { return joms.popup.group.leave; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'groups,ajaxShowLeaveGroup', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.addFeatured = factory( root, $ ); define('popups/group.addfeatured',[ 'utils/popup' ], function() { return joms.popup.group.addFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'groups,ajaxAddFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.removeFeatured = factory( root, $ ); define('popups/group.removefeatured',[ 'utils/popup' ], function() { return joms.popup.group.removeFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'groups,ajaxRemoveFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.report = factory( root ); define('popups/group.report',[ 'utils/popup' ], function() { return joms.popup.group.report; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'system,ajaxReport', data: [], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'change', 'select', changeText ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function changeText( e ) { elem.find('textarea').val( e.target.value ); } function cancel() { elem.off(); popup.close(); } function save() { var rTrim = /^\s+|\s+$/g, message; message = elem.find('textarea').val(); message = message.replace( rTrim, '' ); if ( !message ) { elem.find('.joms-js--error').show(); return; } elem.find('.joms-js--error').hide(); joms.ajax({ func: 'system,ajaxSendReport', data: [ 'groups,reportGroup', window.location.href, message, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', json.html, '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.unpublish = factory( root ); define('popups/group.unpublish',[ 'utils/popup' ], function() { return joms.popup.group.unpublish; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'groups,ajaxShowUnpublishGroup', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form')[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.approve = factory( root, $ ); define('popups/group.approve',[ 'functions/notification' ], function() { return joms.popup.group.approve; }); })( window, joms.jQuery, function( window, $ ) { var id, userid; function render( _id, _userid ) { id = _id; userid = _userid; joms.ajax({ func: 'groups,ajaxApproveMember', data: [ userid, id ], callback: function( json ) { if ( json ) { $( '.joms-js--request-buttons-group-' + id + '-' + userid ).remove(); $( '.joms-js--request-notice-group-' + id + '-' + userid ).html( json.message || json.error ); json.success && joms.fn.notification.updateCounter( 'general', id, -1 ); } } }); } // Exports. return function( id, userId ) { render( id, userId ); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.removeMember = factory( root, $ ); define('popups/group.removemember',[ 'utils/popup', 'functions/notification' ], function() { return joms.popup.group.removeMember; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'groups,ajaxConfirmMemberRemoval', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var checkbox = elem.find('input:checkbox'), func = checkbox[0].checked ? 'groups,ajaxBanMember' : 'groups,ajaxRemoveMember', data = [ userid, id ]; joms.ajax({ func: func, data: data, callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().append( json.error || json.message ); if ( json.success ) { $( '.joms-js--member-group-' + id + '-' + userid ).remove(); $( '.joms-js--request-buttons-group-' + id + '-' + userid ).remove(); $( '.joms-js--request-notice-group-' + id + '-' + userid ).html( json && json.message || '' ); joms.fn.notification.updateCounter( 'general', id, -1 ); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userId ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userId ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.banMember = factory( root, $ ); define('popups/group.banmember',[ 'utils/popup' ], function() { return joms.popup.group.banMember; }); })( window, joms.jQuery, function( window ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'groups,ajaxBanMember', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.message || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userid ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.group || (joms.popup.group = {}); joms.popup.group.unbanMember = factory( root, $ ); define('popups/group.unbanmember',[ 'utils/popup' ], function() { return joms.popup.group.unbanMember; }); })( window, joms.jQuery, function( window ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'groups,ajaxUnbanMember', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.message || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id, userid ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, userid ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.group = factory( root, joms.popup.group || {}); define('popups/group',[ 'popups/group.delete', 'popups/group.invite', 'popups/group.join', 'popups/group.leave', 'popups/group.addfeatured', 'popups/group.removefeatured', 'popups/group.report', 'popups/group.unpublish', 'popups/group.approve', 'popups/group.removemember', 'popups/group.banmember', 'popups/group.unbanmember' ], function() { return joms.popup.group; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.inbox || (joms.popup.inbox = {}); joms.popup.inbox.addRecipient = factory( root, $ ); define('popups/inbox.addrecipient',[ 'utils/popup' ], function() { return joms.popup.inbox.addRecipient; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, tabAll, tabSelected, btnSelect, btnLoad, id, keyword, start, limit, xhr; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; limit = 200; joms.ajax({ func: 'system,ajaxShowFriendsForm', data: [ null, '', id, 1, 1 ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); // Override limit supplied in json. if ( json.limit ) { limit = +json.limit; } elem = popup.contentContainer; tabAll = elem.find('.joms-tab__content').eq(0); tabSelected = elem.find('.joms-tab__content').eq(1); btnSelect = elem.find('[data-btn-select]'); btnLoad = elem.find('[data-btn-load]'); elem.on( 'keyup', '[data-search]', search ); elem.on( 'click', '.joms-tab__bar a', changeTab ); elem.on( 'click', '[data-btn-select]', selectAll ); elem.on( 'click', '[data-btn-load]', load ); elem.on( 'click', '[data-btn-save]', select ); elem.on( 'click', 'input[type=checkbox]', toggle ); getFriendList(''); } }); } function search( e ) { var elem = $( e.currentTarget ); getFriendList( elem.val() ); } function select() { var to = $('#joms-js--compose-to'); tabSelected.find('.joms-js--friend').each(function() { var item = $( this ), chk = item.find(':checkbox'), id = chk.val(); if ( !to.find( '.joms-js--friend-' + id ).length ) { to.append( item.clone() ); } }); // Close popup. elem.off(); popup.close(); to.show(); } function changeTab( e ) { var $el = $( e.target ), selected = $el.attr('href') === '#joms-popup-tab-selected', lang = window.joms_lang[ selected ? 'COM_COMMUNITY_UNSELECT_ALL' : 'COM_COMMUNITY_SELECT_ALL' ]; btnSelect.html( lang ); } function selectAll() { var ct = $('.joms-tab__content:visible'), clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { ct.find('.joms-js--friend').remove(); elem.find('input[type=checkbox]').each(function() { this.checked = false; }); return; } // Add selected. clone = ct.find('.joms-js--friend').clone(); clone.find('input[type=checkbox]').add( ct.find('input[type=checkbox]') ).prop( 'checked', 'checked' ); ct = elem.find('#joms-popup-tab-selected'); ct.html( clone ); } function load() { getFriendList(); } function toggle( e ) { var checkbox = $( e.target ), ct = checkbox.closest('.joms-tab__content'), id, clone; // Remove selected. if ( ct.attr('id') === 'joms-popup-tab-selected' ) { id = checkbox[0].value; checkbox.closest('.joms-js--friend').remove(); elem.find('.joms-js--friend-' + id + ' input[type=checkbox]')[0].checked = false; return; } // Remove selected. if ( !checkbox[0].checked ) { id = checkbox[0].value; elem.find('#joms-popup-tab-selected .joms-js--friend-' + id).remove(); return; } // Add selected. ct = elem.find('#joms-popup-tab-selected'); clone = checkbox.closest('.joms-js--friend').clone(); checkbox = clone.find('input[type=checkbox]'); checkbox[0].checked = true; ct.append( clone ); } function getFriendList( _keyword ) { var isReset = typeof _keyword === 'string'; if ( isReset ) { tabAll.empty(); start = 0; keyword = _keyword; } else { start += limit; } xhr && xhr.abort(); xhr = joms.ajax({ func: 'system,ajaxLoadFriendsList', data: [ keyword, 'friends,inviteUsers', id, start, limit ], callback: function( json ) { var html; if ( json.html ) { html = $( $.trim( json.html ) ); html.each(function() { var checkbox = $( this ).find(':checkbox'), value = checkbox.val(); if ( tabSelected.find(':checkbox[value=' + value + ']').length ) { checkbox[0].checked = true; } }); tabAll.append( html ); } if ( !isReset ) { tabAll[0].scrollTop = tabAll[0].scrollHeight; } // Toggle load more. if ( json.loadMore ) { btnSelect.css({ width: '49%', marginRight: '2%' }); btnLoad.css({ width: '49%' }).html( window.joms_lang.COM_COMMUNITY_INVITE_LOAD_MORE + ' (' + json.moreCount + ')' ).show(); } else { btnLoad.hide(); btnSelect.css({ width: '100%', marginRight: '0' }); } } }); } function buildHtml( json ) { return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--primary" data-btn-save="1">', json.btnSelect, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function (root, $, factory) { joms.popup || (joms.popup = {}); joms.popup.chat || (joms.popup.chat = {}); joms.popup.chat.addRecipient = factory(root, $); define('popups/chat.addrecipient',['utils/popup'], function () { return joms.popup.chat.addRecipient; }); })(window, joms.jQuery, function (window, $) { var popup, elem, tabAll, tabSelected, btnSelect, btnLoad, id, keyword, start, limit, xhr, timeout; function render(_popup, _id) { if (elem) elem.off(); popup = _popup; id = _id; limit = 200; joms.ajax({ func: 'system,ajaxShowFriendsForm', data: [null, '', '', 1, 1], callback: function (json) { popup.items[0] = { type: 'inline', src: buildHtml(json) }; popup.updateItemHTML(); // Override limit supplied in json. if (json.limit) { limit = +json.limit; } elem = popup.contentContainer; tabAll = elem.find('.joms-tab__content').eq(0); tabSelected = elem.find('.joms-tab__content').eq(1); btnSelect = elem.find('[data-btn-select]'); btnLoad = elem.find('[data-btn-load]'); elem.on('input', '[data-search]', function(e) { search(e, _id)}); elem.on('click', '.joms-tab__bar a', changeTab); elem.on('click', '[data-btn-select]', selectAll); elem.on('click', '[data-btn-load]', function(e) { load(e, _id)}); elem.on('click', '[data-btn-save]', select); elem.on('click', 'input[type=checkbox]', toggle); getFriendList('', _id); } }); } function search(e, _id) { var elem = $(e.currentTarget); clearTimeout(timeout); timeout = setTimeout(function() { getFriendList(elem.val(), _id); }, 300); } function select() { var added_friends = {}; tabSelected.find('.joms-js--friend').each(function () { var item = $(this), chk = item.find(':checkbox'), id = chk.val(), friend = { id : +id, name: item.find('.joms-avatar--comment a img').attr('alt'), avatar: item.find('.joms-avatar--comment a img').attr('src') }; added_friends[id] = friend; }); joms_observer.do_action('chat_add_people', added_friends); // Close popup. elem.off(); popup.close(); } function changeTab(e) { var $el = $(e.target), selected = $el.attr('href') === '#joms-popup-tab-selected', lang = window.joms_lang[ selected ? 'COM_COMMUNITY_UNSELECT_ALL' : 'COM_COMMUNITY_SELECT_ALL' ]; btnSelect.html(lang); } function selectAll() { var ct = $('.joms-tab__content:visible'), clone; // Remove selected. if (ct.attr('id') === 'joms-popup-tab-selected') { ct.find('.joms-js--friend').remove(); elem.find('input[type=checkbox]').each(function () { this.checked = false; }); return; } // Add selected. clone = ct.find('.joms-js--friend').clone(); clone.find('input[type=checkbox]').add(ct.find('input[type=checkbox]')).prop('checked', 'checked'); ct = elem.find('#joms-popup-tab-selected'); ct.html(clone); } function load(e, _id) { getFriendList('', _id); } function toggle(e) { var checkbox = $(e.target), ct = checkbox.closest('.joms-tab__content'), id, clone; // Remove selected. if (ct.attr('id') === 'joms-popup-tab-selected') { id = checkbox[0].value; checkbox.closest('.joms-js--friend').remove(); elem.find('.joms-js--friend-' + id + ' input[type=checkbox]')[0].checked = false; return; } // Remove selected. if (!checkbox[0].checked) { id = checkbox[0].value; elem.find('#joms-popup-tab-selected .joms-js--friend-' + id).remove(); return; } // Add selected. ct = elem.find('#joms-popup-tab-selected'); clone = checkbox.closest('.joms-js--friend').clone(); checkbox = clone.find('input[type=checkbox]'); checkbox[0].checked = true; ct.append(clone); } function getFriendList(_keyword, _id) { var isReset = typeof _keyword === 'string'; var users = _id && typeof _id === 'string' ? _id.split(',') : []; if (isReset) { tabAll.empty(); start = 0; keyword = _keyword; } else { start += limit; } xhr && xhr.abort(); xhr = joms.ajax({ func: 'system,ajaxLoadFriendsList', data: [keyword, 'friends,inviteUsers', id, start, limit], callback: function (json) { var html; if (json.html) { html = $($.trim(json.html)); html.each(function () { var elm = $(this), checkbox = elm.find(':checkbox'), value = checkbox.val(); if (tabSelected.find(':checkbox[value=' + value + ']').length) { checkbox[0].checked = true; } }); tabAll.append(html); _.each(users, function(id) { var added = tabAll.find('.joms-js--friend-' + id); if (added.length) { added.find('.joms-stream__time label').text(joms_lang.COM_COMMUNITY_APPS_LIST_ADDED); } }); } if (!isReset) { tabAll[0].scrollTop = tabAll[0].scrollHeight; } // Toggle load more. if (json.loadMore) { btnSelect.css({width: '49%', marginRight: '2%'}); btnLoad.css({width: '49%'}).html(window.joms_lang.COM_COMMUNITY_INVITE_LOAD_MORE + ' (' + json.moreCount + ')').show(); } else { btnLoad.hide(); btnSelect.css({width: '100%', marginRight: '0'}); } } }); } function buildHtml(json) { return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', (json.error ? ' class="joms-popup__hide"' : ''), '>', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--primary" data-btn-save="1">', json.btnSelect, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', (json.error ? '' : ' class="joms-popup__hide"'), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function (id) { joms.util.popup.prepare(function (mfp) { render(mfp, id); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.inbox || (joms.popup.inbox = {}); joms.popup.inbox.remove = factory( root, $ ); define('popups/inbox.remove',[ 'utils/popup' ], function() { return joms.popup.inbox.remove; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, task, msgids; function render( _popup, _task, _msgids ) { var data; if ( elem ) elem.off(); popup = _popup; task = _task; msgids = _msgids; data = [ task ]; msgids.length || data.push('empty'); joms.ajax({ func: 'inbox,ajaxDeleteMessages', data: data, callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: task === 'inbox' ? 'inbox,ajaxRemoveFullMessages' : 'inbox,ajaxRemoveSentMessages', data: [ msgids.join(',') ], callback: function( json ) { var i; elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); if ( json.success ) { $('.joms-js--message-checkall')[0].checked = false; for ( i = 0; i < msgids.length; i++ ) { $( '.joms-js--message-item-' + msgids[i] ).remove(); } if ( !$('.joms-js--message-item').length ) { $('.joms-js--message-ct').remove(); } } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1 ', ( json.error ? 'joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2 ', ( json.error ? '' : 'joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( task, msgids ) { joms.util.popup.prepare(function( mfp ) { render( mfp, task, msgids ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.inbox || (joms.popup.inbox = {}); joms.popup.inbox.setRead = factory( root, $ ); define('popups/inbox.setread',[ 'utils/popup' ], function() { return joms.popup.inbox.setRead; }); })( window, joms.jQuery, function( window ) { function render( msgids, error ) { var i; if ( !msgids.length ) { joms.util.popup.prepare(function( mfp ) { mfp.items[0] = { type: 'inline', src: buildHtml({ error: error }) }; mfp.updateItemHTML(); }); return; } for ( i = 0; i < msgids.length; i++ ) { window.jax.call( 'community', 'inbox,ajaxMarkMessageAsRead', msgids[ i ] ); } } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-js--step1 ', ( json.error ? 'joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2 ', ( json.error ? '' : 'joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( msgids, error ) { render( msgids, error ); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.inbox || (joms.popup.inbox = {}); joms.popup.inbox.setUnread = factory( root, $ ); define('popups/inbox.setunread',[ 'utils/popup' ], function() { return joms.popup.inbox.setUnread; }); })( window, joms.jQuery, function( window ) { function render( msgids, error ) { var i; if ( !msgids.length ) { joms.util.popup.prepare(function( mfp ) { mfp.items[0] = { type: 'inline', src: buildHtml({ error: error }) }; mfp.updateItemHTML(); }); return; } for ( i = 0; i < msgids.length; i++ ) { window.jax.call( 'community', 'inbox,ajaxMarkMessageAsUnread', msgids[ i ] ); } } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', ( json.title || '' ), '</div>', '<div class="joms-js--step1 ', ( json.error ? 'joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2 ', ( json.error ? '' : 'joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( msgids, error ) { render( msgids, error ); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.inbox = factory( root, joms.popup.inbox || {}); define('popups/inbox',[ 'popups/inbox.addrecipient', 'popups/chat.addrecipient', 'popups/inbox.remove', 'popups/inbox.setread', 'popups/inbox.setunread' ], function() { return joms.popup.inbox; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.location || (joms.popup.location = {}); joms.popup.location.view = factory( root ); define('popups/location.view',[ 'utils/popup' ], function() { return joms.popup.location.view; }); })( window, function( root ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'activities,ajaxShowMap', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; } }); } function buildHtml(json){ if(root.joms_maps_api == "openstreetmap"){ return buildHtml_openstreetmap(json); }else{ return buildHtml_google(json); } } function buildHtml_openstreetmap( json ) { var latlng, location, src; json || (json = {}); joms.map.executeOpenStreetmap(function(){ setTimeout(function(){ var el = joms.jQuery("#joms-locaton-popup-openstreet"); el.css( 'height', 500 ); el.css( 'width', 500 ); var map = new L.Map(el[0],{attributionControl:false}); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { minZoom: 14, center: [51.505, -0.09], id: 'mapbox.streets' }).addTo(map); var marker = L.marker().addTo(map); var position = L.latLng(json.latitude, json.longitude); marker.setLatLng( position ); map.setView(position, 11, { animation: false }); },500); }); return [ '<div id="joms-locaton-popup" class="joms-popup">', '<div id="joms-locaton-popup-openstreet">', '</div>', '</div>' ].join(''); } function buildHtml_google( json ) { var latlng, location, src; json || (json = {}); latlng = json.latitude + ',' + json.longitude; location = json.location; src = 'https://maps.googleapis.com/maps/api/staticmap?center=' + latlng + '&markers=color:red%7Clabel:S%7C' + latlng + '&zoom=14&size=600x350&maptype=roadmap'; if ( root.joms_gmap_key ) { src += '&key=' + root.joms_gmap_key; } return [ '<div class="joms-popup joms-popup--location-view">', '<div', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<a href="//www.google.com/maps/@', latlng, ',19z" target="_blank">', '<img src="', src, '">', '</a>', '</div>', '<div', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single">', json.error, '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.location = factory( root, joms.popup.location || {}); define('popups/location',[ 'popups/location.view' ], function() { return joms.popup.location; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.notification || (joms.popup.notification = {}); joms.popup.notification.global = factory( root ); define('popups/notification.global',[ 'utils/popup' ], function() { return joms.popup.notification.global; }); })( window, function() { function render( popup ) { joms.ajax({ func: 'notification,ajaxGetNotification', data: [ '' ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title">', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single" style="max-height:400px;overflow:auto">', '<ul style="margin: 0; list-style: none;">', ( json.html || '' ), '</ul>', '</div>', '</div>' ].join(''); } // Exports. return function() { joms.util.popup.prepare(function( mfp ) { render( mfp); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.notification || (joms.popup.notification = {}); joms.popup.notification.friend = factory( root ); define('popups/notification.friend',[ 'utils/popup' ], function() { return joms.popup.notification.friend; }); })( window, function() { function render( popup ) { joms.ajax({ func: 'notification,ajaxGetRequest', data: [ '' ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title">', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single" style="max-height:400px;overflow:auto">', '<ul style="margin: 0; list-style: none;">', ( json.html || '' ), '</ul>', '</div>', '</div>' ].join(''); } // Exports. return function() { joms.util.popup.prepare(function( mfp ) { render( mfp); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.notification || (joms.popup.notification = {}); joms.popup.notification.chat = factory( root, $ ); define('popups/notification.chat',[ 'utils/popup' ], function() { return joms.popup.notification.chat; }); })( window, joms.jQuery, function( window, $ ) { function render( popup, elem ) { var $popover = $( elem ).next( '.joms-popover--toolbar-chat' ), json = {}; json.title = window.joms_lang && joms_lang.COM_COMMUNITY_MESSAGE || 'Message'; json.html = $popover.html(); popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title">', ( json.title || '' ), '</div>', '<div class="joms-popup__content joms-popup__content--single" style="max-height:400px;overflow:auto">', '<ul style="margin: 0; list-style: none;">', ( json.html || '' ), '</ul>', '</div>', '</div>' ].join(''); } // Exports. return function( elem ) { joms.util.popup.prepare(function( mfp ) { render( mfp, elem ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.notification = factory( root, joms.popup.notification || {}); define('popups/notification',[ 'popups/notification.global', 'popups/notification.friend', 'popups/notification.chat' ], function() { return joms.popup.notification; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.phototag = factory( root, $ ); })( window, joms.jQuery, function( window, $, undef ) { var wrapper, elem, img, friends, callback, tagAdded, isPopup, noResult; function populate( el, tags ) { var cssTags = '.joms-phototag__tags', cssTag = '.joms-phototag__tag', $tags, $tag, tag, pos, top, left, width, tagTop, tagLeft, tagWidth, tagHeight, height, i; $( cssTags ).remove(); if ( tags && tags.length ) { // Image measurements. img = $( el ); pos = img.position(); top = pos.top; left = pos.left; width = img.width(); height = img.height(); // Tags container. $tags = $( '<div class=' + cssTags.substr(1) + '></div>' ); $tags.css({ top: 0, left: 0, right: 0, bottom: 0, margin: 'auto', width: width, height: height }); $tags.insertAfter( img ); for ( i = 0; i < tags.length; i++ ) { tag = tags[ i ]; tagTop = Math.round( height * tag.top ); tagLeft = Math.round( width * tag.left ); tagWidth = Math.round( width * tag.width ); tagHeight = Math.round( height * tag.height ); // Force square. tagHeight = tagWidth = Math.max( 10, Math.min( tagWidth, tagHeight ) ); $tag = $( '<div class=' + cssTag.substr(1) + '><span>' + tag.displayName + '</span></div>' ); $tag.css({ top : tagTop + 'px', left : tagLeft + 'px', width : tagWidth + 'px', height : tagHeight + 'px' }); $tag.appendTo( $tags ); } } } function create( e, tags, type, groupid, eventid ) { var imgOffset, parOffset, pos, top, left, width, height; destroy(); // Hide tagging info. $( '.joms-phototag__tags' ).hide(); wrapper = $( buildHtml() ); elem = wrapper.find('.joms-phototag'); img = $( e.target ); friends = undef; callback = {}; width = img.width(); height = img.height(); imgOffset = img.offset(); parOffset = img.parent().offset(); top = imgOffset.top - parOffset.top; left = imgOffset.left - parOffset.left; tagAdded = tags || []; isPopup = type !== 'page' ? true : false; elem.css({ top: 0, left: 0 }); wrapper.css({ top: top, left: left, width: width, height: height }); wrapper.insertAfter( img ); pos = calcClickPosition( e ); elem.css({ top: pos.top, left: pos.left }); elem.on( 'keyup', 'input', filter ); elem.on( 'click', 'a[data-id]', select ); elem.on( 'click', 'button', destroy ); elem.on( 'click', function( e ) { e.stopPropagation(); }); wrapper.on( 'click', moveBoxPosition ); if ( +groupid ) { joms.fn.tagging.fetchGroupMembers( groupid, function( members ) { friends = members; filter(); }); } else if ( +eventid ) { joms.fn.tagging.fetchEventMembers( eventid, function( members ) { friends = members; filter(); }); } else { filter(); } // Apparently Android (Chrome?) trigger "onresize" event when keypad being shown, // which make phototag immediately closed. Add resize handler only on desktop browser. if ( !joms.mobile ) { $( window ).on( 'resize.phototag', destroy ); } } function filter( e ) { var input, keyword, filtered, ac; if ( !friends ) { friends = window.joms_friends || []; } input = $( e ? e.currentTarget : elem.find('input') ); keyword = input.val().replace( /^\s+|\s+$/g, '' ).toLowerCase(); filtered = friends; filtered = joms._.filter( friends, function( obj ) { if ( !obj ) return false; if ( !obj.name ) return false; if ( tagAdded && tagAdded.indexOf( obj.id + '' ) >= 0 ) return false; if ( keyword && obj.name.toLowerCase().indexOf( keyword ) < 0 ) return false; return true; }); filtered = filtered.slice(0, 8); filtered = joms._.map( filtered, function( obj ) { return '<a href="javascript:" data-id="' + obj.id + '">' + obj.name + '</a>'; }); if ( !filtered.length ) { filtered = [ '<span><em>' + window.joms_lang.COM_COMMUNITY_NO_RESULT_FOUND + '</em></span>' ]; noResult = true; } else { noResult = false; } ac = elem.find('.joms-phototag__autocomplete'); ac.html( filtered.join('') ); ac.append( '<div><button class="joms-button--neutral joms-button--small joms-button--full">' + window.joms_lang.COM_COMMUNITY_PHOTO_DONE_TAGGING + '</button></div>' ); ac.show(); } function select( e ) { var ac = elem.find('.joms-phototag__autocomplete'), el = $( e.currentTarget ), id = el.data('id') || '', pos; e.stopPropagation(); ac.hide(); if ( callback && callback.tagAdded ) { tagAdded || (tagAdded = []); tagAdded.push( id + '' ); pos = calcBoxPosition(); callback.tagAdded( id, pos.left, pos.top, pos.width, pos.height ); filter(); } } function destroy() { // Show tagging info. $( '.joms-phototag__tags' ).show(); if ( elem ) { elem.remove(); wrapper.remove(); $( window ).off('resize.phototag'); elem = undef; img = undef; if ( callback && callback.destroy ) { callback.destroy(); } callback = undef; } } function on( eventType, fn ) { callback[ eventType ] = fn; } function off( eventType ) { if ( !eventType ) { callback = {}; } else if ( callback[ eventType ] ) { callback[ eventType ] = undef; } } function calcClickPosition( e ) { var height = img.height(), width = img.width(), offset, left, top; // Calculate offset position. if ( isPopup ) { top = e.clientY - 45 - e.target.offsetTop - 43; left = e.clientX - 45 - e.target.offsetLeft - 43; } else { offset = img.offset(); top = e.pageY - offset.top - 43; left = e.pageX - offset.left - 43; } // Respect wrapper boundaries. top = Math.max( 0, Math.min( top, height - 86 ) ); left = Math.max( 0, Math.min( left, width - 86 ) ); return { top: top, left: left }; } function calcBoxPosition() { var pos, ctWidth, ctHeight, boxWidth, boxHeight, boxLeft, boxTop; ctWidth = wrapper.width(); ctHeight = wrapper.height(); pos = elem.position(); boxWidth = elem.width(); boxHeight = elem.height(); boxLeft = pos.left; boxTop = pos.top; // Percentage (relative to wrapper height). boxWidth = boxWidth / ctWidth; boxHeight = boxHeight / ctHeight; // Percentage (relative to wrapper dimension). boxLeft = boxLeft / ctWidth; boxTop = boxTop / ctHeight; return { top : boxTop, left : boxLeft, width : boxWidth, height : boxHeight }; } function moveBoxPosition( e ) { var pos; if ( noResult ) { destroy(); return; } pos = calcClickPosition( e ); elem.css({ top: pos.top, left: pos.left }); } function buildHtml() { return [ '<div class=joms-phototag__wrapper>', '<div class=joms-phototag>', '<div class=joms-phototag__input>', '<input type=text placeholder="', window.joms_lang.COM_COMMUNITY_SEARCH,'">', '<div class="joms-phototag__autocomplete"></div>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return { populate: populate, create: create, destroy: destroy, on: on, off: off }; }); define("utils/phototag", function(){}); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.open = factory( root, $ ); define('popups/photo.open',[ 'utils/popup', 'utils/phototag' ], function() { return joms.popup.photo.open; }); })( window, joms.jQuery, function( window, $ ) { var iconCog = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-cog"></use></svg>', iconBubble = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-bubble"></use></svg>', iconThumbsUp = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-thumbs-up"></use></svg>', iconTag = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-tag"></use></svg>', iconNewspaper = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-newspaper"></use></svg>', popup, elem, img, spinner, caption, tagBtn, tags, tagLabel, tagRemoveLabel, album, id, list, index, lang, canEdit, canDelete, canTag, canMovePhoto, canRotate, albumName, albumUrl, photoUrl, userId, groupId, eventId, isRegistered, isOwner, isAdmin, enableDownload, enableReporting, enableSharing, enableLike, enableReaction; enableReaction = isEnableReaction(); function render( _popup, _album, _id ) { if ( elem ) elem.off(); popup = _popup; album = _album; id = _id; joms.ajax({ func: 'photos,ajaxGetPhotosByAlbum', data: [ album, id ], callback: function( json ) { json || (json = {}); lang = json.lang || {}; canEdit = json.can_edit || false; canDelete = json.can_delete || false; canTag = json.can_tag || false; canMovePhoto = json.can_move_photo || false; canRotate = json.can_rotate || false; albumName = json.album_name || 'Untitled'; albumUrl = json.album_url; photoUrl = json.photo_url; // Priviliges. isRegistered = userId = +json.my_id; groupId = +json.groupid; eventId = +json.eventid; isOwner = isRegistered && ( +json.my_id === +json.owner_id ); isAdmin = +json.is_admin; // Settings. enableDownload = +json.deleteoriginalphotos ? false : true; enableReporting = +json.enablereporting; enableSharing = +json.enablesharing; enableLike = +json.enablelike; if ( albumUrl ) { albumName = '<a href="' + albumUrl + '">' + albumName + '</a>'; } popup.items[0] = { type: 'inline', src: json.error ? buildErrorHtml( json ) : buildHtml( json ) }; popup.updateItemHTML(); // Override popup#close function. popup.close = closeOverride; elem = popup.contentContainer; // Break on error. if ( json.error ) { return; } img = elem.find('img'); spinner = elem.find('.joms-spinner'); caption = elem.find('.joms-popup__optcaption'); tagBtn = elem.find('.joms-popup__btn-tag-photo'); elem.on( 'click', '.mfp-arrow-left', prev ); elem.on( 'click', '.mfp-arrow-right', next ); elem.on( 'click', '.joms-popup__btn-tag-photo', tagPrepare ); elem.on( 'click', '.joms-popup__btn-comments', toggleComments ); elem.on( 'click', '.joms-popup__btn-comments .joms-icon', toggleComments ); elem.on( 'click', '.joms-popup__btn-option', toggleDropdown ); elem.on( 'click', '.joms-popup__btn-share', share ); elem.on( 'click', '.joms-popup__btn-download', download ); elem.on( 'click', '.joms-popup__btn-report', report ); elem.on( 'click', '.joms-popup__btn-upload', upload ); elem.on( 'click', '.joms-popup__btn-cover', setAsCover ); elem.on( 'click', '.joms-popup__btn-profile', setAsProfilePicture ); elem.on( 'click', '.joms-popup__btn-delete', _delete ); elem.on( 'click', '.joms-popup__btn-move', moveToAnotherAlbum ); elem.on( 'click', '.joms-popup__btn-like', like ); elem.on( 'click', '.joms-popup__btn-dislike', dislike ); elem.on( 'click', '.joms-popup__btn-rotate-left', rotateLeft ); elem.on( 'click', '.joms-popup__btn-rotate-right', rotateRight ); elem.on( 'mouseleave', '.joms-popup__dropdown--wrapper', hideDropdown ); elem.on( 'click', '.joms-js--remove-tag', tagRemove ); elem.on( 'click', '.joms-js--btn-desc-edit', editDescription ); elem.on( 'click', '.joms-js--btn-desc-cancel', cancelDescription ); elem.on( 'click', '.joms-js--btn-desc-save', saveDescription ); // Hook arrow keys. $( document ).off('keyup.photomodal').on( 'keyup.photomodal', function( e ) { var tagName = e.target.tagName.toLowerCase(), key = e.keyCode; // Prevent navigation when user typing. if ( tagName === 'input' || tagName === 'textarea' ) { return; } if ( key === 37 || key === 39 ) { if ( key === 37 && index > 0 ) { prev(); } else if ( key === 39 && index < list.length - 1 ) { next(); } } }); // Unhook arrow keys on close. popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { $( document ).off('keyup.photomodal'); }; // In case no ID is profided. if ( !id ) { id = json.list[ json.index ].id; } fetchComments( id ); toggleArrows(); preloadNeighbourImages(); } }); } // Image load timer. var loadImageTimer; var loadSpinnerTimer; // Image loader. function loadImage( img, url ) { clearTimeout( loadImageTimer ); clearTimeout( loadSpinnerTimer ); img.hide(); img.removeAttr('src'); loadSpinnerTimer = setTimeout(function() { spinner.show(); }, 100 ); loadImageTimer = setTimeout(function() { $('<img>').on('load', function() { clearTimeout( loadSpinnerTimer ); spinner.hide(); img.attr( 'src', url ); img.show(); }).attr( 'src', url ); }, 1 ); } function prev() { index--; (index < 0) && (index = list.length - 1); id = list[index].id; loadImage( img, list[index].url ); caption.html( albumName + ' <span class="joms-popup__optcapindex">' + ( index + 1 ) + ' ' + window.joms_lang.COM_COMMUNITY_OF + ' ' + list.length + '</span>' ); tagCancel(); fetchComments( id ); toggleArrows(); preloadNeighbourImages(); } function next() { index++; (index >= list.length) && (index = 0); id = list[index].id; loadImage( img, list[index].url ); caption.html( albumName + ' <span class="joms-popup__optcapindex">' + ( index + 1 ) + ' ' + window.joms_lang.COM_COMMUNITY_OF + ' ' + list.length + '</span>' ); tagCancel(); fetchComments( id ); toggleArrows(); preloadNeighbourImages(); } function toggleArrows() { var noprev = index <= 0, nonext = index >= list.length - 1; elem.find('.mfp-arrow-left')[ noprev ? 'hide' : 'show' ](); elem.find('.mfp-arrow-right')[ nonext ? 'hide' : 'show' ](); } function preloadNeighbourImages() { var noprev = index <= 0, nonext = index >= list.length - 1, img; if ( !noprev ) { img = new Image(); img.src = list[ index - 1 ].url; } if ( !nonext ) { img = new Image(); img.src = list[ index + 1 ].url; } } function tagPrepare() { if ( tagBtn.data('tagging') ) { tagCancel(); return; } tagBtn.data( 'tagging', 1 ); elem.find( '.joms-phototag__tags' ).hide(); elem.children('.joms-popup--photo').addClass('joms-popup--phototag'); img.off('click.phototag').on( 'click.phototag', tagStart ); img.addClass('joms-phototag__image'); elem.find('.joms-popup__btn-tag-photo').html( iconTag + ' ' + lang.done_tagging ); } function tagStart( e ) { var indices = joms._.map( tags, function( item ) { return item.userId + ''; }); joms.util.phototag.create( e, indices, false, groupId, eventId ); joms.util.phototag.on( 'tagAdded', tagAdded ); joms.util.phototag.on( 'destroy', function() { tagBtn.removeData('tagging'); elem.children('.joms-popup--photo').removeClass('joms-popup--phototag'); img.off('click.phototag'); img.removeClass('joms-phototag__image'); elem.find('.joms-popup__btn-tag-photo').html( iconTag + ' <span class="joms-popup__btn-overlay">' + lang.tag_photo + '</span>' ); }); elem.children('.joms-popup--photo').removeClass('joms-popup--phototag'); img.off('click.phototag'); } function tagAdded( userId, y, x, w, h ) { joms.ajax({ func: 'photos,ajaxAddPhotoTag', data: [ id, userId, x, y, w, h ], callback: function( json ) { var $comments, $tags; if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( json.success ) { tags.push( json.data ); // Render tag info. $comments = elem.find('.joms-popup__comment'); $tags = $comments.find('.joms-js--tag-info'); $tags.html( _tagBuildHtml() ); } } }); } function tagCancel() { joms.util.phototag.destroy(); } function tagRemove( e ) { var el = $( e.currentTarget ), userId = el.data('id'); joms.ajax({ func: 'photos,ajaxRemovePhotoTag', data: [ id, userId ], callback: function( json ) { var $comments, $tags, i; if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( json.success ) { for ( i = 0; i < tags.length; i++ ) { if ( +userId === +tags[i].userId ) { tags.splice( i--, 1 ); } } // Render tag info. $comments = elem.find('.joms-popup__comment'); $tags = $comments.find('.joms-js--tag-info'); $tags.html( _tagBuildHtml() ); } } }); } function _tagBuildHtml() { var html, item, str, i; if ( !tags || !tags.length ) { tags = []; } joms.util.phototag.populate( img, tags, 'page' ); if ( !tags.length ) { return ''; } html = []; for ( i = 0; i < tags.length; i++ ) { item = tags[i]; str = '<a href="' + item.profileUrl + '">' + item.displayName + '</a>'; if ( item.canRemove ) { str += ' (<a href="javascript:" class="joms-js--remove-tag" data-id="' + item.userId + '">' + tagRemoveLabel + '</a>)'; } html.push( str ); } html = html.join(', '); html = tagLabel + '<br>' + html; return html; } function toggleComments( e ) { e.stopPropagation(); elem.children('.joms-popup').toggleClass('joms-popup--togglecomment'); } function closeOverride() { var $ct = elem.children('.joms-popup'), className = 'joms-popup--togglecomment'; if ( $ct.hasClass( className ) ) { $ct.removeClass( className ); return; } $.magnificPopup.proto.close.call( this ); } function toggleDropdown( e ) { var wrapper = $( e.target ).closest('.joms-popup__dropdown--wrapper'), dropdown = wrapper.children('.joms-popup__dropdown'); dropdown.toggleClass('joms-popup__dropdown--open'); } function hideDropdown( e ) { var wrapper = $( e.target ).closest('.joms-popup__dropdown--wrapper'), dropdown = wrapper.children('.joms-popup__dropdown'); dropdown.removeClass('joms-popup__dropdown--open'); } function updateDropdownHtml( json ) { var html = '', like = '', count, isPhotoOwner; json || (json = {}); isPhotoOwner = json.is_photo_owner; // Dropdown. if ( enableSharing ) { html += '<a href="javascript:" class="joms-popup__btn-share">' + lang.share + '</a>'; } if ( enableDownload ) { html += '<a href="javascript:" class="joms-popup__btn-download">' + lang.download + '</a>'; } if ( isOwner || isAdmin || isPhotoOwner ) { html += ( enableSharing || enableDownload ? '<div class="sep"></div>' : '' ); html += ( isOwner ? '<a href="javascript:" class="joms-popup__btn-upload">' + lang.upload_photos + '</a>' : '' ); html += ( isOwner ? '<div class="sep"></div>' : '' ); html += ( isOwner ? '<a href="javascript:" class="joms-popup__btn-profile">' + lang.set_as_profile_picture + '</a>' : '' ); html += ( isOwner || isAdmin ? '<a href="javascript:" class="joms-popup__btn-cover">' + lang.set_as_album_cover + '</a>' : '' ); html += ( canDelete ? '<a href="javascript:" class="joms-popup__btn-delete">' + lang.delete_photo + '</a>' : '' ); html += ( canMovePhoto || isPhotoOwner ? '<a href="javascript:" class="joms-popup__btn-move">' + lang.move_to_another_album + '</a>' : '' ); html += ( canRotate ? '<div class="sep joms-popup__btn-rotate-toggle"></div>' : '' ); html += ( canRotate ? '<a href="javascript:" class="joms-popup__btn-rotate-left joms-popup__btn-rotate-toggle">' + lang.rotate_left + '</a>' : '' ); html += ( canRotate ? '<a href="javascript:" class="joms-popup__btn-rotate-right joms-popup__btn-rotate-toggle">' + lang.rotate_right + '</a>' : '' ); } else { html += ( canDelete ? '<a href="javascript:" class="joms-popup__btn-delete">' + lang.delete_photo + '</a>' : '' ); html += ( enableReporting ? '<a href="javascript:" class="joms-popup__btn-report">' + lang.report + '</a>' : '' ); } html = '<div class="joms-popup__dropdown"><div class="joms-popup__ddcontent">' + html + '</div></div>'; // Like. if ( enableLike && json && json.like && !enableReaction ) { like += '<button class="joms-popup__btn-like joms-js--like-photo-' + id + ( json.like.is_liked ? ' liked' : '' ) + '"'; like += ' onclick="joms.api.page' + ( json.like.is_liked ? 'Unlike' : 'Like' ) + '(\'photo\', \'' + id + '\');"'; like += ' data-lang="' + ( json.like.lang || 'Like' ) + '"'; like += ' data-lang-like="' + ( json.like.lang_like || 'Like' ) + '"'; like += ' data-lang-liked="' + ( json.like.lang_liked || 'Liked' ) + '">'; like += iconThumbsUp + ' '; like += '<span>'; like += ( json.like.is_liked ? json.like.lang_liked : json.like.lang_like ); count = +json.like.count; if ( count > 0 ) { like += ' (' + count + ')'; } like += '</span></button>'; } elem.find('.joms-popup__dropdown').replaceWith( html ); elem.find('.joms-popup__btn-like').replaceWith( like ); } function toggleRotate( rotatable ) { var $elems = elem.find('.joms-popup__btn-rotate-toggle'); if ( typeof rotatable === 'boolean' ) { rotatable ? $elems.show() : $elems.hide(); } } function share() { joms.api.pageShare( photoUrl.replace( '___photo_id___', id ) ); } function download() { window.open( list[index].original ); } function report() { joms.api.photoReport( userId, photoUrl.replace( '___photo_id___', id ) ); } function upload() { joms.api.photoUpload( album ); } function setAsCover() { joms.ajax({ func: 'photos,ajaxConfirmDefaultPhoto', data: [ album, id ], callback: function( json ) { if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( window.confirm( stripTags( json.message ) ) ) { setAsCoverConfirm(); } } }); } function setAsCoverConfirm() { joms.ajax({ func: 'photos,ajaxSetDefaultPhoto', data: [ album, id ], callback: function( json ) { window.alert( stripTags( json.error || json.message ) ); } }); } function setAsProfilePicture() { joms.ajax({ func: 'photos,ajaxLinkToProfile', data: [ id ], callback: function( json ) { var form, prop; if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( window.confirm( stripTags( json.message ) ) ) { json.formParams || (json.formParams = {}); form = $('<form method=post action="' + json.formUrl + '" style="width:1px; height:1px; position:absolute"/>'); for ( prop in json.formParams ) { form.append('<input type=hidden name="' + prop + '" value="' + json.formParams[prop] + '"/>'); } form.appendTo( document.body ); form[0].submit(); } } }); } function _delete() { joms.ajax({ func: 'photos,ajaxConfirmRemovePhoto', data: [ id ], callback: function( json ) { if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( window.confirm( stripTags( json.message ) ) ) { _deleteConfirm(); } } }); } function _deleteConfirm() { joms.ajax({ func: 'photos,ajaxRemovePhoto', data: [ id ], callback: function( json ) { if ( json.error ) { window.alert( stripTags( json.error ) ); return; } elem.off(); popup.close(); window.location.reload(); } }); } function moveToAnotherAlbum() { joms.api.photoSetAlbum( id ); } function like() { } function dislike() { } function rotateLeft() { rotate('left'); } function rotateRight() { rotate('right'); } function rotate( direction ) { var id = list[index] && list[index].id; if ( !id ) return; joms.ajax({ func: 'photos,ajaxRotatePhoto', data: [ id, direction ], callback: function( json ) { joms._.extend(list[index], json || {}); img.attr( 'src', list[index].url ); } }); } function stripTags( html ) { html = html.replace( /<\/?[^>]+>/g, '' ); return html; } function buildHtml( json ) { var sliderHtml, commentHtml, caption = ''; json || (json = {}); sliderHtml = json.error || ''; commentHtml = json.error ? '' : (json.commentHtml || ''); if ( !json.error ) { list = json.list || []; index = json.index || 0; index = Math.min( list.length, index ); sliderHtml = '<img src="' + list[index].url + '" data-index="' + index + '"><div class="joms-spinner" style="display:none"></div>'; caption = albumName + ' <span class="joms-popup__optcapindex">' + ( index + 1 ) + ' ' + window.joms_lang.COM_COMMUNITY_OF + ' ' + list.length + '</span>'; } var reaction = enableReaction ? ' joms-reaction--on' : ''; return [ '<div class="joms-popup joms-popup--photo'+ reaction +'">', '<div class="joms-popup__commentwrapper">', '<div class="joms-popup__content">', (list && ( list.length > 1 ) ? '<button class="mfp-arrow mfp-arrow-left" type="button" title="' + lang.prev + '"></button>' : ''), (list && ( list.length > 1 ) ? '<button class="mfp-arrow mfp-arrow-right" type="button" title="' + lang.next + '"></button>' : ''), sliderHtml, '<div class="joms-popup__option clearfix">', '<div class="joms-popup__optcaption">', ( caption || 'Untitled' ), '</div>', '<div class="joms-popup__optoption">', '<button class="joms-popup__btn-viewalbum" onclick="window.location=\'', albumUrl, '\'">', iconNewspaper, ' <span class="joms-popup__btn-overlay">', lang.view_album, '</span></button>', '<button class="joms-popup__btn-comments">', iconBubble, ' <span class="joms-popup__btn-overlay">', lang.comments, '</span></button>', enableReaction ? '' : '<button class="joms-popup__btn-like"></button>', ( canTag ? '<button class="joms-popup__btn-tag-photo">' + iconTag + ' <span class="joms-popup__btn-overlay">' + lang.tag_photo + '</span></button>' : '' ), '<div class="joms-popup__dropdown--wrapper"><div class="joms-popup__dropdown"></div><button class="joms-popup__btn-option">', iconCog, ' <span class="joms-popup__btn-overlay">', lang.options, '</span></button></div>', '</div>', '</div>', '</div>', '<div class="joms-popup__comment">', commentHtml, '</div>', '<button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', '</div>', '</div>' ].join(''); } function buildErrorHtml( json ) { json || (json = {}); json.title || (json.title = ' '); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', json.error, '</div>', '</div>' ].join(''); } function fetchComments( id, showAllParams ) { var comments = elem.find('.joms-popup__comment'); if ( !showAllParams ) { comments.empty(); } joms.ajax({ func: 'photos,ajaxSwitchPhotoTrigger', data: [ id, showAllParams ? 1 : 0 ], callback: function( json ) { var $tags; if ( !showAllParams ) { if ( json.comments && json.showall ) { json.showall = '<div class="joms-comment__more joms-js--more-comments"><a href="javascript:">' + json.showall + '</a></div>'; json.comments = $( $.trim( json.comments ) ); json.comments.prepend( json.showall ); } } if ( showAllParams ) { comments.find('.joms-comment').replaceWith( json.comments ); } else { comments.html( json.head || '' ); comments.append( json.comments ); comments.append( json.form || '' ); // Cache tag info. tags = json.tagged || []; tagLabel = json.tagLabel || ''; tagRemoveLabel = json.tagRemoveLabel || ''; // Update some flags if present canEdit = typeof json.can_edit === 'undefined' ? canEdit : json.can_edit; canDelete = typeof json.can_delete === 'undefined' ? canDelete : json.can_delete; canTag = typeof json.can_tag === 'undefined' ? canTag : json.can_tag; canMovePhoto = typeof json.can_move_photo === 'undefined' ? canMovePhoto : json.can_move_photo; canRotate = typeof json.can_rotate === 'undefined' ? canRotate : json.can_rotate; // Render description. comments.find('.joms-js--description').html( renderDescription( json.description || {} ) ); // Update rotate buttons. toggleRotate( !!canRotate ); // Render tag info. $tags = comments.find('.joms-js--tag-info'); $tags.html( _tagBuildHtml() ); comments .find('.joms-js--comments,.joms-js--newcomment') .find('textarea.joms-textarea'); joms.fn.tagging.initInputbox(); } updateDropdownHtml( json ); initVideoPlayers(); joms.parseEmoji(); } }); } function initVideoPlayers() { var cssInitialized = '.joms-js--initialized', cssVideos = '.joms-js--video', videos = $('.joms-comment__body,.joms-js--inbox').find( cssVideos ).not( cssInitialized ); if ( !videos.length ) { return; } joms.loadCSS( joms.ASSETS_URL + 'vendors/mediaelement/mediaelementplayer.min.css' ); videos.on( 'click.joms-video', cssVideos + '-play', function() { var $el = $( this ).closest( cssVideos ); joms.util.video.play( $el, $el.data() ); }); if ( joms.ios ) { setTimeout(function() { videos.find( cssVideos + '-play' ).click(); }, 2000 ); } } function renderDescription( json ) { if ( typeof json !== 'object' ) { json = {}; } return [ '<div class="joms-js--btn-desc-content">', ( json.content || '' ), '</div>', '<div class="joms-js--btn-desc-editor joms-popup__hide">', '<textarea class="joms-textarea" style="margin:0" placeholder="', ( json.lang_placeholder || '' ), '">', br2nl( json.rawcontent || '' ), '</textarea>', '<div style="margin-top:5px;text-align:right">', '<button class="joms-button--neutral joms-button--small joms-js--btn-desc-cancel">', ( json.lang_cancel || 'Cancel' ), '</button> ', '<button class="joms-button--primary joms-button--small joms-js--btn-desc-save">', ( json.lang_save || 'Save' ), '</button>', '</div>', '</div>', '<div class="joms-js--btn-desc-edit"', ( canEdit ? '' : ' style="display:none"' ), '><a href="javascript:"', ' data-lang-add="', ( json.lang_add || 'Add description' ), '"', ' data-lang-edit="', ( json.lang_edit || 'Edit description' ), '">', ( json.rawcontent ? json.lang_edit : json.lang_add ), '</a>', '</div>' ].join(''); } function br2nl( text ) { text = text || ''; text = text.replace( /<br\s*\/?>/g, '\n' ); return text; } function editDescription() { elem.find('.joms-js--btn-desc-content').hide(); elem.find('.joms-js--btn-desc-edit').hide(); elem.find('.joms-js--btn-desc-editor').show(); } function cancelDescription() { elem.find('.joms-js--btn-desc-editor').hide(); elem.find('.joms-js--btn-desc-content').show(); elem.find('.joms-js--btn-desc-edit').show(); } function saveDescription() { var content = elem.find('.joms-js--btn-desc-content'), editor = elem.find('.joms-js--btn-desc-editor'), button = elem.find('.joms-js--btn-desc-edit'), textarea = editor.find('textarea'), value = $.trim( textarea.val() ); joms.ajax({ func: 'photos,ajaxSaveCaption', data: [ id, value ], callback: function( json ) { var a = button.find('a'); if ( json.error ) { window.alert( json.error ); return; } if ( json.success ) { editor.hide(); content.html( json.caption ).show(); a.html( a.data( 'lang-' + ( value ? 'edit' : 'add' ) ) ); button.show(); } } }); } function isEnableReaction() { return !!joms.getData('joms_reaction'); } // Exports. return joms._.debounce(function( album, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, album, id ); }); }, 200 ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.remove = factory( root, $ ); define('popups/photo.remove',[ 'utils/popup' ], function() { return joms.popup.photo.remove; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'photos,ajaxConfirmRemovePhoto', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'photos,ajaxRemovePhoto', data: [ id ], callback: function( json ) { var $photo; if ( json.error ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } else { $photo = $( '.joms-js--photo-' + id ); if ( $photo.length && $photo.siblings().length ) { $photo.remove(); cancel(); } else { window.location.reload(); } } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content joms-popup__content--single">', json.message, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.report = factory( root ); define('popups/photo.report',[ 'utils/popup' ], function() { return joms.popup.photo.report; }); })( window, function() { var popup, elem, id, url; function render( _popup, _id, _url ) { if ( elem ) elem.off(); popup = _popup; id = _id; url = _url; joms.ajax({ func: 'system,ajaxReport', data: [], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'change', 'select', changeText ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function changeText( e ) { elem.find('textarea').val( e.target.value ); } function cancel() { elem.off(); popup.close(); } function save() { var rTrim = /^\s+|\s+$/g, message; message = elem.find('textarea').val(); message = message.replace( rTrim, '' ); if ( !message ) { elem.find('.joms-js--error').show(); return; } elem.find('.joms-js--error').hide(); joms.ajax({ func: 'system,ajaxSendReport', data: [ 'photos,reportPhoto', url || window.location.href, message, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', json.html, '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, url ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, url ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.setAvatar = factory( root, $ ); define('popups/photo.setavatar',[ 'utils/popup' ], function() { return joms.popup.photo.setAvatar; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id, url, params; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'photos,ajaxLinkToProfile', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); url = json.formUrl || ''; params = json.formParams || {}; elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var form = $('<form method=post action="' + url + '" style="width:1px; height:1px; position:absolute"/>'), prop; for ( prop in params ) { form.append('<input type=hidden name="' + prop + '" value="' + params[prop] + '"/>'); } form.appendTo( document.body ); form[0].submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.message, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.setCover = factory( root, $ ); define('popups/photo.setcover',[ 'utils/popup' ], function() { return joms.popup.photo.setCover; }); })( window, joms.jQuery, function() { var popup, elem, album, id; function render( _popup, _album, _id ) { if ( elem ) elem.off(); popup = _popup; album = _album; id = _id; joms.ajax({ func: 'photos,ajaxConfirmDefaultPhoto', data: [ album, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'photos,ajaxSetDefaultPhoto', data: [ album, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.message, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( album, id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, album, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.upload = factory( root, $ ); define('popups/photo.upload',[ 'utils/loadlib', 'utils/popup' ], function() { return joms.popup.photo.upload; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, uploader, uploaderButton, uploaderPreview, albumid, contextid, context, lang, files, newalbumid; function render( _popup, _albumid, _contextid, _context ) { var data; if ( elem ) elem.off(); popup = _popup; albumid = _albumid || false; context = _context || false; contextid = _contextid || false; data = []; data.push( albumid || '' ); data.push( contextid || '' ); data.push( context || '' ); joms.ajax({ func: 'photos,ajaxUploadPhoto', data: data, callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); lang = json.lang || {}; elem = popup.contentContainer; uploaderPreview = elem.find('.joms-gallery'); files = []; elem.on( 'click', '.joms-tab__bar a', changeTab ); elem.on( 'click', '.joms-js--form-toggle', toggleForm ); elem.on( 'click', '.joms-js--btn-create', createAlbum ); elem.on( 'click', '.joms-js--btn-add', upload ); elem.on( 'click', '.joms-js--btn-view', viewAlbum ); // Init uploader upon render. uploadInit(); } }); } function changeTab( e ) { var $btncreate = elem.find('.joms-js--btn-create'), $btnadd = elem.find('.joms-js--btn-add'), $el = $( e.target ), href = $el.attr('href'); if ( newalbumid || href.match(/select-album/) ) { $btncreate.hide(); $btnadd.show(); } else { $btnadd.hide(); $btncreate.show(); } } function toggleForm( state ) { var $btn = elem.find('.joms-js--form-toggle'); if ( state !== 'show' && state !== 'hide' ) { state = $btn.data('hidden') ? 'show' : 'hide'; } if ( state === 'show' ) { $btn.removeData('hidden'); elem.find('.joms-js--thumbnails').hide(); elem.find('.joms-js--form-detail').css({ height: '' }); } else if ( state === 'hide' ) { $btn.data('hidden', 'hidden'); elem.find('.joms-js--form-detail').css({ height: 0 }); elem.find('.joms-js--thumbnails').show(); } } function createAlbum() { var album = $.trim( elem.find('[name=name]').val() ), location = $.trim( elem.find('[name=location]').val() ), description = $.trim( elem.find('[name=description]').val() ), permission = elem.find('[name=permissions]').val(), $albumerrormsg = elem.find('[name=name]').siblings('.joms-help').hide(), $loading = elem.find('.joms-js--btn-create img'); if ( !album.length ) { $albumerrormsg.show(); return; } if ( $loading.is(':visible') ) { return; } $loading.show(); joms.ajax({ func: 'photos,ajaxCreateAlbum', data: [ album, contextid || '', context || '', location || '', description || '', permission || '' ], callback: joms._.debounce(function( json ) { $loading.hide(); if ( json.error ) { window.alert( json.error ); return; } if ( json.albumid ) { albumid = newalbumid = json.albumid; elem.find('.joms-js--btn-create').hide(); elem.find('.joms-js--btn-add').show(); // Disable input elements on new album tab. elem.find('#joms-js__new-album').find('input.joms-input, textarea.joms-textarea, select.joms-select') .attr('disabled', 'disabled'); toggleForm('hide'); } }, 500 ) }); } function upload() { uploadInit(function() { uploaderButton.click(); }); } function uploadInit( callback ) { if ( typeof callback !== 'function' ) { callback = function() {}; } if ( uploader ) { callback(); return; } joms.util.loadLib( 'plupload', function () { var container, button; container = $('<div id="joms-js--photoupload-uploader" aria-hidden="true" style="width:1px; height:1px; overflow:hidden">').appendTo( document.body ); button = $('<button id="joms-js--photoupload-uploader-button">').appendTo( container ); uploader = new window.plupload.Uploader({ url: 'index.php?option=com_community&view=photos&task=multiUpload', filters: [{ title: 'Image files', extensions: 'jpg,jpeg,png,gif' }], container: 'joms-js--photoupload-uploader', browse_button: 'joms-js--photoupload-uploader-button', runtimes: 'html5,html4' }); uploader.bind( 'FilesAdded', uploadAdded ); uploader.bind( 'Error', uploadError ); uploader.bind( 'UploadProgress', uploadProgress ); uploader.bind( 'FileUploaded', uploadUploaded ); uploader.bind( 'uploadComplete', uploadComplete ); uploader.init(); uploaderButton = container.find('input[type=file]'); callback(); }); } function uploadAdded( up, files ) { var html = '', i; for ( i = 0; i < files.length; i++ ) { html += '<li class="joms-gallery__item joms-file--' + files[i].id + '">'; html += '<div class="joms-gallery__thumbnail"><img src="' + joms.ASSETS_URL + 'photo_thumb.png"></div>'; html += '<div class="joms-gallery__body">'; html += '<a class="joms-gallery__title">' + files[i].name + '</a> <span>(' + Math.round( files[i].size / 1024 ) + ' KB)</span>'; html += '<div class="joms-progressbar"><div class="joms-progressbar__progress" style="width:0%"></div></div>'; html += '</div>'; html += '</li>'; } uploaderPreview.append( html ); elem.find('.joms-js--btn-add').css({ visibility: 'visible' }); elem.find('.joms-js--btn-view').hide(); setTimeout(function() { uploadStartProxy(); }, 1000); } function uploadStartProxy() { var $album = elem.find('[name=name]'); if ( !$album.is(':visible') ) { albumid = elem.find('[name=album-id]').val(); } else if ( newalbumid ) { albumid = newalbumid; } uploadStart(); } function uploadStart() { elem.find('.joms-js--btn-add').css({ visibility: 'hidden' }); elem.find('.joms-js--btn-view').hide(); uploader.settings.url = joms.BASE_URL + 'index.php?option=com_community&view=photos&task=multiUpload&albumid=' + albumid; uploader.refresh(); uploader.start(); } function uploadError() { } function uploadProgress( up, file ) { var percent, bar; percent = Math.min( 100, Math.floor( file.loaded / file.size * 100 ) ); bar = elem.find( '.joms-file--' + file.id ); bar = bar.find( '.joms-progressbar__progress' ); bar.stop().animate({ width: percent + '%' }); } function uploadUploaded( up, file, resp ) { var json = {}, item; try { json = JSON.parse( resp.response ); } catch (e) {} if ( json.error ) { uploader.stop(); if ( json.canContinue ) { elem.find('.joms-js--btn-add').css({ visibility: 'visible' }); } else { elem.find('.joms-js--btn-add').css({ visibility: 'hidden' }); } item = elem.find( '.joms-file--' + file.id ); if ( item.prevAll().length ) { elem.find('.joms-js--btn-view').show(); } item.nextAll().addBack().remove(); window.alert( json.msg ); return; } if ( json.info ) { files.push({ photoId: json.photoId }); item = elem.find( '.joms-file--' + file.id ); item = item.find('img'); item.attr( 'src', json.info ); elem.find('.joms-js--btn-add').html( elem.find('.joms-js--btn-add').data('lang-more') ); elem.find('.joms-js--btn-view').show(); // Disable tabs and input elements if images are successfully uploaded. elem.off('click', '.joms-tab__bar a'); elem.find('.joms-tab__bar a').removeAttr('href'); elem.find('input.joms-input, textarea.joms-textarea, select.joms-select').attr('disabled', 'disabled'); } } function uploadComplete() { elem.find('.joms-js--btn-add').css({ visibility: 'visible' }); elem.find('.joms-js--btn-view').show(); joms.ajax({ func: 'photos,ajaxUpdateCounter', data: [ albumid, JSON.stringify({ files: files }) ], callback: function() {} }); } function viewAlbum() { joms.ajax({ func: 'photos,ajaxGetAlbumURL', data: [ albumid || '', contextid || '', context || '' ], callback: function( json ) { if ( json.url ) { window.location = json.url; } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--photoupload">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', json.html, '</div>' ].join(''); } // Exports. return function( albumid, contextid, context ) { joms.util.popup.prepare(function( mfp ) { render( mfp, albumid, contextid, context ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.zoom = factory( root, $ ); define('popups/photo.zoom',[ 'utils/popup' ], function() { return joms.popup.photo.zoom; }); })( window, joms.jQuery, function( window, $ ) { var $cnt, $win; function render( popup, url ) { var evtName = 'resize.joms-photozoom'; popup.items[0] = { type: 'inline', src: buildHtml( url ) }; $cnt = popup.container; $win = $( window ); // #719 Wait for image to be loaded. setTimeout(function() { $cnt.find( '.joms-popup img' ).one( 'load', fixResize ).each(function() { if ( this.complete ) $( this ).load(); }); }, 1 ); $win.off( evtName ) .on( evtName, fixResize ); popup.updateItemHTML(); popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { $win.off( evtName ); }; } function buildHtml( url ) { url = url || ''; url = url.replace( 'thumb_', '' ); return [ '<div class="joms-popup-wrapper" style="width:100%;height:100%;margin:0 auto;text-align:center">', '<div class="joms-popup" style="max-width:100%;left:auto;right:auto;position:relative;top:0;display:none;">', '<img src="' + url + '" style="width:auto;max-width:100%; display:none;">', '</div>', '</div>' ].join(''); } var fixResize = joms._.debounce(function() { var $pop = $cnt.find( '.joms-popup' ).css({ position: '', display: '', top: '', width: '' }); var $img = $pop.find( 'img' ).css({ height: '' }); // Unwrap from temporary wrapper. if ( $cnt.find( '.joms-popup-wrapper' ).length ) { $cnt.find( '.joms-popup-wrapper .mfp-close' ).appendTo( $pop ); $pop.unwrap(); } var $mfp = $pop.parents('.mfp-content'), xHeight, ratio, height, width; height = $img.get(0).height; width = $img.get(0).width; ratio = width / height; xHeight = $mfp.width() / ratio; if (xHeight > $mfp.height()) { width = 'auto'; height = $mfp.height(); } else { width = $mfp.width(); height = 'auto'; } $img.css({ display: 'block', height: height, width: width }); $pop.css({ position: 'relative', width: $img.width() }); }, 100 ); // Exports. return function( url ) { joms.util.popup.prepare(function( mfp ) { render( mfp, url ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo || (joms.popup.photo = {}); joms.popup.photo.setAlbum = factory( root, $ ); define('popups/photo.setalbum',[ 'utils/popup' ], function() { return joms.popup.photo.setAlbum; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; if ( Object.prototype.toString.call( id ) !== '[object Array]' ) { id = [ id ]; } joms.ajax({ func: 'photos,ajaxSetPhotoAlbum', data: [ id.join(',') ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var albumid = elem.find('[name=albumid]').val(); joms.ajax({ func: 'photos,ajaxConfirmPhotoAlbum', data: [ albumid, id.join(',') ], callback: function( json ) { var message = [], $album, $photo, i; if ( json.message ) { message.push( json.message ); } // Remove moved photos from album page. if ( json.moved && json.moved.length ) { for ( i = 0; i < json.moved.length; i++ ) { $album = $( '.joms-js--album-' + json.moved[i].old_album ); if ( $album.length ) { $photo = $album.find( '.joms-js--photo-' + json.moved[i].id ); $photo.remove(); } } } // Map errors. if ( Object.prototype.toString.call( json.error ) === '[object Array]' ) { if ( json.error.length ) { for ( i = 0; i < json.error.length; i++ ) { json.error[i] = '<li>ID: ' + json.error[i][0] + ' - ' + json.error[i][1] + '</li>'; } message.push( '<ul>' + json.error.join('') + '</ul>' ); } } else if ( typeof json.error === 'string' ) { message.push( json.error ); } elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( message.join('<br/>') ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content joms-popup__content--single">', (json.html || ''), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.photo = factory( root, joms.popup.photo || {}); define('popups/photo',[ 'popups/photo.open', 'popups/photo.remove', 'popups/photo.report', 'popups/photo.setavatar', 'popups/photo.setcover', 'popups/photo.upload', 'popups/photo.zoom', 'popups/photo.setalbum' ], function() { return joms.popup.photo; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.pm || (joms.popup.pm = {}); joms.popup.pm.send = factory( root ); define('popups/pm.send',[ 'utils/popup' ], function() { return joms.popup.pm.send; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'inbox,ajaxCompose', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.find('textarea.joms-textarea').jomsTagging(); elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var body = elem.find('[name=body]').val(), att = elem.find('.joms-textarea__attachment'), photo, file, attachment = {}; body = body .replace( /\t/g, '\\t' ) .replace( /\n/g, '\\n' ) .replace( /"/g, '"' ); if ( elem.data('saving') ) { return; } elem.data( 'saving', 1 ); if ( att.is(':visible') ) { photo = att.find('.joms-textarea__attachment--thumbnail img'); file = photo.siblings('b'); if ( photo.is(':visible') && photo.attr('src') ) { attachment = { type: 'image', id: photo.data('photo_id') }; } else if ( file.is(':visible') ) { attachment = { type: 'file', id: file.data('id') }; } } joms.ajax({ func: 'chat,ajaxPrivateMessageSend', data: [ id, body, JSON.stringify(attachment) ], callback: function( json ) { var step1 = elem.find('[data-ui-object=popup-step-1]'), step2 = elem.find('[data-ui-object=popup-step-2]'); elem.removeData('saving'); step2.find('[data-ui-object=popup-message]').html( json ); step1.hide(); step2.show(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', (json.html || ''), '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.pm = factory( root, joms.popup.pm || {}); define('popups/pm',[ 'popups/pm.send' ], function() { return joms.popup.pm; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.search || (joms.popup.search = {}); joms.popup.search.save = factory( root, $ ); define('popups/search.save',[],function() { return joms.popup.search.save; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, data; function render( _popup, _data ) { var json, keys, key, values, value, i; if ( elem ) elem.off(); popup = _popup; data = _data || {}; json = data.json || {}; keys = ( data.keys || '' ).split(','); values = []; for ( i = 0; i < keys.length; i++ ) { key = keys[i]; if (( json['fieldType' + key] === 'date' ) || ( json['fieldType' + key] === 'birthdate' ) || ( json['condition' + key] === 'between' )) { value = json['value' + key] + ',' + json['value' + key + '_2']; } else { value = json['value' + key]; } values[i] = [ 'field=' + json[ 'field' + key ] + ',' + 'condition=' + json[ 'condition' + key ] + ',' + 'fieldType=' + json[ 'fieldType' + key ] + ',' + 'value=' + value ]; } joms.ajax({ func: 'memberlist,ajaxShowSaveForm', data: [ data.operator, data.avatar_only ? 1 : 0 ].concat( values ), callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { var $title = elem.find('[name=title]'), $description = elem.find('[name=description]'), error = false; if ( !$.trim( $title.val() ) ) { $title.siblings('.joms-help').show(); error = true; } else { $title.siblings('.joms-help').hide(); } if ( !$.trim( $description.val() ) ) { $description.siblings('.joms-help').show(); error = true; } else { $description.siblings('.joms-help').hide(); } if ( error ) { return; } elem.find('form').submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSave, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( data ) { joms.util.popup.prepare(function( mfp ) { render( mfp, data ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.search = factory( root, joms.popup.search || {}); define('popups/search',[ 'popups/search.save' ], function() { return joms.popup.search; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.tnc = factory( root ); })( window, function() { var popup; function render( _popup ) { popup = _popup; joms.ajax({ func: 'register,ajaxShowTnc', data: [ 0 ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single" style="max-height:400px;overflow:auto;">', ( json.html || ' ' ), '</div>', '</div>' ].join(''); } // Exports. return function() { joms.util.popup.prepare(function( mfp ) { render( mfp ); }); }; }); define("popups/tnc", function(){}); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.changeVanityURL = factory( root, $ ); define('popups/user.changevanityurl',[ 'utils/popup' ], function() { return joms.popup.user.changeVanityURL; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxUpdateURL', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form').submit(); } function buildHtml( json ) { var action = ''; json || (json = {}); if ( json.btnUpdate && json.btnCancel ) { action = [ '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnUpdate, '</button>', '</div>' ].join(''); } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content">', ( json.html || json.message ), '</div>', action, '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.addFeatured = factory( root, $ ); define('popups/user.addfeatured',[ 'utils/popup' ], function() { return joms.popup.user.addFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'search,ajaxAddFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.removeFeatured = factory( root, $ ); define('popups/user.removefeatured',[ 'utils/popup' ], function() { return joms.popup.user.removeFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'search,ajaxRemoveFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.ban = factory( root, $ ); define('popups/user.ban',[ 'utils/popup' ], function() { return joms.popup.user.ban; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxBanUser', data: [ id, 0 ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form').submit(); } function buildHtml( json ) { var action = ''; json || (json = {}); if ( !json.error ) { action = [ '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', ].join(''); } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content', ( json.error ? ' joms-popup__content--single' : '' ), '">', ( json.html || json.error ), '</div>', action, '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.unban = factory( root, $ ); define('popups/user.unban',[ 'utils/popup' ], function() { return joms.popup.user.unban; }); })( window, joms.jQuery, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxBanUser', data: [ id, 1 ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form').submit(); } function buildHtml( json ) { var action = ''; json || (json = {}); if ( !json.error ) { action = [ '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', ].join(''); } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content', ( json.error ? ' joms-popup__content--single' : '' ), '">', ( json.html || json.error ), '</div>', action, '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.block = factory( root, $ ); define('popups/user.block',[ 'utils/popup' ], function() { return joms.popup.user.block; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxConfirmBlockUser', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'profile,ajaxBlockUser', data: [ id ], callback: function( json ) { if ( !json.success ) { elem.find('.joms-popup__action').hide(); elem.find('.joms-popup__content').html( json.error ); return; } popup.close(); window.location.reload(); } }); } function buildHtml( json ) { var action; json || (json = {}); if ( json.error ) { action = [ '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-cancel">', json.btnClose, '</button>', '</div>' ].join(''); } else { action = [ '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>' ].join(''); } return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content">', ( json.error || json.html || json.message ), '</div>', action, '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.unblock = factory( root, $ ); define('popups/user.unblock',[ 'utils/popup' ], function() { return joms.popup.user.unblock; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxConfirmUnBlockUser', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'profile,ajaxUnblockUser', data: [ id ], callback: function( json ) { if ( !json.success ) { elem.find('.joms-popup__action').hide(); elem.find('.joms-popup__content').html( json.error ); return; } popup.close(); window.location.reload(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content">', ( json.html || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.ignore = factory( root, $ ); define('popups/user.ignore',[ 'utils/popup' ], function() { return joms.popup.user.ignore; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxConfirmIgnoreUser', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'profile,ajaxIgnoreUser', data: [ id ], callback: function( json ) { if ( !json.success ) { elem.find('.joms-popup__action').hide(); elem.find('.joms-popup__content').html( json.error ); return; } popup.close(); window.location.reload(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content">', ( json.html || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.report = factory( root ); define('popups/user.report',[ 'utils/popup' ], function() { return joms.popup.user.report; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'system,ajaxReport', data: [], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'change', 'select', changeText ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function changeText( e ) { elem.find('textarea').val( e.target.value ); } function cancel() { elem.off(); popup.close(); } function save() { var rTrim = /^\s+|\s+$/g, message; message = elem.find('textarea').val(); message = message.replace( rTrim, '' ); if ( !message ) { elem.find('.joms-js--error').show(); return; } elem.find('.joms-js--error').hide(); joms.ajax({ func: 'system,ajaxSendReport', data: [ 'profile,reportProfile', window.location.href, message, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', json.html, '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.user || (joms.popup.user = {}); joms.popup.user.unignore = factory( root, $ ); define('popups/user.unignore',[ 'utils/popup' ], function() { return joms.popup.user.unignore; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxConfirmUnIgnoreUser', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'profile,ajaxUnIgnoreUser', data: [ id ], callback: function( json ) { if ( !json.success ) { elem.find('.joms-popup__action').hide(); elem.find('.joms-popup__content').html( json.error ); return; } popup.close(); window.location.reload(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content">', ( json.html || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnNo, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.user = factory( root, joms.popup.user || {}); define('popups/user',[ 'popups/user.changevanityurl', 'popups/user.addfeatured', 'popups/user.removefeatured', 'popups/user.ban', 'popups/user.unban', 'popups/user.block', 'popups/user.unblock', 'popups/user.ignore', 'popups/user.report', 'popups/user.unignore' ], function() { return joms.popup.user; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.util || (joms.util = {}); joms.util.videotag = factory( root, $ ); })( window, joms.jQuery, function( window, $, undef ) { var wrapper, elem, img, friends, callback, tagAdded, noResult; function create( e, tags, groupid, eventid ) { var pos, top, left, width, height; destroy(); wrapper = $( buildHtml() ); elem = wrapper.find('.joms-phototag'); img = e && e.currentTarget ? $( e.currentTarget ).closest('.joms-popup--video').find('iframe,video,.joms-js--video').eq(0) : $( e ); friends = undef; callback = {}; width = img.width(); height = img.height(); pos = img.position(); top = pos.top; left = pos.left; tagAdded = tags || []; elem.css({ top: 0, left: 0 }); wrapper.css({ top: top, left: left, width: width, height: height }); wrapper.insertBefore( img ); pos = calcClickPosition( e ); elem.css({ top: pos.top, left: pos.left }); elem.on( 'keyup', 'input', filter ); elem.on( 'click', 'a[data-id]', select ); elem.on( 'click', 'button', destroy ); elem.on( 'click', function( e ) { e.stopPropagation(); }); wrapper.on( 'click', moveBoxPosition ); if ( +groupid ) { joms.fn.tagging.fetchGroupMembers( groupid, function( members ) { friends = members; filter(); }); } else if ( +eventid ) { joms.fn.tagging.fetchEventMembers( eventid, function( members ) { friends = members; filter(); }); } else { filter(); } if ( joms.ios ) { try { window.scrollTo( window.scrollLeft, elem.find('input').offset().top - 100 ); } catch (e) {} } // Apparently Android (Chrome?) trigger "onresize" event when keypad being shown, // which make phototag immediately closed. Add resize handler only on desktop browser. if ( !joms.mobile ) { $( window ).on( 'resize.phototag', destroy ); } } function filter( e ) { var input, keyword, filtered, ac; if ( !friends ) { friends = window.joms_friends || []; } input = $( e ? e.currentTarget : elem.find('input') ); keyword = input.val().replace( /^\s+|\s+$/g, '' ).toLowerCase(); filtered = friends; filtered = joms._.filter( friends, function( obj ) { if ( !obj ) return false; if ( !obj.name ) return false; if ( tagAdded && tagAdded.indexOf( obj.id + '' ) >= 0 ) return false; if ( keyword && obj.name.toLowerCase().indexOf( keyword ) < 0 ) return false; return true; }); filtered = filtered.slice(0, 8); filtered = joms._.map( filtered, function( obj ) { return '<a href="javascript:" data-id="' + obj.id + '">' + obj.name + '</a>'; }); if ( !filtered.length ) { filtered = [ '<span><em>' + window.joms_lang.COM_COMMUNITY_NO_RESULT_FOUND + '</em></span>' ]; noResult = true; } else { noResult = false; } ac = elem.find('.joms-phototag__autocomplete'); ac.html( filtered.join('') ); ac.append( '<div><button class="joms-button--neutral joms-button--small joms-button--full">' + window.joms_lang.COM_COMMUNITY_PHOTO_DONE_TAGGING + '</button></div>' ); ac.show(); } function select( e ) { var ac = elem.find('.joms-phototag__autocomplete'), el = $( e.currentTarget ), id = el.data('id') || '', pos; e.stopPropagation(); ac.hide(); if ( callback && callback.tagAdded ) { tagAdded || (tagAdded = []); tagAdded.push( id + '' ); pos = calcBoxPosition(); callback.tagAdded( id, pos.left, pos.top, pos.width, pos.height ); filter(); } } function destroy() { if ( elem ) { elem.remove(); wrapper.remove(); $( window ).off('resize.phototag'); elem = undef; img = undef; if ( callback && callback.destroy ) { callback.destroy(); } callback = undef; } } function on( eventType, fn ) { callback[ eventType ] = fn; } function off( eventType ) { if ( !eventType ) { callback = {}; } else if ( callback[ eventType ] ) { callback[ eventType ] = undef; } } function calcClickPosition() { var height = img.height(), width = img.width(), left, top; // Respect wrapper boundaries. top = Math.max( 0, height - 86 ) / 4.5; left = Math.max( 0, width - 86 ) / 2; return { top: top, left: left }; } function calcBoxPosition() { var pos, ctWidth, ctHeight, boxWidth, boxHeight, boxLeft, boxTop; ctWidth = wrapper.width(); ctHeight = wrapper.height(); pos = elem.position(); boxWidth = elem.width(); boxHeight = elem.height(); boxLeft = pos.left + boxWidth / 2; boxTop = pos.top + boxHeight / 2; // Percentage (relative to wrapper height). boxWidth = boxWidth / ctHeight; boxHeight = boxHeight / ctHeight; // Percentage (relative to wrapper dimension). boxLeft = boxLeft / ctWidth; boxTop = boxTop / ctHeight; return { top : boxTop, left : boxLeft, width : boxWidth, height : boxHeight }; } function moveBoxPosition( e ) { var pos; if ( noResult ) { destroy(); return; } pos = calcClickPosition( e ); elem.css({ top: pos.top, left: pos.left }); } function buildHtml() { return [ '<div class=joms-phototag__wrapper>', '<div class=joms-phototag>', '<div class=joms-phototag__input>', '<input type=text placeholder="', window.joms_lang.COM_COMMUNITY_SEARCH,'">', '<div class="joms-phototag__autocomplete"></div>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return { create: create, destroy: destroy, on: on, off: off }; }); define("utils/videotag", function(){}); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.open = factory( root, $ ); define('popups/video.open',[ 'utils/popup', 'utils/videotag' ], function() { return joms.popup.video.open; }); })( window, joms.jQuery, function( window, $ ) { var iconCog = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-cog"></use></svg>', iconBubble = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-bubble"></use></svg>', iconThumbsUp = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-thumbs-up"></use></svg>', iconTag = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-tag"></use></svg>', popup, elem, tagBtn, tags, tagLabel, tagRemoveLabel, id, lang, canEdit, canDelete, videoUrl, userId, groupId, eventId, isRegistered, isOwner, isAdmin, enableProfileVideo, enableReporting, enableSharing, enableFeature; var enableReaction = isEnableReaction(); function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'videos,ajaxShowVideoWindow', data: [ id ], callback: function( json ) { json || (json = {}); lang = json.lang || {}; canEdit = json.can_edit || false; canDelete = json.can_delete || false; videoUrl = json.video_url; // Priviliges. isRegistered = userId = +json.my_id; groupId = +json.groupid; eventId = +json.eventid; isOwner = isRegistered && ( +json.my_id === +json.owner_id ); isAdmin = +json.is_admin; // Settings. enableProfileVideo = +json.enableprofilevideo; enableReporting = +json.enablereporting; enableSharing = +json.enablesharing; enableFeature = json.enablefeature; popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); // Override popup#close function. popup.close = closeOverride; initVideo(); elem = popup.contentContainer; tagBtn = elem.find('.joms-popup__btn-tag-video'); elem.on( 'click', '.joms-popup__btn-tag-video', tagPrepare ); elem.on( 'click', '.joms-popup__btn-comments', toggleComments ); elem.on( 'click', '.joms-popup__btn-option', toggleDropdown ); elem.on( 'click', '.joms-popup__btn-share', share ); elem.on( 'click', '.joms-popup__btn-report', report ); elem.on( 'click', '.joms-popup__btn-fetch', _fetch ); elem.on( 'click', '.joms-popup__btn-profile', setAsProfileVideo ); elem.on( 'click', '.joms-popup__btn-feature', feature ); elem.on( 'click', '.joms-popup__btn-edit', _edit ); elem.on( 'click', '.joms-popup__btn-delete', _delete ); elem.on( 'mouseleave', '.joms-popup__dropdown--wrapper', hideDropdown ); elem.on( 'click', '.joms-js--remove-tag', tagRemove ); elem.on( 'click', '.joms-js--btn-desc-toggle', toggleDescription ); elem.on( 'click', '.joms-js--btn-desc-edit', editDescription ); elem.on( 'click', '.joms-js--btn-desc-cancel', cancelDescription ); elem.on( 'click', '.joms-js--btn-desc-save', saveDescription ); fetchComments( id ); } }); } function stripTags( html ) { html = html.replace( /<\/?[^>]+>/g, '' ); return html; } function buildHtml( json ) { var playerHtml; json || (json = {}); playerHtml = json.error || json.playerHtml || ''; var reaction = enableReaction ? ' joms-reaction--on' : ''; return [ '<div class="joms-popup joms-popup--video'+ reaction +'">', '<div class="joms-popup__commentwrapper">', '<div class="joms-popup__content">', '<div class="joms-popup__video">', playerHtml, '</div>', '<div class="joms-popup__option clearfix">', '<div class="joms-popup__optcaption">', ' <svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-eye"></use></svg> ', json.hits, '</div>', '<div class="joms-popup__optoption">', '<button class="joms-popup__btn-comments">', iconBubble, ' <span class="joms-popup__btn-overlay">', lang.comments, '</span></button>', getLikeHtml( json.like ), ( canEdit ? '<button class="joms-popup__btn-tag-video">' + iconTag + ' <span class="joms-popup__btn-overlay">' + lang.tag_video + '</span></button>' : '' ), '<div class="joms-popup__dropdown--wrapper">', updateDropdownHtml( json ), '<button class="joms-popup__btn-option">', iconCog, ' <span class="joms-popup__btn-overlay">', lang.options, '</span></button></div>', '</div>', '</div>', '</div>', '<div class="joms-popup__comment"></div>', '<button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', '</div>', '</div>' ].join(''); } function getLikeHtml( json ) { var html, count; // Like info. html = ''; if ( json && !enableReaction) { html += '<button class="joms-popup__btn-like joms-js--like-videos-' + id + ( json.is_liked ? ' liked' : '' ) + '"'; html += ' onclick="joms.api.page' + ( json.is_liked ? 'Unlike' : 'Like' ) + '(\'videos\', \'' + id + '\');"'; html += ' data-lang="' + ( json.lang || 'Like' ) + '"'; html += ' data-lang-like="' + ( json.lang_like || 'Like' ) + '"'; html += ' data-lang-liked="' + ( json.lang_liked || 'Liked' ) + '">'; html += iconThumbsUp + ' '; html += '<span>'; html += ( json.is_liked ? json.lang_liked : json.lang_like ); count = +json.count; if ( count > 0 ) { html += ' (' + count + ')'; } html += '</span></button>'; } return html; } function tagPrepare( e ) { if ( tagBtn.data('tagging') ) { tagBtn.removeData('tagging'); tagBtn.html( iconTag + ' <span class="joms-popup__btn-overlay">' + lang.tag_video + '</span>' ); tagCancel(); } else { tagBtn.data( 'tagging', 1 ); tagBtn.html( iconTag + ' ' + lang.done_tagging ); tagStart( e ); } } function tagStart( e ) { var indices = joms._.map( tags, function( item ) { return item.userId + ''; }); joms.util.videotag.create( e, indices, groupId, eventId ); joms.util.videotag.on( 'tagAdded', tagAdded ); joms.util.videotag.on( 'destroy', function() { tagBtn.removeData('tagging'); tagBtn.html( iconTag + ' <span class="joms-popup__btn-overlay">' + lang.tag_video + '</span>' ); }); } function tagAdded( userId ) { joms.ajax({ func: 'videos,ajaxAddVideoTag', data: [ id, userId ], callback: function( json ) { var $comments, $tags; if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( json.success ) { tags.push( json.data ); // Render tag info. $comments = elem.find('.joms-popup__comment'); $tags = $comments.find('.joms-js--tag-info'); $tags.html( _tagBuildHtml() ); } } }); } function tagCancel() { joms.util.videotag.destroy(); } function tagRemove( e ) { var el = $( e.currentTarget ), userId = el.data('id'); joms.ajax({ func: 'videos,ajaxRemoveVideoTag', data: [ id, userId ], callback: function( json ) { var $comments, $tags, i; if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( json.success ) { for ( i = 0; i < tags.length; i++ ) { if ( +userId === +tags[i].userId ) { tags.splice( i--, 1 ); } } // Render tag info. $comments = elem.find('.joms-popup__comment'); $tags = $comments.find('.joms-js--tag-info'); $tags.html( _tagBuildHtml() ); } } }); } function _tagBuildHtml() { var html, item, str, i; if ( !tags || !tags.length ) { return ''; } html = []; for ( i = 0; i < tags.length; i++ ) { item = tags[i]; str = '<a href="' + item.profileUrl + '">' + item.displayName + '</a>'; if ( item.canRemove ) { str += ' (<a href="javascript:" class="joms-js--remove-tag" data-id="' + item.userId + '">' + tagRemoveLabel + '</a>)'; } html.push( str ); } html = html.join(', '); html = tagLabel + '<br>' + html; return html; } function toggleComments() { elem.children('.joms-popup').toggleClass('joms-popup--togglecomment'); } function closeOverride() { var $ct = elem.children('.joms-popup'), className = 'joms-popup--togglecomment'; if ( $ct.hasClass( className ) ) { $ct.removeClass( className ); return; } $.magnificPopup.proto.close.call( this ); } function toggleDropdown( e ) { var wrapper = $( e.target ).closest('.joms-popup__dropdown--wrapper'), dropdown = wrapper.children('.joms-popup__dropdown'); dropdown.toggleClass('joms-popup__dropdown--open'); } function hideDropdown( e ) { var wrapper = $( e.target ).closest('.joms-popup__dropdown--wrapper'), dropdown = wrapper.children('.joms-popup__dropdown'); dropdown.removeClass('joms-popup__dropdown--open'); } function updateDropdownHtml( json ) { var html = ''; json || (json = {}); if ( enableSharing ) { html += '<a href="javascript:" class="joms-popup__btn-share">' + lang.share + '</a>'; html += '<div class="sep"></div>'; } if ( isOwner || isAdmin ) { html += '<a href="javascript:" class="joms-popup__btn-fetch">' + lang.fetch + '</a>'; html += ( isOwner && enableProfileVideo ? '<a href="javascript:" class="joms-popup__btn-profile">' + lang.set_as_profile_video + '</a>' : '' ); if ( isAdmin && enableFeature ) { if ( enableFeature === 'add' ) { html += '<a href="javascript:" class="joms-popup__btn-feature" data-featured="0">' + lang.make_feature + '</a>'; } else if ( enableFeature === 'remove' ) { html += '<a href="javascript:" class="joms-popup__btn-feature" data-featured="1">' + lang.remove_featured + '</a>'; } } html += '<div class="sep"></div>'; html += ( canEdit ? '<a href="javascript:" class="joms-popup__btn-edit">' + lang.edit_video + '</a>' : '' ); html += ( canDelete ? '<a href="javascript:" class="joms-popup__btn-delete">' + lang.delete_video + '</a>' : '' ); } else { html += ( canEdit ? '<a href="javascript:" class="joms-popup__btn-edit">' + lang.edit_video + '</a>' : '' ); html += ( canDelete ? '<a href="javascript:" class="joms-popup__btn-delete">' + lang.delete_video + '</a>' : '' ); html += ( enableReporting ? '<a href="javascript:" class="joms-popup__btn-report">' + lang.report + '</a>' : '' ); } html = '<div class="joms-popup__dropdown"><div class="joms-popup__ddcontent">' + html + '</div></div>'; return html; } function share() { joms.api.pageShare( videoUrl ); } function report() { joms.api.videoReport( userId, videoUrl ); } function _fetch() { joms.api.videoFetchThumbnail( id ); } function setAsProfileVideo() { joms.ajax({ func: 'profile,ajaxConfirmLinkProfileVideo', data: [ id ], callback: function( json ) { if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( window.confirm( stripTags( json.html ) ) ) { setAsProfileVideoConfirm(); } } }); } function setAsProfileVideoConfirm() { joms.ajax({ func: 'profile,ajaxLinkProfileVideo', data: [ id ], callback: function( json ) { if ( json.error ) { window.alert( stripTags( json.error ) ); return; } window.alert( stripTags( json.message ) ); setTimeout(function() { window.location.reload(); }, 500 ); } }); } function feature( e ) { var $btn = $( e.currentTarget ), isFeatured = +$btn.data('featured'); if ( isFeatured ) { joms.api.videoRemoveFeatured( id ); } else { joms.api.videoAddFeatured( id ); } } function _edit() { joms.api.videoEdit( id ); } function _delete() { joms.ajax({ func: 'videos,ajaxConfirmRemoveVideo', data: [ id ], callback: function( json ) { if ( json.error ) { window.alert( stripTags( json.error ) ); return; } if ( window.confirm( stripTags( json.html ) ) ) { _deleteConfirm(); } } }); } function _deleteConfirm() { joms.ajax({ func: 'videos,ajaxRemoveVideo', data: [ id ], callback: function( json ) { if ( json.error ) { window.alert( stripTags( json.error ) ); return; } window.alert( stripTags( json.message ) ); setTimeout(function() { window.location.reload(); }, 500 ); } }); } function fetchComments( id, showAllParams ) { var comments = elem.find('.joms-popup__comment'); if ( !showAllParams ) { comments.empty(); } joms.ajax({ func: 'videos,ajaxGetInfo', data: [ id, showAllParams ? 1 : 0 ], callback: function( json ) { var $tags; if ( !showAllParams ) { if ( json.comments && json.showall ) { json.showall = '<div class="joms-comment__more joms-js--more-comments"><a href="javascript:">' + json.showall + '</a></div>'; json.comments = $( json.comments ); json.comments.prepend( json.showall ); } } if ( showAllParams ) { comments.find('.joms-comment').replaceWith( json.comments ); } else { comments.html( json.head || '' ); comments.append( json.comments ); comments.append( json.form || '' ); // Render description. comments.find('.joms-js--description').html( renderDescription( json.description || {} ) ); // Cache tag info. tags = json.tagged || []; tagLabel = json.tagLabel || ''; tagRemoveLabel = json.tagRemoveLabel || ''; // Render tag info. $tags = comments.find('.joms-js--tag-info'); $tags.html( _tagBuildHtml() ); comments.find('textarea.joms-textarea'); joms.fn.tagging.initInputbox(); } initVideoPlayers(); joms.parseEmoji(); } }); } function initVideo() { var cssVideo = '.joms-js--video', video = $('.joms-popup__content').find( cssVideo ); if ( !video.length ) { return; } joms.loadCSS( joms.ASSETS_URL + 'vendors/mediaelement/mediaelementplayer.min.css' ); video.on( 'click.joms-video', cssVideo + '-play', function() { var $el = $( this ).closest( cssVideo ); joms.util.video.play( $el, $el.data() ); }); } function initVideoPlayers() { var initialized = '.joms-js--initialized', cssVideos = '.joms-js--video', videos = $('.joms-comment__body,.joms-js--inbox').find( cssVideos ).not( initialized ).addClass( initialized.substr(1) ); if ( !videos.length ) { return; } joms.loadCSS( joms.ASSETS_URL + 'vendors/mediaelement/mediaelementplayer.min.css' ); videos.on( 'click.joms-video', cssVideos + '-play', function() { var $el = $( this ).closest( cssVideos ); joms.util.video.play( $el, $el.data() ); }); if ( joms.ios ) { setTimeout(function() { videos.find( cssVideos + '-play' ).click(); }, 2000 ); } } function renderDescription( json ) { var showExcerpt; if ( typeof json !== 'object' ) { json = {}; } if ( json.content ) { if ( json.excerpt !== json.rawcontent ) { showExcerpt = true; } } return [ '<div class="joms-js--btn-desc-content">', '<span class="joms-js--btn-desc-excerpt"', ( showExcerpt ? '' : ' style="display:none"' ), '>', ( json.excerpt || '' ), '</span>', '<span class="joms-js--btn-desc-fulltext"', ( showExcerpt ? ' style="display:none"' : '' ), '>', ( json.content || '' ), '</span>', '<div><a href="javascript:" class="joms-js--btn-desc-toggle"', ( showExcerpt ? '' : ' style="display:none"' ), '>', window.joms_lang.COM_COMMUNITY_SHOW_MORE, '</a></div>', '</div>', '<div class="joms-js--btn-desc-editor joms-popup__hide">', '<textarea class="joms-textarea" style="margin:0" placeholder="', ( json.lang_placeholder || '' ), '">', br2nl( json.content || '' ), '</textarea>', '<div style="margin-top:5px;text-align:right">', '<button class="joms-button--neutral joms-button--small joms-js--btn-desc-cancel">', ( json.lang_cancel || 'Cancel' ), '</button> ', '<button class="joms-button--primary joms-button--small joms-js--btn-desc-save">', ( json.lang_save || 'Save' ), '</button>', '</div>', '</div>', '<div class="joms-js--btn-desc-edit"', ( canEdit ? '' : ' style="display:none"' ), '><a href="javascript:"', ' data-lang-add="', ( json.lang_add || 'Add description' ), '"', ' data-lang-edit="', ( json.lang_edit || 'Edit description' ), '">', ( json.content ? json.lang_edit : json.lang_add ), '</a>', '</div>' ].join(''); } function br2nl( text ) { text = text || ''; text = text.replace( /<br\s*\/?>/g, '\n' ); return text; } function toggleDescription() { var $excerpt = elem.find('.joms-js--btn-desc-excerpt'), $fulltext = elem.find('.joms-js--btn-desc-fulltext'), $button = elem.find('.joms-js--btn-desc-toggle'); if ( $fulltext.is(':visible') ) { $fulltext.hide(); $excerpt.show(); $button.html( window.joms_lang.COM_COMMUNITY_SHOW_MORE ); } else { $excerpt.hide(); $fulltext.show(); $button.html( window.joms_lang.COM_COMMUNITY_SHOW_LESS ); } } function editDescription() { elem.find('.joms-js--btn-desc-content').hide(); elem.find('.joms-js--btn-desc-edit').hide(); elem.find('.joms-js--btn-desc-editor').show(); } function cancelDescription() { elem.find('.joms-js--btn-desc-editor').hide(); elem.find('.joms-js--btn-desc-content').show(); elem.find('.joms-js--btn-desc-edit').show(); } function saveDescription() { var content = elem.find('.joms-js--btn-desc-content'), editor = elem.find('.joms-js--btn-desc-editor'), button = elem.find('.joms-js--btn-desc-edit'), textarea = editor.find('textarea'), value = $.trim( textarea.val() ); joms.ajax({ func: 'videos,ajaxSaveDescription', data: [ id, value ], callback: function( json ) { var a = button.find('a'), $cexcerpt, $cfulltext, $cbutton; if ( json.error ) { window.alert( json.error ); return; } if ( json.success ) { $cexcerpt = content.find('.joms-js--btn-desc-excerpt'); $cfulltext = content.find('.joms-js--btn-desc-fulltext'); $cbutton = content.find('.joms-js--btn-desc-toggle'); // Update content. if ( !json.caption || json.caption === json.excerpt ) { $cexcerpt.hide(); $cbutton.hide(); $cfulltext.html( json.caption ).show(); } else { $cexcerpt.html( json.excerpt ).show(); $cbutton.html( window.joms_lang.COM_COMMUNITY_SHOW_MORE ).show(); $cfulltext.html( json.caption ).hide(); } editor.hide(); content.show(); a.html( a.data( 'lang-' + ( value ? 'edit' : 'add' ) ) ); button.show(); } } }); } function isEnableReaction() { return !!joms.getData('joms_reaction'); } // Exports. return joms._.debounce(function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }, 200 ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.add = factory( root, $ ); define('popups/video.add',[ 'utils/loadlib', 'utils/popup' ], function() { return joms.popup.video.add; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, uploader, uploaderButton, contextid, context; function render( _popup, _contextid, _context ) { var data; if ( elem ) elem.off(); popup = _popup; context = _context || false; contextid = _contextid || false; data = []; if ( contextid ) { data.push( context || '' ); data.push( contextid || '' ); } joms.ajax({ func: 'videos,ajaxAddVideo', data: data, callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'submit', '.joms-js--form-link', link ); elem.on( 'click', '.joms-js--select-file', upload ); elem.on( 'submit', '.joms-js--form-upload', uploadStart ); // Init uploader upon render. uploadInit(); } }); } function link( e ) { e.preventDefault(); var form = $( e.currentTarget ), rTrim = /^\s+|\s+$/g, url = form.find('[name=videoLinkUrl]'), cat = form.find('[name=category_id]'), urlVal = url.val().trim( rTrim, '' ), catVal = +cat.val(), btnSubmit = form.find('[type=submit]'), langLinking = btnSubmit.data('lang-linking') || 'Linking***'; url.siblings('[data-elem=form-warning]')[ urlVal ? 'hide' : 'show' ](); cat.parents('.joms-select--wrapper').siblings('[data-elem=form-warning]')[ catVal ? 'hide' : 'show' ](); if ( urlVal && catVal ) { form.removeAttr('onsubmit'); btnSubmit.val(langLinking); btnSubmit.prop('disabled', true); elem.off( 'submit', '.joms-js--form-link' ); setTimeout(function() { form.submit(); }, 300 ); } } function upload() { uploadInit(function() { uploaderButton.click(); }); } function uploadInit( callback ) { if ( typeof callback !== 'function' ) { callback = function() {}; } if ( uploader ) { callback(); return; } joms.util.loadLib( 'plupload', function () { var container, button; container = $('<div id="joms-js--videoupload-uploader" aria-hidden="true" style="width:1px; height:1px; overflow:hidden">').appendTo( document.body ); button = $('<button id="joms-js--videoupload-uploader-button">').appendTo( container ); uploader = new window.plupload.Uploader({ url: 'index.php?option=com_community&view=videos&task=uploadvideo', filters: [{ title: 'Video files', extensions: '3g2,3gp,asf,asx,avi,flv,mov,mp4,mpg,rm,swf,vob,wmv,m4v' }], container: 'joms-js--videoupload-uploader', browse_button: 'joms-js--videoupload-uploader-button', runtimes: 'html5,html4', multi_selection: false }); uploader.bind( 'FilesAdded', uploadAdded ); uploader.bind( 'BeforeUpload', uploadBeforeUpload ); uploader.bind( 'Error', uploadError ); uploader.bind( 'UploadProgress', uploadProgress ); uploader.bind( 'FileUploaded', uploadUploaded ); uploader.bind( 'uploadComplete', uploadComplete ); uploader.init(); uploaderButton = container.find('input[type=file]'); callback(); }); } function uploadAdded( up, files ) { if ( !(files && files.length) ) return; var span = elem.find('.joms-js--select-file'), file = files[0], name = '<span>' + file.name + '</span>', size = file.size || 0, unit = 'Bytes'; for ( var units = [ 'KB', 'MB', 'GB' ]; size >= 1000 && units.length; ) { unit = units.shift(); size = Math.ceil( size / 1000 ); } if ( size ) name += ' <span>(' + size + ' ' + unit + ')</span>'; span.html( name ); } function uploadStart( e ) { e.preventDefault(); var form = $( e.currentTarget ), rTrim = /^\s+|\s+$/g, title = form.find('[name=title]'), cat = form.find('[name=category_id]'), titleVal = title.val().trim( rTrim, '' ), catVal = +cat.val(), bar; title.siblings('[data-elem=form-warning]')[ titleVal ? 'hide' : 'show' ](); cat.siblings('[data-elem=form-warning]')[ catVal ? 'hide' : 'show' ](); if ( !titleVal || !catVal ) { return false; } bar = form.find('.joms-progressbar__progress'); bar.css({ width: 0 }); uploader.refresh(); uploader.start(); } function uploadBeforeUpload() { var raw = elem.find('.joms-js--form-upload').serializeArray(), params = {}, i; for ( i = 0; i < raw.length; i++ ) { params[ raw[i].name ] = raw[i].value; } // Attach parameters to uploader. uploader.settings.multipart_params = params; } function uploadError( up, error ) { var message = 'Undefined error.'; if ( error && error.code && error.message ) { message = '(' + error.code + ') ' + error.message; } elem.find('.joms-js--select-file').html(' '); uploader.splice(); uploader.refresh(); window.alert( message ); } function uploadProgress( up, file ) { var percent, form, bar; percent = Math.min( 100, Math.floor( file.loaded / file.size * 100 ) ); form = elem.find('.joms-js--form-upload'); bar = form.find( '.joms-progressbar__progress' ); bar.stop().animate({ width: percent + '%' }); } function uploadUploaded( up, file, resp ) { var json = {}; try { json = JSON.parse( resp.response ); } catch (e) {} if ( json.status !== 'success' ){ window.alert( json.message || 'Undefined error.' ); return; } setTimeout(function() { window.alert( json.processing_str ); popup.close(); }, 1000 ); } function uploadComplete() { } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--videoupload">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', ( json.html ? json.html : '<div class="joms-popup__content joms-popup__content--single">' + json.error + '</div>' ), '</div>' ].join(''); } // Exports. return function( contextid, context ) { joms.util.popup.prepare(function( mfp ) { render( mfp, contextid, context ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.edit = factory( root ); define('popups/video.edit',[ 'utils/popup' ], function() { return joms.popup.video.edit; }); })( window, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'videos,ajaxEditVideo', data: [ id, window.location.href ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { elem.find('form').submit(); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--600">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', '<div class="joms-popup__content joms-popup__content--single">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSave, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.fetchThumbnail = factory( root, $ ); define('popups/video.fetchthumbnail',[ 'utils/popup' ], function() { return joms.popup.video.fetchThumbnail; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'videos,ajaxFetchThumbnail', data: [ id, 'myvideos' ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.message || json.error || '' ), ( json.thumbnail ? '<div style="padding-top:10px;"><img src="' + json.thumbnail + '" style="max-width:100%;"></div>' : '' ), '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.linkToProfile = factory( root, $ ); define('popups/video.linktoprofile',[ 'utils/popup' ], function() { return joms.popup.video.linkToProfile; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'profile,ajaxConfirmLinkProfileVideo', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'profile,ajaxLinkProfileVideo', data: [ id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); if ( json.success ) { setTimeout(function() { window.location.reload(); }, 1000 ); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.remove = factory( root ); define('popups/video.remove',[ 'utils/popup' ], function() { return joms.popup.video.remove; }); })( window, function( window ) { var popup, elem, id; function render( _popup, _id, redirect ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'videos,ajaxConfirmRemoveVideo', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', { redirect: redirect ? 1 : 0 }, save ); } }); } function cancel() { elem.off(); popup.close(); } function save( e ) { joms.ajax({ func: 'videos,ajaxRemoveVideo', data: [ id, e.data.redirect ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); if ( json.success ) { setTimeout(function() { if ( json.redirect ) { window.location = json.redirect; } else { window.location.reload(); } }, 1000 ); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, redirect ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, redirect ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.report = factory( root ); define('popups/video.report',[ 'utils/popup' ], function() { return joms.popup.video.report; }); })( window, function() { var popup, elem, id, url; function render( _popup, _id, _url ) { if ( elem ) elem.off(); popup = _popup; id = _id; url = _url; joms.ajax({ func: 'system,ajaxReport', data: [], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'change', 'select', changeText ); elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function changeText( e ) { elem.find('textarea').val( e.target.value ); } function cancel() { elem.off(); popup.close(); } function save() { var rTrim = /^\s+|\s+$/g, message; message = elem.find('textarea').val(); message = message.replace( rTrim, '' ); if ( !message ) { elem.find('.joms-js--error').show(); return; } elem.find('.joms-js--error').hide(); joms.ajax({ func: 'system,ajaxSendReport', data: [ 'videos,reportVideo', url || window.location.href, message, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock joms-popup--500">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1', ( json.error ? ' joms-popup__hide' : '' ), '">', json.html, '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnCancel, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnSend, '</button>', '</div>', '</div>', '<div class="joms-js--step2', ( json.error ? '' : ' joms-popup__hide' ), '">', '<div class="joms-popup__content joms-popup__content--single">', ( json.error || '' ), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, url ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, url ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.addFeatured = factory( root, $ ); define('popups/video.addfeatured',[ 'utils/popup' ], function() { return joms.popup.video.addFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'videos,ajaxAddFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.removeFeatured = factory( root, $ ); define('popups/video.removefeatured',[ 'utils/popup' ], function() { return joms.popup.video.removeFeatured; }); })( window, joms.jQuery, function( window ) { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'videos,ajaxRemoveFeatured', data: [ id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; if ( json.success ) { popup.st.callbacks || (popup.st.callbacks = {}); popup.st.callbacks.close = function() { window.location.reload(); }; } popup.updateItemHTML(); } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__content--single">', ( json.html || json.error || '' ), '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-js--button-close">', window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON, '</button>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.video || (joms.popup.video = {}); joms.popup.video.removeLinkFromProfile = factory( root, $ ); define('popups/video.removelinkfromprofile',[ 'utils/popup' ], function() { return joms.popup.video.removeLinkFromProfile; }); })( window, joms.jQuery, function( window ) { var popup, elem, id, userid; function render( _popup, _id, _userid ) { if ( elem ) elem.off(); popup = _popup; id = _id; userid = _userid; joms.ajax({ func: 'profile,ajaxRemoveConfirmLinkProfileVideo', data: [ userid, id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '.joms-js--button-cancel', cancel ); elem.on( 'click', '.joms-js--button-save', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'profile,ajaxRemoveLinkProfileVideo', data: [ userid, id ], callback: function( json ) { elem.find('.joms-js--step1').hide(); elem.find('.joms-js--step2').show().children().html( json.error || json.message ); if ( json.success ) { setTimeout(function() { window.location.reload(); }, 1000 ); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-js--step1">', '<div class="joms-popup__content">', json.html, '</div>', '<div class="joms-popup__action">', '<button class="joms-button--neutral joms-button--small joms-left joms-js--button-cancel">', json.btnNo, '</button> ', '<button class="joms-button--primary joms-button--small joms-js--button-save">', json.btnYes, '</button>', '</div>', '</div>', '<div class="joms-popup__hide joms-js--step2">', '<div class="joms-popup__content joms-popup__content--single"></div>', '</div>', '</div>' ].join(''); } // Exports. return function( id, user ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id, user ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.video = factory( root, joms.popup.video || {}); define('popups/video',[ 'popups/video.open', 'popups/video.add', 'popups/video.edit', 'popups/video.fetchthumbnail', 'popups/video.linktoprofile', 'popups/video.remove', 'popups/video.report', 'popups/video.addfeatured', 'popups/video.removefeatured', 'popups/video.removelinkfromprofile' ], function() { return joms.popup.video; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.poll || (joms.popup.poll = {}); joms.popup.poll.removeoption = factory( root ); define('popups/poll.removeoption',[ 'utils/popup' ], function() { return joms.popup.poll.removeoption; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'polls,ajaxConfirmDeletePollOption', data: [ '', id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'polls,ajaxDeletePollOption', data: [ '', id ], callback: function( json ) { var item; elem.off(); popup.close(); if ( json.success ) { item = joms.jQuery('.joms-poll-item-'+id); item.fadeOut( 500, function() { item.remove(); }); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div>', '<div class="joms-popup__content">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.poll || (joms.popup.poll = {}); joms.popup.poll.delete = factory( root ); define('popups/poll.delete',[ 'utils/popup' ], function() { return joms.popup.poll.delete; }); })( window, function() { var popup, elem, id; function render( _popup, _id ) { if ( elem ) elem.off(); popup = _popup; id = _id; joms.ajax({ func: 'polls,ajaxWarnPollDeletion', data: [ '', id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); elem = popup.contentContainer; elem.on( 'click', '[data-ui-object=popup-button-cancel]', cancel ); elem.on( 'click', '[data-ui-object=popup-button-save]', save ); } }); } function cancel() { elem.off(); popup.close(); } function save() { joms.ajax({ func: 'polls,ajaxDeletePoll', data: [ '', id ], callback: function( json ) { var item; elem.off(); popup.close(); if ( json.success ) { item = joms.jQuery('.joms-poll__item-'+id); item.fadeOut( 500, function() { item.remove(); }); } } }); } function buildHtml( json ) { json || (json = {}); return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div>', '<div class="joms-popup__content">', ( json.error || json.message ), '</div>', '<div class="joms-popup__action">', '<a href="javascript:" class="joms-button--neutral joms-button--small joms-left" data-ui-object="popup-button-cancel">', json.btnCancel, '</a> ', '<button class="joms-button--primary joms-button--small" data-ui-object="popup-button-save">', json.btnYes, '</button>', '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, id ); }); }; }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.poll || (joms.popup.poll = {}); joms.popup.poll.voted = factory( root, $ ); define('popups/poll.voted',[ 'utils/popup' ], function() { return joms.popup.poll.voted; }); })( window, joms.jQuery, function( window, $ ) { var popup, elem, tabAll, tabSelected, btnSelect, btnLoad, id, keyword, start, limit, xhr; function render( _popup, poll_id, option_id ) { if ( elem ) elem.off(); popup = _popup; joms.ajax({ func: 'polls,ajaxShowVotedUsers', data: [ poll_id, option_id ], callback: function( json ) { popup.items[0] = { type: 'inline', src: buildHtml( json ) }; popup.updateItemHTML(); } }); } function buildHtml( json ) { return [ '<div class="joms-popup joms-popup--whiteblock">', '<div class="joms-popup__title"><button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div data-ui-object="popup-step-1"', ( json.error ? ' class="joms-popup__hide"' : '' ), '>', '<div class="joms-popup__content">', json.html, '</div>', '</div>', '<div data-ui-object="popup-step-2"', ( json.error ? '' : ' class="joms-popup__hide"' ), '>', '<div class="joms-popup__content joms-popup__content--single" data-ui-object="popup-message">', (json.error || ''), '</div>', '</div>', '</div>' ].join(''); } // Exports. return function( poll_id, option_id ) { joms.util.popup.prepare(function( mfp ) { render( mfp, poll_id, option_id ); }); }; }); (function( root, factory ) { joms.popup || (joms.popup = {}); joms.popup.poll = factory( root, joms.popup.poll || {}); define('popups/poll',[ 'popups/poll.removeoption', 'popups/poll.delete', 'popups/poll.voted' ], function() { return joms.popup.poll; }); })( window, function( window, sub ) { // Exports. return joms._.extend({}, sub ); }); (function( root, $, factory ) { joms.popup || (joms.popup = {}); joms.popup.reaction = factory( root, joms.popup.reaction || {}, $); })( window, joms.jQuery, function( window, sub, $ ) { var popup; function render( _popup, element, uid, reactId ) { popup = _popup; $(popup.modal).find(".tingle-modal__close").remove(); reactId = reactId ? reactId : 0; joms.ajax({ func: 'system,ajaxShowReactedUsers', data: [element, uid, reactId], context:this, callback: function( json ) { setTimeout( function() { popup.setContent( buildHtml( json ) ); var $content = $(popup.getContent()); $content.find(".joms-popup__title").data('popup',popup); $content.find(".mfp-close").on('click',$content,function(){popup.close();}) var $react = $content.find('li.joms-reacted__item'); $react.on('click', getUsersByReaction); }, 100); } }) } function getUsersByReaction(event) { var $elm = $(event.currentTarget); var element = $elm.attr('data-element'); var reactId = $elm.attr('data-reactid'); var uid = $elm.attr('data-uid'); var $modalContent = $(popup.getContent()); var $loading = $modalContent.find('.joms-js--loading'); var $content = $modalContent.find('.joms-reacted__content'); var $items = $modalContent.find('li.joms-reacted__item'); if (!$elm.hasClass('active')) { $items.removeClass('active'); $elm.addClass('active'); $content.hide(); $loading.show(); joms.ajax({ func: 'system,ajaxGetUsersByReaction', data: [element, uid, reactId], callback: function( json ) { $content.html(json.html); $content.show(); $loading.hide(); } }) } } function buildHtml( json ) { return [ '<div class="joms-popup--whiteblock">', '<div class="joms-popup__title">', '<button class="mfp-close" type="button" title="',window.joms_lang.COM_COMMUNITY_CLOSE_BUTTON_TITLE,'">×</button>', json.title, '</div>', '<div class="joms-popup__content joms-popup__reacted">', json.html, '</div>', '</div>' ].join(''); } // Exports. return function( element, uid, reactId ) { joms.util.dialog.prepare(function( mfp ) { render( mfp, element, uid, reactId ); }); } }); define("popups/reaction", function(){}); (function( root, $, factory ) { joms.dialog || (joms.dialog = {}); joms.dialog.reacted = factory( root, $); define('dialog/reacted',[ 'dialog/reacted' ], function() { return joms.dialog.reacted; }); })( window, joms.jQuery, function( window, $ ) { var modal; function render( _modal, element, uid, reactId ) { modal = _modal; reactId = reactId ? reactId : 0; joms.ajax({ func: 'system,ajaxShowReactedUsers', data: [element, uid, reactId], callback: function( json ) { setTimeout( function() { modal.setContent( json.html ); var $content = $(modal.getContent()); var $react = $content.find('li.joms-reacted__item'); $react.on('click', getUsersByReaction); }, 5000); } }) } function getUsersByReaction(e) { var $elm = $(e.currentTarget); var element = $elm.attr('data-element'); var reactId = $elm.attr('data-reactid'); var uid = $elm.attr('data-uid'); var $modalContent = $(modal.getContent()); var $loading = $modalContent.find('.joms-js--loading'); var $content = $modalContent.find('.joms-reacted__content'); var $items = $modalContent.find('li.joms-reacted__item'); if (!$elm.hasClass('active')) { $items.removeClass('active'); $elm.addClass('active'); $content.hide(); $loading.show(); joms.ajax({ func: 'system,ajaxGetUsersByReaction', data: [element, uid, reactId], callback: function( json ) { $content.html(json.html); $content.show(); $loading.hide(); } }) } } return function( element, uid, reactId ) { joms.util.dialog.prepare( function( modal ) { render( modal, element, uid, reactId ); }) } }); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.cover = factory( root, $ ); define('views/cover',[],function() { return joms.view.cover; }); })( window, joms.jQuery, function( window, $ ) { var type, id, cover, img, hammertime, repositioning; function reposition( _type, _id ) { var top, maxHeight; type = _type; id = _id; cover = $('.joms-focus__cover'); img = cover.children('.joms-js--cover-image').children('img'); if ( !img ) return; cover.css('cursor', 'move'); cover.children('.joms-focus__header').hide(); cover.children('.joms-focus__actions--reposition') .on( 'click', 'input', repositionAction ) .show(); img.data( 'top', img.position().top ); // set reposition flag repositioning = true; hammertime = new joms.Hammer( img[0] ); hammertime.on( 'dragstart dragup dragdown dragend', function( e ) { var newTop; if ( e.type === 'dragstart' ) { top = img.position().top; maxHeight = cover.height() - img.height(); } else if ( e.type !== 'dragend' ) { newTop = Math.min( 0, top + e.gesture.deltaY ); newTop = Math.max( maxHeight, newTop ); img.css({ top: newTop }); } }); } function repositionAction( e ) { var elem; elem = $( e.target ); cover.children('.joms-focus__actions--reposition').off( 'click', 'input' ); elem.data('ui-object') === 'button-save' ? repositionSave() : repositionCancel(); } function repositionSave() { var top; top = pixelToPercent( img.position().top, cover.height() ); repositionReset(); joms.ajax({ func: 'photos,ajaxSetPhotoPhosition', data: [ type, id, top ] }); } function repositionCancel() { img.css({ top: img.data('top') }); repositionReset(); } function repositionReset() { cover.css('cursor', ''); cover.children('.joms-focus__actions--reposition').hide(); cover.children('.joms-focus__header').show(); cover = null; img = null; hammertime = null; repositioning = null; } function pixelToPercent( imgTop, coverHeight ) { var percent; percent = imgTop * 100 / coverHeight; percent = Math.round( percent * 10000 ) / 10000; return percent + '%'; } function click( albumId, photoId ) { if ( !repositioning ) { joms.api.photoOpen( albumId, photoId ); } } // Exports. return { reposition: reposition, click: click }; }); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.page = factory( root, $ ); define('views/page',[ 'utils/hovercard', 'popups/page' ], function() { return joms.view.page; }); })( window, joms.jQuery, function( window, $ ) { function initialize() { // joms.util.hovercard.initialize(); } function like( type, id ) { if (type === 'profile') { $('a.joms-js--like-profile-' + id).attr('onclick', 'javascript:;') } joms.ajax({ func: 'system,ajaxLike', data: [ type, id ], callback: function( json ) { if ( json.success ) { update( 'like', type, id, json.likeCount ); location.reload(); } } }); } function unlike( type, id ) { if (type === 'profile') { $('a.joms-js--like-profile-' + id).attr('onclick', 'javascript:;') } joms.ajax({ func: 'system,ajaxUnlike', data: [ type, id ], callback: function( json ) { if ( json.success ) { update( 'unlike', type, id, json.likeCount ); location.reload(); } } }); } function share( url ) { joms.popup.page.share( url ); } function update( action, type, id, count ) { var elem; elem = $( '.joms-js--like-' + type + '-' + id ); elem.each(function() { var tagName = this.tagName.toLowerCase(), elem = $( this ); if ( tagName === 'a' ) { if ( elem.hasClass('joms-popup__btn-like') ) { updatePopupButton( elem, action, type, id, count ); } else { updateFocusButton( elem, action, type, id, count ); } } else if ( tagName === 'button' ) { if ( elem.hasClass('joms-popup__btn-like') ) { updatePopupButton( elem, action, type, id, count ); } else { updateButton( elem, action, type, id, count ); } } }); } function updatePopupButton( elem, action, type, id, count ) { var icon = '<svg viewBox="0 0 16 16" class="joms-icon"><use xlink:href="#joms-icon-thumbs-up"></use></svg>', lang; if ( action === 'like' ) { elem.attr( 'onclick', 'joms.view.page.unlike("' + type + '", "' + id + '");' ); elem.addClass('liked'); lang = elem.data('lang-liked'); } else if ( action === 'unlike' ) { elem.attr( 'onclick', 'joms.view.page.like("' + type + '", "' + id + '");' ); elem.removeClass('liked'); lang = elem.data('lang-like'); } lang = lang || elem.data('lang'); count = +count; if ( count > 0 ) { lang += ' (' + count + ')'; } elem.html( icon + ' <span>' + lang + '</span>' ); } function updateFocusButton( elem, action, type, id, count ) { var lang; elem.find('span').html( count ); if ( action === 'like' ) { elem.attr( 'onclick', 'joms.view.page.unlike("' + type + '", "' + id + '");' ); elem.addClass('liked'); if ( lang = elem.data('lang-liked') ) { elem.find('.joms-js--lang').text( lang ); } } else if ( action === 'unlike' ) { elem.attr( 'onclick', 'joms.view.page.like("' + type + '", "' + id + '");' ); elem.removeClass('liked'); if ( lang = elem.data('lang-like') ) { elem.find('.joms-js--lang').text( lang ); } } } function updateButton( elem, action, type, id, count ) { var lang; if ( action === 'like' ) { elem.attr( 'onclick', 'joms.view.page.unlike("' + type + '", "' + id + '");' ); elem.removeClass('joms-button--neutral'); elem.addClass('joms-button--primary'); lang = elem.data('lang-liked'); } else if ( action === 'unlike' ) { elem.attr( 'onclick', 'joms.view.page.like("' + type + '", "' + id + '");' ); elem.addClass('joms-button--neutral'); elem.removeClass('joms-button--primary'); lang = elem.data('lang-like'); } lang = lang || elem.data('lang') || ''; count = +count; if ( count > 0 ) { lang += ' (' + count + ')'; } elem.html( lang ); } function react( uid, reactId, type ) { var current = getReaction( reactId), text = current.text, name = current.name, reactClass = 'reaction-btn--' + name, $btn = $('.joms-button--reaction[data-uid='+uid+'][data-type=page]'), element = $btn.attr('data-element'), streamBtn; // sync status between photo popup and stream item if (element === 'photo') { $streamBtn = $('.joms-button--reaction[data-element=photo'+ uid +']'); if ($streamBtn.length) { $btn = $btn.add( $streamBtn ); } } var classes = [ 'reaction-btn--like', 'reaction-btn--love', 'reaction-btn--haha', 'reaction-btn--wow', 'reaction-btn--sad', 'reaction-btn--angry' ]; $btn.removeClass(classes.join(' ')); if (type === 'onBar') { $btn.addClass('reaction-btn--animate'); setTimeout(function() { $btn.removeClass('reaction-btn--animate'); }, 200); } $btn.addClass( reactClass ); $btn.text( text ); $btn.attr('data-reactid', reactId); $btn.attr('data-action', 'unreact'); $btn.attr('onclick', 'javascript:;'); joms.ajax({ func: 'system,ajaxLike', data: [ element, uid, reactId ], callback: function( json ) { var $status = $btn.parents('.joms-stream__actions').siblings('.joms-stream__status'); $status.show(); $status.html(json.html); var onclick = 'joms.view.page.unreact('+uid+', '+reactId+')'; $btn.attr('onclick', onclick); } }); } function unreact( uid, reactId ) { var $btn = $('.joms-stream__actions .joms-button--reaction[data-uid='+uid+'][data-type=page]'), element = $btn.attr('data-element'), text = $btn.attr('data-lang-like'), streamBtn; // sync status between photo popup and stream item if (element === 'photo') { $streamBtn = $('.joms-button--reaction[data-element=photo'+ uid +']'); if ($streamBtn.length) { $btn = $btn.add( $streamBtn ); } } var classes = [ 'reaction-btn--like', 'reaction-btn--love', 'reaction-btn--haha', 'reaction-btn--wow', 'reaction-btn--sad', 'reaction-btn--angry' ]; $btn.removeClass(classes.join(' ')); $btn.text( text ); $btn.attr('data-reactid', 1); $btn.attr('data-action', 'react'); $btn.attr('onclick', 'javascript:;'); joms.ajax({ func: 'system,ajaxUnlike', data: [ element, uid, reactId ], callback: function( json ) { var $status = $btn.parents('.joms-stream__actions').siblings('.joms-stream__status'); if (!json.html) { $status.hide(); } $status.html(json.html); var onclick = 'joms.view.page.react('+uid+', 1)'; $btn.attr('onclick', onclick); } }); } function getReaction( reactId ) { var data = joms.getData('joms_reaction'); var react = data.filter(function(item) { return item.id == reactId; }).pop(); return react; } // Exports. return { initialize: initialize, like: like, unlike: unlike, share: share, react: react, unreact: unreact }; }); (function( root, $, factory ) { joms.view || (joms.view = {}); joms.view.poll = factory( root, $ ); })( window, joms.jQuery, function( window, $ ) { var html; html = $('#joms-template-poll-option__input').html(); function addOption(elm) { $(html).insertBefore(elm); $('.poll-input').last().focus(); } function removeOption(elm) { var $option = $(elm).parents('.joms-poll-option'), $hiddenInput = $option.find('[name="pollItemId[]"]'); if ($hiddenInput.length) { var itemid = $hiddenInput.val(); joms.popup.poll.removeoption( itemid ); } else { $option.remove(); } } function deletePoll ( id ) { joms.popup.poll.delete( id ); } function vote( poll_id, option_id ) { var $onStream = $('.joms-poll__container-'+poll_id), $onModule = $( '.joms-poll__module-container-'+poll_id ), $container = $onStream.add( $onModule ), $loader = $container.find('.joms-poll__loader'), type = []; if ($onStream.length) { type.push( 'stream' ) } if ($onModule.length) { type.push( 'module' ) } ajaxPollVote(poll_id, option_id, type.join('.')); if ($container.find('.input--radio').length) { clearOtherVote( $container, option_id); } } function clearOtherVote( $container, option_id ) { var $inputs = $container.find('.joms-poll_input').not('.joms-poll_input-'+option_id); $inputs.each(function(index, el) { $(el).is(':checked') && $(el).prop('checked', false); }); } function ajaxPollVote( poll_id, option_id, type ) { var $onStream = $('.joms-poll__container-'+poll_id), $onModule = $( '.joms-poll__module-container-'+poll_id ), $container = $onStream.add( $onModule ), $loader = $container.find('.joms-poll__loader'), $list = $('.joms-poll__option-list-' + poll_id), collapse = $list.attr('data-collapse'); $loader.fadeIn(300); joms.ajax({ func: 'polls,ajaxPollVote', data: [ poll_id, option_id, collapse, type ], callback: function( json ) { $loader.fadeOut(300); if (json.success) { json.html.stream && $onStream.html( json.html.stream ); json.html.module && $onModule.html( json.html.module ); } else { alert('ajax vote error! Please contact your admin.'); } } }); } function showVotedUsers( poll_id, option_id ) { joms.popup.poll.voted( poll_id, option_id ); } function moreOptions( poll_id ) { var $list = $('.joms-poll__option-list-' + poll_id), $moreBtn = $('.joms-poll__more-' + poll_id); $list.attr('data-collapse', 1); $list.find('li').show(); $moreBtn.hide(); } return { addOption: addOption, removeOption: removeOption, delete: deletePoll, vote: vote, showVotedUsers: showVotedUsers, moreOptions: moreOptions } }); define("views/poll", function(){}); (function( root, factory ) { joms.api = factory( root ); define('api',[ 'functions/announcement', 'functions/facebook', 'functions/invitation', 'utils/field', 'popups/info', 'popups/login', 'popups/album', 'popups/announcement', 'popups/app', 'popups/avatar', 'popups/comment', 'popups/cover', 'popups/discussion', 'popups/event', 'popups/fbc', 'popups/file', 'popups/friend', 'popups/follower', 'popups/page', 'popups/group', 'popups/inbox', 'popups/location', 'popups/notification', 'popups/photo', 'popups/pm', 'popups/search', 'popups/tnc', 'popups/user', 'popups/video', 'popups/poll', 'popups/reaction', 'dialog/reacted', 'views/cover', 'views/page', 'views/stream', 'views/poll' ], function() { return joms.api; }); })( window, function() { // Exports. return { /** Login form. */ login: function( json ) { joms.popup.login( json ); }, /** User. */ userChangeVanityURL: function( id ) { joms.popup.user.changeVanityURL( id ); }, userAddFeatured: function( id ) { joms.popup.user.addFeatured( id ); }, userRemoveFeatured: function( id ) { joms.popup.user.removeFeatured( id ); }, userBan: function( id ) { joms.popup.user.ban( id ); }, userUnban: function( id ) { joms.popup.user.unban( id ); }, userBlock: function( id ) { joms.popup.user.block( id ); }, userUnblock: function( id ) { joms.popup.user.unblock( id ); }, userIgnore: function( id ) { joms.popup.user.ignore( id ); }, userUnignore: function( id ) { joms.popup.user.unignore( id ); }, userReport: function( id ) { joms.popup.user.report( id ); }, /** Avatar (profile picture). */ avatarChange: function( type, id, e ) { joms.popup.avatar.change( type, id ); if ( e ) { e.stopPropagation(); e.preventDefault(); } }, avatarRemove: function( type, id ) { joms.popup.avatar.remove( type, id ); }, avatarRotate: function( type, id, direction, callback ) { joms.popup.avatar.rotate( type, id, direction, callback ); }, /** Profile cover. */ coverChange: function( type, id ) { joms.popup.cover.change( type, id ); }, coverRemove: function( type, id ) { joms.popup.cover.remove( type, id ); }, coverReposition: function( type, id ) { joms.view.cover.reposition( type, id ); }, coverClick: function( albumId, photoId ) { joms.view.cover.click( albumId, photoId ); }, /** Events. */ eventInvite: function( id, type ) { joms.popup.event.invite( id, type ); }, eventJoin: function( id ) { joms.popup.event.join( id ); }, eventLeave: function( id ) { joms.popup.event.leave( id ); }, eventResponse: function() { joms.popup.event.response.apply( this, arguments ); }, eventAddFeatured: function( id ) { joms.popup.event.addFeatured( id ); }, eventRemoveFeatured: function( id ) { joms.popup.event.removeFeatured( id ); }, eventReport: function( id ) { joms.popup.event.report( id ); }, eventDelete: function( id ) { joms.popup.event[ 'delete' ]( id ); }, eventRejectGuest: function( id, userId ) { joms.popup.event.rejectGuest( id, userId ); }, eventBanMember: function( id, userId ) { joms.popup.event.banMember( id, userId ); }, eventUnbanMember: function( id, userId ) { joms.popup.event.unbanMember( id, userId ); }, eventUnpublish: function( id ) { joms.popup.event.unpublish( id ); }, /** Friends. */ friendAdd: function( id ) { joms.popup.friend.add( id ); }, friendAddCancel: function( id ) { joms.popup.friend.addCancel( id ); }, friendRemove: function( id ) { joms.popup.friend.remove( id ); }, friendResponse: function( id ) { joms.popup.friend.response( id ); }, friendApprove: function( id ) { joms.popup.friend.approve( id ); }, friendReject: function( id ) { joms.popup.friend.reject( id ); }, /** Followers. */ followAdd: function( id ) { joms.popup.follower.add( id ); }, followRemove: function( id ) { joms.popup.follower.remove( id ); }, /** Groups. */ groupInvite: function( id ) { joms.popup.group.invite( id, 1, 1 ); }, groupJoin: function( id ) { joms.popup.group.join( id ); }, groupLeave: function( id ) { joms.popup.group.leave( id ); }, groupAddFeatured: function( id ) { joms.popup.group.addFeatured( id ); }, groupRemoveFeatured: function( id ) { joms.popup.group.removeFeatured( id ); }, groupReport: function( id ) { joms.popup.group.report( id ); }, groupUnpublish: function( id ) { joms.popup.group.unpublish( id ); }, groupDelete: function( id ) { joms.popup.group[ 'delete' ]( id ); }, groupApprove: function( id, userId ) { joms.popup.group.approve( id, userId ); }, groupRemoveMember: function( id, userId ) { joms.popup.group.removeMember( id, userId ); }, groupBanMember: function( id, userId ) { joms.popup.group.banMember( id, userId ); }, groupUnbanMember: function( id, userId ) { joms.popup.group.unbanMember( id, userId ); }, /** Notifications. */ notificationGeneral: function() { joms.view.toolbar.notificationGeneral(); }, notificationFriend: function() { joms.view.toolbar.notificationFriend(); }, notificationPm: function() { joms.view.toolbar.notificationPm(); }, /** Photos. */ photoUpload: function( albumId, contextId, context ) { joms.popup.photo.upload( albumId, contextId, context ); }, photoOpen: function( albumId, id ) { joms.popup.photo.open( albumId, id ); }, photoRemove: function( id ) { joms.popup.photo.remove( id ); }, photoZoom: function( url ) { joms.popup.photo.zoom( url ); }, photoSetAvatar: function( id ) { joms.popup.photo.setAvatar( id ); }, photoSetCover: function( albumId, id ) { joms.popup.photo.setCover( albumId, id ); }, photoSetAlbum: function( id ) { joms.popup.photo.setAlbum( id ); }, photoReport: function( id, url ) { joms.popup.photo.report( id, url ); }, /** Photo albums. */ albumRemove: function( id ) { joms.popup.album.remove( id ); }, albumAddFeatured: function( id ) { joms.popup.album.addFeatured( id ); }, albumRemoveFeatured: function( id ) { joms.popup.album.removeFeatured( id ); }, /** Private messages. */ pmSend: function( id ) { joms.popup.pm.send( id ); }, /** Videos. */ videoAdd: function( contextId, context ) { joms.popup.video.add( contextId, context ); }, videoOpen: function( id ) { joms.popup.video.open( id ); }, videoEdit: function( id ) { joms.popup.video.edit( id ); }, videoRemove: function( id, redirect ) { joms.popup.video.remove( id, redirect ); }, videoAddFeatured: function( id ) { joms.popup.video.addFeatured( id ); }, videoRemoveFeatured: function( id ) { joms.popup.video.removeFeatured( id ); }, videoLinkToProfile: function( id ) { joms.popup.video.linkToProfile( id ); }, videoRemoveLinkFromProfile: function( id, userId ) { joms.popup.video.removeLinkFromProfile( id, userId ); }, videoFetchThumbnail: function( id ) { joms.popup.video.fetchThumbnail( id ); }, videoReport: function( id, url ) { joms.popup.video.report( id, url ); }, locationView: function( id ) { joms.popup.location.view( id ); }, /** Stream. */ streamLike: function( id ) { joms.view.stream.like( id ); }, streamUnlike: function( id ) { joms.view.stream.unlike( id ); }, streamEdit: function( id, el ) { joms.view.stream.edit( id, el ); }, streamEditLocation: function( id ) { joms.view.stream.editLocation( id ); }, streamRemove: function( id ) { joms.view.stream.remove( id ); }, streamRemoveLocation: function( id ) { joms.view.stream.removeLocation( id ); }, streamRemoveMood: function( id ) { joms.view.stream.removeMood( id ); }, streamRemoveTag: function( id ) { joms.view.stream.removeTag( id ); }, streamSelectPrivacy: function( id ) { joms.view.stream.selectPrivacy( id ); }, streamShare: function( id ) { joms.view.stream.share( id ); }, streamHide: function( id, userId ) { joms.view.stream.hide( id, userId ); }, streamShowLikes: function( id, target ) { joms.view.stream.showLikes( id, target ); }, streamShowComments: function( id, type ) { joms.view.stream.showComments( id, type ); }, streamShowOthers: function( id ) { joms.view.stream.showOthers( id ); }, streamReport: function( id, commentid ) { joms.view.stream.report( id, commentid); }, streamToggleText: function( id ) { joms.view.stream.toggleText( id ); }, streamAddFeatured: function( id ) { joms.view.stream.addFeatured( id ); }, streamRemoveFeatured: function( id ) { joms.view.stream.removeFeatured( id ); }, /** Streams. */ streamsLoadMore: function() { joms.view.streams.loadMore(); }, /** Comment system. */ commentLike: function( id ) { joms.view.comment.like( id ); }, commentUnlike: function( id ) { joms.view.comment.unlike( id ); }, commentEdit: function( id, el, type ) { joms.view.comment.edit( id, el, type ); }, commentCancel: function( id ) { joms.view.comment.cancel( id ); }, commentRemove: function( id, type ) { joms.view.comment.remove( id, type ); }, commentRemoveTag: function( id, type ) { joms.view.comment.removeTag( id, type ); }, commentRemovePreview: function( id, type ) { joms.view.comment.removePreview( id, type ); }, commentRemoveThumbnail: function( id, type ) { joms.view.comment.removeThumbnail( id, type ); }, commentShowLikes: function( id ) { joms.popup.comment.showLikes( id ); }, commentToggleText: function( id ) { joms.view.comment.toggleText( id ); }, /** Application */ appAbout: function( name ) { joms.popup.app.about( name ); }, appBrowse: function( pos ) { joms.popup.app.browse( pos ); }, appPrivacy: function( name ) { joms.popup.app.privacy( name ); }, appRemove: function( id ) { joms.popup.app.remove( id ); }, appSetting: function( id, name ) { joms.popup.app.setting( id, name ); }, /** Search. */ searchSave: function( data ) { joms.popup.search.save( data ); }, /** Page */ pageLike: function( type, id ) { joms.view.page.like( type, id ); }, pageUnlike: function( type, id ) { joms.view.page.unlike( type, id ); }, pageShare: function( url ) { joms.view.page.share( url ); }, pageInvite: function( id ) { joms.popup.page.invite( id ); }, pageDelete: function( id ) { joms.popup.page.delete( id ); }, pagePublish: function( id ) { joms.popup.page.publish( id ); }, pageUnpublish: function( id ) { joms.popup.page.unpublish( id ); }, pageAddFeatured: function( id ) { joms.popup.page.addFeatured( id ); }, pageRemoveFeatured: function( id ) { joms.popup.page.removeFeatured( id ); }, pageBanMember: function( id, userId ) { joms.popup.page.banMember( id, userId ); }, pageUnbanMember: function( id, userId ) { joms.popup.page.unbanMember( id, userId ); }, pageRemoveMember: function( id, userId ) { joms.popup.page.removeMember( id, userId ); }, pageReport: function( id ) { joms.popup.page.report( id ); }, /** Invitation */ invitationAccept: function( type, id ) { joms.fn.invitation.accept( type, id ); }, invitationReject: function( type, id ) { joms.fn.invitation.reject( type, id ); }, /** File */ fileUpload: function( type, id ) { joms.popup.file.upload( type, id ); }, fileList: function( type, id ) { joms.popup.file.list( type, id ); }, fileDownload: function( type, id, path ) { joms.popup.file.download( type, id, path ); }, fileRemove: function( type, id ) { joms.popup.file.remove( type, id ); }, fileUpdateHit: function( id, location ) { joms.popup.file.updateHit( id, location ); }, /** Discussion */ discussionLock: function( groupId, id ) { joms.popup.discussion.lock( groupId, id ); }, discussionRemove: function( groupId, id ) { joms.popup.discussion.remove( groupId, id ); }, /** Announcement */ announcementEdit: function( groupId, id ) { joms.fn.announcement.edit( groupId, id ); }, announcementEditCancel: function( groupId, id ) { joms.fn.announcement.editCancel( groupId, id ); }, announcementRemove: function( groupId, id ) { joms.popup.announcement.remove( groupId, id ); }, /** Inbox */ inboxRemove: function( task, msgIds ) { joms.popup.inbox.remove( task, msgIds ); }, inboxSetRead: function( msgIds, error ) { joms.popup.inbox.setRead( msgIds, error ); }, inboxSetUnread: function( msgIds, error ) { joms.popup.inbox.setUnread( msgIds, error ); }, /** Terms of services */ tnc: function() { joms.popup.tnc(); }, /** Facebook connect */ fbcUpdate: function() { joms.popup.fbc.update(); } }; }); require([ 'core', 'utils/crop', 'utils/dropdown', 'utils/hovercard', 'utils/reaction', 'utils/loadlib', 'utils/location-autocomplete', 'utils/popup', 'utils/tab', 'utils/tagging', 'utils/validation', 'utils/video', 'utils/wysiwyg', 'utils/dialog', 'utils/emoji', 'functions/tagging', 'views/comment', 'utils/emoticon', 'views/customize', 'views/misc', 'views/stream', 'views/streams', 'views/toolbar', 'api' ], function() { joms.onStart(function() { if (joms.getData('client') === 'site') { joms.view.comment.start(); joms.view.page.initialize(); joms.view.stream.start(); joms.view.streams.start(); joms.view.toolbar.start(); joms.view.customize.start(); joms.view.misc.start(); joms.util.dropdown.start(); joms.util.tab.start(); joms.util.validation.start(); joms.util.hovercard.initialize(); joms.util.reaction.initialize(); // Fetch all friends in context (group, event, or default) if user is logged-in. if ( +window.joms_my_id ) { joms.fn.tagging.fetchFriendsInContext(); } } joms.util.wysiwyg.start(); }); joms.jQuery(function() { joms.start(); }); }); define("bundle", function(){}); }());
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0.07 |
proxy
|
phpinfo
|
ÐаÑтройка