From: Cyperghost Date: Wed, 16 Oct 2024 06:54:53 +0000 (+0200) Subject: Remove `LANGUAGE_CODE` and use `document.documentElement.lang`. X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=da3e12e0e3a529456959212bb16fbc4e57e17944;p=GitHub%2FWoltLab%2FWCF.git Remove `LANGUAGE_CODE` and use `document.documentElement.lang`. Find emojis by language code with a region and if not available without a region. --- diff --git a/com.woltlab.wcf/templates/headIncludeJavaScript.tpl b/com.woltlab.wcf/templates/headIncludeJavaScript.tpl index b08015171d..3bb9f14111 100644 --- a/com.woltlab.wcf/templates/headIncludeJavaScript.tpl +++ b/com.woltlab.wcf/templates/headIncludeJavaScript.tpl @@ -8,7 +8,6 @@ var WSC_RPC_API_URL = '{link controller="Api" id="rpc"}{/link}'; {* The SECURITY_TOKEN is defined in wcf.globalHelper.js *} var LANGUAGE_ID = {@$__wcf->getLanguage()->languageID}; - var LANGUAGE_CODE = "{@$__wcf->getLanguage()->languageCode}"; var LANGUAGE_USE_INFORMAL_VARIANT = {if LANGUAGE_USE_INFORMAL_VARIANT}true{else}false{/if}; var TIME_NOW = {@TIME_NOW}; var LAST_UPDATE_TIME = {@LAST_UPDATE_TIME}; diff --git a/ts/WoltLabSuite/WebComponent/emoji-picker.ts b/ts/WoltLabSuite/WebComponent/emoji-picker.ts index f9007826d1..87e7186891 100644 --- a/ts/WoltLabSuite/WebComponent/emoji-picker.ts +++ b/ts/WoltLabSuite/WebComponent/emoji-picker.ts @@ -27,14 +27,14 @@ const EmojiPickerLocales: { [key: string]: I18n } = { hi, id, it, - ms_MY, + "ms-my": ms_MY, nl, pl, - pt_BR, - pt_PT, - ru_RU, + "pt-br": pt_BR, + "pt-pt": pt_PT, + "ru-ru": ru_RU, tr, - zh_CN, + "zh-cn": zh_CN, }; function getDataSource(locale: string): string { @@ -44,7 +44,7 @@ function getDataSource(locale: string): string { void customElements.whenDefined("emoji-picker").then(() => { class WoltlabCoreEmojiPicker extends Picker { constructor(props: PickerConstructorOptions | null | undefined) { - const locale = (props && props.locale) || window.LANGUAGE_CODE; + const locale = (props && props.locale) || document.documentElement.lang; super({ locale: locale, diff --git a/ts/WoltLabSuite/WebComponent/global.d.ts b/ts/WoltLabSuite/WebComponent/global.d.ts index 0c3474fb37..c2683d1ad6 100644 --- a/ts/WoltLabSuite/WebComponent/global.d.ts +++ b/ts/WoltLabSuite/WebComponent/global.d.ts @@ -27,7 +27,6 @@ declare global { [key: string]: Reaction; }; TIME_NOW: number; - LANGUAGE_CODE: string; WSC_API_URL: string; getFontAwesome6IconMetadata: (name: string) => IconMetadata | undefined; diff --git a/ts/global.d.ts b/ts/global.d.ts index 971544012e..d6c4fd0d9b 100644 --- a/ts/global.d.ts +++ b/ts/global.d.ts @@ -30,7 +30,6 @@ declare global { ENABLE_DEBUG_MODE: boolean; ENABLE_DEVELOPER_TOOLS: boolean; LANGUAGE_ID: number; - LANGUAGE_CODE: string; PAGE_TITLE: string; REACTION_TYPES: { [key: string]: Reaction; diff --git a/wcfsetup/install/files/emoji/index.php b/wcfsetup/install/files/emoji/index.php index d7e45e4780..1c57bc0f9a 100644 --- a/wcfsetup/install/files/emoji/index.php +++ b/wcfsetup/install/files/emoji/index.php @@ -15,6 +15,20 @@ use GuzzleHttp\Psr7\Header; throw new \ErrorException($message, 0, $severity, $file, $line); }); +function getEmojiPath(string $lang): ?string +{ + $emojibase = __DIR__ . "/{$lang}/emojibase/data.json"; + $default = __DIR__ . "/{$lang}/cldr/data.json"; + + if (\file_exists($emojibase)) { + return $emojibase; + } elseif (\file_exists($default)) { + return $default; + } + + return null; +} + require(__DIR__ . '/../lib/system/api/autoload.php'); if (!isset($_GET['l']) || !\preg_match('~^[A-Za-z\-]+$~', $_GET['l'])) { @@ -23,14 +37,13 @@ if (!isset($_GET['l']) || !\preg_match('~^[A-Za-z\-]+$~', $_GET['l'])) { } $lang = $_GET['l']; -$emojibase = __DIR__ . "/{$lang}/emojibase/data.json"; -$default = __DIR__ . "/{$lang}/cldr/data.json"; +$location = getEmojiPath($lang); +if ($location === null && \str_contains($lang, '-')) { + // fallback to language without a region + $location = getEmojiPath(\explode('-', $lang)[0]); +} -if (\file_exists($emojibase)) { - $location = $emojibase; -} elseif (\file_exists($default)) { - $location = $default; -} else { +if ($location === null) { @\http_response_code(404); exit; } diff --git a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js index 40028f40c4..e73494630b 100644 --- a/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js +++ b/wcfsetup/install/files/js/WoltLabSuite/WebComponent.min.js @@ -1,9 +1,9 @@ -"use strict";(()=>{var Zt=Object.create;var Se=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var Jt=Object.getPrototypeOf,ea=Object.prototype.hasOwnProperty;var je=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var ta=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Xe=(t,e)=>{for(var s in e)Se(t,s,{get:e[s],enumerable:!0})},aa=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Xt(e))!ea.call(t,n)&&n!==s&&Se(t,n,{get:()=>e[n],enumerable:!(r=Qt(e,n))||r.enumerable});return t};var sa=(t,e,s)=>(s=t!=null?Zt(Jt(t)):{},aa(e||!t||!t.__esModule?Se(s,"default",{value:t,enumerable:!0}):s,t));var Je=ta((Q,_e)=>{"use strict";var pe=function(){var t=function(N,g,y,v){for(y=y||{},v=N.length;v--;y[N[v]]=g);return y},e=[2,44],s=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],r=[1,25],n=[1,27],a=[1,33],i=[1,31],f=[1,32],d=[1,28],c=[1,29],h=[1,26],w=[1,35],m=[1,41],T=[1,40],b=[11,12,15,42,43,47,49,51,52,54,55],S=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],j=[11,12,15,42,43,46,47,48,49,51,52,54,55],M=[1,64],k=[1,65],L=[18,37,39],C=[12,15],D={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(g,y,v,I,A,l,Y){var p=l.length-1;switch(A){case 1:return l[p-1]+";";case 2:var B=l[p].reduce(function(O,q){return q.encode&&!O[1]?O[0]+=" + '"+q.value:q.encode&&O[1]?O[0]+=q.value:!q.encode&&O[1]?O[0]+="' + "+q.value:!q.encode&&!O[1]&&(O[0]+=" + "+q.value),O[1]=q.encode,O},["''",!1]);B[1]&&(B[0]+="'"),this.$=B[0];break;case 3:case 4:this.$={encode:!0,value:l[p].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:l[p]};break;case 8:this.$="(function() { if ("+l[p-5]+") { return "+l[p-3]+"; } "+l[p-2].join(" ")+" "+(l[p-1]||"")+" return ''; })()";break;case 9:if(!l[p-1].file)throw new Error("Missing parameter file");this.$=l[p-1].file+".fetch(v)";break;case 10:if(!l[p-3].from)throw new Error("Missing parameter from");if(!l[p-3].item)throw new Error("Missing parameter item");l[p-3].glue||(l[p-3].glue="', '"),this.$="(function() { return "+l[p-3].from+".map(function(item) { v["+l[p-3].item+"] = item; return "+l[p-1]+"; }).join("+l[p-3].glue+"); })()";break;case 11:if(!l[p-4].from)throw new Error("Missing parameter from");if(!l[p-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+l[p-4].from+" instanceof Array) {for (var i = 0; i < "+l[p-4].from+".length; i++) { looped = true;v["+l[p-4].key+"] = i;v["+l[p-4].item+"] = "+l[p-4].from+"[i];result += "+l[p-2]+";}} else {for (var key in "+l[p-4].from+") {if (!"+l[p-4].from+".hasOwnProperty(key)) continue;looped = true;v["+l[p-4].key+"] = key;v["+l[p-4].item+"] = "+l[p-4].from+"[key];result += "+l[p-2]+";}}return (looped ? result : "+(l[p-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var Z=!1;for(var G in l[p-1])Object.hasOwn(l[p-1],G)&&(this.$+=(Z?",":"")+G+": "+l[p-1][G],Z=!0);this.$+="})";break;case 13:this.$="Language.get("+l[p-1]+", v)";break;case 14:this.$="h.escapeHTML("+l[p-1]+")";break;case 15:this.$="h.formatNumeric("+l[p-1]+")";break;case 16:this.$=l[p-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+l[p]+"; }";break;case 20:this.$="else if ("+l[p-2]+") { return "+l[p]+"; }";break;case 21:this.$=l[p];break;case 22:this.$="v['"+l[p-1]+"']"+l[p].join("");break;case 23:this.$=l[p-2]+l[p-1]+l[p];break;case 24:this.$="['"+l[p]+"']";break;case 25:case 39:this.$=l[p-2]+(l[p-1]||"")+l[p];break;case 26:case 40:this.$=l[p],this.$[l[p-4]]=l[p-2];break;case 27:case 41:this.$={},this.$[l[p-2]]=l[p];break;case 31:this.$=l[p].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:l[p-1].push(l[p]);break;case 56:this.$=[l[p]];break}},table:[t([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],e,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},t([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},t(s,[2,45]),t(s,[2,3]),t(s,[2,4]),t(s,[2,5]),t(s,[2,6]),t(s,[2,7]),{11:r,12:n,14:22,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},{20:34,43:w},{20:36,43:w},{20:37,43:w},{27:38,43:m,55:T,58:39},t([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],e,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},t(s,[2,17]),t(s,[2,18]),{15:[1,46]},t([15,47,51],[2,31],{31:30,57:47,11:r,12:n,42:a,43:i,49:f,52:d,54:c,55:h}),t(b,[2,56]),t(b,[2,32]),t(b,[2,33]),t(b,[2,34]),t(b,[2,35]),t(b,[2,36]),t(b,[2,37]),t(b,[2,38]),{11:r,12:n,14:48,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},t(S,e,{6:3,4:60}),t(b,[2,57]),{51:[1,61]},t(j,[2,52],{44:62}),t(s,[2,9]),{31:66,42:a,53:63,54:M,55:k},t([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],e,{6:3,4:67}),t([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],e,{6:3,4:68}),t(s,[2,12]),{31:66,42:a,53:69,54:M,55:k},t(s,[2,13]),t(s,[2,14]),t(s,[2,15]),t(s,[2,16]),t(L,[2,46],{16:70}),t(b,[2,39]),t([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},t(C,[2,28]),t(C,[2,29]),t(C,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},t(j,[2,53]),{11:r,12:n,14:86,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},{43:[1,87]},{11:r,12:n,14:89,31:30,42:a,43:i,49:f,50:88,51:[2,54],52:d,54:c,55:h,56:23,57:24},{20:90,43:w},t(s,[2,10]),{25:[1,91]},{25:[2,51]},t([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],e,{6:3,4:92}),{27:93,43:m,55:T,58:39},{18:[1,94]},t(L,[2,47]),{18:[2,49]},{11:r,12:n,14:95,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},t([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],e,{6:3,4:96}),{47:[1,97]},t(j,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},t(s,[2,11]),{25:[2,21]},{15:[2,40]},t(s,[2,8]),{15:[1,99]},{18:[2,19]},t(j,[2,23]),t(j,[2,25]),t(S,e,{6:3,4:100}),t(L,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(g,y){if(y.recoverable)this.trace(g);else{var v=new Error(g);throw v.hash=y,v}},parse:function(g){var y=this,v=[0],I=[],A=[null],l=[],Y=this.table,p="",B=0,Z=0,G=0,O=2,q=1,ie=l.slice.call(arguments,1),z=Object.create(this.lexer),W={yy:{}};for(var oe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,oe)&&(W.yy[oe]=this.yy[oe]);z.setInput(g,W.yy),W.yy.lexer=z,W.yy.parser=this,typeof z.yylloc>"u"&&(z.yylloc={});var le=z.yylloc;l.push(le);var xe=z.options&&z.options.ranges;typeof W.yy.parseError=="function"?this.parseError=W.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ze(U){v.length=v.length-2*U,A.length=A.length-U,l.length=l.length-U}for(var o=function(){var U;return U=z.lex()||q,typeof U!="number"&&(U=y.symbols_[U]||U),U},u,E,x,_,P,R,F={},de,V,Qe,he;;){if(x=v[v.length-1],this.defaultActions[x]?_=this.defaultActions[x]:((u===null||typeof u>"u")&&(u=o()),_=Y[x]&&Y[x][u]),typeof _>"u"||!_.length||!_[0]){var Le="";he=[];for(de in Y[x])this.terminals_[de]&&de>O&&he.push("'"+this.terminals_[de]+"'");z.showPosition?Le="Parse error on line "+(B+1)+`: +"use strict";(()=>{var Zt=Object.create;var Se=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var Jt=Object.getPrototypeOf,ea=Object.prototype.hasOwnProperty;var je=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var ta=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Xe=(t,e)=>{for(var s in e)Se(t,s,{get:e[s],enumerable:!0})},aa=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Xt(e))!ea.call(t,n)&&n!==s&&Se(t,n,{get:()=>e[n],enumerable:!(r=Qt(e,n))||r.enumerable});return t};var sa=(t,e,s)=>(s=t!=null?Zt(Jt(t)):{},aa(e||!t||!t.__esModule?Se(s,"default",{value:t,enumerable:!0}):s,t));var Je=ta((Q,_e)=>{"use strict";var pe=function(){var t=function(N,g,y,v){for(y=y||{},v=N.length;v--;y[N[v]]=g);return y},e=[2,44],s=[5,9,11,12,13,18,19,21,22,23,25,26,28,29,30,32,33,34,35,37,39,41],r=[1,25],n=[1,27],a=[1,33],i=[1,31],f=[1,32],d=[1,28],c=[1,29],h=[1,26],w=[1,35],m=[1,41],T=[1,40],b=[11,12,15,42,43,47,49,51,52,54,55],S=[9,11,12,13,18,19,21,23,26,28,30,32,33,34,35,37,39],j=[11,12,15,42,43,46,47,48,49,51,52,54,55],M=[1,64],k=[1,65],L=[18,37,39],I=[12,15],D={trace:function(){},yy:{},symbols_:{error:2,TEMPLATE:3,CHUNK_STAR:4,EOF:5,CHUNK_STAR_repetition0:6,CHUNK:7,PLAIN_ANY:8,T_LITERAL:9,COMMAND:10,T_ANY:11,T_WS:12,"{if":13,COMMAND_PARAMETERS:14,"}":15,COMMAND_repetition0:16,COMMAND_option0:17,"{/if}":18,"{include":19,COMMAND_PARAMETER_LIST:20,"{implode":21,"{/implode}":22,"{foreach":23,COMMAND_option1:24,"{/foreach}":25,"{plural":26,PLURAL_PARAMETER_LIST:27,"{lang}":28,"{/lang}":29,"{":30,VARIABLE:31,"{#":32,"{@":33,"{ldelim}":34,"{rdelim}":35,ELSE:36,"{else}":37,ELSE_IF:38,"{elseif":39,FOREACH_ELSE:40,"{foreachelse}":41,T_VARIABLE:42,T_VARIABLE_NAME:43,VARIABLE_repetition0:44,VARIABLE_SUFFIX:45,"[":46,"]":47,".":48,"(":49,VARIABLE_SUFFIX_option0:50,")":51,"=":52,COMMAND_PARAMETER_VALUE:53,T_QUOTED_STRING:54,T_DIGITS:55,COMMAND_PARAMETERS_repetition_plus0:56,COMMAND_PARAMETER:57,T_PLURAL_PARAMETER_NAME:58,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",9:"T_LITERAL",11:"T_ANY",12:"T_WS",13:"{if",15:"}",18:"{/if}",19:"{include",21:"{implode",22:"{/implode}",23:"{foreach",25:"{/foreach}",26:"{plural",28:"{lang}",29:"{/lang}",30:"{",32:"{#",33:"{@",34:"{ldelim}",35:"{rdelim}",37:"{else}",39:"{elseif",41:"{foreachelse}",42:"T_VARIABLE",43:"T_VARIABLE_NAME",46:"[",47:"]",48:".",49:"(",51:")",52:"=",54:"T_QUOTED_STRING",55:"T_DIGITS"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[8,1],[8,1],[10,7],[10,3],[10,5],[10,6],[10,3],[10,3],[10,3],[10,3],[10,3],[10,1],[10,1],[36,2],[38,4],[40,2],[31,3],[45,3],[45,2],[45,3],[20,5],[20,3],[53,1],[53,1],[53,1],[14,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,1],[57,3],[27,5],[27,3],[58,1],[58,1],[6,0],[6,2],[16,0],[16,2],[17,0],[17,1],[24,0],[24,1],[44,0],[44,2],[50,0],[50,1],[56,1],[56,2]],performAction:function(g,y,v,C,A,l,Y){var p=l.length-1;switch(A){case 1:return l[p-1]+";";case 2:var B=l[p].reduce(function(R,q){return q.encode&&!R[1]?R[0]+=" + '"+q.value:q.encode&&R[1]?R[0]+=q.value:!q.encode&&R[1]?R[0]+="' + "+q.value:!q.encode&&!R[1]&&(R[0]+=" + "+q.value),R[1]=q.encode,R},["''",!1]);B[1]&&(B[0]+="'"),this.$=B[0];break;case 3:case 4:this.$={encode:!0,value:l[p].replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/(\r\n|\n|\r)/g,"\\n")};break;case 5:this.$={encode:!1,value:l[p]};break;case 8:this.$="(function() { if ("+l[p-5]+") { return "+l[p-3]+"; } "+l[p-2].join(" ")+" "+(l[p-1]||"")+" return ''; })()";break;case 9:if(!l[p-1].file)throw new Error("Missing parameter file");this.$=l[p-1].file+".fetch(v)";break;case 10:if(!l[p-3].from)throw new Error("Missing parameter from");if(!l[p-3].item)throw new Error("Missing parameter item");l[p-3].glue||(l[p-3].glue="', '"),this.$="(function() { return "+l[p-3].from+".map(function(item) { v["+l[p-3].item+"] = item; return "+l[p-1]+"; }).join("+l[p-3].glue+"); })()";break;case 11:if(!l[p-4].from)throw new Error("Missing parameter from");if(!l[p-4].item)throw new Error("Missing parameter item");this.$="(function() {var looped = false, result = '';if ("+l[p-4].from+" instanceof Array) {for (var i = 0; i < "+l[p-4].from+".length; i++) { looped = true;v["+l[p-4].key+"] = i;v["+l[p-4].item+"] = "+l[p-4].from+"[i];result += "+l[p-2]+";}} else {for (var key in "+l[p-4].from+") {if (!"+l[p-4].from+".hasOwnProperty(key)) continue;looped = true;v["+l[p-4].key+"] = key;v["+l[p-4].item+"] = "+l[p-4].from+"[key];result += "+l[p-2]+";}}return (looped ? result : "+(l[p-1]||"''")+"); })()";break;case 12:this.$="h.selectPlural({";var Z=!1;for(var $ in l[p-1])Object.hasOwn(l[p-1],$)&&(this.$+=(Z?",":"")+$+": "+l[p-1][$],Z=!0);this.$+="})";break;case 13:this.$="Language.get("+l[p-1]+", v)";break;case 14:this.$="h.escapeHTML("+l[p-1]+")";break;case 15:this.$="h.formatNumeric("+l[p-1]+")";break;case 16:this.$=l[p-1];break;case 17:this.$="'{'";break;case 18:this.$="'}'";break;case 19:this.$="else { return "+l[p]+"; }";break;case 20:this.$="else if ("+l[p-2]+") { return "+l[p]+"; }";break;case 21:this.$=l[p];break;case 22:this.$="v['"+l[p-1]+"']"+l[p].join("");break;case 23:this.$=l[p-2]+l[p-1]+l[p];break;case 24:this.$="['"+l[p]+"']";break;case 25:case 39:this.$=l[p-2]+(l[p-1]||"")+l[p];break;case 26:case 40:this.$=l[p],this.$[l[p-4]]=l[p-2];break;case 27:case 41:this.$={},this.$[l[p-2]]=l[p];break;case 31:this.$=l[p].join("");break;case 44:case 46:case 52:this.$=[];break;case 45:case 47:case 53:case 57:l[p-1].push(l[p]);break;case 56:this.$=[l[p]];break}},table:[t([5,9,11,12,13,19,21,23,26,28,30,32,33,34,35],e,{3:1,4:2,6:3}),{1:[3]},{5:[1,4]},t([5,18,22,25,29,37,39,41],[2,2],{7:5,8:6,10:8,9:[1,7],11:[1,9],12:[1,10],13:[1,11],19:[1,12],21:[1,13],23:[1,14],26:[1,15],28:[1,16],30:[1,17],32:[1,18],33:[1,19],34:[1,20],35:[1,21]}),{1:[2,1]},t(s,[2,45]),t(s,[2,3]),t(s,[2,4]),t(s,[2,5]),t(s,[2,6]),t(s,[2,7]),{11:r,12:n,14:22,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},{20:34,43:w},{20:36,43:w},{20:37,43:w},{27:38,43:m,55:T,58:39},t([9,11,12,13,19,21,23,26,28,29,30,32,33,34,35],e,{6:3,4:42}),{31:43,42:a},{31:44,42:a},{31:45,42:a},t(s,[2,17]),t(s,[2,18]),{15:[1,46]},t([15,47,51],[2,31],{31:30,57:47,11:r,12:n,42:a,43:i,49:f,52:d,54:c,55:h}),t(b,[2,56]),t(b,[2,32]),t(b,[2,33]),t(b,[2,34]),t(b,[2,35]),t(b,[2,36]),t(b,[2,37]),t(b,[2,38]),{11:r,12:n,14:48,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},{43:[1,49]},{15:[1,50]},{52:[1,51]},{15:[1,52]},{15:[1,53]},{15:[1,54]},{52:[1,55]},{52:[2,42]},{52:[2,43]},{29:[1,56]},{15:[1,57]},{15:[1,58]},{15:[1,59]},t(S,e,{6:3,4:60}),t(b,[2,57]),{51:[1,61]},t(j,[2,52],{44:62}),t(s,[2,9]),{31:66,42:a,53:63,54:M,55:k},t([9,11,12,13,19,21,22,23,26,28,30,32,33,34,35],e,{6:3,4:67}),t([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35,41],e,{6:3,4:68}),t(s,[2,12]),{31:66,42:a,53:69,54:M,55:k},t(s,[2,13]),t(s,[2,14]),t(s,[2,15]),t(s,[2,16]),t(L,[2,46],{16:70}),t(b,[2,39]),t([11,12,15,42,43,47,51,52,54,55],[2,22],{45:71,46:[1,72],48:[1,73],49:[1,74]}),{12:[1,75],15:[2,27]},t(I,[2,28]),t(I,[2,29]),t(I,[2,30]),{22:[1,76]},{24:77,25:[2,50],40:78,41:[1,79]},{12:[1,80],15:[2,41]},{17:81,18:[2,48],36:83,37:[1,85],38:82,39:[1,84]},t(j,[2,53]),{11:r,12:n,14:86,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},{43:[1,87]},{11:r,12:n,14:89,31:30,42:a,43:i,49:f,50:88,51:[2,54],52:d,54:c,55:h,56:23,57:24},{20:90,43:w},t(s,[2,10]),{25:[1,91]},{25:[2,51]},t([9,11,12,13,19,21,23,25,26,28,30,32,33,34,35],e,{6:3,4:92}),{27:93,43:m,55:T,58:39},{18:[1,94]},t(L,[2,47]),{18:[2,49]},{11:r,12:n,14:95,31:30,42:a,43:i,49:f,52:d,54:c,55:h,56:23,57:24},t([9,11,12,13,18,19,21,23,26,28,30,32,33,34,35],e,{6:3,4:96}),{47:[1,97]},t(j,[2,24]),{51:[1,98]},{51:[2,55]},{15:[2,26]},t(s,[2,11]),{25:[2,21]},{15:[2,40]},t(s,[2,8]),{15:[1,99]},{18:[2,19]},t(j,[2,23]),t(j,[2,25]),t(S,e,{6:3,4:100}),t(L,[2,20])],defaultActions:{4:[2,1],40:[2,42],41:[2,43],78:[2,51],83:[2,49],89:[2,55],90:[2,26],92:[2,21],93:[2,40],96:[2,19]},parseError:function(g,y){if(y.recoverable)this.trace(g);else{var v=new Error(g);throw v.hash=y,v}},parse:function(g){var y=this,v=[0],C=[],A=[null],l=[],Y=this.table,p="",B=0,Z=0,$=0,R=2,q=1,ie=l.slice.call(arguments,1),z=Object.create(this.lexer),W={yy:{}};for(var oe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,oe)&&(W.yy[oe]=this.yy[oe]);z.setInput(g,W.yy),W.yy.lexer=z,W.yy.parser=this,typeof z.yylloc>"u"&&(z.yylloc={});var le=z.yylloc;l.push(le);var xe=z.options&&z.options.ranges;typeof W.yy.parseError=="function"?this.parseError=W.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ze(U){v.length=v.length-2*U,A.length=A.length-U,l.length=l.length-U}for(var o=function(){var U;return U=z.lex()||q,typeof U!="number"&&(U=y.symbols_[U]||U),U},u,E,x,_,P,O,F={},de,V,Qe,he;;){if(x=v[v.length-1],this.defaultActions[x]?_=this.defaultActions[x]:((u===null||typeof u>"u")&&(u=o()),_=Y[x]&&Y[x][u]),typeof _>"u"||!_.length||!_[0]){var Le="";he=[];for(de in Y[x])this.terminals_[de]&&de>R&&he.push("'"+this.terminals_[de]+"'");z.showPosition?Le="Parse error on line "+(B+1)+`: `+z.showPosition()+` -Expecting `+he.join(", ")+", got '"+(this.terminals_[u]||u)+"'":Le="Parse error on line "+(B+1)+": Unexpected "+(u==q?"end of input":"'"+(this.terminals_[u]||u)+"'"),this.parseError(Le,{text:z.match,token:this.terminals_[u]||u,line:z.yylineno,loc:le,expected:he})}if(_[0]instanceof Array&&_.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+u);switch(_[0]){case 1:v.push(u),A.push(z.yytext),l.push(z.yylloc),v.push(_[1]),u=null,E?(u=E,E=null):(Z=z.yyleng,p=z.yytext,B=z.yylineno,le=z.yylloc,G>0&&G--);break;case 2:if(V=this.productions_[_[1]][1],F.$=A[A.length-V],F._$={first_line:l[l.length-(V||1)].first_line,last_line:l[l.length-1].last_line,first_column:l[l.length-(V||1)].first_column,last_column:l[l.length-1].last_column},xe&&(F._$.range=[l[l.length-(V||1)].range[0],l[l.length-1].range[1]]),R=this.performAction.apply(F,[p,Z,B,W.yy,_[1],A,l].concat(ie)),typeof R<"u")return R;V&&(v=v.slice(0,-1*V*2),A=A.slice(0,-1*V),l=l.slice(0,-1*V)),v.push(this.productions_[_[1]][0]),A.push(F.$),l.push(F._$),Qe=Y[v[v.length-2]][v[v.length-1]],v.push(Qe);break;case 3:return!0}}return!0}},$=function(){var N={EOF:1,parseError:function(y,v){if(this.yy.parser)this.yy.parser.parseError(y,v);else throw new Error(y)},setInput:function(g,y){return this.yy=y||this.yy||{},this._input=g,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var g=this._input[0];this.yytext+=g,this.yyleng++,this.offset++,this.match+=g,this.matched+=g;var y=g.match(/(?:\r\n?|\n).*/g);return y?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),g},unput:function(g){var y=g.length,v=g.split(/(?:\r\n?|\n)/g);this._input=g+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-y),this.offset-=y;var I=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===I.length?this.yylloc.first_column:0)+I[I.length-v.length].length-v[0].length:this.yylloc.first_column-y},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-y]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +Expecting `+he.join(", ")+", got '"+(this.terminals_[u]||u)+"'":Le="Parse error on line "+(B+1)+": Unexpected "+(u==q?"end of input":"'"+(this.terminals_[u]||u)+"'"),this.parseError(Le,{text:z.match,token:this.terminals_[u]||u,line:z.yylineno,loc:le,expected:he})}if(_[0]instanceof Array&&_.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+u);switch(_[0]){case 1:v.push(u),A.push(z.yytext),l.push(z.yylloc),v.push(_[1]),u=null,E?(u=E,E=null):(Z=z.yyleng,p=z.yytext,B=z.yylineno,le=z.yylloc,$>0&&$--);break;case 2:if(V=this.productions_[_[1]][1],F.$=A[A.length-V],F._$={first_line:l[l.length-(V||1)].first_line,last_line:l[l.length-1].last_line,first_column:l[l.length-(V||1)].first_column,last_column:l[l.length-1].last_column},xe&&(F._$.range=[l[l.length-(V||1)].range[0],l[l.length-1].range[1]]),O=this.performAction.apply(F,[p,Z,B,W.yy,_[1],A,l].concat(ie)),typeof O<"u")return O;V&&(v=v.slice(0,-1*V*2),A=A.slice(0,-1*V),l=l.slice(0,-1*V)),v.push(this.productions_[_[1]][0]),A.push(F.$),l.push(F._$),Qe=Y[v[v.length-2]][v[v.length-1]],v.push(Qe);break;case 3:return!0}}return!0}},G=function(){var N={EOF:1,parseError:function(y,v){if(this.yy.parser)this.yy.parser.parseError(y,v);else throw new Error(y)},setInput:function(g,y){return this.yy=y||this.yy||{},this._input=g,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var g=this._input[0];this.yytext+=g,this.yyleng++,this.offset++,this.match+=g,this.matched+=g;var y=g.match(/(?:\r\n?|\n).*/g);return y?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),g},unput:function(g){var y=g.length,v=g.split(/(?:\r\n?|\n)/g);this._input=g+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-y),this.offset-=y;var C=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),v.length-1&&(this.yylineno-=v.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:v?(v.length===C.length?this.yylloc.first_column:0)+C[C.length-v.length].length-v[0].length:this.yylloc.first_column-y},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-y]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(g){this.unput(this.match.slice(g))},pastInput:function(){var g=this.matched.substr(0,this.matched.length-this.match.length);return(g.length>20?"...":"")+g.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var g=this.match;return g.length<20&&(g+=this._input.substr(0,20-g.length)),(g.substr(0,20)+(g.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var g=this.pastInput(),y=new Array(g.length+1).join("-");return g+this.upcomingInput()+` -`+y+"^"},test_match:function(g,y){var v,I,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),I=g[0].match(/(?:\r\n?|\n).*/g),I&&(this.yylineno+=I.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:I?I[I.length-1].length-I[I.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+g[0].length},this.yytext+=g[0],this.match+=g[0],this.matches=g,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(g[0].length),this.matched+=g[0],v=this.performAction.call(this,this.yy,this,y,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var l in A)this[l]=A[l];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var g,y,v,I;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),l=0;ly[0].length)){if(y=v,I=l,this.options.backtrack_lexer){if(g=this.test_match(v,A[l]),g!==!1)return g;if(this._backtrack){y=!1;continue}else return!1}else if(!this.options.flex)break}return y?(g=this.test_match(y,A[I]),g!==!1?g:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var y=this.next();return y||this.lex()},begin:function(y){this.conditionStack.push(y)},popState:function(){var y=this.conditionStack.length-1;return y>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(y){return y=this.conditionStack.length-1-Math.abs(y||0),y>=0?this.conditionStack[y]:"INITIAL"},pushState:function(y){this.begin(y)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(y,v,I,A){var l=A;switch(I){case 0:break;case 1:return v.yytext=v.yytext.substring(9,v.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return N}();D.lexer=$;function te(){this.yy={}}return te.prototype=D,D.Parser=te,new te}();typeof je<"u"&&typeof Q<"u"&&(Q.parser=pe,Q.Parser=pe.Parser,Q.parse=function(){return pe.parse.apply(pe,arguments)},Q.main=!0,typeof _e<"u"&&je.main===_e&&Q.main(process.argv.slice(1)))});var Ce={};Xe(Ce,{getPhrase:()=>Me,registerPhrase:()=>la});var tt=sa(Je());var Ae={};Xe(Ae,{add:()=>me,get:()=>Me});var et=new Map;function Me(t,e={}){let s=et.get(t);return s===void 0?t:s(e)}function me(t,e){et.set(t,e)}function ra(t){return String(t).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function at(t){return Number(t).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var na=new Intl.PluralRules(document.documentElement.lang);function ia(t){if(!Object.hasOwn(t,"value"))throw new Error("Missing parameter value");if(!t.other)throw new Error("Missing parameter other");let e=t.value;if(Array.isArray(e)&&(e=e.length),Object.hasOwn(t,e.toString()))return t[e];let s=na.select(e);t[s]===void 0&&(s="other");let r=t[s];return r.includes("#")?r.replace("#",at(e)):r}function oa(t){let e=`var tmp = {}; +`+y+"^"},test_match:function(g,y){var v,C,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),C=g[0].match(/(?:\r\n?|\n).*/g),C&&(this.yylineno+=C.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:C?C[C.length-1].length-C[C.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+g[0].length},this.yytext+=g[0],this.match+=g[0],this.matches=g,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(g[0].length),this.matched+=g[0],v=this.performAction.call(this,this.yy,this,y,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var l in A)this[l]=A[l];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var g,y,v,C;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),l=0;ly[0].length)){if(y=v,C=l,this.options.backtrack_lexer){if(g=this.test_match(v,A[l]),g!==!1)return g;if(this._backtrack){y=!1;continue}else return!1}else if(!this.options.flex)break}return y?(g=this.test_match(y,A[C]),g!==!1?g:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var y=this.next();return y||this.lex()},begin:function(y){this.conditionStack.push(y)},popState:function(){var y=this.conditionStack.length-1;return y>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(y){return y=this.conditionStack.length-1-Math.abs(y||0),y>=0?this.conditionStack[y]:"INITIAL"},pushState:function(y){this.begin(y)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(y,v,C,A){var l=A;switch(C){case 0:break;case 1:return v.yytext=v.yytext.substring(9,v.yytext.length-10),9;break;case 2:return 54;case 3:return 54;case 4:return 42;case 5:return 55;case 6:return 43;case 7:return 48;case 8:return 46;case 9:return 47;case 10:return 49;case 11:return 51;case 12:return 52;case 13:return 34;case 14:return 35;case 15:return this.begin("command"),32;break;case 16:return this.begin("command"),33;break;case 17:return this.begin("command"),13;break;case 18:return this.begin("command"),39;break;case 19:return this.begin("command"),39;break;case 20:return 37;case 21:return 18;case 22:return 28;case 23:return 29;case 24:return this.begin("command"),19;break;case 25:return this.begin("command"),21;break;case 26:return this.begin("command"),26;break;case 27:return 22;case 28:return this.begin("command"),23;break;case 29:return 41;case 30:return 25;case 31:return this.begin("command"),30;break;case 32:return this.popState(),15;break;case 33:return 12;case 34:return 5;case 35:return 11}},rules:[/^(?:\{\*[\s\S]*?\*\})/,/^(?:\{literal\}[\s\S]*?\{\/literal\})/,/^(?:"([^"]|\\\.)*")/,/^(?:'([^']|\\\.)*')/,/^(?:\$)/,/^(?:[0-9]+)/,/^(?:[_a-zA-Z][_a-zA-Z0-9]*)/,/^(?:\.)/,/^(?:\[)/,/^(?:\])/,/^(?:\()/,/^(?:\))/,/^(?:=)/,/^(?:\{ldelim\})/,/^(?:\{rdelim\})/,/^(?:\{#)/,/^(?:\{@)/,/^(?:\{if )/,/^(?:\{else if )/,/^(?:\{elseif )/,/^(?:\{else\})/,/^(?:\{\/if\})/,/^(?:\{lang\})/,/^(?:\{\/lang\})/,/^(?:\{include )/,/^(?:\{implode )/,/^(?:\{plural )/,/^(?:\{\/implode\})/,/^(?:\{foreach )/,/^(?:\{foreachelse\})/,/^(?:\{\/foreach\})/,/^(?:\{(?!\s))/,/^(?:\})/,/^(?:\s+)/,/^(?:$)/,/^(?:[^{])/],conditions:{command:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],inclusive:!0},INITIAL:{rules:[0,1,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,34,35],inclusive:!0}}};return N}();D.lexer=G;function te(){this.yy={}}return te.prototype=D,D.Parser=te,new te}();typeof je<"u"&&typeof Q<"u"&&(Q.parser=pe,Q.Parser=pe.Parser,Q.parse=function(){return pe.parse.apply(pe,arguments)},Q.main=!0,typeof _e<"u"&&je.main===_e&&Q.main(process.argv.slice(1)))});var Ie={};Xe(Ie,{getPhrase:()=>Me,registerPhrase:()=>la});var tt=sa(Je());var Ae={};Xe(Ae,{add:()=>me,get:()=>Me});var et=new Map;function Me(t,e={}){let s=et.get(t);return s===void 0?t:s(e)}function me(t,e){et.set(t,e)}function ra(t){return String(t).replace(/&/g,"&").replace(/"/g,""").replace(//g,">")}function at(t){return Number(t).toLocaleString(document.documentElement.lang,{maximumFractionDigits:2}).replace("-","\u2212")}var na=new Intl.PluralRules(document.documentElement.lang);function ia(t){if(!Object.hasOwn(t,"value"))throw new Error("Missing parameter value");if(!t.other)throw new Error("Missing parameter other");let e=t.value;if(Array.isArray(e)&&(e=e.length),Object.hasOwn(t,e.toString()))return t[e];let s=na.select(e);t[s]===void 0&&(s="other");let r=t[s];return r.includes("#")?r.replace("#",at(e)):r}function oa(t){let e=`var tmp = {}; for (var key in v) tmp[key] = v[key]; v = tmp; v.__wcf = window.WCF; v.__window = window; @@ -55,22 +55,22 @@ Expecting `+he.join(", ")+", got '"+(this.terminals_[u]||u)+"'":Le="Parse error stroke-dashoffset: -124; } } - `,a.append(i),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!s.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",r)})();{let t=Date.now()-window.TIME_NOW*1e3,e=document.documentElement.lang,r=(()=>{let b="",S=document.querySelector('meta[name="timezone"]');if(S){b=S.content;try{Intl.DateTimeFormat(void 0,{timeZone:b})}catch{b=""}}return b||(b=Intl.DateTimeFormat().resolvedOptions().timeZone),b})(),n,a,i=()=>{let b=new Date,S=new Date(b.getFullYear(),b.getMonth(),b.getDate());n!==S.getTime()&&(n=S.getTime(),a=new Date(b.getFullYear(),b.getMonth(),b.getDate()-1).getTime())};i();let f;(j=>(j[j.Today=0]="Today",j[j.Yesterday=-1]="Yesterday"))(f||={});let d={Date:new Intl.DateTimeFormat(e,{dateStyle:"long",timeZone:r}),DateAndTime:new Intl.DateTimeFormat(e,{dateStyle:"long",timeStyle:"short",timeZone:r}),DayOfWeekAndTime:new Intl.DateTimeFormat(e,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:r}),Hours:new Intl.RelativeTimeFormat(e),Minutes:new Intl.RelativeTimeFormat(e),TodayOrYesterday:new Intl.RelativeTimeFormat(e,{numeric:"auto"})},c={OneMinute:60,OneHour:3600,OneDay:86400,TwelveHours:3600*12,SixDays:86400*6};class h extends HTMLElement{#e;#t;get date(){if(this.#e===void 0){let S=this.getAttribute("date");if(!S)throw new Error("The 'date' attribute is missing.");this.#e=new Date(S)}return this.#e}set date(S){this.setAttribute("date",S.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(S){S===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(S){let j=this.date,M=Math.trunc((Date.now()-j.getTime()-t)/1e3);if(this.#t===void 0){this.#t=document.createElement("time");let L=this.attachShadow({mode:"open"});L.append(this.#t);let C=document.createElement("style");C.textContent=` + `,a.append(i),a}get solid(){return this.hasAttribute("solid")}get name(){return this.getAttribute("name")||""}get size(){let a=this.getAttribute("size");return a===null?0:parseInt(a)}set size(a){if(!s.has(a))throw new Error(`Refused to set the invalid icon size '${a}'.`);this.setAttribute("size",a.toString())}}window.customElements.define("fa-icon",r)})();{let t=Date.now()-window.TIME_NOW*1e3,e=document.documentElement.lang,r=(()=>{let b="",S=document.querySelector('meta[name="timezone"]');if(S){b=S.content;try{Intl.DateTimeFormat(void 0,{timeZone:b})}catch{b=""}}return b||(b=Intl.DateTimeFormat().resolvedOptions().timeZone),b})(),n,a,i=()=>{let b=new Date,S=new Date(b.getFullYear(),b.getMonth(),b.getDate());n!==S.getTime()&&(n=S.getTime(),a=new Date(b.getFullYear(),b.getMonth(),b.getDate()-1).getTime())};i();let f;(j=>(j[j.Today=0]="Today",j[j.Yesterday=-1]="Yesterday"))(f||={});let d={Date:new Intl.DateTimeFormat(e,{dateStyle:"long",timeZone:r}),DateAndTime:new Intl.DateTimeFormat(e,{dateStyle:"long",timeStyle:"short",timeZone:r}),DayOfWeekAndTime:new Intl.DateTimeFormat(e,{weekday:"long",hour:"2-digit",minute:"2-digit",timeZone:r}),Hours:new Intl.RelativeTimeFormat(e),Minutes:new Intl.RelativeTimeFormat(e),TodayOrYesterday:new Intl.RelativeTimeFormat(e,{numeric:"auto"})},c={OneMinute:60,OneHour:3600,OneDay:86400,TwelveHours:3600*12,SixDays:86400*6};class h extends HTMLElement{#e;#t;get date(){if(this.#e===void 0){let S=this.getAttribute("date");if(!S)throw new Error("The 'date' attribute is missing.");this.#e=new Date(S)}return this.#e}set date(S){this.setAttribute("date",S.toISOString()),this.refresh(!0)}get static(){return this.hasAttribute("static")}set static(S){S===!0?this.setAttribute("static",""):this.removeAttribute("static")}connectedCallback(){this.refresh(!0)}refresh(S){let j=this.date,M=Math.trunc((Date.now()-j.getTime()-t)/1e3);if(this.#t===void 0){this.#t=document.createElement("time");let L=this.attachShadow({mode:"open"});L.append(this.#t);let I=document.createElement("style");I.textContent=` @media print { time::after { content: " (" attr(title) ")"; } - }`,L.append(C)}S&&(this.#t.dateTime=j.toISOString(),this.#t.title=d.DateAndTime.format(j));let k;if(this.static)k=this.#t.title;else if(Mn?k=this.#a(L,0):j.getTime()>a?k=this.#a(L,-1):k=L.map(D=>D.value).join(""):k=d.DateAndTime.format(j)}else k=d.Date.format(j);k=k.charAt(0).toUpperCase()+k.slice(1),this.#t.textContent=k}#a(S,j){return S.map(k=>k.type==="weekday"?d.TodayOrYesterday.format(j,"day"):k.value).join("")}}window.customElements.define("woltlab-core-date-time",h);let w=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(b=>b.refresh(!1))},m,T=()=>{m=window.setInterval(()=>{i(),w()},6e4)};document.addEventListener("DOMContentLoaded",()=>T(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(m):(w(),T())})}{class t extends HTMLElement{#e;constructor(){super(),this.#e=document.createElement("input"),this.#e.type="file",this.#e.classList.add("woltlabCoreFileUpload__input"),this.#e.addEventListener("change",()=>{let{files:s}=this.#e;if(!(s===null||s.length===0)){for(let r of s){let n=new CustomEvent("shouldUpload",{cancelable:!0,detail:r});if(this.dispatchEvent(n),n.defaultPrevented)continue;let a=new CustomEvent("upload",{detail:r});this.dispatchEvent(a)}this.#e.value=""}})}connectedCallback(){let s=this.dataset.fileExtensions||"";s!==""&&(this.#e.accept=s);let r=this.maximumCount;(r>1||r===-1)&&(this.#e.multiple=!0);let n=document.createElement("fa-icon");n.setIcon("upload");let a=document.createElement("button");a.type="button",a.classList.add("button","woltlabCoreFileUpload__button"),a.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&this.#e.click()}),a.append(n,window.WoltLabLanguage.getPhrase("wcf.global.button.upload"),this.#e),this.append(a)}get maximumCount(){return parseInt(this.dataset.maximumCount||"1")}get maximumSize(){return parseInt(this.dataset.maximumSize||"-1")}get disabled(){return this.#e.disabled}set disabled(s){this.#e.disabled=!!s}}window.customElements.define("woltlab-core-file-upload",t)}{let e=[24,48,96];class s extends HTMLElement{#e;#t;connectedCallback(){this.#e===void 0&&this.#a()}attributeChangedCallback(n,a,i){if(n==="size"){let f=parseInt(i||"");if(!e.includes(f)){let d=parseInt(a||"");e.includes(d)||(d=24),this.setAttribute(n,d.toString())}}}#a(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size","24"),this.#e=document.createElement("fa-icon"),this.#e.size=this.size,this.#e.setIcon("spinner"),this.#t=document.createElement("span"),this.#t.classList.add("loading-indicator__text"),this.#t.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#t.hidden=this.hideText;let n=document.createElement("div");n.classList.add("loading-indicator__wrapper"),n.append(this.#e,this.#t),this.append(n)}get size(){return parseInt(this.getAttribute("size"))}set size(n){if(!e.includes(n))throw new TypeError(`The size ${n} is unrecognized, permitted values are ${e.join(", ")}.`);this.setAttribute("size",n.toString()),this.#e&&(this.#e.size=n)}get hideText(){return this.hasAttribute("hide-text")}set hideText(n){n?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#t&&(this.#t.hidden=n)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",s)}{let t;(i=>(i.Info="info",i.Success="success",i.Warning="warning",i.Error="error"))(t||={});class e extends HTMLElement{#e;#t;constructor(){super(),this.#e=document.createElement("fa-icon"),this.#e.size=24,this.#e.slot="icon"}connectedCallback(){this.#a(),this.#s(),this.querySelector(':scope > fa-icon[slot="icon"]')?.remove(),this.append(this.#e)}#a(){let r=this.attachShadow({mode:"open"}),n=document.createElement("style");n.textContent=` + }`,L.append(I)}S&&(this.#t.dateTime=j.toISOString(),this.#t.title=d.DateAndTime.format(j));let k;if(this.static)k=this.#t.title;else if(Mn?k=this.#a(L,0):j.getTime()>a?k=this.#a(L,-1):k=L.map(D=>D.value).join(""):k=d.DateAndTime.format(j)}else k=d.Date.format(j);k=k.charAt(0).toUpperCase()+k.slice(1),this.#t.textContent=k}#a(S,j){return S.map(k=>k.type==="weekday"?d.TodayOrYesterday.format(j,"day"):k.value).join("")}}window.customElements.define("woltlab-core-date-time",h);let w=()=>{document.querySelectorAll("woltlab-core-date-time").forEach(b=>b.refresh(!1))},m,T=()=>{m=window.setInterval(()=>{i(),w()},6e4)};document.addEventListener("DOMContentLoaded",()=>T(),{once:!0}),document.addEventListener("visibilitychange",()=>{document.hidden?window.clearInterval(m):(w(),T())})}{class t extends HTMLElement{#e;constructor(){super(),this.#e=document.createElement("input"),this.#e.type="file",this.#e.classList.add("woltlabCoreFileUpload__input"),this.#e.addEventListener("change",()=>{let{files:s}=this.#e;if(!(s===null||s.length===0)){for(let r of s){let n=new CustomEvent("shouldUpload",{cancelable:!0,detail:r});if(this.dispatchEvent(n),n.defaultPrevented)continue;let a=new CustomEvent("upload",{detail:r});this.dispatchEvent(a)}this.#e.value=""}})}connectedCallback(){let s=this.dataset.fileExtensions||"";s!==""&&(this.#e.accept=s);let r=this.maximumCount;(r>1||r===-1)&&(this.#e.multiple=!0);let n=document.createElement("fa-icon");n.setIcon("upload");let a=document.createElement("button");a.type="button",a.classList.add("button","woltlabCoreFileUpload__button"),a.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&this.#e.click()}),a.append(n,window.WoltLabLanguage.getPhrase("wcf.global.button.upload"),this.#e),this.append(a)}get maximumCount(){return parseInt(this.dataset.maximumCount||"1")}get maximumSize(){return parseInt(this.dataset.maximumSize||"-1")}get disabled(){return this.#e.disabled}set disabled(s){this.#e.disabled=!!s}}window.customElements.define("woltlab-core-file-upload",t)}{let e=[24,48,96];class s extends HTMLElement{#e;#t;connectedCallback(){this.#e===void 0&&this.#a()}attributeChangedCallback(n,a,i){if(n==="size"){let f=parseInt(i||"");if(!e.includes(f)){let d=parseInt(a||"");e.includes(d)||(d=24),this.setAttribute(n,d.toString())}}}#a(){this.classList.add("loading-indicator"),this.hasAttribute("size")||this.setAttribute("size","24"),this.#e=document.createElement("fa-icon"),this.#e.size=this.size,this.#e.setIcon("spinner"),this.#t=document.createElement("span"),this.#t.classList.add("loading-indicator__text"),this.#t.textContent=window.WoltLabLanguage.getPhrase("wcf.global.loading"),this.#t.hidden=this.hideText;let n=document.createElement("div");n.classList.add("loading-indicator__wrapper"),n.append(this.#e,this.#t),this.append(n)}get size(){return parseInt(this.getAttribute("size"))}set size(n){if(!e.includes(n))throw new TypeError(`The size ${n} is unrecognized, permitted values are ${e.join(", ")}.`);this.setAttribute("size",n.toString()),this.#e&&(this.#e.size=n)}get hideText(){return this.hasAttribute("hide-text")}set hideText(n){n?this.setAttribute("hide-text",""):this.removeAttribute("hide-text"),this.#t&&(this.#t.hidden=n)}static get observedAttributes(){return["size"]}}window.customElements.define("woltlab-core-loading-indicator",s)}{let t;(i=>(i.Info="info",i.Success="success",i.Warning="warning",i.Error="error"))(t||={});class e extends HTMLElement{#e;#t;constructor(){super(),this.#e=document.createElement("fa-icon"),this.#e.size=24,this.#e.slot="icon"}connectedCallback(){this.#a(),this.#s(),this.querySelector(':scope > fa-icon[slot="icon"]')?.remove(),this.append(this.#e)}#a(){let r=this.attachShadow({mode:"open"}),n=document.createElement("style");n.textContent=` :host { align-items: center; display: grid; gap: 5px; grid-template-columns: max-content auto; } - `,this.#t=document.createElement("div"),this.#t.classList.add("content");let a=document.createElement("slot");this.#t.append(a);let i=document.createElement("slot");i.name="icon",r.append(n,i,this.#t)}#s(){this.#e.setIcon(this.icon,!0),this.#t.setAttribute("role",this.type==="error"?"alert":"status"),this.classList.remove(...Object.values(t)),this.classList.add(this.type)}get type(){if(!this.hasAttribute("type"))throw new Error("missing attribute 'type'");let r=this.getAttribute("type");if(!Object.values(t).includes(r))throw new Error(`invalid value '${r}' for attribute 'type' given`);return r}set type(r){this.setAttribute("type",r),this.#e!==void 0&&this.#s()}get icon(){switch(this.type){case"success":return"circle-check";case"warning":return"triangle-exclamation";case"error":return"circle-exclamation";case"info":return"circle-info"}}}window.customElements.define("woltlab-core-notice",e)}{let t,e=()=>(t===void 0&&(t=window.matchMedia("(max-width: 544px)")),t);class s extends HTMLElement{#e="pagination";connectedCallback(){this.#t(),e().addEventListener("change",()=>this.#t())}#t(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#e}__wrapper`);let n=this.#a();this.append(n);let a=this.#s();a&&n.append(a);let i=document.createElement("ul");i.classList.add(`${this.#e}__list`),n.append(i),i.append(this.#n(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#i()),this.#c().forEach(d=>{i.append(d)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#i()),i.append(this.#n(this.count));let f=this.#l();f&&n.append(f)}#a(){let n=document.createElement("nav");return n.setAttribute("role","navigation"),n.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),n.classList.add(this.#e),n}#s(){if(this.page===1)return;let n=document.createElement("div");n.classList.add(`${this.#e}__prev`);let a=this.#r(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),n.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),n}#l(){if(this.page===this.count)return;let n=document.createElement("div");n.classList.add(`${this.#e}__next`);let a=this.#r(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),n.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),n}#r(n){let a,i=this.getLinkUrl(n);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===n?a.disabled=!0:a.addEventListener("click",()=>{this.#o(n)})),a.classList.add(`${this.#e}__link`),a}#n(n){let a=document.createElement("li");a.classList.add(`${this.#e}__item`);let i=this.#r(n);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:n})),n===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#e}__link--current`)),i.textContent=n.toLocaleString(document.documentElement.lang),a.append(i),a}#c(){let n=[],a,i;e().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let f=a;f<=i;f++)f<=1||f>=this.count||n.push(this.#n(f));return n}#i(){let n=document.createElement("li");n.classList.add(`${this.#e}__item`,`${this.#e}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),n.append(a),n}get thresholdForEllipsis(){return e().matches?1:3}getLinkUrl(n){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",n.toString()]]).toString(),a.toString()}jumpToPage(n){let a=this.getLinkUrl(n);a?window.location.href=a:this.#o(n)}#o(n){let a=new CustomEvent("switchPage",{cancelable:!0,detail:n});this.dispatchEvent(a),a.defaultPrevented||(this.page=n)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(n){this.setAttribute("count",n.toString()),this.#t()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(n){this.setAttribute("page",n.toString()),this.#t()}get url(){return this.getAttribute("url")}set url(n){this.setAttribute("url",n),this.#t()}}window.customElements.define("woltlab-core-pagination",s)}{class t extends HTMLElement{connectedCallback(){this.setData(this.#t(),this.#a())}setData(s,r){this.#e(s,r)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#e(s,r){if(this.innerHTML="",!s.size)return;let n=document.createElement("button");n.classList.add("reactionSummary","jsTooltip"),n.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),n.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(n),s.forEach((a,i)=>{let f=document.createElement("span");f.classList.add("reactionCountButton"),i===r&&f.classList.add("selected");let d=document.createElement("span");d.innerHTML=window.REACTION_TYPES[i].renderedIcon,f.append(d);let c=document.createElement("span");c.classList.add("reactionCount"),c.textContent=a.toString(),f.append(c),n.append(f)})}#t(){let s=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(s)}#a(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",t)}var rt={categoriesLabel:"\u0627\u0644\u0641\u0626\u0627\u062A",emojiUnsupportedMessage:"\u0645\u062A\u0635\u0641\u062D\u0643 \u0644\u0627 \u064A\u062F\u0639\u0645 \u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631 \u0627\u0644\u0645\u0644\u0648\u0646\u0629.",favoritesLabel:"\u0627\u0644\u0645\u0641\u0636\u0644\u0629",loadingMessage:"\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u062D\u0645\u064A\u0644\u2026",networkErrorMessage:"\u062A\u0639\u0630\u0631 \u062A\u062D\u0645\u064A\u0644 \u0631\u0645\u0632 \u0645\u0634\u0627\u0639\u0631.",regionLabel:"\u0645\u0646\u062A\u0642\u064A \u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631",searchDescription:"\u0639\u0646\u062F\u0645\u0627 \u062A\u0643\u0648\u0646 \u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0628\u062D\u062B \u0645\u062A\u0627\u062D\u0629\u060C \u0627\u0636\u063A\u0637 \u0627\u0644\u0633\u0647\u0645 \u0644\u0623\u0639\u0644\u0649 \u0623\u0648 \u0644\u0623\u0633\u0641\u0644 \u0644\u0644\u062A\u062D\u062F\u064A\u062F \u0648\u0627\u0636\u063A\u0637 enter \u0644\u0644\u0627\u062E\u062A\u064A\u0627\u0631.",searchLabel:"\u0628\u062D\u062B",searchResultsLabel:"\u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0628\u062D\u062B",skinToneDescription:"\u0639\u0646\u062F \u062A\u0648\u0633\u064A\u0639 \u0627\u0644\u0646\u062A\u0627\u0626\u062C\u060C \u0627\u0636\u063A\u0637 \u0627\u0644\u0633\u0647\u0645 \u0644\u0623\u0639\u0644\u0649 \u0623\u0648 \u0644\u0623\u0633\u0641\u0644 \u0644\u0644\u062A\u062D\u062F\u064A\u062F \u0648\u0627\u0636\u063A\u0637 enter \u0644\u0644\u0627\u062E\u062A\u064A\u0627\u0631.",skinToneLabel:"\u0627\u062E\u062A\u0631 \u062F\u0631\u062C\u0629 \u0644\u0648\u0646 \u0627\u0644\u0628\u0634\u0631\u0629 (\u062D\u0627\u0644\u064A\u064B\u0627 {skinTone})",skinTonesLabel:"\u062F\u0631\u062C\u0627\u062A \u0644\u0648\u0646 \u0627\u0644\u0628\u0634\u0631\u0629",skinTones:["\u0627\u0641\u062A\u0631\u0627\u0636\u064A","\u0641\u0627\u062A\u062D","\u0641\u0627\u062A\u062D \u0645\u062A\u0648\u0633\u0637","\u0645\u062A\u0648\u0633\u0637","\u062F\u0627\u0643\u0646 \u0645\u062A\u0648\u0633\u0637","\u062F\u0627\u0643\u0646"],categories:{custom:"\u0645\u062E\u0635\u0635","smileys-emotion":"\u0627\u0644\u0648\u062C\u0648\u0647 \u0627\u0644\u0636\u0627\u062D\u0643\u0629 \u0648\u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631","people-body":"\u0627\u0644\u0623\u0634\u062E\u0627\u0635 \u0648\u0627\u0644\u062C\u0633\u062F","animals-nature":"\u0627\u0644\u062D\u064A\u0648\u0627\u0646\u0627\u062A \u0648\u0627\u0644\u0637\u0628\u064A\u0639\u0629","food-drink":"\u0627\u0644\u0637\u0639\u0627\u0645 \u0648\u0627\u0644\u0634\u0631\u0627\u0628","travel-places":"\u0627\u0644\u0633\u0641\u0631 \u0648\u0627\u0644\u0623\u0645\u0627\u0643\u0646",activities:"\u0627\u0644\u0623\u0646\u0634\u0637\u0629",objects:"\u0627\u0644\u0623\u0634\u064A\u0627\u0621",symbols:"\u0627\u0644\u0631\u0645\u0648\u0632",flags:"\u0627\u0644\u0623\u0639\u0644\u0627\u0645"}};var nt={categoriesLabel:"Kategorien",emojiUnsupportedMessage:"Dein Browser unterst\xFCtzt keine farbigen Emojis.",favoritesLabel:"Favoriten",loadingMessage:"Wird geladen\u2026",networkErrorMessage:"Konnte Emoji nicht laden.",regionLabel:"Emoji ausw\xE4hlen",searchDescription:"Wenn Suchergebnisse verf\xFCgbar sind, w\xE4hle sie mit Pfeil rauf und runter, dann Eingabetaste, aus.",searchLabel:"Suchen",searchResultsLabel:"Suchergebnisse",skinToneDescription:"Wenn angezeigt, nutze Pfeiltasten rauf und runter zum Ausw\xE4hlen, Eingabe zum Akzeptieren.",skinToneLabel:"W\xE4hle einen Hautton (aktuell {skinTone})",skinTonesLabel:"Hautt\xF6ne",skinTones:["Standard","Hell","Mittel-hell","Mittel","Mittel-dunkel","Dunkel"],categories:{custom:"Benutzerdefiniert","smileys-emotion":"Smileys und Emoticons","people-body":"Menschen und K\xF6rper","animals-nature":"Tiere und Natur","food-drink":"Essen und Trinken","travel-places":"Reisen und Orte",activities:"Aktivit\xE4ten",objects:"Objekte",symbols:"Symbole",flags:"Flaggen"}};var it={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading\u2026",networkErrorMessage:"Could not load emoji.",regionLabel:"Emoji picker",searchDescription:"When search results are available, press up or down to select and enter to choose.",searchLabel:"Search",searchResultsLabel:"Search results",skinToneDescription:"When expanded, press up or down to select and enter to choose.",skinToneLabel:"Choose a skin tone (currently {skinTone})",skinTonesLabel:"Skin tones",skinTones:["Default","Light","Medium-Light","Medium","Medium-Dark","Dark"],categories:{custom:"Custom","smileys-emotion":"Smileys and emoticons","people-body":"People and body","animals-nature":"Animals and nature","food-drink":"Food and drink","travel-places":"Travel and places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}};var ot={categoriesLabel:"Categor\xEDas",emojiUnsupportedMessage:"El navegador no admite emojis de color.",favoritesLabel:"Favoritos",loadingMessage:"Cargando\u2026",networkErrorMessage:"No se pudo cargar el emoji.",regionLabel:"Selector de emojis",searchDescription:"Cuando est\xE9n disponibles los resultados, pulsa la tecla hacia arriba o hacia abajo para seleccionar y la tecla intro para elegir.",searchLabel:"Buscar",searchResultsLabel:"Resultados de b\xFAsqueda",skinToneDescription:"Cuando se abran las opciones, pulsa la tecla hacia arriba o hacia abajo para seleccionar y la tecla intro para elegir.",skinToneLabel:"Elige un tono de piel ({skinTone} es el actual)",skinTonesLabel:"Tonos de piel",skinTones:["Predeterminado","Claro","Claro medio","Medio","Oscuro medio","Oscuro"],categories:{custom:"Personalizado","smileys-emotion":"Emojis y emoticones","people-body":"Personas y partes del cuerpo","animals-nature":"Animales y naturaleza","food-drink":"Comida y bebida","travel-places":"Viajes y lugares",activities:"Actividades",objects:"Objetos",symbols:"S\xEDmbolos",flags:"Banderas"}};var lt={categoriesLabel:"Cat\xE9gories",emojiUnsupportedMessage:"Votre navigateur ne supporte pas les emojis en couleur.",favoritesLabel:"Favoris",loadingMessage:"Chargement en cours\u2026",networkErrorMessage:"Impossible de charger les emojis.",regionLabel:"Choisir un emoji",searchDescription:"Lorsque les r\xE9sultats sont affich\xE9s, utilisez les fl\xE8ches haut/bas pour naviguer et la touche entr\xE9e pour s\xE9lectionner.",searchLabel:"Rechercher",searchResultsLabel:"R\xE9sultats",skinToneDescription:"Quand disponible, utilisez les fl\xE8ches haut/bas pour naviguer et la touche entr\xE9e pour s\xE9lectionner.",skinToneLabel:"Choisir une couleur de peau (actuellement {skinTone})",skinTonesLabel:"Couleurs de peau",skinTones:["Par d\xE9faut","Clair","Moyennement clair","Moyen","Moyennement sombre","Sombre"],categories:{custom:"Personnalis\xE9","smileys-emotion":"\xC9motic\xF4nes","people-body":"Corps et m\xE9tiers","animals-nature":"Animaux et nature","food-drink":"Nourriture et boissons","travel-places":"Voyages et lieux",activities:"Activit\xE9s",objects:"Objets",symbols:"Symboles",flags:"Drapeaux"}};var ct={categoriesLabel:"\u0936\u094D\u0930\u0947\u0923\u093F\u092F\u093E\u0901",emojiUnsupportedMessage:"\u0906\u092A\u0915\u093E \u092C\u094D\u0930\u093E\u0909\u091C\u093C\u0930 \u0915\u0932\u0930 \u0907\u092E\u094B\u091C\u0940 \u0915\u093E \u0938\u092E\u0930\u094D\u0925\u0928 \u0928\u0939\u0940\u0902 \u0915\u0930\u0924\u093E\u0964",favoritesLabel:"\u092A\u0938\u0902\u0926\u0940\u0926\u093E",loadingMessage:"\u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u093E \u0939\u0948...",networkErrorMessage:"\u0907\u092E\u094B\u091C\u0940 \u0932\u094B\u0921 \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u0947\u0964",regionLabel:"\u0907\u092E\u094B\u091C\u0940 \u091A\u0941\u0928\u0928\u0947\u0935\u093E\u0932\u093E",searchDescription:"\u091C\u092C \u0916\u094B\u091C \u092A\u0930\u093F\u0923\u093E\u092E \u0909\u092A\u0932\u092C\u094D\u0927 \u0939\u094B\u0902 \u0924\u094B \u091A\u092F\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090A\u092A\u0930 \u092F\u093E \u0928\u0940\u091A\u0947 \u0926\u092C\u093E\u090F\u0902 \u0914\u0930 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090F\u0902\u091F\u0930 \u0926\u092C\u093E\u090F\u0902\u0964",searchLabel:"\u0916\u094B\u091C",searchResultsLabel:"\u0916\u094B\u091C \u0915\u0947 \u092A\u0930\u093F\u0923\u093E\u092E",skinToneDescription:"\u091C\u092C \u0935\u093F\u0938\u094D\u0924\u0943\u0924 \u0915\u093F\u092F\u093E \u091C\u093E\u0924\u093E \u0939\u0948 \u0924\u094B \u091A\u092F\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090A\u092A\u0930 \u092F\u093E \u0928\u0940\u091A\u0947 \u0926\u092C\u093E\u090F\u0902 \u0914\u0930 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090F\u0902\u091F\u0930 \u0926\u092C\u093E\u090F\u0902\u0964",skinToneLabel:"\u0924\u094D\u0935\u091A\u093E \u0915\u093E \u0930\u0902\u0917 \u091A\u0941\u0928\u0947\u0902 (\u0935\u0930\u094D\u0924\u092E\u093E\u0928 \u092E\u0947\u0902 {skinTone})",skinTonesLabel:"\u0924\u094D\u0935\u091A\u093E \u0915\u0947 \u0930\u0902\u0917",skinTones:["\u0921\u093F\u092B\u0949\u0932\u094D\u091F","\u0939\u0932\u094D\u0915\u093E","\u092E\u0927\u094D\u092F\u092E \u0939\u0932\u094D\u0915\u093E","\u092E\u0927\u094D\u092F\u092E","\u092E\u0927\u094D\u092F\u092E \u0917\u0939\u0930\u093E","\u0917\u0939\u0930\u093E"],categories:{custom:"\u0915\u0938\u094D\u091F\u092E","smileys-emotion":"\u0938\u094D\u092E\u093E\u0907\u0932\u0940 \u0914\u0930 \u0907\u092E\u094B\u091F\u093F\u0915\u0949\u0928\u094D\u0938","people-body":"\u0932\u094B\u0917 \u0914\u0930 \u0936\u0930\u0940\u0930","animals-nature":"\u092A\u0936\u0941 \u0914\u0930 \u092A\u094D\u0930\u0915\u0943\u0924\u093F","food-drink":"\u0916\u093E\u0926\u094D\u092F \u0914\u0930 \u092A\u0947\u092F","travel-places":"\u092F\u093E\u0924\u094D\u0930\u093E \u0914\u0930 \u0938\u094D\u0925\u093E\u0928",activities:"\u0917\u0924\u093F\u0935\u093F\u0927\u093F\u092F\u093E\u0902",objects:"\u0935\u0938\u094D\u0924\u0941\u090F\u0902",symbols:"\u092A\u094D\u0930\u0924\u0940\u0915",flags:"\u091D\u0902\u0921\u0947"}};var ut={categoriesLabel:"Kategori",emojiUnsupportedMessage:"Browser Anda tidak mendukung emoji warna.",favoritesLabel:"Favorit",loadingMessage:"Memuat...",networkErrorMessage:"Tidak dapat memuat emoji.",regionLabel:"Pemilih emoji",searchDescription:"Ketika hasil pencarian tersedia, tekan atas atau bawah untuk menyeleksi dan enter untuk memilih.",searchLabel:"Cari",searchResultsLabel:"Hasil Pencarian",skinToneDescription:"Saat diperluas tekan atas atau bawah untuk menyeleksi dan enter untuk memilih.",skinToneLabel:"Pilih warna skin (saat ini {skinTone})",skinTonesLabel:"Warna skin",skinTones:["Default","Light","Medium light","Medium","Medium dark","Dark"],categories:{custom:"Kustom","smileys-emotion":"Smiley dan emoticon","people-body":"Orang dan bagian tubuh","animals-nature":"Hewan dan tumbuhan","food-drink":"Makanan dan minuman","travel-places":"Rekreasi dan tempat",activities:"Aktivitas",objects:"Objek",symbols:"Simbol",flags:"Bendera"}};var ft={categoriesLabel:"Categorie",emojiUnsupportedMessage:"Il tuo browser non supporta le emoji colorate.",favoritesLabel:"Preferiti",loadingMessage:"Caricamento...",networkErrorMessage:"Impossibile caricare le emoji.",regionLabel:"Selezione emoji",searchDescription:"Quando i risultati della ricerca sono disponibili, premi su o gi\xF9 per selezionare e invio per scegliere.",searchLabel:"Cerca",searchResultsLabel:"Risultati di ricerca",skinToneDescription:"Quando espanso, premi su o gi\xF9 per selezionare e invio per scegliere.",skinToneLabel:"Scegli una tonalit\xE0 della pelle (corrente {skinTone})",skinTonesLabel:"Tonalit\xE0 della pelle",skinTones:["Predefinita","Chiara","Medio-Chiara","Media","Medio-Scura","Scura"],categories:{custom:"Personalizzata","smileys-emotion":"Faccine ed emozioni","people-body":"Persone e corpi","animals-nature":"Animali e natura","food-drink":"Cibi e bevande","travel-places":"Viaggi e luoghi",activities:"Attivit\xE0",objects:"Oggetti",symbols:"Simboli",flags:"Bandiere"}};var dt={categoriesLabel:"Kategori",emojiUnsupportedMessage:"Penyemak imbas anda tidak menyokong emoji warna.",favoritesLabel:"Kegemaran",loadingMessage:"Memuat\u2026",networkErrorMessage:"Tidak dapat memuatkan emoji.",regionLabel:"Pemilih emoji",searchDescription:"Apabila hasil carian tersedia, tekan atas atau bawah untuk memilih dan tekan masukkan untuk memilih.",searchLabel:"Cari",searchResultsLabel:"Hasil carian",skinToneDescription:"Apabila dikembangkan, tekan atas atau bawah untuk memilih dan tekan masukkan untuk memilih.",skinToneLabel:"Pilih warna kulit (pada masa ini {skinTone})",skinTonesLabel:"Warna kulit",skinTones:["Lalai","Cerah","Kuning langsat","Sederhana cerah","Sawo matang","Gelap"],categories:{custom:"Tersuai","smileys-emotion":"Smiley dan emotikon","people-body":"Orang dan badan","animals-nature":"Haiwan dan alam semula jadi","food-drink":"Makanan dan minuman","travel-places":"Perjalanan dan tempat",activities:"Aktiviti",objects:"Objek",symbols:"Simbol",flags:"Bendera"}};var ht={categoriesLabel:"Categorie\xEBn",emojiUnsupportedMessage:"Uw browser ondersteunt geen kleurenemoji.",favoritesLabel:"Favorieten",loadingMessage:"Bezig met laden\u2026",networkErrorMessage:"Kan emoji niet laden.",regionLabel:"Emoji-kiezer",searchDescription:"Als er zoekresultaten beschikbaar zijn, drukt u op omhoog of omlaag om te selecteren en op enter om te kiezen.",searchLabel:"Zoeken",searchResultsLabel:"Zoekresultaten",skinToneDescription:"Wanneer uitgevouwen, druk omhoog of omlaag om te selecteren en enter om te kiezen.",skinToneLabel:"Kies een huidskleur (momenteel {skinTone})",skinTonesLabel:"Huidskleuren",skinTones:["Standaard","Licht","Medium-Licht","Medium","Middeldonker","Donker"],categories:{custom:"Aangepast","smileys-emotion":"Smileys en emoticons","people-body":"Mensen en lichaam","animals-nature":"Dieren en natuur","food-drink":"Eten en drinken","travel-places":"Reizen en plaatsen",activities:"Activiteiten",objects:"Voorwerpen",symbols:"Symbolen",flags:"Vlaggen"}};var pt={categoriesLabel:"Kategorie",emojiUnsupportedMessage:"Twoja przegl\u0105darka nie wspiera kolorowych emotikon.",favoritesLabel:"Ulubione",loadingMessage:"\u0141aduj\u0119\u2026",networkErrorMessage:"Nie mo\u017Cna za\u0142adowa\u0107 emoji.",regionLabel:"Selektor emoji",searchDescription:"Kiedy wyniki wyszukiwania b\u0119d\u0105 dost\u0119pne, wci\u015Bnij g\xF3ra lub d\xF3\u0142 aby wybra\u0107 oraz enter aby zatwierdzi\u0107 wyb\xF3r.",searchLabel:"Wyszukaj",searchResultsLabel:"Wyniki wyszukiwania",skinToneDescription:"Po rozwini\u0119ciu wci\u015Bnij g\xF3ra lub d\xF3\u0142 aby wybra\u0107 oraz enter aby zatwierdzi\u0107 wyb\xF3r.",skinToneLabel:"Wybierz odcie\u0144 sk\xF3ry (aktualnie {skinTone})",skinTonesLabel:"Odcienie sk\xF3ry",skinTones:["Domy\u015Blna","Jasna","\u015Arednio-jasna","\u015Arednia","\u015Arednio-ciemna","Ciemna"],categories:{custom:"W\u0142asne","smileys-emotion":"U\u015Bmiechy","people-body":"Ludzie","animals-nature":"Zwierz\u0119ta i natura","food-drink":"\u017Bywno\u015B\u0107 i napoje","travel-places":"Podr\xF3\u017Ce i miejsca",activities:"Aktywno\u015Bci",objects:"Obiekty",symbols:"Symbole",flags:"Flagi"}};var mt={categoriesLabel:"Categorias",emojiUnsupportedMessage:"Seu navegador n\xE3o suporta emojis coloridos.",favoritesLabel:"Favoritos",loadingMessage:"Carregando\u2026",networkErrorMessage:"N\xE3o foi poss\xEDvel carregar o emoji.",regionLabel:"Seletor de emoji",searchDescription:"Quando os resultados da pesquisa estiverem dispon\xEDveis, pressione para cima ou para baixo para selecionar e \u201Center\u201D para escolher.",searchLabel:"Procurar",searchResultsLabel:"Resultados da pesquisa",skinToneDescription:"Quando expandido, pressione para cima ou para baixo para selecionar e \u201Center\u201D para escolher.",skinToneLabel:"Escolha um tom de pele (atualmente {skinTone})",skinTonesLabel:"Tons de pele",skinTones:["Padr\xE3o","Claro","Claro m\xE9dio","M\xE9dio","Escuro m\xE9dio","Escuro"],categories:{custom:"Personalizar","smileys-emotion":"Carinhas e emoticons","people-body":"Pessoas e corpo","animals-nature":"Animais e natureza","food-drink":"Alimentos e bebidas","travel-places":"Viagem e lugares",activities:"Atividades",objects:"Objetos",symbols:"S\xEDmbolos",flags:"Bandeiras"}};var gt={categoriesLabel:"Categorias",emojiUnsupportedMessage:"O seu browser n\xE3o suporta emojis.",favoritesLabel:"Favoritos",loadingMessage:"A Carregar\u2026",networkErrorMessage:"N\xE3o foi poss\xEDvel carregar o emoji.",regionLabel:"Emoji picker",searchDescription:"Quando os resultados da pesquisa estiverem dispon\xEDveis, pressione para cima ou para baixo para selecionar e digite para escolher.",searchLabel:"Procurar",searchResultsLabel:"Resultados da procura",skinToneDescription:"Quando expandido, pressione para cima ou para baixo para selecionar e digite para escolher.",skinToneLabel:"Escolha um tom de pele (atual {skinTone})",skinTonesLabel:"Tons de pele",skinTones:["Pr\xE9-definido","Claro","M\xE9dio-Claro","M\xE9dio","M\xE9dio-Escuro","Escuro"],categories:{custom:"Personalizados","smileys-emotion":"Smileys e emoticons","people-body":"Pessoas e corpo","animals-nature":"Animais e natureza","food-drink":"Comida e bebida","travel-places":"Viagens e locais",activities:"Atividades",objects:"Objetos",symbols:"S\xEDmbolos",flags:"Bandeiras"}};var bt={categoriesLabel:"\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438",emojiUnsupportedMessage:"\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0446\u0432\u0435\u0442\u043D\u044B\u0435 \u044D\u043C\u043E\u0434\u0437\u0438.",favoritesLabel:"\u0418\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0435",loadingMessage:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u2026",networkErrorMessage:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u044D\u043C\u043E\u0434\u0437\u0438. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443.",regionLabel:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u043C\u043E\u0434\u0437\u0438",searchDescription:"\u041A\u043E\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u0442\u0430\u043D\u0443\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0445 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0441\u0442\u0440\u0435\u043B\u043E\u043A \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043D\u0438\u0437, \u0437\u0430\u0442\u0435\u043C \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F.",searchLabel:"\u0418\u0441\u043A\u0430\u0442\u044C",searchResultsLabel:"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430",skinToneDescription:"\u041F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0441\u043E \u0441\u0442\u0440\u0435\u043B\u043A\u0430\u043C\u0438 \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043D\u0438\u0437 \u0434\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430, \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F.",skinToneLabel:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0442\u0442\u0435\u043D\u043E\u043A \u043A\u043E\u0436\u0438 (\u0442\u0435\u043A\u0443\u0449\u0438\u0439 {skinTone})",skinTonesLabel:"\u041E\u0442\u0442\u0435\u043D\u043A\u0438 \u043A\u043E\u0436\u0438",skinTones:["\u0421\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439","\u0421\u0432\u0435\u0442\u043B\u044B\u0439","\u0421\u0440\u0435\u0434\u043D\u0435-\u0441\u0432\u0435\u0442\u043B\u044B\u0439","\u0421\u0440\u0435\u0434\u043D\u0438\u0439","\u0421\u0440\u0435\u0434\u043D\u0435-\u0442\u0435\u043C\u043D\u044B\u0439","\u0422\u0435\u043C\u043D\u044B\u0439"],categories:{custom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439","smileys-emotion":"\u0421\u043C\u0430\u0439\u043B\u0438\u043A\u0438 \u0438 \u042D\u043C\u043E\u0442\u0438\u043A\u043E\u043D\u044B","people-body":"\u041B\u044E\u0434\u0438 \u0438 \u0422\u0435\u043B\u0430","animals-nature":"\u0416\u0438\u0432\u043E\u0442\u043D\u044B\u0435 \u0438 \u041F\u0440\u0438\u0440\u043E\u0434\u0430","food-drink":"\u0415\u0434\u0430 \u0438 \u041D\u0430\u043F\u0438\u0442\u043A\u0438","travel-places":"\u041F\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044F \u0438 \u041C\u0435\u0441\u0442\u0430",activities:"\u0412\u0438\u0434\u044B \u0434\u0435\u044F\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438",objects:"\u041E\u0431\u044A\u0435\u043A\u0442\u044B",symbols:"\u0421\u0438\u043C\u0432\u043E\u043B\u044B",flags:"\u0424\u043B\u0430\u0433\u0438"}};var kt={categoriesLabel:"Kategoriler",emojiUnsupportedMessage:"Taray\u0131c\u0131n\u0131z renkli emojiyi desteklemiyor.",favoritesLabel:"Favoriler",loadingMessage:"Y\xFCkleniyor\u2026",networkErrorMessage:"Emoji y\xFCklenemedi.",regionLabel:"Emoji se\xE7ici",searchDescription:"Arama sonu\xE7lar\u0131 mevcut oldu\u011Funda se\xE7mek i\xE7in yukar\u0131 veya a\u015Fa\u011F\u0131 bas\u0131n ve se\xE7mek i\xE7in girin.",searchLabel:"Arama",searchResultsLabel:"Arama sonu\xE7lar\u0131",skinToneDescription:"Geni\u015Fletildi\u011Finde se\xE7mek i\xE7in yukar\u0131 veya a\u015Fa\u011F\u0131 bas\u0131n ve se\xE7mek i\xE7in girin.",skinToneLabel:"Cilt tonu se\xE7in (\u015Fu anda {skinTone})",skinTonesLabel:"Cilt tonlar\u0131",skinTones:["Varsay\u0131lan","I\u015F\u0131k","Orta \u0131\u015F\u0131k","Orta","Orta koyu","Karanl\u0131k"],categories:{custom:"Gelenek","smileys-emotion":"Suratlar ve ifadeler","people-body":"\u0130nsanlar ve v\xFCcut","animals-nature":"Hayvanlar ve do\u011Fa","food-drink":"Yiyecek ve i\xE7ecek","travel-places":"Seyahat ve yerler",activities:"Aktiviteler",objects:"Nesneler",symbols:"Semboller",flags:"Bayraklar"}};var wt={categoriesLabel:"\u7C7B\u522B",emojiUnsupportedMessage:"\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F69\u8272\u8868\u60C5\u7B26\u53F7\u3002",favoritesLabel:"\u6536\u85CF\u5939",loadingMessage:"\u6B63\u5728\u52A0\u8F7D\u2026",networkErrorMessage:"\u65E0\u6CD5\u52A0\u8F7D\u8868\u60C5\u7B26\u53F7\u3002",regionLabel:"\u8868\u60C5\u7B26\u53F7\u9009\u62E9\u5668",searchDescription:"\u5F53\u641C\u7D22\u7ED3\u679C\u53EF\u7528\u65F6\uFF0C\u6309\u5411\u4E0A\u6216\u5411\u4E0B\u9009\u62E9\u5E76\u8F93\u5165\u9009\u62E9\u3002",searchLabel:"\u641C\u7D22",searchResultsLabel:"\u641C\u7D22\u7ED3\u679C",skinToneDescription:"\u5C55\u5F00\u65F6\uFF0C\u6309\u5411\u4E0A\u6216\u5411\u4E0B\u952E\u8FDB\u884C\u9009\u62E9\uFF0C\u6309\u56DE\u8F66\u952E\u8FDB\u884C\u9009\u62E9\u3002",skinToneLabel:"\u9009\u62E9\u80A4\u8272\uFF08\u5F53\u524D\u4E3A {skinTone}\uFF09",skinTonesLabel:"\u80A4\u8272",skinTones:["\u9ED8\u8BA4","\u660E\u4EAE","\u5FAE\u4EAE","\u4E2D\u7B49","\u5FAE\u6697","\u6697"],categories:{custom:"\u81EA\u5B9A\u4E49","smileys-emotion":"\u7B11\u8138\u548C\u8868\u60C5","people-body":"\u4EBA\u7269\u548C\u8EAB\u4F53","animals-nature":"\u52A8\u7269\u4E0E\u81EA\u7136","food-drink":"\u98DF\u54C1\u996E\u6599","travel-places":"\u65C5\u884C\u548C\u5730\u65B9",activities:"\u6D3B\u52A8",objects:"\u7269\u4F53",symbols:"\u7B26\u53F7",flags:"\u65D7\u5E1C"}};function ge(t){if(typeof t!="string"||!t)throw new Error("expected a non-empty string, got: "+t)}function Ie(t){if(typeof t!="number")throw new Error("expected a number, got: "+t)}var fa=1,da=1,J="emoji",re="keyvalue",Oe="favorites",ha="tokens",Tt="tokens",pa="unicode",xt="count",ma="group",ga="order",Lt="group-order",ze="eTag",we="url",yt="skinTone",ne="readonly",Re="readwrite",St="skinUnicodes",ba="skinUnicodes",ka="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",wa="en";function ya(t,e){let s=new Set,r=[];for(let n of t){let a=e(n);s.has(a)||(s.add(a),r.push(n))}return r}function vt(t){return ya(t,e=>e.unicode)}function va(t){function e(s,r,n){let a=r?t.createObjectStore(s,{keyPath:r}):t.createObjectStore(s);if(n)for(let[i,[f,d]]of Object.entries(n))a.createIndex(i,f,{multiEntry:d});return a}e(re),e(J,pa,{[Tt]:[ha,!0],[Lt]:[[ma,ga]],[St]:[ba,!0]}),e(Oe,void 0,{[xt]:[""]})}var De={},ke={},ye={};function jt(t,e,s){s.onerror=()=>e(s.error),s.onblocked=()=>e(new Error("IDB blocked")),s.onsuccess=()=>t(s.result)}async function Ea(t){let e=await new Promise((s,r)=>{let n=indexedDB.open(t,fa);De[t]=n,n.onupgradeneeded=a=>{a.oldVersionqe(t),e}function Ta(t){return ke[t]||(ke[t]=Ea(t)),ke[t]}function K(t,e,s,r){return new Promise((n,a)=>{let i=t.transaction(e,s,{durability:"relaxed"}),f=typeof e=="string"?i.objectStore(e):e.map(c=>i.objectStore(c)),d;r(f,i,c=>{d=c}),i.oncomplete=()=>n(d),i.onerror=()=>a(i.error)})}function qe(t){let e=De[t],s=e&&e.result;if(s){s.close();let r=ye[t];if(r)for(let n of r)n()}delete De[t],delete ke[t],delete ye[t]}function xa(t){return new Promise((e,s)=>{qe(t);let r=indexedDB.deleteDatabase(t);jt(e,s,r)})}function La(t,e){let s=ye[t];s||(s=ye[t]=[]),s.push(e)}var Sa=new Set([":D","XD",":'D","O:)",":X",":P",";P","XP",":L",":Z",":j","8D","XO","8)",":B",":O",":S",":'o","Dx","X(","D:",":C",">0)",":3","!e.match(/\w/)||Sa.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase()).filter(Boolean)}var ja=2;function _t(t){return t.filter(Boolean).map(e=>e.toLowerCase()).filter(e=>e.length>=ja)}function _a(t){return t.map(({annotation:s,emoticon:r,group:n,order:a,shortcodes:i,skins:f,tags:d,emoji:c,version:h})=>{let w=[...new Set(_t([...(i||[]).map(se).flat(),...(d||[]).map(se).flat(),...se(s),r]))].sort(),m={annotation:s,group:n,order:a,tags:d,tokens:w,unicode:c,version:h};if(r&&(m.emoticon=r),i&&(m.shortcodes=i),f){m.skinTones=[],m.skinUnicodes=[],m.skinVersions=[];for(let{tone:T,emoji:b,version:S}of f)m.skinTones.push(T),m.skinUnicodes.push(b),m.skinVersions.push(S)}return m})}function Mt(t,e,s,r){t[e](s).onsuccess=n=>r&&r(n.target.result)}function X(t,e,s){Mt(t,"get",e,s)}function At(t,e,s){Mt(t,"getAll",e,s)}function Fe(t){t.commit&&t.commit()}function Ma(t,e){let s=t[0];for(let r=1;re(n)&&(s=n)}return s}function Ct(t,e){let s=Ma(t,n=>n.length),r=[];for(let n of s)t.some(a=>a.findIndex(i=>e(i)===e(n))===-1)||r.push(n);return r}async function Aa(t){return!await Ne(t,re,we)}async function Ca(t,e,s){let[r,n]=await Promise.all([ze,we].map(a=>Ne(t,re,a)));return r===s&&n===e}async function Ia(t,e){return K(t,J,ne,(r,n,a)=>{let i,f=()=>{r.getAll(i&&IDBKeyRange.lowerBound(i,!0),50).onsuccess=d=>{let c=d.target.result;for(let h of c)if(i=h.unicode,e(h))return a(h);if(c.length<50)return a();f()}};f()})}async function It(t,e,s,r){try{let n=_a(e);await K(t,[J,re],Re,([a,i],f)=>{let d,c,h=0;function w(){++h===2&&m()}function m(){if(!(d===r&&c===s)){a.clear();for(let T of n)a.put(T);i.put(r,ze),i.put(s,we),Fe(f)}}X(i,ze,T=>{d=T,w()}),X(i,we,T=>{c=T,w()})})}finally{}}async function za(t,e){return K(t,J,ne,(s,r,n)=>{let a=IDBKeyRange.bound([e,0],[e+1,0],!1,!0);At(s.index(Lt),a,n)})}async function zt(t,e){let s=_t(se(e));return s.length?K(t,J,ne,(r,n,a)=>{let i=[],f=()=>{i.length===s.length&&d()},d=()=>{let c=Ct(i,h=>h.unicode);a(c.sort((h,w)=>h.order{i.push(m),f()})}}):[]}async function Da(t,e){let s=await zt(t,e);return s.length?s.filter(r=>(r.shortcodes||[]).map(a=>a.toLowerCase()).includes(e.toLowerCase()))[0]||null:await Ia(t,n=>(n.shortcodes||[]).includes(e.toLowerCase()))||null}async function Pa(t,e){return K(t,J,ne,(s,r,n)=>X(s,e,a=>{if(a)return n(a);X(s.index(St),e,i=>n(i||null))}))}function Ne(t,e,s){return K(t,e,ne,(r,n,a)=>X(r,s,a))}function Oa(t,e,s,r){return K(t,e,Re,(n,a)=>{n.put(r,s),Fe(a)})}function Ra(t,e){return K(t,Oe,Re,(s,r)=>X(s,e,n=>{s.put((n||0)+1,e),Fe(r)}))}function qa(t,e,s){return s===0?[]:K(t,[Oe,J],ne,([r,n],a,i)=>{let f=[];r.index(xt).openCursor(void 0,"prev").onsuccess=d=>{let c=d.target.result;if(!c)return i(f);function h(T){if(f.push(T),f.length===s)return i(f);c.continue()}let w=c.primaryKey,m=e.byName(w);if(m)return h(m);X(n,w,T=>{if(T)return h(T);c.continue()})}})}var be="";function Fa(t,e){let s=new Map;for(let n of t){let a=e(n);for(let i of a){let f=s;for(let c=0;c{let i=s;for(let c=0;cw[0]!(r in t[0])));if(!e||s)throw new Error("Custom emojis are in the wrong format")}function Et(t){Ba(t);let e=(m,T)=>m.name.toLowerCase(){let T=new Set;if(m.shortcodes)for(let b of m.shortcodes)for(let S of se(b))T.add(S);return T}),a=m=>n(m,!0),i=m=>n(m,!1),f=m=>{let T=se(m),b=T.map((S,j)=>(jS.name).sort(e)},d=new Map,c=new Map;for(let m of t){c.set(m.name.toLowerCase(),m);for(let T of m.shortcodes||[])d.set(T.toLowerCase(),m)}return{all:s,search:f,byShortcode:m=>d.get(m.toLowerCase()),byName:m=>c.get(m.toLowerCase())}}var Ua=typeof wrappedJSObject<"u";function ce(t){if(!t)return t;if(Ua&&(t=structuredClone(t)),delete t.tokens,t.skinTones){let e=t.skinTones.length;t.skins=Array(e);for(let s=0;s!(e in t[0])))throw new Error("Emoji data is in the wrong format")}function Pt(t,e){if(Math.floor(t.status/100)!==2)throw new Error("Failed to fetch: "+e+": "+t.status)}async function Va(t){let e=await fetch(t,{method:"HEAD"});Pt(e,t);let s=e.headers.get("etag");return Dt(s),s}async function Pe(t){let e=await fetch(t);Pt(e,t);let s=e.headers.get("etag");Dt(s);let r=await e.json();return Wa(r),[s,r]}function Ka(t){for(var e="",s=new Uint8Array(t),r=s.byteLength,n=-1;++n(this._ready||(this._ready=this._init()),this._ready);await e(),this._db||await e()}async getEmojiByGroup(e){return Ie(e),await this.ready(),vt(await za(this._db,e)).map(ce)}async getEmojiBySearchQuery(e){ge(e),await this.ready();let s=this._custom.search(e),r=vt(await zt(this._db,e)).map(ce);return[...s,...r]}async getEmojiByShortcode(e){ge(e),await this.ready();let s=this._custom.byShortcode(e);return s||ce(await Da(this._db,e))}async getEmojiByUnicodeOrName(e){ge(e),await this.ready();let s=this._custom.byName(e);return s||ce(await Pa(this._db,e))}async getPreferredSkinTone(){return await this.ready(),await Ne(this._db,re,yt)||0}async setPreferredSkinTone(e){return Ie(e),await this.ready(),Oa(this._db,re,yt,e)}async incrementFavoriteEmojiCount(e){return ge(e),await this.ready(),Ra(this._db,e)}async getTopFavoriteEmoji(e){return Ie(e),await this.ready(),(await qa(this._db,this._custom,e)).map(ce)}set customEmoji(e){this._custom=Et(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch{}}_clear(){this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown(),await qe(this._dbName)}async delete(){await this._shutdown(),await xa(this._dbName)}};var $e=[[-1,"\u2728","custom"],[0,"\u{1F600}","smileys-emotion"],[1,"\u{1F44B}","people-body"],[3,"\u{1F431}","animals-nature"],[4,"\u{1F34E}","food-drink"],[5,"\u{1F3E0}\uFE0F","travel-places"],[6,"\u26BD","activities"],[7,"\u{1F4DD}","objects"],[8,"\u26D4\uFE0F","symbols"],[9,"\u{1F3C1}","flags"]].map(([t,e,s])=>({id:t,emoji:e,name:s})),Be=$e.slice(1),Za=2,Rt=6,Wt=typeof requestIdleCallback=="function"?requestIdleCallback:setTimeout;function qt(t){return t.unicode.includes("\u200D")}var Qa={"\u{1FAE8}":15.1,"\u{1FAE0}":14,"\u{1F972}":13.1,"\u{1F97B}":12.1,"\u{1F970}":11,"\u{1F929}":5,"\u{1F471}\u200D\u2640\uFE0F":4,"\u{1F923}":3,"\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F":2,"\u{1F600}":1,"\u{1F610}\uFE0F":.7,"\u{1F603}":.6},Xa=1e3,Ja="\u{1F590}\uFE0F",es=8,ts=["\u{1F60A}","\u{1F612}","\u2764\uFE0F","\u{1F44D}\uFE0F","\u{1F60D}","\u{1F602}","\u{1F62D}","\u263A\uFE0F","\u{1F614}","\u{1F629}","\u{1F60F}","\u{1F495}","\u{1F64C}","\u{1F618}"],Vt='"Twemoji Mozilla","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',as=(t,e)=>te?1:0,Ft=(t,e)=>{let s=document.createElement("canvas");s.width=s.height=1;let r=s.getContext("2d",{willReadFrequently:!0});return r.textBaseline="top",r.font=`100px ${Vt}`,r.fillStyle=e,r.scale(.01,.01),r.fillText(t,0,0),r.getImageData(0,0,1,1).data},ss=(t,e)=>{let s=[...t].join(","),r=[...e].join(",");return s===r&&!s.startsWith("0,0,0,")};function rs(t){let e=Ft(t,"#000"),s=Ft(t,"#fff");return e&&s&&ss(e,s)}function ns(){let t=Object.entries(Qa);try{for(let[e,s]of t)if(rs(e))return s}catch{}finally{}return t[0][1]}var Ue,He=()=>(Ue||(Ue=new Promise(t=>Wt(()=>t(ns())))),Ue),Ye=new Map,is="\uFE0F",os="\uD83C",ls="\u200D",cs=127995,us=57339;function fs(t,e){if(e===0)return t;let s=t.indexOf(ls);return s!==-1?t.substring(0,s)+String.fromCodePoint(cs+e-1)+t.substring(s):(t.endsWith(is)&&(t=t.substring(0,t.length-1)),t+os+String.fromCodePoint(us+e-1))}function H(t){t.preventDefault(),t.stopPropagation()}function We(t,e,s){return e+=t?-1:1,e<0?e=s.length-1:e>=s.length&&(e=0),e}function Kt(t,e){let s=new Set,r=[];for(let n of t){let a=e(n);s.has(a)||(s.add(a),r.push(n))}return r}function ds(t,e){let s=r=>{let n={};for(let a of r)typeof a.tone=="number"&&a.version<=e&&(n[a.tone]=a.unicode);return n};return t.map(({unicode:r,skins:n,shortcodes:a,url:i,name:f,category:d,annotation:c})=>({unicode:r,name:f,shortcodes:a,url:i,category:d,annotation:c,id:r||f,skins:n&&s(n)}))}var Ee=requestAnimationFrame,hs=typeof ResizeObserver=="function";function ps(t,e,s){let r;hs?(r=new ResizeObserver(s),r.observe(t)):Ee(s),e.addEventListener("abort",()=>{r&&r.disconnect()})}function Nt(t){{let e=document.createRange();return e.selectNode(t.firstChild),e.getBoundingClientRect().width}}var Ve;function ms(t,e,s){let r=!0;for(let n of t){let a=s(n),i=Nt(a);typeof Ve>"u"&&(Ve=Nt(e));let f=i/1.8e)}function bs(t){t&&(t.scrollTop=0)}function fe(t,e,s){let r=t.get(e);return r||(r=s(),t.set(e,r)),r}function Bt(t){return""+t}function ks(t){let e=document.createElement("template");return e.innerHTML=t,e}var ws=new WeakMap,ys=new WeakMap,vs=Symbol("un-keyed"),Es="replaceChildren"in Element.prototype;function Ts(t,e){Es?t.replaceChildren(...e):(t.innerHTML="",t.append(...e))}function xs(t,e){let s=t.firstChild,r=0;for(;s;){if(e[r]!==s)return!0;s=s.nextSibling,r++}return r!==e.length}function Ls(t,e){let{targetNode:s}=e,{targetParentNode:r}=e,n=!1;r?n=xs(r,t):(n=!0,e.targetNode=void 0,e.targetParentNode=r=s.parentNode),n&&Ts(r,t)}function Ss(t,e){for(let s of e){let{targetNode:r,currentExpression:n,binding:{expressionIndex:a,attributeName:i,attributeValuePre:f,attributeValuePost:d}}=s,c=t[a];if(n!==c)if(s.currentExpression=c,i)r.setAttribute(i,f+Bt(c)+d);else{let h;Array.isArray(c)?Ls(c,s):c instanceof Element?(h=c,r.replaceWith(h)):r.nodeValue=Bt(c),h&&(s.targetNode=h)}}}function js(t){let e="",s=!1,r=!1,n=-1,a=new Map,i=[];for(let d=0,c=t.length;d":{s=!1,r=!1;break}case"=":{r=!0;break}}let w=i[i.length-1],m=fe(a,w,()=>[]),T,b,S;if(r){let M=/(\S+)="?([^"=]*)$/.exec(h);T=M[1],b=M[2],S=/^[^">]*/.exec(t[d+1])[0]}let j={attributeName:T,attributeValuePre:b,attributeValuePost:S,expressionIndex:d};m.push(j),!s&&!r&&(e+=" ")}return{template:ks(e),elementsToBindings:a}}function Ut(t,e,s){for(let r=0;rjs(t)),r=e.cloneNode(!0).content.firstElementChild,n=_s(r,s);return function(i){return Ss(i,n),r}}function As(t){let e=fe(ys,t,()=>new Map),s=vs;function r(a,...i){let f=fe(e,a,()=>new Map);return fe(f,s,()=>Ms(a))(i)}function n(a,i,f){return a.map((d,c)=>{let h=s;s=f(d);try{return i(d,c)}finally{s=h}})}return{map:n,html:r}}function Cs(t,e,s,r,n,a,i,f,d){let{labelWithSkin:c,titleForEmoji:h,unicodeWithSkin:w}=s,{html:m,map:T}=As(e);function b(k,L,C){return T(k,(D,$)=>m``,D=>`${C}-${D.id}`)}let j=m`
${e.i18n.searchDescription}
${e.i18n.skinToneDescription}
${T(e.skinTones,(k,L)=>m`
${k}
`,k=>k)}
${T(e.currentEmojisWithCategories,(k,L)=>m`
${b(k.emojis,e.searchMode,"emo")}
`,k=>k.category)}
`,M=(k,L)=>{for(let C of t.querySelectorAll(`[${k}]`))L(C,C.getAttribute(k))};if(d){t.appendChild(j);for(let k of["click","focusout","input","keydown","keyup"])M(`data-on-${k}`,(L,C)=>{L.addEventListener(k,r[C])});M("data-ref",(k,L)=>{a[L]=k}),i.addEventListener("abort",()=>{t.removeChild(j)})}M("data-action",(k,L)=>{let C=f.get(L);C||f.set(L,C=new WeakSet),C.has(k)||(C.add(k),n[L](k))})}var Te=typeof queueMicrotask=="function"?queueMicrotask:t=>Promise.resolve().then(t);function Is(t){let e=!1,s,r=new Map,n=new Set,a,i=()=>{if(e)return;let c=[...n];n.clear();try{for(let h of c)h()}finally{a=!1,n.size&&(a=!0,Te(i))}},f=new Proxy({},{get(c,h){if(s){let w=r.get(h);w||(w=new Set,r.set(h,w)),w.add(s)}return c[h]},set(c,h,w){if(c[h]!==w){c[h]=w;let m=r.get(h);if(m){for(let T of m)n.add(T);a||(a=!0,Te(i))}}return!0}}),d=c=>{let h=()=>{let w=s;s=h;try{return c()}finally{s=w}};return h()};return t.addEventListener("abort",()=>{e=!0}),{state:f,createEffect:d}}function Ke(t,e,s){if(t.length!==e.length)return!1;for(let r=0;r{n.disconnect()})),n.observe(t)}}var Ge=[],{assign:ve}=Object;function Ds(t,e){let s={},r=new AbortController,n=r.signal,{state:a,createEffect:i}=Is(n),f=new Map;ve(a,{skinToneEmoji:void 0,i18n:void 0,database:void 0,customEmoji:void 0,customCategorySorting:void 0,emojiVersion:void 0}),ve(a,e),ve(a,{initialLoad:!0,currentEmojis:[],currentEmojisWithCategories:[],rawSearchText:"",searchText:"",searchMode:!1,activeSearchItem:-1,message:void 0,skinTonePickerExpanded:!1,skinTonePickerExpandedAfterAnimation:!1,currentSkinTone:0,activeSkinTone:0,skinToneButtonText:void 0,pickerStyle:void 0,skinToneButtonLabel:"",skinTones:[],currentFavorites:[],defaultFavoriteEmojis:void 0,numColumns:es,isRtl:!1,currentGroupIndex:0,groups:Be,databaseLoaded:!1,activeSearchItemId:void 0}),i(()=>{a.currentGroup!==a.groups[a.currentGroupIndex]&&(a.currentGroup=a.groups[a.currentGroupIndex])});let d=o=>{t.getElementById(o).focus()},c=o=>t.getElementById(`emo-${o.id}`),h=(o,u)=>{s.rootElement.dispatchEvent(new CustomEvent(o,{detail:u,bubbles:!0,composed:!0}))},w=(o,u)=>o.id===u.id,m=(o,u)=>{let{category:E,emojis:x}=o,{category:_,emojis:P}=u;return E!==_?!1:Ke(x,P,w)},T=o=>{Ke(a.currentEmojis,o,w)||(a.currentEmojis=o)},b=o=>{a.searchMode!==o&&(a.searchMode=o)},S=o=>{Ke(a.currentEmojisWithCategories,o,m)||(a.currentEmojisWithCategories=o)},j=(o,u)=>u&&o.skins&&o.skins[u]||o.unicode,L={labelWithSkin:(o,u)=>gs([o.name||j(o,u),o.annotation,...o.shortcodes||Ge].filter(Boolean)).join(", "),titleForEmoji:o=>o.annotation||(o.shortcodes||Ge).join(", "),unicodeWithSkin:j},C={onClickSkinToneButton:W,onEmojiClick:q,onNavClick:Z,onNavKeydown:G,onSearchKeydown:B,onSkinToneOptionsClick:z,onSkinToneOptionsFocusOut:xe,onSkinToneOptionsKeydown:oe,onSkinToneOptionsKeyup:le,onSearchInput:Ze},D={calculateEmojiGridStyle:N,updateOnIntersection:g},$=!0;i(()=>{Cs(t,a,L,C,D,s,n,f,$),$=!1}),a.emojiVersion||He().then(o=>{o||(a.message=a.i18n.emojiUnsupportedMessage)}),i(()=>{async function o(){let u=!1,E=setTimeout(()=>{u=!0,a.message=a.i18n.loadingMessage},Xa);try{await a.database.ready(),a.databaseLoaded=!0}catch(x){console.error(x),a.message=a.i18n.networkErrorMessage}finally{clearTimeout(E),u&&(u=!1,a.message="")}}a.database&&o()}),i(()=>{a.pickerStyle=` + `,this.#t=document.createElement("div"),this.#t.classList.add("content");let a=document.createElement("slot");this.#t.append(a);let i=document.createElement("slot");i.name="icon",r.append(n,i,this.#t)}#s(){this.#e.setIcon(this.icon,!0),this.#t.setAttribute("role",this.type==="error"?"alert":"status"),this.classList.remove(...Object.values(t)),this.classList.add(this.type)}get type(){if(!this.hasAttribute("type"))throw new Error("missing attribute 'type'");let r=this.getAttribute("type");if(!Object.values(t).includes(r))throw new Error(`invalid value '${r}' for attribute 'type' given`);return r}set type(r){this.setAttribute("type",r),this.#e!==void 0&&this.#s()}get icon(){switch(this.type){case"success":return"circle-check";case"warning":return"triangle-exclamation";case"error":return"circle-exclamation";case"info":return"circle-info"}}}window.customElements.define("woltlab-core-notice",e)}{let t,e=()=>(t===void 0&&(t=window.matchMedia("(max-width: 544px)")),t);class s extends HTMLElement{#e="pagination";connectedCallback(){this.#t(),e().addEventListener("change",()=>this.#t())}#t(){if(this.innerHTML="",this.count<2)return;this.classList.add(`${this.#e}__wrapper`);let n=this.#a();this.append(n);let a=this.#s();a&&n.append(a);let i=document.createElement("ul");i.classList.add(`${this.#e}__list`),n.append(i),i.append(this.#n(1)),this.page>this.thresholdForEllipsis+1&&i.append(this.#i()),this.#c().forEach(d=>{i.append(d)}),this.count-this.page>this.thresholdForEllipsis&&i.append(this.#i()),i.append(this.#n(this.count));let f=this.#l();f&&n.append(f)}#a(){let n=document.createElement("nav");return n.setAttribute("role","navigation"),n.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pagination")),n.classList.add(this.#e),n}#s(){if(this.page===1)return;let n=document.createElement("div");n.classList.add(`${this.#e}__prev`);let a=this.#r(this.page-1);a instanceof HTMLAnchorElement&&(a.rel="prev"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.previous"),a.classList.add("jsTooltip"),n.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-left"),a.append(i),n}#l(){if(this.page===this.count)return;let n=document.createElement("div");n.classList.add(`${this.#e}__next`);let a=this.#r(this.page+1);a instanceof HTMLAnchorElement&&(a.rel="next"),a.title=window.WoltLabLanguage.getPhrase("wcf.global.page.next"),a.classList.add("jsTooltip"),n.append(a);let i=document.createElement("fa-icon");return i.setIcon("arrow-right"),a.append(i),n}#r(n){let a,i=this.getLinkUrl(n);return i?(a=document.createElement("a"),a.href=i):(a=document.createElement("button"),a.type="button",this.page===n?a.disabled=!0:a.addEventListener("click",()=>{this.#o(n)})),a.classList.add(`${this.#e}__link`),a}#n(n){let a=document.createElement("li");a.classList.add(`${this.#e}__item`);let i=this.#r(n);return i.setAttribute("aria-label",window.WoltLabLanguage.getPhrase("wcf.page.pageNo",{pageNo:n})),n===this.page&&(i.setAttribute("aria-current","page"),i.classList.add(`${this.#e}__link--current`)),i.textContent=n.toLocaleString(document.documentElement.lang),a.append(i),a}#c(){let n=[],a,i;e().matches?(a=this.page,i=this.page):(a=this.page-1,a===3&&a--,i=this.page+1,i===this.count-2&&i++);for(let f=a;f<=i;f++)f<=1||f>=this.count||n.push(this.#n(f));return n}#i(){let n=document.createElement("li");n.classList.add(`${this.#e}__item`,`${this.#e}__item--ellipsis`);let a=document.createElement("button");return a.type="button",a.title=window.WoltLabLanguage.getPhrase("wcf.page.jumpTo"),a.classList.add("pagination__link","jsTooltip"),a.innerHTML="⋯",a.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("jumpToPage"))}),n.append(a),n}get thresholdForEllipsis(){return e().matches?1:3}getLinkUrl(n){if(!this.url)return"";let a=new URL(this.url);return a.search+=a.search!==""?"&":"?",a.search+=new URLSearchParams([["pageNo",n.toString()]]).toString(),a.toString()}jumpToPage(n){let a=this.getLinkUrl(n);a?window.location.href=a:this.#o(n)}#o(n){let a=new CustomEvent("switchPage",{cancelable:!0,detail:n});this.dispatchEvent(a),a.defaultPrevented||(this.page=n)}get count(){return this.hasAttribute("count")?parseInt(this.getAttribute("count")):0}set count(n){this.setAttribute("count",n.toString()),this.#t()}get page(){return this.hasAttribute("page")?parseInt(this.getAttribute("page")):1}set page(n){this.setAttribute("page",n.toString()),this.#t()}get url(){return this.getAttribute("url")}set url(n){this.setAttribute("url",n),this.#t()}}window.customElements.define("woltlab-core-pagination",s)}{class t extends HTMLElement{connectedCallback(){this.setData(this.#t(),this.#a())}setData(s,r){this.#e(s,r)}get objectId(){return parseInt(this.getAttribute("object-id"))}get objectType(){return this.getAttribute("object-type")}#e(s,r){if(this.innerHTML="",!s.size)return;let n=document.createElement("button");n.classList.add("reactionSummary","jsTooltip"),n.title=window.WoltLabLanguage.getPhrase("wcf.reactions.summary.listReactions"),n.addEventListener("click",()=>{this.dispatchEvent(new Event("showDetails"))}),this.append(n),s.forEach((a,i)=>{let f=document.createElement("span");f.classList.add("reactionCountButton"),i===r&&f.classList.add("selected");let d=document.createElement("span");d.innerHTML=window.REACTION_TYPES[i].renderedIcon,f.append(d);let c=document.createElement("span");c.classList.add("reactionCount"),c.textContent=a.toString(),f.append(c),n.append(f)})}#t(){let s=JSON.parse(this.getAttribute("data"));return this.removeAttribute("data"),new Map(s)}#a(){return parseInt(this.getAttribute("selected-reaction"))}}window.customElements.define("woltlab-core-reaction-summary",t)}var rt={categoriesLabel:"\u0627\u0644\u0641\u0626\u0627\u062A",emojiUnsupportedMessage:"\u0645\u062A\u0635\u0641\u062D\u0643 \u0644\u0627 \u064A\u062F\u0639\u0645 \u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631 \u0627\u0644\u0645\u0644\u0648\u0646\u0629.",favoritesLabel:"\u0627\u0644\u0645\u0641\u0636\u0644\u0629",loadingMessage:"\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u062D\u0645\u064A\u0644\u2026",networkErrorMessage:"\u062A\u0639\u0630\u0631 \u062A\u062D\u0645\u064A\u0644 \u0631\u0645\u0632 \u0645\u0634\u0627\u0639\u0631.",regionLabel:"\u0645\u0646\u062A\u0642\u064A \u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631",searchDescription:"\u0639\u0646\u062F\u0645\u0627 \u062A\u0643\u0648\u0646 \u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0628\u062D\u062B \u0645\u062A\u0627\u062D\u0629\u060C \u0627\u0636\u063A\u0637 \u0627\u0644\u0633\u0647\u0645 \u0644\u0623\u0639\u0644\u0649 \u0623\u0648 \u0644\u0623\u0633\u0641\u0644 \u0644\u0644\u062A\u062D\u062F\u064A\u062F \u0648\u0627\u0636\u063A\u0637 enter \u0644\u0644\u0627\u062E\u062A\u064A\u0627\u0631.",searchLabel:"\u0628\u062D\u062B",searchResultsLabel:"\u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0628\u062D\u062B",skinToneDescription:"\u0639\u0646\u062F \u062A\u0648\u0633\u064A\u0639 \u0627\u0644\u0646\u062A\u0627\u0626\u062C\u060C \u0627\u0636\u063A\u0637 \u0627\u0644\u0633\u0647\u0645 \u0644\u0623\u0639\u0644\u0649 \u0623\u0648 \u0644\u0623\u0633\u0641\u0644 \u0644\u0644\u062A\u062D\u062F\u064A\u062F \u0648\u0627\u0636\u063A\u0637 enter \u0644\u0644\u0627\u062E\u062A\u064A\u0627\u0631.",skinToneLabel:"\u0627\u062E\u062A\u0631 \u062F\u0631\u062C\u0629 \u0644\u0648\u0646 \u0627\u0644\u0628\u0634\u0631\u0629 (\u062D\u0627\u0644\u064A\u064B\u0627 {skinTone})",skinTonesLabel:"\u062F\u0631\u062C\u0627\u062A \u0644\u0648\u0646 \u0627\u0644\u0628\u0634\u0631\u0629",skinTones:["\u0627\u0641\u062A\u0631\u0627\u0636\u064A","\u0641\u0627\u062A\u062D","\u0641\u0627\u062A\u062D \u0645\u062A\u0648\u0633\u0637","\u0645\u062A\u0648\u0633\u0637","\u062F\u0627\u0643\u0646 \u0645\u062A\u0648\u0633\u0637","\u062F\u0627\u0643\u0646"],categories:{custom:"\u0645\u062E\u0635\u0635","smileys-emotion":"\u0627\u0644\u0648\u062C\u0648\u0647 \u0627\u0644\u0636\u0627\u062D\u0643\u0629 \u0648\u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631","people-body":"\u0627\u0644\u0623\u0634\u062E\u0627\u0635 \u0648\u0627\u0644\u062C\u0633\u062F","animals-nature":"\u0627\u0644\u062D\u064A\u0648\u0627\u0646\u0627\u062A \u0648\u0627\u0644\u0637\u0628\u064A\u0639\u0629","food-drink":"\u0627\u0644\u0637\u0639\u0627\u0645 \u0648\u0627\u0644\u0634\u0631\u0627\u0628","travel-places":"\u0627\u0644\u0633\u0641\u0631 \u0648\u0627\u0644\u0623\u0645\u0627\u0643\u0646",activities:"\u0627\u0644\u0623\u0646\u0634\u0637\u0629",objects:"\u0627\u0644\u0623\u0634\u064A\u0627\u0621",symbols:"\u0627\u0644\u0631\u0645\u0648\u0632",flags:"\u0627\u0644\u0623\u0639\u0644\u0627\u0645"}};var nt={categoriesLabel:"Kategorien",emojiUnsupportedMessage:"Dein Browser unterst\xFCtzt keine farbigen Emojis.",favoritesLabel:"Favoriten",loadingMessage:"Wird geladen\u2026",networkErrorMessage:"Konnte Emoji nicht laden.",regionLabel:"Emoji ausw\xE4hlen",searchDescription:"Wenn Suchergebnisse verf\xFCgbar sind, w\xE4hle sie mit Pfeil rauf und runter, dann Eingabetaste, aus.",searchLabel:"Suchen",searchResultsLabel:"Suchergebnisse",skinToneDescription:"Wenn angezeigt, nutze Pfeiltasten rauf und runter zum Ausw\xE4hlen, Eingabe zum Akzeptieren.",skinToneLabel:"W\xE4hle einen Hautton (aktuell {skinTone})",skinTonesLabel:"Hautt\xF6ne",skinTones:["Standard","Hell","Mittel-hell","Mittel","Mittel-dunkel","Dunkel"],categories:{custom:"Benutzerdefiniert","smileys-emotion":"Smileys und Emoticons","people-body":"Menschen und K\xF6rper","animals-nature":"Tiere und Natur","food-drink":"Essen und Trinken","travel-places":"Reisen und Orte",activities:"Aktivit\xE4ten",objects:"Objekte",symbols:"Symbole",flags:"Flaggen"}};var it={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading\u2026",networkErrorMessage:"Could not load emoji.",regionLabel:"Emoji picker",searchDescription:"When search results are available, press up or down to select and enter to choose.",searchLabel:"Search",searchResultsLabel:"Search results",skinToneDescription:"When expanded, press up or down to select and enter to choose.",skinToneLabel:"Choose a skin tone (currently {skinTone})",skinTonesLabel:"Skin tones",skinTones:["Default","Light","Medium-Light","Medium","Medium-Dark","Dark"],categories:{custom:"Custom","smileys-emotion":"Smileys and emoticons","people-body":"People and body","animals-nature":"Animals and nature","food-drink":"Food and drink","travel-places":"Travel and places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}};var ot={categoriesLabel:"Categor\xEDas",emojiUnsupportedMessage:"El navegador no admite emojis de color.",favoritesLabel:"Favoritos",loadingMessage:"Cargando\u2026",networkErrorMessage:"No se pudo cargar el emoji.",regionLabel:"Selector de emojis",searchDescription:"Cuando est\xE9n disponibles los resultados, pulsa la tecla hacia arriba o hacia abajo para seleccionar y la tecla intro para elegir.",searchLabel:"Buscar",searchResultsLabel:"Resultados de b\xFAsqueda",skinToneDescription:"Cuando se abran las opciones, pulsa la tecla hacia arriba o hacia abajo para seleccionar y la tecla intro para elegir.",skinToneLabel:"Elige un tono de piel ({skinTone} es el actual)",skinTonesLabel:"Tonos de piel",skinTones:["Predeterminado","Claro","Claro medio","Medio","Oscuro medio","Oscuro"],categories:{custom:"Personalizado","smileys-emotion":"Emojis y emoticones","people-body":"Personas y partes del cuerpo","animals-nature":"Animales y naturaleza","food-drink":"Comida y bebida","travel-places":"Viajes y lugares",activities:"Actividades",objects:"Objetos",symbols:"S\xEDmbolos",flags:"Banderas"}};var lt={categoriesLabel:"Cat\xE9gories",emojiUnsupportedMessage:"Votre navigateur ne supporte pas les emojis en couleur.",favoritesLabel:"Favoris",loadingMessage:"Chargement en cours\u2026",networkErrorMessage:"Impossible de charger les emojis.",regionLabel:"Choisir un emoji",searchDescription:"Lorsque les r\xE9sultats sont affich\xE9s, utilisez les fl\xE8ches haut/bas pour naviguer et la touche entr\xE9e pour s\xE9lectionner.",searchLabel:"Rechercher",searchResultsLabel:"R\xE9sultats",skinToneDescription:"Quand disponible, utilisez les fl\xE8ches haut/bas pour naviguer et la touche entr\xE9e pour s\xE9lectionner.",skinToneLabel:"Choisir une couleur de peau (actuellement {skinTone})",skinTonesLabel:"Couleurs de peau",skinTones:["Par d\xE9faut","Clair","Moyennement clair","Moyen","Moyennement sombre","Sombre"],categories:{custom:"Personnalis\xE9","smileys-emotion":"\xC9motic\xF4nes","people-body":"Corps et m\xE9tiers","animals-nature":"Animaux et nature","food-drink":"Nourriture et boissons","travel-places":"Voyages et lieux",activities:"Activit\xE9s",objects:"Objets",symbols:"Symboles",flags:"Drapeaux"}};var ct={categoriesLabel:"\u0936\u094D\u0930\u0947\u0923\u093F\u092F\u093E\u0901",emojiUnsupportedMessage:"\u0906\u092A\u0915\u093E \u092C\u094D\u0930\u093E\u0909\u091C\u093C\u0930 \u0915\u0932\u0930 \u0907\u092E\u094B\u091C\u0940 \u0915\u093E \u0938\u092E\u0930\u094D\u0925\u0928 \u0928\u0939\u0940\u0902 \u0915\u0930\u0924\u093E\u0964",favoritesLabel:"\u092A\u0938\u0902\u0926\u0940\u0926\u093E",loadingMessage:"\u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u093E \u0939\u0948...",networkErrorMessage:"\u0907\u092E\u094B\u091C\u0940 \u0932\u094B\u0921 \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u0947\u0964",regionLabel:"\u0907\u092E\u094B\u091C\u0940 \u091A\u0941\u0928\u0928\u0947\u0935\u093E\u0932\u093E",searchDescription:"\u091C\u092C \u0916\u094B\u091C \u092A\u0930\u093F\u0923\u093E\u092E \u0909\u092A\u0932\u092C\u094D\u0927 \u0939\u094B\u0902 \u0924\u094B \u091A\u092F\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090A\u092A\u0930 \u092F\u093E \u0928\u0940\u091A\u0947 \u0926\u092C\u093E\u090F\u0902 \u0914\u0930 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090F\u0902\u091F\u0930 \u0926\u092C\u093E\u090F\u0902\u0964",searchLabel:"\u0916\u094B\u091C",searchResultsLabel:"\u0916\u094B\u091C \u0915\u0947 \u092A\u0930\u093F\u0923\u093E\u092E",skinToneDescription:"\u091C\u092C \u0935\u093F\u0938\u094D\u0924\u0943\u0924 \u0915\u093F\u092F\u093E \u091C\u093E\u0924\u093E \u0939\u0948 \u0924\u094B \u091A\u092F\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090A\u092A\u0930 \u092F\u093E \u0928\u0940\u091A\u0947 \u0926\u092C\u093E\u090F\u0902 \u0914\u0930 \u091A\u0941\u0928\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090F\u0902\u091F\u0930 \u0926\u092C\u093E\u090F\u0902\u0964",skinToneLabel:"\u0924\u094D\u0935\u091A\u093E \u0915\u093E \u0930\u0902\u0917 \u091A\u0941\u0928\u0947\u0902 (\u0935\u0930\u094D\u0924\u092E\u093E\u0928 \u092E\u0947\u0902 {skinTone})",skinTonesLabel:"\u0924\u094D\u0935\u091A\u093E \u0915\u0947 \u0930\u0902\u0917",skinTones:["\u0921\u093F\u092B\u0949\u0932\u094D\u091F","\u0939\u0932\u094D\u0915\u093E","\u092E\u0927\u094D\u092F\u092E \u0939\u0932\u094D\u0915\u093E","\u092E\u0927\u094D\u092F\u092E","\u092E\u0927\u094D\u092F\u092E \u0917\u0939\u0930\u093E","\u0917\u0939\u0930\u093E"],categories:{custom:"\u0915\u0938\u094D\u091F\u092E","smileys-emotion":"\u0938\u094D\u092E\u093E\u0907\u0932\u0940 \u0914\u0930 \u0907\u092E\u094B\u091F\u093F\u0915\u0949\u0928\u094D\u0938","people-body":"\u0932\u094B\u0917 \u0914\u0930 \u0936\u0930\u0940\u0930","animals-nature":"\u092A\u0936\u0941 \u0914\u0930 \u092A\u094D\u0930\u0915\u0943\u0924\u093F","food-drink":"\u0916\u093E\u0926\u094D\u092F \u0914\u0930 \u092A\u0947\u092F","travel-places":"\u092F\u093E\u0924\u094D\u0930\u093E \u0914\u0930 \u0938\u094D\u0925\u093E\u0928",activities:"\u0917\u0924\u093F\u0935\u093F\u0927\u093F\u092F\u093E\u0902",objects:"\u0935\u0938\u094D\u0924\u0941\u090F\u0902",symbols:"\u092A\u094D\u0930\u0924\u0940\u0915",flags:"\u091D\u0902\u0921\u0947"}};var ut={categoriesLabel:"Kategori",emojiUnsupportedMessage:"Browser Anda tidak mendukung emoji warna.",favoritesLabel:"Favorit",loadingMessage:"Memuat...",networkErrorMessage:"Tidak dapat memuat emoji.",regionLabel:"Pemilih emoji",searchDescription:"Ketika hasil pencarian tersedia, tekan atas atau bawah untuk menyeleksi dan enter untuk memilih.",searchLabel:"Cari",searchResultsLabel:"Hasil Pencarian",skinToneDescription:"Saat diperluas tekan atas atau bawah untuk menyeleksi dan enter untuk memilih.",skinToneLabel:"Pilih warna skin (saat ini {skinTone})",skinTonesLabel:"Warna skin",skinTones:["Default","Light","Medium light","Medium","Medium dark","Dark"],categories:{custom:"Kustom","smileys-emotion":"Smiley dan emoticon","people-body":"Orang dan bagian tubuh","animals-nature":"Hewan dan tumbuhan","food-drink":"Makanan dan minuman","travel-places":"Rekreasi dan tempat",activities:"Aktivitas",objects:"Objek",symbols:"Simbol",flags:"Bendera"}};var ft={categoriesLabel:"Categorie",emojiUnsupportedMessage:"Il tuo browser non supporta le emoji colorate.",favoritesLabel:"Preferiti",loadingMessage:"Caricamento...",networkErrorMessage:"Impossibile caricare le emoji.",regionLabel:"Selezione emoji",searchDescription:"Quando i risultati della ricerca sono disponibili, premi su o gi\xF9 per selezionare e invio per scegliere.",searchLabel:"Cerca",searchResultsLabel:"Risultati di ricerca",skinToneDescription:"Quando espanso, premi su o gi\xF9 per selezionare e invio per scegliere.",skinToneLabel:"Scegli una tonalit\xE0 della pelle (corrente {skinTone})",skinTonesLabel:"Tonalit\xE0 della pelle",skinTones:["Predefinita","Chiara","Medio-Chiara","Media","Medio-Scura","Scura"],categories:{custom:"Personalizzata","smileys-emotion":"Faccine ed emozioni","people-body":"Persone e corpi","animals-nature":"Animali e natura","food-drink":"Cibi e bevande","travel-places":"Viaggi e luoghi",activities:"Attivit\xE0",objects:"Oggetti",symbols:"Simboli",flags:"Bandiere"}};var dt={categoriesLabel:"Kategori",emojiUnsupportedMessage:"Penyemak imbas anda tidak menyokong emoji warna.",favoritesLabel:"Kegemaran",loadingMessage:"Memuat\u2026",networkErrorMessage:"Tidak dapat memuatkan emoji.",regionLabel:"Pemilih emoji",searchDescription:"Apabila hasil carian tersedia, tekan atas atau bawah untuk memilih dan tekan masukkan untuk memilih.",searchLabel:"Cari",searchResultsLabel:"Hasil carian",skinToneDescription:"Apabila dikembangkan, tekan atas atau bawah untuk memilih dan tekan masukkan untuk memilih.",skinToneLabel:"Pilih warna kulit (pada masa ini {skinTone})",skinTonesLabel:"Warna kulit",skinTones:["Lalai","Cerah","Kuning langsat","Sederhana cerah","Sawo matang","Gelap"],categories:{custom:"Tersuai","smileys-emotion":"Smiley dan emotikon","people-body":"Orang dan badan","animals-nature":"Haiwan dan alam semula jadi","food-drink":"Makanan dan minuman","travel-places":"Perjalanan dan tempat",activities:"Aktiviti",objects:"Objek",symbols:"Simbol",flags:"Bendera"}};var ht={categoriesLabel:"Categorie\xEBn",emojiUnsupportedMessage:"Uw browser ondersteunt geen kleurenemoji.",favoritesLabel:"Favorieten",loadingMessage:"Bezig met laden\u2026",networkErrorMessage:"Kan emoji niet laden.",regionLabel:"Emoji-kiezer",searchDescription:"Als er zoekresultaten beschikbaar zijn, drukt u op omhoog of omlaag om te selecteren en op enter om te kiezen.",searchLabel:"Zoeken",searchResultsLabel:"Zoekresultaten",skinToneDescription:"Wanneer uitgevouwen, druk omhoog of omlaag om te selecteren en enter om te kiezen.",skinToneLabel:"Kies een huidskleur (momenteel {skinTone})",skinTonesLabel:"Huidskleuren",skinTones:["Standaard","Licht","Medium-Licht","Medium","Middeldonker","Donker"],categories:{custom:"Aangepast","smileys-emotion":"Smileys en emoticons","people-body":"Mensen en lichaam","animals-nature":"Dieren en natuur","food-drink":"Eten en drinken","travel-places":"Reizen en plaatsen",activities:"Activiteiten",objects:"Voorwerpen",symbols:"Symbolen",flags:"Vlaggen"}};var pt={categoriesLabel:"Kategorie",emojiUnsupportedMessage:"Twoja przegl\u0105darka nie wspiera kolorowych emotikon.",favoritesLabel:"Ulubione",loadingMessage:"\u0141aduj\u0119\u2026",networkErrorMessage:"Nie mo\u017Cna za\u0142adowa\u0107 emoji.",regionLabel:"Selektor emoji",searchDescription:"Kiedy wyniki wyszukiwania b\u0119d\u0105 dost\u0119pne, wci\u015Bnij g\xF3ra lub d\xF3\u0142 aby wybra\u0107 oraz enter aby zatwierdzi\u0107 wyb\xF3r.",searchLabel:"Wyszukaj",searchResultsLabel:"Wyniki wyszukiwania",skinToneDescription:"Po rozwini\u0119ciu wci\u015Bnij g\xF3ra lub d\xF3\u0142 aby wybra\u0107 oraz enter aby zatwierdzi\u0107 wyb\xF3r.",skinToneLabel:"Wybierz odcie\u0144 sk\xF3ry (aktualnie {skinTone})",skinTonesLabel:"Odcienie sk\xF3ry",skinTones:["Domy\u015Blna","Jasna","\u015Arednio-jasna","\u015Arednia","\u015Arednio-ciemna","Ciemna"],categories:{custom:"W\u0142asne","smileys-emotion":"U\u015Bmiechy","people-body":"Ludzie","animals-nature":"Zwierz\u0119ta i natura","food-drink":"\u017Bywno\u015B\u0107 i napoje","travel-places":"Podr\xF3\u017Ce i miejsca",activities:"Aktywno\u015Bci",objects:"Obiekty",symbols:"Symbole",flags:"Flagi"}};var mt={categoriesLabel:"Categorias",emojiUnsupportedMessage:"Seu navegador n\xE3o suporta emojis coloridos.",favoritesLabel:"Favoritos",loadingMessage:"Carregando\u2026",networkErrorMessage:"N\xE3o foi poss\xEDvel carregar o emoji.",regionLabel:"Seletor de emoji",searchDescription:"Quando os resultados da pesquisa estiverem dispon\xEDveis, pressione para cima ou para baixo para selecionar e \u201Center\u201D para escolher.",searchLabel:"Procurar",searchResultsLabel:"Resultados da pesquisa",skinToneDescription:"Quando expandido, pressione para cima ou para baixo para selecionar e \u201Center\u201D para escolher.",skinToneLabel:"Escolha um tom de pele (atualmente {skinTone})",skinTonesLabel:"Tons de pele",skinTones:["Padr\xE3o","Claro","Claro m\xE9dio","M\xE9dio","Escuro m\xE9dio","Escuro"],categories:{custom:"Personalizar","smileys-emotion":"Carinhas e emoticons","people-body":"Pessoas e corpo","animals-nature":"Animais e natureza","food-drink":"Alimentos e bebidas","travel-places":"Viagem e lugares",activities:"Atividades",objects:"Objetos",symbols:"S\xEDmbolos",flags:"Bandeiras"}};var gt={categoriesLabel:"Categorias",emojiUnsupportedMessage:"O seu browser n\xE3o suporta emojis.",favoritesLabel:"Favoritos",loadingMessage:"A Carregar\u2026",networkErrorMessage:"N\xE3o foi poss\xEDvel carregar o emoji.",regionLabel:"Emoji picker",searchDescription:"Quando os resultados da pesquisa estiverem dispon\xEDveis, pressione para cima ou para baixo para selecionar e digite para escolher.",searchLabel:"Procurar",searchResultsLabel:"Resultados da procura",skinToneDescription:"Quando expandido, pressione para cima ou para baixo para selecionar e digite para escolher.",skinToneLabel:"Escolha um tom de pele (atual {skinTone})",skinTonesLabel:"Tons de pele",skinTones:["Pr\xE9-definido","Claro","M\xE9dio-Claro","M\xE9dio","M\xE9dio-Escuro","Escuro"],categories:{custom:"Personalizados","smileys-emotion":"Smileys e emoticons","people-body":"Pessoas e corpo","animals-nature":"Animais e natureza","food-drink":"Comida e bebida","travel-places":"Viagens e locais",activities:"Atividades",objects:"Objetos",symbols:"S\xEDmbolos",flags:"Bandeiras"}};var bt={categoriesLabel:"\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438",emojiUnsupportedMessage:"\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0446\u0432\u0435\u0442\u043D\u044B\u0435 \u044D\u043C\u043E\u0434\u0437\u0438.",favoritesLabel:"\u0418\u0437\u0431\u0440\u0430\u043D\u043D\u043E\u0435",loadingMessage:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u2026",networkErrorMessage:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u044D\u043C\u043E\u0434\u0437\u0438. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443.",regionLabel:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u043C\u043E\u0434\u0437\u0438",searchDescription:"\u041A\u043E\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u0442\u0430\u043D\u0443\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0445 \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0441\u0442\u0440\u0435\u043B\u043E\u043A \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043D\u0438\u0437, \u0437\u0430\u0442\u0435\u043C \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F.",searchLabel:"\u0418\u0441\u043A\u0430\u0442\u044C",searchResultsLabel:"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430",skinToneDescription:"\u041F\u0440\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438 \u0441\u043E \u0441\u0442\u0440\u0435\u043B\u043A\u0430\u043C\u0438 \u0432\u0432\u0435\u0440\u0445 \u0438 \u0432\u043D\u0438\u0437 \u0434\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430, \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F.",skinToneLabel:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0442\u0442\u0435\u043D\u043E\u043A \u043A\u043E\u0436\u0438 (\u0442\u0435\u043A\u0443\u0449\u0438\u0439 {skinTone})",skinTonesLabel:"\u041E\u0442\u0442\u0435\u043D\u043A\u0438 \u043A\u043E\u0436\u0438",skinTones:["\u0421\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439","\u0421\u0432\u0435\u0442\u043B\u044B\u0439","\u0421\u0440\u0435\u0434\u043D\u0435-\u0441\u0432\u0435\u0442\u043B\u044B\u0439","\u0421\u0440\u0435\u0434\u043D\u0438\u0439","\u0421\u0440\u0435\u0434\u043D\u0435-\u0442\u0435\u043C\u043D\u044B\u0439","\u0422\u0435\u043C\u043D\u044B\u0439"],categories:{custom:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439","smileys-emotion":"\u0421\u043C\u0430\u0439\u043B\u0438\u043A\u0438 \u0438 \u042D\u043C\u043E\u0442\u0438\u043A\u043E\u043D\u044B","people-body":"\u041B\u044E\u0434\u0438 \u0438 \u0422\u0435\u043B\u0430","animals-nature":"\u0416\u0438\u0432\u043E\u0442\u043D\u044B\u0435 \u0438 \u041F\u0440\u0438\u0440\u043E\u0434\u0430","food-drink":"\u0415\u0434\u0430 \u0438 \u041D\u0430\u043F\u0438\u0442\u043A\u0438","travel-places":"\u041F\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044F \u0438 \u041C\u0435\u0441\u0442\u0430",activities:"\u0412\u0438\u0434\u044B \u0434\u0435\u044F\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438",objects:"\u041E\u0431\u044A\u0435\u043A\u0442\u044B",symbols:"\u0421\u0438\u043C\u0432\u043E\u043B\u044B",flags:"\u0424\u043B\u0430\u0433\u0438"}};var kt={categoriesLabel:"Kategoriler",emojiUnsupportedMessage:"Taray\u0131c\u0131n\u0131z renkli emojiyi desteklemiyor.",favoritesLabel:"Favoriler",loadingMessage:"Y\xFCkleniyor\u2026",networkErrorMessage:"Emoji y\xFCklenemedi.",regionLabel:"Emoji se\xE7ici",searchDescription:"Arama sonu\xE7lar\u0131 mevcut oldu\u011Funda se\xE7mek i\xE7in yukar\u0131 veya a\u015Fa\u011F\u0131 bas\u0131n ve se\xE7mek i\xE7in girin.",searchLabel:"Arama",searchResultsLabel:"Arama sonu\xE7lar\u0131",skinToneDescription:"Geni\u015Fletildi\u011Finde se\xE7mek i\xE7in yukar\u0131 veya a\u015Fa\u011F\u0131 bas\u0131n ve se\xE7mek i\xE7in girin.",skinToneLabel:"Cilt tonu se\xE7in (\u015Fu anda {skinTone})",skinTonesLabel:"Cilt tonlar\u0131",skinTones:["Varsay\u0131lan","I\u015F\u0131k","Orta \u0131\u015F\u0131k","Orta","Orta koyu","Karanl\u0131k"],categories:{custom:"Gelenek","smileys-emotion":"Suratlar ve ifadeler","people-body":"\u0130nsanlar ve v\xFCcut","animals-nature":"Hayvanlar ve do\u011Fa","food-drink":"Yiyecek ve i\xE7ecek","travel-places":"Seyahat ve yerler",activities:"Aktiviteler",objects:"Nesneler",symbols:"Semboller",flags:"Bayraklar"}};var wt={categoriesLabel:"\u7C7B\u522B",emojiUnsupportedMessage:"\u60A8\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F69\u8272\u8868\u60C5\u7B26\u53F7\u3002",favoritesLabel:"\u6536\u85CF\u5939",loadingMessage:"\u6B63\u5728\u52A0\u8F7D\u2026",networkErrorMessage:"\u65E0\u6CD5\u52A0\u8F7D\u8868\u60C5\u7B26\u53F7\u3002",regionLabel:"\u8868\u60C5\u7B26\u53F7\u9009\u62E9\u5668",searchDescription:"\u5F53\u641C\u7D22\u7ED3\u679C\u53EF\u7528\u65F6\uFF0C\u6309\u5411\u4E0A\u6216\u5411\u4E0B\u9009\u62E9\u5E76\u8F93\u5165\u9009\u62E9\u3002",searchLabel:"\u641C\u7D22",searchResultsLabel:"\u641C\u7D22\u7ED3\u679C",skinToneDescription:"\u5C55\u5F00\u65F6\uFF0C\u6309\u5411\u4E0A\u6216\u5411\u4E0B\u952E\u8FDB\u884C\u9009\u62E9\uFF0C\u6309\u56DE\u8F66\u952E\u8FDB\u884C\u9009\u62E9\u3002",skinToneLabel:"\u9009\u62E9\u80A4\u8272\uFF08\u5F53\u524D\u4E3A {skinTone}\uFF09",skinTonesLabel:"\u80A4\u8272",skinTones:["\u9ED8\u8BA4","\u660E\u4EAE","\u5FAE\u4EAE","\u4E2D\u7B49","\u5FAE\u6697","\u6697"],categories:{custom:"\u81EA\u5B9A\u4E49","smileys-emotion":"\u7B11\u8138\u548C\u8868\u60C5","people-body":"\u4EBA\u7269\u548C\u8EAB\u4F53","animals-nature":"\u52A8\u7269\u4E0E\u81EA\u7136","food-drink":"\u98DF\u54C1\u996E\u6599","travel-places":"\u65C5\u884C\u548C\u5730\u65B9",activities:"\u6D3B\u52A8",objects:"\u7269\u4F53",symbols:"\u7B26\u53F7",flags:"\u65D7\u5E1C"}};function ge(t){if(typeof t!="string"||!t)throw new Error("expected a non-empty string, got: "+t)}function Ce(t){if(typeof t!="number")throw new Error("expected a number, got: "+t)}var fa=1,da=1,J="emoji",re="keyvalue",Re="favorites",ha="tokens",Tt="tokens",pa="unicode",xt="count",ma="group",ga="order",Lt="group-order",ze="eTag",we="url",yt="skinTone",ne="readonly",Oe="readwrite",St="skinUnicodes",ba="skinUnicodes",ka="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",wa="en";function ya(t,e){let s=new Set,r=[];for(let n of t){let a=e(n);s.has(a)||(s.add(a),r.push(n))}return r}function vt(t){return ya(t,e=>e.unicode)}function va(t){function e(s,r,n){let a=r?t.createObjectStore(s,{keyPath:r}):t.createObjectStore(s);if(n)for(let[i,[f,d]]of Object.entries(n))a.createIndex(i,f,{multiEntry:d});return a}e(re),e(J,pa,{[Tt]:[ha,!0],[Lt]:[[ma,ga]],[St]:[ba,!0]}),e(Re,void 0,{[xt]:[""]})}var De={},ke={},ye={};function jt(t,e,s){s.onerror=()=>e(s.error),s.onblocked=()=>e(new Error("IDB blocked")),s.onsuccess=()=>t(s.result)}async function Ea(t){let e=await new Promise((s,r)=>{let n=indexedDB.open(t,fa);De[t]=n,n.onupgradeneeded=a=>{a.oldVersionqe(t),e}function Ta(t){return ke[t]||(ke[t]=Ea(t)),ke[t]}function K(t,e,s,r){return new Promise((n,a)=>{let i=t.transaction(e,s,{durability:"relaxed"}),f=typeof e=="string"?i.objectStore(e):e.map(c=>i.objectStore(c)),d;r(f,i,c=>{d=c}),i.oncomplete=()=>n(d),i.onerror=()=>a(i.error)})}function qe(t){let e=De[t],s=e&&e.result;if(s){s.close();let r=ye[t];if(r)for(let n of r)n()}delete De[t],delete ke[t],delete ye[t]}function xa(t){return new Promise((e,s)=>{qe(t);let r=indexedDB.deleteDatabase(t);jt(e,s,r)})}function La(t,e){let s=ye[t];s||(s=ye[t]=[]),s.push(e)}var Sa=new Set([":D","XD",":'D","O:)",":X",":P",";P","XP",":L",":Z",":j","8D","XO","8)",":B",":O",":S",":'o","Dx","X(","D:",":C",">0)",":3","!e.match(/\w/)||Sa.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase()).filter(Boolean)}var ja=2;function _t(t){return t.filter(Boolean).map(e=>e.toLowerCase()).filter(e=>e.length>=ja)}function _a(t){return t.map(({annotation:s,emoticon:r,group:n,order:a,shortcodes:i,skins:f,tags:d,emoji:c,version:h})=>{let w=[...new Set(_t([...(i||[]).map(se).flat(),...(d||[]).map(se).flat(),...se(s),r]))].sort(),m={annotation:s,group:n,order:a,tags:d,tokens:w,unicode:c,version:h};if(r&&(m.emoticon=r),i&&(m.shortcodes=i),f){m.skinTones=[],m.skinUnicodes=[],m.skinVersions=[];for(let{tone:T,emoji:b,version:S}of f)m.skinTones.push(T),m.skinUnicodes.push(b),m.skinVersions.push(S)}return m})}function Mt(t,e,s,r){t[e](s).onsuccess=n=>r&&r(n.target.result)}function X(t,e,s){Mt(t,"get",e,s)}function At(t,e,s){Mt(t,"getAll",e,s)}function Fe(t){t.commit&&t.commit()}function Ma(t,e){let s=t[0];for(let r=1;re(n)&&(s=n)}return s}function It(t,e){let s=Ma(t,n=>n.length),r=[];for(let n of s)t.some(a=>a.findIndex(i=>e(i)===e(n))===-1)||r.push(n);return r}async function Aa(t){return!await Ne(t,re,we)}async function Ia(t,e,s){let[r,n]=await Promise.all([ze,we].map(a=>Ne(t,re,a)));return r===s&&n===e}async function Ca(t,e){return K(t,J,ne,(r,n,a)=>{let i,f=()=>{r.getAll(i&&IDBKeyRange.lowerBound(i,!0),50).onsuccess=d=>{let c=d.target.result;for(let h of c)if(i=h.unicode,e(h))return a(h);if(c.length<50)return a();f()}};f()})}async function Ct(t,e,s,r){try{let n=_a(e);await K(t,[J,re],Oe,([a,i],f)=>{let d,c,h=0;function w(){++h===2&&m()}function m(){if(!(d===r&&c===s)){a.clear();for(let T of n)a.put(T);i.put(r,ze),i.put(s,we),Fe(f)}}X(i,ze,T=>{d=T,w()}),X(i,we,T=>{c=T,w()})})}finally{}}async function za(t,e){return K(t,J,ne,(s,r,n)=>{let a=IDBKeyRange.bound([e,0],[e+1,0],!1,!0);At(s.index(Lt),a,n)})}async function zt(t,e){let s=_t(se(e));return s.length?K(t,J,ne,(r,n,a)=>{let i=[],f=()=>{i.length===s.length&&d()},d=()=>{let c=It(i,h=>h.unicode);a(c.sort((h,w)=>h.order{i.push(m),f()})}}):[]}async function Da(t,e){let s=await zt(t,e);return s.length?s.filter(r=>(r.shortcodes||[]).map(a=>a.toLowerCase()).includes(e.toLowerCase()))[0]||null:await Ca(t,n=>(n.shortcodes||[]).includes(e.toLowerCase()))||null}async function Pa(t,e){return K(t,J,ne,(s,r,n)=>X(s,e,a=>{if(a)return n(a);X(s.index(St),e,i=>n(i||null))}))}function Ne(t,e,s){return K(t,e,ne,(r,n,a)=>X(r,s,a))}function Ra(t,e,s,r){return K(t,e,Oe,(n,a)=>{n.put(r,s),Fe(a)})}function Oa(t,e){return K(t,Re,Oe,(s,r)=>X(s,e,n=>{s.put((n||0)+1,e),Fe(r)}))}function qa(t,e,s){return s===0?[]:K(t,[Re,J],ne,([r,n],a,i)=>{let f=[];r.index(xt).openCursor(void 0,"prev").onsuccess=d=>{let c=d.target.result;if(!c)return i(f);function h(T){if(f.push(T),f.length===s)return i(f);c.continue()}let w=c.primaryKey,m=e.byName(w);if(m)return h(m);X(n,w,T=>{if(T)return h(T);c.continue()})}})}var be="";function Fa(t,e){let s=new Map;for(let n of t){let a=e(n);for(let i of a){let f=s;for(let c=0;c{let i=s;for(let c=0;cw[0]!(r in t[0])));if(!e||s)throw new Error("Custom emojis are in the wrong format")}function Et(t){Ba(t);let e=(m,T)=>m.name.toLowerCase(){let T=new Set;if(m.shortcodes)for(let b of m.shortcodes)for(let S of se(b))T.add(S);return T}),a=m=>n(m,!0),i=m=>n(m,!1),f=m=>{let T=se(m),b=T.map((S,j)=>(jS.name).sort(e)},d=new Map,c=new Map;for(let m of t){c.set(m.name.toLowerCase(),m);for(let T of m.shortcodes||[])d.set(T.toLowerCase(),m)}return{all:s,search:f,byShortcode:m=>d.get(m.toLowerCase()),byName:m=>c.get(m.toLowerCase())}}var Ua=typeof wrappedJSObject<"u";function ce(t){if(!t)return t;if(Ua&&(t=structuredClone(t)),delete t.tokens,t.skinTones){let e=t.skinTones.length;t.skins=Array(e);for(let s=0;s!(e in t[0])))throw new Error("Emoji data is in the wrong format")}function Pt(t,e){if(Math.floor(t.status/100)!==2)throw new Error("Failed to fetch: "+e+": "+t.status)}async function Va(t){let e=await fetch(t,{method:"HEAD"});Pt(e,t);let s=e.headers.get("etag");return Dt(s),s}async function Pe(t){let e=await fetch(t);Pt(e,t);let s=e.headers.get("etag");Dt(s);let r=await e.json();return Wa(r),[s,r]}function Ka(t){for(var e="",s=new Uint8Array(t),r=s.byteLength,n=-1;++n(this._ready||(this._ready=this._init()),this._ready);await e(),this._db||await e()}async getEmojiByGroup(e){return Ce(e),await this.ready(),vt(await za(this._db,e)).map(ce)}async getEmojiBySearchQuery(e){ge(e),await this.ready();let s=this._custom.search(e),r=vt(await zt(this._db,e)).map(ce);return[...s,...r]}async getEmojiByShortcode(e){ge(e),await this.ready();let s=this._custom.byShortcode(e);return s||ce(await Da(this._db,e))}async getEmojiByUnicodeOrName(e){ge(e),await this.ready();let s=this._custom.byName(e);return s||ce(await Pa(this._db,e))}async getPreferredSkinTone(){return await this.ready(),await Ne(this._db,re,yt)||0}async setPreferredSkinTone(e){return Ce(e),await this.ready(),Ra(this._db,re,yt,e)}async incrementFavoriteEmojiCount(e){return ge(e),await this.ready(),Oa(this._db,e)}async getTopFavoriteEmoji(e){return Ce(e),await this.ready(),(await qa(this._db,this._custom,e)).map(ce)}set customEmoji(e){this._custom=Et(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch{}}_clear(){this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown(),await qe(this._dbName)}async delete(){await this._shutdown(),await xa(this._dbName)}};var Ge=[[-1,"\u2728","custom"],[0,"\u{1F600}","smileys-emotion"],[1,"\u{1F44B}","people-body"],[3,"\u{1F431}","animals-nature"],[4,"\u{1F34E}","food-drink"],[5,"\u{1F3E0}\uFE0F","travel-places"],[6,"\u26BD","activities"],[7,"\u{1F4DD}","objects"],[8,"\u26D4\uFE0F","symbols"],[9,"\u{1F3C1}","flags"]].map(([t,e,s])=>({id:t,emoji:e,name:s})),Be=Ge.slice(1),Za=2,Ot=6,Wt=typeof requestIdleCallback=="function"?requestIdleCallback:setTimeout;function qt(t){return t.unicode.includes("\u200D")}var Qa={"\u{1FAE8}":15.1,"\u{1FAE0}":14,"\u{1F972}":13.1,"\u{1F97B}":12.1,"\u{1F970}":11,"\u{1F929}":5,"\u{1F471}\u200D\u2640\uFE0F":4,"\u{1F923}":3,"\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F":2,"\u{1F600}":1,"\u{1F610}\uFE0F":.7,"\u{1F603}":.6},Xa=1e3,Ja="\u{1F590}\uFE0F",es=8,ts=["\u{1F60A}","\u{1F612}","\u2764\uFE0F","\u{1F44D}\uFE0F","\u{1F60D}","\u{1F602}","\u{1F62D}","\u263A\uFE0F","\u{1F614}","\u{1F629}","\u{1F60F}","\u{1F495}","\u{1F64C}","\u{1F618}"],Vt='"Twemoji Mozilla","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',as=(t,e)=>te?1:0,Ft=(t,e)=>{let s=document.createElement("canvas");s.width=s.height=1;let r=s.getContext("2d",{willReadFrequently:!0});return r.textBaseline="top",r.font=`100px ${Vt}`,r.fillStyle=e,r.scale(.01,.01),r.fillText(t,0,0),r.getImageData(0,0,1,1).data},ss=(t,e)=>{let s=[...t].join(","),r=[...e].join(",");return s===r&&!s.startsWith("0,0,0,")};function rs(t){let e=Ft(t,"#000"),s=Ft(t,"#fff");return e&&s&&ss(e,s)}function ns(){let t=Object.entries(Qa);try{for(let[e,s]of t)if(rs(e))return s}catch{}finally{}return t[0][1]}var Ue,He=()=>(Ue||(Ue=new Promise(t=>Wt(()=>t(ns())))),Ue),Ye=new Map,is="\uFE0F",os="\uD83C",ls="\u200D",cs=127995,us=57339;function fs(t,e){if(e===0)return t;let s=t.indexOf(ls);return s!==-1?t.substring(0,s)+String.fromCodePoint(cs+e-1)+t.substring(s):(t.endsWith(is)&&(t=t.substring(0,t.length-1)),t+os+String.fromCodePoint(us+e-1))}function H(t){t.preventDefault(),t.stopPropagation()}function We(t,e,s){return e+=t?-1:1,e<0?e=s.length-1:e>=s.length&&(e=0),e}function Kt(t,e){let s=new Set,r=[];for(let n of t){let a=e(n);s.has(a)||(s.add(a),r.push(n))}return r}function ds(t,e){let s=r=>{let n={};for(let a of r)typeof a.tone=="number"&&a.version<=e&&(n[a.tone]=a.unicode);return n};return t.map(({unicode:r,skins:n,shortcodes:a,url:i,name:f,category:d,annotation:c})=>({unicode:r,name:f,shortcodes:a,url:i,category:d,annotation:c,id:r||f,skins:n&&s(n)}))}var Ee=requestAnimationFrame,hs=typeof ResizeObserver=="function";function ps(t,e,s){let r;hs?(r=new ResizeObserver(s),r.observe(t)):Ee(s),e.addEventListener("abort",()=>{r&&r.disconnect()})}function Nt(t){{let e=document.createRange();return e.selectNode(t.firstChild),e.getBoundingClientRect().width}}var Ve;function ms(t,e,s){let r=!0;for(let n of t){let a=s(n),i=Nt(a);typeof Ve>"u"&&(Ve=Nt(e));let f=i/1.8e)}function bs(t){t&&(t.scrollTop=0)}function fe(t,e,s){let r=t.get(e);return r||(r=s(),t.set(e,r)),r}function Bt(t){return""+t}function ks(t){let e=document.createElement("template");return e.innerHTML=t,e}var ws=new WeakMap,ys=new WeakMap,vs=Symbol("un-keyed"),Es="replaceChildren"in Element.prototype;function Ts(t,e){Es?t.replaceChildren(...e):(t.innerHTML="",t.append(...e))}function xs(t,e){let s=t.firstChild,r=0;for(;s;){if(e[r]!==s)return!0;s=s.nextSibling,r++}return r!==e.length}function Ls(t,e){let{targetNode:s}=e,{targetParentNode:r}=e,n=!1;r?n=xs(r,t):(n=!0,e.targetNode=void 0,e.targetParentNode=r=s.parentNode),n&&Ts(r,t)}function Ss(t,e){for(let s of e){let{targetNode:r,currentExpression:n,binding:{expressionIndex:a,attributeName:i,attributeValuePre:f,attributeValuePost:d}}=s,c=t[a];if(n!==c)if(s.currentExpression=c,i)r.setAttribute(i,f+Bt(c)+d);else{let h;Array.isArray(c)?Ls(c,s):c instanceof Element?(h=c,r.replaceWith(h)):r.nodeValue=Bt(c),h&&(s.targetNode=h)}}}function js(t){let e="",s=!1,r=!1,n=-1,a=new Map,i=[];for(let d=0,c=t.length;d":{s=!1,r=!1;break}case"=":{r=!0;break}}let w=i[i.length-1],m=fe(a,w,()=>[]),T,b,S;if(r){let M=/(\S+)="?([^"=]*)$/.exec(h);T=M[1],b=M[2],S=/^[^">]*/.exec(t[d+1])[0]}let j={attributeName:T,attributeValuePre:b,attributeValuePost:S,expressionIndex:d};m.push(j),!s&&!r&&(e+=" ")}return{template:ks(e),elementsToBindings:a}}function Ut(t,e,s){for(let r=0;rjs(t)),r=e.cloneNode(!0).content.firstElementChild,n=_s(r,s);return function(i){return Ss(i,n),r}}function As(t){let e=fe(ys,t,()=>new Map),s=vs;function r(a,...i){let f=fe(e,a,()=>new Map);return fe(f,s,()=>Ms(a))(i)}function n(a,i,f){return a.map((d,c)=>{let h=s;s=f(d);try{return i(d,c)}finally{s=h}})}return{map:n,html:r}}function Is(t,e,s,r,n,a,i,f,d){let{labelWithSkin:c,titleForEmoji:h,unicodeWithSkin:w}=s,{html:m,map:T}=As(e);function b(k,L,I){return T(k,(D,G)=>m``,D=>`${I}-${D.id}`)}let j=m`
${e.i18n.searchDescription}
${e.i18n.skinToneDescription}
${T(e.skinTones,(k,L)=>m`
${k}
`,k=>k)}
${T(e.currentEmojisWithCategories,(k,L)=>m`
${b(k.emojis,e.searchMode,"emo")}
`,k=>k.category)}
`,M=(k,L)=>{for(let I of t.querySelectorAll(`[${k}]`))L(I,I.getAttribute(k))};if(d){t.appendChild(j);for(let k of["click","focusout","input","keydown","keyup"])M(`data-on-${k}`,(L,I)=>{L.addEventListener(k,r[I])});M("data-ref",(k,L)=>{a[L]=k}),i.addEventListener("abort",()=>{t.removeChild(j)})}M("data-action",(k,L)=>{let I=f.get(L);I||f.set(L,I=new WeakSet),I.has(k)||(I.add(k),n[L](k))})}var Te=typeof queueMicrotask=="function"?queueMicrotask:t=>Promise.resolve().then(t);function Cs(t){let e=!1,s,r=new Map,n=new Set,a,i=()=>{if(e)return;let c=[...n];n.clear();try{for(let h of c)h()}finally{a=!1,n.size&&(a=!0,Te(i))}},f=new Proxy({},{get(c,h){if(s){let w=r.get(h);w||(w=new Set,r.set(h,w)),w.add(s)}return c[h]},set(c,h,w){if(c[h]!==w){c[h]=w;let m=r.get(h);if(m){for(let T of m)n.add(T);a||(a=!0,Te(i))}}return!0}}),d=c=>{let h=()=>{let w=s;s=h;try{return c()}finally{s=w}};return h()};return t.addEventListener("abort",()=>{e=!0}),{state:f,createEffect:d}}function Ke(t,e,s){if(t.length!==e.length)return!1;for(let r=0;r{n.disconnect()})),n.observe(t)}}var $e=[],{assign:ve}=Object;function Ds(t,e){let s={},r=new AbortController,n=r.signal,{state:a,createEffect:i}=Cs(n),f=new Map;ve(a,{skinToneEmoji:void 0,i18n:void 0,database:void 0,customEmoji:void 0,customCategorySorting:void 0,emojiVersion:void 0}),ve(a,e),ve(a,{initialLoad:!0,currentEmojis:[],currentEmojisWithCategories:[],rawSearchText:"",searchText:"",searchMode:!1,activeSearchItem:-1,message:void 0,skinTonePickerExpanded:!1,skinTonePickerExpandedAfterAnimation:!1,currentSkinTone:0,activeSkinTone:0,skinToneButtonText:void 0,pickerStyle:void 0,skinToneButtonLabel:"",skinTones:[],currentFavorites:[],defaultFavoriteEmojis:void 0,numColumns:es,isRtl:!1,currentGroupIndex:0,groups:Be,databaseLoaded:!1,activeSearchItemId:void 0}),i(()=>{a.currentGroup!==a.groups[a.currentGroupIndex]&&(a.currentGroup=a.groups[a.currentGroupIndex])});let d=o=>{t.getElementById(o).focus()},c=o=>t.getElementById(`emo-${o.id}`),h=(o,u)=>{s.rootElement.dispatchEvent(new CustomEvent(o,{detail:u,bubbles:!0,composed:!0}))},w=(o,u)=>o.id===u.id,m=(o,u)=>{let{category:E,emojis:x}=o,{category:_,emojis:P}=u;return E!==_?!1:Ke(x,P,w)},T=o=>{Ke(a.currentEmojis,o,w)||(a.currentEmojis=o)},b=o=>{a.searchMode!==o&&(a.searchMode=o)},S=o=>{Ke(a.currentEmojisWithCategories,o,m)||(a.currentEmojisWithCategories=o)},j=(o,u)=>u&&o.skins&&o.skins[u]||o.unicode,L={labelWithSkin:(o,u)=>gs([o.name||j(o,u),o.annotation,...o.shortcodes||$e].filter(Boolean)).join(", "),titleForEmoji:o=>o.annotation||(o.shortcodes||$e).join(", "),unicodeWithSkin:j},I={onClickSkinToneButton:W,onEmojiClick:q,onNavClick:Z,onNavKeydown:$,onSearchKeydown:B,onSkinToneOptionsClick:z,onSkinToneOptionsFocusOut:xe,onSkinToneOptionsKeydown:oe,onSkinToneOptionsKeyup:le,onSearchInput:Ze},D={calculateEmojiGridStyle:N,updateOnIntersection:g},G=!0;i(()=>{Is(t,a,L,I,D,s,n,f,G),G=!1}),a.emojiVersion||He().then(o=>{o||(a.message=a.i18n.emojiUnsupportedMessage)}),i(()=>{async function o(){let u=!1,E=setTimeout(()=>{u=!0,a.message=a.i18n.loadingMessage},Xa);try{await a.database.ready(),a.databaseLoaded=!0}catch(x){console.error(x),a.message=a.i18n.networkErrorMessage}finally{clearTimeout(E),u&&(u=!1,a.message="")}}a.database&&o()}),i(()=>{a.pickerStyle=` --num-groups: ${a.groups.length}; --indicator-opacity: ${a.searchMode?0:1}; - --num-skintones: ${Rt};`}),i(()=>{a.customEmoji&&a.database&&te()}),i(()=>{a.customEmoji&&a.customEmoji.length?a.groups!==$e&&(a.groups=$e):a.groups!==Be&&(a.currentGroupIndex&&a.currentGroupIndex--,a.groups=Be)}),i(()=>{async function o(){a.databaseLoaded&&(a.currentSkinTone=await a.database.getPreferredSkinTone())}o()}),i(()=>{a.skinTones=Array(Rt).fill().map((o,u)=>fs(a.skinToneEmoji,u))}),i(()=>{a.skinToneButtonText=a.skinTones[a.currentSkinTone]}),i(()=>{a.skinToneButtonLabel=a.i18n.skinToneLabel.replace("{skinTone}",a.i18n.skinTones[a.currentSkinTone])}),i(()=>{async function o(){let{database:u}=a,E=(await Promise.all(ts.map(x=>u.getEmojiByUnicodeOrName(x)))).filter(Boolean);a.defaultFavoriteEmojis=E}a.databaseLoaded&&o()});function te(){let{customEmoji:o,database:u}=a,E=o||Ge;u.customEmoji!==E&&(u.customEmoji=E)}i(()=>{async function o(){te();let{database:u,defaultFavoriteEmojis:E,numColumns:x}=a,_=await u.getTopFavoriteEmoji(x),P=await l(Kt([..._,...E],R=>R.unicode||R.name).slice(0,x));a.currentFavorites=P}a.databaseLoaded&&a.defaultFavoriteEmojis&&o()});function N(o){ps(o,n,()=>{{let u=getComputedStyle(s.rootElement),E=parseInt(u.getPropertyValue("--num-columns"),10),x=u.getPropertyValue("direction")==="rtl";a.numColumns=E,a.isRtl=x}})}function g(o){zs(o,n,u=>{for(let{target:E,isIntersecting:x}of u)E.classList.toggle("onscreen",x)})}i(()=>{async function o(){let{searchText:u,currentGroup:E,databaseLoaded:x,customEmoji:_}=a;if(!x)a.currentEmojis=[],a.searchMode=!1;else if(u.length>=Za){let P=await p(u);a.searchText===u&&(T(P),b(!0))}else{let{id:P}=E;if(P!==-1||_&&_.length){let R=await Y(P);a.currentGroup.id===P&&(T(R),b(!1))}}}o()});let y=()=>{Ee(()=>bs(s.tabpanelElement))};i(()=>{let{currentEmojis:o,emojiVersion:u}=a,E=o.filter(x=>x.unicode).filter(x=>qt(x)&&!Ye.has(x.unicode));if(!u&&E.length)T(o),Ee(()=>v(E));else{let x=u?o:o.filter(I);T(x),y()}});function v(o){ms(o,s.baselineEmoji,c)?y():a.currentEmojis=[...a.currentEmojis]}function I(o){return!o.unicode||!qt(o)||Ye.get(o.unicode)}async function A(o){let u=a.emojiVersion||await He();return o.filter(({version:E})=>!E||E<=u)}async function l(o){return ds(o,a.emojiVersion||await He())}async function Y(o){let u=o===-1?a.customEmoji:await a.database.getEmojiByGroup(o);return l(await A(u))}async function p(o){return l(await A(await a.database.getEmojiBySearchQuery(o)))}i(()=>{}),i(()=>{function o(){let{searchMode:E,currentEmojis:x}=a;if(E)return[{category:"",emojis:x}];let _=new Map;for(let P of x){let R=P.category||"",F=_.get(R);F||(F=[],_.set(R,F)),F.push(P)}return[..._.entries()].map(([P,R])=>({category:P,emojis:R})).sort((P,R)=>a.customCategorySorting(P.category,R.category))}let u=o();S(u)}),i(()=>{a.activeSearchItemId=a.activeSearchItem!==-1&&a.currentEmojis[a.activeSearchItem].id}),i(()=>{let{rawSearchText:o}=a;Wt(()=>{a.searchText=(o||"").trim(),a.activeSearchItem=-1})});function B(o){if(!a.searchMode||!a.currentEmojis.length)return;let u=E=>{H(o),a.activeSearchItem=We(E,a.activeSearchItem,a.currentEmojis)};switch(o.key){case"ArrowDown":return u(!1);case"ArrowUp":return u(!0);case"Enter":if(a.activeSearchItem===-1)a.activeSearchItem=0;else return H(o),O(a.currentEmojis[a.activeSearchItem].id)}}function Z(o){let{target:u}=o,E=u.closest(".nav-button");if(!E)return;let x=parseInt(E.dataset.groupId,10);s.searchElement.value="",a.rawSearchText="",a.searchText="",a.activeSearchItem=-1,a.currentGroupIndex=a.groups.findIndex(_=>_.id===x)}function G(o){let{target:u,key:E}=o,x=_=>{_&&(H(o),_.focus())};switch(E){case"ArrowLeft":return x(u.previousElementSibling);case"ArrowRight":return x(u.nextElementSibling);case"Home":return x(u.parentElement.firstElementChild);case"End":return x(u.parentElement.lastElementChild)}}async function O(o){let u=await a.database.getEmojiByUnicodeOrName(o),E=[...a.currentEmojis,...a.currentFavorites].find(_=>_.id===o),x=E.unicode&&j(E,a.currentSkinTone);await a.database.incrementFavoriteEmojiCount(o),h("emoji-click",{emoji:u,skinTone:a.currentSkinTone,...x&&{unicode:x},...E.name&&{name:E.name}})}async function q(o){let{target:u}=o;if(!u.classList.contains("emoji"))return;H(o);let E=u.id.substring(4);O(E)}function ie(o){a.currentSkinTone=o,a.skinTonePickerExpanded=!1,d("skintone-button"),h("skin-tone-change",{skinTone:o}),a.database.setPreferredSkinTone(o)}function z(o){let{target:{id:u}}=o,E=u&&u.match(/^skintone-(\d)/);if(!E)return;H(o);let x=parseInt(E[1],10);ie(x)}function W(o){a.skinTonePickerExpanded=!a.skinTonePickerExpanded,a.activeSkinTone=a.currentSkinTone,a.skinTonePickerExpanded&&(H(o),Ee(()=>d("skintone-list")))}i(()=>{a.skinTonePickerExpanded?s.skinToneDropdown.addEventListener("transitionend",()=>{a.skinTonePickerExpandedAfterAnimation=!0},{once:!0}):a.skinTonePickerExpandedAfterAnimation=!1});function oe(o){if(!a.skinTonePickerExpanded)return;let u=async E=>{H(o),a.activeSkinTone=E};switch(o.key){case"ArrowUp":return u(We(!0,a.activeSkinTone,a.skinTones));case"ArrowDown":return u(We(!1,a.activeSkinTone,a.skinTones));case"Home":return u(0);case"End":return u(a.skinTones.length-1);case"Enter":return H(o),ie(a.activeSkinTone);case"Escape":return H(o),a.skinTonePickerExpanded=!1,d("skintone-button")}}function le(o){if(a.skinTonePickerExpanded)switch(o.key){case" ":return H(o),ie(a.activeSkinTone)}}async function xe(o){let{relatedTarget:u}=o;(!u||u.id!=="skintone-list")&&(a.skinTonePickerExpanded=!1)}function Ze(o){a.rawSearchText=o.target.value}return{$set(o){ve(a,o)},$destroy(){r.abort()}}}var Ps="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",Os="en",Rs={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading\u2026",networkErrorMessage:"Could not load emoji.",regionLabel:"Emoji picker",searchDescription:"When search results are available, press up or down to select and enter to choose.",searchLabel:"Search",searchResultsLabel:"Search results",skinToneDescription:"When expanded, press up or down to select and enter to choose.",skinToneLabel:"Choose a skin tone (currently {skinTone})",skinTonesLabel:"Skin tones",skinTones:["Default","Light","Medium-Light","Medium","Medium-Dark","Dark"],categories:{custom:"Custom","smileys-emotion":"Smileys and emoticons","people-body":"People and body","animals-nature":"Animals and nature","food-drink":"Food and drink","travel-places":"Travel and places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}},qs=':host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--border-radius:0;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){color-scheme:light;--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.emoji-menu.visibility-auto{content-visibility:auto;contain-intrinsic-size:calc(var(--num-columns)*var(--total-emoji-size)) calc(var(--num-rows)*var(--total-emoji-size))}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;height:var(--total-emoji-size);width:var(--total-emoji-size);line-height:1;overflow:hidden;font-family:var(--emoji-font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.onscreen .custom-emoji::after{content:"";width:var(--emoji-size);height:var(--emoji-size);background-repeat:no-repeat;background-position:center center;background-size:contain;background-image:var(--custom-emoji-background)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{overflow-y:auto;scrollbar-gutter:stable;display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}',Gt=["customEmoji","customCategorySorting","database","dataSource","i18n","locale","skinToneEmoji","emojiVersion"],Fs=`:host{--emoji-font-family:${Vt}}`,ee=class extends HTMLElement{constructor(e){super(),this.attachShadow({mode:"open"});let s=document.createElement("style");s.textContent=qs+Fs,this.shadowRoot.appendChild(s),this._ctx={locale:Os,dataSource:Ps,skinToneEmoji:Ja,customCategorySorting:as,customEmoji:null,i18n:Rs,emojiVersion:null,...e};for(let r of Gt)r!=="database"&&Object.prototype.hasOwnProperty.call(this,r)&&(this._ctx[r]=this[r],delete this[r]);this._dbFlush()}connectedCallback(){this._cmp||(this._cmp=Ds(this.shadowRoot,this._ctx))}disconnectedCallback(){Te(()=>{if(!this.isConnected&&this._cmp){this._cmp.$destroy(),this._cmp=void 0;let{database:e}=this._ctx;e.close().catch(s=>console.error(s))}})}static get observedAttributes(){return["locale","data-source","skin-tone-emoji","emoji-version"]}attributeChangedCallback(e,s,r){this._set(e.replace(/-([a-z])/g,(n,a)=>a.toUpperCase()),e==="emoji-version"?parseFloat(r):r)}_set(e,s){this._ctx[e]=s,this._cmp&&this._cmp.$set({[e]:s}),["locale","dataSource"].includes(e)&&this._dbFlush()}_dbCreate(){let{locale:e,dataSource:s,database:r}=this._ctx;(!r||r.locale!==e||r.dataSource!==s)&&this._set("database",new ue({locale:e,dataSource:s}))}_dbFlush(){Te(()=>this._dbCreate())}},$t={};for(let t of Gt)$t[t]={get(){return t==="database"&&this._dbCreate(),this._ctx[t]},set(e){if(t==="database")throw new Error("database is read-only");this._set(t,e)}};Object.defineProperties(ee.prototype,$t);customElements.get("emoji-picker")||customElements.define("emoji-picker",ee);var Yt={ar:rt,de:nt,en:it,es:ot,fr:lt,hi:ct,id:ut,it:ft,ms_MY:dt,nl:ht,pl:pt,pt_BR:mt,pt_PT:gt,ru_RU:bt,tr:kt,zh_CN:wt};function Ns(t){return`${window.WSC_API_URL}emoji/index.php?l=${t}`}customElements.whenDefined("emoji-picker").then(()=>{class t extends ee{constructor(s){let r=s&&s.locale||window.LANGUAGE_CODE;super({locale:r,...s||{},dataSource:Ns(r),...Object.hasOwn(Yt,r)?{i18n:Yt[r]}:{}})}static get observedAttributes(){return[]}focus(){this.shadowRoot.querySelector(".search").focus()}}customElements.define("woltlab-core-emoji-picker",t,{extends:"emoji-picker"})});window.WoltLabLanguage=Ce;window.WoltLabTemplate=ae;window.HTMLParsedElement=st;})(); + --num-skintones: ${Ot};`}),i(()=>{a.customEmoji&&a.database&&te()}),i(()=>{a.customEmoji&&a.customEmoji.length?a.groups!==Ge&&(a.groups=Ge):a.groups!==Be&&(a.currentGroupIndex&&a.currentGroupIndex--,a.groups=Be)}),i(()=>{async function o(){a.databaseLoaded&&(a.currentSkinTone=await a.database.getPreferredSkinTone())}o()}),i(()=>{a.skinTones=Array(Ot).fill().map((o,u)=>fs(a.skinToneEmoji,u))}),i(()=>{a.skinToneButtonText=a.skinTones[a.currentSkinTone]}),i(()=>{a.skinToneButtonLabel=a.i18n.skinToneLabel.replace("{skinTone}",a.i18n.skinTones[a.currentSkinTone])}),i(()=>{async function o(){let{database:u}=a,E=(await Promise.all(ts.map(x=>u.getEmojiByUnicodeOrName(x)))).filter(Boolean);a.defaultFavoriteEmojis=E}a.databaseLoaded&&o()});function te(){let{customEmoji:o,database:u}=a,E=o||$e;u.customEmoji!==E&&(u.customEmoji=E)}i(()=>{async function o(){te();let{database:u,defaultFavoriteEmojis:E,numColumns:x}=a,_=await u.getTopFavoriteEmoji(x),P=await l(Kt([..._,...E],O=>O.unicode||O.name).slice(0,x));a.currentFavorites=P}a.databaseLoaded&&a.defaultFavoriteEmojis&&o()});function N(o){ps(o,n,()=>{{let u=getComputedStyle(s.rootElement),E=parseInt(u.getPropertyValue("--num-columns"),10),x=u.getPropertyValue("direction")==="rtl";a.numColumns=E,a.isRtl=x}})}function g(o){zs(o,n,u=>{for(let{target:E,isIntersecting:x}of u)E.classList.toggle("onscreen",x)})}i(()=>{async function o(){let{searchText:u,currentGroup:E,databaseLoaded:x,customEmoji:_}=a;if(!x)a.currentEmojis=[],a.searchMode=!1;else if(u.length>=Za){let P=await p(u);a.searchText===u&&(T(P),b(!0))}else{let{id:P}=E;if(P!==-1||_&&_.length){let O=await Y(P);a.currentGroup.id===P&&(T(O),b(!1))}}}o()});let y=()=>{Ee(()=>bs(s.tabpanelElement))};i(()=>{let{currentEmojis:o,emojiVersion:u}=a,E=o.filter(x=>x.unicode).filter(x=>qt(x)&&!Ye.has(x.unicode));if(!u&&E.length)T(o),Ee(()=>v(E));else{let x=u?o:o.filter(C);T(x),y()}});function v(o){ms(o,s.baselineEmoji,c)?y():a.currentEmojis=[...a.currentEmojis]}function C(o){return!o.unicode||!qt(o)||Ye.get(o.unicode)}async function A(o){let u=a.emojiVersion||await He();return o.filter(({version:E})=>!E||E<=u)}async function l(o){return ds(o,a.emojiVersion||await He())}async function Y(o){let u=o===-1?a.customEmoji:await a.database.getEmojiByGroup(o);return l(await A(u))}async function p(o){return l(await A(await a.database.getEmojiBySearchQuery(o)))}i(()=>{}),i(()=>{function o(){let{searchMode:E,currentEmojis:x}=a;if(E)return[{category:"",emojis:x}];let _=new Map;for(let P of x){let O=P.category||"",F=_.get(O);F||(F=[],_.set(O,F)),F.push(P)}return[..._.entries()].map(([P,O])=>({category:P,emojis:O})).sort((P,O)=>a.customCategorySorting(P.category,O.category))}let u=o();S(u)}),i(()=>{a.activeSearchItemId=a.activeSearchItem!==-1&&a.currentEmojis[a.activeSearchItem].id}),i(()=>{let{rawSearchText:o}=a;Wt(()=>{a.searchText=(o||"").trim(),a.activeSearchItem=-1})});function B(o){if(!a.searchMode||!a.currentEmojis.length)return;let u=E=>{H(o),a.activeSearchItem=We(E,a.activeSearchItem,a.currentEmojis)};switch(o.key){case"ArrowDown":return u(!1);case"ArrowUp":return u(!0);case"Enter":if(a.activeSearchItem===-1)a.activeSearchItem=0;else return H(o),R(a.currentEmojis[a.activeSearchItem].id)}}function Z(o){let{target:u}=o,E=u.closest(".nav-button");if(!E)return;let x=parseInt(E.dataset.groupId,10);s.searchElement.value="",a.rawSearchText="",a.searchText="",a.activeSearchItem=-1,a.currentGroupIndex=a.groups.findIndex(_=>_.id===x)}function $(o){let{target:u,key:E}=o,x=_=>{_&&(H(o),_.focus())};switch(E){case"ArrowLeft":return x(u.previousElementSibling);case"ArrowRight":return x(u.nextElementSibling);case"Home":return x(u.parentElement.firstElementChild);case"End":return x(u.parentElement.lastElementChild)}}async function R(o){let u=await a.database.getEmojiByUnicodeOrName(o),E=[...a.currentEmojis,...a.currentFavorites].find(_=>_.id===o),x=E.unicode&&j(E,a.currentSkinTone);await a.database.incrementFavoriteEmojiCount(o),h("emoji-click",{emoji:u,skinTone:a.currentSkinTone,...x&&{unicode:x},...E.name&&{name:E.name}})}async function q(o){let{target:u}=o;if(!u.classList.contains("emoji"))return;H(o);let E=u.id.substring(4);R(E)}function ie(o){a.currentSkinTone=o,a.skinTonePickerExpanded=!1,d("skintone-button"),h("skin-tone-change",{skinTone:o}),a.database.setPreferredSkinTone(o)}function z(o){let{target:{id:u}}=o,E=u&&u.match(/^skintone-(\d)/);if(!E)return;H(o);let x=parseInt(E[1],10);ie(x)}function W(o){a.skinTonePickerExpanded=!a.skinTonePickerExpanded,a.activeSkinTone=a.currentSkinTone,a.skinTonePickerExpanded&&(H(o),Ee(()=>d("skintone-list")))}i(()=>{a.skinTonePickerExpanded?s.skinToneDropdown.addEventListener("transitionend",()=>{a.skinTonePickerExpandedAfterAnimation=!0},{once:!0}):a.skinTonePickerExpandedAfterAnimation=!1});function oe(o){if(!a.skinTonePickerExpanded)return;let u=async E=>{H(o),a.activeSkinTone=E};switch(o.key){case"ArrowUp":return u(We(!0,a.activeSkinTone,a.skinTones));case"ArrowDown":return u(We(!1,a.activeSkinTone,a.skinTones));case"Home":return u(0);case"End":return u(a.skinTones.length-1);case"Enter":return H(o),ie(a.activeSkinTone);case"Escape":return H(o),a.skinTonePickerExpanded=!1,d("skintone-button")}}function le(o){if(a.skinTonePickerExpanded)switch(o.key){case" ":return H(o),ie(a.activeSkinTone)}}async function xe(o){let{relatedTarget:u}=o;(!u||u.id!=="skintone-list")&&(a.skinTonePickerExpanded=!1)}function Ze(o){a.rawSearchText=o.target.value}return{$set(o){ve(a,o)},$destroy(){r.abort()}}}var Ps="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",Rs="en",Os={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading\u2026",networkErrorMessage:"Could not load emoji.",regionLabel:"Emoji picker",searchDescription:"When search results are available, press up or down to select and enter to choose.",searchLabel:"Search",searchResultsLabel:"Search results",skinToneDescription:"When expanded, press up or down to select and enter to choose.",skinToneLabel:"Choose a skin tone (currently {skinTone})",skinTonesLabel:"Skin tones",skinTones:["Default","Light","Medium-Light","Medium","Medium-Dark","Dark"],categories:{custom:"Custom","smileys-emotion":"Smileys and emoticons","people-body":"People and body","animals-nature":"Animals and nature","food-drink":"Food and drink","travel-places":"Travel and places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}},qs=':host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--border-radius:0;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){color-scheme:light;--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.emoji-menu.visibility-auto{content-visibility:auto;contain-intrinsic-size:calc(var(--num-columns)*var(--total-emoji-size)) calc(var(--num-rows)*var(--total-emoji-size))}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;height:var(--total-emoji-size);width:var(--total-emoji-size);line-height:1;overflow:hidden;font-family:var(--emoji-font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.onscreen .custom-emoji::after{content:"";width:var(--emoji-size);height:var(--emoji-size);background-repeat:no-repeat;background-position:center center;background-size:contain;background-image:var(--custom-emoji-background)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{overflow-y:auto;scrollbar-gutter:stable;display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}',$t=["customEmoji","customCategorySorting","database","dataSource","i18n","locale","skinToneEmoji","emojiVersion"],Fs=`:host{--emoji-font-family:${Vt}}`,ee=class extends HTMLElement{constructor(e){super(),this.attachShadow({mode:"open"});let s=document.createElement("style");s.textContent=qs+Fs,this.shadowRoot.appendChild(s),this._ctx={locale:Rs,dataSource:Ps,skinToneEmoji:Ja,customCategorySorting:as,customEmoji:null,i18n:Os,emojiVersion:null,...e};for(let r of $t)r!=="database"&&Object.prototype.hasOwnProperty.call(this,r)&&(this._ctx[r]=this[r],delete this[r]);this._dbFlush()}connectedCallback(){this._cmp||(this._cmp=Ds(this.shadowRoot,this._ctx))}disconnectedCallback(){Te(()=>{if(!this.isConnected&&this._cmp){this._cmp.$destroy(),this._cmp=void 0;let{database:e}=this._ctx;e.close().catch(s=>console.error(s))}})}static get observedAttributes(){return["locale","data-source","skin-tone-emoji","emoji-version"]}attributeChangedCallback(e,s,r){this._set(e.replace(/-([a-z])/g,(n,a)=>a.toUpperCase()),e==="emoji-version"?parseFloat(r):r)}_set(e,s){this._ctx[e]=s,this._cmp&&this._cmp.$set({[e]:s}),["locale","dataSource"].includes(e)&&this._dbFlush()}_dbCreate(){let{locale:e,dataSource:s,database:r}=this._ctx;(!r||r.locale!==e||r.dataSource!==s)&&this._set("database",new ue({locale:e,dataSource:s}))}_dbFlush(){Te(()=>this._dbCreate())}},Gt={};for(let t of $t)Gt[t]={get(){return t==="database"&&this._dbCreate(),this._ctx[t]},set(e){if(t==="database")throw new Error("database is read-only");this._set(t,e)}};Object.defineProperties(ee.prototype,Gt);customElements.get("emoji-picker")||customElements.define("emoji-picker",ee);var Yt={ar:rt,de:nt,en:it,es:ot,fr:lt,hi:ct,id:ut,it:ft,"ms-my":dt,nl:ht,pl:pt,"pt-br":mt,"pt-pt":gt,"ru-ru":bt,tr:kt,"zh-cn":wt};function Ns(t){return`${window.WSC_API_URL}emoji/index.php?l=${t}`}customElements.whenDefined("emoji-picker").then(()=>{class t extends ee{constructor(s){let r=s&&s.locale||document.documentElement.lang;super({locale:r,...s||{},dataSource:Ns(r),...Object.hasOwn(Yt,r)?{i18n:Yt[r]}:{}})}static get observedAttributes(){return[]}focus(){this.shadowRoot.querySelector(".search").focus()}}customElements.define("woltlab-core-emoji-picker",t,{extends:"emoji-picker"})});window.WoltLabLanguage=Ie;window.WoltLabTemplate=ae;window.HTMLParsedElement=st;})(); /** * Handles the low level management of language items. *