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