Path: blob/master/emojionearea/src/function/loadEmojione.js
575 views
define([1'var/emojione',2'var/uniRegexp',3'var/emojioneVersion',4'var/readyCallbacks',5'var/emojioneSupportMode',6'var/cdn',7'function/emojioneReady',8'function/isObject'9],10function(emojione, uniRegexp, emojioneVersion, readyCallbacks, emojioneSupportMode, cdn, emojioneReady, isObject) {11return function(options) {1213function detectVersion(emojione) {14var version = emojione.cacheBustParam;15if (!isObject(emojione['jsEscapeMap'])) return '1.5.2';16if (version === "?v=1.2.4") return '2.0.0';17if (version === "?v=2.0.1") return '2.1.0'; // v2.0.1 || v2.1.018if (version === "?v=2.1.1") return '2.1.1';19if (version === "?v=2.1.2") return '2.1.2';20if (version === "?v=2.1.3") return '2.1.3';21if (version === "?v=2.1.4") return '2.1.4';22if (version === "?v=2.2.7") return '2.2.7';23return '2.2.7';24}2526function getSupportMode(version) {27switch (version) {28case '1.5.2': return 0;29case '2.0.0': return 1;30case '2.1.0':31case '2.1.1': return 2;32case '2.1.2': return 3;33case '2.1.3':34case '2.1.4':35case '2.2.7':36default: return 4;37}38}39options = getOptions(options);4041if (!cdn.isLoading) {42if (!emojione || getSupportMode(detectVersion(emojione)) < 2) {43cdn.isLoading = true;44$.getScript(cdn.defaultBase + emojioneVersion + "/lib/js/emojione.min.js", function () {45emojione = window.emojione;46emojioneVersion = detectVersion(emojione);47emojioneSupportMode = getSupportMode(emojioneVersion);48cdn.base = cdn.defaultBase + emojioneVersion + "/assets";49if (options.sprite) {50var sprite = cdn.base + "/sprites/emojione.sprites.css";51if (document.createStyleSheet) {52document.createStyleSheet(sprite);53} else {54$('<link/>', {rel: 'stylesheet', href: sprite}).appendTo('head');55}56}57while (readyCallbacks.length) {58readyCallbacks.shift().call();59}60cdn.isLoading = false;61});62} else {63emojioneVersion = detectVersion(emojione);64emojioneSupportMode = getSupportMode(emojioneVersion);65cdn.base = cdn.defaultBase + emojioneVersion + "/assets";66}67}6869emojioneReady(function() {70if (options.useInternalCDN) {71emojione.imagePathPNG = cdn.base + "/png/";72emojione.imagePathSVG = cdn.base + "/svg/";73emojione.imagePathSVGSprites = cdn.base + "/sprites/emojione.sprites.svg";74emojione.imageType = options.imageType;75}7677uniRegexp = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|(" + emojione.unicodeRegexp + ")", "gi");78});79};80});818283