!function(l){"use strict";functionn(){}functioni(n){returnfunction(){returnn}}functiont(){returna}vare,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=i(!1),u=i(!0),a=(e={fold:function(n,t){returnn()},is:c,isSome:c,isNone:u,getOr:f,getOrThunk:s,getOrDie:function(n){thrownewError(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:f,orThunk:s,map:t,each:n,bind:t,exists:c,forall:u,filter:t,equals:o,equals_:o,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(e),e);functiono(n){returnn.isNone()}functions(n){returnn()}functionf(n){returnn}functionm(n,t){return-1!==n.indexOf(t)}functiong(n,t){returnm(n.title.toLowerCase(),t)||function(n,t){for(vare=0,r=n.length;e<r;e++){if(t(n[e],e))return!0}return!1}(n.keywords,function(n){returnm(n.toLowerCase(),t)})}functiond(n,t,e){for(varr=[],o=t.toLowerCase(),i=e.fold(function(){returnc},function(t){returnfunction(n){returnt<=n}}),u=0;u<n.length&&(0!==t.length&&!g(n[u],o)||(r.push({value:n[u]["char"],text:n[u].title,icon:n[u]["char"]}),!i(r.length)));u++);returnr}functiony(n,t){for(vare=P(n),r=0,o=e.length;r<o;r++){vari=e[r];t(n[i],i)}}functionp(n,t){returnfunction(n,t){returnD.call(n,t)}(n,t)?n[t]:t}functionv(n){returnfunction(n,e){returnS(n,function(n,t){return{k:t,v:e(n,t)}})}(q(n),function(n){return_({keywords:[],category:"user"},n)})}functionh(e,o,n){varr=k(A.none()),u=k(A.none());e.on("init",function(){x.load(n,o).then(function(n){vart=v(e);!function(n){varo={},i=[];y(n,function(n,t){vare={title:t,keywords:n.keywords,"char":n["char"],category:p(I,n.category)},r=o[e.category]!==undefined?o[e.category]:[];o[e.category]=r.concat([e]),i.push(e)}),r.set(A.some(o)),u.set(A.some(i))}(_(n,t))},function(n){l.console.log("Failed to load emoticons: "+n),r.set(A.some({})),u.set(A.some([]))})});vari=function(){returnu.get().getOr([])},c=function(){returnr.get().isSome()&&u.get().isSome()};return{listCategories:function(){return[z].concat(P(r.get().getOr({})))},hasLoaded:c,waitForLoad:function(){returnc()?N.resolve(!0):newN(function(n,t){vare=15,r=L.setInterval(function(){c()?(L.clearInterval(r),n(!0)):--e<0&&(l.console.log("Could not load emojis from url: "+o),L.clearInterval(r),t(!1))},100)})},listAll:i,listCategory:function(t){returnt===z?i():r.get().bind(function(n){returnA.from(n[t])}).getOr([])}}}varb,w,O=function(e){functionn(){returno}functiont(n){returnn(e)}varr=i(e),o={fold:function(n,t){returnt(e)},is:function(n){returne===n},isSome:u,isNone:c,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){returnO(n(e))},each:function(n){n(e)},bind:t,exists:t,forall:t,filter:function(n){returnn(e)?o:a},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){returnn.is(e)},equals_:function(n,t){returnn.fold(c,function(n){returnt(e,n)})}};returno},A={some:O,none:t,from:function(n){returnnull===n||n===undefined?a:O(n)}},j=(b="function",function(n){returnfunction(n){if(null===n)return"null";vart=typeofn;return"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t}(n)===b}),C=Array.prototype.slice,k=(j(Array.from)&&Array.from,function(n){functiont(){returne}vare=n;return{get:t,set:function(n){e=n},clone:function(){returnk(t())}}}),T=Object.prototype.hasOwnProperty,_=(w=function(n,t){returnt},function(){for(varn=newArray(arguments.length),t=0;t<n.length;t++)n[t]=arguments[t];if(0===n.length)thrownewError("Can't merge zero objects");for(vare={},r=0;r<n.length;r++){varo=n[r];for(variino)T.call(o,i)&&(e[i]=w(e[i],o[i]))}returne}),P=Object.keys,D=Object.hasOwnProperty,S=function(n,r){varo={};returny(n,function(n,t){vare=r(n,t);o[e.k]=e.v}),o},x=tinymce.util.Tools.resolve("tinymce.Resource"),L=tinymce.util.Tools.resolve("tinymce.util.Delay"),N=tinymce.util.Tools.resolve("tinymce.util.Promise"),E=function(n,t){returnn.getParam(