@ckeditor/ckeditor5-emoji 46.1.1 β 47.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/emoji.js +1 -1
- package/package.json +8 -8
- package/src/emojirepository.js +1 -2
- package/src/emojiutils.js +13 -14
package/build/emoji.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
/*!
|
|
3
3
|
* @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
|
|
4
4
|
* For licensing, see LICENSE.md.
|
|
5
|
-
*/(()=>{var e={173:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-form.ck-emoji-picker-form{padding-bottom:0}.ck.ck-form.ck-emoji-picker-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border-color:transparent}",""]);const c=n},212:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})}},237:e=>{"use strict";e.exports=CKEditor5.dll},272:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i="",r=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),r&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),r&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i}).join("")},t.i=function(e,i,r,o,s){"string"==typeof e&&(e=[[null,e,void 0]]);var n={};if(r)for(var c=0;c<this.length;c++){var a=this[c][0];null!=a&&(n[a]=!0)}for(var l=0;l<e.length;l++){var u=[].concat(e[l]);r&&n[u[0]]||(void 0!==s&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=s),i&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=i):u[2]=i),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},313:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,":root{--ck-emoji-grid-tile-size:27px}.ck.ck-emoji .ck.ck-emoji__tiles{border-top:1px solid var(--ck-color-base-border);max-height:min(265px,40vh);max-width:100%;overflow-x:hidden;overflow-y:auto}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--ck-emoji-grid-tile-size),1fr));margin:var(--ck-spacing-standard) var(--ck-spacing-large);grid-gap:var(--ck-spacing-small)}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{border:0;font-size:1.5em;height:var(--ck-emoji-grid-tile-size);min-height:var(--ck-emoji-grid-tile-size);min-width:var(--ck-emoji-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-emoji-grid-tile-size)}@media (prefers-reduced-motion:reduce){.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{transition:none}}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label{line-height:var(--ck-emoji-grid-tile-size);text-align:center;width:100%}",""]);const c=n},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},473:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,":root{--ck-form-default-width:340px}.ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form.ck-form_default-width{width:var(--ck-form-default-width)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-number,.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}@media screen and (max-width:600px){.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit{align-items:stretch;flex-direction:column;padding:0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit>.ck{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text{justify-content:center}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding{padding-bottom:var(--ck-spacing-large)}}[dir=ltr] .ck.ck-form.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-form.ck-responsive-form>:not(:last-child){margin-left:0}",""]);const c=n},482:function(e,t){var i,r,o;r=[],void 0===(o="function"==typeof(i=e=>{"use strict";var t=e=>{"number"==typeof e?e=""+e:"string"!=typeof e&&(e="");var t=m(e);return o(e,{_targetLower:t._lower,_targetLowerCodes:t.lowerCodes,_bitflags:t.bitflags})};class i{get indexes(){return this._indexes.slice(0,this._indexes.len).sort((e,t)=>e-t)}set indexes(e){return this._indexes=e}highlight(e,t){return((e,t="<b>",i="</b>")=>{for(var r="function"==typeof t?t:void 0,o=e.target,s=o.length,n=e.indexes,c="",a=0,l=0,u=!1,d=[],h=0;h<s;++h){var f=o[h];if(n[l]===h){if(++l,u||(u=!0,r?(d.push(c),c=""):c+=t),l===n.length){r?(c+=f,d.push(r(c,a++)),c="",d.push(o.substr(h+1))):c+=f+i+o.substr(h+1);break}}else u&&(u=!1,r?(d.push(r(c,a++)),c=""):c+=i);c+=f}return r?d:c})(this,e,t)}get score(){return s(this._score)}set score(e){this._score=n(e)}}class r extends Array{get score(){return s(this._score)}set score(e){this._score=n(e)}}var o=(e,t)=>{const r=new i;return r.target=e,r.obj=t.obj??O,r._score=t._score??C,r._indexes=t._indexes??[],r._targetLower=t._targetLower??"",r._targetLowerCodes=t._targetLowerCodes??O,r._nextBeginningIndexes=t._nextBeginningIndexes??O,r._bitflags=t._bitflags??0,r},s=e=>e===C?0:e>1?e:Math.E**(-2*((1-e)**.04307-1)),n=e=>0===e?C:e>1?e:1-Math.pow(Math.log(e)/-2+1,1/.04307),c=e=>{"number"==typeof e?e=""+e:"string"!=typeof e&&(e=""),e=e.trim();var t=m(e),i=[];if(t.containsSpace){var r=e.split(/\s+/);r=[...new Set(r)];for(var o=0;o<r.length;o++)if(""!==r[o]){var s=m(r[o]);i.push({lowerCodes:s.lowerCodes,_lower:r[o].toLowerCase(),containsSpace:!1})}}return{lowerCodes:t.lowerCodes,_lower:t._lower,containsSpace:t.containsSpace,bitflags:t.bitflags,spaceSearches:i}},a=e=>{if(e.length>999)return t(e);var i=g.get(e);return void 0!==i||(i=t(e),g.set(e,i)),i},l=e=>{if(e.length>999)return c(e);var t=p.get(e);return void 0!==t||(t=c(e),p.set(e,t)),t},u=(e,t)=>{var i=[];i.total=e.length;var s=t?.limit||E;if(t?.key)for(var n=0;n<e.length;n++){var c=e[n];if((h=V(c,t.key))!=O){T(h)||(h=a(h));var l=o(h.target,{_score:h._score,obj:c});if(i.push(l),i.length>=s)return i}}else if(t?.keys)for(n=0;n<e.length;n++){c=e[n];for(var u=new r(t.keys.length),d=t.keys.length-1;d>=0;--d)(h=V(c,t.keys[d]))?(T(h)||(h=a(h)),h._score=C,h._indexes.len=0,u[d]=h):u[d]=F;if(u.obj=c,u._score=C,i.push(u),i.length>=s)return i}else for(n=0;n<e.length;n++){var h;if((h=e[n])!=O&&(T(h)||(h=a(h)),h._score=C,h._indexes.len=0,i.push(h),i.length>=s))return i}return i},d=(e,t,r=!1,o=!1)=>{if(!1===r&&e.containsSpace)return h(e,t,o);for(var s=e._lower,n=e.lowerCodes,c=n[0],a=t._targetLowerCodes,l=n.length,u=a.length,d=0,f=0,m=0;;){if(c===a[f]){if(b[m++]=f,++d===l)break;c=n[d]}if(++f>=u)return O}d=0;var g=!1,p=0,y=t._nextBeginningIndexes;y===O&&(y=t._nextBeginningIndexes=k(t.target));var _=0;if((f=0===b[0]?0:y[b[0]-1])!==u)for(;;)if(f>=u){if(d<=0)break;if(++_>200)break;--d;var v=w[--p];f=y[v]}else if(n[d]===a[f]){if(w[p++]=f,++d===l){g=!0;break}++f}else f=y[f];var j=l<=1?-1:t._targetLower.indexOf(s,b[0]),x=!!~j,V=!!x&&(0===j||t._nextBeginningIndexes[j-1]===j);if(x&&!V)for(var T=0;T<y.length;T=y[T])if(!(T<=j)){for(var E=0;E<l&&n[E]===t._targetLowerCodes[T+E];E++);if(E===l){j=T,V=!0;break}}var C=e=>{for(var t=0,i=0,r=1;r<l;++r)e[r]-e[r-1]!==1&&(t-=e[r],++i);if(t-=(e[l-1]-e[0]-(l-1)+12)*i,0!==e[0]&&(t-=e[0]*e[0]*.2),g){var o=1;for(r=y[0];r<u;r=y[r])++o;o>24&&(t*=10*(o-24))}else t*=1e3;return t-=(u-l)/2,x&&(t/=1+l*l*1),V&&(t/=1+l*l*1),t-=(u-l)/2};if(g)if(V){for(T=0;T<l;++T)b[T]=j+T;A=b,P=C(b)}else A=w,P=C(w);else{if(x)for(var T=0;T<l;++T)b[T]=j+T;var A,P=C(A=b)}for(t._score=P,T=0;T<l;++T)t._indexes[T]=A[T];t._indexes.len=l;const S=new i;return S.target=t.target,S._score=t._score,S._indexes=t._indexes,S},h=(e,t,i)=>{for(var r=new Set,o=0,s=O,n=0,c=e.spaceSearches,a=c.length,l=0,u=()=>{for(let e=l-1;e>=0;e--)t._nextBeginningIndexes[y[2*e+0]]=y[2*e+1]},h=!1,f=0;f<a;++f){v[f]=C;var m=c[f];if(s=d(m,t),i){if(s===O)continue;h=!0}else if(s===O)return u(),O;if(f!==a-1){var k=s._indexes,g=!0;for(let e=0;e<k.len-1;e++)if(k[e+1]-k[e]!==1){g=!1;break}if(g){var p=k[k.len-1]+1,b=t._nextBeginningIndexes[p-1];for(let e=p-1;e>=0&&b===t._nextBeginningIndexes[e];e--)t._nextBeginningIndexes[e]=p,y[2*l+0]=e,y[2*l+1]=b,l++}}o+=s._score/a,v[f]=s._score/a,s._indexes[0]<n&&(o-=2*(n-s._indexes[0])),n=s._indexes[0];for(var w=0;w<s._indexes.len;++w)r.add(s._indexes[w])}if(i&&!h)return O;u();var _=d(e,t,!0);if(_!==O&&_._score>o){if(i)for(f=0;f<a;++f)v[f]=_._score/a;return _}i&&(s=t),s._score=o,f=0;for(let e of r)s._indexes[f++]=e;return s._indexes.len=f,s},f=e=>e.replace(/\p{Script=Latin}+/gu,e=>e.normalize("NFD")).replace(/[\u0300-\u036f]/g,""),m=e=>{for(var t=(e=f(e)).length,i=e.toLowerCase(),r=[],o=0,s=!1,n=0;n<t;++n){var c=r[n]=i.charCodeAt(n);32!==c?o|=1<<(c>=97&&c<=122?c-97:c>=48&&c<=57?26:c<=127?30:31):s=!0}return{lowerCodes:r,bitflags:o,containsSpace:s,_lower:i}},k=e=>{for(var t=(e=f(e)).length,i=(e=>{for(var t=e.length,i=[],r=0,o=!1,s=!1,n=0;n<t;++n){var c=e.charCodeAt(n),a=c>=65&&c<=90,l=a||c>=97&&c<=122||c>=48&&c<=57,u=a&&!o||!s||!l;o=a,s=l,u&&(i[r++]=n)}return i})(e),r=[],o=i[0],s=0,n=0;n<t;++n)o>n?r[n]=o:(o=i[++s],r[n]=void 0===o?t:o);return r},g=new Map,p=new Map,b=[],w=[],y=[],_=[],v=[],j=[],x=[],V=(e,t)=>{var i=e[t];if(void 0!==i)return i;if("function"==typeof t)return t(e);var r=t;Array.isArray(t)||(r=t.split("."));for(var o=r.length,s=-1;e&&++s<o;)e=e[r[s]];return e},T=e=>"object"==typeof e&&"number"==typeof e._bitflags,E=1/0,C=-E,A=[];A.total=0;var P,S,I,B,O=null,F=t(""),L=(P=[],S=0,B=e=>{for(var t=0,i=P[t],r=1;r<S;){var o=r+1;t=r,o<S&&P[o]._score<P[r]._score&&(t=o),P[t-1>>1]=P[t],r=1+(t<<1)}for(var s=t-1>>1;t>0&&i._score<P[s]._score;s=(t=s)-1>>1)P[t]=P[s];P[t]=i},(I={}).add=e=>{var t=S;P[S++]=e;for(var i=t-1>>1;t>0&&e._score<P[i]._score;i=(t=i)-1>>1)P[t]=P[i];P[t]=e},I.poll=e=>{if(0!==S){var t=P[0];return P[0]=P[--S],B(),t}},I.peek=e=>{if(0!==S)return P[0]},I.replaceTop=e=>{P[0]=e,B()},I);return{single:(e,t)=>{if(!e||!t)return O;var i=l(e);T(t)||(t=a(t));var r=i.bitflags;return(r&t._bitflags)!==r?O:d(i,t)},go:(e,t,i)=>{if(!e)return i?.all?u(t,i):A;var o=l(e),s=o.bitflags,c=o.containsSpace,h=n(i?.threshold||0),f=i?.limit||E,m=0,k=0,g=t.length;function p(e){m<f?(L.add(e),++m):(++k,e._score>L.peek()._score&&L.replaceTop(e))}if(i?.key)for(var b=i.key,w=0;w<g;++w){var y=t[w];(U=V(y,b))&&(T(U)||(U=a(U)),(s&U._bitflags)===s&&(z=d(o,U))!==O&&(z._score<h||(z.obj=y,p(z))))}else if(i?.keys){var P=i.keys,S=P.length;e:for(w=0;w<g;++w){y=t[w];for(var I=0,B=0;B<S;++B)b=P[B],(U=V(y,b))?(T(U)||(U=a(U)),j[B]=U,I|=U._bitflags):j[B]=F;if((s&I)===s){if(c)for(let e=0;e<o.spaceSearches.length;e++)_[e]=C;for(B=0;B<S;++B)if((U=j[B])!==F)if(x[B]=d(o,U,!1,c),x[B]!==O){if(c)for(let e=0;e<o.spaceSearches.length;e++)v[e]>-1e3&&_[e]>C&&(R=(_[e]+v[e])/4)>_[e]&&(_[e]=R),v[e]>_[e]&&(_[e]=v[e])}else x[B]=F;else x[B]=F;if(c){for(let e=0;e<o.spaceSearches.length;e++)if(_[e]===C)continue e}else{var M=!1;for(let e=0;e<S;e++)if(x[e]._score!==C){M=!0;break}if(!M)continue}var N=new r(S);for(let e=0;e<S;e++)N[e]=x[e];if(c){var D=0;for(let e=0;e<o.spaceSearches.length;e++)D+=_[e]}else{D=C;for(let e=0;e<S;e++){var R;(z=N[e])._score>-1e3&&D>C&&(R=(D+z._score)/4)>D&&(D=R),z._score>D&&(D=z._score)}}if(N.obj=y,N._score=D,i?.scoreFn){if(!(D=i.scoreFn(N)))continue;D=n(D),N._score=D}D<h||p(N)}}}else for(w=0;w<g;++w){var U,z;(U=t[w])&&(T(U)||(U=a(U)),(s&U._bitflags)===s&&(z=d(o,U))!==O&&(z._score<h||p(z)))}if(0===m)return A;var q=new Array(m);for(w=m-1;w>=0;--w)q[w]=L.poll();return q.total=m+k,q},prepare:t,cleanup:()=>{g.clear(),p.clear()}}})?i.apply(t,r):i)||(e.exports=o)},496:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',""]);const c=n},505:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-emoji__skin-tone{margin-left:var(--ck-spacing-standard)}.ck.ck-emoji__skin-tone>.ck.ck-dropdown .ck.ck-list__item{min-width:1em}.ck.ck-emoji__skin-tone>.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:auto}",""]);const c=n},507:e=>{"use strict";var t={};e.exports=function(e,i){var r=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(i)}},520:e=>{"use strict";var t=[];function i(e){for(var i=-1,r=0;r<t.length;r++)if(t[r].identifier===e){i=r;break}return i}function r(e,r){for(var s={},n=[],c=0;c<e.length;c++){var a=e[c],l=r.base?a[0]+r.base:a[0],u=s[l]||0,d="".concat(l," ").concat(u);s[l]=u+1;var h=i(d),f={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==h)t[h].references++,t[h].updater(f);else{var m=o(f,r);r.byIndex=c,t.splice(c,0,{identifier:d,updater:m,references:1})}n.push(d)}return n}function o(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,o){var s=r(e=e||[],o=o||{});return function(e){e=e||[];for(var n=0;n<s.length;n++){var c=i(s[n]);t[c].references--}for(var a=r(e,o),l=0;l<s.length;l++){var u=i(s[l]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}s=a}}},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},603:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-emoji{width:320px}.ck .ck.ck-emoji__search{align-items:center;display:flex;justify-content:space-between;padding:var(--ck-spacing-large);padding-bottom:var(--ck-spacing-medium)}.ck .ck.ck-emoji__search>.ck.ck-search{flex:1}.ck .ck-fake-emoji-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-emoji-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}div.ck.ck-balloon-panel.ck-emoji-picker-balloon{z-index:calc(var( --ck-z-dialog ) + 1)}",""]);const c=n},692:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function r(e,t,r,o){var s;if(r)s="";else{s="",o.supports&&(s+="@supports (".concat(o.supports,") {")),o.media&&(s+="@media ".concat(o.media," {"));var n=void 0!==o.layer;n&&(s+="@layer".concat(o.layer.length>0?" ".concat(o.layer):""," {")),s+=o.css,n&&(s+="}"),o.media&&(s+="}"),o.supports&&(s+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,s);else{var c=document.createTextNode(s),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(c,a[t]):e.appendChild(c)}}var o={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=o.singletonCounter++,i=o.singleton||(o.singleton=e.insertStyleElement(e));return{update:function(e){r(i,t,!1,e)},remove:function(e){r(i,t,!0,e)}}}},695:e=>{"use strict";e.exports=function(e){return e[1]}},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},834:(e,t,i)=>{e.exports=i(237)("./src/typing.js")},964:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},977:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-emoji__categories-list{display:flex;justify-content:space-between;margin:0 var(--ck-spacing-large)}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text{border-width:0;border-bottom:2px solid transparent;font-size:var(--ck-font-size-big);min-height:var(--ck-font-size-big);min-width:var(--ck-font-size-big);padding:0}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on{border-bottom-color:var(--ck-color-base-active)}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text>span{margin:auto}",""]);const c=n}},t={};function i(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={id:r,exports:{}};return e[r].call(s.exports,s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";i.r(r),i.d(r,{Emoji:()=>ze,EmojiCategoriesView:()=>xe,EmojiCommand:()=>ae,EmojiGridView:()=>_e,EmojiMention:()=>se,EmojiPicker:()=>Ue,EmojiPickerFormView:()=>Me,EmojiPickerView:()=>Pe,EmojiRepository:()=>te,EmojiSearchView:()=>Te,EmojiToneView:()=>Ae,EmojiUtils:()=>ee,_isEmojiSupported:()=>J});var e=i(782),t=i(584),o=i(834),s=i(482);function n(e){return e}function c(e){return null!=e&&"function"!=typeof e&&function(e){return Number.isSafeInteger(e)&&e>=0}(e.length)}function a(e){return"__proto__"===e}function l(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function u(e){return"string"==typeof e||"symbol"==typeof e?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function d(e){const t=[],i=e.length;if(0===i)return t;let r=0,o="",s="",n=!1;for(46===e.charCodeAt(0)&&(t.push(""),r++);r<i;){const c=e[r];s?"\\"===c&&r+1<i?(r++,o+=e[r]):c===s?s="":o+=c:n?'"'===c||"'"===c?s=c:"]"===c?(n=!1,t.push(o),o=""):o+=c:"["===c?(n=!0,o&&(t.push(o),o="")):"."===c?o&&(t.push(o),o=""):o+=c,r++}return o&&t.push(o),t}function h(e,t,i){if(null==e)return i;switch(typeof t){case"string":{if(a(t))return i;const r=e[t];return void 0===r?l(t)?h(e,d(t),i):i:r}case"number":case"symbol":{"number"==typeof t&&(t=u(t));const r=e[t];return void 0===r?i:r}default:{if(Array.isArray(t))return function(e,t,i){if(0===t.length)return i;let r=e;for(let e=0;e<t.length;e++){if(null==r)return i;if(a(t[e]))return i;r=r[t[e]]}if(void 0===r)return i;return r}(e,t,i);if(a(t=Object.is(t?.valueOf(),-0)?"-0":String(t)))return i;const r=e[t];return void 0===r?i:r}}}function f(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function m(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function k(e,t,i,r){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,i,r){if(null==t)return!0;if(Array.isArray(t))return g(e,t,i,r);if(t instanceof Map)return function(e,t,i,r){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[o,s]of t.entries()){if(!1===i(e.get(o),s,o,e,t,r))return!1}return!0}(e,t,i,r);if(t instanceof Set)return function(e,t,i,r){if(0===t.size)return!0;if(!(e instanceof Set))return!1;return g([...e],[...t],i,r)}(e,t,i,r);const o=Object.keys(t);if(null==e)return 0===o.length;if(0===o.length)return!0;if(r&&r.has(t))return r.get(t)===e;r&&r.set(t,e);try{for(let s=0;s<o.length;s++){const n=o[s];if(!f(e)&&!(n in e))return!1;if(void 0===t[n]&&void 0!==e[n])return!1;if(null===t[n]&&null!==e[n])return!1;if(!i(e[n],t[n],n,e,t,r))return!1}return!0}finally{r&&r.delete(t)}}(e,t,i,r);case"function":return Object.keys(t).length>0?k(e,{...t},i,r):m(e,t);default:return null===(o=e)||"object"!=typeof o&&"function"!=typeof o?m(e,t):"string"!=typeof t||""===t}var o}function g(e,t,i,r){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const o=new Set;for(let s=0;s<t.length;s++){const n=t[s];let c=!1;for(let a=0;a<e.length;a++){if(o.has(a))continue;let l=!1;if(i(e[a],n,s,e,t,r)&&(l=!0),l){o.add(a),c=!0;break}}if(!c)return!1}return!0}function p(e,t){return function(e,t,i){return"function"!=typeof i?p(e,t):k(e,t,function e(t,r,o,s,n,c){const a=i(t,r,o,s,n,c);return void 0!==a?Boolean(a):k(t,r,e,c)},new Map)}(e,t,()=>{})}function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const w="[object RegExp]",y="[object String]",_="[object Number]",v="[object Boolean]",j="[object Arguments]",x="[object Symbol]",V="[object Date]",T="[object Map]",E="[object Set]",C="[object Array]",A="[object ArrayBuffer]",P="[object Object]",S="[object DataView]",I="[object Uint8Array]",B="[object Uint8ClampedArray]",O="[object Uint16Array]",F="[object Uint32Array]",L="[object Int8Array]",M="[object Int16Array]",N="[object Int32Array]",D="[object Float32Array]",R="[object Float64Array]";function U(e,t,i,r=new Map,o=void 0){const s=o?.(e,t,i,r);if(null!=s)return s;if(f(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){const t=new Array(e.length);r.set(e,t);for(let s=0;s<e.length;s++)t[s]=U(e[s],s,i,r,o);return Object.hasOwn(e,"index")&&(t.index=e.index),Object.hasOwn(e,"input")&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){const t=new Map;r.set(e,t);for(const[s,n]of e)t.set(s,U(n,s,i,r,o));return t}if(e instanceof Set){const t=new Set;r.set(e,t);for(const s of e)t.add(U(s,void 0,i,r,o));return t}if("undefined"!=typeof Buffer&&Buffer.isBuffer(e))return e.subarray();if(n=e,ArrayBuffer.isView(n)&&!(n instanceof DataView)){const t=new(Object.getPrototypeOf(e).constructor)(e.length);r.set(e,t);for(let s=0;s<e.length;s++)t[s]=U(e[s],s,i,r,o);return t}var n;if(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),z(t,e,i,r,o),t}if("undefined"!=typeof File&&e instanceof File){const t=new File([e],e.name,{type:e.type});return r.set(e,t),z(t,e,i,r,o),t}if(e instanceof Blob){const t=new Blob([e],{type:e.type});return r.set(e,t),z(t,e,i,r,o),t}if(e instanceof Error){const t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,z(t,e,i,r,o),t}if("object"==typeof e&&function(e){switch(b(e)){case j:case C:case A:case S:case v:case V:case D:case R:case L:case M:case N:case T:case _:case P:case w:case E:case y:case x:case I:case B:case O:case F:return!0;default:return!1}}(e)){const t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),z(t,e,i,r,o),t}return e}function z(e,t,i=e,r,o){const s=[...Object.keys(t),...(n=t,Object.getOwnPropertySymbols(n).filter(e=>Object.prototype.propertyIsEnumerable.call(n,e)))];var n;for(let n=0;n<s.length;n++){const c=s[n],a=Object.getOwnPropertyDescriptor(e,c);(null==a||a.writable)&&(e[c]=U(t[c],c,i,r,o))}}function q(e){var t;return e=U(t=e,void 0,t,new Map,void 0),t=>p(t,e)}function H(e,t){return function(e,t){return U(e,void 0,e,new Map,t)}(e,(i,r,o,s)=>{const n=t?.(i,r,o,s);if(null!=n)return n;if("object"==typeof e)switch(Object.prototype.toString.call(e)){case _:case y:case v:{const t=new e.constructor(e?.valueOf());return z(t,e),t}case j:{const t={};return z(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}const W=/^(?:0|[1-9]\d*)$/;function K(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return W.test(e)}}function Q(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===b(e)}function $(e,t){switch(typeof e){case"object":Object.is(e?.valueOf(),-0)&&(e="-0");break;case"number":e=u(e)}return t=H(t),function(i){const r=h(i,e);return void 0===r?function(e,t){let i;if(i=Array.isArray(t)?t:"string"==typeof t&&l(t)&&null==e?.[t]?d(t):[t],0===i.length)return!1;let r=e;for(let e=0;e<i.length;e++){const t=i[e];if(!(null!=r&&Object.hasOwn(r,t)||(Array.isArray(r)||Q(r))&&K(t)&&t<r.length))return!1;r=r[t]}return!0}(i,e):void 0===t?void 0===r:p(r,t)}}function G(e){if(null==e)return n;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&2===e.length?$(e[0],e[1]):q(e);case"string":case"symbol":case"number":return t=e,function(e){return h(e,t)}}var t}function Z(e,t){if(null==e)return{};return function(e,t){const i={};for(let r=0;r<e.length;r++){const o=e[r],s=t(o);Object.hasOwn(i,s)||(i[s]=[]),i[s].push(o)}return i}(c(e)?Array.from(e):Object.values(e),G(t??n))}function J(e){const t=function(){try{return document.createElement("canvas").getContext("2d",{willReadFrequently:!0})}catch{return null}}();if(!t)return!1;const i=20,r=Math.floor(12.5);t.font=r+"px Arial, Sans-Serif",t.textBaseline="top",t.canvas.width=40,t.canvas.height=25,t.clearRect(0,0,40,25),t.fillStyle="#FF0000",t.fillText(e,0,22),t.fillStyle="#0000FF",t.fillText(e,i,22);const o=t.getImageData(0,0,i,25).data,s=o.length;let n=0;for(;n<s&&!o[n+3];n+=4);if(n>=s)return!1;const c=i+n/4%i,a=Math.floor(n/4/i),l=t.getImageData(c,a,1,1).data;return o[n]===l[0]&&o[n+2]===l[2]&&!(t.measureText(e).width>=i)}const X={0:"default",1:"light",2:"medium-light",3:"medium",4:"medium-dark",5:"dark"},Y={"π«©":16,"π«¨":15.1,"π« ":14,"πΆβπ«οΈ":13.1,"π§βπ»":12.1,"π₯°":11,"π€ͺ":5,"βοΈ":4,"π€£":3,"ππ½":2,"π":1,"π":.7,"π":.6};class ee extends e.Plugin{_emojiCanvas=null;static get pluginName(){return"EmojiUtils"}static get isOfficialPlugin(){return!0}init(){this._emojiCanvas=document.createElement("canvas").getContext("2d")}isEmojiSupported(e,t,i){return!!(e.version<=t)&&(!this.hasZwj(e.emoji)||this.isEmojiZwjSupported(e,i))}getEmojiSupportedVersionByOs(){for(const[e,t]of Object.entries(Y))if(ee._isEmojiSupported(e))return t;return 0}hasZwj(e){return e.includes("β")}isEmojiZwjSupported(e,t){if(this.getNodeWidthUsingCanvas(t,e.emoji)<43.2)return!0;return this.getNodeWidth(t,e.emoji)<43.2}getNodeWidth(e,t){const i=document.createElement("span");i.textContent=t,e.appendChild(i);const r=i.offsetWidth;return e.removeChild(i),r}getNodeWidthUsingCanvas(e,t){const i=getComputedStyle(e);return this._emojiCanvas.font=[i.fontStyle,i.fontVariant,i.fontWeight,"24px",`"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", ${i.fontFamily}`].join(" "),Math.ceil(this._emojiCanvas.measureText(t).width)}createEmojiWidthTestingContainer(){const e=document.createElement("div");return e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.left="-9999px",e.style.whiteSpace="nowrap",e.style.fontSize="24px",e}normalizeEmojiSkinTone(e){const t={...e,skins:{default:e.emoji}};return e.skins&&e.skins.forEach(e=>{const i=X[e.tone];t.skins[i]=e.emoji}),t}isEmojiCategoryAllowed(e){return 2!==e.group}static _isEmojiSupported=J}class te extends e.Plugin{_items;_url;_repositoryPromise;static get requires(){return[ee]}static get pluginName(){return"EmojiRepository"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("emoji",{version:void 0,skinTone:"default",definitionsUrl:void 0,useCustomFont:!1}),this._url=this._getUrl(),this._repositoryPromise=new Promise(e=>{this._repositoryPromiseResolveCallback=e}),this._items=null}async init(){return this._warnAboutCdnUse(),await this._loadAndCacheEmoji(),this._items=this._getItems(),this._items?this._repositoryPromiseResolveCallback(!0):((0,t.logWarning)("emoji-repository-empty"),this._repositoryPromiseResolveCallback(!1))}getEmojiByQuery(e){if(!this._items)return[];return e.split(/\s/).filter(Boolean).some(e=>e.length>=2)?s.go(e,this._items,{threshold:.6,keys:["emoticon","annotation",t=>e.split(/\s/).filter(Boolean).flatMap(e=>t.tags?.filter(t=>t.startsWith(e))).join()]}).map(e=>e.obj):[]}getEmojiCategories(){const e=this._getItems();if(!e)return[];const{t}=this.editor.locale,i=[{title:t("Smileys & Expressions"),icon:"π",groupId:0},{title:t("Gestures & People"),icon:"π",groupId:1},{title:t("Animals & Nature"),icon:"π»",groupId:3},{title:t("Food & Drinks"),icon:"π",groupId:4},{title:t("Travel & Places"),icon:"π",groupId:5},{title:t("Activities"),icon:"π",groupId:6},{title:t("Objects"),icon:"π‘",groupId:7},{title:t("Symbols"),icon:"π΅",groupId:8},{title:t("Flags"),icon:"π",groupId:9}],r=Z(e,e=>e.group);return i.map(e=>({...e,items:r[e.groupId]}))}getSkinTones(){const{t:e}=this.editor.locale;return[{id:"default",icon:"π",tooltip:e("Default skin tone")},{id:"light",icon:"ππ»",tooltip:e("Light skin tone")},{id:"medium-light",icon:"ππΌ",tooltip:e("Medium Light skin tone")},{id:"medium",icon:"ππ½",tooltip:e("Medium skin tone")},{id:"medium-dark",icon:"ππΎ",tooltip:e("Medium Dark skin tone")},{id:"dark",icon:"ππΏ",tooltip:e("Dark skin tone")}]}isReady(){return this._repositoryPromise}_getUrl(){const{definitionsUrl:e,version:i}=this.editor.config.get("emoji");if(!e||"cdn"===e){const e=new URL("https://cdn.ckeditor.com/ckeditor5/data/emoji/{version}/en.json".replace("{version}",(i||16).toString()));return e.searchParams.set("editorVersion",t.version),e}return i&&(0,t.logWarning)("emoji-repository-redundant-version"),new URL(e)}_warnAboutCdnUse(){const e=this.editor,i=e.config.get("emoji"),r=e.config.get("licenseKey"),o=window[Symbol.for("cke distribution")];"GPL"!==r&&"cloud"!==o&&(i&&i.definitionsUrl||(0,t.logWarning)("emoji-repository-cdn-use"))}_getItems(){const e=te._results[this._url.href];return e&&e.length?e:null}async _loadAndCacheEmoji(){if(te._results[this._url.href])return;const e=await fetch(this._url,{cache:"force-cache"}).then(e=>e.ok?e.json():[]).catch(()=>[]);te._results[this._url.href]=this._normalizeEmoji(e)}_normalizeEmoji(e){const t=this.editor,i=t.config.get("emoji.useCustomFont"),r=t.plugins.get("EmojiUtils"),o=e.filter(e=>r.isEmojiCategoryAllowed(e));if(i)return o.map(e=>r.normalizeEmojiSkinTone(e));const s=r.getEmojiSupportedVersionByOs(),n=r.createEmojiWidthTestingContainer();document.body.appendChild(n);const c=o.filter(e=>r.isEmojiSupported(e,s,n)).map(e=>r.normalizeEmojiSkinTone(e));return n.remove(),c}static _results={}}const ie=":",re=":__EMOJI_SHOW_ALL:",oe=":__EMOJI_HINT:";class se extends e.Plugin{_emojiDropdownLimit;_skinTone;static get requires(){return[te,o.Typing,"Mention"]}static get pluginName(){return"EmojiMention"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.editor.config.define("emoji",{dropdownLimit:6}),this._emojiDropdownLimit=e.config.get("emoji.dropdownLimit"),this._skinTone=e.config.get("emoji.skinTone"),this._setupMentionConfiguration(e)}_setupMentionConfiguration(e){const i=e.config.get("mergeFields.prefix"),r=e.config.get("mention.feeds"),o=!!i&&i[0]===ie;if(r.filter(e=>!e._isEmojiMarker).some(e=>e.marker===ie)||o)return void(0,t.logWarning)("emoji-config-marker-already-used",{marker:ie});if(r.some(e=>e._isEmojiMarker))return;const s={_isEmojiMarker:!0,marker:ie,dropdownLimit:this._emojiDropdownLimit,itemRenderer:this._customItemRendererFactory(this.editor.t),feed:this._queryEmojiCallbackFactory()};this.editor.config.set("mention.feeds",[...r,s])}async init(){const e=this.editor;this.emojiPickerPlugin=e.plugins.has("EmojiPicker")?e.plugins.get("EmojiPicker"):null,this.emojiRepositoryPlugin=e.plugins.get("EmojiRepository"),this._isEmojiRepositoryAvailable=await this.emojiRepositoryPlugin.isReady(),this._isEmojiRepositoryAvailable&&e.once("ready",this._overrideMentionExecuteListener.bind(this))}_customItemRendererFactory(e){return t=>{const i=document.createElement("button");i.classList.add("ck"),i.classList.add("ck-button"),i.classList.add("ck-button_with-text"),i.id=`mention-list-item-id${t.id.slice(0,-1)}`,i.type="button",i.tabIndex=-1;const r=document.createElement("span");return r.classList.add("ck"),r.classList.add("ck-button__label"),i.appendChild(r),t.id===oe?(i.classList.add("ck-list-item-button"),i.classList.add("ck-disabled"),r.textContent=e("Keep on typing to see the emoji.")):t.id===re?r.textContent=e("Show all emoji..."):r.textContent=`${t.text} ${t.id}`,i}}_overrideMentionExecuteListener(){const e=this.editor;e.commands.get("mention").on("execute",(t,i)=>{const r=i[0];if(r.marker===ie&&(t.stop(),r.mention.id!==oe))if(r.mention.id===re){const t=[...r.range.getItems()].filter(e=>e.is("$textProxy")).map(e=>e.data).reduce((e,t)=>e+t,"");e.model.change(t=>{e.model.deleteContent(t.createSelection(r.range))});const i=this.emojiPickerPlugin;i.showUI(t.slice(1)),setTimeout(()=>{i.emojiPickerView.focus()})}else e.execute("insertText",{text:r.mention.text,range:r.range})},{priority:"high"})}_queryEmojiCallbackFactory(){return e=>{if(e.startsWith(" "))return[];if(e.startsWith(ie))return[];if(!this._isEmojiRepositoryAvailable)return[];const t=this.emojiRepositoryPlugin.getEmojiByQuery(e).map(e=>{let t=e.skins[this._skinTone]||e.skins.default;return this.emojiPickerPlugin&&(t=e.skins[this.emojiPickerPlugin.skinTone]||e.skins.default),{id:`:${e.annotation}:`,text:t}});if(!this.emojiPickerPlugin)return t.slice(0,this._emojiDropdownLimit);const i={id:e.length>1?re:oe};return[...t.slice(0,this._emojiDropdownLimit-1),i]}}}var ne=i(311),ce=i(355);class ae extends e.Command{refresh(){const e=this.editor.model,t=e.schema,i=e.document.selection;this.isEnabled=t.checkChild(i.getFirstPosition(),"$text")}execute(e=""){this.editor.plugins.get("EmojiPicker").showUI(e)}}var le=i(520),ue=i.n(le),de=i(692),he=i.n(de),fe=i(507),me=i.n(fe),ke=i(212),ge=i.n(ke),pe=i(964),be=i.n(pe),we=i(313),ye={attributes:{"data-cke":!0}};ye.setAttributes=ge(),ye.insert=me().bind(null,"head"),ye.domAPI=he(),ye.insertStyleElement=be();ue()(we.A,ye);we.A&&we.A.locals&&we.A.locals;class _e extends ne.View{tiles;focusTracker;keystrokes;emojiCategories;cachedTiles;_getEmojiByQuery;constructor(e,{categoryName:i,emojiCategories:r,getEmojiByQuery:o,skinTone:s}){super(e),this.set("isEmpty",!0),this.set("categoryName",i),this.set("skinTone",s),this.tiles=this.createCollection(),this.cachedTiles=this.createCollection(),this.focusTracker=new t.FocusTracker,this.keystrokes=new t.KeystrokeHandler,this._getEmojiByQuery=o,this.emojiCategories=r;const n=this.bindTemplate;this.setTemplate({tag:"div",children:[{tag:"div",attributes:{role:"grid",class:["ck","ck-emoji__grid"]},children:this.tiles}],attributes:{role:"tabpanel",class:["ck","ck-emoji__tiles",n.if("isEmpty","ck-hidden",e=>e)]}}),(0,ne.addKeyboardHandlingForGrid)({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.tiles,numberOfColumns:()=>t.global.window.getComputedStyle(this.element.firstChild).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy(),this.focusTracker.destroy()}focus(){const e=this.tiles.first;e&&e.focus()}filter(e){const{matchingItems:t,allItems:i}=e?this._getItemsByQuery(e.source):this._getItemsByCategory();return this._updateGrid(t),this.set("isEmpty",0===t.length),{resultsCount:t.length,totalItemsCount:i.length}}_getItemsByQuery(e){return{matchingItems:this._getEmojiByQuery(e),allItems:this.emojiCategories.flatMap(e=>e.items)}}_getItemsByCategory(){const e=this.emojiCategories.find(e=>e.title===this.categoryName),{items:t}=e;return{matchingItems:t,allItems:t}}_updateGrid(e){[...this.tiles].forEach(e=>{this.focusTracker.remove(e),this.tiles.remove(e)}),e.map(e=>{const t=e.skins[this.skinTone]||e.skins.default;return this.cachedTiles.get(t)||this._createTile(t,e.annotation)}).forEach(e=>{this.tiles.add(e),this.focusTracker.add(e)})}_createTile(e,t){const i=new ne.ButtonView(this.locale);return i.viewUid=e,i.extendTemplate({attributes:{class:["ck-emoji__tile"]}}),i.set({label:e,tooltip:t,withText:!0,ariaLabel:t,ariaLabelledBy:void 0}),i.on("execute",()=>{this.fire("execute",{name:t,emoji:e})}),this.cachedTiles.add(i),i}}var ve=i(977),je={attributes:{"data-cke":!0}};je.setAttributes=ge(),je.insert=me().bind(null,"head"),je.domAPI=he(),je.insertStyleElement=be();ue()(ve.A,je);ve.A&&ve.A.locals&&ve.A.locals;class xe extends ne.View{focusTracker;keystrokes;focusCycler;buttonViews;constructor(e,{emojiCategories:i,categoryName:r}){super(e),this.buttonViews=this.createCollection(i.map(e=>this._createCategoryButton(e))),this.focusTracker=new t.FocusTracker,this.keystrokes=new t.KeystrokeHandler,this.focusCycler=new ne.FocusCycler({focusables:this.buttonViews,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowleft",focusNext:"arrowright"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-emoji__categories-list"],role:"tablist"},children:this.buttonViews}),this.on("change:categoryName",(e,t,i,r)=>{const o=this.buttonViews.find(e=>e.tooltip===r);o&&(o.isOn=!1);this.buttonViews.find(e=>e.tooltip===i).isOn=!0}),this.set("categoryName",r)}render(){super.render(),this.buttonViews.forEach(e=>{this.focusTracker.add(e)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),this.buttonViews.destroy()}focus(){this.buttonViews.first.focus()}enableCategories(){this.buttonViews.forEach(e=>{e.isEnabled=!0})}disableCategories(){this.buttonViews.forEach(e=>{e.set({class:"",isEnabled:!1,isOn:!1})})}_createCategoryButton(e){const t=new ne.ButtonView,i=t.bindTemplate;return t.extendTemplate({attributes:{"aria-selected":i.to("isOn",e=>e.toString()),class:["ck-emoji__category-item"]}}),t.set({ariaLabel:e.title,label:e.icon,role:"tab",tooltip:e.title,withText:!0,ariaLabelledBy:void 0}),t.on("execute",()=>{this.categoryName=e.title}),t.on("change:isEnabled",()=>{t.isEnabled&&t.tooltip===this.categoryName&&(t.isOn=!0)}),t}}function Ve(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(Ve).join(",");const t=String(e);return"0"===t&&Object.is(Number(e),-0)?"-0":t}class Te extends ne.View{inputView;gridView;constructor(e,{gridView:t,resultsView:i}){super(e),this.gridView=t;const r=e.t;this.inputView=new ne.SearchTextView(this.locale,{queryView:{label:r("Find an emoji (min. 2 characters)"),creator:ne.createLabeledInputText},filteredView:this.gridView,infoView:{instance:i}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-search"],tabindex:"-1"},children:[this.inputView.queryView]}),this.inputView.delegate("search").to(this)}destroy(){super.destroy(),this.inputView.destroy()}search(e){const t=e?new RegExp(function(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}(Ve(e)),"ig"):null;const i=this.gridView.filter(t);this.inputView.fire("search",{query:e,...i})}setInputValue(e){e?this.inputView.queryView.fieldView.value=e:this.inputView.queryView.fieldView.reset()}getInputValue(){return this.inputView.queryView.fieldView.element.value}focus(){this.inputView.focus()}}var Ee=i(505),Ce={attributes:{"data-cke":!0}};Ce.setAttributes=ge(),Ce.insert=me().bind(null,"head"),Ce.domAPI=he(),Ce.insertStyleElement=be();ue()(Ee.A,Ce);Ee.A&&Ee.A.locals&&Ee.A.locals;class Ae extends ne.View{dropdownView;_skinTones;constructor(e,{skinTone:i,skinTones:r}){super(e),this.set("skinTone",i),this._skinTones=r;const o=(0,e.t)("Select skin tone"),s=(0,ne.createDropdown)(e),n=new t.Collection;for(const{id:e,icon:t,tooltip:i}of this._skinTones){const r={type:"button",model:new ne.UIModel({value:e,label:t,ariaLabel:i,tooltip:i,tooltipPosition:"e",role:"menuitemradio",withText:!0,ariaLabelledBy:void 0})};r.model.bind("isOn").to(this,"skinTone",t=>t===e),n.add(r)}(0,ne.addListToDropdown)(s,n,{ariaLabel:o,role:"menu"}),s.buttonView.set({label:this._getSkinTone().icon,ariaLabel:o,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:o}),this.dropdownView=s,this.listenTo(s,"execute",e=>{this.skinTone=e.source.value}),s.buttonView.bind("label").to(this,"skinTone",()=>this._getSkinTone().icon),s.buttonView.bind("ariaLabel").to(this,"skinTone",()=>`${this._getSkinTone().tooltip}, ${o}`),this.setTemplate({tag:"div",attributes:{class:["ck","ck-emoji__skin-tone"]},children:[s]})}focus(){this.dropdownView.buttonView.focus()}_getSkinTone(){return this._skinTones.find(e=>e.id===this.skinTone)}}class Pe extends ne.View{items;focusTracker;keystrokes;focusCycler;searchView;toneView;categoriesView;gridView;infoView;constructor(e,{emojiCategories:i,getEmojiByQuery:r,skinTone:o,skinTones:s}){super(e);const n=i[0].title;this.gridView=new _e(e,{categoryName:n,emojiCategories:i,getEmojiByQuery:r,skinTone:o}),this.infoView=new ne.SearchInfoView,this.searchView=new Te(e,{gridView:this.gridView,resultsView:this.infoView}),this.categoriesView=new xe(e,{emojiCategories:i,categoryName:n}),this.toneView=new Ae(e,{skinTone:o,skinTones:s}),this.items=this.createCollection([this.searchView,this.toneView,this.categoriesView,this.gridView,this.infoView]),this.focusTracker=new t.FocusTracker,this.keystrokes=new t.KeystrokeHandler,this.focusCycler=new ne.FocusCycler({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",children:[{tag:"div",children:[this.searchView,this.toneView],attributes:{class:["ck","ck-emoji__search"]}},this.categoriesView,this.gridView,{tag:"div",children:[this.infoView],attributes:{class:["ck","ck-search__results"]}}],attributes:{tabindex:"-1",class:["ck","ck-emoji","ck-search"]}}),this._setupEventListeners()}render(){super.render(),this.focusTracker.add(this.searchView.element),this.focusTracker.add(this.toneView.element),this.focusTracker.add(this.categoriesView.element),this.focusTracker.add(this.gridView.element),this.focusTracker.add(this.infoView.element),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.searchView.focus()}_setupEventListeners(){const e=this.locale.t;this.searchView.on("search",(e,t)=>{t.query?this.categoriesView.disableCategories():this.categoriesView.enableCategories()}),this.searchView.on("search",(t,i)=>{1===i.query.length?this.infoView.set({primaryText:e("Keep on typing to see the emoji."),secondaryText:e("The query must contain at least two characters."),isVisible:!0}):i.resultsCount?this.infoView.set({isVisible:!1}):this.infoView.set({primaryText:e('No emojis were found matching "%0".',i.query),secondaryText:e("Please try a different phrase or check the spelling."),isVisible:!0})}),this.searchView.on("search",()=>{this.fire("update"),this.gridView.element.scrollTo(0,0)}),this.categoriesView.on("change:categoryName",(e,t,i)=>{this.gridView.categoryName=i,this.searchView.search("")}),this.toneView.on("change:skinTone",(e,t,i)=>{this.gridView.skinTone=i,this.searchView.search(this.searchView.getInputValue())})}}var Se=i(496),Ie={attributes:{"data-cke":!0}};Ie.setAttributes=ge(),Ie.insert=me().bind(null,"head"),Ie.domAPI=he(),Ie.insertStyleElement=be();ue()(Se.A,Ie);Se.A&&Se.A.locals&&Se.A.locals;var Be=i(473),Oe={attributes:{"data-cke":!0}};Oe.setAttributes=ge(),Oe.insert=me().bind(null,"head"),Oe.domAPI=he(),Oe.insertStyleElement=be();ue()(Be.A,Oe);Be.A&&Be.A.locals&&Be.A.locals;var Fe=i(173),Le={attributes:{"data-cke":!0}};Le.setAttributes=ge(),Le.insert=me().bind(null,"head"),Le.domAPI=he(),Le.insertStyleElement=be();ue()(Fe.A,Le);Fe.A&&Fe.A.locals&&Fe.A.locals;class Me extends ne.View{backButtonView;focusTracker=new t.FocusTracker;keystrokes=new t.KeystrokeHandler;children;_focusables=new ne.ViewCollection;_focusCycler;constructor(e){super(e),this.backButtonView=this._createBackButton(),this.children=this.createCollection([this._createHeaderView()]),this._focusCycler=new ne.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form","ck-emoji-picker-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render();[...this.children.filter(ne.isFocusable),this.backButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element),(0,ne.isViewWithFocusCycler)(e)&&this._focusCycler.chain(e.focusCycler)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBackButton(){const e=this.locale.t,t=new ne.ButtonView(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ce.IconPreviousArrow,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createHeaderView(){const e=this.locale.t,t=new ne.FormHeaderView(this.locale,{label:e("Emoji picker")});return t.children.add(this.backButtonView,0),t}}var Ne=i(603),De={attributes:{"data-cke":!0}};De.setAttributes=ge(),De.insert=me().bind(null,"head"),De.domAPI=he(),De.insertStyleElement=be();ue()(Ne.A,De);Ne.A&&Ne.A.locals&&Ne.A.locals;const Re="emoji-picker";class Ue extends e.Plugin{static get requires(){return[te,ne.ContextualBalloon,ne.Dialog,o.Typing]}static get pluginName(){return"EmojiPicker"}static get isOfficialPlugin(){return!0}async init(){const e=this.editor;if(this.balloonPlugin=e.plugins.get("ContextualBalloon"),this.emojiRepositoryPlugin=e.plugins.get("EmojiRepository"),!await this.emojiRepositoryPlugin.isReady())return;const t=new ae(e);e.commands.add("emoji",t),e.ui.componentFactory.add("emoji",()=>{const e=this._createButton(ne.ButtonView,t);return e.set({tooltip:!0}),e}),e.ui.componentFactory.add("menuBar:emoji",()=>this._createButton(ne.MenuBarMenuListItemButtonView,t)),this._setupConversion()}destroy(){super.destroy(),this.emojiPickerView&&this.emojiPickerView.destroy()}get skinTone(){return this.emojiPickerView?this.emojiPickerView.gridView.skinTone:this.editor.config.get("emoji.skinTone")}showUI(e=""){this._showFakeVisualSelection(),this.emojiPickerView||(this.emojiPickerView=this._createEmojiPickerView()),e&&this.emojiPickerView.searchView.setInputValue(e),this.emojiPickerView.searchView.search(e),this.emojiPickerFormView||(this.emojiPickerFormView=this._createEmojiPickerFormView()),this.balloonPlugin.hasView(this.emojiPickerFormView)||(this.emojiPickerFormView.backButtonView.isVisible=!!this.balloonPlugin.visibleView,this.balloonPlugin.add({view:this.emojiPickerFormView,position:this._getBalloonPositionData(),balloonClassName:"ck-emoji-picker-balloon"})),this.emojiPickerView.focus()}_createButton(e,t){const i=new e(this.editor.locale),r=this.editor.locale.t;return i.bind("isEnabled").to(t,"isEnabled"),i.set({label:r("Emoji"),icon:ce.IconEmoji,isToggleable:!0}),i.on("execute",()=>{this.editor.editing.view.scrollToTheSelection(),this.showUI()}),i}_createEmojiPickerView(){const e=new Pe(this.editor.locale,{emojiCategories:this.emojiRepositoryPlugin.getEmojiCategories(),skinTone:this.editor.config.get("emoji.skinTone"),skinTones:this.emojiRepositoryPlugin.getSkinTones(),getEmojiByQuery:e=>this.emojiRepositoryPlugin.getEmojiByQuery(e)});return this.listenTo(e.gridView,"execute",(e,t)=>{const i=this.editor,r=t.emoji;this._hideUI(),i.execute("insertText",{text:r})}),e}_createEmojiPickerFormView(){const e=new Me(this.editor.locale);return e.children.add(this.emojiPickerView),this.listenTo(this.emojiPickerView,"update",()=>{this.balloonPlugin.visibleView===e&&this.balloonPlugin.updatePosition()}),this.listenTo(e,"cancel",()=>{this._hideUI()}),e.keystrokes.set("Esc",(e,t)=>{this._hideUI(),t()}),(0,ne.clickOutsideHandler)({emitter:e,contextElements:[this.balloonPlugin.view.element],callback:()=>{this._hideUI(!1)},activator:()=>this.balloonPlugin.visibleView===e}),e}_hideUI(e=!0){this.balloonPlugin.remove(this.emojiPickerFormView),this.emojiPickerView.searchView.setInputValue(""),e&&this.editor.editing.view.focus(),this._hideFakeVisualSelection()}_setupConversion(){const e=this.editor;e.conversion.for("editingDowncast").markerToHighlight({model:Re,view:{classes:["ck-fake-emoji-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:Re,view:(e,{writer:t})=>{if(!e.markerRange.isCollapsed)return null;const i=t.createUIElement("span");return t.addClass(["ck-fake-emoji-selection","ck-fake-emoji-selection_collapsed"],i),i}})}_getBalloonPositionData(){const e=this.editor.editing.view,t=e.document;return{target:()=>e.domConverter.viewRangeToDom(t.selection.getFirstRange())}}_showFakeVisualSelection(){const e=this.editor.model;e.change(t=>{const i=e.document.selection.getFirstRange();if(e.markers.has(Re))t.updateMarker(Re,{range:i});else if(i.start.isAtEnd){const r=i.start.getLastMatchingPosition(({item:t})=>!e.schema.isContent(t),{boundaries:i});t.addMarker(Re,{usingOperation:!1,affectsData:!1,range:t.createRange(r,i.end)})}else t.addMarker(Re,{usingOperation:!1,affectsData:!1,range:i})})}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(Re)&&e.change(e=>{e.removeMarker(Re)})}}class ze extends e.Plugin{static get requires(){return[se,Ue]}static get pluginName(){return"Emoji"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).emoji=r})();
|
|
5
|
+
*/(()=>{var e={15:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,":root{--ck-emoji-grid-tile-size:27px}.ck.ck-emoji .ck.ck-emoji__tiles{border-top:1px solid var(--ck-color-base-border);max-height:min(265px,40vh);max-width:100%;overflow-x:hidden;overflow-y:auto}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--ck-emoji-grid-tile-size),1fr));margin:var(--ck-spacing-standard) var(--ck-spacing-large);grid-gap:var(--ck-spacing-small)}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{border:0;font-size:1.5em;height:var(--ck-emoji-grid-tile-size);min-height:var(--ck-emoji-grid-tile-size);min-width:var(--ck-emoji-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-emoji-grid-tile-size)}@media (prefers-reduced-motion:reduce){.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile{transition:none}}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label{line-height:var(--ck-emoji-grid-tile-size);text-align:center;width:100%}",""]);const c=n},70:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',""]);const c=n},131:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,":root{--ck-form-default-width:340px}.ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form.ck-form_default-width{width:var(--ck-form-default-width)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-number,.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}@media screen and (max-width:600px){.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit{align-items:stretch;flex-direction:column;padding:0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit>.ck{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text{justify-content:center}.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding{padding-bottom:var(--ck-spacing-large)}}[dir=ltr] .ck.ck-form.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-form.ck-responsive-form>:not(:last-child){margin-left:0}",""]);const c=n},212:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach(function(i){e.setAttribute(i,t[i])})}},237:e=>{"use strict";e.exports=CKEditor5.dll},272:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i="",r=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),r&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),r&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i}).join("")},t.i=function(e,i,r,o,s){"string"==typeof e&&(e=[[null,e,void 0]]);var n={};if(r)for(var c=0;c<this.length;c++){var a=this[c][0];null!=a&&(n[a]=!0)}for(var l=0;l<e.length;l++){var u=[].concat(e[l]);r&&n[u[0]]||(void 0!==s&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=s),i&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=i):u[2]=i),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},467:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-emoji__categories-list{display:flex;justify-content:space-between;margin:0 var(--ck-spacing-large)}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text{border-width:0;border-bottom:2px solid transparent;font-size:var(--ck-font-size-big);min-height:var(--ck-font-size-big);min-width:var(--ck-font-size-big);padding:0}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on{border-bottom-color:var(--ck-color-base-active)}.ck.ck-emoji__categories-list>.ck.ck-button.ck-button_with-text>span{margin:auto}",""]);const c=n},482:function(e,t){var i,r,o;r=[],void 0===(o="function"==typeof(i=e=>{"use strict";var t=e=>{"number"==typeof e?e=""+e:"string"!=typeof e&&(e="");var t=m(e);return o(e,{_targetLower:t._lower,_targetLowerCodes:t.lowerCodes,_bitflags:t.bitflags})};class i{get indexes(){return this._indexes.slice(0,this._indexes.len).sort((e,t)=>e-t)}set indexes(e){return this._indexes=e}highlight(e,t){return((e,t="<b>",i="</b>")=>{for(var r="function"==typeof t?t:void 0,o=e.target,s=o.length,n=e.indexes,c="",a=0,l=0,u=!1,d=[],h=0;h<s;++h){var f=o[h];if(n[l]===h){if(++l,u||(u=!0,r?(d.push(c),c=""):c+=t),l===n.length){r?(c+=f,d.push(r(c,a++)),c="",d.push(o.substr(h+1))):c+=f+i+o.substr(h+1);break}}else u&&(u=!1,r?(d.push(r(c,a++)),c=""):c+=i);c+=f}return r?d:c})(this,e,t)}get score(){return s(this._score)}set score(e){this._score=n(e)}}class r extends Array{get score(){return s(this._score)}set score(e){this._score=n(e)}}var o=(e,t)=>{const r=new i;return r.target=e,r.obj=t.obj??O,r._score=t._score??C,r._indexes=t._indexes??[],r._targetLower=t._targetLower??"",r._targetLowerCodes=t._targetLowerCodes??O,r._nextBeginningIndexes=t._nextBeginningIndexes??O,r._bitflags=t._bitflags??0,r},s=e=>e===C?0:e>1?e:Math.E**(-2*((1-e)**.04307-1)),n=e=>0===e?C:e>1?e:1-Math.pow(Math.log(e)/-2+1,1/.04307),c=e=>{"number"==typeof e?e=""+e:"string"!=typeof e&&(e=""),e=e.trim();var t=m(e),i=[];if(t.containsSpace){var r=e.split(/\s+/);r=[...new Set(r)];for(var o=0;o<r.length;o++)if(""!==r[o]){var s=m(r[o]);i.push({lowerCodes:s.lowerCodes,_lower:r[o].toLowerCase(),containsSpace:!1})}}return{lowerCodes:t.lowerCodes,_lower:t._lower,containsSpace:t.containsSpace,bitflags:t.bitflags,spaceSearches:i}},a=e=>{if(e.length>999)return t(e);var i=g.get(e);return void 0!==i||(i=t(e),g.set(e,i)),i},l=e=>{if(e.length>999)return c(e);var t=p.get(e);return void 0!==t||(t=c(e),p.set(e,t)),t},u=(e,t)=>{var i=[];i.total=e.length;var s=t?.limit||E;if(t?.key)for(var n=0;n<e.length;n++){var c=e[n];if((h=V(c,t.key))!=O){T(h)||(h=a(h));var l=o(h.target,{_score:h._score,obj:c});if(i.push(l),i.length>=s)return i}}else if(t?.keys)for(n=0;n<e.length;n++){c=e[n];for(var u=new r(t.keys.length),d=t.keys.length-1;d>=0;--d)(h=V(c,t.keys[d]))?(T(h)||(h=a(h)),h._score=C,h._indexes.len=0,u[d]=h):u[d]=F;if(u.obj=c,u._score=C,i.push(u),i.length>=s)return i}else for(n=0;n<e.length;n++){var h;if((h=e[n])!=O&&(T(h)||(h=a(h)),h._score=C,h._indexes.len=0,i.push(h),i.length>=s))return i}return i},d=(e,t,r=!1,o=!1)=>{if(!1===r&&e.containsSpace)return h(e,t,o);for(var s=e._lower,n=e.lowerCodes,c=n[0],a=t._targetLowerCodes,l=n.length,u=a.length,d=0,f=0,m=0;;){if(c===a[f]){if(b[m++]=f,++d===l)break;c=n[d]}if(++f>=u)return O}d=0;var g=!1,p=0,y=t._nextBeginningIndexes;y===O&&(y=t._nextBeginningIndexes=k(t.target));var _=0;if((f=0===b[0]?0:y[b[0]-1])!==u)for(;;)if(f>=u){if(d<=0)break;if(++_>200)break;--d;var v=w[--p];f=y[v]}else if(n[d]===a[f]){if(w[p++]=f,++d===l){g=!0;break}++f}else f=y[f];var j=l<=1?-1:t._targetLower.indexOf(s,b[0]),x=!!~j,V=!!x&&(0===j||t._nextBeginningIndexes[j-1]===j);if(x&&!V)for(var T=0;T<y.length;T=y[T])if(!(T<=j)){for(var E=0;E<l&&n[E]===t._targetLowerCodes[T+E];E++);if(E===l){j=T,V=!0;break}}var C=e=>{for(var t=0,i=0,r=1;r<l;++r)e[r]-e[r-1]!==1&&(t-=e[r],++i);if(t-=(e[l-1]-e[0]-(l-1)+12)*i,0!==e[0]&&(t-=e[0]*e[0]*.2),g){var o=1;for(r=y[0];r<u;r=y[r])++o;o>24&&(t*=10*(o-24))}else t*=1e3;return t-=(u-l)/2,x&&(t/=1+l*l*1),V&&(t/=1+l*l*1),t-=(u-l)/2};if(g)if(V){for(T=0;T<l;++T)b[T]=j+T;A=b,P=C(b)}else A=w,P=C(w);else{if(x)for(var T=0;T<l;++T)b[T]=j+T;var A,P=C(A=b)}for(t._score=P,T=0;T<l;++T)t._indexes[T]=A[T];t._indexes.len=l;const S=new i;return S.target=t.target,S._score=t._score,S._indexes=t._indexes,S},h=(e,t,i)=>{for(var r=new Set,o=0,s=O,n=0,c=e.spaceSearches,a=c.length,l=0,u=()=>{for(let e=l-1;e>=0;e--)t._nextBeginningIndexes[y[2*e+0]]=y[2*e+1]},h=!1,f=0;f<a;++f){v[f]=C;var m=c[f];if(s=d(m,t),i){if(s===O)continue;h=!0}else if(s===O)return u(),O;if(f!==a-1){var k=s._indexes,g=!0;for(let e=0;e<k.len-1;e++)if(k[e+1]-k[e]!==1){g=!1;break}if(g){var p=k[k.len-1]+1,b=t._nextBeginningIndexes[p-1];for(let e=p-1;e>=0&&b===t._nextBeginningIndexes[e];e--)t._nextBeginningIndexes[e]=p,y[2*l+0]=e,y[2*l+1]=b,l++}}o+=s._score/a,v[f]=s._score/a,s._indexes[0]<n&&(o-=2*(n-s._indexes[0])),n=s._indexes[0];for(var w=0;w<s._indexes.len;++w)r.add(s._indexes[w])}if(i&&!h)return O;u();var _=d(e,t,!0);if(_!==O&&_._score>o){if(i)for(f=0;f<a;++f)v[f]=_._score/a;return _}i&&(s=t),s._score=o,f=0;for(let e of r)s._indexes[f++]=e;return s._indexes.len=f,s},f=e=>e.replace(/\p{Script=Latin}+/gu,e=>e.normalize("NFD")).replace(/[\u0300-\u036f]/g,""),m=e=>{for(var t=(e=f(e)).length,i=e.toLowerCase(),r=[],o=0,s=!1,n=0;n<t;++n){var c=r[n]=i.charCodeAt(n);32!==c?o|=1<<(c>=97&&c<=122?c-97:c>=48&&c<=57?26:c<=127?30:31):s=!0}return{lowerCodes:r,bitflags:o,containsSpace:s,_lower:i}},k=e=>{for(var t=(e=f(e)).length,i=(e=>{for(var t=e.length,i=[],r=0,o=!1,s=!1,n=0;n<t;++n){var c=e.charCodeAt(n),a=c>=65&&c<=90,l=a||c>=97&&c<=122||c>=48&&c<=57,u=a&&!o||!s||!l;o=a,s=l,u&&(i[r++]=n)}return i})(e),r=[],o=i[0],s=0,n=0;n<t;++n)o>n?r[n]=o:(o=i[++s],r[n]=void 0===o?t:o);return r},g=new Map,p=new Map,b=[],w=[],y=[],_=[],v=[],j=[],x=[],V=(e,t)=>{var i=e[t];if(void 0!==i)return i;if("function"==typeof t)return t(e);var r=t;Array.isArray(t)||(r=t.split("."));for(var o=r.length,s=-1;e&&++s<o;)e=e[r[s]];return e},T=e=>"object"==typeof e&&"number"==typeof e._bitflags,E=1/0,C=-E,A=[];A.total=0;var P,S,I,B,O=null,F=t(""),L=(P=[],S=0,B=e=>{for(var t=0,i=P[t],r=1;r<S;){var o=r+1;t=r,o<S&&P[o]._score<P[r]._score&&(t=o),P[t-1>>1]=P[t],r=1+(t<<1)}for(var s=t-1>>1;t>0&&i._score<P[s]._score;s=(t=s)-1>>1)P[t]=P[s];P[t]=i},(I={}).add=e=>{var t=S;P[S++]=e;for(var i=t-1>>1;t>0&&e._score<P[i]._score;i=(t=i)-1>>1)P[t]=P[i];P[t]=e},I.poll=e=>{if(0!==S){var t=P[0];return P[0]=P[--S],B(),t}},I.peek=e=>{if(0!==S)return P[0]},I.replaceTop=e=>{P[0]=e,B()},I);return{single:(e,t)=>{if(!e||!t)return O;var i=l(e);T(t)||(t=a(t));var r=i.bitflags;return(r&t._bitflags)!==r?O:d(i,t)},go:(e,t,i)=>{if(!e)return i?.all?u(t,i):A;var o=l(e),s=o.bitflags,c=o.containsSpace,h=n(i?.threshold||0),f=i?.limit||E,m=0,k=0,g=t.length;function p(e){m<f?(L.add(e),++m):(++k,e._score>L.peek()._score&&L.replaceTop(e))}if(i?.key)for(var b=i.key,w=0;w<g;++w){var y=t[w];(U=V(y,b))&&(T(U)||(U=a(U)),(s&U._bitflags)===s&&(z=d(o,U))!==O&&(z._score<h||(z.obj=y,p(z))))}else if(i?.keys){var P=i.keys,S=P.length;e:for(w=0;w<g;++w){y=t[w];for(var I=0,B=0;B<S;++B)b=P[B],(U=V(y,b))?(T(U)||(U=a(U)),j[B]=U,I|=U._bitflags):j[B]=F;if((s&I)===s){if(c)for(let e=0;e<o.spaceSearches.length;e++)_[e]=C;for(B=0;B<S;++B)if((U=j[B])!==F)if(x[B]=d(o,U,!1,c),x[B]!==O){if(c)for(let e=0;e<o.spaceSearches.length;e++)v[e]>-1e3&&_[e]>C&&(R=(_[e]+v[e])/4)>_[e]&&(_[e]=R),v[e]>_[e]&&(_[e]=v[e])}else x[B]=F;else x[B]=F;if(c){for(let e=0;e<o.spaceSearches.length;e++)if(_[e]===C)continue e}else{var M=!1;for(let e=0;e<S;e++)if(x[e]._score!==C){M=!0;break}if(!M)continue}var N=new r(S);for(let e=0;e<S;e++)N[e]=x[e];if(c){var D=0;for(let e=0;e<o.spaceSearches.length;e++)D+=_[e]}else{D=C;for(let e=0;e<S;e++){var R;(z=N[e])._score>-1e3&&D>C&&(R=(D+z._score)/4)>D&&(D=R),z._score>D&&(D=z._score)}}if(N.obj=y,N._score=D,i?.scoreFn){if(!(D=i.scoreFn(N)))continue;D=n(D),N._score=D}D<h||p(N)}}}else for(w=0;w<g;++w){var U,z;(U=t[w])&&(T(U)||(U=a(U)),(s&U._bitflags)===s&&(z=d(o,U))!==O&&(z._score<h||p(z)))}if(0===m)return A;var q=new Array(m);for(w=m-1;w>=0;--w)q[w]=L.poll();return q.total=m+k,q},prepare:t,cleanup:()=>{g.clear(),p.clear()}}})?i.apply(t,r):i)||(e.exports=o)},507:e=>{"use strict";var t={};e.exports=function(e,i){var r=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(i)}},520:e=>{"use strict";var t=[];function i(e){for(var i=-1,r=0;r<t.length;r++)if(t[r].identifier===e){i=r;break}return i}function r(e,r){for(var s={},n=[],c=0;c<e.length;c++){var a=e[c],l=r.base?a[0]+r.base:a[0],u=s[l]||0,d="".concat(l," ").concat(u);s[l]=u+1;var h=i(d),f={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==h)t[h].references++,t[h].updater(f);else{var m=o(f,r);r.byIndex=c,t.splice(c,0,{identifier:d,updater:m,references:1})}n.push(d)}return n}function o(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,o){var s=r(e=e||[],o=o||{});return function(e){e=e||[];for(var n=0;n<s.length;n++){var c=i(s[n]);t[c].references--}for(var a=r(e,o),l=0;l<s.length;l++){var u=i(s[l]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}s=a}}},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},683:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-form.ck-emoji-picker-form{padding-bottom:0}.ck.ck-form.ck-emoji-picker-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border-color:transparent}",""]);const c=n},692:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function r(e,t,r,o){var s;if(r)s="";else{s="",o.supports&&(s+="@supports (".concat(o.supports,") {")),o.media&&(s+="@media ".concat(o.media," {"));var n=void 0!==o.layer;n&&(s+="@layer".concat(o.layer.length>0?" ".concat(o.layer):""," {")),s+=o.css,n&&(s+="}"),o.media&&(s+="}"),o.supports&&(s+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,s);else{var c=document.createTextNode(s),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(c,a[t]):e.appendChild(c)}}var o={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=o.singletonCounter++,i=o.singleton||(o.singleton=e.insertStyleElement(e));return{update:function(e){r(i,t,!1,e)},remove:function(e){r(i,t,!0,e)}}}},695:e=>{"use strict";e.exports=function(e){return e[1]}},781:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-emoji{width:320px}.ck .ck.ck-emoji__search{align-items:center;display:flex;justify-content:space-between;padding:var(--ck-spacing-large);padding-bottom:var(--ck-spacing-medium)}.ck .ck.ck-emoji__search>.ck.ck-search{flex:1}.ck .ck-fake-emoji-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-emoji-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}div.ck.ck-balloon-panel.ck-emoji-picker-balloon{z-index:calc(var( --ck-z-dialog ) + 1)}",""]);const c=n},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},807:(e,t,i)=>{"use strict";i.d(t,{A:()=>c});var r=i(695),o=i.n(r),s=i(272),n=i.n(s)()(o());n.push([e.id,".ck.ck-emoji__skin-tone{margin-left:var(--ck-spacing-standard)}.ck.ck-emoji__skin-tone>.ck.ck-dropdown .ck.ck-list__item{min-width:1em}.ck.ck-emoji__skin-tone>.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{width:auto}",""]);const c=n},834:(e,t,i)=>{e.exports=i(237)("./src/typing.js")},964:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}}},t={};function i(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={id:r,exports:{}};return e[r].call(s.exports,s,s.exports,i),s.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";i.r(r),i.d(r,{Emoji:()=>ze,EmojiCategoriesView:()=>xe,EmojiCommand:()=>ae,EmojiGridView:()=>_e,EmojiMention:()=>se,EmojiPicker:()=>Ue,EmojiPickerFormView:()=>Me,EmojiPickerView:()=>Pe,EmojiRepository:()=>te,EmojiSearchView:()=>Te,EmojiToneView:()=>Ae,EmojiUtils:()=>ee,_isEmojiSupported:()=>J});var e=i(782),t=i(584),o=i(834),s=i(482);function n(e){return e}function c(e){return null!=e&&"function"!=typeof e&&function(e){return Number.isSafeInteger(e)&&e>=0}(e.length)}function a(e){return"__proto__"===e}function l(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}function u(e){return"string"==typeof e||"symbol"==typeof e?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function d(e){const t=[],i=e.length;if(0===i)return t;let r=0,o="",s="",n=!1;for(46===e.charCodeAt(0)&&(t.push(""),r++);r<i;){const c=e[r];s?"\\"===c&&r+1<i?(r++,o+=e[r]):c===s?s="":o+=c:n?'"'===c||"'"===c?s=c:"]"===c?(n=!1,t.push(o),o=""):o+=c:"["===c?(n=!0,o&&(t.push(o),o="")):"."===c?o&&(t.push(o),o=""):o+=c,r++}return o&&t.push(o),t}function h(e,t,i){if(null==e)return i;switch(typeof t){case"string":{if(a(t))return i;const r=e[t];return void 0===r?l(t)?h(e,d(t),i):i:r}case"number":case"symbol":{"number"==typeof t&&(t=u(t));const r=e[t];return void 0===r?i:r}default:{if(Array.isArray(t))return function(e,t,i){if(0===t.length)return i;let r=e;for(let e=0;e<t.length;e++){if(null==r)return i;if(a(t[e]))return i;r=r[t[e]]}if(void 0===r)return i;return r}(e,t,i);if(a(t=Object.is(t?.valueOf(),-0)?"-0":String(t)))return i;const r=e[t];return void 0===r?i:r}}}function f(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function m(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function k(e,t,i,r){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,i,r){if(null==t)return!0;if(Array.isArray(t))return g(e,t,i,r);if(t instanceof Map)return function(e,t,i,r){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[o,s]of t.entries()){if(!1===i(e.get(o),s,o,e,t,r))return!1}return!0}(e,t,i,r);if(t instanceof Set)return function(e,t,i,r){if(0===t.size)return!0;if(!(e instanceof Set))return!1;return g([...e],[...t],i,r)}(e,t,i,r);const o=Object.keys(t);if(null==e)return 0===o.length;if(0===o.length)return!0;if(r&&r.has(t))return r.get(t)===e;r&&r.set(t,e);try{for(let s=0;s<o.length;s++){const n=o[s];if(!f(e)&&!(n in e))return!1;if(void 0===t[n]&&void 0!==e[n])return!1;if(null===t[n]&&null!==e[n])return!1;if(!i(e[n],t[n],n,e,t,r))return!1}return!0}finally{r&&r.delete(t)}}(e,t,i,r);case"function":return Object.keys(t).length>0?k(e,{...t},i,r):m(e,t);default:return null===(o=e)||"object"!=typeof o&&"function"!=typeof o?m(e,t):"string"!=typeof t||""===t}var o}function g(e,t,i,r){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const o=new Set;for(let s=0;s<t.length;s++){const n=t[s];let c=!1;for(let a=0;a<e.length;a++){if(o.has(a))continue;let l=!1;if(i(e[a],n,s,e,t,r)&&(l=!0),l){o.add(a),c=!0;break}}if(!c)return!1}return!0}function p(e,t){return function(e,t,i){return"function"!=typeof i?p(e,t):k(e,t,function e(t,r,o,s,n,c){const a=i(t,r,o,s,n,c);return void 0!==a?Boolean(a):k(t,r,e,c)},new Map)}(e,t,()=>{})}function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const w="[object RegExp]",y="[object String]",_="[object Number]",v="[object Boolean]",j="[object Arguments]",x="[object Symbol]",V="[object Date]",T="[object Map]",E="[object Set]",C="[object Array]",A="[object ArrayBuffer]",P="[object Object]",S="[object DataView]",I="[object Uint8Array]",B="[object Uint8ClampedArray]",O="[object Uint16Array]",F="[object Uint32Array]",L="[object Int8Array]",M="[object Int16Array]",N="[object Int32Array]",D="[object Float32Array]",R="[object Float64Array]";function U(e,t,i,r=new Map,o=void 0){const s=o?.(e,t,i,r);if(null!=s)return s;if(f(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){const t=new Array(e.length);r.set(e,t);for(let s=0;s<e.length;s++)t[s]=U(e[s],s,i,r,o);return Object.hasOwn(e,"index")&&(t.index=e.index),Object.hasOwn(e,"input")&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){const t=new Map;r.set(e,t);for(const[s,n]of e)t.set(s,U(n,s,i,r,o));return t}if(e instanceof Set){const t=new Set;r.set(e,t);for(const s of e)t.add(U(s,void 0,i,r,o));return t}if("undefined"!=typeof Buffer&&Buffer.isBuffer(e))return e.subarray();if(n=e,ArrayBuffer.isView(n)&&!(n instanceof DataView)){const t=new(Object.getPrototypeOf(e).constructor)(e.length);r.set(e,t);for(let s=0;s<e.length;s++)t[s]=U(e[s],s,i,r,o);return t}var n;if(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),z(t,e,i,r,o),t}if("undefined"!=typeof File&&e instanceof File){const t=new File([e],e.name,{type:e.type});return r.set(e,t),z(t,e,i,r,o),t}if(e instanceof Blob){const t=new Blob([e],{type:e.type});return r.set(e,t),z(t,e,i,r,o),t}if(e instanceof Error){const t=new e.constructor;return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,z(t,e,i,r,o),t}if("object"==typeof e&&function(e){switch(b(e)){case j:case C:case A:case S:case v:case V:case D:case R:case L:case M:case N:case T:case _:case P:case w:case E:case y:case x:case I:case B:case O:case F:return!0;default:return!1}}(e)){const t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),z(t,e,i,r,o),t}return e}function z(e,t,i=e,r,o){const s=[...Object.keys(t),...(n=t,Object.getOwnPropertySymbols(n).filter(e=>Object.prototype.propertyIsEnumerable.call(n,e)))];var n;for(let n=0;n<s.length;n++){const c=s[n],a=Object.getOwnPropertyDescriptor(e,c);(null==a||a.writable)&&(e[c]=U(t[c],c,i,r,o))}}function q(e){var t;return e=U(t=e,void 0,t,new Map,void 0),t=>p(t,e)}function H(e,t){return function(e,t){return U(e,void 0,e,new Map,t)}(e,(i,r,o,s)=>{const n=t?.(i,r,o,s);if(null!=n)return n;if("object"==typeof e)switch(Object.prototype.toString.call(e)){case _:case y:case v:{const t=new e.constructor(e?.valueOf());return z(t,e),t}case j:{const t={};return z(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}const W=/^(?:0|[1-9]\d*)$/;function K(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return W.test(e)}}function Q(e){return null!==e&&"object"==typeof e&&"[object Arguments]"===b(e)}function $(e,t){switch(typeof e){case"object":Object.is(e?.valueOf(),-0)&&(e="-0");break;case"number":e=u(e)}return t=H(t),function(i){const r=h(i,e);return void 0===r?function(e,t){let i;if(i=Array.isArray(t)?t:"string"==typeof t&&l(t)&&null==e?.[t]?d(t):[t],0===i.length)return!1;let r=e;for(let e=0;e<i.length;e++){const t=i[e];if(!(null!=r&&Object.hasOwn(r,t)||(Array.isArray(r)||Q(r))&&K(t)&&t<r.length))return!1;r=r[t]}return!0}(i,e):void 0===t?void 0===r:p(r,t)}}function G(e){if(null==e)return n;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&2===e.length?$(e[0],e[1]):q(e);case"string":case"symbol":case"number":return t=e,function(e){return h(e,t)}}var t}function Z(e,t){if(null==e)return{};return function(e,t){const i={};for(let r=0;r<e.length;r++){const o=e[r],s=t(o);Object.hasOwn(i,s)||(i[s]=[]),i[s].push(o)}return i}(c(e)?Array.from(e):Object.values(e),G(t??n))}function J(e){const t=function(){try{return document.createElement("canvas").getContext("2d",{willReadFrequently:!0})}catch{return null}}();if(!t)return!1;const i=20,r=Math.floor(12.5);t.font=r+"px Arial, Sans-Serif",t.textBaseline="top",t.canvas.width=40,t.canvas.height=25,t.clearRect(0,0,40,25),t.fillStyle="#FF0000",t.fillText(e,0,22),t.fillStyle="#0000FF",t.fillText(e,i,22);const o=t.getImageData(0,0,i,25).data,s=o.length;let n=0;for(;n<s&&!o[n+3];n+=4);if(n>=s)return!1;const c=i+n/4%i,a=Math.floor(n/4/i),l=t.getImageData(c,a,1,1).data;return o[n]===l[0]&&o[n+2]===l[2]&&!(t.measureText(e).width>=i)}const X={0:"default",1:"light",2:"medium-light",3:"medium",4:"medium-dark",5:"dark"},Y={"π«©":16,"π«¨":15.1,"π« ":14,"πΆβπ«οΈ":13.1,"π§βπ»":12.1,"π₯°":11,"π€ͺ":5,"βοΈ":4,"π€£":3,"ππ½":2,"π":1,"π":.7,"π":.6};class ee extends e.Plugin{_emojiCanvas=null;static get pluginName(){return"EmojiUtils"}static get isOfficialPlugin(){return!0}init(){this._emojiCanvas=document.createElement("canvas").getContext("2d")}isEmojiSupported(e,t,i){return!!(e.version<=t)&&(!this.hasZwj(e.emoji)||this.isEmojiZwjSupported(e,i))}getEmojiSupportedVersionByOs(){for(const[e,t]of Object.entries(Y))if(ee._isEmojiSupported(e))return t;return 0}hasZwj(e){return e.includes("β")}isEmojiZwjSupported(e,t){if(this.getNodeWidthUsingCanvas(t,e.emoji)<43.2)return!0;return this.getNodeWidth(t,e.emoji)<43.2}getNodeWidth(e,t){const i=document.createElement("span");i.textContent=t,e.appendChild(i);const r=i.offsetWidth;return e.removeChild(i),r}getNodeWidthUsingCanvas(e,t){const i=getComputedStyle(e);return this._emojiCanvas.font=[i.fontStyle,i.fontVariant,i.fontWeight,"24px",`"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", ${i.fontFamily}`].join(" "),Math.ceil(this._emojiCanvas.measureText(t).width)}createEmojiWidthTestingContainer(){const e=document.createElement("div");return e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.left="-9999px",e.style.whiteSpace="nowrap",e.style.fontSize="24px",e}normalizeEmojiSkinTone(e){const t={...e,skins:{default:e.emoji}};return e.skins&&e.skins.forEach(e=>{const i=X[e.tone];t.skins[i]=e.emoji}),t}isEmojiCategoryAllowed(e){return 2!==e.group}static _isEmojiSupported=J}class te extends e.Plugin{_items;_url;_repositoryPromise;static get requires(){return[ee]}static get pluginName(){return"EmojiRepository"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("emoji",{version:void 0,skinTone:"default",definitionsUrl:void 0,useCustomFont:!1}),this._url=this._getUrl(),this._repositoryPromise=new Promise(e=>{this._repositoryPromiseResolveCallback=e}),this._items=null}async init(){return this._warnAboutCdnUse(),await this._loadAndCacheEmoji(),this._items=this._getItems(),this._items?this._repositoryPromiseResolveCallback(!0):((0,t.logWarning)("emoji-repository-empty"),this._repositoryPromiseResolveCallback(!1))}getEmojiByQuery(e){if(!this._items)return[];return e.split(/\s/).filter(Boolean).some(e=>e.length>=2)?s.go(e,this._items,{threshold:.6,keys:["emoticon","annotation",t=>e.split(/\s/).filter(Boolean).flatMap(e=>t.tags?.filter(t=>t.startsWith(e))).join()]}).map(e=>e.obj):[]}getEmojiCategories(){const e=this._getItems();if(!e)return[];const{t}=this.editor.locale,i=[{title:t("Smileys & Expressions"),icon:"π",groupId:0},{title:t("Gestures & People"),icon:"π",groupId:1},{title:t("Animals & Nature"),icon:"π»",groupId:3},{title:t("Food & Drinks"),icon:"π",groupId:4},{title:t("Travel & Places"),icon:"π",groupId:5},{title:t("Activities"),icon:"π",groupId:6},{title:t("Objects"),icon:"π‘",groupId:7},{title:t("Symbols"),icon:"π΅",groupId:8},{title:t("Flags"),icon:"π",groupId:9}],r=Z(e,e=>e.group);return i.map(e=>({...e,items:r[e.groupId]}))}getSkinTones(){const{t:e}=this.editor.locale;return[{id:"default",icon:"π",tooltip:e("Default skin tone")},{id:"light",icon:"ππ»",tooltip:e("Light skin tone")},{id:"medium-light",icon:"ππΌ",tooltip:e("Medium Light skin tone")},{id:"medium",icon:"ππ½",tooltip:e("Medium skin tone")},{id:"medium-dark",icon:"ππΎ",tooltip:e("Medium Dark skin tone")},{id:"dark",icon:"ππΏ",tooltip:e("Dark skin tone")}]}isReady(){return this._repositoryPromise}_getUrl(){const{definitionsUrl:e,version:i}=this.editor.config.get("emoji");if(!e||"cdn"===e){const e=new URL("https://cdn.ckeditor.com/ckeditor5/data/emoji/{version}/en.json".replace("{version}",(i||16).toString()));return e.searchParams.set("editorVersion",t.version),e}return i&&(0,t.logWarning)("emoji-repository-redundant-version"),new URL(e)}_warnAboutCdnUse(){const e=this.editor,i=e.config.get("emoji"),r=e.config.get("licenseKey"),o=window[Symbol.for("cke distribution")];"GPL"!==r&&"cloud"!==o&&(i&&i.definitionsUrl||(0,t.logWarning)("emoji-repository-cdn-use"))}_getItems(){const e=te._results[this._url.href];return e&&e.length?e:null}async _loadAndCacheEmoji(){if(te._results[this._url.href])return;const e=await fetch(this._url,{cache:"force-cache"}).then(e=>e.ok?e.json():[]).catch(()=>[]);te._results[this._url.href]=this._normalizeEmoji(e)}_normalizeEmoji(e){const t=this.editor,i=t.config.get("emoji.useCustomFont"),r=t.plugins.get("EmojiUtils"),o=e.filter(e=>r.isEmojiCategoryAllowed(e));if(i)return o.map(e=>r.normalizeEmojiSkinTone(e));const s=r.getEmojiSupportedVersionByOs(),n=r.createEmojiWidthTestingContainer();document.body.appendChild(n);const c=o.filter(e=>r.isEmojiSupported(e,s,n)).map(e=>r.normalizeEmojiSkinTone(e));return n.remove(),c}static _results={}}const ie=":",re=":__EMOJI_SHOW_ALL:",oe=":__EMOJI_HINT:";class se extends e.Plugin{_emojiDropdownLimit;_skinTone;static get requires(){return[te,o.Typing,"Mention"]}static get pluginName(){return"EmojiMention"}static get isOfficialPlugin(){return!0}constructor(e){super(e),this.editor.config.define("emoji",{dropdownLimit:6}),this._emojiDropdownLimit=e.config.get("emoji.dropdownLimit"),this._skinTone=e.config.get("emoji.skinTone"),this._setupMentionConfiguration(e)}_setupMentionConfiguration(e){const i=e.config.get("mergeFields.prefix"),r=e.config.get("mention.feeds"),o=!!i&&i[0]===ie;if(r.filter(e=>!e._isEmojiMarker).some(e=>e.marker===ie)||o)return void(0,t.logWarning)("emoji-config-marker-already-used",{marker:ie});if(r.some(e=>e._isEmojiMarker))return;const s={_isEmojiMarker:!0,marker:ie,dropdownLimit:this._emojiDropdownLimit,itemRenderer:this._customItemRendererFactory(this.editor.t),feed:this._queryEmojiCallbackFactory()};this.editor.config.set("mention.feeds",[...r,s])}async init(){const e=this.editor;this.emojiPickerPlugin=e.plugins.has("EmojiPicker")?e.plugins.get("EmojiPicker"):null,this.emojiRepositoryPlugin=e.plugins.get("EmojiRepository"),this._isEmojiRepositoryAvailable=await this.emojiRepositoryPlugin.isReady(),this._isEmojiRepositoryAvailable&&e.once("ready",this._overrideMentionExecuteListener.bind(this))}_customItemRendererFactory(e){return t=>{const i=document.createElement("button");i.classList.add("ck"),i.classList.add("ck-button"),i.classList.add("ck-button_with-text"),i.id=`mention-list-item-id${t.id.slice(0,-1)}`,i.type="button",i.tabIndex=-1;const r=document.createElement("span");return r.classList.add("ck"),r.classList.add("ck-button__label"),i.appendChild(r),t.id===oe?(i.classList.add("ck-list-item-button"),i.classList.add("ck-disabled"),r.textContent=e("Keep on typing to see the emoji.")):t.id===re?r.textContent=e("Show all emoji..."):r.textContent=`${t.text} ${t.id}`,i}}_overrideMentionExecuteListener(){const e=this.editor;e.commands.get("mention").on("execute",(t,i)=>{const r=i[0];if(r.marker===ie&&(t.stop(),r.mention.id!==oe))if(r.mention.id===re){const t=[...r.range.getItems()].filter(e=>e.is("$textProxy")).map(e=>e.data).reduce((e,t)=>e+t,"");e.model.change(t=>{e.model.deleteContent(t.createSelection(r.range))});const i=this.emojiPickerPlugin;i.showUI(t.slice(1)),setTimeout(()=>{i.emojiPickerView.focus()})}else e.execute("insertText",{text:r.mention.text,range:r.range})},{priority:"high"})}_queryEmojiCallbackFactory(){return e=>{if(e.startsWith(" "))return[];if(e.startsWith(ie))return[];if(!this._isEmojiRepositoryAvailable)return[];const t=this.emojiRepositoryPlugin.getEmojiByQuery(e).map(e=>{let t=e.skins[this._skinTone]||e.skins.default;return this.emojiPickerPlugin&&(t=e.skins[this.emojiPickerPlugin.skinTone]||e.skins.default),{id:`:${e.annotation}:`,text:t}});if(!this.emojiPickerPlugin)return t.slice(0,this._emojiDropdownLimit);const i={id:e.length>1?re:oe};return[...t.slice(0,this._emojiDropdownLimit-1),i]}}}var ne=i(311),ce=i(355);class ae extends e.Command{refresh(){const e=this.editor.model,t=e.schema,i=e.document.selection;this.isEnabled=t.checkChild(i.getFirstPosition(),"$text")}execute(e=""){this.editor.plugins.get("EmojiPicker").showUI(e)}}var le=i(520),ue=i.n(le),de=i(692),he=i.n(de),fe=i(507),me=i.n(fe),ke=i(212),ge=i.n(ke),pe=i(964),be=i.n(pe),we=i(15),ye={attributes:{"data-cke":!0}};ye.setAttributes=ge(),ye.insert=me().bind(null,"head"),ye.domAPI=he(),ye.insertStyleElement=be();ue()(we.A,ye);we.A&&we.A.locals&&we.A.locals;class _e extends ne.View{tiles;focusTracker;keystrokes;emojiCategories;cachedTiles;_getEmojiByQuery;constructor(e,{categoryName:i,emojiCategories:r,getEmojiByQuery:o,skinTone:s}){super(e),this.set("isEmpty",!0),this.set("categoryName",i),this.set("skinTone",s),this.tiles=this.createCollection(),this.cachedTiles=this.createCollection(),this.focusTracker=new t.FocusTracker,this.keystrokes=new t.KeystrokeHandler,this._getEmojiByQuery=o,this.emojiCategories=r;const n=this.bindTemplate;this.setTemplate({tag:"div",children:[{tag:"div",attributes:{role:"grid",class:["ck","ck-emoji__grid"]},children:this.tiles}],attributes:{role:"tabpanel",class:["ck","ck-emoji__tiles",n.if("isEmpty","ck-hidden",e=>e)]}}),(0,ne.addKeyboardHandlingForGrid)({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.tiles,numberOfColumns:()=>t.global.window.getComputedStyle(this.element.firstChild).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy(),this.focusTracker.destroy()}focus(){const e=this.tiles.first;e&&e.focus()}filter(e){const{matchingItems:t,allItems:i}=e?this._getItemsByQuery(e.source):this._getItemsByCategory();return this._updateGrid(t),this.set("isEmpty",0===t.length),{resultsCount:t.length,totalItemsCount:i.length}}_getItemsByQuery(e){return{matchingItems:this._getEmojiByQuery(e),allItems:this.emojiCategories.flatMap(e=>e.items)}}_getItemsByCategory(){const e=this.emojiCategories.find(e=>e.title===this.categoryName),{items:t}=e;return{matchingItems:t,allItems:t}}_updateGrid(e){[...this.tiles].forEach(e=>{this.focusTracker.remove(e),this.tiles.remove(e)}),e.map(e=>{const t=e.skins[this.skinTone]||e.skins.default;return this.cachedTiles.get(t)||this._createTile(t,e.annotation)}).forEach(e=>{this.tiles.add(e),this.focusTracker.add(e)})}_createTile(e,t){const i=new ne.ButtonView(this.locale);return i.viewUid=e,i.extendTemplate({attributes:{class:["ck-emoji__tile"]}}),i.set({label:e,tooltip:t,withText:!0,ariaLabel:t,ariaLabelledBy:void 0}),i.on("execute",()=>{this.fire("execute",{name:t,emoji:e})}),this.cachedTiles.add(i),i}}var ve=i(467),je={attributes:{"data-cke":!0}};je.setAttributes=ge(),je.insert=me().bind(null,"head"),je.domAPI=he(),je.insertStyleElement=be();ue()(ve.A,je);ve.A&&ve.A.locals&&ve.A.locals;class xe extends ne.View{focusTracker;keystrokes;focusCycler;buttonViews;constructor(e,{emojiCategories:i,categoryName:r}){super(e),this.buttonViews=this.createCollection(i.map(e=>this._createCategoryButton(e))),this.focusTracker=new t.FocusTracker,this.keystrokes=new t.KeystrokeHandler,this.focusCycler=new ne.FocusCycler({focusables:this.buttonViews,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowleft",focusNext:"arrowright"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-emoji__categories-list"],role:"tablist"},children:this.buttonViews}),this.on("change:categoryName",(e,t,i,r)=>{const o=this.buttonViews.find(e=>e.tooltip===r);o&&(o.isOn=!1);this.buttonViews.find(e=>e.tooltip===i).isOn=!0}),this.set("categoryName",r)}render(){super.render(),this.buttonViews.forEach(e=>{this.focusTracker.add(e)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),this.buttonViews.destroy()}focus(){this.buttonViews.first.focus()}enableCategories(){this.buttonViews.forEach(e=>{e.isEnabled=!0})}disableCategories(){this.buttonViews.forEach(e=>{e.set({class:"",isEnabled:!1,isOn:!1})})}_createCategoryButton(e){const t=new ne.ButtonView,i=t.bindTemplate;return t.extendTemplate({attributes:{"aria-selected":i.to("isOn",e=>e.toString()),class:["ck-emoji__category-item"]}}),t.set({ariaLabel:e.title,label:e.icon,role:"tab",tooltip:e.title,withText:!0,ariaLabelledBy:void 0}),t.on("execute",()=>{this.categoryName=e.title}),t.on("change:isEnabled",()=>{t.isEnabled&&t.tooltip===this.categoryName&&(t.isOn=!0)}),t}}function Ve(e){if(null==e)return"";if("string"==typeof e)return e;if(Array.isArray(e))return e.map(Ve).join(",");const t=String(e);return"0"===t&&Object.is(Number(e),-0)?"-0":t}class Te extends ne.View{inputView;gridView;constructor(e,{gridView:t,resultsView:i}){super(e),this.gridView=t;const r=e.t;this.inputView=new ne.SearchTextView(this.locale,{queryView:{label:r("Find an emoji (min. 2 characters)"),creator:ne.createLabeledInputText},filteredView:this.gridView,infoView:{instance:i}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-search"],tabindex:"-1"},children:[this.inputView.queryView]}),this.inputView.delegate("search").to(this)}destroy(){super.destroy(),this.inputView.destroy()}search(e){const t=e?new RegExp(function(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}(Ve(e)),"ig"):null;const i=this.gridView.filter(t);this.inputView.fire("search",{query:e,...i})}setInputValue(e){e?this.inputView.queryView.fieldView.value=e:this.inputView.queryView.fieldView.reset()}getInputValue(){return this.inputView.queryView.fieldView.element.value}focus(){this.inputView.focus()}}var Ee=i(807),Ce={attributes:{"data-cke":!0}};Ce.setAttributes=ge(),Ce.insert=me().bind(null,"head"),Ce.domAPI=he(),Ce.insertStyleElement=be();ue()(Ee.A,Ce);Ee.A&&Ee.A.locals&&Ee.A.locals;class Ae extends ne.View{dropdownView;_skinTones;constructor(e,{skinTone:i,skinTones:r}){super(e),this.set("skinTone",i),this._skinTones=r;const o=(0,e.t)("Select skin tone"),s=(0,ne.createDropdown)(e),n=new t.Collection;for(const{id:e,icon:t,tooltip:i}of this._skinTones){const r={type:"button",model:new ne.UIModel({value:e,label:t,ariaLabel:i,tooltip:i,tooltipPosition:"e",role:"menuitemradio",withText:!0,ariaLabelledBy:void 0})};r.model.bind("isOn").to(this,"skinTone",t=>t===e),n.add(r)}(0,ne.addListToDropdown)(s,n,{ariaLabel:o,role:"menu"}),s.buttonView.set({label:this._getSkinTone().icon,ariaLabel:o,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:o}),this.dropdownView=s,this.listenTo(s,"execute",e=>{this.skinTone=e.source.value}),s.buttonView.bind("label").to(this,"skinTone",()=>this._getSkinTone().icon),s.buttonView.bind("ariaLabel").to(this,"skinTone",()=>`${this._getSkinTone().tooltip}, ${o}`),this.setTemplate({tag:"div",attributes:{class:["ck","ck-emoji__skin-tone"]},children:[s]})}focus(){this.dropdownView.buttonView.focus()}_getSkinTone(){return this._skinTones.find(e=>e.id===this.skinTone)}}class Pe extends ne.View{items;focusTracker;keystrokes;focusCycler;searchView;toneView;categoriesView;gridView;infoView;constructor(e,{emojiCategories:i,getEmojiByQuery:r,skinTone:o,skinTones:s}){super(e);const n=i[0].title;this.gridView=new _e(e,{categoryName:n,emojiCategories:i,getEmojiByQuery:r,skinTone:o}),this.infoView=new ne.SearchInfoView,this.searchView=new Te(e,{gridView:this.gridView,resultsView:this.infoView}),this.categoriesView=new xe(e,{emojiCategories:i,categoryName:n}),this.toneView=new Ae(e,{skinTone:o,skinTones:s}),this.items=this.createCollection([this.searchView,this.toneView,this.categoriesView,this.gridView,this.infoView]),this.focusTracker=new t.FocusTracker,this.keystrokes=new t.KeystrokeHandler,this.focusCycler=new ne.FocusCycler({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",children:[{tag:"div",children:[this.searchView,this.toneView],attributes:{class:["ck","ck-emoji__search"]}},this.categoriesView,this.gridView,{tag:"div",children:[this.infoView],attributes:{class:["ck","ck-search__results"]}}],attributes:{tabindex:"-1",class:["ck","ck-emoji","ck-search"]}}),this._setupEventListeners()}render(){super.render(),this.focusTracker.add(this.searchView.element),this.focusTracker.add(this.toneView.element),this.focusTracker.add(this.categoriesView.element),this.focusTracker.add(this.gridView.element),this.focusTracker.add(this.infoView.element),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.searchView.focus()}_setupEventListeners(){const e=this.locale.t;this.searchView.on("search",(e,t)=>{t.query?this.categoriesView.disableCategories():this.categoriesView.enableCategories()}),this.searchView.on("search",(t,i)=>{1===i.query.length?this.infoView.set({primaryText:e("Keep on typing to see the emoji."),secondaryText:e("The query must contain at least two characters."),isVisible:!0}):i.resultsCount?this.infoView.set({isVisible:!1}):this.infoView.set({primaryText:e('No emojis were found matching "%0".',i.query),secondaryText:e("Please try a different phrase or check the spelling."),isVisible:!0})}),this.searchView.on("search",()=>{this.fire("update"),this.gridView.element.scrollTo(0,0)}),this.categoriesView.on("change:categoryName",(e,t,i)=>{this.gridView.categoryName=i,this.searchView.search("")}),this.toneView.on("change:skinTone",(e,t,i)=>{this.gridView.skinTone=i,this.searchView.search(this.searchView.getInputValue())})}}var Se=i(70),Ie={attributes:{"data-cke":!0}};Ie.setAttributes=ge(),Ie.insert=me().bind(null,"head"),Ie.domAPI=he(),Ie.insertStyleElement=be();ue()(Se.A,Ie);Se.A&&Se.A.locals&&Se.A.locals;var Be=i(131),Oe={attributes:{"data-cke":!0}};Oe.setAttributes=ge(),Oe.insert=me().bind(null,"head"),Oe.domAPI=he(),Oe.insertStyleElement=be();ue()(Be.A,Oe);Be.A&&Be.A.locals&&Be.A.locals;var Fe=i(683),Le={attributes:{"data-cke":!0}};Le.setAttributes=ge(),Le.insert=me().bind(null,"head"),Le.domAPI=he(),Le.insertStyleElement=be();ue()(Fe.A,Le);Fe.A&&Fe.A.locals&&Fe.A.locals;class Me extends ne.View{backButtonView;focusTracker=new t.FocusTracker;keystrokes=new t.KeystrokeHandler;children;_focusables=new ne.ViewCollection;_focusCycler;constructor(e){super(e),this.backButtonView=this._createBackButton(),this.children=this.createCollection([this._createHeaderView()]),this._focusCycler=new ne.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form","ck-emoji-picker-form","ck-responsive-form"],tabindex:"-1"},children:this.children})}render(){super.render();[...this.children.filter(ne.isFocusable),this.backButtonView].forEach(e=>{this._focusables.add(e),this.focusTracker.add(e.element),(0,ne.isViewWithFocusCycler)(e)&&this._focusCycler.chain(e.focusCycler)}),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBackButton(){const e=this.locale.t,t=new ne.ButtonView(this.locale);return t.set({class:"ck-button-back",label:e("Back"),icon:ce.IconPreviousArrow,tooltip:!0}),t.delegate("execute").to(this,"cancel"),t}_createHeaderView(){const e=this.locale.t,t=new ne.FormHeaderView(this.locale,{label:e("Emoji picker")});return t.children.add(this.backButtonView,0),t}}var Ne=i(781),De={attributes:{"data-cke":!0}};De.setAttributes=ge(),De.insert=me().bind(null,"head"),De.domAPI=he(),De.insertStyleElement=be();ue()(Ne.A,De);Ne.A&&Ne.A.locals&&Ne.A.locals;const Re="emoji-picker";class Ue extends e.Plugin{static get requires(){return[te,ne.ContextualBalloon,ne.Dialog,o.Typing]}static get pluginName(){return"EmojiPicker"}static get isOfficialPlugin(){return!0}async init(){const e=this.editor;if(this.balloonPlugin=e.plugins.get("ContextualBalloon"),this.emojiRepositoryPlugin=e.plugins.get("EmojiRepository"),!await this.emojiRepositoryPlugin.isReady())return;const t=new ae(e);e.commands.add("emoji",t),e.ui.componentFactory.add("emoji",()=>{const e=this._createButton(ne.ButtonView,t);return e.set({tooltip:!0}),e}),e.ui.componentFactory.add("menuBar:emoji",()=>this._createButton(ne.MenuBarMenuListItemButtonView,t)),this._setupConversion()}destroy(){super.destroy(),this.emojiPickerView&&this.emojiPickerView.destroy()}get skinTone(){return this.emojiPickerView?this.emojiPickerView.gridView.skinTone:this.editor.config.get("emoji.skinTone")}showUI(e=""){this._showFakeVisualSelection(),this.emojiPickerView||(this.emojiPickerView=this._createEmojiPickerView()),e&&this.emojiPickerView.searchView.setInputValue(e),this.emojiPickerView.searchView.search(e),this.emojiPickerFormView||(this.emojiPickerFormView=this._createEmojiPickerFormView()),this.balloonPlugin.hasView(this.emojiPickerFormView)||(this.emojiPickerFormView.backButtonView.isVisible=!!this.balloonPlugin.visibleView,this.balloonPlugin.add({view:this.emojiPickerFormView,position:this._getBalloonPositionData(),balloonClassName:"ck-emoji-picker-balloon"})),this.emojiPickerView.focus()}_createButton(e,t){const i=new e(this.editor.locale),r=this.editor.locale.t;return i.bind("isEnabled").to(t,"isEnabled"),i.set({label:r("Emoji"),icon:ce.IconEmoji,isToggleable:!0}),i.on("execute",()=>{this.editor.editing.view.scrollToTheSelection(),this.showUI()}),i}_createEmojiPickerView(){const e=new Pe(this.editor.locale,{emojiCategories:this.emojiRepositoryPlugin.getEmojiCategories(),skinTone:this.editor.config.get("emoji.skinTone"),skinTones:this.emojiRepositoryPlugin.getSkinTones(),getEmojiByQuery:e=>this.emojiRepositoryPlugin.getEmojiByQuery(e)});return this.listenTo(e.gridView,"execute",(e,t)=>{const i=this.editor,r=t.emoji;this._hideUI(),i.execute("insertText",{text:r})}),e}_createEmojiPickerFormView(){const e=new Me(this.editor.locale);return e.children.add(this.emojiPickerView),this.listenTo(this.emojiPickerView,"update",()=>{this.balloonPlugin.visibleView===e&&this.balloonPlugin.updatePosition()}),this.listenTo(e,"cancel",()=>{this._hideUI()}),e.keystrokes.set("Esc",(e,t)=>{this._hideUI(),t()}),(0,ne.clickOutsideHandler)({emitter:e,contextElements:[this.balloonPlugin.view.element],callback:()=>{this._hideUI(!1)},activator:()=>this.balloonPlugin.visibleView===e}),e}_hideUI(e=!0){this.balloonPlugin.remove(this.emojiPickerFormView),this.emojiPickerView.searchView.setInputValue(""),e&&this.editor.editing.view.focus(),this._hideFakeVisualSelection()}_setupConversion(){const e=this.editor;e.conversion.for("editingDowncast").markerToHighlight({model:Re,view:{classes:["ck-fake-emoji-selection"]}}),e.conversion.for("editingDowncast").markerToElement({model:Re,view:(e,{writer:t})=>{if(!e.markerRange.isCollapsed)return null;const i=t.createUIElement("span");return t.addClass(["ck-fake-emoji-selection","ck-fake-emoji-selection_collapsed"],i),i}})}_getBalloonPositionData(){const e=this.editor.editing.view,t=e.document;return{target:()=>e.domConverter.viewRangeToDom(t.selection.getFirstRange())}}_showFakeVisualSelection(){const e=this.editor.model;e.change(t=>{const i=e.document.selection.getFirstRange();if(e.markers.has(Re))t.updateMarker(Re,{range:i});else if(i.start.isAtEnd){const r=i.start.getLastMatchingPosition(({item:t})=>!e.schema.isContent(t),{boundaries:i});t.addMarker(Re,{usingOperation:!1,affectsData:!1,range:t.createRange(r,i.end)})}else t.addMarker(Re,{usingOperation:!1,affectsData:!1,range:i})})}_hideFakeVisualSelection(){const e=this.editor.model;e.markers.has(Re)&&e.change(e=>{e.removeMarker(Re)})}}class ze extends e.Plugin{static get requires(){return[se,Ue]}static get pluginName(){return"Emoji"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).emoji=r})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-emoji",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "47.0.0-alpha.0",
|
|
4
4
|
"description": "Emoji feature for CKEditor 5.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ckeditor",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"type": "module",
|
|
14
14
|
"main": "src/index.js",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@ckeditor/ckeditor5-core": "
|
|
17
|
-
"@ckeditor/ckeditor5-icons": "
|
|
18
|
-
"@ckeditor/ckeditor5-mention": "
|
|
19
|
-
"@ckeditor/ckeditor5-typing": "
|
|
20
|
-
"@ckeditor/ckeditor5-ui": "
|
|
21
|
-
"@ckeditor/ckeditor5-utils": "
|
|
22
|
-
"ckeditor5": "
|
|
16
|
+
"@ckeditor/ckeditor5-core": "47.0.0-alpha.0",
|
|
17
|
+
"@ckeditor/ckeditor5-icons": "47.0.0-alpha.0",
|
|
18
|
+
"@ckeditor/ckeditor5-mention": "47.0.0-alpha.0",
|
|
19
|
+
"@ckeditor/ckeditor5-typing": "47.0.0-alpha.0",
|
|
20
|
+
"@ckeditor/ckeditor5-ui": "47.0.0-alpha.0",
|
|
21
|
+
"@ckeditor/ckeditor5-utils": "47.0.0-alpha.0",
|
|
22
|
+
"ckeditor5": "47.0.0-alpha.0",
|
|
23
23
|
"fuzzysort": "3.1.0",
|
|
24
24
|
"es-toolkit": "1.39.5"
|
|
25
25
|
},
|
package/src/emojirepository.js
CHANGED
|
@@ -19,7 +19,7 @@ const DEFAULT_EMOJI_VERSION = 16;
|
|
|
19
19
|
*
|
|
20
20
|
* Loads the emoji repository from URL during plugin initialization and provides utility methods to search it.
|
|
21
21
|
*/
|
|
22
|
-
class EmojiRepository extends Plugin {
|
|
22
|
+
export class EmojiRepository extends Plugin {
|
|
23
23
|
/**
|
|
24
24
|
* Emoji repository in a configured version.
|
|
25
25
|
*/
|
|
@@ -295,7 +295,6 @@ class EmojiRepository extends Plugin {
|
|
|
295
295
|
*/
|
|
296
296
|
static _results = {};
|
|
297
297
|
}
|
|
298
|
-
export { EmojiRepository };
|
|
299
298
|
/**
|
|
300
299
|
* Unable to load the emoji repository from the URL.
|
|
301
300
|
*
|
package/src/emojiutils.js
CHANGED
|
@@ -21,25 +21,25 @@ const SKIN_TONE_MAP = {
|
|
|
21
21
|
* We skip versions with older patches, such as 15.0 instead of 15.1 etc.
|
|
22
22
|
*/
|
|
23
23
|
const EMOJI_SUPPORT_LEVEL = {
|
|
24
|
-
'π«©': 16,
|
|
25
|
-
'π«¨': 15.1,
|
|
26
|
-
'π« ': 14,
|
|
27
|
-
'πΆβπ«οΈ': 13.1,
|
|
28
|
-
'π§βπ»': 12.1,
|
|
29
|
-
'π₯°': 11,
|
|
30
|
-
'π€ͺ': 5,
|
|
31
|
-
'βοΈ': 4,
|
|
32
|
-
'π€£': 3,
|
|
33
|
-
'ππ½': 2,
|
|
34
|
-
'π': 1,
|
|
35
|
-
'π': 0.7,
|
|
24
|
+
'π«©': 16, // Face with bags under eyes.
|
|
25
|
+
'π«¨': 15.1, // Shaking Face.
|
|
26
|
+
'π« ': 14, // Melting Face.
|
|
27
|
+
'πΆβπ«οΈ': 13.1, // Face in Clouds.
|
|
28
|
+
'π§βπ»': 12.1, // Technologist.
|
|
29
|
+
'π₯°': 11, // Smiling Face with Hearts.
|
|
30
|
+
'π€ͺ': 5, // Zany Face.
|
|
31
|
+
'βοΈ': 4, // Medical Symbol.
|
|
32
|
+
'π€£': 3, // Rolling on the Floor Laughing.
|
|
33
|
+
'ππ½': 2, // Waving Hand: Medium Skin Tone.
|
|
34
|
+
'π': 1, // Grinning Face.
|
|
35
|
+
'π': 0.7, // Neutral Face.
|
|
36
36
|
'π': 0.6 // Face with Tears of Joy.
|
|
37
37
|
};
|
|
38
38
|
const BASELINE_EMOJI_WIDTH = 24;
|
|
39
39
|
/**
|
|
40
40
|
* The Emoji utilities plugin.
|
|
41
41
|
*/
|
|
42
|
-
class EmojiUtils extends Plugin {
|
|
42
|
+
export class EmojiUtils extends Plugin {
|
|
43
43
|
/**
|
|
44
44
|
* Used for testing whether the environment supports the given emoji.
|
|
45
45
|
*/
|
|
@@ -181,4 +181,3 @@ class EmojiUtils extends Plugin {
|
|
|
181
181
|
*/
|
|
182
182
|
static _isEmojiSupported = isEmojiSupported;
|
|
183
183
|
}
|
|
184
|
-
export { EmojiUtils };
|