UNPKG

@nextcloud/vue

Version:
2 lines (1 loc) 2.72 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("./NcSelect.cjs"),l=require("../chunks/l10n-46d0c1c0.cjs"),u=require("../chunks/l10n-dacb6440.cjs"),a=require("../chunks/GenRandomId-67df40eb.cjs"),n=require("@nextcloud/axios"),d=require("@nextcloud/dialogs"),p=require("@nextcloud/router"),c=require("debounce"),h=require("../chunks/_plugin-vue2_normalizer-764a4c12.cjs"),g={name:"NcSettingsSelectGroup",components:{NcSelect:o},mixins:[u.l10n],props:{label:{type:String,required:!0},placeholder:{type:String,default:""},id:{type:String,default:()=>"action-"+a.GenRandomId(),validator:e=>e.trim()!==""},value:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["input","error"],data(){return{groups:{},randId:a.GenRandomId()}},computed:{filteredValue(){return this.value.filter(e=>e!==""&&typeof e=="string")},inputValue(){return this.filteredValue.map(e=>typeof this.groups[e]>"u"?{id:e,displayname:e}:this.groups[e])},groupsArray(){return Object.values(this.groups).filter(e=>!this.value.includes(e.id))}},watch:{value:{handler(){const e=Object.keys(this.groups);this.filteredValue.filter(t=>!e.includes(t)).forEach(t=>{this.loadGroup(t)})},immediate:!0}},async mounted(){const e=`${appName}:${appVersion}/initialGroups`;let t=window.sessionStorage.getItem(e);t?(t=Object.fromEntries(JSON.parse(t).map(r=>[r.id,r])),this.groups={...this.groups,...t}):(await this.loadGroup(""),window.sessionStorage.setItem(e,JSON.stringify(Object.values(this.groups))))},methods:{update(e){const t=e.map(r=>r.id);this.$emit("input",t)},async loadGroup(e){try{e=typeof e=="string"?encodeURI(e):"";const t=await n.get(p.generateOcsUrl(`cloud/groups/details?search=${e}&limit=10`,2));if(Object.keys(t.data.ocs.data.groups).length>0){const r=Object.fromEntries(t.data.ocs.data.groups.map(i=>[i.id,i]));return this.groups={...this.groups,...r},!0}}catch(t){this.$emit("error",t),d.showError(l.t("Unable to search the group"))}return!1},filterGroups(e,t,r){return`${t||""} ${e.id}`.toLocaleLowerCase().indexOf(r.toLocaleLowerCase())>-1},onSearch:c.debounce(function(e){this.loadGroup(e)},200)}};var m=function(){var e=this,t=e._self._c;return t("div",[e.label?t("label",{staticClass:"hidden-visually",attrs:{for:e.id}},[e._v(e._s(e.label))]):e._e(),t("NcSelect",{attrs:{value:e.inputValue,options:e.groupsArray,placeholder:e.placeholder||e.label,"filter-by":e.filterGroups,"input-id":e.id,limit:5,label:"displayname",multiple:!0,"close-on-select":!1,disabled:e.disabled},on:{input:e.update,search:e.onSearch}})],1)},f=[],y=h.normalizeComponent(g,m,f,!1,null,null,null,null);const s=y.exports;exports.NcSettingsSelectGroup=s,exports.default=s;