@nextcloud/vue
Version:
Nextcloud vue components
2 lines (1 loc) • 3.97 kB
JavaScript
var y=require("../assets/index8.css");const a=require("./NcPopover.cjs"),c=require("./NcTextField.cjs"),i=require("../chunks/l10n-46d0c1c0.cjs"),n=require("emoji-mart-vue-fast"),l=require("emoji-mart-vue-fast/data/all.json"),u=require("../chunks/_plugin-vue2_normalizer-764a4c12.cjs");let o;const h={search:i.t("Search emoji"),notfound:i.t("No emoji found"),categories:{search:i.t("Search results"),recent:i.t("Frequently used"),smileys:i.t("Smileys & Emotion"),people:i.t("People & Body"),nature:i.t("Animals & Nature"),foods:i.t("Food & Drink"),activity:i.t("Activities"),places:i.t("Travel & Places"),objects:i.t("Objects"),symbols:i.t("Symbols"),flags:i.t("Flags"),custom:i.t("Custom")}},p={name:"NcEmojiPicker",components:{NcPopover:a,NcTextField:c,Emoji:n.Emoji,Picker:n.Picker},props:{activeSet:{type:String,default:"native"},showPreview:{type:Boolean,default:!1},allowUnselect:{type:Boolean,default:!1},selectedEmoji:{type:String,default:""},previewFallbackEmoji:{type:String,default:"grinning"},previewFallbackName:{type:String,default:i.t("Pick an emoji")},closeOnSelect:{type:Boolean,default:!0},container:{type:[String,Object,Element,Boolean],default:"body"}},emits:["select","select-data","unselect"],setup(){return o||(o=new n.EmojiIndex(l)),{emojiIndex:o,i18n:h}},data(){return{search:"",open:!1}},computed:{native(){return this.activeSet==="native"}},methods:{t:i.t,clearSearch(){var t,r;this.search="";const e=(r=(t=this.$refs.search)==null?void 0:t.$refs.inputField)==null?void 0:r.$refs.input;e&&e.focus()},select(e){this.$emit("select",e.native),this.$emit("select-data",e),this.closeOnSelect&&(this.open=!1)},unselect(){this.$emit("unselect")},afterShow(){var t,r;this.$refs.picker.$el.addEventListener("keydown",this.checkKeyEvent);const e=(r=(t=this.$refs.search)==null?void 0:t.$refs.inputField)==null?void 0:r.$refs.input;e&&e.focus()},afterHide(){this.$refs.picker.$el.removeEventListener("keydown",this.checkKeyEvent)},checkKeyEvent(e){if(e.key!=="Tab")return;const t=this.$refs.picker.$el.querySelectorAll("button, input"),r=t.length-1;if(t.length<=1){e.preventDefault();return}e.shiftKey===!1&&e.target===t[r]?(e.preventDefault(),t[0].focus()):e.shiftKey===!0&&e.target===t[0]&&(e.preventDefault(),t[r].focus())}}};var m=function(){var e=this,t=e._self._c;return t("NcPopover",e._g(e._b({attrs:{shown:e.open,container:e.container},on:{"update:shown":function(r){e.open=r},"after-show":e.afterShow,"after-hide":e.afterHide},scopedSlots:e._u([{key:"trigger",fn:function(){return[e._t("default")]},proxy:!0}],null,!0)},"NcPopover",e.$attrs,!1),e.$listeners),[t("Picker",e._b({ref:"picker",attrs:{"auto-focus":!1,color:"var(--color-primary-element)",data:e.emojiIndex,emoji:e.previewFallbackEmoji,i18n:e.i18n,native:e.native,"emoji-size":20,"per-line":8,"picker-styles":{width:"320px"},"show-preview":e.showPreview,title:e.previewFallbackName},on:{select:e.select},scopedSlots:e._u([{key:"searchTemplate",fn:function(r){return[t("NcTextField",{ref:"search",staticClass:"search",attrs:{value:e.search,label:e.t("Search"),"label-visible":!0,placeholder:e.i18n.search,"trailing-button-icon":"close","trailing-button-label":e.t("Clear search"),"show-trailing-button":e.search!==""},on:{"update:value":[function(s){e.search=s},function(s){return r.onSearch(e.search)}],"trailing-button-click":function(s){e.clearSearch(),r.onSearch(e.search)}}})]}},e.allowUnselect&&e.selectedEmoji?{key:"customCategory",fn:function(){return[t("div",{staticClass:"emoji-mart-category-label"},[t("h3",{staticClass:"emoji-mart-category-label"},[e._v(" "+e._s(e.t("Selected"))+" ")])]),t("Emoji",{staticClass:"emoji-selected",attrs:{data:e.emojiIndex,emoji:e.selectedEmoji,size:32},on:{click:e.unselect}}),t("Emoji",{staticClass:"emoji-delete",attrs:{data:e.emojiIndex,emoji:":x:",size:10},on:{click:e.unselect}})]},proxy:!0}:null],null,!0)},"Picker",e.$attrs,!1))],1)},f=[],d=u.normalizeComponent(p,m,f,!1,null,"b69b7291",null,null);const v=d.exports;module.exports=v;