@rzyuan/hrbac-share 0.1.5 → 0.1.6

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