@rzyuan/hrbac-share 0.1.2 → 0.1.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"HrbacShareDrawer.vue.d.ts","sourceRoot":"","sources":["../../src/components/HrbacShareDrawer.vue"],"names":[],"mappings":"AAuVA;AAMA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEhB,kBAAkB,EAElB,oBAAoB,EAGpB,2BAA2B,EAC5B,MAAM,UAAU,CAAA;;gBAklDH,OAAO;cACT,kBAAkB;aACnB,iBAAiB;eACf,OAAO;iBACL,MAAM,GAAG,MAAM;aACnB,gBAAgB;yBACJ,2BAA2B,EAAE;kBACpC,oBAAoB,EAAE;yBACf,OAAO;;;;;;;;;gBARhB,OAAO;cACT,kBAAkB;aACnB,iBAAiB;eACf,OAAO;iBACL,MAAM,GAAG,MAAM;aACnB,gBAAgB;yBACJ,2BAA2B,EAAE;kBACpC,oBAAoB,EAAE;yBACf,OAAO;;;;;;;;;cALjB,OAAO;gBACL,MAAM,GAAG,MAAM;wBAIP,OAAO;;AAd9B,wBAiBG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"HrbacShareDrawer.vue.d.ts","sourceRoot":"","sources":["../../src/components/HrbacShareDrawer.vue"],"names":[],"mappings":"AAsVA;AAMA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEhB,kBAAkB,EAElB,oBAAoB,EAGpB,2BAA2B,EAC5B,MAAM,UAAU,CAAA;;gBA+lDH,OAAO;cACT,kBAAkB;aACnB,iBAAiB;eACf,OAAO;iBACL,MAAM,GAAG,MAAM;aACnB,gBAAgB;yBACJ,2BAA2B,EAAE;kBACpC,oBAAoB,EAAE;yBACf,OAAO;;;;;;;;;gBARhB,OAAO;cACT,kBAAkB;aACnB,iBAAiB;eACf,OAAO;iBACL,MAAM,GAAG,MAAM;aACnB,gBAAgB;yBACJ,2BAA2B,EAAE;kBACpC,oBAAoB,EAAE;yBACf,OAAO;;;;;;;;;cALjB,OAAO;gBACL,MAAM,GAAG,MAAM;wBAIP,OAAO;;AAd9B,wBAiBG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),_=require("element-plus"),P=require("@element-plus/icons-vue"),Y={USER:1,LINE:2,SPACE:3};function R(r){return`${r.subjectType}:${r.subjectId}`}function Q(r,i){const l=new Set(i.map(R));return r.filter(c=>!l.has(R(c)))}function W(r){return[...r].sort((i,l)=>{if(i.role==="OWNER"&&l.role!=="OWNER")return-1;if(i.role!=="OWNER"&&l.role==="OWNER")return 1;const c=Y[i.subjectType]-Y[l.subjectType];return c!==0?c:i.subjectName.localeCompare(l.subjectName,"zh-CN")})}const Ve={class:"code-repository-share__header"},Ee={class:"code-repository-share__header-main"},Ne={class:"code-repository-share__header-title"},we={class:"code-repository-share__header-subtitle"},ge={class:"code-repository-share"},Ce={class:"code-repository-share__section"},ke={class:"code-repository-share__section-head"},Te={class:"code-repository-share__section-label"},je={class:"code-repository-share__add-row"},Se={class:"code-repository-share__compound-field"},xe={class:"code-repository-share__compound-left"},Re={class:"code-repository-share__empty"},Ie={class:"code-repository-share__candidate-name"},Be={key:0,class:"code-repository-share__candidate-status"},Oe={class:"code-repository-share__compound-right"},De={class:"code-repository-share__collaborator-section"},Pe={class:"code-repository-share__collaborator-title"},Me={class:"code-repository-share__collaborator-list"},Ae={class:"code-repository-share__collaborator-list-inner"},Le={class:"code-repository-share__collaborator-info"},Ue={class:"code-repository-share__collaborator-name-line"},We={class:"code-repository-share__collaborator-name"},ze={key:1,class:"code-repository-share__empty-state"},$e={class:"code-repository-share__dialog-header"},Ke={class:"code-repository-share__dialog-header-main"},Fe={class:"code-repository-share__dialog-title"},Ge={class:"code-repository-share__dialog-description"},He={class:"code-repository-share__dialog-footer"},qe={class:"code-repository-share__dialog-header"},Je={class:"code-repository-share__dialog-header-main"},Ye={class:"code-repository-share__dialog-title"},Qe={class:"code-repository-share__dialog-description"},Xe={class:"code-repository-share__dialog-description-target"},Ze={class:"code-repository-share__transfer-content"},et={class:"code-repository-share__transfer-option"},tt={class:"code-repository-share__transfer-option"},ot={class:"code-repository-share__dialog-footer"},at="__remove__",lt="__transfer__",rt="__divider__",st=e.defineComponent({__name:"HrbacShareDrawer",props:{modelValue:{type:Boolean},resource:{},adapter:{},readonly:{type:Boolean,default:!1},drawerSize:{default:"760px"},labels:{},subjectTypeOptions:{},roleOptions:{},allowTransferOwner:{type:Boolean,default:!0}},emits:["update:modelValue","saved"],setup(r,{emit:i}){const l=r,c=i,h={title:"分享设置",addSectionTitle:"添加方式",collaboratorTitle:"管理协作者",readonlyTip:"当前仅可查看协作者,暂无修改分享设置权限",emptyCollaborators:"暂无协作者",removeTitle:"确认移除协作者?",removeDescription:"移除后,该对象将无法继续访问资源:",transferTitle:"转移所有权",transferDescription:"转移后,新的所有者为:"},w=[{label:"按用户",value:"USER"},{label:"按条线",value:"LINE"},{label:"按空间",value:"SPACE"}],I=[{label:"可管理",value:"MANAGER"},{label:"可编辑",value:"EDITOR"},{label:"可查看",value:"VIEWER"}],y=e.ref(!1),s=e.ref(!1),T=e.ref(!1),v=e.ref("USER"),u=e.ref([]),V=e.ref("VIEWER"),j=e.ref([]),B=e.ref([]),S=e.ref(""),f=e.ref(!1),d=e.ref(!1),n=e.ref(null),O=e.ref("MANAGER"),x=e.ref("KEEP"),E=e.computed(()=>({...h,...l.labels})),M=e.computed(()=>{var o;return(o=l.subjectTypeOptions)!=null&&o.length?l.subjectTypeOptions:w}),z=e.computed(()=>{var o;return(o=l.roleOptions)!=null&&o.length?l.roleOptions:I}),$=e.computed(()=>z.value.filter(o=>o.value!=="OWNER")),K=e.computed(()=>W(j.value)),X=e.computed(()=>new Set(j.value.map(R))),Z=e.computed(()=>B.value.map(o=>({...o,disabled:o.disabled||X.value.has(R(o))}))),ee=e.computed(()=>v.value==="USER"?"搜索用户":v.value==="LINE"?"搜索条线":"搜索空间"),A=e.computed(()=>{const o=S.value.trim().toLowerCase();return o?K.value.filter(t=>{var p;return t.subjectName.toLowerCase().includes(o)||t.subjectId.toLowerCase().includes(o)||((p=t.description)==null?void 0:p.toLowerCase().includes(o))}):K.value});e.watch(()=>l.modelValue,o=>{o&&(g(),C(""))}),e.watch(M,o=>{var t;o.some(p=>p.value===v.value)||(v.value=((t=o[0])==null?void 0:t.value)||"USER")},{immediate:!0});function F(){c("update:modelValue",!1)}function te(){g(),C("")}async function g(){y.value=!0;try{j.value=await l.adapter.listPermissions(l.resource.id)}catch(o){_.ElMessage.error(k(o,"协作者加载失败"))}finally{y.value=!1}}async function C(o){T.value=!0;try{B.value=await l.adapter.searchSubjects({subjectType:v.value,keyword:o,resourceId:l.resource.id})}catch(t){_.ElMessage.error(k(t,"候选对象加载失败"))}finally{T.value=!1}}function oe(){u.value=[],C("")}async function ae(){if(u.value.length){s.value=!0;try{await Promise.all(u.value.map(o=>l.adapter.grantPermission({resourceId:l.resource.id,subjectType:v.value,subjectId:o,role:V.value}))),u.value=[],_.ElMessage.success("协作者已添加"),c("saved"),await g(),await C("")}catch(o){_.ElMessage.error(k(o,"协作者添加失败"))}finally{s.value=!1}}}async function le(o,t){if(t===at){n.value=o,f.value=!0;return}if(t===lt){n.value=o,x.value="KEEP",O.value="MANAGER",d.value=!0;return}if(t!==rt&&!(t==="OWNER"||t===o.role)){s.value=!0;try{await l.adapter.updatePermissionRole({resourceId:l.resource.id,subjectType:o.subjectType,subjectId:o.subjectId,role:t}),_.ElMessage.success("权限已更新"),c("saved"),await g()}catch(p){_.ElMessage.error(k(p,"权限更新失败"))}finally{s.value=!1}}}function re(o,t){typeof t=="string"&&le(o,t)}async function se(){if(n.value){s.value=!0;try{await l.adapter.revokePermission({resourceId:l.resource.id,subjectType:n.value.subjectType,subjectId:n.value.subjectId}),f.value=!1,n.value=null,_.ElMessage.success("协作者已移除"),c("saved"),await g(),await C("")}catch(o){_.ElMessage.error(k(o,"协作者移除失败"))}finally{s.value=!1}}}async function ne(){if(!(!n.value||!l.adapter.transferOwner)){s.value=!0;try{await l.adapter.transferOwner({resourceId:l.resource.id,subjectType:n.value.subjectType,subjectId:n.value.subjectId,previousOwnerRole:x.value==="REMOVE"?void 0:O.value}),d.value=!1,n.value=null,_.ElMessage.success("所有权已转移"),c("saved"),await g()}catch(o){_.ElMessage.error(k(o,"所有权转移失败"))}finally{s.value=!1}}}function G(o){var t;return((t=M.value.find(p=>p.value===o))==null?void 0:t.label.replace(/^按/,""))||o}function de(o){return o.role==="OWNER"?[{label:"所有者",value:"OWNER",disabled:!0}]:z.value.filter(t=>t.value!=="OWNER")}function ce(o){return l.readonly||s.value||o.readonly===!0||o.role==="OWNER"}function ie(o){return ce(o)&&!L(o)&&!U(o)}function L(o){return!l.readonly&&!o.readonly&&o.role!=="OWNER"}function U(o){return l.allowTransferOwner&&!!l.adapter.transferOwner&&!l.readonly&&!o.readonly&&o.subjectType==="USER"&&o.role!=="OWNER"}function ue(o){return L(o)||U(o)}function pe(o){return o==="USER"?"code-repository-share__type-tag--user":o==="SPACE"?"code-repository-share__type-tag--space":"code-repository-share__type-tag--line"}function k(o,t){return o instanceof Error&&o.message?o.message:t}return(o,t)=>{const p=e.resolveComponent("el-icon"),m=e.resolveComponent("el-button"),ve=e.resolveComponent("el-alert"),_e=e.resolveComponent("el-radio-button"),H=e.resolveComponent("el-radio-group"),ye=e.resolveComponent("el-tooltip"),N=e.resolveComponent("el-option"),D=e.resolveComponent("el-select"),fe=e.resolveComponent("el-input"),me=e.resolveComponent("el-empty"),q=e.resolveComponent("el-dialog"),J=e.resolveComponent("el-radio"),be=e.resolveComponent("el-drawer"),he=e.resolveDirective("loading");return e.openBlock(),e.createBlock(be,{"model-value":r.modelValue,size:r.drawerSize,class:"code-repository-share-drawer","destroy-on-close":"","show-close":!1,onClose:F,onOpen:te},{header:e.withCtx(()=>[e.createElementVNode("div",Ve,[e.createElementVNode("div",Ee,[e.createElementVNode("div",Ne,e.toDisplayString(E.value.title),1),e.createElementVNode("div",we,[t[12]||(t[12]=e.createTextVNode(" 正在分享:",-1)),e.createElementVNode("span",null,e.toDisplayString(r.resource.name||"--"),1)])]),e.createVNode(m,{link:"",class:"code-repository-share__close-button","aria-label":"关闭分享抽屉",onClick:F},{default:e.withCtx(()=>[e.createVNode(p,{size:16},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Close))]),_:1})]),_:1})])]),default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("div",ge,[r.readonly?(e.openBlock(),e.createBlock(ve,{key:0,title:E.value.readonlyTip,type:"info","show-icon":"",closable:!1,class:"code-repository-share__alert"},null,8,["title"])):e.createCommentVNode("",!0),e.createElementVNode("section",Ce,[e.createElementVNode("div",ke,[e.createElementVNode("span",Te,e.toDisplayString(E.value.addSectionTitle),1),e.createVNode(H,{modelValue:v.value,"onUpdate:modelValue":t[0]||(t[0]=a=>v.value=a),class:"code-repository-share__method-radio",disabled:r.readonly||s.value,onChange:oe},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,a=>(e.openBlock(),e.createBlock(_e,{key:a.value,value:a.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"])]),e.createElementVNode("div",je,[e.createElementVNode("div",Se,[e.createElementVNode("div",xe,[e.createVNode(D,{modelValue:u.value,"onUpdate:modelValue":t[1]||(t[1]=a=>u.value=a),multiple:"",filterable:"",remote:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","remote-method":C,loading:T.value,disabled:r.readonly||s.value,placeholder:ee.value,"reserve-keyword":!1,class:"code-repository-share__candidate-select"},{empty:e.withCtx(()=>[e.createElementVNode("div",Re,"暂无匹配"+e.toDisplayString(G(v.value)),1)]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Z.value,a=>(e.openBlock(),e.createBlock(N,{key:`${a.subjectType}:${a.subjectId}`,label:a.subjectName,value:a.subjectId,disabled:a.disabled},{default:e.withCtx(()=>[e.createVNode(ye,{disabled:!a.disabled,content:"已添加为协作者",placement:"right"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["code-repository-share__candidate-option",{"is-added":a.disabled}])},[e.createElementVNode("span",Ie,e.toDisplayString(a.subjectName),1),a.disabled?(e.openBlock(),e.createElementBlock("span",Be," 已添加 ")):e.createCommentVNode("",!0)],2)]),_:2},1032,["disabled"])]),_:2},1032,["label","value","disabled"]))),128))]),_:1},8,["modelValue","loading","disabled","placeholder"])]),e.createElementVNode("div",Oe,[e.createVNode(D,{modelValue:V.value,"onUpdate:modelValue":t[2]||(t[2]=a=>V.value=a),disabled:r.readonly||s.value,class:"code-repository-share__add-role-select"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,a=>(e.openBlock(),e.createBlock(N,{key:a.value,label:a.label,value:a.value,disabled:a.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","disabled"])])]),e.createVNode(m,{type:"primary",class:"code-repository-share__add-button",loading:s.value,disabled:r.readonly||!u.value.length,onClick:ae},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode(" 添加 ",-1)])]),_:1},8,["loading","disabled"])])]),e.createElementVNode("section",De,[e.createElementVNode("div",Pe,[e.createTextVNode(e.toDisplayString(E.value.collaboratorTitle)+" ",1),e.createElementVNode("span",null,"("+e.toDisplayString(A.value.length)+")",1)]),e.createVNode(fe,{modelValue:S.value,"onUpdate:modelValue":t[3]||(t[3]=a=>S.value=a),modelModifiers:{trim:!0},clearable:"",class:"code-repository-share__collaborator-search",placeholder:"搜索空间名称、条线名称、用户姓名或账号"},{prefix:e.withCtx(()=>[e.createVNode(p,null,{default:e.withCtx(()=>[e.createVNode(e.unref(P.Search))]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",Me,[A.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Ae,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,a=>(e.openBlock(),e.createElementBlock("div",{key:`${a.subjectType}:${a.subjectId}`,class:"code-repository-share__collaborator-row"},[e.createElementVNode("div",Le,[e.createElementVNode("div",Ue,[e.createElementVNode("span",{class:e.normalizeClass(["code-repository-share__type-tag",pe(a.subjectType)])},e.toDisplayString(G(a.subjectType)||"--"),3),e.createElementVNode("span",We,e.toDisplayString(a.subjectName||"--"),1)])]),e.createVNode(D,{"model-value":a.role,size:"small",class:"code-repository-share__row-role-select","popper-class":"code-repository-share__role-dropdown",disabled:ie(a),onChange:b=>re(a,b)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(de(a),b=>(e.openBlock(),e.createBlock(N,{key:b.value,label:b.label,value:b.value,disabled:b.disabled},null,8,["label","value","disabled"]))),128)),ue(a)?(e.openBlock(),e.createBlock(N,{key:0,disabled:"",value:"__divider__"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createElementVNode("div",{class:"code-repository-share__role-divider"},null,-1)])]),_:1})):e.createCommentVNode("",!0),U(a)?(e.openBlock(),e.createBlock(N,{key:1,label:"转移所有权",value:"__transfer__"})):e.createCommentVNode("",!0),L(a)?(e.openBlock(),e.createBlock(N,{key:2,label:"移除",value:"__remove__"},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createElementVNode("span",{class:"code-repository-share__danger-option"},"移除",-1)])]),_:1})):e.createCommentVNode("",!0)]),_:2},1032,["model-value","disabled","onChange"])]))),128))]),t[16]||(t[16]=e.createElementVNode("div",{class:"code-repository-share__collaborator-footer"},"已显示全部协作者",-1))],64)):(e.openBlock(),e.createElementBlock("div",ze,[e.createVNode(me,{description:E.value.emptyCollaborators,"image-size":72},null,8,["description"])]))])])])),[[he,y.value]]),e.createVNode(q,{modelValue:f.value,"onUpdate:modelValue":t[6]||(t[6]=a=>f.value=a),width:"460px",class:"code-repository-share__remove-dialog","destroy-on-close":"","show-close":!1,"append-to-body":""},{header:e.withCtx(()=>{var a;return[e.createElementVNode("div",$e,[e.createElementVNode("div",Ke,[e.createElementVNode("div",Fe,e.toDisplayString(E.value.removeTitle),1),e.createElementVNode("div",Ge," 移除后,"+e.toDisplayString(((a=n.value)==null?void 0:a.subjectName)||"--")+" 将失去当前资源的协作权限。 ",1)]),e.createVNode(m,{link:"",class:"code-repository-share__close-button","aria-label":"关闭移除确认",onClick:t[4]||(t[4]=b=>f.value=!1)},{default:e.withCtx(()=>[e.createVNode(p,{size:16},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Close))]),_:1})]),_:1})])]}),footer:e.withCtx(()=>[e.createElementVNode("div",He,[e.createVNode(m,{onClick:t[5]||(t[5]=a=>f.value=!1)},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(m,{type:"primary",class:"code-repository-share__danger-button",disabled:!n.value,loading:s.value,onClick:se},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode(" 移除 ",-1)])]),_:1},8,["disabled","loading"])])]),_:1},8,["modelValue"]),e.createVNode(q,{modelValue:d.value,"onUpdate:modelValue":t[11]||(t[11]=a=>d.value=a),width:"600px",class:"code-repository-share__transfer-dialog","destroy-on-close":"","show-close":!1,"append-to-body":""},{header:e.withCtx(()=>{var a;return[e.createElementVNode("div",qe,[e.createElementVNode("div",Je,[e.createElementVNode("div",Ye,e.toDisplayString(E.value.transferTitle),1),e.createElementVNode("div",Qe,[t[19]||(t[19]=e.createTextVNode(" 你将把所有权转移给 ",-1)),e.createElementVNode("span",Xe,e.toDisplayString(((a=n.value)==null?void 0:a.subjectName)||"--"),1),t[20]||(t[20]=e.createTextVNode(" ,转移后你将不再是此资源的所有者。 ",-1))])]),e.createVNode(m,{link:"",class:"code-repository-share__close-button","aria-label":"关闭所有权转移确认",onClick:t[7]||(t[7]=b=>d.value=!1)},{default:e.withCtx(()=>[e.createVNode(p,{size:16},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Close))]),_:1})]),_:1})])]}),footer:e.withCtx(()=>[e.createElementVNode("div",ot,[e.createVNode(m,{onClick:t[10]||(t[10]=a=>d.value=!1)},{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(m,{type:"primary",disabled:!n.value,loading:s.value,onClick:ne},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode(" 转移 ",-1)])]),_:1},8,["disabled","loading"])])]),default:e.withCtx(()=>[e.createElementVNode("div",Ze,[t[24]||(t[24]=e.createElementVNode("div",{class:"code-repository-share__transfer-label"},"转移后",-1)),e.createVNode(H,{modelValue:x.value,"onUpdate:modelValue":t[9]||(t[9]=a=>x.value=a),class:"code-repository-share__transfer-group"},{default:e.withCtx(()=>[e.createElementVNode("label",et,[e.createVNode(J,{value:"KEEP"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("保留我的",-1)])]),_:1}),e.createVNode(D,{modelValue:O.value,"onUpdate:modelValue":t[8]||(t[8]=a=>O.value=a),class:"code-repository-share__transfer-select",disabled:x.value!=="KEEP"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,a=>(e.openBlock(),e.createBlock(N,{key:a.value,label:a.label,value:a.value,disabled:a.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","disabled"]),t[22]||(t[22]=e.createElementVNode("span",null,"权限",-1))]),e.createElementVNode("label",tt,[e.createVNode(J,{value:"REMOVE"},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("不保留我的协作权限",-1)])]),_:1})])]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"])]),_:1},8,["model-value","size"])}}}),nt=(r,i)=>{const l=r.__vccOpts||r;for(const[c,h]of i)l[c]=h;return l},dt=nt(st,[["__scopeId","data-v-cdf7bf3e"]]);function ct(r){const i=e.ref(!1),l=e.ref(!1),c=e.ref(""),h=e.ref("USER"),w=e.ref([]),I=e.ref("VIEWER"),y=e.ref([]),s=e.ref([]),T=e.computed(()=>W(y.value)),v=e.computed(()=>Q(s.value,y.value));async function u(){i.value=!0;try{y.value=await r.adapter.listPermissions(r.resourceId)}finally{i.value=!1}}async function V(){s.value=await r.adapter.searchSubjects({subjectType:h.value,keyword:c.value,resourceId:r.resourceId})}async function j(){if(w.value.length){l.value=!0;try{await Promise.all(w.value.map(d=>r.adapter.grantPermission({resourceId:r.resourceId,subjectType:h.value,subjectId:d,role:I.value}))),w.value=[],c.value="",await u(),await V()}finally{l.value=!1}}}async function B(d,n){l.value=!0;try{await r.adapter.updatePermissionRole({resourceId:r.resourceId,subjectType:d.subjectType,subjectId:d.subjectId,role:n}),await u()}finally{l.value=!1}}async function S(d){l.value=!0;try{await r.adapter.revokePermission({resourceId:r.resourceId,subjectType:d.subjectType,subjectId:d.subjectId}),await u(),await V()}finally{l.value=!1}}async function f(d,n="MANAGER"){if(r.adapter.transferOwner){l.value=!0;try{await r.adapter.transferOwner({resourceId:r.resourceId,subjectType:d.subjectType,subjectId:d.subjectId,previousOwnerRole:n}),await u()}finally{l.value=!1}}}return{loading:i,saving:l,keyword:c,subjectType:h,selectedSubjectIds:w,selectedRole:I,permissions:y,candidates:s,sortedPermissions:T,availableCandidates:v,loadPermissions:u,searchCandidates:V,grantSelected:j,updateRole:B,revoke:S,transferOwner:f}}exports.HrbacShareDrawer=dt;exports.buildSubjectKey=R;exports.excludeExistingSubjects=Q;exports.sortSharePermissions=W;exports.useHrbacShare=ct;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),_=require("element-plus"),P=require("@element-plus/icons-vue"),Q={USER:1,LINE:2,SPACE:3};function I(r){return`${r.subjectType}:${r.subjectId}`}function X(r,u){const l=new Set(u.map(I));return r.filter(i=>!l.has(I(i)))}function z(r){return[...r].sort((u,l)=>{if(u.role==="OWNER"&&l.role!=="OWNER")return-1;if(u.role!=="OWNER"&&l.role==="OWNER")return 1;const i=Q[u.subjectType]-Q[l.subjectType];return i!==0?i:u.subjectName.localeCompare(l.subjectName,"zh-CN")})}const Ee={class:"code-repository-share__header"},Ne={class:"code-repository-share__header-main"},we={class:"code-repository-share__header-title"},ge={class:"code-repository-share__header-subtitle"},Ce={class:"code-repository-share"},ke={class:"code-repository-share__section"},Te={class:"code-repository-share__section-head"},je={class:"code-repository-share__section-label"},Se={class:"code-repository-share__add-row"},Re={class:"code-repository-share__compound-field"},xe={class:"code-repository-share__compound-left"},Ie={class:"code-repository-share__empty"},Be={class:"code-repository-share__candidate-name"},Oe={key:0,class:"code-repository-share__candidate-status"},De={class:"code-repository-share__compound-right"},Pe={class:"code-repository-share__collaborator-section"},Ae={class:"code-repository-share__collaborator-title"},Me={class:"code-repository-share__collaborator-list"},Le={class:"code-repository-share__collaborator-list-inner"},Ue={class:"code-repository-share__collaborator-info"},We={class:"code-repository-share__collaborator-name-line"},ze={class:"code-repository-share__collaborator-name"},$e={key:1,class:"code-repository-share__empty-state"},Ke={class:"code-repository-share__dialog-header"},Fe={class:"code-repository-share__dialog-header-main"},Ge={class:"code-repository-share__dialog-title"},He={class:"code-repository-share__dialog-description"},qe={class:"code-repository-share__dialog-footer"},Je={class:"code-repository-share__dialog-header"},Ye={class:"code-repository-share__dialog-header-main"},Qe={class:"code-repository-share__dialog-title"},Xe={class:"code-repository-share__dialog-description"},Ze={class:"code-repository-share__dialog-description-target"},et={class:"code-repository-share__transfer-content"},tt={class:"code-repository-share__transfer-option"},ot={class:"code-repository-share__transfer-option"},at={class:"code-repository-share__dialog-footer"},lt="__remove__",rt="__transfer__",st="__divider__",nt=e.defineComponent({__name:"HrbacShareDrawer",props:{modelValue:{type:Boolean},resource:{},adapter:{},readonly:{type:Boolean,default:!1},drawerSize:{default:"760px"},labels:{},subjectTypeOptions:{},roleOptions:{},allowTransferOwner:{type:Boolean,default:!0}},emits:["update:modelValue","saved"],setup(r,{emit:u}){const l=r,i=u,h={title:"分享设置",addSectionTitle:"添加方式",collaboratorTitle:"管理协作者",readonlyTip:"当前仅可查看协作者,暂无修改分享设置权限",emptyCollaborators:"暂无协作者",removeTitle:"确认移除协作者?",removeDescription:"移除后,该对象将无法继续访问资源:",transferTitle:"转移所有权",transferDescription:"转移后,新的所有者为:"},w=[{label:"按用户",value:"USER"},{label:"按条线",value:"LINE"},{label:"按空间",value:"SPACE"}],C=[{label:"可管理",value:"MANAGER"},{label:"可编辑",value:"EDITOR"},{label:"可查看",value:"VIEWER"}],y=e.ref(!1),s=e.ref(!1),k=e.ref(!1),v=e.ref("USER"),p=e.ref([]),V=e.ref("VIEWER"),T=e.ref([]),B=e.ref([]),j=e.ref(""),f=e.ref(!1),c=e.ref(!1),d=e.ref(null),O=e.ref("MANAGER"),S=e.ref("KEEP"),E=e.computed(()=>({...h,...l.labels})),A=e.computed(()=>{var o;return(o=l.subjectTypeOptions)!=null&&o.length?l.subjectTypeOptions:w}),$=e.computed(()=>{var o;return(o=l.roleOptions)!=null&&o.length?l.roleOptions.map(t=>({...t,label:t.label||L(t.value)})):C}),K=e.computed(()=>$.value.filter(o=>o.value!=="OWNER")),Z=e.computed(()=>{const o=[...K.value];return o.some(t=>t.value==="MANAGER")||o.unshift({label:L("MANAGER"),value:"MANAGER"}),o}),F=e.computed(()=>z(T.value)),ee=e.computed(()=>new Set(T.value.map(I))),te=e.computed(()=>B.value.map(o=>({...o,disabled:o.disabled||ee.value.has(I(o))}))),oe=e.computed(()=>v.value==="USER"?"搜索用户":v.value==="LINE"?"搜索条线":"搜索空间"),M=e.computed(()=>{const o=j.value.trim().toLowerCase();return o?F.value.filter(t=>{var n;return t.subjectName.toLowerCase().includes(o)||t.subjectId.toLowerCase().includes(o)||((n=t.description)==null?void 0:n.toLowerCase().includes(o))}):F.value});e.watch(()=>l.modelValue,o=>{o&&(R(),x(""))},{immediate:!0}),e.watch(A,o=>{var t;o.some(n=>n.value===v.value)||(v.value=((t=o[0])==null?void 0:t.value)||"USER")},{immediate:!0});function G(){i("update:modelValue",!1)}async function R(){y.value=!0;try{T.value=await l.adapter.listPermissions(l.resource.id)}catch(o){_.ElMessage.error(g(o,"协作者加载失败"))}finally{y.value=!1}}async function x(o){k.value=!0;try{B.value=await l.adapter.searchSubjects({subjectType:v.value,keyword:o,resourceId:l.resource.id})}catch(t){_.ElMessage.error(g(t,"候选对象加载失败"))}finally{k.value=!1}}function ae(){p.value=[],x("")}async function le(){if(p.value.length){s.value=!0;try{await Promise.all(p.value.map(o=>l.adapter.grantPermission({resourceId:l.resource.id,subjectType:v.value,subjectId:o,role:V.value}))),p.value=[],_.ElMessage.success("协作者已添加"),i("saved"),await R(),await x("")}catch(o){_.ElMessage.error(g(o,"协作者添加失败"))}finally{s.value=!1}}}async function re(o,t){if(t===lt){d.value=o,f.value=!0;return}if(t===rt){d.value=o,S.value="KEEP",O.value="MANAGER",c.value=!0;return}if(t!==st&&!(t==="OWNER"||t===o.role)){s.value=!0;try{await l.adapter.updatePermissionRole({resourceId:l.resource.id,subjectType:o.subjectType,subjectId:o.subjectId,role:t}),_.ElMessage.success("权限已更新"),i("saved"),await R()}catch(n){_.ElMessage.error(g(n,"权限更新失败"))}finally{s.value=!1}}}function se(o,t){typeof t=="string"&&re(o,t)}async function ne(){if(d.value){s.value=!0;try{await l.adapter.revokePermission({resourceId:l.resource.id,subjectType:d.value.subjectType,subjectId:d.value.subjectId}),f.value=!1,d.value=null,_.ElMessage.success("协作者已移除"),i("saved"),await R(),await x("")}catch(o){_.ElMessage.error(g(o,"协作者移除失败"))}finally{s.value=!1}}}async function de(){if(!(!d.value||!l.adapter.transferOwner)){s.value=!0;try{await l.adapter.transferOwner({resourceId:l.resource.id,subjectType:d.value.subjectType,subjectId:d.value.subjectId,previousOwnerRole:S.value==="REMOVE"?void 0:O.value}),c.value=!1,d.value=null,_.ElMessage.success("所有权已转移"),i("saved"),await R()}catch(o){_.ElMessage.error(g(o,"所有权转移失败"))}finally{s.value=!1}}}function H(o){var t;return((t=A.value.find(n=>n.value===o))==null?void 0:t.label.replace(/^按/,""))||o}function ce(o){if(o.role==="OWNER")return[{label:"所有者",value:"OWNER",disabled:!0}];const t=$.value.filter(n=>n.value!=="OWNER");return t.some(n=>n.value===o.role)?t:[{label:L(o.role),value:o.role},...t]}function L(o){var t;return((t=C.find(n=>n.value===o))==null?void 0:t.label)||o}function ie(o){return l.readonly||s.value||o.readonly===!0||o.role==="OWNER"}function ue(o){return ie(o)&&!U(o)&&!W(o)}function U(o){return!l.readonly&&!o.readonly&&o.role!=="OWNER"}function W(o){return l.allowTransferOwner&&!!l.adapter.transferOwner&&!l.readonly&&!o.readonly&&o.subjectType==="USER"&&o.role!=="OWNER"}function pe(o){return U(o)||W(o)}function ve(o){return o==="USER"?"code-repository-share__type-tag--user":o==="SPACE"?"code-repository-share__type-tag--space":"code-repository-share__type-tag--line"}function g(o,t){return o instanceof Error&&o.message?o.message:t}return(o,t)=>{const n=e.resolveComponent("el-icon"),m=e.resolveComponent("el-button"),_e=e.resolveComponent("el-alert"),ye=e.resolveComponent("el-radio-button"),q=e.resolveComponent("el-radio-group"),fe=e.resolveComponent("el-tooltip"),N=e.resolveComponent("el-option"),D=e.resolveComponent("el-select"),me=e.resolveComponent("el-input"),be=e.resolveComponent("el-empty"),J=e.resolveComponent("el-dialog"),Y=e.resolveComponent("el-radio"),he=e.resolveComponent("el-drawer"),Ve=e.resolveDirective("loading");return e.openBlock(),e.createBlock(he,{"model-value":r.modelValue,size:r.drawerSize,class:"code-repository-share-drawer","destroy-on-close":"","show-close":!1,onClose:G},{header:e.withCtx(()=>[e.createElementVNode("div",Ee,[e.createElementVNode("div",Ne,[e.createElementVNode("div",we,e.toDisplayString(E.value.title),1),e.createElementVNode("div",ge,[t[12]||(t[12]=e.createTextVNode(" 正在分享:",-1)),e.createElementVNode("span",null,e.toDisplayString(r.resource.name||"--"),1)])]),e.createVNode(m,{link:"",class:"code-repository-share__close-button","aria-label":"关闭分享抽屉",onClick:G},{default:e.withCtx(()=>[e.createVNode(n,{size:16},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Close))]),_:1})]),_:1})])]),default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("div",Ce,[r.readonly?(e.openBlock(),e.createBlock(_e,{key:0,title:E.value.readonlyTip,type:"info","show-icon":"",closable:!1,class:"code-repository-share__alert"},null,8,["title"])):e.createCommentVNode("",!0),e.createElementVNode("section",ke,[e.createElementVNode("div",Te,[e.createElementVNode("span",je,e.toDisplayString(E.value.addSectionTitle),1),e.createVNode(q,{modelValue:v.value,"onUpdate:modelValue":t[0]||(t[0]=a=>v.value=a),class:"code-repository-share__method-radio",disabled:r.readonly||s.value,onChange:ae},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,a=>(e.openBlock(),e.createBlock(ye,{key:a.value,value:a.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"])]),e.createElementVNode("div",Se,[e.createElementVNode("div",Re,[e.createElementVNode("div",xe,[e.createVNode(D,{modelValue:p.value,"onUpdate:modelValue":t[1]||(t[1]=a=>p.value=a),multiple:"",filterable:"",remote:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","remote-method":x,loading:k.value,disabled:r.readonly||s.value,placeholder:oe.value,"reserve-keyword":!1,class:"code-repository-share__candidate-select"},{empty:e.withCtx(()=>[e.createElementVNode("div",Ie,"暂无匹配"+e.toDisplayString(H(v.value)),1)]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(te.value,a=>(e.openBlock(),e.createBlock(N,{key:`${a.subjectType}:${a.subjectId}`,label:a.subjectName,value:a.subjectId,disabled:a.disabled},{default:e.withCtx(()=>[e.createVNode(fe,{disabled:!a.disabled,content:"已添加为协作者",placement:"right"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["code-repository-share__candidate-option",{"is-added":a.disabled}])},[e.createElementVNode("span",Be,e.toDisplayString(a.subjectName),1),a.disabled?(e.openBlock(),e.createElementBlock("span",Oe," 已添加 ")):e.createCommentVNode("",!0)],2)]),_:2},1032,["disabled"])]),_:2},1032,["label","value","disabled"]))),128))]),_:1},8,["modelValue","loading","disabled","placeholder"])]),e.createElementVNode("div",De,[e.createVNode(D,{modelValue:V.value,"onUpdate:modelValue":t[2]||(t[2]=a=>V.value=a),disabled:r.readonly||s.value,class:"code-repository-share__add-role-select"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(K.value,a=>(e.openBlock(),e.createBlock(N,{key:a.value,label:a.label,value:a.value,disabled:a.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","disabled"])])]),e.createVNode(m,{type:"primary",class:"code-repository-share__add-button",loading:s.value,disabled:r.readonly||!p.value.length,onClick:le},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode(" 添加 ",-1)])]),_:1},8,["loading","disabled"])])]),e.createElementVNode("section",Pe,[e.createElementVNode("div",Ae,[e.createTextVNode(e.toDisplayString(E.value.collaboratorTitle)+" ",1),e.createElementVNode("span",null,"("+e.toDisplayString(M.value.length)+")",1)]),e.createVNode(me,{modelValue:j.value,"onUpdate:modelValue":t[3]||(t[3]=a=>j.value=a),modelModifiers:{trim:!0},clearable:"",class:"code-repository-share__collaborator-search",placeholder:"搜索空间名称、条线名称、用户姓名或账号"},{prefix:e.withCtx(()=>[e.createVNode(n,null,{default:e.withCtx(()=>[e.createVNode(e.unref(P.Search))]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",Me,[M.value.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,a=>(e.openBlock(),e.createElementBlock("div",{key:`${a.subjectType}:${a.subjectId}`,class:"code-repository-share__collaborator-row"},[e.createElementVNode("div",Ue,[e.createElementVNode("div",We,[e.createElementVNode("span",{class:e.normalizeClass(["code-repository-share__type-tag",ve(a.subjectType)])},e.toDisplayString(H(a.subjectType)||"--"),3),e.createElementVNode("span",ze,e.toDisplayString(a.subjectName||"--"),1)])]),e.createVNode(D,{"model-value":a.role,size:"small",class:"code-repository-share__row-role-select","popper-class":"code-repository-share__role-dropdown",disabled:ue(a),onChange:b=>se(a,b)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ce(a),b=>(e.openBlock(),e.createBlock(N,{key:b.value,label:b.label,value:b.value,disabled:b.disabled},null,8,["label","value","disabled"]))),128)),pe(a)?(e.openBlock(),e.createBlock(N,{key:0,disabled:"",value:"__divider__"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createElementVNode("div",{class:"code-repository-share__role-divider"},null,-1)])]),_:1})):e.createCommentVNode("",!0),W(a)?(e.openBlock(),e.createBlock(N,{key:1,label:"转移所有权",value:"__transfer__"})):e.createCommentVNode("",!0),U(a)?(e.openBlock(),e.createBlock(N,{key:2,label:"移除",value:"__remove__"},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createElementVNode("span",{class:"code-repository-share__danger-option"},"移除",-1)])]),_:1})):e.createCommentVNode("",!0)]),_:2},1032,["model-value","disabled","onChange"])]))),128))]),t[16]||(t[16]=e.createElementVNode("div",{class:"code-repository-share__collaborator-footer"},"已显示全部协作者",-1))],64)):(e.openBlock(),e.createElementBlock("div",$e,[e.createVNode(be,{description:E.value.emptyCollaborators,"image-size":72},null,8,["description"])]))])])])),[[Ve,y.value]]),e.createVNode(J,{modelValue:f.value,"onUpdate:modelValue":t[6]||(t[6]=a=>f.value=a),width:"460px",class:"code-repository-share__remove-dialog","destroy-on-close":"","show-close":!1,"append-to-body":""},{header:e.withCtx(()=>{var a;return[e.createElementVNode("div",Ke,[e.createElementVNode("div",Fe,[e.createElementVNode("div",Ge,e.toDisplayString(E.value.removeTitle),1),e.createElementVNode("div",He," 移除后,"+e.toDisplayString(((a=d.value)==null?void 0:a.subjectName)||"--")+" 将失去当前资源的协作权限。 ",1)]),e.createVNode(m,{link:"",class:"code-repository-share__close-button","aria-label":"关闭移除确认",onClick:t[4]||(t[4]=b=>f.value=!1)},{default:e.withCtx(()=>[e.createVNode(n,{size:16},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Close))]),_:1})]),_:1})])]}),footer:e.withCtx(()=>[e.createElementVNode("div",qe,[e.createVNode(m,{onClick:t[5]||(t[5]=a=>f.value=!1)},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(m,{type:"primary",class:"code-repository-share__danger-button",disabled:!d.value,loading:s.value,onClick:ne},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode(" 移除 ",-1)])]),_:1},8,["disabled","loading"])])]),_:1},8,["modelValue"]),e.createVNode(J,{modelValue:c.value,"onUpdate:modelValue":t[11]||(t[11]=a=>c.value=a),width:"600px",class:"code-repository-share__transfer-dialog","destroy-on-close":"","show-close":!1,"append-to-body":""},{header:e.withCtx(()=>{var a;return[e.createElementVNode("div",Je,[e.createElementVNode("div",Ye,[e.createElementVNode("div",Qe,e.toDisplayString(E.value.transferTitle),1),e.createElementVNode("div",Xe,[t[19]||(t[19]=e.createTextVNode(" 你将把所有权转移给 ",-1)),e.createElementVNode("span",Ze,e.toDisplayString(((a=d.value)==null?void 0:a.subjectName)||"--"),1),t[20]||(t[20]=e.createTextVNode(" ,转移后你将不再是此资源的所有者。 ",-1))])]),e.createVNode(m,{link:"",class:"code-repository-share__close-button","aria-label":"关闭所有权转移确认",onClick:t[7]||(t[7]=b=>c.value=!1)},{default:e.withCtx(()=>[e.createVNode(n,{size:16},{default:e.withCtx(()=>[e.createVNode(e.unref(P.Close))]),_:1})]),_:1})])]}),footer:e.withCtx(()=>[e.createElementVNode("div",at,[e.createVNode(m,{onClick:t[10]||(t[10]=a=>c.value=!1)},{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(m,{type:"primary",disabled:!d.value,loading:s.value,onClick:de},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode(" 转移 ",-1)])]),_:1},8,["disabled","loading"])])]),default:e.withCtx(()=>[e.createElementVNode("div",et,[t[24]||(t[24]=e.createElementVNode("div",{class:"code-repository-share__transfer-label"},"转移后",-1)),e.createVNode(q,{modelValue:S.value,"onUpdate:modelValue":t[9]||(t[9]=a=>S.value=a),class:"code-repository-share__transfer-group"},{default:e.withCtx(()=>[e.createElementVNode("label",tt,[e.createVNode(Y,{value:"KEEP"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("保留我的",-1)])]),_:1}),e.createVNode(D,{modelValue:O.value,"onUpdate:modelValue":t[8]||(t[8]=a=>O.value=a),class:"code-repository-share__transfer-select",disabled:S.value!=="KEEP"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Z.value,a=>(e.openBlock(),e.createBlock(N,{key:a.value,label:a.label,value:a.value,disabled:a.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","disabled"]),t[22]||(t[22]=e.createElementVNode("span",null,"权限",-1))]),e.createElementVNode("label",ot,[e.createVNode(Y,{value:"REMOVE"},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("不保留我的协作权限",-1)])]),_:1})])]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"])]),_:1},8,["model-value","size"])}}}),dt=(r,u)=>{const l=r.__vccOpts||r;for(const[i,h]of u)l[i]=h;return l},ct=dt(nt,[["__scopeId","data-v-29bbe75d"]]);function it(r){const u=e.ref(!1),l=e.ref(!1),i=e.ref(""),h=e.ref("USER"),w=e.ref([]),C=e.ref("VIEWER"),y=e.ref([]),s=e.ref([]),k=e.computed(()=>z(y.value)),v=e.computed(()=>X(s.value,y.value));async function p(){u.value=!0;try{y.value=await r.adapter.listPermissions(r.resourceId)}finally{u.value=!1}}async function V(){s.value=await r.adapter.searchSubjects({subjectType:h.value,keyword:i.value,resourceId:r.resourceId})}async function T(){if(w.value.length){l.value=!0;try{await Promise.all(w.value.map(c=>r.adapter.grantPermission({resourceId:r.resourceId,subjectType:h.value,subjectId:c,role:C.value}))),w.value=[],i.value="",await p(),await V()}finally{l.value=!1}}}async function B(c,d){l.value=!0;try{await r.adapter.updatePermissionRole({resourceId:r.resourceId,subjectType:c.subjectType,subjectId:c.subjectId,role:d}),await p()}finally{l.value=!1}}async function j(c){l.value=!0;try{await r.adapter.revokePermission({resourceId:r.resourceId,subjectType:c.subjectType,subjectId:c.subjectId}),await p(),await V()}finally{l.value=!1}}async function f(c,d="MANAGER"){if(r.adapter.transferOwner){l.value=!0;try{await r.adapter.transferOwner({resourceId:r.resourceId,subjectType:c.subjectType,subjectId:c.subjectId,previousOwnerRole:d}),await p()}finally{l.value=!1}}}return{loading:u,saving:l,keyword:i,subjectType:h,selectedSubjectIds:w,selectedRole:C,permissions:y,candidates:s,sortedPermissions:k,availableCandidates:v,loadPermissions:p,searchCandidates:V,grantSelected:T,updateRole:B,revoke:j,transferOwner:f}}exports.HrbacShareDrawer=ct;exports.buildSubjectKey=I;exports.excludeExistingSubjects=X;exports.sortSharePermissions=z;exports.useHrbacShare=it;
package/dist/index.js CHANGED
@@ -1,33 +1,33 @@
1
- import { defineComponent as De, ref as n, computed as j, watch as ie, resolveComponent as h, resolveDirective as Ue, openBlock as i, createBlock as E, withCtx as t, withDirectives as We, createElementBlock as w, createCommentVNode as B, createElementVNode as s, toDisplayString as y, createVNode as d, Fragment as P, renderList as x, createTextVNode as m, normalizeClass as ue, unref as J } from "vue";
2
- import { ElMessage as T } from "element-plus";
3
- import { Search as xe, Close as ee } from "@element-plus/icons-vue";
4
- const ce = {
1
+ import { defineComponent as Ue, ref as n, computed as g, watch as ue, resolveComponent as h, resolveDirective as We, openBlock as i, createBlock as j, withCtx as r, withDirectives as Me, createElementBlock as E, createCommentVNode as G, createElementVNode as s, toDisplayString as f, createVNode as d, Fragment as P, renderList as U, createTextVNode as m, normalizeClass as ce, unref as J } from "vue";
2
+ import { ElMessage as R } from "element-plus";
3
+ import { Search as Le, Close as ae } from "@element-plus/icons-vue";
4
+ const ve = {
5
5
  USER: 1,
6
6
  LINE: 2,
7
7
  SPACE: 3
8
8
  };
9
- function Y(r) {
10
- return `${r.subjectType}:${r.subjectId}`;
9
+ function Y(t) {
10
+ return `${t.subjectType}:${t.subjectId}`;
11
11
  }
12
- function Le(r, p) {
13
- const l = new Set(p.map(Y));
14
- return r.filter((_) => !l.has(Y(_)));
12
+ function xe(t, y) {
13
+ const l = new Set(y.map(Y));
14
+ return t.filter((p) => !l.has(Y(p)));
15
15
  }
16
- function ve(r) {
17
- return [...r].sort((p, l) => {
18
- if (p.role === "OWNER" && l.role !== "OWNER") return -1;
19
- if (p.role !== "OWNER" && l.role === "OWNER") return 1;
20
- const _ = ce[p.subjectType] - ce[l.subjectType];
21
- return _ !== 0 ? _ : p.subjectName.localeCompare(l.subjectName, "zh-CN");
16
+ function _e(t) {
17
+ return [...t].sort((y, l) => {
18
+ if (y.role === "OWNER" && l.role !== "OWNER") return -1;
19
+ if (y.role !== "OWNER" && l.role === "OWNER") return 1;
20
+ const p = ve[y.subjectType] - ve[l.subjectType];
21
+ return p !== 0 ? p : y.subjectName.localeCompare(l.subjectName, "zh-CN");
22
22
  });
23
23
  }
24
- const ze = { class: "code-repository-share__header" }, Me = { class: "code-repository-share__header-main" }, $e = { class: "code-repository-share__header-title" }, Be = { class: "code-repository-share__header-subtitle" }, Ke = { class: "code-repository-share" }, Ge = { class: "code-repository-share__section" }, He = { class: "code-repository-share__section-head" }, Fe = { class: "code-repository-share__section-label" }, Je = { class: "code-repository-share__add-row" }, Ye = { class: "code-repository-share__compound-field" }, qe = { class: "code-repository-share__compound-left" }, Qe = { class: "code-repository-share__empty" }, Xe = { class: "code-repository-share__candidate-name" }, Ze = {
24
+ const ze = { class: "code-repository-share__header" }, $e = { class: "code-repository-share__header-main" }, Be = { class: "code-repository-share__header-title" }, Ge = { class: "code-repository-share__header-subtitle" }, Ke = { class: "code-repository-share" }, He = { class: "code-repository-share__section" }, Fe = { class: "code-repository-share__section-head" }, Je = { class: "code-repository-share__section-label" }, Ye = { class: "code-repository-share__add-row" }, qe = { class: "code-repository-share__compound-field" }, Qe = { class: "code-repository-share__compound-left" }, Xe = { class: "code-repository-share__empty" }, Ze = { class: "code-repository-share__candidate-name" }, ea = {
25
25
  key: 0,
26
26
  class: "code-repository-share__candidate-status"
27
- }, ea = { class: "code-repository-share__compound-right" }, aa = { class: "code-repository-share__collaborator-section" }, oa = { class: "code-repository-share__collaborator-title" }, la = { class: "code-repository-share__collaborator-list" }, sa = { class: "code-repository-share__collaborator-list-inner" }, ta = { class: "code-repository-share__collaborator-info" }, ra = { class: "code-repository-share__collaborator-name-line" }, da = { class: "code-repository-share__collaborator-name" }, na = {
27
+ }, aa = { class: "code-repository-share__compound-right" }, oa = { class: "code-repository-share__collaborator-section" }, la = { class: "code-repository-share__collaborator-title" }, sa = { class: "code-repository-share__collaborator-list" }, ra = { class: "code-repository-share__collaborator-list-inner" }, ta = { class: "code-repository-share__collaborator-info" }, da = { class: "code-repository-share__collaborator-name-line" }, na = { class: "code-repository-share__collaborator-name" }, ia = {
28
28
  key: 1,
29
29
  class: "code-repository-share__empty-state"
30
- }, ia = { class: "code-repository-share__dialog-header" }, ua = { class: "code-repository-share__dialog-header-main" }, ca = { class: "code-repository-share__dialog-title" }, va = { class: "code-repository-share__dialog-description" }, _a = { class: "code-repository-share__dialog-footer" }, pa = { class: "code-repository-share__dialog-header" }, ya = { class: "code-repository-share__dialog-header-main" }, fa = { class: "code-repository-share__dialog-title" }, ba = { class: "code-repository-share__dialog-description" }, ha = { class: "code-repository-share__dialog-description-target" }, ma = { class: "code-repository-share__transfer-content" }, ga = { class: "code-repository-share__transfer-option" }, wa = { class: "code-repository-share__transfer-option" }, ja = { class: "code-repository-share__dialog-footer" }, Ea = "__remove__", Ta = "__transfer__", Ra = "__divider__", Ia = /* @__PURE__ */ De({
30
+ }, ua = { class: "code-repository-share__dialog-header" }, ca = { class: "code-repository-share__dialog-header-main" }, va = { class: "code-repository-share__dialog-title" }, _a = { class: "code-repository-share__dialog-description" }, pa = { class: "code-repository-share__dialog-footer" }, ya = { class: "code-repository-share__dialog-header" }, fa = { class: "code-repository-share__dialog-header-main" }, ba = { class: "code-repository-share__dialog-title" }, ha = { class: "code-repository-share__dialog-description" }, ma = { class: "code-repository-share__dialog-description-target" }, ga = { class: "code-repository-share__transfer-content" }, wa = { class: "code-repository-share__transfer-option" }, Ea = { class: "code-repository-share__transfer-option" }, ja = { class: "code-repository-share__dialog-footer" }, Ra = "__remove__", Ta = "__transfer__", Ia = "__divider__", Oa = /* @__PURE__ */ Ue({
31
31
  __name: "HrbacShareDrawer",
32
32
  props: {
33
33
  modelValue: { type: Boolean },
@@ -41,8 +41,8 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
41
41
  allowTransferOwner: { type: Boolean, default: !0 }
42
42
  },
43
43
  emits: ["update:modelValue", "saved"],
44
- setup(r, { emit: p }) {
45
- const l = r, _ = p, S = {
44
+ setup(t, { emit: y }) {
45
+ const l = t, p = y, S = {
46
46
  title: "分享设置",
47
47
  addSectionTitle: "添加方式",
48
48
  collaboratorTitle: "管理协作者",
@@ -56,92 +56,95 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
56
56
  { label: "按用户", value: "USER" },
57
57
  { label: "按条线", value: "LINE" },
58
58
  { label: "按空间", value: "SPACE" }
59
- ], K = [
59
+ ], W = [
60
60
  { label: "可管理", value: "MANAGER" },
61
61
  { label: "可编辑", value: "EDITOR" },
62
62
  { label: "可查看", value: "VIEWER" }
63
- ], R = n(!1), u = n(!1), L = n(!1), g = n("USER"), f = n([]), V = n("VIEWER"), z = n([]), G = n([]), M = n(""), I = n(!1), v = n(!1), c = n(null), H = n("MANAGER"), $ = n("KEEP"), N = j(() => ({ ...S, ...l.labels })), q = j(() => {
63
+ ], T = n(!1), u = n(!1), M = n(!1), w = n("USER"), b = n([]), V = n("VIEWER"), L = n([]), K = n([]), x = n(""), I = n(!1), _ = n(!1), v = n(null), H = n("MANAGER"), z = n("KEEP"), N = g(() => ({ ...S, ...l.labels })), q = g(() => {
64
64
  var a;
65
65
  return (a = l.subjectTypeOptions) != null && a.length ? l.subjectTypeOptions : A;
66
- }), ae = j(() => {
66
+ }), oe = g(() => {
67
67
  var a;
68
- return (a = l.roleOptions) != null && a.length ? l.roleOptions : K;
69
- }), oe = j(() => ae.value.filter((a) => a.value !== "OWNER")), le = j(() => ve(z.value)), _e = j(() => new Set(z.value.map(Y))), pe = j(() => G.value.map((a) => ({
68
+ return (a = l.roleOptions) != null && a.length ? l.roleOptions.map((e) => ({
69
+ ...e,
70
+ label: e.label || X(e.value)
71
+ })) : W;
72
+ }), le = g(() => oe.value.filter((a) => a.value !== "OWNER")), pe = g(() => {
73
+ const a = [...le.value];
74
+ return a.some((e) => e.value === "MANAGER") || a.unshift({ label: X("MANAGER"), value: "MANAGER" }), a;
75
+ }), se = g(() => _e(L.value)), ye = g(() => new Set(L.value.map(Y))), fe = g(() => K.value.map((a) => ({
70
76
  ...a,
71
- disabled: a.disabled || _e.value.has(Y(a))
72
- }))), ye = j(() => g.value === "USER" ? "搜索用户" : g.value === "LINE" ? "搜索条线" : "搜索空间"), Q = j(() => {
73
- const a = M.value.trim().toLowerCase();
74
- return a ? le.value.filter((e) => {
75
- var b;
76
- return e.subjectName.toLowerCase().includes(a) || e.subjectId.toLowerCase().includes(a) || ((b = e.description) == null ? void 0 : b.toLowerCase().includes(a));
77
- }) : le.value;
77
+ disabled: a.disabled || ye.value.has(Y(a))
78
+ }))), be = g(() => w.value === "USER" ? "搜索用户" : w.value === "LINE" ? "搜索条线" : "搜索空间"), Q = g(() => {
79
+ const a = x.value.trim().toLowerCase();
80
+ return a ? se.value.filter((e) => {
81
+ var c;
82
+ return e.subjectName.toLowerCase().includes(a) || e.subjectId.toLowerCase().includes(a) || ((c = e.description) == null ? void 0 : c.toLowerCase().includes(a));
83
+ }) : se.value;
78
84
  });
79
- ie(() => l.modelValue, (a) => {
80
- a && (D(), U(""));
81
- }), ie(q, (a) => {
85
+ ue(() => l.modelValue, (a) => {
86
+ a && ($(), B(""));
87
+ }, { immediate: !0 }), ue(q, (a) => {
82
88
  var e;
83
- a.some((b) => b.value === g.value) || (g.value = ((e = a[0]) == null ? void 0 : e.value) || "USER");
89
+ a.some((c) => c.value === w.value) || (w.value = ((e = a[0]) == null ? void 0 : e.value) || "USER");
84
90
  }, { immediate: !0 });
85
- function se() {
86
- _("update:modelValue", !1);
91
+ function re() {
92
+ p("update:modelValue", !1);
87
93
  }
88
- function fe() {
89
- D(), U("");
90
- }
91
- async function D() {
92
- R.value = !0;
94
+ async function $() {
95
+ T.value = !0;
93
96
  try {
94
- z.value = await l.adapter.listPermissions(l.resource.id);
97
+ L.value = await l.adapter.listPermissions(l.resource.id);
95
98
  } catch (a) {
96
- T.error(W(a, "协作者加载失败"));
99
+ R.error(D(a, "协作者加载失败"));
97
100
  } finally {
98
- R.value = !1;
101
+ T.value = !1;
99
102
  }
100
103
  }
101
- async function U(a) {
102
- L.value = !0;
104
+ async function B(a) {
105
+ M.value = !0;
103
106
  try {
104
- G.value = await l.adapter.searchSubjects({
105
- subjectType: g.value,
107
+ K.value = await l.adapter.searchSubjects({
108
+ subjectType: w.value,
106
109
  keyword: a,
107
110
  resourceId: l.resource.id
108
111
  });
109
112
  } catch (e) {
110
- T.error(W(e, "候选对象加载失败"));
113
+ R.error(D(e, "候选对象加载失败"));
111
114
  } finally {
112
- L.value = !1;
115
+ M.value = !1;
113
116
  }
114
117
  }
115
- function be() {
116
- f.value = [], U("");
118
+ function he() {
119
+ b.value = [], B("");
117
120
  }
118
- async function he() {
119
- if (f.value.length) {
121
+ async function me() {
122
+ if (b.value.length) {
120
123
  u.value = !0;
121
124
  try {
122
- await Promise.all(f.value.map((a) => l.adapter.grantPermission({
125
+ await Promise.all(b.value.map((a) => l.adapter.grantPermission({
123
126
  resourceId: l.resource.id,
124
- subjectType: g.value,
127
+ subjectType: w.value,
125
128
  subjectId: a,
126
129
  role: V.value
127
- }))), f.value = [], T.success("协作者已添加"), _("saved"), await D(), await U("");
130
+ }))), b.value = [], R.success("协作者已添加"), p("saved"), await $(), await B("");
128
131
  } catch (a) {
129
- T.error(W(a, "协作者添加失败"));
132
+ R.error(D(a, "协作者添加失败"));
130
133
  } finally {
131
134
  u.value = !1;
132
135
  }
133
136
  }
134
137
  }
135
- async function me(a, e) {
136
- if (e === Ea) {
137
- c.value = a, I.value = !0;
138
+ async function ge(a, e) {
139
+ if (e === Ra) {
140
+ v.value = a, I.value = !0;
138
141
  return;
139
142
  }
140
143
  if (e === Ta) {
141
- c.value = a, $.value = "KEEP", H.value = "MANAGER", v.value = !0;
144
+ v.value = a, z.value = "KEEP", H.value = "MANAGER", _.value = !0;
142
145
  return;
143
146
  }
144
- if (e !== Ra && !(e === "OWNER" || e === a.role)) {
147
+ if (e !== Ia && !(e === "OWNER" || e === a.role)) {
145
148
  u.value = !0;
146
149
  try {
147
150
  await l.adapter.updatePermissionRole({
@@ -149,45 +152,45 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
149
152
  subjectType: a.subjectType,
150
153
  subjectId: a.subjectId,
151
154
  role: e
152
- }), T.success("权限已更新"), _("saved"), await D();
153
- } catch (b) {
154
- T.error(W(b, "权限更新失败"));
155
+ }), R.success("权限已更新"), p("saved"), await $();
156
+ } catch (c) {
157
+ R.error(D(c, "权限更新失败"));
155
158
  } finally {
156
159
  u.value = !1;
157
160
  }
158
161
  }
159
162
  }
160
- function ge(a, e) {
161
- typeof e == "string" && me(a, e);
163
+ function we(a, e) {
164
+ typeof e == "string" && ge(a, e);
162
165
  }
163
- async function we() {
164
- if (c.value) {
166
+ async function Ee() {
167
+ if (v.value) {
165
168
  u.value = !0;
166
169
  try {
167
170
  await l.adapter.revokePermission({
168
171
  resourceId: l.resource.id,
169
- subjectType: c.value.subjectType,
170
- subjectId: c.value.subjectId
171
- }), I.value = !1, c.value = null, T.success("协作者已移除"), _("saved"), await D(), await U("");
172
+ subjectType: v.value.subjectType,
173
+ subjectId: v.value.subjectId
174
+ }), I.value = !1, v.value = null, R.success("协作者已移除"), p("saved"), await $(), await B("");
172
175
  } catch (a) {
173
- T.error(W(a, "协作者移除失败"));
176
+ R.error(D(a, "协作者移除失败"));
174
177
  } finally {
175
178
  u.value = !1;
176
179
  }
177
180
  }
178
181
  }
179
182
  async function je() {
180
- if (!(!c.value || !l.adapter.transferOwner)) {
183
+ if (!(!v.value || !l.adapter.transferOwner)) {
181
184
  u.value = !0;
182
185
  try {
183
186
  await l.adapter.transferOwner({
184
187
  resourceId: l.resource.id,
185
- subjectType: c.value.subjectType,
186
- subjectId: c.value.subjectId,
187
- previousOwnerRole: $.value === "REMOVE" ? void 0 : H.value
188
- }), v.value = !1, c.value = null, T.success("所有权已转移"), _("saved"), await D();
188
+ subjectType: v.value.subjectType,
189
+ subjectId: v.value.subjectId,
190
+ previousOwnerRole: z.value === "REMOVE" ? void 0 : H.value
191
+ }), _.value = !1, v.value = null, R.success("所有权已转移"), p("saved"), await $();
189
192
  } catch (a) {
190
- T.error(W(a, "所有权转移失败"));
193
+ R.error(D(a, "所有权转移失败"));
191
194
  } finally {
192
195
  u.value = !1;
193
196
  }
@@ -195,62 +198,70 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
195
198
  }
196
199
  function te(a) {
197
200
  var e;
198
- return ((e = q.value.find((b) => b.value === a)) == null ? void 0 : e.label.replace(/^按/, "")) || a;
201
+ return ((e = q.value.find((c) => c.value === a)) == null ? void 0 : e.label.replace(/^按/, "")) || a;
202
+ }
203
+ function Re(a) {
204
+ if (a.role === "OWNER") return [{ label: "所有者", value: "OWNER", disabled: !0 }];
205
+ const e = oe.value.filter((c) => c.value !== "OWNER");
206
+ return e.some((c) => c.value === a.role) ? e : [
207
+ { label: X(a.role), value: a.role },
208
+ ...e
209
+ ];
199
210
  }
200
- function Ee(a) {
201
- return a.role === "OWNER" ? [{ label: "所有者", value: "OWNER", disabled: !0 }] : ae.value.filter((e) => e.value !== "OWNER");
211
+ function X(a) {
212
+ var e;
213
+ return ((e = W.find((c) => c.value === a)) == null ? void 0 : e.label) || a;
202
214
  }
203
215
  function Te(a) {
204
216
  return l.readonly || u.value || a.readonly === !0 || a.role === "OWNER";
205
217
  }
206
- function Re(a) {
207
- return Te(a) && !X(a) && !Z(a);
218
+ function Ie(a) {
219
+ return Te(a) && !Z(a) && !ee(a);
208
220
  }
209
- function X(a) {
221
+ function Z(a) {
210
222
  return !l.readonly && !a.readonly && a.role !== "OWNER";
211
223
  }
212
- function Z(a) {
224
+ function ee(a) {
213
225
  return l.allowTransferOwner && !!l.adapter.transferOwner && !l.readonly && !a.readonly && a.subjectType === "USER" && a.role !== "OWNER";
214
226
  }
215
- function Ie(a) {
216
- return X(a) || Z(a);
217
- }
218
227
  function Oe(a) {
228
+ return Z(a) || ee(a);
229
+ }
230
+ function Ce(a) {
219
231
  return a === "USER" ? "code-repository-share__type-tag--user" : a === "SPACE" ? "code-repository-share__type-tag--space" : "code-repository-share__type-tag--line";
220
232
  }
221
- function W(a, e) {
233
+ function D(a, e) {
222
234
  return a instanceof Error && a.message ? a.message : e;
223
235
  }
224
236
  return (a, e) => {
225
- const b = h("el-icon"), O = h("el-button"), Ce = h("el-alert"), Se = h("el-radio-button"), re = h("el-radio-group"), Ve = h("el-tooltip"), k = h("el-option"), F = h("el-select"), Ne = h("el-input"), ke = h("el-empty"), de = h("el-dialog"), ne = h("el-radio"), Pe = h("el-drawer"), Ae = Ue("loading");
226
- return i(), E(Pe, {
227
- "model-value": r.modelValue,
228
- size: r.drawerSize,
237
+ const c = h("el-icon"), O = h("el-button"), Se = h("el-alert"), Ve = h("el-radio-button"), de = h("el-radio-group"), Ne = h("el-tooltip"), k = h("el-option"), F = h("el-select"), ke = h("el-input"), Pe = h("el-empty"), ne = h("el-dialog"), ie = h("el-radio"), Ae = h("el-drawer"), De = We("loading");
238
+ return i(), j(Ae, {
239
+ "model-value": t.modelValue,
240
+ size: t.drawerSize,
229
241
  class: "code-repository-share-drawer",
230
242
  "destroy-on-close": "",
231
243
  "show-close": !1,
232
- onClose: se,
233
- onOpen: fe
244
+ onClose: re
234
245
  }, {
235
- header: t(() => [
246
+ header: r(() => [
236
247
  s("div", ze, [
237
- s("div", Me, [
238
- s("div", $e, y(N.value.title), 1),
239
- s("div", Be, [
248
+ s("div", $e, [
249
+ s("div", Be, f(N.value.title), 1),
250
+ s("div", Ge, [
240
251
  e[12] || (e[12] = m(" 正在分享:", -1)),
241
- s("span", null, y(r.resource.name || "--"), 1)
252
+ s("span", null, f(t.resource.name || "--"), 1)
242
253
  ])
243
254
  ]),
244
255
  d(O, {
245
256
  link: "",
246
257
  class: "code-repository-share__close-button",
247
258
  "aria-label": "关闭分享抽屉",
248
- onClick: se
259
+ onClick: re
249
260
  }, {
250
- default: t(() => [
251
- d(b, { size: 16 }, {
252
- default: t(() => [
253
- d(J(ee))
261
+ default: r(() => [
262
+ d(c, { size: 16 }, {
263
+ default: r(() => [
264
+ d(J(ae))
254
265
  ]),
255
266
  _: 1
256
267
  })
@@ -259,33 +270,33 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
259
270
  })
260
271
  ])
261
272
  ]),
262
- default: t(() => [
263
- We((i(), w("div", Ke, [
264
- r.readonly ? (i(), E(Ce, {
273
+ default: r(() => [
274
+ Me((i(), E("div", Ke, [
275
+ t.readonly ? (i(), j(Se, {
265
276
  key: 0,
266
277
  title: N.value.readonlyTip,
267
278
  type: "info",
268
279
  "show-icon": "",
269
280
  closable: !1,
270
281
  class: "code-repository-share__alert"
271
- }, null, 8, ["title"])) : B("", !0),
272
- s("section", Ge, [
273
- s("div", He, [
274
- s("span", Fe, y(N.value.addSectionTitle), 1),
275
- d(re, {
276
- modelValue: g.value,
277
- "onUpdate:modelValue": e[0] || (e[0] = (o) => g.value = o),
282
+ }, null, 8, ["title"])) : G("", !0),
283
+ s("section", He, [
284
+ s("div", Fe, [
285
+ s("span", Je, f(N.value.addSectionTitle), 1),
286
+ d(de, {
287
+ modelValue: w.value,
288
+ "onUpdate:modelValue": e[0] || (e[0] = (o) => w.value = o),
278
289
  class: "code-repository-share__method-radio",
279
- disabled: r.readonly || u.value,
280
- onChange: be
290
+ disabled: t.readonly || u.value,
291
+ onChange: he
281
292
  }, {
282
- default: t(() => [
283
- (i(!0), w(P, null, x(q.value, (o) => (i(), E(Se, {
293
+ default: r(() => [
294
+ (i(!0), E(P, null, U(q.value, (o) => (i(), j(Ve, {
284
295
  key: o.value,
285
296
  value: o.value
286
297
  }, {
287
- default: t(() => [
288
- m(y(o.label), 1)
298
+ default: r(() => [
299
+ m(f(o.label), 1)
289
300
  ]),
290
301
  _: 2
291
302
  }, 1032, ["value"]))), 128))
@@ -293,47 +304,47 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
293
304
  _: 1
294
305
  }, 8, ["modelValue", "disabled"])
295
306
  ]),
296
- s("div", Je, [
297
- s("div", Ye, [
298
- s("div", qe, [
307
+ s("div", Ye, [
308
+ s("div", qe, [
309
+ s("div", Qe, [
299
310
  d(F, {
300
- modelValue: f.value,
301
- "onUpdate:modelValue": e[1] || (e[1] = (o) => f.value = o),
311
+ modelValue: b.value,
312
+ "onUpdate:modelValue": e[1] || (e[1] = (o) => b.value = o),
302
313
  multiple: "",
303
314
  filterable: "",
304
315
  remote: "",
305
316
  clearable: "",
306
317
  "collapse-tags": "",
307
318
  "collapse-tags-tooltip": "",
308
- "remote-method": U,
309
- loading: L.value,
310
- disabled: r.readonly || u.value,
311
- placeholder: ye.value,
319
+ "remote-method": B,
320
+ loading: M.value,
321
+ disabled: t.readonly || u.value,
322
+ placeholder: be.value,
312
323
  "reserve-keyword": !1,
313
324
  class: "code-repository-share__candidate-select"
314
325
  }, {
315
- empty: t(() => [
316
- s("div", Qe, "暂无匹配" + y(te(g.value)), 1)
326
+ empty: r(() => [
327
+ s("div", Xe, "暂无匹配" + f(te(w.value)), 1)
317
328
  ]),
318
- default: t(() => [
319
- (i(!0), w(P, null, x(pe.value, (o) => (i(), E(k, {
329
+ default: r(() => [
330
+ (i(!0), E(P, null, U(fe.value, (o) => (i(), j(k, {
320
331
  key: `${o.subjectType}:${o.subjectId}`,
321
332
  label: o.subjectName,
322
333
  value: o.subjectId,
323
334
  disabled: o.disabled
324
335
  }, {
325
- default: t(() => [
326
- d(Ve, {
336
+ default: r(() => [
337
+ d(Ne, {
327
338
  disabled: !o.disabled,
328
339
  content: "已添加为协作者",
329
340
  placement: "right"
330
341
  }, {
331
- default: t(() => [
342
+ default: r(() => [
332
343
  s("div", {
333
- class: ue(["code-repository-share__candidate-option", { "is-added": o.disabled }])
344
+ class: ce(["code-repository-share__candidate-option", { "is-added": o.disabled }])
334
345
  }, [
335
- s("span", Xe, y(o.subjectName), 1),
336
- o.disabled ? (i(), w("span", Ze, " 已添加 ")) : B("", !0)
346
+ s("span", Ze, f(o.subjectName), 1),
347
+ o.disabled ? (i(), E("span", ea, " 已添加 ")) : G("", !0)
337
348
  ], 2)
338
349
  ]),
339
350
  _: 2
@@ -345,15 +356,15 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
345
356
  _: 1
346
357
  }, 8, ["modelValue", "loading", "disabled", "placeholder"])
347
358
  ]),
348
- s("div", ea, [
359
+ s("div", aa, [
349
360
  d(F, {
350
361
  modelValue: V.value,
351
362
  "onUpdate:modelValue": e[2] || (e[2] = (o) => V.value = o),
352
- disabled: r.readonly || u.value,
363
+ disabled: t.readonly || u.value,
353
364
  class: "code-repository-share__add-role-select"
354
365
  }, {
355
- default: t(() => [
356
- (i(!0), w(P, null, x(oe.value, (o) => (i(), E(k, {
366
+ default: r(() => [
367
+ (i(!0), E(P, null, U(le.value, (o) => (i(), j(k, {
357
368
  key: o.value,
358
369
  label: o.label,
359
370
  value: o.value,
@@ -368,52 +379,52 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
368
379
  type: "primary",
369
380
  class: "code-repository-share__add-button",
370
381
  loading: u.value,
371
- disabled: r.readonly || !f.value.length,
372
- onClick: he
382
+ disabled: t.readonly || !b.value.length,
383
+ onClick: me
373
384
  }, {
374
- default: t(() => [...e[13] || (e[13] = [
385
+ default: r(() => [...e[13] || (e[13] = [
375
386
  m(" 添加 ", -1)
376
387
  ])]),
377
388
  _: 1
378
389
  }, 8, ["loading", "disabled"])
379
390
  ])
380
391
  ]),
381
- s("section", aa, [
382
- s("div", oa, [
383
- m(y(N.value.collaboratorTitle) + " ", 1),
384
- s("span", null, "(" + y(Q.value.length) + ")", 1)
392
+ s("section", oa, [
393
+ s("div", la, [
394
+ m(f(N.value.collaboratorTitle) + " ", 1),
395
+ s("span", null, "(" + f(Q.value.length) + ")", 1)
385
396
  ]),
386
- d(Ne, {
387
- modelValue: M.value,
388
- "onUpdate:modelValue": e[3] || (e[3] = (o) => M.value = o),
397
+ d(ke, {
398
+ modelValue: x.value,
399
+ "onUpdate:modelValue": e[3] || (e[3] = (o) => x.value = o),
389
400
  modelModifiers: { trim: !0 },
390
401
  clearable: "",
391
402
  class: "code-repository-share__collaborator-search",
392
403
  placeholder: "搜索空间名称、条线名称、用户姓名或账号"
393
404
  }, {
394
- prefix: t(() => [
395
- d(b, null, {
396
- default: t(() => [
397
- d(J(xe))
405
+ prefix: r(() => [
406
+ d(c, null, {
407
+ default: r(() => [
408
+ d(J(Le))
398
409
  ]),
399
410
  _: 1
400
411
  })
401
412
  ]),
402
413
  _: 1
403
414
  }, 8, ["modelValue"]),
404
- s("div", la, [
405
- Q.value.length ? (i(), w(P, { key: 0 }, [
406
- s("div", sa, [
407
- (i(!0), w(P, null, x(Q.value, (o) => (i(), w("div", {
415
+ s("div", sa, [
416
+ Q.value.length ? (i(), E(P, { key: 0 }, [
417
+ s("div", ra, [
418
+ (i(!0), E(P, null, U(Q.value, (o) => (i(), E("div", {
408
419
  key: `${o.subjectType}:${o.subjectId}`,
409
420
  class: "code-repository-share__collaborator-row"
410
421
  }, [
411
422
  s("div", ta, [
412
- s("div", ra, [
423
+ s("div", da, [
413
424
  s("span", {
414
- class: ue(["code-repository-share__type-tag", Oe(o.subjectType)])
415
- }, y(te(o.subjectType) || "--"), 3),
416
- s("span", da, y(o.subjectName || "--"), 1)
425
+ class: ce(["code-repository-share__type-tag", Ce(o.subjectType)])
426
+ }, f(te(o.subjectType) || "--"), 3),
427
+ s("span", na, f(o.subjectName || "--"), 1)
417
428
  ])
418
429
  ]),
419
430
  d(F, {
@@ -421,49 +432,49 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
421
432
  size: "small",
422
433
  class: "code-repository-share__row-role-select",
423
434
  "popper-class": "code-repository-share__role-dropdown",
424
- disabled: Re(o),
425
- onChange: (C) => ge(o, C)
435
+ disabled: Ie(o),
436
+ onChange: (C) => we(o, C)
426
437
  }, {
427
- default: t(() => [
428
- (i(!0), w(P, null, x(Ee(o), (C) => (i(), E(k, {
438
+ default: r(() => [
439
+ (i(!0), E(P, null, U(Re(o), (C) => (i(), j(k, {
429
440
  key: C.value,
430
441
  label: C.label,
431
442
  value: C.value,
432
443
  disabled: C.disabled
433
444
  }, null, 8, ["label", "value", "disabled"]))), 128)),
434
- Ie(o) ? (i(), E(k, {
445
+ Oe(o) ? (i(), j(k, {
435
446
  key: 0,
436
447
  disabled: "",
437
448
  value: "__divider__"
438
449
  }, {
439
- default: t(() => [...e[14] || (e[14] = [
450
+ default: r(() => [...e[14] || (e[14] = [
440
451
  s("div", { class: "code-repository-share__role-divider" }, null, -1)
441
452
  ])]),
442
453
  _: 1
443
- })) : B("", !0),
444
- Z(o) ? (i(), E(k, {
454
+ })) : G("", !0),
455
+ ee(o) ? (i(), j(k, {
445
456
  key: 1,
446
457
  label: "转移所有权",
447
458
  value: "__transfer__"
448
- })) : B("", !0),
449
- X(o) ? (i(), E(k, {
459
+ })) : G("", !0),
460
+ Z(o) ? (i(), j(k, {
450
461
  key: 2,
451
462
  label: "移除",
452
463
  value: "__remove__"
453
464
  }, {
454
- default: t(() => [...e[15] || (e[15] = [
465
+ default: r(() => [...e[15] || (e[15] = [
455
466
  s("span", { class: "code-repository-share__danger-option" }, "移除", -1)
456
467
  ])]),
457
468
  _: 1
458
- })) : B("", !0)
469
+ })) : G("", !0)
459
470
  ]),
460
471
  _: 2
461
472
  }, 1032, ["model-value", "disabled", "onChange"])
462
473
  ]))), 128))
463
474
  ]),
464
475
  e[16] || (e[16] = s("div", { class: "code-repository-share__collaborator-footer" }, "已显示全部协作者", -1))
465
- ], 64)) : (i(), w("div", na, [
466
- d(ke, {
476
+ ], 64)) : (i(), E("div", ia, [
477
+ d(Pe, {
467
478
  description: N.value.emptyCollaborators,
468
479
  "image-size": 72
469
480
  }, null, 8, ["description"])
@@ -471,9 +482,9 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
471
482
  ])
472
483
  ])
473
484
  ])), [
474
- [Ae, R.value]
485
+ [De, T.value]
475
486
  ]),
476
- d(de, {
487
+ d(ne, {
477
488
  modelValue: I.value,
478
489
  "onUpdate:modelValue": e[6] || (e[6] = (o) => I.value = o),
479
490
  width: "460px",
@@ -482,13 +493,13 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
482
493
  "show-close": !1,
483
494
  "append-to-body": ""
484
495
  }, {
485
- header: t(() => {
496
+ header: r(() => {
486
497
  var o;
487
498
  return [
488
- s("div", ia, [
489
- s("div", ua, [
490
- s("div", ca, y(N.value.removeTitle), 1),
491
- s("div", va, " 移除后," + y(((o = c.value) == null ? void 0 : o.subjectName) || "--") + " 将失去当前资源的协作权限。 ", 1)
499
+ s("div", ua, [
500
+ s("div", ca, [
501
+ s("div", va, f(N.value.removeTitle), 1),
502
+ s("div", _a, " 移除后," + f(((o = v.value) == null ? void 0 : o.subjectName) || "--") + " 将失去当前资源的协作权限。 ", 1)
492
503
  ]),
493
504
  d(O, {
494
505
  link: "",
@@ -496,10 +507,10 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
496
507
  "aria-label": "关闭移除确认",
497
508
  onClick: e[4] || (e[4] = (C) => I.value = !1)
498
509
  }, {
499
- default: t(() => [
500
- d(b, { size: 16 }, {
501
- default: t(() => [
502
- d(J(ee))
510
+ default: r(() => [
511
+ d(c, { size: 16 }, {
512
+ default: r(() => [
513
+ d(J(ae))
503
514
  ]),
504
515
  _: 1
505
516
  })
@@ -509,12 +520,12 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
509
520
  ])
510
521
  ];
511
522
  }),
512
- footer: t(() => [
513
- s("div", _a, [
523
+ footer: r(() => [
524
+ s("div", pa, [
514
525
  d(O, {
515
526
  onClick: e[5] || (e[5] = (o) => I.value = !1)
516
527
  }, {
517
- default: t(() => [...e[17] || (e[17] = [
528
+ default: r(() => [...e[17] || (e[17] = [
518
529
  m("取消", -1)
519
530
  ])]),
520
531
  _: 1
@@ -522,11 +533,11 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
522
533
  d(O, {
523
534
  type: "primary",
524
535
  class: "code-repository-share__danger-button",
525
- disabled: !c.value,
536
+ disabled: !v.value,
526
537
  loading: u.value,
527
- onClick: we
538
+ onClick: Ee
528
539
  }, {
529
- default: t(() => [...e[18] || (e[18] = [
540
+ default: r(() => [...e[18] || (e[18] = [
530
541
  m(" 移除 ", -1)
531
542
  ])]),
532
543
  _: 1
@@ -535,24 +546,24 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
535
546
  ]),
536
547
  _: 1
537
548
  }, 8, ["modelValue"]),
538
- d(de, {
539
- modelValue: v.value,
540
- "onUpdate:modelValue": e[11] || (e[11] = (o) => v.value = o),
549
+ d(ne, {
550
+ modelValue: _.value,
551
+ "onUpdate:modelValue": e[11] || (e[11] = (o) => _.value = o),
541
552
  width: "600px",
542
553
  class: "code-repository-share__transfer-dialog",
543
554
  "destroy-on-close": "",
544
555
  "show-close": !1,
545
556
  "append-to-body": ""
546
557
  }, {
547
- header: t(() => {
558
+ header: r(() => {
548
559
  var o;
549
560
  return [
550
- s("div", pa, [
551
- s("div", ya, [
552
- s("div", fa, y(N.value.transferTitle), 1),
553
- s("div", ba, [
561
+ s("div", ya, [
562
+ s("div", fa, [
563
+ s("div", ba, f(N.value.transferTitle), 1),
564
+ s("div", ha, [
554
565
  e[19] || (e[19] = m(" 你将把所有权转移给 ", -1)),
555
- s("span", ha, y(((o = c.value) == null ? void 0 : o.subjectName) || "--"), 1),
566
+ s("span", ma, f(((o = v.value) == null ? void 0 : o.subjectName) || "--"), 1),
556
567
  e[20] || (e[20] = m(" ,转移后你将不再是此资源的所有者。 ", -1))
557
568
  ])
558
569
  ]),
@@ -560,12 +571,12 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
560
571
  link: "",
561
572
  class: "code-repository-share__close-button",
562
573
  "aria-label": "关闭所有权转移确认",
563
- onClick: e[7] || (e[7] = (C) => v.value = !1)
574
+ onClick: e[7] || (e[7] = (C) => _.value = !1)
564
575
  }, {
565
- default: t(() => [
566
- d(b, { size: 16 }, {
567
- default: t(() => [
568
- d(J(ee))
576
+ default: r(() => [
577
+ d(c, { size: 16 }, {
578
+ default: r(() => [
579
+ d(J(ae))
569
580
  ]),
570
581
  _: 1
571
582
  })
@@ -575,41 +586,41 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
575
586
  ])
576
587
  ];
577
588
  }),
578
- footer: t(() => [
589
+ footer: r(() => [
579
590
  s("div", ja, [
580
591
  d(O, {
581
- onClick: e[10] || (e[10] = (o) => v.value = !1)
592
+ onClick: e[10] || (e[10] = (o) => _.value = !1)
582
593
  }, {
583
- default: t(() => [...e[25] || (e[25] = [
594
+ default: r(() => [...e[25] || (e[25] = [
584
595
  m("取消", -1)
585
596
  ])]),
586
597
  _: 1
587
598
  }),
588
599
  d(O, {
589
600
  type: "primary",
590
- disabled: !c.value,
601
+ disabled: !v.value,
591
602
  loading: u.value,
592
603
  onClick: je
593
604
  }, {
594
- default: t(() => [...e[26] || (e[26] = [
605
+ default: r(() => [...e[26] || (e[26] = [
595
606
  m(" 转移 ", -1)
596
607
  ])]),
597
608
  _: 1
598
609
  }, 8, ["disabled", "loading"])
599
610
  ])
600
611
  ]),
601
- default: t(() => [
602
- s("div", ma, [
612
+ default: r(() => [
613
+ s("div", ga, [
603
614
  e[24] || (e[24] = s("div", { class: "code-repository-share__transfer-label" }, "转移后", -1)),
604
- d(re, {
605
- modelValue: $.value,
606
- "onUpdate:modelValue": e[9] || (e[9] = (o) => $.value = o),
615
+ d(de, {
616
+ modelValue: z.value,
617
+ "onUpdate:modelValue": e[9] || (e[9] = (o) => z.value = o),
607
618
  class: "code-repository-share__transfer-group"
608
619
  }, {
609
- default: t(() => [
610
- s("label", ga, [
611
- d(ne, { value: "KEEP" }, {
612
- default: t(() => [...e[21] || (e[21] = [
620
+ default: r(() => [
621
+ s("label", wa, [
622
+ d(ie, { value: "KEEP" }, {
623
+ default: r(() => [...e[21] || (e[21] = [
613
624
  m("保留我的", -1)
614
625
  ])]),
615
626
  _: 1
@@ -618,10 +629,10 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
618
629
  modelValue: H.value,
619
630
  "onUpdate:modelValue": e[8] || (e[8] = (o) => H.value = o),
620
631
  class: "code-repository-share__transfer-select",
621
- disabled: $.value !== "KEEP"
632
+ disabled: z.value !== "KEEP"
622
633
  }, {
623
- default: t(() => [
624
- (i(!0), w(P, null, x(oe.value, (o) => (i(), E(k, {
634
+ default: r(() => [
635
+ (i(!0), E(P, null, U(pe.value, (o) => (i(), j(k, {
625
636
  key: o.value,
626
637
  label: o.label,
627
638
  value: o.value,
@@ -632,9 +643,9 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
632
643
  }, 8, ["modelValue", "disabled"]),
633
644
  e[22] || (e[22] = s("span", null, "权限", -1))
634
645
  ]),
635
- s("label", wa, [
636
- d(ne, { value: "REMOVE" }, {
637
- default: t(() => [...e[23] || (e[23] = [
646
+ s("label", Ea, [
647
+ d(ie, { value: "REMOVE" }, {
648
+ default: r(() => [...e[23] || (e[23] = [
638
649
  m("不保留我的协作权限", -1)
639
650
  ])]),
640
651
  _: 1
@@ -652,107 +663,107 @@ const ze = { class: "code-repository-share__header" }, Me = { class: "code-repos
652
663
  }, 8, ["model-value", "size"]);
653
664
  };
654
665
  }
655
- }), Oa = (r, p) => {
656
- const l = r.__vccOpts || r;
657
- for (const [_, S] of p)
658
- l[_] = S;
666
+ }), Ca = (t, y) => {
667
+ const l = t.__vccOpts || t;
668
+ for (const [p, S] of y)
669
+ l[p] = S;
659
670
  return l;
660
- }, Na = /* @__PURE__ */ Oa(Ia, [["__scopeId", "data-v-cdf7bf3e"]]);
661
- function ka(r) {
662
- const p = n(!1), l = n(!1), _ = n(""), S = n("USER"), A = n([]), K = n("VIEWER"), R = n([]), u = n([]), L = j(() => ve(R.value)), g = j(() => Le(u.value, R.value));
663
- async function f() {
664
- p.value = !0;
671
+ }, ka = /* @__PURE__ */ Ca(Oa, [["__scopeId", "data-v-29bbe75d"]]);
672
+ function Pa(t) {
673
+ const y = n(!1), l = n(!1), p = n(""), S = n("USER"), A = n([]), W = n("VIEWER"), T = n([]), u = n([]), M = g(() => _e(T.value)), w = g(() => xe(u.value, T.value));
674
+ async function b() {
675
+ y.value = !0;
665
676
  try {
666
- R.value = await r.adapter.listPermissions(r.resourceId);
677
+ T.value = await t.adapter.listPermissions(t.resourceId);
667
678
  } finally {
668
- p.value = !1;
679
+ y.value = !1;
669
680
  }
670
681
  }
671
682
  async function V() {
672
- u.value = await r.adapter.searchSubjects({
683
+ u.value = await t.adapter.searchSubjects({
673
684
  subjectType: S.value,
674
- keyword: _.value,
675
- resourceId: r.resourceId
685
+ keyword: p.value,
686
+ resourceId: t.resourceId
676
687
  });
677
688
  }
678
- async function z() {
689
+ async function L() {
679
690
  if (A.value.length) {
680
691
  l.value = !0;
681
692
  try {
682
- await Promise.all(A.value.map((v) => r.adapter.grantPermission({
683
- resourceId: r.resourceId,
693
+ await Promise.all(A.value.map((_) => t.adapter.grantPermission({
694
+ resourceId: t.resourceId,
684
695
  subjectType: S.value,
685
- subjectId: v,
686
- role: K.value
687
- }))), A.value = [], _.value = "", await f(), await V();
696
+ subjectId: _,
697
+ role: W.value
698
+ }))), A.value = [], p.value = "", await b(), await V();
688
699
  } finally {
689
700
  l.value = !1;
690
701
  }
691
702
  }
692
703
  }
693
- async function G(v, c) {
704
+ async function K(_, v) {
694
705
  l.value = !0;
695
706
  try {
696
- await r.adapter.updatePermissionRole({
697
- resourceId: r.resourceId,
698
- subjectType: v.subjectType,
699
- subjectId: v.subjectId,
700
- role: c
701
- }), await f();
707
+ await t.adapter.updatePermissionRole({
708
+ resourceId: t.resourceId,
709
+ subjectType: _.subjectType,
710
+ subjectId: _.subjectId,
711
+ role: v
712
+ }), await b();
702
713
  } finally {
703
714
  l.value = !1;
704
715
  }
705
716
  }
706
- async function M(v) {
717
+ async function x(_) {
707
718
  l.value = !0;
708
719
  try {
709
- await r.adapter.revokePermission({
710
- resourceId: r.resourceId,
711
- subjectType: v.subjectType,
712
- subjectId: v.subjectId
713
- }), await f(), await V();
720
+ await t.adapter.revokePermission({
721
+ resourceId: t.resourceId,
722
+ subjectType: _.subjectType,
723
+ subjectId: _.subjectId
724
+ }), await b(), await V();
714
725
  } finally {
715
726
  l.value = !1;
716
727
  }
717
728
  }
718
- async function I(v, c = "MANAGER") {
719
- if (r.adapter.transferOwner) {
729
+ async function I(_, v = "MANAGER") {
730
+ if (t.adapter.transferOwner) {
720
731
  l.value = !0;
721
732
  try {
722
- await r.adapter.transferOwner({
723
- resourceId: r.resourceId,
724
- subjectType: v.subjectType,
725
- subjectId: v.subjectId,
726
- previousOwnerRole: c
727
- }), await f();
733
+ await t.adapter.transferOwner({
734
+ resourceId: t.resourceId,
735
+ subjectType: _.subjectType,
736
+ subjectId: _.subjectId,
737
+ previousOwnerRole: v
738
+ }), await b();
728
739
  } finally {
729
740
  l.value = !1;
730
741
  }
731
742
  }
732
743
  }
733
744
  return {
734
- loading: p,
745
+ loading: y,
735
746
  saving: l,
736
- keyword: _,
747
+ keyword: p,
737
748
  subjectType: S,
738
749
  selectedSubjectIds: A,
739
- selectedRole: K,
740
- permissions: R,
750
+ selectedRole: W,
751
+ permissions: T,
741
752
  candidates: u,
742
- sortedPermissions: L,
743
- availableCandidates: g,
744
- loadPermissions: f,
753
+ sortedPermissions: M,
754
+ availableCandidates: w,
755
+ loadPermissions: b,
745
756
  searchCandidates: V,
746
- grantSelected: z,
747
- updateRole: G,
748
- revoke: M,
757
+ grantSelected: L,
758
+ updateRole: K,
759
+ revoke: x,
749
760
  transferOwner: I
750
761
  };
751
762
  }
752
763
  export {
753
- Na as HrbacShareDrawer,
764
+ ka as HrbacShareDrawer,
754
765
  Y as buildSubjectKey,
755
- Le as excludeExistingSubjects,
756
- ve as sortSharePermissions,
757
- ka as useHrbacShare
766
+ xe as excludeExistingSubjects,
767
+ _e as sortSharePermissions,
768
+ Pa as useHrbacShare
758
769
  };
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .code-repository-share[data-v-cdf7bf3e]{min-height:100%;padding:20px 24px 24px;background:#fff}.code-repository-share__header[data-v-cdf7bf3e]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 20px;background:#fff}.code-repository-share__header-main[data-v-cdf7bf3e]{min-width:0}.code-repository-share__header-title[data-v-cdf7bf3e]{color:#1d2129;font-size:18px;font-weight:700;line-height:26px}.code-repository-share__header-subtitle[data-v-cdf7bf3e]{margin-top:4px;color:#86909c;font-size:13px;line-height:22px}.code-repository-share__header-subtitle span[data-v-cdf7bf3e]{color:#165dff;font-weight:500}.code-repository-share__close-button[data-v-cdf7bf3e]{width:32px;height:32px;margin:0;color:#86909c;border-radius:999px}.code-repository-share__close-button[data-v-cdf7bf3e]:hover{color:#4e5969;background:#f2f3f5}.code-repository-share__alert[data-v-cdf7bf3e]{margin-bottom:16px}.code-repository-share__section[data-v-cdf7bf3e]{margin-bottom:24px}.code-repository-share__section-head[data-v-cdf7bf3e]{display:flex;align-items:center;gap:16px;margin-bottom:16px}.code-repository-share__section-label[data-v-cdf7bf3e]{flex-shrink:0;color:#1d2129;font-size:14px;font-weight:600;line-height:22px}.code-repository-share__method-radio[data-v-cdf7bf3e] .el-radio-button__inner{min-width:72px;color:#1d2129}.code-repository-share__add-row[data-v-cdf7bf3e]{display:flex;gap:12px;align-items:flex-start}.code-repository-share__compound-field[data-v-cdf7bf3e]{display:flex;flex:1;min-height:40px;overflow:visible;background:#fff;border:1px solid #dcdfe6;border-radius:12px;transition:all .2s ease}.code-repository-share__compound-field[data-v-cdf7bf3e]:hover{border-color:#165dff}.code-repository-share__compound-field[data-v-cdf7bf3e]:focus-within{border-color:#165dff;box-shadow:0 0 0 2px #165dff1a}.code-repository-share__compound-left[data-v-cdf7bf3e]{min-width:0;flex:1}.code-repository-share__compound-right[data-v-cdf7bf3e]{display:flex;flex-shrink:0;align-items:center;width:120px;padding:0 12px}.code-repository-share__candidate-select[data-v-cdf7bf3e],.code-repository-share__add-role-select[data-v-cdf7bf3e]{width:100%}.code-repository-share__compound-left[data-v-cdf7bf3e] .el-select__wrapper,.code-repository-share__compound-right[data-v-cdf7bf3e] .el-select__wrapper,.code-repository-share__compound-left[data-v-cdf7bf3e] .el-input__wrapper{min-height:38px;background:transparent;box-shadow:none}.code-repository-share__compound-left[data-v-cdf7bf3e] .el-select__wrapper,.code-repository-share__compound-left[data-v-cdf7bf3e] .el-input__wrapper{padding:0 12px}.code-repository-share__candidate-select[data-v-cdf7bf3e] .el-select__wrapper{min-height:40px;height:auto;align-items:center;padding-top:7px;padding-bottom:7px;padding-left:14px;border-radius:12px 0 0 12px;box-shadow:none!important}.code-repository-share__compound-left[data-v-cdf7bf3e] .el-select__placeholder{color:#b1b7c4}.code-repository-share__compound-left[data-v-cdf7bf3e] .el-tag{border-radius:999px}.code-repository-share__compound-right[data-v-cdf7bf3e] .el-select__wrapper{justify-content:center;padding:0}.code-repository-share__compound-right[data-v-cdf7bf3e] .el-select__selected-item{color:#1d2129;font-size:14px;font-weight:500}.code-repository-share__add-role-select[data-v-cdf7bf3e] .el-select__wrapper{padding-left:16px;padding-right:4px;background:transparent;border-left:1px solid #e5e6eb;border-radius:0;box-shadow:none!important}.code-repository-share__candidate-option[data-v-cdf7bf3e]{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;color:#1d2129}.code-repository-share__candidate-option.is-added[data-v-cdf7bf3e]{color:#165dff}.code-repository-share__candidate-name[data-v-cdf7bf3e]{min-width:0;overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.code-repository-share__candidate-status[data-v-cdf7bf3e]{flex-shrink:0;color:#165dff;font-size:12px}.code-repository-share__add-button[data-v-cdf7bf3e]{min-width:76px;height:40px;border:none;border-radius:4px}.code-repository-share__add-button[data-v-cdf7bf3e]:not(.is-disabled):not(:disabled){background:#165dff}.code-repository-share__add-button[data-v-cdf7bf3e]:disabled{color:#fff;background:#c9d3ff}.code-repository-share__collaborator-title[data-v-cdf7bf3e]{color:#1d2129;font-size:14px;font-weight:700;margin-bottom:16px}.code-repository-share__collaborator-title span[data-v-cdf7bf3e]{margin-left:4px;color:#86909c;font-weight:400}.code-repository-share__collaborator-search[data-v-cdf7bf3e]{width:100%;margin-bottom:16px}.code-repository-share__collaborator-list[data-v-cdf7bf3e]{min-height:240px;max-height:480px;overflow:auto;background:#f7f8fa;border:1px solid #dcdfe6;border-radius:4px;padding:16px}.code-repository-share__collaborator-list-inner[data-v-cdf7bf3e]{display:flex;flex-direction:column;gap:12px}.code-repository-share__collaborator-row[data-v-cdf7bf3e]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:12px;background:#fff;border:1px solid #dcdfe6;border-radius:4px}.code-repository-share__collaborator-info[data-v-cdf7bf3e]{min-width:0;flex:1}.code-repository-share__collaborator-name-line[data-v-cdf7bf3e]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.code-repository-share__type-tag[data-v-cdf7bf3e]{display:inline-flex;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;border-radius:2px;white-space:nowrap}.code-repository-share__type-tag--user[data-v-cdf7bf3e]{color:#fa8c16;background:#fff7e8}.code-repository-share__type-tag--space[data-v-cdf7bf3e]{color:#165dff;background:#e8f3ff}.code-repository-share__type-tag--line[data-v-cdf7bf3e]{color:#00a854;background:#e8ffea}.code-repository-share__collaborator-name[data-v-cdf7bf3e]{min-width:0;overflow:hidden;color:#1d2129;font-size:14px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.code-repository-share__row-role-select[data-v-cdf7bf3e]{flex:0 0 auto;width:fit-content;min-width:88px;font-size:14px}.code-repository-share__row-role-select[data-v-cdf7bf3e] .el-select__wrapper{justify-content:flex-end;min-height:32px;height:32px;padding:0 4px 0 8px;background:transparent;border-radius:0;box-shadow:none}.code-repository-share__row-role-select[data-v-cdf7bf3e] .el-select__selected-item,.code-repository-share__row-role-select[data-v-cdf7bf3e] .el-select__placeholder{color:#1d2129;font-size:14px;font-weight:400}.code-repository-share__collaborator-footer[data-v-cdf7bf3e]{padding:12px 0 0;color:#b8c1d1;font-size:12px;line-height:18px;text-align:center}.code-repository-share__role-divider[data-v-cdf7bf3e]{width:100%;height:1px;background:#f2f3f5}.code-repository-share__danger-option[data-v-cdf7bf3e]{color:#f53f3f}.code-repository-share__danger-button[data-v-cdf7bf3e]{border-color:#f53f3f;background:#f53f3f}.code-repository-share__danger-button[data-v-cdf7bf3e]:hover,.code-repository-share__danger-button[data-v-cdf7bf3e]:focus{border-color:#cb2634;background:#cb2634}.code-repository-share__empty[data-v-cdf7bf3e]{padding:14px 12px;color:#86909c;font-size:12px;text-align:center}.code-repository-share__empty-state[data-v-cdf7bf3e]{min-height:180px;display:flex;align-items:center;justify-content:center}.code-repository-share__dialog-header[data-v-cdf7bf3e]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 12px 0}.code-repository-share__dialog-header-main[data-v-cdf7bf3e]{min-width:0}.code-repository-share__dialog-title[data-v-cdf7bf3e]{color:#1d2129;font-size:18px;font-weight:700;line-height:26px}.code-repository-share__dialog-description[data-v-cdf7bf3e]{margin-top:8px;color:#4e5969;font-size:13px;line-height:22px}.code-repository-share__dialog-description-target[data-v-cdf7bf3e]{font-weight:600;color:#165dff}.code-repository-share__transfer-content[data-v-cdf7bf3e]{padding:12px;border-top:1px solid #f2f3f5}.code-repository-share__transfer-label[data-v-cdf7bf3e]{margin-bottom:12px;color:#4e5969;font-size:14px;font-weight:500}.code-repository-share__transfer-group[data-v-cdf7bf3e]{width:100%}.code-repository-share__transfer-option[data-v-cdf7bf3e]{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:16px;color:#1d2129;font-size:14px}.code-repository-share__transfer-select[data-v-cdf7bf3e]{width:120px}.code-repository-share__dialog-footer[data-v-cdf7bf3e]{display:flex;justify-content:flex-end;gap:12px;width:100%}.code-repository-share__remove-dialog[data-v-cdf7bf3e] .el-dialog__header,.code-repository-share__transfer-dialog[data-v-cdf7bf3e] .el-dialog__header{padding:0;margin:0}.code-repository-share__remove-dialog[data-v-cdf7bf3e] .el-dialog__body,.code-repository-share__transfer-dialog[data-v-cdf7bf3e] .el-dialog__body{padding:0}.code-repository-share__remove-dialog[data-v-cdf7bf3e] .el-dialog__footer,.code-repository-share__transfer-dialog[data-v-cdf7bf3e] .el-dialog__footer{padding:16px 24px 24px;margin:0;border-top:1px solid #f2f3f5}@media (max-width: 768px){.code-repository-share[data-v-cdf7bf3e]{padding:16px}.code-repository-share__header[data-v-cdf7bf3e]{padding:20px 16px 16px}.code-repository-share__section-head[data-v-cdf7bf3e],.code-repository-share__collaborator-row[data-v-cdf7bf3e],.code-repository-share__transfer-option[data-v-cdf7bf3e]{flex-direction:column;align-items:stretch}.code-repository-share__add-row[data-v-cdf7bf3e]{display:flex;flex-direction:column;align-items:stretch}.code-repository-share__compound-field[data-v-cdf7bf3e],.code-repository-share__row-role-select[data-v-cdf7bf3e],.code-repository-share__add-button[data-v-cdf7bf3e],.code-repository-share__add-role-select[data-v-cdf7bf3e]{width:100%}}.code-repository-share-drawer .el-drawer__header{padding:0!important;margin-bottom:0!important}.code-repository-share-drawer .el-drawer__body{padding:0!important;background:#fff}.code-repository-share__role-dropdown .el-select-dropdown__item{font-size:14px}.code-repository-share__role-dropdown .el-select-dropdown__item.is-disabled{min-height:17px;height:17px;padding:0;line-height:17px;cursor:default;pointer-events:none}.code-repository-share__role-dropdown .el-select-dropdown__item.is-disabled:hover{background:transparent}.code-repository-share__role-dropdown .code-repository-share__role-divider{height:0;margin:8px 0;border-top:1px solid #e5e6eb;background:transparent}.code-repository-share-drawer .el-select-dropdown__item.is-disabled .code-repository-share__candidate-option{pointer-events:auto}.code-repository-share-drawer .el-select-dropdown__item.is-disabled .code-repository-share__candidate-option.is-added{color:#165dff}
1
+ .code-repository-share[data-v-29bbe75d]{min-height:100%;padding:20px 24px 24px;background:#fff}.code-repository-share__header[data-v-29bbe75d]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 20px;background:#fff}.code-repository-share__header-main[data-v-29bbe75d]{min-width:0}.code-repository-share__header-title[data-v-29bbe75d]{color:#1d2129;font-size:18px;font-weight:700;line-height:26px}.code-repository-share__header-subtitle[data-v-29bbe75d]{margin-top:4px;color:#86909c;font-size:13px;line-height:22px}.code-repository-share__header-subtitle span[data-v-29bbe75d]{color:#165dff;font-weight:500}.code-repository-share__close-button[data-v-29bbe75d]{width:32px;height:32px;margin:0;color:#86909c;border-radius:999px}.code-repository-share__close-button[data-v-29bbe75d]:hover{color:#4e5969;background:#f2f3f5}.code-repository-share__alert[data-v-29bbe75d]{margin-bottom:16px}.code-repository-share__section[data-v-29bbe75d]{margin-bottom:24px}.code-repository-share__section-head[data-v-29bbe75d]{display:flex;align-items:center;gap:16px;margin-bottom:16px}.code-repository-share__section-label[data-v-29bbe75d]{flex-shrink:0;color:#1d2129;font-size:14px;font-weight:600;line-height:22px}.code-repository-share__method-radio[data-v-29bbe75d] .el-radio-button__inner{min-width:72px;color:#1d2129}.code-repository-share__add-row[data-v-29bbe75d]{display:flex;gap:12px;align-items:flex-start}.code-repository-share__compound-field[data-v-29bbe75d]{display:flex;flex:1;min-height:40px;overflow:visible;background:#fff;border:1px solid #dcdfe6;border-radius:12px;transition:all .2s ease}.code-repository-share__compound-field[data-v-29bbe75d]:hover{border-color:#165dff}.code-repository-share__compound-field[data-v-29bbe75d]:focus-within{border-color:#165dff;box-shadow:0 0 0 2px #165dff1a}.code-repository-share__compound-left[data-v-29bbe75d]{min-width:0;flex:1}.code-repository-share__compound-right[data-v-29bbe75d]{display:flex;flex-shrink:0;align-items:center;width:120px;padding:0 12px}.code-repository-share__candidate-select[data-v-29bbe75d],.code-repository-share__add-role-select[data-v-29bbe75d]{width:100%}.code-repository-share__compound-left[data-v-29bbe75d] .el-select__wrapper,.code-repository-share__compound-right[data-v-29bbe75d] .el-select__wrapper,.code-repository-share__compound-left[data-v-29bbe75d] .el-input__wrapper{min-height:38px;background:transparent;box-shadow:none}.code-repository-share__compound-left[data-v-29bbe75d] .el-select__wrapper,.code-repository-share__compound-left[data-v-29bbe75d] .el-input__wrapper{padding:0 12px}.code-repository-share__candidate-select[data-v-29bbe75d] .el-select__wrapper{min-height:40px;height:auto;align-items:center;padding-top:7px;padding-bottom:7px;padding-left:14px;border-radius:12px 0 0 12px;box-shadow:none!important}.code-repository-share__compound-left[data-v-29bbe75d] .el-select__placeholder{color:#b1b7c4}.code-repository-share__compound-left[data-v-29bbe75d] .el-tag{border-radius:999px}.code-repository-share__compound-right[data-v-29bbe75d] .el-select__wrapper{justify-content:center;padding:0}.code-repository-share__compound-right[data-v-29bbe75d] .el-select__selected-item{color:#1d2129;font-size:14px;font-weight:500}.code-repository-share__add-role-select[data-v-29bbe75d] .el-select__wrapper{padding-left:16px;padding-right:4px;background:transparent;border-left:1px solid #e5e6eb;border-radius:0;box-shadow:none!important}.code-repository-share__candidate-option[data-v-29bbe75d]{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;color:#1d2129}.code-repository-share__candidate-option.is-added[data-v-29bbe75d]{color:#165dff}.code-repository-share__candidate-name[data-v-29bbe75d]{min-width:0;overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.code-repository-share__candidate-status[data-v-29bbe75d]{flex-shrink:0;color:#165dff;font-size:12px}.code-repository-share__add-button[data-v-29bbe75d]{min-width:76px;height:40px;border:none;border-radius:4px}.code-repository-share__add-button[data-v-29bbe75d]:not(.is-disabled):not(:disabled){background:#165dff}.code-repository-share__add-button[data-v-29bbe75d]:disabled{color:#fff;background:#c9d3ff}.code-repository-share__collaborator-title[data-v-29bbe75d]{color:#1d2129;font-size:14px;font-weight:700;margin-bottom:16px}.code-repository-share__collaborator-title span[data-v-29bbe75d]{margin-left:4px;color:#86909c;font-weight:400}.code-repository-share__collaborator-search[data-v-29bbe75d]{width:100%;margin-bottom:16px}.code-repository-share__collaborator-list[data-v-29bbe75d]{min-height:240px;max-height:480px;overflow:auto;background:#f7f8fa;border:1px solid #dcdfe6;border-radius:4px;padding:16px}.code-repository-share__collaborator-list-inner[data-v-29bbe75d]{display:flex;flex-direction:column;gap:12px}.code-repository-share__collaborator-row[data-v-29bbe75d]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:12px;background:#fff;border:1px solid #dcdfe6;border-radius:4px}.code-repository-share__collaborator-info[data-v-29bbe75d]{min-width:0;flex:1}.code-repository-share__collaborator-name-line[data-v-29bbe75d]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.code-repository-share__type-tag[data-v-29bbe75d]{display:inline-flex;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;border-radius:2px;white-space:nowrap}.code-repository-share__type-tag--user[data-v-29bbe75d]{color:#fa8c16;background:#fff7e8}.code-repository-share__type-tag--space[data-v-29bbe75d]{color:#165dff;background:#e8f3ff}.code-repository-share__type-tag--line[data-v-29bbe75d]{color:#00a854;background:#e8ffea}.code-repository-share__collaborator-name[data-v-29bbe75d]{min-width:0;overflow:hidden;color:#1d2129;font-size:14px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.code-repository-share__row-role-select[data-v-29bbe75d]{flex:0 0 auto;width:fit-content;min-width:88px;font-size:14px}.code-repository-share__row-role-select[data-v-29bbe75d] .el-select__wrapper{justify-content:flex-end;min-height:32px;height:32px;padding:0 4px 0 8px;background:transparent;border-radius:0;box-shadow:none}.code-repository-share__row-role-select[data-v-29bbe75d] .el-select__selected-item,.code-repository-share__row-role-select[data-v-29bbe75d] .el-select__placeholder{color:#1d2129;font-size:14px;font-weight:400}.code-repository-share__collaborator-footer[data-v-29bbe75d]{padding:12px 0 0;color:#b8c1d1;font-size:12px;line-height:18px;text-align:center}.code-repository-share__role-divider[data-v-29bbe75d]{width:100%;height:1px;background:#f2f3f5}.code-repository-share__danger-option[data-v-29bbe75d]{color:#f53f3f}.code-repository-share__danger-button[data-v-29bbe75d]{border-color:#f53f3f;background:#f53f3f}.code-repository-share__danger-button[data-v-29bbe75d]:hover,.code-repository-share__danger-button[data-v-29bbe75d]:focus{border-color:#cb2634;background:#cb2634}.code-repository-share__empty[data-v-29bbe75d]{padding:14px 12px;color:#86909c;font-size:12px;text-align:center}.code-repository-share__empty-state[data-v-29bbe75d]{min-height:180px;display:flex;align-items:center;justify-content:center}.code-repository-share__dialog-header[data-v-29bbe75d]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 12px 0}.code-repository-share__dialog-header-main[data-v-29bbe75d]{min-width:0}.code-repository-share__dialog-title[data-v-29bbe75d]{color:#1d2129;font-size:18px;font-weight:700;line-height:26px}.code-repository-share__dialog-description[data-v-29bbe75d]{margin-top:8px;color:#4e5969;font-size:13px;line-height:22px}.code-repository-share__dialog-description-target[data-v-29bbe75d]{font-weight:600;color:#165dff}.code-repository-share__transfer-content[data-v-29bbe75d]{padding:12px;border-top:1px solid #f2f3f5}.code-repository-share__transfer-label[data-v-29bbe75d]{margin-bottom:12px;color:#4e5969;font-size:14px;font-weight:500}.code-repository-share__transfer-group[data-v-29bbe75d]{width:100%}.code-repository-share__transfer-option[data-v-29bbe75d]{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:16px;color:#1d2129;font-size:14px}.code-repository-share__transfer-select[data-v-29bbe75d]{width:120px}.code-repository-share__dialog-footer[data-v-29bbe75d]{display:flex;justify-content:flex-end;gap:12px;width:100%}.code-repository-share__remove-dialog[data-v-29bbe75d] .el-dialog__header,.code-repository-share__transfer-dialog[data-v-29bbe75d] .el-dialog__header{padding:0;margin:0}.code-repository-share__remove-dialog[data-v-29bbe75d] .el-dialog__body,.code-repository-share__transfer-dialog[data-v-29bbe75d] .el-dialog__body{padding:0}.code-repository-share__remove-dialog[data-v-29bbe75d] .el-dialog__footer,.code-repository-share__transfer-dialog[data-v-29bbe75d] .el-dialog__footer{padding:16px 24px 24px;margin:0;border-top:1px solid #f2f3f5}@media (max-width: 768px){.code-repository-share[data-v-29bbe75d]{padding:16px}.code-repository-share__header[data-v-29bbe75d]{padding:20px 16px 16px}.code-repository-share__section-head[data-v-29bbe75d],.code-repository-share__collaborator-row[data-v-29bbe75d],.code-repository-share__transfer-option[data-v-29bbe75d]{flex-direction:column;align-items:stretch}.code-repository-share__add-row[data-v-29bbe75d]{display:flex;flex-direction:column;align-items:stretch}.code-repository-share__compound-field[data-v-29bbe75d],.code-repository-share__row-role-select[data-v-29bbe75d],.code-repository-share__add-button[data-v-29bbe75d],.code-repository-share__add-role-select[data-v-29bbe75d]{width:100%}}.code-repository-share-drawer .el-drawer__header{padding:0!important;margin-bottom:0!important}.code-repository-share-drawer .el-drawer__body{padding:0!important;background:#fff}.code-repository-share__role-dropdown .el-select-dropdown__item{font-size:14px}.code-repository-share__role-dropdown .el-select-dropdown__item.is-disabled{min-height:17px;height:17px;padding:0;line-height:17px;cursor:default;pointer-events:none}.code-repository-share__role-dropdown .el-select-dropdown__item.is-disabled:hover{background:transparent}.code-repository-share__role-dropdown .code-repository-share__role-divider{height:0;margin:8px 0;border-top:1px solid #e5e6eb;background:transparent}.code-repository-share-drawer .el-select-dropdown__item.is-disabled .code-repository-share__candidate-option{pointer-events:auto}.code-repository-share-drawer .el-select-dropdown__item.is-disabled .code-repository-share__candidate-option.is-added{color:#165dff}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rzyuan/hrbac-share",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Vue HRBAC share drawer with adapter-based permission operations.",
5
5
  "type": "module",
6
6
  "license": "MIT",