From 0588c87b0fc2895dc10194c2c7b1db36cc4b0970 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Tue, 30 Jun 2020 13:02:38 -0700 Subject: [PATCH] chore: update docs site --- docs/bundle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bundle.js b/docs/bundle.js index da5762e..17bbfd7 100644 --- a/docs/bundle.js +++ b/docs/bundle.js @@ -1 +1 @@ -var emojiPickerElement=function(e){"use strict";function t(e){if("string"!=typeof e||!e)throw new Error("expected a non-empty string, got: "+e)}function n(e){if("number"!=typeof e)throw new Error("expected a number, got: "+e)}const o="eTag",i="url";function r(e){return function(e,t){const n=new Set,o=[];for(const i of e){const e=t(i);n.has(e)||(n.add(e),o.push(i))}return o}(e,e=>e.unicode)}const a=[{version:1,migration:function(e,t,n){function o(t,n,o){const i=n?e.createObjectStore(t,{keyPath:n}):e.createObjectStore(t);if(o)for(const[e,[t,n]]of Object.entries(o))i.createIndex(e,t,{multiEntry:n});return i}o("keyvalue"),o("emoji","unicode",{tokens:["tokens",!0],"group-order":[["group","order"]],skinUnicodes:["skinUnicodes",!0]}),o("favorites",void 0,{count:[""]}),n()}}],s={},c={},l={};function u(e,t,n){n.onerror=()=>t(n.error),n.onblocked=()=>t(new Error("IDB blocked")),n.onsuccess=()=>e(n.result)}function d(e){return c[e]||(c[e]=async function(e){const t=await new Promise((t,n)=>{const o=indexedDB.open(e,1);s[e]=o,o.onupgradeneeded=e=>{const t=o.result,n=e.currentTarget.transaction,i=a.filter(({version:t})=>e.oldVersionm(e),t}(e)),c[e]}function f(e,t,n,o){return new Promise((i,r)=>{const a=e.transaction(t,n),s="string"==typeof t?a.objectStore(t):t.map(e=>a.objectStore(e));let c;o(s,e=>{c=e}),a.oncomplete=()=>i(c),a.onerror=()=>r(a.error)})}function m(e){const t=s[e],n=t&&t.result;if(n){n.close();const t=l[e];if(t)for(const e of t)e()}delete s[e],delete c[e],delete l[e]}const h=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/)||h.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase()).filter(Boolean)}function g(e,t,n,o){e[t](n).onsuccess=e=>o&&o(e.target.result)}function b(e,t,n){g(e,"get",t,n)}function y(e,t,n){g(e,"getAll",t,n)}function w(e,t){const n=function(e,t){let n=e[0];for(let o=1;ot(i)&&(n=i)}return n}(e,e=>e.length),o=[];for(const i of n)e.some(e=>-1===e.findIndex(e=>t(e)===t(i)))||o.push(i);return o}async function v(e,t,n,r){try{const a=function(e){return e.map(({annotation:e,emoticon:t,group:n,order:o,shortcodes:i,skins:r,tags:a,emoji:s,version:c})=>{const l=[...new Set([...i.map(p).flat(),...a.map(p).flat(),...p(e),t].filter(Boolean).map(e=>e.toLowerCase()).filter(e=>e.length>=2))].sort(),u={annotation:e,group:n,order:o,shortcodes:i,tags:a,tokens:l,unicode:s,version:c};if(t&&(u.emoticon=t),r){u.skinTones=[],u.skinUnicodes=[],u.skinVersions=[];for(const{tone:e,emoji:t,version:n}of r)u.skinTones.push(e),u.skinUnicodes.push(t),u.skinVersions.push(n)}return u})}(t);await f(e,["emoji","keyvalue"],"readwrite",([e,t])=>{let s,c,l,u=0;function d(){3==++u&&function(){if(s===r&&c===n)return;for(const t of l)e.delete(t);for(const t of a)e.put(t);t.put(r,o),t.put(n,i)}()}b(t,o,e=>{s=e,d()}),b(t,i,e=>{c=e,d()}),g(e,"getAllKeys",void 0,e=>{l=e,d()})})}finally{}}async function k(e,t){const n=p(t);return f(e,"emoji","readonly",(e,t)=>{const o=[],i=()=>{const e=w(o,e=>e.unicode);t(e.sort((e,t)=>e.order{o.push(e),o.length===n.length&&i()})}})}function j(e,t,n){return f(e,t,"readonly",(e,t)=>b(e,n,t))}const $=["name","shortcodes","url"];function x(e){!function(e){const t=e&&Array.isArray(e),n=t&&e.length&&(!e[0]||$.some(t=>!(t in e[0])));if(!t||n)throw new Error("Expected custom emojis to be in correct format")}(e);const t=(e,t)=>e.name.toLowerCase(){let o=n;for(let t=0;te[0][...new Set(e.shortcodes.map(e=>p(e)).flat())]),i=e=>o(e,!0),r=e=>o(e,!1),a=new Map,s=new Map;for(const t of e){s.set(t.name.toLowerCase(),t);for(const e of t.shortcodes)a.set(e.toLowerCase(),t)}return{all:n,search:e=>{const n=p(e);return w(n.map((e,t)=>(te.name).sort(t)},byShortcode:e=>a.get(e.toLowerCase()),byName:e=>s.get(e.toLowerCase())}}function E(e){if(!e)return e;if(delete e.tokens,e.skinTones){const t=e.skinTones.length;e.skins=Array(t);for(let n=0;n!(t in e[0])))throw new Error("Expected emojibase full (not compact) data, but data is in wrong format")}(o),[n,o]}async function z(e){const t=function(e){for(var t=e.length,n=new ArrayBuffer(t),o=new Uint8Array(n),i=-1;++ij(e,"keyvalue",t)));return r===n&&a===t}(e,t,r));else{if(!n){n=(await L(t))[1]}await v(e,n,t,r)}}class A{constructor({dataSource:e="https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json",locale:t="en",customEmoji:n=[]}={}){this.dataSource=e,this.locale=t,this._dbName="emoji-picker-element-"+this.locale,this._db=void 0,this._lazyUpdate=void 0,this._custom=x(n),this._clear=this._clear.bind(this),this._ready=this._init()}async _init(){const e=this._db=await d(this._dbName);!function(e,t){let n=l[e];n||(n=l[e]=[]),n.push(t)}(this._dbName,this._clear);const t=this.dataSource;await async function(e){return!await j(e,"keyvalue",i)}(e)?await async function(e,t){let[n,o]=await L(t);n||(n=await z(o)),await v(e,o,t,n)}(e,t):this._lazyUpdate=C(e,t)}async ready(){return this._ready||(this._ready=this._init()),this._ready}async getEmojiByGroup(e){return n(e),await this.ready(),r(await async function(e,t){return f(e,"emoji","readonly",(e,n)=>{const o=IDBKeyRange.bound([t,0],[t+1,0],!1,!0);y(e.index("group-order"),o,n)})}(this._db,e)).map(E)}async getEmojiBySearchQuery(e){t(e),await this.ready();return[...this._custom.search(e),...r(await k(this._db,e)).map(E)]}async getEmojiByShortcode(e){t(e),await this.ready();const n=this._custom.byShortcode(e);return n||E(await async function(e,t){return(await k(e,t)).filter(e=>e.shortcodes.map(e=>e.toLowerCase()).includes(t.toLowerCase()))[0]||null}(this._db,e))}async getEmojiByUnicodeOrName(e){t(e),await this.ready();const n=this._custom.byName(e);return n||E(await async function(e,t){return f(e,"emoji","readonly",(e,n)=>b(e,t,o=>{if(o)return n(o);b(e.index("skinUnicodes"),t,e=>n(e||null))}))}(this._db,e))}async getPreferredSkinTone(){return await this.ready(),await j(this._db,"keyvalue","skinTone")||0}async setPreferredSkinTone(e){return n(e),await this.ready(),t=this._db,o="skinTone",i=e,f(t,"keyvalue","readwrite",e=>e.put(i,o));var t,o,i}async incrementFavoriteEmojiCount(e){return t(e),await this.ready(),n=this._db,o=e,f(n,"favorites","readwrite",e=>{b(e,o,t=>e.put((t||0)+1,o))});var n,o}async getTopFavoriteEmoji(e){return n(e),await this.ready(),(await function(e,t,n){return 0===n?[]:f(e,["favorites","emoji"],"readonly",([e,o],i)=>{const r=[];e.index("count").openCursor(void 0,"prev").onsuccess=e=>{const a=e.target.result;if(!a)return i(r);function s(e){if(r.push(e),r.length===n)return i(r);a.continue()}const c=a.primaryKey,l=t.byName(c);if(l)return s(l);b(o,c,e=>{if(e)return s(e);a.continue()})}})}(this._db,this._custom,e)).map(E)}set customEmoji(e){this._custom=x(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch(e){}if(this._db)return!0}_clear(){this._dbName,this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown()&&await m(this._dbName)}async delete(){var e;await this._shutdown()&&await(e=this._dbName,new Promise((t,n)=>{m(e),u(t,n,indexedDB.deleteDatabase(e))}))}}function D(){}function B(e){return e()}function M(){return Object.create(null)}function U(e){e.forEach(B)}function N(e){return"function"==typeof e}function P(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function R(e){return e&&N(e.destroy)?e.destroy:D}function I(e,t){e.appendChild(t)}function O(e,t,n){e.insertBefore(t,n||null)}function F(e){e.parentNode.removeChild(e)}function V(e){return document.createElement(e)}function H(e){return document.createTextNode(e)}function K(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function Y(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function q(e,t){t=""+t,e.data!==t&&(e.data=t)}function W(e,t){(null!=t||e.value)&&(e.value=t)}function G(e,t,n,o){e.style.setProperty(t,n,o?"important":"")}let Q;function X(e){Q=e}function J(){if(!Q)throw new Error("Function called outside component initialization");return Q}const Z=[],ee=[],te=[],ne=[],oe=Promise.resolve();let ie=!1;function re(){ie||(ie=!0,oe.then(ue))}function ae(){return re(),oe}function se(e){te.push(e)}let ce=!1;const le=new Set;function ue(){if(!ce){ce=!0;do{for(let e=0;ey.get(i)?(v.add(o),k(t)):(w.add(i),f--):(c(n,a),f--)}for(;f--;){const t=e[f];b.has(t.key)||c(t,a)}for(;m;)k(g[m-1]);return g}function be(e,t,n,o,i,r,a=[-1]){const s=Q;X(e);const c=t.props||{},l=e.$$={fragment:null,ctx:null,props:r,update:D,not_equal:i,bound:M(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(s?s.$$.context:[]),callbacks:M(),dirty:a};let u=!1;if(l.ctx=n?n(e,c,(t,n,...o)=>{const r=o.length?o[0]:n;return l.ctx&&i(l.ctx[t],l.ctx[t]=r)&&(l.bound[t]&&l.bound[t](r),u&&function(e,t){-1===e.$$.dirty[0]&&(Z.push(e),re(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const t=i.map(B).filter(N);r?r.push(...t):U(t),e.$$.on_mount=[]}),a.forEach(se)}(e,t.target,t.anchor),ue()}X(s)}let ye;"function"==typeof HTMLElement&&(ye=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){for(const e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(e,t,n){this[e]=n}$destroy(){!function(e,t){const n=e.$$;null!==n.fragment&&(U(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}(this,1),this.$destroy=D}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(){}});var we={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading…",networkErrorMessage:"Could not load emoji. Try refreshing.",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"}};const ve=[[-1,"✨","custom"],[0,"πŸ˜€","smileys-emotion"],[1,"πŸ‘‹","people-body"],[3,"🐱","animals-nature"],[4,"🍎","food-drink"],[5,"🏠️","travel-places"],[6,"⚽","activities"],[7,"πŸ“","objects"],[8,"⛔️","symbols"],[9,"🏁","flags"]].map(([e,t,n])=>({id:e,emoji:t,name:n})),ke=ve.slice(1),je=ve[0],$e="function"==typeof requestIdleCallback?requestIdleCallback:setTimeout;function xe(e){return e.unicode.includes("‍")}const Ee={"πŸ˜ƒ":.6,"😐️":.7,"πŸ˜€":1,"πŸ‘οΈβ€πŸ—¨οΈ":2,"🀣":3,"πŸ‘±β€β™€οΈ":4,"🀩":5,"πŸ₯°":11,"πŸ₯»":12,"πŸ§‘β€πŸ¦°":12.1,"πŸ₯²":13},_e="πŸ–οΈ",Te=["😊","πŸ˜’","β™₯️","πŸ‘οΈ","😍","πŸ˜‚","😭","☺️","πŸ˜”","😩","😏","πŸ’•","πŸ™Œ","😘"],Se='"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Twemoji Mozilla","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',Le=(e,t)=>{try{const n=document.createElement("canvas");n.width=n.height=1;const o=n.getContext("2d");return o.textBaseline="top",o.font="100px "+Se,o.fillStyle=t,o.scale(.01,.01),o.fillText(e,0,0),o.getImageData(0,0,1,1).data}catch(e){}};function ze(e){const t=Le(e,"#000"),n=Le(e,"#fff");return t&&n&&((e,t)=>{const n=[...e].join(",");return n===[...t].join(",")&&"0,0,0,0"!==n})(t,n)}const Ce=new Promise(e=>$e(()=>e(function(){let e;for(const[t,n]of Object.entries(Ee)){if(!ze(t))break;e=n}return e}()))),Ae=new Map;function De(e){e.preventDefault(),e.stopPropagation()}function Be(e,t,n){return(t+=e?-1:1)<0?t=n.length-1:t>=n.length&&(t=0),t}function Me(e,t){const n=new Set,o=[];for(const i of e){const e=t(i);n.has(e)||(n.add(e),o.push(i))}return o}const Ue=requestAnimationFrame,Ne="function"==typeof ResizeObserver;function Pe(e,t){let n;return Ne?(n=new ResizeObserver(e=>t(e[0].contentRect.width)),n.observe(e)):Ue(()=>t(e.getBoundingClientRect().width)),{destroy(){n&&n.disconnect()}}}function Re(e){{const t=document.createRange();return t.selectNode(e.firstChild),t.getBoundingClientRect().width}}let Ie;const{Map:Oe}=he;function Fe(e,t,n){const o=e.slice();return o[63]=t[n],o[65]=n,o}function Ve(e,t,n){const o=e.slice();return o[63]=t[n],o[65]=n,o}function He(e,t,n){const o=e.slice();return o[66]=t[n],o[65]=n,o}function Ke(e,t,n){const o=e.slice();return o[69]=t[n],o}function Ye(e,t,n){const o=e.slice();return o[72]=t[n],o[65]=n,o}function qe(e,t){let n,o,i,r,a,s,c,l=t[72]+"";return{key:e,first:null,c(){n=V("button"),o=H(l),Y(n,"id",i="skintone-"+t[65]),Y(n,"class",r="emoji skintone-option hide-focus "+(t[65]===t[15]?"active":"")),Y(n,"aria-selected",a=t[65]===t[15]),Y(n,"role","option"),Y(n,"title",s=t[0].skinTones[t[65]]),Y(n,"tabindex","-1"),Y(n,"aria-label",c=t[0].skinTones[t[65]]),this.first=n},m(e,t){O(e,n,t),I(n,o)},p(e,t){524288&t[0]&&l!==(l=e[72]+"")&&q(o,l),524288&t[0]&&i!==(i="skintone-"+e[65])&&Y(n,"id",i),557056&t[0]&&r!==(r="emoji skintone-option hide-focus "+(e[65]===e[15]?"active":""))&&Y(n,"class",r),557056&t[0]&&a!==(a=e[65]===e[15])&&Y(n,"aria-selected",a),524289&t[0]&&s!==(s=e[0].skinTones[e[65]])&&Y(n,"title",s),524289&t[0]&&c!==(c=e[0].skinTones[e[65]])&&Y(n,"aria-label",c)},d(e){e&&F(n)}}}function We(e,t){let n,o,i,r,a,s,c,l,u=t[69].emoji+"";function d(...e){return t[59](t[69],...e)}return{key:e,first:null,c(){n=V("button"),o=V("div"),i=H(u),Y(o,"class","emoji"),Y(n,"role","tab"),Y(n,"class","nav-button"),Y(n,"aria-controls",r="tab-"+t[69].id),Y(n,"aria-label",a=t[0].categories[t[69].name]),Y(n,"aria-selected",s=t[23].id===t[69].id),Y(n,"title",c=t[0].categories[t[69].name]),this.first=n},m(e,t,r){O(e,n,t),I(n,o),I(o,i),r&&l(),l=K(n,"click",d)},p(e,o){t=e,4194304&o[0]&&u!==(u=t[69].emoji+"")&&q(i,u),4194304&o[0]&&r!==(r="tab-"+t[69].id)&&Y(n,"aria-controls",r),4194305&o[0]&&a!==(a=t[0].categories[t[69].name])&&Y(n,"aria-label",a),12582912&o[0]&&s!==(s=t[23].id===t[69].id)&&Y(n,"aria-selected",s),4194305&o[0]&&c!==(c=t[0].categories[t[69].name])&&Y(n,"title",c)},d(e){e&&F(n),l()}}}function Ge(e){let t;return{c(){t=V("div"),Y(t,"class","custom-emoji"),G(t,"background-image","url("+e[63].url+")")},m(e,n){O(e,t,n)},p(e,n){4&n[0]&&G(t,"background-image","url("+e[63].url+")")},d(e){e&&F(t)}}}function Qe(e){let t,n=ot(e[63],e[14])+"";return{c(){t=H(n)},m(e,n){O(e,t,n)},p(e,o){16388&o[0]&&n!==(n=ot(e[63],e[14])+"")&&q(t,n)},d(e){e&&F(t)}}}function Xe(e,t){let n,o,i,r,a,s,c;function l(e,t){return e[63].unicode?Qe:Ge}let u=l(t),d=u(t);return{key:e,first:null,c(){n=V("button"),d.c(),Y(n,"role",o=t[7]?"option":"menuitem"),Y(n,"aria-selected",i=t[7]?t[65]==t[8]:""),Y(n,"aria-label",r=t[26](t[63],t[14])),Y(n,"title",a=t[63].title),Y(n,"class",s="emoji "+(t[7]&&t[65]===t[8]?"active":"")),Y(n,"id",c="emo-"+t[63].id),this.first=n},m(e,t){O(e,n,t),d.m(n,null)},p(e,t){u===(u=l(e))&&d?d.p(e,t):(d.d(1),d=u(e),d&&(d.c(),d.m(n,null))),128&t[0]&&o!==(o=e[7]?"option":"menuitem")&&Y(n,"role",o),388&t[0]&&i!==(i=e[7]?e[65]==e[8]:"")&&Y(n,"aria-selected",i),16388&t[0]&&r!==(r=e[26](e[63],e[14]))&&Y(n,"aria-label",r),4&t[0]&&a!==(a=e[63].title)&&Y(n,"title",a),388&t[0]&&s!==(s="emoji "+(e[7]&&e[65]===e[8]?"active":""))&&Y(n,"class",s),4&t[0]&&c!==(c="emo-"+e[63].id)&&Y(n,"id",c)},d(e){e&&F(n),d.d()}}}function Je(e,t){let n,o,i,r,a,s,c,l,u,d,f=(t[7]?t[0].searchResultsLabel:t[66].category?t[66].category:t[2].length>1?t[0].categories.custom:t[0].categories[t[23].name])+"",m=[],h=new Oe,p=t[66].emojis;const g=e=>e[63].id;for(let e=0;e1?"":"gone")),Y(n,"aria-hidden","true"),Y(a,"class","emoji-menu"),Y(a,"role",s=t[7]?"listbox":"menu"),Y(a,"aria-labelledby",c="menu-label-"+t[65]),Y(a,"id",l=t[7]?"search-results":""),this.first=n},m(e,i,r){O(e,n,i),I(n,o),O(e,a,i);for(let e=0;e1?e[0].categories.custom:e[0].categories[e[23].name])+"")&&q(o,f),4&t[0]&&i!==(i="menu-label-"+e[65])&&Y(n,"id",i),4&t[0]&&r!==(r="category "+(e[2].length>1?"":"gone"))&&Y(n,"class",r),67125636&t[0]){const n=e[66].emojis;m=ge(m,t,g,1,e,n,h,a,pe,Xe,null,Ve)}128&t[0]&&s!==(s=e[7]?"listbox":"menu")&&Y(a,"role",s),4&t[0]&&c!==(c="menu-label-"+e[65])&&Y(a,"aria-labelledby",c),128&t[0]&&l!==(l=e[7]?"search-results":"")&&Y(a,"id",l)},d(e){e&&F(n),e&&F(a);for(let e=0;ee[72];for(let t=0;te[69].id;for(let t=0;te[66].category;for(let t=0;te[63].id;for(let t=0;tt.getElementById("emo-"+e.id)),n(1,w=w)}function H(e){return!e.unicode||!xe(e)||Ae.get(e.unicode)}async function K(e){const t=await Ce;return e.filter(({version:e})=>!e||e<=t)}async function Y(e){return function(e,t){const n=e=>{const n={};for(const o of e)"number"==typeof o.tone&&o.version<=t&&(n[o.tone]=o.unicode);return n};return e.map(({unicode:e,skins:t,shortcodes:o,url:i,name:r,category:a})=>({unicode:e,name:r,shortcodes:o,url:i,category:a,id:e||r,skins:t&&n(t),title:o.join(", ")}))}(e,await Ce)}async function q(e){if(void 0===e)return[];const t=-1===e?y:await b.getEmojiByGroup(e);return Y(await K(t))}async function W(e){return Y(await K(await b.getEmojiBySearchQuery(e)))}function G(e){n(3,k=""),n(43,j=""),n(8,x=-1),n(47,N=P.findIndex(t=>t.id===e.id))}async function Q(e){const t=await b.getEmojiByUnicodeOrName(e),o=[...w,...B].find(t=>t.id===e),i=o.unicode&&ot(o,L);await b.incrementFavoriteEmojiCount(e),n(45,u=u),O("emoji-click",{emoji:t,skinTone:L,...i&&{unicode:i},...o.name&&{name:o.name}})}Ce.then(e=>{e||n(9,a=g.emojiUnsupportedMessage)}),F=async()=>{await ae(),n(37,m=m||"en"),n(38,h=h||"https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json")},J().$$.on_mount.push(F),function(e){J().$$.on_destroy.push(e)}(async()=>{b&&await b.close()});return e.$set=e=>{"locale"in e&&n(37,m=e.locale),"dataSource"in e&&n(38,h=e.dataSource),"skinToneEmoji"in e&&n(40,p=e.skinToneEmoji),"i18n"in e&&n(0,g=e.i18n),"database"in e&&n(39,b=e.database),"customEmoji"in e&&n(41,y=e.customEmoji)},e.$$.update=()=>{if(448&e.$$.dirty[1]&&m&&h&&(!b||b.locale!==m&&b.dataSource!==h)&&n(39,b=new A({dataSource:h,locale:m})),1280&e.$$.dirty[1]&&y&&b&&n(39,b.customEmoji=y,b),513&e.$$.dirty[0]|256&e.$$.dirty[1]){b&&async function(){const e=setTimeout(()=>{n(9,a=g.loadingMessage)},1e3);try{await b.ready(),n(24,R=!0)}catch(e){console.error(e),n(9,a=g.networkErrorMessage)}finally{clearTimeout(e),a===g.loadingMessage&&n(9,a="")}}()}if(4194304&e.$$.dirty[0]|1024&e.$$.dirty[1]&&(y&&y.length?n(22,P=[je,...ke]):P!==ke&&n(22,P=ke)),8&e.$$.dirty[0]&&$e(()=>{n(43,j=(k||"").trim()),n(8,x=-1)}),4194304&e.$$.dirty[0]|65536&e.$$.dirty[1]&&n(23,d=P[N]),8388608&e.$$.dirty[0]|4352&e.$$.dirty[1]){!async function(){b?j.length>=2?(n(1,w=await W(j)),n(7,$=!0)):d&&(n(1,w=await q(d.id)),n(7,$=!1)):(n(1,w=[]),n(7,$=!1))}()}if(4194432&e.$$.dirty[0]&&n(17,l=`\n --font-family: ${Se};\n --num-groups: ${P.length}; \n --indicator-opacity: ${$?0:1}; \n --num-skintones: 6;`),256&e.$$.dirty[1]){!async function(){b&&n(14,L=await b.getPreferredSkinTone())}()}if(512&e.$$.dirty[1]&&n(19,D=Array(6).fill().map((e,t)=>function(e,t){if(0===t)return e;const n=e.indexOf("‍");return-1!==n?e.substring(0,n)+String.fromCodePoint(127995+t-1)+e.substring(n):(e.endsWith("️")&&(e=e.substring(0,e.length-1)),e+"\ud83c"+String.fromCodePoint(57339+t-1))}(p,t))),540672&e.$$.dirty[0]&&n(16,c=D[L]),16385&e.$$.dirty[0]&&n(18,C=g.skinToneLabel.replace("{skinTone}",g.skinTones[L])),256&e.$$.dirty[1]){b&&async function(){n(45,u=(await Promise.all(Te.map(e=>b.getEmojiByUnicodeOrName(e)))).filter(Boolean))}()}if(49408&e.$$.dirty[1]){b&&u&&async function(){const e=await b.getTopFavoriteEmoji(M),t=await Y(Me([...e,...u],e=>e.unicode||e.name).slice(0,M));n(20,B=t)}()}if(73728&e.$$.dirty[1]&&n(10,_=Ne?`transform: translateX(${N*E}px);`:`transform: translateX(${100*N}%);`),2&e.$$.dirty[0]){const e=w.filter(e=>e.unicode).filter(e=>xe(e)&&!Ae.has(e.unicode));e.length?Ue(()=>V(e)):(n(1,w=w.filter(H)),Ue(()=>{n(6,r.scrollTop=0,r)}))}if(e.$$.dirty[0],e.$$.dirty[1],130&e.$$.dirty[0]){n(2,v=function(){if($)return[{category:"",emojis:w}];const e=new Map;for(const t of w){const n=t.category||"";let o=e.get(n);o||(o=[],e.set(n,o)),o.push(t)}return[...e.entries()].map(([e,t])=>({category:e,emojis:t})).sort((e,t)=>e.category{n(12,S=!0)},{once:!0}):n(12,S=!1))},[g,w,v,k,o,i,r,$,x,a,_,T,S,s,L,z,c,l,C,D,B,U,P,d,R,f,function(e,t){return(n=[e.name||ot(e,t),...e.shortcodes],Me(n,e=>e)).join(", ");var n},function(e){return Pe(e,t=>{const i=parseInt(getComputedStyle(o).getPropertyValue("--num-columns"),10),r=e.parentElement.getBoundingClientRect().width-t;n(46,M=i),n(21,U=r)})},function(e){return Pe(e,e=>{n(44,E=e)})},function(e){if(!$||!w.length)return;const t=t=>{De(e),n(8,x=Be(t,x,w))};switch(e.key){case"ArrowDown":return t(!1);case"ArrowUp":return t(!0);case"Enter":if(-1!==x)return De(e),Q(w[x].id);w.length&&n(8,x=0)}},G,function(e){const{target:t,key:n}=e,o=t=>{t&&(De(e),t.focus())};switch(n){case"ArrowLeft":return o(t.previousSibling);case"ArrowRight":return o(t.nextSibling)}},async function(e){const{target:t}=e;if(!t.classList.contains("emoji"))return;De(e),Q(t.id.substring(4))},function(e){const{target:t}=e;if(!t.classList.contains("emoji"))return;De(e);const o=parseInt(t.id.slice(9),10);n(14,L=o),n(11,T=!1),I("skintone-button"),O("skin-tone-change",{skinTone:o}),b.setPreferredSkinTone(o)},async function(e){n(11,T=!T),n(15,z=L),T&&(De(e),Ue(()=>I("skintone-"+z)))},function(e){const{key:t}=e;if(!T)return;const o=async t=>{De(e),n(15,z=Be(t,z,D)),await ae(),I("skintone-"+z)};switch(t){case"ArrowUp":return o(!0);case"ArrowDown":return o(!1)}},async function(){await new Promise(e=>Ue(e));const{activeElement:e}=o.getRootNode();e&&e.classList.contains("skintone-option")||n(11,T=!1)},m,h,b,p,y,!0,j,E,u,M,N,I,O,V,H,K,Y,q,W,Q,function(){k=this.value,n(3,k)},function(e){ee[e?"unshift":"push"](()=>{n(13,s=e)})},e=>G(e),function(e){ee[e?"unshift":"push"](()=>{n(6,r=e)})},function(e){ee[e?"unshift":"push"](()=>{n(5,i=e)})},function(e){ee[e?"unshift":"push"](()=>{n(4,o=e)})}]}class rt extends ye{constructor(e){super(),this.shadowRoot.innerHTML="",be(this,{target:this.shadowRoot},it,nt,P,{locale:37,dataSource:38,skinToneEmoji:40,i18n:0,database:39,customEmoji:41},[-1,-1,-1]),e&&(e.target&&O(e.target,this,e.anchor),e.props&&(this.$set(e.props),ue()))}static get observedAttributes(){return["locale","dataSource","skinToneEmoji","i18n","database","customEmoji"]}get locale(){return this.$$.ctx[37]}set locale(e){this.$set({locale:e}),ue()}get dataSource(){return this.$$.ctx[38]}set dataSource(e){this.$set({dataSource:e}),ue()}get skinToneEmoji(){return this.$$.ctx[40]}set skinToneEmoji(e){this.$set({skinToneEmoji:e}),ue()}get i18n(){return this.$$.ctx[0]}set i18n(e){this.$set({i18n:e}),ue()}get database(){return this.$$.ctx[39]}set database(e){this.$set({database:e}),ue()}get customEmoji(){return this.$$.ctx[41]}set customEmoji(e){this.$set({customEmoji:e}),ue()}}class at extends rt{constructor(e){super({props:e})}disconnectedCallback(){this.$destroy()}}return customElements.define("emoji-picker",at),e.Database=A,e.Picker=at,e}({}); +var emojiPickerElement=function(e){"use strict";function t(e){if("string"!=typeof e||!e)throw new Error("expected a non-empty string, got: "+e)}function n(e){if("number"!=typeof e)throw new Error("expected a number, got: "+e)}const o="eTag",i="url";function r(e){return function(e,t){const n=new Set,o=[];for(const i of e){const e=t(i);n.has(e)||(n.add(e),o.push(i))}return o}(e,e=>e.unicode)}const a=[{version:1,migration:function(e,t,n){function o(t,n,o){const i=n?e.createObjectStore(t,{keyPath:n}):e.createObjectStore(t);if(o)for(const[e,[t,n]]of Object.entries(o))i.createIndex(e,t,{multiEntry:n});return i}o("keyvalue"),o("emoji","unicode",{tokens:["tokens",!0],"group-order":[["group","order"]],skinUnicodes:["skinUnicodes",!0]}),o("favorites",void 0,{count:[""]}),n()}}],s={},c={},l={};function u(e,t,n){n.onerror=()=>t(n.error),n.onblocked=()=>t(new Error("IDB blocked")),n.onsuccess=()=>e(n.result)}function d(e){return c[e]||(c[e]=async function(e){const t=await new Promise((t,n)=>{const o=indexedDB.open(e,1);s[e]=o,o.onupgradeneeded=e=>{const t=o.result,n=e.currentTarget.transaction,i=a.filter(({version:t})=>e.oldVersionm(e),t}(e)),c[e]}function f(e,t,n,o){return new Promise((i,r)=>{const a=e.transaction(t,n),s="string"==typeof t?a.objectStore(t):t.map(e=>a.objectStore(e));let c;o(s,e=>{c=e}),a.oncomplete=()=>i(c),a.onerror=()=>r(a.error)})}function m(e){const t=s[e],n=t&&t.result;if(n){n.close();const t=l[e];if(t)for(const e of t)e()}delete s[e],delete c[e],delete l[e]}const h=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/)||h.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase()).filter(Boolean)}function g(e,t,n,o){e[t](n).onsuccess=e=>o&&o(e.target.result)}function b(e,t,n){g(e,"get",t,n)}function y(e,t,n){g(e,"getAll",t,n)}function w(e,t){const n=function(e,t){let n=e[0];for(let o=1;ot(i)&&(n=i)}return n}(e,e=>e.length),o=[];for(const i of n)e.some(e=>-1===e.findIndex(e=>t(e)===t(i)))||o.push(i);return o}async function v(e,t,n,r){try{const a=function(e){return e.map(({annotation:e,emoticon:t,group:n,order:o,shortcodes:i,skins:r,tags:a,emoji:s,version:c})=>{const l=[...new Set([...i.map(p).flat(),...a.map(p).flat(),...p(e),t].filter(Boolean).map(e=>e.toLowerCase()).filter(e=>e.length>=2))].sort(),u={annotation:e,group:n,order:o,shortcodes:i,tags:a,tokens:l,unicode:s,version:c};if(t&&(u.emoticon=t),r){u.skinTones=[],u.skinUnicodes=[],u.skinVersions=[];for(const{tone:e,emoji:t,version:n}of r)u.skinTones.push(e),u.skinUnicodes.push(t),u.skinVersions.push(n)}return u})}(t);await f(e,["emoji","keyvalue"],"readwrite",([e,t])=>{let s,c,l,u=0;function d(){3==++u&&function(){if(s===r&&c===n)return;for(const t of l)e.delete(t);for(const t of a)e.put(t);t.put(r,o),t.put(n,i)}()}b(t,o,e=>{s=e,d()}),b(t,i,e=>{c=e,d()}),g(e,"getAllKeys",void 0,e=>{l=e,d()})})}finally{}}async function k(e,t){const n=p(t);return f(e,"emoji","readonly",(e,t)=>{const o=[],i=()=>{const e=w(o,e=>e.unicode);t(e.sort((e,t)=>e.order{o.push(e),o.length===n.length&&i()})}})}function j(e,t,n){return f(e,t,"readonly",(e,t)=>b(e,n,t))}const $=["name","shortcodes","url"];function x(e){!function(e){const t=e&&Array.isArray(e),n=t&&e.length&&(!e[0]||$.some(t=>!(t in e[0])));if(!t||n)throw new Error("Expected custom emojis to be in correct format")}(e);const t=(e,t)=>e.name.toLowerCase(){let o=n;for(let t=0;te[0][...new Set(e.shortcodes.map(e=>p(e)).flat())]),i=e=>o(e,!0),r=e=>o(e,!1),a=new Map,s=new Map;for(const t of e){s.set(t.name.toLowerCase(),t);for(const e of t.shortcodes)a.set(e.toLowerCase(),t)}return{all:n,search:e=>{const n=p(e);return w(n.map((e,t)=>(te.name).sort(t)},byShortcode:e=>a.get(e.toLowerCase()),byName:e=>s.get(e.toLowerCase())}}function E(e){if(!e)return e;if(delete e.tokens,e.skinTones){const t=e.skinTones.length;e.skins=Array(t);for(let n=0;n!(t in e[0])))throw new Error("Expected emojibase full (not compact) data, but data is in wrong format")}(o),[n,o]}async function z(e){const t=function(e){for(var t=e.length,n=new ArrayBuffer(t),o=new Uint8Array(n),i=-1;++ij(e,"keyvalue",t)));return r===n&&a===t}(e,t,r));else{if(!n){n=(await L(t))[1]}await v(e,n,t,r)}}class A{constructor({dataSource:e="https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json",locale:t="en",customEmoji:n=[]}={}){this.dataSource=e,this.locale=t,this._dbName="emoji-picker-element-"+this.locale,this._db=void 0,this._lazyUpdate=void 0,this._custom=x(n),this._clear=this._clear.bind(this),this._ready=this._init()}async _init(){const e=this._db=await d(this._dbName);!function(e,t){let n=l[e];n||(n=l[e]=[]),n.push(t)}(this._dbName,this._clear);const t=this.dataSource;await async function(e){return!await j(e,"keyvalue",i)}(e)?await async function(e,t){let[n,o]=await L(t);n||(n=await z(o)),await v(e,o,t,n)}(e,t):this._lazyUpdate=C(e,t)}async ready(){return this._ready||(this._ready=this._init()),this._ready}async getEmojiByGroup(e){return n(e),await this.ready(),r(await async function(e,t){return f(e,"emoji","readonly",(e,n)=>{const o=IDBKeyRange.bound([t,0],[t+1,0],!1,!0);y(e.index("group-order"),o,n)})}(this._db,e)).map(E)}async getEmojiBySearchQuery(e){t(e),await this.ready();return[...this._custom.search(e),...r(await k(this._db,e)).map(E)]}async getEmojiByShortcode(e){t(e),await this.ready();const n=this._custom.byShortcode(e);return n||E(await async function(e,t){return(await k(e,t)).filter(e=>e.shortcodes.map(e=>e.toLowerCase()).includes(t.toLowerCase()))[0]||null}(this._db,e))}async getEmojiByUnicodeOrName(e){t(e),await this.ready();const n=this._custom.byName(e);return n||E(await async function(e,t){return f(e,"emoji","readonly",(e,n)=>b(e,t,o=>{if(o)return n(o);b(e.index("skinUnicodes"),t,e=>n(e||null))}))}(this._db,e))}async getPreferredSkinTone(){return await this.ready(),await j(this._db,"keyvalue","skinTone")||0}async setPreferredSkinTone(e){return n(e),await this.ready(),t=this._db,o="skinTone",i=e,f(t,"keyvalue","readwrite",e=>e.put(i,o));var t,o,i}async incrementFavoriteEmojiCount(e){return t(e),await this.ready(),n=this._db,o=e,f(n,"favorites","readwrite",e=>{b(e,o,t=>e.put((t||0)+1,o))});var n,o}async getTopFavoriteEmoji(e){return n(e),await this.ready(),(await function(e,t,n){return 0===n?[]:f(e,["favorites","emoji"],"readonly",([e,o],i)=>{const r=[];e.index("count").openCursor(void 0,"prev").onsuccess=e=>{const a=e.target.result;if(!a)return i(r);function s(e){if(r.push(e),r.length===n)return i(r);a.continue()}const c=a.primaryKey,l=t.byName(c);if(l)return s(l);b(o,c,e=>{if(e)return s(e);a.continue()})}})}(this._db,this._custom,e)).map(E)}set customEmoji(e){this._custom=x(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch(e){}if(this._db)return!0}_clear(){this._dbName,this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown()&&await m(this._dbName)}async delete(){var e;await this._shutdown()&&await(e=this._dbName,new Promise((t,n)=>{m(e),u(t,n,indexedDB.deleteDatabase(e))}))}}function D(){}function B(e){return e()}function M(){return Object.create(null)}function U(e){e.forEach(B)}function N(e){return"function"==typeof e}function P(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function R(e){return e&&N(e.destroy)?e.destroy:D}function I(e,t){e.appendChild(t)}function O(e,t,n){e.insertBefore(t,n||null)}function F(e){e.parentNode.removeChild(e)}function V(e){return document.createElement(e)}function H(e){return document.createTextNode(e)}function K(e,t,n,o){return e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}function Y(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function q(e,t){t=""+t,e.data!==t&&(e.data=t)}function W(e,t){(null!=t||e.value)&&(e.value=t)}function G(e,t,n,o){e.style.setProperty(t,n,o?"important":"")}let Q;function X(e){Q=e}function J(){if(!Q)throw new Error("Function called outside component initialization");return Q}const Z=[],ee=[],te=[],ne=[],oe=Promise.resolve();let ie=!1;function re(){ie||(ie=!0,oe.then(ue))}function ae(){return re(),oe}function se(e){te.push(e)}let ce=!1;const le=new Set;function ue(){if(!ce){ce=!0;do{for(let e=0;ey.get(i)?(v.add(o),k(t)):(w.add(i),f--):(c(n,a),f--)}for(;f--;){const t=e[f];b.has(t.key)||c(t,a)}for(;m;)k(g[m-1]);return g}function be(e,t,n,o,i,r,a=[-1]){const s=Q;X(e);const c=t.props||{},l=e.$$={fragment:null,ctx:null,props:r,update:D,not_equal:i,bound:M(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(s?s.$$.context:[]),callbacks:M(),dirty:a};let u=!1;if(l.ctx=n?n(e,c,(t,n,...o)=>{const r=o.length?o[0]:n;return l.ctx&&i(l.ctx[t],l.ctx[t]=r)&&(l.bound[t]&&l.bound[t](r),u&&function(e,t){-1===e.$$.dirty[0]&&(Z.push(e),re(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const t=i.map(B).filter(N);r?r.push(...t):U(t),e.$$.on_mount=[]}),a.forEach(se)}(e,t.target,t.anchor),ue()}X(s)}let ye;"function"==typeof HTMLElement&&(ye=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){for(const e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(e,t,n){this[e]=n}$destroy(){!function(e,t){const n=e.$$;null!==n.fragment&&(U(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}(this,1),this.$destroy=D}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(){}});var we={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading…",networkErrorMessage:"Could not load emoji. Try refreshing.",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"}};const ve=[[-1,"✨","custom"],[0,"πŸ˜€","smileys-emotion"],[1,"πŸ‘‹","people-body"],[3,"🐱","animals-nature"],[4,"🍎","food-drink"],[5,"🏠️","travel-places"],[6,"⚽","activities"],[7,"πŸ“","objects"],[8,"⛔️","symbols"],[9,"🏁","flags"]].map(([e,t,n])=>({id:e,emoji:t,name:n})),ke=ve.slice(1),je=ve[0],$e="function"==typeof requestIdleCallback?requestIdleCallback:setTimeout;function xe(e){return e.unicode.includes("‍")}const Ee={"πŸ˜ƒ":.6,"😐️":.7,"πŸ˜€":1,"πŸ‘οΈβ€πŸ—¨οΈ":2,"🀣":3,"πŸ‘±β€β™€οΈ":4,"🀩":5,"πŸ₯°":11,"πŸ₯»":12,"πŸ§‘β€πŸ¦°":12.1,"πŸ₯²":13},_e="πŸ–οΈ",Te=["😊","πŸ˜’","β™₯️","πŸ‘οΈ","😍","πŸ˜‚","😭","☺️","πŸ˜”","😩","😏","πŸ’•","πŸ™Œ","😘"],Se='"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Twemoji Mozilla","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',Le=(e,t)=>{try{const n=document.createElement("canvas");n.width=n.height=1;const o=n.getContext("2d");return o.textBaseline="top",o.font="100px "+Se,o.fillStyle=t,o.scale(.01,.01),o.fillText(e,0,0),o.getImageData(0,0,1,1).data}catch(e){}};function ze(e){const t=Le(e,"#000"),n=Le(e,"#fff");return t&&n&&((e,t)=>{const n=[...e].join(",");return n===[...t].join(",")&&"0,0,0,0"!==n})(t,n)}const Ce=new Promise(e=>$e(()=>e(function(){let e;for(const[t,n]of Object.entries(Ee)){if(!ze(t))break;e=n}return e}()))),Ae=new Map;function De(e){e.preventDefault(),e.stopPropagation()}function Be(e,t,n){return(t+=e?-1:1)<0?t=n.length-1:t>=n.length&&(t=0),t}function Me(e,t){const n=new Set,o=[];for(const i of e){const e=t(i);n.has(e)||(n.add(e),o.push(i))}return o}const Ue=requestAnimationFrame,Ne="function"==typeof ResizeObserver;function Pe(e,t){let n;return Ne?(n=new ResizeObserver(e=>t(e[0].contentRect.width)),n.observe(e)):Ue(()=>t(e.getBoundingClientRect().width)),{destroy(){n&&n.disconnect()}}}function Re(e){{const t=document.createRange();return t.selectNode(e.firstChild),t.getBoundingClientRect().width}}let Ie;const{Map:Oe}=he;function Fe(e,t,n){const o=e.slice();return o[62]=t[n],o[64]=n,o}function Ve(e,t,n){const o=e.slice();return o[62]=t[n],o[64]=n,o}function He(e,t,n){const o=e.slice();return o[65]=t[n],o[64]=n,o}function Ke(e,t,n){const o=e.slice();return o[68]=t[n],o}function Ye(e,t,n){const o=e.slice();return o[71]=t[n],o[64]=n,o}function qe(e,t){let n,o,i,r,a,s,c,l=t[71]+"";return{key:e,first:null,c(){n=V("button"),o=H(l),Y(n,"id",i="skintone-"+t[64]),Y(n,"class",r="emoji skintone-option hide-focus "+(t[64]===t[15]?"active":"")),Y(n,"aria-selected",a=t[64]===t[15]),Y(n,"role","option"),Y(n,"title",s=t[0].skinTones[t[64]]),Y(n,"tabindex","-1"),Y(n,"aria-label",c=t[0].skinTones[t[64]]),this.first=n},m(e,t){O(e,n,t),I(n,o)},p(e,t){524288&t[0]&&l!==(l=e[71]+"")&&q(o,l),524288&t[0]&&i!==(i="skintone-"+e[64])&&Y(n,"id",i),557056&t[0]&&r!==(r="emoji skintone-option hide-focus "+(e[64]===e[15]?"active":""))&&Y(n,"class",r),557056&t[0]&&a!==(a=e[64]===e[15])&&Y(n,"aria-selected",a),524289&t[0]&&s!==(s=e[0].skinTones[e[64]])&&Y(n,"title",s),524289&t[0]&&c!==(c=e[0].skinTones[e[64]])&&Y(n,"aria-label",c)},d(e){e&&F(n)}}}function We(e,t){let n,o,i,r,a,s,c,l,u=t[68].emoji+"";function d(...e){return t[58](t[68],...e)}return{key:e,first:null,c(){n=V("button"),o=V("div"),i=H(u),Y(o,"class","emoji"),Y(n,"role","tab"),Y(n,"class","nav-button"),Y(n,"aria-controls",r="tab-"+t[68].id),Y(n,"aria-label",a=t[0].categories[t[68].name]),Y(n,"aria-selected",s=t[23].id===t[68].id),Y(n,"title",c=t[0].categories[t[68].name]),this.first=n},m(e,t,r){O(e,n,t),I(n,o),I(o,i),r&&l(),l=K(n,"click",d)},p(e,o){t=e,4194304&o[0]&&u!==(u=t[68].emoji+"")&&q(i,u),4194304&o[0]&&r!==(r="tab-"+t[68].id)&&Y(n,"aria-controls",r),4194305&o[0]&&a!==(a=t[0].categories[t[68].name])&&Y(n,"aria-label",a),12582912&o[0]&&s!==(s=t[23].id===t[68].id)&&Y(n,"aria-selected",s),4194305&o[0]&&c!==(c=t[0].categories[t[68].name])&&Y(n,"title",c)},d(e){e&&F(n),l()}}}function Ge(e){let t;return{c(){t=V("div"),Y(t,"class","custom-emoji"),G(t,"background-image","url("+e[62].url+")")},m(e,n){O(e,t,n)},p(e,n){4&n[0]&&G(t,"background-image","url("+e[62].url+")")},d(e){e&&F(t)}}}function Qe(e){let t,n=ot(e[62],e[14])+"";return{c(){t=H(n)},m(e,n){O(e,t,n)},p(e,o){16388&o[0]&&n!==(n=ot(e[62],e[14])+"")&&q(t,n)},d(e){e&&F(t)}}}function Xe(e,t){let n,o,i,r,a,s,c;function l(e,t){return e[62].unicode?Qe:Ge}let u=l(t),d=u(t);return{key:e,first:null,c(){n=V("button"),d.c(),Y(n,"role",o=t[7]?"option":"menuitem"),Y(n,"aria-selected",i=t[7]?t[64]==t[8]:""),Y(n,"aria-label",r=t[26](t[62],t[14])),Y(n,"title",a=t[62].title),Y(n,"class",s="emoji "+(t[7]&&t[64]===t[8]?"active":"")),Y(n,"id",c="emo-"+t[62].id),this.first=n},m(e,t){O(e,n,t),d.m(n,null)},p(e,t){u===(u=l(e))&&d?d.p(e,t):(d.d(1),d=u(e),d&&(d.c(),d.m(n,null))),128&t[0]&&o!==(o=e[7]?"option":"menuitem")&&Y(n,"role",o),388&t[0]&&i!==(i=e[7]?e[64]==e[8]:"")&&Y(n,"aria-selected",i),16388&t[0]&&r!==(r=e[26](e[62],e[14]))&&Y(n,"aria-label",r),4&t[0]&&a!==(a=e[62].title)&&Y(n,"title",a),388&t[0]&&s!==(s="emoji "+(e[7]&&e[64]===e[8]?"active":""))&&Y(n,"class",s),4&t[0]&&c!==(c="emo-"+e[62].id)&&Y(n,"id",c)},d(e){e&&F(n),d.d()}}}function Je(e,t){let n,o,i,r,a,s,c,l,u,d,f=(t[7]?t[0].searchResultsLabel:t[65].category?t[65].category:t[2].length>1?t[0].categories.custom:t[0].categories[t[23].name])+"",m=[],h=new Oe,p=t[65].emojis;const g=e=>e[62].id;for(let e=0;e1?"":"gone")),Y(n,"aria-hidden","true"),Y(a,"class","emoji-menu"),Y(a,"role",s=t[7]?"listbox":"menu"),Y(a,"aria-labelledby",c="menu-label-"+t[64]),Y(a,"id",l=t[7]?"search-results":""),this.first=n},m(e,i,r){O(e,n,i),I(n,o),O(e,a,i);for(let e=0;e1?e[0].categories.custom:e[0].categories[e[23].name])+"")&&q(o,f),4&t[0]&&i!==(i="menu-label-"+e[64])&&Y(n,"id",i),4&t[0]&&r!==(r="category "+(e[2].length>1?"":"gone"))&&Y(n,"class",r),67125636&t[0]){const n=e[65].emojis;m=ge(m,t,g,1,e,n,h,a,pe,Xe,null,Ve)}128&t[0]&&s!==(s=e[7]?"listbox":"menu")&&Y(a,"role",s),4&t[0]&&c!==(c="menu-label-"+e[64])&&Y(a,"aria-labelledby",c),128&t[0]&&l!==(l=e[7]?"search-results":"")&&Y(a,"id",l)},d(e){e&&F(n),e&&F(a);for(let e=0;ee[71];for(let t=0;te[68].id;for(let t=0;te[65].category;for(let t=0;te[62].id;for(let t=0;tt.getElementById("emo-"+e.id)),n(1,w=w)}function H(e){return!e.unicode||!xe(e)||Ae.get(e.unicode)}async function K(e){const t=await Ce;return e.filter(({version:e})=>!e||e<=t)}async function Y(e){return function(e,t){const n=e=>{const n={};for(const o of e)"number"==typeof o.tone&&o.version<=t&&(n[o.tone]=o.unicode);return n};return e.map(({unicode:e,skins:t,shortcodes:o,url:i,name:r,category:a})=>({unicode:e,name:r,shortcodes:o,url:i,category:a,id:e||r,skins:t&&n(t),title:o.join(", ")}))}(e,await Ce)}async function q(e){if(void 0===e)return[];const t=-1===e?y:await b.getEmojiByGroup(e);return Y(await K(t))}async function W(e){return Y(await K(await b.getEmojiBySearchQuery(e)))}function G(e){n(3,k=""),n(42,j=""),n(8,x=-1),n(46,N=P.findIndex(t=>t.id===e.id))}async function Q(e){const t=await b.getEmojiByUnicodeOrName(e),o=[...w,...B].find(t=>t.id===e),i=o.unicode&&ot(o,L);await b.incrementFavoriteEmojiCount(e),n(44,u=u),O("emoji-click",{emoji:t,skinTone:L,...i&&{unicode:i},...o.name&&{name:o.name}})}Ce.then(e=>{e||n(9,a=g.emojiUnsupportedMessage)}),F=async()=>{await ae(),n(36,m=m||"en"),n(37,h=h||"https://cdn.jsdelivr.net/npm/emojibase-data@5/en/data.json")},J().$$.on_mount.push(F),function(e){J().$$.on_destroy.push(e)}(async()=>{b&&await b.close()});return e.$set=e=>{"locale"in e&&n(36,m=e.locale),"dataSource"in e&&n(37,h=e.dataSource),"skinToneEmoji"in e&&n(39,p=e.skinToneEmoji),"i18n"in e&&n(0,g=e.i18n),"database"in e&&n(38,b=e.database),"customEmoji"in e&&n(40,y=e.customEmoji)},e.$$.update=()=>{if(224&e.$$.dirty[1]&&m&&h&&(!b||b.locale!==m&&b.dataSource!==h)&&n(38,b=new A({dataSource:h,locale:m})),640&e.$$.dirty[1]&&y&&b&&n(38,b.customEmoji=y,b),513&e.$$.dirty[0]|128&e.$$.dirty[1]){b&&async function(){const e=setTimeout(()=>{n(9,a=g.loadingMessage)},1e3);try{await b.ready(),n(24,R=!0)}catch(e){console.error(e),n(9,a=g.networkErrorMessage)}finally{clearTimeout(e),a===g.loadingMessage&&n(9,a="")}}()}if(4194304&e.$$.dirty[0]|512&e.$$.dirty[1]&&(y&&y.length?n(22,P=[je,...ke]):P!==ke&&n(22,P=ke)),8&e.$$.dirty[0]&&$e(()=>{n(42,j=(k||"").trim()),n(8,x=-1)}),4194304&e.$$.dirty[0]|32768&e.$$.dirty[1]&&n(23,d=P[N]),8388608&e.$$.dirty[0]|2176&e.$$.dirty[1]){!async function(){b?j.length>=2?(n(1,w=await W(j)),n(7,$=!0)):d&&(n(1,w=await q(d.id)),n(7,$=!1)):(n(1,w=[]),n(7,$=!1))}()}if(4194432&e.$$.dirty[0]&&n(17,l=`\n --font-family: ${Se};\n --num-groups: ${P.length}; \n --indicator-opacity: ${$?0:1}; \n --num-skintones: 6;`),128&e.$$.dirty[1]){!async function(){b&&n(14,L=await b.getPreferredSkinTone())}()}if(256&e.$$.dirty[1]&&n(19,D=Array(6).fill().map((e,t)=>function(e,t){if(0===t)return e;const n=e.indexOf("‍");return-1!==n?e.substring(0,n)+String.fromCodePoint(127995+t-1)+e.substring(n):(e.endsWith("️")&&(e=e.substring(0,e.length-1)),e+"\ud83c"+String.fromCodePoint(57339+t-1))}(p,t))),540672&e.$$.dirty[0]&&n(16,c=D[L]),16385&e.$$.dirty[0]&&n(18,C=g.skinToneLabel.replace("{skinTone}",g.skinTones[L])),128&e.$$.dirty[1]){b&&async function(){n(44,u=(await Promise.all(Te.map(e=>b.getEmojiByUnicodeOrName(e)))).filter(Boolean))}()}if(24704&e.$$.dirty[1]){b&&u&&async function(){const e=await b.getTopFavoriteEmoji(M),t=await Y(Me([...e,...u],e=>e.unicode||e.name).slice(0,M));n(20,B=t)}()}if(36864&e.$$.dirty[1]&&n(10,_=Ne?`transform: translateX(${N*E}px);`:`transform: translateX(${100*N}%);`),2&e.$$.dirty[0]){const e=w.filter(e=>e.unicode).filter(e=>xe(e)&&!Ae.has(e.unicode));e.length?Ue(()=>V(e)):(n(1,w=w.filter(H)),Ue(()=>{n(6,r.scrollTop=0,r)}))}if(e.$$.dirty[0],e.$$.dirty[1],130&e.$$.dirty[0]){n(2,v=function(){if($)return[{category:"",emojis:w}];const e=new Map;for(const t of w){const n=t.category||"";let o=e.get(n);o||(o=[],e.set(n,o)),o.push(t)}return[...e.entries()].map(([e,t])=>({category:e,emojis:t})).sort((e,t)=>e.category{n(12,S=!0)},{once:!0}):n(12,S=!1))},[g,w,v,k,o,i,r,$,x,a,_,T,S,s,L,z,c,l,C,D,B,U,P,d,R,f,function(e,t){return(n=[e.name||ot(e,t),...e.shortcodes],Me(n,e=>e)).join(", ");var n},function(e){return Pe(e,t=>{const i=parseInt(getComputedStyle(o).getPropertyValue("--num-columns"),10),r=e.parentElement.getBoundingClientRect().width-t;n(45,M=i),n(21,U=r)})},function(e){return Pe(e,e=>{n(43,E=e)})},function(e){if(!$||!w.length)return;const t=t=>{De(e),n(8,x=Be(t,x,w))};switch(e.key){case"ArrowDown":return t(!1);case"ArrowUp":return t(!0);case"Enter":if(-1!==x)return De(e),Q(w[x].id);w.length&&n(8,x=0)}},G,function(e){const{target:t,key:n}=e,o=t=>{t&&(De(e),t.focus())};switch(n){case"ArrowLeft":return o(t.previousSibling);case"ArrowRight":return o(t.nextSibling)}},async function(e){const{target:t}=e;if(!t.classList.contains("emoji"))return;De(e),Q(t.id.substring(4))},function(e){const{target:t}=e;if(!t.classList.contains("emoji"))return;De(e);const o=parseInt(t.id.slice(9),10);n(14,L=o),n(11,T=!1),I("skintone-button"),O("skin-tone-change",{skinTone:o}),b.setPreferredSkinTone(o)},async function(e){n(11,T=!T),n(15,z=L),T&&(De(e),Ue(()=>I("skintone-"+z)))},function(e){const{key:t}=e;if(!T)return;const o=async t=>{De(e),n(15,z=Be(t,z,D)),await ae(),I("skintone-"+z)};switch(t){case"ArrowUp":return o(!0);case"ArrowDown":return o(!1)}},m,h,b,p,y,!0,j,E,u,M,N,I,O,V,H,K,Y,q,W,Q,function(){k=this.value,n(3,k)},function(e){ee[e?"unshift":"push"](()=>{n(13,s=e)})},e=>G(e),function(e){ee[e?"unshift":"push"](()=>{n(6,r=e)})},function(e){ee[e?"unshift":"push"](()=>{n(5,i=e)})},function(e){ee[e?"unshift":"push"](()=>{n(4,o=e)})}]}class rt extends ye{constructor(e){super(),this.shadowRoot.innerHTML="",be(this,{target:this.shadowRoot},it,nt,P,{locale:36,dataSource:37,skinToneEmoji:39,i18n:0,database:38,customEmoji:40},[-1,-1,-1]),e&&(e.target&&O(e.target,this,e.anchor),e.props&&(this.$set(e.props),ue()))}static get observedAttributes(){return["locale","dataSource","skinToneEmoji","i18n","database","customEmoji"]}get locale(){return this.$$.ctx[36]}set locale(e){this.$set({locale:e}),ue()}get dataSource(){return this.$$.ctx[37]}set dataSource(e){this.$set({dataSource:e}),ue()}get skinToneEmoji(){return this.$$.ctx[39]}set skinToneEmoji(e){this.$set({skinToneEmoji:e}),ue()}get i18n(){return this.$$.ctx[0]}set i18n(e){this.$set({i18n:e}),ue()}get database(){return this.$$.ctx[38]}set database(e){this.$set({database:e}),ue()}get customEmoji(){return this.$$.ctx[40]}set customEmoji(e){this.$set({customEmoji:e}),ue()}}class at extends rt{constructor(e){super({props:e})}disconnectedCallback(){this.$destroy()}}return customElements.define("emoji-picker",at),e.Database=A,e.Picker=at,e}({});